
/*============================== Data Rendering Function ==============================
	Function:			renderData Function
	Explanation:		Common Function use for Render Data from XML Objects
	
	Created By:			Azhar Khan
	Creation Date:		04 June 2008

	Modified By:		Azhar Khan
	Modification Date:	10 June 2008
=======================================================================================
*/
var _responseHeader;
var _divHeader;
var ajax;
var _url;
var _mainElement;
var dataString="";
var pageString="";
var _tmpdataString="";
var _tmpCount=0;
var chkTag = "timesascent";
var _path;
var _func;
var _finalResponse = "";
var targetObj;
/*==============*/
var _init = 0;
var _curP = 1;
var _rows = 10;
var _req = _rows;
var _tmpinit = _init;
var _tmpreq = _rows;
var _xmlDomObj;
var _tot;
/*=============*/
var _heading = "";
var _loadStr = "";
var _finalResponse = "";
var _tmpVars = new Object();
var _optParams = new Array();

function renderData(_unqId,_divHead,_cntxtPath,_params,_servlet,_js,_options)
{
	

	try
	{
		_finalResponse="";
		_init = 0;
		_curP = 1;
		_rows = 10;
		_req = _rows;
		_tmpinit = _init;
		_tmpreq = _rows;

		_tmpCount++;
	//	dataString = _tmpdataString;

	//	document.getElementById(_divHead).innerHTML = dataString;
		_path = _cntxtPath;
	//_optParams =  new Array(_options.length);
		if(_options!=undefined && _options!="" && _options!={})
		{
			_optParams =  _options;
			if(_options.method)
				_optParams.method = _options.method;
			else
				_optParams.method = "GET";
		}
		else
			_optParams.method = "GET";

		if(_optParams.method)
			_methodType = _optParams.method || 'GET';
	//alert('_optParams:'+_optParams);

		targetObj = document.getElementById(_divHead);
		//alert(targetObj);
//		if(targetObj)
//			targetObj.innerHTML = "";

		var _append = anotherJS(_js);
		if(_append)
		{
//			_url = _path + "/faces/" +_servlet + "?" + _params + "&mainElem=" + _unqId + "&date=" + new Date();
			_url = _path + "/faces/" +_servlet;
			_params = _params + "&mainElem=" + _unqId + "&date=" + new Date();
			_divHeader = _divHead;
			
			_mainElement = _unqId;

	/*	ajax= GetXMLHttpObject();
		ajax.onreadystatechange = stateChanged;
		ajax.open("GET",url,true);
		ajax.send(null);
	*/
			ajax = new ajaxObject();
			
			//ajax.method(_methodType);
			ajax.url(_url);
			ajax.params(_params);
			ajax.callbackHandler("parseXML");
			ajax.callbackHandlerOnError("parseXMLError");
			ajax.execute();
			_grayOut(true, {'zindex':'100', 'opacity':'20'});
		}
		return true;
	}
	catch(e)
	{
		_grayOut(false, {});
//		alert(e);
		return false;
	}
}


/*
======================== State Changed Function ==============================
	Function:			stateChanged Function
	Explanation:		This function returns the status of server's response
						0 - The request is not initialized
						1 - The request has been set up
						2 - The request has been sent
						3 - The request is in process
						4 - The request is complete
						
						This function triggers everytime the state changes.
	
	Created By:			Azhar Khan
	Creation Date:		04 June 2008

	Modified By:		Azhar Khan
	Modification Date:	05 June 2008
===============================================================================

function stateChanged()
{
	if(ajax.readyState==4)
	{
		// Write your code regarding showing data or response directly in some div or call some relevant function

		parseXML(ajax.responseText);
	}
}

======================== GetXMLObject Function ==============================
	Function:			GetXMLObject Function
	Explanation:		This function create the XML Object as per client's browser
	
	Created By:			Azhar Khan
	Creation Date:		04 June 2008

	Modified By:		Azhar Khan
	Modification Date:	04 June 2008
===============================================================================

function GetXMLHttpObject()
{
	var xmlHttp;
	
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
	    {
	    	// Newer versions of IE (6.0+ and higher)
	    	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	    }
		catch (e)
		{
			try
			{
				// Older version of IE (5.0,etc.)
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	return xmlHttp;
}

/*
======================== Trim Function ==============================
	Function:			trim Function
	Explanation:		This Function removes the white spaces before and after of original string
========================================================================
*/
function trim(s) 
{
	var temp = s;
	return temp.replace(/^\s+/,'').replace(/\s+$/,'');
}

