/**
 * @author robyn
 */

 
 
var subnavObjects = [];
var currentStep = 1;
var currentSubStep = 0;
var Subnav=Class.create();
var vehicleQty = 2;
var frigeQty = 1;

var mainnav = ['location & size', 'household', 'heating & cooling', 'appliances', 'trash', 'water', 'transportation'];


function forwardToProjects() {
	window.location = '/projects/checklist';
}

function forwardToStart() {

	window.location = '/scores';
}

function resetDefaults() {
	
	window.location = '/scores/reset';
}

Subnav.prototype={
	initialize:function(step, id, name, target) {
		this.step = step;
		this.id = id;
		this.name = name;
		this.hasVisited = 'false';
		this.currentlySelected = 'false';
		this.target = target;
		this.ref = step + "_" + id;
	},
	render: function() {
		makeSubnavElement(this);
	},
	setActive: function() {
		this.hasVisited = 'true';
	},
	setCurrent: function() {
		this.hasVisited = 'true';
		this.currentlySelected = 'true';
	},
	setNotCurrent: function() {
		this.currentlySelected = 'false';
	}
};


function defineStepObjects() {
	
	
	stepObjects = mainnav;//['location & size', 'household', 'heating & cooling', 'appliances', 'trash', 'water', 'transportation'];
	

}

function defineSubnavObjects() {
	
	
	var subnav = [['null'],
		['size', 'history'],
		['fuel', 'heating', 'cooling', 'efficiency'],
		['dishes', 'cooking', 'laundry', 'refrigeration'],
		['recycling'],
		['irrigation'],
		['how many cars', 'air travel']
	];
	
	var targetElement = $('questionsNav');
	for (var k = 0; k < 7; k++) {
		var step = new Array();
		for (var n = 0; n < subnav[k].length; n++) {
			step.push(new Subnav(k, n, subnav[k][n], targetElement));
		}
		subnavObjects[k]= step;
	}
	
}

function drawStep(Step){
	if (Step == '0') {
		currentStep = 1;
	} else {
		currentStep = Step;
	}
	updateStepnav(currentStep);
	currentSubStep = 0;
	makeSubnav(currentStep, currentSubStep);
	makeFormInputs( currentStep + '_0');
	
	updateLastScreenQuestion(currentStep, currentSubStep);
	
	// send form to server with updated values for last_screen and last_question
	sendAjaxRequest(); 
}


function drawStepBackwards(Step){
	if (Step == '0') {
		currentStep = 1;
	} else {
		currentStep = Step;
	}
	updateStepnav(currentStep);
	currentSubStep = subnavObjects[currentStep].length - 1;
	makeSubnav(currentStep, currentSubStep);
	makeFormInputs( currentStep + '_' + currentSubStep);
	
	updateLastScreenQuestion(currentStep, currentSubStep);
	
	// send form to server with updated values for last_screen and last_question
	sendAjaxRequest(); 
}

function clickNext() {
	
	// temporary bug fix.  not sure how variable is being set to '11'
	if (currentStep == '11') {
		currentStep = 1;
	}
	if (currentStep == '0') {
		currentStep = 1;
	}
	if (parseInt(currentSubStep) + 1 > subnavObjects[currentStep].length - 1) {
		if (currentStep == 6) {
			//drawStep(0);
Tip('<table border=\'0\' cellspacing=\'5\'><tr><th colspan=\'2\' style=\'font-size:8pt;background:#ffffff;font-color:#84C507\'>Create an account and save your inputs! It takes no more than a few seconds.<\/th><\/tr><tr><td width=\'140\' height=\'50\' align=\'center\' style=\'font-size:8pt;background:#EBEDE4;border:2px solid #BFEAF2;vertical-align:middle\'><strong><a href=\'/users/register?dest=/scores/save\'>Create an account<\/a><\/strong><\/td><td align=\'center\' style=\'font-size:8pt;background:#EBEDE4;border:2px solid #BFEAF2\'><strong><a href=\'/projects\/checklist\'>Proceed directly to projects<\/a><\/strong><\/td><\/tr><\/table>', STICKY, true, WIDTH, 300, HEIGHT, 100, TITLE, 'Have you saved your inputs?', SHADOW, false, FADEIN, 300, FADEOUT, 300, CLOSEBTN, true, CLICKCLOSE, true, DURATION, 5000, BGCOLOR, '#ffffff')
//			sendAjaxRequestToProjects();
      		pageTracker._trackPageview("/scores/events/next/" + (currentStep) + "+" + (currentSubStep));
			//forwardToProjects();
			// replace this with a forward to the projects page
		} else {
			drawStep(parseInt(currentStep) + 1);
			sendAjaxRequest(); 
      		pageTracker._trackPageview("/scores/events/next/" + (currentStep) + "+" + (currentSubStep));
		}
	} else {
		var obj = subnavObjects[currentStep][parseInt(currentSubStep) + 1];
		obj.setActive();
		makeSubnav(obj.step, obj.id);
		makeFormInputs(obj.ref);
    	pageTracker._trackPageview("/scores/events/next/" + (currentStep) + "+" + (currentSubStep));
		updateLastScreenQuestion(currentStep, currentSubStep);
		sendAjaxRequest();
	}
	// send form to server with updated values for last_screen and last_question
	// sendAjaxRequest(); 
}


function clickPrevious() {
	
	if (currentStep == '11') {
		currentStep = 1;
	}
	
	if (currentStep == 1 && parseInt(currentSubStep) == 0) {
    pageTracker._trackPageview("/scores/events/prev/" + (currentStep) + "+" + (currentSubStep));
//		forwardToStart();
		sendAjaxRequestToStart(); 
	}
	else {
	
		if (parseInt(currentSubStep) - 1 < 0) {
			if (currentStep == 1) {
        pageTracker._trackPageview("/scores/events/prev/" + (currentStep) + "+" + (currentSubStep));
//				forwardToStart();
				sendAjaxRequestToStart(); 
			}
			else {
        pageTracker._trackPageview("/scores/events/prev/" + (currentStep) + "+" + (currentSubStep));
				drawStepBackwards(parseInt(currentStep) - 1);
				sendAjaxRequest(); 
			}
		}
		else {
			var obj = subnavObjects[currentStep][parseInt(currentSubStep) - 1];
			obj.setActive();
			makeSubnav(obj.step, obj.id);
			makeFormInputs(obj.ref);
			updateLastScreenQuestion(currentStep, currentSubStep);
      		pageTracker._trackPageview("/scores/events/prev/" + (currentStep) + "+" + (currentSubStep));
			sendAjaxRequest(); 
		}
	}
	// send form to server with updated values for last_screen and last_question
//	sendAjaxRequest(); 
}


function clickMoveOn() {
	if (currentStep == 6) {
		//drawStep(0);
		forwardToProjects();
		// replace this with a forward to the projects page
	} else {
		drawStep(parseInt(currentStep) + 1);
	}

}

function updateStepnav(Step) {

	var stepLinks = $('calcStepsMenu').getElementsBySelector('a');
	var updateStepLinks = function(el, index) {
		if (el.id == Step) {
			if (el.hasClassName('selected')==false) {
				el.addClassName('selected');
			}
		} else {
			if (el.hasClassName('selected')) {
				el.removeClassName('selected');
			}
		}
	}
	stepLinks.each(updateStepLinks);
	
	$('locationText').update(mainnav[Step]);
}


