// Search form check fields.
/********************************* check_search_fields ************************************/
/*
Global check search form fields function:
input parameters:
	page_type: The type of the page [homepage, hotels, fars, cars]
	form_type: The type of the form [htl, far, car]
	cur_lang: The current language [en, ar]
*/
function check_search_fields(page_type,form_type,cur_lang){
	if(page_type == "homepage"){
		if(form_type == "htl"){return home_check_htl_form(cur_lang);}
		if(form_type == "far"){return home_check_far_form(cur_lang);}
		if(form_type == "car"){return home_check_car_form(cur_lang);}
		}
	
	if(page_type == "hotels"){
		if(form_type == "htl"){return hotels_check_htl_form(cur_lang);}
		}
	
	if(page_type == "fars"){
		if(form_type == "far"){return fars_check_far_form(cur_lang);}
		}
		
	if(page_type == "cars"){
		if(form_type == "car"){return cars_check_car_form(cur_lang);}
		}
	
	alert('Error Occured!!!');		
	return false;		
	}
	
/********************************* home_check_htl_form ************************************/
function home_check_htl_form(cur_lang){
if(document.hotel_form.nb_adults.value=="" || document.hotel_form.nb_adults.value <= 0  || isNaN(document.hotel_form.nb_adults.value) ){
	if(cur_lang == "en"){alert('Invalid number of adults!');}
	else{alert('الرجاء إدخال عدد الراشدين!');}
	document.hotel_form.nb_adults.value = "";
	document.hotel_form.nb_adults.focus();
	return false;
	}

if(document.hotel_form.nb_childs.value < 0  || isNaN(document.hotel_form.nb_childs.value) ){
	if(cur_lang == "en"){alert('Invalid number of children!');}
	else{alert('الرجاء إدخال عدد الأطفال بالشكل الصحيح!');}
	document.hotel_form.nb_childs.value = "";
	document.hotel_form.nb_childs.focus();
	return false;
	}

if(document.hotel_form.nb_rooms.value=="" || document.hotel_form.nb_rooms.value <= 0  || isNaN(document.hotel_form.nb_rooms.value) ){
	if(cur_lang == "en"){alert('Invalid number of rooms!');}
	else{alert('الرجاء إدخال عدد الغرف!');}
	document.hotel_form.nb_rooms.value = "";
	document.hotel_form.nb_rooms.focus();
	return false;
	}

if(document.hotel_form.nb_rooms.value > document.hotel_form.nb_adults.value ){
	if(cur_lang == "en"){alert('Number of adults must be >= number of rooms!');}
	else{alert('عدد الراشدين يجب أن يكون أكبر أو يساوي عدد الغرف!');}
	document.hotel_form.nb_adults.focus();
	return false;
	}
/*	
if(document.hotel_form.min_distance.value != "" && isNaN(document.hotel_form.min_distance.value) ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	document.hotel_form.min_distance.focus();
	return false;
	}
	
if(document.hotel_form.max_distance.value != "" && isNaN(document.hotel_form.max_distance.value) ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	document.hotel_form.max_distance.focus();
	return false;
	}	
	
if(document.hotel_form.max_distance.value < 0 || document.hotel_form.min_distance.value < 0 ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	return false;
	}	
*/	
return checkdates_ft(document.hotel_form.checkin_date.value,document.hotel_form.checkout_date.value,"htl",cur_lang);
}

