/* = PREP NAV
-------------------------------------------------
	This function sets the hover events for
	nav drop downs.
	Required Nav Structure: Nexted ULs
-------------------------------------------------*/

function prepNav(elementId) {
	if(!document.getElementsByTagName) return 0;
	if(!document.getElementById) return 0;
	if(!document.getElementById(elementId)) return 0;
	
	var list = document.getElementById(elementId);
	var listItem = list.getElementsByTagName("LI");
	var mainList = "";
	
	for(var i = 0; i < listItem.length; i++)
	{
		listItem[i].onmouseover = function() {
			if(this.className)
				this.className += " hover";
			else
				this.className = "hover";
			
			if(list.id != "main-nav" && this.parentNode != list) return 0;

			var navId = this.id;
			if(!document.getElementById("process-logo")) return 0;
			var procLogo = document.getElementById("process-logo");
			
			if(procLogo.className)
				procLogo.className += navId;
			else
				procLogo.className = navId;
			return 0;
		}
		
		listItem[i].onmouseout = function() {
			if(this.className.indexOf("hover") != -1)
			{
				this.className = this.className.replace(/ ?hover ?/,"");
			}
			
			if(list.id != "main-nav" && this.parentNode != list) return 0;
			if(!document.getElementById("process-logo")) return 0;
			var procLogo = document.getElementById("process-logo");
			procLogo.className = "";
			return 0;
		}
	}
	return 0;
}

function callPrepNav() {
	prepNav("main-nav");
	prepNav("top-nav");
	
	return 0;
}

addLoadEvent(callPrepNav);


/* = CLEAR FIELD
-------------------------------------------------
	Clears any input when clicked on if it contains
	its default value.  All that is required is
	that you put the class "clearDefault" on the
	input.
-------------------------------------------------*/

function clickClear() {
	if(!document.getElementsByTagName) return false;
	
	var inputs = document.getElementsByTagName("INPUT");
	
	for ( var i = 0; i < inputs.length; i++)
	{
		if(inputs[i].className.indexOf("clearDefault") != -1)
		{
			inputs[i].onclick = function() {
				if(this.value == this.defaultValue)
				{
					this.value = "";
				}
				return 0;
			}
			inputs[i].onfocus = function() {
				if(this.value == this.defaultValue)
				{
					this.value = "";
				}
				return 0;
			}
			inputs[i].onblur = function() {
				if(this.value == "")
				{
					this.value = this.defaultValue;
				}
				return 0;
			}
		}
	}
	return 0;
}

addLoadEvent(clickClear);

/* = SIGN IN FORM
-------------------------------------------------
	Adds the link to submit the form and taking the
	button away. if js is disabled then the button
	appears. Makes sure everyone can access it. And
	users with better browser technology get best
	experience
-------------------------------------------------*/

function prepSignIn(formId) {
	if(!document.getElementById) return 0;
	if(!document.getElementById(formId)) return 0;
	if(!document.getElementsByTagName) return 0;
	
	var signUp = document.getElementById(formId);
	
	var signInSubmit = document.createElement("A");
	signInSubmit.setAttribute("href", "#");
	signInSubmit.setAttribute("id","submitSignInLink");
	var signInSubmitText = document.createTextNode("Sign In");
	signInSubmit.appendChild(signInSubmitText);
	
	signInSubmit.onclick = function() {
		var parentForm = this.parentNode;
		parentForm.submit();
		return 0;
	}
	
	signUp.appendChild(signInSubmit);
	return 0;
}

function callPrepSignIn() {
	prepSignIn("signInEmail");
	prepSignIn("supportSignIn");
	return 0;
}

addLoadEvent(callPrepSignIn);

/* = ADD ON LOAD
-------------------------------------------------
	This adds functions to onload without
	stepping on each other.
-------------------------------------------------*/

function addLoadEvent(func) {
	var oldOnLoad = window.onload
	if (typeof window.onload != 'function') 
	{
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldOnLoad();
			func();
		}
	}
}