function diyTips() {
	var tipNav = document.getElementById('tipsList');
	var arrTips = tipNav.getElementsByTagName('a');
	var currentTip = arrTips[0].parentNode; //default
	var currentContent;

	var arrDIVs = document.getElementsByTagName('div');
	var arrTipContent = [];
	for(var i = 0; i < arrDIVs.length; i++) {
		if (arrDIVs[i].className.indexOf(''+'tipContent'+'') > -1) {
			arrTipContent[arrTipContent.length] = arrDIVs[i];
		}
	}
	for(var i = 0; i < arrTipContent.length; i++) {
		if(i == 0) {
			currentContent = arrTipContent[i]; //default
		} else {
			arrTipContent[i].className += ' noShow';
		}
	}

	for(var i = 0; i < arrTips.length; i++) {
		arrTips[i].onclick = function() {
			var oParent = this.parentNode;
			if (oParent == currentTip) {return false;}

			if (currentContent.className.indexOf('noShow') <= -1) {
				currentContent.className += ' noShow';
			}

			var contentId = this.href.substr(this.href.indexOf('#')+1);
			var oContent = document.getElementById(contentId);

			if (oContent.className.indexOf(''+'noShow'+'') > -1) {
				oContent.className = oContent.className.substr(0, oContent.className.indexOf(' noShow'));
			}
			currentContent = oContent;
			
			if (oParent.className.indexOf(''+'selected'+'') <= -1) {
				oParent.className += ' selected';
			}
			if (currentTip.className.indexOf(''+'selected'+'') > -1) {
				currentTip.className = currentTip.className.substr(0, currentTip.className.indexOf(' selected'));
			}
			currentTip = oParent;
			return false;
		}
	}
}

function initToggleButtons() {
	var arrDIVs = document.getElementsByTagName('div');

	for(var i = 0; i < arrDIVs.length; i++) {
		if (arrDIVs[i].className.indexOf(''+'buttonContainer'+'') > -1) {
			arrDIVs[i].onclick = function() {
				toggleCalc();
			}
		}
	}
}

function toggleCalc() {
	var oRoot = document.getElementById('calcContainer');
	if (oRoot.className.indexOf(''+'noShow'+'') > -1) {
		oRoot.className = oRoot.className.substr(0, oRoot.className.indexOf(' noShow'));

		// Omniture
		s=s_gi(s_account);
		s.linkTrackVars='events';
		s.linkTrackEvents='event4, event17';
		s.events='event4, event17';
		s.tl(this, 'o', 'Paint Calculator');
		sendDynamicSpotlightTag("tools", "pntcalc");
		//alert("event 4 sent for Paint Calculator");
	} else {
		oRoot.className += ' noShow';
	}
}

