var dynamicCart = new Class({

	Implements: [Options],

	options: {
		selector    : 'form[name=cart_quantity]',
		dc_id       : 'dynamic_cart',
		dcv_id      : 'dynamic_view_cart',
		dcv_qty_id  : 'dvc_qty',
		btn_add     : 'a[rel=ajax_addable]'
	},

	initialize:  function(options) {
		$( this.options.dc_id ).fade('hide');
		this.setOptions(options);
		var that = this;
		var forms = $$( this.options.selector );
		var dcv = $( this.options.dcv_id );
		dcv.addEvents({
			'mouseover':function(e){
				dcv.setStyle('background-position','bottom left');
				dcv.getElements('span').setStyle('background-position','bottom right');
			},
			'mouseout':function(e){
				dcv.setStyle('background-position','top left');
				dcv.getElements('span').setStyle('background-position','top right');
			}
		});

		forms.addEvent('submit', function(e){
			if( !e.target.get('action').contains('shopping_cart.php') ) {
				var jsonRequest = new Request.JSON({url: 'cart.request.php', onSuccess: function(cart){
						that.displayCart(cart);
						$( that.options.dc_id ).fade( .95 );
				}}).post( e.target.toQueryString() + '&ajax=1' );
				
				window.scrollTo(0, 100);
				
				e.preventDefault();
			}

		});

		$$('#' + this.options.dcv_id + ' span').addEvent('click', function(e){
			var jsonRequest = new Request.JSON({url: 'cart.request.php', onSuccess: function(cart){
					that.displayCart(cart);
					$( that.options.dc_id ).fade('toggle');
			}}).get();
			e.preventDefault();
		});

		$$( this.options.btn_add ).addEvent('click', function(e){

			new Request.HTML({ url: this.get('href'), onSuccess: function(data){

				var jsonRequest = new Request.JSON({url: 'cart.request.php', onSuccess: function(cart){
						that.displayCart(cart);
						$( that.options.dc_id ).fade( .95 );
				}}).get();

				window.scrollTo(0, 100);

			}}).get();

			e.preventDefault();
		});

	},

	displayCart: function(cart){
		var html = '';
		Object.each(cart.products, function(value, key){
			var image = '';
			if( value.image.trim().length ) {
				image = '<img style="float: right;" src="thumb.php?img=images%2F' + escape( value.image.trim() ) + '&w=40&h=40" />';
			}
			html += '<dt><a href="0-p-'+value.id+'.html">' + image + value.name + '</a></dt>' + '<dd>'+ value.quantity +' x <strong>$' + value.final_price + '</strong></dd>';
		});

		html = '<dl>'+ html +'</dl>';

		html += '<hr />';
		html += '<div align="right"><strong>Total:</strong> $' + cart.total + '</div>'
		+'<a href="shopping_cart.php"><img src="images/site/dynamic_btn_cart.png" /></a>'
		+'<a href="checkout_shipping.php" style="padding-left: 20px;"><img src="images/site/dynamic_btn_check_out.png" /></a>'
		+'<a style="padding-left:20px;" href="javascript:void(0)" onclick="$(this).getParent(\'#'+this.options.dc_id+'\').fade(\'out\');"><img src="images/site/dynamic_btn_close.png" /></a><div id="dsc_foot"></div>';

		$( this.options.dc_id ).set('html', html);
		$( this.options.dcv_qty_id ).set('html', cart.total_quantity );
	}

});

window.addEvent('domready', function(){
	new dynamicCart();
});
