/*
$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 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 ' + fieldLabel +'.');
		else if (lang=='fr') alert('Enter ' + 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 nennen Sie  eine Richtige E-Mail-Adresse");
		else if (lang=='fr') alert("Enter votre E-mail Correct");
		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 validateJobForm(theForm, lang) {

	f=document.theForm;

	field = f.elements['msg[lastname][text]'];
	if (lang=='gr') txt="Ονομα";
	else if (lang=='de') txt="Ihren  Nachname";
	else if (lang=='fr') txt="votre Nom";
	else txt="Last Name";
	if (!validRequired(field, txt, lang)) return false;

	field = f.elements['msg[firstname][text]'];
	if (lang=='gr') txt="Επώνυμο";
	else if (lang=='de') txt="Ihren Vorname";
	else if (lang=='fr') txt="votre Prenom";
	else txt="FIrst 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 txt="your E-mail Address";
	if (!validEmail(field, txt, true, lang)) return false;
	return true;
}

function validateGenericForm(theForm, lang) {

	f=document.theForm;
	var result=0;

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

	if (result!=1){
	field = f.elements['msg[from][text]'];
	if (lang=='gr') txt="Διεύθυνση E-mail";
	else if (lang=='de') txt="nennen Sie Ihre E-mail-Adresse";
	else if (lang=='fr') txt="votre e-mail";
	else txt="your E-mail Address";
	if (!validEmail(field, txt, true, lang)) result=1;
	}

	if (result!=1){
	field = f.elements['msg[body][text]'];
	if (lang=='gr') txt="Comments";
	else if (lang=='de') txt="Comments";
	else if (lang=='fr') txt="Comments";
	else txt="Comments";
	if (!validRequired(field, txt, true, lang)) result=1;
	}
	if (result == 0){
		//Set the URL
		var url = '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 = '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);
	}

	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;


	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;
	var result=0;

//	flag=validateGenericForm(theForm, lang);
//	if (!flag) result=1;

	field = f.elements['msg[name][text]'];
	if (lang=='en') txt="your full name";
	else txt="your full name";
	if (!validRequired(field, txt, lang)) result=1;

	if (result!=1){
	field = f.elements['msg[body][text]'];
	if (lang=='en') txt="your comments";
	else txt="your comments";
	if (!validRequired(field, txt, lang)) result=1;
	}

	if (result!=1){
	field = f.elements['msg[from][text]'];
	if (lang=='en') txt="your email";
	else txt="your email";
	if (!validEmail(field, txt, true, lang)) result=1;
	}

	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]'];

	afield.value = doa.value + "/" + moa.value + "/" + yoa.value;
	dfield.value = dod.value + "/" + mod.value + "/" + yod.value;
	
	cdoa = f.elements['cdoa'];
	cmoa = f.elements['cmoa'];
	cyoa = f.elements['cyoa'];
	cdod = f.elements['cdod'];
	cmod = f.elements['cmod'];
	cyod = f.elements['cyod'];

	cafield = f.elements['msg[carrival][text]'];
	cdfield = f.elements['msg[cdepart][text]'];

	cafield.value = cdoa.value + "/" + cmoa.value + "/" + cyoa.value;
	cdfield.value = cdod.value + "/" + cmod.value + "/" + cyod.value;

	if (result == 0){
		//Set the URL
		var url = '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 = '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);
	}

	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;
}

