var shopping_cart = {
			items: [],
			ww_shipping: "",
			int_buyer : false,
			merchant_id: "",
			merchant_key: "",
            int_shipping_flat_rate:""
		};
$(document).ready(function(){
	shopping_cart.merchant_id = $('#store-info input[name=merchant_id]').val();
	shopping_cart.merchant_key = $('#store-info input[name=merchant_key]').val();
        shopping_cart.int_shipping_flat_rate = $('#store-info input[name=int_shipping_flat_rate]').val();
	$('.category').click( function(){
                        $('.category').hide();
			var categoryId = $(this).attr('categoryId');
                        $('.product[categoryId="'+categoryId+'"]').show();
			var click_from = 1;
			backButon(0, click_from);
	});
	$('.product').click(function(){
		var productId = $(this).attr('productId');
                $('.product').hide();
                $('.product-info[productId="'+productId+'"]').show();
		var click_from = 2;
		backButon(0, click_from);
	});
	var ww_shipping = $('#store-info input[name=world_wide_shipping]').val();
    if (ww_shipping==1)
		{
			$('#shopping-cart').children('#cart-items').after($('<label></label>').attr({'id':'int_buyer_question'}).append($('<input>').attr({'type':'checkbox', 'name':'int_buyer'})).append('Do you live outside the US or UK?'));
			$('input[name="int_buyer"]').change(function(){
				if ($(this+':checked').length !== 0){
					shopping_cart.int_buyer = true;
					updateShoppingCart();
				}
				else{
					shopping_cart.int_buyer = false;
					updateShoppingCart();
				}
			});
		}
	//muestra el shopping cart y oculta todo lo demás
	$('#goToCart').click(function(){
		$('.product-info, .product, .category').hide();
		$('#shopping-cart').show();
		$('#cart-items #page-content-lps-1:nth-child(odd)').addClass('odd');
		var click_from = 3;
		backButon(0, click_from);
	});

	//agrega el ítem seleccionado al carrito de compra
	$('#add-to-cart-btn').die('click').live('click', function(){
		var id = $(this).parents('#product-info').attr('productId');
		var quantity = $(".productform:visible .formsection input[name='quantity']").val();
		var item = findItemById(id);
		if (item != null){
			item.quantity = parseInt(item.quantity) + parseInt(quantity); //actualiza la cantidad en el json del item seleccionado
		}
		else
		{
			var description = $('.product-description:visible p span').html()+'options: ';
			//selecciona las opciones y las agrega a la descripci�n
			$(".productform:visible .option_name").each(function(){
				var name = $(this).html().replace(":","");
				var value = $(this).next().next().val();
				description += name+": "+value+", ";
			});
			item = {
					id: id,
					item_name: $(this).parents('#product-info').children('.header').children('#product-name').children('h1').html(),
					item_description: description,
					unit_price: $(this).parents('#product-info').find('#unit-price').html(),
					currency: $('.productform:visible .formsection').children('input[name="product-unit-price"]').val(),
					quantity: quantity,
					sku: $('.productform:visible .formsection').children('input[name="sku"]').val()
				};
				var position = shopping_cart.items.length;
				shopping_cart.items[position] = item;
		}
		updateShoppingCart();
		//elimina item del carrito
		backButon(1,1);
	});
});

function updateShoppingCart(){
	$.ajax({
		type: "POST",
		data: shopping_cart,
		url: "include/generateCart.php",
		dataType: "HTML",
		success: function(data){
			for (var i in shopping_cart.items)
			{
				var item_name = shopping_cart.items[i].item_name;
				var quantity = shopping_cart.items[i].quantity;
				var id = shopping_cart.items[i].id;
			}
			printShoppingCartItems();
			$('#shopping-cart #checkout-btn').replaceWith('<div id="checkout-btn">'+data+'</div>'); //Agrega el bot�n generado con el SC cifrado shopping cart
			if($('#cart-items').children().length === 0)
				$('#shopping-cart #checkout-btn').html('');
			var items_in_cart = QuantityOfItemsInCart();
			$('#items-in-cart').replaceWith('<div id="items-in-cart">You have <b>'+items_in_cart+' items</b> in your cart.</div>');
			$('#cart-items #page-content-lps-1:nth-child(odd)').addClass('odd');
		}
	});
}
//encuentra un item por id. si lo encuentra sera utilizado para actualizar el json
function findItemById(id){
	for(var i in shopping_cart.items){
		var item = shopping_cart.items[i];
		if(item.id == id)
			return item;
	}
	return null;
}

