//	..................................................................
//	Project				: OMIS (Office Management & Information System)
//	Page name			: jsGeneralFnc.js
//	Page description	: Consolidation of General Functions.
//	Page Version No	: 1.1
//	Created by			: GI
//	Created on			: AUGUST 2004	
//	..................................................................
//..........................................................................................

//Checking the Browser
ie4 = document.all ? true : false
ns4 = document.layers ? true : false
//Checking the Browser


//..........................................................................................
// NULL CHECK FOR TEXTBOX 
// Eg. nullchk('Name',document.form.text1,document.form.text1.value) 
//..........................................................................................
function fncNullchk(name,col,val)
{
	var j=0;
	len = val.length;
	for(i=0;i<len;i++)
	{
		if (val.substr(i,1) != " ")
		j++;
	}
	if (j == 0)
	{
		if (!col.disabled)
		{
			alert("Please Enter the " + name);
			col.focus();
		}
		
		return false;
	}
	if (val == 0)
	{
		alert("Please Enter the Value for " + name);
		col.focus();
		return false;
	}
	return true;
}


//..........................................................................................
//TO DISABLE CONTROLS IN THE FORM 
//..........................................................................................
function fncDisableControl()
{      
	
	ie4 = document.all ? true : false
    ns4 = document.layers ? true : false
    var i
	if(ns4)
	{
		for ( i = 0; i < fncDisableControl.arguments.length ;i ++)
		{
			fncDisableControl.arguments[i].onfocus = skip
			void(0)
		}
	}
	else
	{
		for ( i= 0; i < fncDisableControl.arguments.length ;i ++)
		{
			fncDisableControl.arguments[i].disabled = true;
			fncDisableControl.arguments[i].style.backgroundColor = "#E6E7DC"
			fncDisableControl.arguments[i].style.forecolor = "black"
		}
	}
}


//..........................................................................................
// TO ENABLE CONTROLS IN THE FORM 
//..........................................................................................
function fncEnableControl()
{
	var i;
	if(ns4)
	{
		for ( i = 0; i < fncEnableControl.arguments.length ;i ++)
		{
			fncEnableControl.arguments[i].onfocus=null
			void(0)
		}
	}
	else
	{
		for ( i = 0; i < fncEnableControl.arguments.length ;i ++)
		{
			fncEnableControl.arguments[i].disabled = false
			fncEnableControl.arguments[i].style.backgroundColor = "#ffffff"
			////fncEnableControl.arguments[i].style.backgroundColor = "royalblue"
			////fncEnableControl.arguments[i].style.forecolor = "black"
			fncEnableControl.arguments[i].style.color = "black"
		}
	}	 
}


//..........................................................................................
// CONFIRMATION FOR DELETE OR MODIFY etc... PASS MESSAGE WHICH SHOULD ASK  
//..........................................................................................
function fncConfirmation(msg)
{
	//"Are you sure you want to delete ?"
	if (confirm(msg))
	{
		return true;
	}
	else
	{
		return false;
	}
}