var madeNavigation = false;
function makeNavigationStart() {
	if (madeNavigation == false) {
		$('calcBar').removeClassName('calcBarIntro');
		$('introLili').remove();
		$('introCopy').remove();
		
		//var stepObjects = ['location & size', 'household', 'heating & cooling', 'appliances', 'waste', 'water', 'transportation'];
		var renderStep = function(stepObject, index){
			makeStepnavElementStart(index, stepObject);
		}
		mainnav.each(renderStep);
		madeNavigation = true;
		$('0').addClassName('selected');
		
		// make next button
		var a = new Element('a', {href:'/scores/calculate', 'class':'next'}).update('next');
		$('nextNav').appendChild(a);
		
		// make start over button container
		var div = new Element('div', {'class':'calcFormBtnPanel'});
		
		// make start over button
		var a = new Element('a', {href:'/scores/clear', 'id':'resetButton', 'class':''}).update('clear answers and reset form');
		div.appendChild(a);
		$('calculateImpacts').appendChild(div);
		
		// make skip to projects button
		var p = new Element('p').update('<a href="/projects/checklist" id="skipToProjectsButton">skip to projects using remaining default values</a><br/>Defaults are based on typical estimates for your region.');
		$('skipNav').appendChild(p);
		
		if ($('messageBoxWarning') != undefined) {
			$('messageBoxWarning').remove();
		}
		
		if ($('flashMessage') != undefined) {
			$('flashMessage').remove();
		}
		
		$('finalLiliLabel').update('<a href="/pages/lili_faq#3" target="_blank"><img src="/images_calculator/my_lili.png"/></a>');
		$('finalLiliHelp').update('<br/><a class="help" href="/pages/lili_faq#3" target="_blank">what is a LILI?</a>');
		
		// remove yellow highlight from zip field
		$('zipWrapper').addClassName('zipWrapperUnfocus');

	}
}

function makeNavigationCalculate() {
	if (madeNavigation == false) {
		var renderStep = function(stepObject, index){
			makeStepnavElementCalculate(index, stepObject);
		}
		mainnav.each(renderStep);
		madeNavigation = true;

	}
}


function makeSubnav(Step, Id) {
	currentStep = Step;
	currentSubStep = Id;
	clearChildren ($('questionsNav'));
	var renderQuestion = function(subnavObject, index) {
		if (index == Id) {
			subnavObject.setCurrent(); 
		} else {
			subnavObject.setNotCurrent();
		}
		subnavObject.render();
	}
	subnavObjects[Step].each(renderQuestion);
}

function makeFormInputs(ref){
	removeObservers();
	eval('makeFormInputsForStep' + ref + '()');
	
}


	

	
	
// DOM ELEMENT METHODS


function makeQuestionHeadline(txt) {
	var target = $('questionHeadline');
	target.update(txt);
}



function makeStepnavElementStart(id, name) {

	var li = new Element('li');
	var a = new Element('a', { 'class':'stepnav', id:id}).update(name);
	li.appendChild(a);
	$("calcStepsMenu").appendChild(li);
	a.observe('click',  
		  function(event){ 
			window.location = '/scores/calculate/' + (id);
		  } 
	);
	a.observe('mouseover',  
		  function(event){ 
			event.target.addClassName('over');
		  } 
	);
	a.observe('mouseout',  
		  function(event){ 
			event.target.removeClassName('over');
		  } 
	);
	a.observe('mousedown',  
		  function(event){ 
			event.target.addClassName('down');
		  } 
	);
	a.observe('mouseup',  
		  function(event){ 
			event.target.removeClassName('down');
		  } 
	);
}

function makeStepnavElementCalculate(id, name) {

	var li = new Element('li');
	var a = new Element('a', { 'class':'stepnav', id:id}).update(name);
	li.appendChild(a);
	$("calcStepsMenu").appendChild(li);
	
	a.observe('click',  
		  function(event){ 
		  	if (id == 0) {
				forwardToStart();
			}
			else {
				drawStep(id);
        pageTracker._trackPageview("/scores/events/clickto" + (name));
			}
		  } 
	);
	a.observe('mouseover',  
		  function(event){ 
			event.target.addClassName('over');
		  } 
	);
	a.observe('mouseout',  
		  function(event){ 
			event.target.removeClassName('over');
		  } 
	);
	a.observe('mousedown',  
		  function(event){ 
			event.target.addClassName('down');
		  } 
	);
	a.observe('mouseup',  
		  function(event){ 
			event.target.removeClassName('down');
		  } 
	);
}

function makeSubnavElement(subnavObject) {

	var li = new Element('li');
	var a = new Element('a', { 'class':'subnav'}).update(subnavObject.name);
	if (subnavObject.hasVisited == 'true') {
		a.addClassName('visited');
	}
	if (subnavObject.currentlySelected == 'true') {
		a.addClassName('selected');
	} 
	li.appendChild(a);
	subnavObject.target.appendChild(li);
	a.observe('click',  
		  function(event){ 
			subnavObject.setActive();
			makeSubnav(subnavObject.step, subnavObject.id);
			makeFormInputs(subnavObject.ref);
		  } 
	);
	a.observe('mouseover',  
		  function(event){ 
			event.target.addClassName('over');
		  } 
	);
	a.observe('mouseout',  
		  function(event){ 
			event.target.removeClassName('over');
		  } 
	);
	a.observe('mousedown',  
		  function(event){ 
			event.target.addClassName('down');
		  } 
	);
	a.observe('mouseup',  
		  function(event){ 
			event.target.removeClassName('down');
		  } 
	);
}


function makeQuantityOption(id, callback, target){
	
	var ul = new Element('ul');
	ul.addClassName("chooseQty");
		var a = new Element('a', { 'class':'chooseQty'}).update(id);
		ul.appendChild(a);
		a.observe('click',  
			  function(event){ 
				eval(callback + '(' + id + ')');
			  } 
		);
	target.appendChild(ul);
	
}

function makeQuestionNote(label, target) {
	var span = new Element('span', { 'class':'note' }).update(label);
	target.appendChild(span);
}

	
function makeMessageFlash(message) {

	if (message != "" && message != undefined) {
		// inserts message after target
		var target = $('head');
		if ($('flashMessagePage') != undefined) {
			$('flashMessagePage').remove();
		}
		
		if ($('flashMessagePage') == undefined) {
			var mb = new Element('div', {
				id: 'flashMessagePage'
			}).update(message);
			new Insertion.After(target, mb);


			layoutManager.reset();
		}
		
	}
	
}



function makeInvalidZipMessage(message) {
	
	if (message != "" && message != undefined) {
		// inserts message after target
		var target = $('zipWrapper');
		if ($('flashMessage') != undefined) {
			$('flashMessage').remove();
		}
		
		if ($('flashMessage') == undefined) {
			var mb = new Element('div', {
				id: 'flashMessage'
			}).update(message);
			new Insertion.After(target, mb);


			layoutManager.reset();
		}
		
	}	
	
}



function clearMessageFlash() {
	if ($('flashMessagePage') != undefined) {
		$('flashMessagePage').remove();
		layoutManager.reset();
	}
}


function makeMessageTip(message) {
	if ($('messageBoxWarning') != undefined) {
		$('messageBoxWarning').remove();
	}
	if ($('messageBoxTip') == undefined) {
		var mb = new Element('div', { id:'messageBoxTip' });
		new Insertion.After('calculateImpacts',mb);
	}
	$('messageBoxTip').update(message);
	$('messageBoxTip').setStyle({
			backgroundColor: '#ebede4'
		});
	
	$('messageBoxTip').morph({ 
				backgroundColor: '#cdedf9'
			}, {duration:.4}
	); 

}
	
