//Email check of all type of validation.

function EmailCheck(s) {}
EmailCheck.testEmail = function(email) {
	var re = /(.*)@(.*)/
	
	var a = re.exec(email)
	if (!a) return false
	var s1 = a[1]	// name
	var s2 = a[2]	// domain

	//	First check name
	
	if (s1=='') 
		return false
		
	if (/"/.test(s1)) 
	{
		if (/(^\.)|(\.$)/.test(s1)) return false
		s1 = s1.replace(/\\./g,'')		// Backslashed chars are legal... removeŽem
		s1 = s1.replace(/"[^"]*"/g,'')	// Quoted stuff is legal too... trashŽem
	}
	else 
	{
		if (/(^\.)|(\.\.)|(\.$)/.test(s1)) 
			return false
	}
	
	if (/[\x00-\x20\x7f-\xff@<>\[\](),:;]/.test(s1)) 
	{
		return false
	}
	
	//	Then check domain
	if (/[\x00-\x20\\"&<>^`{|}~@\x7f-\xff]/.test(s2)) 
	{
		return false
	}	
	if (/(^\.)|(\.\.)|(\.$)/.test(s2)) 
	{
		return false
	}
	
	var posDot=s2.indexOf(".");
	
	if(posDot==-1)
	{
		return false;
	}
	if(posDot==s2.length-1)
	{
		return false;
	}
	
	
	return true
}
EmailCheck.splitEmailList = function(s) {
	
	var c=0;
	var tmp='';
	while(c<s.length){
		
		if(s.charCodeAt(c)==13 || s.charCodeAt(c)==10)
		{	
			
		}
		else
		{
		tmp=tmp+s.substring(c,c+1)
		}
		
		
		c=c+1;
	}
	if(tmp.length>0)
		s=tmp;
	
	var re = /[,;]/
	var a = s.split(re)	
	
	var i=0;
	for (i=0; i<a.length; i++) {
		a[i] = a[i].replace(/ +$/,'').replace(/^ +/,'')  // trim
	}
	
	return a
}
EmailCheck.testEmailList = function(s,u){

	var a = EmailCheck.splitEmailList(s)
	
	for (var i=0; i<a.length; i++) {
		if (!EmailCheck.testEmail(a[i])){
		alert("Please enter a valid email id:"+a[i]);
		 return false;
		}
		if(a[i]==u){
				alert("Your own E-mail ID cannot be added here.");
				return false;
				}
	}
	
	
	var checkDuplicateId=false;
	for (var i=0; i<a.length; i++) 
	{
		for (var j=0; j<a.length; j++) 
		{
				if( i != j)
				{
					if (a[j].toLowerCase() == a[i].toLowerCase() )
					{

						checkDuplicateId=true;
					}
				
				}
		}
		if (checkDuplicateId)
		{

			break;
		}
	}
	if(checkDuplicateId)
	{

		alert("Duplicate e-mail Id not allowed");
		checkDuplicateId=false;
		return false;
	}
	return true;
		
}

EmailCheck.testEmailUser = function(s){

	var a = EmailCheck.splitEmailList(s)
	
	for (var i=0; i<a.length; i++)
	 {
		if (!EmailCheck.testEmail(a[i]))
		{
			alert("Please enter a valid E-mail ID");
		 	return false;
		}
		
	}
	
	var checkDuplicateId=false;
	for (var i=0; i<a.length; i++) 
	{
		for (var j=0; j<a.length; j++) 
		{
				if( i != j)
				{
					if (a[j].toLowerCase() == a[i].toLowerCase())
					{

						checkDuplicateId=true;
					}
				
				}
		}
		if (checkDuplicateId)
		{

			break;
		}
	}
	if(checkDuplicateId)
	{

		alert("Duplicate e-mail Id not allowed");
		checkDuplicateId=false;
		return false;
	}
	return true;
}


//----------------------------------------------------------------------------------------------------
//     function trim(arg,func) 
// This function will trim leading and/or trailing spaces from a string
// arg = the value you wish to have trimmed..
// func = "left" for Ltrim(), "right" for RTrim() or "both" for Trim()
//----------------------------------------------------------------------------------------------------
// changing all i to var i.....

function trim(arg,func) 
{
 		  var trimvalue = "";
          
		  
          if (arg.length < 1) 
		  {
		  	return trimvalue;
		  } 

          if (func == "left" || func== "both")
		  {
              var i = 0;
              pos = -1;
              	while (i < arg.length)
				{
				
		              if (arg.charCodeAt(i) != 32 && !isNaN(arg.charCodeAt(i))) 
					  {
                      		pos = i;
                            break;
                       } //end of if
                         		i++;
                 } // end of while
           } // end of if

          if (func == "right" || func== "both")
		  {
             var lastpos = -1;
             var i = arg.length;
                    while (i >= 0) 
					{
                         if (arg.charCodeAt(i) != 32 &&  !isNaN(arg.charCodeAt(i))) 
						 {
                             lastpos = i;
                             break;
                          } // end of if
                         		i--;
                      } // end of while
           } // end of if (func == "right" || func== "both")

          					if (func == "left")
							{
                                   trimvalue = arg.substring(pos,arg.length-1);
                            }

                            if (func == "right") {
                                    trimvalue = arg.substring(0,lastpos+1);
                            }

                            if (func == "both") {
                                    trimvalue = arg.substring(pos,lastpos + 1);
                            }

                            return trimvalue;

} // end of function trim
//------------------------------------------------------------------------------------
// function: isBlank()
//           Function to check whether any required field is left blank 
//------------------------------------------------------------------------------------


function IsBlank(field)
{  
	var temp = field.value;
	var temp1 = trim(temp,"both");
	
	if (temp1 == "")
	{
		return true;
	}
	else
	{	
		return false;
	}
} // end of function isBlank

//--------------------------------------------------------------------------------------
//function for URL Check. Megha added 04-03-04
// for validating the URL address has to begin with http:// or www.
//--------------------------------------------------------------------------------------
function UrlCheck(urlvalue,alertvalue)
{
	var  linkaddress=urlvalue;
	var  http='http';
	var www='www.';
	validstr=linkaddress.substring(0,4);
	
	var re = /(\.)/
	
	var a = re.exec(linkaddress)
	
	if (!a) 
	{
		alert("Enter a valid " + alertvalue);
		return false;
	}

	if( validstr==http )
	{
		return true;
	}
	else if(validstr==www)
	{
		return true;
	}
	else 
	{
		alert("Enter a valid " + alertvalue);
		return false;
	}	
}
function httpUrlCheck(urlvalue,alertvalue)
{

	var  linkaddress=urlvalue;
	var  http='http';
	var www='www.';
	validstr=linkaddress.substring(0,4);
	
	var re = /(\.)/
	
	var a = re.exec(linkaddress)
	
	if (!a) 
	{
		alert("Enter a valid " + alertvalue);
		return false;
	}
	

	if( validstr==http )
	{
		return true;
	}	
	else 
	{
		alert("Enter a valid " + alertvalue);
		return false;
	}	
}




//---------------------------------------------------------------------------------------