﻿$(document).ready(function () {
    BindEventOnPreviousDateSelection();
    BindEventOnNextDaySelection();
    BindEventOnAvailableDates();
    //getting the query string
    GetQueryStringValues();

    if (!(qsParm['bookingdate'] == undefined)) {
        if (qsParm['bookingdate'].length > 0) {
			if (document.getElementById("hdnPrivateLesson") != null && $("[id$=hdnSearchDate]").val() == "") {
                var i = 0;

                $(".topForm table[id$=Discipline] input").eq(Number(qsParm['discipline']) - 1).trigger("click");

                // &SaleLocation=River%20Run
                qsParm['salelocation'] = qsParm['salelocation'].replace("%20", " ");
                $(".topForm select.selectMeetingLocation").val(qsParm['salelocation']);

                //$(".topForm select.selectMeetingLocation")[0].selectedIndex = qsParm['SaleLocation'];
                $(".topForm .personsIncluded select")[0].selectedIndex = Number(qsParm['noofadults']) - 1;
                var personAge = qsParm['age'];

                // &noofadults=1&age=1%7c&bookingdate=10/8/2009&
                // HTML Special Character of "|" is "%7c"
				if (personAge.indexOf("%7c") > -1) {
					personAge = personAge.replace("%7c", "|");
                }

                for (i = 0; i < qsParm['noofadults']; i++) {
                    $(".topForm .agesOfPeople li").eq(i).find(":text").val(personAge.split('|')[i]);
                    $(".topForm .agesOfPeople li").eq(i).addClass("personDisplay");

                }
                GetPrivateLessonProducts();

			} else if (document.getElementById("hdnChildCare") != null) {
                GetChildCareData();
            }
        }
    }

    $("table.PreviousMonthCalendarClass table.PreviousMonthCalendarClass tr,td").css("width", "auto");
    $("table.NextCalendarClass table.NextCalendarClass tr,td").css("width", "auto");
});

function BindEventOnPreviousDateSelection() {
    var ControlName = GetControlName();

	$(".PreviousMonthCalendarClass a").unbind("click").bind("click", function (e) {
            var currentDate = $(this).text();
            var preMonthDate = '';

		if (ControlName == 'PrivateLesson') {
			preMonthDate = $('[id$=hdnCurrentMonth]').eq(2).val();
		} else if (ControlName == 'ChildLesson') {
			preMonthDate = $('[id$=hdnCurrentMonth]').eq(1).val();
		} else {
			preMonthDate = $('[id$=hdnCurrentMonth]').eq(0).val();
            }

        //$("#ajaxCalendarContainer").showLoading({ loadingStr: "Please wait a moment while we search for your results" });
        $.ajax({
            type: "POST",
            url: "/vailresorts/sites/PlanningAndBooking/WebServices/TwoMonthCalendar.svc/UpdatePreviousMonthCalendar",
            data: "{\"currentDate\" : \"" + currentDate + "\",\"preMonthDate\" : \"" + preMonthDate + "\",\"controlName\" : \"" + ControlName + "\"}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
			success: function (msg) {

				if (ControlName == 'PrivateLesson') {
                $('[id$=ajaxCalendarContainer]').eq(2).html(msg.d);
				} else if (ControlName == 'ChildLesson') {
                $('[id$=ajaxCalendarContainer]').eq(1).html(msg.d);
				} else {
                $('#ajaxCalendarContainer').html(msg.d);
				}

                BindEventOnPreviousDateSelection();
                BindEventOnNextDaySelection();

                if (ControlName == 'ChildcareNursery') {
                    GetChildCareData();
				} else if (ControlName == 'PrivateLesson') {
                    GetPrivateLessonProducts();
				} else if (ControlName == 'AdultLesson' || ControlName == 'ChildLesson') {
                    GetGroupLessonProducts();
                }
            },
			error: function (xhr, status, error) {
                handlePnB_Calendar_Error(xhr, status, error);
            }

        });
        e.preventDefault();

    });
}

