/*
''' -----------------------------------------------------------------------------
''' Project : Terre d'Aventure
''' File : recherche.js
'''
''' -----------------------------------------------------------------------------
''' <summary>
''' Javascript utilisé pour le moteur de recherche (uniquement)
''' </summary>
''' <remarks>
''' </remarks>
''' <history>
''' [PCA] 18/08/2009 Création
''' </history>
''' -----------------------------------------------------------------------------
*/

function setTypeCircuit(idTypeCircuit, code_act){

	// look en fonction du type 
	resetForm(idTypeCircuit);
	renderSearchForm(idTypeCircuit);
	
	// recupère les informations proppre à ce type en Ajax (bezsoin d'un retour serveur)
	
	AJAX_setActivite(idTypeCircuit, code_act);
	AJAX_setTitre(idTypeCircuit);
	AJAX_setImage(idTypeCircuit);
	AJAX_setTheme(idTypeCircuit);	
	AJAX_setEnvironnement(idTypeCircuit);	
	AJAX_setLienMoteurRecherche(idTypeCircuit);
	
	// cherche le nb de circuit
	rechercheNbCircuit();
	}	

function resetForm(idTypeCircuit) 
	{
	// positionne les élements non requis du formulaire à des valeurs vide
	switch(idTypeCircuit)
		{
		case "1":
			// circuit accomp
			$("ageEnfant").selectedIndex = 0;
			break;
		case "2":
			// famille		
			for (var i = 0 ; i< document.getElementsByName('niveau').length ; i++)
				{
				document.getElementsByName('niveau')[i].checked = false;
				}
			
			break;
		case "3":
			// rando lib
			$("ageEnfant").selectedIndex = 0;
			$("dateDebut").value = "";
			$("variationjours").value = "";			
			break;
		default:
			// not set
			break;
		}
	}
	
// personnalise les composants du formulaire (pas besoin du serveur)
function renderSearchForm(idTypeCircuit)
	{		
	$("TypeCircuit").value = idTypeCircuit;
	switch(idTypeCircuit)
		{
		case "1":
			// circuit accomp
			$("displayEnfant").style.display = "none"
			$("displayDifficulte").style.display = "block";
			$("displayDateDepart").style.display = "block";
			break;
		case "2":
			// famille
			$("displayEnfant").style.display = "block";
			$("displayDifficulte").style.display = "none";
			$("displayDateDepart").style.display = "block";
			break;
		case "3":
			// rando lib
			$("displayEnfant").style.display = "block";
			$("displayDifficulte").style.display = "block";
			$("displayDateDepart").style.display = "none";
			break;
		default:
			// not set
			break;
		}
	}

function AJAX_setTitre(idTypeCircuit){
	var url='/terdav/recherche/inc/recherche.vb.asp';
	
	var data = "render=titre&typeCircuit=" + idTypeCircuit
		//alert(data);
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: data, onComplete: RenderAjax_titre});
	}		
	
	//////////////////////////////////////////////////////////
	// Fonction qui gère le retour une fois que la requête
	// de l'objet xmlhttp s'est exécutée
	function RenderAjax_titre(http)
	{
		if(http.readyState==4)
		{
			//readystate 4 - la page a fini de s'exécuter
			var res=http.responseText;
			//alert(res);
			if(res!='')
			{
        	$("titre").innerHTML = res;
			}
		}
	}

function AJAX_setImage(idTypeCircuit){

	var url='/terdav/recherche/inc/recherche.vb.asp';
	var data = "render=image&typeCircuit=" + idTypeCircuit
		//alert(data);
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: data, onComplete: RenderAjax_image});
	}		
	function RenderAjax_image(http)
		{
		if(http.readyState==4)
			{
			var res = http.responseText;
			if(res!='')
			{
        	$("imgTypeCircuit").src = res;
			}
		}
	}
	
function AJAX_setTheme(idTypeCircuit){
	var url='/terdav/recherche/inc/recherche.vb.asp';
	var data = "render=theme&typeCircuit=" + idTypeCircuit
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: data, onComplete: RenderAjax_theme});
	}		
	function RenderAjax_theme(http)
	{
		if(http.readyState==4)
		{
			var res=http.responseText;
			if(res!='')
			{
			$("t_theme").innerHTML = res;
			}
		}
	}
	
function AJAX_setActivite(idTypeCircuit, code_act){
	var url='/terdav/recherche/inc/recherche.vb.asp';
	var data = "render=activite&typeCircuit=" + idTypeCircuit + "&codeACT=" + code_act
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: data, onComplete: RenderAjax_activite});
	}		
	function RenderAjax_activite(http)
	{
		if(http.readyState==4)
		{
			var res=http.responseText;
			if(res!='')
			{
			eval(res);
			}
		}
	}	

