
// Removes the leading blank characters from the string
// str - string to be left trimmed
function trimLeft(str) 
{
	var whitespaces = " \t\n\r";
	for (n = 0; n < str.length; n++) 
	{ 
	  	if (whitespaces.indexOf(str.charAt(n)) == -1) 
		{ 
	    	return (n > 0) ? str.substring(n, str.length) : str;
	  	} 
	}
	return("");
}

// Removes the trailing characters from the string
// str - string to be right trimmed
function trimRight(str)
{
	var whitespaces = " \t\n\r";
	for (n = str.length - 1; n > -1; n--) 
	{ 
	  	if (whitespaces.indexOf(str.charAt(n)) == -1) 
		{
	    	return (n < (str.length - 1)) ? str.substring(0, n+1) : str;
	  	}	 
	}
	return("");
}

// Removes both leading and trailing characters from the string
// str - string to be trimmed
function trim(str) 
{
  	return ((str == null) ? "" : trimRight(trimLeft(str))); 
}
function checkCombo(value,msg)
{
if(value==0)
{
alert (msg);
return false
}
else
return true;
}

/*function checkEmail(emailStr) 
{
	
     for(var i=0;i<emailStr.length;i++)
	{
	   var chk=returnASCII(emailStr.charAt(i));
		
	   if((chk==96) || (chk<=44) || (chk==47) ||(chk<=63 && chk>=58) || (chk<=94 && chk>=91) || (chk<=255 && chk>=123))
		{
			alert("The character   "+returnCharFromAscii(chk)+"  used in Email field is not allowed");
			return false;
		}
	}    
    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 in the Email Address 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 in the Email is invalid!");
    		    return false;
    	    }
        }
        return true;
    }
    var domainArray=domain.match(domainPat);
    if (domainArray==null) 
    {
    	alert("The domain name in the Email Address 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] != "info") &&
    	(domArr[domArr.length-1] != "name") &&
    	(domArr[domArr.length-1] != "arpa") &&
    	(domArr[domArr.length-1] != "coop")) 
    {
        if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
        {
            alert("The Email address must end in a three-letter domain, or two letter country.");
            return false;
        }
    }
    if (len<2) 
    {
       var errStr="This Email address is missing a hostname!";
       alert(errStr);
       return false;
    }
   
    return true;
}*/
function checkEmail (emailStr) 
{
emailStr=trim(emailStr).toLowerCase();
 for(var i=0;i<emailStr.length;i++)
	{
	   var chk=returnASCII(emailStr.charAt(i));
		if(chk==32)
       {
            alert("Spaces are not allowed in Email field.");
            return false
       }
	   if((chk==96) || (chk<=44) || (chk==47) ||(chk<=63 && chk>=58) || (chk<=94 && chk>=91) || (chk<=255 && chk>=123))
		{
			alert("The character   "+returnCharFromAscii(chk)+"  used in Email field is not allowed.");
			return false;
		}
	}    
emailStr=trim(emailStr);
var checkTLD=1;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
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];
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("Ths username contains invalid characters.");
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Ths domain name contains invalid characters.");
return false;
   }
}

if (user.match(userPat)==null) {
// user is not valid
alert("The username in Email 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 in Email is invalid!");
return false;
   }
}
return true;
}
 
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("The domain name in Email seems to be invalid.");
return false;
   }
}
var domain=domArr[domArr.length-1];
for(var p=0;p<domain.length;p++)
{
    var chk=returnASCII(domain.charAt(p));
    if((chk<97 && chk>90) || (chk>122  ||  chk<65  ))
    {
        alert("The domain name in Email field seems to be invalid.");
        return false;
    }

}
if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("The Email must end in a well-known domain or two letter " + "country.");
return false;
}
// Make sure there's a host name preceding the domain.
if (len<2) {
alert("This Email is missing a hostname!");
return false;
}
// If we've gotten this far, everything's valid!
return true;
}

//////////////////////////////////////////