/*
======================== Convert Date Format Function ==============================
	Function:			convertDate Function
	Explanation:		This Function convert the date into "DD-MM-YYYY" format
	
	Created By:			Azhar Khan
	Creation Date:		05 June 2008

	Modified By:		Azhar Khan
	Modification Date:	05 June 2008
========================================================================
*/
function convertDate(s,bit,bit2)
{
	//2008-09-11 16:53:28

	var monthArray = new Array("","01","02","03","04","05","06","07","08","09","10","11","12");

	var tmp = timeStr = s;

	var monthNo = tmp.substring(5,7);

	if(monthNo.substring(0,1)=="0")
		monthNo = monthNo.substring(1,2);

	
// *******************************    TIME   *************************************	
	var timeFormat = "AM";

	var hrs = tmp.substring(11,13);
	if(hrs.substring(0,1)=="0")
		hrs = hrs.substring(0,2);

	if(parseInt(hrs)>=12)
	{
		hrs =(parseInt(hrs) - 12);
		timeFormat = "PM";
		if(parseInt(hrs)<9)
		{
		hrs='0'+hrs;
		}
	}
	if(hrs=="00")
		hrs="12";
	timeStr = " | " + hrs+":"+tmp.substring(14,16) + " " + timeFormat;
// *******************************    TIME   *************************************


	if(tmp!="")
		s = tmp.substring(8,10)+"/"+tmp.substring(5,7)+"/"+tmp.substring(0,4);

	if(bit2=="1") // For calender date format
		s = tmp.substring(8,10)+"/"+monthArray[monthNo]+"/"+tmp.substring(0,4);

	if(bit=="1")
		s += timeStr;

	return s
}
// ====================================================================

/*
======================== Parse Time From Date ==============================
	Function:		parseTime Function
	Explanation:		This Function parse the time from "YYYY-MM-dd HH:MM:SS.Ms" format
	
	Created By:		Azhar Khan
	Creation Date:		11 Oct 2008

	Modified By:		Azhar Khan
	Modification Date:	11 Oct 2008
========================================================================
*/
function parseTime(s)
{
	var tmp = s;
	if(tmp!="")
		s = tmp.substring(11,13)+":"+tmp.substring(14,16);
	return s
}
// ====================================================================

/*
======================== XMLDom Function ==============================
	Function:			createXMLDom Function
	Explanation:		This function reads the XML String only and convert into XMl Dom Object
	
	Created By:			Azhar Khan
	Creation Date:		05 June 2008

	Modified By:		Azhar Khan
	Modification Date:	05 June 2008
						25 July 2008 - Catch The XML Creation Error
=======================================================================
*/
function createXMLDom(_responseXML)
{
	var xmlDoc;
	
	//load xml document
	if(document.implementation && document.implementation.createDocument) {
	// MOZILLA
		parser = new DOMParser();
		xmlDoc = parser.parseFromString(_responseXML,"text/xml");
//		xmlDoc = document.implementation.createDocument("", "", null);
//		xmlDoc.async="false";
//		xmlDoc.loadXML(_responseXML);
		
		if (xmlDoc.documentElement.nodeName=="parsererror")
		{
			errStr=xmlDoc.documentElement.childNodes[0].nodeValue;
			errStr=errStr.replace(/</g, "&lt;");
//			alert(errStr);
		}
	} 
	else if (window.ActiveXObject){
			//IE
   
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(_responseXML);
		
		if (xmlDoc.parseError.errorCode != 0) 
		{
//			alert("Error in line " + xmlDoc.parseError.line + 
//			" position " + xmlDoc.parseError.linePos + 
//			"\nError Code: " + xmlDoc.parseError.errorCode + 
//			"\nError Reason: " + xmlDoc.parseError.reason + 
//			"Error Line: " + xmlDoc.parseError.srcText);
			return("Error");
		}
	}
	
		return xmlDoc;
}

