/* ***************************************** Fonctions-outils ********************************************** */
function MM_findObj(n, d)
{
	var p,i,x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length)
	{
		d=parent.frames[n.substring(p+1)].document;
		n=n.substring(0,p);
	}
	
	if(!(x=d[n])&&d.all) x=d.all[n];
	
	for(i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_openBrWindow(theURL,winName,features)
{
	var tmp = window.open(theURL,winName,features);
	tmp.focus();
}

function PopupCentrer(page,largeur,hauteur,options)
{
	var top=(135);
	var left=(screen.width-largeur)/2;
	var tmp = window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
	tmp.focus();
}

function launch(newURL, newName, newFeatures, orgName)
{
	window.open(newURL, newName, newFeatures);
	window.name = orgName;
	return;
}

function valDel()
{
	return(confirm('Etes vous sur de vouloir supprimer ?'));
}

function CatchEnter()
{
	if(window.event && window.event.keyCode == 13)	{return true;}
	else											{return false;}
}

function isInteger(val)
{
	return /^\d+$/.test(val);
}

function isDecimal(val)
{
	//return /^\d*[,\.]?\d*$/.test(val);
	return( (/^\d*[,\.]?\d+$/.test(val)) || (/^\d+[,\.]?\d*$/.test(val)) );
}

function MM_validateForm()
{
	var i,p,q,nm,label,test,num,min,max,errors='',args=MM_validateForm.arguments;
	
	for(i = 0; i < (args.length-2); i += 3)
	{
		val		= MM_findObj(args[i]);
		label	= args[i+1];
		test	= args[i+2];
		
		if(val)
		{
			nm = val.name;
			if( (val=val.value) != "")
			{
				if(test.indexOf('isEmail') != -1)
				{
					p = val.indexOf('@');
					if( (p < 1) || (p == (val.length-1)) ){errors += '- Le champ "'+label+'" doit contenir une adresse e-mail.\n';}
				}
				else if(test != 'R')
				{
					if(test.indexOf('isINT') != -1)
					{
						if(!isInteger(val)){errors += '- Le champ "'+label+'" doit contenir un entier.\n';}
					}
					else if(test.indexOf('isDEC') != -1)
					{
						if(!isDecimal(val)){errors += '- Le champ "'+label+'" doit contenir un nombre décimal.\n';}
					}
					else
					{
						num = parseFloat(val);
						if(isNaN(val)){errors += '- Le champ "'+label+'" doit contenir un nombre.\n';}
						if(test.indexOf('inRange') != -1)
						{
							p = test.indexOf(':');
							min = test.substring(8, p);
							max = test.substring(p+1);
							if( (num < min) || (max < num) ){errors+='- Le champ "'+label+'" doit contenir un nombre entre '+min+' et '+max+'.\n';}
						}
					}
				}
			}
			else if(test.charAt(0) == 'R') errors += '- Le champ "'+label+'" est requis.\n';
		}
	}
	if(errors) alert('Les erreurs suivantes se sont produites:\n'+errors);
	document.MM_returnValue = (errors == '');
	return (errors == '');
}


/* ***************************************** Fonctions spécifiques ***************************************** */
function RetrouverMotDePasse()
{
	MM_findObj('imgRemindPassPro').style.display = 'none';
	MM_findObj('tableRemindPassPro').style.display = '';
}

// Message de confirmation avant que le client professionnel quitte l’espace professionnel :
//  -> Pour valider ou annuler sa sélection
//  -> Pour lui dire qu'il perdra aussi sa réservation
function LogoutConfirm()
{
	if(confirm('Etes-vous sûr de vouloir quitter l\'espace des professionnels ?\n1.Votre sélection de véhicules sera alors perdue.\n2.Votre réservation de véhicules du lot également.\n    Choisissez le bouton Annuler pour valider votre sélection.\n    Sinon cliquez sur le bouton OK.'))
	{
		window.location.href = 'index.asp';
	}
	else
	{
		//window.location.href = 'VoirSelectionPro.asp';
	}
}

/*function VideReservationConfirm()
{
}*/

function ChangeDateLot()
{
	// Le datetime actuel :
	DateNow = new Date();
	TimeNow = DateNow.getTime();
	
	// On s'ajuste avec la date du serveur SQL Server
	TimeNow = TimeNow + DeltaServerClient;
	
	// Le datetime différentiel :
	//DateDelta = new Date();
	//TimeDelta = DateDelta.setTime(TimeNow-TimeFin);
	
	// ATTENTION : calcul faux car les dates comparées sont une du serveur et une du client
	DeltaMilli = TimeFin-TimeNow;
	
	DeltaDay = Math.floor(DeltaMilli/1000/60/60/24);	// Calcul du nombre de jours compris dans le delta initial
	DeltaMilli = DeltaMilli - (DeltaDay*24*60*60*1000);	// On retire les jours du delta
	DeltaHour = Math.floor(DeltaMilli/1000/60/60);		// Calcul du nombre d'heures comprises dans le delta restant
	DeltaMilli = DeltaMilli - (DeltaHour*60*60*1000);	// On retire les heures du delta
	DeltaMinute = Math.floor(DeltaMilli/1000/60);		// Calcul du nombre de minutes comprises dans le delta restant
	DeltaMilli = DeltaMilli - (DeltaMinute*60*1000);	// On retire les minutes du delta
	DeltaSecond = Math.floor(DeltaMilli/1000);			// Calcul du nombre de secondes comprises dans le delta restant
	
	// Mise à jour du chrono
	//MM_findObj("DateLot").innerHTML = "24 h 30 mn 40 s";
	//MM_findObj("DateLot").innerHTML = "24 h 30 mn "+i+" s";
//	MM_findObj("DateLot").innerHTML = DateNow.toLocaleString();
//	MM_findObj("DateLot").innerHTML = DateFin.toLocaleString();
//	MM_findObj("DateLot").innerHTML = DateDelta.toLocaleString();
//	MM_findObj("DateLot").innerHTML = DeltaMilli;
	DateLotTxt = "";
	
	if(DeltaDay == 1)
		{DateLotTxt += DeltaDay+" jour ";}
	else
		{DateLotTxt += DeltaDay+" jours ";}
	
	DateLotTxt += DeltaHour+" h ";
	DateLotTxt += DeltaMinute+" mn ";
	DateLotTxt += DeltaSecond+" s ";
	
	if(MM_findObj("DateLot"))
		{MM_findObj("DateLot").innerHTML = DateLotTxt;}
	if(MM_findObj("DateLot2"))
		{MM_findObj("DateLot2").innerHTML = DateLotTxt;}
}

function DecompteFinLot()
{
	// Initialisation des variables
	// cf. le JavaScript : "onload = function() [...]" en fin des pages présentant le chrono
	
	// Mise en place d'un rappel de la fonction "ChangeDateLot()" toutes les 1000 millisecondes
	idInterval = window.setInterval("ChangeDateLot()",1000);
	
	// Si on veut arrêter la boucle de rappel...
	//if(i > 100000)
	//	{window.clearInterval(idInterval);}
}