function BindEventOnNextDaySelection() {
        var ControlName = GetControlName();

	$(".NextCalendarClass a").unbind("click").bind("click", function (e) {
        var currentDate = $(this).text();

		var preMonthDate = '';

		if (ControlName == 'PrivateLesson') {
			preMonthDate = $('[id$=hdnCurrentMonth]').eq(2).val();
		} else if (ControlName == 'ChildLesson') {
			preMonthDate = $('[id$=hdnCurrentMonth]').eq(1).val();
		} else {
			preMonthDate = $('[id$=hdnCurrentMonth]').eq(0).val();
            }

        //$("#ajaxCalendarContainer").showLoading({ loadingStr: "Please wait a moment while we search for your results" });

        $.ajax({
            type: "POST",
            url: "/vailresorts/sites/PlanningAndBooking/WebServices/TwoMonthCalendar.svc/UpdateNextMonthCalendar",
            //data: "{\"currentDate\" : \"" + currentDate + "\"}",
            data: "{\"currentDate\" : \"" + currentDate + "\",\"preMonthDate\" : \"" + preMonthDate + "\",\"controlName\" : \"" + ControlName + "\"}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",

			success: function (msg) {
				if (ControlName == 'PrivateLesson') {
                $('[id$=ajaxCalendarContainer]').eq(2).html(msg.d);
				} else if (ControlName == 'ChildLesson') {
                $('[id$=ajaxCalendarContainer]').eq(1).html(msg.d);
				} else {
                $('#ajaxCalendarContainer').html(msg.d);
            }

                //$(".lightGreyBox").gBox({ theme: "lightGreyBox" });
                BindEventOnPreviousDateSelection();
                BindEventOnNextDaySelection();

                if (ControlName == 'ChildcareNursery') {
                    GetChildCareData();
				} else if (ControlName == 'PrivateLesson') {
                    GetPrivateLessonProducts();
				} else if (ControlName == 'AdultLesson' || ControlName == 'ChildLesson') {
                    GetGroupLessonProducts();
				}
            },
			error: function (xhr, status, error) {
                handlePnB_Calendar_Error(xhr, status, error);
            }
        });

		e.preventDefault();
    });
}

function handlePnB_Calendar_Error(xhr, status, error) {
    if (error == null) {
        $('#ajaxCalendarContainer').html("<span class='errorMessage'>" + xhr.responseText.split(',')[2].split(':')[1] + "</span>");
	} else {
        var errMsg = getErrorMessage(xhr, status, error);
        $('#ajaxCalendarContainer').html("<span class='errorMessage'>" + errMsg + "</span>");
    }
}

//Update lodging details date
function UpdateTwoMonthCalendar() {
    $("#ajaxCalendarContainer").showLoading({ loadingStr: "Please wait a moment while we search for your results", autoFocus: false });

    $.ajax({
        type: "POST",
        url: "/vailresorts/sites/PlanningAndBooking/WebServices/TwoMonthCalendar.svc/UpdateTwoMonthCalendar",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
		success: function (msg) {
            $('#ajaxCalendarContainer').html(msg.d);

            BindEventOnPreviousDateSelection();
            BindEventOnNextDaySelection();
        },
		error: function (xhr, status, error) {
            handlePnB_Calendar_Error(xhr, status, error);
        }
    });
}


//Update lodging details date
function LoadCalendar() {
    $("#ajaxCalendarContainer").showLoading({ loadingStr: "Please wait a moment while we search for your results", autoFocus: false });

    $.ajax({
        type: "POST",
        url: "/vailresorts/sites/PlanningAndBooking/WebServices/TwoMonthCalendar.svc/LoadCalendar",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
		success: function (msg) {
            $('#ajaxCalendarContainer').html(msg.d);
            BindEventOnPreviousDateSelection();
            BindEventOnNextDaySelection();
        },
		error: function (xhr, status, error) {
            handlePnB_Calendar_Error(xhr, status, error);
        }
    });
}


