/********************************************************************************
'Module Name			:	Sales Management Software
'Client Name			:	Claris Lifesciences Limited
'Design By			:	iCubix Infotech Limited
'********************************************************************************
'Form Name			:	COMMONSCRIPT
'Description			:	This Java Script is Used for Common Standard javascript used at each form level
'Developed By			:	Hema Mehta
'Creation Date			:	5/9/2002
'Modified By			:   Hema Mehta
'Modification Date		:	
'No. of Modification		:    
'********************************************************************************/
/** 
 *  List Of Functions.
 *  ==================
 *  1. EnableControls(blnEnable)	
 *	2. EnableCtrlNormal(objItem)
 *  3. ClearControls()				
 *  4. SetAction()					//
 *  5. ResetAction()				//
 *  6. Trim(strVal)					//
 *  7. chkNumber(fName, numValue, decValue, numsign)
 *  8. changeCase(strCase)			//
 *  9. keyCheck(objEvent,objObject, strType, strCase, strSpecialChars)		//
 * 10. textarealen(strTextArea, intMaxLimit)
 * 11. isEmail(objObject)
 * 12. formatDate(objCtrl)			//
 * 13. isDate(objCtrl, strFormat, blnChkSysDate, blnChkFinYr)				//
 * 14. chkWithFinYear(strDate, strBegin, strEnd)							//
 * 15. SetActiveColor()				//	
 * 16. ResetActiveColor()			//
 * 17. CompareDate(strFromDate, strToDate)	//
 * 20. fncCopy()					//
 * 21. fncPaste()					//
 * 22. isNumber(objObject, intLength, intDecimal) 
 * 23. fncCancelDrop() 				//
 * 24. CompareValue(intFromVal, intToVal)	//
 * 25. ChkDateRange(strDate,strFromDate, strToDate)
 * 26. Round(strNumber,intDecimal)	
 * 27. doSum(strSrc) :- Function which calculates Sum of all values in given Detail column..
 * 28. CalAppliDisc(strDisc,strAddDisc)
 * 29. CalcSaleValue(intProdRate,intQty,intDiscPrcnt,intSTPrcnt,intExcisePrcnt)
 * 30. GetDesc(strType, strCode, strRec_Stat)	//
 * 31. validateDate(strCo_Cd,strProgram_Id,strDoc_Type,intFin_Start,intFin_End,strDoc_Dt) //
 **/
var objLastActiveElement;
var eRWidth="310px";
var eRHeight="186px";
var eRPageTitle = "Exporting Report...";

//Reinitialize Clientside Session Timeout

/********FormId of Active Form ********/
var strFormName=document.location.href.substring(parseInt(document.location.href.lastIndexOf("/"))+1,document.location.href.indexOf(".",document.location.href.lastIndexOf("/"))).toUpperCase()
/******** Form wise list of Disabled Field for Normal User  ********/
var strFRMSMSMMCNFPROF="LOC_LONGNM,TRTRY_CD,LOC_SHRTNM,REF_COCD"
var strFRMSMSMMCUSTMR="CUST_LONGNM,CUST_SHRTNM,ASSO_CNFCD,ROLE_ID,TRTRY_CD,MCUST_CD,COMM_PRCNT,CNF_LIMIT"
var strFRMSMSMMSTKST="STKST_LONGNM,STKST_SHRTNM,ASSO_DISCD,TRTRY_CD";
var strFRMSMSMMTRNSPRT="TRNSP_LONGNM,TRNSP_SHRTNM";
var strFRMSMSMMPARPROD="PROD_GRPDESC,BUDGETED_RATE";
var strFRMSMSMMPRNPROD="PROD_NM,PROD_GRPCD,MPROD_CTGRYCD,MPROD_GROUPCD,CO_CD";
var strFRMSMSMMPRDRATE="PROD_SPRICE";
var strFRMSMSMMPRODUCT="PROD_SHRTDESC,PROD_TYPE,EXCISE_PRCNT,TX_FREEFLG,MODVAT_FLG";
var strFRMSMSMMDISCNT ="CO_CD,MCUST_TYPE";
/********Used as a Parameter For Messge 4001  ********/
var strNEWDOCMSG="\n\nThe document / voucher number generated is ";

function EnableControls(blnEnable){
	var intElementLen = document.forms[0].elements.length;
	for(intIdx=0;intIdx<intElementLen;intIdx++){
		var objItem=document.forms[0].item(intIdx)
		if (objItem.type != "hidden" && objItem.tagName != "FIELDSET") {
			if(blnEnable && parent.divROLE_TYPE.innerText=="N" && parent.ProgramMode.innerText=="EDIT") {
				try{
					if (blnAUDITFORM){
						EnableAuditNormal(objItem,blnEnable)
					}
				}catch(e){
					EnableCtrlNormal(objItem,blnEnable)
				}
		    }else {
				if(objItem.className.toLowerCase() =='ctl_disable_input')
		        	objItem.className = 'InputFont';
				else if(objItem.className.toLowerCase() =='ctl_disable_num')
		        	objItem.className = 'InputNumber';

				if(objItem.name == "txtPROD_CD") {
					if(parent.ProgramMode.innerText == "VIEW" && strSuccess){
						if (objItem.className.toLowerCase() != "description")
							objItem.readOnly = !blnEnable;
					}else if(parent.ProgramMode.innerText == "EDIT" && strSuccess){
		        		if (objItem.className.toLowerCase() != "description")
							objItem.readOnly = !blnEnable;
					}else 
		        		objItem.disabled = !blnEnable;
				} else{
					if (parent.ProgramMode.innerText == "VIEW"){
						if (objItem.className.toLowerCase() != "description" && objItem.className.toLowerCase() != "numdesc")
							objItem.disabled = !blnEnable;
					}else{
						objItem.disabled = !blnEnable;
					}
				}
			}
		}
	} // for
	
}

