// JScript source code:::Manoj K.D.

//<<limit the length of text area
/*function fnLimitTextAreaLength(objTextArea, intMaxLength)
	{
		if ( objTextArea.value.length > intMaxLength )
		{
			var strTemp = objTextArea.value;
			strTemp = strTemp.substring(0, (intMaxLength-1));
			objTextArea.value = strTemp;
		}
	}*/

//<<<to validate onPaste Event on text field or TextArea..Max size has been given
function fnValidateOnPaste( objControl, intSize)
{
	var intLegth;
	var intCopytextLength;
	intSize = parseInt(intSize);
	try 
	{	
		intCopytextLength = clipboardData.getData("Text").length;
		intCopytextLength = parseInt(intCopytextLength);
		if (intCopytextLength > intSize) return false;
	}
	catch(e){
		intCopytextLength = 0;
	}
	try
	{
		intLegth = parseInt( objControl.value.length);
		if ((intCopytextLength + intLegth) >= intSize)	return false;
		else return true;
	}
	catch(e){
	}
}
//<<<to validate onPaste Event for phone number on text field or TextArea..Max size has been given
function fnValidateOnPasteForPhone(obj,intMaxLimit) 
{
		var content;
		var len;
		var bool;
		//var str = "0123456789-,(){}[].";
		var str = "0123456789-,()";

	//<<<call normal onPaste Validation for Max Limit
	try {	
		if (fnValidateOnPaste(obj, parseInt(intMaxLimit)) == false)
			return false;
		}
	catch (e){
	}
	////<<for phone and mobile onPasteValidation
	try
	{
		content = clipboardData.getData("Text");
		len = content.length;
		for (intC = 0; intC < len; intC++)
		{
			bool = false;
			strword = content.charAt(intC);
			for (index=0; index <= str.length; index++)
			{	 strtemp = str.charAt(index);
				 if (strword == strtemp)
				 {	 
					 bool = true;
					 break;
				 }
			 }
			 if (bool==false) return false;
		}
	}
	catch(e){}
	return true;
}
//<<<to validate onPaste Event for value 0-9 only..Max size has been given
function fnValidateOnPasteForMarks(obj,intMaxLimit)
{
	var content;
	var bool;

	//<<<call normal onPaste Validation for Max Limit
	try{
		if (fnValidateOnPaste(obj,parseInt(intMaxLimit))==false)
			return false;
	}
	catch (e){}
	////<<for phone and mobile onPasteValidation
	content = clipboardData.getData("Text");

	try
	{
		bool = isNaN(content);
		if (bool == false)
		{	intC = content.indexOf(".");
			intB = content.indexOf("+");
			intA = content.indexOf("-");
			intS = content.indexOf(" ")
			return (intC < 0 && intB < 0 && intA < 0 && intS < 0);
		}
	}
	catch (e){	}
	return false;
}
//<<<to validate onPaste Event for UserNameOnly accept a-z,0-9,@,_ only..Max size has been given
function fnValidateOnPasteForLoginName(obj,intMaxLimit)
{
	var content;
	var len;

	//<<<call normal onPaste Validation for Max Limit
	try{
		if (fnValidateOnPaste( obj, parseInt(intMaxLimit))==false)
			return false;
	}
	catch (e){}
	////<<for phone and mobile onPasteValidation

	content = clipboardData.getData("Text");
	len = content.length;
	intS = content.indexOf(" ")
	if (intS >= 0)
	{
		return false;
	}

	for (intC = 0; intC < len; intC++)
	{
		bool = false;
		strword = content.charAt(intC);
		if ((strword >= 'a' && strword <= 'z') || (strword >= 'A' && strword <= 'Z') || strword == '_' || (strword >= '0' && strword <= '9'))
		{
			bool = true;
		}
		else
		{	bool = false;
			break;
		}
	}
	if (bool == false)	{ return false; }
	return true;
}

