//USAGE: ValForm('Phone2','PhoneReq');
function ValForm(inputIDStr,inputErrorSpanStr)
{
    var val = true;    
    var inputArray = inputIDStr.split(",");
    var inputErrorArray = inputErrorSpanStr.split(",");
    
    if (inputArray.length != inputErrorArray.length)
    {
        alert("NOT ALL INPUTS HAVE MATCHING ERROR SPANS!");
        return false;
    }
    
    for (x=0;x<inputArray.length;x++)
    {
	    if (document.getElementById(inputArray[x]).value == "") 
		{
			document.getElementById(inputErrorArray[x]).style.visibility = "visible";
			document.getElementById(inputErrorArray[x]).innerHTML = "<span class = 'error'><nobr>&nbsp;!</nobr></span>";		
			val = false;
		}
		else {			
			document.getElementById(inputErrorArray[x]).style.visibility = "hidden";
			document.getElementById(inputErrorArray[x]).innerHTML = "";
		}
	}
	
	return val;
}


//USAGE: ValForm('Email','EmailReq');
function ValEmail(emailID,emailErrorSpanID)
{   
    var val = true;
	var illegalEmailChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
	var EmailFilter=/^.+@.+\..{2,3}$/;
	
	if (document.getElementById(emailID).value == "") 
	{
		document.getElementById(emailErrorSpanID).style.visibility = "visible";
		document.getElementById(emailErrorSpanID).innerHTML = "<span class = 'error'><nobr>&nbsp;!</nobr></span>";		
		val = false;
	}
	else {
		if (!(EmailFilter.test(document.getElementById(emailID).value))) { 
			document.getElementById(emailErrorSpanID).style.visibility = "visible";
			document.getElementById(emailErrorSpanID).innerHTML = "<span class = 'error'><nobr>&nbsp;!</nobr></span>";		
			val = false;
		} else if (document.getElementById(emailID).value.match(illegalEmailChars)) {
			document.getElementById(emailErrorSpanID).style.visibility = "visible";
			document.getElementById(emailErrorSpanID).innerHTML = "<span class = 'error'><nobr>&nbsp;!</nobr></span>";		
			val = false;
		} else {	
			document.getElementById(emailErrorSpanID).style.visibility = "hidden";
			document.getElementById(emailErrorSpanID).innerHTML = ""
		}
	}
	return val;
}


//  Preforms an action once the maximum character are entered into an input
//  USAGE: KeyPress(this,event,30,'document.form1.Zip.focus()')
//  max = Maximum character for input.
//  action = What action to taken once max is reached
function KeyPressAction(what,e,max,action) 
{
    if (document.all)
    {
        if (what.value.length > (max-1))
            eval(action);
    }
    else
    {
        if (e.target.value.length >= max)
            eval(action);
    }
}

//  Does not allow special character in an input
//  USAGE: NoSpecial(event);
function NoSpecial(e)
{
	//NOT ALLOWED !@#$%^&* etc
	var allowedKeys = { 33:1, 34:1, 35:1, 36:1, 37:1, 38:1, 39:1, 40:1, 41:1, 42:1, 43:1, 44:1, 45:1, 46:1, 47:1, 58:1, 59:1, 60:1, 61:1, 62:1, 63:1, 64:1, 91:1, 92:1, 93:1, 94:1, 95:1, 96:1 };
    if(allowedKeys[e.which||e.keyCode])
        e.preventDefault? e.preventDefault() : e.returnValue = false; 
}

//  Does not allow numbers in an input
//  USAGE: NoNumbers(event);
function NoNumbers(e)
{
    var allowedKeys = { 47:1, 48:1, 49:1, 50:1, 51:1, 52:1, 53:1, 54:1, 55:1, 56:1, 57:1 };
    if(allowedKeys[e.which||e.keyCode])
        e.preventDefault? e.preventDefault() : e.returnValue = false; 
}

//  Does not allow quotes " ' in an input
//  USAGE: NoQuotes(event);
function NoQuotes(e)
{
    if(!({ 34:1, 39:1 }[e.which||e.keyCode]))
        e.preventDefault? e.preventDefault() : e.returnValue = false; 
}

//  Allow numbers ONLY in an input
//  USAGE: NumbersOnly(event);
function NumbersOnly(e)
{
    var allowedKeys = { 47:1, 48:1, 49:1, 50:1, 51:1, 52:1, 53:1, 54:1, 55:1, 56:1, 57:1 };
    if(!(allowedKeys[e.which||e.keyCode]))
        e.preventDefault? e.preventDefault() : e.returnValue = false; 
}