	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//	Author				: Babita L. Malani
	//	Date					: 16/05/2001
	//  Decription			: 
	//  Copyright			: (c) Avani Cimcon, 2001
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////					


	/////////////////////////////////////////////////////function for finding an element in an array
	function findElement(sFrame,sForm,sElement){

		var sStr = "window.";
		if (String(sFrame) != "undefined" && String(sFrame) != ""){
			sStr = sStr + sFrame+".";
		}

		if (String(sForm) != "undefined" && String(sForm) != ""){
			sStr = sStr +"document."+ sForm+".";
		}
		else {
			sStr = sStr +"document.all.";
		}

		if (String(sElement) != "undefined" && String(sElement) != ""){
			sStr = sStr + sElement;
		}
		
		var sElement = String(eval(sStr));
	
		if (sElement != "[object]"){
			return "";
		}
		else {
			return sStr;
		}
	}


	/////////////////////////////////////////////////////method for checking empty string
	function valEmpty(sFrame,sForm,sElement,sMessage,sDisplay){	

		var sReturn = findElement(sFrame,sForm,sElement);			
		
		if (sReturn == ""){
			return "Element named "+sElement+" not found In the form";
		}

		if (TrimAll(String(sMessage)) == "" || String(sMessage) == "undefined"){
			if (TrimAll(String(sDisplay)) == "" || String(sDisplay) == "undefined"){
				sDisplay = sElement;
			}
			sMessage = sDisplay +" cannot be empty";
		}

		var iPos = sReturn.indexOf(".all."+sElement);
		var sType="";
		var sStr = sReturn.substr(0,iPos);
		
		if(iPos != -1){
			var sStr1 = sStr+".getElementsById('"+sElement+"').type";
			sType = eval(sStr1);
		}

		var sValue = "";
		
		if (sType == "" || sType == "text" || sType.substr(0,6) == "select" || sType == "checkbox" || sType == "textarea"){
			sValue = String(eval(sReturn+".value"));
		}
		else {
			if(sType == "radio"){
				var oCol = eval(sStr+".getElementsByName('"+sElement+"')");
				var oEnum = new Enumerator(oCol);
					for (;!oEnum.atEnd();oEnum.moveNext()) {
						var oRad = oEnum.item();
						//alert(oRad.name+"  "+oRad.value);
						if(oRad.checked == true){
							sValue = oRad.value;
							break;
						}						
					}
			}		 
		}
		
		if (TrimAll(sValue) == "" || sValue == "undefined"){
			return sMessage;
		}
		else {
			return "";
		}
	}



	/////////////////////////////////////////////////////method for checking zero value
	function valZero(sFrame,sForm,sElement,sMessage,sDisplay){		
		var sReturn = findElement(sFrame,sForm,sElement);			
		
		if (sReturn == ""){
			return "Element named "+sElement+" not found In the form";
		}

		if (String(sMessage) == "" || String(sMessage) == "undefined"){
			if (String(sDisplay) == "" || String(sDisplay) == "undefined"){
				sDisplay = sElement;
			}
			sMessage = sElement +" cannot be zero";
		}

		var sValue = eval(sReturn+".value");

		if ( (parseInt(sValue,10)==0) |(isNaN(sValue))){
			return sMessage;
		}
		else{
			return "";
		}
	}



	/////////////////////////////////////////////////////method for checking whether the value is numeric or not
	function valNumeric(sFrame,sForm,sElement,sMessage,sDisplay){		
		var sReturn = findElement(sFrame,sForm,sElement);			
		
		if (sReturn == ""){
			return "Element named "+sElement+" not found In the form";
		}


		if (String(sMessage) == "" || String(sMessage) == "undefined"){
			if (String(sDisplay) == "" || String(sDisplay) == "undefined"){
				sDisplay = sElement;
			}
			sMessage = sReturn +" should be numeric";
		}
		var sValue = eval(sElement+".value");

		if ( isNaN(sValue)){
			return sMessage;
		}
		else{
			return "";
		}
	}




	/////////////////////////////////////////////////////method for checking email address
	function valEmail(sFrame,sForm,sElement,sMessage,sDisplay){		
		var sReturn = findElement(sFrame,sForm,sElement);			
		
		if (sReturn == ""){
			return "Element named "+sElement+" not found In the form";
		}

		if (String(sMessage) == "" || String(sMessage) == "undefined"){
			if (String(sDisplay) == "" || String(sDisplay) == "undefined"){
				sDisplay = sElement;
			}
			sMessage = sElement +" should be valid email address";
		}
		
		var sValue = eval(sReturn+".value");

		if(TrimAll(sValue) != ""){

			if (( sValue.indexOf('@') == -1) || ( sValue.indexOf('.') == -1)){
				return sMessage;
			}
			else{		
					if (sValue.substr(sValue.indexOf('@')+1).length  < 4)	{
						return sMessage;
					}
					else {
						if(sValue.substr(0,1) == '@'){
							return sMessage;
						}
						else {
							if(sValue.substr((sValue.length-1),1) == '.'){
								return sMessage;
							}
							else {
								if(sValue.substr(sValue.indexOf('@')).indexOf('.') == -1 ){
									return sMessage;
								}
							}
						}
					}
					return "";
			}	
		}
		else {
			return "";
		}
	}
	

	/////////////////////////////////////////////////////method for checking date
	function valDate(sFrame,sForm,sElement,sMessage,sDisplay,sSeparator){		
		var sReturn = findElement(sFrame,sForm,sElement);			
	
		if (sReturn == ""){
			return "Element named "+sElement+" not found In the form";
		}

		if (String(sMessage) == "" || String(sMessage) == "undefined"){
			if (String(sDisplay) == "" || String(sDisplay) == "undefined"){
				sDisplay = sElement;
			}
			sMessage = sElement +" should be valid date";
		}

		if(String(sSeparator)=="undefined" || String(TrimAll(String(sSeparator)))==""){
			sSeparator = "/";
		}

		var sValue = eval(sReturn+".value");		
		var iMonth, iDate, iYear;
		var sDate = sValue;
		
		//if(sDate.indexOf("/")<2){
		if(sDate.indexOf(String(sSeparator))<2){
			sDate = "0"+sDate;
		}
		//if(sDate.lastIndexOf("/")<5){
		if(sDate.lastIndexOf(String(sSeparator))<5){
			sDate = sDate.substr(0,3)+"0"+sDate.substr(3);
		}
		
		
		if(sValue > 10){
			return sMessage;
		}

		//dd , mm , yyyy should be separated by /
		//if   ((sDate.charAt(2) != '/')  | (sDate.charAt(5) != '/')){
		if   ((sDate.charAt(2) != String(sSeparator))  | (sDate.charAt(5) !=  String(sSeparator))){
			return sMessage;
		}

		//get the date , month, year separarted
		iMonth = parseInt(sDate.substr(0,2),10);
		iDate = parseInt(sDate.substr(3,2),10);
		iYear = parseInt(sDate.substr(6,4),10);

		// This check added by Dheeraj on Wednesday, January 12, 2005 
		// If any of this true then it is not a valid date. 
		// Earlier '12/e3/2004' did not generate error for bad data.
		if ( isNaN(iMonth) || isNaN(iDate) || isNaN(iYear) )
		{
			return sMessage ;
		}

		if ((iYear < 1900) | (iYear > 9999)){
			return sMessage;
		}


		//month should be between 1 and 12
		if (iMonth > 12 | iMonth < 1){
				return sMessage;
		}

		switch(iMonth){
			case 2:
					if (iYear%4 == 0) {
							if (iDate > 29) {
								return sMessage;
								break;
							}
					}
					else{
						if(iDate > 28){
						return sMessage;
					}
				}
				break;

			case 4:
			case 6:
			case 9:
			case 11:
					if(iDate > 30) {
						return sMessage;					
					}
					break;
			
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
					if(iDate > 31) {
						return sMessage;					
					}
					break;
		}

		return "";
	}

	/////////////////////////////////////////////////////method for checking the value in a range
	function valRange(sFrame,sForm,sElement,sMessage,sDisplay,sMin,sMax,sType){
		var sReturn = findElement(sFrame,sForm,sElement);			
		
		if (sReturn == ""){
			return "Element named "+sElement+" not found In the form";
		}

		if (String(sMessage) == "" || String(sMessage) == "undefined"){
			if (String(sDisplay) == "" || String(sDisplay) == "undefined"){
				sDisplay = sElement;
			}
			sMessage = "Valid range of values for "+ sElement +" is Min "+sMin +" to Max "+sMax;
		}

		var sValue = eval(sReturn+".value");

		var bReturn = true;

		switch (sType) {
		   case "d" :
				var dtValue = new Date(sValue);
				if((String(new Date(sMin)!= "NaN")  && (dtValue < new Date(sMin)))){
					bReturn	= false;
				}
				if((String(new Date(sMax)!= "NaN")  && (dtValue > new Date(sMax)))){
					bReturn	= false;
				}
				break;
		   case "s" :
   				var sValue = String(sValue);
				if(sValue < String(sMin) || sValue > String(sMax)){
					bReturn	= false;
				}
				break;
		   case "n" :
   				var nValue = parseInt(sValue,10);
				if(parseInt(nValue,10) < parseInt(sMin,10) || parseInt(nValue,10) > parseInt(sMax,10)){
					bReturn	= false;
				}
				break;			

		}

		if (bReturn == false){
			return sMessage;
		}
		else {
			return "";
		}
	}


	function resNumericPaste(){
			//get the data in the clipboard
			var oData=window.clipboardData;
			var sData=String(oData.getData("text"));
			for(var iCtr=0;iCtr<sData.length;iCtr++){
				var sChar = sData.substr(iCtr,1);
				if ((!(isNaN(sChar)))){
					//alert('num');
					window.event.returnValue=false;
					return false;
					//break;
				}
			}		
	}
	///////////////////////////////////////////////////////////////
	function resNumeric() {
		var iKeyCode  =  (window.event.keyCode);
		if((iKeyCode >=48 && iKeyCode <=57)  || (iKeyCode >=96 && iKeyCode <=105)){
			if((window.event.altKey == false) && (window.event.ctrlKey == false) && (window.event.shiftKey == false)){
				window.event.returnValue=false;
			}
		}
	}

	function resAlpha() {
		var iKeyCode  =  (window.event.keyCode);		
			if((iKeyCode >=65 && iKeyCode <=90)  ){
			if((window.event.ctrlKey == false) && (window.event.altKey == false)){
				window.event.returnValue=false;
			}
		}
	}

	function resAlphaPaste(){
			//get the data in the clipboard
			var oData=window.clipboardData;
			var sData=String(oData.getData("text"));
			for(var iCtr=0;iCtr<sData.length;iCtr++){
				var sChar = sData.substr(iCtr,1);
				if ((isNaN(sChar))){
					window.event.returnValue=false;
				}
			}		
	}


