/* CONSTANTES GLOBALES===================================================================================*/

//tableau contenant les options obligatories manipulées par l'internaute
var selected_input = new Array ();






/* FONCTION UTILITAIRES ===================================================================================*/

// coco ?
function monetaire (x) {
   var cents = Math.round(x*100) - Math.floor(x)*100;
   if (cents < 10) cents = "0" + cents;
   x = Math.floor(x) + "," + cents ;
   x = x + " €"
   return x;
}

//Transforme pArray en chaine de caractère puis cherche pValue2Find dedans.  Note : méthode la plus rapide sans tri
//-luc- Métaphore Multimédia
function quickFind (pArray, pValue2Find) {
  var strTemp = "|" + pArray.join("|") + "|";
  if (strTemp.indexOf("|"+pValue2Find+"|") == -1) return false;
  else return true;
}

//Met à jour le tableau global selected_input avec la valeur pValue.
//	Si pInput.value=0, supprime pValue de input_selected.
//	Si pInput déjà présent, ne fait rien
//	Si pInput est absent, insère dans le tableau
function updateSelectedInput (pInput) {	
	selected_input.push (pInput);	
	return;
}

//Renvoi false si toutes les valeurs du t ableau pArray ont 
//une valeur nulle ou vide
//-luc- 29/12/2006
function allValuesEmpty (pArray) {
	for (i=0 ; i < pArray.length ; i++) 
		if (document.getElementById (pArray[i]).value != "" || document.getElementById (pArray[i]).value != 0)
			return false
	return true;
}






/* FONCTIONS METIERS ========================================================================================*/

//Affiche/masque un contenu de texte 
//-luc- Metaphore Multimédia
function showHide (pImg, pContainer) {		
	if (document.getElementById(pContainer).style.display=='none') {
		document.getElementById(pContainer).style.display='inline';
		if (pImg != null)
			document.getElementById(pImg).src = 'images/reduire.gif';
		
	}
	else {
		document.getElementById(pContainer).style.display='none';
		if (pImg != null)
			document.getElementById(pImg).src = 'images/agrandir.gif';
	}		
}



//Ouvre un popup centré
// -luc- Métaphore Multimédia
function Center_Popup (pPage,pPageId,pWidth,pHeight,pOptions) {
	var top=(screen.height-pHeight)/2;
	var left=(screen.width-pWidth)/2;
	window.open(pPage,pPageId,"top="+top+",left="+left+",width="+pWidth+",height="+pHeight+","+pOptions);
}	



//Vérifie la cohérence du fomulaire 'payeur' et l'envoie
// -luc- Métaphore Multimédia
function checkFormPayeur (vForm) {
	var errorTxt = "";
	
	if (vForm.vLastName.value == "") 
		errorTxt = errorTxt + " - votre nom\n";
	if (vForm.vFirstName.value == "")
		errorTxt = errorTxt + "- votre prénom\n"; 
//			if (vForm.vTitle.value == "") 					//!!!!!
//				errorTxt = errorTxt + "- votre civilité\n"; 
//			if (vForm.vSex.value == "") 					//!!!!!
//				errorTxt = errorTxt + "- votre sexe\n"; 
	if (vForm.vAddress1.value == "") 				
		errorTxt = errorTxt + "- votre adresse\n"; 
		
	if (vForm.vZip.value == "") 					
		errorTxt = errorTxt + "- votre code postal\n"; 
	
	if (vForm.vCity.value == "") 					
		errorTxt = errorTxt + "- votre ville\n"; 
		
	if (vForm.vPhone.value == "") 					
		errorTxt = errorTxt + "- votre numéro de téléphone\n"; 
		
	if (vForm.vEmail.value == "") 					
		errorTxt = errorTxt + "- votre adresse email\n";

	if (!vForm.vCgv.checked) 					
		errorTxt = errorTxt + "- l'acceptation des Conditions Générales de ventes\n";	
		
	if (errorTxt != "") {
		errorTxt = "Attention, vous avez oublié de saisir les information suivantes :\n\n" + errorTxt;
		alert (errorTxt);
		return false;
	}
	else
		return true;
	
	return false;
}


