/*le formulaire de saisie d'une date est parametrable
	Ainsi on pourra utiliser la fonction saisie_date() pour avoir 
	des formulaires de saisies 	d'une date sans meme repeter les codes.
	Il suffit juste d'appeler la fonction mais seules les variables 
	sont différentes.
	
	La syntaxe est comme suit :
	function saisie_date(var_day,var_month,var_year,form_result,default_value,evt)	
	var_day=la variable jour;
	var_month=la variable month;
	var_year=la variable mois;
	form_result=la variable qui contiendra la date complete 
				c-a-d le resultat; en principe un champ de saisie
	default_value=la date par défaut.De format "mm/dd/yyyy"
	evt=chaine des événements ou autre ex:"disabled","OnClick='....'"
*/
var min_day=01;
var max_day=31;
var month=new Array();
month[0]='Janvier ';
month[1]='Fevrier ';
month[2]='Mars ';
month[3]='Avril ';
month[4]='Mai ';
month[5]='Juin ';
month[6]='Juillet ';
month[7]='Ao&ucirc;t ';
month[8]='Septembre ';
month[9]='Octobre ';
month[10]='Novembre ';
month[11]='D&eacute;cembre ';
var min_year=2000;
var max_year=min_year+10;


/* Fonction qui donnera comme le mois + l'annee */
function leMois(i,mois,dateDuJour) {
var an,res;
	if (i<dateDuJour.getMonth())
		an=dateDuJour.getYear()+1
	else
		an=dateDuJour.getYear();
	if (an<1900) // sur netscape 4.5 ou ulterieur
		an=an+1900
	res=mois+an;
	return res;
}

	
/*fonction qui donnera la date complete en fonction 
	des variables jours,mois,et annee
	Le resultat sera affecté à "form_result"
*/
function verifier_date(form_day,form_month,form_year,form_result)
{
	//alert(form_day);
	//alert(form_month);
	//alert(form_year);

	var indice_day=form_day.selectedIndex;
	var day=indice_day+1;
	var indice_month=form_month.options[form_month.selectedIndex].value;
	var text_month=form_month.options[form_month.selectedIndex].text;
	var positionEspace=text_month.indexOf(' ');
	var year=text_month.substring(positionEspace,text_month.length);
	var month=indice_month;
	//alert(month);
	
	var indice_year=form_year.selectedIndex;
	//var year=min_year+indice_year;
	//var year=min_year;
	if(month==2)
	{
		// si on est Fevrier 
		if(year%4==0)
		{
			if(day>29) form_day.selectedIndex=28;
		}
		else 
			if (day>28) form_day.selectedIndex=27;
	}
	else
	{
		if(month<7)	var reste=0;
		else 
			if(month>8) var reste=1;
			
		if((month<7)||(month>8))
		{
			if(month%2==reste)//dernier jour =30
				if(day>29) form_day.selectedIndex=29;
		}
	}
	form_year.value=year;
	form_result.value=form_day.options[form_day.selectedIndex].value+"/"+form_month.options[form_month.selectedIndex].value+"/"+year;

}//fin fonction verifier

//fonction saisie_date
function saisie_date(var_day,var_month,var_year,form_result,dateJour,Trajet,evt)
{	
	
	var now=new Date(); 
	var date_default= new Date();
		date_default.setTime( now.getTime()+(Trajet * (24*3600*1000)) );
//		else
//			date_default.setTime( now.getTime()+(14* (24*3600*1000)) );

	//saisie jour
	document.write("<select name='"+var_day+"' OnChange='verifier_date(this,form."+var_month+",form."+var_year+","+form_result+")'"+evt+">");

		for(i=min_day;i<=max_day;i++)
		{
			if(date_default.getDate()==i)
				document.write("<option value='" +i+"' selected>"+i);
			else
				document.write("<option value='" +i+"'>"+i);				
		}	
	document.write("</select>");
	
	//saisie mois
	document.write(	"<select name='"+var_month+"' OnChange='verifier_date(form."+var_day+",this,form."+var_year+","+form_result+");'"+evt+">");		
		for(i=now.getMonth();i<month.length;i++)
		{
			if(date_default.getMonth()==i)		
				document.write("<option value='" +(i+1)+"' selected>"+leMois(i,month[i],now));
			else
				document.write("<option value='" +(i+1)+"'>"+leMois(i,month[i],now));
		}
		for(i=0;i<now.getMonth();i++)
		{
			document.write("<option value='" +(i+1)+"'>"+leMois(i,month[i],now));
		}
	document.write("</select>");
	
	//saisie année
	if (date_default.getYear()<1900)
		annee=date_default.getYear()+1900
	else
		annee=date_default.getYear();
	document.write(	"<input type='hidden' name='"+var_year+"' value='"+annee+"'>");
}//fin saisie_date