/**
 * This EnableControls Function used to enable or disable control when Normal logs in.
 **/
function EnableAuditNormal(objItem,blnEnable) {
	if(objItem.name == "txtPROD_CD") {
		objItem.readOnly = !blnEnable; 
	}else{
		objItem.disabled = !blnEnable;
	}
}
function EnableCtrlNormal(objItem,blnEnable) {
	try {

		if(gstrCurRecStts=="A" || (gstrCurRecStts == "" && strSuccess == "U")) {
					
			if (eval("str" + strFormName + ".indexOf('" + objItem.name.substring(3) + "',0)")!=-1){
				if (objItem.type == "button" || objItem.type == "select-one" || objItem.type == "checkbox"){
				 	objItem.disabled = blnEnable;
				}else{
					if(objItem.className.toLowerCase() =='inputfont')
						objItem.className = 'ctl_Disable_Input';
					else if(objItem.className.toLowerCase() =='inputnumber')
	   					objItem.className = 'ctl_Disable_Num';
				}
			}else{
				if(objItem.name == "txtPROD_CD") {
					
					objItem.readOnly = !blnEnable;}
	        		else {
					
					objItem.disabled = !blnEnable;}
			}
	   	}else{

				if(objItem.name == "txtPROD_CD") {
					objItem.readOnly = !blnEnable; 
				}else{
					objItem.disabled = !blnEnable;
				}
		}
	} catch(e) {}
}

/**
 * This ClearControls Function used to clear controls.
 **/

function ClearControls(){
	strSuccess="";
	var intElementLen = document.forms[0].elements.length;
	for(intIdx=0; intIdx<intElementLen; intIdx++) {
		var objItem=document.forms[0].item(intIdx)
		if (objItem.type == "text" || objItem.type == "password" ||  objItem.type == "textarea") 
			objItem.value="";
		else if (objItem.type == "select-one")
			objItem.selectedIndex=0;
		else if (objItem.type == "checkbox")
			objItem.checked=false;
	}
}

/**
 * Function to Set the Hidden  Action Field(hidAction) to 'SAVE'.
 **/
function SetAction(){
	document.forms[0].hidAction.value="SAVE";
}

/**
 * Function to Set the Hidden  Action Field(hidAction) to 'FETCH'.
 **/
function ResetAction(){
	document.forms[0].hidAction.value="FETCH";
}

/**
 * Function to trim white spaces.
 **/
function Trim(strVal) {
    var strMatch = strVal.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    result = (strMatch == null) ? "" : strMatch[1];
    return result;
}

/**
 * NUMERIC function...
 * Parameters : ControlName, TotalDigits, DigitsAfterDecimal, '+'/'-' (Optional)
 **/
 function chkNumber(objObject,intLength,intDecimal,strSign)	{
	var strValue ="";
	if(!intDecimal)
		intDecimal = 0;
	if (!strSign)
		strSign = "";

	//Allow digits and '.' if intDecimal > 0	
	if(!((event.keyCode >= 48 && event.keyCode <= 57 ) || (event.keyCode == 46 && intDecimal > 0) || (event.keyCode == 45 && strSign == '-'))) {
		event.returnValue= false;
		return false;
	}

	strValue = objObject.value
	if(event.keyCode==45 && strValue!=""){
		event.returnValue = false;
		return false;	
	}
	
	var intIndexOfDec = strValue.indexOf(".");
	//Don't Allow '.' Second time.
	if(intIndexOfDec != -1 && event.keyCode == 46) {
		event.returnValue = false;
		return false;	
	}
	
	var strAbsValue = Math.abs(strValue).toString()
	//Get Numeric Number	
	if (intDecimal==0){
		if (strAbsValue.length>= intLength){
			event.returnValue =false
			return false;
		}
	}

	//Don't allow TextValue's length , greater than defined length  Automatically set "."
	if(parseInt(intLength-intDecimal) == strAbsValue.length && event.keyCode != 46 && intIndexOfDec == -1){
		objObject.value = objObject.value + "."
		return true;
	}

	//Don't Allow any digit in between in the Textbox
	if (strValue.indexOf('-')!=-1)
		intLength ++;
	if(strValue.length > intLength){
		event.returnValue = false;
		return false;
	}	
	return;
}

/**
 * Change case while typing the data. 
 * Input vCase is 'U', 'L'
 **/
function changeCase(strCase) {
		if (event.keyCode>=97 && event.keyCode<=122) {
			if (strCase=='U')
				event.keyCode = event.keyCode-32;
		}
		else if (event.keyCode>=65 && event.keyCode<=90) {
			if (strCase=='L')
				event.keyCode = event.keyCode+32;
		}
	else if (event.keyCode==34) {
		event.keyCode = 0;
	}	
}



/**
 * Alphabetic and AlphaNumeric. 
 * Parameters: Object, "AL"/"AN"/"NM", "U"/"L", Special_Char_String.
 **/
