



function initRecherche(){

  
	var myGlobalHandlers = {
		onCreate: function(){
			Element.show('dataLoad');
		},

		onComplete: function() {
			if(Ajax.activeRequestCount == 0){
				Element.hide('dataLoad');
			}
		}
	};

	Ajax.Responders.register(myGlobalHandlers);

  Element.hide('dataLoad');	
	
	$('frm_marque').disabled      = true;
	$('frm_modele').disabled      = true;

  listMarquesModeles();
}

function initBoutiquePanier(){
	if($('blocEVO'))
	{
		Event.observe('ca', 'focus', function(e){ $('ca').value = '';new Effect.Highlight($('ca'));});
		Event.observe('co', 'focus', function(e){ $('co').value = '';new Effect.Highlight($('co'));});
 		Event.observe('btnSetEVO', 'click', function(e){boutiqueUpd('setevo','ca='+$('ca').value+'&co='+$('co').value);});
	}
	if($('tt')){
	updST();
	new Effect.BlindDown($('tt'));
	}

 	boutique_panier_observeBoutons();
	 if($('cp')){
		 Event.observe('cp', 'focus', function(e){ $('cp').value = '';new Effect.Highlight($('cp'));});
		 Event.observe('btnSetCP', 'click', function(e){boutiqueUpd('setcp','cp='+$('cp').value);});
	 } 
	 if($('envoi')){
		 Event.observe('envoi', 'change', boutique_choix_envoi);
	 }
}

function initBoutiqueVitrine(){
	if($('tt')){
	updST();
	new Effect.Highlight($('tt'));
	}
	
	if($('blocEVO'))
	{
		Event.observe('ca', 'focus', function(e){ $('ca').value = '';new Effect.Highlight($('ca'));});
		Event.observe('co', 'focus', function(e){ $('co').value = '';new Effect.Highlight($('co'));});
 		Event.observe('btnSetEVO', 'click', function(e){boutiqueUpd('setevo','ca='+$('ca').value+'&co='+$('co').value);});
	}
}

function initBoutiqueDetailsItem(){
	if(itemOptions){
		new Effect.SlideDown($('tableauOptions'), {duration:1});	
	}
	Event.observe('ajout_item', 'click', boutique_ajout_item, false); 
	$('statut').innerHTML = '&nbsp;';
	updST();
	new Effect.Highlight($('tt'));
	$('ajout_item').disabled  = false;
	new Effect.Highlight($('ajout_item'));
}

function boutique_choix_option_safe(event)
{
	tabData	= new Array;
	requete = true;
	
	for(var i = 0; i < tableauOptions.length; i++)
    {
		  sel	= $(tableauOptions[i])[$(tableauOptions[i]).selectedIndex].value;
		  tabData.push(sel);
		  if(sel == 0)
		  {
			  // Une valeur est a 0, on fait pas de requete
			  requete = false;
		  }
	}
	
	if(requete){
		boutiqueUpd('change_options','code='+$('i').value+'&options='+tabData);
	}
}

function boutique_choix_envoi()
{
	$('btnCheckOut').disabled      = true;
	
	if($('envoi')[$('envoi').selectedIndex].value == 'null')
	{
		alert('Vous devez selectionner une méthode d\'envoi');
		return false;
	}
	else
	{
		boutiqueUpd('setenvoi','envoi='+$('envoi')[$('envoi').selectedIndex].value);	
		return true;
	}
}

function boutique_choix_option()
{
	boutique_choix('change_options');
}

function boutique_ajout()
{
	boutique_choix('ajout');
}

function boutique_subpanier()
{
	if($('envoi')){
		if(boutique_choix_envoi())
		{
			parent.location='/boutique/co/';
		}
	}else{
	parent.location='/boutique/co/';
	}
}


function boutique_choix(methode)
{
	tabData	= new Array;
	requete = true;
	
	for(var i = 0; i < tableauOptions.length; i++)
    {
		  sel	= $(tableauOptions[i])[$(tableauOptions[i]).selectedIndex].value;
		  tabData.push(sel);
		  if(sel == 0)
		  {
			  // Une valeur est a 0, on fait pas de requete
			  requete = false;
		  }
	}
	
	if(requete)
	{
		boutiqueUpd(methode,'code='+$('i').value+'&options='+tabData);
	}
	else
	{
		boutique_statut('Vous devez s&eacute;lectionner une option');	
	}
}