//..........................................................................................
// FOR CHECKING SPECIAL CHARACTERS 
//..........................................................................................
function fncAllowSpecifiedCharacters(lCAcceptString, lCState, AllowCharacters )
{
	//This function is used to validate  characters based on the Given state
	//First Paramater is the expression to be validated
	//AllowCharacters is the set of special characters that can be allowed in a given expression
	// and is used only by the fourth level.Special characters should be passed as a string
	//Third Parameter takes four parameter(State)
	//State - 1 For Allowing only numbers
	//State - 2 For Allowing only Alphabets(Lower and Upper Case)
	//State - 3 For Allowing only Alphabets(Lower and Upper Case and Numbers(Alpha Numeric)
	//State - 4 For Allowing only Alphabets(Lower and Upper Case and Numbers(Alpha Numeric)
	//          and the characters specified in second Parameter(AllowCharacters)

	// Example to invoke this function for level four
	//Assuming the 3rd parameter contains Single and double Quotes and hash Symbol "'#
	//To pass Single, Double Quotes suppress the special meaning of these characters
	// by placing back slash before these quotes and the string should be enclosed
	// within single or Double Quotes
	//Usage:AllowSpecifiedCharacters(document.formname.controlname.value, Level , "\"\'#")
	// or   AllowSpecifiedCharacters(document.formname.controlname.value, Level , '\"\'#')

	lCCheckFlag = 0 
	lCSuccessFlag = 0
	lCTempCharacter=""
	lCAcceptString=trim(lCAcceptString)
	
	if (lCState == "4" && AllowCharacters.length != 1 )
	{
		lCState == "4"
		lCCheckFlag = 1
	}
	
	if (lCState == "5" && AllowCharacters.length != 1)
		lCCheckFlag = 1
		
	if (lCState == "6" && AllowCharacters.length != 1)
		lCCheckFlag = 1
	

	if (lCCheckFlag == "0")
	{
		for (lCCntAcceptString = 0; lCCntAcceptString < lCAcceptString.length ;lCCntAcceptString ++)
		{
			//INTEGER AND CAN ALLOW .
			if (lCState == "1")
			{
				if ((lCAcceptString.charAt(lCCntAcceptString) >= "0" && lCAcceptString.charAt(lCCntAcceptString) <= "9") ||(lCAcceptString.charAt(lCCntAcceptString) == "."))
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					lCCntAcceptString = lCAcceptString.length
				}
			
			}
			
			//ONLY FOR CHARACTERS
			if (lCState == "2")
			{
				if((lCAcceptString.charAt(lCCntAcceptString) >= "a" && lCAcceptString.charAt(lCCntAcceptString) <= "z") || (lCAcceptString.charAt(lCCntAcceptString) >= "A" && lCAcceptString.charAt(lCCntAcceptString) <= "Z"))
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					lCCntAcceptString = lCAcceptString.length
				}
			
			}		
		
			//ALPHA NUMERIC 	
			if (lCState == "3")
			{			
				if((lCAcceptString.charAt(lCCntAcceptString) >= "0" && lCAcceptString.charAt(lCCntAcceptString) <= "9" ) || (lCAcceptString.charAt(lCCntAcceptString) >= "a" && (lCAcceptString.charAt(lCCntAcceptString) <= "z")) || (lCAcceptString.charAt(lCCntAcceptString) >= "A" && lCAcceptString.charAt(lCCntAcceptString) <= "Z"))
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					lCCntAcceptString = lCAcceptString.length
				}			
				
			}
			
			//ALPHANUMERIC AND SPECIAL CHARACTER [SPECIAL CHARACTERS HAS TO BE SPECIFIED]
			if (lCState == "4" && AllowCharacters.length == 1 )
			{
				if((lCAcceptString.charAt(lCCntAcceptString) >= "0" && lCAcceptString.charAt(lCCntAcceptString) <= "9" ) || (lCAcceptString.charAt(lCCntAcceptString) >= "a" && (lCAcceptString.charAt(lCCntAcceptString) <= "z")) || (lCAcceptString.charAt(lCCntAcceptString) >= "A" && lCAcceptString.charAt(lCCntAcceptString) <= "Z") ||(lCAcceptString.charAt(lCCntAcceptString) == AllowCharacters) )
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					lCCntAcceptString = lCAcceptString.length
				}
			}
			
			if (lCState == "5" && AllowCharacters.length == 1 )
			{
				if((lCAcceptString.charAt(lCCntAcceptString) >= "0" && lCAcceptString.charAt(lCCntAcceptString) <= "9" ) || (lCAcceptString.charAt(lCCntAcceptString) == AllowCharacters) )
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					lCCntAcceptString = lCAcceptString.length
				}
			}
			
			if (lCState == "6" && AllowCharacters.length == 1 )
			{
				if( (lCAcceptString.charAt(lCCntAcceptString) >= "a" && (lCAcceptString.charAt(lCCntAcceptString) <= "z")) || (lCAcceptString.charAt(lCCntAcceptString) >= "A" && lCAcceptString.charAt(lCCntAcceptString) <= "Z") ||(lCAcceptString.charAt(lCCntAcceptString) == AllowCharacters) )
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					lCCntAcceptString = lCAcceptString.length
				}
			}
			
			//INTEGER
			if (lCState == "7")
			{
				if (lCAcceptString.charAt(lCCntAcceptString) >= "0" && lCAcceptString.charAt(lCCntAcceptString) <= "9")
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					lCCntAcceptString = lCAcceptString.length
				}
			}
			//INTEGER AND SPECIAL CHARACTERS  like + - For Telephone Numbers
			if (lCState == "8")
			{
				if ((lCAcceptString.charAt(lCCntAcceptString) >= "0" && lCAcceptString.charAt(lCCntAcceptString) <= "9") ||(lCAcceptString.charAt(lCCntAcceptString) == "-")||(lCAcceptString.charAt(lCCntAcceptString) == "+"))
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					lCCntAcceptString = lCAcceptString.length
				}
			}
			//INTEGER AND SPECIAL CHARACTERS  like - For Quantity
			if (lCState == "9")
			{
				if ((lCAcceptString.charAt(lCCntAcceptString) >= "0" && lCAcceptString.charAt(lCCntAcceptString) <= "9") ||(lCAcceptString.charAt(lCCntAcceptString) == "-"))
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					lCCntAcceptString = lCAcceptString.length
				}
			}
		}
		
	}
	
	//AlphaNumeric and Allow Specified Special Characters(More Than One Special Character)
	if (lCCheckFlag == "1" && lCState == "4")	
	{
		// outer loop compares character for Alpha Nuneric
		// and Inner Loop Compares For the Allowed Special Characters
		 
		for (lCCntAcceptString = 0; lCCntAcceptString < lCAcceptString.length ;lCCntAcceptString ++)
		{
			
				if((lCAcceptString.charAt(lCCntAcceptString) >= "0" && lCAcceptString.charAt(lCCntAcceptString) <= "9" ) || (lCAcceptString.charAt(lCCntAcceptString) >= "a" && (lCAcceptString.charAt(lCCntAcceptString) <= "z")) || (lCAcceptString.charAt(lCCntAcceptString) >= "A" && lCAcceptString.charAt(lCCntAcceptString) <= "Z")  )
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					
				}
				
				lCTempCharacter = lCAcceptString.charAt(lCCntAcceptString)
				if(lCSuccessFlag == 0)
				{
					lCTempCounter = 0
						for (lCCntAcceptSplCharacter = 0; lCCntAcceptSplCharacter < AllowCharacters.length ;lCCntAcceptSplCharacter ++)
						{
													
							if(AllowCharacters.charAt(lCCntAcceptSplCharacter) ==  lCTempCharacter)
							{
							lCSuccessFlag = 1
							lCCntAcceptSplCharacter=AllowCharacters.length						
							}
							else
							{
							lCSuccessFlag = 0									 
							}
							lCTempCounter = lCTempCounter + 1
						}
						if( (lCTempCounter == AllowCharacters.length) && lCSuccessFlag == 0)
						{
							lCCntAcceptString=lCAcceptString.length		
						}
					}

		}
		
	}
	
	if (lCCheckFlag == "1" && lCState == "5")	
	{
		// outer loop compares character for Alpha Nuneric
		// and Inner Loop Compares For the Allowed Special Characters
		 
		for (lCCntAcceptString = 0; lCCntAcceptString < lCAcceptString.length ;lCCntAcceptString ++)
		{
			
				if((lCAcceptString.charAt(lCCntAcceptString) >= "0" && lCAcceptString.charAt(lCCntAcceptString) <= "9" ) || (lCAcceptString.charAt(lCCntAcceptString) >= "a" && (lCAcceptString.charAt(lCCntAcceptString) <= "z"))  )
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					
				}
				
				lCTempCharacter = lCAcceptString.charAt(lCCntAcceptString)
				if(lCSuccessFlag == 0)
				{
					lCTempCounter = 0
						for (lCCntAcceptSplCharacter = 0; lCCntAcceptSplCharacter < AllowCharacters.length ;lCCntAcceptSplCharacter ++)
						{
													
							if(AllowCharacters.charAt(lCCntAcceptSplCharacter) ==  lCTempCharacter)
							{
							lCSuccessFlag = 1
							lCCntAcceptSplCharacter=AllowCharacters.length						
							}
							else
							{
							lCSuccessFlag = 0									 
							}
							lCTempCounter = lCTempCounter + 1
						}
						if( (lCTempCounter == AllowCharacters.length) && lCSuccessFlag == 0)
						{
							lCCntAcceptString=lCAcceptString.length		
						}
					}

		}
		
	}
	
	
	if (lCCheckFlag == "1" && lCState == "6")	
	{
		// outer loop compares character for Alphabets
		// and Inner Loop Compares For the Allowed Special Characters
		 
		for (lCCntAcceptString = 0; lCCntAcceptString < lCAcceptString.length ;lCCntAcceptString ++)
		{
			
				if((lCAcceptString.charAt(lCCntAcceptString) >= "a" && (lCAcceptString.charAt(lCCntAcceptString) <= "z")) || (lCAcceptString.charAt(lCCntAcceptString) >= "A" && lCAcceptString.charAt(lCCntAcceptString) <= "Z"))
				{
					lCSuccessFlag = 1
				}
				else
				{
					lCSuccessFlag = 0
					
				}
				
				lCTempCharacter = lCAcceptString.charAt(lCCntAcceptString)
				if(lCSuccessFlag == 0)
				{
					lCTempCounter = 0
						for (lCCntAcceptSplCharacter = 0; lCCntAcceptSplCharacter < AllowCharacters.length ;lCCntAcceptSplCharacter ++)
						{
													
							if(AllowCharacters.charAt(lCCntAcceptSplCharacter) ==  lCTempCharacter)
							{
							lCSuccessFlag = 1
							lCCntAcceptSplCharacter=AllowCharacters.length						
							}
							else
							{
							lCSuccessFlag = 0									 
							}
							lCTempCounter = lCTempCounter + 1
						}
						if( (lCTempCounter == AllowCharacters.length) && lCSuccessFlag == 0)
						{
							lCCntAcceptString=lCAcceptString.length		
						}
					}

		}
		
	}
		
	if (lCSuccessFlag == "0")	
		return false
	else
		return true
}