/********************************* home_check_far_form ************************************/
function home_check_far_form(cur_lang){
var sum_units = 0
if(document.far_form.nb_passengers.value=="" || document.far_form.nb_passengers.value <= 0 || isNaN(document.far_form.nb_passengers.value) ){
	if(cur_lang == "en"){alert('Invalid number of passengers!');}
	else{alert('الرجاء إدخال عدد الأشخاص!');}
	document.far_form.nb_passengers.value = "";
	document.far_form.nb_passengers.focus();
	return false;
	}
	
if( document.far_form.nb_1_room.value < 0 || isNaN(document.far_form.nb_1_room.value) ){
	if(cur_lang == "en"){alert('Invalid number of units!');}
	else{alert('الرجاء إدخال عدد الوحدات السكنية!');}
	document.far_form.nb_1_room.value = "";
	document.far_form.nb_1_room.focus();
	return false;
	}
	
if( document.far_form.nb_2_room.value < 0 || isNaN(document.far_form.nb_2_room.value) ){
	if(cur_lang == "en"){alert('Invalid number of units!');}
	else{alert('الرجاء إدخال عدد الوحدات السكنية!');}
	document.far_form.nb_2_room.value = "";
	document.far_form.nb_2_room.focus();
	return false;
	}
	
if( document.far_form.nb_3_room.value < 0 || isNaN(document.far_form.nb_3_room.value) ){
	if(cur_lang == "en"){alert('Invalid number of units!');}
	else{alert('الرجاء إدخال عدد الوحدات السكنية!');}
	document.far_form.nb_3_room.value = "";
	document.far_form.nb_3_room.focus();
	return false;
	}
	
if(document.far_form.nb_1_room.value == "" )  nb_rooms_1 = 0; else nb_rooms_1  = parseInt(document.far_form.nb_1_room.value);
if(document.far_form.nb_2_room.value == "" )  nb_rooms_2 = 0; else nb_rooms_2  = parseInt(document.far_form.nb_2_room.value);
if(document.far_form.nb_3_room.value == "" )  nb_rooms_3 = 0; else nb_rooms_3  = parseInt(document.far_form.nb_3_room.value);
nb_pass = parseInt(document.far_form.nb_passengers.value);
sum_units = nb_rooms_1 + nb_rooms_2 + nb_rooms_3;

if( (nb_pass < sum_units) ||  (sum_units <= 0) ){	
	if(cur_lang == "en"){alert('Number of passengers must be >= number of units!');}
	else{alert('عدد الأشخاص يجب أن يكون أكبر أو يساوي عدد الوحدات السكنية!');}
	return false;
	}
/*
if(document.far_form.far_min_distance.value != "" && isNaN(document.far_form.far_min_distance.value) ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	document.far_form.far_min_distance.focus();
	return false;
	}
	
if(document.far_form.far_max_distance.value != "" && isNaN(document.far_form.far_max_distance.value) ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	document.far_form.far_max_distance.focus();
	return false;
	}	
	
if(document.far_form.far_max_distance.value < 0 || document.far_form.far_min_distance.value < 0 ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	return false;
	}	
*/	
return checkdates_ft(document.far_form.far_checkin_date.value,document.far_form.far_checkout_date.value,"far",cur_lang);
}

/***************************************** home_check_car_form ***********************************/
function home_check_car_form(cur_lang){
	if(document.car_form.pickup_date.value==""){
		if(cur_lang == "en"){alert('Enter a pickup date!');}
		else{alert('أدخل تاريخ الإستلام');}
		document.car_form.pickup_date.focus();
		return false;
		}
		
	if(document.car_form.return_date.value==""){
		if(cur_lang == "en"){alert('Enter a return date!');}
		else{alert('أدخل تاريخ التسليم');}
		document.car_form.return_date.focus();
		return false;
		}
		
	if(document.car_form.nb_cars.value=="" || document.car_form.nb_cars.value <= 0 || isNaN(document.car_form.nb_cars.value) ){
		if(cur_lang == "en"){alert('Invalid number of cars!');}
		else{alert('الرجاء إدخال عدد السيارات');}
		document.car_form.nb_cars.value = "";
		document.car_form.nb_cars.focus();
		return false;
		}
		
	if (     (document.car_form.pickup_date.value == document.car_form.return_date.value) && 
			 (document.car_form.pickup_hour[document.car_form.pickup_hour.selectedIndex ].value >= document.car_form.return_hour[document.car_form.return_hour.selectedIndex ].value) &&
			 (document.car_form.pickup_period[document.car_form.pickup_period.selectedIndex ].value ==  document.car_form.return_period[document.car_form.return_period.selectedIndex ].value ||
			  document.car_form.pickup_period[document.car_form.pickup_period.selectedIndex ].value=="PM" &&  document.car_form.return_period[document.car_form.return_period.selectedIndex ].value == "AM" 
			  )
		){
	 
		if(cur_lang == "en"){alert('You cannot specify a return date which is equal or less than pickup date!');}
		else{alert('لا يمكنك إختيار تاريخ التسليم مساويا لتاريخ الإستلام أو أصغر منه!');}
	  	return false;
   		}
		
	return checkdates_ft(document.car_form.pickup_date.value,document.car_form.return_date.value,"car",cur_lang);	
}

