﻿/// <reference path="jquery.min-vsdoc.js" />

var ns = new Object;
ns.atccf = new Array;   //"Add To Cart Complete Functions"
ns.lccf = new Array;    //"Login Complete Functions"

ns.addAddToCartCompleteFunction = function(f) {
    ns.atccf[ns.atccf.length] = f;
};

ns.removeAddToCartCompleteFunction = function(f) {
    var newArr = new Array;
    
    for (var i = 0; i < ns.atccf.length; i++) {
        if (ns.atccf[i] != f) { newArr[newArr.length] = ns.atccf[i] };
    };

    ns.atccf = newArr;

};

ns.prepareAsyncAddToCart = function() {
    if ((typeof (Sys) != 'undefined') && (Sys != null)) { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(ns.completeAsyncAddToCart) };
};

ns.completeAsyncAddToCart = function() {
    if ((typeof (Sys) != 'undefined') && (Sys != null)) { Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(ns.completeAsyncAddToCart) };

    if ((typeof (ns.basketState.lineCount) != 'undefined') && (ns.basketState.lineCount != null)) { $(".CartCountDigitContainer").html(ns.basketState.lineCount) };
    if ((typeof (ns.basketState.sumAmount) != 'undefined') && (ns.basketState.sumAmount != null)) { $(".CartSumValueContainer").html(ns.basketState.sumAmount.localeFormat("C")) };
    if ((typeof (ns.basketState.qrLineCount) != 'undefined') && (ns.basketState.qrLineCount != null)) { $(".qrCartCountDigitContainer").html(ns.basketState.qrLineCount) };

    runFunctions(ns.atccf);
};

ns.basketState = new Object;
ns.basketState.lineCount = 0;
ns.basketState.sumAmount = 0;
ns.basketState.qrLineCount = 0;

ns.addProductVariantToBasket = function(product, color, size, quantity, catalogue, status, callback) {
   ns.prepareAsyncAddToCart();

   var ctl = "&ctl=";
   if (catalogue != null && catalogue != undefined) {
      ctl = "&ctl=" + encodeURIComponent(catalogue);
   }
   var pStatus = "&status=";
   if (status != null && status != undefined) {
      pStatus = "&status=" + encodeURIComponent(status);
   }
   var u = "snipload.aspx?uc=usercontrols%2FCatalogAddToCart.ascx&productcode=" + encodeURIComponent(product) + "&size=" + encodeURIComponent(size) + "&color=" + encodeURIComponent(color) + '&qty=' + quantity + ctl + pStatus;
   $("<div>").load(u, function(responseText) {
      ns.basketState = eval("(" + responseText + ")");
      ns.completeAsyncAddToCart();
      if (callback != null) { callback() };
   });
};

ns.prepareAsyncLogin = function() {
    if ((typeof (Sys) != 'undefined') && (Sys != null)) { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(ns.completeAsyncLogin) };
};

ns.completeAsyncLogin = function() {
    if ((typeof (Sys) != 'undefined') && (Sys != null)) { Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(ns.completeAsyncLogin) };

};

ns.loginState = new Object;
ns.loginState.userName = '';
ns.loginState.authenticated = false;
ns.loginState.contactName = '';
ns.loginState.contactEmail = '';

ns.login = function(userName, passWord, rememberMe, callback) {
    if ((typeof (rememberMe) == 'undefined') || (rememberMe == null)) { rememberMe = false };
    ns.prepareAsyncLogin();

    var u = "snipload.aspx?uc=usercontrols%2Fns-ajax%2Fns-login.ascx&u=" + encodeURIComponent(userName) + "&p=" + encodeURIComponent(passWord) + "&s=" + encodeURIComponent(rememberMe);
    $("<div>").load(u, function(responseText) {
        ns.loginState = eval("(" + responseText + ")");
        if (callback != null) { callback() };
        ns.completeAsyncLogin();
    });

};
