String.prototype.trim = function() 
{
  return this.replace(/(^\s *)|(\s*$)/g,"")
}

function CheckFields(FldName,FldType,maxChar,displayName)
  {
  var s;
  var txt=""
  var Field =document.getElementById(FldName);
  Field.value=Field.value.trim(); 
  try
  {
     if(Field.value.toUpperCase()==displayName.toUpperCase())
      {
        alert(displayName+" must not have blank or invalid characters.")    
        Field.focus();        
        return false
      }
  }
  catch(err)
  {
      txt="There was an error on this page.\n\n";
      txt+="Error description: " + err.description + "\n\n";
      txt+="Click OK to continue.\n\n";
      alert(txt);
  }

  if(FldType=='text')
  {
      if(Field.value=="" || Field.value.length > maxChar)
      {
        if(Field.value=="") 
	        alert(displayName+" must not have blank or invalid characters.")
        else	
	        alert(displayName+" can have maximum of "+maxChar+" characters.")
        Field.focus()
        return false
      }
  }
  if(FldType=='combo')
  {
        if(Field.value=="" || Field.value=="-Select-" || Field.value=="0")
        {
	        alert('You must select at least one option for '+ displayName+'.')
            Field.focus()
            return false
        }
  }
  else if(FldType=='fldsize')
  {
 	 if(Field.value.length > maxChar)
  	 {
	  alert(displayName+" cannot be greater than "+maxChar)
	  Field.focus()
	  return false
  	 }
  }
  else if(FldType=='logintext')
  {
  if(Field.value=="" || Field.value.length > maxChar)
  {
    if(Field.value=="") 
		alert(displayName+" cannot be blank.")
	else	
		alert(displayName+" can have maximum of "+maxChar+" characters.")
  Field.focus()
  return false
  }
  if(Field.value.indexOf("@")>=0 || Field.value.indexOf(".")>=0 || Field.value.indexOf("'")>=0 || Field.value.indexOf('"')>=0 || Field.value.indexOf("~")>=0 || Field.value.indexOf("!")>=0 || Field.value.indexOf("#")>=0 || Field.value.indexOf("$")>=0 || Field.value.indexOf("%")>=0 || Field.value.indexOf("^")>=0 || Field.value.indexOf("&")>=0 || Field.value.indexOf("*")>=0 || Field.value.indexOf("(")>=0 || Field.value.indexOf(")")>=0 || Field.value.indexOf("-")>=0 || Field.value.indexOf("+")>=0 || Field.value.indexOf("=")>=0 || Field.value.indexOf("|")>=0 || Field.value.indexOf("/")>=0 || Field.value.indexOf("?")>=0 || Field.value.indexOf(">")>=0 || Field.value.indexOf("<")>=0 || Field.value.indexOf(",")>=0 || Field.value.indexOf(";")>=0 || Field.value.indexOf(":")>=0 || Field.value.indexOf("{")>=0 || Field.value.indexOf("}")>=0 || Field.value.indexOf("[")>=0 || Field.value.indexOf("]")>=0 || Field.value.indexOf("`")>=0 || Field.value.indexOf("\\")>=0)
  {
  alert("Please enter a valid "+displayName+".\n\nOnly characters, numbers and underscores ( _ ) are allowed."); 	   
  Field.focus()
  return false  }
  }
  else if(FldType=='textarea')
  {
  if(Field.value=="" || Field.value.length>maxChar)
  {
  	if(Field.value=="") 
		alert(displayName+" cannot be blank.")
	else	
		alert(displayName+" can have maximum of "+maxChar+" characters.")
  Field.focus()
  return false  }
  }
  else if(FldType=='number')
  {
      if(isNaN(Field.value))
      {
        alert("Please enter only digits for "+displayName+".")
        Field.focus()
        return false 
      }
      else
      {
        if(Field.value.indexOf('.') > -1) 
        {
          alert("Please enter only digits for "+displayName+".")
          Field.focus()
          return false;
        }
        else
        {
          if((Field.value < 0) || (Field.value == "-0"))
          {
            alert("Please enter positive numbers for "+displayName+".")
            Field.focus()
            return false;
          }
        }
      }
  }
  else if(FldType=='numberblank')
  {
      if(Field.value=="")
      { 
      alert(displayName+" must not have blank or invalid characters.")
      Field.focus()
      return false  
      }
      else if(Field.value == 0)
      {
        alert(displayName+" can't be 0.");
        Field.focus();
        return false;
      }
      else
      { 
        return CheckFields(FldName,"number",maxChar,displayName);
      }
  }
  else if(FldType=='numeric')
  { alert("Nb");
    str = Field.value;
    var isbool = new Boolean(str)
    if(isNaN(str)) 
    {
        alert("Please enter only Numeric values for "+displayName+".")
		Field.focus()
		return false
    }
    else
    {		
        if(isbool == false)
        {
            alert("Please enter only Numeric values for "+displayName+".")
		    Field.focus()
		    return false
        }
    }
  }
  else if(FldType=='date') 
  {
  DateFld=new Date(Field.value)
  if (isNaN(DateFld)) 
  {
  alert("Please enter proper "+displayName+".")
  Field.focus()
  return false }
  }
  else if(FldType=='email')
  {
        
      var str=Field.value.trim()      
      if(echeck(str))
         testresults=true
      else
      {
         alert("Please input a valid email address!")
	     Field.focus();
  	     testresults=false
  	   }
       return testresults;
  }
 }
 function echeck(str) 
 {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1)
		   return false
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
		   return false
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
		    return false
		 if (str.indexOf(at,(lat+1))!=-1)
		    return false
		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
		    return false
		 if (str.indexOf(dot,(lat+2))==-1)
		    return false
		 if (str.indexOf(" ")!=-1)
		    return false

 		 return true					
}
function extractDigits(mystr)
{
	// extracts only digits from a string and returns a new numeric string
	return mystr.replace(/[^0-9]/g,'');
}    