//..........................................................................................
// FOR CHECKING LEADING AND TRAILING SPACES AND REMOVED 
//..........................................................................................
function trim(MainString)
{	
	//This function bascically takes a string as a parameter 
	//and returns the same string after removing leading and
	//trailing spaces
	//Example:
	//If the input is "   God is great     "
	//In the above string,leading space is 3 and trailing space is 6"
	//if trim function is used both the leading and 
	//trailing spaces are removed, Output will be "God is great"
	if (MainString )
	{
		gCAcceptedExpression=MainString	
		lCExpressionLength=gCAcceptedExpression.length
		gCGlobalCounter=0
		gCLeadingSpaceCounter=0		
		gCTrimmedExpression=""
		//Checking for leading spaces
		while(gCGlobalCounter<lCExpressionLength)
		{
			if(gCAcceptedExpression.charAt(gCGlobalCounter)==' ')
			{
				gCLeadingSpaceCounter++
			}
			else
			{
				gCGlobalCounter=lCExpressionLength + 1
			}
			gCGlobalCounter++
		}
		gCloopCnt=lCExpressionLength-1
		gCTrailingSpaceCounter=0
		//checking for trailing spaces		
		while(gCloopCnt >=0)
		{	 
			if(gCAcceptedExpression.charAt(gCloopCnt)==' ')
			{
			gCTrailingSpaceCounter++
			}
			else
			{
			gCloopCnt=-1
			}
			gCloopCnt--
		}
		//if there is no leading and trailing spaces 
		//returning the same string
		if(gCLeadingSpaceCounter==0 && gCTrailingSpaceCounter==0)
		{
		gCTrimmedExpression=gCAcceptedExpression 
		return gCTrimmedExpression
		}
		lCDatalength=gCAcceptedExpression.length
		//removing leading spaces
		if(gCLeadingSpaceCounter > 0) 
		{	
			while(gCLeadingSpaceCounter<lCDatalength)
			{
			gCTrimmedExpression=gCTrimmedExpression + gCAcceptedExpression.charAt(gCLeadingSpaceCounter)
			gCLeadingSpaceCounter++				
			}
			gCAcceptedExpression=gCTrimmedExpression 
		}
		else
		{
		gCTrimmedExpression=gCAcceptedExpression
		}
		//removing trailing spaces
		if(gCTrailingSpaceCounter > 0) 
		{	
			gCloopCnt=gCTrimmedExpression.length-gCTrailingSpaceCounter
			gCGlobalCounter=0
			gCTrimmedExpression=""
			while(gCGlobalCounter<gCloopCnt)
			{
			gCTrimmedExpression=gCTrimmedExpression + gCAcceptedExpression.charAt(gCGlobalCounter)
			gCGlobalCounter++
			}
					
		}
		return gCTrimmedExpression
	}
	else
	{
		gCTrimmedExpression = ""
		return gCTrimmedExpression
	}
}



//..........................................................................................
// FOR E-MAIL CHECK */
// Eg. emailchk(document.form.text1,document.form.text1.value) */
//..........................................................................................
function fncEmailValid(col,val)
{
	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=val.match(emailPat)
	if (matchArray==null) 
	{
		alert("E-mail address is incorrect");
		col.focus();
		return false;
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null)
	{
	    alert("The E-mail 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!")
				col.focus();
				return false
			}
        	}
		return true
	}
	var domainArray=domain.match(domainPat)
	/*
	if (domainArray==null) 
	{
		alert("The domain name doesn't seem to be valid.")
		col.focus();
		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.")
	   col.focus();
	   return false
	}*/
	if (len<2) 
	{
	   var errStr="This address is missing a hostname!"
	   alert(errStr);
	   col.focus();
	   return false;
	}
	return true;
}


//..........................................................................................
//FOR NUMERIC CHECK
//..........................................................................................
function fncNumericCheck(val)
{
	if (isNaN(val))
	{
		return false;
	}
	return true;
}


//..........................................................................................
// FOR ROLLOVER EFFECT ON IMAGES 
//..........................................................................................
function fncRollover(theImage, theSrc)
{
	var objStr,obj;
	if(document.images)
	{
		if (typeof(theImage) == 'string') 
		{
			objStr = 'document.' + theImage;
			obj = eval(objStr);
			obj.src = theSrc;
		} 
		else if ((typeof(theImage) == 'object') && theImage && theImage.src) 
		{
			theImage.src = theSrc;
		}
	}
}

//..........................................................................................
// FOR EXTRACTING THE FILENAME 
//..........................................................................................
function fileNameExtract(fNamewithFldr)
{
	var fNamewithFldr;
	fNamewithFldr = new String;
	var i = 0;
	var slash = true;
	
	for (i=fNamewithFldr.length;i >= 0;i--)
	{
		if ((fNamewithFldr.substring(i,i+1) == "/") || (fNamewithFldr.substring(i,i+1) == "\\"))
		{
			return fNamewithFldr.substring(i+1,fNamewithFldr.length);
		}
		else
		{
			slash = false;
		}
	}
	if (slash == false)
	{
		return fNamewithFldr;
	}	
}


