function showHideDivs(divPrefix, minValue, thisValue, maxValue) {

	for (var i=parseInt(minValue)+1; i<=thisValue; i++) {
		document.getElementById(divPrefix+i).style.display = "block";
	}
	for (var j=parseInt(thisValue)+1; j<=maxValue; j++) {
		document.getElementById(divPrefix+j).style.display = "none";
	}
}


function search(origin, dest, hotelname, relDepart, relEnd, adults) {
	
	var departDate = new Date();
	departDate.setTime(departDate.getTime() + relDepart*24*60*60*1000);
	var returnDate = new Date();
	returnDate.setTime(returnDate.getTime() + relEnd*24*60*60*1000);		
	
	var deprtStr = zeropad(departDate.getDate())+"/" + zeropad(departDate.getMonth()+1)
													+ "/" + departDate.getFullYear();
	
	var retnStr = zeropad(returnDate.getDate())+"/" + zeropad(returnDate.getMonth()+1)
													+ "/" + returnDate.getFullYear();
	
													
	set_radio_value('radtripTypeFH', 'R');
	document.getElementById('departureDate').value = deprtStr;
	document.getElementById('returnDate').value = retnStr;
	document.getElementById('checkInDate').value = deprtStr;
	document.getElementById('checkOutDate').value = retnStr;
	document.getElementById('seldestination1').value = dest;
	document.getElementById('selorigin1').value = origin;
	document.getElementById('hotelCity').value = dest;
	document.getElementById('fphRooms').value = 1;
	document.getElementById('fphadults').value = adults;
	document.getElementById('fphchildren').value = 0;
	document.getElementById('fphinfants').value = 0;
	document.getElementById('hotelName').value = hotelname;
	document.forms[0].submit();
}
	
function zeropad(string) {
	if (parseInt(string)>=10)  return string;
	else return "0"+string;
}

function get_radio_value(element)
{	var radioButton = document.getElementsByName(element);
	var rad_val;
	for (var i=0; i < radioButton.length; i++)
   	{
   	if (radioButton[i].checked)
      {
      	rad_val = radioButton[i].value;
      }
   }
   return rad_val;
}

function set_radio_value(element,val)
{	var radioButton = document.getElementsByName(element);
	var rad_val;
	for (var i=0; i < radioButton.length; i++)
   	{
   	if (radioButton[i].value == val)
      {
   		radioButton[i].checked = true;
      }
   }
}


function showHideAgeLabel() {
	document.getElementById('childAgesLabel').style.display = "none";
	var noOfRooms = document.getElementById('fphRooms').value;
	var items = document.getElementsByName('fphchildren');
	for (var i = 0; i < items.length; i++) {
		if(i >= noOfRooms)
		{
			break;
		}
		if (items[i].value > 0) {
			document.getElementById('childAgesLabel').style.display = "block";
			break;
		}
	}
	
}

function showHideAgeLabelInModifyWidget()
{
	document.getElementById('childAgesLabel').style.display = "none";
	var noOfRooms = document.getElementById('fphRooms').value;
	for(var i=1;i<=noOfRooms;i++)
	{
		var noOfChildren = document.getElementById('fphchildren'+i).value;
		if(noOfChildren > 0)
		{
			document.getElementById('childAgesLabel').style.display = "block";
			break;
		}
	}
}

function showCheckInLabel() {
	var val = document.getElementById('departureDate').value;
	if (val != "" && val != 'DD/MM/YYYY') {		
		document.getElementById('labelCheckInDate').innerHTML='<b>Check-in: '+ val + '</b>';
	}
	if(document.getElementById('flexiDates').style.display == 'none')
	{
		if (val != "" && val != 'DD/MM/YYYY') {						
			document.getElementById('checkInDate').value=val;
		}
	}
	else
	{
		if (val != "" && val != 'DD/MM/YYYY' && document.getElementById('checkInDate').value == 'DD/MM/YYYY') {					
			document.getElementById('checkInDate').value=val;
		}
	}

}