function checkWebsite (emailStr) 
{
emailStr=trim(emailStr).toLowerCase();
 for(var i=0;i<emailStr.length;i++)
	{
	   var chk=returnASCII(emailStr.charAt(i));
		if(chk==32)
       {
            alert("Spaces are not allowed in Website field.");
            return false
       }
	   if((chk==96) || (chk<=44) || (chk==47) ||(chk<=63 && chk>=58) || (chk<=94 && chk>=91) || (chk<=255 && chk>=123))
		{
			alert("The character   "+returnCharFromAscii(chk)+"  used in Website field is not allowed.");
			return false;
		}
	}  

emailStr=trim(emailStr);

var domArr=emailStr.split(".");
var len=domArr.length;
if(len<2 || len>4)
{
	alert(" Period ( . ) is missing in Website field or more then three period ( . ) is coming.");
	return false;
}
if(domArr[len-1].length<2)
{
	alert("Domain name seems invalid.")
	return false;
}
if(domArr[len-2].length<2)
{
	alert("Server name seems invalid.")
	return false;
}
return true;
}

function checkWebsite_german (emailStr) 
{
emailStr=trim(emailStr).toLowerCase();
 for(var i=0;i<emailStr.length;i++)
	{
	   var chk=returnASCII(emailStr.charAt(i));
		if(chk==32)
       {
            alert(" Leerzeichen sind nicht zul?ssig im Bereich Website.");
            return false
       }
	   if((chk==96) || (chk<=44) || (chk==47) ||(chk<=63 && chk>=58) || (chk<=94 && chk>=91) || (chk<=255 && chk>=123))
		{
			alert("Der Charakter   "+returnCharFromAscii(chk)+"  in der Website ist nicht erlaubt.");
			return false;
		}
	}  

emailStr=trim(emailStr);

var domArr=emailStr.split(".");
var len=domArr.length;
if(len<2 || len>4)
{
	alert(" Punkt (.) Fehlt im Bereich Website oder mehr als drei Punkt (.) Kommt.");
	return false;
}
if(domArr[len-1].length<2)
{
	alert("Domain-Namen scheint ung?ltig.")
	return false;
}
if(domArr[len-2].length<2)
{
	alert("Server Name scheint ung?ltig.")
	return false;
}
return true;
}


function isEmpty(str)
{
    var s = trim(str);
    return (s.length == 0);
}


function validateField(field, msg)
{	if(!checkQuote(field.value))
	{
	alert("double quotes, < or > are not allowed in any field.");
	return false;
	}
	if (isEmpty(field.value))
    {
        alert(msg);
        return false;
    }
	return true;
}

function checkQuote(msg)
{
for(var i=0;i<msg.length;i++)
{
	   var chk=returnASCII(msg.charAt(i));
	   if(chk==34 || chk==60 || chk== 62)
	   {
	   return false;
	   }
}
	return true;
}
	  

function returnASCII(c)
{
    
	// restrict input to a single character
	c = c . charAt (0);

	// loop through all possible ASCII values
	var i;
	for (i = 0; i < 256; ++ i)
	{
		// convert i into a 2-digit hex string
		var h = i . toString (16);
		if (h . length == 1)
			h = "0" + h;

		// insert a % character into the string
		h = "%" + h;

		// determine the character represented by the escape code
		h = unescape (h);

		// if the characters match, we've found the ASCII value
		if (h == c)
			break;
	}
	return i;
}
function returnCharFromAscii(c)
{
var h=c.toString(16);
if(h.length==1)
h="0"+h;
h="%"+h;
h=unescape(h);
return h;
}

function validatePhone(phno)
{
	phno=trim(phno);
    for(var i=0;i<phno.length;i++)
	{
	   var chk=returnASCII(phno.charAt(i));
	   /*if(chk==32)
       {
            alert("Spaces are not allowed in Primary telephone field.");
            return false
       }*/
		if((i==0 && chk<=122 && chk>=92)|| (i==0 && chk>=65 && chk<=90)||(i==0 && chk==46) || (i==0 && chk==45)|| (i==0 && chk==41))
		{
			alert("Primary Telephone cannot start with character  "+returnCharFromAscii(chk)+".  You should start with numeric or +,(");
			return false;
		}
	   if((chk==42) || (chk==44) || (chk==47) || (chk<=39 && chk!=32) ||(chk<=64 && chk>=58) || (chk<=96 && chk>=91) || (chk<=255 && chk>=123))
		{
			alert("The character  "+returnCharFromAscii(chk)+"  is not allowed in Primary Telephone field.");
			
			return false;
		}
	}
	return true;
}
// common validation applied to all fields
function commonValidation(message)
{
    for(var i=0;i<message.length;i++)
	{
	   var chk=returnASCII(message.charAt(i));
	   if((chk==33) || (chk==36) || (chk==37) || (chk==42) ||(chk==94) || (chk==96) || (chk==126)||(chk==93)||(chk==91)||(chk==125)||(chk==123))
		{
			alert("The character  "+returnCharFromAscii(chk)+"  is not allowed in any field.");
			
			return false;
		}
	}
    return true;
}
function validateFieldNotMandatory(field, msg)
{	if(!checkQuote(field.value))
	{
	alert("double quotes, < or > are not allowed in any field.");
	return false;
	}
    if(!commonValidation(field.value))
    {
        return false;
    }
	return true;
}
function validateCheckBox(formname,objname,msg)
{

for(var i=0;i<formname.elements.length;i++)
{
if(formname.elements[i].type=="checkbox" && formname.elements[i].name==objname && formname.elements[i].checked)
{
return true;
}
}
alert(msg);
return false;
}

