// Fonctions JavaScript

function VerifClient() {
	
	if( !document.forms['f_connexion_client'].elements['login_client'].value.length)
		{
			alert("Veuillez saisir votre identifiant");
			return false;
		}
		
	if( !document.forms['f_connexion_client'].elements['pass_client'].value.length)
		{
			alert("Veuillez sasir votre mot de passe");
			return false;
		}
}

function ComparerDates(Pdate1,Pdate2){

	// Compare 2 dates au format jj-mm-aaaa
	// Renvoye 0 si égalité, 1 si la première est supérieure, -1 inferieur
	//Pdate1.lastIndex=0;
	//Pdate2.lastIndex=0;
	var Tabdate1 = Pdate1.split ("-");
	var Tabdate2 = Pdate2.split ("-");
	
	//alert ("date1: "=Tabdate1[0]+Tabdate1[1]+Tabdate1[2]);
	
	var date1 = new Date(Tabdate1[2],Tabdate1[1]-1,Tabdate1[0]);
	var date2 = new Date(Tabdate2[2],Tabdate2[1]-1,Tabdate2[0]);
	
	if (date1.getTime() == date2.getTime()) 
		return 0;
	if (date1.getTime() > date2.getTime())
		return 1;
	return -1;
}


//verifie si une date est obsolete
function DatePerime(valeur)
{
	//revoit 1 si la date est hier ou vant, sinon 0
	var today=new Date();
	
	var Tabdate = valeur.split ("-");
	var laDate = new Date();
	laDate.setFullYear(Tabdate[2],Tabdate[1]-1,Tabdate[0]);
	
	if ( laDate.getTime()  < today.getTime() )
		return 1;
	return 0;
}
function DatePerimeUs(valeur)
{
	//revoit 1 si la date est hier ou vant, sinon 0
	var today=new Date();
	
	var Tabdate = valeur.split ("-");
	var laDate = new Date();
	laDate.setFullYear(Tabdate[0],Tabdate[1]-1,Tabdate[2]);
	
	if ( laDate.getTime()  < today.getTime() )
		return 1;
	return 0;
}
//calcul du nb de jour entre 2 dates
function NbJour(date1,date2)
{
	var debut = new Date();
	var fin = new Date();
	
	var Tabdate1=date1.split ("-");
	var Tabdate2=date2.split ("-");
	
	debut.setFullYear(Tabdate1[2],Tabdate1[1]-1,Tabdate1[0]);
	fin.setFullYear(Tabdate2[2],Tabdate2[1]-1,Tabdate2[0]);


	msPerDay = 24 * 60 * 60 * 1000 ; // Number of milliseconds per day
	
	joursDiff = (fin.getTime() - debut.getTime()) / msPerDay; ;
	if ( joursDiff >= 0)
		return (Math.round(joursDiff)+1);
	else return -1;

}


// Actualiser un formulaire
function EffacerForm (form)
{
	for(i=0; i<form.elements.length; i++)
	{
		if (form.elements[i].type == "text")
			form.elements[i].value= '';
		if (form.elements[i].type == "textarea")
			form.elements[i].text= '';
		if (form.elements[i].type == "select")
			form.elements[i].options[0].selected=true;
	}
}


//verification d'un radio
function ObtenirValeurRadio (radiobutton)
{
	if (radiobutton)
	{
		if (radiobutton.length == 1)
		{	
			return radiobutton.value;
		}
		else
			for (i=0;i<radiobutton.length;i++)
				if (radiobutton[i].checked) 
					return radiobutton[i].value;
	}
	return null;
}


function estFloat (valeur)
{
	//regExpFloat=/^[-+]?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?$/g;
	var virgule = /[^\.0-9]/g;
	var reg =/[0-9]+(\.[0-9]+)?/;
	var comptePoint= valeur.split (".");
	
	reg.lastIndex=0;
	virgule.lastIndex=0;
	
	if (comptePoint.length <3 && !virgule.test(valeur))
		return (reg.test(valeur));
	return false;
}

function estEntier(valeur,longueur)
{
	var regExpInt=/^[0-9]+$/g;
	regExpInt.lastIndex=0;
	if (valeur.length<=longueur)
		return regExpInt.test(valeur);
	return false;
}

function isValidEmail(address)
{	
	var reg =/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;
	reg.lastIndex=0;
	return (reg.test(address));
}

function isValidPassword(pass)
{
	if (pass.length<6)
		return false;
	return true;
}