//<<<TO fix the max length of text area
function fnLimitTextAreaLength(objTextArea, intMaxLength)
{
	if ( objTextArea.value.length >= intMaxLength )
	{
		event.keyAscii = 0;
		event.returnValue = false;
	}
}
//<<to restrict the special characters..for login user name
	function fnRestrictSpecialCharacterLogin()
	{
		var kcode = event.keyCode;
		if ((kcode > 32 && kcode < 48) || (kcode > 57 && kcode < 65) || (kcode > 90 && kcode < 97)) 
		{	
			event.returnValue = false;
		}
		else
		{
			var w = event.which;
			if ((w > 32 && w < 48) || (w > 57 && w < 65) || (w > 90 && w < 97))
			{
				return false;
			}
		}
	}
//Ignore Special Characters
function fnRestrictSpecialCharacter()
{
		var kcode = event.keyCode;
		if ((kcode > 57 && kcode < 65) || (kcode > 90 && kcode < 97)) 
		{	
			event.returnValue = false;
		}
		else
		{
			var w = event.which;
			if ((w > 57 && w < 65) || (w > 90 && w < 97))
			{
				return false;
			}
		}
}
//<<<used for user name ...
function fnRestrictSpecialCharacter_OnlyForUserName()
{
	var kcode = event.keyCode;
	if (kcode == 95)
	{
		return;
	}
	if ((kcode >= 32 && kcode < 48) || (kcode > 57 && kcode < 65) || (kcode > 90 && kcode < 97)
	|| (kcode >= 123 && kcode <= 126)) 
	{	event.returnValue = false;	}
}
//Allow Only Characters
function fnAlphaCharacter()
{
	var kcode = event.keyCode;
	if (kcode < 65 || (kcode > 90 && kcode < 97) || kcode > 122 ) 
	{
		event.returnValue = false;
	}
}
//Allow Characters With Space
function fnAlphaCharacterWithSpace()
{
	var kcode = event.keyCode;
	if (kcode==32)
	{
		event.returnValue = true
	}
	else if (kcode < 65 || (kcode > 90 && kcode < 97) || kcode > 122 ) 
	{
		event.returnValue = false;
	}
}
//Allow Only Numeric Characters with minus
function fnValidatPhone()
{
	var kcode = event.keyCode;
	if (fnSafari()==true)
	{
		if (kcode >= 40 && kcode <= 45){
		}
		else if (kcode == 8)
		{
			event.returnValue = true;
		}
		else if (kcode >= 63232)
		{
			event.returnValue = true;
		}
		else if (kcode < 48 || kcode > 57)
		{
			event.returnValue = false;
		}
		else
		{	if (event.which < 45 || event.which > 57) 
			{
				return false;
			}
		}
	}
	else
	{
		if (kcode >= 40 && kcode <= 45)	{
		}
		else if (kcode <= 47 || kcode > 57) 
		{
			event.returnValue = false;
		}
		else
		{	if (event.which < 45 || event.which > 57) 
			{
				return false;
			}
		}
	}
}
//Allow Only Numeric Characters with minus
function fnValidateIntegar()
{
	var kcode = event.keyCode;
	if (fnSafari()==true)
	{
		if (kcode >= 40 && kcode <= 45)	{}

		else if (kcode == 8)
		{
			event.returnValue = true;
		}
		else if (kcode >= 63232)
		{
			event.returnValue = true;
		}
		else if (kcode < 48 || kcode > 57)
		{
			event.returnValue = false;
		}
		else
		{	if (event.which < 45 || event.which > 57) 
			{return false;}
		}
	}
	else
	{
		if (kcode >= 40 && kcode <= 45)	{
		}
		else if (kcode <= 47 || kcode > 57) 
		{
			event.returnValue = false;
		}
		else
		{	if (event.which < 45 || event.which > 57) 
			{
				return false;
			}
		}
	}
}
//Allow Only Numeric Characters 0-9
function fnValidateIntegar()
{		
	var kcode = event.keyCode;
	if (fnSafari()==true)
	{
		if (kcode==9)
		{
			fnValidateValue(min,max,obj);
		}
		else if (kcode==8)
		{
			event.returnValue = true;
		}
		else if (kcode >= 63232)
		{
			event.returnValue = true;
		}
				
		else if (kcode < 48 || kcode > 57)
		{
			event.returnValue = false;
		}
	}
	else
	{
		if (kcode<48 || kcode>57)
		{event.returnValue = false;}
	}
}
//Validate EmailID
function fnValidEmail(objStr)
{
	strEmail=document.getElementById(objStr).value;

	intReturn=fnCheckEmaiID(strEmail)
	if (intReturn==1)
	{
		return false;//alert(" Invalid  Email ID ");
		document.getElementById(objStr).focus();
	}
	return true;
}
//Code To Check EmailID
function fnCheckEmaiID(strString)
{
	var intLength=strString.length;
	var intReturn=1;
	var index;
	if (strString.charAt(0)=="@" || strString.charAt(0)==".")
	{
		return intReturn;
	}
	for (index=0;index<intLength; index++)
	{
		if (strString.charAt(index)=="@")
		{	
			intReturn=0;
			index=index+1;
			break;
		}
	}
	var counter=0;
	var intCount=0;
	var intDotCount=0;
	var intLastDot=0;
	if (intReturn==0)
	{
		for (;index<intLength ;index++ )
		{
			counter++;
			if (strString.charAt(index)==".")
			{	
					intReturn=0;
					index=index+1;
					for (;index<intLength ;index++ )
					{
						intCount=intCount+1;
						//if (strString.charAt(index)=="@" || strString.charAt(index)==".")
						if (strString.charAt(index)=="@")
							{intReturn=1;break;}

						if (strString.charAt(index)==".")
						{	
							intDotCount=intDotCount + 1;

							if (intLastDot==index-1)
							{intReturn=1;break;}
							if (intCount==1)
							{intReturn=1;break;}
							//<<if dots are more than 2
							//alert(intDotCount);
							if (intDotCount >= 2)
							{intReturn=1;break;}
							
							intLastDot=index;
						}
					}
				
					if (intCount==0)
					{intReturn=1;}
					//<<dot should not be last char
					if (strString.charAt(intLength - 1)==".")
					{intReturn=1;}

					break;
			}		
			else
				intReturn=1;
		}
		if (counter==0)
		{
			intReturn=1;
		}
	}
	if (counter==1)
	{
		intReturn=1;
	}
	return intReturn;	
}


