/*requires prototype.js*/
var Cart = Class.create();
Cart.prototype = {
	initialize : function(callback) {
		this.callback = callback;
	},
	
	addToCart : function(v_t) {
		var HW = new ShopAjaxProvider(this.callback);		
		return HW.addToCart(v_t);
	},
	
	getNumItems : function() {
		var HW = new ShopAjaxProvider(this.callback);
		return HW.getNumItems();
	},
	
	getTotal : function() {
		var HW = new ShopAjaxProvider(this.callback);
		return HW.getTotal();
	},
	
	getCartItems : function() {
		var HW = new ShopAjaxProvider(this.callback);
		return HW.getCartItems();
	},
	
	getNumCartItems : function() {
		var HW = new ShopAjaxProvider(this.callback);
		return HW.getNumCartItems();
	},
	
	deleteItems : function(v_t) {
		var HW = new ShopAjaxProvider(this.callback);
		return HW.deleteItems(v_t);
	},
	
	updateQuantity : function(v_ids, v_qty) {
		var HW = new ShopAjaxProvider(this.callback);
		return HW.updateQuantity(v_ids, v_qty);
	}
}

//var cur_cart = Cart;

function addToCart(v_t)
{	
	AjaxHandler.prototype.addToCart = function(aResult) {				
		updateSummary();
		$('ret_message').innerHTML = aResult;
		$('ret_message').style.padding = '20px';
		$('ret_message').style.border = '1px solid #cccccc';
		$('ret_message').style.width = '200px';
		$('ret_message').style.textAlign = 'center';
		new Effect.Highlight('ret_message');
		this.callBack();
	}
	
	var ah = new AjaxHandler('but1', 'ret1');
	var cur_cart = new Cart(ah);
	cur_cart.addToCart(v_t);
			
}

function updateSummary()
{
	var cur_cart = new Cart();
	$('cart_summary_items').innerHTML = cur_cart.getNumItems();
	
	$('cart_summary_total').innerHTML = cur_cart.getTotal();
}

var AjaxHandler = Class.create();
AjaxHandler.prototype = {
	initialize : function(v_butobj, v_retobj) {
		//constructor
		if (typeof v_butobj == 'string') {
			this.butobj = $(v_butobj);
		} else {
			this.butobj = v_butobj;
		}
		
		if (typeof v_retobj == 'string') {
			this.retobj = $(v_retobj);
		} else {
			this.retobj = v_retobj;
		}
		
		if (this.butobj) {
			this.butobj_code = this.butobj.innerHTML;
			
			this.butobj.innerHTML = 'Please wait...';
		}
	},
	
	callBack : function() {		
		this.butobj.innerHTML = this.butobj_code;
	}
}
	