/*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 min_year= 2006;
	var max_year= min_year + 10;
	var nbJours=  7;

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

		return res;
	}
	
		

	//Ajoute date de n (jours) jours
	function Ajout_date(d_day,d_month,d_year,jours) {
		var outputDate	 = new Date(d_year,d_month,d_day);
		var milliOffset  = outputDate.getTimezoneOffset() * 60000;
		var timeSecondes = outputDate.getTime() + (3600 * 24 * jours * 1000) - milliOffset;
		outputDate.setTime( timeSecondes );
		return outputDate;	
	}
	

	//é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;
	}
	
	// Fonction qui retourne le prochain samedi < 13 jours
	//ajoute n jours au résultat final
	function GetSaturday(maintenant,n) {
		var Aujourdhui = new Date(maintenant);
		var jour = Aujourdhui.getDate();
		var mois = Aujourdhui.getMonth();
		var annee = Aujourdhui.getYear();
		var day = Aujourdhui.getDay();
		var date;

		date2="";
	
		if (annee<1900) annee = annee + 1900; //sur Netscape 4.5 ou ultérieur
					
		date2=( ((jour<10) ? '0' + jour:jour) + '/' + ((mois<10) ? '0' + mois:mois) + '/' + annee);

			 if (day==0) date2=Ajout_date(jour,mois,annee,6+n);		//case 0 : //dimanche
		else if (day==1) date2=Ajout_date(jour,mois,annee,12+n);
		else if (day==2) date2=Ajout_date(jour,mois,annee,11+n);
		else if (day==3) date2=Ajout_date(jour,mois,annee,10+n);
		else if (day==4) date2=Ajout_date(jour,mois,annee,9+n);
		else if (day==5) date2=Ajout_date(jour,mois,annee,8+n);
		else if (day==6) date2=Ajout_date(jour,mois,annee,7+n);

//alert( "Aujourdhui = " + Aujourdhui + "\n" + "date2 = " + date2 + "\n" + "day : " + day );
		return date2;
	}

	// Fonction qui renvoie la date du jour
	function GetTodayDate(datejour) {
		Aoujourdhui = new Date(datejour);
		jour = Aoujourdhui.getDate();
		mois = Aoujourdhui.getMonth()+1;
		annee = Aoujourdhui.getFullYear();
		date=((mois<10)?'0'+mois:mois)+'/'+((jour<10)?'0'+jour:jour)+'/'+annee
		return date;
	}

	// Fonction qui renvoi le libellé du jour "Lundi", "Mardi", ...  
	// Le 27/02/2001 - Maher
	
	function GetJourIndex(d_day,d_month,d_year,jours) {

/**
alert (
	"day=" + d_day + "\n" +
	"month=" + d_month + "\n" +
	"year=" + d_year + "\n"
);
**/
		return new Date(d_year,d_month-1,d_day).getDay();
	}

	//fonction qui réaffiche en toutes lettres le jour de la semaine - Maher 19/04/2001		
	function Afficher_Jour_Aller(d_day,d_month,d_year) //départ
	{
		DateSaisie = new Date(d_year,d_month,d_day,0,0,0,0);
		jour = DateSaisie.getDay();

//alert( "DateSaisie : " + DateSaisie + "\njour=" + jour );

		if (jour == 0) document.image1.src=path+"dimanche.gif";
		if (jour == 1) document.image1.src=path+"lundi.gif";
		if (jour == 2) document.image1.src=path+"mardi.gif";
		if (jour == 3) document.image1.src=path+"mercredi.gif";
		if (jour == 4) document.image1.src=path+"jeudi.gif";
		if (jour == 5) document.image1.src=path+"vendredi.gif";
		if (jour == 6) document.image1.src=path+"samedi.gif";
	}

	//---------------------------------------------------------
	//
	//---------------------------------------------------------

	var tabSem = new Array();
	tabSem[0] = "dimanche.gif";
	tabSem[1] = "lundi.gif";
	tabSem[2] = "mardi.gif";
	tabSem[3] = "mercredi.gif";
	tabSem[4] = "jeudi.gif";
	tabSem[5] = "vendredi.gif";
	tabSem[6] = "samedi.gif";

	function getNextSaturday( maintenant ) {
		var Aujourdhui = new Date( maintenant );
		var day = Aujourdhui.getDay();
		if (day == 0) day = 6;
		else day = 13 - day;
		var milliOffset  = Aujourdhui.getTimezoneOffset() * 60000;
		var timeSecondes = Aujourdhui.getTime() + (3600 * 24 * day * 1000) - milliOffset;
		Aujourdhui.setTime( timeSecondes );
		return Aujourdhui;
	}

	function affDate( date ) {
		d = document.getElementById( "jourSamedi" );
		d.innerHTML = Afficher_Jour_Semaine( date.getDay() );
	}

	function miseAjour2( cal ) {
		var date = cal.date;
//alert( "DATE : " + date  );		
		explodeDate( date );
		return true;
	}

	function explodeDate( d ) {
		var val = d.getDate();
		imp = document.getElementById( "depart_day" );
		imp.value = val;
//alert( "depart_day : " + imp.value + "\n" );
		val = d.getMonth();
		imp = document.getElementById( "depart_month");
		imp.value = val + 1;
//alert( "depart_month : " + imp.value + "\n" );
		val = d.getYear();
		imp = document.getElementById( "depart_year");
		if (val < 1900) val += 1900;
		imp.value = val;
//alert( "depart_year : " + imp.value + "\n" );
		affDate( d );
	}
