/* l'URL ou se trouve les fichiers */
var default_url = "http://auxboucheesdoubles.fr/" 

/* ------------------------ */
/* -- Fonctions diverses -- */
function setCookie(nom, valeur, duree) {
	var JOUR_EN_MSEC = 3600000 * 24
	var aujourdhui = new Date()
	var expiration = new Date()
	if (duree == null || duree == 0)
		duree = 1
	expiration.setTime(aujourdhui.getTime() + JOUR_EN_MSEC * duree)
	document.cookie = nom + '=' + escape(valeur) + ';expires=' + expiration.toGMTString()
}
function getCookie(nom) {
	var cookie = new String(document.cookie)
	var index1 = cookie.indexOf(nom)
	if (-1 == index1 || "" == nom)
		return ''
	var index2 = cookie.indexOf(';', index1)
	if (-1 == index2)
		index2 = cookie.length
	return unescape(cookie.substring(index1 + nom.length + 1, index2))
}
function getNodeValue(obj,tag) {
  str = obj.getElementsByTagName(tag)[0].firstChild.nodeValue
  
  if (str != undefined && str != null)
    return str
  return "tag not find"
}

function working(visible) {
  var loader = $('loader')
  if (visible)
    loader.style.backgroundPosition="0px 0px"
  else
    loader.style.backgroundPosition="-16px 0px"
}
/* -- Fin de Fonctions diverses -- */
/* ------------------------------- */

function addPost(e) {
  Event.stop(e)
  var url     = default_url + 'guestbook.php'
  var nom     = encodeURIComponent($F("nom"))
  var mail    = encodeURIComponent($F("mail"))
  var message = encodeURIComponent($F("mess"))
  
	var sav_cookies = $("save")
	var save = -1
	if (sav_cookies != undefined && sav_cookies != null && sav_cookies.checked)
    save = 0
  setCookie("cook_nom", $F("nom"), save)
  setCookie("cook_mail", $F("mail"), save)
  
  var opts = { method : "post",
               parameters : "todo=addPost&nom="+nom+"&mail="+mail+"&message="+message,
               requestHeaders : ['Content-type', 'application/x-www-form-urlencoded'],
        			 onLoading : function(){working(true)},
               onComplete : voirMessages ,
               onFailed : function(){ 
                                      working (false)
                                      alert ("Insertion raté ...")
                                    },
               asynchronous : true };
  var req = new Ajax.Request(url, opts);

  return false;
}

function getMessages(originalRequest) {
  try {
    $("nom").value = getCookie("cook_nom");
    $("mail").value = getCookie("cook_mail");
    if (getCookie("cook_nom") != "")
      $("save").checked = true;
  } catch(e) {
    alert (e)
  }

  var messages = originalRequest.responseXML.getElementsByTagName('results');
  $('compteur').innerHTML = "" + getNodeValue(messages[0], 'totalmessages') + " messages"

  var messages = originalRequest.responseXML.getElementsByTagName('result');
  var i;
  var max = parseInt(messages.length);
  var messhtml = "<table width='100%'>";

  for (i=0;i<max;++i) {
    style=""
    if (i%2==0)
      style=" class='trStyle2' "
    
    messhtml += "<tr" + style + ">" +
                "<td>" + getNodeValue(messages[i], 'dateheure') + "</td>" +
                "<td>" + getNodeValue(messages[i], 'nom') + "</td>" +
                "<td>" + getNodeValue(messages[i], 'mail') + "</td>" +
                "<td>" + getNodeValue(messages[i], 'message') + "</td>" +
                "</tr>";
  }

  messhtml += "</table>";

  $("posts").innerHTML = messhtml;
  
  working(false);
}

function voirMessages (oRequest) {
  $("mess").value = "";

  // si on est bien apres l'ajout.
  if (oRequest.responseXML != undefined && oRequest.responseXML != null) {
    var messages = oRequest.responseXML.getElementsByTagName('results');
    var erreur = getNodeValue(messages[0], 'error');
    // en cas de mail non valide
    $("mail").className = "";
    if ($("error") != undefined )
      $("container").removeChild($("error"));
    
    if (erreur == "MAIL_KO") {
      // on met en évidence le champs d'où provient l'erreur.
      $("mail").className = "error";
      // on ajout un jolie libellé
      var texte_P = document.createTextNode("Adresse mail invalide");
      var P = document.createElement("P");
          P.id = "error";
          P.className = "error";
          P.appendChild(texte_P);
      $("container").insertBefore(P, $("loader"));
    // sinon on supprime les éventuels erreur précédente ...
    }
  }

  oRequest = undefined;

  var url     = default_url + 'guestbook.php'
  var opts = { method       : "get",
               parameters   : "todo=viewPosts",
        			 onLoading    : function(){working(true)},
               onComplete   : getMessages,
               asynchronous : true };
  var req = new Ajax.Request(url, opts);
  
  working(false);
}

Event.observe(window, 'load', voirMessages, false);

