﻿jQuery.noConflict();

var updatePanelId = "uiUpdatePanel";
var addToShoppingCartIsProcessing = false;

function performPostBack(aTargetElement, aArg) {
    __doPostBack(aTargetElement, '');
}

function ExecuteAjaxMethod(methodName, methodArgs) {
    jQuery.ajax({
        type: "POST",
        url: "/WebServices/Ajax.asmx/" + methodName,
        data: "{" + methodArgs + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json"
    });
}

function getUpdatePanelClientId(serverId)
{
    var panelId = serverId;
    var updatePanelElement = jQuery("div[id$='" + serverId + "']");
    if (updatePanelElement != null) 
    {
        if (updatePanelElement[0] != null) 
        {
            panelId = updatePanelElement[0].id;
        }
    }
    return panelId;
}

function AddToShoppingCart(productCode, quantity) {
    if (!addToShoppingCartIsProcessing) {
        addToShoppingCartIsProcessing = true;
        setTimeout(function () {

            addToShoppingCartIsProcessing = false;
        }, 500);
        jQuery('div[class="cartArea"]').addClass('loaderOn');
        jQuery.ajax({
            type: "POST",
            url: "/WebServices/Ajax.asmx/AddToShoppingCart",
            data: "{productCode:'" + productCode + "', quantity:'" + quantity + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                jQuery('div[class="cartArea"]').removeClass('loaderOn');
                performPostBack(getUpdatePanelClientId(updatePanelId), productCode);
            }
        });
    }
}

function DeleteFromShoppingCart(productCode) {
    jQuery('div[class="cartArea"]').addClass('loaderOn');
    jQuery.ajax({
        type: "POST",
        url: "/WebServices/Ajax.asmx/DeleteItem",
        data: "{productCode:'" + productCode + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            jQuery('div[class="cartArea"]').removeClass('loaderOn');
            performPostBack(getUpdatePanelClientId(updatePanelId), productCode);
        }
    });
}

function UpdateShoppingCart(productCode, quantity) {
    jQuery.ajax({
        type: "POST",
        url: "/WebServices/Ajax.asmx/UpdateShoppingCart",
        data: "{productCode:'" + productCode + "', quantity:'" + quantity + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            performPostBack(getUpdatePanelClientId(updatePanelId), productCode);
        }
    });
}

function DeleteLine(productCode) {
    jQuery.ajax({
        type: "POST",
        url: "/WebServices/Ajax.asmx/DeleteLine",
        data: "{productCode:'" + productCode + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            performPostBack(getUpdatePanelClientId(updatePanelId), productCode);
        }
    });
}

function SaveShoppingCartQuantities() {
    var hiddenField = jQuery("input[id$='uiHfProductQuantities']");
    var textBoxes = jQuery("input[id$='uiTxtQuantity']");

    var productData = "";

    if (hiddenField != null && textBoxes != null) {
        for (var i = 0; i < textBoxes.length; i++) {
            productData += textBoxes[i].attributes["productCode"].value + "=" + textBoxes[i].value;
            productData += "&";
        }
    }

    hiddenField[0].value = productData;
}