//not working well -to be changed do not use
function allowRange(sRanges) {
		var iKeyCode  =  window.event.keyCode;
		//alert(iKeyCode)
		var aRange = String(sRanges).split(",");
		//alert(aRange)
		var sStr = "";
		for(var iCtr=0;iCtr<aRange.length;iCtr++){
			var sRange = String(aRange[iCtr]);
			var iStart=0;
			var iEnd=0;		
			switch (sRange){
				case "numeric":
					iStart=48;
					iEnd = 57;
					
					if (sStr == ""){
						sStr = sStr + "(iKeyCode >= "+iStart+" && iKeyCode <="+iEnd+" && (window.event.altKey == false) && (window.event.ctrlKey == false) && (window.event.shiftKey == false))";
					}
					else {
						sStr = sStr + " || (iKeyCode >= "+iStart+" && iKeyCode <="+iEnd+" && (window.event.altKey == false) && (window.event.ctrlKey == false) && (window.event.shiftKey == false))";
					}	
					iStart=96;
					iEnd = 105;
					if (sStr == ""){
						sStr = sStr + "(iKeyCode >= "+iStart+" && iKeyCode <="+iEnd+"  && (window.event.altKey == false) && (window.event.ctrlKey == false) && (window.event.shiftKey == false))";
					}
					else {
						sStr = sStr + " || (iKeyCode >= "+iStart+" && iKeyCode <="+iEnd+"  && (window.event.altKey == false) && (window.event.ctrlKey == false) && (window.event.shiftKey == false))";
					}	
					break;			
				case "alpha":
					iStart=65;
					iEnd = 90;
					if (sStr == ""){
						sStr = sStr + "(iKeyCode >= "+iStart+" && iKeyCode <="+iEnd+")";
					}
					else {
						sStr = sStr + " || (iKeyCode >= "+iStart+" && iKeyCode <="+iEnd+")";
					}	
					break;
				default :
					var iSep	= sRange.indexOf("-");	
					iStart	= sRange.substr(0,iSep);
					iEnd		= sRange.substr(iSep+1);	
					if (sStr == ""){
						sStr = sStr + "(iKeyCode >= "+iStart+" && iKeyCode <="+iEnd+")";
					}
					else {
						sStr = sStr + " || (iKeyCode >= "+iStart+" && iKeyCode <="+iEnd+")";
					}	
			}
		}		
		sStr = "!("+sStr+")"
		if(eval(sStr)){
			window.event.returnValue = false;
		}
	}
	
	/////////////////////////////////////////////////////method for checking zero value
	function valMin(sFrame,sForm,sElement,sMessage,sDisplay,sMin){		
		var sReturn = findElement(sFrame,sForm,sElement);			
		
		if (sReturn == ""){
			return "Element named "+sElement+" not found In the form";
		}

		if (TrimAll(String(sMessage)) == "" || String(sMessage) == "undefined"){
			if (TrimAll(String(sDisplay)) == "" || String(sDisplay) == "undefined"){
				sDisplay = sElement;
			}
			sMessage = "Minimum length for "+sDisplay +" should be "+sMin;
		}

		var sValue = eval(sReturn+".value");

		if (sValue != "" &&  sValue.length < parseInt(sMin,10)){
			return sMessage;
		}
		else{
			return "";
		}
	}


	function TrimAll(sStr){
		var sReturn = "";
		sStr = '' + sStr;
		var sSplit = sStr.split(" ");
		for(i = 0; i < sSplit.length; i++){
			sReturn += sSplit[i];
		}
		return sReturn;
	}

 function Replace(cStr , cStrSearchFor , cStrWith)
 {
	var tempstr ;
	tempstr = "";
	cStrSearchFor = String( cStrSearchFor )

	cStr = String( cStr )
	for (i=0;i<cStr.length;i++ )		
	{
		if ( cStr.substr(i,cStrSearchFor.length) == cStrSearchFor )
			{			
				tempstr = tempstr + cStrWith
				i = i + cStrSearchFor.length  - 1 
			}
		else
			{
				tempstr = tempstr + cStr.substr(i,1)  
			}
	 }

	 return tempstr;
 }

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// BM_060103_1515
// Added by Babita Gupta, date:06/01/2003
// As per the new specs for LPNV3.1
// the business rule specified for the email address validation
// was not taken care off by the method valEmail
// so i  have copied it and changed the same to meet
// the requirements 
//·	If user enters text that does not contain AT LEAST one character before an @ sign,
// one character after the @ sign, a "." And at least two characters after the ".", he will 
// get a popup error messageo	Examples:§	k@1.12 will receive no error message popup
//§	"k" or "@" or ".com" entered by themselves will receive an error popup
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function valEmailNew(sFrame,sForm,sElement,sMessage,sDisplay){		
		var sReturn = findElement(sFrame,sForm,sElement);			
		
		if (sReturn == ""){
			return "Element named "+sElement+" not found In the form";
		}

		if (String(sMessage) == "" || String(sMessage) == "undefined"){
			if (String(sDisplay) == "" || String(sDisplay) == "undefined"){
				sDisplay = sElement;
			}
			sMessage = sElement +" should be valid email address";
		}
		
		var sValue = eval(sReturn+".value");

		if(TrimAll(sValue) != ""){
			if (( sValue.indexOf('@') == -1) || ( sValue.indexOf('.') == -1)){
				return sMessage;
			}
			else{		
					//check if there is atleast one char between @ and .
					if( sValue.indexOf('@')+1 == sValue.indexOf('.') ){
						return sMessage;
					}else {
						//check if the characters are not spaces
						var sStrSub = sValue.substr((sValue.indexOf('@') +1),( sValue.indexOf('.') - (sValue.indexOf('@')+1) ))
  						if(TrimAll(sStrSub) == ''){
							return sMessage;
						}
					}

					//check if atleast 4 chars are present after the '@'
					if (sValue.substr(sValue.indexOf('@')+1).length  < 4)	{
						return sMessage;
					}
					else {						
						if(sValue.substr(0,1) == '@'){
							return sMessage;
						}
						else {
							if(sValue.substr((sValue.length-1),1) == '.'){
								return sMessage;
							}
							else {
								if(sValue.substr(sValue.indexOf('@')).indexOf('.') == -1 ){
									return sMessage;
								}
								else {
									//check if atleast 2 chars are presnt after the '.'
									if (sValue.substr(sValue.indexOf('.')+1).length  < 2)	{
										return sMessage;
									}
								}
							}
						}
					}
					return "";
			}	
		}
		else {
			return "";
		}
	}
	

	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// Methods copied from NLMonthly.js file as we now need a consistent email address
	///check on all the pages
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function fn_ValidateEmail( sEmail ){
		//0.// @ and . should be present in the email string.
		if( String(sEmail).indexOf(".") == -1 || String(sEmail).indexOf("@") == -1  )
		  {
			 return false;
		  }
		//1.// There should be only one "@" character in the email string
		if( (String(sEmail).indexOf("@")) != (String(sEmail).lastIndexOf("@"))   )
		  {
			 return false;
		  }
		//2.// Should have atleast one character  before the @ sign
		if( String(sEmail).charAt((String(sEmail).indexOf("@"))-1)  == "" )
		  {
			 return false;
		  }
	    //3.//should have atleast one dot after @ sign
	 	if( (String(sEmail).lastIndexOf(".")) < (String(sEmail).indexOf("@"))   )
		  {
			 return false;
		  }
		//3.1//Should have atleast one character after @ sign
		//alert(". index : " + String(sEmail).lastIndexOf(".") + "\r @ index :" + (String(sEmail).indexOf("@")+1))
	 	if( (String(sEmail).lastIndexOf(".")) == (String(sEmail).indexOf("@")+1)  )
		  {
			 return false;
		  }	  
	    //4.// Should have atleast 1 char after the last dot.
	    if( String(sEmail).charAt((String(sEmail).lastIndexOf("."))+1)  == "" )
	      {
			 return false;
	      } 
		//5.// Only Alpha should be ther after the last dot.
	    // substring the input string from the last index of the dot upto length of the string.
	    var sStrAfterLastDot = String(sEmail).substr( String(sEmail).lastIndexOf(".")+1 , sEmail.length ) 
	    // passing above string to alpha check function.
	    var bIsChekAfterDot = fnMonthly_CheckAlpha( myTrim(sStrAfterLastDot) );  
		if( bIsChekAfterDot != true )  
		  {
			return false;
		  }
		  else
		  {
			 return true;
		  }
	 } // end function

	 function fnMonthly_CheckAlpha( Str ){
		// avar will store the return value
		var bIsChar = true; 
		// string for alpha checking
		var sCharStr = String("abcdefghijklmnopqrstuvwxyz");
		//changing the case of the inout string.
		Str = Str.toLowerCase();
		//splitting the string.
		Str = Str.split("");
		//checing for each characters
		for( var cfind = 0;cfind <Str.length;cfind++  )
		 {
				//If str if empty then increment the counter.
				if( String(Str[cfind]) == "" )
				{
					//counter for FOR loop will be incremented with one
					if( cfind != Str.length )
					  {
						 cfind++;
					  }
				}
				else
				{
					//Check for the character.
					if( String(sCharStr).indexOf(Str[cfind]) == -1  )  
					 {
						bIsChar = false; 
					 }  
				}// end else

		 }// end for  
		 if( bIsChar == false )  
		   {
			 return false;
		   }
		   else
		   {
			 return bIsChar;
		   }
	}// end function
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


	/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// function allows only characters mentioned in sChars onKeyDown