//Update lodging details date
function PreviousMonthCalendar() {
	var myControlName = GetControlName();
    var ageGroup = '';
    var location = '';
    var key = '';
    var childCareProdList = [];
    var privateLessonProdList = [];
    var activityProdList = [];
    var selectedDateString = '';
	var CurrentMonth = '';

	if (myControlName == 'PrivateLesson') {
		CurrentMonth = $('[id$=hdnCurrentMonth]').eq(2).val();
	} else if (myControlName == 'ChildLesson') {
		CurrentMonth = $('[id$=hdnCurrentMonth]').eq(1).val();
	} else {
		CurrentMonth = $('[id$=hdnCurrentMonth]').eq(0).val();
            }

    var activityDates = "";

    if (document.getElementById('hdnActivity') != null) {
        childCareProdList = [];
        privateLessonProdList = [];

		activityDates = [getSelectedDates(".firstMonth"), getSelectedDates(".secondMonth")].join("|");
        activityDates = activityDates + ",Activity";
    }

    if (document.getElementById('childCareNurseryRequestForm') != null) {
        GetQueryStringValues();

        if (qsParm['agegroup'] != '' && qsParm['location'] != '') {
            ageGroup = qsParm['agegroup'];
            location = qsParm['location'];
        }

        childCareProdList.push(ageGroup + "," + location);

		$("#ChildCareTypeContainer .radioButtonList").each(function () {
            if ($(this).find(":radio").length > 0) {
                key = $.trim($(this).find("h5").html().split(",")[1]);
			} else {
                key = $.trim($(this).find("h5").html().split(",")[1]);
            }

            if (selectedDateString.length <= 0) {
                selectedDateString = key;
			} else {
                selectedDateString = selectedDateString + "|" + key;
            }
        });

        childCareProdList.push(selectedDateString + ",ChildcareNursery");
        privateLessonProdList = [];
        activityProdList = [];
    }

	if (document.getElementById('privateLessonRequest') != null && myControlName == 'PrivateLesson') {
        var query = window.location.search.substring(1).toLowerCase();
        var parms = query.split('&');
        var agesOfPeople = {};

        var discipline = $(".topForm table[id$=Discipline] :checked").val();
        var meetingLocation = $(".topForm select.selectMeetingLocation").val();
        var personsIncluded = $(".topForm .personsIncluded select").val();

        privateLessonProdList.push(discipline + "," + meetingLocation + "," + personsIncluded);
		$(".topForm .agesOfPeople li").each(function () {
            agesOfPeople[$(this).attr("id")] = $(this).find(":text").val();
        });

        var agesOfAdults = '';
        var i = 0;
        for (i = 1; i <= Number(personsIncluded); i++) {
            if ((Number(agesOfPeople["person" + i]) > 0)) {
                if (Number(agesOfAdults.length) > 0)
                    agesOfAdults = agesOfAdults + '|' + agesOfPeople["person" + i];
                else
                    agesOfAdults = agesOfPeople["person" + i];
			} else {
                if (Number(agesOfAdults.length) > 0)
                    agesOfAdults = agesOfAdults + '|' + '0';
                else
                    agesOfAdults = agesOfPeople["person" + i];
            }
        }
        privateLessonProdList.push("," + agesOfAdults);

        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;
            }
        }

		$("#PrivateLessonsTypeContainer .radioButtonList").each(function () {
            if ($(this).find(":radio").length > 0) {
                var key = $.trim($(this).find("h5").html().split(",")[1]);
			} else {
                var key = $.trim($(this).find("h5").html().split(",")[1]);
            }

            if (selectedDateString.length <= 0) {
                selectedDateString = key;
			} else {
                selectedDateString = selectedDateString + "|" + key;
            }
        });

        privateLessonProdList.push(selectedDateString + ",PrivateLesson");
        childCareProdList = [];
        activityProdList = [];
    }

	var groupLessonCriteria = '';
	var myControlName = GetControlName();
	var groupLessonCriteria = '';

	if (myControlName == "AdultLesson" || myControlName == "ChildLesson") {
		var lessonType = (myControlName == "AdultLesson") ? '0' : '1';
		var ddlLocationID = (myControlName == "AdultLesson") ? $('[id$=ddlAdultLocation]').val() : $('[id$=ddlChildLocation]').val();
		childCareProdList = [];
		privateLessonProdList = [];
		activityDates = '';
		groupLessonCriteria = SelectedValue = ddlLocationID + "," + CurrentMonth + "," + lessonType + "," + myControlName;
    }

	if (myControlName == 'PrivateLesson') {
                $('[id$=ajaxCalendarContainer]').eq(2).showLoading({ loadingStr: "Loading", autoFocus: false });
	} else if (myControlName == 'ChildLesson') {
                $('[id$=ajaxCalendarContainer]').eq(1).showLoading({ loadingStr: "Loading", autoFocus: false });
	} else {
                $('#ajaxCalendarContainer').showLoading({ loadingStr: "Loading", autoFocus: false });
	}

    $.ajax({
        type: "POST",
        url: "/vailresorts/sites/PlanningAndBooking/WebServices/TwoMonthCalendar.svc/PreviousMonthCalendar",
        data: "{\"currentMonth\" : \"" + CurrentMonth + "\",\"childcareCriteria\" : \"" + childCareProdList.join(",") + "\",\"privateLessonCriteria\" : \"" + privateLessonProdList.join(",") + "\",\"activityCriteria\" : \"" + activityDates + "\",\"groupLessonCriteria\" : \"" + groupLessonCriteria + "\"}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
		success: function (msg) {
			if (myControlName == 'PrivateLesson') {
                $('[id$=ajaxCalendarContainer]').eq(2).html(msg.d);
			} else if (myControlName == 'ChildLesson') {
                $('[id$=ajaxCalendarContainer]').eq(1).html(msg.d);
			} else {
                $('#ajaxCalendarContainer').html(msg.d);
			}

            BindEventOnPreviousDateSelection();
            BindEventOnNextDaySelection();
        },
		error: function (xhr, status, error) {
            handlePnB_Calendar_Error(xhr, status, error);
        }
    });
}