function boutiqueUpd(fn,param)
{
	var opts = {
    method: 'post',
    parameters: param,
	onComplete:function(request){Element.hide('dataLoad')},
	onLoading:function(request){Element.show('dataLoad')},
    onSuccess: evalReponse};
	var req = new Ajax.Request('/boutique/ajax/'+fn, opts);
}

function evalReponse(remote)
{
	$('statut').innerHTML = '&nbsp;';
	eval(remote.responseText);	
}

function boutique_changeImage(holder,photoId,lienId,photo)
{
	$(photoId).src	= "/images/boutique/petit/"+photo;
	$(lienId).href	= "javascript:PopupImage('/images/boutique/"+photo+"',320,240,'')";
	new Effect.Pulsate($('tablePhoto'),{duration:1,from:0.7});
}

function boutique_statut(texte)
{
	if($('statut'))
	{
		$('statut').innerHTML = texte;
		new Effect.Highlight($('statut'));
	}
}

function boutique_ajout_item()
{
	if(itemOptions){
		tabData		= new Array;
		optionOk	= true;
		for(var i = 0; i < tableauOptions.length; i++)
		{
			  val	= $(tableauOptions[i])[$(tableauOptions[i]).selectedIndex].value;
			  if(val == 0){optionOk	= false;}
			  tabData.push(val);
		}
		
		if(optionOk)
		{
			boutiqueUpd('ajout','code='+$('i').value+'&options='+tabData);
		}else
		{
			boutique_statut('Veuillez choisir un option');
		}	
	
	}else{
		boutiqueUpd('ajout','code='+$('i').value);
	}
}

	
function testcool(){
	alert('YES !');
}

function MDrequest(url,param,fn){ // url requeste, parametres, function si succes

	var opts = {
    method: 'post',
    parameters: param,
    onSuccess: fn,
    on404: function(t) {
        alert('Error 404: location "' + t.statusText + '"');
    },
    onFailure: function(t) {
        alert('Error ' + t.status + ' -- ' + t.statusText);
    }};

	var req = new Ajax.Request(url, opts);
}

function la(){
	MDrequest('/mdlive.php','f=la',receivedHandler)
}

function listMarquesModeles(){
	MDrequest('/mdlive.php','f=mm',receivedHandler)
}

function listProduits(){
	MDrequest('/mdlive.php','',receivedHandler)
}

function listProduits2(){
	MDrequest('/mdlive.php','f=affiche_child&parent=0&type=C',receivedHandlerNew)
}