//..........................................................................................
// COUNTS THE NUMBER OF DIGITS AFTER THE DECIMAL POINT */
//..........................................................................................
function fncCountAfterPeriod(val)
{
	var len = val.length
	var Length = len - 1
	var lCPeriodPosition = -1
	for(var j =0;j<len;j++)
	{
		var ch = val.substring(j,j+1)
		if (ch == ".")
		{
			lCPeriodPosition = j
			break
		}
	}
	var lCCountAfterPeriod = 0
	for(var j = lCPeriodPosition + 1 ; j < len ; j++)
	{	 
		lCCountAfterPeriod = lCCountAfterPeriod + 1   	
	}
	return lCCountAfterPeriod
}


//..........................................................................................
// CHECK FOR AMOUNT IS VALID
//..........................................................................................
function fncIsAmountValid(val,integerpart,decimalpart)
{
	var VAmount = trim(val)
	var intIntegerLen = trim(integerpart)
	intIntegerLen=(intIntegerLen).length
	var intDecimalLen = trim(decimalpart)
	intDecimalLen=(intDecimalLen).length
	
	if ((VAmount).length > 0)
	{
		var getVal = trim(val)
		
		/*Check for Value passed is Numeric or not*/			
		if (!fncNumericCheck(getVal))
		{	
			alert("Enter Valid Amount")
			return false;
		}
		
		
		/*Check for Integer Part*/
		if (parseFloat(VAmount) > parseFloat(integerpart + '.' + decimalpart))
		{
			alert("Integer part cannot contain more than " + intIntegerLen + " digits")
			return false;
		}		

		/*Check for Decimal Exists*/		
		if (fncIsExist(getVal,".") == true)
		{
			/*Check for Decimal Part*/		
			if (fncCountAfterPeriod(getVal) > intDecimalLen)
			{ 
				alert("Decimal part cannot contain more than " + intDecimalLen + " digits")
				return false;
			}
		}	
		return true;
	}	
}


//..........................................................................................
// CHECK FOR CHARACTER OR WORD EXISTS IN THE STRING PASSED 
//..........................................................................................
function fncIsExist(str,chr)
{
	if(str.indexOf(chr) >=0) 
	{
	   return true;
	}
	else
	{
	   return false;
	}
}


//..........................................................................................
// ENCODING URL 
//..........................................................................................
function URLEncode(str)
{
	len = str.length
	for(var i=0;i<len;i++)
	str = str.replace("+","$")
	return str;
}


//..........................................................................................
// COMBO VALUES CAN BE SET AT RUN TIME [Normally used in ASP]
//..........................................................................................
function fncSetComboValue(cmbSlang,str)
{
	if (str != "")
	{
		var tmpvar;
		var tmparray;
		tmpvar = str;
		for (j=0;j<=cmbSlang.length-1;j++)
		{
		    fval = cmbSlang.options(j).value;
			if (fval == str)
			{	
				cmbSlang.SelectedIndex = j;
				cmbSlang.options(j).selected = true;
			}
		}
	}
}


//..........................................................................................
// CHECKING WHETHER DATE IS VALID OR NOT
//..........................................................................................
function fncIsDateValid(theElement) 
{
	str = theElement;
	len = str.length;
	if(len != 10) 
	{
		return false;
	} 
	strday = str.substring(0, 2);
	strmonth = str.substring(3, 5);
	stryear = str.substring(6, 11);
	strseparator = str.substring(2,3)
	strseparator1 = str.substring(5,6)
	
	if ((strseparator != '/') || (strseparator1 != '/'))
	{
		return false;	
	}
	
	if( isNaN(strday) || (strday < 0) || isNaN(strmonth) || (strmonth < 0)|| isNaN(stryear) || (stryear < 0)) 
	{
		return false;
	} 
		
	if( (strmonth == "01") || (strmonth == "03") || (strmonth == "05") || (strmonth == "07") || (strmonth == "08") || (strmonth == "10") || (strmonth == "12") ) 
	{ 
		monthdays = 31 
	}
	else if((strmonth == "04") || (strmonth == "06") || (strmonth == "09") || (strmonth == "11"))
	{ 
		monthdays = 30 
	}
	else if(strmonth == "02") 
	{ 
		monthdays = ((stryear % 4) == 0) ? 29 : 28; 
	}
	else 
	{
		return false;
	}

	if(strday > monthdays) 
	{
		return false;
	}
	
	return true;
}


//..........................................................................................
// CHECKING WHETHER TIME IS VALID OR NOT
//..........................................................................................
function fncIsTimeValid(strTime)
{
	if (strTime.length != 5)
	{
		return false;
	}
	var iHour = parseInt(strTime.substring(0,2))
	var iColon = strTime.substring(2,3)
	var iMinute = parseInt(strTime.substring(3,5))
	
	if (iColon != ":")
	{
		return false;
	}
	
	if ((iHour < 0) || (iHour > 23))
	{
		return false;
	}

	if ((iMinute < 0) || (iMinute > 59))
	{
		return false;
	}
	return true;
}

//..........................................................................................
//CHECK THE WHETHER FROMDATE IS LESSER THAN TODATE OR BOTH DATES CAN BE EQUAL 
//..........................................................................................
function fncCompareDates(from, to)
{
	var strDay,strMonth,strYear,fromdate,todate;
	var intfromdate,inttodate;
	
	fromdate = from;
	todate = to;
	
	//alert(fromdate);
	//alert(todate);
	strDay = fromdate.substr(0,2);
	strMonth = fromdate.substr(3,2);
	strYear = fromdate.substr(6,4);
	fromdate = strYear+strMonth+strDay;
	
	strDay = todate.substr(0,2);
	strMonth = todate.substr(3,2);
	strYear = todate.substr(6,4);		
	todate = strYear+strMonth+strDay;
	
	intfromdate=parseInt(fromdate, 10);
	inttodate=parseInt(todate, 10);	
	if (intfromdate <= inttodate)
	{
		return true;
	}
	else 
	{
		if (from.value == "" || to.value == "") 
		{
			alert("Both the dates must be entered");
			return false;
		}
		else 
		{
			return false;
		}
	}
}

//..........................................................................................
//CHECK THE WHETHER FROMDATE IS Greater THAN TODATE OR BOTH DATES CAN BE EQUAL 
//..........................................................................................

