function checkInputs(formName, typeName){
	var fromFrm = document.getElementById(formName);
	var sourceInputs = fromFrm.getElementsByTagName('input');
	var n = sourceInputs.length;
	isChecked=false;

	for(var i =0; i<n; i++){
		var inp = sourceInputs[i];
		if(inp.type == typeName){
			if (inp.checked){
				isChecked=true;
			}
		}
	}
	return isChecked;
}

function isValidEmailAddr(email){
	var result = false
	var theStr = new String(email);
	var len=theStr.length;
	var index = theStr.indexOf("@");
	var lastIndex = theStr.lastIndexOf("@");
	var spaceIndex = theStr.indexOf(" ");
	if ( (index > 0) && (len >= 8) && (spaceIndex < 0) && (index == lastIndex)){
		var pindex = theStr.indexOf(".",index);
		if ((pindex > index+1) && (len > pindex+1))
		result = true;
	}
	return result;
}

function isValidPhone(field) {
	var valid = "0123456789-";
	var flagValid=true;		
	
	for (var i=0; i < field.length; i++) {
		temp = "" + field.substring(i, i+1);
		
		if (valid.indexOf(temp) == "-1") {				
			return false;
		}
	}
	return true;
}

function isValidZIP(field) {
	var valid = "0123456789-";
	var flagValid=true;		
	
	for (var i=0; i < field.length; i++) {
		temp = "" + field.substring(i, i+1);
		
		if (valid.indexOf(temp) == "-1") {				
			//This was added since zip code can contain english letters
			if(!isEngChar(temp)) {
				flagValid=false;
			}
		}
		
		if (!flagValid) {
			return false;
		}
	}
	return true;
}