function verifinfos(place){
	
	if(place == "adhesion1")
	{
		//$('verifInfosEtape1').disabled = true;
		var check_ok = 1;
	
		if(check_ok != '0')
		{
			var opts = {
			method: 'post',
			parameters: 'u='+$('surnom').value+'&e='+$('courriel').value+'&p='+$('mpasse').value+'&c='+$('chkSurnom').checked,
			onSuccess: evalReponse,
			onLoading: function(t){
				$('statut').innerHTML = 'Connection ...';
			},
			on404: function(t) {
				$('statut').innerHTML = 'Serveur introuvable ...';
			},
			onFailure: function(t) {
				$('statut').innerHTML = 'Echec de connection ...';
			}};
		
			var req = new Ajax.Request('/boutique/ajax/vn', opts);
		}
	}
	else if(place == "adhesion2")
	{
		var check_ok = 1;
		
		var typePaiement = Form.getInputs('txinfos','radio','typePaiement').find(function(radio) { return radio.checked; }).value;
		
		if($('achat'))
		{      
                  if(!$('courriel').value)
      		{
      		  new Effect.Highlight($('courriel'));
      		  boutique_statut('Vous devez entrer une adresse courriel');
      		  check_ok = 0;
      		  return false;
      		}
                  if($('courriel').value != $('courriel2').value)
      		{
      		  new Effect.Highlight($('courriel'));
      		  boutique_statut('Les adresses courriel sont diff&eacute;rentes');
      		  check_ok = 0;
      		  return false;
      		}
		}  		
		
		if(!$('nom').value)
		{
			new Effect.Highlight($('nom'));
			boutique_statut('Vous devez entrer votre nom et votre pr&eacute;nom');
			check_ok = 0;
		}
            else if(!$('prenom').value)
		{
			new Effect.Highlight($('prenom'));
			boutique_statut('Vous devez entrer votre nom et votre pr&eacute;nom');
			check_ok = 0;
		}
            else if(!$('tel1a').value)
		{
			new Effect.Highlight($('tel1a'));
			boutique_statut('Vous devez entrer votre num&eacute;ro de t&eacute;l&eacute;phone');
			check_ok = 0;
		}
            else if(!$('tel1b').value)
		{
			new Effect.Highlight($('tel1b'));
			boutique_statut('Vous devez entrer votre num&eacute;ro de t&eacute;l&eacute;phone');
			check_ok = 0;
		}
            else if(!$('tel1c').value)
		{
			new Effect.Highlight($('tel1c'));
			boutique_statut('Vous devez entrer votre num&eacute;ro de t&eacute;l&eacute;phone');
			check_ok = 0;
		}
		else if(!$('adresse').value)
		{
			new Effect.Highlight($('adresse'));
			boutique_statut('Vous devez entrer votre adresse');
			check_ok = 0;
		}
		else if(!$('ville').value)
		{
			new Effect.Highlight($('ville'));
			boutique_statut('Vous devez entrer votre ville');
			check_ok = 0;
		}
		else if(!$('codePostal').value)
		{
			new Effect.Highlight($('codePostal'));
			boutique_statut('Vous devez entrer votre code postal sous la forme (A2B 3C4)');
			check_ok = 0;
		}
		else if($('in_idRegion').value == 0)
		{
			new Effect.Highlight($('in_idRegion'));
			boutique_statut('Vous devez choisir une r&eacute;gion');
			check_ok = 0;
		}
		else if(typePaiement == 'interac')
		{
			// rien de specifique
		}
		else if(typePaiement == 'credit')
		{
			if(!$('cc_nom').value){
			new Effect.Highlight($('cc_nom'));
			boutique_statut('Vous devez entrer le nom du d&eacute;tenteur de la carte');
			check_ok = 0;
			}
			else if(!$('cc_num').value){
			new Effect.Highlight($('cc_num'));
			boutique_statut('Vous devez entrer le num&eacute;ro de la carte de cr&eacute;dit');
			check_ok = 0;
			}
			else if(!$('cc_verif').value){
			new Effect.Highlight($('cc_verif'));
			boutique_statut('Vous devez entrer le num&eacute;ro de v&eacute;rification de la carte de cr&eacute;dit (cryptogramme)');
			check_ok = 0;
			}
		}

		if(check_ok){
		boutique_statut(' ');
		boutique_t('etape2');
		boutique_t('etape3');
		return true;
		}else{return false;}
	}
	else
	{
			$('statut').innerHTML = 'Erreur MD034';
			return false;
	}
}
function verifnickmembre(){
	
	var check_ok = 1;
	
	if($('pa_surnom').value == ''){$('statut').innerHTML = 'Vous devez entrer un surnom';check_ok = 0;}
	if($('pa_email').value == ''){$('statut').innerHTML = 'Vous devez entrer une adresse courriel';check_ok = 0;}

	if(check_ok != '0')
	{
		var opts = {
		method: 'post',
		parameters: 'u='+$('pa_surnom').value+'&c=true&section=membres&e='+$('pa_email').value+'&p='+$('pa_mpasse').value,
		onSuccess: evalReponse,
		onLoading: function(t){
			$('statut').innerHTML = 'Connection ...';
		},
		on404: function(t) {
			$('statut').innerHTML = 'Serveur introuvable ...';
		},
		onFailure: function(t) {
			$('statut').innerHTML = 'Echec de connection ...';
		}};
	
		var req = new Ajax.Request('/boutique/ajax/vn', opts);
	}
}
function valide_carte(no){
	var opts = {
    method: 'post',
    parameters: 'f=validation&noCarte='+no,
    onSuccess: validateurcarte,
    onLoading: function(t){
		$('statut').innerHTML = 'Connection ...';
	},
	on404: function(t) {
        $('statut').innerHTML = 'Serveur introuvable ...';
    },
    onFailure: function(t) {
        $('statut').innerHTML = 'Echec de connection ...';
    }};

	var req = new Ajax.Request('/evolution/', opts);
}

function genFonction(listeXML){
  var fn						= getNodeValue(listeXML,'fn');
	var fnParam				= getNodeValue(listeXML,'fnParam');
  
  eval(fn)(listeXML,fnParam);
}