//fonction saisie_date 2
function saisie_date2(var_day,var_month,var_year,form_result,dateJour,Trajet,evt)
{	
	
	var now=new Date(); 
	var date_default= new Date();
		date_default.setTime( now.getTime()+(Trajet * (24*3600*1000)) );
//		else
//			date_default.setTime( now.getTime()+(14* (24*3600*1000)) );

	//saisie jour
	document.write("<select name='"+var_day+"' OnChange='verifier_date(this,form."+var_month+",form."+var_year+","+form_result+")'"+evt+">");

		for(i=min_day;i<=max_day;i++)
		{
			if(date_default.getDate()==i)
				document.write("<option value='" +i+"' selected>"+i);
			else
				document.write("<option value='" +i+"'>"+i);				
		}	
	document.write("</select></td>");
	
	//saisie mois
	document.write(	"<td><select name='"+var_month+"' OnChange='verifier_date(form."+var_day+",this,form."+var_year+","+form_result+");'"+evt+">");		
		for(i=now.getMonth();i<month.length;i++)
		{
			if(date_default.getMonth()==i)		
				document.write("<option value='" +(i+1)+"' selected>"+leMois(i,month[i],now));
			else
				document.write("<option value='" +(i+1)+"'>"+leMois(i,month[i],now));
		}
		for(i=0;i<now.getMonth();i++)
		{
			document.write("<option value='" +(i+1)+"'>"+leMois(i,month[i],now));
		}
	document.write("</select>");
	
	//saisie année
	if (date_default.getYear()<1900)
		annee=date_default.getYear()+1900
	else
		annee=date_default.getYear();
	document.write(	"<input type='hidden' name='"+var_year+"' value='"+annee+"'>");
}//fin sisie_date

//élimination des blancs n'importe où dans le champ
function Trim(val)
{
	var res='';
	for(i=0;i<val.length;i++)
	{
		if(!(val.charAt(i)==" "))
			res=res+val.charAt(i);
	}
	return res;
}

//retourne vraie si la valeur est numerique fausse sinon
function IsNumeric(val)
{
	var test=true;
	for(i=0;i<val.length;i++)
	{
		temp=val.charAt(i);
		if( !((temp>=0) && (temp<=9) ||(temp=='.')) )
		{
			test=false;
			break;
		}
	}
	return test;		
}

//teste un champ s'il est numerique au cours du saisie
// si on specifie l'evenement OnChange
function Test_Numeric(form)
{
	form.value=Trim(form.value);
	if(!IsNumeric(form.value))
	{
		alert("La valeur doit être numerique");
		form.focus();
	}
}

//compte la valeur d'une chaine 'str' dans 'val'
function Compter_Chaine(str,val)
{
	var temp=val;
	var compteur=0;
	var indice=0;
	var pos=0;
	for(var i=0;i<temp.length;i++)
	{
		pos=temp.indexOf(str,0);
		if(pos!=-1)
		{
			compteur++;
			temp=temp.substring(pos+str.length,temp.length);
		}
	}
	return compteur;
}

function IsMail(val)
{
	var test=false;
	if( (val.indexOf('@')!=-1) && (val.indexOf('@')!=val.length-1) &&  (val.indexOf('@')!=0))
	{
		if(Compter_Chaine('@',val)==1)
			test=true;
	}
	
	return test;

}

// Converti un texte en minuscule
function lowerCase(str)
{
	return str.toLowerCase();
}

// La 1ere lettre de chaque MOT est une MAJUSCULE et le reste en MINUSCULE
function ucWords(str)
{
	return (lowerCase(str) + '').replace(/^(.)|\s(.)/g, function ( $1 ) { return $1.toUpperCase(); } );
}

// Format JJ-MM-AAAA
function dateLetter(uneDate)
{
	var i = 0;
	
	var vJour = uneDate.substring(0,2);
	var vMois = uneDate.substring(3,5);
	var vAnnee = uneDate.substring(6,10);
	
	var listMois = new Array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
	uneDate = vJour + ' ';
	while (i < 12)
	{
		if (i == (vMois - 1))
			uneDate = uneDate + listMois[i];
		i++;
	}
	uneDate =  uneDate + ' ' + vAnnee;
	return (uneDate);
}

function VerifMoteur()
{
	var myRegExp = new RegExp("^[a-zA-Z]{3,}");
	
	aller = document.getElementById("provenance").value;
	retour = document.getElementById("destination").value;
	date_aller = document.getElementById("date_dpt").value;
	date_retour = document.getElementById("date_retour").value;
	
	if(myRegExp.test(aller) != true)
	{
		alert('Merci de remplir votre ville de départ');
		return false;
	}
	
	if(myRegExp.test(retour) != true)
	{
		alert('Merci de remplir votre ville de destination');
		return false;
	}
	
	// Message de chargement
	aller = ucWords(aller);
	retour = ucWords(retour);
	date_aller = dateLetter(date_aller);
	date_retour = dateLetter(date_retour);
	fileLoad = 'http://voldiscount.com/images/load2.swf';
	msgStatic = '<div id="mainContainer"><h1 style=\'font-size:20px;margin:0;padding:0;\'><img src="http://www.voldiscount.com/images/logo-voldiscount.gif"></h1><br /><h1 style=\'font-size:13px;font-family:Arial;color:#000000;margin:0;padding:0;\'>VolDiscount vous remercie de votre patience pendant que nous cherchons les meilleurs tarifs pour votre demande :<br /><br /><div style="font-size:18px;">' + aller + ' - ' + retour + '</div><br /><span style="font-size:12px;">du <span style="font-size:16px;">' + date_aller + '</span> au <span style="font-size:16px;">' + date_retour + '</span></span><br /><br /><br /><div align=\'center\'><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="32" height="32" style="height:32px; width:32px;">  <param name="movie" value="' + fileLoad + '">  <param name=quality value=high><param name="SCALE" value="noborder">  <embed src="' + fileLoad + '" style="height:32px; width:32px;" width="32" height="32" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" scale="noborder"></embed> </object></div></h1></div>';
	
	// Message de chargement pour le traitement du moteur
	return displayStaticMessage(msgStatic,false);
}