function checkCuHdnu(formname,msg)
{   
    for(var i=0;i<formname.elements.length;i++)
    {
    if((formname.elements[i].type=="checkbox" && formname.elements[i].name=="customerUpdate" && formname.elements[i].checked) ||(formname.elements[i].type=="checkbox" && formname.elements[i].name=="hdnUpdate" && formname.elements[i].checked))
    {
    return true;
    }
    }
    alert(msg);
    return false;
}

function handleSpace(message)
{
   for(var i=0;i<message.length;i++)
    {
        c=message.charAt(i);
        var chk=returnASCII(c);
        if(chk==32)
        {
        if(confirm("Do you want to use spaces in the last name?(Do not use more than one space.)")==false)
        return false;
        else
        return true;
        }
    }
    return true;
}
 
// Function used to copy the text to clipboard.
function copyToClipBoard(meintext)
{

//meintext="$%"+meintext+"%$";
 if (window.clipboardData) 
   {
   
   // the IE-manier
   window.clipboardData.setData("Text", meintext);
   
   // waarschijnlijk niet de beste manier om Moz/NS te detecteren;
   // het is mij echter onbekend vanaf welke versie dit precies werkt:
  }
   else if (window.netscape) 
   { 
    //netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead")

   
   
   
   try{ 
   // dit is belangrijk maar staat nergens duidelijk vermeld:
   netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
   }catch(e)
   {
     alert('signed.applets.codebase_principal_support is turned off. Please enable it. Write about:config in address bar it will open the config attributes. Make "signed.applets.codebase_principal_support" to true by double clicking on value of this attribute.');
     
   }
   // maak een interface naar het clipboard
   var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
   if (!clip) return;
   
   // maak een transferable
   var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
   if (!trans) return;
   
   // specificeer wat voor soort data we op willen halen; text in dit geval
   trans.addDataFlavor('text/unicode');
   
   // om de data uit de transferable te halen hebben we 2 nieuwe objecten nodig   om het in op te slaan
   var str = new Object();
   var len = new Object();
   
   var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
   
   var copytext=meintext;
   
   str.data=copytext;
   
   trans.setTransferData("text/unicode",str,copytext.length*2);
   
   var clipid=Components.interfaces.nsIClipboard;
   
   if (!clip) return false;
   
   clip.setData(trans,null,clipid.kGlobalClipboard);
   
   }

   return false;
}
 	
 
function changeResetPrimaryKey(objForm,varOld_Email)
{
var varExisting_Email="";
var varResetPrimaryKey="";
		if(document.getElementsByTagName('existing_email') && document.getElementsByTagName('resetPrimaryKey'))
		{
			varExisting_Email=objForm.existing_email.value;
			varResetPrimaryKey=objForm.resetPrimaryKey.value;
		}
if(varExisting_Email!=null && varExisting_Email!='' && varOld_Email!=null && varOld_Email!='' && varResetPrimaryKey!=null && varResetPrimaryKey!=null)
{
  if(varExisting_Email==varOld_Email)
  {
 	objForm.resetPrimaryKey.value='N';
  }
  else
  {
		 var strMsg="you have modified your email address from '"+varExisting_Email+"' to '"+varOld_Email+"'. . If you are the same person '"+varExisting_Email+"'  and wanted to modify your email address, Press 'ok' to continue..."; 
		 var var_sameperson;
		 	var_sameperson= confirm(strMsg);
  	if(var_sameperson==true)
  	{
  		objForm.resetPrimaryKey.value='N';
  	}
  	else
  	{
		 var strMsg="If you are not ('"+varExisting_Email+"'). Presss ok to continue..."; 
		 var varConfirm;
		 	varConfirm= confirm(strMsg);
	 	if(varConfirm==true)
	  	{
	  		objForm.resetPrimaryKey.value='Y';
	  	}
	  	if(varConfirm==false)
	  	{
			return false;
	  	}
  }
}
}
}
var vintagePropertieswindow;
function openLayerdPopup(objForm,varResetPrimaryKey,varOld_Email,existing_email,dhtmlwindowpath)
{
//alert(dhtmlwindowpath);
	height=130;
	width=725;
	vintagePropertieswindow=dhtmlmodal.open('VintagePropertiesBox', 'iframe', dhtmlwindowpath+'/resource/jsp/openme.jsp?RWPopup=true&formobject='+objForm+'&OldEmail='+varOld_Email+'&existing_email='+existing_email, 'Wine Vintage Properties', 'width='+width+',height='+height+',center=1,resize=0,scrolling=0');
	vintagePropertieswindow.onclose=function()
    {
    objForm.Email.focus();
     return true;
    }
}

