if (Object.isUndefined(NVB)) { var NVB = { } }

NVB.price = Class.create({
	initialize: function() {
		this.parameters = this.code = {};
		this.events = {
			change:this.change.bind(this),
			change_checkbox:this.change_checkbox.bind(this),
			update_fields:this.update_fields.bind(this)
		}
		this.form = $$('form.minibox').first();
		if(this.form){
			this.fieldsText = this.form.getInputs('text');
			this.fieldsText.invoke('observe','change', this.events.change);
			this.fieldsCheckbox = this.form.getInputs('checkbox')
			this.fieldsCheckbox.invoke('observe','click', this.events.change_checkbox);
		  
		  this.change();
		}
	},
	change_checkbox: function(e){
		var element = e.element();
		var id = element.readAttribute('id');
		
		if( $(id+'_begindatum') && $(id+'_einddatum') ){
		if(element.checked){
			$(id+'_begindatum').enable();
			$(id+'_einddatum').enable();
		}else{
			$(id+'_begindatum').disable();
			$(id+'_einddatum').disable();
		}
		}else if( $(id+'_aantal') ){
			if(element.checked) $(id+'_aantal').enable();
			else $(id+'_aantal').disable();
		}
		this.change();
	},
	change: function(){
		this.code =this.form.serialize(true);
		
		var options = {
			method: 'post',
			parameters: this.code,
			onSuccess: this.events.update_fields
		}
		var regex = /^\d{2}-\d{2}-\d{4}$/;
		//if( regex.test(this.code.minibox_begindatum) && regex.test(this.code.minibox_einddatum) ){
			new Ajax.Request('/www/scripts/price.ajax.php', options);
		//}
		return false;
	},
	update_fields: function(response){
		var totaal_prijs = 0;
		var regex = /^\d{2}-\d{2}-\d{4}$/;
		this.data = eval(response.responseText);
		function round(num){
			return ((( parseFloat(num) * 100 ).round())/100);
		}
		var BTW = 1.19;
		
		if(this.data.minibox){
			/*** - Korting - ***/
			if(this.data.minibox.weken >= 26 &&  this.data.minibox.weken < 52){
				this.data.minibox.prijs = this.data.minibox.prijs * 0.98;
			}else if( this.data.minibox.weken >= 52){
				this.data.minibox.prijs = this.data.minibox.prijs * 0.96;
			}
			var prijs = round( this.data.minibox.prijs );
			if(prijs <= 0) prijs = 0;
		
			$('ovminibox_dagen').update(this.data.minibox.dagen);
			$('ovminibox_prijs').update( "&euro; " + ( prijs ).toFixed(2).replace('.', ','));
			$('fmminibox_prijs').value = prijs;
		
			totaal_prijs += prijs;
		}
		if(this.data.verhuisbus){
			var prijs = round( this.data.verhuisbus.prijs );
			//if( regex.test(this.code.verhuisbus_begindatum) && regex.test(this.code.verhuisbus_einddatum) && prijs >= 0){
			if(prijs >= 0){
				$('ovverhuisbus_dagen').update(this.data.verhuisbus.dagen);
				$('ovverhuisbus_prijs').update( "&euro; " + (prijs / BTW).toFixed(2).replace('.', ','));
				$('fmverhuisbus_prijs').value = prijs;
			
				totaal_prijs += ( prijs / BTW );
			}else{
				$('ovverhuisbus_dagen').update(this.data.verhuisbus.dagen);
				$('ovverhuisbus_prijs').update( "&euro; "+(0).toFixed(2) );
				$('fmverhuisbus_prijs').value = 0;
			}
		}
		if(this.data.aanhanger){
			var prijs = round( this.data.aanhanger.prijs );
			// if( regex.test(this.code.aanhanger_begindatum) && regex.test(this.code.aanhanger_einddatum) && prijs >= 0){
			if(prijs <= 0) prijs = 0;
			$('ovaanhanger_dagen').update(this.data.aanhanger.dagen);
			$('ovaanhanger_prijs').update( "&euro; " + ( prijs / BTW ).toFixed(2).replace('.', ','));
			$('fmaanhanger_prijs').value = 0;
			
			totaal_prijs += ( prijs / BTW );
			//}
		}
		if(this.data.verhuisdozen){
			var prijs = round( this.data.verhuisdozen.prijs );
			if(prijs <= 0) prijs = 0
			$('ovverhuisdozen_aantal').update(this.data.verhuisdozen.aantal);
			$('ovverhuisdozen_prijs').update( "&euro; " + (prijs / BTW).toFixed(2).replace('.', ','));
			$('fmverhuisdozen_prijs').value = 0;
			
			totaal_prijs += ( prijs / BTW );
		}
		if($('fmtype1').checked) {
			var prijs = round( this.data.minibox.prijs );
			if(prijs <= 0) prijs = 0;
			
			var btw			= ((totaal_prijs - prijs) * BTW)  - (totaal_prijs - prijs);
			var sub_totaal 	= totaal_prijs;
			var totaal 		= totaal_prijs + btw;
		}else{
		
			var btw			= (totaal_prijs * BTW ) - totaal_prijs;
			var sub_totaal	= totaal_prijs;
			var totaal		= totaal_prijs * BTW;
		}

		$('ovbtw_prijs').update(  "&euro; " + btw.toFixed(2).replace('.', ',') );
		$('ovsubtotaal_prijs').update(  "&euro; " + ( sub_totaal ).toFixed(2).replace('.', ',') );
		$('ovtotaal_prijs').update(  "&euro; " + ( totaal ).toFixed(2).replace('.', ',') );
		
		return false;
	}
	
});

document.observe('dom:loaded', function(){
	price = new NVB.price();
});