//verify if the char is in English
function isEngChar(c)
{  
	return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

//verify if the char is in Hebrew
function isHebChar (str)
{
	return ( (str.charCodeAt(0) > 0x590) && (str.charCodeAt(0) < 0x5FF) )
}

//verify if the whole string is in English
function checkEngLetters(myStr){	
	var engFlag = false;
	for(i=0; i<myStr.length; i++){
		if (!isEngChar(myStr.charAt(i))) {
			engFlag = true;
		}
	}
	if(engFlag){
		//tmpTxt = "Please enter English letters only";
		return false;
	}
	return true;
}

//verify if the whole string is in Hebrew
function checkHebLetters(myStr){	
	var hebFlag = false;
	for(i=0; i<myStr.length; i++){
		if (!isHebChar(myStr.charAt(i))) {
			hebFlag = true;
		}
	}
	if(hebFlag){
		//tmpTxt = "Please enter Hebrew letters only";
		return false;
	}
	return true;
}

//verify if the whole string is in English or has space
function checkEngLettersSpace(myStr){	
	var engSpaceFlag = false;
	for(i=0; i<myStr.length; i++){
		if (!isEngChar(myStr.charAt(i))) {
			if (!(myStr.charAt(i)== " ")){
				engSpaceFlag = true;
			}
		}
	}	
	if(engSpaceFlag){
		//tmpTxt = "Please enter English letters only or a space";
		return false;
	}
	return true;
}

//verify if the whole string is in Hebrew or has space
function checkHebLettersSpace(myStr){
	var hebSpaceFlag = false;
	for(i=0; i<myStr.length; i++){
		if (!isHebChar(myStr.charAt(i))) {
			if (!(myStr.charAt(i)== " ")){
				hebSpaceFlag = true;
			}
		}
	}	
	if(hebSpaceFlag){
		//tmpTxt = "Please enter Hebrew letters only or a space";
		return false;
	}
	return true;
}

// for Credit card check: returns 1 or 0 indicating whether number is valid
function CheckLUHN(cardnum){ 
	if(cardnum == "") return 0;
	var RevNum = new String(cardnum);
	RevNum = Reverse(RevNum);
	var total = new Number(0);
	for(var i = 0; i < RevNum.length; i += 1 ){
		var temp = 0;
		if(i%2){
			temp = RevNum.substr(i,1) * 2;
			
			if(temp > 9){
				var splitstring = new String(temp);
				temp = parseInt(splitstring.substr(0,1)) + parseInt(splitstring.substr(1,1));
			}
		}
		else{
			temp = RevNum.substr(i, 1);
		}
	total += parseInt(temp); 
	}
	//if there's no remainder, we return 1 (true)
	return (total % 10) ? 0 : 1;
}

// for Credit card check
function Reverse(strToReverse) {
	var strRev = new String;
	var i = strToReverse.length;

	while (i--)
		strRev += strToReverse.charAt(i);

	return strRev;
}

// get date object from date string (format: mm/dd/yyyy)
function getDateObject(date1) {
	var arr1 = date1.split("/");
	var m1 = parseInt(arr1[0],10);
	var d1 = parseInt(arr1[1],10);
	var y1 = parseInt(arr1[2],10);
	var dt1 = new Date(); 
	dt1.setMonth(m1-1); 
	dt1.setYear(y1); 
	dt1.setDate(d1); 
	return dt1;
}

function submitForgotPassFrm(){
	var isOk = true;
	var frm = document.forms['forgotPassFrm'];
	
	var myEmail = frm['fp_email'].value;
	if(myEmail == ""){
		$("#fp_email").next(".generic_error_message").html(msg_fill_email);
		isOk = false;
	}else if(!isValidEmailAddr(myEmail)){
		$("#fp_email").next(".generic_error_message").html(msg_email_invalid);
		isOk = false;
	}
	
	if(isOk){
		frm.submit();
	}	
}

function reportResBoxError(frm, msg){
	$(frm).find(".errors").first().html(msg);
}
function reportResBox1Error(frm, msg){
	$(frm).find(".error_message_booking").first().html(msg);
}
function validateResBox(frmName){
	var frm = document.forms[frmName];
	var d;
	
	if(frm["u_arrival_date"].value == "" || frm["u_departure_date"].value == ""){
		reportResBox1Error(frm, msg_select_dates);
		//$(frm).find(".errors").first().html("Please select dates");
		return false;
	}
	
	d= getDateObject(frm["u_arrival_date"].value);
	if (isNaN(d))
	{	
		reportResBox1Error(frm, msg_arrival_date_invalid);
		return false;
	}
	
	d= getDateObject(frm["u_departure_date"].value);
	if (isNaN(d))
	{	
		reportResBox1Error(frm, msg_departure_date_invalid);
		return false;
	}
	
	//var chosenStartDate	= 	getDateObject(frm["u_arrival_date"].value);
	//var chosenEndDate 	= 	getDateObject(frm["u_departure_date"].value);
	var chosenNightsNo 	= 	frm["no_of_nights"];
	//if (!checkChosenDates(chosenNightsNo, chosenStartDate)){
	//	return false;
	//}
	var adultsNo	=	$(frm["room1_adults"]).val()*1;
	var childrenNo	=	$(frm["room1_children"]).val()*1;
	var infantsNo	=	$(frm["room1_infants"]).val()*1;

	var adultsNo2	=	$(frm["room2_adults"]).val()*1;
	var childrenNo2	=	$(frm["room2_children"]).val()*1;
	var infantsNo2	=	$(frm["room2_infants"]).val()*1;

	var roomsNo		=	$(frm["rooms_no"]).val()*1;

	if ((roomsNo > 1 && (adultsNo+adultsNo2) == 0) || (roomsNo==1 && adultsNo == 0) ){
		reportResBox1Error(frm, msg_no_adults);
		return false;
	}
	if(adultsNo == 0 && childrenNo == 0  && infantsNo == 0){
		reportResBox1Error(frm, msg_room1_empty);
		return false;
	}
	if(roomsNo > 1 && adultsNo2 == 0 && childrenNo2 == 0  && infantsNo2 == 0){
		reportResBox1Error(frm, msg_room2_empty);
		return false;
	}
	
	if((adultsNo == 0 && childrenNo == 0  && infantsNo > 0) || (adultsNo2 == 0 && childrenNo2 == 0  && infantsNo2 > 0)){
		reportResBox1Error(frm, msg_infants_alone);
		return false;
	}
	return true;
}

function submitResBox(frmName){
	if(validateResBox(frmName))
	{
		document.forms.resBoxFrm.submit();
		return true;
	}
	else
	{
		return false;
	}
}

function submitEdanRegisterFrm(site){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});

	if (site == "HEB"){
		var first_name_eng=$("#p_first_name").val();
		if(first_name_eng == ""){
			$("#p_first_name").next(".generic_error_message").html(msg_fill_first_name_eng);
			isOk = false;
		}else if(!checkEngLettersSpace(first_name_eng)){
			$("#p_first_name").next(".generic_error_message").html(msg_fill_first_name_eng);
			isOk = false;
		}
		
		var first_name_heb=$("#p_first_name_heb").val();
		if(first_name_heb == ""){
			$("#p_first_name").next(".generic_error_message").html(msg_fill_first_name_heb);
			isOk = false;
		}else if(!checkHebLettersSpace(first_name_heb)){
			$("#p_first_name").next(".generic_error_message").html(msg_fill_first_name_heb);
			isOk = false;
		}

		var last_name_eng=$("#p_last_name").val();
		if(last_name_eng == ""){
			$("#p_last_name").next(".generic_error_message").html(msg_fill_last_name_eng);
			isOk = false;
		}else if(!checkEngLettersSpace(last_name_eng)){
			$("#p_last_name").next(".generic_error_message").html(msg_fill_last_name_eng);
			isOk = false;
		}
			
		var last_name_heb=$("#p_last_name_heb").val();
		if(last_name_heb == ""){
			$("#p_last_name").next(".generic_error_message").html(msg_fill_last_name_heb);
			isOk = false;
		}else if(!checkHebLettersSpace(last_name_heb)){
			$("#p_last_name").next(".generic_error_message").html(msg_fill_last_name_heb);
			isOk = false;
		}
	}else {
		
		if($("#p_first_name").val() == ""){
			$("#p_first_name").next(".generic_error_message").html(msg_fill_first_name);
			isOk = false;
		}
	
		if($("#p_last_name").val() == ""){
			$("#p_last_name").next(".generic_error_message").html(msg_fill_last_name);
			isOk = false;
		}
	}
	
	if($("#p_e_mail").val() == ""){
		$("#p_e_mail").next(".generic_error_message").html(msg_fill_email);
		isOk = false;
	}else if(!isValidEmailAddr($("#p_e_mail").val())){
		$("#p_e_mail").next(".generic_error_message").html(msg_email_invalid);
		isOk = false;
	}	

	var countryName=$("#p_country_code3").val()*1;
	if (countryName == 0){
		$("#p_country_code3").next(".generic_error_message").html(msg_choose_country);
		isOk = false;
	}
	
	if(!$("#p_accept").attr("checked")){
		$("#p_accept").nextAll(".generic_error_message").last().html(msg_accept_terms);
		isOk = false;
	}
	if(isOk){
		document.forms.edanGeneralFrm.submit();
	}
}