function openLayered(varoldemail,objform,dhtmlwindowpath)
{
//alert(dhtmlwindowpath);
var varoldemail=trim(varoldemail);
var varExistingEmail=trim(objform.existing_email.value);
var varResetPrimaryKey=trim(objform.resetPrimaryKey.value);
if(varoldemail!=null && varExistingEmail!=null && varExistingEmail.length>0 && varoldemail.length>0 && varoldemail!=varExistingEmail && varResetPrimaryKey.toLowerCase()=='u')
{
openLayerdPopup(objform,varResetPrimaryKey,varoldemail,varExistingEmail,dhtmlwindowpath);
}
}
function openLayerdPopup_fr(objForm,varResetPrimaryKey,varOld_Email,existing_email,dhtmlwindowpath)
{
	height=130;
	width=725;
	vintagePropertieswindow=dhtmlmodal.open('VintagePropertiesBox', 'iframe', dhtmlwindowpath+'/resource/jsp/openme_fr.jsp?RWPopup=true&formobject='+objForm+'&OldEmail='+varOld_Email+'&existing_email='+existing_email, 'Wine Vintage Properties', 'width='+width+',height='+height+',center=1,resize=0,scrolling=0');
	vintagePropertieswindow.onclose=function()
    {
    objForm.Email.focus();
     return true;
    }
}

function openLayered_fr(varoldemail,objform,dhtmlwindowpath)
{
var varoldemail=trim(varoldemail);
var varExistingEmail=trim(objform.existing_email.value);
var varResetPrimaryKey=trim(objform.resetPrimaryKey.value);
if(varoldemail!=null && varExistingEmail!=null && varExistingEmail.length>0 && varoldemail.length>0 && varoldemail!=varExistingEmail && varResetPrimaryKey.toLowerCase()=='u')
{
openLayerdPopup_fr(objform,varResetPrimaryKey,varoldemail,varExistingEmail,dhtmlwindowpath);
}
}
function openLayerdPopup_ger(objForm,varResetPrimaryKey,varOld_Email,existing_email,dhtmlwindowpath)
{
	height=130;
	width=725;
	vintagePropertieswindow=dhtmlmodal.open('VintagePropertiesBox', 'iframe', dhtmlwindowpath+'/resource/jsp/openme_ger.jsp?RWPopup=true&formobject='+objForm+'&OldEmail='+varOld_Email+'&existing_email='+existing_email, 'Wine Vintage Properties', 'width='+width+',height='+height+',center=1,resize=0,scrolling=0');
	vintagePropertieswindow.onclose=function()
    {
    objForm.Email.focus();
     return true;
    }
}

function openLayered_ger(varoldemail,objform,dhtmlwindowpath)
{
var varoldemail=trim(varoldemail);
var varExistingEmail=trim(objform.existing_email.value);
var varResetPrimaryKey=trim(objform.resetPrimaryKey.value);
if(varoldemail!=null && varExistingEmail!=null && varExistingEmail.length>0 && varoldemail.length>0 && varoldemail!=varExistingEmail && varResetPrimaryKey.toLowerCase()=='u')
{
openLayerdPopup_ger(objform,varResetPrimaryKey,varoldemail,varExistingEmail,dhtmlwindowpath);
}
}
function openLayerdPopup_uk(objForm,varResetPrimaryKey,varOld_Email,existing_email,dhtmlwindowpath)
{
	height=130;
	width=725;
	vintagePropertieswindow=dhtmlmodal.open('VintagePropertiesBox', 'iframe', dhtmlwindowpath+'/resource/jsp/openme_uk.jsp?RWPopup=true&formobject='+objForm+'&OldEmail='+varOld_Email+'&existing_email='+existing_email, 'Wine Vintage Properties', 'width='+width+',height='+height+',center=1,resize=0,scrolling=0');
	vintagePropertieswindow.onclose=function()
    {
    objForm.Email.focus();
     return true;
    }
}

