﻿function setupCart(cartString) {

    var cart = $('#shoppingcart');

    cart.html(cartString);

    cart.draggable({
        cancel: '#cart_wrapper',
        scroll: true,
        opacity: 0.65,
        stop: function(event, ui) {
            var position = cart.position();
            createCookie('cartposition', position.top + '|' + position.left, 10);
        }
    });

    var cartposition = readCookie('cartposition');
    if (cartposition != null) {
        var position = cartposition.split('|');
        cart.css('top', position[0] + 'px');
        cart.css('left', position[1] + 'px');
    }
    var cartdisplay = readCookie('cartdisplay');
    if (cartdisplay != null) {
        cart.css('display', cartdisplay);
    }

    $('#cart_wrapper').droppable({
        activeClass: 'active',
        hoverClass: 'hover',
//        tolerance: 'touch',
        accept: '.dragmetodrop',
        drop: function(event, ui) {
            var dragged = $(ui.draggable).children('.optionswrapper').children('.optionsddl');
            addToCart(dragged.val()); 
        } 
    });

    $('#carttotaltop').html($('#lblTotal').html());
}

function loadCart() {
    $('#cart_wrapper').css('display', 'none');
    $('#cart_loading').css('display', 'block');
    
    $.ajax({
        type: "GET",
        url: "ajax/cart.aspx",
        //        data: "action=load",
        cache: false,
        success: function(msg) {
            setupCart(msg);
        },
        complete: function(){
            $('#cart_wrapper').css('display', 'block');
            $('#cart_loading').css('display', 'none');
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) { }
    });
}

function addToCart(itemid) {
    $('#cart_wrapper').css('display', 'none');
    $('#cart_loading').css('display', 'block');
    
    $.ajax({
        type: "POST",
        url: "ajax/cart.aspx",
        data: "action=additem&itemid=" + itemid,
        cache: false,
        success: function(msg) {
            setupCart(msg);
        },
        complete: function() {
            $('#cart_wrapper').css('display', 'block');
            $('#cart_loading').css('display', 'none');
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) { }
    });
}

function addToCartButtonClicked(btn) {
    addToCart($(btn).siblings('.optionsddl').val());
}

function removeFromCart(cartid) {
    $('#cart_wrapper').css('display', 'none');
    $('#cart_loading').css('display', 'block');
    
    $.ajax({
        type: "POST",
        url: "ajax/cart.aspx",
        data: "action=removeitem&cartid=" + cartid,
        cache: false,
        success: function(msg) {
            setupCart(msg);
        },
        complete: function() {
            $('#cart_wrapper').css('display', 'block');
            $('#cart_loading').css('display', 'none');
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) { }
    });
}

function updateCart(updateString) {
    $('#cart_wrapper').css('display', 'none');
    $('#cart_loading').css('display', 'block');
    
    $.ajax({
        type: "POST",
        url: "ajax/cart.aspx",
        data: "action=update&updatestring=" + updateString,
        cache: false,
        success: function(msg) {
            setupCart(msg);
        },
        complete: function() {
            $('#cart_wrapper').css('display', 'block');
            $('#cart_loading').css('display', 'none');
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) { }
    });
}

function toggleCart() {
    $('#shoppingcart').toggle('drop', {}, 1000, function() {
        createCookie('cartdisplay', $('#shoppingcart').css('display'), 10);
    });
    
}

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}
