﻿/// <reference path="../Javascript/jQueryIntellisense.js"/>
/*
* jQuery ShoppingCartDisplay Plugin
* Caudill Web
*/

(function ($) {

    $.fn.shoppingCartDisplay = function (options) {

        var defaults = {}; // set defaults in ShoppingCartDisplay.ascx.vb
        var config = $.extend(defaults, options);
        this.each(function () {

            // ELEMENTS

            var self = this, $self = $(this);
            var $display = $(config.displayElementSelector, self);
            var $dialog = $(".ShoppingCartDialog", self);

            // PRIVATE 

            function updateCartDisplay() {
                //$r.showProgress(config.id);
                $.ajax({
                    url: $r.cleanHref(window.location),
                    type: "POST",
                    async: false,
                    data: {
                        containerId: self.id,
                        action: "display"
                    },
                    success: function (msg) {
                        $r.updateStatus("confirm", "Your shopping cart has been updated.", 5000);
                        if (msg.length > 0) {
                            $display
                                .show()
                                .html(msg)
                                .enableBehavior();
                        }
                        //$r.hideProgress(config.id);
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        $r.updateStatus('warning', errorThrown + ' ' + textStatus)
                        //$r.hideProgress(config.id);
                    }
                });
            }

            function cartItemAdded() {
                $.ajax({
                    url: $r.cleanHref(window.location),
                    type: "POST",
                    async: false,
                    data: {
                        containerId: self.id,
                        action: "dialog"
                    },
                    success: function (msg) {
                        $dialog
                            .html(msg)
                            .dialog("open")
                            .enableBehavior();
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        $r.updateStatus('warning', errorThrown + ' ' + textStatus)
                    }
                });
            }

            // INITIALIZATION

            $self.bind("cartUpdated", updateCartDisplay);
            //$self.bind("cartItemAdded", cartItemAdded);

        }); // each

        return this; // don't break the chain

    }; // $.fn.ShoppingCartDisplay 

})(jQuery);