// function added by Dheeraj on 24-Mar-2003
function fnAllowOnly(sChars, bCaseCheck)
{
		if ( String( bCaseCheck ) == "false" )
		{
				sKey = String.fromCharCode ( event.keyCode ).toLowerCase()
				sChars = String(sChars).toLowerCase()
		}	
		else
		{
				sChars = String(sChars)
				sKey = String.fromCharCode ( event.keyCode )
		}
		if ( sChars.indexOf(String(sKey )  ) != -1 )
		{
				return true ;
		}
		else
		{
			window.returnValue = false
			event.keyCode = 0;
			return false ;	
		}
		
}

// function allows only characters mentioned in sStr  onpaste
// function added by Dheeraj on 24-Mar-2003
function fnAllowCharsPaste(sStr, bCaseCheck)
{
		//get the data in the clipboard
		//alert ()
		var oData=window.clipboardData;
		var sData=String(oData.getData("text"));
		
		var bRetVal = false ;
		if ( String( bCaseCheck ) == "false" )
		{
			sData = sData.toLowerCase()
			sStr = sStr.toLowerCase()
		}
		//alert ( " data from clipboard " + sData )
		//alert ( " data from Txt " + sStr )
		//for ( iCtr=0; iCtr < String(sData).length  ; iCtr++ )
		{
			 var iCharCode
			 for ( iCtrj=0; iCtrj < String(sData).length  ; iCtrj++ )
			{
				iCharCode = String( String(sData).substr(iCtrj,1) ).charCodeAt(0)
				if ( iCharCode == 13 || iCharCode == 10)
				{
					continue ;
				}
				//alert ( bRetVal + sStr.indexOf(String(sData).substr(iCtrj,1) )) 
				if ( sStr.indexOf(String(sData).substr(iCtrj,1)  ) != -1 )
				{
					bRetVal = true ;
				}
				else
				{
					bRetVal = false ;
					break ;
				}
				
			}
		}
		
		event.returnValue = bRetVal
		return bRetVal
		
}


