 /*************************************************************
 *
 *  if empty field see error on page and focus on field
 *
 ************************************************************/
 function CheckEmpty(form,field,errorDiv)
 {
    var x = eval("document."+form+"."+field);
// alert("document."+form+"."+field);
 //alert(document.getElementById(errorDiv).style.display);
    if(x.value == "")
    {
		document.getElementById(errorDiv).style.color = "red";
        document.getElementById(errorDiv).style.display = "";
        x.focus();
        if (x.type == "text") x.select();
        return false;
    }
    else
    {
        document.getElementById(errorDiv).style.display = "none";
        return true;
    }
    
 }
 /*************************************************************
 *
 *  check if string is valid return true or false
 *
 ************************************************************/
 function ValidString(inString,charsSet)
 {
//alert(inString);
    var len = inString.length;  
    switch(charsSet)
    {
    case 1:
		theGood="÷øàèåïíôóêìçéòëâãùæñáäðîöúõ";
        theGood=theGood+"&,;. :-_?!()*%#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        break;
    case 2: // membername
        theGood="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.";
        break;
    case 3: //for websites
        theGood="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_./"
        break;
    case 4: //for emails
        theGood="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.@";
        break;
    case 5: //numbers
        theGood= "1234567890";
        break;  
    case 6: //phone numbers
        theGood="1234567890-+ ";
        break;
     }
    // alert(charsSet);
    var search ="";
    var error = "";
    for (var i = 0 ; i < len ; i++)
    {       
        var aChar ="";
        aChar = inString.substring(i,i+1);
        search = theGood.indexOf(aChar);
        if (search == -1 && inString.charCodeAt(i)!= 13 && inString.charCodeAt(i)!= 10){    
            //alert(inString.charCodeAt(i)+" = "+aChar);
            return false;
        }
    }           
    return true;
 }
/*************************************************************
 *
 *  invalid email see error on page and focus on field
 *
 ************************************************************/

 function CheckEmail(form,field,errorDiv){

    var x = eval("document."+form+"."+field);
    emailStr=x.value;
    /* The following pattern is used to check if the entered e-mail address
    fits the user@domain format.  It also is used to separate the username
    from the domain. */
    var emailPat=/^(.+)@(.+)$/
    /* The following string represents the pattern for matching all special
    characters.  We don't want to allow special characters in the address.
    These characters include ( ) < > @ , ; : \ " . [ ]    */
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
    /* The following string represents the range of characters allowed in a
    username or domainname.  It really states which chars aren't allowed. */
    var validChars="\[^\\s" + specialChars + "\]"
    /* The following pattern applies if the "user" is a quoted string (in
    which case, there are no rules about which characters are allowed
    and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
    is a legal e-mail address. */
    var quotedUser="(\"[^\"]*\")"
    /* The following pattern applies for domains that are IP addresses,
    rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
    e-mail address. NOTE: The square brackets are required. */
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
    /* The following string represents an atom (basically a series of
    non-special characters.) */
    var atom=validChars + '+'
    /* The following string represents one word in the typical username.
    For example, in john.doe@somewhere.com, john and doe are words.
    Basically, a word is either an atom or quoted string. */
    var word="(" + atom + "|" + quotedUser + ")"
    // The following pattern describes the structure of the user
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
    /* The following pattern describes the structure of a normal symbolic
    domain, as opposed to ipDomainPat, shown above. */
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

    /* break up user@domain into different pieces */
    var matchArray=emailStr.match(emailPat)
   // var errorMessage = "";
	 var errorMessage = 0;

    if (matchArray==null) {
        /* Too many/few @'s or something; basically, this address doesn't
        even fit the general mould of a valid e-mail address. */
        //errorMessage += "<%=txtCharsNotValid4Email%><br>";
		errorMessage = 1;
    }
    if (matchArray != null)
    {
        var user=matchArray[1]
        var domain=matchArray[2]

        // See if "user" is valid
        if (user.match(userPat)==null) {
            // user is not valid
            //errorMessage += "errEmailInvalidUserName<br>";
			errorMessage = 1;
        }

        /* if the e-mail address is at an IP address (as opposed to a symbolic
        host name) make sure the IP address is valid. */
        var IPArray=domain.match(ipDomainPat)
        if (IPArray!=null) {
            // this is an IP address
            for (var i=1;i<=4;i++) {
                if (IPArray[i]>255) {
                    //errorMessage += "errEmailDestination";
					errorMessage = 1;
                }
            }
        }

        // Domain is symbolic name
        var domainArray=domain.match(domainPat)
        if (domainArray==null) {
            //errorMessage += "errEmailInvalidDomain";
			errorMessage = 1;
        }

        /* domain name seems valid, but now make sure that it ends in a
        three-letter word (like com, edu, gov) or a two-letter word,
        representing country (uk, nl), and that there's a hostname preceding
        the domain or country. */

        /* Now we need to break up the domain to get a count of how many atoms
        it consists of. */
        var atomPat=new RegExp(atom,"g")
        var domArr=domain.match(atomPat)
        var len=domArr.length
        if (domArr[domArr.length-1].length<2 ||
        domArr[domArr.length-1].length>3) {
            // the address must end in a two letter or three letter word.
           // errorMessage += "errEmailMustEndWith<br>";
		   errorMessage = 1;
        }
        // Make sure there's a host name preceding the domain.
        if (len<2) {
            //errorMessage += "errEmailMissingHostName<br>";
			errorMessage = 1;
        }

    }else{
    //else errorMessage = "<%=txtCharsNotValid4Email%>";
	errorMessage=1;
	}
	
    if (!ValidString(emailStr,4)) errorMessage=1;//errorMessage = "<%=txtCharsNotValid4Email%>";
	
    //if (errorMessage != "")
	if (errorMessage > 0)
        {
           // document.getElementById(errorDiv+"Msg").innerHTML=errorMessage;
            //document.getElementById(errorDiv).style.visibility = "";
            document.getElementById(errorDiv).style.color = "red"
            document.getElementById(errorDiv).style.display = "";
            x.focus();
            return false;
        }
        else
        {
            document.getElementById(errorDiv).style.visibility = "hidden";
			document.getElementById(errorDiv).innerHTML="";
            return true;
        }
        return false;
    }