function openLayered_uk(varoldemail,objform,dhtmlwindowpath)
{
var varoldemail=trim(varoldemail);
var varExistingEmail=trim(objform.existing_email.value);
var varResetPrimaryKey=trim(objform.resetPrimaryKey.value);
if(varoldemail!=null && varExistingEmail!=null && varExistingEmail.length>0 && varoldemail.length>0 && varoldemail!=varExistingEmail && varResetPrimaryKey.toLowerCase()=='u')
{
openLayerdPopup_uk(objform,varResetPrimaryKey,varoldemail,varExistingEmail,dhtmlwindowpath);
}
}

function checkBeforeSubmit(varoldemail,objform)
{
var varoldemail=trim(varoldemail);
var varExistingEmail=trim(objform.existing_email.value);
var varResetPrimaryKey=trim(objform.resetPrimaryKey.value);
if(varoldemail!=null && varExistingEmail!=null && varExistingEmail.length>0 && varoldemail.length>0 && varoldemail!=varExistingEmail && varResetPrimaryKey.toLowerCase()=='u')
{
return false;
}

}	








//Here starts JS script for email validator...
//Here starts JS script for email validator...
//Here starts JS script for email validator



//var strContext="";

function validateEmailUsingEmailValidator(strURLForAjaxAfterContext,strValidationLevel,strFieldName,strHiddenFieldIDForResult,strContextPath)
{
	strContext=strContextPath;
	strFieldName=trim(strFieldName);
	var formposition;
   var elementposition;
   for(var i = 0; i < document.forms.length; i++)
   {
  
	   for(var j = 0; j < document.forms[i].elements.length;j++)
	   {
		   if(document.forms[i].elements[j].name==strFieldName)
		   {
			   formposition=i;
			   elementposition=j;
			   break;
		   }
	   }
   }
   
   var strEmailAddressToBeValidated=document.forms[formposition].elements[elementposition].value;
	if(!checkEmail(strEmailAddressToBeValidated))
	{
		document.forms[formposition].elements[elementposition].focus();
		return false;
	}
	document.getElementById(strHiddenFieldIDForResult).value="R";
	try
	{
		//alert("Ajax call in method validateEmailUsingEmailValidator() ");
		makeRequest(strURLForAjaxAfterContext+"?EmailAddressToBeValidated="+strEmailAddressToBeValidated+"&ValidationLevel="+strValidationLevel+"&HiddenFieldForResult="+strHiddenFieldIDForResult, updateGlobalVariableAndManageResponseForEmailValidator);
	}
	catch(error)
	{
		//alert("error 1 : "+error);
	}
	
		var varResult=document.getElementById(strHiddenFieldIDForResult).value;
			if(varResult=="Y")
			{
				return true;
			}
			else if(varResult=="N")
			{
				return false;
			}
}



function updateGlobalVariableAndManageResponseForEmailValidator(response)
{
	 response = evalScript(response);
	 var vResponse=response.split(" ");
	 var ValidationResult=trim(vResponse[0]);
	 var strHiddenFieldIDForResult=trim(vResponse[1]);
	 var strFieldName=strHiddenFieldIDForResult.substring(25);
	 var vGlobalVariableID=vResponse[1];
	 var BeforeUpdateValue=document.getElementById(strHiddenFieldIDForResult).value;
	 if(ValidationResult=="FALSE" ||ValidationResult=="false")
	 {
		 document.getElementById(strHiddenFieldIDForResult).value="N";
	 }
	 else if(ValidationResult=="TRUE" ||ValidationResult=="true")
	 {	

		 document.getElementById(strHiddenFieldIDForResult).value="Y";
	 }
	 var AfterUpdateValue=document.getElementById(strHiddenFieldIDForResult).value;

	 var varResult=document.getElementById(strHiddenFieldIDForResult).value;
	  var formposition;
	   var elementposition;
	   for(var i = 0; i < document.forms.length; i++)
	   {
	  
		   for(var j = 0; j < document.forms[i].elements.length;j++)
		   {
			   if(document.forms[i].elements[j].name==strFieldName)
			   {
				   formposition=i;
				   elementposition=j;
				   break;
			   }
		   }
	   }
	   
	   var strEmailAddressToBeValidated=document.forms[formposition].elements[elementposition].value;

	 if(varResult=="N")
	 {
		 alert("The email address you have entered seems incorrect. Please use a valid email address.");
		 document.getElementById(strFieldName).focus();
		 return false;
	 }
	 if(varResult=="Y")
	 {
		 return true;
	 }
}

