var dayLength = 86400000;

var errorMessages = new Array;
errorMessages[1] = new Array;
errorMessages[2] = new Array;
errorMessages[1][1] = 'Дата приезда должна быть в формате ДД.ММ.ГГ';
errorMessages[1][2] = 'Дата отъезда должна быть в формате ДД.ММ.ГГ';
errorMessages[1][3] = 'Дата приезда должна предшествовать дате отъезда';
errorMessages[1][4] = 'Пожалуйста, выберите тип и колчиество номеров';
errorMessages[1][5] = 'Пожалуйста, укажите количество номеров';
errorMessages[1][6] = 'Пожалуйста укажите Ваше имя';
errorMessages[1][7] = 'Пожалуйста укажите Ваше имя';
errorMessages[1][8] = 'Пожалуйста укажите Ваш контактный телефон';
errorMessages[1][9] = 'Пожалуйста правильно укажите Ваш настоящий E-mail';
errorMessages[1][10] = 'Пожалуйста выберите вариант размещения';
errorMessages[1][11] = 'В поле "Дополнительные сведения" укажите, пожалуйста, ФИО, возраст и паспортные данные гостей. Так же уточните, пожалуйста, время заезда.';
errorMessages[2][1] = 'Please enter your Arrival Date (DD/MM/YY)';
errorMessages[2][2] = 'Please enter your Departure Date (DD/MM/YY)';
errorMessages[2][3] = 'Please note: Departure Date can not precede Arrival Date';
errorMessages[2][4] = 'Please specify the type and number of rooms';
errorMessages[2][5] = 'Please enter your Departure Time (hh/mm)';
errorMessages[2][6] = 'Please enter your Last Name';
errorMessages[2][7] = 'Please enter your First Name';
errorMessages[2][8] = 'Please enter your contact phone #';
errorMessages[2][9] = 'Please submit your valid e-mail address';
errorMessages[2][10] = 'Please specify the type of room and number of beds';
errorMessages[2][11] = 'В поле "Дополнительные сведения" укажите, пожалуйста, ФИО, возраст и паспортные данные гостей. Так же уточните, пожалуйста, время заезда.';

function getPeriod(date) {
	if (date.getMonth() > 3 && date.getMonth() < 8) return 1;
	if (date.getMonth() > 10 || date.getMonth() < 2 ) return 3;
	return 2;
}

function fixDates(f) {

	var dateParts = f['data[Booking][date_from]'].value.split('.');
	var startDate = new Date('20'+dateParts[2],dateParts[1]-1,dateParts[0]);

	var dateParts = f['data[Booking][date_to]'].value.split('.');
	var endDate = new Date('20'+dateParts[2],dateParts[1]-1,dateParts[0]);

	if (startDate.getTime() >= endDate.getTime()) {
		endDate = new Date(startDate.getTime() + dayLength);
		f['data[Booking][date_to]'].value = (endDate.getDate()<10?'0'+String(endDate.getDate()):String(endDate.getDate())) + '.' +
											(endDate.getMonth()+1<10?'0'+String(endDate.getMonth()+1):String(endDate.getMonth()+1)) + '.' +
											(endDate.getFullYear()-2000<10?'0'+String(endDate.getFullYear()-2000):String(endDate.getFullYear()-2000));
	}
}


function error(i) {
	alert(errorMessages[langId][i]);
	return false;
}

function compareDates(date,dateString) {
	dateParts = dateString.split('.');
	if ( date.getDate() == parseInt(dateParts[0],10) &&
		 date.getMonth()+1 == parseInt(dateParts[1],10) &&
		 date.getFullYear() == parseInt('20' + dateParts[2],10) ) return true;
	else return false;
}

function validateEmail (emailStr) {

	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
  		//alert("Email address seems incorrect (check @ and .'s)")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null) {
    	//alert("The username doesn't seem to be valid.")
    	return false
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
	    	if (IPArray[i]>255) {
	        	//alert("Destination IP address is invalid!")
				return false
	    	}
    	}
    	return true
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		//alert("The domain name doesn't seem to be valid.")
    	return false
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 ||
    	domArr[domArr.length-1].length>3) {
   		//alert("The address must end in a three-letter domain, or two letter country.")
   		return false
	}

	if (len<2) {
   		//var errStr="This address is missing a hostname!"
   		//alert(errStr)
   		return false
	}

	return true;
}

function validate(f,submit) {

	var dateParts = f['data[Booking][date_from]'].value.split('.');
	if (dateParts.length != 3) return error(1);
	var startDate = new Date('20'+dateParts[2],dateParts[1]-1,dateParts[0]);
	if (!compareDates(startDate,f['data[Booking][date_from]'].value)) return error(1);

	var dateParts = f['data[Booking][date_to]'].value.split('.');
	if (dateParts.length != 3) return error(2);
	var endDate = new Date('20'+dateParts[2],dateParts[1]-1,dateParts[0]);
	if (!compareDates(endDate,f['data[Booking][date_to]'].value)) return error(2);

	if (startDate.getTime() >= endDate.getTime()) return error(3);
	
	var roomSelected = false;
	for (i in f['data[Booking][room_id]']) if (f['data[Booking][room_id]'][i].checked) roomSelected = true;
	if (!roomSelected) return error(4); 
	
	if (!f['data[UserDetail][fullname]'].value.length) return error(6);
	if (!f['data[UserDetail][telephone]'].value.length) return error(8);
	if (!f['data[UserDetail][email]'].value.length || !validateEmail(f['data[UserDetail][email]'].value)) return error(9);
	
	if (submit) {
		f.submit();
	} else return true;
}

function hide(id) {
	if (id) {
		document.getElementById(id).style.display = 'none';
	}
}
function show(id) {
	if (id) {
		document.getElementById(id).style.display = 'block';
	}
}
function popup() {
	popup = window.open('', 'popup','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,screenX=150,screenY=150,top=150,left=150');
}

var sc_project=1879165; 
var sc_invisible=1; 
var sc_partition=17; 
var sc_security="1131fa1d"; 