function makeQuestionInput(id, label, target){ 

	var ul = new Element('ul', { id: "q_" + id });

		var span = new Element('span').update(label);
		ul.appendChild(span);
		
		var input = new Element('input', { id: id, name: 'data[Scores][' + id + ']' });
		ul.appendChild(input);
	
	target.appendChild(ul);  
} 

	
function makeQuestionInput_w_note(id, label, note, target){ 

	var ul = new Element('ul', { id: "q_" + id });

		var span = new Element('span').update(label);
		ul.appendChild(span);
		
		makeQuestionNote(note, ul);
		
		var input = new Element('input', { id: id, name: 'data[Scores][' + id + ']' });
		ul.appendChild(input);
		
	
	target.appendChild(ul);  
} 


	
function makeQuestionInputSmall(id, label, target){ 

	var li = new Element('li', { id: "q_" + id, 'class':'small' });

		var span = new Element('span', {'class':'small'}).update(label);
		li.appendChild(span);
		
		var input = new Element('input', { id: id, name: 'data[Scores][' + id + ']', 'class':'small'});
		li.appendChild(input);
	
	target.appendChild(li);  
} 



	
function makeQuestionInputXSmall(id, label, target){ 

	var li = new Element('li', { id: "q_" + id, 'class':'xsmall' });

		var span = new Element('span', {'class':'small'}).update(label);
		li.appendChild(span);
		
		var input = new Element('input', { id: id, name: 'data[Scores][' + id + ']', 'class':'small'});
		li.appendChild(input);
	
	target.appendChild(li);  
} 
		
	
function makeQuestionInputPosition(id, label, neighbor, direction){ 

	var ul = new Element('ul', { id: "q_" + id });
	
		var span = new Element('span').update(label);
		ul.appendChild(span);
		
		var input = new Element('input', { id: id, name: 'data[Scores][' + id + ']' });
		ul.appendChild(input);
		
		if (neighbor != null) {
			if (direction== 'after') {
				new Insertion.After(neighbor,ul);
			} else {
				new Insertion.Before(neighbor,ul);
			}
		}
	  
} 


function makeQuestionSelect(id, label, options, target) {

	var ul = new Element('ul', { id: "q_" + id });
	
		var span = new Element('span').update(label);
		ul.appendChild(span);
		
		var select = new Element('select', { id: id, name: 'data[Scores][' + id + ']' });
		options.each(function(item) {
			var option = new Element('option', { 'value': item }).update(item);
			select.appendChild(option);
		});

		ul.appendChild(select);
		
	target.appendChild(ul); 
}



function makeQuestionSelect_w_note(id, label, note, options, values, target) {

	var ul = new Element('ul', { id: "q_" + id });
	
		var span = new Element('span').update(label);
		ul.appendChild(span);
		
		makeQuestionNote(note, ul);
		
		var select = new Element('select', { id: id, name: 'data[Scores][' + id + ']' });
		options.each(function(item, index) {
			var option = new Element('option', { 'value': values[index] }).update(item);
			select.appendChild(option);
		});

		ul.appendChild(select);
		
	target.appendChild(ul); 
}

function makeQuestionSelectValues(id, label, options, values, target) {

	var ul = new Element('ul', { id: "q_" + id });
	
		var span = new Element('span').update(label);
		ul.appendChild(span);
		
		var select = new Element('select', { id: id, name: 'data[Scores][' + id + ']' });
		options.each(function(item, index) {
			var option = new Element('option', { 'value': values[index] }).update(item);
			select.appendChild(option);
		});

		ul.appendChild(select);
		
	target.appendChild(ul); 
}
function makeQuestionSelectSmall(id, label, options, values, target) {

	var li = new Element('li', { id: "q_" + id, 'class':'small' });
	
		var span = new Element('span', { 'class':'small' }).update(label);
		li.appendChild(span);
		
		var select = new Element('select', { id: id, name: 'data[Scores][' + id + ']', 'class':'small' });
		options.each(function(item, index) {
			var option = new Element('option', { 'value': values[index] }).update(item);
			select.appendChild(option);
		});

		li.appendChild(select);
		
	target.appendChild(li); 
}
function makeQuestionSelectLarge(id, label, options, values, target) {

	var ul = new Element('ul', { id: "q_" + id });
	
		var span = new Element('span', { 'class':'small' }).update(label);
		ul.appendChild(span);
		
		var select = new Element('select', { id: id, name: 'data[Scores][' + id + ']' });
		options.each(function(item, index) {
			var option = new Element('option', { 'value': values[index] }).update(item);
			select.appendChild(option);
		});

		ul.appendChild(select);
		
	target.appendChild(ul); 
}


function makeQuestionRadioSet(id, label, options, target) {

	var ul = new Element('ul', { id: "q_" + id , 'class':'radio'});
	
		var span = new Element('span').update(label);
		ul.appendChild(span);
		
		options.each(function(item) {
			var li = new Element('li');
				var radio = new Element('input', { type: 'radio', 'value': item, id: id, name: 'data[Scores][' + id + ']', 'class':'radio' });
				li.appendChild(radio);
				var labelTxt;
// modified by JWP to test HVAC equipment questions on 1-16-08
				if ((item == 0)||(item==2)) {
					labelTxt = "No";
				} else if (item == 1) {
					labelTxt = "Yes";
				} else {
					labelTxt = item;
				}
				
			var li2 = new Element('li');
				var label = new Element('label').update(labelTxt);
				li2.appendChild(label);
		
			ul.appendChild(li);
			ul.appendChild(li2);
		});

		
	target.appendChild(ul); 
}




function makeQuestionRadioSet_w_note(id, label, options, target, note) {

	var ul = new Element('ul', { id: "q_" + id , 'class':'radio'});
	
		var span = new Element('span').update(label);
		ul.appendChild(span);
		
		makeQuestionNote(note, ul);
		
		options.each(function(item) {
			var li = new Element('li');
				var radio = new Element('input', { type: 'radio', 'value': item, id: id, name: 'data[Scores][' + id + ']', 'class':'radio' });
				li.appendChild(radio);
				var labelTxt;
// modified by JWP to test HVAC equipment questions on 1-16-08
				if ((item == 0)||(item==2)) {
					labelTxt = "No";
				} else if (item == 1) {
					labelTxt = "Yes";
				} else {
					labelTxt = item;
				}
				
			var li2 = new Element('li');
				var label = new Element('label').update(labelTxt);
				li2.appendChild(label);
		
			ul.appendChild(li);
			ul.appendChild(li2);
		});

		
	target.appendChild(ul); 
}


function makeQuestionRadio(id, value, target) {
		
	var radio = new Element('input', { type: 'radio', 'value': value, id: id, name: 'data[Scores][' + id + ']', 'class':'radio' });
	target.appendChild(radio);
	
}

