var _mapInitialised = false;
$(document).ready(function() {
	$(".addProducts a").click(function(){
		$(".itineraryBox").toggle();
		return false;
	});
	
	$("ul.listOrMap a.mapTab").each(function() {
        $(this).click(function(event) 
		{
            if ($("[id $= 'hdnIsItLodgingInOffer']").val() == 'true' && _mapInitialised==false) 
			{
				_mapInitialised = true;
				xml = $("[id $= 'xmlWithinHtml']").text();
				loadGMapScript();
			}
        });
    });
	
     $('.OpenEditLiftTicket').dialog({
          bgiframe: true,
          autoOpen: false,
          width: 600,
          height:600,
          modal: true,
          resizable: false,
          position: 'center',
          closeOnEscape: true
     });
 
     $('.EditLiftTicket').click(function(event) {
          event.preventDefault();          
          // TO Do -- Querystring value would come from Parent Screen. For test purpose i have hard coded it.
          var urlContent = $(this).attr('href') + "?ProductID=VAIL_2009_ROCK-THE-SLOPES";          
          $('#iEditLiftTicket').attr('src',urlContent).attr('width','100%').attr('height','100%').attr('scrolling','auto');
          $('.OpenEditLiftTicket').dialog('open');
     });
     
     $('.boxData').click(function(event) {	     
        if (confirm("Are you sure you want to add this item to your offer?"))
        {
            // To do get Selected Box SKU ID and Postback the Parent Window
        }     
     });     
     
     ToggleDropDown();
     
});

//This function validated fields in the modal window  on Lodging in offer page
function validateLodgingInOffer() {
	
	    var errorMessage = document.getElementById('errorMessagePopup');
	    errorMessage.innerHTML = '';

	    var checkInDate = document.getElementById('columnRight_ctl00_txtCheckInDate').value;
	    var checkOutDate = document.getElementById('columnRight_ctl00_txtCheckOutDate').value;	
	    var todaysDt = new Date();

        if ((checkInDate == '') || (checkOutDate == ''))
	    {	
	        if ((checkInDate == '') && (checkOutDate == ''))
	        {
	            errorMessage.innerHTML = "Please complete the required fields:<br/>Check In.<br/>Check Out.";
	        }
	        else
	        {
	            if (checkInDate == '') {
		            errorMessage.innerHTML = "Please complete the required fields:<br/>Check In.";
	            }

	            if (checkOutDate == '') {			
		            errorMessage.innerHTML = "Please complete the required fields:<br/>Check Out.";
	            }
	        }
	        return false;		    
	    }
        else
        {
            if(!ValidDate(checkInDate) && !ValidDate(checkOutDate))
            {
                errorMessage.innerHTML = "You have entered the following invalid data:<br/>CheckIn - CheckIn Date should be in MM/DD/YYYY format.<br/>CheckOut - CheckOut Date should be in MM/DD/YYYY format.<br/>Please re-enter your data.";
                return false;
            }
            else 
            {
                if(!ValidDate(checkInDate))
                {
                    errorMessage.innerHTML = "You have entered the following invalid data:<br/>CheckIn - CheckIn Date should be in MM/DD/YYYY format.<br/>Please re-enter your data.";
                    return false;
                }
                
                if(!ValidDate(checkOutDate))
                {
                    errorMessage.innerHTML = "You have entered the following invalid data:<br/>CheckOut - CheckOut Date should be in MM/DD/YYYY format.<br/>Please re-enter your data.";
                    return false;
                }
            }      
	    }
	
	    //Minimum selectable date is todays date + 2
	    var d = new Date();
        var dMinDate = d.setDate(d.getDate() + 2); //adding two days to current date
        dMinDate = (d.getMonth()+1) + "/" + d.getDate() + "/" + d.getFullYear(); //getting date format
        
        // Checkin date should be greater then minimum date (current date + 2)
	    if((compareDates(checkInDate, dMinDate)) > 0)
	    {
	        errorMessage.innerHTML = "Check In date can not be smaller than " + dMinDate + " and greater than " + startDateMaximumValue + ".";
            return false;
	    }
	
	    // Checkout date should be greater then minimum date (current date + 2)
	    if((compareDates(checkOutDate, dMinDate)) > 0)
	    {
	        errorMessage.innerHTML = "Check Out date can not be smaller than " + checkInDate + " and greater than " + endDateMaximumValue + ".";
            return false;
	    }

    
    if ((compareDates(checkOutDate, checkInDate)) > 0)
    {
        errorMessage.innerHTML = "You have entered the following invalid data:<br/>CheckOut - CheckOut Date should greater than CheckIn Date.<br/>Please re-enter your data.";
        return false;
    }
    
    if(IsMaximumDateRange(checkOutDate))
    {
        errorMessage.innerHTML = "You have entered the following invalid data:<br/>CheckOut - Date should not be more then 365 days from now.<br/>Please re-enter your data.";
        return false;     
    }   
    
    if (compareDates(checkInDate, startDateMinimumValue) > 0 || compareDates(startDateMaximumValue, checkInDate) > 0) {
        errorMessage.innerHTML = "You have entered the following invalid data:<br/>" + startDateErrorMessage;
        return false;
    }
    
    if (compareDates(checkOutDate, endDateMinimumValue) > 0 || compareDates(endDateMaximumValue,checkOutDate) > 0) {
        errorMessage.innerHTML = "You have entered the following invalid data:<br/>" + endDateErrorMessage;
        return false;
    }
	
 	var kidsCount = document.getElementById('columnRight_ctl00_ddlAdult').value;
	var adultCount = document.getElementById('columnRight_ctl00_ddlKids').value;	
	
	var TotalTraveler = parseInt(adultCount) + parseInt(kidsCount);		
	if ( TotalTraveler > MaximumPersons || TotalTraveler < MinimumPersons) {		
	   errorMessage.innerHTML = "You have entered the following invalid data:<br/>* Travelers - " + TravellerErrorMessage;
	   return false;
	}
	
	if (OfferRule(checkInDate,checkOutDate))
	 { 
	    var pageURl=document.getElementById('pageName').innerHTML;
	     var offerCode=document.getElementById('offerName').innerHTML;
        var kidsCount = $("select[id$=ddlKids]").val();
        var adultCount = $("select[id$=ddlAdult]").val();
        var items = $("select[id$=ddlKids]").closest("ul").find(".childAgeDropBoxList li:lt(" + kidsCount + ")");
        var str = [];
        items.each(function(){
            str.push( $(this).find("select").val() );
        });
       
        str = str.join("|");
        var search="&search="+checkInDate +","+checkOutDate+"," +adultCount+","+ kidsCount+","+str;
        
        var query = window.location.search.substring(1).toLowerCase();             
        var parms = query.split('&');
        var qsParm=new Array();
        
        for (var i=0; i<parms.length; i++) 
        {
            var pos = parms[i].indexOf('=');
            if (pos > 0) 
            {
                var key = parms[i].substring(0, pos);
                var val = parms[i].substring(pos + 1);
                qsParm[key] = val;
            }
        }

	     pageURl = pageURl + "?ProductID=" + offerCode.replace(/^\s+|\s+$/g,"") + search;
	     if (qsParm['cpid'] != undefined) {
	        pageURl = pageURl + "&cpid=" + qsParm['cpid'];
	     }
	     var productCode=  $("[id$=hdnProductCode]").val();
	     if (typeof (productCode) != 'undefined') 
	     {
	         pageURl = pageURl + "&Code=" + productCode;
	         location.href=pageURl+"&OfferUpdateMode=Update";
	     }
	     else
	     {	        
	        location.href=pageURl+"&OfferUpdateMode=Update";
	     }
	    return false;
	 }
	else
	{
	    return false;
	}
}