function showCheckOutLabel() {
	var val = document.getElementById('returnDate').value;
	if (val != "" && val != 'DD/MM/YYYY') {		
		document.getElementById('labelCheckOutDate').innerHTML='<b>Check-out: '+ val + '</b>';
	}
	if(document.getElementById('flexiDates').style.display == 'none')
	{
		if (val != "" && val != 'DD/MM/YYYY') {				
			document.getElementById('checkOutDate').value=val;
		}
	}
	else
	{
		if (val != "" && val != 'DD/MM/YYYY' && document.getElementById('checkOutDate').value == 'DD/MM/YYYY') {				
			document.getElementById('checkOutDate').value=val;
		}
	}
}
function showHotelDetails() {
	var val = document.getElementById('seldestination1').value;
	if (val != "" && document.getElementById('hotelCity').value == '') {
		document.getElementById('hotelCity').value=val;
	}
}

function toggleFlexiDates() {
	if(document.getElementById('flexiDates').style.display == 'none')
	{
		document.getElementById('nonFlexiDates').style.display = 'none';
		document.getElementById('flexiDates').style.display = 'block';
	}
	else
	{
		document.getElementById('nonFlexiDates').style.display = 'block';
		document.getElementById('flexiDates').style.display = 'none';
	}
	showCheckInLabel();
	showCheckOutLabel();
}
//function hbxload(){
//		var file="http://images5.makemytrip.com/js/hbx.js";
//		fileref1=document.createElement('script');
//		fileref1.setAttribute("type","text/javascript");
//		fileref1.setAttribute("src", file);
//		fileref1.setAttribute("language", "javascript1.1");
//		document.getElementsByTagName("head").item(0).appendChild(fileref1);
//		
//		file2="http://images5.makemytrip.com/js/hbx_india_260309.js";
//		fileref2=document.createElement('script');
//		fileref2.setAttribute("type","text/javascript");
//		fileref2.setAttribute("src", file2);
//		fileref2.setAttribute("language", "javascript1.1");
//		document.getElementsByTagName("head").item(0).appendChild(fileref2);
//}

function toggleDefaultText(elementId, defaultText)
{	
	var email_text = document.getElementById(elementId).value;
	if(email_text == "" || email_text == null)
		document.getElementById(elementId).value = defaultText;
	if(email_text == defaultText)
		document.getElementById(elementId).value = "";
		
}

function registerEmail() {
	alert('Thank you for signing up! We will soon get back with Great Offers');	
}
function replaceSpecialDealForm() {
	document.getElementById('fph-regis-form').innerHTML = '<div style=/"width:415px;height:63px;font-size:13px;color:blue;/" align=/"center/">Thank you for signing up! <br>We will soon get back with <b>Great Offers!<b></div>';
}
function resetSpecialDealForm() {
	document.getElementById('fromCityForDeals').value = '';
	document.getElementById('toCityForDeals').value = '';
	document.getElementById('emailForDeals').value = '';
}

function searchSubmit() {
	
	if (validateInput()) {
	
		
		if (document.getElementById('email').value != '' && document.getElementById('email').value != 'To get discount coupons later') {
			
		}
		document.forms[0].submit();
	}
	
}

function modifySearchSubmit() {
	if (validateInputForModifySearch()) {
		
		document.forms[0].submit();
	}
}

function getDropdownValue(select_list_field) {

	var select_list_selected_index = select_list_field.selectedIndex;

	return select_list_field.options[select_list_selected_index].text;
	
}