function makeQuestionSlider(id, label, target, range_l, range_r, steps, unit, initValue, comma, round) {
	var initialValue = parseFloat(initValue); 
	var ul = new Element('ul', { id: "q_" + id });

		var span = new Element('span').update(label);
		ul.appendChild(span);
		
			var rangeDisplay = range_l;
			if (comma == true) {
				rangeDisplay = Comma(range_l);
			}
			var trackDivRangeLeft = new Element('div', { 'class':'sliderTrackRangeLeft' }).update(rangeDisplay + " " + unit);
			ul.appendChild(trackDivRangeLeft);	
			
			rangeDisplay = range_r;
			if (comma == true) {
				rangeDisplay = Comma(range_r);
			}
			if (rangeDisplay == 1) {
				rangeDisplay = 100;
			}
			
			var trackDivRangeRight = new Element('div', { 'class':'sliderTrackRangeRight' }).update(rangeDisplay + " " + unit);
			ul.appendChild(trackDivRangeRight);	
				
			var trackDiv = new Element('div', { id:'track_' + id, 'class':'sliderTrack' });
					
				var handleDiv = new Element('div', { id:'handle_' + id, 'class':'sliderHandle' }).update("<img src='/images_calculator/slider-images-handle.png' alt='' style='float: left;' />");
				trackDiv.appendChild(handleDiv);
		
			ul.appendChild(trackDiv);
			var initialValueString = initialValue.toFixed(2) + ' ' + unit;
			if (comma == true) {
				initialValueString = Comma(initialValue) + ' ' + unit;
			}
			if (range_r == 1) {
				initialValueString = Math.round(initialValue * 100) + ' ' + unit;
			}
			if (id=='house_size'){
				initialValueString="";
			}
			if (round == true) {
				if (comma == true) {
					initialValueString = Comma(Math.round(initialValue)) + ' ' + unit;
				} else {
					initialValueString = Math.round(initialValue) + ' ' + unit;
				}
			}
			var outputDiv = new Element('div', { id:'readout_' + id, 'class':'sliderReadout' }).update( initialValueString );
			ul.appendChild(outputDiv);
			
			
			
			var input = new Element('input', { id: id, type:'hidden', name: 'data[Scores][' + id + ']' });
			ul.appendChild(input);

		target.appendChild(ul); 	
  	 
	   	// <![CDATA[
					var mySlider = new Control.Slider($('handle_' + id), $('track_' + id), {
						range: $R(range_l, range_r),
						values: steps,
						sliderValue: initialValue,
						onSlide: function(v){
				
							var vString = v.toFixed(2);
							if (comma == true) {
								vString = Comma(v);
							}
							if (range_r == 1) {
								vString = Math.round(vString * 100);
							}
							if (round == true) {
								if (comma == true) {
									vString = Comma(Math.round(v));
								} else {
									vString = Math.round(v);
								}
							}
							outputDiv.innerHTML = vString + ' ' + unit;
						},
						onChange: function(v){
							var vString = v.toFixed(2);
							if (comma == true) {
								vString = Comma(v);
							}
							if (range_r == 1) {
								vString = Math.round(vString * 100);
							}
							if (round == true) {
								if (comma == true) {
									vString = Comma(Math.round(v));
								} else {
									vString = Math.round(v);
								}
							}
							outputDiv.innerHTML = vString + ' ' + unit;
							input.value = v;
							sliderSubmit(id, v);
						}
					});
				// ]]>	  
						  
}



function makeQuestionSliderLotSize(id, label, target, range_l, range_r, steps, unit, initialValue, comma, round) {

	var ul = new Element('ul', { id: "q_" + id });

		var span = new Element('span').update(label);
		ul.appendChild(span);
		
			var rangeDisplay = range_l;
			if (comma == true) {
				rangeDisplay = Comma(range_l);
			}
			var trackDivRangeLeft = new Element('div', { 'class':'sliderTrackRangeLeft' }).update(rangeDisplay + " acres");
			ul.appendChild(trackDivRangeLeft);	
			
			rangeDisplay = range_r;
			if (comma == true) {
				rangeDisplay = Comma(range_r);
			}
			if (rangeDisplay == 1) {
				rangeDisplay = 100;
			}
			
			
			var trackDivRangeCenter = new Element('div', { 'class':'sliderTrackRangeCenter' }).update("2 acres");
			ul.appendChild(trackDivRangeCenter);	
			
			var trackDivRangeRight = new Element('div', { 'class':'sliderTrackRangeRight' }).update(rangeDisplay + " acres");
			ul.appendChild(trackDivRangeRight);	
				
			var trackDiv = new Element('div', { id:'track_' + id, 'class':'sliderTrack' });
					
				var handleDiv = new Element('div', { id:'handle_' + id, 'class':'sliderHandle' }).update("<img src='/images_calculator/slider-images-handle.png' alt='' style='float: left;' />");
				trackDiv.appendChild(handleDiv);
		
			ul.appendChild(trackDiv);
			var initialValueString = Comma(Math.round(initialValue * 43560)) + ' sq ft';

			
			var outputDiv = new Element('div', { id:'readout_' + id, 'class':'sliderReadout' }).update( initialValueString );
			ul.appendChild(outputDiv);
			
			
			var input = new Element('input', { id: id, type:'hidden', name: 'data[Scores][' + id + ']' });
			ul.appendChild(input);

		target.appendChild(ul); 	
  	 
	   	// <![CDATA[
					var mySlider = new Control.Slider($('handle_' + id), $('track_' + id), {
						range: $R(range_l, range_r),
						values: steps,
						sliderValue: initialValue,
						onSlide: function(v){
							
							outputDiv.innerHTML = Comma(Math.round((v * 43560)/100) * 100) + ' sq ft';
						},
						onChange: function(v){
							var val = v * 43560;
							outputDiv.innerHTML = Comma(Math.round(val)) + ' sq ft';
							input.value = val;
							sliderSubmit(id, val);
						}
					});
				// ]]>	  
						  
}


function makeQuestionSliderHouseSize(id, label, target, range_l, range_r, steps, unit, initialValue, comma, round, showInitialValue) {
	 
	initialValue = parseInt(initialValue);
	var ul = new Element('ul', { id: "q_" + id });

			var rangeDisplay = range_l;
			if (comma == true) {
				rangeDisplay = Comma(range_l);
			}
			var trackDivRangeLeft = new Element('div', { 'class':'sliderTrackRangeLeft' }).update(rangeDisplay + " " + unit);
			ul.appendChild(trackDivRangeLeft);	
			
			rangeDisplay = range_r;
			if (comma == true) {
				rangeDisplay = Comma(range_r);
			}
			if (rangeDisplay == 1) {
				rangeDisplay = 100;
			}
			
			var trackDivRangeRight = new Element('div', { 'class':'sliderTrackRangeRight' }).update(rangeDisplay + " " + unit);
			ul.appendChild(trackDivRangeRight);	
				
			var trackDiv = new Element('div', { id:'track_' + id, 'class':'sliderTrackShort' });
					
				var handleDiv = new Element('div', { id:'handle_' + id, 'class':'sliderHandle' }).update("<img src='/images_calculator/slider-images-handle.png' alt='' style='float: left;' />");
				trackDiv.appendChild(handleDiv);
		
			ul.appendChild(trackDiv);
			var initialValueString = "";
			if (showInitialValue == true) {
				initialValueString = initialValue.toFixed(2) + ' ' + unit;
				if (comma == true) {
					initialValueString = Comma(initialValue) + ' ' + unit;
				}
				if (range_r == 1) {
					initialValueString = Math.round(initialValue * 100) + ' ' + unit;
				}
				if (round == true) {
					if (comma == true) {
						initialValueString = Comma(Math.round(initialValue)) + ' ' + unit;
					}
					else {
						initialValueString = Math.round(initialValue) + ' ' + unit;
					}
				}
			} 
			var outputDiv = new Element('div', { id:'readout_' + id, 'class':'sliderReadout' }).update( initialValueString );
			ul.appendChild(outputDiv);
			
			
			
			var input = new Element('input', { id: id, type:'hidden', name: 'data[Scores][' + id + ']' });
			ul.appendChild(input);
			input.value = initialValue;

		target.appendChild(ul); 	
  	 
	   	// <![CDATA[
					var mySlider = new Control.Slider($('handle_' + id), $('track_' + id), {
						range: $R(range_l, range_r),
						values: steps,
						sliderValue: initialValue,
						onSlide: function(v){
							var vString = v.toFixed(2);
							if (comma == true) {
								vString = Comma(v);
							}
							if (range_r == 1) {
								vString = Math.round(vString * 100);
							}
							if (round == true) {
								if (comma == true) {
									vString = Comma(Math.round(v));
								} else {
									vString = Math.round(v);
								}
							}
							outputDiv.innerHTML = vString + ' ' + unit;
						},
						onChange: function(v){
							var vString = v.toFixed(2);
							if (comma == true) {
								vString = Comma(v);
							}
							if (range_r == 1) {
								vString = Math.round(vString * 100);
							}
							if (round == true) {
								if (comma == true) {
									vString = Comma(Math.round(v));
								} else {
									vString = Math.round(v);
								}
							}
							outputDiv.innerHTML = vString + ' ' + unit;
							input.value = v;
							sliderSubmit(id, v);
						}
					});
				// ]]>

							  
						  
}



