var g_add_to_cart_notice_data = {};
var g_entryFieldValue01 = "";
var g_entryFieldValue02 = "";


function scaleSize(maxW, maxH, currW, currH){

	var ratio = currH / currW;

	if (currW >= maxW && ratio <= 1)
	{
		currW = maxW;
		currH = currW * ratio;
	} else if (currH >= maxH)
	{
		currH = maxH;
		currW = currH / ratio;
	}

	return [currW, currH];
}

function getAddToCartNoticeImageWidthHeight()
{
	
	// LOAD IMAGE IN MEMORY FIRST
	var img = new Image();
    img.src = g_add_to_cart_notice_data["itemThumbnail"];

    var onload = function() {
    	
    	// Note: $(this).width() will not
    	// work for in memory images.
    	
    	g_add_to_cart_notice_data["width"] = img.width;
    	g_add_to_cart_notice_data["height"] = img.height;
    	
    	
    	displayAddToCartNotice();
    	
    };	
    
	// IE 7 workaround
    // JQUERY LOAD METHOD DOESNT WORK HERE, MUST DO USING STANDARD JAVASCRIPT
    if ($.browser.version.substr(0, 1) == 7) {
        function testImg() {
            if (img.complete != null && img.complete == true) {
                onload();
                return;
            }
            setTimeout(testImg, 1000);
        }

        setTimeout(testImg, 1000);
    } else {
        img.onload = onload
    }
}

function displayAddToCartNotice()
{
	var cw = g_add_to_cart_notice_data["width"];
	var ch = g_add_to_cart_notice_data["height"];

	var newSize = scaleSize(50,50,cw,ch);
	var newWidth = newSize[0];
	var newHeight = newSize[1];
	
	
	var itemThumbnail = g_add_to_cart_notice_data["itemThumbnail"];
	var itemName = g_add_to_cart_notice_data["itemName"];

	$.noticeAdd({
		text: '<span class="add_to_cart_notice"><img align="left" style="padding-right: 6px;width:'+newWidth+'px;height:'+newHeight+'px;"  src="'+itemThumbnail+'">'+itemName+' added to cart!</span>',
		stay: false,
		stayTime: 3000
	});
}

function updateCartItemsCount()
{
	
	var inputData = {};
	
	inputData["cart_name"] = "";
	
	$.ajax({
	    type: "POST",
	    url: "ajax_get_cart_size",
	    data: inputData,
	    dataType: 'json',
	    success: function(data)
	    {
	    	$.each(data, function(key, val) {
	    		 if (key=="CART_SIZE")
				 {
	    			var cart_text = val + " items";
	 		    	$('#cart_items_count').text(cart_text);
				 }
	    	 });
	    }
	});
}

function showRequiredFieldsDialog()
{
	var divMessage = "<div>" + "Please fill out the required fields." + "</div>";
	
	var dialog_buttons = {};
	
	dialog_buttons["OK"] = function(){
        $(this).dialog("close");
	}
	
	
	$(divMessage).dialog({
	    title : "Required Fields",
	    autoOpen : true,
	    bgiframe : true,
	    modal : false,
	    width : 300,
	    resizable : false,
	    buttons : dialog_buttons
	});
}

function updateCartLabel( numberOfItems )
{
	var cart_text = numberOfItems + " items";
 	$('#cart_items_count').text(cart_text);
}

$(document).ready(function() {
	
	$(".js_itemDetailPage_addToCartLink").click(function (e) {
		e.preventDefault();
		
		
		var itemId = $($(this).find(".js_itemDetailPage_addToCartLinkId")[0]).text();
		var itemName = $($(this).find(".js_itemDetailPage_addToCartLinkName")[0]).text();
		var itemThumbnail = $($(this).find(".js_itemDetailPage_addToCartLinkThumbnail")[0]).text();
		var itemCustomField01Value= $($(this).find(".js_itemDetailPage_addToCartLinkCField01Value")[0]).text();
		var itemJsFunction= $($(this).find(".js_itemDetailPage_addToCartLinkJsFunction")[0]).text();
		
		
		
		
		var itemEntryFieldValue01 = $($("#form_item_"+itemId).find(".js_customEntryField01")[0]).val();
		var itemEntryFieldValue02 = $($("#form_item_"+itemId).find(".js_customEntryField02")[0]).val();
		
		
		var item01length = $("#form_item_"+itemId).find(".js_customEntryField01").length;
		var item02length = $("#form_item_"+itemId).find(".js_customEntryField01").length;
		
		
		g_entryFieldValue01 = itemEntryFieldValue01;
 		g_entryFieldValue02 = itemEntryFieldValue02;
 		
		
		if (item01length > 0)
		{
			if (itemEntryFieldValue01.length==0)
			{
				showRequiredFieldsDialog();
				return (false);
			}
		}
	
		if (item02length > 0)
		{
			if (itemEntryFieldValue02.length==0)
			{
				showRequiredFieldsDialog();
				return (false);
			}
		}
		
		if (item01length > 0)
		{
			
			if ($("#form_item_"+itemId).find(".js_customEntryField01").is(':disabled') == false)
			{
				// CLEAR OUT THE FIELD!
				$($("#form_item_"+itemId).find(".js_customEntryField01")[0]).val("");
			}
		}
		if (item02length > 0)
		{
			if ($("#form_item_"+itemId).find(".js_customEntryField01").is(':disabled') == false)
			{
				// CLEAR OUT THE FIELD!
				$($("#form_item_"+itemId).find(".js_customEntryField02")[0]).val("");
			}
		}
		
		var inputData = {};
		inputData["id"] = itemId;
		inputData["name"] = itemName;
		inputData["thumbnail"] = itemThumbnail;
		inputData["entryFieldValue01"] = itemEntryFieldValue01;
		inputData["entryFieldValue02"] = itemEntryFieldValue02;
		inputData["customField01Value"] = itemCustomField01Value;
		
		
		
		$.ajax({
		    type: "POST",
		    url: "ajax_add_to_cart",
		    data: inputData,
		    dataType: 'json',
		    success: function(data)
		    {
		    	 $.each(data, function(key, val) {
		    		 if (key=="CART_SIZE")
					 {
		 		    	updateCartLabel(val);
					 }
		    	 });
		    	
		    	 
		    	 
		    	g_add_to_cart_notice_data = {};
		 		g_add_to_cart_notice_data["itemThumbnail"] = itemThumbnail;
		 		g_add_to_cart_notice_data["itemName"] = itemName;
		 		
		 		getAddToCartNoticeImageWidthHeight();
		 		
		 		
		 		eval(itemJsFunction);
		    }
		});
		
		
		
		
		

		
	}).mouseover(function(e) {
		$(this).css('cursor', 'pointer');
	}).mouseout(function(e){
		$(this).css('cursor', '');
	});

});


