// ----------------------------------------------
// Util
// ----------------------------------------------
// getFormResa
function getFormResa()
{
	var FORM_NAME = 'Resa';
	return document.forms[FORM_NAME];
}
// formSubmit
function formSubmit(form)
{
	document.getElementById('valide').value = 'true';
	form.submit();
}
function getUrlForm(url)
{
	//var debug = true;
	var debug = false;
	if(debug)
	{
		url += '?debug=1';
	}
	return url;
}
function bloqueTouche()
{
	if(window.event)
	{
		if(event.ctrlKey) //Touche Ctrl enfoncée
		{
			if((event.keyCode == 78) || (event.keyCode == 104)) //touche n ou N enfoncée
				event.returnValue = false;
			if((event.keyCode == 84) || (event.keyCode == 116)) //touche t ou T enfoncée
				event.returnValue = false;
		}
	} 
	return true;
}
function returnFalse()
{
	return false;
}
document.onkeydown = bloqueTouche;
document.oncontextmenu = returnFalse;

// ----------------------------------------------
// Validation
// ----------------------------------------------
// date
function isDate2(s)
{
	var re = /^\d{2}\/\d{2}\/\d{2,4}$/;
	// format dd/mm/yyyy
	if (re.test(s))
	{
		
		var dd = s.substring(0,2);
		var mm = s.substring(3,5);
		if(s.length == 10)
		{
			var yyyy = s.substring(6,10);
		}
		else if(s.length == 8)
		{
			var yyyy = '20' + s.substring(6,8);
			
		}
		var datTest = new Date(yyyy, mm-1, dd);
		
		// date valide
		if ((yyyy == datTest.getFullYear()) && (mm-1 == datTest.getMonth()) && (dd == datTest.getDate()))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}
}

// entier signe
function isInteger(s)
{
	var re = /^(\+|-)?\d+$/;
	return re.test(s);
}

// float signe
function isFloat(s)
{
	var re = /^(((\+|-)?\d+(\.\d*)?)|((\+|-)?(\d*\.)?\d+))$/;
	return re.test(s);
}

function isDate(s)
{
	function GetFullYear(year) {
		return (year + parseInt(2000)) - ((year < 2029) ? 0 : 100);
  }
  var idxDay   = DateFORMATGB?3:1;
  var idxMonth = DateFORMATGB?1:3;
  var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$");
  var m = s.match(yearLastExp);
  if (m == null) {
      return null;
  }
  day   = m[idxDay];
  month = m[idxMonth];    
  year  = (m[5] && m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10))
  
  month -= 1;
  var date = new Date(year, month, day);
  return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate());
}

function getDate(s)
{
	function GetFullYear(year) {
		return (year + parseInt(2000)) - ((year < 2029) ? 0 : 100);
  }
  var idxDay   = DateFORMATGB?3:1;
  var idxMonth = DateFORMATGB?1:3;
  var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$");
  var m = s.match(yearLastExp);
  if (m == null) {
      return null;
  }
  day   = m[idxDay];
  month = m[idxMonth];    
  year  = (m[5] && m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10))
  
  month -= 1;
  var date = new Date(year, month, day);
  return date;
}

// email
function isEmail(s)
{
	var re = /^.+\@.+\..+$/;
	return re.test(s);
}

// vide
function isEmpty(s)
{
	return ((s == null) || (s.length == 0));
}

// ----------------------------------------------
// validForm
// ----------------------------------------------

function validForm()
{
	var form = getFormResa();
	document.getElementById('valide').value = 'true';
	form.submit();
}
// ----------------------------------------------
// LoginCgos.aspx.cs
// ----------------------------------------------
function validLoginCgos()
{
	var form = getFormResa();
	var dates = document.getElementsByTagName('input');
	var valid = true;
	for(i =0; i<dates.length; i++)
	{
		if(dates[i].name.indexOf('participant_date_0') >= 0)
		{
			if(!isDate(dates[i].value))
			{	
				valid = false;
				if(!valid)
					break;
			} 		
		}
	}
	if(!valid)
	{
		alert(unescape("La date de naissance de " + document.getElementById("participant_nom_0").value + " est obligatoire.\n Veuillez la renseigner, ainsi que celle de chaque participants au voyage."));
		return;
	}
	for(i =0; i<dates.length; i++)
	{
		if(dates[i].name.indexOf('participant_date_') >= 0)
		{
			if(!isDate(dates[i].value))
			{	
				valid = false;
				if(!valid)
					break;
			} 		
		}
	}
	if(!valid)
		valid = confirm(unescape("Les dates de naissance de certains membres ne sont pas remplies ou leur format n'est pas valide.\n Si vous confirmez, ces personnes ne participeront pas au voyage.\n Souhaitez vous continuer?"));
	if(valid)
	{
		document.getElementById('valide').value = true;
		form.submit();
	}
}

