﻿function AJAX_UpdateCart(actionURL,refreshCartURL, postData, divID) {
    var itemData = "TargetDivId=" + divID;
    if (postData != null) {
        itemData = itemData + "&" + postData;
    }
    itemData = itemData + "&NextURL=" + refreshCartURL;
    $.getJSON(actionURL, itemData, AJAX_RefreshCart);
}

function AJAX_RefreshCart(event) {
    var itemData = "TargetDivId=" + event.TargetDivID;
    $.getJSON(event.NextURL, itemData, AJAX_CartLoaded);
}

function AJAX_AddLoaded(event) {
    var addContainer;
    if (event.TargetDivID.indexOf('.') != -1) {
        
        addContainer = $(event.TargetDivID);
    }
    else {
        addContainer = $('#' + event.TargetDivID);
    }
    addContainer.html(event.Html);
}

function AJAX_LoadAdd(divID, actionURL) {
    var itemData = "TargetDivId=" + divID;
    $.getJSON(actionURL, itemData, AJAX_AddLoaded);
}

function AJAX_LoadContent(divID, actionURL, objectData) {
    var itemData = "TargetDivId=" + divID;
    if (objectData != null) {
        itemData = itemData + "&" + objectData;
    }
    $.getJSON(actionURL, itemData, AJAX_AddLoaded);
}

function AJAX_SEND_EMAIL(actionURL, resultClientID) {
    $.getJSON(actionURL, null, null);
    $(resultClientID).html('Email Sent');
}

function AJAX_LoadCart(divID, actionURL, objectData) {
    var itemData = "TargetDivId=" + divID;
    if (objectData != null) {
        itemData = itemData + "&" + objectData;
    }
    $.getJSON(actionURL, itemData, AJAX_CartLoaded);
}

function AJAX_CartLoaded(event) {
    var addContainer;
    if (event.TargetDivID.indexOf('.') != -1) {

        addContainer = $(event.TargetDivID);
    }
    else {
        addContainer = $('#' + event.TargetDivID);
    }
    addContainer.html(event.Html);
    if (event.Data.ProductCount == 0) {
        addContainer.trigger("EmptyCart");
    }
}

$.fn.PopupDiv = function(linkItem) {
    var el = $(this);
    var linkObj = $(linkItem);
    var offset = linkObj.offset();
    if (offset != null) {
        el.css("left", offset.left);
        el.css("top", offset.top + 15);
        el.css("position", "absolute");
    }
    linkObj.unbind('mouseenter.Descr mouseleave.Descr');
    linkObj.bind('mouseenter.Descr', { descrObj: el },
         function(event) { $(event.data.descrObj).show(); }
         );
    linkObj.bind('mouseleave.Descr', { descrObj: el },
         function(event) { $(event.data.descrObj).hide(); }
         );
}

$.fn.outerHtml = function(replacement) {
    if (replacement) {
        return this.each(function() { $(this).replaceWith(replacement); });
    }
    var tmp_node = $("<div></div>").append($(this).clone());
    var markup = tmp_node.html();
    tmp_node.remove();
    return markup;
}

$.fn.centerInClient = function(options) {
    var opt = { forceAbsolute: false,
        container: window,    // selector of element to center in
        completeHandler: null
    };
    $.extend(opt, options);
    return this.each(function(i) {
        var el = $(this);
        var jWin = $(opt.container);
        var isWin = opt.container == window;
        if (opt.forceAbsolute) {
            if (isWin)
                el.remove().appendTo("body");
            else
                el.remove().appendTo(jWin.get(0));
        }
        el.css("position", "absolute");
        var heightFudge = isWin ? 2.0 : 1.8;
        var x = (isWin ? jWin.width() : jWin.outerWidth()) / 2 - el.outerWidth() / 2;
        var y = (isWin ? jWin.height() : jWin.outerHeight()) / heightFudge - el.outerHeight() / 2;
        el.css("left", x + jWin.scrollLeft());
        el.css("top", y + jWin.scrollTop());
        if (opt.completeHandler)
            opt.completeHandler(this);
    });
}