function validateInput() {
	if (document.getElementById('selorigin1').value == '') {
		alert('Please select the city you are leaving from');
		return false;
	}
	if (document.getElementById('seldestination1').value == '') {
		alert('Please select the city you are going to');
		return false;
	}
	
	if (document.getElementById('hotelCity').value == '') {
		alert('Please select the hotel city');
		return false;
	}
	
	if (document.getElementById('departureDate').value == ''
		|| document.getElementById('departureDate').value == 'DD/MM/YYYY') {
		alert('Please select your departure date');
		return false;
	}
	if (document.getElementById('flightReturnDate').style.display=='block' && (document.getElementById('returnDate').value == '' 
		|| document.getElementById('returnDate').value == 'DD/MM/YYYY')) {
		alert('Please select your return date');
		return false;
	}
	
	if (document.getElementById('selorigin1').value == document.getElementById('seldestination1').value) {
		alert('The destination city cannot be the same as Origin city');
		return false;
	}

	if (document.getElementById('flexiDates').style.display=='block' && (document.getElementById('checkInDate').value == '' 
		|| document.getElementById('checkInDate').value == 'DD/MM/YYYY')) {
		alert('Please select your Check-In date');
		return false;
	}
	
	if (document.getElementById('flexiDates').style.display=='block' && (document.getElementById('checkOutDate').value == '' 
		|| document.getElementById('checkOutDate').value == 'DD/MM/YYYY')) {
		alert('Please select your Check-Out date');
		return false;
	}
	//Validations on number of guests
	var numberOfRooms = document.getElementById("fphRooms").value;
	var adults = document.getElementsByName("fphadults");
	var children = document.getElementsByName("fphchildren");
	var infant = document.getElementsByName("fphinfants");
	var maxRoomStrength = 4;
	var totalGuests = 0;
	for (var count=0;count<numberOfRooms;count++)
	{
		var adultsInRoom = parseInt(adults[count].value);
		var childrenInRoom = parseInt(children[count].value);
        var infantsInRoom = parseInt(infant[count].value);

		if(infantsInRoom > adultsInRoom){
			alert("Infants cannot be more than number of adults in a room. Please check Room "+(count+1));
			return false;
		}
		var roomStrength = adultsInRoom + childrenInRoom;
		totalGuests += roomStrength;
		if ( roomStrength > maxRoomStrength)
		{
			alert("Please check that the total number of passengers (including children) per room does not exceed " + maxRoomStrength);
			return false;
		}

	}
	if(totalGuests > 6)
	{
		alert("A maximum of 6 passengers (including children) can be booked at one time!");
		return false;
	}
	
	return true;
}

function validateInputForModifySearch()
{
	if (document.getElementById('selorigin1').value == '') {
		alert('Please select the city you are leaving from');
		return false;
	}
	if (document.getElementById('seldestination1').value == '') {
		alert('Please select the city you are going to');
		return false;
	}
	
	if (document.getElementById('hotelCity').value == '') {
		alert('Please select the hotel city');
		return false;
	}
	
	if (document.getElementById('departureDate').value == ''
		|| document.getElementById('departureDate').value == 'DD/MM/YYYY') {
		alert('Please select your departure date');
		return false;
	}
	if (document.getElementById('flightReturnDate').style.display=='block' && (document.getElementById('returnDate').value == '' 
		|| document.getElementById('returnDate').value == 'DD/MM/YYYY')) {
		alert('Please select your return date');
		return false;
	}
	
	if (document.getElementById('selorigin1').value == document.getElementById('seldestination1').value) {
		alert('The destination city cannot be the same as Origin city');
		return false;
	}
	
	if ((document.getElementById('checkInDate').value == '' 
		|| document.getElementById('checkInDate').value == 'DD/MM/YYYY')) {
		alert('Please select your Check-In date');
		return false;
	}
	
	if ((document.getElementById('checkOutDate').value == '' 
		|| document.getElementById('checkOutDate').value == 'DD/MM/YYYY')) {
		alert('Please select your Check-Out date');
		return false;
	}
	//Validations on number of guests
	var numberOfRooms = document.getElementById("fphRooms").value;
	var maxRoomStrength = 4;
	var totalGuests = 0;
	for (var count=0;count<numberOfRooms;count++)
	{
		var adultsInRoom = parseInt(document.getElementById("fphadults"+(count+1)).value);
		var childrenInRoom = parseInt(document.getElementById("fphchildren"+(count+1)).value);
        var infantsInRoom = parseInt(document.getElementById("fphinfants"+(count+1)).value);
		if(infantsInRoom > adultsInRoom){
			alert("Infants cannot be more than number of adults in a room. Please check Room "+(count+1));
			return false;
		}
		var roomStrength = adultsInRoom + childrenInRoom;
		totalGuests += roomStrength;
		if ( roomStrength > maxRoomStrength)
		{
			alert("Please check that the total number of passengers (including children) per room does not exceed " + maxRoomStrength);
			return false;
		}
	}
	if(totalGuests > 6)
	{
		alert("A maximum of 6 passengers (including children) can be booked at one time!");
		return false;
	}
	
	
	var departureDate = null;
	if(document.getElementById("departureDate") != null){
		departureDate =document.getElementById("departureDate").value;
	}
	
	var returnDate = null;
	if(document.getElementById("returnDate") != null && document.getElementById("flightReturnDate").style.display!="none"){
		returnDate = document.getElementById("returnDate").value;
	}
	
	var checkInDate = null;
	if( document.getElementById("checkInDate") != null ){
		checkInDate =document.getElementById("checkInDate").value;
	}
	var checkOutDate = null; 
	if(document.getElementById("checkOutDate") != null){
		checkOutDate =document.getElementById("checkOutDate").value;
	}
    if(departureDate!=null && returnDate!=null){
    	if(!compareDate(departureDate, returnDate)){
    		alert("Please select a Return Date later than the Departure Date!");
    		return false;
    	}
    }
    if(checkInDate!=null && checkOutDate!=null){
	    if(!compareDate(checkInDate, checkOutDate)){
	    	alert("Please select a Check-Out Date later than the Check-In Date!.");
	    	return false;
	    }
    }
	return true;
}