// ----------------------------------------------
// LoginVL.aspx.cs
// ----------------------------------------------
function validLoginVL()
{
	var form = getFormResa();
	var dates = document.getElementsByTagName('input');
	var e = '';
	if(document.getElementById('radio_numero_1').checked)
	{
		if(!validCodeClientVL())
			e += unescape(" - Le num%E9ro d'adh%E9rent n'est pas valide.\n");		
		if(document.getElementById('clco_id').value == '0')
			e += unescape(" - Veuillez indiquer votre code carte.\n");
	}
	if(e.length == 0)
	{
		if(document.getElementById('valide').value = true);
			form.submit();
	}
	else
		alert(e);
}

function validCodeClientVL()
{
	var value = document.getElementById('prefixe_numero').value + '/' + document.getElementById('numero').value;
	//si longeur != 9 code pas valide
	if(value.length != 9)
	{
		return false;				
	}
	else
	{
		var values = value.split('/');
		//si format != */* code pas valide
		if(values.length != 2 )
		{
			return false;
		}
		else
		{	
			//si format != 1/1234567  code pas valide 
			if(values[0].length != 1 || values[1].length != 7 || isNaN(parseInt(values[0])) || isNaN(parseInt(values[1])))
			{
				return false;	
			}
			else
			{	
				var test = parseInt(values[0]);
				var code = parseInt(values[1]);
				var cle = code % 11;
				if(cle == 10)
				{
					cle = 0;
				}
				if(cle == test)
				{
					return true;
				}
				else
				{
					return false;
				}						
			}
		}											
	}	
}

// ----------------------------------------------
// Participants.aspx.cs
// ----------------------------------------------
// validParticipants est deplacee dans le c#

function validNom(form)
{
	var noms = document.getElementsByTagName('input');
	for(i =0; i<noms.length; i++)
	{
		if(noms[i].name.indexOf('nom_') >= 0 & noms[i].name.indexOf('prenom_') < 0)
		{
			if(noms[i].value.length == 0)
			{	
				return false
			} 		
		}
	}
	return true;
}

function validPrenom(form)
{
	var prenoms = document.getElementsByTagName('input');
	for(i =0; i<prenoms.length; i++)
	{
		if(prenoms[i].name.indexOf('prenom_') >= 0 )
		{
			if(prenoms[i].value.length == 0)
			{	
				return false
			} 		
		}
	}
	return true;
}

function validAgeFormat(form)
{
	var ages = document.getElementsByTagName('input');
	/*var date = new Date();
	date = new Date(date.getFullYear() - 18, date.getMonth(), date.getDate());*/
	var valid = true;
	for(i =0; i<ages.length; i++)
	{
		if( ages[i].name.indexOf('date_') >= 0)
		{
			var ageIds = ages[i].name.split('_'); 
			var dateId = 'dateMin_' + ageIds[1] + '_' + ageIds[2];
			var dateMin = document.getElementById(dateId);
			var dateMinValue;
			var dateValue = getDate(ages[i].value);
			var isDateOk = true;
			if(dateMin && dateValue)
			{
				dateMinValue = getDate(dateMin.value);
				isDateOk = parseInt(dateValue.getTime()) > parseInt(dateMinValue.getTime());				
			}		
			if(ages[i].value.length == 0 || !isDate(ages[i].value) || !isDateOk)
			{	
				//var dateStr = date.getDate() +'/'+ (parseInt(date.getMonth()) + 1)  +'/'+ date.getFullYear();
				//ages[i].value = dateStr;
				valid = false;
			} 		
		}
	}
	return valid;
}

function validNbParticipants()
{
	var form = getFormResa();
	document.getElementById('valide').value = 'false';
	form.submit();
}

