/*
$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 validateGenericForm(theForm, lang) {

	f=document.theForm;

	field = f.elements['msg[name][text]'];
	if (lang=='gr') txt="Ονοματεπώνυμο";
	else txt="Full Name";
	if (!validRequired(field, txt, lang)) return false;

	field = f.elements['msg[from][text]'];
	if (lang=='gr') txt="Διεύθυνση E-mail";
	else txt="your E-mail Address";
	if (!validEmail(field, txt, true, lang)) return false;

	field = f.elements['msg[body][text]'];
	if (lang=='gr') txt="το Μήνυμά σας";
	else txt="Your Message";
	if (!validRequired(field, txt, lang)) return false;

	return true;
}

function validateHotelForm(theForm, lang) {

	flag=validateGenericForm(theForm, lang);
	if (!flag) return false;

/*
	field = f.elements['msg[adults][text]'];
	if (lang=='gr') txt="Ενηλικές";
	else txt="Adults";
	if (!validRequired(field, txt, lang)) return false;

	field = f.elements['msg[room][text]'];
	if (lang=='gr') txt="Τύπο Διαμονής";
	else txt="Accommodation";
	if (!validRequired(field, txt, lang)) return false;
*/

	doa = f.elements['doa'];
	moa = f.elements['moa'];
	yoa = f.elements['yoa'];
	dod = f.elements['dod'];
	mod = f.elements['mod'];
	yod = f.elements['yod'];

	afield = f.elements['msg[arrival][text]'];
	dfield = f.elements['msg[depart][text]'];

	txt=checkConsecutiveDatesMsg(doa, moa, yoa, dod, mod, yod, true, false);
	if (txt!='') {
		alert(txt);
		return false;
	}

	afield.value = doa.value + "/" + moa.value + "/" + yoa.value;
	dfield.value = dod.value + "/" + mod.value + "/" + yod.value;

	return true;

}

function validateRentalForm(theForm, lang) {

	f=document.theForm;

	field = f.elements['msg[name][text]'];
	if (lang=='gr') txt="Ονοματεπώνυμο";
	else txt="Full Name";
	if (!validRequired(field, txt, lang)) return false;

	field = f.elements['msg[from][text]'];
	if (lang=='gr') txt="Διεύθυνση E-mail";
	else txt="your E-mail Address";
	if (!validEmail(field, txt, true, lang)) return false;
	
	fieldDeliv = f.elements['msg[deliv][text]'];
	fieldCollect = f.elements['msg[collect][text]'];
	
	doa = f.elements['doa'];
	moa = f.elements['moa'];
	yoa = f.elements['yoa'];
	dod = f.elements['dod'];
	mod = f.elements['mod'];
	yod = f.elements['yod'];

	arrivalM= f.elements['arrivalM'];
	arrivalH= f.elements['arrivalH'];
	
	departM= f.elements['departM'];
	departH= f.elements['departH'];
	
	afield = f.elements['msg[arrival][text]'];
	dfield = f.elements['msg[depart][text]'];

	arrivalF = f.elements['msg[arrivalF][text]'];
	departF = f.elements['msg[departF][text]'];
	

	txt=checkConsecutiveDatesMsg(doa, moa, yoa, dod, mod, yod, true, true);
	if (txt!='') {
		alert(txt);
		return false;
	}
	
	if (lang=='gr') txt="Arrival Hour";
	else txt="Arrival Hour";
	if (!validRequired(arrivalH, txt, lang)) return false;

	if (lang=='gr') txt="Λεπτά";
	else txt="Arrival Minutes";
	if (!validRequired(arrivalM, txt, lang)) return false;
	
	if (lang=='gr') txt="Depart Hour";
	else txt="Depart Hour";
	if (!validRequired(departH, txt, lang)) return false;
	
	if (lang=='gr') txt="Λεπτά";
	else txt="Depart Minutes";
	if (!validRequired(departM, txt, lang)) return false;
		
	afield.value = doa.value + "/" + moa.value + "/" + yoa.value;
	dfield.value = dod.value + "/" + mod.value + "/" + yod.value;
	
	arrivalF.value=arrivalH.value + ":" + arrivalM.value;
	departF.value=departH.value + ":" + departM.value;
	
	if (lang=='gr') txt="Τόπο Παράδοσης";
	else txt="Delivery Location";
	if (!validRequired(fieldDeliv, txt, lang)) return false;
	
	if (lang=='gr') txt="Τόπο Παραλαβής";
	else txt="Collection Location";
	if (!validRequired(fieldCollect, txt, lang)) return false;

	return true;

}