function isValidZip(cp) //zipcode =code postal , et oui
{
	var reg=/^[0-9]+$/g;
	reg.lastIndex=0;
	return (reg.test(cp));
}

function isValidPhone(telF)
{
	var reg=/^[0-9]+$/g;
	reg.lastIndex=0;
		return (reg.test(telF));
}

function isDefined(ckVar){
	var DEFINED_V=true;
	function handleError() {
		DEFINED_V=false;
		return true;
	}
	var oldOnError=window.onerror;
	window.onerror=handleError;
	try {
	eval(ckVar);
	}catch (e)
	{ DEFINED_V=false;
	}
	window.onerror=oldOnError;
	return DEFINED_V;
}


/*bulles d'aides*/

var NS4 = (navigator.appName.indexOf("Netscape")>=0 && parseFloat(navigator.appVersion) >= 4 && parseFloat(navigator.appVersion) < 5)? true : false;
var IE4 = (document.all)? true : false;
var NS6 = (parseFloat(navigator.appVersion) >= 5 && navigator.appName.indexOf("Netscape")>=0 )? true: false; 
   


var lanceur=0;
var TIME= 1000;
var bulleStyle=null;
var attenteStyle=null;
if (!document.layers && !document.all && !document.getElementById)
   event="chut";  //pour apaiser NN3 et autres antiquites

function bulle(msg,evt,hauteur){
 
    
	var xfenetre,yfenetre,xpage,ypage,element=null;
	var offset= 15;           // decalage par defaut
	var bulleWidth=150;       // largeur par defaut 
	if (!hauteur) hauteur=40; // hauteur par dŽfaut

	if (NS4)
	{	
	    bulleStyle=document.layers['tip'];
   	 	bulleStyle.document.write('<layer bgColor="#ffffdd" '
       +'style="width:150px;border:1px solid black;color:black;">'
       + msg + '</layer>' );
    	bulleStyle.document.close();
    	xpage = evt.pageX ;
		ypage  = evt.pageY;
    	xfenetre = xpage ;
		yfenetre = ypage ;		
  	} 
			
	if (IE4)
	{
		
		element=document.all['tip'];
		xfenetre = evt.x;
		yfenetre = evt.y;		
		xpage=xfenetre;
		ypage=yfenetre;	
		if (document.body.scrollLeft) 
			xpage = xfenetre + document.body.scrollLeft ; 
		if (document.body.scrollTop) 
			ypage = yfenetre + document.body.scrollTop;
	}
	
 	if (NS6)
  	{
	 	element=document.getElementById('tip');
    	xfenetre = evt.clientX;
		
		yfenetre = evt.clientY;
    	xpage=xfenetre ;
		ypage=yfenetre;	
    	if(evt.pageX)
			xpage = evt.pageX;
    	if(evt.pageY)
			ypage  = evt.pageY;
  	}
    
  	if(element)
  	{
		bulleStyle=element.style;
		element.innerHTML=msg;
	}
		 	
	if(bulleStyle) 
	{
		 /* on met la bulle ˆ gauche du pointeur (si c'est possible) 
			et en haut du pointeur si on est assez bas dans l'Žcran */
					
		if (xfenetre > bulleWidth+offset)
			xpage=xpage-bulleWidth-offset;
		else
			xpage=xpage+15;
		if ( yfenetre > hauteur+offset )
			ypage=ypage-hauteur-offset;
		
		bulleStyle.width=bulleWidth;  
		if(typeof(bulleStyle.left)=='string')
		{
				bulleStyle.left=xpage+'px';
				bulleStyle.top=ypage+'px';  
		} 
		else 
		{
			bulleStyle.left=xpage;
			bulleStyle.top=ypage ;
		}
			
		/*if (lanceur)
		{
			clearTimeout (lanceur);
			lanceur=null;
		}*/
		lanceur=setTimeout ("bulleStyle.visibility='visible'", TIME);
	}
}
 
function couic()
{
	if(bulleStyle)
  		bulleStyle.visibility="hidden";
		
	if (lanceur)
	{
		clearTimeout (lanceur);
		lanceur=null;
	}
}