function changeParticipantCgos(current)
{
	if(current.value  == "-1")
		return;
	var ddls = document.getElementsByTagName('select');
	for(i =0; i<ddls.length; i++)
	{
		if(ddls[i].name.indexOf('participant_') >= 0 && ddls[i].name != current.name)
		{
			if(ddls[i].value == current.value)
			{	
				ddls[i].value = "-1";
			}
		}	
	}
}
// ----------------------------------------------
// Package.aspx.cs
// ----------------------------------------------

	function validPackageHebergement(ordre, checked)
	{
	var form = getFormResa();
	if(!checked)
	{
		form.submit();
		return;
	}
	var e = '';
	e += validPackageHebergementNombreParticipant(ordre);
	e += validPackageHebergementAge(ordre);	
	if (e.length == 0)
	{
		form.submit();
	}
	else
	{
		alert(unescape('Erreur de saisie :\n\n' + e));
		document.getElementById('item_' + ordre + '_valide').checked = false;
	}
}
function validPackageHebergementAge(ordre)
{
	var e = '';
	//pour tout les hebergements on vérifie que l'age des participant dedans est ok
	var nbHebergement = parseInt(document.getElementsByName('item_'+ ordre + '_nb_hebergement')[0].value);
	for(i = 1 ; i <= nbHebergement; i++)
	{
		e += TestAgeParticipants(ordre, i);	
	}
	return e;
}

function TestAgeParticipants(ordre, index)
{
	var e = '';
	//pour tout les participants 
	var nbParticipants = parseInt(document.getElementsByName('nb_participants_total')[0].value);
	var rang = 1;
	for(i = 0 ; i < nbParticipants; i++)
	{	
		//si participant dans l'hebergement, rang + 1
		if(document.getElementsByName('item_'+ ordre + '_participant_' + i)[i] && document.getElementsByName('item_'+ ordre + '_participant_' + i)[i].checked)		
		//document.getElementsByName('item_'+ ordre + '_participant_' + i).value == 'item_'+ ordre + '_participant_' + index + '_' + i)
		{
			// si age du participant > a l'age accepté --> errreur
			if(document.getElementsByName('item_' + ordre + '_hebergement_'+ index + '_age_max_' + rang)[0] && document.getElementsByName('item_' + ordre + '_participant_age_'+ index + '_' + i)[0] && getDate(document.getElementsByName('item_' + ordre + '_hebergement_'+ index + '_age_max_' + rang)[0].value) > getDate(document.getElementsByName('item_' + ordre + '_participant_age_'+ index + '_' + i)[0].value))
				e += "- La " + rang + "e personne de l'h%E9bergement " + index + " est trop ag%E9 (n%E9 apr%E8 le " + document.getElementsByName('item_' + ordre + '_hebergement_'+ index + '_age_max_' + rang)[0].value + ")\n";
			rang++;
		}
	}
	return e;
}	

function validPackageHebergementNombreParticipant(ordre)
{
	var e = '';
	//pour tout les hebergements on vérifie que l'age des participant dedans est ok
	var nbHebergement = parseInt(document.getElementsByName('item_'+ ordre + '_nb_hebergement')[0].value);
	for(index = 1 ; index <= nbHebergement ; index++)
	{
		e += TestNombreParticipants(ordre, index);
	}
	return e;
}

function TestNombreParticipants(ordre, index)
{
	var e = '';
	//pour tout les participants 
	var nbParticipants = parseInt(document.getElementsByName('nb_participants_total')[0].value);
	var rang = 0;
	for(i = 0 ; i < nbParticipants; i++)
	{
		//si participant dans l'hebergement, rang + 1
		if(document.getElementById('item_'+ ordre + '_participant_' + index + '_' + i).checked)
		{
			rang++;
		}
	}
	if(!document.getElementsByName('item_' + ordre + '_hebergement_'+ index + '_nb_max_participant')[0])
	alert('item_' + ordre + '_hebergement_'+ index + '_nb_max_participant');
	if(rang > parseInt(document.getElementsByName('item_' + ordre + '_hebergement_'+ index + '_nb_max_participant')[0].value))
		e += "- Il y a trop de participant dans l'h%E9bergement " + index + "\n"; 
	if(rang == 0)
		e += "- L'h%E9bergement " + index + " n'a pas de participant\n";
	return e;	
}

