var rex_date 		= /^0000-00-00|((19[89][0-9]|20[01][0-9])+[-]+(0[1-9]|1[0-2])+[-]+(0[1-9]|[12]+[0-9]|3[0-1]))$/
var rex_date_string = /^0000-00-00|((19[89][0-9]|20[01][0-9])+(0[1-9]|1[0-2])+(0[1-9]|[12]+[0-9]|3[0-1]))$/
var rex_pwd 		= /^[a-zA-Z0-9]{6,45}$/
var rex_login 		= /^[a-zA-Z0-9]{6,45}$/
var rex_phone 		= /^[0-9]{10,10}$/
var rex_mnemonique 	= /^[a-zA-Z0-9]|[ ]{2,45}$/
var rex_email 		= /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-_.-]{2,}[.][a-zA-Z]{2,3}$/
//var rex_codePostal  = /^[a-zA-Z]+[0-9]+[a-zA-Z]+[0-9]+[a-zA-Z]+[0-9]$/
var rex_codePostal  = /^([abceghjklmnprstvxyABCEGHJKLMNPRSTVXY][0-9][abceghjklmnprstvwxyzABCEGHJKLMNPRSTVWXYZ]{0,1}[0-9][abceghjklmnprstvwxyzABCEGHJKLMNPRSTVWXYZ][0-9]|^\d{5}(-\d{4})?)$/ 
var rex_numerique 	= /^[1-9]+[0-9]{0,5000}$/
var rex_balance 	= /^[0-9]{1,15}|[0-9]{1,15}[.][0-9]{0,2}$/
var reg_Pourcentage = /^([0-9]{1,2}|[0-9]{1,2}[.][0-9]{0,2})$/
var reg_decimal		= /^([0-9]{1,10}|[0-9]{1,10}[.][0-9]{0,2})$/

var reg_dateTime_HH_MM	= /^(19[89][0-9]|20[01][0-9])+[-]+(0[1-9]|1[0-2])+[-]+(0[1-9]|[12]+[0-9]|3[0-1])+[ ]+(0[0-9]|1[0-9]|2[0-4])+[:]+([0-5][0-9])$/	;
var reg_dateTime	= /^(19[89][0-9]|20[01][0-9])+[-]+(0[1-9]|1[0-2])+[-]+(0[1-9]|[12]+[0-9]|3[0-1])+[ ]+(0[0-9]|1[0-9]|2[0-4])+[:]+([0-5][0-9])+[:]+([0-5][0-9])$/	
var reg_dateTime_string = /^(19[89][0-9]|20[01][0-9])+(0[1-9]|1[0-2])+(0[1-9]|[12]+[0-9]|3[0-1])+(0[0-9]|1[0-9]|2[0-4])+([0-5][0-9])$/

var reg_yard		= /^([1-9]{1,1}|[1-9][0-9])$/
var reg_containerNb = /^[a-zA-Z]{4,4}[0-9]{6,7}$/
var erreur    		= true;
var messageErreur 	= ""; 

/*
	Vider champ et hilighter input en rouge
*/
function clear(id)
{
	var value = document.getElementById(id).value;
	//document.getElementById(id).focus();
	document.getElementById(id).className = 'erreurInput';
	erreur = false;
	//document.getElementById(id).onblur  = function() { this.className  = 'ordinaryInput'; erreur = true; } ;
	
}

/*
	25Mars2006 by Karim.safraoui@hostss.ca
	
	@template 		: expression regulière a respecter
	@id       		: id de l'input
	@name     		: identifiant de l'input dans le screen
	@value    		: valeur saisie
	@text     		: text a afficher en cas d'erreur
	@obligatoire 	: si input n'est pas obligatoire : sauter si value est vide, sinon verifier reg_exp
*/
function verifierTemplateExpReg(template, id, name, value, text, obligatoire)
{
	if(obligatoire == true && value == "")
	{
		clear(id);	
		erreur = false;
		//messageErreur += "Le champ "+name+" ne doit pas être vide <br/>";
	}
	else if (value != "" && template.exec(value) == null)
	{
		clear(id);	
		erreur = false;	
		messageErreur +=  text+"<br/>";
	}
}

//verifier si un champ donne n,est pas vide
function verifierChamp(id, value, text, obligatoire)
{	
	if(obligatoire == true && value == "")
	{
		//messageErreur +=  'Le champ '+text +' ne doit pas etre vide<br/>';		
		erreur = false;
		clear(id);		
	}
}
	
