$j(document).ready(function(){
	update_clicks();
	check_minimum_order();
	
	 $j('a#cart-tax-help').click(function(){
		return false; 
	 });
	
	$j("a#cart-tax-help").easyTooltip({
		tooltipId: "cart-tax-help-bubble",
		content: 'Ridicare produse de la posta: 15 RON<br /><br />'+
				 'Livrare la domiciliu prin curier: 15 RON - Bucuresti; 20 RON - provincie<br /><br />'+
				 '*in cazul comenzilor a caror valoare depaseste 300 RON taxele de livrare sunt 0'
	});
});
 var active_request = 0;
 var active_response = 0;
 
 var old_timeout = null;

function update_clicks(element) {
	if (element!=undefined) {
		element_up = '#up_'+element;
		element_down = '#down_'+element;
        element_remove = '#remove_'+element;
	} else {
		element_up = '';
		element_down = '';
        element_remove = '';
	}
	
    $j('a#order_next').click(function(){
        if (!check_minimum_order()) {
            ajax_error('Comanda minima este de '+$j('input#minimum_order').val()+' RON');
            return false;
        } else {
            return true;
        }
    });
    
    /*Update cart page when user changes product quantity*/
    $j('#cart_items input.product_quantity').keyup(function(){
    	
    	var product_id = $j(this).attr('id').replace('p_', '');
		
    	$j('span#q_'+product_id).html(parseInt($j(this).val()));

        if (timewait_ar[product_id] != null ) {
            clearInterval(timewait_ar[product_id]);
        }

        timewait_ar[product_id] = window.setTimeout(function(){
            update_item_quantity(product_id);
        },500);

		return false;
    });
	
	$j('a.up_q'+element_up).click(function(){
		var product_id = $j(this).attr('id').replace('up_', '');
		$j('span#q_'+product_id).html(parseInt($j('span#q_'+product_id).html()) + 1);

        if (timewait_ar[product_id] != null ) {
            clearInterval(timewait_ar[product_id]);
        }

        timewait_ar[product_id] = window.setTimeout(function(){
            update_item_quantity(product_id);
        },500);

		return false;
	});
	
	$j('a.down_q'+element_down).click(function(){
		var product_id = $j(this).attr('id').replace('down_', '');
        if (parseInt($j('span#q_'+product_id).html()) - 1 < 1) {
            $j('tr#item_'+product_id).hide();
        }
		$j('span#q_'+product_id).html(parseInt($j('span#q_'+product_id).html()) - 1);

        if (timewait_ar[product_id] != null ) {
            clearInterval(timewait_ar[product_id]);
        }

        timewait_ar[product_id] = window.setTimeout(function(){
            update_item_quantity(product_id);
        },500);
        
		return false;
	});

	$j('a.remove'+element_remove).click(function(){
		var product_id = $j(this).attr('id').replace('remove_', '');
        $j('tr#item_'+product_id).hide();
        $j('span#q_'+product_id).html('0');

        if (timewait_ar[product_id] != null ) {
            clearInterval(timewait_ar[product_id]);
        }

        timewait_ar[product_id] = window.setTimeout(function(){
            update_item_quantity(product_id);
        },500);
        
		return false;
	});

}

var objHttpFileDataRequest = null;
var active_request_ar = new Object();
var timewait_ar = new Object();

function update_item_quantity(product_id) {

	var stripped = $j('input#stripped_'+product_id).val();
	var quantity = $j('span#q_'+product_id).html();

    if (active_request_ar[product_id] != null) {
        active_request_ar[product_id].abort();
    }
    
	active_request++;

	active_request_ar[product_id] = $j.post('/cumpara/'+stripped, {product: product_id, quantity: quantity},function(data){
		active_response++;
			$j('tbody#cart_items').html(data);
			update_clicks();
            update_cart();
            active_response = 0;
            active_request = 0;
	}, 'html');
}

function check_minimum_order() {
	if (parseFloat($j('input#minimum_order').val()) > parseFloat($j('span#total').html())) {
		$j('div#minimum_order_alert').css('visibility', 'visible');
        return false;
	} else {
		$j('div#minimum_order_alert').css('visibility', 'hidden');
        return true;
	}
}

function update_cart() {
    $j.get('/cart-status', {_ignoreCache: 1}, function(data){
        $j('strong#cart-items').html(data.items.toString());
        $j('strong#cart-total').html(data.total.toString());		
        $j('p.special span#total').html(data.total);
        check_minimum_order();
    }, 'json');
}