/*
======================== Parsing Function ===========================================
	Function:			parseXML Function
	Explanation:		This function parse the data from XML string
	
	Created By:			Azhar Khan
	Creation Date:		05 June 2008

	Modified By:		Azhar Khan
	Modification Date:	10 June 2008
						25 July 2008 - Catch The Exception In Case Of Non-XML Response
======================================================================================
*/
function parseXMLError(errorObj)
{	
	_grayOut(false,{});
}
function parseXML(_responseXML,_header)
{
	try
	{
		_responseHeader = _header;
		
		_finalResponse = unescape(_responseXML);
		
		
		var errorStatus=ajax.responseHeader(_responseHeader).get("Error-Status");
    	var errorMessage=ajax.responseHeader(_responseHeader).get("Error-Msg");
    	/*var _mainElementTemp=ajax.responseHeader(_responseHeader).get("Main-Element");
    	if(_mainElementTemp)
    		_mainElement=_mainElementTemp;
	    */if(errorStatus=="1" || errorStatus==1)
	    {
	    	if(errorMessage)
	    		alert(errorMessage)
	    	
	    	return;	
	    }
		
		
		try
		{
			_xmlDomObj = createXMLDom(unescape(_responseXML));
		}
		catch(e)
		{
			throw new Error('Error : Error while creating XMLDom Object.\nPossible Cause: _responseXML is not XML String\nError Details: '+e);
		}
	//	var chk = switchParsing();
		if(_xmlDomObj!=null && _finalResponse!="" && _finalResponse!="null")
			switchParsing();
		else
			_noRecordFound();
	//		_noRecord("There occurred an unknown error while processing your request. Please Try Again!");
	}
	catch(e1)
	{
		//alert("Error while retriving Records.Please try again.")
	}
	finally
	{
		//	if(chk)
		_grayOut(false,{});
	}
}
function _noRecordFound()
{
	alert("No Records Found");
}
/*
======================== Addon Function ==============================
	Function:			anotherJS Function
	Explanation:		This function includes the another JS into requested page
	
	Created By:			Azhar Khan
	Creation Date:		06 June 2008

	Modified By:		Azhar Khan
	Modification Date:	06 June 2008
						25 July 2008 - Restrict To Append Only One Time
========================================================================
*/
function anotherJS(_js) 
{
	var _hTag = document.getElementsByTagName('head')[0];

	var _scriptTags = _hTag.getElementsByTagName('script');

	for(i=0;i<_scriptTags.length;i++)
		if(_scriptTags[i].getAttribute("src")!=null)
			if(_scriptTags[i].getAttribute("src").indexOf(_js)!=-1)
				return true;

	var _sTag = document.createElement('script');
	_sTag.setAttribute('type','text/javascript');
	_sTag.setAttribute('src',_path+'/js/'+_js+'.js');
	_hTag.appendChild(_sTag);
	return true;
}

/*
======================== Addon Function ==============================
	Function:			Pagination Function
	Explanation:		This function appends a pagination component in results
	
	Created By:			Azhar Khan
	Creation Date:		09 June 2008

	Modified By:		Azhar Khan
	Modification Date:	10 June 2008
						25 July 2008 - Updated For Multiple Calls On Same Page (But Only Single Component On Every Page)
========================================================================
*/
//function _chngPage(_val,_curPP,_bit,_tDom,_tHeader,_funcP)
function _chngPage(_val,_curPP,_bit,_tHeader,_funcP,_tElement,_totR)
//function _chngPage(_val,_curPP,_bit,_tot,_tDom,)
{
//	alert("Current Value:"+_val+":Current Page:"+_curPP+":Bit:"+_bit+":Header:"+_tHeader+":Function:"+_funcP+":Required:"+_req);
//	alert("Current Value:"+_val+":Current Page:"+_curPP+":Bit:"+_bit+":DOM:"+_tDom+":Header:"+_tHeader+":Function:"+_funcP);
//	alert("Current Value:"+_val+":Current Page:"+_curPP+":Bit:"+_bit+":Total:"+_tot);
	_grayOut(true, {'zindex':'100', 'opacity':'20'});

	_divHeader = _tHeader;
	_mainElement = _tElement;
	_tot = _totR;
	_curP = _curPP;


	if(parseInt(_val)>parseInt(_tot))
		_val = _tot;
	_req = _val;

	_tmpreq = _val*_curPP;
	if(_tmpreq>_tot)
		_tmpreq=_tot;

	_init = _req*(_curPP-1);
	if(_init<0)
		_init = 0;

	if(_bit=='r')
	{
		_init = 0;
		_tmpreq = _val;
		_curP = 1;
	}

	dataString="";

//	_xmlDomObj = _tDom;
//alert(_xmlDomObj);
	eval(""+_funcP+"("+_funcP+"Dom)");
	_grayOut(false, {});

//	eval(""+_funcP+"(_xmlDomObj)");
//	eval(""+_funcP+"("+_tDom+")");
}

