﻿///////////////////////////////////////
// REQUIRES: jquery-1.4.1.js
//           cartBase.js
//           cookieHelper.js
//           hash.js
///////////////////////////////////////
var _csSep = "|";
var _cstrCookieAdvId = "AdvId";
var _cstrCookieAdvName = "AdvName";
var _cstrCookieAdvAlsoId = "AdvAlsoId";
var _cstrCookieAdvAlsoName = "AdvAlsoName";

var _hshCartSelections = new Hash();
var _hshCartSelectionsAlso = new Hash();    // For "customer also chose" items

var $cart = jQuery.noConflict();

function getCartItemCount() {
    return _hshCartSelections.size();
}
function getAlsoCartItemCount() {
    return _hshCartSelectionsAlso.size();
}
function appendToCartData(strAdvertiserId, strAdvertiserName) {
    _hshCartSelections.set(strAdvertiserId, strAdvertiserName);
}
function appendToCartAlsoData(strAdvertiserId, strAdvertiserName) {
    _hshCartSelectionsAlso.set(strAdvertiserId, strAdvertiserName);
}
function removeCartData(strAdvertiserId) {
    _hshCartSelections.remove(String(strAdvertiserId));
}
function removeCartAlsoData(strAdvertiserId) {
    _hshCartSelectionsAlso.remove(String(strAdvertiserId));
}

function updateCartCookies() {

    var ids = [];
    var names = [];

    for (var key in _hshCartSelections.items) {
        ids.push(key);
        names.push(escape(_hshCartSelections.items[key]));
    }
    setCookieId(_cstrCookieAdvId, ids.join(_csSep));
    setCookieId(_cstrCookieAdvName, names.join(_csSep));
}
function updateCartAlsoCookies() {

    var ids = [];
    var names = [];

    for (var key in _hshCartSelectionsAlso.items) {
        ids.push(key);
        names.push(escape(_hshCartSelectionsAlso.items[key]));
    }
    setCookieId(_cstrCookieAdvAlsoId, ids.join(_csSep));
    setCookieId(_cstrCookieAdvAlsoName, names.join(_csSep));
}
function clearCartCookies() {
    _hshCartSelections = new Hash();
    _hshCartSelectionsAlso = new Hash();
    updateCartCookies();
    updateCartAlsoCookies();
}

function clearCartAlsoCookies() {
    _hshCartSelectionsAlso = new Hash();
    updateCartAlsoCookies();
}

function getAdvIdCookie() {
    return getCookieById(_cstrCookieAdvId);
}
function getAdvNameCookie() {
    return getCookieById(_cstrCookieAdvName);
}
function getAlsoAdvIdCookie() {
    return getCookieById(_cstrCookieAdvAlsoId);
}
function getAlsoAdvNameCookie() {
    return getCookieById(_cstrCookieAdvAlsoName);
}

function cartSizeValid(intMaxCartItems) {

    if (_hshCartSelections.size() >= intMaxCartItems) {
        alert("Sorry, you may only have " + intMaxCartItems + " franchises in your Wish List.");
        return false;
    }
    return true;
}
function alsoCartSize() {
    return _hshCartSelectionsAlso.size();
}
function getImageSrc(objImg) {
    return $cart(objImg).first().attr('src');
}
function setImageSrc(objImg, strNewSrc) {
    return $cart(objImg).first().attr('src', strNewSrc);
}
function toggleAllRequestImages(strId, blnState) {

    if (strId.length > 0) {
        $cart("img.selectionBox_" + strId).each(function (i, objImage) {
            toggleSelectorImage(objImage, blnState);
        });
    }

}
function toggleSelectorImage(objImage, bEnableItem) {

    if (bEnableItem) {

        $cart(objImage).css('cursor', 'pointer');

        if (getImageSrc(objImage).indexOf("sm_") == -1)
            setImageSrc(objImage, "/images/Add_to_Request_List_btn.gif");
        else
            setImageSrc(objImage, "/images/add_wishlist_sm_green.gif");

    } else {

        $cart(objImage).css('cursor', 'default');

        if (getImageSrc(objImage).indexOf("sm_") == -1)
            setImageSrc(objImage, "/images/Add_to_Request_List_btn_inactive.gif");
        else
            setImageSrc(objImage, "/images/add_wishlist_sm_inactive.gif");
    }
}
function toggleAllRequestCheckboxes(strId, blnState) {

    if (strId.length > 0) {
        $cart("span.selectionBox_" + strId + " input:checkbox").each(function (i, objCB) {
            toggleSelectorCheckbox(objCB, !blnState);
        });
    }
}
function toggleSelectorCheckbox(objCB, bEnableItem) {
    $cart(objCB).attr('checked', bEnableItem);
}
function getCheckBoxState(strId) {
    return $cart("span.selectionBox_" + strId + " input:checkbox").is(':checked');
}
