//**********************************************************************************
//**********************************************************************************
//**                                                                              **
//**  Fichier inclu type JavaScript : fonctions-ajax.js                           **
//**                                                                              **
//**********************************************************************************
//**********************************************************************************


//**********************************************************************************
//*             FONCTION DE GESTION DES ACCES AJAX POUR TOUS NAVIGATEUR            *
//**********************************************************************************

var XMLHTTP = OpenAJAX();

function OpenAJAX()
{
  var Erreur = true;
  var AjaxObject = null;
  if( window.XMLHttpRequest ) 
  {
    try
    {
      AjaxObject = new XMLHttpRequest();
      Erreur = false;
      // alert( 'Open Ajax : cas 1 ' + AjaxObject );
    }
    catch( CatchError )
    {
    }
  }
  else if( window.ActiveXObject )
  { 
    // alert( 'Page web non compatible avec votre navigateur, fonction XMLHttpRequest non suportée.' );
    try
    {
      AjaxObject = new ActiveXObject( "Microsoft.XMLHTTP" );
      Erreur = false;
      //  alert( 'Open Ajax : cas 2 ' + AjaxObject );
    }
    catch( CatchError )
    {
      try
      {
        AjaxObject = new XMLHttpRequest();
        Erreur = false;
        // alert( 'Open Ajax : cas 3 ' + AjaxObject );
      }  
      catch( CatchError )
      {
      }
    }
  }
  if( Erreur )
  {
    // alert( 'Page web non compatible avec votre navigateur, fonction XMLHttpRequest non suportée.' );
    document.location.href="http://poste-julien.digitechnic.local/html/paiement/erreur_application.php?erreur=280"
  }
  return AjaxObject;
}

//**********************************************************************************
//*    FONCTION D'AJOUT D'UNE OPTION DANS UN SELECT A PARTIR D'UN OBJET [DOM]      *
//**********************************************************************************
function AddOption( Objet, Valeur, Libelle )
{
  if( Objet != null )
  {
    NouvelleOption = new Option( Valeur, Valeur, false, true );
    NouvelleOption.text = Libelle;
    Objet.options[ Objet.options.length ] = NouvelleOption;
  }
}

//**********************************************************************************
//*    FONCTION DE SUPPRESSION DES OPTIONS D'UN SELECT A PARTIR D'UN OBJET [DOM]   *
//**********************************************************************************

function VideOptions( Objet )
{
  if( Objet != null )
  {
    while( Objet.options.length > 0 ) Objet.options[ Objet.options.length - 1 ] = null;
  }
}



//**********************************************************************************
//*    FONCTION DE LECTURE DE LA VALEUR D'UN NOEUD SANS ECHEC D'UN OBJET [DOM]     *
//**********************************************************************************

function getFirstValue( owner, node )
{
  node_value = "";
  if( owner != null )
  {
    current_code = owner.getElementsByTagName(node);
    if( current_code != null && current_code.length == 1 )
    {
      if( current_code[0].childNodes.length >= 1 ) 
      {
        node_value = current_code[0].childNodes[0].nodeValue;       
      }
    }
    else
    {
      alert( 'getFirstValue != 1, node = ' + node );
    }
  }
  return node_value;
}

//**********************************************************************************
//*            FONCTION DE LECTURE DU NOM DE L'OPTION ACTIVE D'UN SELECT           *
//**********************************************************************************

function getSelected( owner )
{
  var Selected = '';
  if( owner != null )
  {
    for( var i = 0 ; i < owner.options.length ; i++ ) 
    {
      if( owner.options[i].selected )
      {
        Selected = owner.options[i].value;
      }
    }
  }
  return Selected;
}

//**********************************************************************************
//*            SELECTIONNE UNE OPTION A PARTIR DE SON NOM DANS UN SELECT           *
//**********************************************************************************

function SetSelected( owner, name )
{
  if( owner != null )
  {
    for( i = 0 ; i < owner.options.length ; i++ ) 
    {
      if( owner.options[i].value == name )
      {
        owner.options[i].selected = true;
      }
    }
  }
}

//**********************************************************************************
//*                        CHERCHE UNE OPTION DANS UN SELECT                       *
//**********************************************************************************

function isSetOption( owner, name )
{
  isSet = false;
  if( owner != null && name != '' )
  {
    for( i = 0 ; i < owner.options.length ; i++ ) 
    {
      if( owner.options[i].value == name )
      {
        isSet = true;
      }
    }
  }
  return isSet;
}

//**********************************************************************************
//*                           AJOUTE UN ARTICLE AU PANIER                          *
//**********************************************************************************

