﻿var indexPanelTicket;
var dataContentHead;
var dataContentDetail;
var dataContentGral;

/****************************************************************************************************************/
var NmbAdults = 0;
var NmbKids = 0;
var NmbDays = 0;
var NmbParks = 0;
var totalParks = 2;
var blnSelectParks = false;
var IsAdvancedPurchase = 'False';

/****************************************************************************************************************/
var userDataEntry;
var idContainer;

/****************************************************************************************************************/

var _ExpressPassDateSelected;
var _nParksExpressPass = 0;
var _nQtyParksExpressPass = 1;

var _idMealsDealPanel;
var NmbParksMealDeal;
var priceAdultsMealDeal = 0;
var priceKidsMealDeal = 0;
var priceCupMealDeal = 0;

var MealDealsFullDetal = { "US": "", "IOA": "", "BP": "" };

var qtyAdultsMealDeal;
var qtyKidsMealDeal;
var qtyCupMealDeal;

var _glbCatalogNameSC;
var objMiniShoppingCart = null;

/****************************************************************************************************************/
//Variables of Annual Pass
var _glbPassType;
var _AdultsAnnualPass = 1;
var _KidsAnnualPass = 0;
var _priceAdultsAnnualPass = 0;
var _priceKidsAnnualPass = 0;
var panelSelectParkSelected = false;
/****************************************************************************************************************/
//Variables of Express Pass calendar
var endDateCalendar = null;
var calendarPrices;
var footerCalendar;
var calenderExpressPass;
var calendarCityWalkDinner;
var urlCurrentPage = getUrlPage();

//force current page to end with '.aspx'
var endString = '.aspx';
var splitted = urlCurrentPage.split(endString);
if (splitted.length > 1) {
    splitted.pop();
    splitted.push(endString);
    urlCurrentPage = splitted.join('');
}

var panelsAddToCart = {
    "NumberOfGuests": false,
    "ExpressPass": false,
    "MealDeals": false,
    "SelectPartnerPark": false,
    "CityWalkDinner": false,
    "CharacterBreakfast": false
}

var TICKET = Class.create({
    initialize: function() { }
});

TICKET.Calendars = {
    ExpressPass: "containner_div_calendar",
    CityWalkDinner: "CalendarCityWalkDinner"
}

TICKET.Url = {
    CharacterBreakfast: urlCurrentPage + "/GetCommercePriceCharacterBreakfastJSON",
    CityWalkDinner: urlCurrentPage + "/GetCommercePriceCityWalkDinnerJSON",
    GalaxyEventsForDate: urlCurrentPage + "/GetGalaxyEventsForDate",
    FlexTicket: urlCurrentPage + "/GetCommercePriceFlexTicketJSON",
    AnnualPass: urlCurrentPage + "/GetCommercePriceAnnualPassJSON",
    MealDeals: urlCurrentPage + "/GetCommercePriceMealDealsJSON",
    SipperCup: urlCurrentPage + "/GetCommercePriceSipperCupJSON",
    CommercePrice: urlCurrentPage + "/GetCommercePriceJSON"
}
/****************************************************************************************************************/
//Variables of Flex Tickets
var _flexType;

var _qtyPPks1 = 1;
var _qtyPPks2 = 0;

var _pricePPks1 = 0;
var _pricePPks2 = 0;

/****************************************************************************************************************/
var glbObjPassport;

/****************************************************************************************************************/
/****************************************************************************************************************/


var commerceProductTemplate = new Template(
    "\"ParksNumber\":\"#{ParksNumber}\",\"DaysNumber\":\"#{DaysNumber}\",\"Age\":\"#{Age}\",\"AdvancedPurchase\":\"#{AdvancedPurchase}\",\"SpanId\":\"#{SpanId}\",\"Price\":\"#{Price}\",\"ProductID\":\"#{ProductID}\",\"ProductVariantID\":\"#{ProductVariantID}\",\"CatalogName\":\"#{CatalogName}\""
    );

var AnnualPassProductTemplate = new Template(
    "\"PassType\":\"#{PassType}\",\"Age\":\"#{Age}\",\"SpanId\":\"#{SpanId}\",\"Price\":\"#{Price}\",\"ProductID\":\"#{ProductID}\",\"ProductVariantID\":\"#{ProductVariantID}\",\"CatalogName\":\"#{CatalogName}\",\"IsFlexPay\":\"#{IsFlexPay}\""
    );

var PriceFlexTicketProductTemplate = new Template(
    "\"FlexType\":\"#{FlexType}\",\"Age\":\"#{Age}\",\"SpanId\":\"#{SpanId}\",\"Price\":\"#{Price}\",\"ProductID\":\"#{ProductID}\",\"ProductVariantID\":\"#{ProductVariantID}\",\"VirtualCatalog\":\"#{VirtualCatalog}\""
);

var MealDealsProductTemplate = new Template(
    "\"Park\":\"#{Park}\",\"Age\":\"#{Age}\",\"SpanId\":\"#{SpanId}\",\"Price\":\"#{Price}\",\"ProductId\":\"#{ProductId}\",\"ProductVariantId\":\"#{ProductVariantId}\",\"VirtualCatalog\":\"#{VirtualCatalog}\""
);

/****************************************************************************************************************/

function getUrlPage() {
    var regExp = new RegExp("(http)[^(?)]*");
    var urlPage = document.location.href;
    return urlPage.match(regExp).input;
}

var IndexPanel = '0';

function ValidatePanelSelectPark(spanId) {
    var isPanelSelectPark = false;

    if (spanId == '' || spanId == null) return isPanelSelectPark;

    var ticket_panel = $("content_menu_panel").select(".ticket_panel");

    ticket_panel.each(function(item_panel) {

        var codPanel = item_panel.select("div");

        if (codPanel.length > 0 && codPanel[0].innerHTML == "SelectPark") {

            var listSpanPrice = item_panel.select(".spanPrice");
            for (var i = 0; i < listSpanPrice.length; i++) {
                if (listSpanPrice[i].id == spanId) {
                    isPanelSelectPark = true;
                    break;
                }
            }
        }
        if (isPanelSelectPark) throw $break;
    });

    return isPanelSelectPark;
}

function UpdatePanelsAddToCart(spanId) {
    if (spanId == '' || spanId == null) return;

    var update = false;

    var ticket_panel = $("content_menu_panel").select(".ticket_panel");

    ticket_panel.each(function(item_panel) {

        var codPanel = item_panel.select("div");

        var btnAddToCartPanel = item_panel.select(".ButtonPanelEnter02_AddToCart");

        if (btnAddToCartPanel.length > 0) {

            var listSpanPrice = item_panel.select(".spanPrice");
            for (var i = 0; i < listSpanPrice.length; i++) {
                if (listSpanPrice[i].id == spanId) {
                    panelsAddToCart[codPanel[0].innerHTML] = true;
                    update = true;
                    break;
                }
            }
        }
        if (update) throw $break;
    });
}
function enabledButtonsNumberOfDays(action) {
    var btnNumberOfDays = $("content_menu_panel").select(".button_input1");

    btnNumberOfDays.each(function(numberOfDay) {

        if (action)
            $(numberOfDay).disabled = "";
        else
            $(numberOfDay).disabled = "disabled";

    });
}
function enabledButtonsAddToCarts(action) {
    var btnAddToCart = $("content_menu_panel").select(".ButtonPanelEnter02_AddToCart");

    if (action) {

        var ticket_panel = $("content_menu_panel").select(".ticket_panel");

        ticket_panel.each(function(item_panel) {

            var codPanel = item_panel.select("div");

            var btnAddToCartPanel = item_panel.select(".ButtonPanelEnter02_AddToCart");

            if (codPanel.length > 0) {

                for (var key in panelsAddToCart) {

                    if (codPanel[0].innerHTML == key) {

                        if (panelsAddToCart[key] == true) {

                            if (key == "ExpressPass") {

                                if (calenderExpressPass != null && calenderExpressPass.options.selectedDate != null) {

                                    btnAddToCartPanel.each(function(item_addToCart) {

                                        $(item_addToCart).disabled = "";

                                    });
                                }
                            } else {
                                btnAddToCartPanel.each(function(item_addToCart) {

                                    $(item_addToCart).disabled = "";

                                });
                            }
                        } else {
                            btnAddToCartPanel.each(function(item_addToCart) {

                                $(item_addToCart).disabled = "disabled";

                            });
                        }

                    }

                }

            }

        });


    } else {

        btnAddToCart.each(function(itemAddToCart) {

            $(itemAddToCart).disabled = "disabled";

        });

    }
}

function sendEventsToCar(_eventID, _plu, _resourceID, _qty) {
    waitShoppingCart(true);
    var _catalogNameEP = GetDiscount(false);

    PageMethods.ValidateUserSession(function(response) {
        //Success
        if (response != '') {
            waitShoppingCart(false);
            window.location = response;
        }
        else {
            PageMethods.AddItemEventToBasket(_eventID, _plu, _resourceID, _qty, _ExpressPassDateSelected, _catalogNameEP, getEventsToCarSuccessfull, getEventsToCarUnSuccessfull);
        }
    },
            function(response) {
                alert(response);
            });
}

function getEventsToCarSuccessfull(result) {
    if (result != null && result != undefined && result != "") {
        switchEmailBox(true, $('dvProductDetailBox'));
        $('dvProductDetail').innerHTML = result;

        CloseProductDetailBox();
    }

    LoadMiniCart();

    waitShoppingCart(false);

    enabledButtonsAddToCarts(true);

}

function getEventsToCarUnSuccessfull(result) {

    alert("Error in the addition of Express Pass Event");
    waitShoppingCart(false);
    enabledButtonsAddToCarts(true);

}

function getDataExpressPassAll(_dataEntry) {
    var endDateCalendarExpressPass;
    var beginDateCalendarExpressPass;
    var dateNow = new Date();
    var virtualCatalogName = GetDiscount(false);

    endDateCalendar = new Date();
    endDateCalendar.setMonth(endDateCalendar.getMonth() + parseInt(QuantityMonthsCalendar));

    endDateCalendarExpressPass = (endDateCalendar.getMonth() + 1) + '/' + endDateCalendar.getDate() + '/' + endDateCalendar.getFullYear();
    beginDateCalendarExpressPass = (dateNow.getMonth() + 1) + '/' + dateNow.getDate() + '/' + dateNow.getFullYear();

    var request = new Ajax.Request(TICKET.Url.GalaxyEventsForDate, {
        method: "post",
        contentType: "application/json; charset=utf-8",
        postBody: "{virtualCatalogName: '" + virtualCatalogName + "', eventType: '" + _dataEntry + "', beginDate: '" + beginDateCalendarExpressPass + "', endDate:'" + endDateCalendarExpressPass + "'}",
        onSuccess: getCallExpressPassSucceed,
        onFailure: getCallExpressPassFailed
    });
}

function getCallExpressPassSucceed(response) {
    var resultCalendar = response.responseText.evalJSON();
    calendarPrices = resultCalendar.d.evalJSON();
    var EventsDate = calendarPrices.EventsForDayJson;
    footerCalendar = calendarPrices.ListProductDescription;
    calendarPrices = EventsDate;

    var days_month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    var end_month_calendar;
    var end_date_calendar;
    var end_date_temp;
    var cur_date;
    var next_date;
    var cur_day;
    var cur_month;
    var next_day;
    var result;
    var existItem = false;

    if (yearLeap(new Date().getFullYear())) {
        days_month[1] = 29;
    }

    var objDatesOff = new Object();
    objDatesOff = [];

    end_month_calendar = endDateCalendar.getMonth();
    end_date_calendar = endDateCalendar.getDate();

    for (var i = 0; i < EventsDate.length - 1; i++) {
        cur_date = new Date(EventsDate[i].DateEvent);
        next_date = new Date(EventsDate[i + 1].DateEvent);
        var _color = EventsDate[i].Color;
        cur_day = cur_date.getDate();
        cur_month = cur_date.getMonth();
        next_day = next_date.getDate();

        result = 0;

        if (next_day < cur_day) {
            if ((days_month[cur_month] - cur_day) > 1 || (next_day - 1) > 0)
                existItem = true;
        } else {
            if ((next_day - cur_day) > 1)
                existItem = true;
        }

        if (existItem) {
            var cur_day_temp2;
            var cur_month_temp2;
            var cur_dateTemp = new Date(EventsDate[i].DateEvent);
            cur_dateTemp.setDate(cur_dateTemp.getDate() + 1);
            do {
                cur_day_temp2 = cur_dateTemp.getDate();
                cur_month_temp2 = cur_dateTemp.getMonth();
                objDatesOff.push({ date: cur_day_temp2, month: cur_month_temp2 });
                cur_dateTemp.setDate(cur_dateTemp.getDate() + 1);
            } while (cur_dateTemp.getTime() < next_date.getTime())
        }
        existItem = false;
    }

    cur_date = new Date();
    cur_date.setMonth(cur_date.getMonth() + parseInt(QuantityMonthsCalendar));
    cur_date.setDate(cur_date.getDate() + 1);

    var _endDateResult = new Date(EventsDate[EventsDate.length - 1].DateEvent);
    _endDateResult.setDate(_endDateResult.getDate() + 1);

    if (_endDateResult.getTime() < cur_date.getTime()) {
        var cur_date1 = _endDateResult;
        var cur_day_temp;
        var cur_month_temp;

        do {
            cur_day_temp = cur_date1.getDate();
            cur_month_temp = cur_date1.getMonth();
            objDatesOff.push({ date: cur_day_temp, month: cur_month_temp });
            cur_date1.setDate(cur_date1.getDate() + 1);
        } while (cur_date1.getTime() <= cur_date.getTime())

        objDatesOff.push({ date: cur_date.getDate(), month: cur_date.getMonth() });
    }

    end_date_temp = endDateCalendar;
    end_date_temp.setDate(days_month[cur_date.getMonth()]);

    if (cur_date.getTime() < end_date_temp.getTime()) {
        do {
            cur_day = cur_date.getDate();
            cur_month = cur_date.getMonth();
            objDatesOff.push({ date: cur_day, month: cur_month });
            cur_date.setDate(cur_date.getDate() + 1);
        } while (cur_date.getTime() <= end_date_temp.getTime())

        objDatesOff.push({ date: end_date_temp.getDate(), month: end_date_temp.getMonth() });
    }

    ShowCalendar(objDatesOff);

    setPropertiesTxtGuestQtyEp();

    if (!blnSelectParks)
        loadingCommercePrice(false);

}
function getCallExpressPassFailed(error) {
    SelectedDateExpressPass = null;
    calendarPrices = new Object();
    footerCalendar = new Object();
    var days_month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    var end_month_calendar;
    var end_date_calendar;
    var cur_date;
    var cur_month;
    var cur_day;
    var objDatesOff = new Object();

    objDatesOff = [];
    calendarPrices = [];
    footerCalendar = [];

    cur_date = new Date();

    if (yearLeap(new Date().getFullYear())) {
        days_month[1] = 29;
    }

    if (endDateCalendar == null) {
        endDateCalendar = new Date();
        endDateCalendar.setMonth(endDateCalendar.getMonth() + parseInt(QuantityMonthsCalendar));
    }
    end_month_calendar = endDateCalendar.getMonth();
    end_date_calendar = endDateCalendar.getDate();

    end_date_temp = new Date();
    end_date_temp.setMonth(end_date_temp.getMonth() + parseInt(QuantityMonthsCalendar));
    end_date_temp.setDate(days_month[end_date_temp.getMonth()]);

    do {
        cur_day = cur_date.getDate();
        cur_month = cur_date.getMonth();
        objDatesOff.push({ date: cur_day, month: cur_month });
        cur_date.setDate(cur_date.getDate() + 1);
    } while (cur_date.getTime() <= end_date_temp.getTime())

    ShowCalendar(objDatesOff);

    panelsAddToCart["ExpressPass"] = false;

    enabledButtonsAddToCarts(true);

    loadingCommercePrice(false);
}

function ShowCalendar(listDatesOff) {

    if (calenderExpressPass != null) {
        SelectedDateExpressPass = calenderExpressPass.options.selectedDate;
    }
    calenderExpressPass = new Calendar("containner_div_calendar", null, { visible: true,
        endDate: endDateCalendar,
        inputType: 'none',
        idPrefix: 'cal1',
        allowWeekendSelection: true,
        selectedDate: SelectedDateExpressPass,
        datesOff: listDatesOff,
        commerceProducts: calendarPrices,
        commercePrices: footerCalendar
    });

}

function ShowCalendarCityWalkDinner() {

    calendarCityWalkDinner = new Calendar(TICKET.Calendars.CityWalkDinner, null, { visible: true,
        endDate: endDateCalendar,
        inputType: 'none',
        idPrefix: 'cal2',
        datesOff: [],
        allowWeekendSelection: true
    });

}

function yearLeap(year) {
    var isLeap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (!isLeap) {
        return false;
    } else {
        return true;
    }
}

function sendToCar(_objContent, _nAdults, _nKids) {
    var objSpanContent = _objContent.select(".spanPrice");
    var _productId;
    var _variantId;
    var _varQty;
    var _virtualCatalog;


    _varQty = parseInt(_nAdults) + "|" + parseInt(_nKids);

    _productId = objSpanContent[0].select(".hdproduct")[0].value + "|" + objSpanContent[1].select(".hdproduct")[0].value;
    _variantId = objSpanContent[0].select(".hdvariant")[0].value + "|" + objSpanContent[1].select(".hdvariant")[0].value;
    _virtualCatalog = objSpanContent[0].select(".hdcatalog")[0].value + "|" + objSpanContent[1].select(".hdcatalog")[0].value;

    waitShoppingCart(true);
    AddingToBasket(_productId, _variantId, _varQty, _virtualCatalog);
}

