// ----------------------------------------------------
// KINHELIOS
// ----------------------------------------------------
// BBA - 26/01/2011
// ----------------------------------------------------
// Gestion de l'objet REQUETE
// ----------------------------------------------------


// ------------------------------------------------------------------------------------------------
// DECLARATION DU L'OBJET REQUETE
function obj_requete(obj_parent)
{
	this.monDoc = obj_parent;
	// ----------------------------------------------------	
}

// ----------------------------------------------------
// METHODE DE L'OBJET REQUETE
// ----------------------------------------------------
// ----------------------------------------------------
obj_requete.prototype.REQ_showResponse = function(vZone,vTxt,vEffect,vSpeed)
{
	 if (vSpeed=='undefined') vSpeed = 'normal';
       if (vEffect=='fade')
       {
           $('#'+vZone).fadeOut(vSpeed, function(){
               $('#'+vZone).html(vTxt).fadeIn(vSpeed);
           });
       } else if (vEffect=='slide') {
           $('#'+vZone).slideUp(vSpeed, function() {
               $('#'+vZone).html(vTxt).slideDown(vSpeed);
           })
       } else {
           $('#'+vZone).html(vTxt);
       }
}
// ----------------------------------------------------
obj_requete.prototype.REQ_dataResponse = function(vZone,vXML,obj_parent)
{
	// Traitement d'une reponse DATA suivant la zone demander
 switch(vZone)
 {
 	//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 	case "recherche_liste" :
 	
 		// transformation de l'XML en tableau JavaScript
 		obj_parent.recherche_liste = new Array();
 		
 		// on boucle sur chaque ligne de tableau recu (XML)
 		vXML.find('ligne').each(function()
 		{
 			// Recup d'une ligne de tableau dans l'XML
 			idArticle = $(this).find('idArticle').text();
 			nomArticle = $(this).find('nomArticle').text();
 			codeBarre = $(this).find('codeBarre').text();
 			decliLibel = $(this).find('decliLibel').text();
 			decliCode = $(this).find('decliCode').text();
 			prixUnitaire = $(this).find('prixUnitaire').text();
 			vteQte = $(this).find('vteQte').text();
 			prixLigne = $(this).find('prixLigne').text();
 			
 			//alert(idArticle + " / " + nomArticle + " / " + codeBarre + " / " + decliLibel + " / " + decliCode + " / " + prixUnitaire + " / " + vteQte + " / " + prixLigne);
 			
 			// Ajout de la ligne dans le tableau
 			obj_parent.recherche_liste.push(new obj_rech_ligne(idArticle,nomArticle,codeBarre,decliLibel,decliCode,prixUnitaire,vteQte,prixLigne));	 	
 		});
 		
 	break;
 	
 	//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 	case "panier_data" :
 		//
 		NumCommandeKinTPV = vXML.find('numKintpv').text(); 		
 		alert("N° de commande KinTPV : "+NumCommandeKinTPV); 
 		
 		obj_parent.listePanier_Vider();
 		
 	break;
 }
}
// ----------------------------------------------------
obj_requete.prototype.REQ_doAjaxFct = function(vZone,vMethod,vChoix,vDatasGet,vForm,vEffect,vSpeed,obj_parent)
{
	var baseDir = "http://"+$('input[name=adrServeur]').val(); //192.168.1.11:8080";
	var vData = null;
	var vUrl = baseDir + vChoix;
	objCourant = this;
	
	vMethod = vMethod.toUpperCase();
	vData = 'z='+vZone;
	// -----
	if(typeof(vDatasGet)!='undefined' && vDatasGet!='')
	{
     	vData += '&'+vDatasGet;
	}
	// -----
	if(vMethod=='POST')
       {
           if (vForm.length>0)
           {
               for (i = 0; i < vForm.length; i++)
               {
                   if (vForm.elements[i].name!='' && typeof(vForm.elements[i].name)!='undefined')
                   {
                       vData += '&'+vForm.elements[i].name+'='+escape(vForm.elements[i].value);
                   }
               }
           }
       }
       $.ajax({
           url: vUrl,
           data: vData,
           type: vMethod,
           dataType: 'xml',
           async: false,
           beforeSend: function(xhrObj)
           				{
                			xhrObj.setRequestHeader("Versionkintpv","5.020");
        				},
           complete: function(result,textStatus)
           				{
           					
               				var od = result.responseXML;
               				
               				// -- Pour recup de la zone à afficher
               				$(od).find('zone').each(function()
               										{
                   										var _zone_html = $(this).find('zhtml').text();                 			
                  										objCourant.REQ_showResponse(vZone,_zone_html,vEffect,vSpeed);
               										});
               										
               				// -- Pour recup d'une reponse data
               				$(od).find('data').each(function()
               										{
               											objCourant.REQ_dataResponse(vZone,$(this),obj_parent);
               										});
           				}
       		});
}