function clearChildren (element) {
	element = $(element);
		$A(element.childNodes).each(function(e){
			e.parentNode.removeChild(e);
		});
	return element;
}

// INPUT STEP SPECIFIC FUNCTIONS
function makeFormInputsForStart() {
	var sliderSteps = [0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500, 8000, 8500, 9000, 9500, 10000];
	makeQuestionSlider('house_size', "", $('calcFormSize'), 0, 10000, sliderSteps, "square feet", 1800, true );
				
}


function makeFormInputsForStep1_0() {
	clearChildren ($('calcForm'));
	makeQuestionSelect('num_householders', "Number of people in household", ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'], $('calcForm'));
	makeQuestionSelect('unit_type', "Type of housing unit", ['Single Family', 'Apartment / Condo', 'Townhouse', 'Mobile Home'], $('calcForm'));
	makeQuestionSelectValues('num_floors', "Number of floors in home or unit", ['1', '2', '3', '4', '5+'], ['1', '2', '3', '4', '5'], $('calcForm'));
	
	$('unit_type').observe('change',  
		  function(event){ 
			toggleUnitTypeDependents();
		  } 
	);
	updateFormElement('unit_type'); 
	toggleUnitTypeDependents(); 
}

function toggleUnitTypeDependents() {
	  	var value = $F('unit_type');
		if (value == 'Single Family') {
			if ($('q_num_units') != undefined) {
				$('q_num_units').remove();
			}
			if ($('q_lot_size') == undefined) {
				var sliderSteps = [];
				var initSize = parseInt(userData.getValue('lot_size'))  / 43560 ;
				makeQuestionSliderLotSize('lot_size', "Lot size", $('calcForm'), .1, 4, null, "acres", initSize, false, false );
			} 
		} else { 
			if ($('q_lot_size') != undefined) {
				$('q_lot_size').remove();
			}
			if ($('q_num_units') == undefined) {
				makeQuestionSelectValues('num_units', "Number of units in building", ['1', '2', '3', '4', '5+'], ['1', '2', '3', '4', '5'], $('calcForm'));
				var input = new Element('input', { id:'lot_size', type:'hidden', name: 'data[Scores][lot_size]' });
				userData.setValue('lot_size', (userData.getValue('house_size') / userData.getValue('num_floors') * 1.5).toFixed(0) );
				input.value = userData.getValue('lot_size');
				$('q_num_units').appendChild(input);
			}
		}
		populateForm();
		$('unit_type').value = value;	
}


function makeFormInputsForStep1_1(){
	clearChildren ($('calcForm'));
	
	var curdate = new Date()
	var endYear = curdate.getFullYear();
	var sliderSteps = [];
	var len = endYear - 1900;
	for (var n = 0; n < len; n++) {
		sliderSteps[n] = 1900 + n;
	}
	makeQuestionSlider('date_built', "Approximate year your home was built", $('calcForm'), 1900, endYear, sliderSteps, "", userData.getValue('date_built'), false, true );

	populateForm();
//	  $('ad').update('<A HREF="http://ahs2.adhostingsolutions.com/oasisc.php?s=554&w=300&h=250" TARGET="_blank"><IMG SRC="http://ahs2.adhostingsolutions.com/oasisi.php?s=554&w=300&h=250" WIDTH="300" HEIGHT="250" BORDER="0"></A>');
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
}

function makeFormInputsForStep1_2(){
	clearChildren ($('calcForm'));
	makeQuestionSelect('ownership', "Own or Rent", ["Own", "Rent"], $('calcForm'));
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
}

//** HEATING AND COOLING
function makeFormInputsForStep2_0(){
	// cooling
	var target = $('calcForm');
	clearChildren (target);
	// Changed by JWP on 1-16-08, changed Oil to Heating Oil
	makeQuestionSelect('heating_fuel', "Heating fuel", ["Natural Gas", "Heating Oil", "Electricity", "Propane"], target);
	makeQuestionSelectValues('hot_water_fuel', "Hot water fuel", ["Natural Gas", "Heating Oil", "Electricity", "Propane", "Don't Know"], ["Natural Gas", "Heating Oil", "Electricity", "Propane", "Natural Gas"], target);
			
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
}


function makeFormInputsForStep2_1(){
	// heating
	//makeQuestionHeadline("How do you heat your home?");
	var target = $('calcForm');
	clearChildren (target);
	var typeOptions = ["Furnace", "Boiler", "Wall furnace", "none"];
	var hf = userData.getValue('heating_fuel');
	if (hf == "Electricity") {
		typeOptions = ["Furnace", "Baseboard", "Heat pump (heat)", "none"];
	} else {
      if (hf == "Heating Oil") {
        typeOptions = ["Furnace", "Boiler", "none"];
      }
    }
	makeQuestionSelect('heating_equipment_type', "Type of heating system", typeOptions, target);
	makeQuestionRadioSet('heating_equipment_age', "Is your heater > 10 years old?", [2, 1], target);
	$('heating_equipment_type').observe('change',  
		  function(event){ 
			toggleHeatingDependents();
		  } 
	);
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
	toggleHeatingDependents(); 
}

function toggleHeatingDependents() {
		var target = $('calcForm');
	  	var value = $F('heating_equipment_type');
		if (value == 'Boiler') {
			if ($('q_has_radiators') == undefined) {
				makeQuestionRadioSet('has_radiators', "Do you have radiators?", [0, 1], target);
			}
		} else { 
			if ($('q_has_radiators') != undefined) {
				$('q_has_radiators').remove();
			}
		}
		populateForm();
	  $('ad').update('<A HREF="http://ahs2.adhostingsolutions.com/oasisc.php?s=554&w=300&h=250" TARGET="_blank"><IMG SRC="http://ahs2.adhostingsolutions.com/oasisi.php?s=554&w=300&h=250" WIDTH="300" HEIGHT="250" BORDER="0"></A>');
		$('heating_equipment_type').value = value;
}

function makeFormInputsForStep2_2(){
	// cooling
	var target = $('calcForm');
	clearChildren (target);
	makeQuestionSelect('cooling_equipment_type', "Type of cooling system", ["None", "Central AC", "Room AC", "Heat Pump (cool)"], target);
	$('cooling_equipment_type').observe('change',  
		  function(event){ 
			toggleCoolingDependents();
		  } 
	);
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
	toggleCoolingDependents(); 
}


function toggleCoolingDependents() {
		var target = $('calcForm');
	  	var value = $F('cooling_equipment_type');
		if (value != 'None') {
	 
			if ($('q_cooling_equipment_age') == undefined) {
				makeQuestionRadioSet('cooling_equipment_age', "Is your air conditioner > 10 years old?", [2, 1], target); 
			}
			if ($('q_cooling_frequency') == undefined) {
				makeQuestionSelect('cooling_frequency', "How often do you use your cooling system?", ["Almost all summer", "Frequently", "Rarely", "Never"], target);
			}
			if ($('q_percent_house_cooled') == undefined) {
				makeQuestionSlider('percent_house_cooled', "How much of your home is cooled?", target, 0, 1, null, "%", userData.getValue('percent_house_cooled'), false );
			}
			
		} else { 
			if ($('q_cooling_equipment_age') != undefined) {
				$('q_cooling_equipment_age').remove();
			}
			if ($('q_cooling_frequency') != undefined) {
				$('q_cooling_frequency').remove();
			}
			if ($('q_percent_house_cooled') != undefined) {
				$('q_percent_house_cooled').remove();
			}
		}
		populateForm();
		$('cooling_equipment_type').value = value;
}

function makeFormInputsForStep2_3(){
	// efficiency
	var target = $('calcForm');
	clearChildren (target);
	makeQuestionSelectValues('insulation_level', "Level of insulation", ['Poor', 'Fair', 'Good'], ['0', '.5', '1'], target);
	makeQuestionSlider('percent_cfl', "Percentage of fluorescent bulbs", target, 0, 1, null, "%", userData.getValue('percent_cfl'), false );
	
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
}

//* APPLIANCES

function makeFormInputsForStep3_0(){
	// dishwasher
	var target = $('calcForm');
	clearChildren (target);
	makeQuestionRadioSet('has_dishwasher', "Do you have a dishwasher?", [0, 1], target);
	
	var ul = new Element('ul', {'class':'set'});
		makeQuestionSelectLarge('dishwasher_loads_per_week', "Loads per week?", ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10+"], ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"], ul);
//		makeQuestionSelectSmall('dishwasher_age', "Age (years)", ["10 years or more", "less than 10 years"], ["10", "5"], ul);
// JWP
		makeQuestionSelectLarge('dishwasher_age', "Age & Efficiency", ["Standard, 10 years old +", "Standard, < 10 years old","Energy Star"], ["10", "5","0"], ul);

target.appendChild(ul);
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
}