function sendFromMealDealToCar(_objPanel) {
    var _productIdMD;
    var _variantIdMD;
    var _varQtyMD;
    var _virtualCatalogMD;
    var _valuesCupMealDeal;
    var _valuesParkMealDeals;

    var objTextQty = _objPanel.select(".tb");

    _glbCatalogNameSC = GetDiscount(false);

    if (objTextQty.length == 0)
        return;

    qtyAdultsMealDeal = objTextQty[0].value;
    qtyKidsMealDeal = objTextQty[1].value;
    qtyCupMealDeal = objTextQty[2].value;

    var _binAdultsMealDeal;
    var _binqtyKidsMealDeal;
    var _binqtyCupMealDeal;
    var _binQtysMealDeal;

    if (qtyAdultsMealDeal <= 0)
        _binAdultsMealDeal = "0";
    else
        _binAdultsMealDeal = "1";

    if (qtyKidsMealDeal <= 0)
        _binqtyKidsMealDeal = "0";
    else
        _binqtyKidsMealDeal = "1";

    if (qtyCupMealDeal <= 0)
        _binqtyCupMealDeal = "0";
    else
        _binqtyCupMealDeal = "1";

    _binQtysMealDeal = _binAdultsMealDeal + _binqtyKidsMealDeal + _binqtyCupMealDeal;

    if (_binQtysMealDeal == "000")
        return false;

    _valuesCupMealDeal = document.getElementById("hdnCupMealDeal").value;

    if (NmbParksMealDeal == 1)
        _valuesParkMealDeals = document.getElementById("hdnOneParkMealDeal").value;
    else
        _valuesParkMealDeals = document.getElementById("hdnTwoParkMealDeal").value;

    var _dataParamsPark = _valuesParkMealDeals.split('|');
    var _parkMDProductID = _dataParamsPark[0];
    var _parkMDVariantIDAdult = _dataParamsPark[1];
    var _parkMDVariantIDKid = _dataParamsPark[2];

    var nomProd = "ProductID:";
    var nomVarAdult = "VariantIDAdult:";
    var nomVarKid = "VariantIDKid:";

    _parkMDProductID = _parkMDProductID.substr(nomProd.length, _parkMDProductID.length);
    _parkMDVariantIDAdult = _parkMDVariantIDAdult.substr(nomVarAdult.length, _parkMDVariantIDAdult.length);
    _parkMDVariantIDKid = _parkMDVariantIDKid.substr(nomVarKid.length, _parkMDVariantIDKid.length);

    var _dataParams = _valuesCupMealDeal.split('|');
    var _cupMDProductID = _dataParams[0];
    var _cupMDVariantID = _dataParams[1];

    var nomVarCup = "VariantID:";

    _cupMDProductID = _cupMDProductID.substr(nomProd.length, _cupMDProductID.length);
    _cupMDVariantID = _cupMDVariantID.substr(nomVarCup.length, _cupMDVariantID.length);

    switch (_binQtysMealDeal) //Adults-Kids-Cups
    {
        case "100":
            _productIdMD = _parkMDProductID;
            _variantIdMD = _parkMDVariantIDAdult;
            _varQtyMD = qtyAdultsMealDeal;
            _virtualCatalogMD = _glbCatalogNameSC;
            break;
        case "110":
            _productIdMD = _parkMDProductID + "|" + _parkMDProductID;
            _variantIdMD = _parkMDVariantIDAdult + "|" + _parkMDVariantIDKid;
            _varQtyMD = qtyAdultsMealDeal + "|" + qtyKidsMealDeal;
            _virtualCatalogMD = _glbCatalogNameSC + "|" + _glbCatalogNameSC;
            break;
        case "111":
            _productIdMD = _parkMDProductID + "|" + _parkMDProductID + "|" + _cupMDProductID;
            _variantIdMD = _parkMDVariantIDAdult + "|" + _parkMDVariantIDKid + "|" + _cupMDVariantID;
            _varQtyMD = qtyAdultsMealDeal + "|" + qtyKidsMealDeal + "|" + qtyCupMealDeal;
            _virtualCatalogMD = _glbCatalogNameSC + "|" + _glbCatalogNameSC + "|" + _glbCatalogNameSC;
            break;
        case "011":
            _productIdMD = _parkMDProductID + "|" + _cupMDProductID;
            _variantIdMD = _parkMDVariantIDKid + "|" + _cupMDVariantID;
            _varQtyMD = qtyKidsMealDeal + "|" + qtyCupMealDeal;
            _virtualCatalogMD = _glbCatalogNameSC + "|" + _glbCatalogNameSC;
            break;
        case "001":
            _productIdMD = _cupMDProductID;
            _variantIdMD = _cupMDVariantID;
            _varQtyMD = qtyCupMealDeal;
            _virtualCatalogMD = _glbCatalogNameSC;
            break;

        case "101":
            _productIdMD = _parkMDProductID + "|" + _cupMDProductID;
            _variantIdMD = _parkMDVariantIDAdult + "|" + _cupMDVariantID;
            _varQtyMD = qtyAdultsMealDeal + "|" + qtyCupMealDeal;
            _virtualCatalogMD = _glbCatalogNameSC + "|" + _glbCatalogNameSC;
            break;
        case "010":
            _productIdMD = _parkMDProductID;
            _variantIdMD = _parkMDVariantIDKid;
            _varQtyMD = qtyKidsMealDeal;
            _virtualCatalogMD = _glbCatalogNameSC;
            break;
    }

    waitShoppingCart(true);
    AddingToBasket(_productIdMD, _variantIdMD, _varQtyMD, _virtualCatalogMD);
    return true;
}



function getSuccessfullBasketMD(result) {
    var _msgParams = new Array(2);
    var _msgAdults;
    var _msgKids;
    var _msgGen;
    var _msgSCTicket = '';

    _msgParams = result;

    if (_msgParams != '') {
        var k;

        for (k = 0; k < _msgParams.length; k++) {
            var msgText;
            msgText = _msgParams[k].replace(/^\s+|\s+$/g, '');
            msgText = msgText.replace(/\n/gi, '');

            if (msgText != "")
                _msgSCTicket = _msgSCTicket + msgText + "<br>";
        }

        _msgSCTicket = _msgSCTicket.replace(/^\s+|\s+$/g, '');
        _msgSCTicket = _msgSCTicket.replace(/\n/gi, '');
        _msgSCTicket = _msgSCTicket.replace(/\r/gi, '');

        if (_msgSCTicket != '') {
            if (_msgSCTicket != '<br>') {
                switchEmailBox(true, $('dvProductDetailBox'));
                $('dvProductDetail').innerHTML = _msgSCTicket;

                CloseProductDetailBox();
            }
        }
    }

    LoadMiniCart();
    waitShoppingCart(false);
}

function CloseProductDetailBox() {
    var objButtonCloseFullDetail = $('dvProductDetailBox').select(".close_button");
    if (objButtonCloseFullDetail.length > 0) {
        objButtonCloseFullDetail[0].onclick = function() {
            switchEmailBox(false, $('dvProductDetailBox')); return false;
        }
    }
}
function getUnSuccessfullBasketMD(result) {
    alert("Error in the moment of Add to Cart From Meal Deal. " + result);
    LoadMiniCart();
    waitShoppingCart(false);
}

function waitShoppingCart(boolShow) {
    var objContent = $("content_menu_panel").select(".content_right_sc_principal");
    var offsetTop = objContent[0].offsetTop;
    var offsetLeft = objContent[0].offsetLeft;
    var offsetHeight = objContent[0].offsetHeight;
    var offsetWidth = objContent[0].offsetWidth;

    _switchCover(offsetTop, offsetLeft, offsetWidth, offsetHeight, boolShow);

}

function getSuccessfullBasket(result) {

    var _msgParams = new Array(2);
    var _msgAdults;
    var _msgKids;
    var _msgGen;
    var _msgSCTicket = '';

    _msgParams = result;

    if (_msgParams != '') {
        var k;

        for (k = 0; k < _msgParams.length; k++) {
            var msgText;

            if (_msgParams[k] != "" && _msgParams[k] != null) {

                msgText = _msgParams[k].replace(/^\s+|\s+$/g, '');
                msgText = msgText.replace(/\n/gi, '');

                if (msgText != "") {
                    _msgSCTicket = _msgSCTicket + msgText + "<br>";
                }
            }
        }

        _msgSCTicket = _msgSCTicket.replace(/^\s+|\s+$/g, '');
        _msgSCTicket = _msgSCTicket.replace(/\n/gi, '');
        _msgSCTicket = _msgSCTicket.replace(/\r/gi, '');

        if (_msgSCTicket != '') {
            if (_msgSCTicket != '<br>') {
                switchEmailBox(true, $('dvProductDetailBox'));
                $('dvProductDetail').innerHTML = _msgSCTicket;

                CloseProductDetailBox();
            }
        }
    }

    LoadMiniCart();
    waitShoppingCart(false);
    enabledButtonsAddToCarts(true);
}

function getUnSuccessfullBasket(result) {
    waitShoppingCart(false);
    alert('Error in the addition at Shopping Cart. ' + result);
    enabledButtonsAddToCarts(true);
}

function setPriceTotalAddToCart(divContentTicket) {
    var objDivContent = divContentTicket.select(".divContentPrice02");
    if (objDivContent.length == 0)
        return;

    var ButtonPanelEnter = divContentTicket.select(".ButtonPanelEnter02_AddToCart")[0];

    if (ButtonPanelEnter == null) //adding today
        return;

    var priceAdults = 0;
    var priceKids = 0;
    var sPriceItem;

    objDivContent.each(function(item, index) {

        var objPrice = item.select(".hdprice");
        if (objPrice.length == 0)
            return;

        sPriceItem = objPrice[0].innerHTML;

        if ((sPriceItem == null) || (sPriceItem == ""))
            sPriceItem = "0";

        if (index == 0) {
            priceAdults = parseFloat(sPriceItem);
        }
        else {
            priceKids = parseFloat(sPriceItem);
        }

        if ((priceAdults > 0) && (priceKids > 0)) {
            ButtonPanelEnter.disabled = "";
        }

    });

    var objPriceTotal = divContentTicket.select(".divimgButtonPanel02 span span");

    if (objPriceTotal.length == 0)
        return;

    if (isNaN(NmbAdults))
        NmbAdults = 0;

    if (isNaN(NmbKids))
        NmbKids = 0;


    var nTotalCost = parseFloat((NmbAdults * priceAdults) + (NmbKids * priceKids));

    if (nTotalCost > 0) {
        objPriceTotal[0].innerHTML = "$ " + parseFloat(nTotalCost).toFixed(2);
    }
    else {
        objPriceTotal[0].innerHTML = "$ 0.00";
    }

}

function setPriceTwoParks(divContentTicket) {
    var objPriceOnePark = divContentTicket.select(".divContentDataPark01"); //divContentDataPark03
    var objPriceTwoParks = divContentTicket.select(".divContentDataPark03"); //divContentDataPark03
    var _PriceOnePark = 0;
    var _PriceTwoPark = 0;
    var _PricePromoParks = 0;

    if (objPriceOnePark.length > 0) {
        if (objPriceOnePark[0].select(".hdprice")[0].innerHTML == "")
            return;

        _PriceOnePark = parseFloat(objPriceOnePark[0].select(".hdprice")[0].innerHTML);
    }

    if (objPriceTwoParks.length > 0) {
        if (objPriceTwoParks[0].select(".hdprice")[0].innerHTML == "")
            return;

        _PriceTwoPark = parseFloat(objPriceTwoParks[0].select(".hdprice")[0].innerHTML);
    }

    _PricePromoParks = _PriceTwoPark - _PriceOnePark;


    if (document.getElementById("hdPricePromoParksTickets") == null) {
        var hdPricePromoParks = new Element("input");
        hdPricePromoParks.type = "hidden";
        hdPricePromoParks.id = "hdPricePromoParksTickets"
        divContentTicket.appendChild(hdPricePromoParks);
        hdPricePromoParks.value = parseInt(_PricePromoParks);
        objPriceTwoParks[0].select(".hdprice")[0].innerHTML = hdPricePromoParks.value;
    }
    else {
        objPriceTwoParks[0].select(".hdprice")[0].innerHTML = document.getElementById("hdPricePromoParksTickets").value;
    }

}

function initializaBuyTickets(_idContent, _idDiv) {

    var objContent = $(_idContent);
    var objContentPanel = objContent.select(".ticket_panel");

    if (objContentPanel.length == 0)
        return;

    if (_idDiv == "") {
        objContentPanel.each(function(item, index) {

            if (index == 0) {
                item.select(".ticket_panel_head")[0].style.display = "none";
                item.select(".ticket_panel_detail")[0].style.display = "block";
                return;
            }

        });
    }
    else {

        var dataContentGral = $("content_menu_panel").select(".ticket_panel");

        for (contPanel = 0; contPanel < dataContentGral.length; contPanel++) {
            var objPanelGral = dataContentGral[contPanel];
            var objPanelDetail = objPanelGral.select(".ticket_panel_detail");
            var _codePanel = getCodePanel(objPanelGral);

            if (_codePanel == _idDiv) {
                objPanelGral.select(".ticket_panel_head")[0].style.display = "none";
                objPanelGral.select(".ticket_panel_detail")[0].style.display = "block";
                return;
            }
            else {
                if (objPanelGral.id == _idDiv) {
                    objPanelGral.select(".ticket_panel_head")[0].style.display = "none";
                    objPanelGral.select(".ticket_panel_detail")[0].style.display = "block";
                    return;
                }

            }
        }
    }
}

function showPanelFromPassportTicket() {
    var dataContentGral = $("content_menu_panel").select(".ticket_panel");

    for (contPanel = 0; contPanel < dataContentGral.length; contPanel++) {
        var objPanelGral = dataContentGral[contPanel];
        var objPanelDetail = objPanelGral.select(".ticket_panel_detail");
        var _codePanel = getCodePanel(objPanelGral);

        if (_codePanel == _glbExternPanelPassport) {
            objPanelGral.select(".ticket_panel_head")[0].style.display = "none";
            objPanelGral.select(".ticket_panel_detail")[0].style.display = "block";

        }

    }

}

function GetUserDataEntrySucceeded(result) {

    var arrDataPanels = result.split('|');

    for (i = 0; i < arrDataPanels.length; i++) {
        var arrPanels = arrDataPanels[i].split(',');

        var objdivPanel = document.getElementById(arrPanels[0]);

        if (objdivPanel != null) {
            switch (arrPanels[1]) {
                case "True": objdivPanel.style.display = "block";
                    break;

                case "False": objdivPanel.style.display = "none";
                    break;
            }
        }
    }
}

function GetUserDataEntryUnSucceeded(result) {
    alert("Error in get the display components. " + result);
}

function sendDataServer(_nParks, _nAdults, _Childs, _Days) {
    userDataEntry = 'Park,=,' + _nParks + '|Adult,=,' + _nAdults + '|Childs,=,' + _Childs + '|Days,=,' + _Days + '|CatalogName,=,' + GetDiscount(false);

    PageMethods.SetUserDataEntry(idContainer, userDataEntry, GetUserDataEntrySucceeded);
}

