﻿var iconHandle = {};
var compareHandle = {};
var cartCount = {};
var compareCount = {};
$dialogMain = 0;

$(document).ready(function() {
    $('#shoppingcart_header').tabs({
        ajaxOptions: { async: false },
        selected: -1, collapsible: true,
        fx: {
            height: 'toggle',
            duration: 'fast'
        }, select: function(event, ui) {
            $('#cart_items').addClass('lombak');
            var url = $.data(ui.tab, 'load.tabs');
            if (url && (ui.index == 1 || ui.index == 3)) {
                location.href = url;
                if (ui.index == 3) blank.location = url;
                return false;
            }
            return true;
        }, show: function(event, ui) {
            $('#cart_items').removeClass('lombak');
        },
        load: function(event, ui) {
            compareHandle();
            iconHandle();
        }
    });

    $('span.btn_cart_cl').live('click', function() {
        $('#shoppingcart_header').tabs('select', -1);
    });

    $('span.pclose_point').live('click', function() {
        $dialogMain.dialog('close');
    });

    $('div.carticon').live('click', function() {
        var $link = $(this);
        $('#cartForm input').each(function() {
            $(this).remove();
        });

        var prodId = $link.parents('div:eq(1)').find('#ProductId').attr('value');

        if ($link.hasClass('item_removefromcart')) {
            var $temp2 = $('<input />').attr('type', 'hidden').attr('name', 'productId').attr('value', prodId);
            $('#cartForm').attr('action', '/Cart/RemoveFromCart');
            $temp2.appendTo('#cartForm');
            $.ajax({
                async: false,
                type: "POST",
                url: $('#cartForm').attr('action'),
                data: $('#cartForm').serialize(),
                error: function(xhr, status, error) { },
                success: function(response) {
                    iconHandle();
                }
            });
            $('#cartForm').attr('action', '/Cart/AddToCart');

            var k = $('#shoppingcart_header').tabs('option', 'selected');

            if (k > -1) {
                $('#shoppingcart_header').tabs('load', k);
            }

        }
        else {
            var productUrl = $link.parents('div:eq(1)').find('#prod_link').attr('href');
            var $temp = $('<input />').attr('type', 'hidden').attr('name', 'cartLine.Product.ProductId').attr('value', prodId);
            var $tempUrl = $('<input />').attr('type', 'hidden').attr('name', 'cartLine.productUrl').attr('value', productUrl);
            $temp.appendTo('#cartForm');
            $tempUrl.appendTo('#cartForm');

            $.ajax({
                async: false,
                type: "POST",
                url: $('#cartForm').attr('action'),
                data: $('#cartForm').serialize(),
                error: function(xhr, status, error) { },
                success: function(response) {
                    iconHandle();
                }
            });

            var k = $('#shoppingcart_header').tabs('option', 'selected');

            if (k > -1) {
                $('#shoppingcart_header').tabs('load', k);
            }

        }
    });

    $('div.cmpricon').live('click', function() {
        var $link = $(this);
        $('#compareForm input').each(function() {
            $(this).remove();
        });
        var prodId = $link.parents('div:eq(1)').find('#ProductId').attr('value');
        if ($link.hasClass('item_removefromcompare')) {
            var $temp2 = $('<input />').attr('type', 'hidden').attr('name', 'productId').attr('value', prodId);
            $('#compareForm').attr('action', '/Cart/RemoveFromCompare');
            $temp2.appendTo('#compareForm');
            $.ajax({
                type: "POST",
                url: $('#compareForm').attr('action'),
                data: $('#compareForm').serialize(),
                error: function(xhr, status, error) { },
                success: function(response) {
                    compareHandle();
                }
            });
            $('#compareForm').attr('action', '/Cart/AddToCompare');
        }
        else {
            var productUrl = $link.parents('div:eq(1)').find('#prod_link').attr('href');
            var $temp = $('<input />').attr('type', 'hidden').attr('name', 'compareLine.Product.ProductId').attr('value', prodId);
            var $tempUrl = $('<input />').attr('type', 'hidden').attr('name', 'compareLine.productUrl').attr('value', productUrl);
            $temp.appendTo('#compareForm');
            $tempUrl.appendTo('#compareForm');

            $.ajax({
                type: "POST",
                url: $('#compareForm').attr('action'),
                data: $('#compareForm').serialize(),
                error: function(xhr, status, error) { },
                success: function(response) {
                    compareHandle();
                }
            });
        }
    });

    $("div.prev_info").live('click', function(event) {
        $link = $(this);
        if ($dialogMain != 0) { $dialogMain.dialog("close"); }
        var prodId = $link.parents('div:eq(1)').find('#ProductId').attr('value');

        var $dialog = $('#dialogContainer').dialog({
            autoOpen: false, autoResize: true, resizable: false
        });

        $.ajax({
            url: "../../Home/QuickView/",
            dataType: "html",
            data: { prodId: prodId, productUrl: $('#urlLong').val() },
            async: false,
            success: function(html) {
                $dialog.html(html).dialog('open');
            }
        });

        $dialog.data("width.dialog", 560);

        var x = 30;
        if (event.clientX + x > $(window).width() - $dialog.dialog('option', 'width')) {
            x = $(window).width() - (event.clientX + $dialog.dialog('option', 'width') + 10);
        }

        $dialog.find('div.stars-on').each(function() {
            var wid = $(this).parents('div:eq(0)').find('#rating').html();
            $(this).width(parseInt(wid));
        });

        $dialogMain = $dialog;
        $dialog.dialog('option', 'position', [event.clientX + x, event.clientY]);
        iconHandle();
        compareHandle();
    });

    iconHandle = function() {
        var cartProdIds = '/Home/getCartProdIds';
        $.ajax({
            async: false,
            type: "GET",
            dataType: "json",
            cache: false,
            url: cartProdIds,
            error: function(xhr, status, error) { },
            success: function(result) {
                var count = 0;
                jQuery.each(result, function(index, item) {
                    count = count + item.quantity;
                });

                cartCount(count);

                $('input.productId').each(function() {
                    var $temp = $(this);
                    var temp = $(this).val();
                    var c = false;
                    jQuery.each(result, function(index, item) {
                        if (temp == item.id) {
                            c = true;
                        }
                    });

                    if (c == true) {
                        $temp.parents('div:eq(0)').find('.carticon').removeClass('item_addtocart').addClass('item_removefromcart');
                        $temp.parents('div:eq(0)').find('img').addClass('in_cart');
                    }
                    else {
                        $temp.parents('div:eq(0)').find('.carticon').removeClass('item_removefromcart').addClass('item_addtocart');
                        $temp.parents('div:eq(0)').find('img').removeClass('in_cart');
                    }
                });
            }
        });
    }

    compareHandle = function() {
        var compareProdIds = '/Home/getCompareProdIds/';
        $.ajax({
            async: false,
            type: "GET",
            dataType: "json",
            cache: false,
            url: compareProdIds,
            error: function(xhr, status, error) { },
            success: function(result) {
                compareCount(result.length);
                $('input.productId').each(function() {
                    var $temp = $(this);
                    var temp = $(this).val();

                    var c = false;
                    jQuery.each(result, function(index, item) {
                        if (temp == item) {
                            c = true;
                        }
                    });

                    if (c == true) {
                        $(this).parents('div:eq(0)').find('.cmpricon').removeClass('item_addtocompare').addClass('item_removefromcompare');
                    }
                    else {
                        $(this).parents('div:eq(0)').find('.cmpricon').removeClass('item_removefromcompare').addClass('item_addtocompare');
                    }
                });
            }
        });
    }

    cartCount = function(number) {
        var $cartSpans = $('#shoppingcart_header li.cart_items span.hd_digit');
        $cartSpans.each(function() {
            $(this).removeClass().addClass('hd_digit');
        });
        if (number <= 9) {
            $($cartSpans.get(0)).css('display', 'none');
            var style = "num_" + number;
            $($cartSpans.get(1)).addClass(style);
        }
        else {
            var firstDigit = number.toString().substring(0, 1);
            var secondDigit = number.toString().substring(1, 2);
            var firstStyle = "num_" + firstDigit;
            var secondStyle = "num_" + secondDigit;
            $($cartSpans.get(0)).css('display', 'inline').addClass(firstStyle);
            $($cartSpans.get(1)).addClass(secondStyle);
        }
    }

    compareCount = function(number) {
        var $compareSpans = $('#shoppingcart_header li.compare_items span.hd_digit');
        $compareSpans.each(function() {
            $(this).removeClass().addClass('hd_digit');
        });
        if (number <= 9) {
            $($compareSpans.get(0)).css('display', 'none');
            var style = "num_" + number;
            $($compareSpans.get(1)).addClass(style);
        }
        else {
            var firstDigit = number.toString().substring(0, 1);
            var secondDigit = number.toString().substring(1, 2);
            var firstStyle = "num_" + firstDigit;
            var secondStyle = "num_" + secondDigit;
            $($compareSpans.get(0)).css('display', 'inline').addClass(firstStyle);
            $($compareSpans.get(1)).addClass(secondStyle);
        }
    }

    $('div.quantify p.q_plus').live('click', function() {
        var $link = $(this);
        $('#cartForm input').each(function() {
            $(this).remove();
        });
        var prodId = $link.parents('div:eq(1)').find('#ProductId').attr('value');
        var $temp2 = $('<input />').attr('type', 'hidden').attr('name', 'productId').attr('value', prodId);
        $('#cartForm').attr('action', '/Cart/IncrementCartItem');
        $temp2.appendTo('#cartForm');
        $.ajax({
            async: false,
            type: "POST",
            url: $('#cartForm').attr('action'),
            data: $('#cartForm').serialize(),
            error: function(xhr, status, error) { },
            success: function(response) {
            }
        });
        $temp2.remove();
        $('#cartForm').attr('action', '/Cart/AddToCart');
        $('#shoppingcart_header').tabs('load', $('#shoppingcart_header').tabs('option', 'selected'));
    });

    $('div.quantify p.q_minus').live('click', function() {
        var $link = $(this);
        $('#cartForm input').each(function() {
            $(this).remove();
        });
        var prodId = $link.parents('div:eq(1)').find('#ProductId').attr('value');
        var $temp2 = $('<input />').attr('type', 'hidden').attr('name', 'productId').attr('value', prodId);
        $('#cartForm').attr('action', '/Cart/DecreaseCartItem');
        $temp2.appendTo('#cartForm');
        $.ajax({
            async: false,
            type: "POST",
            url: $('#cartForm').attr('action'),
            data: $('#cartForm').serialize(),
            error: function(xhr, status, error) { },
            success: function(response) {
            }
        });
        $temp2.remove();
        $('#cartForm').attr('action', '/Cart/AddToCart');
        $('#shoppingcart_header').tabs('load', $('#shoppingcart_header').tabs('option', 'selected'));
    });
});

$(window).load(function() {
    iconHandle();
    compareHandle()
});