//var searchPropertyDom;

function _pgComponent(_totR,_reqR,_funcP,_curPP,_tDom,_tHeader,_tElement)
{
//	alert("Total:"+_tot+":Required:"+_reqR+":Function:"+_funcP+":CurrentPage:"+_curPP+":DOM:"+_tDom+":Header:"+_tHeader);
//	+":CurrentPage:"+_curPP+":DOM:"+_tDom+":Header:"+_tHeader
//alert(_req+"::"+_tmpreq+"::"+_tot)
	
	if(_tot<1)
		_noRecord();
	_func =_funcP;
	_curP = _curPP;
	_req = _reqR;
	
	eval(_funcP + "Dom = _tDom ;");

	var _pages = Math.ceil(_totR/_req);
	
	var _pgHTML = "";
	var _pgHTML1 = "";

	var _frmRec = 0;
	var _toRec = 0;

	_frmRec = -(-_req*(_curP-1)-1);
	_toRec = (_req*_curP);

	if(_toRec>_totR)
		_toRec = _totR;

	if(_pages>=1 && _req>=5)
	{
		/* ===================  Record Per Page ======================== */
		_pgHTML1 += "<select id='ddlPaginate' class='selectBox1' onchange='javascript:_chngPage(this.value,\""+ _curP +"\",\"r\",\""+_tHeader+"\",\""+_funcP+"\",\""+_tElement+"\",\""+_totR+"\")'>";
//		_pgHTML1 += "<select id='ddlPaginate' class='selectBox1' onchange='javascript:_chngPage(this.value,\""+ _curP +"\",\"r\",\""+_tDom+"\",\""+_tHeader+"\",\""+_funcP+"\")'>";
//		_pgHTML1 += "<select id='ddlPaginate' class='selectBox1' onchange='javascript:_chngPage(this.value,\""+ _curP +"\",\"r\",\""+_totR+"\",\""+ _tDom +"\",\""+ _funcP +"\")'>";
		if(_req==5)
			_pgHTML1 += '<option value=5 selected>5 records per page</option>';
		else
			if(_totR>5)
				_pgHTML1 += '<option value=5>5 records per page</option>';
		if(_req==10)
			_pgHTML1 += '<option value=10 selected>10 records per page</option>';
		else
			if(_totR>10)
				_pgHTML1 += '<option value=10>10 records per page</option>';
		if(_req==25)
			_pgHTML1 += '<option value=25 selected>25 records per page</option>';
		else
			if(_totR>25)
				_pgHTML1 += '<option value=25>25 records per page</option>';
		if(_req==50)
			_pgHTML1 += '<option value=50 selected>50 records per page</option>';
		else
			if(_totR>50)
				_pgHTML1 += '<option value=50>50 records per page</option>';
		if(_req==100)
			_pgHTML1 += '<option value=100 selected>100 records per page</option>';
		else
			if(_totR>100)
				_pgHTML1 += '<option value=100>100 records per page</option>';
		if(_req==_totR)
			_pgHTML1 += '<option value='+_totR+' selected>Show All Records</option>';
		else
				_pgHTML1 += '<option value='+_totR+'>Show All Records</option>';
		_pgHTML1 += '</select> &nbsp;&nbsp;';

		_pgHTML1 += 'Results: ' + _frmRec + ' - ' + _toRec + ' Records of '+ _totR;
		_pgHTML1 += ' (Total Pages:' + _pages + ')';

		/* ===================  Record Per Page ======================== */

		if(_curP==1)
		{
			_pgHTML += '<span disabled>First</span>&nbsp;&nbsp;';
			_pgHTML += '<span disabled>Previous</span>&nbsp;&nbsp;';
		}
		else
		{
//			_pgHTML += '<a href=\"javascript:' + _func + '(_xmlDomObj,\'1\',\'' + _req + '\')\">First</a>&nbsp;&nbsp;';
			_pgHTML += '<a href=\"javascript:_chngPage('+ _req +',\'1\',\'n\',\''+_tHeader+'\',\''+_funcP+'\',\''+_tElement+'\',\''+_totR+'\')\">First</a>&nbsp;&nbsp;';
//			_pgHTML += "<a href='javascript:_chngPage(\""+_req+"\",\"1\",\"n\",\""+_tDom+"\",\""+_tHeader+"\",\""+_funcP+"\")'>First</a>&nbsp&nbsp;";


//			_pgHTML += '<a href=\"javascript:' + _func + '(_xmlDomObj,\'' + (_curP-1) + '\',\'' + _req + '\')\">Previous</a>&nbsp;&nbsp;';
			_pgHTML += '<a href=\"javascript:_chngPage('+ _req +','+(_curP-1)+',\'n\',\''+_tHeader+'\',\''+_funcP+'\',\''+_tElement+'\',\''+_totR+'\')\">Previous</a>&nbsp;&nbsp;';
//			_pgHTML += '<a href=\"javascript:_chngPage('+ _req +','+ (_curP-1) + ',\'n\',\''+_totR+'\')\">Previous</a>&nbsp;&nbsp;';
//			_pgHTML += "<a href='javascript:_chngPage(\""+_req+"\",\""+ (_curP-1) +"\",\"n\",\""+_tDom+"\",\""+_tHeader+"\",\""+_funcP+"\")'>Previous</a>&nbsp&nbsp;";
		}

		var intPage = _curP-3;
		var endPage = (parseInt(_curP)+3);
		if(intPage<1)
		{
			intPage = 1;
			if(_pages>6)
				endPage = parseInt(intPage)+6;
			else
				endPage = _pages;
		}
		if(endPage>_pages)
		{
			endPage = _pages;
			if(_pages>6)
				intPage = endPage-6;
			else
				intPage = 1;
		}

//alert(intPage+"::"+endPage+"::"+_curP+"::"+_pages)
		for(var i = intPage; i<=endPage; i++)
		{
			if(i==_curP)
				_pgHTML += '<span disabled>'+ i +'</span>&nbsp;&nbsp;';
			else
//				_pgHTML += '<a href=\"javascript:' + _func + '(_xmlDomObj,\'' + i + '\',\'' + _req + '\')\">' + i + '</a>&nbsp;&nbsp;';
//				_pgHTML += '<a href=\"javascript:_chngPage('+ _req +','+ i + ',\'n\',\''+_totR+'\')\">' + i + '</a>&nbsp;&nbsp;';
				_pgHTML += '<a href=\"javascript:_chngPage('+ _req +','+i+',\'n\',\''+_tHeader+'\',\''+_funcP+'\',\''+_tElement+'\',\''+_totR+'\')\">'+ i +'</a>&nbsp;&nbsp;';
//				_pgHTML += "<a href='javascript:_chngPage(\""+_req+"\",\""+ i +"\",\"n\",\""+_tDom+"\",\""+_tHeader+"\",\""+_funcP+"\")'>"+i+"</a>&nbsp&nbsp;";
		}

		if(_curP==_pages)
		{
			_pgHTML += '<span disabled>Next</span>&nbsp;&nbsp;';
			_pgHTML += '<span disabled>Last</span>';
		}
		else
		{
//			_pgHTML += '<a href=\"javascript:_chngPage('+ _req +','+ -(-_curP-1) + ',\'n\',\''+_totR+'\')\">Next</a>&nbsp;&nbsp;';
//			_pgHTML += "<a href='javascript:_chngPage(\""+_req+"\",\""+ -(-_curP-1) +"\",\"n\",\""+_tDom+"\",\""+_tHeader+"\",\""+_funcP+"\")'>Next</a>&nbsp&nbsp;";
			_pgHTML += '<a href=\"javascript:_chngPage('+ _req +','+-(-_curP-1)+',\'n\',\''+_tHeader+'\',\''+_funcP+'\',\''+_tElement+'\',\''+_totR+'\')\">Next</a>&nbsp;&nbsp;';


//			_pgHTML += '<a href=\"javascript:_chngPage('+ _req +','+ _pages + ',\'n\',\''+_totR+'\')\">Last</a>&nbsp;&nbsp;';
//			_pgHTML += "<a href='javascript:_chngPage(\""+_req+"\",\""+ _pages +"\",\"n\",\""+_tDom+"\",\""+_tHeader+"\",\""+_funcP+"\")'>Last</a>&nbsp&nbsp;";
			_pgHTML += '<a href=\"javascript:_chngPage('+ _req +','+_pages+',\'n\',\''+_tHeader+'\',\''+_funcP+'\',\''+_tElement+'\',\''+_totR+'\')\">Last</a>&nbsp;&nbsp;';
		}
			document.getElementById('spanPaginateL').innerHTML = _pgHTML1;
			document.getElementById('spanPaginateR').innerHTML = _pgHTML;
	}
}