/************************************ hotels_check_htl_form ********************************/
function hotels_check_htl_form(cur_lang){
if(document.hotel_form.nb_adults.value=="" || document.hotel_form.nb_adults.value <= 0  || isNaN(document.hotel_form.nb_adults.value) ){
	if(cur_lang == "en"){alert('Invalid number of adults!');}
	else{alert('الرجاء إدخال عدد الراشدين!');}
	document.hotel_form.nb_adults.value = "";
	document.hotel_form.nb_adults.focus();
	return false;
	}

if(document.hotel_form.nb_childs.value < 0  || isNaN(document.hotel_form.nb_childs.value) ){
	if(cur_lang == "en"){alert('Invalid number of children!');}
	else{alert('الرجاء إدخال عدد الأطفال بالشكل الصحيح!');}
	document.hotel_form.nb_childs.value = "";
	document.hotel_form.nb_childs.focus();
	return false;
	}

if(document.hotel_form.nb_rooms.value=="" || document.hotel_form.nb_rooms.value <= 0  || isNaN(document.hotel_form.nb_rooms.value) ){
	if(cur_lang == "en"){alert('Invalid number of rooms!');}
	else{alert('الرجاء إدخال عدد الغرف!');}
	document.hotel_form.nb_rooms.value = "";
	document.hotel_form.nb_rooms.focus();
	return false;
	}

if(document.hotel_form.nb_rooms.value > document.hotel_form.nb_adults.value ){
	if(cur_lang == "en"){alert('Number of adults must be >= number of rooms!');}
	else{alert('عدد الراشدين يجب أن يكون أكبر أو يساوي عدد الغرف!');}
	document.hotel_form.nb_adults.focus();
	return false;
	}
/*
if(document.hotel_form.min_distance.value != "" && isNaN(document.hotel_form.min_distance.value) ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	document.hotel_form.min_distance.focus();
	return false;
	}
	
if(document.hotel_form.max_distance.value != "" && isNaN(document.hotel_form.max_distance.value) ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	document.hotel_form.max_distance.focus();
	return false;
	}	
	
if(document.hotel_form.max_distance.value < 0 || document.hotel_form.min_distance.value < 0 ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	return false;
	}	
*/		
return checkdates_ft(document.hotel_form.checkin_date.value,document.hotel_form.checkout_date.value,"htl",cur_lang);
}

