function html_entity_decode(str) {
    try {
		var  tarea=document.createElement('textarea');
		tarea.innerHTML = str; return tarea.value;
		tarea.parentNode.removeChild(tarea);
	}
	catch(e) {
		document.getElementById("htmlconverter").innerHTML = '<textarea id="innerConverter">' + str + '</textarea>';
		var content = document.getElementById("innerConverter").value;
		document.getElementById("htmlconverter").innerHTML = "";
		return content;
	}
}


function trimString (str, len) {
	
	if (str.length >= len) {
		str = html_entity_decode(str);
		str = str.substr(0, len);
		str = $.trim(str);
		return str+'...';
	}
	return str;
}

function fixHeight () {
	
	var left = $('#left');
	var items = $('#items');
			
	if ( left.height() > items.height() ) 
		items.css({height : (left.height() - 50) + 'px'});		
}

function renderItems (response, where, trim) {
	$('#hid').attr('value', '');
	var name = "";
	var i = 0;
	var sum = 0;
	for (var item in response) {
		i += 1;	
		sum += parseFloat(response[item]['price']);
		if (trim) 
			name = trimString(response[item]['name'], 19);
		else {
			name = response[item]['name'];
			if (!$('#hid').attr('value')) {
				$('#hid').attr('value', response[item]['id'] + ';');
			}
			else
				$('#hid').attr('value', $('#hid').attr('value') + response[item]['id'] + ';' );
		}
		$(where).append('<li class="c_item"><span class="ci_name"><a class="light" title="'+response[item]['name']+'" href="../images/goods/'+response[item]['section']+'/'+response[item]['id']+'.jpg">'+name+'</a></span><span class="ci_price">LS '+parseFloat(response[item]['price']).toFixed(2)+'</span><span class="ci_action"><a class="del" href="#" rel="'+response[item]['id']+'" ><img src="img_d/cart/del.png"/></a></span></li>');
	}
	if (i > 0) {
		$(where).append('<li id="total" class="c_item"><span class="ci_name">Total:</span><span class="ci_price">LS '+sum.toFixed(2)+'</span><span class="ci_action"><img src="img_d/cart/add.png"/></span></li>');
		if (where == '#cart #cart_items' ) {
			$('#cart').show();
			$('#cart').animate({marginLeft: "0px"}, 200);
			fixHeight(); 

		}
	}	
	else
		if (where == '#cart #cart_items' )
		{
			$("#cart").animate({marginLeft: "-300px"}, 200, function () {$('#cart').hide();} );
		}
		else
			window.location = 'index.php';		
	
}

function updateCart () {
	
	var successCB = function (response) {
		$('.c_item').remove();
		if (!response.no_items) {
			if ( $('.c_header').length == 0 )
				renderItems(response, '#cart #cart_items', true);
			else	
				renderItems(response, '#content ul', false);
		}	 		
	}		
	var completeCB = function () {
		$('.light').lightBox();
		$('.del').bind('click', function(e) {
			fixHeight(); 	
			var request = {
				reason: 'del',
				id: this.rel
			}
			$.ajax({
				data : request,
				complete : updateCart
			});	 
			return false;
		});				
	}
		
	var request = {
		reason: 'update'
	}
	
	$.ajax({
		data : request,
		success : successCB,
		complete : completeCB		
	});
}

$(document).ready(function() {
	$('.item_header span').each(function (){
		this.title = this.innerHTML;
		this.innerHTML = trimString(this.innerHTML, 40);
	});
	
	$.ajaxSetup({
		url: 'index.php/main/ajax',
		type: 'POST',
		dataType: 'json'
	});
	
	updateCart();
	
	$('.order a').bind('click', function(e) {
		var request = {
			reason: 'add',
			id:  this.rel
		}
		$.ajax({
			data : request,
			complete : updateCart
		});		
		return false; 
	});
	

	
	
	$('.menuTopItem a').bind('mouseover', function(e) {
		$('#'+this.id+' img').toggle();
	});

	$('.menuTopItem a').bind('mouseout', function(e) {
		$('#'+this.id+' img').toggle();
	});	
});




