// JavaScript Document
$(document).ready(function() {
    $.ajaxSetup ({
        // Disable caching of AJAX responses */
        cache: false
    });

    $(".ProductList .ProductImage, .ProductPageImage").append($('<span>Drag</span>').addClass("handle"));
    
    $('.ProductList .ProductImage, .ProductPageImage').hover(function() {
        $(this).addClass('hover');
    }, function() {
        $(this).removeClass('hover');
    }); 
    
    $(".ProductList .ProductImage, .ProductPageImage").draggable({
        helper:'clone',
        handle: 'span',
        opacity: 0.5,
        revert: true,
        appendTo: 'body',
        containment: 'document'
    });  
	
	$(".closebtn").click(function(){
		CloseWineBoxDiv();	
	});
	
	$("#babvideo").click(function(){
		$("#BuildABoxMovie").toggle();	
	});
	
	$("#bablink").click(function(){
		$(".WineBox").toggle();	
	});
	
	
	MakeSideCartDroppable();
	CloseWineBoxDiv();
});

function CloseWineBoxDiv()
{
	$(".WineBox").hide();
}

function CloseMovieDiv(){
	$("#BuildABoxMovie").hide();
}
function MakeSideCartDroppable()
{
	
    $("#WineBoxImg").droppable({
        activeClass: 'DraggingStateHighlight',
        hoverClass: 'HoverStateHighlight',
        tolerance: 'pointer',
		greedy: true,
		drop: cartDroppableFunction,
		accept: ".ProductBoxable_Yes"
    });
    $("#SideCartContents").droppable({
        activeClass: 'DraggingStateHighlight',
        hoverClass: 'HoverStateHighlight',
        tolerance: 'pointer',
		drop: cartDroppableFunction,
		activate: cartDropActivateFunction,
		deactivate: cartDropDeactivateFunction
    });
}

var cartDroppableFunction = function(event, ui) {
    //Added here to ensure display is hidden until cart updates
    if (ui.draggable.is(".ProductBoxable_No")) {
	   $("#WineBoxImgContainer").addClass('disabled2');
    }
	$("#SideCartContents").addClass('DropStateHighlight');
	ui.helper.remove();
	var re = new RegExp(" ProductImageId_([0-9]+)");
	var ProductId = re.exec(ui.draggable.get(0).className);
	if (ProductId != null && ProductId.length > 1) {
		ProductId = ProductId[1];
	}
	var add_to_cart_url = "/cart.php?action=add";
	
    var add_to_cart_data = "product_id="+ProductId+"&vajx=1";
	if ($(this).get(0).id == 'WineBoxImg' && ui.draggable.is(".ProductBoxable_Yes")) {
		add_to_cart_data += '&boxit=1';
	}
	
    //force a refresh:
	var d = new Date();
	add_to_cart_url += '&timestamp=' + d.getTime();
	
	//session_id
	/*
	var sst = $.cookie('SHOP_SESSION_TOKEN');
	if (sst) {
	   add_to_cart_url += '&sst=' + sst;
    }
    */
	
	$.ajax({
		type: "POST",
		url: add_to_cart_url,
		data: add_to_cart_data,
		complete: function(){
			$("#SideCartContents").removeClass('DropStateHighlight');
            if (ui.draggable.is(".ProductBoxable_No")) {
        	   $("#WineBoxImgContainer").removeClass('disabled2');
            }
		},
		success: function(cart){
			if (cart) {
				$('#SideCartContents').replaceWith(cart);
				MakeSideCartDroppable();
			}
		},
		error: function(){
			alert("Unable to add that product by drag and drop.");
		}
	});
}

var cartDropActivateFunction = function(event, ui) {
    $(".WineBox").show();
	if (ui.draggable.is(".ProductBoxable_No")) {
	   $("#WineBoxImgContainer").addClass('disabled1');
	   
    }
}

var cartDropDeactivateFunction = function(event, ui) {
    if (ui.draggable.is(".ProductBoxable_No")) {
	   $("#WineBoxImgContainer").removeClass('disabled1');
    }
}