function submitEdanGeneralFrm(site){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});

	if (site == "HEB"){
		var first_name_eng=$("#p_first_name").val();
		if(first_name_eng == ""){
			$("#p_first_name").next(".generic_error_message").html(msg_fill_first_name_eng);
			isOk = false;
		}else if(!checkEngLettersSpace(first_name_eng)){
			$("#p_first_name").next(".generic_error_message").html(msg_fill_first_name_eng);
			isOk = false;
		}
		
		var first_name_heb=$("#p_first_name_heb").val();
		if(first_name_heb == ""){
			$("#p_first_name").next(".generic_error_message").html(msg_fill_first_name_heb);
			isOk = false;
		}else if(!checkHebLettersSpace(first_name_heb)){
			$("#p_first_name").next(".generic_error_message").html(msg_fill_first_name_heb);
			isOk = false;
		}
	
		var last_name_eng=$("#p_last_name").val();
		if(last_name_eng == ""){
			$("#p_last_name").next(".generic_error_message").html(msg_fill_last_name_eng);
			isOk = false;
		}else if(!checkEngLettersSpace(last_name_eng)){
			$("#p_last_name").next(".generic_error_message").html(msg_fill_last_name_eng);
			isOk = false;
		}
			
		var last_name_heb=$("#p_last_name_heb").val();
		if(last_name_heb == ""){
			$("#p_last_name").next(".generic_error_message").html(msg_fill_last_name_heb);
			isOk = false;
		}else if(!checkHebLettersSpace(last_name_heb)){
			$("#p_last_name").next(".generic_error_message").html(msg_fill_last_name_heb);
			isOk = false;
		}
	}else {		
		if($("#p_first_name").val() == ""){
			$("#p_first_name").next(".generic_error_message").html(msg_fill_first_name);
			isOk = false;
		}
	
		if($("#p_last_name").val() == ""){
			$("#p_last_name").next(".generic_error_message").html(msg_fill_last_name);
			isOk = false;
		}
	}
	
	if($("#p_e_mail").val() == ""){
		$("#p_e_mail").next(".generic_error_message").html(msg_fill_email);
		isOk = false;
	}else if(!isValidEmailAddr($("#p_e_mail").val())){
		$("#p_e_mail").next(".generic_error_message").html(msg_email_invalid);
		isOk = false;
	}

	var countryName=$("#p_country_code3").val()*1;
	if (countryName == 0){
		$("#p_country_code3").next(".generic_error_message").html(msg_choose_country);
		isOk = false;
	}
	
	if(isOk){
		document.forms.edanGeneralFrm.submit();
	}
}

function submitEdanPasswordFrm(){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});
	
	if($("#old_pass").val() == ""){
		$("#old_pass").next(".generic_error_message").html(msg_fill_old_pass);
		isOk = false;
	}
	
	var myPass1 = $("#pass1").val();
	var myPass2 = $("#pass2").val();
	
	if(myPass1 == ""){
		$("#pass1").next(".generic_error_message").html(msg_fill_new_pass);
		isOk = false;
	}else if(myPass1.length < 4){
		$("#pass1").next(".generic_error_message").html(msg_pass_4_char);
		isOk = false;
	}
	
	if(myPass2 == ""){
		$("#pass2").next(".generic_error_message").html(msg_retype_new_pass);
		isOk = false;
	}

	if(myPass1 != myPass2){
		$("#pass2").next(".generic_error_message").html(msg_pass_different);
		isOk = false;
	}
	
	if(isOk){
		document.forms.edanPasswordFrm.submit();
	}
}

function submitEdanRoomPrefFrm(){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});
	
	var result = checkInputs("edanRoomPrefFrm", "radio");
	if (!result) {
		//frm = edanRoomPrefFrm;
		$("#edanRoomPrefFrm").find(".generic_error_message").first().html(msg_fill_at_least_one);
		isOk = false;
	}
	
	if(isOk){
		document.forms.edanRoomPrefFrm.submit();
	}
}

function submitEdanActivityPrefFrm(){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});
	
	var result = checkInputs("edanActivityPrefFrm", "checkbox");
	if (!result) {
		//frm=edanActivityPrefFrm;
		$("#edanActivityPrefFrm").find(".generic_error_message").first().html(msg_fill_at_least_one);
		isOk = false;
	}
	
	if(isOk){
		document.forms.edanActivityPrefFrm.submit();
	}	
}

function submitEdanFoodPrefFrm(){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});
	
	var result = checkInputs("edanFoodPrefFrm", "radio") || checkInputs("edanFoodPrefFrm", "checkbox");
	if (!result) {
		//frm=edanFoodPrefFrm;
		$("#edanFoodPrefFrm").find(".generic_error_message").first().html(msg_fill_at_least_one);
		isOk = false;
	}
	
	if(isOk){
		document.forms.edanFoodPrefFrm.submit();
	}
}

function submitEdanCoopFrm(){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});

	if($("#p_ref_no").val()*1 > 0){
		//$("#p_ref_no").nextAll(".generic_error_message").last().html("Please select organisation");
		//isOk = false;
		
		if($("#p_ref_password").val() == ""){
			$("#p_ref_password").next(".generic_error_message").html(msg_fill_pass);
			isOk = false;
		}
	}
	if(isOk){
		document.forms.edanCoopFrm.submit();
	}
}

function submitLogin(){
	if(document.forms.loginFrm.email.value == ""){
		document.getElementById("loginErrorMessage").innerHTML = msg_fill_email2;
		return false;
	}else if(!isValidEmailAddr(document.forms.loginFrm.email.value)){
		document.getElementById("loginErrorMessage").innerHTML = msg_email_invalid;
		return false;
	}
	if(document.forms.loginFrm.password.value == ""){
		document.getElementById("loginErrorMessage").innerHTML = msg_fill_pass;
		return false;
	}
	document.forms.loginFrm.submit();
}

function submitEdanLogin(){
	if(document.forms.edanLoginFrm.email.value == ""){
		document.getElementById("edanLoginErrorMessage").innerHTML = msg_fill_email2;
		return false;
	}else if(!isValidEmailAddr(document.forms.edanLoginFrm.email.value)){
		document.getElementById("edanLoginErrorMessage").innerHTML = msg_email_invalid;
		return false;
	}
	if(document.forms.edanLoginFrm.password.value == ""){
		document.getElementById("edanLoginErrorMessage").innerHTML = msg_fill_pass;
		return false;
	}
	document.forms.edanLoginFrm.submit();
}

