var Basket = new Class({

	Implements : Options,

	options : {
		script	: '/floor/cs',
		server	: 'josiffert'
	},
	
	initialize: function(options) {
		this.setOptions(options);
		this.url= this.options.script+'?server='+this.options.server+'&lang='+this.options.lang+'&action=getbasket&basketdetail=margin&ajaxrequest=1';
		this.flag = true;
		this.get();

		this.plusminus();
		this.manageCCBox();
	},
	
	get : function() {
		var url = this.url+'&randomnumber='+Math.random();
		var req = new Request.HTML({
			url: url,
			method: 'get',
			update: $(this.options.container)
		}).send();
	},
	
	add : function(pid, price) {
		if (this.flag == false)	return false;
		this.flag = false;
		
		/*var growlLabel = document.getElementById('prd_name').innerHTML;

		growlLabel = growlLabel + "<br />CHF " + price;
		
		//window.Growl(growlLabel);
		
		Growl.Bezel({
				title	:	'Ajout dans le panier :',
				text	:	growlLabel,
				duration	: 1
			});*/
				
		var qty = 1;//$('input'+pid).value;

		var url = this.url+$('order').toQueryString()+'&subact=addtobasket&qty='+qty+'&product_ID='+pid+'&randomnumber='+Math.random();

		var req = new Request.HTML({
			url: url,
			update: $(this.options.container), 
			method: 'get',
			onComplete : function() {
				//alert('fini');		
			},
			
			onFailure : function() {
				alert('Erreur');
			}
		}).send();
		
		// use to bloc an other clic during the grow effect
		(function(){ this.flag = true; }.bind(this)).delay(2000);
			
		return false;
	},
	
	del : function(bid) {
		var url = this.url+'&subact=delfrombasket&basketdetailID='+bid+'&randomnumber='+Math.random();
	
		var req = new Request.HTML({
			url: url,
			update: $(this.options.container), 
			method: 'get'
		}).send();	
	},
	
	plusminus : function() {
		var plus = $$('.plus');
		plus.forEach(function(el){
			el.addEvent('click', function(e) {
				new Event(e).stop();
				this.blur();
				var el_ID = el.id.replace(/^p_/, '');
				$('input'+el_ID).value = $('input'+el_ID).value.toInt() + 1;
				});
		});
		
		var minus = $$('.minus');
		minus.forEach(function(el){
			el.addEvent('click', function(e){
				new Event(e).stop();
				this.blur();
				var el_ID = el.id.replace(/^m_/, '');
				if ($('input'+el_ID).value != 1){
					$('input'+el_ID).value = $('input'+el_ID).value.toInt() - 1;
				}
			});
		});	
	},
	
	manageCCBox: function(){
		if ($('cc_box')) { this.ccbox_slide = new Fx.Slide('cc_box'); }
		
		$$('.open_ccbox').forEach(function(el){
			el.addEvent('click', function(){
				this.ccbox_slide.slideIn();
				
				$$('.cc_req').forEach(function(el_box){
					var lbl_class = el_box.getProperty('class');
					el_box.setProperty('class',lbl_class.replace(/novalidate/g,"validate"));		
				},this);
				
				order_formcheck.validations = [];
				order_formcheck.checkElements();
			
			}.bind(this));
		},this);
		
		$$('.close_ccbox').forEach(function(el){
			el.addEvent('click', function(){
				
				this.ccbox_slide.slideOut();
				
				$$('.cc_req').forEach(function(el_box){
					//el_box.removeClass("required");
					var lbl_class = el_box.getProperty('class');
					el_box.setProperty('class',lbl_class.replace(/validate/g,"novalidate"));
					el.validation = [];	
				},this);
				
				order_formcheck.validations = [];
				order_formcheck.checkElements();							
			}.bind(this));
		},this);
	}
});