hDelta = 0;

/* Adapte la hauteur des templates pour qu'ils prennent toute la hauteur de la page si contenu insuffisant */
function  adaptHauteur()  {
    var hMin = document.body.offsetHeight;
    if (document.getElementById("header"))
        hMin = hMin - document.getElementById("header").offsetHeight;
    if (document.getElementById("menubar"))
        hMin = hMin - document.getElementById("menubar").offsetHeight;
    if (document.getElementById("footer"))
        hMin = hMin - document.getElementById("footer").offsetHeight;
        
    // Si Extranet chargé on retaille la hauteur en fonction du menu gauche ayant la plus grande hauteur
	if(document.getElementById("leftbar_extranet")){
	  var hLeftbar = document.getElementById("leftbar_extranet").offsetHeight;
	}else{
	  var hLeftbar = 0;
	}
	
	if(document.getElementById("rightbar_extranet")){
	  var hRightbar = document.getElementById("rightbar_extranet").offsetHeight;
	}else{
	  var hRightbar = 0;
	}
	
	if(hRightbar>hLeftbar){
		var hExtranet = hRightbar ;
	}else{
		var hExtranet = hLeftbar ;
	}

	if (hExtranet!=0)  { 
	 if (document.getElementById("contenu")){
      //var hExtranet = document.getElementById("latbar_extranet").offsetHeight;
	  
      var hContenu = 0;
      var nodes = document.getElementById("contenu").childNodes;
      for (i=0;i<nodes.length;i++)
        if (!isNaN(nodes[i].offsetHeight))  {
          hContenu = hContenu+nodes[i].offsetHeight;
        }

      if (hExtranet > hMin)
        hMin = hExtranet+30;
      if (hContenu > hMin)
        hMin = hContenu+30;
      hMin = hMin+hDelta;

      if (document.getElementById("leftbar"))
          document.getElementById("leftbar").style.height = hMin+"px";
	  if (document.getElementById("contenu"))
      	  document.getElementById("contenu").style.height = hMin+"px";
      if (document.getElementById("rightbar"))
          document.getElementById("rightbar").style.height = hMin+"px";

      return;
	 }
    }

/*    var hLeftBar = 0;
    if (document.getElementById("latbar"))
        hLeftBar = document.getElementById("latbar").offsetHeight;
    var hContent = 0;
    var nodes = document.getElementById("contenu").childNodes;
    for (i=0;i<nodes.length;i++)
      if (!isNaN(nodes[i].offsetHeight))
        hContent = hContent+nodes[i].offsetHeight;

    var hRightBar = 0;
    if (document.getElementById("rightbar"))
        hRightBar = document.getElementById("rightbar").offsetHeight;
    var hMax = hLeftBar;
    if (hContent > hMax)
        hMax = hContent+30;
    if (hRightBar > hMax)
        hMax = hRightBar;
    if (hMax < hMin)
        hMax = hMin;*/
		//alert('test');
	var hLeftBar = 0;
    if (document.getElementById("latbar"))
        hLeftBar = document.getElementById("latbar").offsetHeight;
	
    var hContent = 0;
	hContent = document.getElementById("contenu").offsetHeight;
	if(hContent<hLeftBar)
		hMax = hLeftBar;
	else
		hMax = 	hContent;
	if(hMax<hMin){
		hMax=hMin;
		if (document.getElementById("latbar"))
			document.getElementById("latbar").style.height = hMax+"px";
		document.getElementById("contenu").style.height = hMax+"px";
	}else{
		if (document.getElementById("latbar"))
			document.getElementById("latbar").style.height = hMax+"px";
		document.getElementById("contenu").style.height = hMax+"px";
	}
		//alert(hMin+";"+hContent);
}


/* Fonction pour afficher l'heure en temps réel */
function HorlogeDynamique() {
	var DateActuel = new Date();
	var heure = DateActuel.getHours();
	var minutes = DateActuel.getMinutes();
	var secondes = DateActuel.getSeconds();

	if (heure == 0) {
		heure = "0" + heure;
		}
	if (minutes <= 9) {
		minutes = "0" + minutes;
		}
	if (secondes <= 9) {
		secondes = "0" + secondes;
		}
	
	Horloge =  heure + ":" + minutes + ":" + secondes ;
	

	if (document.getElementById) {
		document.getElementById("clock").innerHTML = Horloge;
		
		}

	if (document.layers) { 
    		document.clock.document.write(Horloge); 
		document.clock.document.close(); 
  		}

	if ((document.all)&&(!document.getElementById)) { 
    		document.all["clock"].innerHTML = Horloge;
 		}

	setTimeout("HorlogeDynamique()", 1000)
}
	