function onResChangeDetailsClick(){
//	document.getElementById('reservationDataFrm').action="/IS1/index.htm";
	//document.getElementById('reservationDataFrm').submit();
	setTotalNights($('.total-nights-number').html());
	document.getElementById('bookingSummary').style.display="none";
	document.getElementById('reservationBox').style.display="block";
}

function copyFormData(fromFrm, toFrm){
	toFrm.action = fromFrm.action;
	
	var sourceInputs = fromFrm.getElementsByTagName('input');
	var n = sourceInputs.length;
	for(var i =0; i<n; i++){
		var inp = sourceInputs[i];
		destInp = eval("toFrm."+inp.name);
		if(destInp){
			destInp.value = inp.value;
		}
	}
	sourceInputs = fromFrm.getElementsByTagName('textarea');
	n = sourceInputs.length;
	for(var i =0; i<n; i++){
		var inp = sourceInputs[i];
		destInp = eval("toFrm."+inp.name);
		if(destInp){
			destInp.value = inp.innerHtml;
		}
	}
	sourceInputs = fromFrm.getElementsByTagName('select');
	n = sourceInputs.length;
	for(var i =0; i<n; i++){
		var inp = sourceInputs[i];
		destInp = eval("toFrm."+inp.name);
		if(destInp){
			destInp.value = inp.innerHtml;
			var selIdx = inp.options.selectedIndex;
			if(inp.options[selIdx].value == ""){
				destInp.value = inp.options[inp.options.selectedIndex].text;		
			}
			else{
				destInp.value = inp.options[inp.options.selectedIndex].value;		
			}
		}
	}

}

function submitStep2Frm(){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});
	
	if($("#fname").val() == ""){
		$("#fname").next(".generic_error_message").html(msg_fill_first_name);
		isOk = false;
	}
	
	if($("#lname").val() == ""){
		$("#lname").next(".generic_error_message").html(msg_fill_last_name);
		isOk = false;
	}

	if($("#email").val() == ""){
		$("#email").next(".generic_error_message").html(msg_fill_email);
		isOk = false;
	}else if(!isValidEmailAddr($("#email").val())){
		$("#email").next(".generic_error_message").html(msg_email_invalid);
		isOk = false;
	}

	if($("#daytime_phone").val() == ""){
		$("#daytime_phone").next(".generic_error_message").html(msg_fill_phone);
		isOk = false;
	}else if(!isValidPhone($("#daytime_phone").val())){
		$("#daytime_phone").next(".generic_error_message").html(msg_phone_invalid);
		isOk = false;
	}

	var countryName		=	$("#country_name").val();
	//var countryNo		=$(frm["country_name"]).val()*1;
	if(countryName == ""){
		//$("#country_name").next(".generic_error_message").html(msg_choose_country);
		$("#country_name_msg").html(msg_choose_country);
		isOk = false;
	}		

	if(isOk){
		copyFormData(document.getElementById('step2Frm'), document.getElementById('reservationDataFrm'));	
		document.getElementById('reservationDataFrm').submit();
		//document.forms.step2Frm.submit();		
	}
}

function submitStep3Frm(site){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});

	var ccType=$("#credit_card_type_cd").val()*1;
	if (ccType == 0){
		$("#credit_card_type_cd").nextAll(".generic_error_message").last().html(msg_fill_cc_type);
		isOk = false;
	}
	
	var ccNum = $("#credit_card_num").val();
	if(ccNum == ""){
		$("#credit_card_num").next(".generic_error_message").html(msg_fill_cc_num);
		isOk = false;
	}else if(isNaN(ccNum)) {
		//alert("Please enter your credit card number, without dashes or spaces");
		$("#credit_card_num").next(".generic_error_message").html(msg_cc_num_info);
		isOk = false;
	}else if (!CheckLUHN(ccNum)){
		//alert("Please enter your credit card number, this is not a valid card number");
		$("#credit_card_num").next(".generic_error_message").html(msg_cc_num_invalid);
		isOk = false;
	}

	var ccOwnerName = $("#credit_card_owner_name").val();
	if(ccOwnerName == ""){
		$("#credit_card_owner_name").next(".generic_error_message").html(msg_fill_cc_owner);
		isOk = false;
	}else {
		if (site == "HEB"){
			if(!(checkEngLettersSpace(ccOwnerName) || checkHebLettersSpace(ccOwnerName))){
				$("#credit_card_owner_name").next(".generic_error_message").html(msg_cc_owner_invalid_heb);
				isOk = false;
			}
		}else{
			if(!checkEngLettersSpace(ccOwnerName)){
				$("#credit_card_owner_name").next(".generic_error_message").html(msg_cc_owner_invalid);
				isOk = false;
			}
		}
	}

	var ccExpYear=$("#credit_card_exp_yyyy").val()*1;
	var ccExpMon=$("#date").val()*1;		
	if ( (ccExpMon == 0) || (ccExpYear == 0) ){
		$("#date").nextAll(".generic_error_message").last().html(msg_fill_cc_exp);
		isOk = false;
	}else{
			today = new Date();
			currYear = today.getFullYear();
			currMonth= today.getMonth();
			if(ccExpYear < currYear){
				$("#date").nextAll(".generic_error_message").last().html(msg_cc_exp_invalid);
				isOk = false;
			}
			else if((ccExpYear == currYear) && (ccExpMon < (currMonth*1+1))){
				$("#date").nextAll(".generic_error_message").last().html(msg_cc_expired);
				isOk = false;
			}
	}
	
	if(!$("#terms").attr("checked")){
		$("#terms").nextAll(".generic_error_message").last().html(msg_accept_terms);
		isOk = false;
	}
			
	if(isOk){
		copyFormData(document.getElementById('step3Frm'), document.getElementById('reservationDataFrm'));	
		document.getElementById('reservationDataFrm').submit();	
		//document.forms.step3Frm.submit();	
	}
}