function fncCompareGreaterDates(from, to)
{
	var strDay,strMonth,strYear,fromdate,todate;
	var intfromdate,inttodate;
	
	fromdate = from;
	todate = to;
	
	strDay = fromdate.substr(0,2);
	strMonth = fromdate.substr(3,2);
	strYear = fromdate.substr(6,4);
	fromdate = strYear+strMonth+strDay;
	
	strDay = todate.substr(0,2);
	strMonth = todate.substr(3,2);
	strYear = todate.substr(6,4);		
	todate = strYear+strMonth+strDay;
	
	intfromdate=parseInt(fromdate, 10);
	inttodate=parseInt(todate, 10);
	
	if (intfromdate >= inttodate)
	{
		return true;
	}
	else 
	{
		if (from.value == "" || to.value == "") 
		{
			alert("Both the dates must be entered");
			return false;
		}
		else 
		{
			return false;
		}
	}
}
//..........................................................................................
//CHECK THE WHETHER FROMDATE IS LESSER THAN TODATE OR BOTH DATES CANNOT BE EQUAL  [Duplicated it should corrected in other project]
//..........................................................................................
function fncCompareDatesNE(from, to)
{
	var strDay,strMonth,strYear,fromdate,todate;
	var intfromdate,inttodate;
	
	fromdate = from;
	todate = to;
	
	strDay = fromdate.substr(0,2);
	strMonth = fromdate.substr(3,2);
	strYear = fromdate.substr(6,4);
	fromdate = strYear+strMonth+strDay;
	
	strDay = todate.substr(0,2);
	strMonth = todate.substr(3,2);
	strYear = todate.substr(6,4);		
	todate = strYear+strMonth+strDay;
	
	intfromdate=parseInt(fromdate, 10);
	inttodate=parseInt(todate, 10);
	
	if (intfromdate < inttodate)
	{
		return true;
	}
	else 
	{
		if (from.value == "" || to.value == "") 
		{
			alert("Both the dates must be entered");
			return false;
		}
		else 
		{
			return false;
		}
	}
}

//..........................................................................................
//ROUNDING DECIMAL VALUES 
//..........................................................................................
function fncRoundDecimals(value, decimals) 
{
    var result1 = value * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return fncPadzeros(result3, decimals)
}

function fncPadzeros(rounded_value, decimal_places) 
{
    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) 
    {
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else 
    {
        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) 
    {
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
    }
    return value_string
}


//..........................................................................................
//SPREAD FUNCTIONS
//..........................................................................................


//..........................................................................................
//SPREAD COLUMN WIDTH ADJUSTMENT
//..........................................................................................
function fncChangeSpreadColWidth(cntrl,val)
{
	var sprSpread = document.all(cntrl)
	var splitVal = val.split("~")
	var count= splitVal.length
	for (var i=0;i<count;i++)				
	{
		var calcwidth = parseFloat(splitVal[i]) * parseFloat(1.3) 
		sprSpread.setColWidth(i,calcwidth); 	
	}
}


//..........................................................................................
//SPREAD COLUMN CHECK DUPLICATE
//..........................................................................................
function fncChkDuplicate(sprName,iCol,iColCount)
{
	var sprSpread = sprName
	if(sprSpread.ActiveCol == iCol)
	{

		var MaxRow = sprSpread.RowCount - 2
		var CurrRow = sprSpread.ActiveRow
		var strValue = sprSpread.GetValue(CurrRow,iCol)
		strValue = strValue.toUpperCase()
		
		if (trim(strValue).length > 0)
		{
			for(var iRow=0;iRow<=MaxRow;iRow++)
			{
				if (iRow != CurrRow)
				{
					var strSubValue = sprSpread.GetValue(iRow,iCol)
					if (trim(strSubValue).length > 0)
					{
						strSubValue = strSubValue.toUpperCase()
						if (strValue == strSubValue)
						{
							var iCount = parseInt(iRow) + 1
							alert(strSubValue + ' already exists in line number ' + iCount)
							for (var iColClear=0;iColClear<=iColCount;iColClear++)
							{
								sprSpread.SetValue(CurrRow,iColClear,"",true)
							}
							return false
						}
					}	
				}
			}
		}
		return true
	}
}

//..........................................................................................
//SPREAD COLUMN CHECK DUPLICATE IGNORING IF IT IS CHECKED IN THE CHECKBOX
//..........................................................................................
function fncChkDuplicateCheckBox(sprName,iCol,iColCount,iColIgnore, sprMode)
{
	
	var sprSpread = sprName

	if (sprMode== '')
	{
		if(sprSpread.ActiveCol == iCol)
		{
			var MaxRow = sprSpread.RowCount - 2
			var CurrRow = sprSpread.ActiveRow
			var strValue = sprSpread.GetValue(CurrRow,iCol)
			var strIgnore = sprSpread.GetValue(CurrRow,iColIgnore)
			strValue = strValue.toUpperCase()
			if (trim(strValue).length > 0)
			{
				//IGNORE
				if (strIgnore==false)
				{				
					for(var iRow=0;iRow<=MaxRow;iRow++)
					{
						if (iRow != CurrRow)
						{
							var strSubValue = sprSpread.GetValue(iRow,iCol)
							if (trim(strSubValue).length > 0)
							{
								strSubValue = strSubValue.toUpperCase()
							
								if (strValue == strSubValue)
								{
									var strIgnore = sprSpread.GetValue(iRow,iColIgnore)
									if (strIgnore == false)
									{									
										var iCount = parseInt(iRow) + 1
										alert(strSubValue + ' already exists ' + ' Duplicate in line number ' + iCount )
										for (var iColClear=0;iColClear<=iColCount;iColClear++)
										{
											sprSpread.SetValue(CurrRow,iColClear,"",true)
										}
										return false
									}//endif	
								}//endif
							}//endif	
						}//endif
					}//endfor
				}//endif
			}//endif
		}//endif
		return true
	}//endif	
	else
	{		
		var MaxRow = sprSpread.RowCount - 2
		for(var jRow=0;jRow<=MaxRow;jRow++)
		{		
			var strIgnorePrimary = sprSpread.GetValue(jRow,iColIgnore)
			var strValue = sprSpread.GetValue(jRow,iCol)
			strValue = strValue.toUpperCase()
			if (trim(strValue).length > 0)
			{
				///IGNORE 
				if (strIgnorePrimary==false)
				{
					for(var iRow=0;iRow<=MaxRow;iRow++)
					{
						if (jRow != iRow)
						{
							var strSubValue = sprSpread.GetValue(iRow,iCol)
							if (trim(strSubValue).length > 0)
							{
								strSubValue = strSubValue.toUpperCase()
								if (strValue == strSubValue)
								{	
									var strIgnoreSecondary = sprSpread.GetValue(iRow,iColIgnore)
									if (((strIgnorePrimary == true)&&(strIgnoreSecondary == true))||((strIgnorePrimary == false)&&(strIgnoreSecondary == false)))
									{									
										var iCount = parseInt(iRow) + 1
										alert(strSubValue + ' already exists ' + ' Duplicate in line number ' + iCount )
										//alert(strSubValue + ' already exists in line number ' + iCount)
										for (var iColClear=0;iColClear<=iColCount;iColClear++)
										{
											//sprSpread.SetValue(iRow,iColClear,"",true)
										}
										return false
									}// endif	
								}//endif
							}//endif	
						}//endif
					}//end for Child
				}//end if
			}//end if
		}//endfor Parent	
		return true				
	}//endif
}//endfunction