function loadTicketEffects(contentTickets, _arrParams) {

    var dataContent = $(contentTickets)
    var contPanel;

    if (dataContent == null)
        return;

    dataContentGral = dataContent.select(".ticket_panel");

    for (contPanel = 0; contPanel < dataContentGral.length; contPanel++) {
        var objPanelGral = dataContentGral[contPanel];

        var objPanelDetail = objPanelGral.select(".ticket_panel_detail");

        var _codePanel = getCodePanel(objPanelGral);

        switch (_codePanel) {

            case "NumberOfDays":
                getExecScriptNumberOfDays(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "NumberOfGuests":
                getExecScriptNumberofGuests(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "ExpressPass":
                getExecScriptExpressPass(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "MealDeals":
                getExecScriptMealDeals(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "CharacterBreakfast":
                getExecScriptCharacterBreakfast(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "CityWalkDinner":
                getExecScriptCityWalkDinner(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "NumberOfPasses":
                getExecScriptNumberOfPasses(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "SelectPark":
                getExecScriptSelectPark(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "SelectAnnualPass":
                getExecScriptSelectAnnualPass(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "OtherGreatDeals":
                getExecScriptOtherGreatDeals(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "SelectPartnerPark":
                getExecScriptSelectPartnerPark(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;
            case "ExpressVipPass":
                getExecScriptExpressVipPass(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);
                break;

        }

        getScriptFunctionNextPanel(dataContent, objPanelDetail[0], contPanel, _codePanel, _arrParams);

    }

}


function setTotalPriceMealDeal() {
    var objTotalPrice = $(_idMealsDealPanel).select(".meal_deal_buttons div");
    var objTextQty = $(_idMealsDealPanel).select(".tb");

    if (objTextQty[0].value == "")
        qtyAdultsMealDeal = 0;
    else
        qtyAdultsMealDeal = parseInt(objTextQty[0].value);

    if (objTextQty[1].value == "")
        qtyKidsMealDeal = 0;
    else
        qtyKidsMealDeal = parseInt(objTextQty[1].value);

    if (objTextQty[2].value == "")
        qtyCupMealDeal = 0;
    else
        qtyCupMealDeal = parseInt(objTextQty[2].value);


    objTotalPrice.each(function(item, index) {

        if (item.className == "price") {
            var _totalPriceMealDeal = priceAdultsMealDeal * qtyAdultsMealDeal + priceKidsMealDeal * qtyKidsMealDeal + priceCupMealDeal * qtyCupMealDeal;
            _totalPriceMealDeal = _totalPriceMealDeal.toFixed(2);
            item.innerHTML = "$" + _totalPriceMealDeal;
        }

    });

}

function getPricesMealDealSuccessfull() {
    var objSpanTextPrice = $(_idMealsDealPanel).select(".hdprice");

    if (objSpanTextPrice.length == 0)
        return;

    if (objSpanTextPrice[0].innerHTML == "")
        priceAdultsMealDeal = 0;
    else
        priceAdultsMealDeal = parseFloat(objSpanTextPrice[0].innerHTML.substr(1, objSpanTextPrice[0].innerHTML.length - 1));

    if (objSpanTextPrice[1].innerHTML == "")
        priceKidsMealDeal = 0;
    else
        priceKidsMealDeal = parseFloat(objSpanTextPrice[1].innerHTML.substr(1, objSpanTextPrice[1].innerHTML.length - 1));

    if (objSpanTextPrice[2].innerHTML == "")
        priceCupMealDeal = 0;
    else
        priceCupMealDeal = parseFloat(objSpanTextPrice[2].innerHTML.substr(1, objSpanTextPrice[2].innerHTML.length - 1));

}


function waitMealDeal(boolShow) {
    var objContent = $(_idMealsDealPanel); //.select(".expressPassCont");
    var _top = getAbsoluteElementPositionTop(objContent[0]);
    var _left = getAbsoluteElementPositionLeft(objContent[0]);

    _switchCover(_top, _left, 712, 304, boolShow);

}


function getPricesMealDealUnSuccessfull(result) {
    if (!blnSelectParks)
        loadingCommercePrice(false);
    alert("Error at moment of get prices in meal deal. " + result);
}

//20090911
function selectPanelParksExpressPass(obj, objbutton, NumberPark) {
    if (obj == null) {
        obj = $(idContainer).select(".selectParkButtons a img");

        switch (NumberPark) {
            case 1: obj[0].src = "/Images/onButtons001_03.jpg";
                break;

            case 2: obj[1].src = "/Images/onButtons001_06.jpg";
                break;

            case 3: obj[2].src = "/Images/onButtons001_08.jpg";
                break;
        }
    }
    else {
        switch (NumberPark) {
            case 1: obj.src = "/Images/onButtons001_03.jpg";
                break;

            case 2: obj.src = "/Images/onButtons001_06.jpg";
                break;

            case 3: obj.src = "/Images/onButtons001_08.jpg";
                break;
        }
    }
}
//20090911
function unselectParksExpressPass(numberPark) {

    var arrPanelPark = new Array(totalParks + 1);
    var arrPanelPark = new Array(totalParks + 1);
    var objDetail = $(idContainer);

    arrPanelPark[0] = objDetail.select(".selectParkButtons a img")[0];
    arrPanelPark[1] = objDetail.select(".selectParkButtons a img")[1];
    arrPanelPark[2] = objDetail.select(".selectParkButtons a img")[2];

    switch (numberPark) {
        case 1:
            arrPanelPark[1].src = "/Images/tickets/islandOfAdventure.jpg";
            arrPanelPark[2].src = "/Images/tickets/islandOfAdventureUniversalStudiosF.jpg";

            break;

        case 2:
            arrPanelPark[0].src = "/Images/tickets/selectParkButton.jpg";
            arrPanelPark[2].src = "/Images/tickets/islandOfAdventureUniversalStudiosF.jpg";

            break;

        case 3:
            arrPanelPark[0].src = "/Images/tickets/selectParkButton.jpg";
            arrPanelPark[1].src = "/Images/tickets/islandOfAdventure.jpg";

            break;
    }
}


function selectPanelParksMealDeal(obj, objbutton, NumberPark) {
    var mealDeal_us_selected;
    var mealDeal_ioa_selected;
    var mealDeal_b_selected;
    var divPark;

    var meal_deal_content = $("content_menu_panel").select(".meal_deal_content");

    if (meal_deal_content == null)
        return;

    if (meal_deal_content.lenth == 0)
        return;

    if (meal_deal_content[0].select(".mealDeal_us-selected") != null && meal_deal_content[0].select(".mealDeal_us-selected").length > 0) {
        divPark = meal_deal_content[0].select(".mealDeal_us-selected");
        divPark[0].removeClassName("mealDeal_us-selected");
        divPark[0].addClassName("mealDeal_us");
    }
    if (meal_deal_content[0].select(".mealDeal_ioa-selected") != null && meal_deal_content[0].select(".mealDeal_ioa-selected").length > 0) {
        divPark = meal_deal_content[0].select(".mealDeal_ioa-selected");
        divPark[0].removeClassName("mealDeal_ioa-selected");
        divPark[0].addClassName("mealDeal_ioa");
    }
    if (meal_deal_content[0].select(".mealDeal_b-selected") != null && meal_deal_content[0].select(".mealDeal_b-selected").length > 0) {
        divPark = meal_deal_content[0].select(".mealDeal_b-selected");
        divPark[0].removeClassName("mealDeal_b-selected");
        divPark[0].addClassName("mealDeal_b");
    }

    switch (NumberPark) {
        case 1: divPark = meal_deal_content[0].select(".mealDeal_us");
            divPark[0].removeClassName("mealDeal_us");
            divPark[0].addClassName("mealDeal_us-selected");
            break;

        case 2: divPark = meal_deal_content[0].select(".mealDeal_ioa");
            divPark[0].removeClassName("mealDeal_ioa");
            divPark[0].addClassName("mealDeal_ioa-selected");
            break;

        case 3: divPark = meal_deal_content[0].select(".mealDeal_b");
            divPark[0].removeClassName("mealDeal_b");
            divPark[0].addClassName("mealDeal_b-selected");
            break;

    }
}

function writePanelTicketHead(objItemPanel, headDescription01, headDescription02) {
    var objDivHead01 = objItemPanel.select(".ticket_panel_head_title_01");
    var objDivHead02 = objItemPanel.select(".ticket_panel_head_title_02");
    var objTitleHead01 = objItemPanel.select(".ticket_panel_head_title_01 a");
    var objTitleHead02 = objItemPanel.select(".ticket_panel_head_title_02 a");

    if (objDivHead01.length == 0)
        return;

    if (objTitleHead01.length > 0) {
        objTitleHead01[0].innerHTML = headDescription01;
    }
    else {
        objDivHead01[0].innerHTML = headDescription01;
    }

    if (objDivHead02.length == 0)
        return;

    if (objTitleHead02.length > 0) {
        objTitleHead02[0].innerHTML = headDescription02;
    }
    else {
        objDivHead02[0].innerHTML = headDescription02;
    }

}

function showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivContainner) {
    var objDivFullDetail;
    if (objDivContainner == null) {
        objDivContainner = objItem.select(".containner_div")[0];
        if (objItem.select(".containner_div")[0] == null)
            return;
    }

    objDivFullDetail = objDivContainner.select(".fullDetailsLink");

    if (objDivFullDetail.length == 0) {
        objDivFullDetail = objItem.select(".fullDetailsLink");
        if (objDivFullDetail.length == 0)
            return;
    }

    objDivFullDetail[0].onclick = function() {

        var _catalogName;

        if (objDivContainner.select(".hdcatalog").length == 0)
            _catalogName = GetDiscount(false);
        else
            _catalogName = objDivContainner.select(".hdcatalog")[0].value;

        if (objDivContainner.select(".hdproduct").length == 0)
            return;

        if (objDivContainner.select(".hdvariant").length == 0)
            return;

        var _productID = objDivContainner.select(".hdproduct")[0].value;
        var _variantID = objDivContainner.select(".hdvariant")[0].value;

        if (_productID == "")
            return;
        if (_variantID == "")
            return;

        GetInformationProductFD(_catalogName, _productID, _variantID);

    };

}

/*********************************************************************************************************/

function GetCommercePriceAnnualPassJS(_type, passType, hdnInputData) {
    var dataEntry;

    dataEntry = AnnualPassProductsStruct(_type, passType, hdnInputData);

    if (dataEntry == '')
        return;

    var request = new Ajax.Request(TICKET.Url.AnnualPass, {
        method: "post",
        contentType: "application/json; charset=utf-8",
        postBody: "{dataEntryJSON: '" + dataEntry + "'}",
        onSuccess: GetCommercePriceJSONSucceed,
        onFailure: GetCommercePriceJSONFailed
    });
}

function GetFullDetailsMealDealsJS(_type, hdnInputData) {
    var dataEntry;

    dataEntry = CommerceProductsStruct(_type, 1, 0, hdnInputData);

    if (dataEntry == '')
        return;

    try {

        new Ajax.Request(TICKET.Url.MealDeals, {
            method: "post",
            contentType: "application/json; charset=utf-8",
            postBody: "{dataEntryJSON: '" + dataEntry + "'}",
            onSuccess: function(response) {

                var resultProducts = response.responseText.evalJSON();
                var productsPrices = resultProducts.d.evalJSON();

                for (var i = 0; i < productsPrices.length; i++) {
                    if ($(productsPrices[i].SpanId) != null) {
                        if (productsPrices[i].Age == "Adult") {
                            PageMethods.GetInformationProduct(productsPrices[i].VirtualCatalog, productsPrices[i].ProductId, productsPrices[i].ProductVariantId,
                                    function(result) {

                                        MealDealsFullDetal["US"] = result;
                                        MealDealsFullDetal["IOA"] = result;

                                    }, function(result) {
                                    });
                        }
                    }
                }
            },
            onFailure: function(result) {
                alert(result);
            }
        });

        dataEntry = CommerceProductsStruct(_type, 2, 0, hdnInputData);

        new Ajax.Request(TICKET.Url.MealDeals, {
            method: "post",
            contentType: "application/json; charset=utf-8",
            postBody: "{dataEntryJSON: '" + dataEntry + "'}",
            onSuccess: function(response) {

                var resultProducts = response.responseText.evalJSON();
                var productsPrices = resultProducts.d.evalJSON();

                for (var i = 0; i < productsPrices.length; i++) {
                    if ($(productsPrices[i].SpanId) != null) {
                        if (productsPrices[i].Age == "Adult") {
                            PageMethods.GetInformationProduct(productsPrices[i].VirtualCatalog, productsPrices[i].ProductId, productsPrices[i].ProductVariantId,
                                    function(result) {

                                        MealDealsFullDetal["BP"] = result;

                                    }, function(result) {
                                    });
                        }
                    }
                }
            },
            onFailure: function(result) {
                alert(result);
            }
        });
    } catch (e) {
        alert('Error');
    }

}

function GetCommercePriceMealDealsJS(_type, parksNumber, daysNumber, hdnInputData) {
    var dataEntry;

    dataEntry = CommerceProductsStruct(_type, parksNumber, daysNumber, hdnInputData);

    if (dataEntry == '')
        return;

    var request = new Ajax.Request(TICKET.Url.MealDeals, {
        method: "post",
        contentType: "application/json; charset=utf-8",
        postBody: "{dataEntryJSON: '" + dataEntry + "'}",
        onSuccess: GetCommercePriceMealDealsJSONSucceed,
        onFailure: GetCommercePriceMealDealsJSONFailed
    });
}


function GetCommercePriceSipperCupJS(_type, parksNumber, daysNumber, hdnInputData) {
    var dataEntry;

    dataEntry = SouvenirCupProductsStruct(_type, parksNumber, daysNumber, hdnInputData);

    if (dataEntry == '')
        return;

    var request = new Ajax.Request(TICKET.Url.SipperCup, {
        method: "post",
        contentType: "application/json; charset=utf-8",
        postBody: "{dataEntryJSON: '" + dataEntry + "'}",
        onSuccess: GetCommercePriceMealDealsJSONSucceed,
        onFailure: GetCommercePriceMealDealsJSONFailed
    });
}

/****************************************************************************************************************/

function GetCommercePriceJS(_type, parksNumber, daysNumber, hdnInputData) {
    var dataEntry;
    IndexPanel = _type;
    dataEntry = CommerceProductsStruct(_type, parksNumber, daysNumber, hdnInputData);

    if (dataEntry == '')
        return;

    var request = new Ajax.Request(TICKET.Url.CommercePrice, {
        method: "post",
        contentType: "application/json; charset=utf-8",
        postBody: "{dataEntryJSON: '" + dataEntry + "'}",
        onSuccess: GetCommercePriceJSONSucceed,
        onFailure: GetCommercePriceJSONFailed
    });
}

function GetCommercePriceJSONSucceed(response) {
    var resultProducts = response.responseText.evalJSON();
    var productsPrices = resultProducts.d.evalJSON();

    var objSpan;
    var objprice;
    var objproduct;
    var objvariant;
    var objcatalog;
    var objParkNumber;
    var enableAddToCart = '0';
    var objSpanId;

    loadingCommercePrice(false);

    for (var i = 0; i < productsPrices.length; i++) {
        objSpan = $(productsPrices[i].SpanId);

        if (objSpan != null) {
            objSpanId = productsPrices[i].SpanId;

            var _priceNumber = 0;
            objprice = objSpan.select(".hdprice")[0];
            objproduct = objSpan.select(".hdproduct")[0];
            objvariant = objSpan.select(".hdvariant")[0];
            objcatalog = objSpan.select(".hdcatalog")[0];
            objParkNumber = objSpan.select(".hdparksnumber")[0];

            if (ValidatePanelSelectPark(objSpanId)) {
                var _nSelPark = objParkNumber.value;

                if (_nSelPark == '2') {
                    var x = (i + 1) < productsPrices.length ? i + 1 : i - 1;
                    if (x < 0) {
                        objprice.innerHTML = parseFloat(productsPrices[i].Price).toFixed(2);
                    } else {
                        objprice.innerHTML = parseFloat(parseFloat(productsPrices[i].Price) - parseFloat(productsPrices[x].Price)).toFixed(2);
                    }
                }
                else {
                    objprice.innerHTML = parseFloat(productsPrices[i].Price).toFixed(2);
                }
            }
            else {
                var _nPriceProduct = productsPrices[i].Price;
                if (isNaN(productsPrices[i].Price))
                    objprice.innerHTML = "";
                else
                    objprice.innerHTML = (productsPrices[i].Price != '0.00') ? parseFloat(productsPrices[i].Price).toFixed(2) : productsPrices[i].Price;

                if (productsPrices[i].Price == '0.00') {
                    enableAddToCart = '1';
                }
            }

            objproduct.value = productsPrices[i].ProductID;
            objvariant.value = productsPrices[i].ProductVariantID;
            objcatalog.value = productsPrices[i].CatalogName;

            if (objParkNumber != null)
                objParkNumber.value = productsPrices[i].ParksNumber;

        }
    }


    if (enableAddToCart == '0') {
        setPriceTotalAddToCart($(idContainer));
    }
    if (_glbPassType != "") {
        setPriceTotalNumberOfPasses($(idContainer));

    }

    if (panelSelectParkSelected) {

        UpdatePanelsAddToCart(objSpanId);

        enabledButtonsAddToCarts(true);

        getCalcPriceNumberOfDays();
    }

    blnSelectParks = false;
}

function GetCommercePriceJSONFailed(error) {
    alert('Error on the server : ' + error.responseText);
    loadingCommercePrice(false);
}

function SelectParks(objDetail, objPark, objButtonSelect, numberPark) {
    var objContainerDiv = objDetail.select(".containner_div");
    var objButton;
    objContainerDiv.each(function(item_container, index_container) {
        var objClassName = item_container.select(".divContentDataPark01")[0];
        if (objClassName == undefined) {
            objClassName = item_container.select(".divContentDataPark02")[0];
        }
        if (objClassName == undefined) {
            objClassName = item_container.select(".divContentDataPark03")[0];
        }
        switch (objClassName.className) {
            case 'divContentDataPark01': objClassName.style.backgroundImage = "url(/Images/tickets/tickets_park_uo_bg.jpg)";
                objButton = objClassName.select(".ButtonPanel01")[0];
                objButton.style.display = "block";
                break;

            case 'divContentDataPark02': objClassName.style.backgroundImage = "url(/Images/tickets/tickets_park_ioa_bg.jpg)";
                objButton = objClassName.select(".ButtonPanel01")[0];
                objButton.style.display = "block";
                break;

            case 'divContentDataPark03': objClassName.style.backgroundImage = "url(/Images/tickets/tickets_park_both_bg.jpg)";
                objButton = objClassName.select(".ButtonPanel01bottom")[0];
                objButton.style.display = "block";
                break;
        }
    });

    switch (objPark.className) {
        case 'divContentDataPark01': objPark.style.backgroundImage = "url(/Images/tickets/tickets_park_uo_bg_OVER.jpg)";
            objButtonSelect.style.display = "none";
            break;

        case 'divContentDataPark02': objPark.style.backgroundImage = "url(/Images/tickets/tickets_park_ioa_bg_OVER.jpg)";
            objButtonSelect.style.display = "none";
            break;

        case 'divContentDataPark03': objPark.style.backgroundImage = "url(/Images/tickets/tickets_park_both_bg_OVER.jpg)";
            objButtonSelect.style.display = "none";
            break;
    }
}

function loadingCommercePrice(boolShow) {
    var objContent = $("content_menu_panel").select(".contentMenu");

    if (objContent.length > 0) {
        var objContentRight = $("content_menu_panel").select(".content_right_sc_principal");
        var _offsetTop = objContent[0].offsetTop;
        var _offsetLeft = objContent[0].offsetLeft;
        var _offsetWidth = objContent[0].offsetWidth;
        var _offsetHeight = objContent[0].offsetHeight;
        var _offsetWidthRight = objContentRight[0].offsetWidth;

        _offsetWidth += _offsetWidthRight;
        _switchCover(_offsetTop, _offsetLeft, _offsetWidth, _offsetHeight, boolShow);
    }
    else {
        var objContentRight = $("CentralContent").select(".right");

        if (objContentRight.length == 0)
            return;

        var _offsetTop = objContentRight[0].offsetTop;
        var _offsetLeft = objContentRight[0].offsetLeft;
        var _offsetWidth = objContentRight[0].offsetWidth;
        var _offsetHeight = objContentRight[0].offsetHeight;

        _switchCover(_offsetTop, _offsetLeft, _offsetWidth, _offsetHeight, boolShow);
    }

}
/******************************************************************************************************************/

function SetAttributesButtonSelectPark(contentTickets, item, objSelectPark, objButtonSelectPark, NmbParks, _resourceId, index, index_container, codePanel, _arrParams) {
    blnSelectParks = true;
    sendDataServer(NmbParks, NmbAdults, NmbKids, NmbDays);

    var dataContent = $(contentTickets);
    dataContentHead = dataContent.select(".ticket_panel_head");
    dataContentDetail = dataContent.select(".ticket_panel_detail");

    SelectParks(item, objSelectPark, objButtonSelectPark, index_container + 1);

    //select the express pass
    if ((_arrParams == null) || (_arrParams == "")) {
        selectPanelParksExpressPass(null, null, index_container + 1);
        unselectParksExpressPass(index_container + 1);
        getDataExpressPassAll(_resourceId);

        //select the mealdeals
        var _valuesCupMealDeal = $("hdnCupMealDeal").value;
        var _valuesParkMealDeals;

        switch (index_container) {
            case 0: _valuesParkMealDeals = $("hdnOneParkMealDeal").value;
                NmbParksMealDeal = 1;
                break;
            case 1: _valuesParkMealDeals = $("hdnOneParkMealDeal").value;
                NmbParksMealDeal = 1;
                break;
            case 2: _valuesParkMealDeals = $("hdnTwoParkMealDeal").value;
                NmbParksMealDeal = 2;
                break;
        }

        selectPanelParksMealDeal(null, null, index_container + 1);

        GetCommercePriceMealDealsJS("MealDeals", NmbParksMealDeal, 0, dataContent.select(".priceparameters")[0].value);
        GetCommercePriceSipperCupJS("MealDeals", NmbParksMealDeal, 0, dataContent.select(".priceparameters")[0].value);

    }
    GetCommercePriceJS("NumberOfDays", NmbParks, 0, dataContent.select(".priceparameters")[0].value);

    var titlePark;

    if (NmbParks == 1)
        titlePark = "Park";
    else
        titlePark = "Parks";


    writePanelTicketHead(dataContentHead[index], NmbParks + " " + titlePark, "");
    var _idheaditem = dataContentHead[index + 1].id;
    var _iddetailitem = dataContentDetail[index + 1].id;
    indexPanelTicket = index + 1;
    if ((_arrParams == null) || (_arrParams == "")) {
        switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);
    }
}

/***************************************************************************************************************/
/***************** Get Annual Pass Methods ***************/

function AnnualPassProductsStruct(_type, passType, hdnInputData) {
    var txtcode = "|" + _type;
    if (hdnInputData == '') {
        return '';
    }

    hdnInputData = getPriceParametersItem(_type, hdnInputData);
    var structAnnualPass = GetStructForGetAnnualPassPrice(_type, passType, hdnInputData);
    return structAnnualPass;

}

function GetStructForGetAnnualPassPrice(_type, passType, hdnInputData) {
    var formattedResult;
    var AnnualPassProduct = new Object();

    AnnualPassProduct = pushDataAnnualPass(_type, passType, hdnInputData);

    if (AnnualPassProduct.items.length == 0) {
        formattedResult = '';
        return;
    }

    formattedResult = '[';

    for (var i = 0; i < AnnualPassProduct.items.length; i++) {
        var AnnualPassProductItem = AnnualPassProduct.items[i];
        formattedResult += '{' + AnnualPassProductTemplate.evaluate(AnnualPassProductItem) + '},';
    }

    formattedResult = formattedResult.substring(0, formattedResult.length - 1);
    formattedResult += ']';

    return formattedResult;

}

function pushDataAnnualPass(_type, passType, hdnInputData) {
    var dataInput;
    var AnnualPassProduct;
    var CatalogName;

    if ((_glbCatalogNameSC == "") || (_glbCatalogNameSC == undefined))
        CatalogName = GetDiscount(false);
    else
        CatalogName = _glbCatalogNameSC;


    hdnInputData = hdnInputData.replaceAll("'", "");
    dataInput = hdnInputData.split('|');
    AnnualPassProduct = new Object();
    AnnualPassProduct.items = [];

    //if(_type==0)
    //if(_type=="SelectAnnualPass")
    //{
    var value0;
    var value1;
    var value2;
    var value3;
    var value4;

    for (var i = 0; i < dataInput.length; i++) {
        var dataInputItem = dataInput[i].split(',');
        if (dataInputItem.length > 1) {

            value0 = dataInputItem[0];
            value1 = dataInputItem[1];
            value2 = dataInputItem[2];
            value3 = dataInputItem[3];
            value4 = dataInputItem[4];

            if (dataInputItem[1] == 'True')
                AnnualPassProduct.items.push({ PassType: passType, Age: dataInputItem[2], SpanId: dataInputItem[3], Price: 'null', ProductID: 'null', ProductVariantID: 'null', CatalogName: _catalogNameFlexPay, IsFlexPay: dataInputItem[1] });
            else
                AnnualPassProduct.items.push({ PassType: passType, Age: dataInputItem[2], SpanId: dataInputItem[3], Price: 'null', ProductID: 'null', ProductVariantID: 'null', CatalogName: CatalogName, IsFlexPay: dataInputItem[1] });

        }
    }
    //}
    return AnnualPassProduct;

}

/****************************************************************************************************************/

/***************** GetCommercePrice's Methods ***************/

function CommerceProductsStruct(_type, parksNumber, daysNumber, hdnInputData) {
    if (_type != 0) {
        hdnInputData = getPriceParametersItem(_type, hdnInputData);
    }

    if (hdnInputData == '') {
        return '';
    }
    return GetStructForGetCommercePrice(_type, parksNumber, daysNumber, hdnInputData);
}

function SouvenirCupProductsStruct(_type, parksNumber, daysNumber, hdnInputData) {
    hdnInputData = getPriceParametersItem(_type, hdnInputData);
    if (hdnInputData == '') {
        return '';
    }
    return GetStructForGetSouvenirCupPrice(_type, parksNumber, daysNumber, hdnInputData);
}


function GetStructForGetCommercePrice(_type, parksNumber, daysNumber, hdnInputData) {
    var formattedResult;
    var CommerceProduct = new Object();

    CommerceProduct = pushData(_type, parksNumber, daysNumber, hdnInputData);

    if (CommerceProduct == null) {
        formattedResult = '';
        return;
    }

    if (CommerceProduct.items.length == 0) {
        formattedResult = '';
        return;
    }

    formattedResult = '[';

    for (var i = 0; i < CommerceProduct.items.length; i++) {
        var CommerceProductItem = CommerceProduct.items[i];

        switch (_type) {
            case "MealDeals":
                formattedResult += '{' + MealDealsProductTemplate.evaluate(CommerceProductItem) + '},';
                break;
            default:
                formattedResult += '{' + commerceProductTemplate.evaluate(CommerceProductItem) + '},';
                break;

        }

    }

    formattedResult = formattedResult.substring(0, formattedResult.length - 1);
    formattedResult += ']';

    return formattedResult;
}

function GetStructForGetSouvenirCupPrice(_type, parksNumber, daysNumber, hdnInputData) {
    var formattedResult;
    var SouvenirCupProduct = new Object();

    SouvenirCupProduct = pushDataSouvenirCup(_type, parksNumber, daysNumber, hdnInputData);


    if (SouvenirCupProduct.items.length == 0) {
        formattedResult = '';
        return;
    }

    formattedResult = '[';

    for (var i = 0; i < SouvenirCupProduct.items.length; i++) {
        var CommerceProductItem = SouvenirCupProduct.items[i];

        formattedResult += '{' + MealDealsProductTemplate.evaluate(CommerceProductItem) + '},';

    }

    formattedResult = formattedResult.substring(0, formattedResult.length - 1);
    formattedResult += ']';

    return formattedResult;
}

function pushData(_type, parksNumber, daysNumber, hdnInputData) {
    var dataInput;
    var CommerceProduct;
    var CatalogName;

    if ((_glbCatalogNameSC == "") || (_glbCatalogNameSC == undefined))
        CatalogName = GetDiscount(false);
    else
        CatalogName = _glbCatalogNameSC;

    hdnInputData = hdnInputData.replaceAll("'", "");
    dataInput = hdnInputData.split('|');
    CommerceProduct = new Object();
    CommerceProduct.items = [];

    switch (_type) {
        case "SelectPark":

            for (var i = 0; i < dataInput.length; i++) {
                var dataInputItem = dataInput[i].split(',');
                if (dataInputItem.length > 1) {
                    CommerceProduct.items.push({ ParksNumber: dataInputItem[0], DaysNumber: dataInputItem[1], Age: dataInputItem[2], AdvancedPurchase: dataInputItem[3], SpanId: dataInputItem[4], Price: 'null', ProductID: 'null', ProductVariantID: 'null', CatalogName: CatalogName });
                }
            }
            break;

        case "MealDeals":

            for (var i = 0; i < dataInput.length; i++) {
                var parkUndefined = false;
                var dataInputItem = dataInput[i].split(',');
                if (dataInputItem.length > 1) {
                    if (dataInputItem[1] == 'Days') {
                        dataInputItem[1] = daysNumber;
                    }
                    if (NmbParksMealDeal == undefined) {
                        NmbParksMealDeal = parksNumber;
                        parkUndefined = true;
                    }
                    if (NmbParksMealDeal == 0)
                        NmbParksMealDeal = parksNumber;

                    if (dataInputItem[2] != 'All Ages') {
                        CommerceProduct.items.push({ Park: NmbParksMealDeal, Age: dataInputItem[2], SpanId: dataInputItem[4], Price: 'null', ProductId: 'null', ProductVariantId: 'null', VirtualCatalog: CatalogName });
                    }
                    if (parkUndefined)
                        NmbParksMealDeal = undefined;
                }
            }
            break;


        default:
            if (_type == 0) {
                for (var i = 0; i < dataInput.length; i++) {

                    var dataInputItem = dataInput[i].split(',');

                    if (dataInputItem.length > 1) {
                        CommerceProduct.items.push({ ParksNumber: dataInputItem[0], DaysNumber: dataInputItem[1], Age: dataInputItem[2], AdvancedPurchase: dataInputItem[3], SpanId: dataInputItem[4], Price: 'null', ProductID: 'null', ProductVariantID: 'null', CatalogName: CatalogName });
                    }
                }
            } else {
                for (var i = 0; i < dataInput.length; i++) {
                    var dataInputItem = dataInput[i].split(',');
                    if (dataInputItem.length > 1) {
                        if (dataInputItem[1] == 'Days') {
                            dataInputItem[1] = daysNumber;
                        }

                        if (dataInputItem[3] == 'AdvancedPurchase') {
                            dataInputItem[3] = IsAdvancedPurchase;
                        }

                        CommerceProduct.items.push({ ParksNumber: parksNumber, DaysNumber: dataInputItem[1], Age: dataInputItem[2], AdvancedPurchase: dataInputItem[3], SpanId: dataInputItem[4], Price: 'null', ProductID: 'null', ProductVariantID: 'null', CatalogName: CatalogName });
                    }
                }
            }


            break;

    }

    return CommerceProduct;
}

function pushDataSouvenirCup(_type, parksNumber, daysNumber, hdnInputData) {
    var dataInput;
    var CommerceProduct;
    var CatalogName;

    if ((_glbCatalogNameSC == "") || (_glbCatalogNameSC == undefined))
        CatalogName = GetDiscount(false);
    else
        CatalogName = _glbCatalogNameSC;


    hdnInputData = hdnInputData.replaceAll("'", "");
    dataInput = hdnInputData.split('|');
    CommerceProduct = new Object();
    CommerceProduct.items = [];

    for (var i = 0; i < dataInput.length; i++) {
        var dataInputItem = dataInput[i].split(',');
        if (dataInputItem.length > 1) {
            if (dataInputItem[1] == 'Days') {
                dataInputItem[1] = daysNumber;
            }

            if (dataInputItem[2] == 'All Ages') {
                CommerceProduct.items.push({ Park: NmbParksMealDeal, Age: dataInputItem[2], SpanId: dataInputItem[4], Price: 'null', ProductId: 'null', ProductVariantId: 'null', VirtualCatalog: CatalogName });
            }
        }

    }

    return CommerceProduct;

}

function getPriceParametersItem(_type, hdnInputData) {
    var arrayPriceParameters = hdnInputData.split('$');
    var _codePanel = "";
    var _arrayResult;
    var k;

    if (arrayPriceParameters.length == 0)
        return '';

    for (k = 0; k < arrayPriceParameters.length; k++) {
        var arrayPriceParametersValues = arrayPriceParameters[k].split('|');
        var indexCode = arrayPriceParametersValues.length - 1;
        var _typeArr = arrayPriceParametersValues[indexCode];
        if (arrayPriceParametersValues[indexCode] == _type) {
            _arrayResult = arrayPriceParameters[k];
            _codePanel = arrayPriceParametersValues[arrayPriceParametersValues.length - 1];
            break;
        }

    }

    if (_codePanel == "")
        return null;

    _codePanel = "|" + _codePanel;

    _arrayResult = _arrayResult.substr(0, _arrayResult.length - _codePanel.length);
    return _arrayResult;
}

String.prototype.replaceAll = function(s1, s2) {
    return this.replace(new RegExp(s1, "g"), s2);
}

/****************************************************************************************************************/
function getExecScriptSelectAnnualPass(objPassport, objItem, objIndex, codePanel, _arrParams) {
    var objDivPassType = objItem.select(".panel_hotels-anualpass_item");

    if (objDivPassType.length == 0)
        return;

    objDivPassType.each(function(itemPass, indexPass) {

        var objTextPassType = itemPass.select(".panel_hotels-anualpass_item_pass_type");
        if (objTextPassType.length == 0)
            return;

        var _passType;

        var objButtonPassType = itemPass.select(".select_button");

        if (objButtonPassType.length == 0)
            return;

        objButtonPassType[0].onclick = function() {
            _passType = objTextPassType[0].value;
            writePanelTicketHead(dataContentHead[objIndex], _passType, "");
            getPriceSelectAnnualPass(objPassport, objItem, objIndex, "NumberOfPasses", _passType);
            var _idheaditem = dataContentHead[objIndex + 1].id;
            var _iddetailitem = dataContentDetail[objIndex + 1].id;
            indexPanelTicket = objIndex + 1;
            switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);
            sendDataAnnualPass();

        };


    });

    var objDivContainer = objItem.select(".panel_hotels-anualpass_item");
    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivContainer[0]);
    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivContainer[1]);
    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivContainer[2]);

    var _valuePassType = findArrayValue(_arrParams, 'PassType');
    if (_valuePassType != null) {
        _passType = _valuePassType;
        writePanelTicketHead(dataContentHead[objIndex], _passType, "");
        getPriceSelectAnnualPass(objPassport, objItem, objIndex, "NumberOfPasses", _passType);
        var _idheaditem = dataContentHead[objIndex + 1].id;
        var _iddetailitem = dataContentDetail[objIndex + 1].id;
        indexPanelTicket = objIndex + 1;
        switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);
        sendDataAnnualPass();

    }


}

function EventsControlsNumberOfPasses(objPassport, objItem, objIndex, codePanel, _arrParams) {
    var objNumberOfPassesInput = objItem.select(".textbox_qty");

    if (objNumberOfPassesInput.length == 0)
        return;

    objNumberOfPassesInput.each(function(item, index) {

        item.onkeyup = function() {
            setPriceTotalNumberOfPasses(objPassport);
            var titleAdults;
            var titleKids;

            if (_AdultsAnnualPass == 1)
                titleAdults = "Adult";
            else
                titleAdults = "Adults";

            if (_KidsAnnualPass == 1)
                titleKids = "Child";
            else
                titleKids = "Children";

            writePanelTicketHead(dataContentHead[objIndex], _AdultsAnnualPass + " " + _glbPassType + " " + titleAdults + " ", _KidsAnnualPass + " " + _glbPassType + " " + titleKids);

        }
        item.onkeydown = function() {
            setPriceTotalNumberOfPasses(objPassport);
            var titleAdults;
            var titleKids;

            if (_AdultsAnnualPass == 1)
                titleAdults = "Adult";
            else
                titleAdults = "Adults";

            if (_KidsAnnualPass == 1)
                titleKids = "Child";
            else
                titleKids = "Children";

            writePanelTicketHead(dataContentHead[objIndex], _AdultsAnnualPass + " " + _glbPassType + " " + titleAdults + " ", _KidsAnnualPass + " " + _glbPassType + " " + titleKids);

        }
        item.onkeypress = function(e) {
            setPriceTotalNumberOfPasses(objPassport);
            var titleAdults;
            var titleKids;

            if (_AdultsAnnualPass == 1)
                titleAdults = "Adult";
            else
                titleAdults = "Adults";

            if (_KidsAnnualPass == 1)
                titleKids = "Child";
            else
                titleKids = "Children";

            writePanelTicketHead(dataContentHead[objIndex], _AdultsAnnualPass + " " + _glbPassType + " " + titleAdults + " ", _KidsAnnualPass + " " + _glbPassType + " " + titleKids);

            if (Prototype.Browser.IE)
                return isNumericKeyStroke(event);
            else
                return isNumericKeyStroke(e);
        }

    });

    objNumberOfPassesInput[0].value = _AdultsAnnualPass;
    objNumberOfPassesInput[1].value = _KidsAnnualPass;

    setPriceTotalNumberOfPasses(objPassport);

    var objTotalAccount = objItem.select(".total_Accoount");

    if (objTotalAccount.length == 0)
        return;

    var objButtonAddToCart = objTotalAccount[0].select(".ButtonPanelEnter02_AddToCart");

    objButtonAddToCart[0].disabled = "";

    var objItemPrincipal = objItem.select(".number_of_passes");
    var objItemFlexPay = objItem.select(".flexpay");

    if (objButtonAddToCart.length > 0) {
        objButtonAddToCart[0].onclick = function() {
            sendToCartAnnualPass(objPassport, objItemPrincipal[0], objIndex, codePanel, false);
            if (_glbPassType == "")
                return;
            if (_priceAdultsAnnualPass == 0)
                return;
            if (_priceKidsAnnualPass == 0)
                return;
            if ((parseFloat(_AdultsAnnualPass) + parseFloat(_KidsAnnualPass)) == 0)
                return;

            var titleAdults;
            var titleKids;

            if (_AdultsAnnualPass == 1)
                titleAdults = "Adult";
            else
                titleAdults = "Adults";

            if (_KidsAnnualPass == 1)
                titleKids = "Child";
            else
                titleKids = "Children";

            writePanelTicketHead(dataContentHead[objIndex], _AdultsAnnualPass + " " + _glbPassType + " " + titleAdults + " ", _KidsAnnualPass + " " + _glbPassType + " " + titleKids);
            var _idheaditem = dataContentHead[objIndex + 1].id;
            var _iddetailitem = dataContentDetail[objIndex + 1].id;
            indexPanelTicket = objIndex + 1;
            switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);

        }
    }

    var objdivFlexpay = objItem.select(".flexpay");

    if (objdivFlexpay.length > 0) {
        var objButtonAddToCartFlexpay01 = objdivFlexpay[0].select(".ButtonPanelEnter02_AddToCart")[0];
        var objCheckOutFlexpay01 = objdivFlexpay[0].select(".checkbox")[0];

        if (objButtonAddToCartFlexpay01 == null)
            return;

        if (objCheckOutFlexpay01 == null)
            return;

        objButtonAddToCartFlexpay01.disabled = "";

        var objSpanContent = objdivFlexpay[0].select(".spanPrice");

        if (objSpanContent.length > 0) {
            var objprice1 = objSpanContent[0].select(".hdprice");
            objprice1[0].style.display = "none";

            var objprice2 = objSpanContent[1].select(".hdprice");
            objprice2[0].style.display = "none";

        }

        objButtonAddToCartFlexpay01.onclick = function() {
            if (objCheckOutFlexpay01.checked) {

                sendToCartAnnualPass(objPassport, objItemFlexPay[0], objIndex, codePanel, true);
                if (_glbPassType == "")
                    return;
                if (_priceAdultsAnnualPass == 0)
                    return;
                if (_priceKidsAnnualPass == 0)
                    return;
                if ((parseFloat(_AdultsAnnualPass) + parseFloat(_KidsAnnualPass)) == 0)
                    return;

                var titleAdults;
                var titleKids;

                if (_AdultsAnnualPass == 1)
                    titleAdults = "Adult";
                else
                    titleAdults = "Adults";

                if (_KidsAnnualPass == 1)
                    titleKids = "Child";
                else
                    titleKids = "Children";

                writePanelTicketHead(dataContentHead[objIndex], _AdultsAnnualPass + " " + _glbPassType + " " + titleAdults + " ", _KidsAnnualPass + " " + _glbPassType + " " + titleKids);
                var _idheaditem = dataContentHead[objIndex + 1].id;
                var _iddetailitem = dataContentDetail[objIndex + 1].id;
                indexPanelTicket = objIndex + 1;
                switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);

            }

        }
    }

    var objFlexPay = objItem.select(".flexpay");
    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objFlexPay[0]);

}

function sendDataAnnualPass() {
    if (_glbPassType == "")
        return;

    userDataEntry = 'PassType,=,' + _glbPassType;

    PageMethods.SetUserDataEntry(idContainer, userDataEntry, GetUserDataEntrySucceeded, GetUserDataEntryUnSucceeded);

}

function setPriceTotalNumberOfPasses(objPassport) {
    var objPanelNumbPasses = objPassport.select(".number_passes_right");
    if (objPanelNumbPasses.length == 0)
        return;
    var objtxtPrice = objPanelNumbPasses[0].select(".textbox_qty");

    if (objtxtPrice.length == 0)
        return;

    var objPrice = objPanelNumbPasses[0].select(".hdprice");

    if (objPrice.length == 0)
        return;

    var priceAdults = 0;
    var priceKids = 0;
    var sPriceItem;

    _AdultsAnnualPass = objtxtPrice[0].value;
    _KidsAnnualPass = objtxtPrice[1].value;

    priceAdults = objPrice[0].innerHTML;
    priceKids = objPrice[1].innerHTML;

    if (isNaN(_AdultsAnnualPass))
        _AdultsAnnualPass = 1;

    if (isNaN(_KidsAnnualPass))
        _KidsAnnualPass = 0;

    if (isNaN(priceAdults))
        priceAdults = 0;

    if (isNaN(priceKids))
        priceKids = 0;

    var objTotalAcount = objPanelNumbPasses[0].select(".total_Accoount");

    if (objTotalAcount.length == 0)
        return;

    var objPriceTotal = objTotalAcount[0].select(".price");

    if (objPriceTotal.length == 0)
        return;

    var nTotalCost = parseFloat((_AdultsAnnualPass * priceAdults) + (_KidsAnnualPass * priceKids));

    _priceAdultsAnnualPass = priceAdults;
    _priceKidsAnnualPass = priceKids;

    if (nTotalCost > 0) {
        objPriceTotal[0].innerHTML = "$ " + parseFloat(nTotalCost).toFixed(2);
    }
    else {
        objPriceTotal[0].innerHTML = "$ 0.00";
    }

}


function getPriceSelectAnnualPass(objPassport, objItem, objIndex, codePanel, PassType) {
    _glbPassType = PassType;

    var objHdInput = objPassport.select(".priceparameters");

    if (objHdInput.length == 0)
        return;

    GetCommercePriceAnnualPassJS(codePanel, PassType, objHdInput[0].value);

}

function sendToCartAnnualPass(objPassport, objItem, objIndex, codePanel, isFlexPay) {
    if (_glbPassType == "")
        return;

    if (_priceAdultsAnnualPass == 0)
        return;
    if (_priceKidsAnnualPass == 0)
        return;

    if ((parseFloat(_AdultsAnnualPass) + parseFloat(_KidsAnnualPass)) == 0)
        return;

    var objSpanContent = objItem.select(".spanPrice");
    var _productId;
    var _variantId;
    var _varQty;
    var _virtualCatalog;

    if (_KidsAnnualPass == 0) {
        _varQty = _AdultsAnnualPass;
    }
    else {
        _varQty = _AdultsAnnualPass + "|" + _KidsAnnualPass;
    }

    if (_KidsAnnualPass == 0) {
        _productId = objSpanContent[0].select(".hdproduct")[0].value;
        _variantId = objSpanContent[0].select(".hdvariant")[0].value;
        _virtualCatalog = objSpanContent[0].select(".hdcatalog")[0].value;

    }
    else {
        _productId = objSpanContent[0].select(".hdproduct")[0].value + "|" + objSpanContent[1].select(".hdproduct")[0].value;
        _variantId = objSpanContent[0].select(".hdvariant")[0].value + "|" + objSpanContent[1].select(".hdvariant")[0].value;
        _virtualCatalog = objSpanContent[0].select(".hdcatalog")[0].value + "|" + objSpanContent[1].select(".hdcatalog")[0].value;

    }

    waitShoppingCart(true);

    AddingToBasket(_productId, _variantId, _varQty, _virtualCatalog);

}

function AddingToBasket(_productId, _variantId, _varQty, _catalogName) {
    PageMethods.ValidateUserSession(function(response) {
        //Success
        if (response != '') {
            waitShoppingCart(false);
            window.location = response;
        }
        else {
            PageMethods.AddToCartToBasket(_productId, _variantId, _varQty, _catalogName, getSuccessfullBasket, getUnSuccessfullBasket);
        }
    },
            function(response) {
                alert(response);
            });
}

function enabledDisabledButton(chkBox, objButton) {
}

/****************************************************************************************************************/
function getExecScriptNumberOfPasses(objPassport, objItem, objIndex, codePanel, _arrParams) {
    EventsControlsNumberOfPasses(objPassport, objItem, objIndex, codePanel, _arrParams);
}
/****************************************************************************************************************/
function getExecScriptCharacterBreakfast(objPassport, objItem, objIndex, codePanel, _arrParams) {

    var btnAddToCart = objItem.select(".ButtonPanelEnter02_AddToCart");
    var txtQtyCBAdult = $("txtQtyCBAdult");
    var txtQtyCBChild = $("txtQtyCBChild");
    var spanPrice = objItem.select(".spanPrice");
    btnAddToCart[0].disabled = "";

    txtQtyCBAdult.onkeyup = function() {
        SetTotalCharacterBreakfast(spanPrice);
    }
    txtQtyCBAdult.onkeydown = function() {
        SetTotalCharacterBreakfast(spanPrice);
    }
    txtQtyCBAdult.onkeypress = function(e) {
        SetTotalCharacterBreakfast(spanPrice);
        if (Prototype.Browser.IE)
            return isNumericKeyStroke(e);
        else
            return isNumericKeyStroke(e);
    }

    txtQtyCBChild.onkeyup = function() {
        SetTotalCharacterBreakfast(spanPrice);
    }
    txtQtyCBChild.onkeydown = function() {
        SetTotalCharacterBreakfast(spanPrice);
    }
    txtQtyCBChild.onkeypress = function(e) {
        SetTotalCharacterBreakfast(spanPrice);
        if (Prototype.Browser.IE) {
            return isNumericKeyStroke(e);
        } else {
            return isNumericKeyStroke(e);
        }
    }

    //Add to Cart
    var titleAdult;
    var titleChild;
    btnAddToCart[0].onclick = function() {
        //alert(1);
        var txtQtyCBAdultValue = isNaN(parseInt(txtQtyCBAdult.value)) ? 0 : parseInt(txtQtyCBAdult.value);
        var txtQtyCBChildValue = isNaN(parseInt(txtQtyCBChild.value)) ? 0 : parseInt(txtQtyCBChild.value);

        if (txtQtyCBAdultValue == 0 && txtQtyCBChildValue == 0)
            return;
        //        if(parseFloat($('totalPriceCharacterBreakfast').innerHTML.replace('$',''))==0)
        //            return;

        enabledButtonsAddToCarts(false);

        if (parseInt(txtQtyCBChild.value) > 0)
            titleChild = "Children"
        else
            titleChild = "Child"
        if (parseInt(txtQtyCBAdult.value) > 0)
            titleAdult = "Adults";
        else
            titleAdult = "Adult";

        writePanelTicketHead(dataContentHead[objIndex], parseInt(txtQtyCBChild.value) + " " + titleAdult + " <abbr>(ages 10+)</abbr>", parseInt(txtQtyCBAdult.value) + " " + titleChild + "<abbr>(ages 3 to 9)</abbr>");

        var _idheaditem = dataContentHead[objIndex + 1].id;
        var _iddetailitem = dataContentDetail[objIndex + 1].id;
        indexPanelTicket = objIndex + 1;
        switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);

        addToCartCityWalkDinner(spanPrice, txtQtyCBAdultValue, txtQtyCBChildValue)
    }

    GetDataCityWalkDinnerAndCharacterBreakfast();

    var objDivContainer = objItem.select(".panel_hotels-anualpass_item");
    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivContainer[0]);
}

