$(function(){	$(".buy-now").click(function(){		var package_id=this.id;
		$.getJSON('/response.php', 
				{ type: "add_to_cart", package_id: package_id, rand: Math.random() }, on_cart_added_to );
		})

	$("#cart_items .remove").click(function(){
		var package_id=this.id;
		$.getJSON('/response.php', 
				{ type: "remove_from_cart", package_id: package_id, rand: Math.random() }, on_cart_removed_from );
		})
		
	$("#cart_items .qty").change(function(){		var new_qty=this.value;
		var package_id=this.id;
		if (new_qty==0) {			$.getJSON('/response.php', 
				{ type: "remove_from_cart", package_id: package_id, rand: Math.random() }, on_cart_removed_from );
			} else {
			$.getJSON('/response.php', 
				{ type: "update_package_qty", new_qty: new_qty, package_id: package_id, rand: Math.random() }, on_cart_qty_changed );
			}
		})
	
	$(".upgrade_container a").click(function(){
		var packages_id=$(this).parents("DIV.upgrade_container")[0].id;
		$.getJSON('/response.php', 
			{ type: "upgrade_package", packages_id: packages_id, rand: Math.random() }, on_cart_upgraded );
		return false;
		})
		
	$("#shipment_method").change(function(){		var ship_method_rx_id=this.value;
		$.getJSON('/response.php', 
			{ type: "update_shipmethod", ship_method_rx_id: ship_method_rx_id, rand: Math.random() }, on_shipmethod_changed );
	})
	
	$("#checkout_link").click(proceedToCheckout);
	
	if ($("#cart_items").length>0) {
		$("div.your-cart div.go a").click(proceedToCheckout);
	}
})

function buyProduct(obj){
	var item_div=$(obj).parents("DIV.item");
	if (item_div.length>0) {
		var prod_url_id=item_div.get(0).id;
		$.getJSON('/response.php', { type: "add_to_cart", prod_url_id: prod_url_id, rand: Math.random() }, on_cart_added_to );	
		}
	return false;
}

function on_cart_upgraded(json){	if (json.status=="ok") {		updateCartData(json);
		if (json.hide_package) {			// removing upgraded item
			$("#package_"+json.hide_package).remove();
			$('#upgrade_to_'+json.package_id_to+'_from_'+json.package_id_from).parents(".item_upgrade_container").remove();
			} else {
			// changing id to new
			$("#package_"+json.package_id_from).get(0).id="package_"+json.package_id_to;
			$("#qty_"+json.package_id_from).get(0).id="qty_"+json.package_id_to;
			$("#legacy_"+json.package_id_from).get(0).id="legacy_"+json.package_id_to;
			$('#upgrade_to_'+json.package_id_to+'_from_'+json.package_id_from).parents(".item_upgrade_container").remove();
			}
			
		// changing data
		package_row=$("#package_"+json.package_id_to);
		$("#qty_"+json.package_id_to, package_row).val(json.new_qty);
		$(".count", package_row).text(json.new_package_qty);
		$(".dosage", package_row).text(json.new_package_dosage);
		$(".price", package_row).text(json.new_price);
		$(".subtotal", package_row).text(json.new_subtotal);
		
		$("#shipment_cost").text(json.shipment_cost);
		$("#total_price").text(json.total_price_plus_shipment);
		package_row.fadeTo(200,0.3).fadeTo(200,1);
	} else {		alert(json.message);
	}
}
function on_cart_added_to(json){
	if (json.status=="ok") {
		updateCartData(json);
		$("#package_"+json.package_id+" img").fadeTo(200,0.3).fadeTo(200,1);
		if (json.added_by_prod_id) {			window.location=json.link_to_cart;
			}
		} else {
		alert(json.message);
		}
}

function on_cart_removed_from(json){
	if (json.status=="ok") {		var package_row=$("#package_"+json.package_id);
		var next=package_row.next();
		if (next.length) {			if (next.get(0).className) {
				if (next.get(0).className=="item_upgrade_container") { next.remove(); }
				}
			}
		package_row.remove();
		updateCartData(json);
		$("#total_price").text(json.total_price_plus_shipment);
		$("#shipment_cost").text(json.shipment_cost);
		if (json.total_lines=='0') {
			$("#cart_empty").show();
			$("#cart_items").hide();
		}
	} else {
		alert(json.message);
	}
}

function on_cart_qty_changed(json){
	if (json.status=="ok") {
		updateCartData(json);
		package_row=$("#package_"+json.package_id);
		package_row.fadeTo(200,0.3).fadeTo(200,1);
		$("#qty_"+json.package_id, package_row).val(json.new_qty);
		$(".subtotal", package_row).text(json.new_subtotal);
		$("#shipment_cost").text(json.shipment_cost);
		$("#total_price").text(json.total_price_plus_shipment);
		if (json.new_save_money) {			$("span#moneytosavefor"+json.package_id).text(json.new_save_money);
			}
		} else {
		alert(json.message);
		}
}

function on_shipmethod_changed(json){
	if (json.status=="ok") {
		$("#shipment_cost").text(json.shipment_cost);
		$("#total_price").text(json.total_price_plus_shipment);
		$("#active_shipment_info").html(json.shipment_info[0]);
		for (var n=1;n<json.shipment_info.length;n++) {			$("#inactive_shipment_info_"+n).html(json.shipment_info[n]);			}
		} else {
		alert(json.message);
		}
}

function updateCartData(json){
	cart=$(".your-cart");
	cart.fadeTo(200,0.3)
	$(".value", cart).text(json.total_price);
	$(".count", cart).text(json.total_qty);
	$("#item_text", cart).text(json.item_text);
	cart.fadeTo(200,1);
}

function proceedToCheckout() {
	$.getJSON('/response.php', { type: "checkout", rand: Math.random() }, function(json) {		if (json.status=="ok") {			form=$('<form method="POST" id="form_with_checkout_data" action="'+json.checkout_url+'"><input type="hidden" value="'+json.data+'" name="data" /><input type="hidden" value="'+json.signature+'" name="signature" /></form>');
			$("body").prepend(form);
			$("#form_with_checkout_data").submit();
		} else {		alert(json.message);
		}
	});
	return false;
}