//<<to validate the dates..return true if due date is greated than start date.else false
//<<to validate the dates..return true if due date is greated than start date.else false
function fnCheckValidDates(strStartDate,strDueDate)
{
	var date1, date2;
	var month1, month2;
	var year1, year2;
	var myStartDate,myDueDate;
	
	month1 = strStartDate.substring (0, strStartDate.indexOf ("/"));
	date1 = strStartDate.substring (strStartDate.indexOf ("/")+1, strStartDate.lastIndexOf ("/"));
	year1 = strStartDate.substring (strStartDate.lastIndexOf ("/")+1, strStartDate.length);
	
	month2 = strDueDate.substring (0, strDueDate.indexOf ("/"));
	date2 = strDueDate.substring (strDueDate.indexOf ("/")+1, strDueDate.lastIndexOf ("/"));
	year2 = strDueDate.substring (strDueDate.lastIndexOf ("/")+1, strDueDate.length);
	
	myStartDate=new Date();
	myDueDate=new Date();
	myStartDate.setFullYear(year1,month1,date1);
	
	myDueDate.setFullYear(year2,month2,date2);
	
	if (myStartDate<myDueDate)
	{
		return true;
	}
	else if (myStartDate>myDueDate)
	{
		return false;
	}
	else
	{
		return true;
	}
/* var astrStartDate;
var astrDueDate;

astrStartDate = strStartDate.split('/');
astrDueDate = strDueDate.split('/');

//<<for year
if (parseInt(astrStartDate[2]) > parseInt(astrDueDate[2]))
{      return false;		}
//<<month
if (parseInt(astrStartDate[0]) > parseInt(astrDueDate[0]) && parseInt(astrStartDate[2]) == parseInt(astrDueDate[2]))
{   return false;			}
//<<date
if (parseInt(astrStartDate[1]) > parseInt(astrDueDate[1]) && parseInt(astrStartDate[0]) == parseInt(astrDueDate[0]))
{     return false;			}
return true;*/
}