function SetTotalCharacterBreakfast(spanPrice) {

    var txtQtyCWDAdult = $("txtQtyCBAdult").value;
    var txtQtyCWDChild = $("txtQtyCBChild").value;
    var adultPrice = parseFloat(spanPrice[0].select(".hdprice")[0].innerHTML.replace('$', ''));
    var childPrice = parseFloat(spanPrice[1].select(".hdprice")[0].innerHTML.replace('$', ''));
    var total = (isNaN(parseInt(txtQtyCWDAdult)) ? 0 : parseInt(txtQtyCWDAdult) * adultPrice) + (isNaN(parseInt(txtQtyCWDChild)) ? 0 : parseInt(txtQtyCWDChild) * childPrice);
    $('totalPriceCharacterBreakfast').innerHTML = isNaN(total) ? "$0.00" : "$" + total.toFixed(2);
}

function GetDataCityWalkDinnerAndCharacterBreakfast() {
    var dataEntry;

    dataEntry = CityWalkDinnerAndCharacterBreakfastStruct("CharacterBreakfast");

    if (dataEntry == '')
        return;

    var request = new Ajax.Request(TICKET.Url.CharacterBreakfast, {
        method: "post",
        contentType: "application/json; charset=utf-8",
        postBody: "{dataEntryJSON: '" + dataEntry + "'}",
        onSuccess: function(response) {

            if (setValuesCityWalkDinnerAndCharacterBreakfast(response))
                panelsAddToCart["CharacterBreakfast"] = true;

            enabledButtonsAddToCarts(true);
        } .bind(this),
        onFailure: function(response) {
            loadingCommercePrice(false);
        } .bind(this)
    });
}
/****************************************************************************************************************/
function getExecScriptCharacterCityWalkDinner(objPassport, objItem, objIndex, codePanel, _arrParams) {
    return;
}
/****************************************************************************************************************/
function getExecScriptExpressVipPass(objPassport, objItem, objIndex, codePanel, _arrParams) {
    return;
}
/****************************************************************************************************************/
function getScriptFunctionNextPanel(objPassport, objItem, objIndex, codePanel, _arrParams) {

    var objbuttonNoThanks = objItem.select(".nThanksButton")[0];

    if (objbuttonNoThanks == undefined)
        return;

    if (objbuttonNoThanks == null)
        return;

    objbuttonNoThanks.onclick = function() {
        var _idheaditem = dataContentHead[objIndex + 1].id;
        var _iddetailitem = dataContentDetail[objIndex + 1].id;
        indexPanelTicket = objIndex + 1;
        switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);

    }

}
/****************************************************************************************************************/

