function hideSteps(step) {
	var x = document.getElementsByTagName("FIELDSET");
	for(var i=0;i<x.length;i++) {
		if(x[i].id.indexOf("step")!=-1 && x[i].id.indexOf(step)==-1) {
			x[i].getElementsByTagName("A").item(0).className = 'closed';
			var fldSet = x[i].getElementsByTagName("OL").item(0);
			fldSet.style.display='none';
		}
	}
	if(step>1) {
		var err = checkStep1();
		if(err) {
			showSteps(1);
			hideSteps(1);
		}
	}
}

function hideAllSteps() {
	var x = document.getElementsByTagName("FIELDSET");
	for(var i=0;i<x.length;i++) {
		if(x[i].id.indexOf("step")!=-1) {
			x[i].getElementsByTagName("A").item(0).className = 'closed';
			var fldSet = x[i].getElementsByTagName("OL").item(0);
			fldSet.style.display='none';
		}
	}
}

function showSteps(step) {
	if(showSteps.arguments.length>0) {
		for(var i=0;i<showSteps.arguments.length;i++) {
			var theID = 'step'+showSteps.arguments[i];
			document.getElementById(theID).getElementsByTagName("A").item(0).className = 'opened';
			var fldSet = document.getElementById(theID).getElementsByTagName("OL").item(0);
			fldSet.style.display='block';
		}
	}
}

function hideLists() {
	var x = document.getElementsByTagName("OL");
	for(var i=0;i<x.length;i++) {
		if(x[i].className.indexOf("showHide")!=-1) {
			x[i].style.display='none';
		}
	}
}

function setupStepLinks() {
	var x = document.getElementsByTagName("A");
	for(var i=0;i<x.length;i++) {
		if(x[i].href.indexOf("step")!=-1) {
			x[i].onclick = function() {
				var state = this.parentNode.parentNode.getElementsByTagName("OL").item(0).style.display;
				hideSteps(this.parentNode.parentNode.id.slice(-1));
				this.className = (state=='none') ? 'opened' : 'closed';
				this.parentNode.parentNode.getElementsByTagName("OL").item(0).style.display = (state=='none') ? 'block' : 'none';
				return false;
			}
		}
	}	
}

function setupExpLinks() {
	if(document.getElementById("step5")) {
		var x = document.getElementById("step5").getElementsByTagName("OL").item(0).getElementsByTagName("A");
		for(var i=0;i<x.length;i++) {
			if(x[i].href.indexOf("#")!=-1) {
				x[i].onclick = function() {
					var state = this.parentNode.parentNode.getElementsByTagName("OL").item(0).style.display;
					this.className = (state=='none') ? 'subopened' : 'subclosed';
					this.parentNode.parentNode.getElementsByTagName("OL").item(0).style.display = (state=='none') ? 'block' : 'none';
					return false;
				}
			}
		}
	}
}

function click2Add(el) {
	el.parentNode.previousSibling.parentNode.insertBefore(el.parentNode.previousSibling.cloneNode(true),el.parentNode);
	var x = el.parentNode.previousSibling.getElementsByTagName("INPUT");
	for(var i=0;i<x.length;i++) {
		if(x[i].type=='text') x[i].value='';
		if(x[i].type=='radio') x[i].checked=false;
	}
	var x = el.parentNode.previousSibling.getElementsByTagName("SELECT");
	for(var i=0;i<x.length;i++) {
		x[i].selectedIndex=0;
	}
	return false;
}

function highlightFld(el,errTxt) {
	el.parentNode.className += ' notifyRequired';
	if(el.parentNode.firstChild.className=='required') {
		el.parentNode.removeChild(el.parentNode.firstChild);
	}
	var p = document.createElement('P');
	var t = document.createTextNode(errTxt);
	p.className = 'required';
	p.appendChild(t);
	el.parentNode.insertBefore(p,el.parentNode.firstChild);
}

function checkStep1() {
	var err=false;
	var errMsg = '';
	var appForm = document.forms['application'];
	if(appForm.cFirstName.value=='') {
		err=true;
		highlightFld(appForm.cFirstName,'Please enter your First and Last name.');
	}
	if(appForm.cLastName.value=='') {
		err=true;
		highlightFld(appForm.cLastName,'Please enter your First and Last name.');
	}
	if(appForm.cAddress.value=='') {
		err=true;
		highlightFld(appForm.cAddress,'Please enter your Street Address.');
	}
	if(appForm.cCity.value=='') {
		err=true;
		highlightFld(appForm.cCity,'Please enter your City.');
	}
	if(appForm.cState.options[appForm.cState.selectedIndex].value=='') {
		err=true;
		highlightFld(appForm.cState,'Please select your State and enter your Zip Code.');
	}
	if(appForm.cPostal.value=='') {
		err=true;
		highlightFld(appForm.cPostal,'Please select your State and enter your Zip Code.');
	}
	if(appForm.cEmail.value=='') {
		err=true;
		highlightFld(appForm.cEmail,'Please enter your Email address.');
	}
	return err;
}

function checkStep8() {
	var err=false;
	var errMsg = '';
	var appForm = document.forms['application'];
	if(appForm.cSignature.checked==false) {
		err=true;
		highlightFld(appForm.cSignature,'Please check the box to signify agreement with the terms.');
	}
	return err;
}


function formValidation() {
	var x = document.getElementsByTagName("INPUT");
	for(var i=0;i<x.length;i++) {
		if(x[i].name=='cEmail') {
			x[i].onblur = function() {
				var err = checkStep1();
				if(err) hideSteps(1);
			}
		}
		if(x[i].name=='cSignature') {
			x[i].onblur = function() {
				var err = checkStep8();
				if(err) hideSteps(8);
			}
		}
		if(x[i].name=='submitBtn') {
			x[i].onclick = function() {
				hideAllSteps();
				var err1 = checkStep1();
				var err8 = checkStep8();
				if(err1 || err8) {
					if(err1) showSteps(1);
					if(err8) showSteps(8);
					return false;
				}
			}
		}
	}
}

window.onload = function() {
	hideLists();
	hideSteps(1);
	setupStepLinks();
	setupExpLinks();
	formValidation();
}