//Update lodging details date
function NextMonthCalendar(ControlName) {
	var myControlName = GetControlName();
    var ageGroup = '';
    var location = '';
	var CurrentMonth = '';

	if (myControlName == 'PrivateLesson') {
		CurrentMonth = $('[id$=hdnCurrentMonth]').eq(2).val();
	} else if (myControlName == 'ChildLesson') {
		CurrentMonth = $('[id$=hdnCurrentMonth]').eq(1).val();
	} else {
		CurrentMonth = $('[id$=hdnCurrentMonth]').eq(0).val();
            }

    var key = '';
    var childCareProdList = [];
    var privateLessonProdList = [];
    var selectedDateString = '';
    var activityProdList = [];
    var activityDates = "";

    if (document.getElementById('hdnActivity') != null) {
        childCareProdList = [];
        privateLessonProdList = [];

		activityDates = [getSelectedDates(".firstMonth"), getSelectedDates(".secondMonth")].join("|");
        activityDates = activityDates + ",Activity";
    }

    if (document.getElementById('childCareNurseryRequestForm') != null) {
        GetQueryStringValues();

        if (qsParm['agegroup'] != '' && qsParm['location'] != '') {
            ageGroup = qsParm['agegroup'];
            location = qsParm['location'];
        }

        childCareProdList.push(ageGroup + "," + location);

		$("#ChildCareTypeContainer .radioButtonList").each(function () {
            if ($(this).find(":radio").length > 0) {
                key = $.trim($(this).find("h5").html().split(",")[1]);
			} else {
                key = $.trim($(this).find("h5").html().split(",")[1]);
            }

            if (selectedDateString.length <= 0) {
                selectedDateString = key;
			} else {
                selectedDateString = selectedDateString + "|" + key;
            }

        });

        childCareProdList.push(selectedDateString + ",ChildcareNursery");
        privateLessonProdList = [];
    }

	if (document.getElementById('privateLessonRequest') != null && myControlName == 'PrivateLesson') {
        var query = window.location.search.substring(1).toLowerCase();
        var parms = query.split('&');
        var agesOfPeople = {};

        var discipline = $(".topForm table[id$=Discipline] :checked").val();
        var meetingLocation = $(".topForm select.selectMeetingLocation").val();
        var personsIncluded = $(".topForm .personsIncluded select").val();

        privateLessonProdList.push(discipline + "," + meetingLocation + "," + personsIncluded);

		$(".topForm .agesOfPeople li").each(function () {
            agesOfPeople[$(this).attr("id")] = $(this).find(":text").val();
        });

        var agesOfAdults = '';
        var i = 0;

        for (i = 1; i <= Number(personsIncluded); i++) {
            if ((Number(agesOfPeople["person" + i]) > 0)) {
				if (Number(agesOfAdults.length) > 0) {
                    agesOfAdults = agesOfAdults + '|' + agesOfPeople["person" + i];
				} else {
                    agesOfAdults = agesOfPeople["person" + i];
            }
			} else {
				if (Number(agesOfAdults.length) > 0) {
                    agesOfAdults = agesOfAdults + '|' + '0';
				} else {
                    agesOfAdults = agesOfPeople["person" + i];
            }
        }
		}

        privateLessonProdList.push("," + agesOfAdults);

        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;
            }
        }

		$("#PrivateLessonsTypeContainer .radioButtonList").each(function () {
            if ($(this).find(":radio").length > 0) {
                var key = $.trim($(this).find("h5").html().split(",")[1]);
			} else {
                var key = $.trim($(this).find("h5").html().split(",")[1]);
            }

            if (selectedDateString.length <= 0) {
                selectedDateString = key;
			} else {
                selectedDateString = selectedDateString + "|" + key;
            }
        });

        privateLessonProdList.push(selectedDateString + ",PrivateLesson");

        childCareProdList = [];
    }

	var groupLessonCriteria = '';

	if (myControlName == "AdultLesson" || myControlName == "ChildLesson") {
		var lessonType = (myControlName == "AdultLesson") ? '0' : '1';
		var ddlLocationID = (myControlName == "AdultLesson") ? $('[id$=ddlAdultLocation]').val() : $('[id$=ddlChildLocation]').val();
		childCareProdList = [];
		privateLessonProdList = [];
		activityDates = '';
		groupLessonCriteria = SelectedValue = ddlLocationID + "," + CurrentMonth + "," + lessonType + "," + myControlName;
    }

	if (myControlName == 'PrivateLesson') {
                $('[id$=ajaxCalendarContainer]').eq(2).showLoading({ loadingStr: "Loading", autoFocus: false });
	} else if (myControlName == 'ChildLesson') {
                $('[id$=ajaxCalendarContainer]').eq(1).showLoading({ loadingStr: "Loading", autoFocus: false });
	} else {
		$('[id$=ajaxCalendarContainer]').eq(0).showLoading({ loadingStr: "Loading", autoFocus: false });
            }

    $.ajax({
        type: "POST",
        url: "/vailresorts/sites/PlanningAndBooking/WebServices/TwoMonthCalendar.svc/NextMonthCalendar",
        data: "{\"currentMonth\" : \"" + CurrentMonth + "\",\"childcareCriteria\" : \"" + childCareProdList.join(",") + "\",\"privateLessonCriteria\" : \"" + privateLessonProdList.join(",") + "\",\"activityCriteria\" : \"" + activityDates + "\",\"groupLessonCriteria\" : \"" + groupLessonCriteria + "\"}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
		success: function (msg) {
			if (myControlName == 'PrivateLesson') {
                $('[id$=ajaxCalendarContainer]').eq(2).html(msg.d);
			} else if (myControlName == 'ChildLesson') {
                $('[id$=ajaxCalendarContainer]').eq(1).html(msg.d);
			} else {
				$('[id$=ajaxCalendarContainer]').eq(0).html(msg.d);
            }

            BindEventOnPreviousDateSelection();
            BindEventOnNextDaySelection();
        },
		error: function (xhr, status, error) {
            handlePnB_Calendar_Error(xhr, status, error);
        }
    });
}