function validateReservationsForm(theForm, lang) {

	f=document.theForm;
//	var result=0;

// 	field = f.elements['msg[name][text]'];
// 	if (lang=='gr') txt="Ονοματεπώνυμο";
// 	else txt="Full Name";
// 	if (!validRequired(field, txt, lang)) result=1;

	field = f.elements['msg[from][text]'];
	if (lang=='gr') txt="Διεύθυνση E-mail";
	else txt="your E-mail Address";
	if (!validEmail(field, txt, true, lang)) return false;

	fieldDeliv = f.elements['msg[deliv][text]'];
	fieldCollect = f.elements['msg[collect][text]'];
// 
	doa = f.elements['fday'];
	moa = f.elements['fmonth'];
	yoa = f.elements['fyear'];

	dod = f.elements['tday'];
	mod = f.elements['tmonth'];
	yod = f.elements['tyear'];
	
//	doi = f.elements['moiday'];
//	moi = f.elements['moimonth'];
//	yoi = f.elements['moiyear'];
	
//	doe = f.elements['moeday'];
//	moe = f.elements['moemonth'];
//	yoe = f.elements['moeyear'];
	
	arrivalM= f.elements['arrivalM'];
	arrivalH= f.elements['arrivalH'];

	departM= f.elements['departM'];
	departH= f.elements['departH'];
	
	arrivalF = f.elements['msg[arrivalF][text]'];
	departF = f.elements['msg[departF][text]'];
	
	afield = f.elements['msg[arrival][text]'];
	dfield = f.elements['msg[depart][text]'];
//	dissue = f.elements['msg[dissue][text]'];
//	dexpire = f.elements['msg[dexpire][text]'];
	
	addinfo = f.elements['msg[body][text]'];
	bodytext = addinfo.value;
// 
// 	txt=checkConsecutiveDatesMsg2(doa, moa, yoa, dod, mod, yod, true, false);
// 	if (txt!='') {
// 		alert(txt);
// 		result=1;
// 	}
// 
// 	if (lang=='gr') txt="Arrival Hour";
// 	else txt="Arrival Hour";
// 	//if (!validRequired(arrivalH, txt, lang)) return false;
// 
// 	if (lang=='gr') txt="Λεπτά";
// 	else txt="Arrival Minutes";
// 	//if (!validRequired(arrivalM, txt, lang)) return false;
// 	
// 	if (lang=='gr') txt="Depart Hour";
// 	else txt="Depart Hour";
// 	//if (!validRequired(departH, txt, lang)) return false;
// 	
// 	if (lang=='gr') txt="Λεπτά";
// 	else txt="Depart Minutes";
// 	//if (!validRequired(departM, txt, lang)) return false;
// 
// 	if ((doe.value!='-') || (moe.value!='-')){ 
// 		res=checkConsecutivοDates(dod, mod, yod, doe, moe, yoe, true, false);
// 		if (res!='') {
// 			alert("The Expiration date must be bigger than Last Day of Rental");
// 			result=1;;
// 		}
// 	}
	mymoa=1+parseInt(moa.value) ;
	mymod=1+parseInt(mod.value) ;

//	if(moa.value=="-"){
//		mymoa="-";
//	}
//	if(mod.value=="-"){
//		mymod="-";
//	}
	afield.value = doa.value + "/" + mymoa + "/" + yoa.value;
	dfield.value = dod.value + "/" + mymod + "/" + yod.value;
	
//	mymoi=1+parseInt(moi.value) ;
//	mymoe=1+parseInt(moe.value) ;
	
//	if(moi.value=="-"){
//		mymoi="-";
//	}
//	if(moe.value=="-"){
//		mymoe="-";
//	}

//	dissue.value = doi.value + "/" + mymoi + "/" + yoi.value;
//	dexpire.value = doe.value + "/" + mymoe + "/" + yoe.value;
	
	arrivalF.value=arrivalH.value + ":" + arrivalM.value;
	departF.value=departH.value + ":" + departM.value;
	
	return true;
// 	
// 	if (lang=='gr') txt="Τόπο Παράδοσης";
// 	else txt="Delivery Location";
// 	if (!validRequired(fieldDeliv, txt, lang)) result=1;
// 	
// 	if (lang=='gr') txt="Τόπο Παραλαβής";
// 	else txt="Collection Location";
// 	if (!validRequired(fieldCollect, txt, lang)) result=1;
// 
// 
// 	
// 	if ((bodytext.length<10)||(bodytext.indexOf("viagra")!=-1)||(bodytext.indexOf("FREE")!=-1)||(bodytext.indexOf("free")!=-1)||(bodytext.indexOf("VIAGRA")!=-1)||(bodytext.indexOf("sex")!=-1)||(bodytext.indexOf("SEX")!=-1)||(bodytext.indexOf(".co.uk")!=-1)||(bodytext.indexOf("http")!=-1)||(bodytext.indexOf("HTTP")!=-1)||(bodytext.indexOf(".html")!=-1)||(bodytext.indexOf("HTML")!=-1)||(bodytext.indexOf("sexy")!=-1)||(bodytext.indexOf("SEXY")!=-1)||(bodytext.indexOf("SEXY")!=-1)||(bodytext.indexOf("url")!=-1)||(bodytext.indexOf("URL")!=-1)||(bodytext.indexOf("school")!=-1) ){
// 		if (lang=='gr') alert("Εισάγατε μια λέξη που πιθανό να θεωρηθεί spam στο πεδίο πληροφορίες. Παρακαλώ προσπαθήστε ξανά.");
// 		else alert("You enterred a word which is suspicious of spam in the Additional Info field. Please retry");
// 
// 		result=1;
// 	}
// 
// 	if (result == 0){
// 		//Set the URL
// 		var url = '../includes/captcha.php';
// 		//Set up the parameters of our AJAX call
// 		var postStr = document.theForm.txtCaptcha.name + "=" + encodeURIComponent( document.theForm.txtCaptcha.value );
// 		
// 		var request = false;
// 		try {
// 			request = new XMLHttpRequest();
// 		} catch (e) {
// 			try{
// 				request = new ActiveXObject("Msxml2.XMLHTTP");
// 			} catch (e) {
// 				try{
// 					request = new ActiveXObject("Microsoft.XMLHTTP");
// 				} catch (e) {
// 					alert("Unable to complete your request.");
// 					return false;
// 				}
// 			}
// 		}
// 		request.open("POST", url, true);
// 		request.onreadystatechange = function() {
// 			//Check if our response is ready
// 			if (request.readyState == 4) {
// 				if (request.responseText == "true"){
// 					document.theForm.submit();
// 				} else {
// 					//Get a reference to CAPTCHA image
// 					img = document.getElementById('imgCaptcha'); 
// 					//Change the image
// 					img.src = '../includes/create_image.php?' + Math.random();
// 					if (lang=='gr') alert("Ο αριθμός της εικόνας που εισάγατε δεν είναι σωστός");
// 					else alert("The validation number enterred is invalid");
// 				}
// 			}
// 		}
// 		//Add HTTP headers to the request
// 		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// 		request.setRequestHeader("Content-length", postStr.length);
// 		request.setRequestHeader("Connection", "close");
// 		request.send(postStr);
// 	}
}
