// 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


//------------------------------------------------------------------------------------------
// FONCTIONS SPECIFIQUES A LA FEUILLE livre d'or
//------------------------------------------------------------------------------------------

function enregLivre () {

   //--- récupération des informations saisies ---
   var lauteur = new String(document.getElementById('auteur').value) ;
   var lecontenu = new String(document.getElementById('contenulivre').value) ;

   //--- controle si les champs sont saisis ---
   if (lauteur=="" || lecontenu=="") {
      alert ("tous les champs sont obligatoires") ;
	  return false ;
   }

   //--- enregistrement des informations dans la base de données ---
   var chaine = "auteur="+lauteur+"&"+"contenu="+lecontenu ;
   var ajax = new Ajax () ;
   ajax.envoi ("serveur.php", chaine) ;
 
   //--- insertion directe des informations dans la page ---
   //var now = new Date() ;
   //var contenulivre = "Un message de <strong>'"+lauteur+"'</strong>" ;
   //contenulivre += " posté le "+now.getFullYear()+"-"+(now.getMonth()+1)+"-"+now.getDate() ;   
   //contenulivre += " "+now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+" :<br />" ;   
   //contenulivre += lecontenu+"<br /><br />" ;   
   //document.getElementById('monlivre').innerHTML= contenulivre + document.getElementById('monlivre').innerHTML;

   //--- remise à blanc des zones de saisie ---
   document.getElementById('auteur').value="" ;
   document.getElementById('contenulivre').value="" ;
 
}

//---------------------------------------------------------------------------------------
// 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);
    }