/*********************
Function for reading querystring for Childcare nursery page
*********************/
var qsParm = new Array();
function GetQueryStringValues() {
    var query = window.location.search.substring(1).toLowerCase();
    var parms = query.split('&');

    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;
        }
    }
}

//making service call for child care nursery products
function GetChildCareData() {
    if (document.getElementById("hdnChildCare") != null) {
        qsParm['location'] = null;
        qsParm['agegroup'] = null;

        //getting the query string
        GetQueryStringValues();
        GetChildCareNurseryProducts(qsParm['location'], qsParm['agegroup']);
    }
}

/********* Function for Private lessons page **********/
function GetPrivateLessonProducts() {
    if (document.getElementById("hdnPrivateLesson") != null) {

        qsParm['productid'] = null;
        qsParm['lessontype'] = null;
        //getting the query string
        GetQueryStringValues();
        GetPrivateLessonProductsDetails();
    }
}

function GetGroupLessonProducts() {
	//    if (document.getElementById("hdnPrivateLesson") != null) {

	//        qsParm['productid'] = null;
	//        qsParm['lessontype'] = null;
	//        //getting the query string
	//        GetQueryStringValues();
	//        GetPrivateLessonProductsDetails();
	//    }
}

function getSelectedDates(container) {
    // The first empty element is to make the array index "1" based
    var months = ["", "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];

    var monthYear = null;
    if ($.trim(container) == ".firstMonth") {
        monthYear = $("table.PreviousMonthCalendarClass table.PreviousMonthCalendarClass td", $(container));
    } else {
        monthYear = $("table.NextCalendarClass table.NextCalendarClass td", $(container));
    }

    var month = monthYear.html().split(" ")[0];
    var year = monthYear.html().split(" ")[1];

    month = $.inArray(month.toLowerCase(), months).toString();
    if (month.length == 1) {
        month = "0" + month;
    }

    var dates = [];
	$(".state-selected a", $(container)).each(function () {
        var date = $.trim($(this).html());
        if (date.length == 1) {
            date = "0" + date;
        }
        dates.push(month + "/" + date + "/" + year);
    });
    dates = dates.join("|");
    return dates;
}

/*
Get the respected Control Name
*/
function GetControlName() {
    var ControlName = '';
	
    if (document.getElementById('childCareNurseryRequestForm') != null) {
        ControlName = 'ChildcareNursery';
    }

	if (document.getElementById('privateLessonRequest') != null) {
		ControlName = "ChildLesson";
		
		if ($("#PrivateLessonTab").hasClass("tabs-selected")) {
        ControlName = 'PrivateLesson';
    }
		
		if ($("#ClassesAdultTab").hasClass("tabs-selected")) {
        ControlName = 'AdultLesson';
    }
    }

    if (document.getElementById('hdnActivity') != null) {
        ControlName = 'Activity';
    }

	if (document.getElementById('offerPricePointParentContainer') != null) {
     ControlName = 'offerPricePoint';
   }

    return ControlName;
}

/*
Refresh the Deep Link URL, on User selection the Date.
*/
function GetEmailLinkURL() {
    var ControlName = GetControlName();
    if (ControlName == 'PrivateLesson') {
        var personsIncluded = $(".topForm .personsIncluded select")[0].selectedIndex;
        var age = '';

        for (i = 0; i <= eval(personsIncluded); i++) {
            age = age.toString() + $(".topForm .agesOfPeople li").eq(i).find(":text").val();
			
            if (i < eval(personsIncluded)) {
                age = age.toString() + '|';
            }
        }

        var EmailLink = $(".hidEmailPageURL").val();
        if (EmailLink != null && EmailLink != 'undefined') {
            EmailLink = EmailLink.replace("@personsIncluded", (eval(personsIncluded) + 1).toString());
            EmailLink = EmailLink.replace("@Age", age);
            $(".emailVacationLink").attr("href", EmailLink);
        }
	} else if (ControlName == 'ChildcareNursery') {
        var EmailLink = $(".hidEmailPageURL").val();
		
        if (EmailLink != null && EmailLink != 'undefined') {
            $(".emailVacationLink").attr("href", EmailLink);
        }
    }
}

//Function NextButtonclick
function OfferPricePointNextClick() {
	var nextMonth = preMonthDate = $('[id$=hdnCurrentMonth]').eq(0).val();
	var selectedDates = document.getElementById('hdnAllSelectedDates').value;

	$("#ajaxCalendarContainer").showLoading({ loadingStr: "Please wait a moment while we search for your results", autoFocus: false });
	
	$.ajax({
        type: "POST",
        url: "/vailresorts/sites/PlanningAndBooking/WebServices/TwoMonthCalendar.svc/OfferPricePointNextClick",
        data: "{\"nextMonth\" : \"" + nextMonth + "\",\"selectedDates\" : \"" + selectedDates + "\"}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
		success: function (msg) {
            $('#ajaxCalendarContainer').html(msg.d);
            BindEventOnAvailableDates();
        },
		error: function (xhr, status, error) {
          handlePnB_Calendar_Error(xhr, status, error);
        }
    });
}

//Function NextButtonclick
function OfferPricePointPreviousClick() {
	var previousMonth = preMonthDate = $('[id$=hdnCurrentMonth]').eq(0).val();
	var selectedDates = document.getElementById('hdnAllSelectedDates').value;
	
	$("#ajaxCalendarContainer").showLoading({ loadingStr: "Please wait a moment while we search for your results", autoFocus: false });
	
	$.ajax({
        type: "POST",
        url: "/vailresorts/sites/PlanningAndBooking/WebServices/TwoMonthCalendar.svc/OfferPricePointPreviousClick",
        data: "{\"previousMonth\" : \"" + previousMonth + "\",\"selectedDates\" : \"" + selectedDates + "\"}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
		success: function (msg) {
            $('#ajaxCalendarContainer').html(msg.d);
            BindEventOnAvailableDates();
        },
		error: function (xhr, status, error) {
            handlePnB_Calendar_Error(xhr, status, error);
        }
    });
}

function getFormatedDate(date, separator) {
    separator = separator || "/"
	var today = new Date(date);
    var dd = today.getDate();
	var mm = today.getMonth() + 1; //January is 0!
    var yyyy = today.getFullYear();
	if (dd < 10) { dd = '0' + dd }
	if (mm < 10) { mm = '0' + mm }
    return mm + separator + dd + separator + yyyy;
}

function BindEventOnAvailableDates() {
    var calTable    = $("table[id$=offerPricePointCalendar]");
    var calTd       = $("td", calTable).filter(".state-unavailable, .state-available");

    calTd.filter(".state-available").hover(
        function () {
            var selected = getSelectedDates(this, calTd);
            selected.addClass("dateHover");
            var msg = $(this).attr("msg");
            $("#spanCost").html(msg);
        },
        function () {
            calTd.removeClass("dateHover");
        	if (document.getElementById('hdnSelectedDate').value.length < 1) {
                    $("#spanCost").html("");
                }
        	else {
                     var msg = document.getElementById('hdnAvailableDays').value;
                     $("#spanCost").html(msg);
                }
        }
    ).click(function () {
        calTd.removeClass("dateSelected");
        var selected = getSelectedDates(this, calTd);
    	document.getElementById('hdnSelectedDate').value = selected.eq(0).attr("date");
        selected.addClass("dateSelected");
        var msg = $(this).attr("msg");
        $("#spanCost").html(msg);
    	document.getElementById('hdnAvailableDays').value = msg;

         //Added by Naveen Kumar

    	var dateCol = new Date(document.getElementById('hdnSelectedDate').value);
    	dateCol = getFormatedDate(dateCol);
    	document.getElementById('spanArrival').innerHTML = dateCol;
             var numOfDays   = parseInt($('#hdmMaxDay').val());
    	dateCol = new Date(document.getElementById('hdnSelectedDate').value)
    	dateCol.setDate(dateCol.getDate() + (numOfDays));
    	dateCol = getFormatedDate(dateCol);
    	document.getElementById('spanDeparture').innerHTML = dateCol;
    	document.getElementById('hdnAllSelectedDates').value = "";
    	var hdnAllSelectedDates = document.getElementById('hdnAllSelectedDates').value;
    	
		for (var counter = 0; counter < numOfDays; counter++) {
    		var dateCol = new Date(selected.eq(0).attr("date"));
    		var dateCol = dateCol.setDate(dateCol.getDate() + counter);
    		dateCol = getFormatedDate(dateCol);
    		hdnAllSelectedDates = hdnAllSelectedDates + dateCol + ",";
            }

    	document.getElementById('hdnAllSelectedDates').value = hdnAllSelectedDates;
    	
        return false;
    });
}

function getSelectedDates(date, dateList) {
    var currDate    = $(date).attr("date");
	var numOfDays = parseInt($('#hdmMaxDay').val());
    var tdIdx       = dateList.index(date);
	var lastIdx = (tdIdx + numOfDays > dateList.length) ? dateList.length : tdIdx + numOfDays;
    var selected    = dateList.eq(tdIdx);

	for (var x = tdIdx + 1; x < lastIdx; x++) {
		selected = selected.add(dateList.eq(x));
    }

    return selected;
}

function ShowCost(costMessage, currentDate) {
	var hdmMaxDay = document.getElementById('hdmMaxDay');
	var availableDays = "";

	for (var counter = 0; counter < hdmMaxDay.value; counter++) {
		var dateCol = new Date(currentDate);
		var dateCol = dateCol.setDate(dateCol.getDate() + counter);
		dateCol = getFormatedDate(dateCol);
		availableDays = availableDays + dateCol + ",";
    }

	document.getElementById('spanCost').innerHTML = costMessage;

    return false;
}

function HideCost(costMessage, currentDate) {
	if (document.getElementById('hdnSelectedDate').value.length < 1) {
		document.getElementById('spanCost').innerHTML = "";
    }

    return false;
}
function ShowAllMessage(arrivalMessage, departuremessage, costMessage, currentDate) {
	document.getElementById('spanArrival').innerHTML = arrivalMessage;
	document.getElementById('spanDeparture').innerHTML = departuremessage;
	document.getElementById('spanCost').innerHTML = costMessage;
	document.getElementById('hdnSelectedDate').value = arrivalMessage;
	var hdmMaxDay = document.getElementById('hdmMaxDay');
	var hdnAvailableDays = document.getElementById('hdnAvailableDays')
	hdnAvailableDays.value = "";
	
	for (var counter = 0; counter < hdmMaxDay.value; counter++) {
		var dateCol = new Date(arrivalMessage);
		var dateCol = dateCol.setDate(dateCol.getDate() + counter);
		dateCol = getFormatedDate(dateCol);
		hdnAvailableDays.value = hdnAvailableDays.value + dateCol + ",";
    }

    return false;
}

function ValidateSelectedDate() {
	if (document.getElementById('hdnSelectedDate').value.length < 1) {
		var control = GetControlName();

		if (control == 'offerPricePoint') {
			document.getElementById('errorMessagePopup').innerHTML = "You must select dates of stay";
		} else {
			document.getElementById('errorMessagePopup').innerHTML = "Please select a Check In date from calendar";
        }

        return false
	} else {
		document.getElementById('errorMessagePopup').innerHTML = "";
		var selectedDate = document.getElementById('hdnSelectedDate').value;
		var strEdit = document.getElementById('hdnSearchQueryStringCartProductID').value;
        $.ajax({
        type: "POST",
        url: "/vailresorts/sites/PlanningAndBooking/WebServices/TwoMonthCalendar.svc/AddProductToCart",
        data: "{\"selectedDate\" : \"" + selectedDate + "\",\"strEdit\" : \"" + strEdit + "\"}",
        //data: "{\"selectedDate\" : \"" + selectedDate + "\"}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
			success: function (msg) {
				window.location.href = msg.d;
        },
			error: function (xhr, status, error) {
             handlePnB_Calendar_Error(xhr, status, error);
        }
        });

        return false;
    }
}