// attente pendant la recherche de disponibilite
function attenteBis ()
{
	var 	xpage= window.screenX+400,
			ypage= window.screenY+400,
			element=null;

	element=document.getElementById('tip');

  	if(element)
  	{
		attenteStyle= element.style;
		element.innerHTML=' Veuillez patienter ...<br/><img src="../../images/fond_divers/attente.gif" height="75" width="200" >';
		attenteStyle.backgroundColor="#ECEDDD";
		attenteStyle.color="#ff7800";
		attenteStyle.textAlign="center";
		attenteStyle.fontSize="14pt";
		attenteStyle.fontWeight="normal";
		attenteStyle.width="300px"; 
		attenteStyle.height="100px"; 
		attenteStyle.border="1px solid black"; 


		if(attenteStyle && typeof(attenteStyle.left)=='string')
		{
				attenteStyle.left=xpage+'px';
				attenteStyle.top=ypage+'px';  
		} 
		if(attenteStyle && typeof(attenteStyle.left)!='string')
		{
			attenteStyle.left=xpage;
			attenteStyle.top=ypage ;
		}
			
		attenteStyle.visibility='visible';
	}
}

function attente()
{
	var 	xpage=400,
			ypage=300,
			element=null;
	hauteur=100; // hauteur par dŽfaut

	if (NS4)
	{	
	    bulleStyle=document.layers['tip'];
   	 	bulleStyle.document.write('<layer bgColor="#ECEDDD" '
       +'style="width:300px;border:1px solid black;color:#ff7800;">Veuillez patienter ...<br/><img src="../../images/fond_divers/attente.gif" height="75" width="200" ></layer>' );
    	bulleStyle.document.close();
  	} 
			
	if (IE4)
	{
		element=document.all['tip'];
	}
	
 	if (NS6)
  	{
	 	element=document.getElementById('tip');
  	}
    
  	if(element)
  	{
		bulleStyle= element.style;
		element.innerHTML='<img src="../../images/fond_divers/attente.gif"  >';
		bulleStyle.backgroundColor="#ECEDDD";
		bulleStyle.color="#ff7800";
		bulleStyle.textAlign="center";
		bulleStyle.fontSize="14pt";
		bulleStyle.fontWeight="normal";
		bulleStyle.width="280px"; 
		bulleStyle.height="110px"; 
		bulleStyle.border="1px solid #CC0000"; 


		if(typeof(bulleStyle.left)=='string')
		{
				bulleStyle.left=xpage+'px';
				bulleStyle.top=ypage+'px';  
		} 
		else 
		{
			bulleStyle.left=xpage;
			bulleStyle.top=ypage ;
		}

		bulleStyle.visibility='visible';
	}	
}

// verification du numero de carte
function verify_ccard(inNumber, type)
{
	var total= 0;
	var tmp= 0;
	number = "";
	
	for(i = 0; i < inNumber.length; i++)
	{
		if(inNumber.charAt(i) >= "0" && inNumber.charAt(i) <= "9")
		number = number + inNumber.charAt(i);
	}
	
	if(number.length < 13)
		return 10;
	
	first= "" + number.charAt(0);
	second= "" + number.charAt(1);
	third= "" + number.charAt(2);
	firstTwo= first + second;
	firstFour = firstTwo + third + number.charAt(3);
	
	if(type == "M")
	{
		if(first != "5")										return 11;
		if(first == "5" && (second < "1" || second > "5") )		return 11;
		if(number.length != 16)									return 21;
	}
	
	if (type == "V")
	{
		if(first != "4")								return 12;
		if(number.length != 13 && number.length != 16)	return 22;
	}
	
	if (type == "A")
	{
		if (first != "3" || (second != "4" && second != "7"))	return 13;
		if(number.length != 15)									return 23;
	}
	
	for(loc = number.length - 2; loc >= 0; loc -= 2)
	{
		total+= number.charAt(loc +1) + ((number.charAt(loc) * 2)%9);
	}
	
	if(number.length % 2 > 0)
	total+= number.charAt(0);
	
	return (total % 10);
}

function analyseCB (cb,type)
{
	var answer= verify_ccard (cb, type);
	
	if (answer == 11 || answer == 12 || answer == 13)
		message+= "Prefix de la carte invalide \n";
	if (answer == 10 || answer == 21 || answer == 22 || answer == 23)
		message+= "Taille du numéro invalide \n";
	if (answer <=0 || answer == 1 || answer == 2 || answer == 3 || answer == 4 || answer == 5 || answer == 6 | answer == 7 || answer == 8 || answer == 9)
		message+= "Echec de verification, numéro invalide \n";
	
	if (message!= "") 
	{	alert(message);
		return false;
	}
	return true;
}
