



/*AJAX-PURCHASES*/



/* * *
	PURCHASES
* * */
var purchases = new Object();
Object.extend(purchases, {	
	loadingTime: null,
	
	/* LOAD */
	load: function(){
		if($('request'))
			Event.observe($('request'), 'click', purchases.request.bindAsEventListener(purchases));
		
		if($('refresh')){
			Event.observe($('refresh'), 'click', purchases.refresh.bindAsEventListener(purchases));
			this.init();
		}
	},
	
	/* REQUEST */
	request: function(event){
		if($('total_amount') && $('total_amount').value >= 6){
			Event.stop(event);
			box.activate();			
		}	
	},
	
	/* INIT */
	init: function(){
		if(!$('state')){
			Element.hide('navigation');
		}else{
			
			// qtd
			$A(Form.getInputs('form_purchases', 'text')).each(function(element){
				Event.observe(element, 'blur', purchases.send.bind(purchases));														 
			});
			
			// remove
			document.getElementsByClassName('removeLink', 'form_purchases').each(function(element){
				Event.observe(element, 'click', purchases.remove.bindAsEventListener(purchases));																											
			});
			
			// state
			Event.observe($('state'), 'change', purchases.send.bind(purchases));
		}
	},
	
	/* SEND */
	send: function(){
		this.wait(true);
		new Ajax.Request( 
			$F('ajax-url'), {
				parameters: Form.serialize('form_purchases'),
				onComplete: this.sendReturn.bind(this),
				onFailure: this.onFailure.bind(this)
			}
		);
	},
	sendReturn: function(ret){
		$('cart_ajax').innerHTML = ret.responseText;
		this.init();
		this.wait(false);
	},
	
	/* REMOVE */
	remove: function(event){
		Event.stop(event);
		
		var row = Event.element(event).parentNode.parentNode;
		Element.remove(row);
		
		this.send();
	},
	
	/* REFRESH */
	refresh: function(event){
		Event.stop(event);
		this.send();
	},
	
	/* ACT WAIT */
	actWait: function(){
		Element.setTop('loading', getPageScroll()[1]-480)
	},
	
	/* WAIT */
	wait: function(status){
		if(status){
			this.actWait();
			this.loadingTime = setInterval(this.actWait, 200);
			Element.show('loading');
		}else{
			clearInterval(this.loadingTime);
			Element.hide('loading');
		}
	},
	
	/* ON FAILURE */
	onFailure: function(transport){
		alert('Problemas com a aplicação.\n\nFalha na requisiçao AJAX.\n\nOcorrência: '+transport.status);
	}
});

ContentLoaded(window, function(){
	purchases.load();
});