function validateEmailUsingEmailValidatorOnLoad(strURLForAjaxAfterContext,strValidationLevel,strFieldName,strHiddenFieldIDForResult,strContextPath)
{
	
	strContext=strContextPath;
	strFieldName=trim(strFieldName);
	  var formposition;
   var elementposition;
   for(var i = 0; i < document.forms.length; i++)
   {
  
	   for(var j = 0; j < document.forms[i].elements.length;j++)
	   {
		   if(document.forms[i].elements[j].name==strFieldName)
		   {
			   formposition=i;
			   elementposition=j;
			   break;
		   }
	   }
   }
   
   var strEmailAddressToBeValidated=document.forms[formposition].elements[elementposition].value;

   	if(strEmailAddressToBeValidated=="")
	{
		return true;
	}
	else
	{
		document.getElementById(strHiddenFieldIDForResult).value="R";
		try
		{
		//	alert("Ajax call in method validateEmailUsingEmailValidatorOnLoad() ");
			makeRequest(strURLForAjaxAfterContext+"?EmailAddressToBeValidated="+strEmailAddressToBeValidated+"&ValidationLevel="+strValidationLevel+"&HiddenFieldForResult="+strHiddenFieldIDForResult, updateGlobalVariableAndManageResponseForEmailValidatorOnLoad);
		}
		catch(error)
		{
			//alert("error 2 : "+error);
		}
		return true;
	}
	

}



function updateGlobalVariableAndManageResponseForEmailValidatorOnLoad(response)
{
	 response = evalScript(response);
	 var vResponse=response.split(" ");
	 var ValidationResult=trim(vResponse[0]);
	 var strHiddenFieldIDForResult=trim(vResponse[1]);
	 var strFieldName=strHiddenFieldIDForResult.substring(25);
	 var vGlobalVariableID=vResponse[1];
	 var BeforeUpdateValue=document.getElementById(strHiddenFieldIDForResult).value;
	 if(ValidationResult=="FALSE" ||ValidationResult=="false")
	 {
		 document.getElementById(strHiddenFieldIDForResult).value="N";
	 }
	 else if(ValidationResult=="TRUE" ||ValidationResult=="true")
	 {	
		 document.getElementById(strHiddenFieldIDForResult).value="Y";
	 }
	 var AfterUpdateValue=document.getElementById(strHiddenFieldIDForResult).value;

	 var varResult=document.getElementById(strHiddenFieldIDForResult).value;
	 if(varResult=="N")
	 {
		  return false;
	 }
	 if(varResult=="Y")
	 {
		 return true;
	 }
}


function validateEmailAddressResult(strURLForAjaxAfterContext,strValidationLevel,strFieldName,strHiddenFieldIDForResult,strContextPath)
{
	var b_result=false;
	 var formposition;
	 var elementposition;
	   for(var i = 0; i < document.forms.length; i++)
	   {
		   for(var j = 0; j < document.forms[i].elements.length;j++)
		   {
			   if(document.forms[i].elements[j].name==strFieldName)
			   {
				   formposition=i;
				   elementposition=j;
				   break;
			   }
		   }
	   }
	var strEmailAddressToBeValidated=document.forms[formposition].elements[elementposition].value;
	var varResult=document.getElementById(strHiddenFieldIDForResult).value;
	if(varResult=="Y")
	{
		return true;
	}
	else if(varResult=="N")
	{
		alert("The email address you have entered seems incorrect. Please use a valid email address.");
		document.forms[formposition].elements[elementposition].focus();
		b_result=false;
	}
	else if(varResult=="R")
	{
		validateEmailUsingEmailValidator(strURLForAjaxAfterContext,strValidationLevel,strFieldName,strHiddenFieldIDForResult,strContextPath);
		b_result=true;
	}
	return b_result;
}