function keyCheck(objEvent,objObject, strType, strCase, strSpecialChars) {
	
	var intKeycode, intLen;
	intKeycode=objEvent.keyCode;
	if(intKeycode == 13)
		return true;
	var strObjvalue=objObject.value;
	if (!strSpecialChars) 
		strSpecialChars="";
	if (!strCase)
		strCase="";
	if (!strType)
		strType="";

	intLen = strSpecialChars.length;
	if (intKeycode==34 && strSpecialChars.indexOf('D') != -1) // for the quotes.
			return true;
	if (intKeycode==39 && strSpecialChars.indexOf('S') != -1) // from the apostrophe.
			return true;

	if (strType == "AN") {
		if (!( (intKeycode>=65 && intKeycode<=90)  ||
		       (intKeycode>=97 && intKeycode<=122) ||
		       (intKeycode>=48 && intKeycode<=57)  ||
		       (intKeycode==32) )) { 
		    
		    var vcharAt= strSpecialChars.indexOf(String.fromCharCode(intKeycode))
			if (vcharAt==-1)
				event.keyCode=0;
		}
	}

	if (strType == "ANWS") {		//Alpha Numeric Without Space
		if (!( (intKeycode>=65 && intKeycode<=90)  ||
		       (intKeycode>=97 && intKeycode<=122) ||
		       (intKeycode>=48 && intKeycode<=57)  ||
		       (intKeycode==8) || (intKeycode==13) )) { 
		       	
			if(intLen != 0) 
				for(i=0; i<intLen; i++)
					if(strSpecialChars.charAt(i) == String.fromCharCode(intKeycode)) 
						return true;
			event.returnValue=false;
			objObject.value = strObjvalue;
			return false; 
		}
	}
	if (strType == "AL") {
		if (!( (intKeycode>=65 && intKeycode<=90)  ||
		       (intKeycode>=97 && intKeycode<=122) ||
		       (intKeycode==32) ) ) {
		    
		    var vcharAt= strSpecialChars.indexOf(String.fromCharCode(intKeycode))

			if (vcharAt==-1)
				event.keyCode=0;
		}
	}
	if (strType == "NM") {
		if (!( (intKeycode>=48 && intKeycode<=57)  ||
		       (intKeycode==32) )) { 

		    var vcharAt= strSpecialChars.indexOf(String.fromCharCode(intKeycode))
			if (vcharAt==-1)
				event.keyCode=0;
		}
	}
	if (strType == "PH") {
		if (! (intKeycode>=48 && intKeycode<=57)) { 
			event.keyCode=0
		}	
		
	}
	if (strType == "BL") {
		if (!(intKeycode==110 || intKeycode==121 || intKeycode==78 || intKeycode==89)) {
				event.keyCode=0
		}
	}
	if (strType == "") {
		if (!( (intKeycode>=65 || intKeycode<=90)  &&
		       (intKeycode>=97 || intKeycode<=122) &&
		       (intKeycode>=48 || intKeycode<=57)  &&
		       (intKeycode==32) )) { 
			
			var vcharAt= strSpecialChars.indexOf(String.fromCharCode(intKeycode))
			if (vcharAt==-1)
				event.keyCode=0;
		}
	}
	if(strCase == 'U')
		changeCase("U");
	else if(strCase == 'L')
		changeCase("L");
	
	return true;
}

/** 
 * Parameters: Textarea value, Maximum numbers of characters
 **/
function textarealen(strTextArea, intMaxLimit) {
	
	if(strTextArea.length > intMaxLimit-2  &&  event.keyCode == 13){
		event.returnValue =false;
	}	
	else if (strTextArea.length > intMaxLimit-1) {
		if(event.keyCode==9 || event.keyCode==40 || event.keyCode==39 || event.keyCode==38 || event.keyCode==37 || event.keyCode == 8 || event.keyCode == 36 || event.keyCode == 46   || (event.ctrlKey && event.keyCode==37) || (event.ctrlKey && event.keyCode==38) || (event.ctrlKey && event.keyCode==39) || (event.ctrlKey && event.keyCode==40) ){ }
		else {	event.returnValue =false; }
	}
}

/**
 * function validEmail to check the email validation
 * parameter : Object
 * return true or false
 **/
function isEmail(objObject) {
	if (window.parent.isMouseClicked) return;
	var regEmail, strValue;
	
	regEmail =/^([A-Za-z]{1})([A-Za-z0-9_.\-]*)([A-Za-z0-9]{1})(@)([A-Za-z0-9]{1})([A-Za-z0-9_.\-]*)([A-Za-z0-9]{1})(\.)([A-Za-z]{1})([A-Za-z]*)$/
 
	strValue = objObject.value;
	if (objObject.value == "") return true;
	
	if(! regEmail.test(strValue)) {
		alert("Invalid E-mail ID.\n\n Please enter correct and complete E-mail ID.");
		objObject.value=""
		objObject.focus();
		return false;
	}
	return true;
}
/**
 * function isYear to check the Year validation
 * parameter : Object
 * return true or false
 **/
function isYear(objObject) {
	var strValue;
	strValue = objObject.value;
	if (strValue == "") return true;
	if (strValue < 1900) {
		alert("Invalid Year.\n\n Please enter year >= 1900");
		objObject.value="";
		objObject.focus();
		return false;
	}
	return true;
}

/**
 * Function to FormatDate(in DD/MM/YYYY) while entering the date to be called in KeyPress.
 * parameter: Object
 **/ 
 
