﻿var g_collapse_img = "Images/collapse.png";
var g_expand_img = "Images/expand.png";

$(document).ready(function() {

    //var open_sub = $.cookie('open_subcategories');

    // The main headers -- all their functionality
    $('.h1separator')
        .click(function() {

            var content = $(this).next('.collapse_container');
            var content_hidden = !(content.is(':visible'));

            var arrow = $(this).children('.expandcollapse').children('img');
            var collapsetext = $(this).children('.expandcollapse').children('.expandcollapse_text');

            if (content_hidden) {
                arrow.attr("src", g_collapse_img);
                collapsetext.text("Collapse");
                content.slideDown('fast');
            }
            else {
                arrow.attr("src", g_expand_img);
                collapsetext.text("Expand");
                content.slideUp('fast');
            }
        });

    $('.h1separator .expandcollapse')
        .hover(function() {
            $(this).addClass('expandcollapse_highlight');
        },
        function() {
            $(this).removeClass('expandcollapse_highlight');
        })
        .click(function() {

            var content = $(this).parent().next('.collapse_container');
            var content_hidden = !(content.is(':visible'));

            var arrow = $(this).children('img');
            var collapsetext = $(this).children('.expandcollapse_text');

            if (content_hidden) {
                arrow.attr("src", g_collapse_img);
                collapsetext.text("Collapse");
                content.slideDown('fast');
            }
            else {
                arrow.attr("src", g_expand_img);
                collapsetext.text("Expand");
                content.slideUp('fast');
            }

            return false;
        });

    // Expand first subcategory on the page
    //$('.h1separator:first').next('.collapse_container').show();

    // Expand all the subcategories on the page
    $('.h1separator').next('.collapse_container').show();
    var arrow = $('.h1separator .expandcollapse').children('img');
    arrow.attr("src", g_collapse_img);
    var collapsetext = $('.h1separator .expandcollapse').children('.expandcollapse_text');
    collapsetext.text("Collapse");

    // Pop-up image for product
    $('.product .product_pic img, #cart .CartItem img')
        .hover(function() {

            var src = $(this).attr("src");
            var l = $(this).offset().left;
            var t = $(this).offset().top;

            l += $(this).width();
            t -= $(this).height();

            var hoverimg = '<div class="hoverimg" style="left:' + l + 'px; top:' + t + 'px;">';
            hoverimg += '<img src="' + src + '" style="width:auto;"></div>';

            $(this).parent().append(hoverimg);

            $(this).parent().children('.hoverimg')
                .fadeTo(300, '1.0');

        }, function() {
            $(this).parent().children('.hoverimg').remove();
        });

    $('.back_in_stock').click(function() {

        SoldOutButton = $(this);
        var dice = SoldOutButton.parent().parent().parent().parent().parent().parent();

        var id = dice.attr("id");
        var text = SoldOutButton.text();
        
        var mark_as_sold_out = (text == "Sold Out");
        markItemAsSoldOut(id, mark_as_sold_out);
    });

});                                         // End of document ready

//////////////////////////////////////////////////////////////////
// Mark an item as paid or unpaid
//////////////////////////////////////////////////////////////////
var SoldOutButton = null;
function markItemAsSoldOut(dice_id, mark_as_sold_out) {

    var blocker = "<div class='blocker'></div>";
    $('body').append(blocker);
    $('.blocker').show().fadeTo(0, .3);

    var params = '{';
    params += '"dice_id":"' + dice_id + '"';
    params += ',';
    params += '"mark_as_sold_out":"' + mark_as_sold_out + '"';
    params += '}';

    AJAX('Dice.aspx/MarkAsSoldOut', params, successAJAX_markItemAsSoldOut, errorAJAX_markItemAsSoldOut);

    return false;
}

function successAJAX_markItemAsSoldOut(data, textStatus, XMLHttpRequest) {

    var result = data.d;
    var resultObj = $.parseJSON(result);
    if ((resultObj != null) && (resultObj.Error != null)) {
        var dice_id = SoldOutButton.parent().parent().parent().parent().parent().parent();
        dice_id.prepend(resultObj.Error);
        $('.blocker').remove();
        return;
    }
    
    var text = SoldOutButton.text();
    var mark_as_sold_out = (text == "Sold Out");
    var dice_id = SoldOutButton.parent().parent().parent().parent().parent().parent();
    if (mark_as_sold_out) {
        SoldOutButton.text("In Stock");
        dice_id.prepend('<div class=\"sold_out\">SOLD OUT</div>');

        var add_to_cart = SoldOutButton.parent().parent().parent().children('tr:first').next();
        add_to_cart.remove();        
    }
    else {
        var sold_out_obj = dice_id.children('.sold_out');
        sold_out_obj.remove();

        //dice_id.prepend('<tr><td><div class=\"add_to_cart\"></div></td></tr>');
        SoldOutButton.text("Sold Out");
    }

    $('.blocker').remove();

    SoldOutButton = null;
}

function errorAJAX_markItemAsSoldOut(XMLHttpRequest, textStatus, errorThrown) {

    var s = "<div class='error'>Error: " + errorThrown + "</div>";
    s += "<div class='error'>" + textStatus + "</div>";
    s += "<div class='error'>" + XMLHttpRequest.responseText + "</div>";

    var dice_id = SoldOutButton.parent().parent().parent().parent().parent().parent();
    dice_id.prepend(s);
    
    $('.blocker').remove();

    SoldOutButton = null;
}