function AJAX_setEnvironnement(idTypeCircuit){
	var url='/terdav/recherche/inc/recherche.vb.asp';
	var data = "render=environnement&typeCircuit=" + idTypeCircuit
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: data, onComplete: RenderAjax_environnement});
	}		
	function RenderAjax_environnement(http)
	{
		if(http.readyState==4)
		{
			var res=http.responseText;
			if(res!='')
			{
			$("environnement").innerHTML = res;
			}
		}
	}	

function AJAX_setLienMoteurRecherche(idTypeCircuit){
	var url='/terdav/recherche/inc/recherche.vb.asp';
	var data = "render=liens&typeCircuit=" + idTypeCircuit
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: data, onComplete: RenderAjax_lienMoteurRecherche});
	}		
	function RenderAjax_lienMoteurRecherche(http)
	{
		if(http.readyState==4)
		{
			var res=http.responseText;
			if(res!='')
			{
			$("lien_sup").innerHTML = res;
			}
		}
	}	
	
	
/**************************************************************************************
			Inteligence du formulaire de recherche (Ajax)
***************************************************************************************/
// récupération par ajax des région pour le pays séléctionné
function searchRegion(region_)
	{
	var url='/terdav/recherche/inc/recherche.vb.asp';
	var data = "render=region&pays=" + $("pays").value + "&region=" + region_
		
	
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: data, onComplete: loadRegion});
	}
	//////////////////////////////////////////////////////////
	// Fonction qui gère le retour une fois que la requête
	// de l'objet xmlhttp s'est exécutée
	function loadRegion(http)
		{
		if(http.readyState==4)
			{
			//readystate 4 - la page a fini de s'exécuter
			var res=http.responseText;
			//alert(res);
			if(res!='')
				{
				eval(res);
				// refresh le nb de circuit
				rechercheNbCircuit();
				}
			}
		}	
	
///////////////////////////////////////////////////////////////////////////////////////////
	// Fonction déclenchée sur l'evt onchange depuis le moteur principal
	// Exécute la page recherche.vb.asp avec les critères de recherche sélectionnés
