window.addEvent('domready', function() {
	// go through what is selected...	
	Quote.addTank();	
	Quote.addPump();
	Quote.initSize();
});

var QuoteVals = {};

var Quote = {
	haveReloaded : true,
	
	check : function (f){
		var requiredList = ['tank_type_1','tank_size_1','how_many_1','depot'];
		var msgs = ['Please select a tank type. js','Please select a tank size. js','Please select how many tanks you\'d like. js','Please select the depot you wish to contact you. js'];
		var valid = true;
		var msgList = new Array();
		
		for (var y = 0; y < requiredList.length	; y++){
						
			var nlist = f.elements[requiredList[y]];
			var isSelected = false;
			var listTotal = nlist.length ;			
			for (var i = 0; i < listTotal ; i++){
				if (nlist[i].value != ''){
					isSelected = true;		
					//break;
				}
			}
			
			if (!isSelected){
				msgList.push(msgs[y]);
				valid = false;
			}
		}
		
		if (!valid){
			Quote.displayError(msgList,'quoteWizard',2);
		}
				
		return valid;
	},
	
	detailsValidate : function (f){
		var requiredList = ['first_name','surname','phone','email_address'];
		var msgs = ['Please enter your first name.','Please enter your surname.',
					'Please enter a contact number.','Please enter a valid email address.'];
		var msgList = new Array();
		var valid = true;
		
		for (var y = 0; y < requiredList.length	; y++){
			
			if (requiredList[y] == 'email_address' ){
				if (!isEmail(f.elements['email_address'].value)){
					msgList.push(msgs[y]);
					valid = false;
				}
			} else {
				if (f.elements[requiredList[y]].value == ''){
					msgList.push(msgs[y]);
					valid = false;	
				}	
			}
		}
		
		if (!valid){
			Quote.displayError(msgList,'QuoteDetailsForm',3);
		}		
		
		return valid;				
	},
	
	
	displayError : function (msg, referenceId, area){		
		var msgBox1 = document.getElementById('msgBox1');
		var msgBox2 = document.getElementById('msgBox2');
		msg = msg.join('<br/>');
		
		if (!msgBox2){
			var f = document.getElementById(referenceId);
			var msgBox1 = document.createElement('div');
			msgBox1.className = 'errorMsg';
			msgBox1.innerHTML = msg;
			msgBox1.id = 'msgBox1';
			
			var msgBox2 = msgBox1.cloneNode(true);
			msgBox2.id = 'msgBox2';
			
			if (area == 3){
				f.parentNode.insertBefore(msgBox2,f);					
			} else {
				f.parentNode.insertBefore(msgBox2,f.nextSilbing);	
			}
			
			
			if (area == 2){
				f.parentNode.insertBefore(msgBox1,f);	
			}			
			
		} else {
			if (area == 2){
				msgBox1.innerHTML = msg;	
			} 			
			msgBox2.innerHTML = msg;
		}
					
	},
	
	update : function(e, price){
		
		//tank_type, pump_type, install_kit, extras1, extras2, extras3, delivery		
		var eName = e.name;		
		var diff = 0;
		var offsetPrice = price;
		
		if (e.type == 'radio'){
			
			if (QuoteVals[eName]){						
				offsetPrice = price - QuoteVals[eName];
			}
			QuoteVals[eName] = price;	
			
		} else if (e.type == 'checkbox'){			
			
			offsetPrice = price;
						
			if (!e.checked){
				offsetPrice = -price;
			} else if (e.checked){
				offsetPrice = price;
			}
			QuoteVals[eName] = price;
		}
		
		Quote.updateTotal(offsetPrice);
	},	
	updateTotal : function (price){
		var  e = document.getElementById('quoteTotal');
		var current = new Number(e.innerHTML);
		e.innerHTML = price+ current;
	},
	reset : function(){
		var f = document.getElementById('quoteWizard');
		f.reset();
	},
	initSize : function() {
		
		var eventType = 'change';
		var tankTables = $$('.tank');
		var type = '';
		tankTables.each(function(tt, key) {
			if(!tt.hasClass('hidden')) {
				var i = key + 1;
				type = 'tank_type_' + i;
				if($(type)) {					
					Quote.setSize(type, i);
				}
			}
			i++;
		});
		
		Quote.eventSize();
		
	},
	eventSize : function() {
		
		var eventType = 'change';
		var tankTables = $$('.tank');
		var type = '';
		tankTables.each(function(tt, key) {
			if(!tt.hasClass('hidden')) {
				var i = key + 1;
				type = 'tank_type_' + i;
				if($(type)) {
					$(type).addEvent(eventType, function(ev){
						Quote.setSize(type, i);
					});
				}
			}
		});
	},
	setSize : function(type, i) {
		var el = $(type);
		var corrRuralSizes = ['22,000L - (height: 3.53m)', '22,000L - (height: 3.73m)', '27,000L',
					 '36,400L', '40,950L', '45,500L', '50,500L'];
		var smoothRuralSizes = ['20,000L', '22,800L', '25,000L', '30,000L', '45,000L'];
		
		var corrSuburban = ['8,000L','9,000L - (height: 1.92m)','9,000L - (height: 1.45m)','13,500L'];
		var smoothSuburban = ['10,000L','10,200L','15,000L',];
		
		var corrDomesticSizes = ['545L','900L','1,000L','1,600L','2,300L','4,500L - (height: 1.83m)','4,500L - (height: 2.25m)','5,000L','5,400L'];
		
		var smoothDomesticSizes = ['2,000L','3,000L','5,000L','5,200L'];
		
		
		var corrSlimlineSizes = ['1,140L','1,500L','2,500L'];
		var smoothSlimlineSizes = ['3,001L'];
		var modularSlimlineSizes = ['1,400L','1,500L','2,000L','2,100L','2,250L','2,260L','2,800L','3,000L - (height: 2.18m)','3,000L - (height: 2.025m)','4,000L','5,000L'];
		
		var bladderHiddenSizes = ['Please contact us directly for free quote - Bladder Hidden Tank']

		var underdeckHiddenSizes = ['1,800L','2,00L']
		var undergroundHiddenSizes = ['3,000L','5,000L']
		
		var steelSizes = ['Please contact us directly for free quote - Steel Tank']

		tankSize = 'tank_size_' + i;
		
		switch(el.value) {
				case 'Corrugated Rural Tanks':
					Quote.drawSizes(corrRuralSizes, tankSize);
					break;
				case 'Smooth Sided Rural Tanks':
					Quote.drawSizes(smoothRuralSizes, tankSize);
					break;
					
					
				case 'Suburban Corrugated Tanks':
					Quote.drawSizes(corrSuburban, tankSize);
					break;					
					
				case 'Suburban Smooth Tanks':
					Quote.drawSizes(smoothSuburban, tankSize);
					break;						






					
				case 'Corrugated Domestic Tanks':
					Quote.drawSizes(corrugatedSizes, tankSize);
					break;
					
					
				case 'Smooth Domestic Tanks':
					Quote.drawSizes(smoothDomesticSizes, tankSize);
					break;		
					
					
				case 'Corrugated Slimline Tanks':
					Quote.drawSizes(orrSlimlineSizes, tankSize);
					break;

				case 'Smooth Slimline Tanks':
					Quote.drawSizes(smoothSlimlineSizes, tankSize);
					break;
					
				case 'Modular Slimline Tanks':
					Quote.drawSizes(modularSlimlineSizes, tankSize);
					break;
					
				case 'Bladder Hidden Tank':
					Quote.drawSizes(bladderHiddenSizes, tankSize);
					break;					
					
					
					
				case 'Bladder Underdeck Tank':
					Quote.drawSizes(underdeckHiddenSizes, tankSize);
					break;
					
					
				case 'Bladder Underground Tank':
					Quote.drawSizes(undergroundHiddenSizes, tankSize);
					break;	
					


				case 'Steel Tank':
					Quote.drawSizes(steelSizes, tankSize);
					break;	
					
				default:
			}
	},
	drawSizes : function(sizes, tank_size) {
		var tankSize = document.forms[0].elements[tank_size];
		tankSize.options.length = 0;
		tankSize.options[0] = new Option('Please select...', '', false, false);
		
		var tankNo = tank_size.split('_');
		var selectedTankSize = document.getElementById('size_value_'+tankNo[2]).innerHTML;
		
		sizes.each(function(ar, key){
			selected = false;
			
			if(selectedTankSize == ar) {
				selected = true;
			}
						
			tankSize.options[key + 1] = new Option(ar, ar, false, selected);		
		});
	},
	addTank : function() {
		//get the tank tables
		var tank_one = $('tank_1');
		var tank_two = $('tank_2');
		var tank_thr = $('tank_3');
		
		if(tank_two) {
			tank_two.addClass('hidden');
		}
		if(tank_thr) {
			tank_thr.addClass('hidden');
		}
		
		
		
		var addTank = $('addTank');
		if(addTank) {
			addTank.addEvent('click', function(el) {
				// if tank_two table is hidden show it on click and do nothing else 
				if(tank_two.hasClass('hidden')) {
					tank_two.removeClass('hidden');
					Quote.eventSize();
					return false;
				}
				// if tank_thr table is hidden show it on click and do nothing else 
				if(tank_thr.hasClass('hidden')) {
					tank_thr.removeClass('hidden');
					Quote.eventSize();
					addTank.set('text', '');
				}
				return false;
			});
			
		}
		
	},
	addPump : function() {
		
		var pump_one = $('pump_1');
		var pump_two = $('pump_2');
		var pump_thr = $('pump_3');
		
		if(pump_two) {
			pump_two.addClass('hidden');
		}
		if(pump_thr) {
			pump_thr.addClass('hidden');
		}
		
		var addPump = $('addPump');
		if(addPump) {
			addPump.addEvent('click', function(el) {
				// if pump_two table is hidden show it on click and do nothing else 
				if(pump_two.hasClass('hidden')) {
					pump_two.removeClass('hidden');
					return false;
				}
				// if pump_thr table is hidden show it on click and do nothing else 
				if(pump_thr.hasClass('hidden')) {
					pump_thr.removeClass('hidden');
					addPump.set('text', '');
				}
				return false;
			});
		}
		
	}
}