﻿var _IsShoppingCartHidden = true;

function _FixShoppingCartVisibility() {

    var arr = document.getElementsByTagName("*");

    var regex = new RegExp('(.+\w)?ShoppingCart_Hideable(\w.+)?');

    for (var i = 0; i < arr.length; i++) {

        var e = arr[i];

        if (e.className == undefined) {
            continue;
        }

        if (e.className == null) {
            continue;
        }

        if (e.className == '') {
            continue;
        }

        if (regex.test(e.className)) {
            e.style.display = _IsShoppingCartHidden ? 'none' : '';
        }
    }
}

function HideShoppingCart() {

    _IsShoppingCartHidden = true;

    _FixShoppingCartVisibility();
}

function ShowShoppingCart() {

    _IsShoppingCartHidden = false;

    _FixShoppingCartVisibility();
}

function ToggleShoppingCart() {

    _IsShoppingCartHidden = !_IsShoppingCartHidden;

    _FixShoppingCartVisibility();
}

//////////////////////////////////////////////////

var _ShoppingCartDivID = 'ShoppingCart';

function AddToCart(OfferID) {

    var Quantity = 1

    new Ajax.Updater(_ShoppingCartDivID, '/Ajax/ShoppingCart/Add/' + OfferID + '/' + Quantity + '/', { onComplete: function(transport) { _FixShoppingCartVisibility(); } });
}

function RemoveFromCart(OfferID) {
    new Ajax.Updater(_ShoppingCartDivID, '/Ajax/ShoppingCart/Remove/' + OfferID + '/', { onComplete: function(transport) { _FixShoppingCartVisibility(); } });
}

function UpdateCart() {

    var OfferIDs = '';
    var Quantities = '';

    for (var i = 0; i < arguments.length; i += 2) {

        var OfferID = arguments[i];
        var InputID = arguments[i + 1];

        var Input = document.getElementById(InputID);

        if (Input == null) {
            continue;
        }

        var Quantity = Input.value;

        if (OfferIDs != '') OfferIDs += ',';
        if (Quantities != '') Quantities += ',';

        OfferIDs += OfferID;
        Quantities += Quantity;
    }

    if (OfferIDs == '' || Quantities == '') {
        new Ajax.Updater(_ShoppingCartDivID, '/Ajax/ShoppingCart/', { onComplete: function(transport) { _FixShoppingCartVisibility(); } });
    }
    else {
        new Ajax.Updater(_ShoppingCartDivID, '/Ajax/ShoppingCart/Update/' + OfferIDs + '/' + Quantities + '/', { onComplete: function(transport) { _FixShoppingCartVisibility(); } });
    }
}

document.write('<div id="' + _ShoppingCartDivID + '">Loading Shopping Cart...</div>');

UpdateCart();