function submitContactFrm(){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});
	
	if($("#f_name1").val() == ""){
		$("#f_name1").next(".generic_error_message").html(msg_fill_first_name);
		isOk = false;
	}
	else{
		$("#f_name1").next(".generic_error_message").html("");
	}
	
	if($("#l_name1").val() == ""){
		$("#l_name1").next(".generic_error_message").html(msg_fill_last_name);
		isOk = false;
	}
	else{
		$("#l_name1").next(".generic_error_message").html("");
	}

	if($("#email1").val() == ""){
		$("#email1").next(".generic_error_message").html(msg_fill_email);
		isOk = false;
	}else if(!isValidEmailAddr($("#email1").val())){
		$("#email1").next(".generic_error_message").html(msg_email_invalid);
		isOk = false;
	}
	else{
		$("#email1").next(".generic_error_message").html("");
	}

	if($("#phone1").val() == ""){
		$("#phone1").next(".generic_error_message").html(msg_fill_phone);
		isOk = false;
	}else if(!isValidPhone($("#phone1").val())){
		$("#phone1").next(".generic_error_message").html(msg_phone_invalid);
		isOk = false;
	}
	else{
		$("#phone1").next(".generic_error_message").html("");
	}
		
	if(isOk){
		document.getElementById('contactFrm').submit();
		//document.forms.contactFrm.submit();	
	}
}
function submitContactSuitesFrm(){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});
	
	if($("#fname").val() == ""){
		$("#fname").next(".generic_error_message").html(msg_fill_first_name);
		isOk = false;
	}
	else{
		$("#fname").next(".generic_error_message").html("");
	}
	
	if($("#lname").val() == ""){
		$("#lname").next(".generic_error_message").html(msg_fill_last_name);
		isOk = false;
	}
	else{
		$("#lname").next(".generic_error_message").html("");
	}

	if($("#email").val() == ""){
		$("#email").next(".generic_error_message").html(msg_fill_email);
		isOk = false;
	}else if(!isValidEmailAddr($("#email").val())){
		$("#email").next(".generic_error_message").html(msg_email_invalid);
		isOk = false;
	}
	else{
		$("#email").next(".generic_error_message").html("");
	}

	if($("#daytime_phone").val() == ""){
		$("#daytime_phone").next(".generic_error_message").html(msg_fill_phone);
		isOk = false;
	}else if(!isValidPhone($("#daytime_phone").val())){
		$("#daytime_phone").next(".generic_error_message").html(msg_phone_invalid);
		isOk = false;
	}
	else{
		$("#daytime_phone").next(".generic_error_message").html("");
	}
		
	if(isOk){
		copyFormData(document.getElementById('contactSuitesFrm'), document.getElementById('reservationDataFrm'));	
		document.getElementById('reservationDataFrm').submit();	
		//document.forms.contactSuitesFrm.submit();	
	}
}
function submitContactHeavilyBookedFrm(){
	var isOk = true;
	$(".generic_error_message").each(function(){$(this).html("");});

	if($("#fname").val() == ""){
		$("#fname").next(".generic_error_message").html(msg_fill_first_name);
		isOk = false;
	}
	else{
		$("#fname").next(".generic_error_message").html("");
	}
	
	if($("#lname").val() == ""){
		$("#lname").next(".generic_error_message").html(msg_fill_last_name);
		isOk = false;
	}
	else{
		$("#lname").next(".generic_error_message").html("");
	}

	if($("#email").val() == ""){
		$("#email").next(".generic_error_message").html(msg_fill_email);
		isOk = false;
	}else if(!isValidEmailAddr($("#email").val())){
		$("#email").next(".generic_error_message").html(msg_email_invalid);
		isOk = false;
	}
	else{
		$("#email").next(".generic_error_message").html("");
	}

	if($("#daytime_phone").val() == ""){
		$("#daytime_phone").next(".generic_error_message").html(msg_fill_phone);
		isOk = false;
	}else if(!isValidPhone($("#daytime_phone").val())){
		$("#daytime_phone").next(".generic_error_message").html(msg_phone_invalid);
		isOk = false;
	}
	else{
		$("#phone").next(".generic_error_message").html("");
	}
		
	if(isOk){
		copyFormData(document.getElementById('contactHeavilyBookedFrm'), document.getElementById('reservationDataFrm'));	
		document.getElementById('reservationDataFrm').submit();	
		//document.forms.contactHeavilyBookedFrm.submit();
	}
}
function formValidation(frmName){
	var frm = document.forms[frmName];
	if(frm["u_arrival_date"].value == "" || frm["u_departure_date"].value == ""){
		reportResBoxError(frm, "Please select dates");
		//$(frm).find(".errors").first().html("Please select dates");
		return false;
	}
	var chosenNightsNo 	= 	frm["no_of_nights"];
	var adultsNo	=	$(frm["room1_adults"]).val()*1;
	var childrenNo	=	$(frm["room1_children"]).val()*1;
	var infantsNo	=	$(frm["room1_infants"]).val()*1;

	var adultsNo2	=	$(frm["room2_adults"]).val()*1;
	var childrenNo2	=	$(frm["room2_children"]).val()*1;
	var infantsNo2	=	$(frm["room2_infants"]).val()*1;

	var roomsNo		=	$(frm["rooms_no"]).val()*1;
	if ((roomsNo > 1 && (adultsNo+adultsNo2) == 0) || (roomsNo==1 && adultsNo == 0) ){
		reportResBoxError(frm, "There is no adults in reservation");
		return false;
	}
	if(adultsNo == 0 && childrenNo == 0  && infantsNo == 0){
		reportResBoxError(frm, "Room 1 is empty");
		return false;
	}
	if(roomsNo > 1 && adultsNo2 == 0 && childrenNo2 == 0  && infantsNo2 == 0){
		reportResBoxError(frm, "Room 2 is empty");
		return false;
	}	
	if((adultsNo == 0 && childrenNo == 0  && infantsNo > 0) || (adultsNo2 == 0 && childrenNo2 == 0  && infantsNo2 > 0)){
		reportResBoxError(frm, "Infants can not be alone in the room");
		return false;
	}
	return true;
	
}
/*
function setDatesRange(minD, minM, minY, maxD, maxM, maxY){
	day_of_month_renderer = function(workingDate, cell) {
		if(!isDayEnabled(workingDate.getDate(), workingDate.getMonth()+1, workingDate.getYear()+1900, minD, minM, minY, maxD, maxM, maxY)){
			cell.innerHTML = workingDate.getDate();
			$(cell).addClass("oom");
	   		return YAHOO.widget.Calendar.STOP_RENDER;		
		}
	}
}

function isDayEnabled(d,m,y,minD, minM, minY, maxD, maxM, maxY){
	var res = true;
	if(minD && minM && minY){
		if(buildDateStr(d,m,y) >= buildDateStr(minD,minM,minY)){
			res = true;
		}
		else{
			res = false;
		}
		if(res && maxD && maxM && maxY){
			if(buildDateStr(d,m,y) <= buildDateStr(maxD,maxM,maxY)){
				res = true;
			}
			else{
				res = false;
			}
		}
	}
	return res;
}
*/

