var strError = "";
var strValid = "";
var blError = false;
function checkForm()
{
	strError = "";
	blError = "";
	strValid = "";
	strMessage = "";
	
	for (iForm = 0;iForm < fieldArray.length;iForm ++)
	{
		if (eval('document.'+strFormName+'.'+fieldArray[iForm]))
		{
			checkField(fieldArray[iForm], typeArray[iForm], friendlyArray[iForm], validArray[iForm]);
		}
	}
	if (blError == false)
	{		
		return true;
	}
	else
	{
		if (strError != "")
		{
			strMessage = "Please fill out the following fields:\n\n"+strError;
		}
		if (strValid != "")
		{
			strMessage += "\nThe Following fields have invalid values:\n\n" + strValid;
		}
		alert(strMessage);
		return false;
	}
}
function checkField(strField,strType,strFriendly,strValidType)
{ 
	switch(strType)
	{
	case "text":
		var tValue = eval('document.'+strFormName+'.'+strField+'.value'); 
		if ( tValue == "")
		{
			blError = true;
			strError = strError + strFriendly + ".\n";
		}
		else
		{
			if (strValidType != "")
			{
				switch (strValidType)
				{
					case "number":
						var filter  = /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
						if (!filter.test(tValue))
						{
							strValid += strFriendly + " is not a valid number.\n";
							blError = true;
						}
						break
					case "shortdate":
						var filter  = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/;
						if (!filter.test(tValue))
						{
							strValid += strFriendly + " is not a valid date.\n";
							blError = true;
						}
						break
					case "date":
						var filter  = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
						if (!filter.test(tValue))
						{
							strValid += strFriendly + " is not a valid date.\n";
							blError = true;
						}
						break
					case "email":
						var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
						if (!filter.test(tValue))
						{
							strValid += strFriendly + " is not a valid email.\n";
							blError = true;
						}
						break
					default:

				}
			}
		}
		break
	case "radio":
		myOption = -1;
		for (i = eval('document.'+strFormName+'.'+strField+'.length')-1;i>-1;i--)
		{
			if (eval('document.'+strFormName+'.'+strField+'['+i+'].checked'))
			{
				myOption = i;
				i = -1;
			}
		}
		if (myOption == -1)
		{
			blError = true;
			strError = strError + strFriendly + ".\n";
		}
		break	
	case "select":
	
		if (eval('document.'+strFormName+'.'+strField+'.selectedIndex') == 0)
		{
			blError = true;
			strError = strError + strFriendly + ".\n";
		}
		break
	case "checkbox":
		if (eval('document.'+strFormName+'.'+strField+'.checked') == 0)
		{
			blError = true;
			strError = strError + strFriendly + ".\n";
		}
		break
	case "textarea":
		if (eval('document.'+strFormName+'.'+strField+'.value') == "")
		{
			blError = true;
			strError = strError + strFriendly + ".\n";
		}
		break
	default:

	}	

}

function isEmail(str) 
{
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
	var tempStr = "a";
	var tempReg = new RegExp(tempStr);
	if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
	return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	  return (!r1.test(str) && r2.test(str));
}
function intfloat(e)
{
  var keynum;
  var keychar;
  var numcheck;
 
 if(e.keyCode==9)
    return true;
  else
  {
	 if(window.event) // IE
	 {
		keynum = e.keyCode;
	 }
	 else if(e.which) // Netscape/Firefox/Opera
	 {
		keynum = e.which;
	 }	
	 if((keynum>=48 && keynum<=57) || keynum==46 || keynum==13 || keynum==8 || keynum==9)
	 {
		return true;	
 	 }
	 else
	 {
		keynum=0;
		return false;
	 }
  }
}

function intDigits(e)
{
  var keynum;
  var keychar;
  var numcheck;
 
  if(window.event) // IE
  {
  	keynum = e.keyCode;
  }
  else if(e.which) // Netscape/Firefox/Opera
  {
  	keynum = e.which;
  }	
	if((keynum>=48 && keynum<=57 )|| keynum==13 || keynum==8)
	{
		return true;	
	}
	else
	{
		keynum=0;
		return false;
	}
	
}