/* =====================================================
Name:	check1()
@param:  	chkstr :String
===================================================== */
function checkLen(chkstr,len){
	
	if(chkstr.length < len ){
		return true;
	}else{
		return false;
	}
}


/*
	pops up window in the middle of the screen
*/

function OpenWindow(mypage, myname, w, h, scroll){
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
	win = window.open(mypage, myname, winprops)
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

function OpenWin(mypage, myname,prop){
	
	win = window.open(mypage, myname, prop)
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

/*
returns -1 if date1 < date2
returns 1 if date1 = date2
returns -2 if date1 > date2
returns -3 if error
*/
function dateCompare(date1,date2){

		var strDate1	 = "";
		var strDate2	 = "";
		var strDay = "";
		var strMon = "";
		var strYear = "";
		var strTmp = "";
		
		if ((date1 != "") && (date1.indexOf("/") > -1)){
			strDay = date1.substring(0,date1.indexOf("/"));
			strTmp = date1.substring(date1.indexOf("/")+1);
			strMon = strTmp.substring(0,strTmp.indexOf("/"));
			strTmp = strTmp.substring(strTmp.indexOf("/")+1);
			strYear = strTmp;
			strDate1 = strMon + "/" +strDay+ "/" + strYear; 
		}

		if ((date2 != "") && (date2.indexOf("/") > -1)){
			strDay = date2.substring(0,date2.indexOf("/"));
			strTmp = date2.substring(date2.indexOf("/")+1);
			strMon = strTmp.substring(0,strTmp.indexOf("/"));
			strTmp = strTmp.substring(strTmp.indexOf("/")+1);
			strYear = strTmp;
			strDate2 = strMon + "/" +strDay+ "/" + strYear; 
		}

	var Dt1 = Date.parse(strDate1);
	var Dt2 = Date.parse(strDate2);
	
	if(Dt1 < Dt2 ){
		return -1;
	}
	else if(Dt1 == Dt2 ){
		return 1;
	}
	else if(Dt1 > Dt2 ){
		return -2;
	}
	return -3;
}



/**
 * Resets all the elements in the form of a page. 
 * The form Index needs to be specified. If there is only
 * one form in your page then the index is 0. 
 */
function formresetter(formIndex){
	elementsSize = document.forms[formIndex].elements.length;
	//alert(elementsSize);
	optionsSize = 0;
	for(i=0; i<elementsSize; i++){
		//alert("Name = "+document.forms[formIndex].elements[i].name+" AND Value = "+document.forms[formIndex].elements[i].name);
		if (document.forms[formIndex].elements[i].type == "text")
			document.forms[formIndex].elements[i].value="";
		if (document.forms[formIndex].elements[i].type == "select-one")
			document.forms[formIndex].elements[i].selectedIndex=-1;
		if (document.forms[formIndex].elements[i].type == "select-multiple")
			document.forms[formIndex].elements[i].selectedIndex=-1;
		if ((document.forms[formIndex].elements[i].type == "radio") || (document.forms[formIndex].elements[i].type == "checkbox"))
			document.forms[formIndex].elements[i].checked=false;
	}
}

function selAll(formIndex,formName,parentChkBox, childChkBox)
{
	
	  var Obj=eval("document."+formName+"."+parentChkBox);
	  var elementsSize = document.forms[formIndex].elements.length;
	  if (Obj.checked)
	  {
		for(i=0; i<elementsSize; i++)
		{
			if (document.forms[formIndex].elements[i].type == "checkbox")
			{
				if ((document.forms[formIndex].elements[i].name).indexOf(childChkBox) >= 0)
				{
					document.forms[formIndex].elements[i].checked = true;
				}
			}
		}
	  }
	  else 
	  {
		for(i=0; i<elementsSize; i++)
		{
			if (document.forms[formIndex].elements[i].type == "checkbox")
			{
				if ((document.forms[formIndex].elements[i].name).indexOf(childChkBox) >= 0)
				{
					document.forms[formIndex].elements[i].checked = false;
				}
			}
		}
	  }
}


/**
 * Resets all the elements in the form of a page. 
 * The form Index needs to be specified. If there is only
 * one form in your page then the index is 0. 
 */
function resetter(formIndex, limit){
	elementsSize = document.forms[formIndex].elements.length;
	//alert(elementsSize);
	optionsSize = 0;
	for(i=0; i<limit; i++){
		//alert("Name = "+document.forms[formIndex].elements[i].name+" AND Value = "+document.forms[formIndex].elements[i].name);
		if (document.forms[formIndex].elements[i].type == "text")
			document.forms[formIndex].elements[i].value="";
		if (document.forms[formIndex].elements[i].type == "password")
			document.forms[formIndex].elements[i].value="";
		if (document.forms[formIndex].elements[i].type == "select-one")
			document.forms[formIndex].elements[i].selectedIndex=-1;
		if (document.forms[formIndex].elements[i].type == "select-multiple")
			document.forms[formIndex].elements[i].selectedIndex=-1;
		if ((document.forms[formIndex].elements[i].type == "radio") || (document.forms[formIndex].elements[i].type == "checkbox"))
			document.forms[formIndex].elements[i].checked=false;
	}
}

/**
 * Resets all the elements in the form of a page. 
 * The form Index needs to be specified. If there is only
 * one form in your page then the index is 0. 
 */
function limitedresetter(formIndex, from,to){
	elementsSize = document.forms[formIndex].elements.length;
	//alert(elementsSize);
	optionsSize = 0;
	for(i=from; i<to; i++){
		//alert("Name = "+document.forms[formIndex].elements[i].name+" AND Value = "+document.forms[formIndex].elements[i].name);
		if (document.forms[formIndex].elements[i].type == "text")
			document.forms[formIndex].elements[i].value="";
		if (document.forms[formIndex].elements[i].type == "password")
			document.forms[formIndex].elements[i].value="";
		if (document.forms[formIndex].elements[i].type == "select-one")
			document.forms[formIndex].elements[i].selectedIndex=-1;
		if (document.forms[formIndex].elements[i].type == "select-multiple")
			document.forms[formIndex].elements[i].selectedIndex=-1;
		if ((document.forms[formIndex].elements[i].type == "radio") || (document.forms[formIndex].elements[i].type == "checkbox"))
			document.forms[formIndex].elements[i].checked=false;
	}
}

// This function will set the directional parameters for 
// necessary page action and workflow.
function prepareToSubmit(exec, subexec, preexec, mode){
		window.document.frm.EXEC.value=exec;
		window.document.frm.SUBEXEC.value=subexec;
		window.document.frm.PREEXEC.value=preexec;
		window.document.frm.MODE.value=mode;
}

	/* ======================================================================
	Function : trimString()
	Input: str (string): the string to be trimed
	Retrieval: A String with no leading and traling spaces
	Explaination: this function removes all leading and traling spaces
	========================================================================== */
	function trimString (str) 
	{
	  str = this != window? this : str;
	  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
	}


	/* ======================================================================
	Function : isEmpty()
	Input: Str (string): string to be checked whether it is empty or not
	Retrieval: true : OK (not empty)
			   false : NG (string is empty)
	Explaination: the string is checked whether it is empty or not
	========================================================================== */

  function isEmpty(Str)
  {
		if(Str.length==0)
		{
			return true;
		}
		else
		{
			return false;
		}
	}

   /* ======================================================================
	Function : isZero()
	Input: Num (number): number to be checked whether it is 0 or not
	Retrieval: true : OK (not 0)
			   false : NG (number is 0)
	Explaination: the Num is checked whether it is 0 or not
	========================================================================== */

	function isZero(Num)
	{
		if(!isNaN(Num))
		{
			if(Num <= 0)
			{
				return true;
			}
		}
		return false;
	}

	/* ======================================================================
	Function : isCorrectLength()
	Input: Str (string): string to be checked
	Retrieval: true : OK (string length equals string len)
			   false : NG ()
	Explaination: checks whether input string's length equals string's len
	========================================================================== */
	function isCorrectLength(Str, Len)
	{
		if(trimString(Str).length <= Len)
		{
			return true;
		}
		else
		{
			return false;
		}
	}


	/* ======================================================================
	Function : check_Date()
	Input: firstdate (string): first date string in dd/mm/yyyy format
		   seconddate (string): second date string in dd/mm/yyyy format
	Retrieval: true : firstdate less than or equal to the second date
			   false : firstdate greater than seconddate
	Explaination: checks whether firstdate is greater than seconddate or not
	========================================================================== */
	function check_Date(firstdate,seconddate)
	{
		date=firstdate;
		year=date.substring(date.lastIndexOf('/')+1,date.length);
		month=date.substring(date.indexOf('/')+1,date.lastIndexOf('/'));
		day=date.substring(0,date.indexOf('/'));
		date=month+"/"+day+"/"+year;
		alert(date);
		date1=seconddate;
		year=date1.substring(date1.lastIndexOf('/')+1,date1.length);
		month=date1.substring(date1.indexOf('/')+1,date1.lastIndexOf('/'));
		day=date1.substring(0,date1.indexOf('/'));
       	date1=month+"/"+day+"/"+year;
		alert(date1);
		if ( Date.parse(date) > Date.parse(date1) )
		{
			return false;
		}

		return true;
	}
	/* ======================================================================
	Function : check_Date1()
	Here   'yyyy' converting to 'yy'
	Input: firstdate (string): first date string in dd/mm/yyyy format
		   seconddate (string): second date string in dd/mm/yyyy format
	Retrieval: true : firstdate less than or equal to the second date
			   false : firstdate greater than seconddate
	Explaination: checks whether firstdate is greater than seconddate or not
	========================================================================== */
	function check_Date1(firstdate,seconddate)
	{
		date=firstdate;
		year=date.substring(date.lastIndexOf('/')+1,date.length);
		var lth_year=year.length;
		if(lth_year==4){
		year=year.substr(2,5);
		//alert(year);
		}
		month=date.substring(date.indexOf('/')+1,date.lastIndexOf('/'));
		day=date.substring(0,date.indexOf('/'));
		date=month+"/"+day+"/"+year;
		//alert(date);
		date1=seconddate;
		year=date1.substring(date1.lastIndexOf('/')+1,date1.length);
		month=date1.substring(date1.indexOf('/')+1,date1.lastIndexOf('/'));
		day=date1.substring(0,date1.indexOf('/'));
        var lth_year=year.length;
		if(lth_year==4){
		year=year.substr(2,5);
		}
		date1=month+"/"+day+"/"+year;
		//alert(date1);
		if ( Date.parse(date) > Date.parse(date1) )
		{
			return false;
		}

		return true;
	}

		function	(number,backZeros){
		var aftrbeforeDecimal;
		var newNumber;
		var zero="0";
		if(number == '')
			return "false";
		if(isNaN(number)==false){
			if(number.indexOf(".")!=-1){
				newNumber=number.split(".");
				if((newNumber[1].length>backZeros)){
					alert("Number should be in valid Format");
					return "false";
				}else{
				newNum=appendZero(newNumber[1],backZeros);
				newNumber=newNumber[0]+"."+newNum;
				return newNumber;
				}
			}else{
				for(i=1;i<=backZeros-1;i++)
				{
					zero+="0";
				}
				newNumber=number+"."+zero;
				return newNumber;
			}
		}
		else{
			alert("Please enter a Number");
			return "false";
		}
	}

	function formatPercent(number,frontZeros,backZeros){
		var lenbeforeDecimal;
		var aftrbeforeDecimal;
		var newNumber;
		var zero="0";
		if(number == '')
			return "false";

		if(isNaN(number)==false)
		{
			if(number.indexOf(".")!=-1)
			{
				newNumber=number.split(".");
				if((newNumber[0].length>frontZeros))
				{
					alert("Number should be in valid Format");
					return "false";
				}
				
				if((newNumber[0]==""))
				{
					newNumber[0]  = "0"

				}
				
				if((newNumber[1].length>backZeros))
				{
					alert("Number should be in valid Format");
					return "false";
				
					
				}
				
				
				else
				{

				newNum=appendZero(newNumber[1],backZeros);
			
				newNumber=newNumber[0]+"."+newNum;
				return newNumber;
				}
			}else{
				if(number.length > frontZeros){
					alert("Number cannot have more than "+frontZeros+" digits before the decimal.");
					return "false";
				}
				for(i=1;i<=backZeros-1;i++)
				{
					zero+="0";
				}
				newNumber=number+"."+zero;
				return newNumber;
			}
		}
		else{
			alert("Please enter a Number");
			return "false";
		}
	}


	function appendZero(num,bkZeros){
		var appendZeros;
		var zero ="0";
		var numLength=num.length;
		if (numLength<bkZeros){
			appendZeros=bkZeros-numLength;
			for(i=1;i<=appendZeros-1;i++){
			zero+="0";
			}
			return num=num+zero;
		}
		else{
			return num;
		}
	}


	function removeCommas(val){
		while(true){
			if (val.indexOf(',') >= 0)
				val = val.replace(",","");
			else
				return val;
		}
		return val;
	}

	function callCommas(obj, frontZeros, backZeros){
		number = obj.value;
		number = removeCommas(number);
		if (isNaN(number)){
			alert(" Please enter number. ");
			obj.value="0.00";
			return;
		}

		if (number < 0){
			alert(" Please enter positive number. ");
			obj.value="0.00";
			return;
		}
		
		number = formatPercent(number, frontZeros, backZeros);
		if (number != "false"){
			decimals = number.split(".")
			number = insertCommas(decimals[0])+"."+decimals[1]
			//document.commaTest.numText.value=number
			obj.value=number;
			//return number;
		}
	}

	function callCommasVal(number, frontZeros, backZeros){
		number = removeCommas(number);
		if (isNaN(number)){
			alert(" Please enter number. ");
			return "0.00";
			//return;
		}

		if (number < 0){
			alert(" Please enter positive number. ");
			return "0.00";
			//return;
		}
		
		number = formatPercent(number, frontZeros, backZeros);
		if (number != "false"){
			decimals = number.split(".")
			number = insertCommas(decimals[0])+"."+decimals[1]
			//document.commaTest.numText.value=number
			//obj.value=number;
			return number;
		}
		else
		{
			return "0.00";
		}
	}

	function insertCommas(number){
		var lastThreedigits
		var digitsBeflastthree

		if(number.length>3){
		lastThreedigits=number.substring(number.length-3,number.length)
		digitsBeflastthree=number.substring(0,number.length-3)
		var resultedNum="";
		if(number.search(",")==-1){
			if(digitsBeflastthree.length>=2){
				if(digitsBeflastthree.length%2==0){
					for(i=0;i<digitsBeflastthree.length;i++){
						if(i%2!=0){
							resultedNum=resultedNum+digitsBeflastthree.charAt(i)+",";
						}else{
							resultedNum=resultedNum+digitsBeflastthree.charAt(i);
						}
					}
				}else{
						for(i=0;i<=digitsBeflastthree.length;i++){
							if(i%2==0){
							resultedNum=resultedNum+digitsBeflastthree.charAt(i)+",";
							}else{
							resultedNum=resultedNum+digitsBeflastthree.charAt(i);
							}
						}
				}
			}else{
				if(digitsBeflastthree.length==1)
					resultedNum=digitsBeflastthree+","
				else
					resultedNum=digitsBeflastthree
			}
			}else{
				resultedNum=digitsBeflastthree
			}
			resultedNum=resultedNum+lastThreedigits
		}else{
			resultedNum=number
		}
			return resultedNum
	}

	/* ======================================================================
	Function : roundOff()
	Input: number : any number
		   precision : number of digits to be rounded after .
	Retrieval: number 
	Explaination: rounds the given value to the given precision
	========================================================================== */
	function roundOff(value, precision)
	{
		  value = "" + value //convert value to string
		  precision = parseInt(precision);

		  var whole = "" + Math.round(value * Math.pow(10, precision));

		  var decPoint = whole.length - precision;

		  if(decPoint != 0)
		  {
				 result = whole.substring(0, decPoint);
				 result += ".";
				 result += whole.substring(decPoint, whole.length);
		  }
		  else
		  {
				 result = whole;
		  }
		  return result;
	}


	/* ======================================================================
	Function : setCurrDate(obj)
	Input: Object : Text Field
	Retrieval: sets the text fields with Current date in DD/MM/YYYY format 
	========================================================================== */

function setCurrDate(obj){
		var objDate  = new Date();
		var strMon = objDate.getMonth() + 1;
		var strDate = objDate.getDate() + "/" + strMon + "/" + objDate.getYear()
		strDate = addZeros(strDate);	
		obj.value = strDate;
}

	/* ======================================================================
	Function : addZeros(strDate)
	Input: String : date in dd/mm/yyyy format
	Retrieval: appends 0 in front of Month and Date fields in case 
					Month or Date field is single digit
	========================================================================== */

function addZeros(strDate){
		var strDay = strDate.substring(0,strDate.indexOf("/"));
		if(strDay.length ==1)
			strDay = "0" + strDay;
		var strTmp = strDate.substring(strDate.indexOf("/")+1);
		var strMon = strTmp.substring(0,strTmp.indexOf("/"));
		if(strMon.length ==1)
			strMon = "0" + strMon;
		strTmp = strTmp.substring(strTmp.indexOf("/")+1);
		var strYear = strTmp;
		var strDate = strDay + "/" +strMon+ "/" + strYear; 
		return  strDate;
			
}

	/* ======================================================================
	Function : toExit()
	action : exits you out of the system  
	========================================================================== */

function toExit(){
		document.frm.EXEC.value="";
		document.frm.SUBEXEC.value="";
		document.frm.target = "_self";
		document.frm.submit();
}


	/* ======================================================================
	Function : exit()
	action : exits you out of the system  to the main menu
	========================================================================== */

function exit(){
	if(confirm("Do you want to exit ?")){
		document.frm.EXEC.value="MAINMENU";
		document.frm.SUBEXEC.value="";
		document.frm.target = "_self";
		document.frm.submit();
	}
}

	/* ======================================================================
	Function : exitClose()
	action : exits you out of the system
	========================================================================== */

function exitClose(){
	if(confirm("Do you want to exit ?")){
		window.close();
	}
}

/* ======================================================================
	Function : exitNormal()
	action : exits you out of the system  to the main menu without confirmation alert
	========================================================================== */

function exitNormal(){
		document.frm.EXEC.value="MAINMENU";
		document.frm.SUBEXEC.value="";
		document.frm.target = "_self";
		document.frm.submit();
}


	/**
	 *	This function will trim all white spaces
	 * from a given input string. All spaces in between 
	 * words will ALSO be trimmed. 
	 */
	function trim(str) 
	{
	  str = this != window? this : str;
	  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
	}

	/**
	 *	This function will convert the fields content to Upper case
	 */
	function setUC(fld){
		fld.value = fld.value.toUpperCase();
	}

	/**
	 *	This function will check if an input string is a 
	 * numeric value. Will return TRUE if input string is
	 * numeric. Else FALSE is returned. 
	 */
	function isANumber(str)
	{
		str=trim(str);
		if (isNaN(str))
			return false;
		else
		{
			if (str.length==0)
			{
				return false;
			}
			else
			{
				return true;
			}
		}
	}

	function isEmailID(str)
	{
		var char1 = str.indexOf('@')
		var char2 =  str.indexOf('.')
		
		if((char1==-1)||(char2==-1)||(char1>char2))
		{
			return true
		} 
		else
		{
			return false
		}

	}
	
	
	function blink_on()
	{
		blinker.style.color="black";
		timerOne=setTimeout("blink_off()", 1000);
	}

	function blink_off()
	{
		blinker.style.color="white";
		timerTwo=setTimeout("blink_on()", 1000);
	}

//start blink
//window.onerror = null;
 var bName = navigator.appName;
 var bVer = parseInt(navigator.appVersion);
 var NS4 = (bName == "Netscape" && bVer >= 4);
 var IE4 = (bName == "Microsoft Internet Explorer" 
 && bVer >= 4);
 var NS3 = (bName == "Netscape" && bVer < 4);
 var IE3 = (bName == "Microsoft Internet Explorer" 
 && bVer < 4);
 var blink_speed=500;
 var i=0;
 
if (NS4 || IE4) {
 if (navigator.appName == "Netscape") {
 layerStyleRef="layer.";
 layerRef="document.layers";
 styleSwitch="";
 }else{
 layerStyleRef="layer.style.";
 layerRef="document.all";
 styleSwitch=".style";
 }
}

//BLINKING
function Blink(layerName){
 if (NS4 || IE4) { 
 if(i%2==0)
 {
 eval(layerRef+'["'+layerName+'"]'+
 styleSwitch+'.visibility="visible"');
 }
 else
 {
 eval(layerRef+'["'+layerName+'"]'+
 styleSwitch+'.visibility="hidden"');
 }
 } 
 if(i<1)
 {
 i++;
 } 
 else
 {
 i--
 }
 setTimeout("Blink('"+layerName+"')",blink_speed);
}
//end blink