function setDatesRange(minDateStr, maxDateStr){
	day_of_month_renderer = function(workingDate, cell) {
		if(!isDayEnabled(workingDate.getDate(), workingDate.getMonth()+1, workingDate.getYear()*1,minDateStr,maxDateStr)){
			cell.innerHTML = workingDate.getDate();
			$(cell).addClass("oom");
	   		return YAHOO.widget.Calendar.STOP_RENDER;		
		}
	}
}

function isDayEnabled(d,m,y,minDateStr,maxDateStr){
	var res = true;
	var theDateStr = buildDateStr(d,m,y);
	
	if(minDateStr && minDateStr!=""){
		res = (theDateStr >= minDateStr);
		
		if(res && maxDateStr && maxDateStr != ""){
			res = (theDateStr <= maxDateStr);
		}
	}
	
	//alert(theDateStr+"||"+minDateStr+"|"+res);
	return res;
}


function buildDateStr(d,m,y){
	return ""+((y<1000)?y+1900 : y)+((m<10)?"0":"")+m+((d<10)?"0":"")+d+"";
}


/*
function submitRecalculate(formName){

	var theForm = document.forms[formName];
	var url = "/IS1/ajax/index.htm";
	var params = createPostParams(theForm);
	var callback = "processRecalculateData";
	ajaxAction(url, params, callback);

}

function processRecalculateData(text){
	var xmlStr = text.substring(text.indexOf("</head>")+9, text.length-7);
	if (window.DOMParser){
		parser=new DOMParser();
		xmlDoc=parser.parseFromString(xmlStr,"text/xml");
	}
	else{ // Internet Explorer
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(xmlStr);
	}

	var roomsData = xmlDoc.getElementsByTagName("right_side_booking");
	var totalRooms = roomsData.length;
	for(var i=0; i<totalRooms; i++){
		var formName = roomsData[i].getAttribute("form_name");
		var roomData = roomsData[i].childNodes[0].data;
		document.getElementById(formName+"Div").innerHTML = roomData;
	}
}
*/
function processCountryChange(text){
	var xmlStr = text.substring(text.indexOf("</head>")+9, text.length-9);
	if (window.DOMParser){
		parser=new DOMParser();
		xmlDoc=parser.parseFromString(xmlStr,"text/xml");
	}
	else{ // Internet Explorer
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(xmlStr);
	}

	var prData = xmlDoc.getElementsByTagName("prefixes");
	if(prData.length == 1){
		document.getElementById("phonePrefixWrap").innerHTML = prData[0].childNodes[0].data;
	}
}

function processPrefixChange(text){
	var xmlStr = text.substring(text.indexOf("</head>")+9, text.length-9);
	if (window.DOMParser){
		parser=new DOMParser();
		xmlDoc=parser.parseFromString(xmlStr,"text/xml");
	}
	else{ // Internet Explorer
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(xmlStr);
	}
	var lenData = xmlDoc.getElementsByTagName("len");
	if(lenData.length > 0){
		document.getElementById("number_len").value = lenData[0].childNodes[0].data;
	}
}

function onPrefixChange(prefix){
	var countryInp = document.getElementById("callMeCountry");
	var country = countryInp.options[countryInp.selectedIndex].value;
	var url = __liveAssistUrl+"?callMeCountry="+country+"&prefix="+prefix;
	var params = "";
	var callback = "processPrefixChange";
	ajaxAction(url, params, callback);
}