function toggleReturnDate()
{
	var val =  get_radio_value('radtripTypeFH');
	if(val == 'O')
	{
		document.getElementById('flightReturnDate').style.display = 'none';
		document.getElementById('labelReturnDateDiv').style.display = 'none';
	}
	else
	{
		document.getElementById('flightReturnDate').style.display = 'block';
		document.getElementById('labelReturnDateDiv').style.display = 'block';
	}
}
function onPageLoad() {
	
	
	// load hbx
	//setTimeout('hbxload();',0);

	// enabling/disabling fields based on pre-populated data
	document.getElementById('radtripTypeFH').onclick();
	
	document.getElementById('seldestination1').onchange();
	document.getElementById('departureDate').onchange();
	document.getElementById('returnDate').onchange();
	document.getElementById('fphRooms').onchange();
	var elements = document.getElementsByName('fphchildren');
	for (var i=0; i < elements.length; i++) {
		elements[i].onchange();
	}
	//Taking user to top of widget
	// location.href='#top';
}

function enableDisableReturnDates() {
	var val =  get_radio_value('radtripTypeFH');
	if (val == 'O') {
		document.getElementById('labelReturnDate').innerHTML = 'Check-out: (DD/MM/YYYY)'
	}
	else {
		document.getElementById('labelReturnDate').innerHTML = 'Return: (DD/MM/YYYY)';
	}
}

function loadModifyWidget()
{
	var isChildPresent = false;
	var noOfRooms = document.getElementById('fphRooms').value;
	for(var i=1;i<=noOfRooms;i++)
	{
		document.getElementById('GuestsInRoom'+i).style.display = 'block';
		var noOfChildren = document.getElementById('fphchildren'+i).value;
		for(var j=1;j<=noOfChildren;j++)
		{
			isChildPresent = true;
			document.getElementById('Room'+i+'Child'+j).style.display = 'block';
		}
	}
	if(isChildPresent == true)
	{
		document.getElementById('childAgesLabel').style.display = 'block';
	}
}
function goToLandingPage()
{
	document.location = "MMTHome.do";
}
function initializeAjax()
{
	var xmlHttp,state;
	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("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	return xmlHttp;
}
function openSearchOverlay()
{
	document.body.scrollTop = 0;
	document.body.scroll = "no";
	document.body.style.overflow = "hidden";
	var searchWidgetOverlay = new YAHOO.widget.Dialog("searchWidget", {
	effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:1.00},
	visible : true,
	modal : true,
	close : true,
	fixedcenter : false,
	draggable : false,
	zIndex : 2,
	iframe : true,
	constraintoviewport: true,
	y : 0,
	x : 400
});
searchWidgetOverlay.render();
searchWidgetOverlay.show();
//searchWidgetOverlay.center();
//searchWidgetOverlay.cfg.setProperty("visible", false);
}