///////////////////////////////////////////////////////////////////////////////////////////
function rechercheNbCircuit()
	{
	
	// look les listes valuées
	resetFilled();
	
	// image d'attente
	$("nombre_resultat").innerHTML 	= "<img src='/terdav/css/loading.gif' alt='Merci de patienter'>"
	var idTypeCircuit = $("TypeCircuit").value;
	
	var m_strPays=""
	var m_strregion=""
	var m_strDateDebut=""
	var m_intVariationJours=""
	var m_intDuree=""
	var m_tranquille=""
	var m_intBudget=""
	var m_intAgeEnfant=""
	var m_strCodeACT=""
	var m_strSsTheme=""
	var m_strSsType=""
	var m_strcodeCarac=""
	var m_strcodeContinent=""
	var m_strcodeCarac=""
	
	if ($("pays")) 
		{
		m_strPays = $("pays").value;
		}
		
	if ($("codeACT")) 
		{
		var m_ACT = $("codeACT");
		if(m_ACT.selectedIndex > -1 )
			{
			m_strCodeACT = m_ACT.options[m_ACT.selectedIndex].value;
			}
		}
	
	if ($("region")) 
		{
		m_strregion = $("region").value;
		}		

	if ($("dateDebut"))
		{
		var m_dateDebut = $("dateDebut");
		if(m_dateDebut.value.length>0)
			{
			if (estUneDate(m_dateDebut,'')==false)
				{
				alert("Veuillez saisir un date au format jj/mm/aaaa");
				m_dateDebut.focus();
				m_dateDebut.select();
				return false;
				}
			}
		m_strDateDebut = m_dateDebut.value
		}
		
	if ($("variationjours"))
		{
		var m_variationjours = $("variationjours");
		m_intVariationJours = m_variationjours.options[m_variationjours.selectedIndex].value
		}
		
	if ($("duree"))
		{
		m_intDuree = $("duree").value;
		}
		
	var oForm=document.forms['recherche'];
	
	if (document.getElementsByName('niveau'))
		{
		var L=document.getElementsByName('niveau').length;
		var m_niveau="";
	
		for (var i = 0 ; i< L ; i++)
			{
			if(document.getElementsByName('niveau')[i].checked)
				{
				m_niveau=m_niveau+ "&niveau=" +document.getElementsByName('niveau')[i].value;
				}
			}
		}
	
	if(document.getElementsByName('tranquille'))
		{
		m_tranquille=document.getElementsByName('tranquille').value;
		}
		
	if ($("budget"))
		{
		var m_budget = $("budget");
		m_intBudget = m_budget.options[m_budget.selectedIndex].value
		}
	
	if ($("ageEnfant"))
		{
		var m_ageEnfant = $("ageEnfant");
		m_intAgeEnfant = m_ageEnfant.options[m_ageEnfant.selectedIndex].value
		}

	if($('SsTheme')){m_strSsTheme = $('SsTheme').value;}
	
	if($('SsType')){m_strSsType = $('SsType').value;}
	
	if($('codeContinent')){m_strcodeContinent = $('codeContinent').value;}
	if($('codeCarac')){m_strcodeCarac = $('codeCarac').value;}
	
	var url='/terdav/recherche/inc/recherche.vb.asp';
	var data = "render=search"
		+ "&pays=" + escape(m_strPays)
		+ "&dateDebut=" + escape(m_strDateDebut)
		+ "&variationjours=" + escape(m_intVariationJours)
		+ "&duree=" + escape(m_intDuree)
		+ "&niveau=" + m_niveau
		+ "&budget=" + escape(m_intBudget)
		+ "&ageEnfant=" + escape(m_intAgeEnfant)
		+ "&typeCircuit=" + idTypeCircuit
		+ "&codeContinent=" + escape(m_strcodeContinent)
		+ "&codeCarac=" + escape(m_strcodeCarac)
		+ "&region=" + escape(m_strregion)
		+ "&codeACT=" + escape(m_strCodeACT)
			
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: data, onComplete: AfficherNbCircuit});
	}
	//////////////////////////////////////////////////////////
	// Fonction qui gère le retour une fois que la requête
	// de l'objet xmlhttp s'est exécutée
	function AfficherNbCircuit(http)
		{
		if(http.readyState==4)
			{
			//readystate 4 - la page a fini de s'exécuter
			var res=http.responseText;
			//alert(res);
			if(res!='')
				{
				$("nombre_resultat").innerHTML = res;
				
				if(res == "0")
					{
					$("bt_resultat").className = "bt_resultat_off";	
					$("bt_resultat").src="/terdav/img/bt_afficher_off.gif";
					
					if(isBrowserIE() == true)
						{
						$("bt_resultat").onclick=function(){};
						}
					else
						{
						$("bt_resultat").setAttribute("onClick","");
						}
					}
				else
					{					
					$("bt_resultat").className = "bt_resultat_on";			
					$("bt_resultat").src="/terdav/img/bt_afficher.gif";

					if(isBrowserIE() == true)
						{
						$("bt_resultat").onclick=function(){document.formulaire.submit();};
						}
					else
						{
						$("bt_resultat").setAttribute("onClick","document.formulaire.submit();");
						}
					}					
				}
			}
		}


///////////////////////////////////////////////////////////////////////////////////////////
	// Fonction déclenchée à la soumission du formulaire de recherche par code produit 
///////////////////////////////////////////////////////////////////////////////////////////
function rechercheByCodeProduit()
	{
	var m_codeProduit =  escape(document.getElementById('codeProduit').value);

	var url='/terdav/recherche/inc/recherche.vb.asp';

	var data = "render=findByCode&codeProduit=" +m_codeProduit;

	var myAjax = new Ajax.Request(url, {method: 'get', parameters: data, onComplete: RenderAjax_findCodeProduit});
	}

	function RenderAjax_findCodeProduit(http)
		{
		if(http.readyState==4)
			{
			var res = http.responseText;

			if(res != '')
				{	
				document.forms.rechercheByCode.action="/terdav/produit/fiche.asp";
				document.getElementById('codeProduit').value = res;
				document.forms.rechercheByCode.submit();
				}
			else
				{
				$("MsgByCode").innerHTML = "Ce code n'existe pas";
				}
			}
		}
	
	
// action détermé sur la touche ENTER
  document.onkeypress = function (e) 
	{
    var enterpressed = e? e.which == 13: window.event.keyCode == 13;
    if (enterpressed)
  	{
     rechercheByCodeProduit();
     return false;
    }
 }	
 
function isBrowserIE()
	{
	if(navigator.appVersion.match(/\bMSIE\b/))
		{
		return true;
		}
	return false;
	}
	
function resetFilled()
	{
	resetIfNotSelected("pays");
	resetIfNotSelected("region");
	resetIfNotSelected("codeACT");	
	resetIfNotSelected("duree");
	resetIfNotSelected("budget");
	resetIfNotSelected("ageEnfant");
	}
	
function resetIfNotSelected(controlListeID)
	{	
	if($(controlListeID))
		{
		$(controlListeID).style.backgroundColor = "#F2F0EF";
		
		if($(controlListeID).selectedIndex > 0 )
			{
			$(controlListeID).style.backgroundColor = "#CFD3D4";
			}	
		}
	}