$(function(){


    ajax_cart();

    $("#ajax_cart_close").click(function() {
        //ajax_cart();
        $("#ajax_cart").slideUp();
        $("#ajax_cart table").remove();
    });

    $("#boxcart.full").click(function() {
        ajax_cart();
        $("#ajax_cart").slideDown();
    });

    $("a.CartButton").removeAttr("href");

    $(".CartButton").unbind('click');
    $(".CartButton").click(function() {
        var val = (typeof($(this).parent().children(":input").val())!="undefined") ? $(this).parent().children(":input").val() : 1;
        addItem($(this).attr("name"),val);
    });
    $("#boxcart a").removeAttr('href');
});

function getScrollXY() {
    var scrOfX = 0, scrOfY = 0;
    if( typeof( window.pageYOffset ) == 'number' ) {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    return [ scrOfX, scrOfY ];
}


function ajax_cart() {
    $("#ajax_cart table").remove();
    var items;
    var total;
    var tax;
    var table = document.createElement("table");

    $.getJSON(AJAX_DIR+'ajax.shoppingcart.php', function(data) {
        items = data.products;
        total = html_entity_decode(data.total);
        tax = html_entity_decode(data.tax);
        $.each(items, function(index, value) {
            $("#ajax_cart .foot").before(showItem(value));
        });

        $("#ajax_cart .foot .price").html(total);
        if(data.restored){
            $("#ajax_cart .restorded").show();
        }

    });

}

function showItem(item) {
    var table = document.createElement("table");
    var row = document.createElement("tr");
    var td_img = document.createElement("td");
    var td_qty = document.createElement("td");
    var td_name = document.createElement("td");
    var td_price = document.createElement("td");
    var td_close = document.createElement("td");
    var id = item.id;
    var img = document.createElement("img");
    img.src = item.prod_images.navthumb[0];
    img.alt = item.name;

    var price = document.createElement("span");

    price.innerHTML = html_entity_decode(item.formatted_total_price);
    var close = document.createElement("img");
    close.src = "templates/b24/img/layout/close_grey.png";
    close.alt = "close";
    $(close).click(function() {
        $(this).parent().fadeOut();
        removeItem(id);
    });
    td_qty.innerHTML = (item.quantity>1)?item.quantity + " x":"";
    td_qty.className = "quantity";
    td_img.appendChild(img);
    if(item.name!=null){
        td_name.innerHTML = "<a href='"+item.products_link+"'>"+((item.name.length>=40)?item.name.substring(0,36)+"&hellip;":item.name)+"</a>";
    }
    
    //td_name.innerHTML = "hello";
    td_name.className = "name";
    td_price.appendChild(price);
    td_price.className = "price";
    td_close.appendChild(close);
    td_close.className = "close";

    row.appendChild(td_qty);
    row.appendChild(td_img);
    row.appendChild(td_name);
    row.appendChild(td_price);
    row.appendChild(td_close);

    table.appendChild(row);

    //	alert(row.innerHTML);

    //	var item = document.createElement("div");
    //	item.appendChild(img);
    //	item.appendChild(quantity);
    //	item.appendChild(name);
    //	item.appendChild(price);
    //	item.appendChild(close);
    return table;
}

function removeItem(itemid) {
    $.getJSON(AJAX_DIR+'ajax.shoppingcart.php?remove=' + itemid, function(data) {
        refreshCart(data);
    });
}
function addItem(itemid,count) {
    $(".CartButton").unbind('click');
    $("#ajax_cart table").remove();
    // $("#product_image_1").effect("transfer",{ to: $("#boxcart") }, 500);
    $.getJSON(AJAX_DIR+'ajax.shoppingcart.php?add=' + itemid+'&qty='+count, function(data) {
        goAction(data);
        		
    });
    $(".CartButton").click(function() {
			var val = (typeof($(this).parent().children(":input").val())!="undefined") ? $(this).parent().children(":input").val() : 1;
			addItem($(this).attr("name"),val);
		});
}
function refreshCart(data) {
    $("#ajax_cart table").remove();
    $("#boxcart .count").text(data.counts);
    $("#boxcart .price").text(html_entity_decode(data.total));
    $("#boxcart").removeClass("full");
    if (data.counts != 0) {
        $("#boxcart").addClass("full");
        $("#boxcart").click(function() {
            $("#ajax_cart").slideDown();
        });
    } else {
        $("#boxcart").unbind('click');
        $("#ajax_cart").slideUp();
    }
    $("#ajax_cart table").remove();
    ajax_cart();
}

function goAction(data){
    if ( getScrollXY()[1]>=100 || $($(".infoImage")).size()=='0' ){
        var TB_overlay = document.createElement("div");
        TB_overlay.id = "TB_overlay";
        $(TB_overlay).addClass("TB_overlayBG");
        $(TB_overlay).click(function(){
            $("#ajax_cart_close").click();
        });
        window.document.body.appendChild(TB_overlay);
        $("#ajax_cart").slideDown();
        $("#ajax_cart").css("position","fixed");
        $("#ajax_cart").css("top","50%");
        $("#ajax_cart").css("right","40%");
        $("#ajax_cart_close").click(function() {
            $("#ajax_cart").slideUp();
            $(TB_overlay).remove();
            $("#ajax_cart").css("position","absolute");
            $("#ajax_cart").css("top","50px");
            $("#ajax_cart").css("right","120px");
            $("#ajax_cart_close").click(function(){
                $("#ajax_cart").slideUp();
            });
        });


        refreshCart(data);


    } else {
        flyImage(data);
    }


}


function flyImage(data) {
    $(".CartButton").unbind('click');
    var src = $($(".infoImage a img")[0]).attr("src");
    var src_top = $("#mainframe").offset().top;
    var src_left = $("#mainframe").offset().left;
    var dest_top = $("#boxcart").offset().top;
    var dest_left = $("#boxcart").offset().left;
    var flyImg = document.createElement("img");
    flyImg.src = src;
    flyImg.id = "flyImage";

    //alert($("#main-photo-slider").position().top);
    if (dest_top<=0){
        alert("weg");
    }

    $("body").after(flyImg);

    $("#flyImage").css("position", "absolute");
    $("#flyImage").css("z-index", "99999");
    $("#flyImage").css("left", src_left);
    $("#flyImage").css("top", src_top);

    $("#flyImage").animate( {
        height : "31px",
        width : "50px",
        opacity : 0.4,
        left : dest_left,
        top : dest_top
    }, 1500 , 'linear',function() {
        $(this).remove();
        refreshCart(data);
        $(".CartButton").click(function() {
            var val = (typeof($(this).parent().children(":input").val())!="undefined") ? $(this).parent().children(":input").val() : 1;
            addItem($(this).attr("name"),val);
        });
    });
}