function getExecScriptOtherGreatDeals(objPassport, objItem, objIndex, codePanel, _arrParams) {
    var btnCheckOutDeal = objItem.select(".buttons");

    if (btnCheckOutDeal == null)
        return;

    btnCheckOutDeal[0].onclick = function() {
        window.location = ViewCartPage;
    };

}

/****************************************************************************************************************/
function getExecScriptExpressPass(objPassport, objItem, objIndex, codePanel, _arrParams) {
    var objImgExpressPass = objPassport.select(".selectParkButtons a img");
    var buttonAddToCart = objItem.select(".ButtonPanelEnter02_AddToCart");

    objImgExpressPass.each(function(item_ep, index_ep) {

        var _resourceId;
        switch (index_ep) {
            case 0: _resourceId = document.getElementById("hdnUSEventTypeId").value;
                break;
            case 1: _resourceId = document.getElementById("hdnIAEventTypeId").value;
                break;
            case 2: _resourceId = document.getElementById("hdnTPEventTypeId").value;
                break;
        }

        item_ep.onclick = function() {

            switch (index_ep) {
                case 0: _nParksExpressPass = 1;
                    break;
                case 1: _nParksExpressPass = 1;
                    break;
                case 2: _nParksExpressPass = 2;
                    break;
            }
            blnSelectParks = false;
            var _dataEntry;
            selectPanelParksExpressPass(null, null, index_ep + 1);
            unselectParksExpressPass(index_ep + 1);
            getDataExpressPassAll(_resourceId);

        };

    });

    buttonAddToCart[0].onclick = function() {

        var blnCalExpressPass = SetPropertiesAddToCartExpressPass();

        if (blnCalExpressPass) {
            enabledButtonsAddToCarts(false);

            var _idheaditem = dataContentHead[objIndex + 1].id;
            var _iddetailitem = dataContentDetail[objIndex + 1].id;
            indexPanelTicket = objIndex + 1;

            var titleExPass;

            if (titleExPass == 1)
                titleAdults = "Express Pass";
            else
                titleAdults = "Express Passes";


            writePanelTicketHead(dataContentHead[objIndex], _nQtyParksExpressPass + " Express Passes", "");
            switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);
        }
    }


    var objDivContainer = objItem.select(".textbox1");
    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivContainer[0]);

}
/****************************************************************************************************************/
function getExecScriptMealDeals(objPassport, objItem, objIndex, codePanel, _arrParams) {
    _idMealsDealPanel = objItem.id;
    var objbuttonAddToCart = objItem.select(".ButtonPanelEnter02_AddToCart");
    var objTextQty = objItem.select(".tb");
    var cont1 = objItem.select(".cont1");
    var miniButtonMealDeals = objItem.select(".miniButton");
    var fullDetailsLink = cont1[0].select(".fullDetailsLink");

    GetFullDetailsMealDealsJS("MealDeals", objPassport.select(".priceparameters")[0].value);

    var objPriceTotal = objItem.select(".meal_deal_buttons div");

    objPriceTotal.each(function(item_tot, index_tot) {

        if (item_tot.className == "price")
            item_tot.innerHTML = "($00.00)";
    });

    fullDetailsLink.each(function(fullDetail, index) {

        fullDetail.onclick = function() {

            switch (index) {
                case 0: ShowFullDetailExpressPass("US");
                    break;
                case 1: ShowFullDetailExpressPass("IOA");
                    break;
                case 2: ShowFullDetailExpressPass("BP");
                    break;
            }
        }
    });

    miniButtonMealDeals.each(function(item_md, index_md) {

        var _valuesParkMealDeals;
        item_md.style.cursor = "pointer";

        item_md.onclick = function() {

            switch (index_md) {
                case 0: _valuesParkMealDeals = document.getElementById("hdnOneParkMealDeal").value;
                    NmbParksMealDeal = 1;
                    break;
                case 1: _valuesParkMealDeals = document.getElementById("hdnOneParkMealDeal").value;
                    NmbParksMealDeal = 1;
                    break;
                case 2: _valuesParkMealDeals = document.getElementById("hdnTwoParkMealDeal").value;
                    NmbParksMealDeal = 2;
                    break;
            }

            panelsAddToCart["MealDeals"] = true;

            enabledButtonsAddToCarts(true);

            selectPanelParksMealDeal(null, null, index_md + 1);
            GetCommercePriceMealDealsJS("MealDeals", NmbParksMealDeal, 0, objPassport.select(".priceparameters")[0].value);
            GetCommercePriceSipperCupJS("MealDeals", NmbParksMealDeal, 0, objPassport.select(".priceparameters")[0].value);

        };
    });

    /* Put the function**/
    EventsActionsMealDeals(objPassport, objItem, objIndex, codePanel, objTextQty);

    objbuttonAddToCart[0].onclick = function() {

        if ((objTextQty[0].value == "") || (objTextQty[1].value == "") || (objTextQty[2].value == "")) {
            return;
        }
        else {
            if ((priceAdultsMealDeal <= 0) || (priceKidsMealDeal <= 0) || (priceCupMealDeal <= 0)) {
                return;
            }
            else {
                if (sendFromMealDealToCar(objItem)) {
                    var titleAdults;
                    var titleKids;

                    if (qtyAdultsMealDeal == 1)
                        titleAdults = "Adult";
                    else
                        titleAdults = "Adults";

                    if (qtyKidsMealDeal == 1)
                        titleKids = "Child";
                    else
                        titleKids = "Children";

                    writePanelTicketHead(dataContentHead[objIndex], qtyAdultsMealDeal + " " + titleAdults + " <abbr>(ages 10+)</abbr>", qtyKidsMealDeal + " " + titleKids + "<abbr>(ages 3 to 9)</abbr>");
                    var _idheaditem = dataContentHead[objIndex + 1].id;
                    var _iddetailitem = dataContentDetail[objIndex + 1].id;
                    indexPanelTicket = objIndex + 1;
                    switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);
                }
            }
        }
    };

    var objDivContainer = objItem.select(".meal_deal_content");
    var objDivCont2 = objItem.select(".cont2");
    var objDivCont3 = objItem.select(".cont3");

    //showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivCont2[0]);
    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivCont3[0]);

}