function onCountryChange(country){
	var url = __liveAssistUrl+"?callMeCountry="+country;
	var params = "";
	var callback = "processCountryChange";
	ajaxAction(url, params, callback);
	/*
	return false;


	var prefixes = getPrefixes(country);
	var select = document.getElementById('laPhonePrefix');
	var innerHtml = "";
	select.options.length=0;
	if(prefixes && prefixes.length>0){
		for(var i=0; i< prefixes.length; i++){
			if(country==1){
				label = "0"+prefixes[i];
			}
			else{
				label = prefixes[i];
			}
			select.options[i] = new Option(label,prefixes[i]);
			//var prefix = prefixes[i];
			//innerHtml += '<option>'+prefix+'</option>';
		}
	}
	
	//document.getElementById('laPhonePrefix').innerHTML = innerHtml;
	//Shiri
	//replaceSelect($("#laPhonePrefix"));
	//document.getElementById('laPhonePrefix').sSelect();
	*/
}
/*
function onCountryChange(country){
	var prefixes = getPrefixes(country);
	var select = document.getElementById('laPhonePrefix');
	var innerHtml = "";
	select.options.length=0;
	if(prefixes && prefixes.length>0){
		for(var i=0; i< prefixes.length; i++){
			if(country==1){
				label = "0"+prefixes[i];
			}
			else{
				label = prefixes[i];
			}
			select.options[i] = new Option(label,prefixes[i]);
			//var prefix = prefixes[i];
			//innerHtml += '<option>'+prefix+'</option>';
		}
	}
	
	//document.getElementById('laPhonePrefix').innerHTML = innerHtml;
	//Shiri
	//replaceSelect($("#laPhonePrefix"));
	//document.getElementById('laPhonePrefix').sSelect();
}
*/
function getPrefixes(country){
	for(var i=0; i< prefixByCountry.length; i++){
		var countryPrefix = prefixByCountry[i];
		if(countryPrefix[0] == country){
			return countryPrefix[1];
		}
	}
	return;
}

function callMePicChange(object,fromPic,toPic){
	$(object).attr("src", $(object).attr("src").replace(fromPic, toPic));
}

function callMe(object){
/*
	var country = "";
	var inp = document.forms.callMeFrm.callMeCountry;
	var selIdx = inp.options.selectedIndex;
	if(inp.options[selIdx].value == ""){
		country.value = inp.options[inp.options.selectedIndex].text;		
	}

	var prefix = "";
	var inp = document.forms.callMeFrm.laPhonePrefix;
	var selIdx = inp.options.selectedIndex;
	alert();
	if(inp.options[selIdx].value == ""){
		prefix.value = inp.options[inp.options.selectedIndex].text;		
	}	
	
	var phone = document.forms.callMeFrm.callMePhone.value;
	*/
	var country = $("#callMeCountry").val();
	var prefix = $("#laPhonePrefix").val();
	var phone = $("#callMePhone").val()
	
	if(country == "" || prefix == "" || phone == ""){
		alert("Please fill all fields");
	}
	else{
		var phoneLen = phone.length;
		var desiredLen = document.getElementById("number_len").value * 1;
		/*

		for(var i=0; i< lengthByCountry.length; i++){
			if(lengthByCountry[i][0] == country){
				desiredLen = lengthByCountry[0][1]*1;
			}
		}
		*/
		if(desiredLen==(phoneLen*1)){
			/*$(object).attr("src", $(object).attr("src").replace("dial.jpg", "login_button.jpg"));*/
			/*$(object).attr("src", $(object).attr("src").replace("dial.jpg", "dialing.jpg"));*/
			callMePicChange(object,"dial.jpg", "dialing.jpg");
			setTimeout(function(){callMePicChange(object,'dialing.jpg', 'dial.jpg');},20000);
			if(country == 1){
				country = "0";
			}
			var url = "http://212.179.35.80/danhotels.php?number=" + country + prefix + phone;//9720544874238
			document.getElementById("callMeIframe").src = url;
		}
		else{
			alert("Phone have to be "+desiredLen+" charactes");
		}
	}
}



function GetXmlHttpObject(){
	var xmlHttp;
	try{    // Firefox, Opera 8.0+, Safari    
		xmlHttp=new XMLHttpRequest();
	}
	catch (e){    // Internet Explorer
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
			try{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){
				alert(msg_not_support_ajax);
				return false;
			}
		}
	}
	return xmlHttp;
}


/**
* If callback is not specified, do nothing
* If callback specified - pass responce to callback function
* If reRender specified, replace it's content with responce, and pass it to callback
* NOTE: use <code>void()</code> if you do not want callback, but want to rerender component 
*/
function ajaxAction(url, params, callback){
	xmlHttp=GetXmlHttpObject();
	xmlHttp.onreadystatechange=function(){
		if(xmlHttp.readyState==4){
			if (xmlHttp.status == 200){
				if(callback != null){
					var xmlDoc=xmlHttp.responseText;
					eval(callback + "(xmlDoc);" );
				}
			}else{
				alert("HttpError. Status="+xmlHttp.status + xmlHttp.responseText);
			}
		}
	}
	
	//action += '&inog=' + Math.random();
	url += '&inog=' + Math.random();	
	xmlHttp.open("POST",url,true);
	
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
//	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function copyRoomsFormToForm(formName, toFrmName){
	var frm = document.forms[formName];
	var arrival_date 	= frm["u_arrival_date"].value;
	var departure_date 	= frm["u_departure_date"].value;
	var chosenNightsNo 	= frm["no_of_nights"].value;
	
	var roomsNoIndex		=	frm["rooms_no"].selectedIndex;
	
	var adultsNoIndex		=	frm["room1_adults"].selectedIndex;
	var childrenNoIndex		=	frm["room1_children"].selectedIndex;
	var infantsNoIndex		=	frm["room1_infants"].selectedIndex;

	var adultsNo2Index		=	frm["room2_adults"].selectedIndex;
	var childrenNo2Index	=	frm["room2_children"].selectedIndex;
	var infantsNo2Index		=	frm["room2_infants"].selectedIndex;
	
	
	var toFrm = document.forms[toFrmName];
	toFrm["u_arrival_date"].value 			= arrival_date;
	toFrm["u_departure_date"].value 		= departure_date;
	//setSelectedDatesRange (arrival_date,departure_date);
	toFrm["no_of_nights"].value	 			= chosenNightsNo;
	//$(".total-nights-number").val(chosenNightsNo);
	
	toFrm["rooms_no"].selectedIndex			= roomsNoIndex;	
	var secondRoomDiv = $(toFrm).find("div.room_form_duplicate").children()[1];
	secondRoomDiv.style.display = (roomsNoIndex>0)? "block" : "none";
	
	$(toFrm).find("span.total-nights-number").html(chosenNightsNo);
	
	toFrm["room1_adults"].selectedIndex		= adultsNoIndex;	
	toFrm["room1_children"].selectedIndex	= childrenNoIndex;	
	toFrm["room1_infants"].selectedIndex	= infantsNoIndex;
		
	toFrm["room2_adults"].selectedIndex		= adultsNo2Index;	
	toFrm["room2_children"].selectedIndex	= childrenNo2Index;
	toFrm["room2_infants"].selectedIndex	= infantsNo2Index;
}