function initCalcTabs() {
	var oRoot = document.getElementById('calcTabs');
	var arrTabs = oRoot.getElementsByTagName('a');
	var currentTab = arrTabs[0].parentNode; //default
	var currentContent = document.getElementById('interior');
	var closeButton = arrTabs.length-1;

	for(var i = 0; i < (arrTabs.length-1); i++) {
		arrTabs[i].onclick = function() {
			var oParent = this.parentNode;
			if (oParent == currentTab) {return false;}

			if (currentContent.className.indexOf('hide') <= -1) {
				currentContent.className += ' hide';
			}

			var contentId = this.href.substr(this.href.indexOf('#')+1);
			var oContent = document.getElementById(contentId);

			if (oContent.className.indexOf(''+'hide'+'') > -1) {
				oContent.className = oContent.className.substr(0, oContent.className.indexOf(' hide'));
			}
			currentContent = oContent;
			
			if (oParent.className.indexOf(''+'selected'+'') <= -1) {
				oParent.className += ' selected';
			}
			if (currentTab.className.indexOf(''+'selected'+'') > -1) {
				currentTab.className = currentTab.className.substr(0, currentTab.className.indexOf(' selected'));
			}
			
			gE("surfaceArea").innerHTML = 0;
			gE("paintNeeded").innerHTML = 0;
			
			currentTab = oParent;
			return false;
		}
	}

	arrTabs[closeButton].onclick = function() {
		toggleCalc();
	}
}

	function getMeasurementType(){
		if(document.getElementById('metric').checked){
			return 'metric';
		}
		else if(document.getElementById('us').checked){
			return 'us';
		}
		else {
			// Return a default just in case no radios are checked (This should never happen)
			return 'us';
		}
	}
	
	function clearCalcFields(){
	    var intForm = document['int'];
		var exForm = document['ex'];
			
		intForm['int_num_width'].value = 0;
		intForm['int_num_length'].value = 0;
		intForm['int_num_height'].value = 0;
		intForm['int_num_doors'].value = 0
		intForm['int_num_windows'].value = 0;
		exForm['ex_num_perimeter'].value = 0
		exForm['ex_num_height'].value = 0;
		exForm['ex_num_doors'].value = 0;
		exForm['ex_num_windows'].value = 0;
		exForm['ex_num_garage'].value = 0;
		
		gE("surfaceArea").innerHTML = 0;
		gE("paintNeeded").innerHTML = 0;
		
	}
	
	function initCalc(){
		
		var measurementType = getMeasurementType();
		var interiorDefaultsUS = document.getElementById('interiorDefaultsUS');
		var interiorDefaultsMetric = document.getElementById('interiorDefaultsMetric');
		var exteriorDefaultsUS = document.getElementById('exteriorDefaultsUS');
		var exteriorDefaultsMetric = document.getElementById('exteriorDefaultsMetric');

		if (measurementType == 'metric') {
			interiorDefaultsUS.className = 'hide';
			exteriorDefaultsUS.className = 'hide';
			interiorDefaultsMetric.className = '';
			exteriorDefaultsMetric.className = '';

			gE("roomWidthMeasurementAbbreviation").innerHTML = "m";
			gE("roomLengthMeasurementAbbreviation").innerHTML = "m";
			gE("roomHeightMeasurementAbbreviation").innerHTML = "m";
			gE("homePerimeterMeasurementAbbreviation").innerHTML = "m";
			gE("homeHeightMeasurementAbbreviation").innerHTML = "m";
			
			gE("areaAbbreviation").innerHTML = "sq m";
			gE("volume").innerHTML = "litre(s)";
		}
		else {
			interiorDefaultsUS.className = '';
			exteriorDefaultsUS.className = '';
			interiorDefaultsMetric.className = 'hide';
			exteriorDefaultsMetric.className = 'hide';
		
			gE("roomWidthMeasurementAbbreviation").innerHTML = "ft";
			gE("roomLengthMeasurementAbbreviation").innerHTML = "ft";
			gE("roomHeightMeasurementAbbreviation").innerHTML = "ft";
			gE("homePerimeterMeasurementAbbreviation").innerHTML = "ft";
			gE("homeHeightMeasurementAbbreviation").innerHTML = "ft";

			gE("areaAbbreviation").innerHTML = "sq ft";
			gE("volume").innerHTML = "gallon(s)";
		}




		interiorDefaultsUS.options[0].selected = 'true';
		interiorDefaultsMetric.options[0].selected = 'true';
		exteriorDefaultsUS.options[0].selected = 'true';
		exteriorDefaultsMetric.options[0].selected = 'true';
		
		clearCalcFields();
		
	}
	
	function calcResults(whichForm){
	
		var PaintFactor;
		var AverageWindowArea;
		var AverageDoorArea;
		var AverageGarageDoorArea;
		var SurfaceArea;
		var PaintReq;
		var int_rm_width;
		var int_rm_length;
		
	    var  f = document[whichForm];
	    var errs = 0;
	    var errMsg = ""
	    var expr1;
		var int_num_doors;
		var int_num_windows;
		
		var measurementType = getMeasurementType();
		
	    expr1 = /^[0-9][0-9]*\.?[0-9]*$/; 
		if(whichForm == "int") {
		    if(f[whichForm + "_num_width"].value=="" | expr1.test(f[whichForm + "_num_width"].value)==false){
		        errs += 1;
		        errMsg += "Please enter a number for the room width " + "\n";
		    }
		
		    if(f[whichForm + "_num_length"].value=="" | expr1.test(f[whichForm + "_num_length"].value)==false){
		        errs += 1;
		        errMsg += "Please enter a number for the room length " + "\n";
		    }
	    }else {
	    	 if(f[whichForm + "_num_perimeter"].value=="" | expr1.test(f[whichForm + "_num_perimeter"].value)==false){
		        errs += 1;
		        errMsg += "Please enter a number for the perimeter " + "\n";
		    }
		    if(f[whichForm + "_num_garage"].value=="" | expr1.test(f[whichForm + "_num_garage"].value)==false){
		        errs += 1;
		        errMsg += "Please enter a number for the garage doors " + "\n";
		    }
		    
	    }
	    if(f[whichForm + "_num_height"].value=="" | expr1.test(f[whichForm + "_num_height"].value)==false){
	        errs += 1;
	        if(whichForm == "int") {
		        errMsg += "Please enter a number for the room height " + "\n";
		    }else {
		    	errMsg += "Please enter a number for the height of your home " + "\n";
		    }
	    }
	    if(!(f[whichForm + "_num_windows"].value=="")){
	        if(expr1.test(f[whichForm + "_num_windows"].value)==false){
	            errs += 1;
	            errMsg += "Please enter a number for the number of windows " + "\n";
	        }
	    } else {
	        //default the field to 0
	        f[whichForm + "_num_windows"].value = 0;
	    }
		
	    if(!(f[whichForm + "_num_doors"].value=="")){
	    	if(expr1.test(f[whichForm + "_num_doors"].value)==false) {
	            errs += 1;
	            errMsg += "Please enter a number for the number of doors " + "\n";
	        }
	    } else {
	        //default the field to 0
	        f[whichForm + "_num_doors"].value = 0;
	    }
	
	    /*if(!(f.Deduct.value=="")){
	        if(expr1.test(f.Deduct.value)==false){
	            errs += 1;
	            errMsg += "Please enter a number for the other deductions " + "\n";
	        }
	    } else {
	        //default the field to 0
	        f.Deduct.value = 0;
	    }*/
	
	    if(errs > 0){
	        alert(errMsg);
	        return false;
	    } else {
	    			if(measurementType == "us") {
	    				//set values in US measurements
	    				PaintFactor = 350;
	    				AverageWindowArea = 15;
	    				AverageDoorArea = 21;
	    				AverageGarageDoorArea = 84;
	    			}
	    			else {
	    				//set values in metric measurements
	    				PaintFactor = 8.6;
	    				AverageWindowArea = 1.394;
	    				AverageDoorArea = 1.95;
	    				AverageGarageDoorArea = 7.80;
	    			}
	    			
					int_num_windows = f[whichForm + "_num_windows"].value * AverageWindowArea;
					int_num_doors = f[whichForm + "_num_doors"].value * AverageDoorArea;
					if(whichForm == "int") {
						int_rm_length = f[whichForm + "_num_length"].value * 2;
						int_rm_width = f[whichForm + "_num_width"].value * 2;
						base = int_rm_length + int_rm_width;
					}else {
						base = Math.floor(f[whichForm + "_num_perimeter"].value);
					}
					garageDoors = 0;
					if(whichForm == "ex") {
						garageDoors = f[whichForm + "_num_garage"].value * AverageGarageDoorArea;
					}
					
					rm_height = f[whichForm + "_num_height"].value;
					
					Deduct = int_num_windows + int_num_doors + garageDoors;
					
					SurfaceArea = (base * rm_height) - Deduct;
					PaintReq = Math.ceil(SurfaceArea/PaintFactor);
					
					if(SurfaceArea <= 0) {
						SurfaceArea = 0;
						//alert("Your calculation resulted in a negative number, please check measurements");
						PaintReq = 1;
					}
					
					gE("surfaceArea").innerHTML = SurfaceArea.toFixed(2);
					gE("paintNeeded").innerHTML = PaintReq;
					
					
	    }
}
function addDefaultValues(calcType, selectBox) {
	var  f = document[calcType];
	var preSplit = selectBox.options[selectBox.selectedIndex].value;
	var values = preSplit.split(",");
	if(calcType == "int") {
		f[calcType + "_num_width"].value = values[0];
		f[calcType + "_num_length"].value = values[1];
		f[calcType + "_num_height"].value = values[2];
		f[calcType + "_num_doors"].value = values[3];
		f[calcType + "_num_windows"].value = values[4];
	}else if(calcType == "ex") {
		f[calcType + "_num_perimeter"].value = values[0];
		f[calcType + "_num_height"].value = values[1];
		f[calcType + "_num_doors"].value = values[2];
		f[calcType + "_num_windows"].value = values[3];
		f[calcType + "_num_garage"].value = values[4];
	}
	
	calcResults(calcType);
	
}
function checkForOpenCalc() {
	if(getQSValue("openCalc") != false) {
		toggleCalc();
	}
}

windowObject.addLoadFunction(diyTips,initToggleButtons,initCalcTabs,checkForOpenCalc,initCalc);