// function to restrict length of a text area 
// function added by Dheeraj on 24-Mar-2003
// call it on "OnKeypress" event eg. fnTextAreaLength( this , 1000 )
function fnCheckLength(oCntrl, iMxLn )
{
	//alert(iMxLn)
	if ( oCntrl.value.length >= parseInt(iMxLn,10) )
	{
		event.returnValue = false ;
		return false ;
		
	}
	return true ;

}
/// function to restrict legth of paste in objects like text area 
// can be called on "OnPaste" event
// function added by Dheeraj on 24-Mar-2003
function fnCheckPasteLength( oCntrl, iMxLn )
{
		//get the data in the clipboard
		//alert () ;
		var oData=window.clipboardData;
		var sData=String(oData.getData("text"));
		var sLength = parseInt(oCntrl.value.length) + parseInt( sData.length )
		//alert(sLength)
		if ( sLength >= parseInt(iMxLn,10) )		
		{
			event.returnValue = false ;
			return false ;
			
		}
		return true ;
}

// This function finds whether given value exists in array and if found returns the array place
// function added by Dheeraj on 24-Mar-2003
function findInArray(aArr,sFind){		
		var lElementFound = false;
		var iElementAt =0;
		var aArray = new Array();
		aArray = aArr;

		for(var iI = 0;iI<aArray.length;iI++){
			//Response.write('<br> '+aArray[iI] +" find "+sFind);
			if (String(aArray[iI]).toLowerCase() ==String(sFind).toLowerCase()){
				lElementFound = true;
				iElementAt=iI;
				break;
			}
		}
		
		if(lElementFound==true){
			return iElementAt;
		}
		else{
					return -1;
		}
}