function OfferRule(checkInDate, checkOutDate)
{
    //Here we need to split the inputed dates to convert them into standard format    
    var x = checkInDate.split("/");     
    var y = checkOutDate.split("/");
    
    //date format(Fullyear,month,date) 
    //Adding -1 to the month part as the date is gets converted to next month.
    //e.g. 2009,11,29 gets converted to Tue Dec 29 2009 00:00:00 GMT+0530 (India Standard Time) which is incorrect, putting -1 will solve this problem.
    //Note: Need to know why we are subtracting one day, while creating the dates.
    var date1 = new Date(x[2],(x[0]-1), (x[1]-1));
    var date2 = new Date(y[2],(y[0]-1), (y[1]-1));
    
    //Total time for one day
    var one_day = 1000*60*60*24;  
    
    //Calculate difference between the two dates, and convert to days           
    var _Diff = Math.ceil((date2.getTime() - date1.getTime())/(one_day));
    
    if(_Diff > MaxNightStay)
    {       
        document.getElementById('errorMessagePopup').style.display = 'block';
        document.getElementById('errorMessagePopup').innerHTML = "You have entered the following invalid data:<br/>Maximum Night Stay - Maximum " + MaxNightStay + " Night Stay required.<br/>Please re-enter your data.";
        return false;
    }
    
    if(_Diff < MinNightStay)
    {       
        document.getElementById('errorMessagePopup').style.display = 'block';
        document.getElementById('errorMessagePopup').innerHTML = "You have entered the following invalid data:<br/>Minimum Night Stay - Minimum " + MinNightStay + " Night Stay required.<br/>Please re-enter your data.";
        return false;
    }
    else
    {
        document.getElementById('errorMessagePopup').style.display = 'none';
        return true;
    }
}

function ToggleDropDown() {
    $("select[id$=ddlKids]").unbind("change").bind("change", function(){
        var noOfKids = eval( $(this).val() );
        var childrenDiv = $(this).closest("li").next().find(".children");
        if (noOfKids > 0){
            childrenDiv.removeClass("hideDiv");
            childrenDiv.find(".childAgeDropBoxList li").addClass("hideDiv");
            childrenDiv.find(".childAgeDropBoxList li:lt(" + noOfKids + ")").removeClass("hideDiv");
        } else {
            childrenDiv.addClass("hideDiv");
            childrenDiv.find(".childAgeDropBoxList li").addClass("hideDiv");
        }
    });
    $("[id$=ddlKids]").trigger("change"); 
}


//Update the unit price based on unit available
function UpdateOfferPrice(price, dropdown, pricevalue,activityPrice) {

	var price = document.getElementById(price);
	var dropdown = document.getElementById(dropdown);
	selectedIndex = dropdown.selectedIndex;
	selectedValue = dropdown.options[selectedIndex].value
	if(selectedValue > 1)
	{
	
	    price.innerHTML = "$" + ((selectedValue * pricevalue)+eval(activityPrice)).toFixed(2) + " (avg per night)";
	}
	else
	{
	    price.innerHTML = "$" +  ((selectedValue * pricevalue)+eval(activityPrice)).toFixed(2)+ " (avg per night)";
	}
    
    
	return false;

}

function ConfirmDelete()
{
    return window.confirm("Are you sure to delete this product?");
}