function makeFormInputsForStep3_1(){
	// stove
	var target = $('calcForm');
	clearChildren (target);
	makeQuestionRadioSet('has_stove', "Do you have a stove?", [0, 1], target);
	var ul = new Element('ul', {'class':'set'});
		makeQuestionSelectSmall('stove_hours_per_week', "Hours used per week", ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10+"], ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"], ul);
	target.appendChild(ul);
	
	makeQuestionRadioSet('has_oven', "Do you have an oven?", [0, 1], target);
	var ul = new Element('ul', {'class':'set'});
		makeQuestionSelectSmall('oven_hours_per_week', "Hours used per week", ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10+"], ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"], ul);
	
	target.appendChild(ul);
	
	makeQuestionSelect('cooking_fuel', "Cooking fuel", ["Natural Gas", "Electricity", "Propane"], target);
	
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
}


function makeFormInputsForStep3_2(){
	// clotheswasher
	var target = $('calcForm');
	clearChildren (target);
	
	makeQuestionRadioSet('has_clotheswasher', "Do you have a clothes washer?", [0, 1], target);
	var ul = new Element('ul', {'class':'set'});
		makeQuestionSelectLarge('clotheswasher_loads_per_week', "Loads per week", ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10+"], ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"], ul);
//		makeQuestionSelectSmall('clotheswasher_age', "Age (years)", ["10 years or more", "less than 10 years"], ["10", "5"], ul);
// JWP
		makeQuestionSelectLarge('clotheswasher_age', "Age & Efficiency", ["Standard, 10 years old +", "Standard, < 10 yrs old","Energy Star"], ["10", "5","0"], ul);
	target.appendChild(ul);

	makeQuestionRadioSet('has_dryer', "Do you have a clothes<br/>dryer?", [0, 1], target);
	var ul = new Element('ul', {'class':'set'});
		makeQuestionSelectSmall('dryer_loads_per_week', "Loads per week>", ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10+"], ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"], ul);
		makeQuestionSelectSmall('dryer_fuel', "<br/>Dryer fuel", ["Natural Gas", "Electricity", "Propane"], ["Natural Gas", "Electricity", "Propane"], ul);
	target.appendChild(ul);
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
}


function makeFormInputsForStep3_3() {

	var target = $('calcForm');
	clearChildren(target);
	
	var note = "If you have more than 3, select 3.";
	makeQuestionSelect_w_note('refrigerator_qty', 'How many refrigerators do you have?', note, ['select quantity', '1', '2', '3'],['0', '1', '2', '3'], $('calcForm'));
	
	var has_refrigerator_1 = userData.getValue("has_refrigerator_1");
	var has_refrigerator_2 = userData.getValue("has_refrigerator_2");
	var has_refrigerator_3 = userData.getValue("has_refrigerator_3");
	
	if (has_refrigerator_3 == '1') {
		frigeQty = 3;
	} else if (has_refrigerator_2 == '1') {
		frigeQty = 2;
	} else if (has_refrigerator_1 == '1') {
		frigeQty = 1;
	}

	var ul = new Element('ul', {'class':'set'});
	
		var input = new Element('input', { id:'has_refrigerator_1', type:'hidden', name: 'data[Scores][has_refrigerator_1]' });
		ul.appendChild(input);
		var input = new Element('input', { id:'has_refrigerator_2', type:'hidden', name: 'data[Scores][has_refrigerator_2]' });
		ul.appendChild(input);
		var input = new Element('input', { id:'has_refrigerator_3', type:'hidden', name: 'data[Scores][has_refrigerator_3]' });
		ul.appendChild(input);
		
	target.appendChild(ul);
	
	$('refrigerator_qty').observe('change',  
		  function(event){ 
			toggleRegrigeratorQtyDependents();
		  } 
	);
	var ul = new Element('ul', {id:'refrigerator_list'});
	target.appendChild(ul);
	makeQuestionRadioSet('has_standalone_freezer', "Do you have a standalone freezer?", [0, 1], target);
	makeQuestionSelectLarge('standalone_freezer_age', "Age (years)", ["5 years or less", "more than 5 years"], ["5", "10"], target);
	makeQuestionSelectLarge('standalone_freezer_size', "Size (cubic feet)", ["small (less than or equal to 15 cu ft)", "medium (16-18 cu ft)", "large (19-21 cu ft)", "extra-large (greater than or equal to 22 cu ft)" ], ["14", "17", "20", "25"], target);
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');

	$('refrigerator_qty').value = frigeQty;
	toggleRegrigeratorQtyDependents();
}