function findItemIndexById(id){
	for(var i in shopping_cart.items){
		var item = shopping_cart.items[i];
		if(item.id == id)
			return i;
	}
	return null;
}

function QuantityOfItemsInCart(){
	var total_quantity = 0;
	for (var i in shopping_cart.items){
		var quantity = shopping_cart.items[i].quantity;
		total_quantity = total_quantity + parseInt(quantity);
	}
	return total_quantity;
}
var rmvcount = 0;
function printShoppingCartItems()
{
	rmvcount ++;
		if ($('#cart-items').children().length == 0 )
		{
			$('#cart-items').html('<div id="page-content-lps-1" class="lps-element-1"><a id="rmvitem'+rmvcount+'" class="remove-item" productId="'+shopping_cart.items[0].id+'" href="javascript:"></a><div id="page-content-lps-1-thumbnail" class="thumbnail"></div><div id="page-content-lps-1-main_text" class="maintext"><h4>'+shopping_cart.items[0].item_name+'</h4></div><div id="page-content-lps-1-sub_text" class="subtext"><h5>Quantity: '+shopping_cart.items[0].quantity+'</h5></div></div>');
		}
		else
		{
			$('#cart-items').html("");
			for (var i in shopping_cart.items)
			{
				var item_name = shopping_cart.items[i].item_name;
				var quantity = shopping_cart.items[i].quantity;
				var id = shopping_cart.items[i].id;
				$('#cart-items').append('<div id="page-content-lps-1" class="lps-element-1"><div id="rmvitem'+rmvcount+'" class="remove-item" productId="'+id+'"></div><div id="page-content-lps-1-thumbnail" class="thumbnail"></div><div id="page-content-lps-1-main_text" class="maintext"><h4>'+item_name+'</h4></div><div id="page-content-lps-1-sub_text" class="subtext"><h5>Quantity: '+quantity+'</h5></div></div>');
			}
		}
			$('.remove-item').click(function(){
				var id = $(this).attr('productId');
				var item = findItemById(id);
				shopping_cart.items.splice(findItemIndexById(item.id), 1);
				$(this).parent().replaceWith('<div id="item"></item>');
				updateShoppingCart();
			});
		return;
}
function backButon(clicked, click_from)
{
	if (clicked == 1)
	{
		switch(click_from)
		{
			case 1:
				$('.product, #shopping-cart, .product-info').hide();
            	$('.category').show();
				$('#page-header-branding-nav_left').remove();
			break;

			case 2:
				var product_id = $('.product-info:visible').attr('productid');
				$('.product-info:visible').hide();
				var categories = $('.product');
				var category_id = 0;
				$(categories).each(function(){
                                    var category_product_id = $(this).attr('productid');
                                    if(category_product_id == product_id)
                                    	category_id =  $(this).attr('categoryid');
				});
                $('.product[categoryid='+category_id+']').show();
				$('#page-header-branding-nav_left').replaceWith('<div id="page-header-branding-nav_left"><a href="javascript:backButon(1,1)">Back</a></div>');
			break;

			case 3:
                $('#shopping-cart').hide();
                $('.category').show();
				$('#page-header-branding-nav_left').remove();
			break;
		}
	}
	else
	{
		switch(click_from)
		{
			case 1:
			$('#page-header-branding').prepend('<div id="page-header-branding-nav_left"><a href="javascript:backButon(1,1)">Back</a></div>');
			break;
			case 2:
			$('#page-header-branding-nav_left').replaceWith('<div id="page-header-branding-nav_left"><a href="javascript:backButon(1,2)">Back</a></div>');
			break;
			case 3:
			if ($('#page-header-branding-nav_left').length === 0){
				$('#page-header-branding').prepend('<div id="page-header-branding-nav_left"><a href="javascript:backButon(1,1)">Back</a></div>');
				}
			else{
				$('#page-header-branding-nav_left').html('');
				$('#page-header-branding-nav_left').replaceWith('<div id="page-header-branding-nav_left"><a href="javascript:backButon(1,3)">Back</a></div>');
			}
			break;
		}
	}
}
