/* ===================================================
	Help me choose Javascript - Dyson
	Version: v2.1
	Author: James Taylor - 07/12/2007
/* =================================================*/

function initForm() {  // attaches all the events to the form elements


	if($("frmHelpMeChoose") && browser.indexOf('safari1') == -1) {
		checkFormState();
		var aElm = $$("#frmHelpMeChoose fieldset input"); // get all form input elements
		var aSel = $$("#frmHelpMeChoose fieldset select"); // get select elements
		var event;
		for(var i=0; i < aElm.length; i++) {
			if($(aElm[i]).hasClassName("rad")) { event="click" } else { event="change" };  // radio buttons use onclick
			Event.observe ( aElm[i], event, doFilter ); // set doFilter for event;
			if($(aElm[i]).hasClassName("rad") || $(aElm[i]).hasClassName("chk")) { 
				if(browser=="ie7"||browser=="ie6"){
					aElm[i].onclick = function(){
					  // hack for ie's radio buttons bug
					  this.parentNode.focus();
					}
				}
			}
		}
		for(var i=0; i < aSel.length; i++) {
			Event.observe ( aSel[i], "change", doFilter ); // set doFilter for event;
		}
		var newReset=document.createElement("input");
		newReset.type='image'; newReset.id="reset"; newReset.value="Reset"; newReset.className="reset"; newReset.name="reset"; newReset.src="/images/btnReset.png"; newReset.alt="Reset";
		$("frmControls").innerHTML="";
		$("frmControls").appendChild(newReset);
		Event.observe ( $("reset"), "click", resetForm );
	}
}
function checkFormState() { // Checks the status of each form and hightlights selected labels

	var aElm = $$("#frmHelpMeChoose fieldset input");
	for(var i=0; i < aElm.length; i++) {
		if(aElm[i].hasClassName("rad")) {
			if(aElm[i].checked) {
				$(aElm[i].parentNode.parentNode).addClassName("on"); //reference span as grandparent as rad is wrapped in label
			} else {
				$(aElm[i].parentNode.parentNode).removeClassName("on");
			}
		} else { 
			if(aElm[i].checked) {
				$(aElm[i].parentNode).addClassName("on"); //reference span as parent as Check is not wrapped in label
			} else {
				$(aElm[i].parentNode).removeClassName("on");
			}
		}
	}
}
var data
function doFilter() { 
	data = $("frmHelpMeChoose").serialize(); // gets all forms data
	var splitData = data.split("&reset") // strip off reset
	data = splitData[0];
	checkFormState(); // update form
	toggleForm(); // disable form
	toggleIE6("none");
	new Effect.Fade($("resultsList"), {duration: 0.8, afterFinish: doCall}); // fade out and do ajax call
}
function doCall() { // ajax call to return results
   
	var url = "helpmechoose_ajax.asp"
	var myAjax = new Ajax.Updater ("resultsHolder", url, {parameters: data, onComplete: endCall}); // fade in when done
}
function endCall() { // fades in search results



	if($("resultsList")) {
		$("resultsList").style.display='none';
		new Effect.Appear($("resultsList"), {duration: 0.8, afterFinish: toggleIE6});
	}
	doHMCTracking();
	
}

function toggleIE6(strDisplay) {


	if(strDisplay!="none") strDisplay="block";
	if(browser=="ie6") {
		if($("panels")) { $("panels").style.display=strDisplay; }
		if($("footer")) { $("footer").style.display=strDisplay; }
		
		
	}
	if(strDisplay=="block") toggleForm();
}

function toggleForm() { // enables and disables the form
	var form = $("frmHelpMeChoose");
	form[form.disabled ? 'enable' : 'disable']();// cycle between calling form.disable() and form.enable()
	form.disabled = !form.disabled;
}
function resetForm() { // resets all the forms elements
	var aChk = $$("#frmHelpMeChoose input.chk");
	for(var i=0; i < aChk.length; i++) aChk[i].checked=false;
	var aRad = $$("#frmHelpMeChoose input.rad");
	aRad[0].checked=true;
	var aOpt = $$("#frmHelpMeChoose select option")
	aOpt[0].selected=true;
	doFilter();
	return false;
}

Event.observe( window, "load", function() { initForm(); } );