function Func1(strHiddenFieldIDForResult)
{
	var varResult1=document.getElementById(strHiddenFieldIDForResult).value;
	bresult=false;
	if(varResult1=="Y")
	{
		bresult=true;
	}
	else if(varResult1=="N")
	{
		bresult=false;
	}
	return bresult;
} 

function changeHiddenFieldValueToBEValidatedUsingEmailValidator(strHiddenFieldIDForResult)
{
	document.getElementById(strHiddenFieldIDForResult).value="R";
}


function pause(numberMillis) 
{
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) 
{
now = new Date();
if (now.getTime() > exitTime)
return true;
}
} 


//Here ends JS script for email validator...
//Here ends JS script for email validator...
//Here ends JS script for email validator
















// Here starts JS script for Search Tag...
// Here starts JS script for Search Tag...
// Here starts JS script for Search Tag...
function onKeyDownSearchBox(strTextFieldNameHidden,event)
{
	//alert("on keyPress");
	var strKeyCode=event.keyCode;
	if(strKeyCode=='9')
	{
		hideSearchTagDiv(strTextFieldNameHidden);
		return;
	}
}

function searchTagAjaxCall(strMinimumChar,strTextFieldNameHidden,strKeyForXML,strContextPath,event)
{ 
	
	strContext=strContextPath;
	strTextFieldNameHidden=trim(strTextFieldNameHidden);
	var strDivID="div_"+strTextFieldNameHidden+"_id";
	var strSelectID="select_"+strTextFieldNameHidden+"_id";
	var strTextBoxID="txt_"+strTextFieldNameHidden+"_id";
	var strTextBoxDisplayID="txt_"+strTextFieldNameHidden+"_disp_id"
	var strTextToBeSearchedLike = document.getElementById(strTextBoxDisplayID).value;
	var strTextFieldNameToBESent="[[[[[["+strTextFieldNameHidden+"]]]]]]";
	var strKeyCode=event.keyCode;
	strTextToBeSearchedLike=trim(strTextToBeSearchedLike);
	var finalMinimumChar="3";
	if(strMinimumChar!="")
	{
		 if(IsNumeric(strMinimumChar) && strMinimumChar!='0')
		 {
			finalMinimumChar=strMinimumChar; 
		 }
		
	}
	

	if(strKeyCode=='9')
	{
		hideSearchTagDiv(strTextFieldNameHidden);
		return;
	}
	else if ( strKeyCode=='40')	//40 is the KeyCode for down arrow key
	{
		if(document.getElementById(strDivID).style.display != 'none')
		{
			document.getElementById(strSelectID).focus();
		}
		else
		{
		}
		return;
	}
	else if(strTextToBeSearchedLike.length>=finalMinimumChar )
	{
		if(strKeyCode!=37 || strKeyCode!=38 || strKeyCode!=39)
		{
		document.getElementById(strDivID).style.display = 'none';
	 	document.getElementById(strDivID).innerHTML = '';
	 	var textfieldsize=document.getElementById(strTextBoxID).size;
	 	textfieldsize=trim(textfieldsize);
	 	try
	 	{
	 		makeRequest("/ereport/searchtag/RWSearchTagAjaxHandler?texttobesearchedlike="+strTextToBeSearchedLike+"&textfieldname="+strTextFieldNameToBESent+"&keyforxml="+strKeyForXML+"&textfieldsize"+textfieldsize,displaySearchTagAjaxCallResult);
		}
		catch(error)
		{
			
		}
		
		}
	}
	else if (strTextToBeSearchedLike.length<finalMinimumChar)
	{
		document.getElementById(strDivID).style.display = 'none';
	 	document.getElementById(strDivID).innerHTML = '';
	}
 	
}


function displaySearchTagAjaxCallResult(response)
{ 
	response = evalScript(response);
    response=trim(response);
    var i_Start_IndexOftext=response.indexOf("[[[[[[");
	var i_End_IndexOftext=response.indexOf("]]]]]]");
	var InnerContentsToBeReplaced=response.substring(0,i_Start_IndexOftext);
	var strFieldName=response.substring(i_Start_IndexOftext+6,i_End_IndexOftext);
	var strDivID="div_"+strFieldName+"_id";
	var InnerContentsBefore=document.getElementById(strDivID).innerHTML;
	document.getElementById(strDivID).innerHTML = InnerContentsToBeReplaced;
    var InnerContentsAfter=document.getElementById(strDivID).innerHTML;
	    if(response.length<=229)
	    {
	    }
	    
	    if(response.length>229)
	   	{
	    	 if(InnerContentsAfter.toUpperCase().indexOf("<OPTION")!=-1)
		     {
		   	
	    		 document.getElementById(strDivID).style.display = 'block';
		     }
	    	 else
	    	 {
	    			document.getElementById(strDivID).style.display = 'none';
	    		 	document.getElementById(strDivID).innerHTML = '';
	    	 }
	   		
	   	}
	   	else
	   	{
	   		document.getElementById(strDivID).style.display = 'none';
	   	}
    
   	
}