function copyFieldsToAllForms(formName){
	
	var roomFormName,toFrm;
	for (i=0;i<=document.forms.length-1;i++)
	{
		roomFormName = "";
		if (document.forms[i].userRoomType)
		{
			roomFormName = "room" + document.forms[i].userRoomType.value + "Frm";
		
			newFormName = document.forms[i].name;
		
			if ((newFormName == roomFormName) && (newFormName != formName))
			{
				copyRoomsFormToForm(formName, newFormName);
			}
		}
	}
	
	/*
	var frm = document.forms[formName];
	var chosenNightsNo 	= frm["no_of_nights"].value;
	var elems;
	elems = document.getElementsByClassName("total-nights-number");
	for(var i = 0; i < elems.length; ++i) 
	{ 

		elems[i].innerHTML = chosenNightsNo;
	}
	
		
	var roomsNoIndex = frm["rooms_no"].selectedIndex;
	if (roomsNoIndex == 2)
	{
		elems= document.getElementsByClassName("room_unit");
		for(var i = 0; i < elems.length; ++i) 
		{ 
			elems[i].style.display="";
		}
	}
	*/
}
function submitRecalculate(formName){

	var theForm = document.forms[formName];
	var url = __roomsCalcUrl;//"/IS1/ajax/index.htm";
	var params = createPostParams(theForm);
	var callback = "processRecalculateData";
	
	$(".error_message_booking").each(function(){$(this).html("");});
	if (validateResBox(formName))
	{
		copyFieldsToAllForms(formName);
		ajaxAction(url, params, callback);
	}
}

function processRecalculateData(text){
	var xmlStr = text.substring(text.indexOf("</head>")+9, text.length-7);
	if (window.DOMParser){
		parser=new DOMParser();
		xmlDoc=parser.parseFromString(xmlStr,"text/xml");
	}
	else{ // Internet Explorer
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(xmlStr);
	}
	var roomsData = xmlDoc.getElementsByTagName("right_side_booking");
	var totalRooms = roomsData.length;
	for(var i=0; i<totalRooms; i++){
		var formName = roomsData[i].getAttribute("form_name");
		var roomData = roomsData[i].childNodes[0].data;
		try{
		document.getElementById(formName+"Div").innerHTML = roomData;
		}
		catch(e){}
	}
}


function createPostParams(formObj){
	var res = '';
	var inputs = formObj.getElementsByTagName('INPUT');
	var inputsCount = inputs.length;
	for(i=0; i<inputsCount; i++){
		var inp = inputs[i];
		if(inp.type == 'text' || inp.type == 'hidden'){
			res += '&'+inp.name + '=' + inp.value;
		}
		else if(inp.type == 'checkbox'){
			res += '&'+inp.name + '=' + (inp.checked?inp.value:'0');
		}
	}
	var inputs = formObj.getElementsByTagName('SELECT');
	var inputsCount = inputs.length;
	for(i=0; i<inputsCount; i++){
		var inp = inputs[i];
		//alert(inp.name+": "+inp.selectedIndex + ",-"+inp.options[inp.selectedIndex].value);
		res += '&'+inp.name + '=' + inp.options[inp.selectedIndex].value;
	}
	var inputs = formObj.getElementsByTagName('TEXTAREA');
	var inputsCount = inputs.length;
	for(i=0; i<inputsCount; i++){
		var inp = inputs[i];
		res += '&'+inp.name + '=' + inp.value;
	}
	return res;
}

function processEnter(e, handler){
	if(event.keyCode == 13){
		eval(handler);
	}
}

function changePassword(){
	document.getElementById('change_pass_msg').innerHTML = "";
	var oldPass = document.getElementById('old_pass').value;
	var pass1 = document.getElementById('pass1').value;
	var pass2 = document.getElementById('pass2').value;
	
	if(pass1=="" || pass2=="" || oldPass==""){
		document.getElementById('change_pass_msg').innerHTML = msg_fill_all_fields;
		return false;
	}
	
	if(pass1!=pass2){
		document.getElementById('change_pass_msg').innerHTML = msg_pass_different;
		return false;
	}
	
	var url = __changePassUrl;//"/IS1/ajax/ch_pa/index.htm";
	var params = "pass1="+pass1+"&old_pass="+oldPass;
	var callback = "processChangePassword";
	ajaxAction(url, params, callback);
}

function processChangePassword(text){
	var xmlStr = text.substring(text.indexOf("</head>")+9, text.length-9);
	if (window.DOMParser){
		parser=new DOMParser();
		xmlDoc=parser.parseFromString(xmlStr,"text/xml");
	}
	else{ // Internet Explorer
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(xmlStr);
	}
	
	var resData = xmlDoc.getElementsByTagName("res")[0].childNodes[0].data;
	var newPass = xmlDoc.getElementsByTagName("pass")[0].childNodes[0].data;
	if(resData=="1"){
		
		document.getElementById('member_pass_txt').innerHTML = newPass;
		document.getElementById('change_pass_msg').innerHTML = msg_change_pass_ok;
	}
	else{
		document.getElementById('change_pass_msg').innerHTML = msg_wrong_pass;
	}

}