function ShowFullDetailExpressPass(key) {
    var result = MealDealsFullDetal[key];

    if (result != "") {
        initmbFD($('dvProductDetailBox'), null, null, -1);
        var args = result.split('|');
        $('lblFullDetailTitle').innerHTML = args[0];
        $('lblFullDetailSubTitle').innerHTML = args[0];
        $('dvProductDetail').innerHTML = args[1];
    }
}

function EventsActionsMealDeals(objPassport, objItem, objIndex, codePanel, objTextQty) {

    objTextQty[0].value = NmbAdults;
    objTextQty[1].value = NmbKids;
    objTextQty[2].value = "0";

    objTextQty[0].onkeyup = function() {
        setTotalPriceMealDeal();
    };

    objTextQty[1].onkeyup = function() {
        setTotalPriceMealDeal();
    };

    objTextQty[2].onkeyup = function() {
        setTotalPriceMealDeal();
    };


    objTextQty[0].onkeydown = function() {
        setTotalPriceMealDeal();
    };

    objTextQty[1].onkeydown = function() {
        setTotalPriceMealDeal();
    };

    objTextQty[2].onkeydown = function() {
        setTotalPriceMealDeal();
    };

    objTextQty[0].onkeypress = function(e) {
        setTotalPriceMealDeal();
        if (Prototype.Browser.IE)
            return isNumericKeyStroke(event);
        else
            return isNumericKeyStroke(e);

    };
    objTextQty[1].onkeypress = function(e) {
        setTotalPriceMealDeal();
        if (Prototype.Browser.IE)
            return isNumericKeyStroke(event);
        else
            return isNumericKeyStroke(e);
    };
    objTextQty[2].onkeypress = function(e) {
        setTotalPriceMealDeal();
        if (Prototype.Browser.IE)
            return isNumericKeyStroke(event);
        else
            return isNumericKeyStroke(e);
    };

}
/****************************************************************************************************************/

/****************************************************************************************************************/
function getExecScriptNumberofGuests(objPassport, objItem, objIndex, codePanel, _arrParams) {

    var ButtonPanelEnter = objPassport.select(".ButtonPanelEnter02_AddToCart");
    var objtxtPrice = objItem.select(".txtPrice02");

    loadFunctionsNumberofGuests(objPassport, objItem, objIndex, codePanel, _arrParams);

    EventsActionsNumberofGuests(objPassport, objItem, objIndex, codePanel, objtxtPrice);

}

function loadFunctionsNumberofGuests(objPassport, objItem, objIndex, codePanel, _arrParams) {
    var ButtonPanelEnter = objItem.select(".ButtonPanelEnter02_AddToCart");
    var objtxtPrice = objItem.select(".txtPrice02");
    var valuePriceAdult = objItem.select(".hdprice")[0];
    var valuePriceKid = objItem.select(".hdprice")[1];
    var _priceAdult = 0;
    var _priceKid = 0;

    NmbAdults = objtxtPrice[0].value;
    NmbKids = objtxtPrice[1].value;

    setPriceTotalAddToCart($(idContainer));

    ButtonPanelEnter.each(function(item_k, index_k) {
        item_k.onclick = function() {

            enabledButtonsAddToCarts(false);

            var _nAdults = objtxtPrice[0].value;
            var _nKids = objtxtPrice[1].value;

            if (_nAdults == "")
                _nAdults = 0;
            if (_nKids == "")
                _nKids = 0;

            if (isNaN(_nAdults))
                _nAdults = 0;

            if (isNaN(_nKids))
                _nKids = 0;

            //if((_nAdults.match(/^\d+$/)) && (_nKids.match(/^\d+$/)))
            //{   
            NmbAdults = _nAdults;
            NmbKids = _nKids;

            var titleAdults;
            var titleKids;

            if (NmbAdults == 1)
                titleAdults = "Adult";
            else
                titleAdults = "Adults";

            if (NmbKids == 1)
                titleKids = "Child";
            else
                titleKids = "Children";

            writePanelTicketHead(dataContentHead[objIndex], NmbAdults + " " + titleAdults + " <abbr>(ages 10+)</abbr>", NmbKids + " " + titleKids + "<abbr>(ages 3 to 9)</abbr>");

            $('txtGuestQtyEp').value = parseInt(_nAdults) + parseInt(_nKids);

            var _idheaditem = dataContentHead[objIndex + 1].id;
            var _iddetailitem = dataContentDetail[objIndex + 1].id;
            indexPanelTicket = objIndex + 1;
            sendDataServer(NmbParks, NmbAdults, NmbKids, NmbDays);
            sendToCar(objItem, NmbAdults, NmbKids);
            switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);
            //}

        };

    });
}

function SetTotalPriceExpressPassWithEvent() {
    var total = (isNaN(parseInt(NmbAdults)) ? 0 : parseInt(NmbAdults)) + (isNaN(parseInt(NmbKids)) ? 0 : parseInt(NmbKids));
    $('txtGuestQtyEp').value = total;
}
function EventsActionsNumberofGuests(objPassport, objItem, objIndex, codePanel, objtxtPrice) {
    objtxtPrice[0].onkeyup = function() {
        NmbAdults = parseInt(objtxtPrice[0].value);
        NmbKids = parseInt(objtxtPrice[1].value);

        SetTotalPriceExpressPassWithEvent();
        setPriceTotalAddToCart($(idContainer));

        var titleAdults;
        var titleKids;

        if (NmbAdults == 1)
            titleAdults = "Adult";
        else
            titleAdults = "Adults";

        if (NmbKids == 1)
            titleKids = "Child";
        else
            titleKids = "Children";

        writePanelTicketHead(dataContentHead[objIndex], NmbAdults + " " + titleAdults + " <abbr>(ages 10+)</abbr>", NmbKids + " " + titleKids + "<abbr>(ages 3 to 9)</abbr>");
    }
    objtxtPrice[0].onkeydown = function() {
        NmbAdults = parseInt(objtxtPrice[0].value);
        NmbKids = parseInt(objtxtPrice[1].value);

        SetTotalPriceExpressPassWithEvent();
        setPriceTotalAddToCart($(idContainer));

        var titleAdults;
        var titleKids;

        if (NmbAdults == 1)
            titleAdults = "Adult";
        else
            titleAdults = "Adults";

        if (NmbKids == 1)
            titleKids = "Child";
        else
            titleKids = "Children";

        writePanelTicketHead(dataContentHead[objIndex], NmbAdults + " " + titleAdults + " <abbr>(ages 10+)</abbr>", NmbKids + " " + titleKids + "<abbr>(ages 3 to 9)</abbr>");

    }
    objtxtPrice[0].onkeypress = function(e) {
        NmbAdults = parseInt(objtxtPrice[0].value);
        NmbKids = parseInt(objtxtPrice[1].value);

        SetTotalPriceExpressPassWithEvent();
        setPriceTotalAddToCart($(idContainer));
        var titleAdults;
        var titleKids;

        if (NmbAdults == 1)
            titleAdults = "Adult";
        else
            titleAdults = "Adults";

        if (NmbKids == 1)
            titleKids = "Child";
        else
            titleKids = "Children";

        writePanelTicketHead(dataContentHead[objIndex], NmbAdults + " " + titleAdults + " <abbr>(ages 10+)</abbr>", NmbKids + " " + titleKids + "<abbr>(ages 3 to 9)</abbr>");
        if (Prototype.Browser.IE)
            return isNumericKeyStroke(event);
        else
            return isNumericKeyStroke(e);

    }
    objtxtPrice[1].onkeypress = function(e) {
        NmbAdults = parseInt(objtxtPrice[0].value);
        NmbKids = parseInt(objtxtPrice[1].value);

        SetTotalPriceExpressPassWithEvent();
        setPriceTotalAddToCart($(idContainer));
        var titleAdults;
        var titleKids;

        if (NmbAdults == 1)
            titleAdults = "Adult";
        else
            titleAdults = "Adults";

        if (NmbKids == 1)
            titleKids = "Child";
        else
            titleKids = "Children";

        writePanelTicketHead(dataContentHead[objIndex], NmbAdults + " " + titleAdults + " <abbr>(ages 10+)</abbr>", NmbKids + " " + titleKids + "<abbr>(ages 3 to 9)</abbr>");
        if (Prototype.Browser.IE)
            return isNumericKeyStroke(event);
        else
            return isNumericKeyStroke(e);

    }
    objtxtPrice[1].onkeyup = function() {
        NmbAdults = parseInt(objtxtPrice[0].value);
        NmbKids = parseInt(objtxtPrice[1].value);
        SetTotalPriceExpressPassWithEvent();
        setPriceTotalAddToCart($(idContainer));
        var titleAdults;
        var titleKids;

        if (NmbAdults == 1)
            titleAdults = "Adult";
        else
            titleAdults = "Adults";

        if (NmbKids == 1)
            titleKids = "Child";
        else
            titleKids = "Children";

        writePanelTicketHead(dataContentHead[objIndex], NmbAdults + " " + titleAdults + " <abbr>(ages 10+)</abbr>", NmbKids + " " + titleKids + "<abbr>(ages 3 to 9)</abbr>");
    }
    objtxtPrice[1].onkeydown = function() {
        NmbAdults = parseInt(objtxtPrice[0].value);
        NmbKids = parseInt(objtxtPrice[1].value);
        SetTotalPriceExpressPassWithEvent();
        setPriceTotalAddToCart($(idContainer));

        var titleAdults;
        var titleKids;

        if (NmbAdults == 1)
            titleAdults = "Adult";
        else
            titleAdults = "Adults";

        if (NmbKids == 1)
            titleKids = "Child";
        else
            titleKids = "Children";

        writePanelTicketHead(dataContentHead[objIndex], NmbAdults + " " + titleAdults + " <abbr>(ages 10+)</abbr>", NmbKids + " " + titleKids + "<abbr>(ages 3 to 9)</abbr>");
    }
}
/****************************************************************************************************************/
function getExecScriptCityWalkDinner(objPassport, objItem, objIndex, codePanel, _arrParams) {
    var btnAddToCart = objItem.select(".ButtonPanelEnter02_AddToCart");
    var txtQtyCWDAdult = $("txtQtyCWDAdult");
    var txtQtyCWDChild = $("txtQtyCWDChild");
    var spanPrice = objItem.select(".spanPrice");
    btnAddToCart[0].disabled = "";

    txtQtyCWDAdult.onkeyup = function() {
        SetTotalCityWalkDinner(spanPrice);
    }
    txtQtyCWDAdult.onkeydown = function() {
        SetTotalCityWalkDinner(spanPrice);
    }
    txtQtyCWDAdult.onkeypress = function(e) {
        SetTotalCityWalkDinner(spanPrice);
        if (Prototype.Browser.IE)
            return isNumericKeyStroke(event);
        else
            return isNumericKeyStroke(e);
    }

    txtQtyCWDChild.onkeyup = function() {
        SetTotalCityWalkDinner(spanPrice);
    }
    txtQtyCWDChild.onkeydown = function() {
        SetTotalCityWalkDinner(spanPrice);
    }
    txtQtyCWDChild.onkeypress = function(e) {
        SetTotalCityWalkDinner(spanPrice);
        if (Prototype.Browser.IE) {
            return isNumericKeyStroke(event);
        } else {
            return isNumericKeyStroke(e);
        }
    }

    //Add to Cart
    var titleAdult;
    var titleChild;

    $(btnAddToCart[0]).onclick = function() {

        alert(1);
        var txtQtyCWDAdultValue = isNaN(parseInt(txtQtyCWDAdult.value)) ? 0 : parseInt(txtQtyCWDAdult.value);
        var txtQtyCWDChildValue = isNaN(parseInt(txtQtyCWDChild.value)) ? 0 : parseInt(txtQtyCWDChild.value);

        if (txtQtyCWDAdultValue == 0 && txtQtyCWDChildValue == 0)
            return;

        if (parseFloat($('totalPriceCityWalkDinner').innerHTML.replace('$', '')) == 0)
            return;

        enabledButtonsAddToCarts(false);

        if (parseInt(txtQtyCWDChild.value) > 0)
            titleChild = "Children"
        else
            titleChild = "Child"
        if (parseInt(txtQtyCWDAdult.value) > 0)
            titleAdult = "Adults";
        else
            titleAdult = "Adult";

        writePanelTicketHead(dataContentHead[objIndex], parseInt(txtQtyCWDChild.value) + " " + titleAdult + " <abbr>(ages 10+)</abbr>", parseInt(txtQtyCWDAdult.value) + " " + titleChild + "<abbr>(ages 3 to 9)</abbr>");

        var _idheaditem = dataContentHead[objIndex + 1].id;
        var _iddetailitem = dataContentDetail[objIndex + 1].id;
        indexPanelTicket = objIndex + 1;
        switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);

        addToCartCityWalkDinner(spanPrice, txtQtyCWDAdultValue, txtQtyCWDChildValue)
    }

    GetPriceCityWalkDinner();
    ShowCalendarCityWalkDinner();

    var objDivContainer = objItem.select(".panel_hotels-anualpass_item");
    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivContainer[0]);
}

function addToCartCityWalkDinner(objSpanContent, txtQtyCWDAdultValue, txtQtyCWDChildValue) {
    var productId;
    var variantId;
    var quantity;
    var virtualCatalog;

    if (txtQtyCWDChildValue == 0)
        quantity = txtQtyCWDAdultValue;
    else
        quantity = txtQtyCWDAdultValue + "|" + txtQtyCWDChildValue;

    if (txtQtyCWDChildValue == 0) {
        productId = objSpanContent[0].select(".hdproduct")[0].value;
        variantId = objSpanContent[0].select(".hdvariant")[0].value;
        virtualCatalog = objSpanContent[0].select(".hdcatalog")[0].value;

    }
    else {
        productId = objSpanContent[0].select(".hdproduct")[0].value + "|" + objSpanContent[1].select(".hdproduct")[0].value;
        variantId = objSpanContent[0].select(".hdvariant")[0].value + "|" + objSpanContent[1].select(".hdvariant")[0].value;
        virtualCatalog = objSpanContent[0].select(".hdcatalog")[0].value + "|" + objSpanContent[1].select(".hdcatalog")[0].value;

    }

    waitShoppingCart(true);

    AddingToBasket(productId, variantId, quantity, virtualCatalog);

}