//<<to validate the date of birth..return true if due date is greated than start date.else false
 function fnCheckValidDOB(strStartDate,strDob)
 {
		var date1, date2;
		var month1, month2;
		var year1, year2;
		var myStartDate,myDob;
		month1 = strStartDate.substring (0, strStartDate.indexOf ("/"));
		date1 = strStartDate.substring (strStartDate.indexOf ("/")+1, strStartDate.lastIndexOf ("/"));
		year1 = strStartDate.substring (strStartDate.lastIndexOf ("/")+1, strStartDate.length);
		
		month2 = strDob.substring (0, strDob.indexOf ("/"));
		date2 = strDob.substring (strDob.indexOf ("/")+1, strDob.lastIndexOf ("/"));
		year2 = strDob.substring (strDob.lastIndexOf ("/")+1, strDob.length);

		myStartDate = new Date();
		myDob = new Date();
		myStartDate.setFullYear(year1,month1,date1);
		
		myDob.setFullYear(year2, month2, date2);

		return (myStartDate > myDob);
 }

 //<<<is numeric fucntion
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;
}

///<<<<<<TO SHOW AND HIDE THE NON MANDATORY FIELDS
function fnShowAndHideUnMandatoryFields(objCheckBox,strCommonId,intMaxNumber)
{
	var objNonMandatory;
	var strTemp;
	var blnChecked;
	var intC;
	
	//<<<check that fields have to hide or show
	blnChecked=objCheckBox.checked;
	
	//var a=intMaxNumber.isDigit();
	//<<<if value is number
	if (isNaN(intMaxNumber)==false && strCommonId != '')
	{
		for (intC = 1; intC <= intMaxNumber; intC++ )
		{
			strTemp = strCommonId + '_' + intC;
			//alert(strTemp);
			objNonMandatory = document.getElementById(strTemp);
			if (objNonMandatory != null)
			{
				//alert(objNonMandatory.style.display);
				try	{	
					if (blnChecked == true)
					{
						//alert(blnChecked);
						objNonMandatory.style.display = 'none';	
					}
					else
					{	
						//objNonMandatory.style.display='block';	
						fnShowObjectBasedOnBrowser(objNonMandatory);
					}
				}
				catch(e){}				
			}
		}
	}
}


		function fnShowObjectBasedOnBrowser(obj)
		{
			var browser;
			var detect;
			if (obj==null) return;

			try		{
				detect = navigator.userAgent.toLowerCase();
			}
			catch (e){	}
			
			if (checkIt(detect,'safari'))
			{
				//browser = "Safari";	
				obj.style.display='table-row';
			}
			else if (checkIt(detect,'msie')) 
			{
				//browser = "Internet Explorer";
				obj.style.display='block';
			}
			else if (checkIt(detect,'opera')) 
			{
				//browser = "Opera"
				obj.style.display='table-row';
			}
			else 
			{
				//browser = "Mozilla";
				obj.style.display='table-row';
			}
		}

		function checkIt(detect,string)
		{
			place = detect.indexOf(string) + 1;
			return place;
		}
		function fnSafari()
		{
			var detect;
			try
			{	
			detect = navigator.userAgent.toLowerCase();		
			}
			catch (e){	}
			if (checkIt(detect,'safari')) 
			{
				return true;	
			}
			return false;
		}
