//          ________
//          |/\/\/\|
//          | o o  |
//-----oOOO---(_---OOOo---------------------------------------------------------------------------------------
//
// Auteur      : Chanh T.Do [Thoransoft - 2008.12.17]
// Description : fichier contenant les fonctions ajax du site.
// JScript File
//------------------------------------------------------------------------------------------------------------
/**
* @fileOverview
  ajaxfunc.js [JScript File]: <br>
  Scripts de fonctions ajax utilisées dans le site<br>
  @author: Chanh T.Do [www.thoransoft.com - 2008.12.17] <br>
  Version 1.0 */


/** Fonction permettant de créer un objet de type XMLHttpRequest (xhr)
    @return - xmlHTTPRequest object */
function getNewXhr()
{
  var xhr;

  if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); }   //Firefox, Opera, Konqueror, Safari, ...
  else if (window.ActiveXObject) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); }   //Internet Explorer
  else { alert('javascript: XMLHttpRequest ERROR ...'); } // Navigateur ancien
  return xhr;
}


/** Fonction permettant de charger un document XML ou une méthode serveur en mode GET
    @param {string} URI - URI du document
    @param {string} callback_func - Fonction à appeler lors du retour du AJAX
    @param {string} responseType - Type de réponse du serveur (XML ou TEXT) */
function requestSrv(URI, callback_func, responseType)
{
  try
  {
    var xmlhttp = getNewXhr();
    xmlhttp.open('GET', URI, true);
    xmlhttp.onreadystatechange=function() { callBack(xmlhttp, callback_func, responseType); }
    xmlhttp.send(null);
  } catch(o) {alert(o);}
}


/** Fonction permettant de charger un document XML ou appeler une méthode serveur en mode POST.
    @param {string} URI - URI du document
    @param {string} callback_func - Fonction à appeler lors du retour du AJAX
    @param {string} responseType - Type de réponse du serveur (XML ou TEXT)
    @param {string} params - paramètres à passer à la méthode  */
function requestSrv_POST(URI, callback_func, responseType, params)
{
  try
  {
    var xmlhttp = getNewXhr();
    xmlhttp.open('POST', URI, true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("charset" , "ISO-8859-1");
    xmlhttp.setRequestHeader("Content-length", params.length);
    xmlhttp.setRequestHeader("Connection", "close");
    xmlhttp.send(params);
    xmlhttp.onreadystatechange=function() { callBack(xmlhttp, callback_func, responseType); }
  } catch(o) {alert(o);}
}


/** Fonction permettant de passer des paramètres à la fonction de callback
    @param {object} xmlhttp - Objet XMLHTTP
    @param {object} callback_func - Fonction à appeler lors du retour du AJAX
    @param {string} responseType - Type de réponse XML ou TEXT */
function callBack(xmlhttp, callback_func, responseType)
{
  if (xmlhttp.readyState==4)
  {
    if (responseType == 'XML') { callback_func(xmlhttp.responseXML); }
    else { callback_func(xmlhttp.responseText); }
  }
}


/** Fonction permettant de charger dynamiquement le contenu d'une page
    NOTE: Fonction de callback AJAX.
    @param {string} textdoc - Réponse en mode text du serveur */
function loadPageContent(textdoc)
{
  if (textdoc == 'error') { alert("Il y a une problème avec le serveur WEB. \nVeuillez réessayer un peu plus tard."); }
  else
  {
    //Modifier tous les chemins des images ou des animations FLASH.
    textdoc = textdoc.replace(/..\/images/gi, "images");
    document.getElementById('page_content').innerHTML = textdoc;

    //Activer l'acordéon pour la recherche s'il y en a un
    var eSearch = document.getElementById('search_content');
    if (eSearch != undefined)
    {
      YAHOO.lutsr.accordion.init();
      enableLabelClick();
    }

    //Pour les pages ayant des jscrollPane
    var eScrollPane = document.getElementById('pane');
    if (eScrollPane != undefined)
    {
      $('#pane').jScrollPane({showArrows:true, scrollbarWidth:7});
    }

    //Animation flash de la page
    var eDiv = document.getElementById('auteurs_anim');
    if (eDiv != undefined) { loadFlash('images/animation1.swf', 'auteurs_anim_swf', '735', '200', '5', '#ffffff', 'auteurs_anim'); }

    var eDiv = document.getElementById('livres_anim');
    if (eDiv != undefined) { loadFlash('images/animation2.swf', 'livres_anim_swf', '735', '200', '5', '#ffffff', 'livres_anim'); }
  }
}

