function initFormValidation()	{
	//get all inputs
	var inputs = $els("input");
	var i = 0;
	for (i=0;i<inputs.length;i++)	{
		if (inputs[i].type == "submit")	{
			inputs[i].onclick = ValidateForm;
		} else if (inputs[i].type == "text")	{
			if (inputs[i].className.indexOf("required")>-1 | inputs[i].className.indexOf("regex-")>-1)	{
				inputs[i].onfocus = CheckInput;
				inputs[i].onblur = CheckInput;
				inputs[i].onkeyup = CheckInput;
			} else if (inputs[i].className.indexOf("numberbtns")>-1)    {
			    CreateNumberButtons(inputs[i]);
			}
		}
	}
	var txts = $els("textarea");
	for (i=0;i<txts.length;i++)	{
		if (txts[i].className.indexOf("required")>-1)	{
			txts[i].onfocus = CheckInput;
			txts[i].onblur = CheckInput;
			txts[i].onkeyup = CheckInput;
		}
	}
}

function $els(tagName, parentItem) {
    if (!parentItem) {
        return document.getElementsByTagName(tagName);
    } else {
        return parentItem.getElementsByTagName(tagName);
    }
}

function CheckInput()	{
	CheckTextInput(this);
}
function CheckTextInput(el)	{
	var validinput = false;
	var thisval = "";
	if (el.type == "text")	{
		thisval = el.value;
	} else	{
		thisval = el.innerHTML;
	}
	var msgbox = $(el.id + "helptxt");
	if (!msgbox)	{
		msgbox = document.createElement("span");
		msgbox.id = el.id + "helptxt";
	}
	if (el.className.indexOf("required")>-1)	{
		if (thisval.length==0)	{			
			msgbox.className = "tooltip";
			msgbox.innerHTML = "Required Field";	
			validinput = false;
		} else	{
			msgbox.className = "tick";
			msgbox.innerHTML = "&nbsp;";
			msgbox.title = "Required field entered!";
			validinput = true;
		}
	}
	if (el.className.indexOf("regex-")>-1)	{
		var msgbox = $(el.id + "helptxt");
		if (!msgbox)	{
			msgbox = document.createElement("span");
			msgbox.id = el.id + "helptxt";
		}
		var regexpattern = null;
		var spos = el.className.indexOf("regex-");	
		spos += 6;			
		var epos = el.className.indexOf(" ", spos);
		if (epos == -1)	epos = el.className.length;
		var regexp = el.className.substring(spos, epos);
		switch (regexp)	{
			case "email":
			regexpattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			break;
		}
		if (!regexpattern.test(thisval))	{
			msgbox.className = "tooltip";
			msgbox.innerHTML = "Must be a valid email!";
			validinput = false;
		} else	{
			msgbox.className = "tick";
			msgbox.innerHTML = "&nbsp;";
			msgbox.title = "Valid Email!";
			validinput = true;
		}
	}
	el.parentNode.appendChild(msgbox);
	return validinput;
}
function ValidateForm()	{
	try	{
		var inputs = $els("input");
		var i = 0;
		for (i=0;i<inputs.length;i++)	{
			if (inputs[i].type=="text")	{
				if (inputs[i].className.indexOf("required")>-1 | inputs[i].className.indexOf("regex-")>-1)	{
					if (!CheckTextInput(inputs[i]))	{
						ScrollToElement(inputs[i]);
						inputs[i].select();
						return false;
					}	
				}
			}
		}
		var textareas = $els("textarea");
		for (i=0;i<textareas.length;i++)	{
			if (textareas[i].className.indexOf("required")>-1)	{
				if (!CheckTextInput(textareas[i]))	{
					ScrollToElement(textareas[i]);
					textareas[i].select();
					return false;
				}
			} 
		}
	} catch (e)	{
		alert(e.description);
	}
	return true;
}
function CreateNumberButtons(element)   {
    var btnUp = document.createElement("input");
    btnUp.type = "button";
    btnUp.id = element.id + "Up";
    btnUp.value = ">";
    btnUp.onclick = IncVal;
    element.parentNode.insertBefore(btnUp, element.nextSibling);
    var btnDown = document.createElement("input");
    btnDown.type = "button";
    btnDown.id = element.id + "Down";
    btnDown.value = "<";
    btnDown.onclick = DecVal;
    element.parentNode.insertBefore(btnDown, element.nextSibling);
}
function IncVal()   {
    var numel = document.getElementById(this.id.replace("Up", ""));
    var currnum = parseInt(numel.value);
    if (isNaN(currnum)) currnum = 0;
    currnum += 1;
    numel.value = currnum;
}
function DecVal(elID)   {
    var numel = document.getElementById(this.id.replace("Down", ""));
    var currnum = parseInt(numel.value);
    if (isNaN(currnum)) currnum = 0;
    if (currnum>0) currnum -= 1;
    numel.value = currnum;
}