// JavaScript Document

//Removing space function
function ltrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

//RTrim(string) : Returns a copy of a string without trailing spaces.
function rtrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;       // Get length of string
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

// Trim(string) : Returns a copy of a string without leading or trailing spaces
function trim(str) {
   return rtrim(ltrim(str));
}




// Check email : Returns true if correct email address, and false if incorrect email address 
function emailCheck (emailStr) 
{
    		var errline='';
                var emailPat=/^(.+)@(.+)$/
    
                var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
    
                var validChars="\[^\\s" + specialChars + "\]"
    
                var quotedUser="(\"[^\"]*\")"
    
                var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
    
                var atom=validChars + '+'
    
                var word="(" + atom + "|" + quotedUser + ")"
    
                var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
    
                var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
    
                var matchArray=emailStr.match(emailPat)

    
                if (matchArray==null) {
   
                            errline += "\n Email address seems incorrect (check @ and .'s)";
                            return false
    
                }
    
                var user=matchArray[1]
    
                var domain=matchArray[2]
    
                if (user.match(userPat)==null) {
    
                           errline += "\n The username doesn't seem to be valid.";
    
                            return false
    
                }
    
                var IPArray=domain.match(ipDomainPat)
    
                if (IPArray!=null) {
    
                            // this is an IP address
    
                              for (var i=1;i<=4;i++) {
    
                                        if (IPArray[i]>255) {
    
                                                  
                                                     errline += "\n Destination IP address is invalid!";
    
                                        return false
    
                                        }
                            }
    
                            return true
    
                }
    
                var domainArray=domain.match(domainPat)
    
                if (domainArray==null) {
    
                           
                            errline += "\n The domain name doesn't seem to be valid.";
    
                            return false
                }
    
                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) {
                    errline += "\n The address must end in a three-letter domain, or two letter country.";
    
                   return false
    
                }
    
                if (len<2) {
    
                   var errStr="This address is missing a hostname!"
 
                   errline += "\n "+ errStr;
    
                   return false
    
                }
    
                return true;
}