function formatDate(objCtrl,strFormat){
	if(!strFormat || strFormat=='')
		strFormat = "DD/MM/YYYY";
	
	if (strFormat == "DD/MM/YYYY"){
		if(event.keyCode>=47 && event.keyCode<=57)
			var strfldValue= objCtrl.value
		else
			event.keyCode=0
	}else if (strFormat == "MMYYYY"){
		if(event.keyCode>=48 && event.keyCode<=57)
			var strfldValue= objCtrl.value
		else
			event.keyCode=0
	}
/*
	if(event.keyCode>=47 && event.keyCode<=57){
		var strfldValue= objCtrl.value
	}
	else{
		event.keyCode=0
	}
*/
}

/**
 * Function to Check Valid Date in DD/MM/YYYY and MMYYYY format.
 * paramter: Object control and string of format.
 **/
function isDate(objCtrl, strFormat, blnChkSysDate, blnChkFinYr){
	if (window.parent.isMouseClicked) return;
	strDate = objCtrl.value
	if(!strFormat || strFormat=='')
		strFormat = "DD/MM/YYYY";
	if (!blnChkSysDate)
		blnChkSysDate = false;
	if (!blnChkFinYr)
		blnChkFinYr = false;

	try{
		strSYSDATE=strSYSDATE;
	}	catch(e){
		strSYSDATE="";
	}
	strFormat = strFormat.toUpperCase()
	if(strDate == "")
		return true;
	if (strFormat=="DD/MM/YYYY"){
		var strDatePat = /^(\d{1,2})(\/)(\d{1,2})(\/)(\d{4})$/;		
		var strMatchArr = strDate.match(strDatePat); // is the format ok?
		if (strMatchArr == null) { 
			alert("Invalid date is being entered. \n\nThe date should be in DD/MM/YYYY format.");
			objCtrl.value=""
			objCtrl.focus();
			return false;
		}
		strDay = strMatchArr[1]; // parse date into variables
 		strMonth = strMatchArr[3];
 		strYear = strMatchArr[5];

 		if (strMonth < 1 || strMonth > 12) { // check month range
			alert("Invalid date is being entered. \n\nThe date should be in DD/MM/YYYY format.");
			objCtrl.value=""
 			objCtrl.focus();
 			return false;
	 	}
		if (strDay < 1 || strDay > 31) {
			alert("Invalid date is being entered. \n\nThe date should be in DD/MM/YYYY format.");
			objCtrl.value=""
		 	objCtrl.focus();
		 	return false;
		}
		if ((strMonth==4 || strMonth==6 || strMonth==9 || strMonth==11) && strDay==31) {
			alert("Invalid date is being entered. \n\nThe date should be in DD/MM/YYYY format.");
			objCtrl.value=""
			objCtrl.focus();
		 	return false;
		}
		if (strMonth == 2) { // check for february 29th
		 	var isleap = (strYear % 4 == 0 && (strYear % 100 != 0 || strYear % 400 == 0));
		 	if (strDay>29 || (strDay==29 && !isleap)) {
				alert("Invalid date is being entered. \n\nThe date should be in DD/MM/YYYY format.");
				objCtrl.value=""
				objCtrl.focus();
		 		return false;
		 	}
		}
		if (strMonth.length ==1)
			strMonth = "0" + strMonth
		if (strDay.length ==1)
			strDay = "0" + strDay			

		if (strYear <= 0){
			alert("Invalid date is being entered. \n\nThe date should be in DD/MM/YYYY format.");
			objCtrl.value=""
			objCtrl.focus();
		 	return false;
		}

		strDate = strDay + "/" + strMonth + "/" + strYear
		objCtrl.value= strDate
		if(strDate.length < 10) {
			alert("Invalid date is being entered. \n\nThe date should be in DD/MM/YYYY format.");
			objCtrl.value=""
			objCtrl.focus();
			return false;
		}

		//checking date with System Date
		if (blnChkSysDate==true){
			if(CompareDate(strDate, strSYSDATE) == 1) {
				alert("Invalid date is being entered. \n\nThe date should either be current or a past date.");
				objCtrl.value=""
				if (gstrTYR_LOCK =='N')
					objCtrl.value=strSYSDATE;
				else
					objCtrl.value=''
				objCtrl.focus();
				return false;
			}
		}
		//checking date with Financial Year
		if (blnChkFinYr==true){
			if(!chkWithFinYear(strDate, strFYR_STRT,strFYR_END)) {
				parent.Error.showMessage(1026);
				objCtrl.value=""
				if (gstrTYR_LOCK =='N')
					objCtrl.value=strSYSDATE;
				else
					objCtrl.value=''
				objCtrl.focus();
				return false;
			}
		}		
	}
	else if (strFormat=="MMYYYY"){
		if (strDate.length <6){
			parent.Error.showMessage(1020, "MMYYYY");
			objCtrl.value=""
			objCtrl.focus();
			return false;
		}
		strDate = strDate.substr(0,2);
		if (strDate<"01" || strDate>"12") {
			parent.Error.showMessage(1020,"MMYYYY");
			objCtrl.value=""
			objCtrl.focus();
			return false;
		}
	}
	else if(strFormat=="YYYY-MM"){
		var strDatePat = /^(\d{4})(\-)(\d{1,2})$/;		
		var strMatchArr = strDate.match(strDatePat); // is the format ok?
		if (strMatchArr == null) { 
			parent.Error.showMessage(1020, "YYYY-MM");
			objCtrl.value=""
			objCtrl.focus();
			return false;
		}
		strYear = strMatchArr[1]; // parse date into variables
 		strMonth = strMatchArr[3];
		if (strMonth < 1 || strMonth > 12) {
			parent.Error.showMessage(1020,"YYYY-MM");
			objCtrl.value=""
			objCtrl.focus();
			return false;
		}
		strDate = strYear + "-" + strMonth ;
		objCtrl.value= strDate;
	}
	return true;
}

