﻿var AnnualPassPanel = Class.create(Panel, {
    initialize: function ($super, passportReference, tridionPanelId, panelPosition) {
        $super(passportReference, tridionPanelId);
        this.panelId = 'AnnualPass';
        this.panelPosition = panelPosition;
        this.strParams = [];
        this.classPrefix = 'apt';
    },
    doWork: function () {
        this.adultInput = this.panelHTML.select('[name=inputAdultQuantity]')[0];
        this.childInput = this.panelHTML.select('[name=inputChildQuantity]')[0];

        this.__setupInput(this.adultInput);
        this.__setupInput(this.childInput);

        var anpTable = this.panelHTML.select('.park2Table')[0];

        this.annualPassData = this.__filterAnnualPassData(this.data.ListAnnualPassProduct);

        this.__generateRowsFor2PricesWithCheck('dp1', 'productVariantCatalog', this.annualPassData, anpTable, this.adultInput, this.childInput);

        this.__setupAddToCart();
        this.__loadValues(['text/inputAdultQuantity', 'text/inputChildQuantity', 'radio/productVariantCatalog', 'checkbox/subProduct']);
    },
    _calculateTotalPrices: function () {
        this.__generateTotalPrice2Prices('dp1', this.annualPassData, this.adultInput, this.childInput);
    },
    _formatDataAndSend: function (data) {
        var ppqc = data.productVariantCatalog.split('|');
        if (data['subProduct'] != undefined) {
            ppqc = data['subProduct'].split('|');
        }
        var dataFormatted;
        if (ppqc.size() == 8 && ppqc[6] != '' && ppqc[7] != '') {
            var totalQuantity = parseInt(data.inputAdultQuantity) + parseInt(data.inputChildQuantity);
            dataFormatted = {
                productID: ppqc[0] + "|" + ppqc[1] + "|" + ppqc[6],
                productVariantID: ppqc[2] + "|" + ppqc[3] + "|" + ppqc[7],
                qty: data.inputAdultQuantity + "|" + data.inputChildQuantity + "|" + totalQuantity,
                catalogName: ppqc[4] + "|" + ppqc[5] + "|" + ppqc[5]
            };
        }
        else {
            dataFormatted = {
                productID: ppqc[0] + "|" + ppqc[1],
                productVariantID: ppqc[2] + "|" + ppqc[3],
                qty: data.inputAdultQuantity + "|" + data.inputChildQuantity,
                catalogName: ppqc[4] + "|" + ppqc[5]
            };
        }
        this.passportReference.addToCart(dataFormatted);
    },
    _validateInputData: function (data) {
        var adultQuantity = jsHelper.toInt(data.inputAdultQuantity);
        var childQuantity = jsHelper.toInt(data.inputChildQuantity);
        return (data.productVariantCatalog != undefined && (adultQuantity > 0 || childQuantity > 0));
    }
});