/* Methode d'appel a une page en XmlHttpRequest - Technologie AJAX */
function ajaxCallRemotePage(url) {

    if (window.XMLHttpRequest) { // Non-IE browsers
      	req = new XMLHttpRequest();
       	req.onreadystatechange = processStateChange;
        req.open("GET", url, true);
        req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
		req.send(null);
	}
	else if (window.ActiveXObject) { // IE
      	req = new ActiveXObject("Microsoft.XMLHTTP");
       	req.onreadystatechange = processStateChange;
       	req.open("GET", url, true);
       	req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
		req.send();
        /*if (req.readyState == 4) { // Complete
          var d = document.getElementById('resultat');
           d.innerHTML = req.responseText;
        } */
	}
	else {
	        alert("Votre navigateur n'est pas compatible ave la technologie AJAX !");
		return; // Navigateur non compatible
	}
}

/************* EQUIVALENT TRIM EN PHP *************************/
function trim(sValue)
{
return sValue.replace(/^\s+|\s+$/g, "");
}
/* SUPPRESSION ESPACES CHAINES DE CARACTERES */
function Trim(TRIM_VALUE) {
  if(TRIM_VALUE.length < 1) {
    return "";
  }
  TRIM_VALUE = RTrim(TRIM_VALUE);
  TRIM_VALUE = LTrim(TRIM_VALUE);
  if(TRIM_VALUE=="") {
    return "";
  }
  else{
   return TRIM_VALUE;
  }
} //End Function
function RTrim(VALUE) {
  var w_space = String.fromCharCode(32);
  var v_length = VALUE.length;
  var strTemp = "";
  if(v_length < 0) {
   return "";
  }
  var iTemp = v_length -1;

  while(iTemp > -1)  {
    if(VALUE.charAt(iTemp) == w_space)  {
    }
    else {
      strTemp = VALUE.substring(0,iTemp +1);
      break;
    }
    iTemp = iTemp-1;

  } //End While
  return strTemp;
} //End Function
function LTrim(VALUE)  {
  var w_space = String.fromCharCode(32);
  if(v_length < 1) {
    return "";
  }
  var v_length = VALUE.length;
  var strTemp = "";

  var iTemp = 0;

  while(iTemp < v_length) {
    if(VALUE.charAt(iTemp) == w_space) {
    }
    else {
     strTemp = VALUE.substring(iTemp,v_length);
     break;
    }
    iTemp = iTemp + 1;
  } //End While
  return strTemp;
} //End Function


/* CONTROLE DE SAISIE D'UNE ADRESSE EMAIL */
function checkEmail(checkThisEmail)
{
    var myEMailIsValid = true;
    var myAtSymbolAt = checkThisEmail.indexOf('@');
    var myLastDotAt = checkThisEmail.lastIndexOf('.');
    var mySpaceAt = checkThisEmail.indexOf(' ');
    var myLength = checkThisEmail.length;
    
    
    // at least one @ must be present and not before position 2
    // @yellow.com : NOT valid
    // x@yellow.com : VALID
    
    if (myAtSymbolAt < 1 ) 
     {myEMailIsValid = false}
    
    
    // at least one . (dot) afer the @ is required
    // x@yellow : NOT valid
    // x.y@yellow : NOT valid
    // x@yellow.org : VALID
    
    if (myLastDotAt < myAtSymbolAt)
     {myEMailIsValid = false}
    
    // at least two characters [com, uk, fr, ...] must occur after the last . (dot)
    // x.y@yellow. : NOT valid
    // x.y@yellow.a : NOT valid
    // x.y@yellow.ca : VALID
    
    if (myLength - myLastDotAt <= 2) 
     {myEMailIsValid = false}
    
    
    // no empty space " " is permitted (one may trim the email)
    // x.y@yell ow.com : NOT valid
    
    if (mySpaceAt != -1) 
     {myEMailIsValid = false}


    return myEMailIsValid
}
	/*
	These cookie functions are downloaded from 
	http://www.mach5.com/support/analyzer/manual/html/General/CookiesJavaScript.htm
	*/	
	function Get_Cookie(name) { 
	   var start = document.cookie.indexOf(name+"="); 
	   var len = start+name.length+1; 
	   if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
	   if (start == -1) return null; 
	   var end = document.cookie.indexOf(";",len); 
	   if (end == -1) end = document.cookie.length; 
	   return unescape(document.cookie.substring(len,end)); 
	} 
	// This function has been slightly modified
	function Set_Cookie(name,value,expires,path,domain,secure) { 
		expires = expires * 60*60*24*1000;
		var today = new Date();
		var expires_date = new Date( today.getTime() + (expires) );
	    var cookieString = name + "=" +escape(value) +
	       ( (expires) ? ";expires=" + expires_date.toGMTString() : "") +
	       ( (path) ? ";path=" + path : "") + 
	       ( (domain) ? ";domain=" + domain : "") + 
	       ( (secure) ? ";secure" : ""); 
	    document.cookie = cookieString; 
	}