/**
* Function to Validate Date with Financial Year, BackDate, Current Date, Month Close
*/
function validateDate(strCo_Cd,strProgram_Id,strDoc_Type,strFin_Start,strFin_End,objDoc_Dt,blnBlankFlag){
var strCode;
var Err_Code;
if (!isDate(objDoc_Dt,'',false,false)) { 
				objDoc_Dt.value = '';
				return false; }
strCode = strCo_Cd + "," + strProgram_Id + "," + strDoc_Type + "," + strFin_Start + "," + strFin_End + "," + objDoc_Dt.value;

	if (GetDesc("GLOBAL_DATEVALIDATE", strCode, "('A')")) {
		Err_Code =	xmlDOM.getElementsByTagName("ERR_CODE").item(0).text;
		//If Not financial year error then Check for Future Date
		if (Err_Code != 1026 || Err_Code.length == 0) {
			if (!isDate(objDoc_Dt,'',true,false)) { 
			objDoc_Dt.value = '';
			return false; }
		}
		if (Err_Code.length > 0) {
			parent.Error.showMessage(Err_Code);
			if (blnBlankFlag) objDoc_Dt.value = '';
			objDoc_Dt.focus();
			return false;
		}
	}
	else{
		objDoc_Dt.value = '';		
		parent.Error.showMessage(1008);
		objDoc_Dt.focus();
		return false;
	}
return true;
}
/**
* Function to Validate Date with Financial Year, Current Date
*/
function validateCurrentDate(strCo_Cd,strProgram_Id,strDoc_Type,strFin_Start,strFin_End,strDoc_Dt){
var strCode;
var Err_Code;
//if (!isDate(objDoc_Dt,'',true,false)) { 
//	return false; }

strCode = strCo_Cd + "," + strProgram_Id + "," + strDoc_Type + "," + strFin_Start + "," + strFin_End + "," + strDoc_Dt;
//alert(strCode);
	if (GetDesc("GLOBAL_DATEVALIDATE", strCode, "('A')")) {
		Err_Code =	xmlDOM.getElementsByTagName("ERR_CODE").item(0).text;
		if (Err_Code.length > 0) {
			if (Err_Code == 1074 || Err_Code == 1026 || Err_Code == 1075 ||  Err_Code == 1035 ||  Err_Code == 1052){
				//objDoc_Dt.value = '';
				//objDoc_Dt.focus();
				return false;
			}
		}
	}
	else{
		//objDoc_Dt.value = '';		
		//objDoc_Dt.focus();
		return false;
	}
return true;
}
/**
 * Function to Check Date with Financial Year
 **/
function chkWithFinYear(strDate,strBegin,strEnd){	
	var intDate = parseInt(strDate.substring(6) + strDate.substring(3,5) + strDate.substring(0,2))
	var intBegin = parseInt(strBegin.substring(6) + strBegin.substring(3,5) + strBegin.substring(0,2))
	var intEnd = parseInt(strEnd.substring(6) + strEnd.substring(3,5) + strEnd.substring(0,2))
		
	if (intDate>=intBegin && intDate<=intEnd){
		return true;
	}else {
		return false;
	}
}

/**
 * Change Color on getting Focus...
 **/
function SetActiveColor(){
	try{
		if (event.srcElement.className.toLowerCase() =="description" ||  event.srcElement.className.toLowerCase() =="numdesc" || event.srcElement.className.toLowerCase() =="ctl_disable_input" || event.srcElement.className.toLowerCase() =="ctl_disable_num") 
			return false;
		if (event.srcElement.type == "text" || event.srcElement.type == "password" ||  event.srcElement.type == "textarea" ||  event.srcElement.type == "select" ) {
			//event.srcElement.style.backgroundColor = '#AFB4D7';
			objLastActiveElement=event.srcElement;
			//event.srcElement.style.color = 'White';
		}
	}catch(e){}
}

/**
 * Change Color on losing Focus...
 **/
function ResetActiveColor() {
	try{
		if (event.srcElement.className.toLowerCase() =="description"  ||  event.srcElement.className.toLowerCase() =="numdesc" || event.srcElement.className.toLowerCase() =="ctl_disable_input" || event.srcElement.className.toLowerCase() =="ctl_disable_num") 
		{
			return false;
		}	
		if (event.srcElement.type == "text" || event.srcElement.type == "password" ||  event.srcElement.type == "textarea") {
			event.srcElement.style.backgroundColor = 'White';
			
			event.srcElement.style.color = 'Black';
		}
	}catch(e){}
}

/**
 *  function to Compare Two Date 
 *  It will return -1 if first is less than Second
 *				   0 if Both are equal 
 *				   1 if first is greater than Second			
 **/
function CompareDate(strFromDate, strToDate) {
	
	var intFromDt = parseInt(strFromDate.substring(6) + strFromDate.substring(3,5) + strFromDate.substring(0,2))
	var intToDt = parseInt(strToDate.substring(6) + strToDate.substring(3,5) + strToDate.substring(0,2))
	if(intFromDt < intToDt)
		return -1;
	else if(intFromDt > intToDt	)
		return 1;
	else
		return 0;	
}
 