//verifier si un element a ete choisie dans le combo
function verifierSelectedOption(id, value, text, obligatoire)
{
	if(obligatoire == true && value == 0)
	{
		messageErreur +=  'Vous devez selectionner un element dans la liste : '+text+'<br/>';		
		erreur = false;
		//clear(id);
//		displayMsgErreur();
		//document.getElementById(id).focus();
	}
}

// 04-04-2008 @k.s.
//verifier que les deux mots de passes saisis sont identiques
function verifierDeuxPwd(pwd1,pwd2)
{	
	if(pwd1 != pwd2)
	{
		messageErreur +=  'Les deux mots de passes saisis, ne sont pas identiques<br/>';
		erreur = false;		
		clear('password');		
	}
}

function displayMsgErreur()
{
	if(erreur == false)
	{
		document.getElementById('msgErreur').innerHTML = "Veuillez corriger les erreurs dans les champs en rouge<br/>"+messageErreur;
		return false;	
		
	}
	else
	{	
		return true;
	}	
}

function valideContactBureau()
{
	var telBureau 	= document.getElementById('telBureau').value;
	var telBureau2 	= document.getElementById('telBureau2').value;
	var faxBureau 	= document.getElementById('faxBureau').value;
	var emailBureau = document.getElementById('emailBureau').value;

	verifierTemplateExpReg(rex_phone,'telBureau','Telephone',telBureau, 'Le telephone doit etre composé de 10 chiffres',true);
	verifierTemplateExpReg(rex_phone,'telBureau2','Telephone 2',telBureau2, 'Le telephone doit etre composé de 10 chiffres',false);
	verifierTemplateExpReg(rex_phone,'faxBureau','Telecopieur',faxBureau, 'Le Telecopieur doit etre composé de 10 chiffres',true);	
	verifierTemplateExpReg(rex_email,'emailBureau','Courriel',emailBureau, "Le courriel saisi n'est pas valide",false);	
}

function valideAdresse()
{

	var streetNumber =  document.getElementById('streetNumber').value;
	var streetName   =  document.getElementById('streetName').value;
	var city         =  document.getElementById('city').value;
	var province	 =  document.getElementById('province').value;
	var pays         =  document.getElementById('pays').value;
	var postalCode   =  document.getElementById('postalCode').value;
	var descriptionAdresse   =  document.getElementById('descriptionAdresse').value;	
	
	verifierChamp('streetNumber',streetNumber,'Numero',false);
	verifierChamp('streetName',streetName, 'Rue',false) 
	verifierChamp('city',city, 'Ville',false) 
	verifierSelectedOption('province',province, 'la Province',false) 
	verifierChamp('pays',pays, 'Pays',false) 
	verifierTemplateExpReg(rex_codePostal,'postalCode','Code Postal',postalCode, 'Le code postal non conforme: A1A1A1 ou 12345 ou 12345-6789',false);	
	verifierChamp('descriptionAdresse',descriptionAdresse,'Description',false);
}

function validerContact()
{
	var firstName = document.getElementById('firstName').value;
	var lastName  = document.getElementById('lastName').value;
	var tel1      = document.getElementById('tel1').value;
	var tel2      = document.getElementById('tel2').value;
	var poste     = document.getElementById('poste').value;
	var email     = document.getElementById('email').value;
	var descriptionContact  = document.getElementById('descriptionContact').value;
	
	verifierChamp('firstName',firstName,'Prenom',true);
	verifierChamp('lastName',lastName, 'lastName',true);
	verifierTemplateExpReg(rex_phone,'tel1','Telephone',tel1, 'Le telephone doit etre composé de 10 chiffres',false);
	verifierTemplateExpReg(rex_phone,'tel2','Cellulaire',tel2, 'Le cellulaire doit etre composé de 10 chiffres',false);
	verifierTemplateExpReg(rex_email,'email','Courriel',email, "Le courriel saisi n'est pas valide",false);	
	verifierTemplateExpReg(rex_numerique,'poste','Poste',poste, "Le numero de poste saisi n'est pas valide",false);
	verifierChamp('descriptionContact',descriptionContact,'Remarque',false);
}