/**************************************MISE A JOUR AJAX BOOL **********************************/
	function Statut_actions(val,action)  {
    var xhr;
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e)
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2)
        {
          try {  xhr = new XMLHttpRequest();     }
          catch (e3) {  xhr = false;   }
        }
     }
 
    xhr.onreadystatechange  = function()
    { 
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)   {
                 rep = xhr.responseText;
				 if(rep==1)
				 	location.href='index.php';
              }
              else  {
                 // Pour le debug
                 alert("Problem: " + xhr.statusText);
                 alert(xhr.responseText);
              }
         }
    };
   xhr.open("GET", "extranet/ajax_actions.php?action="+action+"&statut="+val,  true);
   xhr.send(null);
}
/********************************************** Drag ***************************************************/
var Drag_box = {

	obj : null,

	init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
	{
		o.onmousedown	= Drag_box.start;

		o.hmode			= bSwapHorzRef ? false : true ;
		o.vmode			= bSwapVertRef ? false : true ;

		o.root = oRoot && oRoot != null ? oRoot : o ;

		if (o.hmode  && isNaN(parseInt(o.root.style.left  ))) o.root.style.left   = "0px";
		if (o.vmode  && isNaN(parseInt(o.root.style.top   ))) o.root.style.top    = "0px";
		if (!o.hmode && isNaN(parseInt(o.root.style.right ))) o.root.style.right  = "0px";
		if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";

		o.minX	= typeof minX != 'undefined' ? minX : null;
		o.minY	= typeof minY != 'undefined' ? minY : null;
		o.maxX	= typeof maxX != 'undefined' ? maxX : null;
		o.maxY	= typeof maxY != 'undefined' ? maxY : null;

		o.xMapper = fXMapper ? fXMapper : null;
		o.yMapper = fYMapper ? fYMapper : null;

		o.root.onDragStart	= new Function();
		o.root.onDragEnd	= new Function();
		o.root.onDrag		= new Function();
	},

	start : function(e)
	{
		var o = Drag_box.obj = this;
		e = Drag_box.fixE(e);
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		o.root.onDragStart(x, y);

		o.lastMouseX	= e.clientX;
		o.lastMouseY	= e.clientY;

		if (o.hmode) {
			if (o.minX != null)	o.minMouseX	= e.clientX - x + o.minX;
			if (o.maxX != null)	o.maxMouseX	= o.minMouseX + o.maxX - o.minX;
		} else {
			if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
			if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
		}

		if (o.vmode) {
			if (o.minY != null)	o.minMouseY	= e.clientY - y + o.minY;
			if (o.maxY != null)	o.maxMouseY	= o.minMouseY + o.maxY - o.minY;
		} else {
			if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
			if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
		}

		document.onmousemove	= Drag_box.drag;
		document.onmouseup		= Drag_box.end;

		return false;
	},

	drag : function(e)
	{
		e = Drag_box.fixE(e);
		var o = Drag_box.obj;

		var ey	= e.clientY;
		var ex	= e.clientX;
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		var nx, ny;

		if (o.minX != null) ex = o.hmode ? Math.max(ex, o.minMouseX) : Math.min(ex, o.maxMouseX);
		if (o.maxX != null) ex = o.hmode ? Math.min(ex, o.maxMouseX) : Math.max(ex, o.minMouseX);
		if (o.minY != null) ey = o.vmode ? Math.max(ey, o.minMouseY) : Math.min(ey, o.maxMouseY);
		if (o.maxY != null) ey = o.vmode ? Math.min(ey, o.maxMouseY) : Math.max(ey, o.minMouseY);

		nx = x + ((ex - o.lastMouseX) * (o.hmode ? 1 : -1));
		ny = y + ((ey - o.lastMouseY) * (o.vmode ? 1 : -1));

		if (o.xMapper)		nx = o.xMapper(y)
		else if (o.yMapper)	ny = o.yMapper(x)

		Drag_box.obj.root.style[o.hmode ? "left" : "right"] = nx + "px";
		Drag_box.obj.root.style[o.vmode ? "top" : "bottom"] = ny + "px";
		Drag_box.obj.lastMouseX	= ex;
		Drag_box.obj.lastMouseY	= ey;

		Drag_box.obj.root.onDrag(nx, ny);
		return false;
	},

	end : function()
	{
		document.onmousemove = null;
		document.onmouseup   = null;
		Drag_box.obj.root.onDragEnd(	parseInt(Drag_box.obj.root.style[Drag_box.obj.hmode ? "left" : "right"]), 
									parseInt(Drag_box.obj.root.style[Drag_box.obj.vmode ? "top" : "bottom"]));
		Drag_box.obj = null;
	},

	fixE : function(e)
	{
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};
    /*
    * Montre / Cache un div
    */
    function DivStatus( nom, numero )
        {
            var divID = nom + numero;
            if ( document.getElementById && document.getElementById( divID ) ) // Pour les navigateurs récents
                {
                    Pdiv = document.getElementById( divID );
                    PcH = true;
                }
            else if ( document.all && document.all[ divID ] ) // Pour les veilles versions
                {
                    Pdiv = document.all[ divID ];
                    PcH = true;
                }
            else if ( document.layers && document.layers[ divID ] ) // Pour les très veilles versions
                {
                    Pdiv = document.layers[ divID ];
                    PcH = true;
                }
            else
                {
                   
                    PcH = false;
                }
            if ( PcH )
                {
                    Pdiv.className = ( Pdiv.className == 'cachediv' ) ? 'montrediv' : 'cachediv';
                }
        }
       
    /*
    * Cache tous les divs ayant le même préfixe
    */
    function CacheTout( nom )
        {  
            var NumDiv = 1;
            if ( document.getElementById ) // Pour les navigateurs récents
                {
                    while ( document.getElementById( nom + NumDiv) )
                        {
                            SetDiv = document.getElementById( nom + NumDiv );
                            if ( SetDiv && SetDiv.className != 'cachediv' )
                                {
                                    DivStatus( nom, NumDiv );
                                }
                            NumDiv++;
                        }
                }
            else if ( document.all ) // Pour les veilles versions
                {
                    while ( document.all[ nom + NumDiv ] )
                        {
                            SetDiv = document.all[ nom + NumDiv ];
                            if ( SetDiv && SetDiv.className != 'cachediv' )
                                {
                                    DivStatus( nom, NumDiv );
                                }
                            NumDiv++;
                        }
                }
            else if ( document.layers ) // Pour les très veilles versions
                {
                    while ( document.layers[ nom + NumDiv ] )
                        {
                            SetDiv = document.layers[ nom + NumDiv ];
                            if ( SetDiv && SetDiv.className != 'cachediv' )
                                {
                                    DivStatus( nom, NumDiv );
                                }
                            NumDiv++;
                        }
                }
        }
   
    /*
    * Montre tous les divs ayant le même préfixe
    */
    function MontreTout( nom )
        {  
            var NumDiv = 1;
            if ( document.getElementById ) // Pour les navigateurs récents
                {
                    while ( document.getElementById( nom + NumDiv) )
                        {
                            SetDiv = document.getElementById( nom + NumDiv );
                            if ( SetDiv && SetDiv.className != '' )
                                {
                                    DivStatus( nom, NumDiv );
                                }
                            NumDiv++;
                        }
                }
            else if ( document.all ) // Pour les veilles versions
                {
                    while ( document.all[ nom + NumDiv ] )
                        {
                            SetDiv = document.all[ nom + NumDiv ];
                            if ( SetDiv && SetDiv.className != '' )
                                {
                                    DivStatus( nom, NumDiv );
                                }
                            NumDiv++;
                        }
                }
            else if ( document.layers ) // Pour les très veilles versions
                {
                    while ( document.layers[ nom + NumDiv ] )
                        {
                            SetDiv = document.layers[ nom + NumDiv ];
                            if ( SetDiv && SetDiv.className != '' )
                                {
                                    DivStatus( nom, NumDiv );
                                }
                            NumDiv++;
                        }
                }
        }
       
    /*
    * Inverse les divs: Cache les divs visible et montre le divs cachés :)
    */
    function InverseTout( nom )
        {  
            var NumDiv = 1;
            if ( document.getElementById ) // Pour les navigateurs récents
                {
                    while ( document.getElementById( nom + NumDiv ) )
                        {
                            SetDiv = document.getElementById( nom + NumDiv );
                            DivStatus( nom, NumDiv );
                            NumDiv++;
                        }
                }
            else if ( document.all ) // Pour les veilles versions
                {
                    while ( document.all[ nom + NumDiv ] )
                        {
                            SetDiv = document.all[ nom + NumDiv ];
                            DivStatus( nom, NumDiv );
                            NumDiv++;
                        }
                }
            else if ( document.layers ) // Pour les très veilles versions
                {
                    while ( document.layers[ nom + NumDiv ] )
                        {
                            SetDiv = document.layers[ nom + NumDiv ];
                            DivStatus( nom, NumDiv );
                            NumDiv++;
                        }
                }
        }
/***************************************** POPUP *********************************************************/
var finish = true;

        function showHide(idElement, mode)  {
          if (document.getElementById(idElement))
            document.getElementById(idElement).style.display = mode;
        }

        function resetField(idElement)  {
          if (document.getElementById(idElement))
            document.getElementById(idElement).value = "";
        }

        function writeText(idElement, texte)  {
          if (document.getElementById(idElement))
            document.getElementById(idElement).innerText = texte;
        }
/******************************************* MINI CONNEX ************************************************/
function miniconnex_verifConnection()
{ 
    var login = document.getElementById("miniconn_login").value;
    var mdp = document.getElementById("miniconn_mdp").value;

    var xhr;
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();     }
          catch (e3) {  xhr = false;   }
        }
     }
 
    xhr.onreadystatechange  = function()
    { 
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)   {
                 rep = xhr.responseText;
                 
                 if (rep == "0")   {
                   location.href="index.php";
                 }
                 else  {
			jQuery("#bloc_connection").show();
			jQuery("#bloc_oublimdp").hide();
			if (document.getElementById("conn_login"))
                          document.getElementById("conn_login").value = login;
			if (document.getElementById("conn_mdp"))
                          document.getElementById("conn_mdp").value = mdp;
			if (document.getElementById("conn_messerreur"))   {
                          if (rep == 1)
                            document.getElementById("conn_messerreur").innerHTML = "Echec connexion";
                          if (rep == 2)
                            document.getElementById("conn_messerreur").innerHTML = "Votre compte n'est pas encore activé";
            		  if (rep == 3)  {
                            document.getElementById("conn_messerreur").innerHTML = "Un utilisateur est déjà connecté avec vos identifiants";
                          }
                          document.getElementById("conn_messerreur").style.display = "";
                        }
			jQuery("#panelWindow4").jWindowOpen({
				modal:true,
				center:true,
				drag : ".title",
				close:"#panelWindow4 .close",
				closeHoverClass:"hover",
				transfererFrom:"#btnShow4",
				transfererClass:"transferer"
			});
                 }
              }
              else  {
                 // Pour le debug
                 alert("Problem: " + xhr.statusText);
                 alert(xhr.responseText);
              }
         }
    };

   if (Trim(login) == "" && Trim(mdp) == "")  {
     return;
   }

   xhr.open("GET", "modules/form_connexion_xhtml/verif_connect.php?l="+login+"&p="+mdp,  true);
   xhr.send(null);
}
function include(file)
{
  var script  = document.createElement('script');
  script.src  = file;
  script.type = 'text/javascript';
  script.defer = true;
  document.getElementsByTagName('head').item(0).appendChild(script);
}