/**
 *  function to Given Date is between given Two Dates 
 *  It will return true - if Date fall in given Range
 *				   false - if Date doesn't fall in given Range
 **/
function ChkDateRange(strDate,strFromDate, strToDate){
	var intDate = parseInt(strDate.substring(6) + strDate.substring(3,5) + strDate.substring(0,2))
	var intFromDt = parseInt(strFromDate.substring(6) + strFromDate.substring(3,5) + strFromDate.substring(0,2))
	var intToDt = parseInt(strToDate.substring(6) + strToDate.substring(3,5) + strToDate.substring(0,2))

	if((intDate >= intFromDt) && (intDate <= intToDt))
		return true;
	else 
		return false;	
}
/**
 * do not allow Copy functionality
 *
 **/
function fncCopy(){
	if (!document.activeElement.Copy) 
		event.returnValue = false;
}

/**
 * do not allow Paste functionality
 *
 **/
function fncPaste(){
	if (!document.activeElement.Paste) 
		event.returnValue = false;
}

/**
 * To check the validity of the number.
 *
 **/
function isNumber(objObject, intLength, intDecimal) {
	if (window.parent.isMouseClicked) return;
	var intI, intDecPoint;
	var strString ="";
	intDecPoint = intLength-intDecimal;
	
	for(intI=0; intI<intDecPoint; intI++) 
		strString = strString + "9";	

	strString = strString + "."
	for(intI =0; intI < intDecimal; intI++)
		strString = strString + "9";

	if (Trim(objObject.value).length>0){
		if (isNaN(Math.abs(objObject.value))){
			objObject.value='';
			objObject.focus();
			return false;
		}
	}
	if(parseFloat(Math.abs(objObject.value)) > parseFloat(strString)) {
		parent.Error.showMessage(1012,strString);
		objObject.value=""
		objObject.focus();
		return false;
	}
	var intDecIdx = objObject.value.indexOf(".")
	if(intDecIdx !=-1 && objObject.value.substr(intDecIdx+1).length > intDecimal){
		parent.Error.showMessage(1012,strString);
		objObject.value=""
		objObject.focus();
		return false;
	}	
	return true;
}

/**
 * To Find of form controls making control array
 *
 **/
/*
function findIndex(intIndex){
	return intIndex;
}
*/
/**
 * To check the Restrict User Drag .
 *
 **/
function fncCancelDrop(){
	event.returnValue=false;
	event.cancelBubble=true;	
}

var xmlDOM = new ActiveXObject("Microsoft.XMLDOM"); 
/**
 *  Function to get the Description ...
 **/
 
function GetDesc(strType, strCode, strRec_Stat) {
	//alert ("Called");
	if(!strRec_Stat) strRec_Stat="";
	var fileName = "../../Include/genXMLDoc.asp?code=" + strCode + "&Q_ID=" + strType + "&Rec_Stat=" + strRec_Stat;
	xmlDOM.async = false;
	xmlDOM.load(fileName);
	try {
	if(xmlDOM.documentElement.selectSingleNode("//SESSIONOUT")) {
		parent.Error.showMessage(1002); // Session Time out...
		parent.close();
		return ;	
	}	
 	if(xmlDOM.documentElement.selectSingleNode("//RECORD"))
		{ //alert ("true");
		parent.ReInitSessionTimeOut();
		return true; }
 	else
		{ //alert ("false");
 		return false; }
	}

	catch(e) {
	}

}

/**
 *  Function to campare the two value ...
 **/
 
function CompareValue(intFromVal, intToVal){
	if (parseFloat(intFromVal) < parseFloat(intToVal))
		return -1;
	else if (parseFloat(intFromVal) > parseFloat(intToVal))
		return 1;
	else
		return 0;
		
}
/**
 *  Function to Round the value ...
 **/
 
function Round(intNumber,intDecimal) {
	intDecimal = (!intDecimal ? 2 : intDecimal);
	return Math.round(intNumber*Math.pow(10,intDecimal))/Math.pow(10,intDecimal);
}

// Function which calculates Sum of all values in given Detail column..
function doSum(strSrc) {
		var dblSum="0";
		var objAmt = document.forms[0].item(strSrc);
		if (objAmt.length){
			for (var intCnt=0; intCnt<objAmt.length; intCnt++) {
				if (! isNaN(parseFloat(objAmt(intCnt).value))) 
					dblSum =parseFloat(dblSum) + parseFloat(objAmt(intCnt).value);
			}	
		}else{
			if (! isNaN(parseFloat(objAmt.value))) 
				dblSum =parseFloat(objAmt.value);
		}
		return parseFloat(dblSum);	
	}

/**
 *  Function to calculate Applicable Discount based on Discount and addtional Discount...
 **/

function CalAppliDisc(intDisc,intAddDisc) {
	// [(Dis % + Add Dis %) - (Dis % * Add Dis%)/100]
	if (!intDisc)
		intDisc = 0;
	if (!intAddDisc)
		intAddDisc =0;
	intDisc = parseFloat(intDisc)
	intAddDisc = parseFloat(intAddDisc)

	var intAppDisc = (intDisc + intAddDisc) - ((intDisc * intAddDisc)/100)
	intAppDisc = Round(intAppDisc,5)
	return intAppDisc ; 
}
/**
 *  Function to calculate SOS value...
 **/