function _switch(_func,_swP)
{
	dataString = "";
	eval(""+_func+"(_xmlDomObj,"+_swP+","+ _req +")");
}
/*
function _chngPage(_val,_func,_curP)
{
	_rows = _val;
	_init = _curP;

	_tmpinit = _curP;
	_tmpreq = _req;

	_init = _req*(_init-1);

	if(_init<1)
		_init = 1;
	_req = -(-_req-_init)

	if(_req>_tot)
		_req = _tot;


	dataString = "";
//	eval(""+_func+"(_xmlDomObj,1,_rows)");
	eval(""+_func+"(_xmlDomObj)");
}
*/

function _noRecord(cMsg)
{
	var _rcrdString = "";
	if (cMsg == undefined)
	{
		cMsg = "No Records Found";
	}
	_rcrdString += "<table cellpadding='0' cellspacing='0' width='100%' class='noRec'>";
		_rcrdString += "<tr>";
			_rcrdString += "<td class='red_text textbold fontbig'>"+cMsg+"</td>";
		_rcrdString += "</tr>";
	_rcrdString += "</table>";	
	//document.getElementById('divHeading').innerHTML = "No Records Found";
	//document.getElementById('spanBreadCrumb').innerHTML = "No Records Found";
	document.getElementById(_divHeader).innerHTML = _rcrdString;
}

