﻿
var EcommBasket = new function () {
    this.SiteLabel = new Object();
    this.EcommBasketInfo = new Object();

    this.UpdateItemCount = function () {
        DealWithItemCount();
    }

    function DealWithItemCount() {
        document.getElementById("spanItemCount").innerHTML = document.getElementById("hdnTotalQuantity").value;
        if (document.getElementById("spanItemCount").innerHTML == "0") {
            $(".mainWorkArea .basketContainer .basketBar .checkout a").hide();
            $(".mainWorkArea .basketContainer .basketBar .checkout .titleHelp").show();
            $(".mainWorkArea .basketContainer .basketContentPanel .basketSummary ul li a").hide();
            $(".mainWorkArea .basketContainer .basketContentPanel .basketSummary ul li .titleHelp").show();
        } else {
            $(".mainWorkArea .basketContainer .basketBar .checkout a").show();
            $(".mainWorkArea .basketContainer .basketBar .checkout .titleHelp").hide();
            $(".mainWorkArea .basketContainer .basketContentPanel .basketSummary ul li a").show();
            $(".mainWorkArea .basketContainer .basketContentPanel .basketSummary ul li .titleHelp").hide();
        }
    }

    //webmethod for adding a product to basket
    this.UpdateBasket = function (logonID, sessionID, ecommProductID, quantity, price, revAppID, revData, siteID, specialOfferID,
                discountCode, specialOfferRuleID, qualifyingQty, percentDiscount, discountAmount, fixedPrice) {
        // Get rid of any spaces first
        if (isNaN(quantity))
            quantity = quantity.replace(" ", "");

        if (isNaN(quantity) || quantity == '') {
            alert("Please enter a numeric value greater than zero");
            return false;
        }

        PageMethods.UpdateBasket(logonID, sessionID, ecommProductID, quantity, price, revAppID, revData, siteID, specialOfferID,
                discountCode, specialOfferRuleID, qualifyingQty, percentDiscount, discountAmount, fixedPrice, OnCallPerformUpdateBasketComplete, OnCallError, '');
    }

    this.UpdateBasketAndRedirect = function (logonID, sessionID, ecommProductID, quantity, price, revAppID, revData, redirect, siteID, specialOfferID,
                discountCode, specialOfferRuleID, qualifyingQty, percentDiscount, discountAmount, fixedPrice) {
        // Get rid of any spaces first
        if (isNaN(quantity))
            quantity = quantity.replace(" ", "");

        if (isNaN(quantity) || quantity == '') {
            alert("Please enter a numeric value greater than zero");
            return false;
        }

        PageMethods.UpdateBasket(logonID, sessionID, ecommProductID, quantity, price, revAppID, revData, siteID, specialOfferID,
                discountCode, specialOfferRuleID, qualifyingQty, percentDiscount, discountAmount, fixedPrice, OnCallPerformUpdateBasketRedirectComplete, OnCallError, '');

        function OnCallPerformUpdateBasketRedirectComplete(result, txtresult, methodName) {
            window.location.href = redirect;
        }
    }



    function OnCallPerformUpdateBasketComplete(result, txtresult, methodName) {
        document.getElementById("divBasketList").innerHTML = result;
        DealWithItemCount()
    }

    //webmethod for updating a quantity in the basket
    this.UpdateBasketQuantity = function (logonID, sessionID, ecommProductID, quantity, price, revData, countryID, siteID, percentageDiscount) {
        var basketID = "txtQuantity" + GetBasketID(ecommProductID, revData);
        var currentQTY = Number(document.getElementById(basketID).value);

        if (currentQTY == 1 && quantity == -1 || currentQTY == 0) {
            if (currentQTY == 0)
                DeleteProduct(logonID, sessionID, ecommProductID, price, -1, siteID, percentageDiscount, revData)
            return;
        }

        if (isNaN(currentQTY) || currentQTY < 0)
            currentQTY = 1;
        quantity = (quantity == 0) ? Number(currentQTY) : currentQTY + Number(quantity);
        PageMethods.UpdateBasketQuantity(logonID, sessionID, ecommProductID, quantity, price, revData, countryID, siteID, percentageDiscount, OnCallPerformUpdateBasketQuantityComplete, OnCallError, '');
    }

    this.RemoveItem = function (logonID, sessionID, ecommProductID, quantity, price, revData, countryID, siteID, percentageDiscount) {
        var basketID = "txtQuantity" + GetBasketID(ecommProductID, revData);
        var currentQTY = Number(document.getElementById(basketID).value);

        if (currentQTY == 1 && quantity == -1 || currentQTY == 0) {
            if (currentQTY == 1)
                this.DeleteProduct(logonID, sessionID, ecommProductID, quantity, price, revData, countryID, siteID, percentageDiscount)
            return;
        }

        if (isNaN(currentQTY) || currentQTY < 0)
            currentQTY = 1;
        quantity = (quantity == 0) ? Number(currentQTY) : currentQTY + Number(quantity);
        PageMethods.UpdateBasketQuantity(logonID, sessionID, ecommProductID, quantity, price, revData, countryID, siteID, percentageDiscount, OnCallPerformUpdateBasketQuantityComplete, OnCallError, '');
    }

    GetBasketID = function (ecommProductID, revData) {
        var basketID;
        //        if (revData != "")
        //            basketID = ecommProductID + "_" + revData.split(' ').join('');
        //        else
        basketID = ecommProductID;
        return basketID;
    }

    function OnCallPerformUpdateBasketQuantityComplete(result, txtresult, methodName) {
        //var basketID = GetBasketID(result.ProductList[0].EcommProductID, result.ProductList[0].RevData);
        var deliveryCharge;

        if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_orderDeliveryCharge"))
            deliveryCharge = document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_orderDeliveryCharge").innerHTML.substring(1);
        else
            deliveryCharge = 0;

        $("#BasketTableContainerTableBody").html(result.ShoppingBasketTable);
        $("#totalQuantity").html(result.TotalQuantity);
        $("#totalBasketValue").html("&pound;" + formatNumber(Number(result.SubTotal) + parseFloat(deliveryCharge)
            + parseFloat(result.VAT), 2, -1, 0));
        $("#subtotalBasketValue").html("&pound;" + formatNumber(result.SubTotal, 2, -1, 0));

        // Update Total Vat
        if (parseFloat(result.VAT) > 0) {
            if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_totalVAT"))
                document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_totalVAT").innerHTML = "&pound;" + formatNumber(result.VAT, 2, -1, 0);
        }
        else {
            if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_vatRow"))
                document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_vatRow").style.display = "none";
        }
    }

    //webmethod for emptying the basket
    this.EmptyBasket = function (logonID, sessionID, siteID) {
        PageMethods.EmptyBasket(logonID, sessionID, siteID, OnCallPerformEmptyBasketComplete, OnCallError, '');
    }

    function OnCallPerformEmptyBasketComplete(result, txtresult, methodName) {
        document.getElementById("divBasketList").innerHTML = result.ResponseText;
    }


    //webmethod for removing individual products from the basket
    this.DeleteProduct = function (logonID, sessionID, ecommProductID, quantity, price, revData, countryID, siteID, percentageDiscount) {
        PageMethods.RemoveProduct(logonID, sessionID, ecommProductID, quantity, price, revData, countryID, siteID, percentageDiscount, OnCallPerformDeleteProductComplete, OnCallError, '');
    }

    function OnCallPerformDeleteProductComplete(result, txtresult, methodName) {
        var deliveryCharge;

        if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_orderDeliveryCharge"))
            deliveryCharge = document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_orderDeliveryCharge").innerHTML.substring(1);
        else
            deliveryCharge = 0;

        $("#BasketTableContainerTableBody").html(result.ShoppingBasketTable);
        $("#totalQuantity").html(result.TotalQuantity);
        $("#totalBasketValue").html("&pound;" + formatNumber(Number(result.SubTotal) + parseFloat(deliveryCharge)
            + parseFloat(result.VAT), 2, -1, 0));
        $("#subtotalBasketValue").html("&pound;" + formatNumber(result.SubTotal, 2, -1, 0));

        if (result.SubTotal == 0) {
            document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_divTotals").style.display = "none";
            document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_imgBtnCheckout").style.display = "none";
        }
        else {

            // Update Total Vat
            if (parseFloat(result.VAT) > 0) {
                if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_totalVAT"))
                    document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_totalVAT").innerHTML = "&pound;" + formatNumber(result.VAT, 2, -1, 0);
            }
            else {
                if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_vatRow"))
                    document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_vatRow").style.display = "none";
            }
        }
    }

    //webmethod for putting billing address as the delivery address
    this.UseBillAddress = function (checkboxValue) {
        PageMethods.UseBillAddress(checkboxValue, null, OnCallError, '');
    }

    this.UpdateCountyLabel = function (countryID, countyLabelID) {
        if (countyLabelID == null)
            countyLabelID = "ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_lblState";

        if (countryID == 42)
            $('#' + countyLabelID).html(this.SiteLabel.TXT643 + ' <span class="mandatory">*</span>');
        else
            $('#' + countyLabelID).html(this.SiteLabel.TXT673 + ' <span class="mandatory">*</span>');
    }

    //webmethod for updating list of counties / states
    this.UpdateCountyList = function (countryID, countyDropDownID) {
        if (countyDropDownID == null)
            countyDropDownID = "ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlState";

        PageMethods.UpdateCountyList(countryID, countyDropDownID, OnCallPerformUpdateCountyComplete, OnCallError, '');
    }

    function OnCallPerformUpdateCountyComplete(result, txtresult, methodName) {
        var countyDropDownID = result[0];
        var arrOptionIDs = result[1];
        var arrOptionValues = result[2];

        if (document.getElementById(countyDropDownID)) {
            document.getElementById(countyDropDownID).options.length = 0;
            if (arrOptionIDs.length == 0) {
                document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liCounty").style.display = "none";
            }
            else {
                document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liCounty").style.display = "block";
                for (var i = 0; i < arrOptionIDs.length; i++) {
                    document.getElementById(countyDropDownID).options[i] = new Option(arrOptionValues[i], arrOptionIDs[i]);
                }
            }
        }
        return false;
    }


    UpdateDeliveryCharge = function (price) {
        var vat = 0;

        if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_totalVAT"))
            vat = document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_totalVAT").innerHTML.substring(1);

        var newTotal = parseFloat(document.getElementById('subtotalBasketValue').innerHTML.substring(1).replace(',', '')) +
            parseFloat(vat) + parseFloat(price);

        document.getElementById('totalBasketValue').innerHTML = "&pound;" + formatNumber(newTotal, 2, -1, 0);

        if (document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_orderDeliveryCharge'))
            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_orderDeliveryCharge').innerHTML = "&pound;" + formatNumber(price, 2, -1, 0);

        //PageMethods.UpdateDeliveryOption(BasketDeliveryObject.DeliveryID, null, OnCallError, '');
    }

    this.RetrieveAddressDetail = function (checked) {

        PageMethods.RetrieveAddressDetails(checked, OnCallPerformRetrieveAddressDetailComplete, OnCallError, '');
        PageMethods.RetrieveContactDetails(checked, OnCallPerformRetrieveContactDetailComplete, OnCallError, '');
        PageMethods.RetrieveOrgDetails(checked, OnCallPerformRetrieveOrgDetailComplete, OnCallError, '');

        document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtAddress1').disabled = checked;
        document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtAddress2').disabled = checked;
        document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtAddress3').disabled = checked;
        document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtCity').disabled = checked;
        document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtPostcode').disabled = checked;
        document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlCountry').disabled = checked;

        document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtTitle').disabled = checked;
        document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtFirstName').disabled = checked;
        document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtSurname').disabled = checked;
        document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtCompany').disabled = checked;
    }

    function OnCallPerformRetrieveAddressDetailComplete(result, txtresult, methodName) {
        if (result != null) {
            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtAddress1').value = result.Address1;
            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtAddress2').value = result.Address2;
            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtAddress3').value = result.Address3;
            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtCity').value = result.City;

            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtPostcode').value = result.PostCode;

            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlCounty').value = result.StateID;
            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlCountry').value = result.CountryID;
        } else {
            alert('Failed to retrieve address details, your session has expired, please return to the basket summary page.');
        }
    }

    function OnCallPerformRetrieveContactDetailComplete(result, txtresult, methodName) {
        if (result != null) {
            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtTitle').value = result.Title;
            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtFirstName').value = result.FirstName;
            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtSurname').value = result.Surname;
        } else {
            alert('Failed to retrieve contact details, your session has expired, please return to the basket summary page.');
        }
    }

    function OnCallPerformRetrieveOrgDetailComplete(result, txtresult, methodName) {
        if (result != null) {
            document.getElementById('ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_txtCompany').value = result.ClientName;
        } else {
            alert('Failed to retrieve company details, your session has expired, please return to the basket summary page.');
        }
    }

    function OnCallError(error, userContext, methodName) {
        if (error !== null) {
            alert(error.get_message());
        }
    }

    this.UpdateEventBasket = function (logonID, sessionID, ecommProductID, quantity, price, revAppID, revData, internalCode, siteID) {
        PageMethods.UpdateEventBasket(logonID, sessionID, ecommProductID, quantity, price, revAppID, revData, internalCode, siteID, OnCallPerformUpdateEventBasketComplete, OnCallError, '');
    }

    this.DeleteEvent = function (logonID, sessionID, revAppID, quantity, siteID) {
        PageMethods.DeleteEvent(logonID, sessionID, revAppID, quantity, siteID, OnCallPerformUpdateEventBasketComplete, OnCallError, '');
    }

    function OnCallPerformUpdateEventBasketComplete(result, txtresult, methodName) {

        if (result == null || result == "") {
            alert("Your session has expired.  Please reload the page and try again.");
        }
        else {
            document.getElementById("divProductList").innerHTML = result;

            var subtotal = 0;
            var vat = 0;
            if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlNoOfDelegates")) {
                if (document.getElementById("hfSubTotal"))
                    subtotal = parseFloat(document.getElementById("hfSubTotal").value.replace(',', '')) * parseInt(document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlNoOfDelegates").value);
                else
                    subtotal = parseFloat(document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_hfSubtotal").value.replace(',', '')) * parseInt(document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlNoOfDelegates").value);
                vat = parseFloat(document.getElementById("hfVAT").value.replace(',', '')) * parseInt(document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlNoOfDelegates").value);
            } else {
                subtotal = parseFloat(document.getElementById("hfSubTotal").value.replace(',', ''));
                vat = parseFloat(document.getElementById("hfVAT").value.replace(',', ''));
            }

            var totalPrice = parseFloat(vat) + parseFloat(subtotal);
            var currencySymbol = document.getElementById("hfCurrencySymbol").value;

            if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_tdVAT")) {
                document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_tdVAT").innerHTML = currencySymbol + formatNumber(vat, 2, -1, 0)
            }

            document.getElementById("tdSubTotal").innerHTML = currencySymbol + formatNumber(subtotal, 2, -1, 0);
            document.getElementById("tdTotal").innerHTML = currencySymbol + formatNumber(totalPrice, 2, -1, 0);
        }
    }

    this.DeleteDelegate = function (firstName, surname, jobTitle, email, companyName, logonID, sessionID, siteID) {
        PageMethods.DeleteDelegate(firstName, surname, jobTitle, email, companyName, logonID, sessionID, OnCallPerformDeleteDelegateComplete, OnCallError, '');
        PageMethods.UpdateSummaryBasket(logonID, sessionID, siteID, OnCallUpdateSummaryBasketComplete, OnCallError, '');
    }

    function OnCallPerformDeleteDelegateComplete(result, txtresult, methodName) {
        document.getElementById("divDelegateList").innerHTML = result;
        document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_furtherDetailsHeader").className = "";
        document.getElementById("spanDelegateNo").innerHTML = parseInt(document.getElementById("spanDelegateNo").innerHTML) - 1;
    }

    function OnCallUpdateSummaryBasketComplete(result, txtresult, methodName) {
        document.getElementById("basket").innerHTML = result;

        var subtotal = parseFloat(document.getElementById("hfSubTotal").value);
        var VAT = parseFloat(document.getElementById("hfVAT").value);

        document.getElementById("tdSubtotal").innerHTML = "£" + formatNumber(subtotal, 2, -1, 0)

        if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_tdVAT"))
            document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_tdVAT").innerHTML = "£" + formatNumber(VAT, 2, -1, 0)

        document.getElementById("tdTotal").innerHTML = "£" + formatNumber(subtotal + VAT, 2, -1, 0)
    }

    this.UpdateSubtotal = function () {
        if (document.getElementById("hfSubTotal"))
            var subtotal = parseFloat(document.getElementById("hfSubTotal").value) * parseInt(document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlNoOfDelegates").value);
        else
            var subtotal = parseFloat(document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_hfSubtotal").value) * parseInt(document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlNoOfDelegates").value);

        if (document.getElementById("hfVAT"))
            var vat = parseFloat(document.getElementById("hfVAT").value) * parseInt(document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlNoOfDelegates").value);
        else
            var vat = parseFloat(document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_hfVAT").value) * parseInt(document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlNoOfDelegates").value);

        if (document.getElementById("hfCurrencySymbol"))
            var symbol = document.getElementById("hfCurrencySymbol").value;
        else if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_hfCurrencySymbol"))
            var symbol = document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_hfCurrencySymbol").value;
        else
            var symbol = "£";

        if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_tdVAT")) {
            document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_tdVAT").innerHTML = symbol + formatNumber(vat, 2, -1, 0)
        }

        var totalPrice = parseFloat(vat) + parseFloat(subtotal);

        document.getElementById("tdSubTotal").innerHTML = symbol + formatNumber(subtotal, 2, -1, 0);
        document.getElementById("tdTotal").innerHTML = symbol + formatNumber(totalPrice, 2, -1, 0)

    }

    this.GroupBooked = function () {

        if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_chkGroupBook")) {
            if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_chkGroupBook").checked) {
                document.getElementById("divTotalNumber").style.display = "block";
            }
            else {
                document.getElementById("divTotalNumber").style.display = "none";
                document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_ddlNoOfDelegates").value = "1";
                this.UpdateSubtotal();
            }
        }
    }

    this.CheckProduct = function () {

        if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_hfQuantity")
                 && document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_hfQuantity").value == "0") {
            alert('Please select at least one product');
            return false;
        }

        // Check if any authorisation codes have been entered.
        var authorisationCodeIDs = "";
        var authorisationArr = new Array();
        var idArr = new Array();
        var a, authorisationCode;
        var productID, rateType
        var authorisationCodes = "";

        if (document.getElementById("hfAuthorisation"))
            authorisationCodeIDs = document.getElementById("hfAuthorisation").value;

        if (authorisationCodeIDs != "") {
            authorisationArr = authorisationCodeIDs.split("||");

            for (a in authorisationArr) {
                // If no code has been entered, prompt user
                if (document.getElementById("txtOptionsCode:" + authorisationArr[a]).value == "" ||
                        document.getElementById("txtOptionsCode:" + authorisationArr[a]).value == SiteLabel.TXT899) {
                    document.getElementById("lblOptionsCode:" + authorisationArr[a]).innerHTML = SiteLabel.TXT896;
                    return false;
                }
                else {
                    document.getElementById("lblOptionsCode:" + authorisationArr[a]).innerHTML = "&nbsp;";
                }

                if (authorisationCodes != "")
                    authorisationCodes = authorisationCodes + "|";

                authorisationCodes = authorisationCodes + document.getElementById("txtOptionsCode:" + authorisationArr[a]).value;
            }
            // Check if the code entered is correct
            PageMethods.CheckAuthorisationCodes(authorisationArr, authorisationCodes, OnCallPerformCheckProductComplete, OnCallError, '');

            return false;
        }
    }

    function OnCallPerformCheckProductComplete(result, txtresult, methodName) {
        var resultArr = new Array();
        var valid = true;

        if (result != null) {
            for (r in result) {
                resultArr = result[r].split("||");

                if (resultArr[1] == 0) {
                    document.getElementById("lblOptionsCode:" + resultArr[0]).innerHTML = SiteLabel.TXT897;
                    document.getElementById("txtOptionsCode:" + resultArr[0]).className = "optionsCodeError";
                    valid = false;
                }
            }
        }

        if (valid) {
            __doPostBack('ctl00$ctl00$ContentPlaceHolderPageFrame$ContentPlaceHolderMain$lbtnProceed', '')
        }

        return false;
    }

    this.GetMiniBasket = function (logonID, sessionID, siteID) {
        PageMethods.GetMiniBasket(logonID, sessionID, siteID, OnCallPerformUpdateBasketComplete, OnCallError, '')
    }

    this.DeleteMiniBasketProduct = function (logonID, sessionID, ecommProductID, price, quantity, siteID, percentageDiscount, revData) {
        this.EcommBasketInfo.logonID = logonID;
        this.EcommBasketInfo.sessionID = sessionID;
        this.EcommBasketInfo.siteID = siteID;

        PageMethods.DeleteProduct(logonID, sessionID, ecommProductID, quantity, siteID, percentageDiscount, revData, OnCallPerformDeleteMiniBasketProductComplete, OnCallError, this.EcommBasketInfo);
    }

    function OnCallPerformDeleteMiniBasketProductComplete(result, ecommBasketInfo, methodName) {
        // update basket
        EcommBasket.GetMiniBasket(ecommBasketInfo.logonID, ecommBasketInfo.sessionID, ecommBasketInfo.siteID)
    }

    this.CheckDiscountCode = function (logonID, sessionID, siteID, countryID) {

        var discountCode = document.getElementById("txtDiscountCode").value;

        basketInfo = new Object();
        basketInfo.logonID = logonID;
        basketInfo.sessionID = sessionID;
        basketInfo.siteID = siteID;
        basketInfo.countryID = countryID;
        basketInfo.discountCode = discountCode;

        if (discountCode == "") {
            alert(SiteLabel.TXT894);
            document.getElementById("txtDiscountCode").focus();
        }
        else {
            PageMethods.CheckDiscountCode(logonID, sessionID, discountCode, siteID, OnCallCheckDiscountCodeComplete, OnCallError, basketInfo);
        }

    }

    function OnCallCheckDiscountCodeComplete(result, basketInfo, methodName) {
        if (result.SpecialOfferID == 0) {
            // Invalid code
            $("#codeText").addClass("hidden");
            $("#codeTextError").removeClass("hidden");
        }
        else {
            // Valid code
            PageMethods.ApplyDiscountCode(basketInfo.logonID, basketInfo.sessionID, result.SpecialOfferID, result.SpecialOfferRuleID,
                result.QualifyingQty, result.PercentDiscount, result.DiscountAmount, result.FixedPrice, basketInfo.siteID, basketInfo.countryID,
                basketInfo.discountCode, OnCallApplyDiscountCodeComplete, OnCallError, basketInfo);
        }
    }

    function OnCallApplyDiscountCodeComplete(result, basketInfo, methodName) {
        var deliveryCharge = parseFloat($("#ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_hfDelivery").val());
        var currencySymbol = document.getElementById("hfCurrencySymbol").value;
        //alert(SiteLabel.TXT910 + ": " + basketInfo.discountCode);
        $("#codeText").html(SiteLabel.TXT892);
        $("#codeText").removeClass("hidden");
        $("#codeTextError").addClass("hidden");
        $(".discountInput").html(SiteLabel.TXT910 + ": " + basketInfo.discountCode);

        $("#productList").html(result.ShoppingBasketTable);
        $("#tdSubTotal").html(currencySymbol + formatNumber(result.SubTotal, 2, -1, 0));
        $("#tdVAT").html(currencySymbol + formatNumber(result.VAT, 2, -1, 0));
        $("#tdTotal").html(currencySymbol + formatNumber((result.SubTotal + result.VAT + deliveryCharge), 2, -1, 0));
    }


    this.CheckEventDiscountCode = function (logonID, sessionID, siteID, countryID) {

        var discountCode = document.getElementById("txtDiscountCode").value;

        basketInfo = new Object();
        basketInfo.logonID = logonID;
        basketInfo.sessionID = sessionID;
        basketInfo.siteID = siteID;
        basketInfo.countryID = countryID;
        basketInfo.discountCode = discountCode;

        if (discountCode == "") {
            alert(SiteLabel.TXT894);
            document.getElementById("txtDiscountCode").focus();
        }
        else {
            PageMethods.CheckEventDiscountCode(logonID, sessionID, discountCode, siteID, OnCallCheckEventDiscountCodeComplete, OnCallError, basketInfo);
        }

    }

    function OnCallCheckEventDiscountCodeComplete(result, basketInfo, methodName) {
        if (result == 0) {
            // Invalid code
            $("#codeText").addClass("hidden");
            $("#codeTextError").removeClass("hidden");
        }
        else {
            // Valid code
            PageMethods.GetEventSummaryTable(basketInfo.logonID, basketInfo.sessionID, basketInfo.siteID, basketInfo.countryID,
                OnCallGetEventSummaryTableComplete, OnCallError, basketInfo);
        }
    }

    function OnCallGetEventSummaryTableComplete(result, basketInfo, methodName) {
//        var deliveryCharge = parseFloat($("#ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_hfDelivery").val());
//        var currencySymbol = document.getElementById("hfCurrencySymbol").value;

//        $("#codeText").html(SiteLabel.TXT892);
//        $("#codeText").removeClass("hidden");
//        $("#codeTextError").addClass("hidden");
//        $(".discountInput").html(SiteLabel.TXT910 + ": " + basketInfo.discountCode);
//        $("#productList").html(result.TableHTML);
//        $("#tdSubtotal").html(currencySymbol + formatNumber(result.SubTotal, 2, -1, 0));

//        if (result.VAT > 0) {
//            $("#ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_tdVAT").html(currencySymbol + formatNumber(result.VAT, 2, -1, 0));
//        }
//        else {
//            $("#ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_tdVAT").html("&nbsp;");
//            $("#ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_tdVATText").html("&nbsp;");
//        }

//        $("#tdTotal").html(currencySymbol + formatNumber((result.SubTotal + result.VAT), 2, -1, 0));
        var _currentPage = window.location;
        window.location.href = _currentPage;
    }
}