/*----------------- Calendar Setup Functions ----------------------*/
var selectedDeptDate=null;
var selectedRetDate=null;
var selectedCheckoutDate=null;
var selectedCheckinDate=null;
var deptFPHShowCalendar =new Date();
var checkInFPHShowCalendar =new Date();

function calendarSetup() {
	selectedDeptDate = getDateFromString( document.getElementById("departureDate").value,"+1");
	selectedCheckoutDate=getDateFromString(document.getElementById("checkOutDate").value,"-1");
	selectedCheckinDate=getDateFromString(document.getElementById("checkInDate").value,"+1");
	if(document.getElementById("returnDate") != null && document.getElementById("flightReturnDate").style.display!="none"){
		selectedRetDate = getDateFromString(document.getElementById("returnDate").value,"-1");
	}	
		
	 Zapatec.Calendar.setup({
        showOthers        : true,
        step              : 1,
        electric          : false,
        inputField        : "departureDate",
        button            : "deptDateRtripimgExactFH",
        ifFormat          : "%d/%m/%Y",
        daFormat          : "%d/%m/%Y",
        numberMonths      : 2,
		displayArea		  : null,
        flat 			  : null,
		multiple		  : null,
		numberMonths : 2,
		monthsInRow : 2,
		dateStatusFunc :    setDeptDateStatus, //the function to call
		onUpdate       :    setDeptSelectedDate,
		vertical : true
      });
      returnDateFieldFPH();
}

function  returnDateFieldFPH(){

	var inputToFPHCalendar =document.getElementById("departureDate").value;
	if(inputToFPHCalendar!="DD/MM/YYYY"){
		var dayfield=inputToFPHCalendar.split("/")[0]
		var monthfield=inputToFPHCalendar.split("/")[1]
		var yearfield=inputToFPHCalendar.split("/")[2]
		// alert(yearfield+""+monthfield+""+dayfield);
		
		deptFPHShowCalendar=new Date(yearfield,monthfield-1,dayfield);
	}
	
   	Zapatec.Calendar.setup({
        showOthers        : true,
        step              : 1,
        electric          : false,
		inputField     :    "returnDate",
		button         :    "retnDateRtripimgExactFH",
        ifFormat          : "%d/%m/%Y",
        daFormat          : "%d/%m/%Y",
        numberMonths      : 2,
		displayArea		  : null,
        flat 			  : null,
		multiple		  : null,
		date           :     deptFPHShowCalendar,
		numberMonths : 2,
		monthsInRow : 2,        
		 dateStatusFunc :    setRetDateStatus, //the function to call
		 onUpdate : setRetSelectedDate,
		vertical : true
	});
}
function hotelDateCalendarSetup() {

	 Zapatec.Calendar.setup({
       showOthers        : true,
       step              : 1,
       electric          : false,
       inputField        : "checkInDate",
       button            : "checkInDateRtripimgExactFH",
       ifFormat          : "%d/%m/%Y",
       daFormat          : "%d/%m/%Y",
       numberMonths      : 2,
		displayArea		  : null,
       flat 			  : null,
		multiple		  : null,
		numberMonths : 2,
		monthsInRow : 2,
		dateStatusFunc :    setCheckInDateStatus, //the function to call
		onUpdate       :    setCheckInSelectedDate,
		vertical : true
     });
     
     
	 returnDateHotelFieldFPH();
}

