jQuery.noConflict();
(function($) {
    $.fn.fillContentByAjax = function(productRef, quantityElementId, closePopupFn) {
        
        var settings = {
            selectors: {
                addingToCartMessage: "div.adding-to-cart-message",
                dynamicContentDiv: "div.dynamic-content"
            }
        };

        var es = {},
            popupContainer = this,
            quantity = $("#" + quantityElementId).val(),
	        url = '/is-bin/INTERSHOP.enfinity/WFS/WHWC-WHWC-Site/en_US/-/USD/ViewRequisition-AddThroughAjaxRequest?Quantity='+quantity+'&ProductRefID='+productRef;

        function cartItemsNumberUpdate() {

            var contentSelectors = {
                errorSpan: "span.error",
                hiddenInput: "input[type='hidden'].total_items_count"
            };

            var els = {},
                cartItemsNumberSpan = $("#cartItemsNumber");

            $.each(contentSelectors, function(name, selector) {
                els[name] = popupContainer.find(selector);
            });

            var hiddenInputValue = els.hiddenInput.val();
            if (els.errorSpan.length == 0 && hiddenInputValue != undefined) {
                var cartItemsNumber = parseInt(hiddenInputValue);
                var ending = (cartItemsNumber > 1) ? "s" : "";
                cartItemsNumberSpan.html("&#40;" + cartItemsNumber + " item" + ending + "&#41;");
                if (cartItemsNumberSpan.is(":hidden")) {
                    cartItemsNumberSpan.show();
                }
            }
        }

        $.each(settings.selectors, function(name, selector) {
            es[name] = popupContainer.find(selector);
        });

        es.dynamicContentDiv.html("");
        es.addingToCartMessage.show();

	    $.ajax({
	    	type: "GET",
	    	url: url,
	    	success: function(result){
                es.addingToCartMessage.hide();
		    	es.dynamicContentDiv.html(result);

                var closeButtons = popupContainer.find("a.btn_close");

                if (closeButtons.length > 0) {
                    closeButtons.click(function(){
                        popupContainer.slideUp("slow");
                    });
                }
                cartItemsNumberUpdate();
                if (popupContainer.is(":hidden")) {
                    popupContainer.slideDown("slow");
                }
                closePopupFn();
		   	}
	    });
    };

    $(function() {

        var options = {
            pageLimits: {
                top: 133,
                right: 311,
                bottom: 50,
                left: 50
            },
            alignment: {
                vertical: "top",
                horizontal: "right"
            },
            selectors: {
                mainContainer: "table.include"
            }
        };

        var popupContainer = $("#small_cart_popup").sidePopup(options);

        var timeout_id;

        function closePopupWithDelay() {
            timeout_id = setTimeout(function() {
                popupContainer.slideUp("slow")
            }, 5000)
        }

        $("input[type='button'].add-submit").click(function(){
        	var self = $(this);
        	if (popupContainer.is(":visible")) {
//        		popupContainer.hide();
                clearTimeout(timeout_id);
        	}
            popupContainer.fixedPosition(options);
            popupContainer.fillContentByAjax(self.attr("data-productref"), self.attr("data-quantityelementid"), closePopupWithDelay);
            popupContainer.updateFixed();
        });
    });
})(jQuery);
