/*
$Id: form.js,v 1.6 2006/02/20 11:47:12 nmargar Exp $

United Online S.A., (c) 2005
Author: Nikolaos Margaritis

*/

function WriteYearOptions(Ystring, YearsAhead, lang) {
	Now = new Date();
	NowYear = Now.getFullYear();
	if (lang=='gr') yearHead = "Έτος:";
	else if (lang=='de') yearHead = "Jahr:";
	else yearHead = "Year:";
	line = "<select name='"+Ystring+"'>";
	line += "<option value='-'>"+yearHead+"</option>";
	for (i=0; i<YearsAhead; i++) {
		line += "<option>";
		line += NowYear + i;
		line += "</option>";
	}
	line += "</select>";
	return line;
}

function Trim(s) {
	// Remove leading spaces and carriage returns
	while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) {
		s = s.substring(1,s.length);
	}

	// Remove trailing spaces and carriage returns
	while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')) {
		s = s.substring(0,s.length-1);
	}

	return s;
}

function isEnglish(str) {
	if (str.search(/^([A-Za-z0-9]|\s|-|\,|\.|\&|\%|\!|\?|\(|\)|\[|\]|\+|\=|\$|\{|\}|\#|\;|\:|\@|\||\*|\/|\\|\<|\>|\~|\^|\'|\|")*$/)==-1 ) return false;
	return true;
}

function isGreek(str) {
	if (str.search(/^([Α-Ωα-ω¶ΈΊΉΌΎάέίήόύϊϋΐΰ0-9]|\s|-|\,|\.|\&|\%|\!|\?|\(|\)|\[|\]|\+|\=|\$|\{|\}|\#|\;|\:|\@|\||\*|\/|\\|\<|\>|\~|\'|\")*$/)==-1 ) return false;
	return true;
}

function isFloat(str) {
	if (str.search(/^(-)?([0-9])*((\.)([0-9])+)?$/)==-1) return false;
	return true;
}

function isDigit(str) {
	if (str.search(/^(-)?([0-9])*$/)==-1) return false;
	return true;
}

function isTelephone(str) {
	if (str.search(/^([0-9]|\s|-|\+|\(|\)|\/)*$/)==-1) return false;
	return true;
}

function isEmail(str) {
	if (str.search(/^[A-Za-z0-9_]+((-[A-Za-z0-9_]+)|(\.[A-Za-z0-9_]+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)==-1) return false;
	return true;
}

function validRequired(formField, fieldLabel, lang) {
	if (Trim(formField.value) == "") {
		if (lang=='gr') alert('Παρακαλούμε Εισάγετε ' + fieldLabel +'.');
		else alert('Please Enter ' + fieldLabel +'.');
		formField.focus();
		return false;
	}
	return true;
}

function validEmail(formField, fieldLabel, required, lang) {
	if (required && !validRequired(formField, fieldLabel, lang)) return false;
	if ( !isEmail(Trim(formField.value)) ) {
		if (lang=='gr') alert("Παρακαλούμε Δηλώστε μια ΣΩΣΤΗ διεύθυνση E-mail");
		else alert("Please Enter a Correct E-mail Address");

		formField.focus();
		return false;
	}
	return true;
}

function validateReservationlForm(theForm, lang) {

	f=document.agent_carSearch;
	
	doa = f.elements['fday'];
	moa = f.elements['fmonth'];
	yoa = f.elements['fyear'];
	
	dod = f.elements['tday'];
	mod = f.elements['tmonth'];
	yod = f.elements['tyear'];
	
	arrivalM= f.elements['arrivalM'];
	arrivalH= f.elements['arrivalH'];

	departM= f.elements['departM'];
	departH= f.elements['departH'];
	
	pu_date= f.elements['pu_date'];
	do_date= f.elements['do_date'];
	
	pu_time= f.elements['pu_time'];
	do_time= f.elements['do_time'];
	
	pu_city= f.elements['pu_city'];
	pickLocation=document.getElementById('pickLocation');
	pu_city.value=pickLocation.options[pickLocation.options.selectedIndex].value;
	txt="Pickup location";
	if (!validRequired(pickLocation, txt, lang)) return false;
	
	var w = document.agent_carSearch.agents_id.selectedIndex;
	var selected_text = document.agent_carSearch.agents_id.options[w].text;
	pu_city2= f.elements['pu_city2'];
	pu_city2.value=selected_text;
	
	txt="Arrival Hour";
	if (!validRequired(arrivalH, txt, lang)) return false;
	
	txt="Arrival Min";
	if (!validRequired(arrivalM, txt, lang)) return false;
	
	txt="Depart Hour";
	if (!validRequired(departH, txt, lang)) return false;
	
	txt="Depart Min";
	if (!validRequired(departM, txt, lang)) return false;
	
	
	dropLocation=document.getElementById('dropLocation');
	txt="Drop off location";
	if (!validRequired(dropLocation, txt, lang)) return false;
	
	txt=checkConsecutiveDatesMsg2(doa, moa, yoa, dod, mod, yod, true, true);
	if (txt!='') {
		alert(txt);
		return false;
	}

	mymoa=1+parseInt(moa.value) ;
	mymod=1+parseInt(mod.value) ;

	if(moa.value=="-"){
		mymoa="-";
	}
	if(mod.value=="-"){
		mymod="-";
	}
	if(mymoa<10){
		mymoa="0" + mymoa;
	}
	if(mymod<10){
		mymod="0" + mymod;
	}
	if(doa.value<10){
		doa="0" + doa.value;
	}else{
		doa=doa.value;
	}
	if(dod.value<10){
		dod="0" + dod.value;
	}else{
		dod=dod.value;
	}
	pu_date.value = doa + "/" + mymoa + "/" + yoa.value;
	do_date.value = dod + "/" + mymod + "/" + yod.value;
	
	pu_time.value=arrivalH.value + ":" + arrivalM.value;
	do_time.value=departH.value + ":" + departM.value;
	
	return true;
}
