// JavaScript Document

//------------------------------------------------------------------------------------------
// VARIABLES GLOBALES
//------------------------------------------------------------------------------------------

//--- variables de gestion des calques ---
var margeX = new Array() ;     // distance entre le clic et le coin haut gauche de l'objet
var margeY = new Array() ;
var parentX = new Array() ;    // position de l'objet parent par rapport à la fenetre
var parentY = new Array() ;

var zindexMax = 10 ;   // pour que les calques se positionnent les uns sur les autres
var redim = new Array() ;   // pour mémoriser si le calque est en cours de redimensionnement


//---------------------------------------------------------------------------------------
// CLASSE SERIALIZER
//---------------------------------------------------------------------------------------
function Serializer () {

   //--- sérialization d'un objet ---	
   this.serialize = function (unObjet) {
	  var uneChaine = "" ; 
      for (propriete in unObjet) {
		  uneChaine += unObjet[propriete] + "~" ;
	  }
	  return uneChaine ;
   }
   
   //--- désérialization d'un objet ---
   this.deserialize = function (unObjet, uneChaine) {
	  var tabchaine = uneChaine.split("~") ;
	  var k = 0 ;
	  for (propriete in unObjet) {
		  unObjet[propriete] = tabchaine[k++] ;
	  }
	  return unObjet ;
   }   
	
}

//---------------------------------------------------------------------------------------
// CLASSE AJAX
//---------------------------------------------------------------------------------------
function Ajax () {

   //--- propriétés ---
   this.xhr = null ;        // variable de connexion ajax
   this.typefic ;           // variable qui contient soit "XML" soit "text"
   this.contenu = "" ;      // contenu de la reception
   var s = this ;
 
   //--- constructeur (création de l'objet de connexion ---
   if (window.XMLHttpRequest) {
      this.xhr = new XMLHttpRequest() ; 	
   } else {
      if (window.ActiveXObject) {
         this.xhr = new ActiveXObject ("Microsoft.XMLHTTP") ; 		 
	  } else {
         alert ("Votre navigateur n'est pas compatible avec Ajax") ;
	  }	
   }
   
   //--- si l'objet est construit, creation de la méthode de récupération ---
   if (this.xhr) {
	   
      //--- réception du serveur ---	  
	  
      this.recoit = function (nomfic, typefic) {
         this.xhr.onreadystatechange = function () {
            if (s.xhr.readyState == 4 && s.xhr.status == 200) { 
	           if (s.typefic=="XML") {
                  s.contenu = s.xhr.responseXML ;
			   } else {
                  s.contenu = s.xhr.responseText ;
			   }
		    }
	     }
         this.typefic = typefic ; 	   
         this.xhr.open("GET", nomfic, false) ;  
         this.xhr.send(null) ;
	  }

      //--- envoi vers le serveur ---
      this.envoi = function (nomfic, message) {
         this.xhr.open("POST", nomfic, false) ;
         this.xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//         this.xhr.setRequestHeader("Content-type", "charset=iso-8859-1");
	     this.xhr.send(message) ;
      }
	  
   }
   
}

//---------------------------------------------------------------------------------------
// FONCTIONS GENERALES 
//---------------------------------------------------------------------------------------

//--- changement de page ---
function versPage (page) {
	location.replace (page) ;
}

//--- creation d'un cookie ---
function setCookie (nom, valeur) {
   var aujourdhui = new Date() ;
   var expdate = new Date() ;
   expdate.setTime(aujourdhui.getTime() + (365*24*60*60*1000))
   document.cookie = nom + "=" + valeur + ";expires=" + expdate.toGMTString() ;
}

//--- récupération d'un cookie ---
function getCookie (nom) {
   
}

//--- vérification de l'existance d'un cookie ---
function existeCookie (nom) {
   return (document.cookie.indexOf(nom)!=-1) ;	
}


//---------------------------------------------------------------------------------------
// FONCTIONS RECUPEREES
//---------------------------------------------------------------------------------------

//--- Ouvre une fenetre à la taille d'une image (et sans entete) ---
function fenImage(nom, haut, larg){
   var neo_fen=window.open("", "fille", "height="+haut+", width="+larg+", dependent, alwayRaised");
   neo_fen.document.write("<img src='"+nom+"' title='Cliquez pour fermer' onClick='window.close();' />");
}

//Fonction permettant de connaître la position d'un objet
//par rapport au bord gauche de la page.
//Cet objet peut être à l'intérieur d'un autre objet.
function getLeft(MyObject)
    {
    if (MyObject.offsetParent)
        return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
    else 
        return (MyObject.offsetLeft);
    } 
//Fonction permettant de connaître la position d'un objet
//par rapport au bord haut de la page.
//Cet objet peut être à l'intérieur d'un autre objet.
function getTop(MyObject)
    {
    if (MyObject.offsetParent)
        return (MyObject.offsetTop + getTop(MyObject.offsetParent));
    else
        return (MyObject.offsetTop);
    }

