﻿$(function() {
    GetShippingEstimate();
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(GetShippingEstimate);

});

function GetShippingEstimate() {

    var promoString = '[';
    for(var itr = 0; itr <  prCD.length; itr++) {
        promoString += "'" + prCD[itr] + "'";
        if(itr != prCD.length - 1)
            promoString += ',';
    }
    promoString += ']';

    var dataToServer = '{"cartID":"' + ctID + '","storeID":"' + stID + '","customerID":"' + cuID + '","applicablePromos":' + promoString + ',"vendorDeliveryOptionID":"-1","shippingType":""}';

    Calculating(true, 0);

    $.ajax({
        type: "POST",
        url: "/WebServices/PricingService.asmx/GetShippingEstimate",
        data: dataToServer,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            UpdateTotals(msg.d);
        }
    });
    

}

function UpdateTotals(result) {

    var totalAmount = 0;
    var subTotal = parseFloat($("#subTotal").text().toString().replace('£', '').replace('$', '').replace(',', ''));
    var taxTotal = parseFloat($("#taxTotal").text().toString().replace('£', '').replace('$', '').replace(',', ''));
    
    if (subTotal != null && !isNaN(subTotal)) {
        totalAmount += subTotal;
    }
    if (taxTotal != null && !isNaN(taxTotal)) {
        totalAmount += taxTotal;
    }

    totalAmount += result.Estimate;
    
    $("#shippingTotal").removeClass("calculating");
    $("#cartTotal").removeClass("calculating");
    
    $("#shippingTotal").text(ToMoney(result.Estimate));
    $("#cartTotal").text(ToMoney(totalAmount));
    
    UpdatePromoDiscountedFullyView(result);
}

function UpdatePromoDiscountedFullyView(result)
{
    if (result.IsPromoDiscountedFully)
    {
        $("#promoTotal").text('Free Standard Shipping').css('color', '#17A605');      
        $("#shippingTotalTitle").css('color','#F00');
        $("#shippingTotal").css('color','#F00');
    }   
}

function ToMoney(amount) {
    return curChr + amount.toFixed(2);
}

function Calculating(begin, itr) {

    if (begin == true || $("#shippingTotal").hasClass("calculating")) {
        if ($("#shippingTotal").hasClass("calculating") == false) {
            $("#shippingTotal").addClass("calculating");
            $("#cartTotal").addClass("calculating");
        }

        var newText = 'Calculating';
        if (itr % 4 == 0) {
            newText += '&nbsp;&nbsp;&nbsp;'
        }
        if (itr % 4 == 1) {
            newText += '.&nbsp;&nbsp;'
        }
        if (itr % 4 == 2) {
            newText += '..&nbsp;'
        }
        if (itr % 4 == 3) {
            newText += '...'
        }

        $("#shippingTotal").html(newText);
        $("#cartTotal").html(newText);

        setTimeout(function() { Calculating(false, ++itr) }, 300);
    }
}

function AddPromo() {
    var newPromo = $("[id$='_tbPromoCode']").val();
    var found = false;

    if (!prCD) // if not defined for some reason
        return;

    for (var i = 0; i < prCD.length; i++) {
        var item = prCD[i];
        if (item == newPromo)
            found = true;
    }

    if (!found)
        prCD.push(newPromo);
}