function SetTotalCityWalkDinner(spanPrice) {

    var txtQtyCWDAdult = $("txtQtyCWDAdult").value;
    var txtQtyCWDChild = $("txtQtyCWDChild").value;
    var adultPrice = parseFloat(spanPrice[0].select(".hdprice")[0].innerHTML.replace('$', ''));
    var childPrice = parseFloat(spanPrice[1].select(".hdprice")[0].innerHTML.replace('$', ''));
    var total = (isNaN(parseInt(txtQtyCWDAdult)) ? 0 : parseInt(txtQtyCWDAdult) * adultPrice) + (isNaN(parseInt(txtQtyCWDChild)) ? 0 : parseInt(txtQtyCWDChild) * childPrice);
    $('totalPriceCityWalkDinner').innerHTML = isNaN(total) ? "$0.00" : "$" + total.toFixed(2);
}

function GetPriceCityWalkDinner() {
    var dataEntry;

    dataEntry = CityWalkDinnerAndCharacterBreakfastStruct("CityWalkDinner");

    if (dataEntry == '')
        return;

    var request = new Ajax.Request(TICKET.Url.CityWalkDinner, {
        method: "post",
        contentType: "application/json; charset=utf-8",
        postBody: "{dataEntryJSON: '" + dataEntry + "'}",
        onSuccess: function(response) {

            if (setValuesCityWalkDinnerAndCharacterBreakfast(response))
                panelsAddToCart["CityWalkDinner"] = true;

            enabledButtonsAddToCarts(true);

        } .bind(this),
        onFailure: function(response) {
            loadingCommercePrice(false);
        } .bind(this)
    });
}

function setValuesCityWalkDinnerAndCharacterBreakfast(response) {
    var resultProducts = response.responseText.evalJSON();
    var productsPrices = resultProducts.d.evalJSON();
    var objSpan;
    var enableAddToCart = false;
    var price;

    for (var i = 0; i < productsPrices.length; i++) {

        objSpan = $(productsPrices[i].SpanId);

        if (objSpan != null) {

            objSpan.select(".hdproduct")[0].value = productsPrices[i].ProductId;
            objSpan.select(".hdvariant")[0].value = productsPrices[i].ProductVariantId;
            objSpan.select(".hdcatalog")[0].value = productsPrices[i].VirtualCatalog;

            if (isNaN(productsPrices[i].Price))
                price = "";
            else
                price = (parseFloat(productsPrices[i].Price) > 0) ? parseFloat(productsPrices[i].Price).toFixed(2) : productsPrices[i].Price;

            if (price != "")
                objSpan.select(".hdprice")[0].innerHTML = "$ " + price;

            if (parseFloat(productsPrices[i].Price) > 0)
                enableAddToCart = true;
        }
    }

    return enableAddToCart;
}
/****************************************************************************************************************/

function getExecScriptSelectPark(objPassport, objItem, objIndex, codePanel, _arrParams) {

    if (objPassport.select(".priceparameters").length > 0)
        GetCommercePriceJS("SelectPark", 0, 0, $(idContainer).select(".priceparameters")[0].value);

    var objContainerDiv = objItem.select(".containner_div");

    objContainerDiv.each(function(item_container, index_container) {
        loadSelectParkComponents(objPassport, objItem, objIndex, codePanel, _arrParams, item_container, index_container);
        showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, item_container);

    });
}

function loadSelectParkComponents(objPassport, objItem, objIndex, codePanel, _arrParams, item_container, index_container) {
    var objButtonSelectParks;
    var objPanelPark;
    var _resourceId;
    var objClassName = item_container.select(".divContentDataPark01")[0];
    if (objClassName == undefined) {
        objClassName = item_container.select(".divContentDataPark02")[0];
    }
    if (objClassName == undefined) {
        objClassName = item_container.select(".divContentDataPark03")[0];
    }

    switch (objClassName.className) {
        case 'divContentDataPark01':

            objButtonSelectParks = item_container.select(".ButtonPanel01");
            objPanelPark = item_container.select(".divContentDataPark01");

            if (objPanelPark.length == 0)
                objPanelPark = item_container.select(".divContentDataPark02");

            objButtonSelectParks[0].onclick = function() {

                panelSelectParkSelected = true;

                var objCatalogName = item_container.select(".hdcatalog")[0];

                if ((objCatalogName == null) || (objCatalogName == undefined))
                    _glbCatalogNameSC = GetDiscount(false);
                else
                    _glbCatalogNameSC = item_container.select(".hdcatalog")[0].value;


                _resourceId = document.getElementById("hdnUSEventTypeId").value;
                NmbParks = 1;
                var idPark = 0;
                _nParksExpressPass = NmbParks;
                SetAttributesButtonSelectPark(objPassport.id, objItem, objPanelPark[0], objButtonSelectParks[0],
                                                    NmbParks, _resourceId, objIndex, idPark, codePanel, null);

                enabledButtonsNumberOfDays(true);
            };

            var _valueParks = findArrayValue(_arrParams, 'Parks');
            if ((_valueParks != null) && (_valueParks == 1)) {
                var _namePark = findArrayValue(_arrParams, 'Park');
                if (_namePark == 'US') {
                    NmbParks = _valueParks;
                    var idPark = 0;
                    _nParksExpressPass = NmbParks;
                    SetAttributesButtonSelectPark(objPassport.id, objItem, objPanelPark[0], objButtonSelectParks[0], NmbParks, _resourceId, objIndex, idPark, codePanel, _arrParams);
                }
            }

            break;

        case 'divContentDataPark02':
            objButtonSelectParks = item_container.select(".ButtonPanel01");
            objPanelPark = item_container.select(".divContentDataPark02");

            if (objPanelPark.length == 0)
                objPanelPark = item_container.select(".divContentDataPark01");

            objButtonSelectParks[0].onclick = function() {

                panelSelectParkSelected = true;

                var objCatalogName = item_container.select(".hdcatalog")[0];

                if ((objCatalogName == null) || (objCatalogName == undefined))
                    _glbCatalogNameSC = GetDiscount(false);
                else
                    _glbCatalogNameSC = item_container.select(".hdcatalog")[0].value;


                _resourceId = document.getElementById("hdnIAEventTypeId").value;
                NmbParks = 1;
                var idPark = 1;
                _nParksExpressPass = NmbParks;
                SetAttributesButtonSelectPark(objPassport.id, objItem, objPanelPark[0], objButtonSelectParks[0],
                                                NmbParks, _resourceId, objIndex, idPark, codePanel, null);

                enabledButtonsNumberOfDays(true);
            };

            var _valueParks = findArrayValue(_arrParams, 'Parks');
            if ((_valueParks != null) && (_valueParks == 1)) {
                var _namePark = findArrayValue(_arrParams, 'Park');
                if (_namePark == 'IA') {
                    NmbParks = _valueParks;
                    var idPark = 1;
                    _nParksExpressPass = NmbParks;
                    SetAttributesButtonSelectPark(objPassport.id, objItem, objPanelPark[0], objButtonSelectParks[0], NmbParks, _resourceId, objIndex, idPark, codePanel, _arrParams);
                }
            }

            break;

        case 'divContentDataPark03':
            objButtonSelectParks = item_container.select(".ButtonPanel01bottom");
            objPanelPark = item_container.select(".divContentDataPark03");

            objButtonSelectParks[0].onclick = function() {

                panelSelectParkSelected = true;

                var objCatalogName = item_container.select(".hdcatalog")[0];

                if ((objCatalogName == null) || (objCatalogName == undefined))
                    _glbCatalogNameSC = GetDiscount(false);
                else
                    _glbCatalogNameSC = item_container.select(".hdcatalog")[0].value;

                _resourceId = document.getElementById("hdnTPEventTypeId").value;
                NmbParks = 2;
                var idPark = 2;
                _nParksExpressPass = NmbParks;
                SetAttributesButtonSelectPark(objPassport.id, objItem, objPanelPark[0], objButtonSelectParks[0],
                                                NmbParks, _resourceId, objIndex, idPark, codePanel, null);

                enabledButtonsNumberOfDays(true);
            };
            var _valueParks = findArrayValue(_arrParams, 'Parks');
            if ((_valueParks != null) && (_valueParks == 2)) {
                var _namePark = findArrayValue(_arrParams, 'Park');
                if (_namePark == 'TP') {
                    NmbParks = _valueParks;
                    var idPark = 2;
                    _nParksExpressPass = NmbParks;
                    SetAttributesButtonSelectPark(objPassport.id, objItem, objPanelPark[0], objButtonSelectParks[0], NmbParks, _resourceId, objIndex, idPark, codePanel, _arrParams);
                }
            }

            break;
    }

}
/****************************************************************************************************************/

function getExecScriptNumberOfDays(objPassport, objItem, objIndex, codePanel, _arrParams) {
    var objTextDays = objItem.select(".textbox h2");

    var objContainner = objItem.select(".ticket_day_0");

    if (objContainner.length == 0)
        return;

    objContainner.each(function(itemObj, indexObj) {
        execContainerNumberOfDays(objPassport, objItem, objIndex, codePanel, itemObj);
        showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, itemObj);
    });

    var _valueDays = findArrayValue(_arrParams, 'Days');
    if (_valueDays != null) {
        NmbDays = _valueDays;

        var titleDays;

        if (NmbDays == 1)
            titleDays = "Day";
        else
            titleDays = "Days";

        writePanelTicketHead(dataContentHead[objIndex], NmbDays + " " + titleDays, "");
        var _idheaditem = dataContentHead[objIndex + 1].id;
        var _iddetailitem = dataContentDetail[objIndex + 1].id;
        indexPanelTicket = objIndex + 1;
        sendDataServer(NmbParks, NmbAdults, NmbKids, NmbDays);
        GetCommercePriceJS("NumberOfGuests", NmbParks, NmbDays, objPassport.select(".priceparameters")[0].value);

    }

    var objDivContainer = objItem.select(".bottomBox");

}

function getCalcPriceNumberOfDays() {
    var objItem = getObjPanelPassport("NumberOfDays");

    if (objItem != null) {
        var objContainner = objItem[0].select(".ticket_day_0");

        if (objContainner.length == 0)
            return;

        objContainner.each(function(itemObj, indexObj) {
            var _nmbDays = 0;
            var objBottomBox = itemObj.select(".bottomBox");
            var objHdDays = itemObj.select(".hdTicketNumberOfDays");
            if (objHdDays.length == 0) {
                _nmbDays = 0;
                return;
            }

            _nmbDays = parseInt(objHdDays[0].value);

            if ((_nmbDays == 1) && (objBottomBox.length == 0)) {
                var objHdPriceDay = itemObj.select(".hdTicketDaysPrice");
                var objShowPriceDay = itemObj.select(".hdprice");
                var spanPriceDay = itemObj.select(".highlight");
                var _priceDayTicketHide = 0;
                var _priceDayTicketShow;
                var _valueSpanPrice;

                _priceDayTicketShow = parseInt(objShowPriceDay[0].innerHTML);

                if (objHdPriceDay.length > 0) {
                    _priceDayTicketHide = parseInt(objHdPriceDay[0].value);

                }
                if (spanPriceDay.length > 0) {
                    if (_priceDayTicketShow >= _priceDayTicketHide)
                        _valueSpanPrice = _priceDayTicketShow - _priceDayTicketHide;
                    else
                        _valueSpanPrice = _priceDayTicketHide - _priceDayTicketShow;

                    spanPriceDay[0].innerHTML = "Save $" + _valueSpanPrice;

                }


            }

        });

    }

}

function execContainerNumberOfDays(objPassport, objItem, objIndex, codePanel, objContainner) {

    var objButtonNDays = objContainner.select(".button_input1");

    if (objButtonNDays.length == 0)
        return;
    IsAdvancedPurchase = 'False';


    objButtonNDays[0].onclick = function() {
        var objBottomBox = objContainner.select(".bottomBox");

        if (objBottomBox.length == 0) {
            var objHdDays = objContainner.select(".hdTicketNumberOfDays");

            if (objHdDays.length == 0) {
                NmbDays = 0;
                return;
            }

            NmbDays = parseInt(objHdDays[0].value);
            IsAdvancedPurchase = 'False';

            var objCatalogName = objContainner.select(".hdcatalog")[0];

            if ((objCatalogName == null) || (objCatalogName == undefined))
                _glbCatalogNameSC = GetDiscount(false);
            else
                _glbCatalogNameSC = objContainner.select(".hdcatalog")[0].value;


            var titleDays;

            if (NmbDays == 1)
                titleDays = "Day";
            else
                titleDays = "Days";

            writePanelTicketHead(dataContentHead[objIndex], NmbDays + " " + titleDays, "");

            var _idheaditem = dataContentHead[objIndex + 1].id;
            var _iddetailitem = dataContentDetail[objIndex + 1].id; // item.id.replace('cab','det');
            indexPanelTicket = objIndex + 1;
            sendDataServer(NmbParks, NmbAdults, NmbKids, NmbDays);
            //GetCommercePriceJS(2, NmbParks, NmbDays, objPassport.select(".priceparameters")[0].value);
            GetCommercePriceJS("NumberOfGuests", NmbParks, NmbDays, objPassport.select(".priceparameters")[0].value);
            switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);

        }
        else {

            var objHdDays = objContainner.select(".hdTicketNumberOfDays");

            if (objHdDays.length == 0) {
                NmbDays = 0;
                return;
            }
            NmbDays = parseInt(objHdDays[0].value);
            IsAdvancedPurchase = 'True';

            var objCatalogName = objContainner.select(".hdcatalog")[0];

            if ((objCatalogName == null) || (objCatalogName == undefined))
                _glbCatalogNameSC = GetDiscount(false);
            else
                _glbCatalogNameSC = objContainner.select(".hdcatalog")[0].value;

            var titleDays;

            if (NmbDays == 1)
                titleDays = "Day";
            else
                titleDays = "Days";

            writePanelTicketHead(dataContentHead[objIndex], NmbDays + " " + titleDays, "");

            var _idheaditem = dataContentHead[objIndex + 1].id;
            var _iddetailitem = dataContentDetail[objIndex + 1].id; // item.id.replace('cab','det');
            indexPanelTicket = objIndex + 1;
            sendDataServer(NmbParks, NmbAdults, NmbKids, NmbDays);
            //GetCommercePriceJS(2, NmbParks, NmbDays, objPassport.select(".priceparameters")[0].value);
            GetCommercePriceJS("NumberOfGuests", NmbParks, NmbDays, objPassport.select(".priceparameters")[0].value);
            switchPanel(_idheaditem, _iddetailitem, dataContentDetail, indexPanelTicket);

        }
    };

}


function setPropertiesTxtGuestQtyEp() {
    var objText = $("txtGuestQtyEp");
    $(objText).onkeyup = function() {
        SetTotalPriceExpressPass();
    };
    $(objText).onkeydown = function() {
        SetTotalPriceExpressPass();
    };
    $(objText).onkeypress = function(e) {
        SetTotalPriceExpressPass();
        if (Prototype.Browser.IE)
            return isNumericKeyStroke(event);
        else
            return isNumericKeyStroke(e);
    };
}

function SetTotalPriceExpressPass() {
    var spanPriceSelected = $('spanPriceSelected').innerHTML.replace('$', '');
    var totalPriceExpressPass = $('totalPriceExpressPass');
    var txtGuestQtyEp = $('txtGuestQtyEp').value;
    var result = parseFloat(spanPriceSelected) * parseInt(txtGuestQtyEp);
    totalPriceExpressPass.innerHTML = isNaN(result) ? "$0.00" : "$" + result.toFixed(2);
}

function SetPropertiesAddToCartExpressPass() {
    if (_nParksExpressPass == 0)
        return false;

    var txtGuestQtyEp = $('txtGuestQtyEp').value;
    _nQtyParksExpressPass = txtGuestQtyEp;

    if (txtGuestQtyEp == "")
        return false;
    if (txtGuestQtyEp == "0")
        return false;

    var selectedDate = calenderExpressPass.options.selectedDate;

    var id_str = (selectedDate.getMonth() + 1) + '-' + selectedDate.getDate() + '-' + selectedDate.getFullYear();

    var date = new Date().fromString(id_str);

    var item = calenderExpressPass.getProduct(date);

    _ExpressPassDateSelected = (selectedDate.getMonth() + 1) + '/' + selectedDate.getDate() + '/' + selectedDate.getFullYear();

    sendEventsToCar(item.EventID, item.PLU, item.ResourceId, txtGuestQtyEp);

    return true;
}

/*****************************************************************************************************************/
/*********************************************Partner Parks*******************************************************/