//..........................................................................................
//SPREAD - CHECK IF ONE ROW EXISTS
//..........................................................................................
function fncChkRowExist(sprName,startCol)
{
	var sprSpread = sprName
	var strGetValue = sprSpread.GetValue(0,startCol)
	var MaxRow = sprSpread.RowCount - 1
	var strExist = "N"
	if (trim(strGetValue).length == 0)
	{
		for (var iRow=1;iRow<MaxRow;iRow++)
		{
			var strCol1 = sprSpread.GetValue(iRow,startCol)
			if(trim(strCol1).length != 0)
			{
				strExist = "Y"
				break;
			}	
		}
		if (strExist == "N")
		{
			alert("Atleast one Row should be filled")
			return false;			
		}
		return true;	
	}
	return true;
}

//..........................................................................................
//SPREAD - CHECK TO FILL IN ORDER
//..........................................................................................
function fncChkFillOrder(sprName,startCol)
{	
	var sprSpread = sprName
	var MaxRow = sprSpread.RowCount - 1
	var CurrRow = sprSpread.ActiveRow
	for (var iRow=0;iRow<MaxRow;iRow++)
	{
		var strGetValue = sprSpread.GetValue(iRow,startCol)
		if (trim(strGetValue).length == 0)				
		{
			var roww = iRow
			break
		}
		else
		{
			var roww = iRow
		}
	}
	var incrementroww = roww + 1
	for (var iRow=incrementroww;iRow<MaxRow;iRow++)
	{
		var strGetValue = sprSpread.GetValue(iRow,startCol)
		if (trim(strGetValue).length != 0)				
		{
			var iVal = iRow
			break
		}
	}
	if (trim(iVal).length != 0)
	{
		alert("Please Fill in the Order")
		var iColCount = sprSpread.GetColCount()
		iColCount = parseInt(iColCount) - 1
		for (var iColClear=0;iColClear<=iColCount;iColClear++)
		{
			sprSpread.SetValue(iVal,iColClear,"",true)
		}
		ival=""
		return false;
	}
	return true;
}

function fncChkFillOrderWithCheckBox(sprName,startCol,chkBoxCol)
{	
	var sprSpread = sprName
	var MaxRow = sprSpread.RowCount - 1
	var CurrRow = sprSpread.ActiveRow
	for (var iRow=0;iRow<MaxRow;iRow++)
	{
		var strGetValue = sprSpread.GetValue(iRow,startCol)
		var strChkBoxCol = sprSpread.GetValue(iRow, chkBoxCol)
		
		if (trim(strGetValue).length == 0 && strChkBoxCol==false)				
		{
			var roww = iRow
			break
		}
		else
		{
			var roww = iRow
		}
	}
	var incrementroww = roww + 1
	for (var iRow=incrementroww;iRow<MaxRow;iRow++)
	{
		var strGetValue = sprSpread.GetValue(iRow,startCol)
		var strChkBoxCol = sprSpread.GetValue(iRow, chkBoxCol)
		if (strChkBoxCol==false)
		{
			if (trim(strGetValue).length != 0)				
			{
				var iVal = iRow
				break
			}
		}
	}
	if (trim(iVal).length != 0)
	{
		alert("Please Fill in the Order")
		ival=""
		return false;
	}
	return true;
}

//CHECKING ENTER IN THE PAGE
function fncCheckEnter() 
{    
	if (event.keyCode == 13) 
	{        
		event.cancelBubble = true;
		event.returnValue = false;
    }
} 

//DISABLE ENTER KEY FOR THE PAGE AND ENABLED IT FOR TEXTAREA 
function fncCheckEnterWithMultiLine(frmId)
{
	if (frmId.document.activeElement.type != "textarea")
		if (event.keyCode == 13) 
		{ 
			event.cancelBubble = true;
			event.returnValue = false;
		}	
	return false;
}

//FUNCTION TO OPEN DETAIL WINDOW
function fncOpenDetails(strUrl,sparamv)
{
	PopUp1=window.open(strUrl,"Lookup",sparamv);	
	PopUp1.focus();	
	
}

//TO SHOW REPORT
function fncShowPrintOriginal(strScrName,strMnuName,strReportId,strRptSrvr,strCompanyInfo)
{
	var strSId,strRpt,strQuery,sparamv,winOpen,strWin;
	
	//GETING REPORT SERVER
	strWin="https://"+strRptSrvr+"/Reports/"+strScrName+"?mnuName="+escape(strMnuName)+"&ReptId="+strReportId+"&strCompanyInfo="+escape(strCompanyInfo);
	
	if (screen.width == 800)
	{
		sparamv	= "toolbar=yes,menubar =yes,width=785,height=450,left=0,top=0,location=no,directories=no,status=yes,scrollbars=yes,resizable=yes,max=yes";
	}
	if (screen.width>800)
	{
		sparamv	= "toolbar=yes,menubar =yes,width=1010,height=620,left=0,top=0,location=no,directories=no,status=yes,scrollbars=yes,resizable=yes,max=yes";
	}
	
	winOpen=window.open(strWin,"Reports",sparamv);
	winOpen.focus();									
	return false;
}