function CalcSaleValue(intProdRate,intQty,intDiscPrcnt,intSTPrcnt,intExcisePrcnt){
	var intDiscountAmt,intGrossAmt,intAssesibleAmt,intExciseAmt;
	var intCSTGSTAmt,intTotalAmt,intUnitPrice,intAmount=0.0;

	if(!intProdRate || intProdRate == 0 || isNaN(parseFloat(intProdRate)))
				return "0,0,0,0,0,0,0,0";
	intProdRate = parseFloat(intProdRate)
	
	if(!intQty || intQty == 0 || isNaN(parseFloat(intQty)))
		intQty = 0
		
	if(intDiscPrcnt || intDiscPrcnt != "")	{	
		if(! isNaN(parseFloat(intDiscPrcnt.value)))
			intDiscPrcnt  = 0
	}

	if(intSTPrcnt || intSTPrcnt != "")	{	
		if(! isNaN(parseFloat(intSTPrcnt.value)))
			intSTPrcnt = 0
	}	

	if(intExcisePrcnt || intExcisePrcnt != "") {
		if(! isNaN(parseFloat(intExcisePrcnt.value)))
			intExcisePrcnt = 0 
	}
	intDiscountAmt = parseFloat((intProdRate*intDiscPrcnt*intQty)/100)
	intGrossAmt =  parseFloat(intProdRate * intQty) - intDiscountAmt
	intAssesibleAmt =parseFloat(intGrossAmt /parseFloat(1 + parseFloat(intExcisePrcnt/100)))
	intExciseAmt = parseFloat((intAssesibleAmt * intExcisePrcnt)/100)
	intCSTGSTAmt = parseFloat((intGrossAmt * intSTPrcnt) /100)
	intTotalAmt = parseFloat(intGrossAmt + intCSTGSTAmt) 
 	intUnitPrice = intProdRate * (1+ (intExcisePrcnt/100)*(intDiscPrcnt/100))/(1+intExcisePrcnt/100)
	intAmount = intGrossAmt + intCSTGSTAmt
	return intDiscountAmt + "," + intGrossAmt + "," + intAssesibleAmt + "," + intExciseAmt + "," + intCSTGSTAmt + "," + intTotalAmt + "," + intUnitPrice + "," + intAmount;
}	

/**
 *  Function to display last query fire for database validation...
 **/
function showSQL(){
	try{
				alert(xmlDOM.getElementsByTagName("QUERY").item(0).text);
		}catch(e){
				alert("There is no Query return ");
		}

}
/**
 *  Function to disable Context menu ...
 **/
/*document.oncontextmenu = function(){ 
	event.cancelBubble = true 
	event.returnValue = false; 
	return false; 

}

document.onselectstart=function(){
//	window.document.selection.clear();  
	if (document.activeElement.type!="text" && document.activeElement.type!="textarea" && document.activeElement.type!="password"){
		event.returnValue =false;
		return false;
	}

} 
*/
function fncChkValid(){
	var blnRet =true;
	var objDocActive = document.activeElement 

	try{
		blnRet=objDocActive.onchange();
		if (blnRet==false){
			event.keyCode = 0;
			return false
		}
	}catch(e){}
	try{
		blnRet = objDocActive.onblur() 
		if (blnRet==false){
			event.keyCode = 0;
			return false
		}
	}catch(e){}
	return true;
}
/**
 *  Function to Display Help By pressing 'Ctrl + F' ...
 **/
var blnDown;
document.onkeydown = function() {
/*	if (event.keyCode==13)
		event.keyCode=9
*/
	if (event.keyCode==27){
		event.keyCode=null;
		event.returnValue=false;
		event.cancelBubble=true;
		return false;
	}
/*	if (event.ctrlKey==true && (event.keyCode==78 ||event.keyCode==82 )){ //Ctrl + 78 -> N ,82-> R  Restrict Refresh and New Window
		event.returnValue=false;
		event.cancelBubble=true;
		return false;
	}
*/
	if (event.altKey==true &&  (event.keyCode==39 ||event.keyCode==37 )){	//	alt+ -> key Press 
		event.returnValue=false;
		event.cancelBubble=true;
		return false;
	}

	blnDown=false;
	var blnEr=false;
	if (event.keyCode==113) {//F2 key Press for Add Record
		parent.addButton.onclick();
		blnDown=true;
	}else if (event.keyCode==114) {//F3 key Press for Edit Record
		parent.editButton.onclick();
		blnDown=true;
	}else if (event.keyCode==115) {//F4 key Press for Suspend Record
		if (!parent.suspendButton.disabled){
			if (!fncChkValid())
				return false;
		}
		if (parent.Operation(parent.suspendButton)==false){
			try{
			if (objLastActiveElement.value=="")
				objLastActiveElement.value=""
			}catch(e){}	
		}
		//parent.suspendButton.onclick();
		blnDown=true;
	}else if (event.keyCode==116) {//F5 key Press for Accept Record
		//nimish
		//if (!parent.acceptButton.disabled)
		//{
			//if (!fncChkValid())
			//return false;
		//}
		//if (parent.Operation(parent.acceptButton)==false)
		//{
		//	try{
			//if (objLastActiveElement.value=="")
				//objLastActiveElement.value=""
//			}catch(e){}	
		//}
		//parent.acceptButton.onclick();
	//	blnDown=true;
	}else if (event.keyCode==117) {//F6 key Press for View Record
		parent.viewButton.onclick();
		blnDown=true;
	}else if (event.keyCode==118) {//F7 key Press for Preview Record
		if (!parent.previewButton.disabled)
		{
			if (!fncChkValid())
			return false;
		}
		if (parent.Operation(parent.previewButton)==false)
		{
			try{
			if (objLastActiveElement.value=="")
				objLastActiveElement.value=""
			}catch(e){}	
		}
		//parent.previewButton.onclick();		
		blnDown=true;
	}else if (event.keyCode==119) {//F8 key Press for Delete Record
		parent.deleteButton.onclick();
		blnDown=true;
	}else if (event.keyCode==120) {//F9 key Press for Clear Record
		parent.clearButton.onclick();
		blnDown=true;
	}else if (event.keyCode==121) {//F10 key Press for Cancel Record
		parent.cancelButton.onclick();
		blnDown=true;
	}else if (event.keyCode==122 ){ //F11 key Press for Close Window
		blnDown=true;
		parent.closeButton.onclick();
		blnDown=true;
	}else if (event.ctrlKey==true &&  event.keyCode==9 ){	//	ctrl+tab key Press toggel Window
		parent.toggelWindow();
	}else if (event.ctrlKey==true && event.keyCode==81 ){	//  ctrl+Q key Press Show XML Query..
		parent.QueryButton.onclick();
		blnDown=true;
	}else if (event.ctrlKey==true && event.keyCode==80 ){	//  ctrl+P key Press Show XML Query..
		parent.printButton.onclick();
		blnDown=true;
	}
	if (blnDown==true){
		event.keyCode=null;
		event.returnValue=false;
		event.cancelBubble=true;
		return false;
	}
	if(event.srcElement.type =="select-one"   && event.keyCode == 8) 
		return true;
	if(event.srcElement.type != "password" && event.srcElement.type != "text" && event.srcElement.type != "textarea"  && event.keyCode == 8) // backspace...
		return false;
	try{
		if(parent.ProgramMode.innerText == "VIEW" && event.srcElement.type!='button'){
			if (event.srcElement.name=="txtPROD_CD")
				return false	
			
			if(event.srcElement.type != "password" && event.srcElement.type != "text" && event.srcElement.type != "textarea" && event.srcElement.type != "select-one") // backspace...
				return false;
		}
	}catch(e){}
	
	if(event.keyCode == 70 && event.ctrlKey == true) {
		blnDown =true; 
		try{
			if (document.forms(0).item("btn" + event.srcElement.name.substr(3),0)) {
				if (document.all("btn" + event.srcElement.name.substr(3)).length) {
					if (document.all.item("btn" + event.srcElement.name.substr(3),parseInt(intActiveRow)))
						document.all.item("btn" + event.srcElement.name.substr(3),parseInt(intActiveRow)).click();
				}else{
					if (document.all("btn" + event.srcElement.name.substr(3)))
						document.all("btn" + event.srcElement.name.substr(3)).click();
				}
				event.keyCode=0;
				event.cancelBubble=true;
				event.returnValue=false;
				return false;
			}	
		}catch(e){}
	}else{
		if(event.srcElement.className.toLowerCase() =="description" || event.srcElement.className.toLowerCase() =="numdesc" || event.srcElement.className.toLowerCase() =="ctl_disable_input" || event.srcElement.className.toLowerCase() =="ctl_disable_num") {
			if ((event.keyCode != 9) && (event.keyCode != 35) && (event.keyCode != 36) && 
					(event.keyCode != 37) && (event.keyCode != 39) ){ 
					event.keyCode=0;
					event.returnValue=true;
					return false;
			}else if(event.shiftKey==true && event.keyCode==9){
				return true;
			}
		}
	}
	return true;
}
document.onhelp=function(){
	try{
		if (document.activeElement.type=="text" || document.activeElement.type=="textarea" || document.activeElement.type=="select-one" || document.activeElement.type=="checkbox" || document.activeElement.type=="password")
			parent.objHelp.TextPopup(eval("hlp" + document.activeElement.name.substring(3)),"Verdana,8",5,5,-1,-1);
		else if (document.activeElement.type=="button" && eval("hlp" + document.activeElement.name.substring(3)))
			parent.objHelp.TextPopup("Help (Ctrl+F)","Verdana,8",5,5,-1,-1);		
	}catch(e){}
	
	return false;
}
document.attachEvent("onactivate", SetActiveColor)		//Call Function To Set BackColor of Active Control 
document.attachEvent("ondeactivate", ResetActiveColor)	//Call Function To ReSet BackColor of Active Control 
try{
	document.write("<script language=JavaScript src=\"../../Script/help/" + strFormName +".js\"></script>");
}catch(e){}

function atLeastTwoNum(objCtrl)
{
	var strNum;
	strNum = objCtrl.value
	if(strNum == "")
		return true;
		//var strNumPat = /^(\d{1,2})(\/)(\d{1,2})(\/)(\d{4})$/;		
		var strNumPat = /^([a-zA-Z]*)(\d{1,10})([a-zA-Z]*)(\d{1,10})([a-zA-Z0-9]*)$/;
		var strMatchArr = strNum.match(strNumPat); // is the format ok?
		if (strMatchArr == null) { 
			parent.Error.showMessage(1065);
			objCtrl.focus();
			return false;
		}
}