function listeModeles(listeXML,fnParam)
{
	var nomDropdown		= getNodeValue(listeXML,'options');
  var ddm						= $(nomDropdown);
  var sel						= ddm[ddm.selectedIndex].value;

	if(sel != '0')
	{
		MDrequest('/mdlive.php','f=mm&id='+sel,receivedHandler)
	}
}

function selModeles(listeXML,fnParam)
{
  var ddm						= $(getNodeValue(listeXML,'options'));
  var sel						= ddm[ddm.selectedIndex].value;

	if(sel != '0')
	{
		//$('modeletext').innerHTML	= 'Vous avez choisi le modèle '+ddm[ddm.selectedIndex].text;
	}
}

function listeAttributs(listeXML,fnParam)
{
	var nomDropdown		= getNodeValue(listeXML,'options');
	var codeFinal			= getNodeValue(listeXML,'final');
	var parent				= getNodeValue(listeXML,'parent');
  var ddm						= $(nomDropdown);
  var sel						= ddm[ddm.selectedIndex].value;
  
  
	if(sel != '0')
	{
		if(codeFinal != 1){
		MDrequest('/mdlive.php','i='+sel+'&p='+parent+'&f='+codeFinal,receivedHandler);
		}
	}
}

function errorHandler(remote){
	alert('Erreur survenue');
}

function validateurcarte(remote){
	$('statut').innerHTML = '';
	$('statut').innerHTML = remote.responseText;
}
function updST(){
	var opts = {
    method: 'post',
    onSuccess: updSTanswer,
    on404: function(t) {
        alert('Error 404: location "' + t.statusText + '"');
    },
    onFailure: function(t) {
        alert('Error ' + t.status + ' -- ' + t.statusText);
    }};
	var req = new Ajax.Request('/boutique/tx/st', opts);
}
function updSTanswer(remote){
	$('tp').innerHTML = remote.responseText;
	new Effect.Highlight($('tpt'));
}
function receivedHandlerNew(remote){		
	var listeXML 			= remote.responseXML.documentElement;
  var tagId					= getNodeValue(listeXML,'tagId');
  var tagVal				= getNodeValue(listeXML,'tagVal');
  var tagFn					= getNodeValue(listeXML,'fn');
  var nomDropdown		= getNodeValue(listeXML,'options');
  var code_final		= getNodeValue(listeXML,'final');
  var parent				= getNodeValue(listeXML,'parent');
  var destination		= getNodeValue(listeXML,'destination');
  var niveau				= getNodeValue(listeXML,'niveau');
  var nbres				  = getNodeValue(listeXML,'nbres');
  var suboptions		= getNodeValue(listeXML,'suboptions');


	if(nbres > 0){	
		if($(nomDropdown)){
		// si existe calcul position
		niveau++;
			PopulateXlist(listeXML,nomDropdown,tagId,tagVal,tagFn);
		}
		else{
			CreateAndPopulateXlist(listeXML,destination,nomDropdown,parent,tagId,tagVal,tagFn);
		}
	}else{
			$('debug').innerHTML	= 'Aucunes donnees';
	}
	
}

function receivedAttribs(remote){		
	var listeXML 			= remote.responseXML.documentElement;
  var tagId					= getNodeValue(listeXML,'tagId');
  var tagVal				= getNodeValue(listeXML,'tagVal');
  var tagFn					= getNodeValue(listeXML,'fn');
  var nomDropdown		= getNodeValue(listeXML,'options');
  var code_final		= getNodeValue(listeXML,'final');
  var parent				= getNodeValue(listeXML,'parent');
  var destination		= getNodeValue(listeXML,'destination');
  var niveau				= getNodeValue(listeXML,'niveau');
  var nbres				  = getNodeValue(listeXML,'nbres');
  var suboptions		= getNodeValue(listeXML,'suboptions');



	if($(nomDropdown)){
	// si existe calcul position
	niveau++;
		PopulateXlist(listeXML,nomDropdown,tagId,tagVal,tagFn);
	}
	else{
		CreateAndPopulateXlist(listeXML,destination,nomDropdown,parent,tagId,tagVal,tagFn);
	}

	
}