//Vérifie la cohérence des formulaires de composants.
//-luc- Métaphore Multimédia
//
//@Paramètres :
//	isComponentRequired : booléen, si le composant n'est pas obligatoire, pas de vérification (ie le formulaire peut être vide)
//	pComponentType : Type de  composant 
//		1 ==> type Hébergement = test sur le paramètre xxxx_nbPers
//		2 ==> type Activité = test sur les paramètres xxxx_sdat et xxxx_qty 
function checkFormComponent (isComponentRequired, pComponentType) {
	
	errorMsg = "";
	switch (pComponentType) {
		case 1 :				
			if (selected_input.length == 0) {				
				alert ('Attention,\nvous n\'avez pas indiqué le nombre de personnes qui seront présentes dans votre hébergement.');
				return false;
			}					
			break;
		
		case 2 :				
			if (selected_input.length == 0 && isComponentRequired) {
				alert ('Attention, vous n\'avez sélectionné aucune option.');
				return false;
			}
			else if (allValuesEmpty (selected_input) && isComponentRequired) {
				alert ('Attention, vous n\'avez sélectionné aucune option.');
				return false;
			}
			else {
				for (i=0 ; i < selected_input.length ; i++) {	
					if (document.getElementById (selected_input[i].toString ()).value ==0 || document.getElementById (selected_input[i].toString ()).value =="") {
						//Si la quantité a été repassée à 0 ET que la date concernant le même input est présente ET n'est ni nulle ni vide
						if ((selected_input[i].toString ()).indexOf ("_qty") != -1 && document.getElementById (selected_input[i].slice (0, (selected_input[i].toString ()).indexOf ("_qty")) + '_sdat').value != "" && document.getElementById (selected_input[i].slice (0, (selected_input[i].toString ()).indexOf ("_qty")) + '_sdat').value != 0) 
							errorMsg = '- la quantité que vous souhaitez pour l\'option ' + document.getElementById (selected_input[i].slice (0, (selected_input[i].toString ()).indexOf ("_qty")) + '_lbl').value + '\n';

						//Si la date a été repassée à 0 ET que la quantité concernant le même input est présente ET n'est ni nulle ni vide
						else if (selected_input[i].indexOf ("_sdat") != -1 && document.getElementById (selected_input[i].slice (0, (selected_input[i].toString ()).indexOf ("_sdat")) + '_qty').value != "" && document.getElementById (selected_input[i].slice (0, (selected_input[i].toString ()).indexOf ("_sdat")) + '_qty').value != 0)
							errorMsg = '- à partir de quelle date souhaitez-vous bénéficier de l\'option ' + document.getElementById (selected_input[i].slice (0, (selected_input[i].toString ()).indexOf ("_sdat")) + '_lbl').value + '\n';								
					}
					else if (selected_input[i].indexOf ("_qty") != -1) {
						_2find = selected_input[i].slice (0, (selected_input[i].toString ()).indexOf ("_qty")) + '_sdat';
						if (!quickFind (selected_input,_2find))
							errorMsg = errorMsg + '- à partir de quelle date souhaitez-vous bénéficier de l\'option ' + document.getElementById (selected_input[i].slice (0, (selected_input[i].toString ()).indexOf ("_qty")) + '_lbl').value + '\n';
					}
					else if (selected_input[i].indexOf ("_sdat") != -1) { 
							_2find = selected_input[i].slice (0, (selected_input[i].toString ()).indexOf ("_sdat")) + '_qty';							
						if (!quickFind (selected_input,_2find)) 
							errorMsg = errorMsg + '- la quantité que vous souhaitez pour l\'option ' + document.getElementById (selected_input[i].slice (0, (selected_input[i].toString ()).indexOf ("_sdat")) + '_lbl').value + '\n';
					}
				}
			}				
			if (errorMsg != "") {
				alert ('Attention, vous avez oublié de saisir les informations suivantes :\n\n' + errorMsg);
				return false;
			}							
			break;
	}
	return true;
}//checkFormComponent ()


//Vérifie qu'une dates est bien sélectionnée dans la liste vDates
// du formulaire pForm et poste les infos dans un popup
//-luc- Métaphore Multimédia
function checkChoixDates (pForm, pFormId, pWidth, pHeight, pOptions) {						
	if (document.forms[pFormId].vDates.options[document.forms[pFormId].vDates.selectedIndex].value=="0") {
		alert ("Attention, vous devez sélectionner une date pour visualiser le détail de ce package.");										
		return false;
	}
	else {
		windowName = 'formTarget' + (new Date().getTime());
		pForm.target = windowName;			
		Center_Popup ("",windowName,pWidth,pHeight,pOptions);
		return true;
	}	
	return;
}//checkChoixDates ()

//Gère la sélection de l'assurance annulation
//Si la case à cocher pDataFee est coché, la valeur 
//contenue dans le champ hidden data[assurance_annul]est mise à jour.
function checkAssuranceAnnul (pDataFee) {
	if (document.getElementById(pDataFee).checked)
		document.getElementById('data[assurance_annul]').value=1; 
	else
		document.getElementById('data[assurance_annul]').value=0; 
}//checkAssuranceAnnul ()


//Ouvre pUrl dans un target=_blank et
//ferme la page qui a déclenché l'évènement opneClose ()
function openClose (pUrl) {
	window.open (pUrl, '', 'top=0,left=0,width='+screen.width+',height='+screen.height+',directories=yes, location=yes,menubar=yes,resizable=no,scrollbars=yes,status=yes,toolbar=yes');
	window.close ();
}

