var defaultEmptyOK = false;

//set up basic character groups
var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz";
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var whitespace = " \t\n\r";
var nameDelimiters = "-. ";
var decimalPointDelimiter = ".";
//var daysInMonth = makeArrayFromString(31,29,31,30,31,30,31,31,30,31,30,31);

//set up allowed characters for specific data types

//phone numbers
var phoneNumberDelimiters = "()- ";
var digitsInUSPhoneNumber = 10;
var validUSPhoneChars = digits + phoneNumberDelimiters;
var validWorldPhoneChars = digits + phoneNumberDelimiters + "+";

//electronic addresses
var validDomainNameChars = digits + uppercaseLetters + lowercaseLetters + "-_.";

//snail mail addresses
var addressDelimiters = ".,/-" + whitespace;
var validAddressCharacters = addressDelimiters + digits + uppercaseLetters + lowercaseLetters;

function zip(field)
{
        flag=numchar(field,"num")
        if(flag==false)
                return false
    if(field.value.length == 5 || field.value.length == 6)
                return true
        else
        {       
                alert("Invalid entry!")
                return false
        }       
}


function numchar(field,type) 
{     
        var valid = "";
        var message="";
        var ok = "yes";
        if(type=="num")
        {
                valid="0123456789.";
                message="Invalid entry!  Only numbers are accepted!";
        }
        else
                if(type=="inti")
                {
                        valid="123456789";
                        message="Invalid entry!  Only numbers are accepted!";
                }
                else
                        if(type=="nonzero")
                        {
                                valid="123456789.";
                                message="Invalid entry!  Only numbers greater than zero are accepted!";
                        }
                        else
                                if(type=="alphanum")
                                {
                                        valid="abcdefghijklmnopqrstuvwxyz-.ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                                        message="Invalid entry!  Only characters and numbers are accepted!";
                                }
                                else
                                        if(type=="mail")
                                        {
                                                valid="abcdefghijklmnopqrstuvwxyz-_@.ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                                        }
                                        else
                                                if(type=="url")
                                                {
                                                        valid="abcdefghijklmnopqrstuvwxyz-_@/,:.ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                                                }
        var temp;       
        for (var i=0; i<field.value.length; i++)
        {
                temp = "" + field.value.substring(i, i+1);
                if (valid.indexOf(temp) == "-1") 
                {
                        ok = "no";
                }
        }
        if (ok == "no")
        {
//                      field.value="";
                        alert(message);
                field.focus();
                        return false;
         }
        return true;
}











function iswhitespace(s) {
    var i;
//    if (isEmpty(s)) 
//      return true;
    for (i = 0; i < s.value.length; i++)
    {   
        var c = s.value.charAt(i);
        if (whitespace.indexOf(c) != -1) 
                {
                        return true;
                }
    }
        return false; // not whitespace
}

function isemail(s)
{
    if (iswhitespace(s))
    {
                alert("Please Enter Your Proper Email ID");
                s.focus();
                return false;
    }
    var i = 1;
    var sLength = s.value.length;
    while ((i < sLength) && (s.value.charAt(i) != "@"))
    { 
                i++;
        }
    if ((i >= sLength) || (s.value.charAt(i) != "@")) 
    {
                alert("Invalid E-Mail Address");
                s.focus();
                return false;
        }       
    else 
                atloc = i;
    j = i+1;
    i += 1;
    
    flag=numchar(s,"mail")
    if(!flag)
    {
                //alert("Invalid Character In Domain Name: "+s.value.charAt(j));
                alert("Invalid Character In E-Mail Address: ");
                s.focus();
                return false;
    }
//   while ((j < sLength) && (validDomainNameChars.indexOf(s.value.charAt(j)) != -1))
//    {
//              j++;
//   }
//    if (j < sLength)
//    {
//              alert("Invalid Character In Domain Name: "+s.value.charAt(j));
//              s.focus();
//              return false;
//    }

    while ((i < sLength) && (s.value.charAt(i) != "."))
    { 
                i++;
        }
    if (i == sLength) 
    {
                alert("No '.' In E-Mail Address");
                s.focus();
                return false;
        }
    if (i == (atloc +1)) 
    {
                alert("Not Enough Space Between @ And .");
                s.focus();
                return false;
        }
    k = atloc+1;
    while (k < sLength)
    {
      if ((s.value.charAt(k) == ".") && (s.value.charAt(k+1) == ".")) 
      {
                alert("too many .'s");
                s.focus();
                return false;
          }
      k++;
    }
    l = sLength;
    while ((i < sLength -2) && (l != i) && (s.value.charAt(l) != "."))
    { 
                l = l-1 
        }
    if ((i >= sLength - 2) || (s.value.charAt(i) != ".") || (l >= sLength - 2)) 
    {
                alert("not enough chars after '.'");
                s.focus();
                return false;
        }
    else 
                return true;
}