function fncShowPrint(strScrName,strMnuName,strReportId,strRptSrvr,strCompanyInfo)
{
	
	var strSId,strRpt,strQuery,sparamv,winOpen,strWin;	
	
	//strWin="http://"+strRptSrvr+"/Reports/"+strScrName+"?mnuName="+escape(strMnuName)+"&ReptId="+strReportId+"&strCompanyInfo="+escape(strCompanyInfo);
	strWin = strScrName+"?mnuName="+escape(strMnuName)+"&ReptId="+strReportId+"&strCompanyInfo="+escape(strCompanyInfo);
	
	if (screen.width == 800)
	{
		sparamv	= "toolbar=yes,menubar =yes,width=785,height=450,left=0,top=0,location=no,directories=no,status=yes,scrollbars=yes,resizable=yes,max=yes";
	}
	if (screen.width>800)
	{
		sparamv	= "toolbar=yes,menubar =yes,width=1010,height=620,left=0,top=0,location=no,directories=no,status=yes,scrollbars=yes,resizable=yes,max=yes";
	}		
	winOpen=window.open(strWin,"Reports",sparamv);
	winOpen.focus();									
	return false;
}

function fncShowAdhocDetails(strTemplateId, strAdhocNumber, strUniqueId, strStage)
{
	
	var strSId,strRpt,strQuery,sparamv,winOpen,strWin;
	
	//GETING REPORT SERVER
	strWin="../Transactions/frmTAdhocDetails.aspx?QsTemplateId=" + strTemplateId + "&QsAdhocNo="+ strAdhocNumber  + "&AdhocUniqueId="+ strUniqueId  + "&AdhocStageId="+ strStage
	
	if (screen.width == 800)
	{
		sparamv	= "toolbar=yes,menubar =yes,width=785,height=450,left=0,top=0,location=no,directories=no,status=yes,scrollbars=yes,resizable=yes,max=yes";
	}
	if (screen.width>800)
	{
		sparamv	= "toolbar=yes,menubar =yes,width=1010,height=620,left=0,top=0,location=no,directories=no,status=yes,scrollbars=yes,resizable=yes,max=yes";
	}
	
	winOpen=window.open(strWin,"Reports",sparamv);
	winOpen.focus();									
	return false;
}

	//SHOW HELP
	function gfncShowHelp(Scr)
	{
		var PopUp
		//var winl = (screen.width - 780) / 2;
		//var wint = (screen.height - 400) / 2;
		
		var winl = (screen.width / 2) - 300;
		var wint = (screen.height / 2) - 200;
		
		//PopUp= window.open("../Help/frmHelp.aspx?ScreenId="+Scr,"OMISHelp","top="+wint+",left="+winl+",height=400,width=600,scrollbars=yes,toolbar=no,menubar=no,location=no,resizable=yes,max =yes")
		PopUp= window.open("../Help/frmHelpIndex.aspx?ScreenId="+Scr,"OMISHelp","top="+wint+",left="+winl+",height=400,width=600,scrollbars=yes,toolbar=no,menubar=no,location=no,resizable=yes,max =yes")
		PopUp.focus()
		return false;
	}

//...............................  E N D  ..................................................

//Spread Related functions
	function fncDelAll(FpSpread,iCol)
	{
		var Spread = document.all(FpSpread);
		
		var count 
		var totalRow
		count=0
		totalRow=0
		
		for(var sprRow=0;sprRow<Spread.RowCount-1;sprRow++)
		{				
			if (Spread.GetValue(sprRow,0)!='')
			{
				totalRow=totalRow+1
				if (Spread.GetValue(sprRow,iCol)==1)
				{
					count=count+1
				}
			}
		}
		
		if (totalRow==count)
		{
			return false;		
		}
		return true;
	}
	
//..........................................................................................
//SPREAD COLUMN CHECK DUPLICATE IGNORING IF IT IS CHECKED IN THE CHECKBOX
//..........................................................................................	
function fncChkMultiDuplicateCheckBox(sprName,iCol,iCol1,iCol2,iColCount,iColIgnore, sprMode)
{
	var sprSpread = sprName
	var checkCount = 0

	if (sprMode== '')
	{
		if(sprSpread.ActiveCol == iCol)
		{
			var MaxRow = sprSpread.RowCount - 2
			var CurrRow = sprSpread.ActiveRow
			var strValue = sprSpread.GetValue(CurrRow,iCol)
			var strIgnore = sprSpread.GetValue(CurrRow,iColIgnore)
			strValue = strValue.toUpperCase()
			if (trim(strValue).length > 0)
			{
				//IGNORE
				if (strIgnore==false)
				{				
					for(var iRow=0;iRow<=MaxRow;iRow++)
					{
						if (iRow != CurrRow)
						{
							var strSubValue = sprSpread.GetValue(iRow,iCol)
							if (trim(strSubValue).length > 0)
							{
								strSubValue = strSubValue.toUpperCase()
							
								if (strValue == strSubValue)
								{
									var strIgnore = sprSpread.GetValue(iRow,iColIgnore)
									if (strIgnore == false)
									{									
										var iCount = parseInt(iRow) + 1
										alert(strSubValue + ' already exists ' + ' Duplicate in line number ' + iCount )
										for (var iColClear=0;iColClear<=iColCount;iColClear++)
										{
											sprSpread.SetValue(CurrRow,iColClear,"",true)
										}
										return false
									}//endif	
								}//endif
							}//endif	
						}//endif
					}//endfor
				}//endif
			}//endif
		}//endif
		return true
	}//endif	
	else
	{		
		var MaxRow = sprSpread.RowCount - 2
		for(var jRow=0;jRow<=MaxRow;jRow++)
		{		
			var strIgnorePrimary = sprSpread.GetValue(jRow,iColIgnore)
		
			var strValue = sprSpread.GetValue(jRow,iCol)
			var strValue1 = sprSpread.GetValue(jRow,iCol1)
			var strValue2 = sprSpread.GetValue(jRow,iCol2)
			
			strValue = strValue.toUpperCase()
			strValue1 = strValue1.toUpperCase()
			
			if (trim(strValue).length > 0)
			{
				///IGNORE 
				if (strIgnorePrimary==false)
				{
					for(var iRow=0;iRow<=MaxRow;iRow++)
					{
						if (jRow != iRow)
						{
							//alert(jRow + "+" + iRow)
							var strSubValue = sprSpread.GetValue(iRow,iCol)
							var strSubValue1 = sprSpread.GetValue(iRow,iCol1)
							var strSubValue2 = sprSpread.GetValue(iRow,iCol2)
							var strIgnoreSecondary2 = sprSpread.GetValue(iRow,iColIgnore)
							
						  if (strIgnoreSecondary2==false)
						  {
							if (trim(strSubValue).length > 0)
							{								
								strSubValue = strSubValue.toUpperCase()
								strSubValue1 = strSubValue1.toUpperCase()
								//alert(strSubValue1 + "+" + strValue1 + "+" + strSubValue2)								
								if ((strValue == strSubValue) && (strValue1 == strSubValue1))
								{	
									var strIgnoreSecondary = sprSpread.GetValue(iRow,iColIgnore)
									if (((strIgnorePrimary == true)&&(strIgnoreSecondary == true))||((strIgnorePrimary == false)&&(strIgnoreSecondary == false)))
									{									
										var iCount = parseInt(iRow) + 1
										alert(strSubValue + ' already exists ' + ' Duplicate in row ' + iCount )
										/*										
										for (var iColClear=0;iColClear<=iColCount;iColClear++)
										{
											sprSpread.SetValue(iRow,iColClear,"",true)
										}
										*/										
										return false
									}// endif	
								}	
								else if((strValue == strSubValue) && (trim(strValue2).length==0))
								{	//Empty End Dates
									if((checkCount!=0))
									{
										//alert(strValue + "+" + strSubValue + "+" + strValue2 + "+" + iRow + "+" + strValue1)
										var strIgnoreSecondary = sprSpread.GetValue(iRow,iColIgnore)
										if (((strIgnorePrimary == true)&&(strIgnoreSecondary == true))||((strIgnorePrimary == false)&&(strIgnoreSecondary == false)))
										{
											var iCount = parseInt(iRow) + 1
											alert('Value ' + strSubValue + ' already exists ' + ' with empty end date in row ' + (jRow + 1) )
											return false
										}// endif											
									}
									else
									{
										checkCount = parseInt(checkCount) + 1
									}
								}//endif
								
								if((strValue == strSubValue) && (trim(strSubValue2).length > 0) )
								{	//overlaping dates									
									if(fncCompareDates(strSubValue1,strValue1)==true)									
									{
										if(fncCompareDates(strValue1, strSubValue2)==true)
										{
											alert(strValue1 + ' is in between already selected date range in row ' + (iRow + 1) )
											return false;
										}										
									}
									
								}//endif								
							}//endif	
						  }
						}//endif
					}//end for Child
				}//end if
			}//end if
		}//endfor Parent	
		return true				
	}//endif
}//endfunction