/************************************ fars_check_far_form ********************************/
function fars_check_far_form(cur_lang){
var sum_units = 0
if(document.far_form.nb_passengers.value=="" || document.far_form.nb_passengers.value <= 0 || isNaN(document.far_form.nb_passengers.value) ){
	if(cur_lang == "en"){alert('Invalid number of passengers!');}
	else{alert('الرجاء إدخال عدد الأشخاص!');}
	document.far_form.nb_passengers.value = "";
	document.far_form.nb_passengers.focus();
	return false;
	}
	
if( document.far_form.nb_1_room.value < 0 || isNaN(document.far_form.nb_1_room.value) ){
	if(cur_lang == "en"){alert('Invalid number of units!');}
	else{alert('الرجاء إدخال عدد الوحدات السكنية!');}
	document.far_form.nb_1_room.value = "";
	document.far_form.nb_1_room.focus();
	return false;
	}
	
if( document.far_form.nb_2_room.value < 0 || isNaN(document.far_form.nb_2_room.value) ){
	if(cur_lang == "en"){alert('Invalid number of units!');}
	else{alert('الرجاء إدخال عدد الوحدات السكنية!');}
	document.far_form.nb_2_room.value = "";
	document.far_form.nb_2_room.focus();
	return false;
	}
	
if( document.far_form.nb_3_room.value < 0 || isNaN(document.far_form.nb_3_room.value) ){
	if(cur_lang == "en"){alert('Invalid number of units!');}
	else{alert('الرجاء إدخال عدد الوحدات السكنية!');}
	document.far_form.nb_3_room.value = "";
	document.far_form.nb_3_room.focus();
	return false;
	}
	
if(document.far_form.nb_1_room.value == "" )  nb_rooms_1 = 0; else nb_rooms_1  = parseInt(document.far_form.nb_1_room.value);
if(document.far_form.nb_2_room.value == "" )  nb_rooms_2 = 0; else nb_rooms_2  = parseInt(document.far_form.nb_2_room.value);
if(document.far_form.nb_3_room.value == "" )  nb_rooms_3 = 0; else nb_rooms_3  = parseInt(document.far_form.nb_3_room.value);
nb_pass = parseInt(document.far_form.nb_passengers.value);
sum_units = nb_rooms_1 + nb_rooms_2 + nb_rooms_3;

if( (nb_pass < sum_units) ||  (sum_units <= 0) ){
	if(cur_lang == "en"){alert('Number of passengers must be >= number of units!');}
	else{alert('عدد الأشخاص يجب أن يكون أكبر أو يساوي عدد الوحدات السكنية!');}
	return false;
	}
/*		
if(document.far_form.far_min_distance.value != "" && isNaN(document.far_form.far_min_distance.value) ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	document.far_form.far_min_distance.focus();
	return false;
	}
	
if(document.far_form.far_max_distance.value != "" && isNaN(document.far_form.far_max_distance.value) ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	document.far_form.far_max_distance.focus();
	return false;
	}	
	
if(document.far_form.far_max_distance.value < 0 || document.far_form.far_min_distance.value < 0 ){
	if(cur_lang == "en"){alert('Invalid Distance !!!');}
	else{alert('المسافة غير صحيحة !!!');}
	return false;
	}	
*/		
return checkdates_ft(document.far_form.far_checkin_date.value,document.far_form.far_checkout_date.value,"far",cur_lang);
}

/************************************ cars_check_car_form ********************************/
function cars_check_car_form(cur_lang){
	if(document.car_form.pickup_date.value==""){
		if(cur_lang == "en"){alert('Enter a pickup date!');}
		else{alert('أدخل تاريخ الإستلام');}
		document.car_form.pickup_date.focus();
		return false;
		}
		
	if(document.car_form.return_date.value==""){
		if(cur_lang == "en"){alert('Enter a return date!');}
		else{alert('أدخل تاريخ التسليم');}
		document.car_form.return_date.focus();
		return false;
		}
		
	if(document.car_form.nb_cars.value=="" || document.car_form.nb_cars.value <= 0 || isNaN(document.car_form.nb_cars.value) ){
		if(cur_lang == "en"){alert('Invalid number of cars!');}
	    else{alert('الرجاء إدخال عدد السيارات');}
		document.car_form.nb_cars.value = "";
		document.car_form.nb_cars.focus();
		return false;
		}
		
	if (     (document.car_form.pickup_date.value == document.car_form.return_date.value) && 
			 (document.car_form.pickup_hour[document.car_form.pickup_hour.selectedIndex ].value >= document.car_form.return_hour[document.car_form.return_hour.selectedIndex ].value) &&
			 (document.car_form.pickup_period[document.car_form.pickup_period.selectedIndex ].value ==  document.car_form.return_period[document.car_form.return_period.selectedIndex ].value ||
			  document.car_form.pickup_period[document.car_form.pickup_period.selectedIndex ].value=="PM" &&  document.car_form.return_period[document.car_form.return_period.selectedIndex ].value == "AM" 
			  )
		){
		if(cur_lang == "en"){alert('You cannot specify a return date which is equal or less than pickup date!');}
		else{alert('لا يمكنك إختيار تاريخ التسليم مساويا لتاريخ الإستلام أو أصغر منه!');}
	  	return false;
   		}
		
	return checkdates_ft(document.car_form.pickup_date.value,document.car_form.return_date.value,"car",cur_lang);	
}

/************************************ days_between ********************************/
function days_between(date1, date2) {
    var ONE_DAY = 1000 * 60 * 60 * 24
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()
    var difference_ms = Math.abs(date1_ms - date2_ms)
    return Math.round(difference_ms/ONE_DAY)
}