function toggleRegrigeratorQtyDependents() {
	
	var target = $('refrigerator_list');
	clearChildren(target);
	var frigeQty = parseInt($F('refrigerator_qty'));
	for (var n = 1; n <= frigeQty; n++) {
		var span = new Element('span').update("Refrigerator " + n);
		span.addClassName("subtitle");
		target.appendChild(span);
		makeQuestionSelectLarge('refrigerator_' + n + '_age', "Age & Efficiency", ["Energy Star","Standard, 5 years or less", "Standard, more than 5 years"], ["0","5", "10"], target);
		makeQuestionSelectLarge('refrigerator_' + n + '_size', "Size (cubic feet)", ["small (less than or equal to 15 cu ft)", "medium (16-18 cu ft)", "large (19-21 cu ft)", "extra-large (greater than or equal to 22 cu ft)" ], ["14", "17", "20", "25"], target);
	}
	populateForm();
	$('refrigerator_qty').value = frigeQty;
}



//* WASTE
function makeFormInputsForStep4_0(){
	// recycling
	var target = $('calcForm');
	clearChildren (target);
	var id = "recycling_rate_estimate";
	var label = "What percentage of trash is recycled in your home?";

	var ul = new Element('ul', { id: "q_recycling_rate_estimate" + id });
	
		var span = new Element('span').update(label);
		ul.appendChild(span);
		var select = new Element('select', { id: id, name: 'data[Scores][' + id + ']' });
			var option = new Element('option', { 'value':'0' }).update("I don't recycle");
			select.appendChild(option);
			var option2 = new Element('option', { 'value':'.33' }).update("I recycle sometimes");
			select.appendChild(option2);
			var option3 = new Element('option', { 'value':'.67' }).update("I recycle most things");
			select.appendChild(option3);
			var option4 = new Element('option', { 'value':'1' }).update("I recycle everything I can");
			select.appendChild(option4);
		ul.appendChild(select);
		
	target.appendChild(ul); 
	
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
	
}


//* WATER
function makeFormInputsForStep5_0(){
	// irrigation
	var target = $('calcForm');
	clearChildren (target);
// Changed by JWP on 1-29-08 to make language more clear
	var note = "(Leave inputs as is if you don't live in a single family home)";
	makeQuestionRadioSet_w_note('has_irrigation', "Do you water your lawn or use irrigation?", [0, 1], target, note);
	
// Changed by JWP on 1-29-08 to make language more clear
	makeQuestionSlider('percent_yard_irrigated', "What percentage of your overall yard do you water?", target, 0, 1, null, "%", userData.getValue('percent_yard_irrigated'), false );
	makeQuestionSlider('percent_yard_turf', "What percentage of your yard is grass?", target, 0, 1, null, "%", userData.getValue('percent_yard_turf'), false );
	makeQuestionSlider('percent_yard_paved', "What percentage of your yard is covered by pavement (driveway, paths, etc)?", target, 0, 1, null, "%", userData.getValue('percent_yard_paved'), false );
	
	
	
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
}



//* TRANSPORTATION
function makeFormInputsForStep6_0() {

	var target = $('calcForm');
	clearChildren(target);
	
	var note = "If you have more than 3, select 3.";
	makeQuestionSelect_w_note('vehicle_qty', 'How many vehicles do you have?', note, ['select quantity', '0', '1', '2', '3'], ['select', '0', '1', '2', '3'], $('calcForm'));
	
	var has_car_1 = userData.getValue("has_car_1");
	var has_car_2 = userData.getValue("has_car_2");
	var has_car_3 = userData.getValue("has_car_3");
	
	if (has_car_3 == '1') {
		vehicleQty = 3;
	} else if (has_car_2 == '1') {
		vehicleQty = 2;
	} else if (has_car_1 == '1') {
		vehicleQty = 1;
	}

	var ul = new Element('ul', {'class':'set'});
	
		var input = new Element('input', { id:'has_car_1', type:'hidden', name: 'data[Scores][has_car_1]' });
		ul.appendChild(input);
		var input = new Element('input', { id:'has_car_2', type:'hidden', name: 'data[Scores][has_car_2]' });
		ul.appendChild(input);
		var input = new Element('input', { id:'has_car_3', type:'hidden', name: 'data[Scores][has_car_3]' });
		ul.appendChild(input);
		
	target.appendChild(ul);
	
	$('vehicle_qty').observe('change',  
		  function(event){ 
			toggleVehicleQtyDependents();
		  } 
	);
	
	var ul = new Element('ul', {id:'vehicle_list'});
	target.appendChild(ul);
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
	
	$('vehicle_qty').value = vehicleQty;
	
	toggleVehicleQtyDependents();
	
}


function toggleVehicleQtyDependents() {
	
	
	var target = $('vehicle_list');
	clearChildren(target);
	
	vehicleQty = parseInt($F('vehicle_qty'));
	
	
	for (var n = 1; n <= 3; n++) {
		if (n <= vehicleQty) {
			var span = new Element('span').update("Vehicle " + n);
			span.addClassName("subtitle");
			target.appendChild(span);
		}
		var ul = new Element('ul', {
			'class': 'set'
		});
		if (n <= vehicleQty) {
			makeYearMenu('car_' + n + '_year', "Year", ul, target, n);
			
		} else {
			
			var id_year = 'car_' + n + '_year';
			var input = new Element('input', { id:id_year, type:'hidden', name:'data[Scores][' + id_year + ']', value:"" });//.update("");
			ul.appendChild(input);
			
			var id_make = 'car_' + n + '_Make';
			var input = new Element('input', { id: id_make, type:'hidden', name: 'data[Scores][' + id_make + ']', value:"" });//.update("");
			ul.appendChild(input);
			
			var id_mod = 'car_' + n + '_Model';
			var input = new Element('input', { id: id_mod, type:'hidden', name: 'data[Scores][' + id_mod + ']', value:"" });//.update("");
			ul.appendChild(input);
			
			var id_am = 'car_' + n + '_annual_miles';
			var input = new Element('input', { id: id_am, type:'hidden', name: 'data[Scores][' + id_am + ']', value:"0" });//.update("0");
			ul.appendChild(input);
			
			var id_mpg = 'car_' + n + '_mpg';
			var input = new Element('input', { id: id_mpg, type:'hidden', name: 'data[Scores][' + id_mpg + ']', value:"" });//.update("0");
			ul.appendChild(input);
			
			userData.setValue(id_mpg, "");
			
		}
		
		target.appendChild(ul);
	}
	
	$('vehicle_qty').value = vehicleQty;	 
	
}

function makeVehicleQtyDependentsCompleted(num) {
	if (num == vehicleQty) {
		updateVehicleData();
	}
}