function _genLoad()
{
	_loadStr += "<table cellpadding='0' cellspacing='0' width='150px' align='center' style='border: 1px #999999 solid; background-color:#ffffff'>";
		_loadStr += "<tr>";
			_loadStr += "<td align='center'><img src='" + _path + "/images/loading.gif' alt='' /></td>";
			_loadStr += "<td align='center'>Loading... Please Wait....</td>";
		_loadStr += "</tr>";
	_loadStr += "</table>";
	
//	document.getElementById(_divHeader).innerHTML = _loadStr;
}

function _grayOut(vis, options) 
{
	_genLoad();
	// grayOut(true, {'zindex':'50', 'bgcolor':'#0000FF', 'opacity':'70'});
	var options = options || {};
	var zindex = options.zindex || 50;
	var opacity = options.opacity || 70;
	var opaque = (opacity / 100);
	var bgcolor = options.bgcolor || '#000000';
	var dark=document.getElementById('_darkDiv');
	var _subC=document.getElementById('_subCDiv');
	
	var _aElem = document.forms[0].elements;
	if (!dark)
	{
		// If you are getting errors in IE see: http://support.microsoft.com/default.aspx/kb/927917
		var tbody = document.getElementsByTagName("body")[0];
		var tnode = document.createElement('div');
		tnode.style.position='absolute';
		tnode.style.top='0px';
		tnode.style.left='0px';
		tnode.style.overflow='hidden';
		tnode.style.display='none';
		tnode.id='_darkDiv';
		tbody.appendChild(tnode);
		
		_subC = document.createElement('div');
		_subC.style.position='absolute';
		_subC.style.top='40%';
		_subC.style.left='45%';
		_subC.style.overflow='hidden';
		_subC.style.display='block';
		_subC.id='_subCDiv';
		_subC.innerHTML = _loadStr;
		tbody.appendChild(_subC);
		
		_subC = document.getElementById('_subCDiv');
		dark = document.getElementById('_darkDiv');
	}
	if (vis)
	{
		//for(var i=0; i<_aElem.length;i++)
			//_aElem[i].disabled = true;
		if(document.body && ( document.body.scrollWidth || document.body.scrollHeight ))
		{
			var pageWidth = document.body.scrollWidth+'px';
			var pageHeight = document.body.scrollHeight+'px';
		}
		else if( document.body.offsetWidth )
		{
			var pageWidth = document.body.offsetWidth+'px';
			var pageHeight = document.body.offsetHeight+'px';
		}
		else
		{
			var pageWidth='100%';
			var pageHeight='100%';
		} 

		dark.style.opacity=opaque; 
		dark.style.MozOpacity=opaque; 
		dark.style.filter='alpha(opacity='+opacity+')'; 
		dark.style.zIndex=zindex; 
		dark.style.backgroundColor=bgcolor; 
		dark.style.width= pageWidth;
		dark.style.height= pageHeight;
		dark.style.display='block'; 
		_subC.style.zIndex=-1*(-zindex-100);
		_subC.style.display='block';
	}
	else 
	{
		//for(var i=0; i<_aElem.length;i++)
			//_aElem[i].disabled = false;	
		_subC.style.display='none';
		dark.style.display='none';
//		_View();
	}
}

