//===================================================================
// Created: 02/23/04
//
// Author:  Navdeep Alam
//
// Name: validate.js
//
// Dependencies: 
//
// Description: Library of Validation Functions
//===================================================================

// Check for valid email
function isValidEmail(str) {
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
 
}

function IsEmpty(aTextField) {
   if ((aTextField.value.length==0) ||
   (aTextField.value==null)) {
      return true;
   }
   else { return false; }
}	

//Check for number values
function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
      {
         IsNumber = false;
      }
   }

   return IsNumber;

}

function EmailRejectFilter(emailStr)
{
    var hotmailEmail = /@hotmail\./i;
    var gmailEmail = /@gmail\./i;
    var yahooEmail = /@yahoo\./i;
    var aolEmail = /@aol\./i;
    
    var pookEmail = /@pookmail\./i;
    var spamgourmetEmail = /@spamgourmet\./i;
    var e4wardEmail = /@e4ward\./i;
    var mailinatorEmail = /@mailinator\./i;
    var trashEmail = /@trashmail\./i;
    var spambobEmail = /@spambob\./i;
    var Mail2RSSEmail = /@Mail2RSS\./i;
    var sneakeEmail = /@sneakemail\./i;
    var emailEmail = /@email\./i;
    var stormloaderEmail = /@stormloader\./i;
    var netzeroEmail = /@netzero\./i;
    var fusemailEmail = /@fusemail\./i;
    var sbcglobalEmail = /@sbcglobal\./i;
    var coxEmail = /@cox\./i;    
    var knowledgeEmail = /knowledge/i;
    var knowledgeplanetEmail = /@knowledgeplanet\./i;
    
    var index1, index2, index3, index4, index5, index6;
    var index7, index8, index9, index10, index11, index12;
    var index13, index14, index15, index16, index17, index18;
    var index19, index20;
    
    index1 = emailStr.search(hotmailEmail);
    index2 = emailStr.search(gmailEmail);
    index3 = emailStr.search(yahooEmail);
    index4 = emailStr.search(aolEmail);
    
    index5 = emailStr.search(pookEmail);
    index6 = emailStr.search(spamgourmetEmail);
    index7 = emailStr.search(e4wardEmail);
    index8 = emailStr.search(mailinatorEmail);
    index9 = emailStr.search(trashEmail);
    index10 = emailStr.search(spambobEmail);
    index11 = emailStr.search(Mail2RSSEmail);
    index12 = emailStr.search(sneakeEmail);
    index13 = emailStr.search(emailEmail);
    index14 = emailStr.search(stormloaderEmail);
    index15 = emailStr.search(netzeroEmail);
    index16 = emailStr.search(fusemailEmail);
    index17 = emailStr.search(sbcglobalEmail);
    index18 = emailStr.search(coxEmail);
    index19 = emailStr.search(knowledgeEmail);
    
    index20 = emailStr.search(knowledgeplanetEmail);
    
    if(index20 != -1)
    {
		//Ensure Knowledgeplanet domain is accepted
		return false; 
	}
	
    if(index1 != -1 || index2 != -1 || index3 != -1 || index4 != -1 || index5 != -1 || index6 != -1 || index7 != -1 || index8 != -1 || index9 != -1 || index10 != -1 || index11 != -1 || index12 != -1 || index13 != -1 || index14 != -1 || index15 != -1 || index16 != -1)  // Rejected Email Domain Detected
    {
        return true;
    }
    
    if(index17 != -1 || index18 != -1 || index19 != -1)
    {
    	return true;
    }
    
    return false;
}

function EmailCompetitor(emailStr)
{
    var adobeEmail = /adobe./i;
    var learnEmail = /learn./i;
    var geolearningEmail = /geolearning./i;
    var plateauEmail = /plateau./i;
    var assimaEmail = /assima./i;
    var rwdEmail = /rwd./i;
    var trivantisEmail = /trivantis./i;
    var ondemandgkEmail = /ondemandgk./i;
    var globalknowledgeEmail = /globalknowledge./i;
    var kaplanEmail = /kaplan./i;
    var knowledgequestEmail = /kq./i;
    
    var index1, index2, index3, index4, index5, index6, index7, index8, index9, index10, index11;
    index1 = emailStr.search(adobeEmail);
    index2 = emailStr.search(learnEmail);
    index3 = emailStr.search(geolearningEmail);
    index4 = emailStr.search(plateauEmail);
    index5 = emailStr.search(assimaEmail);
    index6 = emailStr.search(rwdEmail);
    index7 = emailStr.search(trivantisEmail);
    index8 = emailStr.search(ondemandgkEmail);
    index9 = emailStr.search(globalknowledgeEmail);
    index10 = emailStr.search(kaplanEmail);
    index11 = emailStr.search(knowledgequestEmail);

    if(index1 != -1 || index2 != -1 || index3 != -1 || index4 != -1 || index5 != -1 || index6 != -1 || index7 != -1 || index8 != -1 || index9 != -1 || index10 != -1)  // Competitor Email Domain Detected
    {
        return true;
    }
    
    if(index11 != -1)
    {
        return true;
    }
    
    return false;    
}
	
function emailCheck (emailStr)
{

	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) 
	{
		//alert("Email address seems incorrect (check @ and .'s)")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) 
	{
		//alert("The username doesn't seem to be valid.")
		return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) 
	{
		for (var i=1;i<=4;i++) 
		{
			if (IPArray[i]>255) 
			{
				//alert("Destination IP address is invalid!")
				return false
			}
		}
	return true
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null) 
	{
		//alert("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) 
	{
		//alert("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!"
		//alert(errStr)
		return false
	}

return true;
}


