﻿//          ________
//          |/\/\/\|
//          | 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");
    var contentLst = textdoc.split('<!-- Debut pageContent -->');
    var content = contentLst[1].split('<!-- Fin pageContent -->');
    document.getElementById('pageContent').innerHTML = content[0];

    //Pour les pages ayant des jscrollPane
    var eScrollPane = document.getElementById('pane');
    if (eScrollPane != undefined) { $('#pane').jScrollPane({showArrows:true}); }
    
    //Pour la carte google
    var eGmap = document.getElementById('gmap');
    if (eGmap != undefined)
    {
      initGMap('gmap');
      var mapTexte = (document.URL.indexOf('/fr/') > -1) ? "Voir une plus grande carte" : "See a larger map";
      var adrTexte = (document.URL.indexOf('/fr/') > -1) ? "&nbsp;&nbsp;&nbsp;7546, rue Boyer<br />&nbsp;&nbsp;&nbsp;Montréal, Québec<br />&nbsp;&nbsp;&nbsp;Canada, H2R 2R8<br/>&nbsp;&nbsp;&nbsp;" : "&nbsp;&nbsp;&nbsp;7546, rue Boyer<br />&nbsp;&nbsp;&nbsp;Montreal, Quebec<br />&nbsp;&nbsp;&nbsp;Canada, H2R 2R8<br/>&nbsp;&nbsp;&nbsp;" ;
      loadGmapByLatLng(45.544195, -73.618357, 15, "<span style='color:#333333; font:9px/15px Verdana,Sans-serif;'><img src='../images/logo_ziridis.gif' alt=''><br/>" + adrTexte + "<a target='_blank' href='http://maps.google.fr/maps?f=q&hl=en&geocode=&q=7546+Rue+Boyer,+Montr%C3%A9al,+QC,+Canada&sll=45.552165,-73.610716&sspn=0.039428,0.056906&ie=UTF8&ll=45.547116,-73.616982&spn=0.010519,0.018239&z=15&iwloc=addr&source=embed'>" + mapTexte + "</a></span>", true);
    }
    
    //Modifier le lien pour l'anglais et le titre de la page
    chgLng();
    document.title = "Ziridis Conseil Inc. - " + document.getElementById('pageInfo').getAttribute('pTitle');
  }
}