function valideItems(nbItem)
{
	var form = getFormResa();
	var valid = true;
	for(i = 1  ; i <= nbItem; i++)
	{
		var element = document.getElementsByName('item_'+ i + '_valide')[0];
		//si valide
		
		if(element.type == 'checkbox')
			valid = element.value == 'on' && element.checked && valid;	
		else
			valid = element.value == 'on' && valid;

		//alert(valid + ' : ' + i);
	}
	return valid;
}

function valideCalculPrix(nbItem)
{
	var form = getFormResa();
	var valid = valideItems(nbItem);	
	if(valid)
	{
		document.getElementsByName('calculPrix')[0].value = true;
		form.submit();
	}
	else
	{
		document.getElementsByName('calculPrix')[0].value = false;
		alert('- Veuillez confirmer tous les choix.');
	}		
}

function validePackage(nbItem)
{
	var form = getFormResa();
	var valid = valideItems(nbItem);
	if(valid)
	{
		document.getElementsByName('calculPrix')[0].value = true;
		document.getElementById('valide').value = true;
		form.submit();
	}
	else
	{
		document.getElementsByName('calculPrix')[0].value = false;
		alert('- Veuillez confirmer tous les choix.');
	}		
}

// ----------------------------------------------
// Coordonnees.aspx.cs
// ----------------------------------------------
// validInscrit & validNouveau dans le c#



// ----------------------------------------------
// Paiement.aspx.cs
// ----------------------------------------------


function ChangeQte()
{
			var form = getFormResa();
			form.submit();			
}
		
function verifDateMin(index, id)
		{
			var dateElementMin = document.getElementById('date_debut_' + index.toString() + '_' + id.toString());
			var dateElementMax = document.getElementById('date_fin_' + index.toString() + '_' + id.toString());
			var datesOk = (dateElementMin.value && dateElementMax.value)
			if(datesOk)
			{			 
			var dateMin = verifDate(dateElementMin.value);
			var dateMax = verifDate(dateElementMax.value);
			if(dateMin > dateMax)
				dateElementMax.value = dateElementMin.value;
			}
			var form = getFormResa();
			form.submit();
			
		}		
		function verifDateMax(index, id)
		{
			var dateElementMin = document.getElementById('date_debut_' + index.toString() + '_' + id.toString());
			var dateElementMax = document.getElementById('date_fin_' + index.toString() + '_' + id.toString());
			
			var datesOk = (dateElementMin.value && dateElementMax.value)
			if(datesOk)
			{			 
			var dateMin = verifDate(dateElementMin.value);
			var dateMax = verifDate(dateElementMax.value);
			if(dateMax < dateMin)
				dateElementMin.value = dateElementMax.value;
			}
			var form = getFormResa();
			form.submit();
		}
		
		function verifDate(value)
		{
			var date;

			var dateStr = value.split('/');
			if(dateStr[2].length == 2)
			{
				dateStr[2] = '20' + dateStr[2];
				date = new Date(dateStr[2], dateStr[1]-1, dateStr[0], 0, 0, 0, 0);
			}
			if(dateStr[2].length == 4)
			{	
				date = new Date(dateStr[2], dateStr[1]-1, dateStr[0], 0, 0, 0, 0);
			}
			return date;
		}
		function reDrawPaiement(radio)
		{
		var form = getFormResa();
		var multiPaiement = form.multi_paiement;
		multiPaiement.value = radio;
		var linkCb = document.getElementById('linkCb');	
		linkCb.href = "javascript:void(0);";
		linkCb.onclick = "javascript:void(0);";
		linkCb.innerHTML = "";
		var divCb = document.getElementById('divCb');	
		divCb.innerHTML = "Veuillez patientez pendant le rechargement de la page.";
		form.submit();			
		}
		
// ----------------------------------------------
// SaisieCb.aspx.cs
// ----------------------------------------------
		
		//dans venteTemplateSaisieCB
		

		function resizeIframe(height)
		{
			oFrame = document.getElementById('iFrameChoix');
			if(oFrame)
				oFrame.style.height = height+'px';
		}
		function printDevis()
		{
			//document.getElementById('action').style.visibility='hidden';	
			window.print();
		}
