/*
$Id: form.js,v 1.9 2006/03/21 15:52:09 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 if (lang=='fr') yearHead = "Ann&eacute;e:";
	else if (lang=='nl') yearHead = "Jaar";
	else yearHead = "Year:";
	line = "<select name='"+Ystring+"'>";
	line += "<option value='-'>"+yearHead+"</option>";
	if (YearsAhead>0) {
		for (i=0; i<YearsAhead; i++) {
			year = NowYear + i;
			line += "<option value='"+year+"'>"+year+"</option>";
		}
	} else {
		for (i=NowYear+YearsAhead; i<NowYear; i++) {
			year = i;
			line += "<option value='"+year+"'>"+year+"</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 if (lang=='de') alert('Bitte fullen Sie ' + fieldLabel +'.');
		else if (lang=='fr') alert('Entrer ' + fieldLabel +'.');
			else if (lang=='nl') alert('Ga ' + 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 if (lang=='de') alert("Bitte fullen Sie eine Richtige E-Mail-Adresse");
		else if (lang=='fr') alert("Enter votre e-mail correct");
		else if (lang=='nl') alert("Ga alstublieft een correct E-mailadres binnen");
		else alert("Please Enter a Correct E-mail Address");

		formField.focus();
		return false;
	}
	return true;
}

function isChecked(formField, fieldLabel) {
	var result = false;
	for (i = 0; i<formField.length; i++) {
		if (formField[i].checked) {
			result=true;
			break;
		}
	}
	if (result==false) {
		alert('Please Enter ' + fieldLabel +'.');
		formField[0].focus();
	}
	return result;
}

function validateGenericForm(theForm, lang) {

	f=document.theForm;

	field = f.elements['msg[name][text]'];
	if (lang=='gr') txt="Ονοματεπώνυμο";
	else if (lang=='de') txt="Ihren  Nachname / Vorname";
	else if (lang=='fr') txt="votre Nom";
	else if (lang=='nl') txt="Voor-en achternaam binnen";
	else txt="Full Name";
	if (!validRequired(field, txt, lang)) return false;

	field = f.elements['msg[from][text]'];
	if (lang=='gr') txt="Διεύθυνση E-mail";
	else if (lang=='de') txt="Ihre E-mail Addresse";
	else if (lang=='fr') txt="votre e-mail";
	else if (lang=='nl') txt="uw E-mailadres binnen";
	else txt="Your E-mail";
	if (!validEmail(field, txt, true, lang)) return false;


	if (f.elements['msg[tel][text]']) {
		vfield = f.elements['msg[tel][text]'].value;
		if (!isTelephone(vfield, txt, lang)) {
			if (lang=='gr') alert("Παρακαλώ εισάγετε αποδεκτό αριθμό τηλεφώνου");
			else if (lang=='de') alert("Bitte fullen Sie eine passende Telefonnummer");
			else if (lang=='fr') alert("Entrer un numero de telephone correct");
			else if (lang=='nl') alert("Ga alstublieft een gepast telefoonnummer binnen");
			else alert("Please enter a proper phone number");
			return false;
		}
	}

	if (f.elements['msg[fax][text]']) {
		vfield = f.elements['msg[fax][text]'].value;
		if (!isTelephone(vfield, txt, lang)) {
			if (lang=='gr') alert("Παρακαλώ εισάγετε αποδεκτό αριθμό fax");
			else if (lang=='de') alert("Bitte fullen Sie eine passende Faxzahl");
			else if (lang=='fr') alert("Entrer un numero de fax correct");
			else if (lang=='nl') alert("Ga alstublieft een gepast faxapparaatnummer binnen");
			else alert("Please enter a proper fax number");
			return false;
		}
	}

	field = f.elements['msg[body][text]'];
	if (lang=='gr') txt="το Μήνυμά σας";
	else if (lang=='de') txt="Ihre Nachricht";
	else if (lang=='fr') txt="votre message";
		else if (lang=='nl') txt="uw Bericht binnen";
	else txt="Your Message";
	if (!validRequired(field, txt, lang)) return false;

	return true;
}

function validateRadioForm(theForm, lang) {

	flag=validateGenericForm(theForm, lang);
	if (!flag) return false;

	radio1 = f.elements['msg[radio1][text]'];
	if (!isChecked(radio1,'Radio Message',false)) 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="Διαμονή";
	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) {

	flag=validateGenericForm(theForm, lang);
	if (!flag) return false;

	field = f.elements['msg[model][text]'];
	if (lang=='gr') txt="Μοντέλο";
	else if (lang=='de') txt="Modell";
	else if (lang=='fr') txt="Modele";
	else if (lang=='nl') txt="Model binnen";
	else txt="Model";
	if (!validRequired(field, txt, lang)) return false;

	field = f.elements['msg[birthday][text]'];
	if (lang=='gr') txt="Ημερομηνία Γέννησης";
	else if (lang=='de') txt="Geburtsdatum";
else if (lang=='fr') txt="Date de naissance du conducteur";
else if (lang=='nl') txt="Geboortedatum bestuurder binnen";
	else txt="Birthday";
	if (!validRequired(field, txt, lang)) return false;

	field = f.elements['msg[deliv][text]'];
	if (lang=='gr') txt="Τόπο Παράδοσης";
	else if (lang=='de') txt="Ort der Annahme";
	else if (lang=='fr') txt="Lieu de livraison";
	else if (lang=='nl') txt="Afleveringslocatie binnen";
	else txt="Delivery Location";
	if (!validRequired(field, txt, lang)) return false;

	field = f.elements['msg[collect][text]'];
	if (lang=='gr') txt="Τόπο Παραλαβής";
	else if (lang=='de') txt="Ort der Abgabe";
	else if (lang=='nl') txt="Ophaallocatie binnen";
else if (lang=='fr') txt="Lieu de retour";
	else txt="Collection Location";
	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 validateResearchForm(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;


	if (f.elements['msg[tel][text]']) {
		vfield = f.elements['msg[tel][text]'].value;
		if (!isTelephone(vfield, txt, lang)) {
			if (lang=='gr') alert("Παρακαλώ εισάγετε αποδεκτό αριθμό τηλεφώνου");
			else alert("Please enter a proper phone number");
			return false;
		}
	}

	if (f.elements['msg[fax][text]']) {
		vfield = f.elements['msg[fax][text]'].value;
		if (!isTelephone(vfield, txt, lang)) {
			if (lang=='gr') alert("Παρακαλώ εισάγετε αποδεκτό αριθμό fax");
			else alert("Please enter a proper fax number");
			return false;
		}
	}

	return true;
}
