﻿function premium_initSlider(premiumId, sliderWidget, onChangeEvent, setPriceStepNum, itemId)
{
    var quantityElement = document.getElementById("premium-quantity-" + itemId);
    var quantity = quantityElement.value;

    var priceSteps = premiumPriceSteps["premium" + premiumId];

    var labels = [];
    var labels2 = [];
    for (var i = 0; i < priceSteps.length; i++) {
        labels[i] = priceSteps[i].points * quantity;
        labels2[i] = '|';
    }

    var containerNode = document.getElementById("premium-slider-container-" + itemId);

    if(sliderWidget != null) {
        sliderWidget.destroyRecursive();
    }

    var sliderNode = document.createElement('div');
    containerNode.appendChild(sliderNode);

    var rulesNode = document.createElement('div');
    sliderNode.appendChild(rulesNode);


    var sliderRules = new dijit.form.HorizontalRule({
        count: priceSteps.length
    }, rulesNode);
    
    var rulesNodeLabels1 = document.createElement('div');
    sliderNode.appendChild(rulesNodeLabels1);

    var rulesNodeLabels2 = document.createElement('div');
    sliderNode.appendChild(rulesNodeLabels2);

    var sliderLabels1 = new dijit.form.HorizontalRuleLabels({
        count: labels.length,
        "class": "slider-labels1",
        /*style: "font-size:10px;height:15px;font-size:100%;color:#fff;",*/
        labels: labels,
        container: "topDecoration"
    }, rulesNodeLabels1);

    var sliderLabels2 = new dijit.form.HorizontalRuleLabels({
        count: labels2.length,
        "class": "slider-labels2",
        /*style: "font-size:10px;height:12px;font-size:100%;color:#fff;",*/
        labels: labels2,
        container: "topDecoration"
    }, rulesNodeLabels2);
    
    var slider = new dijit.form.HorizontalSlider({
        value: setPriceStepNum,
        minimum: 1,
        maximum: priceSteps.length,
        discreteValues: priceSteps.length,
        intermediateChanges: true,
        showButtons: false,
        id: "premium-slider-" + itemId,
        onChange: onChangeEvent,
        style: "height: 20px;"
    }, sliderNode);


    slider.startup();
    sliderRules.startup();
    sliderLabels1.startup();
    sliderLabels2.startup();
}