/*********************************** checkdates_ft ****************************************/
function checkdates_ft(date1,date2,form_type,cur_lang){
   now = new Date
   var str_date1 = date1;
   var str_date2 = date2;
   
   var arr_date1 = str_date1.split('-');
   var arr_date2 = str_date2.split('-');

     if(arr_date1[0] < 10 ){
	  arr_date1_0 = arr_date1[0].replace('0','');
	  }
	  else{
			arr_date1_0 = arr_date1[0];
			}
	arr_date1_0 = parseInt(arr_date1_0);
	if(arr_date2[0] < 10 ){
	 	arr_date2_0 = arr_date2[0].replace('0','');
		}
		else{
			arr_date2_0 = arr_date2[0];
			}
	arr_date2_0 = parseInt(arr_date2_0);
	
   if ((arr_date1[2] < now.getFullYear() )|| ( arr_date1[2] == now.getFullYear() && arr_date1[1] < now.getMonth() + 1 ) || ( arr_date1[2] == now.getFullYear() && arr_date1[1] == now.getMonth()+ 1 && arr_date1_0 < now.getDate() ) ){  
		if(cur_lang == "en"){alert('You cannot specify a date which is before today date!');}
		else{alert('لا يمكنك إختيار تاريخ قبل التاريخ الحالي!');}
	  	return false;
   		}
		
   if (arr_date2[2] < now.getFullYear() || ( arr_date2[2] == now.getFullYear() && arr_date2[1] < now.getMonth()+ 1 ) || ( arr_date2[2] == now.getFullYear() && arr_date2[1] == now.getMonth()+ 1 && arr_date2_0 < now.getDate() ) ){
		if(cur_lang == "en"){alert('You cannot specify a date which is before today date!');}
		else{alert('لا يمكنك إختيار تاريخ قبل التاريخ الحالي!');}
	  	return false;
   		}
		
   if (arr_date2[2] < arr_date1[2] || ( arr_date2[2] == arr_date1[2] && arr_date2[1] < arr_date1[1] ) || ( arr_date2[2] == arr_date1[2] && arr_date2[1] == arr_date1[1] && arr_date2[0] < arr_date1[0] ) ){
		if(cur_lang == "en"){
			if(form_type == "car"){alert('You cannot specify a return date which is before pickup date!');}
			else{alert('You cannot specify a checkout date which is before check-in date!');}
			}
			else{
				 if(form_type != "car"){alert('لا يمكنك إختيار تاريخ الخروج قبل تاريخ الدخول!');}
				 else{alert('لا يمكنك إختيار تاريخ التسليم قبل تاريخ الإستلام!');}
				 }
		
	    return false;
   		}
		
  if (arr_date1.length==1 || arr_date2.length==1){
		if(cur_lang == "en"){alert('Invalid date format:the date format must be dd-mm-yyyy!');}
		else{alert('شكل التاريخ يجب أن يكون dd-mm-yyyy!');}
		return false;
		}
  
  if ((arr_date2[2].length != 4) || (arr_date1[2].length != 4) || (arr_date1[1].length != 2) || (arr_date2[1].length != 2) || (arr_date2[0].length != 2) || (arr_date1[0].length != 2) ){  
		if(cur_lang == "en"){alert('Invalid date format:the date format must be dd-mm-yyyy!');}
		else{alert('شكل التاريخ يجب أن يكون dd-mm-yyyy!');}
	  	return false;
	  	}

	dateone = new Date(parseInt(arr_date1[2]),arr_date1[1],arr_date1_0);
	datetwo = new Date(parseInt(arr_date2[2]),arr_date2[1],arr_date2_0);

	if(days_between(dateone,datetwo) >= 45 ){
		if(cur_lang == "en"){
			alert('For Bookings longer than 45 Days, Kindly Contact us on Tel. +966 1 215 2000');
			}
			else{
				alert('للحجز لمدة أطول من 45 يوم، نأمل الإتصال بنا مباشرة على الرقم +966 1 215 2000');
				}
		return false;
		}

   return true;
}