// Author : Mayur M Detroja
// Method Returns true if Email is valid . Other Wise Return False
function fnValidateEmailAddress_20052004_1027( sEmailText )
{
	var oREEmail = /^([a-zA-Z]+[a-zA-Z0-9_\-\.]*@[a-zA-Z]+([a-zA-Z0-9_\-]*\.[a-zA-Z0-9]+)+)$/g;
	var sEmail =  String( sEmailText );
	//var bIsCorrect = fn_ValidateEmail( String( sEmail ) );
	var result = true; 

	if (sEmail.search(oREEmail) == -1)
	{
		//sFaultyEmails = sFaultyEmails + iRowId + "," ;
		result = false;
	}


	return result ;
		
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////


function fnTrimAll(sSTR, sChar)
{
	return String(sSTR).replace(new RegExp("^(" + sChar + ")*|(" + sChar + ")*$", "g"), "");
}


function fnAddORUpdateHC( sKey , sValue )
{
	if (! ExistsInHC( sKey )  )
	{ 
		//alert(sKey);
		AddToHC(sKey, sValue); 
	}
	else
	{
		SetValueOfHC( sKey,sValue ) ;	
	}
}



function fnGetHCValue( sKey )
{
	
	var value = "";
	if ( sKey.toUpperCase() == String("NJOBID") || sKey.toUpperCase() == String("JOBHISTORYID")  )
	{
		value = "0" ; 
	}
	
	if ( ExistsInHC( sKey )  )
	{ 
		value = GetValueOfHC( sKey ) ;	
	}
	
	return value ;
		
}

// BEGIN : DD_02012005_2024 --> 
// Functions Trim, LTrim, RTrim added by Dheeraj on Friday, January 07, 2005 
// This function will remove specified characters from front as well as rear of given string
function Trim ( sStr , sChr  )
{
	return LTrim( RTrim ( sStr, sChr ) , sChr );
}

// This function will remove specified characters from rear of given string
function RTrim( sSTR , sChar )
{
	if ( String( sChar ) == 'undefined') sChar = " " ;
	return String(sSTR).replace(new RegExp(   "(" + sChar + ")*$", "g"), ""   );
}

// This function will remove specified characters from front of given string
function LTrim( sSTR, sChar )
{
	if ( String( sChar ) == 'undefined') sChar = " " ;
	return String(sSTR).replace(new RegExp("^(" + sChar + ")*", "g"), "");
}
// This function will remove spaces from front & back & assign it back to the control
function RemoveSpaces( oObj )
{
	if ( typeof(oObj) == "object" && ( oObj.value != "" || oObj.value != "undefined"))
	{
		oObj.value = Trim( oObj.value );
	}
}

// END : DD_02012005_2024 <--

// VP_20050913_1829: Following function added to determine the TargetPage Name for the Intro pages.
function _GetDemoTargetPageName( sDeliveryMode, sDemoProductType, sHidStep )
{
	var sModulePage = "";
	switch( sDeliveryMode.toUpperCase() )
	{
		case "PRINT" : 
		{
			switch( sDemoProductType.toUpperCase() )
			{
				case "NEWSLETTERDEMO" :
				{
					switch( sHidStep.toUpperCase() )
					{
						case "" : 
						case "undefined" : 
						case "DELIVERY" :
							sModulePage = "NLdeliveryMode.asp";
							break;
						case "TEMPLATE" :
							sModulePage = "SelectPreNLTemplate.asp";
							break;
						case "SETUP" :
							sModulePage = "NLFrontPage.asp";						
							break;
						case "SCHEDULE" :
							sModulePage = "PCardsFrequency.asp";
							break;
						case "DISTRIBUTION" :
							sModulePage = "RecipientsSelectionPkg.asp";
							break;
						case "FINISH" :
							sModulePage = "NLFinish.asp";
							break;
					}// End of sHidStep switch

				} // End of CASE: NEWSLETTERDEMO.
				break;
				
				case "CARDDEMO" :
				{
					switch( sHidStep.toUpperCase() )
					{
						case "" : 
						case "undefined" : 
						case "DELIVERY" : 
							sModulePage = "NLdeliveryMode.asp";
							break;
						case "TEMPLATE" :
							sModulePage = "PcardsFront.asp";
							break;
						case "SETUP" :
							sModulePage = "PMultiCardsBack.asp";						
							break;
						case "SCHEDULE" :
							sModulePage = "PcardsFrequency.asp";
							break;
						case "DISTRIBUTION" :
							sModulePage = "RecipientsSelectionPkg.asp";
							break;
						case "FINISH" :
							sModulePage = "CardsFinish.asp";
							break;
					}// End of sHidStep switch		
				} // End of CASE: CARDDEMO.
				break;
				
			} // END OF sDemoProductType SWITCH.
		} // End of "PRINT" case.
		break;
		
		case "EMAIL" :
		{
			switch( sDemoProductType.toUpperCase() )
			{
				case "NEWSLETTERDEMO" :
				case "LEAFLETDEMO" :
				{
					switch( sHidStep.toUpperCase() )
					{
						case "" : 
						case "undefined" : 
						case "DELIVERY" : 
							sModulePage = "NLdeliveryMode.asp";
							break;
						case "TEMPLATE" :
							sModulePage = "EmailSelectTemplate.asp";
							break;
						case "SETUP" :
							sModulePage = "EmailDesign.asp";						
							break;
						case "SCHEDULE" :
							sModulePage = "PCardsFrequency.asp";
							break;
						case "DISTRIBUTION" :
							sModulePage = "RecipientsSelectionPkg.asp";
							break;
						case "FINISH" :
							sModulePage = "NLFinish.asp";
							break;
					}// End of sHidStep SWITCH.			
				} // END OF CASE:CARDDEMO. 
				break;
				
			} // End of 'sDemoProductType' SWITCH.
		}
		break; // End of "EMAIL" case.

		default:
			sModulePage = "NLdeliveryMode.asp";
			break;
	} // End of sDeliveryMode switch

	return sModulePage;
}