function premium_setNewPrice(premiumId, setPriceStepNum, updateBasketItemId, frm, itemId)
{
    var quantityElement = document.getElementById("premium-quantity-" + itemId);
    var quantity = quantityElement.value;

    if (updateBasketItemId != null && quantity == 0) {
        location.href = "Default.aspx?a=deletefrombasket&premiumitemid=" + updateBasketItemId;
        return;
    }

    var priceSteps = premiumPriceSteps["premium" + premiumId];

    var newPrice = Math.round(quantity * priceSteps[setPriceStepNum - 1].price).toFixed(2);
    
    /*var newPriceFloor = Math.floor(newPrice);
    var newPriceCents = (newPrice - newPriceFloor) * 10;
    var newPriceCentsFloor = Math.floor(newPriceCents);
    
    if (newPriceCents > newPriceCentsFloor && newPriceCents <= newPriceCentsFloor + 0.5)
    {
        newPriceCents = (newPriceCentsFloor + 0.5) * 10;
        newPrice = ((newPriceFloor * 100) + newPriceCents) / 100;
    }
    else if (newPriceCents > newPriceCentsFloor + 0.5 && newPriceCents <= newPriceCentsFloor + 1.0)
    {
        newPriceCents = (newPriceCentsFloor + 1.0) * 10;
        newPrice = (((newPriceFloor * 100) + newPriceCents) / 100).toFixed(2);
    }*/

    var newPoints = Math.round(quantity * priceSteps[setPriceStepNum - 1].points);

    var priceElement = document.getElementById("premium-price-" + itemId);
    var pointsElement = document.getElementById("premium-points-" + itemId);
    priceElement.innerHTML = "CHF " + newPrice;
    pointsElement.innerHTML = newPoints + " " + pointsText;

    //var frm = document.getElementById("premium-form-" + premiumId);
    var oldPoints = frm["points-" + premiumId].value;
    frm["points-" + premiumId].value = newPoints;
    var oldPrice = frm["price_chf-" + premiumId].value;
    frm["price_chf-" + premiumId].value = newPrice;

    var slider = dijit.byId("premium-slider-" + itemId);
    if (slider != null) {
        slider.setValue(setPriceStepNum);
    }

    if (updateBasketItemId != null)
    {
        /* Make Ajax request updating basket */
        var sUrl = "ajax.aspx?a=basket_updatepremiumitem&premiumitemid=" + updateBasketItemId + "&quantity=" + quantity +
            "&price=" + newPrice + "&points=" + newPoints;
        sResponse = ajax_call(sUrl, null, false);
      
        var responseXML = util_parseXML(sResponse);
        var ok = false;

        if (responseXML != null) {
            var okElements = responseXML.getElementsByTagName("ok");
            if (okElements != null && okElements.length > 0) {
                ok = true;
                var okElement = okElements[0];
                var newQuantity = util_getNamedItem(okElement.attributes, "quantity");
                if (newQuantity != quantity) {

                    if (newQuantity == 0) {
                        location.href = "Default.aspx?a=deletefrombasket&premiumitemid=" + updateBasketItemId;
                        return;
                    }
                    quantity = newQuantity;
                    
                    newPrice = Math.round(quantity * priceSteps[setPriceStepNum - 1].price).toFixed(2);
                    frm["points-" + premiumId].value = newPoints;
                    newPoints = Math.round(quantity * priceSteps[setPriceStepNum - 1].points);
                    frm["price_chf-" + premiumId].value = newPrice;
                    
                    priceElement.innerHTML = "CHF " + newPrice;
                    pointsElement.innerHTML = newPoints + " " + pointsText;

                    quantityElement.value = quantity;
                }
            }
        }
        
        /* Update total basket totals */
        var totalEl = document.getElementById("basket-total-price-value");
        var totalValue = parseFloat(totalEl.innerHTML);
        totalEl.innerHTML = new Number((totalValue - parseFloat(oldPrice)) + parseFloat(newPrice)).toFixed(2);

        totalEl = document.getElementById("basket-total-points-value");
        totalValue = parseInt(totalEl.innerHTML);
        totalEl.innerHTML = new Number((totalValue - oldPoints) + newPoints);

        /* Update menu points account */
        var valueEl = document.getElementById("menu-pointsaccount-content-available-value");
        var oldValue = parseInt(valueEl.innerHTML);
        var newValue = new Number(oldValue + (oldPoints - newPoints));
        valueEl.innerHTML = newValue;

        var messageEl = document.getElementById("basket-message");
        var nextButtonEl = document.getElementById("basket-next-button");
        //var nextButtonSpacerEl = document.getElementById("basket-next-button-spacer");
        
        if (newValue < 0)
        {
            valueEl.className = "text-minus";
            messageEl.style.display = "";
            nextButtonEl.style.display = "none";
            //nextButtonSpacerEl.style.display = "none";

            var stepNumEl = document.getElementById("basket-step-number-enabled-2");
            stepNumEl.style.display = "none";
            var stepTitleEl = document.getElementById("basket-step-title-enabled-2");
            stepTitleEl.style.display = "none";
            var stepNumEl = document.getElementById("basket-step-number-disabled-2");
            stepNumEl.style.display = "";
            var stepTitleEl = document.getElementById("basket-step-title-disabled-2");
            stepTitleEl.style.display = "";
        }
        else
        {
            valueEl.className = "text";
            messageEl.style.display = "none";
            nextButtonEl.style.display = "";
            //nextButtonSpacerEl.style.display = "";

            var stepNumEl = document.getElementById("basket-step-number-enabled-2");
            stepNumEl.style.display = "";
            var stepTitleEl = document.getElementById("basket-step-title-enabled-2");
            stepTitleEl.style.display = "";
            var stepNumEl = document.getElementById("basket-step-number-disabled-2");
            stepNumEl.style.display = "none";
            var stepTitleEl = document.getElementById("basket-step-title-disabled-2");
            stepTitleEl.style.display = "none";
        }
    }
}

function premium_setActiveTab(tabId, contentId)
{
    var contentElement = document.getElementById(contentId);
    contentElement.style.visibility = "visible";
}