function fncShowDetails(strURL)
{
	var strColHead; 
	var strColField; 
	var strControl;
	var newX;
	var newY;	
	var strQuery;		
	var intResolution;
	var sparamv;
	var rpath;
			
	intResolution = screen.width;	
	
	if(intResolution==800)
	{		
		newX = 0;
		newY = 0;
		
		w = (screen.width)* (65/100)
		h = (screen.height)* (80/100)
		
		var winl = (screen.width - w) / 2;
		var wint = (screen.height - h) / 2;
		sparamv = 'height='+h+',width='+w+',top='+wint+',left='+winl+'resizable=0,scrollbars=1'
		//sparamv	= "width=" + lookUpWidth + ",height =" + lookUpHeight + ", toolbar=no,location=no,directories=no,status=no,resizable=no,max=no,screenX=" + newX + ",screenY=" + newY + ",left=400,top=300";
	}
	
	if(intResolution >=1024)
	{
		newX = 0;
		newY = 0;
		w = (screen.width)* (70/100)
		h = (screen.height)* (50/100)
				
		var winl = (screen.width - w) / 2;
		var wint = (screen.height - h) / 2;		
		sparamv = 'height='+h+',width='+w+',top='+wint+',left='+winl+'resizable=0,scrollbars=1'
		//sparamv	= "width=" + lookUpWidth + ",height =" + lookUpHeight + ", toolbar=no,location=no,directories=no,status=no,resizable=no,max =no,screenX=" + newX + ",screenY=" + newY + ",left=450,top=350";
	}			
	strURL = strURL 
	//window.open(strURL)

	window.open(strURL,"ProductDetails",sparamv);
}
 
function fncViewAccounts()
       {
       var strSId,strRpt,strQuery,sparamv,winOpen,strWin;
			
			strWin = "frmAccountsView.aspx";
			
			if (screen.width == 800)
			{
				sparamv	= "toolbar=no,menubar =no,width=710,height=350,left=150,top=150,location=no,directories=no,status=no,scrollbars=yes,resizable=no,max=no";
			}
			if (screen.width>800)
			{
				sparamv	= "toolbar=no,menubar =no,width=710,height=275,left=250,right=250, top=220,location=no,directories=no,status=no,scrollbars=yes,resizable=no,max=no";
			}		
			
			winOpen=window.open(strWin, "", sparamv);
       }
       
    function OnMouseOverSignOut(obj)
      {
       obj.style.textDecoration='underline';
      }
      
    function OnMouseLeaveSignOut(obj)
      {
       obj.style.textDecoration='none';
      } 
      function fncPrint(strURL,Name,strProperties)
        {
          
	        window.open(strURL,Name,strProperties);
        }
     
 function isDoubleOnly(e)
    {   
        if((e.keyCode >= 48 && e.keyCode <= 57) || e.keyCode==46 || e.keyCode==8)
			{					
			return true;	
			}
			else
			{
			return  false;  		
			}			
    }

 function isNumerOnly(e)
    {
        if((e.keyCode >= 48 && e.keyCode <= 57) || e.keyCode==8)
			{
			return  true;
			}
			else
			{
			return false;
			}
    }
    
function showDialog()
{
strReturn=window.showModalDialog('frmConfirmation.aspx',null,'status:no;dialogWidth:300px;dialogHeight:1;dialogHide:true;help:no;scroll:no');
window.document.getElementById('txtHConfirmFlag').value=strReturn;
if(typeof strReturn=='undefined')
	{
		return false;
	}
else
	{			
		return true;
	}
}


 function isValidEmail(str)
  {
               
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		    return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		      return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		       return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		   
		    return false
		 }

 		 return true					
	}


function fncViewFare(qryValue)
       {
       var strSId,strRpt,strQuery,sparamv,winOpen,strWin;
			
			strWin = "frmFareDetailPopup.aspx?"+qryValue;
			
			if (screen.width == 800)
			{
				sparamv	= "toolbar=no,menubar =no,width=710,height=350,left=150,top=150,location=no,directories=no,status=no,scrollbars=yes,resizable=no,max=no";
			}
			if (screen.width>800)
			{
				sparamv	= "toolbar=no,menubar =no,width=710,height=275,left=250,right=250, top=220,location=no,directories=no,status=no,scrollbars=yes,resizable=no,max=no";
			}		
			
			winOpen=window.open(strWin, "", sparamv);
       }
       
       
   
