// <![CDATA[
var shop_interface = {
	action_url: "cart_actions.php",
	check_out_url: 'checkout.php',
	login_url: 'login.php',
	cart_url: 'cart.php',
	
	small_cart_count_ele : Object,
	small_cart_total_ele: Object,
	small_cart_message: Object,
	
	address_continue: Object,
	address_terms_check: Object,

	shop_cart_count_ele : Object,
	shop_cart_total_ele: Object,
	add_product_message:		'<span class="black block">Prodotto aggiunto al carrello</span>' +
								'<a href="cart.php" class="white">Vai al carrello&nbsp;&gt;</a>' ,
	duplicate_product_message:	'<span class="bold block">Prodotto già nel carrello.</span>' +
								'<a href="cart.php" class="white">Vai al carrello&nbsp;&gt;</a>',
	
	user_login_ele: Object,
	user_cancel_ele: Object,
	user_login_form_ele: Object,
	
	shipment_free_limit : 50.0,
	shipment_data_id: 'shipment_data',
	
	SHOP_TOTAL: 0.0,
	SHOP_COUNT: 0,
	
	debug : false,

	view_login: function(){
		return(false);
		new Effect.SlideDown(shop_interface.user_login_form_ele, 
			{duration: 0.4, afterFinish: function(){
				if($("user_name")){
					$("user_name").focus();
				}
		}});
	},
	
	init: function(){
//	small_cart
		shop_interface.small_cart_count_ele = $('cart_count');
		shop_interface.small_cart_message = $('small_cart_message');
		shop_interface.small_cart_total_ele = $('cart_total');
		if(!shop_interface.small_cart_count_ele || !shop_interface.small_cart_message || !shop_interface.small_cart_total_ele){
			return(false);
		}
//		price
		var shop_ele = $('shop_data');
		if(shop_ele){
			var shop_round = new curvyCorners(shop_settings, shop_ele);
			shop_round.applyCornersToAll();
			shop_ele.show();
		}
//	SHOP_CART
		shop_interface.shop_cart_count_ele = $('shop_cart_count');
		shop_interface.shop_cart_total_ele = $('shop_cart_total');
//		Observer per check_out
		var link_ele = $('goto_check_out');
		if(link_ele){
			new Event.observe(link_ele, "click",function(eve){
				eve.stop();
				location.href = shop_interface.check_out_url;
			});
		}
		
//		SHOP_TERMS
		
		shop_interface.address_continue = $('shop_cart_address_continue');
		shop_interface.address_terms_check = $('shop_cart_shop_terms');
//		Observer per check_out
		if(shop_interface.address_continue && shop_interface.address_terms_check){
			
			new Event.observe(shop_interface.address_terms_check, "click",function(eve){
				if(shop_interface.address_terms_check.checked == true){
					shop_interface.address_continue.disabled = false;
				}else{
					shop_interface.address_continue.disabled = true;
				}
			});
			shop_interface.address_continue.disabled = true;
			$('shop_tems_control').show();
		}
		

/*
		var action_param = "LOGIN";
		
		if(link_ele){
			new Event.observe(link_ele, "click",function(eve){
				eve.stop();
				var login_data_h = new Hash();
				login_data_h.set('action', action_param);
				
				new Ajax.Request(shop_interface.action_url, {
					method: 'post', parameters: login_data_h,
					onComplete: function(transport){
						if(200 == transport.status){
							if(1 == transport.responseText){
								// LOGGED
								location.href = shop_interface.check_out_url;
							}else{
								//NOT LOGGED
								location.href = shop_interface.login_url;
								if(shop_interface.debug){
									alert(transport.responseText);
								}
							}
						}
					}
				});
			})
		}*/
//		Observer per elimina da cart
		var del_eles = $$(".cart_delete");
		if(del_eles.size() > 0){
			del_eles.each(function(element){
				new Event.observe(element, "click",function(eve){
					eve.stop();
					this.blur();
					var product_id = this.id.sub("delete_prod_","");
					if(product_id == "") return(false);
					shop_interface.del_product(product_id);
				})
			})
		}
	},
	add_product_by_id: function(prod_id){
		if(prod_id == '') return(false);
		var sho_ele = $("shop_"+prod_id);
		
		var prod_data_h = new Hash();
		prod_data_h.set('action', "ADD");
		prod_data_h.set('product_id', prod_id);
		
		var message_shop_settings = {
			tl: { radius: 6 },
			tr: { radius: 6 },
			br: { radius: 6 },
			bl: { radius: 6 },
			antiAlias: true,
			autoPad: true
		}
		new Ajax.Request(shop_interface.action_url, {
			method: 'post',	parameters: prod_data_h,
			onComplete: function(transport){
				if(200 == transport.status){
					if((301 == transport.responseText) || (401 == transport.responseText)){
						shop_interface.get_cart_data();

						var message_text = shop_interface.add_product_message;
						if(401 == transport.responseText){
							message_text = shop_interface.duplicate_product_message;
						}
						if(!sho_ele){
							alert(message_text);
							return(false);
						}
						
						var prev_message_pop = $('shop_cart_message_popup');
						if(prev_message_pop){
							prev_message_pop.remove();
						}
						var div_message = new Element('div', 
							{ 'class': 'shop_message thin text_centered', 
							id: 'shop_cart_message_popup'
							}).update(message_text);
							div_message.setStyle({display: 'none'});

						new Insertion.Before(sho_ele, div_message);
						var round_shop_message = new curvyCorners(message_shop_settings, div_message);
						round_shop_message.applyCornersToAll();
							
						new Effect.Appear(div_message,{delay: 0.2, duration: 0.2,
							queue: { position: 'front', scope: 'cart_message'}});
						
						new Effect.Fade(div_message,{duration: 0.6, delay:3, 
							queue: { position: 'end', scope: 'cart_message'}, 
							afterFinish: function(){
								div_message.remove();
							}});
					}else{
						if(shop_interface.debug){
							alert(transport.responseText);
						}
					}
				}
			}
		});
	},
	
	more_product: function(prod_id){
		var prod_data_h = new Hash();
		prod_data_h.set('action', "MORE");
		prod_data_h.set('product_id', prod_id);
		
		new Ajax.Request(shop_interface.action_url, {
			method: 'post',	parameters: prod_data_h,
			onComplete: function(transport){
				if(200 == transport.status){
					if(303 == transport.responseText){
						location.href = shop_interface.cart_url;
					}else{
						if(shop_interface.debug){
							alert(transport.responseText);
						}
					}
				}
			}
		});
	},

	less_product: function(prod_id){
		var prod_data_h = new Hash();
		prod_data_h.set('action', "LESS");
		prod_data_h.set('product_id', prod_id);
		
		new Ajax.Request(shop_interface.action_url, {
			method: 'post',	parameters: prod_data_h,
			onComplete: function(transport){
				if(200 == transport.status){
					if(304 == transport.responseText){
						location.href = shop_interface.cart_url;
					}else{
						if(shop_interface.debug){
							alert(transport.responseText);
						}
					}
				}
			}
		});
	},
	
	del_product: function(product_id){
		var remove_ele = $("product_row_" + product_id);
		if(!remove_ele) return(false);

		var prod_del_data = new Hash();
		prod_del_data.set('action', "DEL");
		prod_del_data.set('prod_id', product_id);

		new Ajax.Request(shop_interface.action_url, {
			method: 'post', parameters: prod_del_data, 
			onComplete: function(transport){
				if(200 == transport.status){
					if(!isNaN(transport.responseText)){
						if(302 == transport.responseText){
							if(remove_ele){
								shop_interface.get_cart_data();
								remove_ele.remove();
							}
						}
					}else{
						if(shop_interface.debug){
							alert(transport.responseText);
						}
					}
				}
			}
		});
	},
	update_shop_fields: function(){
	//unset shipment alert class...
		var tot_format = shop_interface.SHOP_TOTAL.sub(',', '.');
		if(shop_interface.shipment_free_limit > tot_format){
			var shipment_data_container = $(shop_interface.shipment_data_id);
			if(shipment_data_container){
				var class_elements = shipment_data_container.select(".alert");
				class_elements.each( function(ele){
				 	ele.removeClassName('alert');
				 	ele.removeClassName('bold');
				 	ele.removeClassName('text-barred');
				 });
			}
		}
		if(shop_interface.shop_cart_total_ele && shop_interface.shop_cart_count_ele){
			shop_interface.shop_cart_total_ele.update(shop_interface.SHOP_TOTAL);
			shop_interface.shop_cart_count_ele.update(shop_interface.SHOP_COUNT);
		}
		if(shop_interface.small_cart_count_ele && shop_interface.small_cart_total_ele){
			shop_interface.small_cart_count_ele.update(shop_interface.SHOP_COUNT);
			shop_interface.small_cart_total_ele.update(shop_interface.SHOP_TOTAL);
		}
	},
	set_cart_info: function(_action_, _element_){
		return(false);
		if(!_element_) return(false);
		var prod_data_h = new Hash();
		prod_data_h.set('action', _action_);
		new Ajax.Request(shop_interface.action_url, {
			method: 'post',	parameters: prod_data_h, 
			onComplete: function(up_transport){
				if(200 == up_transport.status){
					if(!up_transport.responseText.blank()){
						_element_.update(up_transport.responseText);
					}else{
						if(shop_interface.debug){
							alert(up_transport.responseText);
						}
					}
				}
			}
		});
	},
	get_cart_data: function(){
		var prod_data_h = new Hash();
		prod_data_h.set('action', "INFO");
		new Ajax.Request(shop_interface.action_url, {
			method: 'post',	parameters: prod_data_h, 
			onComplete: function(up_transport){
				if(200 == up_transport.status){
					if(!up_transport.responseText.blank()){
						var cart_data = up_transport.responseText.strip().split("|");
						shop_interface.SHOP_COUNT = cart_data[1];
						shop_interface.SHOP_TOTAL = cart_data[0];
						shop_interface.update_shop_fields();
					}else{
						if(shop_interface.debug){
							alert(up_transport.responseText);
						}
					}
				}
			}
		});
	}
};
new Event.observe(document,"dom:loaded", function(){
	shop_interface.init();
})
// ]]>