function  returnDateHotelFieldFPH(){

	var inputToFPHCalendar =document.getElementById("checkInDate").value;
	if(inputToFPHCalendar!="DD/MM/YYYY"){
		var dayfield=inputToFPHCalendar.split("/")[0]
		var monthfield=inputToFPHCalendar.split("/")[1]
		var yearfield=inputToFPHCalendar.split("/")[2]
		// alert(yearfield+""+monthfield+""+dayfield);
		
		checkInFPHShowCalendar=new Date(yearfield,monthfield-1,dayfield);
	}

  	Zapatec.Calendar.setup({
       showOthers        : true,
       step              : 1,
       electric          : false,
		inputField     :    "checkOutDate",
		button         :    "checkOutDateRtripimgExactFH",
       ifFormat          : "%d/%m/%Y",
       daFormat          : "%d/%m/%Y",
       numberMonths      : 2,
		displayArea		  : null,
       flat 			  : null,
		multiple		  : null,
		date           :     checkInFPHShowCalendar,
		numberMonths : 2,
		monthsInRow : 2,        
		 dateStatusFunc :    setCheckOutDateStatus, //the function to call
		 onUpdate : setCheckOutSelectedDate,
		vertical : true
	});
}

function getDateFromString(dateString,datePlus){
	var date=null;
	
	if(dateString!="DD/MM/YYYY"){
		var dayfield=dateString.split("/")[0]
		var monthfield=dateString.split("/")[1]
		var yearfield=dateString.split("/")[2]
		date=new Date(yearfield,monthfield-1,dayfield);
	}
	return date;
}


function setDeptDateStatus(date){
		if (compareDatesOnly(new Date() , date) >=0 )
		{
			return false;
		}else{
			return true;
		}
	
}

function setRetDateStatus(date){

	if (selectedDeptDate!= null && compareDatesOnly(selectedDeptDate , date) >=0 )
	{
		return false;
	}else if(selectedDeptDate== null&&compareDatesOnly(new Date() , date) >=0){
		return false;
	}else{
		return true;
	}
	
}

function setCheckOutDateStatus(date){

	if (selectedCheckinDate!=null &&  compareDatesOnly(selectedCheckinDate , date) >=0 )
	{
		return false;
	}else if(selectedCheckinDate== null&&compareDatesOnly(new Date() , date) >=0){
		return false;
	}else{
		return true;
	}
}


function setCheckInDateStatus(date){

	if (compareDatesOnly(new Date() , date) >=0 )
	{
		return false;
	}else{
		return true;
	}
}

function setDeptSelectedDate(cal){
	selectedDeptDate = cal.date;
	selectedDeptDate.setDate(selectedDeptDate.getDate()+1)
}

function setRetSelectedDate(cal){
	selectedRetDate = cal.date;
	selectedRetDate.setDate(selectedRetDate.getDate()-1);
}

function setCheckOutSelectedDate(cal){
	selectedCheckoutDate = cal.date;
	selectedCheckoutDate.setDate(selectedCheckoutDate.getDate()-1)
}

function setCheckInSelectedDate(cal){
	selectedCheckinDate = cal.date;
	selectedCheckinDate.setDate(selectedCheckinDate.getDate()+1);
}

function compareDatesOnly(date1, date2) {
		var year1 = date1.getYear();
		var year2 = date2.getYear();
		var month1 = date1.getMonth();
		var month2 = date2.getMonth();
		var day1 = date1.getDate();
		var day2 = date2.getDate();
		if (year1 > year2) {
			return -1;
		}
		if (year2 > year1) {
			return 1;
		}
		if (month1 > month2) {
			return -1;
		}
		if (month2 > month1) {
			return 1;
		}
		if (day1 > day2) {
			return -1;
		}
		if (day2 > day1) {
			return 1;
		}
		return 0;
	}



function compareDate(startDate, endDate) {
	var startYear = startDate.split("/")[2];
	var startMonth = startDate.split("/")[1];
	var startDate = startDate.split("/")[0]; 
	
	var endYear = endDate.split("/")[2];
	var endMonth = endDate.split("/")[1];
	var endDate = endDate.split("/")[0]; 
	if(endYear < startYear){
		return false;
	}else if( (endYear == startYear) && (endMonth < startMonth)){
		return false;
	}else if((endYear == startYear) && (endMonth == startMonth) && (endDate <= startDate)){
		return false;
	}
	return true;
}
/*----------------- Calendar Setup Functions Ends----------------------*/
