var timeOutVal;
var clickedOnBody = true;

$(document).ready(function() {
    
    $("#slidingTopTrigger, #slidingTopContent").click(function() {
        clickedOnBody = false;
    });

    $("html").click(function() {
        if (clickedOnBody) {
            hideCartPanel();
        }
        clickedOnBody = true;
    });

    //    $("html,body").mousemove(function(eventObj) {

    //        var location = $("html,body").elementlocation();
    //        var x = eventObj.pageX - location.x;
    //        var y = eventObj.pageY - location.y;

    //        $("#slidingTopTrigger").text(x);
    //        $("#slidingTopTrigger").text(y);
    //    });    

    $("#slidingTopContent").hide();

    $("#slidingTopTrigger").live("mouseover", function(event) {
        clearTimeout(timeOutVal);
        showCartPanel();
    });

    $("#slidingTopContent").live("mouseover", function(event) {
        clearTimeout(timeOutVal);
        showCartPanel();
    });

    $("#slidingTopTrigger").live("mouseout", function(event) {
        timeOutVal = setTimeout(hideCartPanel, 4000);
    });

    $("#slidingTopContent").live("mouseout", function(event) {
        timeOutVal = setTimeout(hideCartPanel, 4000);
    });
});

function showCartPanel() {
    $("#slidingTopContent").slideDown("slow", function() {
        ;
    });
}

function hideCartPanel() {
    $('#slidingTopContent').slideUp();
}

function closeCartPanel() {
    $('#slidingTopContent').hide();
}

function GetResponseOption(responceText, optionName) {

    if (responceText == null || responceText == "" || optionName == null || optionName == "") {
        return "";
    }

    var fullOptName = "[" + optionName + "]:";
    var options = responceText;

    var optVal = "";

    var start = options.indexOf(fullOptName);
    if (start > -1) {
        var end = options.indexOf('[;]', start);
        if (end > -1) {
            optVal = options.substring(start + fullOptName.length, end);
        }
    }
    return optVal;
}

function AddItemToCart(idProduct) {
    return AddItemToCartQty(idProduct, 1);
}

function AddItemToCartQty(idProduct, quantity) {

    if (idProduct == null || idProduct == "") {
        return;
    }
    
    var qty = parseInt(quantity);
    
    if (isNaN(qty) || qty < 1) {
        qty = 1;
    }

    var hfRegularAddToCart = document.getElementById('hfRegularAddToCart');
    if (hfRegularAddToCart && hfRegularAddToCart.value == "1") {
        window.location = "ps_additem.aspx?idProduct=" + idProduct + "&quantity=" + quantity;
        return;
    }

    $('html, body').animate({ scrollTop: 0 }, 'slow');

    clearTimeout(timeOutVal);
    clickedOnBody = false;
    showCartPanel();
    
    $('#addingAjaxLoader').show();

    $.ajax({
        type: "GET",
        url: "ps_additem.aspx",
        data: "action=ajax&idProduct=" + idProduct + "&quantity=" + quantity,
        cache: false,
        success: function(theResponse) {
            var outOfStockRedirect = GetResponseOption(theResponse, "OutOfStockRedirect");
            if (outOfStockRedirect == "1") {
                window.location = "ps_additemOutofStock.aspx?&idProduct=" + idProduct + "&quantity=" + quantity;
                return;
            }
            FillCartPanel(theResponse);
            setTimeout(AnimateAddedItem, 10);
            $('#addingAjaxLoader').hide();
            $('#cartWrapEmpty').hide();
            $('#cartWrap').show();
            timeOutVal = setTimeout(hideCartPanel, 10000);
        }
    });
}

function AnimateAddedItem() {
    $('#trJustAdded').fadeOut(600).fadeIn(600);
}

function FillCartPanel(responseText) {

    var cartContent = GetResponseOption(responseText, "cartContent");
    var itemsCountText = GetResponseOption(responseText, "itemsCountText");
    var cartSubTotal = GetResponseOption(responseText, "cartSubTotal");
    var cartRowsCount = GetResponseOption(responseText, "cartRowsCount");       
     
    $('#cartItemsWrap').empty();
    $('#cartItemsWrap').append(cartContent);

    $('#cartItemsCount').html(itemsCountText);

    $('#cartSubTotal').html(cartSubTotal);
    
    // for PS
    $('#TotalItemsCountControl').html(itemsCountText);
    $('#TotalPriceControl').html(cartSubTotal);

    if (cartRowsCount > 7) {
        $('#topCheckoutButtons').show();
    }
    $('#spanCheckoutText').hide();   
    $('#aLinkToCheckout').show();   
}