function _View(_viewId)
{
	if(_viewId==undefined)
	{
//		eval("_tmpVars[_tmpCount]=dataString");
		eval("_tmpVars[_tmpCount]=document.getElementById(_divHeader).innerHTML");
		_tmpdataString = "<a class='click' href='javascript:_View(\""+_tmpCount+"\")'>Previous Results</a><br/><br/>";
//		alert(_tmpVars[_tmpCount]);
	}
	else
	{
		document.getElementById(_divHeader).innerHTML = _tmpVars[_viewId];
		_tmpCount--;
		_tmpdataString = "<a class='click' href='javascript:_View(\""+_tmpCount+"\")'>Previous Results</a><br/><br/>";
		dataString = _tmpVars[_viewId];
		alert("IN::"+_tmpVars[_viewId]);
	}
//alert("OUT::"+dataString);
}

function AjaxParamArray()
{
	this.toString=settoString;
	this.cast=setCast;

	var val="";
	
	var len=arguments.length;
	
	if(len > 0)
	val=arguments[0];
		
	for(var i=1;i<len;i++)
	{		
		val=val+'!~!'+arguments[i];			
	}
	
	
	function settoString()
	{
		return val;
	}
	
	function setCast(objArr)
	{
		if(!objArr)
		return ;
		
		if(objArr.constructor!=Array)
			return ;
		
		var aLen = objArr.length;
		if(aLen > 0)
			val=objArr[0];
		
		for(var i=1;i<aLen;i++)
		{		
			val=val+'!~!'+objArr[i];			
		}
	}
	
}


/*
======================== Convert Date Format Function For History==============================
	Function:			convertDate Function
	Explanation:		This Function convert the date into "DD.MM.YYYY" format
	
	Created By:			Seema
	Creation Date:		09 Feb 2009
========================================================================
*/
function convertDateForHis(s,bit,bit2)
{
	//2008-09-11 16:53:28

	var monthArray = new Array("","01","02","03","04","05","06","07","08","09","10","11","12");

	var tmp = timeStr = s;

	var monthNo = tmp.substring(5,7);

	if(monthNo.substring(0,1)=="0")
		monthNo = monthNo.substring(1,2);

	
// *******************************    TIME   *************************************	
	var timeFormat = " AM";

	var hrs = tmp.substring(11,13);
	if(hrs.substring(0,1)=="0")
		hrs = hrs.substring(0,2);

	if(parseInt(hrs)>12)
	{
		hrs = "0" + (parseInt(hrs) - 12);
		timeFormat = " PM";
	}
	if(hrs=="00")
		hrs = "12";
	timeStr = " | " + hrs+":"+tmp.substring(14,16) + " " + timeFormat;
// *******************************    TIME   *************************************


	if(tmp!="")
		s = tmp.substring(8,10)+"."+tmp.substring(5,7)+"."+tmp.substring(0,4);

	if(bit2=="1") // For calender date format
		s = tmp.substring(8,10)+"."+monthArray[monthNo]+"."+tmp.substring(0,4);

	if(bit=="1")
		s += timeStr;

	return s
}
// ====================================================================