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();
		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-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-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();
			if($('#page-header-branding-nav_left').children('a').children('img').length !== 0 ){
				if($('#is_children_page').length === 0){
					$('#page-header-branding-nav_left').remove();
				}
				$('#page-header-branding-nav_left').children('a').attr({'href':'javascript:history.go(-1)'});
			}
			else{
				if($('#is_children_page').length !== 0){
					$('#page-header-branding-nav_left').remove();
					$('#is_children_page').attr({'id':'page-header-branding-nav_left'}).show();
				}
				else{
					$('#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();
			if($('#page-header-branding-nav_left').children('a').children('img') !== 0 ){
				$('#page-header-branding-nav_left').children('a').attr({'href':'javascript:backButon(1,1)'});
			}
			else{
				$('#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();
			if($('#page-header-branding-nav_left').children('a').children('img') !== 0 ){
				$('#page-header-branding-nav_left').children('a').attr({'href':'javascript:history.go(-1)'});
			}
			else{
				$('#page-header-branding-nav_left').remove();
			}

			break;
		}
	}
	else
	{
		switch(click_from)
		{
		case 1:
			if($('#page-header-branding-nav_left').children('a').children('img').length !== 0 ){
				if($('#page-header-branding-nav_left').children('a').length !== 0){
					$('#page-header-branding').append($('<div></div>').attr({'id':'is_children_page', 'style':'display: none;'}).html($('#page-header-branding-nav_left').html()));
				}
				$('#page-header-branding-nav_left').children('a').attr({'href':'javascript:backButon(1,1)'});
			}
			else{
				if($('#page-header-branding-nav_left').children('a').length !== 0){
					$('#page-header-branding').append($('<div></div>').attr({'id':'is_children_page', 'style':'display: none;'}).html($('#page-header-branding-nav_left').children('a')));
				}
				$('#page-header-branding-nav_left').remove();
				$('#page-header-branding').prepend('<div id="page-header-branding-nav_left"><a href="javascript:backButon(1,1)">Back</a></div>');
				if ($('#page-header-branding-nav_left').css('background-color') == 'transparent'){
					$('#page-header-branding-nav_left').children('a').html('<img src="images/btn-back.png">');
				}
			}
			break;
		case 2:
			
			if($('#page-header-branding-nav_left').children('a').children('img') !== 0 ){
				$('#page-header-branding-nav_left').children('a').attr({'href':'javascript:backButon(1,2)'});
			}
			else{
				$('#page-header-branding-nav_left').siblings('#page-header-branding-nav_left').remove();
				$('#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').children('a').children('img').length !== 0 ){
				$('#page-header-branding-nav_left').children('a').attr({'href':'javascript:backButon(1,3)'});
			}
			else{
				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>');
					if ($('#page-header-branding-nav_left').css('background-color') == 'transparent'){
						$('#page-header-branding-nav_left').children('a').html('<img src="images/btn-back.png">');
					}
				}
				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;
		}
	}
}