function makeYearMenu(id, label, ul, parentTarget, carNum) {

	if ($("q_" + id) != undefined){
		$("q_" + id).remove();
	}
    var li = new Element('li', { id: "q_" + id, 'class':'xsmall' });
    
        var span = new Element('span', { 'class':'small'}).update(label);
        li.appendChild(span);
        
        var select = new Element('select', { id: id, name: 'data[Scores][' + id + ']', 'class':'small' });
        var option = new Element('option', {'value':'0'}).update("select year");
		select.appendChild(option);
       // TEMPORARILY LIMITING CAR YEARS TO >= 2000 for PRIVATE BETA(var i = 2008; i > 1979; i--) {
        for (var i = 2008; i >= 1990; i--) {
            var option = new Element('option', { 'value': i }).update(i);
            select.appendChild(option);
        }

        li.appendChild(select);
	
		var hiddenId = 'car_' + carNum + '_mpg';
		
		userData.setValue(hiddenId, "");
		
    ul.appendChild(li); 
    select.observe('change',  
          function(event){ 
            new Ajax.Request('/scores/getCarMfrForYear/', {
                             parameters: select.name+'='+select.value,
                             onSuccess: function(transport, mfrs) {
                               makeMfrMenu('car_'+carNum+'_Make', 'Make', mfrs, mfrs, ul, carNum);
							   userData.setValue(Event.element(event).id, Event.element(event).getValue());
							   Event.element(event).removeClassName('default-answer');
                             }
                             });
          } 
         );
	
	/*
	Attemp to build mfr menu automatically if user has already input year value.  not working.*/
	if (userData.getValue(select.id) != undefined) {
			select.value = userData.getValue(select.id);
			select.removeClassName('default-answer');
		
        new Ajax.Request('/scores/getCarMfrForYear/', {
                          parameters: select.name+'='+select.value,
                         onSuccess: function(transport, mfrs) {
                           makeMfrMenu('car_'+carNum+'_Make', 'Make', mfrs, mfrs, ul, carNum);
						   userData.setValue(Event.element(event).id, Event.element(event).getValue());
						   Event.element(event).removeClassName('default-answer');
                         }
        });
		
	}
}

function makeMfrMenu(id, label, options, values, target, carNum) {
    if ($("ul_" + id) != undefined){
		$("ul_" + id).remove();
	}
	if ($("q_" + id) != undefined){
		$("q_" + id).remove();
	}
		var li = new Element('li', { id: "q_" + id, 'class':'medium' });
		
			var span = new Element('span', { 'class':'small' }).update(label);
			li.appendChild(span);
			
			var select = new Element('select', { id: id, name: 'data[Scores][' + id + ']', 'class':'small' });
			var option = new Element('option', {'value':'0'}).update("select make");
			select.appendChild(option);
			options.each(function(item, index) {
				var option = new Element('option', { 'value': values[index] }).update(item);
				select.appendChild(option);
			});
			li.appendChild(select);
			
		
	target.appendChild(li);
	
	var ul = new Element('ul', {id: "ul_" + id, 'class':'set'});
	new Insertion.After(target,ul);
	
    $(id).observe('change',
         function(event){
           params = encodeURIComponent($(id).name)+'='+$F(id)+'&'+encodeURIComponent($('car_'+carNum+'_year').name)+'='+$F('car_'+carNum+'_year');
           new Ajax.Request('/scores/getCarMakeForMfr/', {
                            parameters: params,
                            onSuccess: function(transport, makes) {
                              
							  makeModelMenu('car_'+carNum+'_Model', 'Model', makes, makes, ul, carNum);
						      userData.setValue(Event.element(event).id, Event.element(event).getValue());
						      Event.element(event).removeClassName('default-answer');
							}
           });
         });
		 
		 
	/*
	Attemp to build mfr menu automatically if user has already input year value.  not working.*/
	if (userData.getValue(select.id) != undefined) {
			select.value = userData.getValue(select.id);
			select.removeClassName('default-answer');
           params = encodeURIComponent($(id).name)+'='+$F(id)+'&'+encodeURIComponent($('car_'+carNum+'_year').name)+'='+$F('car_'+carNum+'_year');
           new Ajax.Request('/scores/getCarMakeForMfr/', {
                            parameters: params,
                            onSuccess: function(transport, makes) {
                              
							  makeModelMenu('car_'+carNum+'_Model', 'Model', makes, makes, ul, carNum);
						      userData.setValue(Event.element(event).id, Event.element(event).getValue());
						      Event.element(event).removeClassName('default-answer');
							}
        });
		
	}
}

function makeModelMenu(id, label, options, values, target, carNum) {
    if ($("q_" + id) != undefined){
		$("q_" + id).remove();
	}
	var li = new Element('li', { id: "q_" + id, 'class':'large' });
	
		var span = new Element('span', { 'class':'small' }).update(label);
		li.appendChild(span);
		
		var select = new Element('select', { id: id, name: 'data[Scores][' + id + ']', 'class':'small' });
		var option = new Element('option').update("select model");
		select.appendChild(option);
		options.each(function(item, index) {
			var option = new Element('option', { 'value': values[index] }).update(item);
			select.appendChild(option);
		});
		li.appendChild(select);
		
	target.appendChild(li); 
	 
    select.observe('change',  
          function(event){ 
			   userData.setValue(Event.element(event).id, Event.element(event).getValue());
			   Event.element(event).removeClassName('default-answer');
				makeVehicleMileage(id, label, options, values, target, carNum);	
			   sendAjaxRequest();	
          } 
         );

		 
		 
	/*
	Attemp to build mfr menu automatically if user has already input year value.  not working.*/
	if (userData.getValue(select.id) != undefined) {
			select.value = userData.getValue(select.id);
			select.removeClassName('default-answer');
			makeVehicleMileage(id, label, options, values, target, carNum);			
      };
		
	
	
	
}


function makeVehicleMileage(id, label, options, values, target, carNum) {
	
			   
		if ($('q_car_' + carNum + '_annual_miles') != undefined) {
			$('q_car_' + carNum + '_annual_miles').remove();
		}
			
		makeQuestionInputSmall('car_' + carNum + '_annual_miles', "Annual Mileage", target);

		$('car_' + carNum + '_annual_miles').value = userData.getValue('car_' + carNum + '_annual_miles');			
		if (userData.isDefaultValue('car_' + carNum + '_annual_miles')) {
	  		$('car_' + carNum + '_annual_miles').addClassName('default-answer');
	  	}
	  	else {
	  		$('car_' + carNum + '_annual_miles').removeClassName('default-answer');
	  	}
		
	 	$('car_' + carNum + '_annual_miles').observe('change',  
          function(event){ 
			   userData.setValue(Event.element(event).id, Event.element(event).getValue());
			   Event.element(event).removeClassName('default-answer');	
			   sendAjaxRequest();
          } 
         );
		 
		 makeVehicleQtyDependentsCompleted(carNum);
}

function makeFormInputsForStep6_1() {
	// air travel
	var target = $('calcForm');
	clearChildren (target);

// Modified by JWP on 1-17-08 to allow for 0 values for flights
	var range20 = ['0','1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20'];
	makeQuestionSelect_w_note('num_short_flights_per_year', 'Number of short flights/year', "(1-2 hour one-way flights)", range20,range20, target);
	makeQuestionSelect_w_note('num_medium_flights_per_year', 'Number of medium flights/year', "(3-5 hour one-way flights)", range20,range20, target);
	makeQuestionSelect_w_note('num_long_flights_per_year', 'Number of long flights/year', "(5+ hour one-way flights)", range20,range20, target);
	
	
	var note = "Note: If you are a family of 4 and you all take 1 trip together, that equals 4 flights.";
	makeQuestionNote(note, target);
	
	populateForm();
  $('ad').update('<IFRAME SRC="http://ahs2.adhostingsolutions.com/oasisi-i.php?s=554&w=300&h=250&t=_blank" MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=NO WIDTH=300 HEIGHT=250></IFRAME>');
	
}
	