function getExecScriptSelectPartnerPark(objPassport, objItem, objIndex, codePanel, _arrParams) {
    var objHDParameters = objPassport.select(".priceparameters");

    if (objHDParameters.length == 0)
        return;

    var _hdnInputData = objHDParameters[0].value;

    var objContainerDiv = objPassport.select(".containner_div");
    var _flexType;

    objContainerDiv.each(function(item, index) {

        if (item.select(".itemFlexType").length == 0)
            return;

        _flexType = item.select(".itemFlexType")[0].value;

        var objButtonAddToCar = item.select(".ButtonPanelEnter02_AddToCart");

        if (objButtonAddToCar.length == 0)
            return;

        objButtonAddToCar[0].disabled = "";

        var blnIsPlus;

        switch (index) {

            case 0: blnIsPlus = undefined;
                break;

            case 1: blnIsPlus = false;
                break;

            case 2: blnIsPlus = true;
                break;
        }

        var objText = item.select(".pp_textbox");

        if ((objText[0] != null) || (objText[0] != undefined)) {
            objText[0].value = 1;

            objText[0].onkeyup = function() {
                setTotalPriceFlexTickets(objPassport, objItem, objIndex, codePanel, _arrParams, item);
            };
            objText[0].onkeydown = function() {
                setTotalPriceFlexTickets(objPassport, objItem, objIndex, codePanel, _arrParams, item);
            };
            objText[0].onkeypress = function(e) {
                setTotalPriceFlexTickets(objPassport, objItem, objIndex, codePanel, _arrParams, item);
                if (Prototype.Browser.IE)
                    return isNumericKeyStroke(event);
                else
                    return isNumericKeyStroke(e);
            };
        }

        if ((objText[1] != null) || (objText[1] != undefined)) {
            objText[1].value = 0;
            objText[1].onkeyup = function() {
                setTotalPriceFlexTickets(objPassport, objItem, objIndex, codePanel, _arrParams, item);
            };
            objText[1].onkeydown = function() {
                setTotalPriceFlexTickets(objPassport, objItem, objIndex, codePanel, _arrParams, item);
            };
            objText[1].onkeypress = function(e) {
                setTotalPriceFlexTickets(objPassport, objItem, objIndex, codePanel, _arrParams, item);
                if (Prototype.Browser.IE)
                    return isNumericKeyStroke(event);
                else
                    return isNumericKeyStroke(e);
            };
        }

        objButtonAddToCar[0].onclick = function() {
            sendToCartPartnerParks(objPassport, item, blnIsPlus);
        };
        //setTotalPriceFlexTickets(objPassport, objItem, objIndex, codePanel, _arrParams,item);

    });

    var objDivContainer = objItem.select(".containner_div");

    if (objDivContainer == null)
        return;

    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivContainer[0]);
    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivContainer[1]);
    showFullDetails(objPassport, objItem, objIndex, codePanel, _arrParams, objDivContainer[2]);

    glbObjPassport = objPassport;

    GetCommercePricePartnerParkJS(_flexType, _hdnInputData);

}

function setTotalPriceFlexTickets(objPassport, objItem, objIndex, codePanel, _arrParams, objContainner) {
    var objText = objContainner.select(".pp_textbox");

    if (objText.length == 0)
        return;

    if ((objText[0] != null) || (objText[0] != undefined)) {
        if (objText[0].value == "")
            _qtyPPks1 = 1;
        else
            _qtyPPks1 = parseInt(objText[0].value);
    }

    if ((objText[1] != null) || (objText[1] != undefined)) {
        if (objText[1].value == "")
            _qtyPPks2 = 0;
        else
            _qtyPPks2 = parseInt(objText[1].value);

    }

    var objPrice = objContainner.select(".hdprice");

    if (objPrice.length == 0)
        return;

    if (isNaN(objPrice[0].innerHTML)) {
        _pricePPks1 = 0;
    }
    else {
        _pricePPks1 = parseFloat(objPrice[0].innerHTML);
    }

    if ((objPrice[1] != null) || (objPrice[1] != undefined)) {
        if (isNaN(objPrice[1].innerHTML)) {
            _pricePPks2 = 0;
        }
        else {
            _pricePPks2 = parseFloat(objPrice[1].innerHTML);
        }
    }
    else {
        _pricePPks2 = 0;
    }

    var objTotalFlex = objContainner.select(".pp_total");
    var _priceTotalFlex = (_qtyPPks1 * _pricePPks1) + (_qtyPPks2 * _pricePPks2);

    if (isNaN(_priceTotalFlex))
        _priceTotalFlex = 0.00;

    objTotalFlex[0].innerHTML = "Total: $" + _priceTotalFlex.toFixed(2);

    var objFlexName = objContainner.select(".itemFlexType");

    if (objFlexName.length == 0)
        return;

}

function sendToCartPartnerParks(objPassport, objContainer, IsFlexTicketPlus) {

    var objSpanContent;
    var _productId;
    var _variantId;
    var _varQty;
    var _virtualCatalog;

    var objTextAge = objContainer.select(".pp_textbox");

    if ((objTextAge[0] == null) || (objTextAge[0] == undefined))
        _qtyPPks1 = 0;
    else {
        if (isNaN(objTextAge[0].value) || (objTextAge[0].value == ""))
            _qtyPPks1 = 0;
        else
            _qtyPPks1 = parseInt(objTextAge[0].value);
    }

    if ((objTextAge[1] == null) || (objTextAge[1] == undefined))
        _qtyPPks2 = 0;
    else {
        if (isNaN(objTextAge[1].value) || (objTextAge[1].value == ""))
            _qtyPPks2 = 0;
        else
            _qtyPPks2 = parseInt(objTextAge[1].value);
    }

    if ((_qtyPPks1 == 0) && (_qtyPPks2 == 0))
        return;

    objSpanContent = objContainer.select(".spanPrice");

    var objPrice = objSpanContent[0].select(".hdprice");

    if (objPrice == null)
        return;

    if (objPrice[0].innerHTML == "")
        return;

    if ((_qtyPPks1 > 0) && (_qtyPPks2 == 0))
        _varQty = _qtyPPks1;
    else {
        if ((_qtyPPks2 > 0) && (_qtyPPks1 == 0))
            _varQty = _qtyPPks2;
        else
            _varQty = _qtyPPks1 + "|" + _qtyPPks2;
    }


    if ((_qtyPPks1 > 0) && (_qtyPPks2 == 0)) {
        _productId = objSpanContent[0].select(".hdproduct")[0].value;
        _variantId = objSpanContent[0].select(".hdvariant")[0].value;
        _virtualCatalog = objSpanContent[0].select(".hdcatalog")[0].value;

    }
    else {

        if ((_qtyPPks2 > 0) && (_qtyPPks1 == 0)) {
            _productId = objSpanContent[1].select(".hdproduct")[0].value;
            _variantId = objSpanContent[1].select(".hdvariant")[0].value;
            _virtualCatalog = objSpanContent[1].select(".hdcatalog")[0].value;
        }
        else {
            _productId = objSpanContent[0].select(".hdproduct")[0].value + "|" + objSpanContent[1].select(".hdproduct")[0].value;
            _variantId = objSpanContent[0].select(".hdvariant")[0].value + "|" + objSpanContent[1].select(".hdvariant")[0].value;
            _virtualCatalog = objSpanContent[0].select(".hdcatalog")[0].value + "|" + objSpanContent[1].select(".hdcatalog")[0].value;

        }

    }

    waitShoppingCart(true);
    AddingToBasket(_productId, _variantId, _varQty, _virtualCatalog);
}


function GetCommercePricePartnerParkJS(flexType, hdnInputData) {
    var dataEntry;

    dataEntry = PartnerParksProductsStruct(flexType, hdnInputData);

    if (dataEntry == '')
        return;

    var request = new Ajax.Request(TICKET.Url.FlexTicket, {
        method: "post",
        contentType: "application/json; charset=utf-8",
        postBody: "{dataEntryJSON: '" + dataEntry + "'}",
        onSuccess: GetCommercePricePartnerParkJSONSucceed,
        onFailure: GetCommercePricePartnerParkJSONFailed
    });
}

function GetCommercePricePartnerParkJSONFailed(error) {
    alert('Error on the server : ' + error.responseText);
    loadingCommercePrice(false);
}

function GetCommercePricePartnerParkJSONSucceed(response) {
    var resultProducts = response.responseText.evalJSON();
    var productsPrices = resultProducts.d.evalJSON();

    var objSpan;
    var objprice;
    var objproduct;
    var objvariant;
    var objcatalog;
    var objParkNumber;
    var enableAddToCart = '0';

    for (var i = 0; i < productsPrices.length; i++) {
        objSpan = $(productsPrices[i].SpanId);

        if (objSpan != null) {
            var _priceNumber = 0;
            objprice = objSpan.select(".hdprice")[0];
            objproduct = objSpan.select(".hdproduct")[0];
            objvariant = objSpan.select(".hdvariant")[0];
            objcatalog = objSpan.select(".hdcatalog")[0];
            objParkNumber = objSpan.select(".hdparksnumber")[0];


            var _nPriceProduct = productsPrices[i].Price;
            if (isNaN(productsPrices[i].Price))
                objprice.innerHTML = "";
            else
                objprice.innerHTML = (productsPrices[i].Price != '0.00') ? parseFloat(productsPrices[i].Price).toFixed(2) : productsPrices[i].Price;

            if (productsPrices[i].Price == '0.00') {
                enableAddToCart = '1';
            }

            objproduct.value = productsPrices[i].ProductId;
            objvariant.value = productsPrices[i].ProductVariantId;
            objcatalog.value = productsPrices[i].VirtualCatalog;

        }
    }

    loadingCommercePrice(false);

    blnSelectParks = false;

    panelsAddToCart["SelectPartnerPark"] = true;

    enabledButtonsAddToCarts(true);

    if (glbObjPassport == null)
        return;

    var objContainerDiv = glbObjPassport.select(".containner_div");
    var _flexType;

    if (objContainerDiv == null)
        return;

    objContainerDiv.each(function(item, index) {
        _qtyPPks1 = 1;
        _qtyPPks2 = 0;
        _pricePPks1 = 0;
        _pricePPks2 = 0;

        var objText = item.select(".pp_textbox");

        if (objText.length == 0)
            return;

        if ((objText[0] != null) || (objText[0] != undefined)) {
            if (objText[0].value == "")
                _qtyPPks1 = 1;
            else
                _qtyPPks1 = parseInt(objText[0].value);
        }

        if ((objText[1] != null) || (objText[1] != undefined)) {
            if (objText[1].value == "")
                _qtyPPks2 = 0;
            else
                _qtyPPks2 = parseInt(objText[1].value);

        }

        var objPrice = item.select(".hdprice");

        if (objPrice.length == 0)
            return;

        if (isNaN(objPrice[0].innerHTML)) {
            _pricePPks1 = 0;
        }
        else {
            _pricePPks1 = parseFloat(objPrice[0].innerHTML);
        }

        if ((objPrice[1] != null) || (objPrice[1] != undefined)) {
            if (isNaN(objPrice[1].innerHTML)) {
                _pricePPks2 = 0;
            }
            else {
                _pricePPks2 = parseFloat(objPrice[1].innerHTML);
            }
        }
        else {
            _pricePPks2 = 0;
        }

        var objTotalFlex = item.select(".pp_total");
        var _priceTotalFlex = (_qtyPPks1 * _pricePPks1) + (_qtyPPks2 * _pricePPks2);

        if (isNaN(_priceTotalFlex))
            _priceTotalFlex = 0.00;

        objTotalFlex[0].innerHTML = "Total: $" + _priceTotalFlex.toFixed(2);

        var objFlexName = item.select(".itemFlexType");

        if (objFlexName.length == 0)
            return;


    });

}

function GetCommercePriceMealDealsJSONSucceed(response) {
    var resultProducts = response.responseText.evalJSON();
    var productsPrices = resultProducts.d.evalJSON();

    var objSpan;
    var objprice;
    var objproduct;
    var objvariant;
    var objcatalog;
    var objParkNumber;
    var enableAddToCart = '0';
    var _price;

    for (var i = 0; i < productsPrices.length; i++) {

        objSpan = $(productsPrices[i].SpanId);

        if (objSpan != null) {
            var _priceNumber = 0;
            objprice = objSpan.select(".hdprice")[0];
            objproduct = objSpan.select(".hdproduct")[0];
            objvariant = objSpan.select(".hdvariant")[0];
            objcatalog = objSpan.select(".hdcatalog")[0];

            var _nPriceProduct = productsPrices[i].Price;
            if (isNaN(productsPrices[i].Price))
                _price = "";
            else
                _price = (productsPrices[i].Price != '0.00') ? parseFloat(productsPrices[i].Price).toFixed(2) : productsPrices[i].Price;

            if (_price != "")
                objprice.innerHTML = "$ " + _price;

            if (productsPrices[i].Price == '0.00') {
                enableAddToCart = '1';
            }

            objproduct.value = productsPrices[i].ProductId;
            objvariant.value = productsPrices[i].ProductVariantId;
            objcatalog.value = productsPrices[i].VirtualCatalog;

        }
    }

    getPricesMealDealSuccessfull();

    setTotalPriceMealDeal();

    panelsAddToCart["MealDeals"] = true;

    enabledButtonsAddToCarts(true);

    if (!blnSelectParks)
        loadingCommercePrice(false);

}

function GetCommercePriceMealDealsJSONFailed(error) {
    alert('Error on the server : ' + error.responseText);

    panelsAddToCart["MealDeals"] = false;

    enabledButtonsAddToCarts(true);

    loadingCommercePrice(false);
}

/****************************************************************************************************************/

function CityWalkDinnerAndCharacterBreakfastStruct(Type) {
    var hdnInputData = getDataOfHiddenByType(Type);
    var structData = GetStructCityWalkDinnerAndCharacterBreakfast(Type, hdnInputData);
    return structData;

}

function getDataOfHiddenByType(Type) {
    var result = '';
    var hdnPriceParameters = $("hdnPriceParameters").value;
    hdnPriceParameters = hdnPriceParameters.replaceAll("'", "");
    var ArrayData = hdnPriceParameters.split('$');
    for (var i = 0; i < ArrayData.length; i++) {
        var data = ArrayData[i].split('|');
        if (data.length > 0 && data[data.length - 1] == Type) {
            result = ArrayData[i];
            break;
        }
    }

    return result;
}

function GetStructCityWalkDinnerAndCharacterBreakfast(Type, hdnInputData) {
    var formattedResult;
    var PartnerParksProduct = new Object();

    PartnerParksProduct = pushDataCityWalkDinnerAndCharacterBreakfast(hdnInputData);

    if (PartnerParksProduct.items.length == 0) {
        formattedResult = '';
        return;
    }

    formattedResult = '[';

    for (var i = 0; i < PartnerParksProduct.items.length; i++) {
        var PartnerParksProductItem = PartnerParksProduct.items[i];
        formattedResult += '{' + MealDealsProductTemplate.evaluate(PartnerParksProductItem) + '},';
    }

    formattedResult = formattedResult.substring(0, formattedResult.length - 1);
    formattedResult += ']';

    return formattedResult;
}

function pushDataCityWalkDinnerAndCharacterBreakfast(hdnInputData) {
    var dataInput;
    var PartnerParksProduct;
    var CatalogName;

    CatalogName = GetDiscount(false);

    dataInput = hdnInputData.split('|');
    PartnerParksProduct = new Object();
    PartnerParksProduct.items = [];

    for (var i = 0; i < dataInput.length; i++) {
        var dataInputItem = dataInput[i].split(',');
        if (dataInputItem.length > 1)
            PartnerParksProduct.items.push({ Park: dataInputItem[0], Age: dataInputItem[2], SpanId: dataInputItem[4], Price: 'null', ProductId: 'null', ProductVariantId: 'null', VirtualCatalog: CatalogName });
    }

    return PartnerParksProduct;
}
/****************************************************************************************************************/

function PartnerParksProductsStruct(flexType, hdnInputData) {
    var txtcode = "|SelectPartnerPark"; //+ _type;
    if (hdnInputData == '') {
        return '';
    }

    hdnInputData = hdnInputData.substr(0, hdnInputData.length - txtcode.length + 2);

    var structPartnerParks = GetStructForPartnerParksPrice(flexType, hdnInputData);
    return structPartnerParks;

}

function GetStructForPartnerParksPrice(flexType, hdnInputData) {
    var formattedResult;
    var PartnerParksProduct = new Object();

    PartnerParksProduct = pushDataPartnerParks(flexType, hdnInputData);

    if (PartnerParksProduct.items.length == 0) {
        formattedResult = '';
        return;
    }

    formattedResult = '[';

    for (var i = 0; i < PartnerParksProduct.items.length; i++) {
        var PartnerParksProductItem = PartnerParksProduct.items[i];
        formattedResult += '{' + PriceFlexTicketProductTemplate.evaluate(PartnerParksProductItem) + '},';
    }

    formattedResult = formattedResult.substring(0, formattedResult.length - 1);
    formattedResult += ']';

    return formattedResult;
}

function pushDataPartnerParks(flexType, hdnInputData) {
    var dataInput;
    var PartnerParksProduct;
    var CatalogName;

    if ((_glbCatalogNameSC == "") || (_glbCatalogNameSC == undefined))
        CatalogName = GetDiscount(false);
    else
        CatalogName = _glbCatalogNameSC;

    hdnInputData = hdnInputData.replaceAll("'", "");
    dataInput = hdnInputData.split('|');
    PartnerParksProduct = new Object();
    PartnerParksProduct.items = [];

    for (var i = 0; i < dataInput.length; i++) {
        var dataInputItem = dataInput[i].split(',');
        if (dataInputItem.length > 1) {
            PartnerParksProduct.items.push({ FlexType: dataInputItem[0], Age: dataInputItem[1], SpanId: dataInputItem[2], Price: 'null', ProductID: 'null', ProductVariantID: 'null', VirtualCatalog: CatalogName });
        }

    }

    return PartnerParksProduct;
}

function getObjPanelPassport(_codePanel) {
    var contPanel;
    var objContentGral = $("content_menu_panel").select(".ticket_panel");

    if (objContentGral.length == 0)
        return null;

    for (contPanel = 0; contPanel < objContentGral.length; contPanel++) {
        var objPanelGral = objContentGral[contPanel];
        var objPanelDetail = objPanelGral.select(".ticket_panel_detail");
        var codePanel = getCodePanel(objPanelGral);

        if (codePanel == _codePanel) {
            return objPanelDetail;
        }
    }
    return null;

}



/****************************************************************************************************************/