function receivedHandler(remote){		
	var listeXML 			= remote.responseXML.documentElement;
  var tagId					= getNodeValue(listeXML,'tagId');
  var tagVal				= getNodeValue(listeXML,'tagVal');
  var tagFn					= getNodeValue(listeXML,'fn');
  var nomDropdown		= getNodeValue(listeXML,'options');
  var code_final		= getNodeValue(listeXML,'final');
  var parent				= getNodeValue(listeXML,'parent');
  var destination		= getNodeValue(listeXML,'destination');
  var niveau				= getNodeValue(listeXML,'niveau');
  var nbres				  = getNodeValue(listeXML,'nbres');
  var suboptions		= getNodeValue(listeXML,'suboptions');
  
	if(nbres > 0){	
		if($(nomDropdown)){
		// si existe calcul position
		niveau++;
			PopulateXlist(listeXML,nomDropdown,tagId,tagVal,tagFn);
		}
		else{
			CreateAndPopulateXlist(listeXML,destination,nomDropdown,parent,tagId,tagVal,tagFn);
		}
	}else{
			//$('debug').innerHTML	= 'Aucunes donnees';
	}
	
}

function getNodeValue(parent, tagName) { 
 var node = parent.getElementsByTagName(tagName)[0]; 
 return (node && node.firstChild) ? node.firstChild.nodeValue : ''; 
}
	
function GetInnerText (node)
{
	 return (node.textContent || node.innerText || node.text) ;
}

function PopulateXlist(listeXML,nomDropdown,tagId,tagVal,tagFn) 
{
	var xList = $(nomDropdown);

  xList.disabled  = true;
  
	for (var count = xList.options.length-1; count >-1; count--)
	{
		xList.options[count] = null;
	}

	listeXMLid 			= listeXML.getElementsByTagName(tagId);
	listeXMLval		 	= listeXML.getElementsByTagName(tagVal);

	xList.options[xList.length] = new Option(' <------------------- Choisir ------------------->', '0',  false, false);
	
	for (var count = 0; count < listeXMLid.length; count++)
	{
		texte				= GetInnerText(listeXMLval[count]);
		valeur			= GetInnerText(listeXMLid[count]);
		xList.options[xList.length] = new Option(texte, valeur,  false, false);
	}
	
	// Si on a une valeur pour le tag option dans le XML, 
	// on observe les changements du select
	if(tagFn){
		Event.observe(nomDropdown, 'change', function(){genFonction(listeXML)}, false);
	}
	
	xList.disabled  = false;
	
}
 
function CreateAndPopulateXlist(listeXML,destination,nomDropdown,parent,tagId,tagVal,tagFn) 
{

	var destLayer					= $(destination);
	
	var nouveauSelect	 		= document.createElement('select');

	nouveauSelect.setAttribute("id", nomDropdown);
	nouveauSelect.setAttribute("name", nomDropdown);

	listeXMLid 			= listeXML.getElementsByTagName(tagId);
	listeXMLval		 	= listeXML.getElementsByTagName(tagVal);

	nouveauSelect.options[nouveauSelect.length] = new Option(' <------------------- Choisir ------------------->', '0',  false, false);
		
	for (var count = 0; count < listeXMLid.length; count++)
	{		
		texte				= GetInnerText(listeXMLval[count]);
		valeur			= GetInnerText(listeXMLid[count]);
		nouveauSelect.options[nouveauSelect.length] = new Option(texte, valeur,  false, false);
	}
	
	destLayer.appendChild(nouveauSelect);
	
	// Si on a une valeur pour le tag option dans le XML, 
	// on observe les changements du select

	if(tagFn){
		Event.observe(nouveauSelect, 'change', function(){genFonction(listeXML)}, false);
	}

}

function boutique_t(id)
{
	new Effect.toggle($(id));	
}

function autotab(current,to){
    if (current.getAttribute && 
      current.value.length==current.getAttribute("maxlength")) {
        to.focus() 
        }
}

function boutique_ctp(){
var typePaiement = Form.getInputs('txinfos','radio','typePaiement').find(function(radio) { return radio.checked; }).value;

      if(typePaiement == 'interac'){ 
             Effect.Appear($('div_interac')); new Effect.Fade($('div_credit'));
      }
      else if(typePaiement == 'credit'){ 
             Effect.Appear($('div_credit')); new Effect.Fade($('div_interac'));
      }else{ 
             Effect.Fade($('div_credit')); new Effect.Fade($('div_interac'));
      }
}