function setTextSearchedResultOnKeyDown(strFieldName,event)
{
	var strKeyCode=event.keyCode;
	doProcessSelectedItemSearchBox(strFieldName);
	if(strKeyCode=='13')
	{
		hideSearchTagDiv(strFieldName);
		var strHiddenFieldName="txt_"+strFieldName+"_disp_id";
		strHiddenFieldName=trim(strHiddenFieldName);
		document.getElementById(strHiddenFieldName).focus();
		return false;
	}
	return false;
	
}
function setTextSearchedResultOnClick(strFieldName)
{
	doProcessSelectedItemSearchBox(strFieldName);
	hideSearchTagDiv(strFieldName);
	var strHiddenFieldName="txt_"+strFieldName+"_disp_id";
	strHiddenFieldName=trim(strHiddenFieldName);
	document.getElementById(strHiddenFieldName).focus();
}

function setTextSearchedResultOnChange(strFieldName)
{
	doProcessSelectedItemSearchBox(strFieldName);
}

function doProcessSelectedItemSearchBox(strFieldName)
{
	var strTextFieldIDHidden='txt_'+strFieldName+'_id';
	var strTextFieldIDDisplay='txt_'+strFieldName+'_disp_id';
	var strSelectBoxID='select_'+strFieldName+'_id';
	var strDivID='div_'+strFieldName+'_id';
	strTextFieldIDHidden=trim(strTextFieldIDHidden);
	strTextFieldIDDisplay=trim(strTextFieldIDDisplay);
	strSelectBoxID=trim(strSelectBoxID);
	var valueOfTextFieldDisplay=document.getElementById(strTextFieldIDDisplay).value;
	var valueOfSelectBox=document.getElementById(strSelectBoxID).value;
	var valueOfTextFieldHidden=document.getElementById(strTextFieldIDHidden).value;
	if(document.getElementById(strSelectBoxID).value!="")
	{
		document.getElementById(strTextFieldIDHidden).value=document.getElementById(strSelectBoxID).value;
		var w = document.getElementById(strSelectBoxID).selectedIndex;
		var selected_text = document.getElementById(strSelectBoxID).options[w].text;
		document.getElementById(strTextFieldIDDisplay).value=selected_text;
	}
}

function hideSearchTagDiv(strFieldName)
{
	var strDivID='div_'+strFieldName+'_id';
	document.getElementById(strDivID).innerHTML = '';
	document.getElementById(strDivID).style.display = 'none';
}

function moveFocusOnSelectBoxBlur(strFieldName)
{
	hideSearchTagDiv(strFieldName);
	var strHiddenFieldName="txt_"+strFieldName+"_disp_id";
	strHiddenFieldName=trim(strHiddenFieldName);
	document.getElementById(strHiddenFieldName).focus();
}

function showSearchTagDiv(strDivID)
{
	
}


function keyDownTextSearchTag(strFieldName,event)
{
	var strTextFieldID='txt_'+strFieldName+'_id';
	var strSelectBoxID='select_'+strFieldName+'_id';
	var strDivID='div_'+strFieldName+'_id';
	var strKeyCode=event.keyCode;
	if(strKeyCode=='40')
	{
		if(document.getElementById(strDivID).style.display != 'none')
		{
			document.getElementById(strDivID).focus();
		}
	}
	else
	{
	
	}
}


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 BlurMethodSearchTag(strFieldName,event)
{
	
	var strDivID='div_'+strFieldName+'_id';
	var strKeyCode=event.keyCode;
	alert("Method onBlur : "+strKeyCode);
	if(strKeyCode!='40')
	{
		if(document.getElementById(strDivID).style.display != 'none')
		{
	
		}
	}
	
}

//Here ends JS script for Search Tag...
//Here ends JS script for Search Tag...
//Here ends JS script for Search Tag...