function AjoutArticle( CodeProduit, Qte, UID, Rattachement, NoSession )
{
  var vuid = 0;
  var requeteAJAX = XMLHTTP;
  requeteTEXT = '/html/requete_client_sql2xml.php?requete=ajout_panier&codeproduit=' + CodeProduit + '&qte=' + Qte + '&uid=' + UID + '&rattachement=' + Rattachement + '&session=' + NoSession;
  requeteAJAX.open('GET', requeteTEXT, false );
  requeteAJAX.send(null);
  if( requeteAJAX.status >= 200 && requeteAJAX.status <= 299 )
  {
    resultat_xml = requeteAJAX.responseXML;
    xdata = resultat_xml.getElementsByTagName('data');
    if( xdata != null && xdata.length == 1 )
    {
      var xresult = xdata[0].getElementsByTagName('result');
      if( xresult != null && xresult.length == 1 )
      {
        if( xresult[0].firstChild.data == "succes" )
        {
          var xpanier = xdata[0].getElementsByTagName('panier');
          if( xpanier != null && xresult.length == 1 )
          {
            vuid = getFirstValue( xpanier[0], 'uid' );
          }
        }
        else
        {
          alert( 'AjoutArticle, result: ' + xresult[0].firstChild.data );
        }
      }
    }
  }
  return vuid;
}

//**********************************************************************************
//*                          RECUPERE LE CONTENU DU PANIER                         *
//**********************************************************************************

function RecupPanier( NoSession )
{
  var xpanier = null;
  var requeteAJAX = XMLHTTP;
  requeteTEXT = '/html/requete_client_sql2xml.php?requete=lecture_panier&session=' + NoSession;
  requeteAJAX.open('GET', requeteTEXT, false );
  requeteAJAX.send(null);
  if( requeteAJAX.status >= 200 && requeteAJAX.status <= 299 )
  {
    resultat_xml = requeteAJAX.responseXML;
    xdata = resultat_xml.getElementsByTagName('data');
    if( xdata != null && xdata.length == 1 )
    {
      var xresult = xdata[0].getElementsByTagName('result');
      if( xresult != null && xresult.length == 1 )
      {
        if( xresult[0].firstChild.data == "succes" )
        {
          xpanier = xdata[0].getElementsByTagName('panier');
        }
        else
        {
          alert( xresult[0].firstChild.data );
        }
      }
    }
  }
  return xpanier;
}

//**********************************************************************************
//*              AFFICHE UN CONTENU HTML PROVENANT D'UNE REQUETE AJAX              *
//**********************************************************************************

function AfficheAjax2HMTL( Objet, Requete )
{
  var dom = document.getElementById( Objet );
  if( dom != null )
  {
    var requeteAJAX = XMLHTTP;
    requeteTEXT = '/html/requete_client_sql2xml.php?requete=' + Requete;
    requeteAJAX.open('GET', requeteTEXT, false );
    requeteAJAX.send(null);
    if( requeteAJAX.status >= 200 && requeteAJAX.status <= 299 )
    {
      dom.innerHTML = requeteAJAX.responseText;
    }
  }
}

//**********************************************************************************
//*                      FONCTIONS DE MISE EN CACHE DES IMAGES                     *
//**********************************************************************************

function MM_swapImgRestore() 
{ 
  //v3.0

  var i, x, a = document.MM_sr; 
  for( i = 0 ; a && i < a.length && ( x = a[i] ) && x.oSrc ; i++ ) 
  {
    x.src = x.oSrc;
  }
}

function MM_preloadImages() 
{ 
  //v3.0
  var d = document; 

  if( d.images )
  { 
    if( !d.MM_p ) d.MM_p = new Array();
    var i, j = d.MM_p.length, a = MM_preloadImages.arguments; 
    for( i = 0 ; i < a.length ; i++ )
    {
      if( a[i].indexOf("#") != 0 )
      { 
        d.MM_p[j] = new Image; 
        d.MM_p[j++].src = a[i];
      }
    }
  }
}

function MM_findObj(n, d) 
{ 
  //v4.0
  var p, i, x;  
  if( !d ) d = document; 
  if( ( p = n.indexOf("?") ) > 0 && parent.frames.length ) 
  {
    d = parent.frames[n.substring(p+1)].document; 
    n = n.substring(0,p);
  }
  if( !( x = d[n] ) && d.all ) x = d.all[n]; 
  for( i = 0 ; !x && i < d.forms.length ; i++ ) x = d.forms[i][n];
  for( i = 0 ; !x && d.layers && i < d.layers.length ; i++ ) x = MM_findObj( n, d.layers[i].document );
  if( !x && document.getElementById ) x = document.getElementById( n ); 
  return x;
}

function MM_swapImage() 
{ 
  //v3.0
  var i, j = 0, x, a = MM_swapImage.arguments; 
  document.MM_sr = new Array; 
  for( i = 0 ; i < (a.length - 2 ) ; i += 3 )
  {
    if( ( x = MM_findObj( a[i] ) ) != null )
    {
      document.MM_sr[j++] = x; 
      if( !x.oSrc ) x.oSrc = x.src; 
      x.src = a[i+2];
    }
  }
}

function MM_displayStatusMsg(msgStr) 
{ 
  //v1.0
  status = msgStr;
  document.MM_returnValue = true;
}

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };


