var mstByLocation		= '';
var mainLocationCode	= '';
var currentLocationCode	= '';
var defaultCompCode		= '';
var fixMstDefaultCompCode='';
var defaultBranchCode	= '';
var fixMstDefaultBranchCode = '';
var userAccessRights	= '';
var dtPattern	 			= '';
var locale				= '';
var mandatoryColor		= 'yellow'; // if the mandatory field is empty, this color to be set to the background.
//============================EMAIL ADDRESS CHECKING========================================================================//

function co_isEmailAddress(elem)
{
   if(elem.value!='')
   {
	   var str = elem.value;
       var address =  /^[\w\-]+(?:\.[\w\-]+)*@(?:[\w\-]+\.)+[a-zA-Z]{2,7}$/; 
	   if( !str.match(address) )
	   {
		   co_alertMsg("0","errorType@NOR_ERROR##COMN050^~userMessage@verify the email address"); 
		   elem.style.color='red';
		   return false;
		}
		else
		{
			elem.style.color='navy';
		  	return true;
	    }
	}
}

//=============================== Number Format Checking=======================================================================//
function co_checkNumberFormat(oNum,totalLength,decimalLength)
{
	var number=oNum.value;
	var minasa=number.split("-");
	number=number.split(".");
	oNum.style.color='navy';
	if(minasa.length>2)
	{
		co_alertMsg("0","errorType@NOR_ERROR##COMN041^~userMessage@ Please Verify the Number Format! Format is {1},{2}^~keyFieldsAppend@"+oNum.value+"##"+totalLength+"##"+decimalLength);
		oNum.style.color='red';
		return;
	}
	if(number.length>2 || number[0].length>totalLength-decimalLength)
	{
		co_alertMsg("0","errorType@NOR_ERROR##COMN041^~userMessage@ Please Verify the Number Format! Format is {1},{2}^~keyFieldsAppend@"+oNum.value+"##"+totalLength+"##"+decimalLength);
		oNum.style.color='red';
		return;
	}
	if(number.length>1  && number[1].length>decimalLength)
	{
		co_alertMsg("0","errorType@NOR_ERROR##COMN042^~userMessage@Decimal Values entered more than [{0}] digits will be truncated^~keyFieldsAppend@"+decimalLength);
		var tempNumber = parseFloat(oNum.value);
		oNum.value = tempNumber.toFixed(decimalLength);
	}		
}

//========================== Check Numeric Numbers [0-9, backspace, space bar] only=============================================================
function co_checkNumberSpace(myEvent){
	var key = window.event ? window.event.keyCode : myEvent.charCode; 
  	if(window.event){
      	if( (key >=48 && key<=57) || key == 32 || key == 0) 
			return;
		else
			window.event.keyCode=0;
			
	}else{
		if( (key >=48 && key <=57 ) || key == 32 || key ==0) 
			return;
		else
			myEvent.preventDefault();		
	}
}
//======================================end=========================================================================


//========================== Check Numeric Numbers [0-9] only=============================================================
function co_checkNumber(myEvent)
{
	var key = window.event ? window.event.keyCode : myEvent.charCode; 
  	if(window.event)
  	{
      	if( (key >=48 && key<=57)) 
			return;
		else
			window.event.keyCode=0;
	}
	else
	{
		if( (key >=48 && key <=57 ) || key ==0) 
			return;
		else
		{
			myEvent.preventDefault();
		}
	}
}
//======================================end=========================================================================
// For checking Number having digits 0-9 and . only=================================================================================//
function co_fnChkNum(myEvent)
{
	var key = window.event ? window.event.keyCode : myEvent.charCode;  
  	if(window.event)
  	{
      	if( (key >=48 && key<=57) || key==46 ) 
			return;
		else
			window.event.keyCode=0;
	}
	else
	{
		if( (key >=48 && key <=57 )|| key==46 || key ==0) 
			return;
		else
		{
			myEvent.preventDefault();
		}
	}

}

//============================End===================================================================================================//
// For checking Number having digits 0-9,"." and "-" only

function co_funChkNum(myEvent)
{  
	var key = window.event ? window.event.keyCode : myEvent.charCode;  
  	if(window.event)
  	{
      	if( (key >=48 && key<=57) || key==46 || key==45) 
			return;
		else
			window.event.keyCode=0;
	}
	else
	{
		if( (key >=48 && key <=57 )|| key==46 || key==45 || key ==0) 
			return;
		else
		{
			myEvent.preventDefault();
		}
	}

}
//============================End===================================================================================================//
// For checking Number having digits 0-9 and Allowing Enter Key only================================================================//
function co_fnChkNumber(myEvent)
{  
	var key = window.event ? window.event.keyCode : myEvent.charCode;  
  	if(window.event)
  	{
      	if( (key >=48 && key<=57) || key==13 ) 
			return;
		else
			window.event.keyCode=0;
	}
	else
	{
		if( (key >=48 && key <=57 )|| key==13 || key ==0) 
			return;
		else
		{
			myEvent.preventDefault();
		}
	}
}
//============================End===================================================================================================//
//====For checking Number having digits 0-9,"." and Enter key ======================================================================// 
function co_fnChekNum(myEvent)
{
	var key = window.event ? window.event.keyCode : myEvent.charCode;  
  	if(window.event)
  	{
      	if( (key >=48 && key<=57) || key==46 || key==13) 
			return;
		else
			window.event.keyCode=0;
	}
	else
	{
		if( (key >=48 && key <=57 )|| key==46 || key==13 || key ==0) 
			return;
		else
		{
			myEvent.preventDefault();
		}
	}
}

//============================End===================================================================================================//
//===================== For Checking Number is Zero,then showing red color     =====================================================//
function co_fnChkValue(obj)
{
 	
 	if(obj.value == "")
 	{
 		return;
	}
	if(obj.value == 0)
	{
		var objname=obj.name;
		
		try { objname = objname.substring(objname.lastIndexOf('.')+1,objname.length); }catch(e){objname = obj.name;}
		co_alertMsg("0","errorType@NOR_ERROR##COMN058^~userMessage@Please Enter valid {0}^~keyFieldsAppend@"+objname); 
	    obj.value = "";  
	}
}
//============================End===================================================================================================//
// For Accepting only one "." and 0-9  Use this Function in KeyPress event==========================================================//    
function co_fnchkDecimal(myEvent,obj)
{
	var key = window.event ? window.event.keyCode : myEvent.charCode;  
  	if(window.event)
  	{
      	if((key >=48 && key<=57) || key == 46 )
      	{
      	    if( key == 46)
	        { 
    	   		var test = obj.value.indexOf('.')
       		  	if(test != -1)
       		  	{     
        			window.event.keyCode=0
       		    }
       	    	else
	       	    {	
			  		 return true;
				}     
       		}	
      	} 
		else
			window.event.keyCode=0;
	}
	else
	{
		if((key >=48 && key <=57 ) || key == 46 || key ==0) 
		{
			if( key == 46 )
	        { 
    	   		var test = obj.value.indexOf('.')
       		  	if(test != -1)
       		  	{     
        			myEvent.preventDefault();
       		    }
       	    	else
	       	    {	
			  		 return true;
				}     
       		}	
		}
		else
		{
			myEvent.preventDefault();
		}
	}
}


/**
 * event : onkeypress.
 * This function not allow to enter the characters more than the specified length
 */
function co_checkLength(obj,length)
{
	if(obj.value.length >= length)     
	{
		window.event.keyCode=0;
	}
}

/**
 * event : onkeypress
 * This function allows only alphanumerics, underscore and hyphen.
 */
function co_checkMasterCode(myEvent)
{
	var key = window.event ? window.event.keyCode : myEvent.charCode;  
  	if(window.event)
  	{
      	if( (key >=48 && key<=57) || (key>=65 && key<=90) || (key>=97 && key<=122) || key==45 || key==95 || key==8 || key==9) 
			return;
		else
			window.event.keyCode=0;
	}
	else
	{
      	if( (key >=48 && key<=57) || (key>=65 && key<=90) || (key>=97 && key<=122)|| key==45 || key==95 || key==8 || key==9 || key==0) 
			return;
		else
		{
			myEvent.preventDefault();
		}
	}	
 	
}   



/**
 * event :onkeypress
 * function to validate the phoneNo and fax no such that it should accept 0-9, +, -, / and space
 */

function co_checkPhoneFax(myEvent,obj)
{
	var key = window.event ? window.event.keyCode : myEvent.charCode;  
  	if(window.event)
  	{
      	if( (key >=48 && key<=57) ||key==43 || key==45 || key==47) 
			return;
		else
			window.event.keyCode=0;
	}
	else
	{
      	if( (key >=48 && key<=57)|| key==43 || key==45 || key==47 || key==0)  
			return;
		else
		{
			myEvent.preventDefault();
		}
	}
}

/** 
 * event : onblur
 * This function validates the entered phoneno is valid or not
 */
function co_validatePhoneFax(obj)
{
    var re=/^\d*\-?\+?\\?\d*\-?\+?\\?\d*$/;
    var str=obj.value;
    if(str=="")
        return;
    str= str.toString();
    if(! str.match(re)) 
    {
      var errorstatus = "errorType@NOR_ERROR##COMN051^~userMessage@Please enter a valid Phone/Fax Number";
	  co_alertMsg("0",errorstatus); 
      obj.style.color='red';
      return false;
    }  
    else
    {
      obj.style.color='navy';
      return true;
    }  
}

//============================End===================================================================================================//
//Ajax call to get MapId from mstuserhelp table to show the help content 
function co_getHelpMapId(key){
	ajaxpack.getAjaxRequest('UserHelpAjaxController.do',"&data="+key,co_openContextHelp,"",'','');
}

//Callback function for co_getHelpMapId function 
function co_openContextHelp() {
	try{
		if (ajaxpack.ajaxobj.readyState === 4)  
			if (ajaxpack.ajaxobj.status === 200){
			 	var xmlStr = ajaxpack.ajaxobj.responseXML;
			    var mapId  = (xmlStr.getElementsByTagName('mapid')[0].childNodes[0].nodeValue);
			    var hlpURL = (xmlStr.getElementsByTagName('url')[0].childNodes[0].nodeValue);
			    
			    RH_ShowHelp(0, hlpURL, HH_HELP_CONTEXT,mapId);	//function in Robohelp_CH.js
		 	}
	}catch(e){
		alert(e);
	}
}
//======================Alt keys ===================================================================================================//

function co_trnAltKeys(aEvent)
{
	var myEvent = window.event ? window.event : aEvent;
	var keyCode = myEvent.keyCode ? myEvent.keyCode: myEvent.charCode;
	try {
		var target  = myEvent.target ? myEvent.target : myEvent.srcElement;
		var type = target.type;
	} catch(e){}
	
	//For Backspace Key Check.
	if (keyCode === 8 && type !== 'text' && type !== 'textarea'  && type !== 'password') {
		try {
			myEvent.keyCode = 0;
			return false;
		} catch (e) {
			myEvent.preventDefault();
			return false;  
		}
	}
	
	//For F1 key User Help.
	if (keyCode === 112) {
		try {
			var targetName = '';
			var dtoname = '';
			var frmname = document.getElementsByTagName('form')[0].name;		
			
			try{
				if(target.name){
					dtoname = target.name.substr(0, target.name.lastIndexOf("."))
				}
			}catch(e){
				dtoname = '';
			}
			
			if(dtoname.length >0){
				targetName = frmname+"."+dtoname;
			}else{
				targetName = frmname;				
			}
			
			if(targetName.lastIndexOf("]")!=-1){
				targetName = targetName.substr(0,targetName.length-3);
			}
						
			co_getHelpMapId(targetName);

			myEvent.keyCode = 0;
			return false;

		}catch(e){
			myEvent.preventDefault();
			return false;     
		}
	}
	
	
	if(myEvent.altKey)
	{
		switch(keyCode)
		{
		 case 65:
		 {
		 	if(document.getElementById('addmode') && document.getElementById('addmode').style.visibility=="visible")
			{
				pr_setMode('ADD');
			}
			break;
		 }
		 case 69:
			if(document.getElementById('editmode') && document.getElementById('editmode').style.visibility=="visible")
			{
				pr_setMode('EDIT');
				
			}
			break;
 		 case 84:
			if(document.getElementById('cutmode') && document.getElementById('cutmode').style.visibility=="visible")
			{
				pr_setMode('CUT');
			}
			break;
		 case 86:
			if(document.getElementById('viewmode') && document.getElementById('viewmode').style.visibility=="visible")
			{
				pr_setMode('VIEW');
			}
			break;
		 case 88:
			if(document.getElementById('exitmode') && document.getElementById('exitmode').style.visibility=="visible")
			{
				pr_setMode('EXIT');
			}
			break;
		 case 80:
			if(document.getElementById('printmode') && document.getElementById('printmode').style.visibility=="visible")
			{
				pr_setMode('PRINT');
			}
			break;
		 case 83:
			if(document.getElementById('savmode') && document.getElementById('savmode').style.visibility=="visible")
			{
				pr_setMode('SAVE');
				co_disableSaveMode(document.getElementById('savmode'));
			}
			break;
		 case 67:
			if(document.getElementById('cancelmode') && document.getElementById('cancelmode').style.visibility=="visible")
			{
				pr_setMode('CANCEL');
			}
			break;
		case 79:
			if(document.getElementById('copymode') && document.getElementById('copymode').style.visibility=="visible")
			{
				pr_setMode('COPY');
			}
			break;
		case 48:
			if(document.getElementById('tab0'))
			{
				document.getElementById('tab0').onclick();
			}
			break;
		case 49:
			if(document.getElementById('tab1'))
			{
				document.getElementById('tab1').onclick();
			}
			break;
		case 50:
			if(document.getElementById('tab2'))
			{
				document.getElementById('tab2').onclick();
			}
			break;
		case 51:
			if(document.getElementById('tab3'))
			{
				document.getElementById('tab3').onclick();
			}
			break;
		case 52:
			if(document.getElementById('tab4'))
			{
				document.getElementById('tab4').onclick();
			}
			break;
		case 53:
			if(document.getElementById('tab5'))
			{
				document.getElementById('tab5').onclick();
			}
			break;
		
		}	
	}	
}

//=======================Maximize window============================================================================================//

function co_maximizeWin()
{
	if (self == top)
	{
  		var flag= true;
  		if(document.getElementById('mode'))
			if(document.getElementById('mode').value == 'COPY')	
			{
	   			flag = false;
			}

		if (window.screen && flag)
 		{
    		var aw = screen.availWidth;
    		var ah = screen.availHeight;
    		window.moveTo(0, 0);
    		window.resizeTo(aw, ah);
  		}
	}
}


//===================Make Two digits if it is a Single Digit========================================================================//
function co_doubling(value)
{
	if(value < 10 )
		value = "0"+value;
	return value;
}

//=========adjust decimal values ==========================================================================================//
function co_AdjustDecimalValue(thisValue)
{
	var decimelposition = 000;
	var finalValue = 0;
	thisValue = thisValue.toString();
  	var thisValues = thisValue.split('.');
  	if(thisValues.length > 1)
  	{
  		decimelposition = thisValues[1].substring(0,3);
  	}
  	finalValue = thisValues[0]+'.'+decimelposition;
  	return parseFloat(finalValue);
}


//============================End===================================================================================================//
//. This function will be called on blur of text box to check if the character length is increasing.
function co_checkTextLength(obj,len)
{
	if(obj.value.length > len)
	{
		co_alertMsg("0","errorType@NOR_ERROR##COMN043^~userMessage@You have enterd {0} characters but you are allowed to enter {1} characters only.^~keyFieldsAppend@"+obj.value.length+"##"+len);
		//obj.focus();
	}
}


//=============Check Document Number===============================================================================================//
function co_fnCheckDocNo(obj)
  { 
    var mode =  document.getElementById('mode');
   	var test = obj.value.split("."); 
   	if(obj.value.length == 0)
   	{
    	return;
    }

	if( (test[0] != obj.value) || (obj.value < 1))
	{
			co_alertMsg("0","errorType@NOR_ERROR##COMN019^~userMessage@Invalid document number");
   			obj.value.disabled = false;
   			obj.value = "";
   			obj.focus();
   			return;
   	}
  }
//============================End===================================================================================================//

//============================Check EXit from window============================================================================================//
function co_checkExit()
{
	if(confirm('Do you want to exit'))
	{
		if (self != top)
		{
			var iframe = window.top.document.getElementById('windowFrame');
			if(!document.all) {
				iframe.style.height = 0;  
				iframe.setAttribute("src", "about:blank"); 
			 } else if(document.all){
				iframe.style.height = 0;  
				iframe.setAttribute("src", ""); 
			}
    	}
		else
		{
    		window.close();
    	}
	}
	else
		return;
}

//============================End===================================================================================================//

//============================This function to display the error Message .==========================================================//

var myWin = null;
var alertWin = null;
function co_alertMsg(alertType,errorStatus,windowname) 
{
	try 
	{
		errorStatus = errorStatus.substring(0,1700);
		var escapedStatus = escape(errorStatus);
		if(escapedStatus.length >2000)
			errorStatus = "errorType@NOR_ERROR##COMN079^~userMessage@Not able to show the errors due to too many errors, Please correct the data for  all highlighted fields on the screen^~keyFields@";
		
		var winURL  = "errorMsg.do?alertType="+alertType+"&msgType=''&errorCode="+escape(errorStatus)+"&runTime="+new Date();  
		var winPro  = "width=500,height=200,left=300,top=300,status=no,toolbar=no,menubar=no,location=no,popup=yes";
		var winName = "alertWin";
		if(!document.all && alertWin) 
		{
			alertWin.focus(); 
		}

		alertWin = window.open(winURL,winName, winPro);  	
	}
	catch (e) 
	{
		alertWin  = null;
	}
}
 
/*
 * event :onblur
 * This function retrurn false,if the fieldvalue having special charcters.
 */
function co_validateMasterCode(obj)
{
	var re= /^[\w\-]*$/
   	var str=obj.value;
    if(str=="")
        return false;
        
    str= str.toString();
    
    if(! str.match(re))  {
         var errorstatus = "errorType@NOR_ERROR##COMN064^~userMessage@Master Code should not contain special characters..!";
		 co_alertMsg("0",errorstatus,''); 
         obj.style.color='red';
         return false;
    } 
    else
    	obj.style.color = 'navy';
    return true;
}
 
//============================End===================================================================================================//

/* This function for creating the new row in details tab.

	Input : Detail table id as a string argument, not object
	process: This function is to copy the existing row and create the new row with the properties 
	of the existing one.
*/
function co_addRow(tableid)
{
	var tbody = document.getElementById(tableid).getElementsByTagName('tbody')[0];
	var table = document.getElementById(tableid);
	var row = table.getElementsByTagName('tr');
	var lastRow= row.length-2;
	var col = row[2].getElementsByTagName('td');
	var newrow = document.createElement('tr');
	var focusField='';
	//newrow.onclick   =row[2].onclick;
	newrow.className =row[row.length-2].className;

	var srlNo='';
	if(document.all)  // Internet explorer
	{
		for(var i=0;i<col.length;i++)
		{
			var newcol = document.createElement('td'); 
			newcol.align = col[i].align;
			
			if(!col[i].firstChild)
			{
				newrow.appendChild(newcol);
				newcol.setAttribute('valign','top');
				continue;
			}
						
			var firstname =col[i].firstChild.name.split('[');
			var secondname =col[i].firstChild.name.split(']');
			
			var butname=col[i].firstChild.name;
			var textName=firstname[0]+'['+lastRow+']'+secondname[1];
			var inp1;
			if(col[i].firstChild.tagName=='TEXTAREA' || col[i].firstChild.tagName=='textarea')
			{
				//var inp1 =  document.createElement('TEXTAREA');  // input or select or radio ...

				var inpstring="textarea name=\""+textName+"\">";
				inp1 =  document.createElement("<"+inpstring);  
				inp1.setAttribute('rows',col[i].firstChild.rows);
				inp1.setAttribute('cols',col[i].firstChild.cols);
				//inp1.setAttribute('name',textName);
			}	
			else
			{
				if(col[i].firstChild.type!='button' && col[i].firstChild.type!='image')
				{
					var inpstring="input name=\""+textName+"\">";
				}
				else if(col[i].firstChild.type=='image')
				{
					var inpstring="input name=\""+butname+"\">";
				}
				else
				{
					var inpstring="button name=\""+butname+"\">";
				}
				
				inp1 =  document.createElement("<"+inpstring);  
				inp1.setAttribute('type',col[i].firstChild.type);
				
			}
	
			var newid = col[i].firstChild.id.substring(0,col[i].firstChild.id.length-1);
			if(col[i].firstChild.type!='button')
			{
				inp1.setAttribute('id',newid+lastRow);
				inp1.setAttribute('src',col[i].firstChild.src); 
				inp1.setAttribute('style',col[i].firstChild.style);  
				inp1.setAttribute('maxLength',col[i].firstChild.maxLength); 
				inp1.maxLength=col[i].firstChild.maxLength; 
				//inp1.style.backgroundColor=col[i].firstChild.getAttribute('currentStyle').backgroundColor;
				inp1.readOnly=col[i].firstChild.readOnly;
				if(col[i].firstChild.readOnly)
					inp1.style.backgroundColor='#E2E2E2';
				var bgcolor=col[i].firstChild.style.backgroundColor;
				var textAlign=col[i].firstChild.style.textAlign;
				inp1.style.height=col[i].firstChild.getAttribute('currentStyle').height;
				inp1.style.textAlign=col[i].firstChild.getAttribute('currentStyle').textAlign;
				inp1.style.borderStyle=col[i].firstChild.getAttribute('currentStyle').borderStyle;
				inp1.style.borderWidth=col[i].firstChild.getAttribute('currentStyle').borderWidth;
				inp1.setAttribute('style',col[i].firstChild.style); 
				if(col[i].firstChild.className=='cssErrorClass')
					inp1.className='';
				inp1.setAttribute('style',"text-align:"+textAlign); 
			}
			else
			{
				inp1.setAttribute('id',newid+lastRow);
				inp1.setAttribute('value',col[i].firstChild.value);
				inp1.style.fontWeight=col[i].firstChild.getAttribute('currentStyle').fontWeight;
				inp1.style.fontFamily=col[i].firstChild.getAttribute('currentStyle').fontFamily;
				inp1.style.fontSize=col[i].firstChild.getAttribute('currentStyle').fontSize;
				inp1.setAttribute('style',col[i].firstChild.style); 
				inp1.style.borderStyle=col[i].firstChild.getAttribute('currentStyle').borderStyle;
				inp1.style.borderWidth=col[i].firstChild.getAttribute('currentStyle').borderWidth;
				inp1.style.borderColor=col[i].firstChild.getAttribute('currentStyle').borderColor;
				inp1.style.backgroundColor=col[i].firstChild.getAttribute('currentStyle').backgroundColor;
				inp1.style.height=col[i].firstChild.getAttribute('currentStyle').height;
			}
			try
			{
				if(col[i].firstChild.id.substring(0,5)=='srlNo' || col[i].firstChild.id.substring(0,9)=='sortSrlNo')
				{
					var maxSrlNo = co_checkMaxSrlNo(tableid);
					inp1.setAttribute('value',parseInt(maxSrlNo));
				}
				if(col[i].firstChild.id.substring(0,12)=='deleteStatus')
				{
					inp1.setAttribute('value','E');
				}
			}catch(e){}
			
			if(focusField=='')
				focusField = newid+lastRow;
			inp1.setAttribute('tabindex',col[i].firstChild.tabIndex);
			inp1.setAttribute('onblur',col[i].firstChild.onblur); 
			inp1.setAttribute('colspan',col[i].firstChild.colspan); 
			inp1.setAttribute('onkeypress',col[i].firstChild.onkeypress);
			inp1.setAttribute('onchange',col[i].firstChild.onchange); 
			inp1.setAttribute('onkeyup',col[i].firstChild.onkeyup); 
			inp1.setAttribute('onclick',col[i].firstChild.onclick); 
			inp1.setAttribute('onfocus',col[i].firstChild.onfocus); 
			inp1.setAttribute('size',col[i].firstChild.size);
			inp1.setAttribute('ondblclick',col[i].firstChild.ondblclick);
		
			newcol.appendChild(inp1); 
			newrow.appendChild(newcol);
			
		} // for loop
		newrow.setAttribute('onclick',row[2].onclick);
		newrow.setAttribute('onkeypress',row[2].onkeypress); 
		newrow.setAttribute('name',row[2].name);
		newrow.setAttribute('id',row[2].name+lastRow);
	}
	else     // other browsers
	{
		var tempBgColor='';
		for(var i=0;i<col.length;i++)   
		{
			var newcol = document.createElement('td'); 
			newcol.align = col[i].align;
			//newcol.valign = 'top';
			
			if(!col[i].firstChild.nextSibling)
			{
				newrow.appendChild(newcol);
				newcol.setAttribute('valign','top');
				continue;
			}
			
			var firstname =col[i].firstChild.nextSibling.name.split('[');
			var secondname =col[i].firstChild.nextSibling.name.split(']');
			
			var butname=col[i].firstChild.nextSibling.name;
			var textName=firstname[0]+'['+lastRow+']'+secondname[1];

			if(col[i].firstChild.nextSibling.tagName=='TEXTAREA')
			{
				var inp1 =  document.createElement('TEXTAREA');  // input or select or radio ...
				inp1.setAttribute('rows',col[i].firstChild.nextSibling.rows);
				inp1.setAttribute('cols',col[i].firstChild.nextSibling.cols);
				inp1.setAttribute('name',textName);
			}	
			else
			{
				var inp1 =  document.createElement(col[i].firstChild.nextSibling.tagName);  // input or select or radio ...
				inp1.setAttribute('type',col[i].firstChild.nextSibling.type);
			}
			var newid = col[i].firstChild.nextSibling.id.substring(0,col[i].firstChild.nextSibling.id.length-1);
			
			if(col[i].firstChild.nextSibling.type!='button' && col[i].firstChild.nextSibling.type!='image')
			{
				inp1.setAttribute('name',firstname[0]+'['+lastRow+']'+secondname[1]);
			}
			else if(col[i].firstChild.nextSibling.type=='image')
			{
				inp1.setAttribute('name',col[i].firstChild.nextSibling.name);
			}
			else if(col[i].firstChild.nextSibling.type=='button')
			{
				inp1.setAttribute('name',col[i].firstChild.nextSibling.name);
				
				try
				{
					if(col[i].firstChild.nextSibling.firstChild.nodeName=='IMG' || col[i].firstChild.nextSibling.firstChild.nodeName=='img')
					{
						var img=document.createElement("img");
						img.setAttribute('src',col[i].childNodes[0].nextSibling.firstChild.src);    
						inp1.appendChild(img);  
					}
				}catch(e){}
			}
			else
			{
				inp1.setAttribute('name',col[i].firstChild.nextSibling.name);
			}
			
			inp1.className=col[i].firstChild.nextSibling.className;
			if(col[i].firstChild.nextSibling.type!='button') 
			{
				tempBgColor='';
				inp1.setAttribute('id',newid+lastRow);
				inp1.setAttribute('maxLength',col[i].firstChild.nextSibling.maxLength); 
				// Added by Martin on Oct 27,2010
				// Issue raised in chrome , Where text area does not have maxlength property.
				// A if condition was added to rectify the problem
				
				// if(col[i].firstChild.nextSibling.type!='textarea'){	
				//	inp1.maxLength=col[i].firstChild.nextSibling.maxLength; 
				// }
				
				// Added by Martin on May 25,2011
				// Issue raised in Firefox 4.0, Where Checkbox, hidden fields are not having the maxlength
				// property.So, the following if condition has been changed.
				// So, 'text' input supports  the maxlength property and we are setting for text input alone.
				if(col[i].firstChild.nextSibling.type=='text'){	
					inp1.maxLength=col[i].firstChild.nextSibling.maxLength; 
				}
				//inp1.style.backgroundColor=col[i].firstChild.nextSibling.style.backgroundColor;
				//var bgcolor=col[i].firstChild.nextSibling.style.backgroundColor;
				if(col[i].firstChild.nextSibling.readOnly)
					tempBgColor='#E2E2E2';
				var textAlign=col[i].firstChild.nextSibling.style.textAlign;
				var height=col[i].firstChild.nextSibling.style.height;
				inp1.readOnly=col[i].firstChild.nextSibling.readOnly;
				inp1.style.borderStyle=col[i].firstChild.nextSibling.style.borderStyle;
				inp1.style.borderWidth=col[i].firstChild.nextSibling.style.borderWidth;
				inp1.setAttribute('valign',col[i].firstChild.nextSibling.valign);
				inp1.setAttribute('src',col[i].firstChild.nextSibling.src);
				inp1.setAttribute('style',col[i].firstChild.nextSibling.style); 
				inp1.setAttribute('tabindex',col[i].firstChild.nextSibling.tabIndex); 
				
				if(col[i].firstChild.nextSibling.className=='cssErrorClass')
					inp1.className='';
				inp1.setAttribute('style',"text-align:"+textAlign+";background-color:"+tempBgColor+";height:"+height); 
		
			}
			else
			{
				inp1.setAttribute('id',newid+lastRow);
				inp1.setAttribute('value',col[i].firstChild.nextSibling.value);
				inp1.style.fontWeight=col[i].firstChild.nextSibling.style.fontWeight;
				inp1.style.fontFamily=col[i].firstChild.nextSibling.style.fontFamily;
				inp1.style.fontSize=col[i].firstChild.nextSibling.style.fontSize;
				inp1.setAttribute('style',col[i].firstChild.nextSibling.style); 
				inp1.setAttribute('tabindex',col[i].firstChild.nextSibling.tabIndex); 
				inp1.style.borderStyle=col[i].firstChild.nextSibling.style.borderStyle;
				inp1.style.borderWidth=col[i].firstChild.nextSibling.style.borderWidth;
				inp1.setAttribute('valign',col[i].firstChild.nextSibling.valign);
				var bgcolor=col[i].firstChild.nextSibling.style.backgroundColor;
				inp1.setAttribute('style',"background-color:"+bgcolor); 
			}
			try
			{
				if(col[i].firstChild.nextSibling.id.substring(0,9)=='sortSrlNo' || col[i].firstChild.nextSibling.id.substring(0,5)=='srlNo' )
				{
					var maxSrlNo = co_checkMaxSrlNo(tableid);
					inp1.setAttribute('value',maxSrlNo);
				}
				if(col[i].firstChild.nextSibling.id.substring(0,12)=='deleteStatus')
				{
					inp1.setAttribute('value','E');
				}
			}catch(e){}
			if(focusField=='')
				focusField = newid+lastRow;
			try
			{
				var onclickevent = col[i].firstChild.nextSibling.onclick.toString();
				var onclickFnName = onclickevent.substring(onclickevent.indexOf('{')+1,onclickevent.indexOf('}'));
				inp1.setAttribute('onclick',onclickFnName);
			}catch(e){}
			
			try
			{
				var onblurevent = col[i].firstChild.nextSibling.onblur.toString();
				var onblurFnName = onblurevent.substring(onblurevent.indexOf('{')+1,onblurevent.indexOf('}'));
				inp1.setAttribute('onblur',onblurFnName); 
			}catch(e){}
			try
			{
				var onkeypressevent = col[i].firstChild.nextSibling.onkeypress.toString();
				var onkeypressFnName = onkeypressevent.substring(onkeypressevent.indexOf('{')+1,onkeypressevent.indexOf('}'));
				inp1.setAttribute('onkeypress',onkeypressFnName);
			}catch(e){}
			try
			{
				var onchangeevent = col[i].firstChild.nextSibling.onchange.toString();
				var onchangeFnName = onchangeevent.substring(onchangeevent.indexOf('{')+1,onchangeevent.indexOf('}'));
				inp1.setAttribute('onchange',onchangeFnName); 
			}catch(e){}
			try
			{
				var onfocusevent = col[i].firstChild.nextSibling.onfocus.toString();
				var onfocusFnName = onfocusevent.substring(onfocusevent.indexOf('{')+1,onfocusevent.indexOf('}'));
				inp1.setAttribute('onfocus',onfocusFnName);
			}catch(e){}
			try
			{
				var ondblclickevent = col[i].firstChild.nextSibling.ondblclick.toString();
				var ondblclickFnName = ondblclickevent.substring(ondblclickevent.indexOf('{')+1,ondblclickevent.indexOf('}'));
				inp1.setAttribute('ondblclick',ondblclickFnName);
			}catch(e){}
			try
			{
				var onkeyupevent = col[i].firstChild.nextSibling.onkeyup.toString();
				var onkeyupFnName = onkeyupevent.substring(onkeyupevent.indexOf('{')+1,onkeyupevent.indexOf('}'));
				inp1.setAttribute('onkeyup',onkeyupFnName);
			}catch(e){}
			
			inp1.setAttribute('size',col[i].firstChild.nextSibling.size);
			inp1.setAttribute('colspan',col[i].firstChild.nextSibling.colspan);
			
			newcol.appendChild(inp1); 
			newrow.appendChild(newcol);
			newcol.setAttribute('valign','top');
		} // for loop
		try
		{
			var rowclickevent = row[2].getAttribute('onclick').toString();  
			newrow.setAttribute('onclick',rowclickevent);
		}catch(e){}
		try
		{
			var rowkeypressevent = row[2].getAttribute('onkeypress').toString();  
			newrow.setAttribute('onkeypress',rowkeypressevent);
		}catch(e){}
		
		try
		{
			var rowname = row[2].getAttribute('name').toString();  
			newrow.setAttribute('name',rowname);
			newrow.setAttribute('id',rowname+lastRow);
		}catch(e){}
		
	}// else part of document.all
	
	tbody.appendChild(newrow);
	if(document.getElementById(tableid+'Dft'))
	{
		var dftValue = 	document.getElementById(tableid+'Dft').value;
		var eachField = dftValue.split('~@');
		for(var i=0;i<eachField.length;i++)
		{
			var field = eachField[i].split('^@');
			if(document.getElementById(field[0]+lastRow))
			document.getElementById(field[0]+lastRow).value=field[1];
		}
	}
	// focusing the next row first active field
	try
	{
		document.getElementById(focusField).focus();
	}catch(e){}
}

/*
  *  This function is used to find the maximum serial no
  */
function co_checkMaxSrlNo(tableid)
{
	var tbody = document.getElementById(tableid).getElementsByTagName('tbody')[0];
	var table = document.getElementById(tableid);
	var row = table.getElementsByTagName('tr');
	var totalRow = row.length-2;
	var maxno=0;
	for(var i=0;i<totalRow;i++)
	{
		var col = row[i+2].getElementsByTagName('td');
		if(document.all)
		{
			if(col[0].firstChild.id.substring(0,5)=='srlNo' || col[0].firstChild.id.substring(0,9)=='sortSrlNo')
			{
				var srlNo = parseInt(col[0].firstChild.value);
				if(maxno < srlNo)
					maxno= srlNo;
			}
		}
		else
		{
			try
			{
				if(col[0].firstChild.id.substring(0,5)=='srlNo' || col[0].firstChild.id.substring(0,9)=='sortSrlNo')
				{
					var srlNo = parseInt(col[0].firstChild.value);
					if(maxno < srlNo)
						maxno= srlNo;
				}
			}catch(e){}
			try
			{
				if(col[0].firstChild.nextSibling.id.substring(0,5)=='srlNo' || col[0].firstChild.nextSibling.id.substring(0,9)=='sortSrlNo')
				{
					var srlNo = parseInt(col[0].firstChild.nextSibling.value);
					if(maxno < srlNo)
						maxno= srlNo;
				}
			}catch(e){}  
		}
	}
	return maxno+1;
}

/**
 * getting the number of rows in the table.
*/
function co_getRowCount(tableid)
{
	var tbody = document.getElementById(tableid).getElementsByTagName('tbody')[0];
	var table = document.getElementById(tableid);
	var row = table.getElementsByTagName('tr');
	return row.length-2;
}

/**
 * This function is called from co_deleteRow function
 */
function co_deleteRowNew(obj,tableid,mode,fromWhere)
{
	var objname = obj.name.split('.');
	var tbody = document.getElementById(tableid).getElementsByTagName('tbody')[0];
	var table = document.getElementById(tableid);
	var row = table.getElementsByTagName('tr');
	var rowno;
	if(fromWhere=='list')
		rowno = obj.id.substring(objname[2].length,obj.id.length);
	else
		rowno = obj.id.substring(objname[1].length,obj.id.length);
		
		if(obj.checked)
		{
			if(parseInt(rowno)+1==1 && fromWhere=='')	
			{
				co_alertMsg("0","errorType@NOR_ERROR##COMN057^~userMessage@Cannot delete the first record..");
				obj.checked=false;
				return;
			}
			else
			{
				var deleteboxName='';
				if(document.all)  // for IE
				{
					var col = row[parseInt(rowno)+2].getElementsByTagName('td');
					for(var i=0;i<col.length;i++)
					{
						if(!col[i].firstChild)
							break;
	
						var colname = col[i].firstChild.name.split('.');
						try
						{
							if(fromWhere=='list')
								deleteboxName = colname[2].substring(0,6);
							else
								deleteboxName = colname[1].substring(0,6);
						}catch(e){deleteboxName='';}
						if(col[i].firstChild.type=='button' || col[i].firstChild.type=='submit'  || col[i].firstChild.type=='textarea')
						{
							col[i].firstChild.disabled=true; 
						}
						else if(deleteboxName!='delete')
						{
							col[i].firstChild.disabled=true; 
							col[i].firstChild.style.backgroundColor='#c0c0c0';
							//col[i].firstChild.readOnly=true;
						}
					}

					if(col[col.length-1].firstChild.value =='O')
						col[col.length-1].firstChild.value='Z';
					else if(col[col.length-1].firstChild.value =='M')
						col[col.length-1].firstChild.value='Y';
					else if(col[col.length-1].firstChild.value =='E')
						col[col.length-1].firstChild.value='X';
					else if(col[col.length-1].firstChild.value =='N')
						col[col.length-1].firstChild.value='D';
						
				}
				else // other browsers
				{
					try
					{
						var col = row[parseInt(rowno)+2].getElementsByTagName('td');
						var deleteStatusValue='';
						try { deleteStatusValue = col[col.length-1].firstChild.nextSibling.value;	}catch(e){}
						try 
						{ 
							if(deleteStatusValue=='')
								deleteStatusValue = col[col.length-1].firstChild.value;	
						}catch(e){}

						try
						{
							for(var i=0;i<col.length;i++) 
							{
								if(!col[i].firstChild.nextSibling)
									break;
								var colname = col[i].firstChild.nextSibling.name.split('.'); 
								
								try
								{
									if(fromWhere=='list')
										deleteboxName = colname[2].substring(0,6);
									else
										deleteboxName = colname[1].substring(0,6);
								}catch(e){deleteboxName='';}	
								if(col[i].firstChild.nextSibling.type=='button' || col[i].firstChild.nextSibling.type=='submit' || col[i].firstChild.nextSibling.type=='textarea')
								{
									col[i].firstChild.nextSibling.disabled=true;
								}
								else if(deleteboxName!='delete')
								{
									col[i].firstChild.nextSibling.disabled=true; 
									col[i].firstChild.nextSibling.style.backgroundColor='#c0c0c0';
								}
							}
							if(col[col.length-1].firstChild.nextSibling.value =='O')
								col[col.length-1].firstChild.nextSibling.value='Z';
							else if(col[col.length-1].firstChild.nextSibling.value =='M')
								col[col.length-1].firstChild.nextSibling.value='Y';
							else if(col[col.length-1].firstChild.nextSibling.value =='N')
								col[col.length-1].firstChild.nextSibling.value='D';
							else if(col[col.length-1].firstChild.nextSibling.value =='E')
								col[col.length-1].firstChild.nextSibling.value='X';  
						}catch(e)
						{
							for(var i=0;i<col.length;i++)
							{
								if(!col[i].firstChild)
									break;
								var colname = col[i].firstChild.name.split('.'); 
								
								try
								{
									if(fromWhere=='list')
										deleteboxName = colname[2].substring(0,6);
									else
										deleteboxName = colname[1].substring(0,6);
								}catch(e){deleteboxName='';}
								if(col[i].firstChild.type=='button' || col[i].firstChild.type=='submit')
								{
									col[i].firstChild.disabled=true;
								}
								else if(deleteboxName!='delete')
								{
									col[i].firstChild.disabled=true; 
									col[i].firstChild.style.backgroundColor='#c0c0c0';
								}
							}
							if(col[col.length-1].firstChild.value =='E')
								col[col.length-1].firstChild.value='X';
							else if(col[col.length-1].firstChild.value =='N')
								col[col.length-1].firstChild.value='D';
							else if(col[col.length-1].firstChild.value =='M')
								col[col.length-1].firstChild.value='Y';
							else if(col[col.length-1].firstChild.value =='O')
								col[col.length-1].firstChild.value='Z';
						}
					}catch(e){}
				}
			} // else block
		}
		else  // unchecked
		{
			if(document.all)  // for IE
			{
				var firstcol = row[2].getElementsByTagName('td');
				var col = row[parseInt(rowno)+2].getElementsByTagName('td');
				for(var i=0;i<col.length;i++)
				{
					if(!col[i].firstChild)
						break;
					if(col[i].firstChild.type=='button' || col[i].firstChild.type=='textarea')
					{
						col[i].firstChild.disabled=false;
					}
					else
					{
						//col[i].firstChild.style.backgroundColor=firstcol[i].firstChild.getAttribute('currentStyle').backgroundColor;
						col[i].firstChild.disabled=false;
						col[i].firstChild.readOnly=firstcol[i].firstChild.readOnly;
						if(firstcol[i].firstChild.readOnly)
							col[i].firstChild.style.backgroundColor='#E2E2E2';
						else
							col[i].firstChild.style.backgroundColor='white';
					}
				}
				if(col[col.length-1].firstChild.value =='X')
					col[col.length-1].firstChild.value='E';
				else if(col[col.length-1].firstChild.value =='D')
					col[col.length-1].firstChild.value='N';
				else if(col[col.length-1].firstChild.value =='Y')
					col[col.length-1].firstChild.value='M';
				else if(col[col.length-1].firstChild.value =='Z')
					col[col.length-1].firstChild.value='O';

			}
			else // other browser
			{
				var firstcol = row[2].getElementsByTagName('td');
				var col = row[parseInt(rowno)+2].getElementsByTagName('td');
				
				try
				{
					var deleteStatusValue='';
					try { deleteStatusValue = col[col.length-1].firstChild.nextSibling.value;	}catch(e){}
					try 
					{ 
						if(deleteStatusValue=='')
							deleteStatusValue = col[col.length-1].firstChild.value;	
					}catch(e){}
						
					try
					{
						for(var i=0;i<col.length;i++)
						{
							if(!col[i].firstChild.nextSibling)
								break;
							if(col[i].firstChild.nextSibling.type=='button' || col[i].firstChild.nextSibling.type=='textarea')
							{
								col[i].firstChild.nextSibling.disabled=false;
							}
							else
							{
								col[i].firstChild.nextSibling.disabled=false;
								col[i].firstChild.nextSibling.readOnly=firstcol[i].firstChild.nextSibling.readOnly;
								if(firstcol[i].firstChild.nextSibling.readOnly)
									col[i].firstChild.nextSibling.style.backgroundColor='#E2E2E2';
								else
									col[i].firstChild.nextSibling.style.backgroundColor='white';
							}
						}
						if(col[col.length-1].firstChild.nextSibling.value =='Y')
							col[col.length-1].firstChild.nextSibling.value='M';
						else if(col[col.length-1].firstChild.nextSibling.value =='Z')
							col[col.length-1].firstChild.nextSibling.value='O';
						else if(col[col.length-1].firstChild.nextSibling.value =='D')
							col[col.length-1].firstChild.nextSibling.value='N';
						else if(col[col.length-1].firstChild.nextSibling.value =='X')
							col[col.length-1].firstChild.nextSibling.value='E';
					}catch(e)
					{
						for(var i=0;i<col.length;i++)
						{
							if(!col[i].firstChild)
								break;
							if(col[i].firstChild.type=='button')
							{
								col[i].firstChild.disabled=false;
							}
							else
							{
								//col[i].firstChild.style.backgroundColor=firstcol[i].firstChild.nextSibling.style.backgroundColor;
								//col[i].firstChild.readOnly=firstcol[i].firstChild.nextSibling.readOnly;
								col[i].firstChild.disabled=false;
								col[i].firstChild.readOnly=firstcol[i].firstChild.nextSibling.readOnly;
								if(firstcol[i].firstChild.nextSibling.readOnly)
									col[i].firstChild.style.backgroundColor='#E2E2E2';
								else
									col[i].firstChild.style.backgroundColor='white';
							}
						}
						if(col[col.length-1].firstChild.value =='X') 
							col[col.length-1].firstChild.value='E';
						else if(col[col.length-1].firstChild.value =='D')
							col[col.length-1].firstChild.value='N';
						else if(col[col.length-1].firstChild.value =='Y')
							col[col.length-1].firstChild.value='M';
						else if(col[col.length-1].firstChild.value =='Z')
							col[col.length-1].firstChild.value='O';
					} //CATCH
				}catch(e){}
			}
		} // else block ends
}

function co_deleteRow(obj,tableid,mode)
{
	co_deleteRowNew(obj,tableid,mode,'');
}
function co_deleteRowTrnList(obj,tableid,mode,fromWhere)
{
	co_deleteRowNew(obj,tableid,mode,fromWhere);
}
/**
	This function will reset the readonly color and disabled attribute in details, when 
	validator fails
*/

function co_resetDetailColor(tableid,checkBoxName)
{
	var tbody = document.getElementById(tableid).getElementsByTagName('tbody')[0];
	var table = document.getElementById(tableid);
	var row = table.getElementsByTagName('tr');
	for(var j=0;j<row.length-2;j++)
	{
		if(document.getElementById(checkBoxName+j).checked)
			co_deleteRowTrnList(document.getElementById(checkBoxName+j),tableid,'');
	}
}

function co_resetDetailColorTrnList(tableid,checkBoxName)
{
	var tbody = document.getElementById(tableid).getElementsByTagName('tbody')[0];
	var table = document.getElementById(tableid);
	var row = table.getElementsByTagName('tr');
	for(var j=0;j<row.length-2;j++)
	{
		if(document.getElementById(checkBoxName+j).checked)
			co_deleteRowTrnList(document.getElementById(checkBoxName+j),tableid,'','list');
	}
}
function co_changeDeleteStatus(currentObj)
{
	var thisname = currentObj.name.split('.');
	var thisid= currentObj.id;
	var rowno= thisid.substring(thisname[1].length,thisid.length);
	try
	{
			var deleteStatus=document.getElementById('deleteStatus'+rowno).value;
			if(deleteStatus=='O')
				document.getElementById('deleteStatus'+rowno).value ='M'
			else if(deleteStatus=='E')
				document.getElementById('deleteStatus'+rowno).value='N';
	}catch(e){}
}

/*
	When we are submitting the form without entering mandatory fields, client side validation 
	will change the background color into yellow.
	This function for Changing the white background 
*/
function co_changeBackgroundColor(obj)
{
		obj.style.background="white";
}

/*
	This function will change the background color as white, when we are switching the mode or 
	submitting the form.
*/
function co_changeNormalColor()
{
	var textObj = document.getElementsByTagName('input');
	for(var i=0;i<textObj.length;i++)
	{
		if(textObj[i].type=='text'&& textObj[i].readOnly==false && textObj[i].disabled == false)
			textObj[i].style.background="white";
	}	
	var textAreaObj = document.getElementsByTagName('textarea');
	for(var i=0;i<textAreaObj.length;i++)
	{
	   if( textAreaObj[i].readOnly==false && textAreaObj[i].disabled == false)
		textAreaObj[i].style.background="white";
	}
}

/*
	This function will popup message, when clicking disabled fields.
*/


/**
	This Function checking the program accessability based on the mstparameter values.
*/
function co_programAccessability(mode,fieldObj,fieldButObj)
{
	
	document.getElementById(fieldObj).disabled=false;
	document.getElementById(fieldButObj).disabled=false;

	if(mode != 'SAVE' && mode != 'CANCEL' && mode != 'PRINT')
		document.getElementById(fieldObj).value=currentLocationCode;
		
	document.getElementById(fieldObj).disabled=true;
	document.getElementById(fieldButObj).disabled=true;
	return true;
	
	/*if(document.getElementById(fieldObj) && document.getElementById(fieldButObj))  
	{
		if(mstByLocation=='Y')
		{
			document.getElementById(fieldObj).disabled=false;
			document.getElementById(fieldButObj).disabled=false;
			document.getElementById(fieldObj).value=currentLocationCode;
			document.getElementById(fieldObj).disabled=true;
			document.getElementById(fieldButObj).disabled=true;
		    return true;
		} 
		else
		{
			 if(currentLocationCode!=mainLocationCode)
			 {	  
				if(mode=='VIEW')
				{
				 	document.getElementById(fieldObj).disabled=false;
				  	document.getElementById(fieldButObj).disabled=false;
				 	document.getElementById(fieldObj).value=currentLocationCode;
			  		document.getElementById(fieldObj).disabled=true;
					document.getElementById(fieldButObj).disabled=true;
		   			return true; 
			   	} 
			  	else
		  		{
				    var errorstatus = "errorType@NOR_ERROR##COMN013^~userMessage@You are not allowed to add record from this location";
					co_alertMsg("0",errorstatus); 
			      	return false;
			  	} 
			}
			else
			{
				document.getElementById(fieldObj).disabled=false;
	 			document.getElementById(fieldButObj).disabled=false;
				document.getElementById(fieldObj).value=mainLocationCode;
		  		document.getElementById(fieldObj).disabled=true;
				document.getElementById(fieldButObj).disabled=true;
				return true;
			}	     
		 }
	}
*/
}

function co_companyAccessability(mode)
{
	/*if(fixMstDefaultCompCode=='Y')
    {
        document.getElementById('compCode').disabled=false;
        document.getElementById('compCodeBut').disabled=false;
        document.getElementById('compCode').value=defaultCompCode;
        document.getElementById('compCode').style.color='navy';
        if(mode !='VIEW')
        {
            document.getElementById('compCode').disabled=true;
            document.getElementById('compCodeBut').disabled=true;
        }
   	}
    else
    {
        document.getElementById('compCode').disabled=false;
        document.getElementById('compCodeBut').disabled=false;
        document.getElementById('compCode').value=defaultCompCode;
        document.getElementById('compCode').style.color='navy';
    } */
}

function co_branchAccessability(mode)
{

/*	if(fixMstDefaultBranchCode=='Y')
    {
        document.getElementById('branchCode').disabled=false;
        document.getElementById('branchCodeBut').disabled=false;
        document.getElementById('branchCode').value=defaultBranchCode;
        document.getElementById('branchCode').style.color='navy';
        if(mode !='VIEW')
        {
    	    document.getElementById('branchCode').disabled=true;
        	document.getElementById('branchCodeBut').disabled=true;
        }
    }
    else
    {
        document.getElementById('branchCode').disabled=false;
        document.getElementById('branchCodeBut').disabled=false;
        document.getElementById('branchCode').value=defaultBranchCode;
        document.getElementById('branchCode').style.color='navy';
    } */
}
/**
	To disable the location , company and branch codes
*/
function co_disableLocationCompBranch() 
{
	if($('docLocation'))
	{
		$('docLocation').disabled=true;
		$('docLocationBut').disabled=true;
	}
	else if($('locationCode'))
	{
		$('locationCode').disabled=true;
		$('locationCodeBut').disabled=true;
	}
	else if($('createdLocation'))
	{
		$('createdLocation').disabled=true;
		$('createdLocationBut').disabled=true;
	}
	if($('compCode'))
	{
		$('compCode').disabled=true;
		$('compCodeBut').disabled=true;
	}
	if($('branchCode'))
	{
		$('branchCode').disabled=true;
		$('branchCodeBut').disabled=true;
	}
}

function co_disableSaveMode(obj)
{
	if(obj.id=='saveimage' || obj.id=='savmode')
	{
		document.getElementById('saveimage').style.visibility  = "hidden";
		document.getElementById('savmode').style.visibility = "hidden";
	}
}

function co_showMode(mode,primaryField)
{
	if(document.getElementById('tab0'))
		document.getElementById('tab0').onclick();
	if(mode=='VIEW')
	{
		if(document.getElementById('addimage')&& document.getElementById('addmode'))
		{
			document.getElementById('addimage').style.visibility="visible";
			document.getElementById('addmode').style.visibility="visible";
		}
		if(document.getElementById('editimage')&& document.getElementById('editmode'))
		{
			document.getElementById('editimage').style.visibility="visible";
			document.getElementById('editmode').style.visibility="visible";
		}
		if(document.getElementById('cutimage')&& document.getElementById('cutmode'))
		{
			document.getElementById('cutimage').style.visibility="visible";
			document.getElementById('cutmode').style.visibility="visible";
		}
		if(document.getElementById('printimage')&& document.getElementById('printmode'))
		{
			document.getElementById('printimage').style.visibility="visible";
			document.getElementById('printmode').style.visibility="visible";
		}
		if(document.getElementById('viewimage')&& document.getElementById('viewmode'))
		{
			document.getElementById('viewimage').style.visibility="visible";
			document.getElementById('viewmode').style.visibility="visible";
		}	
		if(document.getElementById('exitimage')&& document.getElementById('exitmode'))
		{
			document.getElementById('exitimage').style.visibility="visible";
			document.getElementById('exitmode').style.visibility="visible";
		}
		if(primaryField !='')
		{
			if(document.getElementById('copyimage')&& document.getElementById('copymode'))
			{
				document.getElementById('copyimage').style.visibility="visible";
				document.getElementById('copymode').style.visibility="visible";
			}
		}
		else
		{
			if(document.getElementById('copyimage')&& document.getElementById('copymode'))
			{
				document.getElementById('copyimage').style.visibility="hidden";
				document.getElementById('copymode').style.visibility="hidden";
			}
		}
		
		if(document.getElementById('cancelimage')&& document.getElementById('cancelmode'))
		{
			document.getElementById('cancelimage').style.visibility="hidden";
			document.getElementById('cancelmode').style.visibility="hidden";
		}
		if(document.getElementById('saveimage')&& document.getElementById('savmode'))
		{
			document.getElementById('saveimage').style.visibility="hidden";
			document.getElementById('savmode').style.visibility="hidden";
		}
	}
	else if(mode=='ADD' || mode=='EDIT' || mode=='CUT')
	{
		if(primaryField !='')
		{
			if(document.getElementById('addimage')&& document.getElementById('addmode'))
			{
				document.getElementById('addimage').style.visibility="hidden";
				document.getElementById('addmode').style.visibility="hidden";
			}	
			if(document.getElementById('editimage')&& document.getElementById('editmode'))
			{
				document.getElementById('editimage').style.visibility="hidden";
				document.getElementById('editmode').style.visibility="hidden";
			}
			if(document.getElementById('cutimage')&& document.getElementById('cutmode'))
			{
				document.getElementById('cutimage').style.visibility="hidden";
				document.getElementById('cutmode').style.visibility="hidden";
			}
			if(mode=='EDIT')
			{
				if(document.getElementById('printimage')&& document.getElementById('printmode'))
				{
					document.getElementById('printimage').style.visibility="visible";
					document.getElementById('printmode').style.visibility="visible";
				}				
			}
			else
			{
				if(document.getElementById('printimage')&& document.getElementById('printmode'))
				{
					document.getElementById('printimage').style.visibility="hidden";
					document.getElementById('printmode').style.visibility="hidden";
				}	
			}
			if(document.getElementById('viewimage')&& document.getElementById('viewmode'))
			{
				document.getElementById('viewimage').style.visibility="hidden";
				document.getElementById('viewmode').style.visibility="hidden";
			}
			if(document.getElementById('exitimage')&& document.getElementById('exitmode'))
			{
				document.getElementById('exitimage').style.visibility="hidden";
				document.getElementById('exitmode').style.visibility="hidden";
			}
			if(document.getElementById('cancelimage')&& document.getElementById('cancelmode'))
			{
				document.getElementById('cancelimage').style.visibility="visible";
				document.getElementById('cancelmode').style.visibility="visible";
			}
			if(mode=='ADD')
			{
				if(document.getElementById('copyimage')&& document.getElementById('copymode'))
				{
					document.getElementById('copyimage').style.visibility="hidden";
					document.getElementById('copymode').style.visibility="hidden";
				}
			}
			else
			{
				if(document.getElementById('copyimage')&& document.getElementById('copymode'))
				{
					document.getElementById('copyimage').style.visibility="visible";
					document.getElementById('copymode').style.visibility="visible";
				}
			}
			
			if(document.getElementById('saveimage')&& document.getElementById('savmode'))
			{
				document.getElementById('saveimage').style.visibility="visible";
				document.getElementById('savmode').style.visibility="visible";
			}
		}
		else
		{
			if(document.getElementById('addimage')&& document.getElementById('addmode'))  
			{
				document.getElementById('addimage').style.visibility="hidden";
				document.getElementById('addmode').style.visibility="hidden";
			}
			if(document.getElementById('editimage')&& document.getElementById('editmode'))
			{
				document.getElementById('editimage').style.visibility="hidden";
				document.getElementById('editmode').style.visibility="hidden";
			}
			if(document.getElementById('cutimage')&& document.getElementById('cutmode'))
			{
				document.getElementById('cutimage').style.visibility="hidden";
				document.getElementById('cutmode').style.visibility="hidden";
			}
			if(document.getElementById('printimage')&& document.getElementById('printmode'))
			{
				document.getElementById('printimage').style.visibility="hidden";
				document.getElementById('printmode').style.visibility="hidden";
			}
			if(document.getElementById('viewimage')&& document.getElementById('viewmode'))
			{
				document.getElementById('viewimage').style.visibility="hidden";
				document.getElementById('viewmode').style.visibility="hidden";
			}
			if(document.getElementById('exitimage')&& document.getElementById('exitmode'))
			{
				document.getElementById('exitimage').style.visibility="visible";
				document.getElementById('exitmode').style.visibility="visible";
			}
			if(document.getElementById('saveimage')&& document.getElementById('savmode'))
			{
				document.getElementById('saveimage').style.visibility="hidden";
				document.getElementById('savmode').style.visibility="hidden";
			}
			if(document.getElementById('copyimage')&& document.getElementById('copymode'))
			{
				document.getElementById('copyimage').style.visibility="hidden";
				document.getElementById('copymode').style.visibility="hidden";
			}
			if(document.getElementById('cancelimage')&& document.getElementById('cancelmode'))
			{
				document.getElementById('cancelimage').style.visibility="visible";
				document.getElementById('cancelmode').style.visibility="visible";
			}
		}
	}
	else if(mode=='CANCEL')
	{
		if(primaryField !='')
		{
			if(document.getElementById('cancelimage')&& document.getElementById('cancelmode'))
			{
				document.getElementById('cancelimage').style.visibility="visible";
				document.getElementById('cancelmode').style.visibility="visible";
			}
			if(document.getElementById('exitimage')&& document.getElementById('exitmode'))
			{
				document.getElementById('exitimage').style.visibility="visible";
				document.getElementById('exitmode').style.visibility="visible";
			}			
			if(document.getElementById('saveimage')&& document.getElementById('savmode'))
			{
				document.getElementById('saveimage').style.visibility="hidden";
				document.getElementById('savmode').style.visibility="hidden";
			}
			if(document.getElementById('copyimage')&& document.getElementById('copymode'))
			{
				document.getElementById('copyimage').style.visibility="hidden";
				document.getElementById('copymode').style.visibility="hidden";
			}
			if(document.getElementById('mode').value!='VIEW')
			{
				if(document.getElementById('printimage')&& document.getElementById('printmode'))
				{
					document.getElementById('printimage').style.visibility="hidden";
					document.getElementById('printmode').style.visibility="hidden";
				}
			}
			else
			{
				if(document.getElementById('printimage')&& document.getElementById('printmode'))
				{
					document.getElementById('printimage').style.visibility="visible";
					document.getElementById('printmode').style.visibility="visible";
				}
			}
		}
		else
		{
			if(document.getElementById('addimage')&& document.getElementById('addmode'))
			{
				document.getElementById('addimage').style.visibility="visible";
				document.getElementById('addmode').style.visibility="visible";
			}
			if(document.getElementById('editimage')&& document.getElementById('editmode'))
			{
				document.getElementById('editimage').style.visibility="visible";
				document.getElementById('editmode').style.visibility="visible";
			}
			if(document.getElementById('cutimage')&& document.getElementById('cutmode'))
			{
				document.getElementById('cutimage').style.visibility="visible";
				document.getElementById('cutmode').style.visibility="visible";
			}
			if(document.getElementById('printimage')&& document.getElementById('printmode'))
			{
				document.getElementById('printimage').style.visibility="visible";
				document.getElementById('printmode').style.visibility="visible";
			}
			if(document.getElementById('viewimage')&& document.getElementById('viewmode'))
			{
				document.getElementById('viewimage').style.visibility="visible";
				document.getElementById('viewmode').style.visibility="visible";
			}
			if(document.getElementById('exitimage')&& document.getElementById('exitmode'))
			{
				document.getElementById('exitimage').style.visibility="visible";
				document.getElementById('exitmode').style.visibility="visible";
			}
			if(document.getElementById('cancelimage')&& document.getElementById('cancelmode'))
			{
				document.getElementById('cancelimage').style.visibility="hidden";
				document.getElementById('cancelmode').style.visibility="hidden";
			}
			if(document.getElementById('copyimage')&& document.getElementById('copymode'))
			{
				document.getElementById('copyimage').style.visibility="hidden";
				document.getElementById('copymode').style.visibility="hidden";
			}
		}
	}
}

function co_validateUserSecurity(mode)
{	
	var result=false;
	var userPermission=userAccessRights.split('^~');
	if(mode=='ADD' && userPermission[0]=='Y')
		result = true;
	else if(mode=='EDIT' && userPermission[1]=='Y')
		result = true;
	else if(mode=='CUT' && userPermission[2]=='Y')
		result = true;
	else if(mode=='VIEW' && userPermission[3]=='Y')
		result = true;
	else if(mode=='PRINT' && userPermission[4]=='Y')
		result = true;
	else if(mode=='SAVE')
		result= true;
	else if(mode=="CANCEL")	
		result = true;
	else if(mode=="EXIT")
		result = true;
	return result;
}

/**
 * event :onblur
 * This function checks the given date is valid or not for the specified pattern
 * pattern as string format.
 */
var dateObj='';
function co_validateDate(obj,patternValue)
{
  if(obj.value != '')
  {
	dateObj = obj;
	ajaxpack.getAjaxRequest('dateNumberValidator.do','blockName=dateValidation&fieldValue='+escape(dateObj.value)+'&pattern='+patternValue,co_validateResult,"xml","",'');
  }	
}	

function co_compareDates(dateObj1,dateObj2,dtPattern)
{
	if(dateObj2.value != '' && dateObj1.value != '')
	{
		dateObj = dateObj2;
		var fieldValues ="fromDate@"+dateObj1.value+"^~toDate@"+dateObj2.value+"^~pattern@"+dtPattern+"^~firstDateName@"+dateObj1.id+"^~secondDateName@"+dateObj2.id;
		ajaxpack.getAjaxRequest('dateNumberValidator.do','fieldName='+dateObj.name+'&blockName=dateComparision&fieldValues='+fieldValues,co_validateResult,"xml","",'');
	}	
}

//To compare the dates,passing the label of comparing field names.
function co_compareFromToDates(dateObj1,dateObj2,dtPattern,firstDateLabelName,secondDateLabelName)
{
	if(dateObj2.value != '')
	{
		dateObj = dateObj2;
		var fieldValues ="fromDate@"+dateObj1.value+"^~toDate@"+dateObj2.value+"^~pattern@"+dtPattern+"^~firstDateName@"+firstDateLabelName+"^~secondDateName@"+secondDateLabelName;
		ajaxpack.getAjaxRequest('dateNumberValidator.do','fieldName='+dateObj.name+'&blockName=dateComparision&fieldValues='+fieldValues,co_validateResult,"xml","",'');
	}	
}

function co_validateResult()
{
  try{
	if (ajaxpack.ajaxobj.readyState == 4)  
		if (ajaxpack.ajaxobj.status==200)
		{
			var error = '';
		    var errorType = '';
		    var errorCode = '';
		 	var userMessage = '';
		    var dbMsg = '';
		    var appendMsg = '';
	    
			try{ document.getElementById(obj.id).style.color='navy'; }catch(e){}   
			
		    var respXml 	= ajaxpack.ajaxobj.responseXML; 
		    var error  		= respXml.getElementsByTagName("errorMsg")[0].childNodes[0].nodeValue;
		    
		   	var errors 	 	= error.split('^~');
			try {errorType 	= errors[0].split('@')[1].split('##')[0];}catch(e){}
			try {errorCode 	= errors[0].split('@')[1].split('##')[1];}catch(e){}
			try {userMessage= errors[1].split('@')[1];}catch(e){}
			try {dbMsg 		= errors[2].split('@')[1];}catch(e){}
			try {appendMsg 	= errors[3].split('@')[1];}catch(e){}
			
			
			if(error !='NOERR##INFO999') 	 
		     {
		 	  	co_alertMsg("0",error,'Error'); 

				if( errorType == 'NOR_ERROR' )
				{
	       			try{ document.getElementById(dateObj.id).style.color='red'; }catch(e){} 
	       		}	
	       		return false;    
		      }	
		      else  // no error case
		      {
		           try{ document.getElementById(dateObj.id).style.color='navy';}catch(e){}   		            
	 		  } 
		}
	}catch(e){}	
}		

/**
 * event : onblur
 * This function truncates the exceeding characters for textarea field , when the length is
 * greater than specified length. 
 */
function co_trimLength(Obj,len)
{
	var textAreaValue=Obj.value;
	if(textAreaValue.length>len)
	{
	    var errorstatus = "errorType@NOR_ERROR##COMN063^~userMessage@Characters exceeding the limit will be ommitted!";
		co_alertMsg("0",errorstatus); 
		textAreaValue=textAreaValue.substr(0,len);
		Obj.value=textAreaValue;
	}
}	

function co_openWindow(url,widthheight,windowName)  
{
      if(windowName == "")
         windowName = "popupwindow"+new Date();
      if(myWin)
      {
         myWin.close();
      }   
    
      myWin = window.open(url,windowName, widthheight+",status=no,toolbar=no,menubar=no,location=no"); 
      return true;
}

function co_checkCancel()
{
	var result =false;
	if(confirm("Do you want to cancel the current operation..?"))
		result = true;
	else
		result = false;
	return result;
}

function co_checkReset()
{
	var result =false;
	if(confirm("Do you want to reset the values..?"))
		result = true;
	else
		result = false;
	return result;
}


//To open new Text editing window.
var textEditWin = null;
var textAreaObj = null; 
function co_showDetail(obj,maxlength,heading)
{
	textAreaObj = obj;
	if(textEditWin == null ){
		textEditWin = window.open("jsp/common/textDraftWindow.jsp?header="+heading+"&max="+maxlength+"&objId="+obj.id,"_blank","width=520px,height=420px,top=75px,left=250px,status=0,scrollbars=0,resize=0");
	} else {
		textEditWin.focus();
	}
}

//Callback function from Text editing window to update the value.
function co_backUpdateText(value,textArea) {
	try {
		window.focus();
		textArea.focus(); 
		textArea.value = decodeURIComponent(value);
		textArea.focus();
		if(textArea.onchange)
			textArea.onchange();
		
		textEditWin = null;
		textAreaObj = null;
	} catch (e) {
		textEditWin = null;
		textAreaObj = null;
	}
}


// This Fucntion open nature of Goods\Remarks Div For MAWB\HAWB\SAWB
var awbTextArea;
 var awbTextEditWin;
 function co_showNatureOfGoodsAndRemarksMbl(objSend) {
 	awbTextArea = objSend;
 	if(awbTextEditWin == null) {
 		awbTextEditWin = window.open("jsp/common/textDraftWindowMbl.jsp","_blank","width=685,height=550,top=75,left=250,status=0,scrollbars=0,resize=0");
 	} else {
 		awbTextEditWin.focus();
 	}
 }
 
 function co_backUpdateAwbText(value,textArea) {
 	
 	try {
 		window.focus();
 		awbTextArea.focus();
	 	if (document.getElementById('mode').value != 'VIEW') {
			awbTextArea.value = decodeURIComponent(value);
			var fName = awbTextArea.name;
				
			if (awbTextArea.id != 'txtField8') {
	    		fName = fName.substring(fName.lastIndexOf('.')+1,fName.length);
			    var index = awbTextArea.id.substring(fName.length,awbTextArea.id.length);
			    if(document.getElementById('deleteStatusCargo'+index).value == 'E')
			    	document.getElementById('deleteStatusCargo'+index).value = 'N';
			    else if(document.getElementById('deleteStatusCargo'+index).value == 'O')
			    	document.getElementById('deleteStatusCargo'+index).value = 'M';
		    }
		 	awbTextArea.focus();
			if(awbTextArea.onchange)
				awbTextArea.onchange();
			awbTextArea = null; 
			awbTextEditWin = null;	
			
		 	
		}
	} catch (e) {
		awbTextArea = null;
		awbTextEditWin = null;
	}
}

/* globalObj = '';
 var globalNatureOfGoods = '';
 function co_showNatureOfGoodsAndRemarks(objSend,objLength,objTitle,fieldId){
  globalObj = document.getElementById('remarksDtl0') 
	document.getElementById('natureDiv').style.visibility='visible'; 
	document.getElementById('remarksTemp').value= globalObj.value;
	globalNatureOfGoods = document.getElementById(fieldId);
	document.getElementById('natureTemp').value = document.getElementById(fieldId).value;
	if(document.getElementById('mode').value=='VIEW')
	{
		document.getElementById('remarksTemp').readOnly=true;
		document.getElementById('natureTemp').readOnly=true;
		document.forms[0].okbtn.focus();
	}
	else
	{
		document.getElementById('remarksTemp').focus();
	}
 }
 
function co_showNatureOfGoodsAndRemarksMbl(objSend)
{
	globalObj=objSend;
	document.getElementById('natureDivMbl').style.visibility='visible';
	try
	{
		if(globalObj.value!='')
		{
			var splitNature = (globalObj.value).split("<@>");
			document.getElementById('nature1').value=splitNature[0];
			if(splitNature.length>1)
				document.getElementById('nature2').value=splitNature[1];	 
		}
	}catch(e){}
	setMeterNature(document.getElementById('nature1'));
	setMeterNature(document.getElementById('nature2'));
		
	if(document.getElementById('mode').value=='VIEW')
	{
		document.getElementById('nature1').readOnly=true;
		document.getElementById('nature2').readOnly=true;
		document.getElementById('okbtn').focus();
	}
	else
	{
		document.getElementById('nature1').focus();
	}
}*/
 
function co_numberAndCharCheck(myEvent)
{
    var key = window.event ? window.event.keyCode : myEvent.charCode;  
  	if(window.event)
  	{
      	if( (key >=48 && key<=57) || (key >=65 && key<=90) || (key >=97 && key<=122)|| key==43 || key==45) 
			return;
		else
			window.event.keyCode=0;
	}
	else
	{
      	if( (key >=48 && key<=57) || (key >=65 && key<=90) || (key >=97 && key<=122)|| key==43 || key==45 || key==0) 
			return;
		else
		{
			myEvent.preventDefault();
		}
	}
} 
function co_confirm(msg)
{
	if(confirm(msg))
		return true;
	else
		return false;
}




function $(id){return document.getElementById(id);}




var updateableFields = new Array();
var updatedFieldsIndex=0;
var dtlIndex = -1;


function co_getXmlData(mainArray)
{
    updateableFields = new Array()
    var xmlData ="";
  	for(var eachItem=0;eachItem<mainArray.length;eachItem++)
	{
	    var eachArrayItem= mainArray[eachItem];
	    var type = eachArrayItem[0]; 
	    if(type == 'single')
 	    {
		    var dtoName = eachArrayItem[1];
		    var fields  = eachArrayItem[3].split('#');
		    
		    xmlData	+= "<"+dtoName+">"; 
			xmlData	+= co_composeXmlString(type,fields,''); 
			xmlData	+= "</"+dtoName+">"; 
					
		    var eachColum = eachArrayItem[4].split('#');
			for(var i =0;i<eachColum.length;i++)
			{
			    if(eachColum[i] != '')
					updateableFields[updatedFieldsIndex++] =dtoName+'.'+eachColum[i];
			}
			
		}   
		else if(type == 'map')
		{          
			try
			{
				var table = document.getElementById(eachArrayItem[5]); // index No: 5  purpose : table name 
				var row = table.getElementsByTagName('tr').length-2;
				var indexdtl;
				try{
				    indexdtl = eachArrayItem[6].toString().split(',');	// Index No: 6  purpose : All or particular row index numbers
				}catch(e){alert(e.description)}

				// dtl list name	
				xmlData	+= "<"+eachArrayItem[1]+">";
					
				for(var rowIter=0;rowIter<row;rowIter++)
				{

					if(eachArrayItem[6]!= 'All' && co_IndexOf( indexdtl, ''+rowIter) == -1)
						continue;
				       
				   try{
						var eachColum = eachArrayItem[3].split('#');
					}catch(e){alert(e.description);}

						
						// readable fields						
						// dtl each row wise data
			       	xmlData	+= "<"+eachArrayItem[2]+" index='"+rowIter+"'>"; 
					xmlData	+= co_composeXmlString(type,eachColum,rowIter); 
					xmlData	+= "</"+eachArrayItem[2]+">"; 

						// updateable fields
					eachColum = eachArrayItem[4].split('#');
					for(var i =0;i<eachColum.length;i++)
					{
						if(eachColum[i] =='') 
	       					continue;
						updateableFields[updatedFieldsIndex++] = eachArrayItem[1]+'['+rowIter+'].'+eachColum[i];
					}
						
						
				}  // each row for loop end
				
				xmlData	+= "</"+eachArrayItem[1]+">";
				
			}catch(e){}	
				
		}
	}

	xmlData = "data=<screendataxml>"+xmlData+"</screendataxml>";
	return xmlData;
}


function co_composeXmlString(type,fields,rowIndex)
{
    var returnValue = '';
    
	for(var i =0;i<fields.length;i++)
	{
		if(fields[i] =='') 
			continue;
		try
		{
		    var fieldName = fields[i];
		    var fieldId = '';

			if(type == 'map')
				fieldId = fields[i]+rowIndex;
	   		else	
				fieldId =fieldName;
									
			if($(fieldId).type=='checkbox')
			{	
				var chkBoxValue='';
				try
				{
					if($(fieldId).checked==true)
						chkBoxValue = 'true';
	    	   		else
	   	   				chkBoxValue ='false';
	    	   	}catch(e){}
	       		returnValue += "<"+fieldName+">"+chkBoxValue+"</"+fieldName+">";
	       	}
			else
				returnValue += "<"+fieldName+"><![CDATA["+escape($(fieldId).value)+"]]></"+fieldName+">";
	
		}catch(e){}	
							
	}  // end of for loop 
	
	return returnValue;
}


function co_xmlToHtml(){
	try {
	if (ajaxpack.ajaxobj.readyState == 4)  
		if (ajaxpack.ajaxobj.status==200)
		{  
		    var respXml = ajaxpack.ajaxobj.responseXML; 	
            var allTag  = respXml.getElementsByTagName("field"); 

            for(var i=0;i<allTag.length;i++)
            {
                var resultTagName = allTag[i].getAttribute('name');
                var arrIndex = co_IndexOf(updateableFields, resultTagName);
                if(arrIndex == -1)
	                  continue;
                 updateableFields.splice(arrIndex,1); // remove particular item from Array. To increase performance
                 
				  try {
			        	var aInput= document.getElementsByName(resultTagName);
			        	 if(aInput.length == 0)
			        	 {
 			        	 	if(aInput.type=='checkbox') 
 			        	 	{
				        		if(allTag[i].getAttribute('value')=='Y' || allTag[i].getAttribute('value')=='true')
			        	 			document.getElementById(resultTagName).checked = true;
			        	 		else 
			        	 		    document.getElementById(resultTagName).checked = false;
			        	 	}
			        	 	else 
			        	 	{
			        	 	  if(document.getElementById(resultTagName))
 						    	document.getElementById(resultTagName).value = allTag[i].getAttribute('value').replaceAll('<br>','\n');
 						    }
      				      }	
				          else
				          {
				        	 if(aInput[0].type=='checkbox') 
				        	 {
				        	 	if(allTag[i].getAttribute('value')=='Y' || allTag[i].getAttribute('value')=='true')
				        	 		aInput[0].checked = true;
				        	 	else 
				        	 	    aInput[0].checked = false;
				        	 }
				        	 else 
				        	 {
				        	   if(aInput[0])
						       	aInput[0].value = allTag[i].getAttribute('value').replaceAll('<br>','\n'); 
						     }
					      }	
				         

				  }catch(e) {alert(e.description);}			 		
				  

			}  // all tag  for loop
		} // status ==200  
	}catch (e){
		
	}
}


/*----------------------Setting Default document Number in Add Mode---------------------------*/
function co_setDocumentNumber(obj)
{
	if((document.forms[0].mode.value == 'ADD' || document.forms[0].mode.value == 'COPY') && (obj.value == "" || obj.value == "0")) {
		obj.value = '99999999';
	}
}			


function co_getValueFromXmlResponse(allTag,fieldName)
{
   var fieldValue  = '';
   for(var i=0;i<allTag.length;i++)
   {
     if(allTag[i].getAttribute('name') == fieldName)
     {
       fieldValue = allTag[i].getAttribute('value');
       break;
     }
   }  
   return fieldValue;
   
}

//To Disable the element at 'from' position to element at 'to' position
function co_disableFields(from,to)
{
	for(var i=from;i<=to;i++) {
		if(document.forms[0].elements.item(i).type != 'hidden')
			document.forms[0].elements.item(i).disabled=true;
	}
}

//To Enable the element at 'from' position to element at 'to' position
function co_enableFields(from,to)
{

	for(var i=from;i<=to;i++) {
		document.forms[0].elements.item(i).disabled=false;
	}
}

function co_onclickForImage(eventObj)
{
	if (document.all)
	{
		window.event.returnValue = false;
	}
	else
	{
		if (eventObj.cancelable )
		{
			eventObj.preventDefault();
		}
	}
}

function co_setVerticalAlign(objId)
{
	try 
	{ 
		if(objId!='')
			document.getElementById(objId).parentNode.setAttribute('valign','top'); 
	}catch(e){}
}

/**
This is the  function used for finding the array index value when using IE
**/
function co_IndexOf( array, value)
   {
       if(!Array.indexOf)
       {
           for(var i=0; i<array.length; i++)
           {
               if(array[i]==value)
               {
                   return i;
                }                }
           return -1;
       }
       else
       {
           return array.indexOf(value);
       }
   }   

function co_openThemeWindow(obj)
{
	co_openWindow("jsp/common/updateTheme.jsp?themeName="+obj.id,"left=700,top=30,width=80,height=10","Theme");
}

/*
function co_callLinkToJob(obj,trnSource,tableId) 
{
	var mode = document.getElementById('mode').value;
	
	if(mode=='ADD' && (trnSource=='IAE' || trnSource=='IAI' || trnSource=='ISE' || trnSource=='ISI' || trnSource=='IOU'))
		return;
	var index = parseInt(obj.id.substring(9,obj.id.length));
	var srlNoIndex = document.getElementById('srlNo'+index).value;
	var rangeFrom = parseInt(srlNoIndex/10)*10+1;
	var rangeTo   = parseInt(srlNoIndex/10)*10+10;
	var incExp = 'E';
	var amounts = '';
	var codes = '';
	var srlNo = '';
	var mstTypes = '';
	if(rangeTo>co_checkMaxSrlNo(tableId))
		rangeTo = co_checkMaxSrlNo(tableId)-1;
	for(i = rangeFrom;i<=rangeTo;i++) 
	{
		j=0;
		while(j<co_getRowCount(tableId)) 
		{
			if(document.getElementById('srlNo'+j).value == i) 
			{
				if(document.getElementById('deleteStatus'+j).value !='Z' && document.getElementById('deleteStatus'+j).value !='Y' && document.getElementById('deleteStatus'+j).value !='X' && document.getElementById('deleteStatus'+j).value !='D')  
				{
					if(document.getElementById('itemAmt'+j).value=='')
						amounts = amounts +'0';
					else
						amounts = amounts+document.getElementById('itemAmt'+j).value;
					
					if(document.getElementById('glCode'+j).value=='')
						codes = codes +'-';
					else
						codes = codes+document.getElementById('glCode'+j).value;
					
					if(document.getElementById('srlNo'+j).value=='')
						srlNo = srlNo +'-';
					else
						srlNo = srlNo+document.getElementById('srlNo'+j).value

					if(i!=rangeTo) 
					{
						amounts = amounts+'^~';
						codes = codes+'^~';
						srlNo = srlNo+'^~';
					}
				}
			}
			j++;
		}// while loop
	} // for loop
	var url='LinkToJob.do?mode='+document.getElementById('mode').value+'&docLocation='+document.getElementById('docLocation').value+'&compCode='+document.getElementById('compCode').value+'&branchCode='+document.getElementById('branchCode').value+'&trnSource='+trnSource+'&trnType='+document.getElementById('docType').value+'&trnNo='+document.getElementById('docNo').value+'&rangeFrom='+rangeFrom+'&rangeTo='+rangeTo+'&exchRate='+document.getElementById('exchRate').value+'&incExp='+incExp+'&curCode='+document.getElementById('curCode').value+'&runNumber='+document.getElementById('runNumber').value+'&amounts='+amounts+'&codes='+codes+'&srlNo='+srlNo;
	window.open(url,null,"height=500,width=900,top=0,left=0,status=yes,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes");
}		
	*/  
	function co_showPopText()
	{
	
	}
	
    function co_TrimS()
    { 
 	  return (this.toString() ? this.toString().replace(/\s+$|^\s*/g, "") : "")
    }
	
	String.prototype.trim = co_TrimS;
	
	function co_replaceMethod(searchString,replaceString)
	{
		var thisString = this.toString();
		var re=new RegExp(searchString,"g");
		var thisString = thisString.replace(re,replaceString);
		return thisString;
	}
	
	
/*---------Function to change the case while entering 'y' or 'n'---------------------------*/
	/*function co_convertCase()
	{
		var key = window.event ? window.event.keyCode : myEvent.charCode;
		if(key>=97 && key<=122)
		{
			key = key-32;
			window.event.keyCode= key;
		}
	}*/
	
	/**
		event : onkeyup
		To convert small letters to capital letters
	*/
	function co_convertCase(obj)
	{
		try { obj.value = obj.value.toUpperCase(); }catch(e){}
	}
	
	/**
*  Check Function for the Field C(credit) or (D)Debit
* it wont accept other than C or D or c Or d
*/
function co_checkCorD(myEvent)
{
	var key = window.event ? window.event.keyCode : myEvent.charCode;  
	if(window.event)
  	{
  		if( key==67 || key==68 || key==99 || key==100 ) 
			return;
		else
			window.event.keyCode=0;
  	}
  	else
  	{
  		if( key==67 || key==68 || key ==0 || key==99 || key==100 ) 
			return;
		else
			myEvent.preventDefault();
  	}
}

//=======================Begin - display date and time separator automatically============================================================================================//	
/** 
 * function is to display date separator automatically 
 * vDateName = object name 
 * e = event
 * dateType = dtPattern
 * dateSeparator = separator in the pattern
 */
function co_dateSeparator(vDateName, e, dateType) {		
	var vDateType = 3;
	var dateSeparator = '';	
	var vDateValue = vDateName.value;
	var str = dtPattern.substring(5, 6);
	
	if( (str != "d" && str != "D") && (str != "M" && str != "m") && (str != "y" && str != "Y") ){
		dateSeparator = str;
	}else{
		dateSeparator = dtPattern.substring(7, 8); 
	}	

	var dateArr 	= dateType.split(""+dateSeparator);
	var datePattern = dateArr[0]+""+dateArr[1]+""+dateArr[2];		
	
	if(datePattern == "MMddyyyy"){
		vDateType = 1;	
	}else if(datePattern == "yyyyMMdd" || datePattern == "yyyyddMM"){
		vDateType = 2;	
	}else if(datePattern == "ddMMyyyy"){
		vDateType = 3;
	}else if(datePattern == "MMyyyydd"  || datePattern == "ddyyyyMM"){
		vDateType = 4;	
	}
	
	var key = window.event ? window.event.keyCode : e.charCode;
	
	if(key >=48 && key <=59){
		if(vDateType == 1 || vDateType == 3){
			if(vDateValue.length == 2 || vDateValue.length == 5){
				vDateName.value = vDateValue+dateSeparator;
				return;
			}			
		}
		if(vDateType == 2 || vDateType == 4){
			if(vDateValue.length == 4 || vDateValue.length == 7){
				vDateName.value = vDateValue+dateSeparator;
				return;
			}			
		} 	
	}else
		key = 0;
}

/** 
 * function is to display date and time separator automatically 
 * vDateName = object name 
 * e = event
 * dateType = dtPattern
 * dateSeparator = separator in the pattern
 * timeSeparator = separator in the pattern
 */
function co_dateTimeSeparator(vDateName, e, dateType) {		
	var vDateType = 3;
	var dateSeparator = '';	
	var vDateValue = vDateName.value;
	
	var dateTimeArr = dateType.split(" ");
	var dtPattern = dateTimeArr[0];
	var tmPattern = dateTimeArr[1];
	
	var timeSeparator = tmPattern.substring(2, 3);
	var str = dtPattern.substring(5, 6);
	
	if( (str != "d" && str != "D") && (str != "M" && str != "m") && (str != "y" && str != "Y") ){
		dateSeparator = str;
	}else{
		dateSeparator = dtPattern.substring(7, 8); 
	}	
	
	var dateArr     = dtPattern.split(""+dateSeparator);
	var datePattern = dateArr[0]+""+dateArr[1]+""+dateArr[2];		
	
	if(datePattern == "MMddyyyy"){
		vDateType = 1;	
	}else if(datePattern == "yyyyMMdd" || datePattern == "yyyyddMM"){
		vDateType = 2;	
	}else if(datePattern == "ddMMyyyy"){
		vDateType = 3;
	}else if(datePattern == "MMyyyydd"  || datePattern == "ddyyyyMM"){
		vDateType = 4;	
	}
	
	var key = window.event ? window.event.keyCode : e.charCode;
	
	if(key >=48 && key <=59){
		if(vDateType == 1 || vDateType == 3){
			if(vDateValue.length == 2 || vDateValue.length == 5){
				vDateName.value = vDateValue+dateSeparator;
				return;
			}
		}
		if(vDateType == 2 || vDateType == 4){
			if(vDateValue.length == 4 || vDateValue.length == 7){
				vDateName.value = vDateValue+dateSeparator;
				return;
			}			
		}
		
		if(vDateValue.length == 10){
			vDateName.value = vDateValue+" ";
			return;
		
		}else if(vDateValue.length == 13 || vDateValue.length == 16){
			vDateName.value = vDateValue+timeSeparator;
			return;
		} 	
	}else
		key = 0;
}

/** 
 * function is to display time in the dateTime field automatically in onblur event
 * obj = object in the field being checked  
 * dateTimePattern = pattern with date and time
 */
function co_setDateTime(obj, dateTimePattern){
   	var vDate = obj.value;
   	var dateArr = vDate.split(" ");    
   	try{
	   	if(dateArr[0]){
			if(dateArr[1]){
				var str = dateArr[1].substring(2,3);
	   			if(dateArr[1].substring(0, dateArr[1].indexOf(str)) == 0){
	   				co_getCurrentTime(obj, dateTimePattern);   
	     			obj.value = vDate;    	
	      		}      
	   		}else{   		
	   			co_getCurrentTime(obj, dateTimePattern);
				obj.value = vDate; 
	   		}
	   	}
   	}catch(e){};      
}

/** 
 * function is to get current server time
 * obj = object in the field being checked  
 * patternValue = pattern with date and time
 */
function co_getCurrentTime(obj, patternValue){
	var hdrDto;
	if(obj.value != ''){		
		dateObj = obj;		
		ajaxpack.getAjaxRequest('dateNumberValidator.do', 'blockName=currentTime&fieldValues='+escape(dateObj.value)+'&pattern='+patternValue, co_returnResult, "xml", '', '');
  	}	
}

/**	
 * Function to get result for given blockName
 */
function co_returnResult(){
  try{
	if (ajaxpack.ajaxobj.readyState == 4)
		if (ajaxpack.ajaxobj.status==200){	
		    var respXml = ajaxpack.ajaxobj.responseXML;		   
		    var result  = respXml.getElementsByTagName("errorMsg")[0].childNodes[0].nodeValue;
		    		    
			var vdate   = document.getElementById(dateObj.id).value.split(" ");			
	        document.getElementById(dateObj.id).value=vdate[0]+" "+result;  		    
		}
	}catch(e){}	
}

//=======================end - display date and time separator automatically============================================================================================//	

function co_openSubWindow(obj,tableid,listname,jsname,xmlname)
{
	var index = 0;
	try{
	 var fName = obj.name;
	fName = fName.substring(fName.lastIndexOf('.')+1,fName.length);
	index = obj.id.substring(fName.length,obj.id.length);
	index = parseInt(index)+2;
	}catch(e){}
	
	var tbody = document.getElementById(tableid).getElementsByTagName('tbody')[0];
	var table = document.getElementById(tableid);
	var row = table.getElementsByTagName('tr');
	var col = row[index].getElementsByTagName('td');

	window.open("subWindow.do?index="+index+"&listname="+listname+"&jsname="+jsname+"&xmlname="+xmlname+"&date="+new Date(),'subwindow', "height="+window.screen.height+",width="+window.screen.width+",left=10,top=10,toolbar=0,location=1,status=1,menubar=0,scrollbars=0,resizable=1");
}

/**
 * Used to open a retrieval window where Data Source will be an XML file
 * @param retObjId : Object Id where the selected value need to be updated
 * @param xmlName  : name of the XML file eg: for "rlx_sample.xml" file you can pass "sample" as xmlName
 * @param blockName: which blockName (id for the select tag) need to be show in the retrieval 
 * */
function co_openXMLRetWindow(retObjId,xmlName,blockName) {   
 if(myWin) {
    myWin.close();
 }   
 myWin = window.open("jsp/common/retrieveXMLDataWin.jsp?retObj="+retObjId+"&xmlName="+xmlName+"&blockName="+blockName,'myWin','width=300,height=200,left=150,top=200,resizable=no,scrollbars=no,status=no,toolbar=no,location=no,menubar=0');
}
	String.prototype.replaceAll = co_replaceMethod;


/**
 * This function will receive the date pattern and the date object and it will change the date to String 
 * date based on the pattern that has been received.
 * Example The date Object will be like 01 Jan 1900 
 * So to change it in the string pattern like dd/MM/yyyy
 * we'll call this method by sending the date object and the above mentioned pattern.
 * This function will return 01/01/1900 as a string.
 * @param formatDate
 * @param formatString
 * @return String
 */
var formatDate = function (formatDate, formatString) {
	if(formatDate instanceof Date) {
		var months = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
		var yyyy = formatDate.getFullYear();
		var yy = yyyy.toString().substring(2);
		var m = formatDate.getMonth();
		var mm = m < 10 ? "0" + m : m;
		var mmm = months[m];
		var d = formatDate.getDate();
		var dd = d < 10 ? "0" + d : d;
		
		var h = formatDate.getHours();
		var hh = h < 10 ? "0" + h : h;
		var n = formatDate.getMinutes();
		var nn = n < 10 ? "0" + n : n;
		var s = formatDate.getSeconds();
		var ss = s < 10 ? "0" + s : s;

		formatString = formatString.replace(/yyyy/i, yyyy);
		formatString = formatString.replace(/yy/i, yy);
		formatString = formatString.replace(/mmm/i, mmm);
		formatString = formatString.replace(/mm/i, mm);
		formatString = formatString.replace(/m/i, m);
		formatString = formatString.replace(/dd/i, dd);
		formatString = formatString.replace(/d/i, d);
		formatString = formatString.replace(/hh/i, hh);
		formatString = formatString.replace(/h/i, h);
		formatString = formatString.replace(/nn/i, nn);
		formatString = formatString.replace(/n/i, n);
		formatString = formatString.replace(/ss/i, ss);
		formatString = formatString.replace(/s/i, s);

		return formatString;
	} else {
		return "";
	}
};