function validerParametre1()
{
	var waitingTimeRate		= document.getElementById('waitingTimeRate').value;
	var freeHours			= document.getElementById('freeHours').value;
	var scaleOnceRate		= document.getElementById('scaleOnceRate').value;
	var scaleTwiceRate		= document.getElementById('scaleTwiceRate').value;
	var dropCharge			= document.getElementById('dropCharge').value;
	var secondDrop			= document.getElementById('secondDrop').value;
	var inbond				= document.getElementById('inbond').value;
	var chassisDetentionRate= document.getElementById('chassisDetentionRate').value;	
	var yardStorage			= document.getElementById('yardStorage').value;
	var fuelSurchargeHorsZone= document.getElementById('fuelSurchargeHorsZone').value;
	verifierTemplateExpReg(reg_decimal,'waitingTimeRate','Taux Temps Attente',waitingTimeRate, 'Taux Temps Attente : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_decimal,'freeHours','Heures Gratuites',freeHours, 'Heures Gratuites : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_decimal,'scaleOnceRate','Une Pesée',scaleOnceRate, 'Une Pesée : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_decimal,'scaleTwiceRate','Deux Pesée',scaleTwiceRate, 'Deux Pesée : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_decimal,'dropCharge','Drop Charge',dropCharge, 'Drop Charge : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_decimal,'secondDrop','Second Drop',secondDrop, 'Second Drop : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_decimal,'inbond','InBond',inbond, 'InBond : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_decimal,'chassisDetentionRate','Detention Chassis',chassisDetentionRate, 'Detention Chassis : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_decimal,'yardStorage','Yard Storage',yardStorage, 'Yard Storage : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_Pourcentage,'fuelSurchargeHorsZone','Fuel Surcharge',fuelSurchargeHorsZone, 'Fuel Surcharge : Le text saisi doit etre un nombre decimal',false);
}

function validerParametre2()
{
	var Amount0				= document.getElementById('Amount0').value;
	var FuelSurcharge0		= document.getElementById('FuelSurcharge0').value;
	var ZoneDescription0	= document.getElementById('ZoneDescription0').value;
	var Amount1				= document.getElementById('Amount1').value;
	var FuelSurcharge1		= document.getElementById('FuelSurcharge1').value;
	var ZoneDescription1	= document.getElementById('ZoneDescription1').value;
	var Amount2				= document.getElementById('Amount2').value;
	var FuelSurcharge2		= document.getElementById('FuelSurcharge2').value;
	var ZoneDescription2	= document.getElementById('ZoneDescription2').value;
	var Amount3				= document.getElementById('Amount3').value;
	var FuelSurcharge3		= document.getElementById('FuelSurcharge3').value;
	var ZoneDescription3	= document.getElementById('ZoneDescription3').value;
	verifierTemplateExpReg(reg_decimal,'Amount0','Montant  Zone1',Amount0, 'Montant  Zone1 : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_Pourcentage,'FuelSurcharge0','Fuel Surcharge 1',FuelSurcharge0, 'Fuel Surcharge 1 : Le text saisi doit etre un nombre decimal',false);
	verifierChamp('ZoneDescription0',ZoneDescription0,'Description 0',false);
	verifierTemplateExpReg(reg_decimal,'Amount1','Montant  Zone2',Amount1, 'Montant  Zone2 : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_Pourcentage,'FuelSurcharge1','Fuel Surcharge 2',FuelSurcharge1, 'Fuel Surcharge 2 : Le text saisi doit etre un nombre decimal',false);
	verifierChamp('ZoneDescription1',ZoneDescription1,'Description 2',false);
	verifierTemplateExpReg(reg_decimal,'Amount2','Montant  Zone3',Amount2, 'Montant  Zone3 : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_Pourcentage,'FuelSurcharge2','Fuel Surcharge 3',FuelSurcharge2, 'Fuel Surcharge 3 : Le text saisi doit etre un nombre decimal',false);
	verifierChamp('ZoneDescription2',ZoneDescription2,'Description 3',false);
	verifierTemplateExpReg(reg_decimal,'Amount3','Montant  Zone4',Amount3, 'Montant  Zone4 : Le text saisi doit etre un nombre decimal',false);
	verifierTemplateExpReg(reg_Pourcentage,'FuelSurcharge3','Fuel Surcharge 4',FuelSurcharge3, 'Fuel Surcharge 4 : Le text saisi doit etre un nombre decimal',false);
	verifierChamp('ZoneDescription3',ZoneDescription3,'Description 4',false);	
}

function validationContainer()
{
 if (document.getElementById('validation').style.display=='inline')
  {
	document.getElementById('validation').style.display='none';
	document.getElementById('detailScheduler').style.display='inline';
  }
  else 
  {
	document.getElementById('detailScheduler').style.display='none';
	document.getElementById('validation').style.display='inline';  
  }
}


function validerSchedulerImport()
{
	var containerNbre		 	= document.getElementById('container#1').value;
	var pickupNbre		 		= document.getElementById('pickup#1').value;
	var returnNbre		 		= document.getElementById('return#1').value;
	var dropDate  				= document.getElementById('dropDate1').value;
	var pickupDate    			= document.getElementById('pickupDate1').value;
	var reservationPTNbre		= document.getElementById('PTReservation#1').value;
	var dateReturn				= document.getElementById('RTDate1').value;
	var reservationRTNbre		= document.getElementById('RTReservation#1').value;
	var datePickup				= document.getElementById('PTDate1').value;
	
//alert (containerNbre+'@@@'+pickupNbre+'@@@'+returnNbre+'@@@'+pickupNbre+'@@@'+dropDate+'@@@'+pickupDate+'@@@'+reservationPTNbre+'@@@'+dateReservationPT+'@@@'+reservationRTNbre+'@@@'+dateReservationRT);
	
	verifierChamp('container#1', containerNbre, 'Container#', true);
	//verifierTemplateExpReg(reg_dateTime,'dropDate1','dropDate1',dropDate, "Drop date format WRONG",true);
	//verifierTemplateExpReg(reg_dateTime,'pickupDate1','pickupDate1',pickupDate, "Pickup date format WRONG",true);
	if (dropDate!='')
		verifierTemplateExpReg(reg_dateTime,'dropDate1','dropDate1',dropDate, "Drop date format WRONG",true);
	if (pickupDate!='')
		verifierTemplateExpReg(reg_dateTime,'pickupDate1','pickupDate1',pickupDate, "Pickup date format WRONG",true);
	if (datePickup!='')
		verifierTemplateExpReg(reg_dateTime,'PTDate1','PTDate1',datePickup, "P.T Date format WRONG",true);
	if (dateReturn!='')
		verifierTemplateExpReg(reg_dateTime,'RTDate1','RTDate1',dateReturn, "R.T Date format WRONG",true);
	
	if (pickupDate !="" && dropDate!="" && dropDate>pickupDate)
	{
		erreur = false;
		clear('dropDate1');
		 
	}  
	if (datePickup!="" && dropDate !="" && datePickup > dropDate)
	{
		erreur = false;
		clear('PTDate1');
			
	}
	if (dateReturn !="" && pickupDate!="" && dateReturn<pickupDate)
	{
		erreur = false;
		clear('RTDate1');
		 
	}
	    
	return displayMsgErreur();
	
	
}

function validerSchedulerExport()
{
	var numberContainer  		= document.getElementById('nomberContainers1').value;
	var dropDate  				= document.getElementById('dropDate1').value;
	var pickupDate    			= document.getElementById('pickupDate1').value;
	var reservationPTNbre		= document.getElementById('PTReservation#1').value;
	var dateReturn				= document.getElementById('RTDate1').value;
	var reservationRTNbre		= document.getElementById('RTReservation#1').value;
	var datePickup				= document.getElementById('PTDate1').value;
	var closingDate				= document.getElementById('closingDate').value;
	
	verifierTemplateExpReg(rex_numerique,'nomberContainers1','nomberContainers1',numberContainer, "Le nombre de conteneur doit &ecirc;tre > 0",true);
	//verifierTemplateExpReg(reg_dateTime,'dropDate1','dropDate1',dropDate, "Drop date format WRONG",true);
	//verifierTemplateExpReg(reg_dateTime,'pickupDate1','pickupDate1',pickupDate, "Pickup date format WRONG",true);
	if (dropDate!='')
		verifierTemplateExpReg(reg_dateTime,'dropDate1','dropDate1',dropDate, "Drop date format WRONG",true);
	if (pickupDate!='')
		verifierTemplateExpReg(reg_dateTime,'pickupDate1','pickupDate1',pickupDate, "Pickup date format WRONG",true);
	if (datePickup!='')
		verifierTemplateExpReg(reg_dateTime,'PTDate1','PTDate1',datePickup, "P.T Date format WRONG",true);
	if (dateReturn!='')
		verifierTemplateExpReg(reg_dateTime,'RTDate1','RTDate1',dateReturn, "P.T Date format WRONG",true);
	
	if (pickupDate !="" && pickupDate>closingDate+' 23:59:59')
	{
	
	clear('pickupDate1');
	erreur = false;	
	messageErreur += "Pickup Date doit &ecirc;tre < au Closing Date <br/>";
	}
	if(dropDate!="" && dropDate>closingDate+' 23:59:59')
	{
	clear('dropDate1');
	erreur = false;	
	messageErreur += "Drop Date doit &ecirc;tre < au Closing Date <br/>";
	}
	if (datePickup!="" && dropDate !="" && datePickup > dropDate)
	{
		erreur = false;
		clear('PTDate1');
			
	}
	if (dateReturn !="" && pickupDate!="" && dateReturn<pickupDate)
	{
		erreur = false;
		clear('RTDate1');
		 
	}
	if (pickupDate !="" && dropDate!="" && dropDate>pickupDate)
	{
		erreur = false;
		clear('dropDate1');
		 
	}  
	
	return displayMsgErreur();
	
	
}

function getDateTimeFormatter(newValue)
{
	if(newValue == null )
	{
		tempDate = '' ;
	}
	else if(rex_date.exec(newValue) != null)
	{
//		alert('::rex_date::');
		tempDate = newValue + ' 00:00' ;
	}
	else if(rex_date_string.exec(newValue) != null)
	{
		tempDate = newValue.substring(0,4) + '-' + newValue.substring(4,6) + '-' + newValue.substring(6,8) + ' 00:00' ;
//		alert('::rex_date_string::');
//		alert(tempDate);
	}
	else if(reg_dateTime_HH_MM.exec(newValue) != null)
	{
		tempDate = newValue;
//		alert('::reg_dateTime::');
	}
	else if(reg_dateTime_string.exec(newValue) != null)
	{
		tempDate = newValue.substring(0,4) + '-' + newValue.substring(4,6) + '-' + newValue.substring(6,8) + ' ' + newValue.substring(8,10) + ':' + newValue.substring(10,12)  ;
//		alert('::reg_dateTime_string::');
//		alert(tempDate);
	}
	else
	{
		
		alert("The Date Format should be : 'YYYY-MM-DD HH:MM'" + newValue);
		tempDate = false ;
	}
	return (tempDate);
}

function getDateFormat(inDate, format)
{
	var tempDate = '' ;
	if (format == 'YYYY-MM-DD HH:MM')
	{
		var month = (inDate.getMonth()+ 1 < 10) ? '0'+(inDate.getMonth()+ 1) : (inDate.getMonth()+ 1) ;
		var date = (inDate.getDate() < 10) ? '0'+inDate.getDate(): inDate.getDate() ;
		var hours = (inDate.getHours() < 10) ? '0'+inDate.getHours(): inDate.getHours() ;
		var minutes = (inDate.getMinutes() < 10) ? '0'+inDate.getMinutes(): inDate.getMinutes() ;
		tempDate = inDate.getFullYear()+'-'+month+'-'+date+' '+hours+':'+minutes ;
	}
	return (tempDate);
}			

function getDateFormatter(newValue)
{
	if(newValue == null )
	{
		tempDate = '' ;
	}
	else if(rex_date.exec(newValue) != null)
	{
		alert('::rex_date::');
		tempDate = newValue + ' 00:00' ;
	}
	else if(rex_date_string.exec(newValue) != null)
	{
		tempDate = newValue.substring(0,4) + '-' + newValue.substring(4,6) + '-' + newValue.substring(6,8) + ' 00:00' ;
		alert('::rex_date_string::');
		alert(tempDate);
	}
	else if(reg_dateTime_HH_MM.exec(newValue) != null)
	{
		tempDate = newValue;
		alert('::reg_dateTime::');
	}
	else if(reg_dateTime_string.exec(newValue) != null)
	{
		tempDate = newValue.substring(0,4) + '-' + newValue.substring(4,6) + '-' + newValue.substring(6,8) + ' ' + newValue.substring(8,10) + ':' + newValue.substring(10,12)  ;
		alert('::reg_dateTime_string::');
		alert(tempDate);
	}
	else
	{
		tempDate = false ;
		alert("The Date Format should be : 'YYYY-MM-DD HH:MM'");
	}
	return (tempDate);
}


