//<![CDATA[
	var DETECT = navigator.userAgent.toLowerCase();
	var SPINWAIT = 250;
	var STARTDELAY = 1000;
	
	//NORMAL SETTING WHICH ARE OVERRIDDEN
	var LOCALE_PAGEFIRST	= 'First';
	var LOCALE_PAGELAST		= 'Last';
	var LOCALE_PAGENEXT		= 'Next';
	var LOCALE_PAGEBACK		= 'Back';
	var LOCALE_STATUS1		= 'Rendering Data...';
	var LOCALE_STATUS2		= 'Fetching Data...';
	var LOCALE_STATUS3		= 'Data Failure.';
	var LOCALE_STATUS4		= 'AJAX: Asynchronous XML with Javascript is not supported by your browser.';
	var LOCALE_STATUS5		= 'There was a problem retrieving the XML data:\n';
	
	function lxBrowserType(string)
	{
		return DETECT.indexOf(string) + 1;
	}
	function lxInitiate(TM,page,skip)
	{
		if (lxBrowserType('msie') && !document.getElementById('__VIEWSTATE'))
		{ 
			if (!skip)
				skip = 'false';
			else
				skip = 'true';
			if (page)
			{
				window.setTimeout('lxInitiate(' + TM + ',' + page + ',' + skip + ');', SPINWAIT) 
			}
			else
			{
				window.setTimeout('lxInitiate(' + TM + ',0,' + skip + ');', SPINWAIT) 
			}
		}
		else
		{ 
			lxonLoad(TM);
			if (!page)
				page=0;
			if (!skip)
			{
				lxFetch(TM,page,'');
			}
		}
	}
	function lxonLoad(TM)
	{
			eval('TBL' + TM + '	= document.getElementById("lxT' + TM + '");');
	}
	function lxStatus(TM,value)
	{
		var thisStatus = false;
		eval('thisStatus = STATUS' + TM + ';');
		if (!thisStatus)
		{
			eval('STATUS' + TM + '	= document.getElementById("STATUSN' + TM + '");');	
		}
			
		eval('thisStatus = STATUS' + TM + ';');
		if (thisStatus)
		{
			thisStatus.innerHTML = value;
		}
	}

	function lxLoad(TM,targetobjectid)
	{
		var TBL;
		var DATA;
		var STATUS;

		eval('TBL = TBL' + TM + ';');
		eval('DATA = DATA' + TM + ';');

		if (TBL && DATA)
		{
			lxStatus(TM,LOCALE_STATUS1);
			HASSTARTED = false;
			lxRender(TM,targetobjectid);
		}
		if (targetobjectid==null)
		{
			lxStatus(TM,'');
			lxPage(TM);
		}
		lxCompleteLoad(TM);
	}

	function lxCompleteLoad(TM)
	{
		try {
			var LXO;	
			eval('LXO = LXONLOAD' + TM + ';');
			if (LXO!=null && LXO.length > 0) {
				eval(LXO + '();');
			}			
		}
		catch (errObj) {}
	}
	
	//-----------------
	//MANAGER FUNCTIONS
	//-----------------
	//DATA BUILDING FUNCTIONALITY
	//GET THE DATA POINTS FROM THE DOM OBJECT
	function lxContent(TM,src) {

		if (src && src.length >= 20)
		{
			var strRecordCount;
			strRecordCount = src.substring(0,20);
			if (isNaN(strRecordCount))
			{
				eval('DATALENGTH' + TM + '= 0;');
				return src;
			}
			else
			{
				eval('DATALENGTH' + TM + '= ' + strRecordCount + ';');
				return src.substring(20);
			}
			
		}
	}

	function lxGetForm(fobj) 
	{ 
		   var str = ""; 
		   for(var i = 0;i < fobj.elements.length;i++) 
		   { 
			   if (str != "")   {
				   str += "&";
			   }
			   switch(fobj.elements[i].type) 
			   { 
					case 'text':
					case 'password':
					case 'textarea':
						str += lxGetElementName(fobj.elements[i].name) + "=" + encodeURIComponent(fobj.elements[i].value);
						break;
					case 'select-one':
						if (fobj.elements[i].options.length > 0) {
							str += lxGetElementName(fobj.elements[i].name) + "=" + encodeURIComponent(fobj.elements[i].options[fobj.elements[i].selectedIndex].value);
						}
						break;
					case 'select-multiple':
						if (fobj.elements[i].length > 0) {
							var sSelValues = '';
							try
							{
								for (var iSel=0; iSel<fobj.elements[i].length; iSel++ )
								{
									if (fobj.elements[i].options[iSel].selected == true)
									{
										if (sSelValues != '')
											   sSelValues += "&" + lxGetElementName(fobj.elements[i].name) + '=';
										sSelValues += encodeURIComponent(fobj.elements[i].options[iSel].value);
									}
								}
							}
							catch (err)
							{
							}
							str += lxGetElementName(fobj.elements[i].name) + "=" + sSelValues;
						}
						break;
					case 'hidden':
						if (fobj.elements[i].name != '__VIEWSTATE')
						{
							str += lxGetElementName(fobj.elements[i].name) + "=" + encodeURIComponent(fobj.elements[i].value); 
						}
						break;
					case 'radio':
						if (fobj.elements[i].checked)
						{
							str += lxGetElementName(fobj.elements[i].name) + "=" + encodeURIComponent(fobj.elements[i].value); 
						}
						break;
					case 'checkbox':
						if (fobj.elements[i].checked)
						{
							str += lxGetElementName(fobj.elements[i].name) + "=" + encodeURIComponent(fobj.elements[i].value); 
						}
						break;
					default:
						//alert(fobj.elements[i].type);
			   } 
		   } 
		   return str; 
	}
	function lxGetElementName(name)
	{
		if (name.length > 1 && name.substr(0,1) == '_')
			return '"' + name + '"';
		else
			return name;
	}


	//DATA AJAX FUNCTIONALITY
	function lxFetch(TM,page,appendQuery,targetobjectid)
	{
		var CURRENTPAGE;
		var DATALENGTH;
		var RPP;
		
		eval('CURRENTPAGE = CURRENTPAGE' + TM + ';');
		eval('DATALENGTH = DATALENGTH' + TM + ';');
		eval('RPP = RPP' + TM + ';');
		
		lxStatus(TM,LOCALE_STATUS2);
		if (!page)
		{
			page = 0;
		}
		if (!CURRENTPAGE)
		{
			eval('CURRENTPAGE' + TM + '=0;');
		}
		if (page >= 0 && ((DATALENGTH == 0 && page == 0) || ((page) <= Math.round((DATALENGTH/RPP) + 0.5))))
		{
				eval('CURRENTPAGE' + TM + '=' + page + ';');		
				eval('DATA' + TM + '=false;');
		}
		
		var DATA;
		eval('DATA = DATA' + TM + ';');
		
		if (!DATA)
		{
			lxFetchStart(TM,appendQuery,targetobjectid);	
		}
		else
		{
			lxLoad(TM);
		}
	}
function lxCleanQuery(value)
	{
		var query = value;
		//window.location.search.substring(1); <BR>
		var vars = query.split('&'); 
		var result = '';
		var tabid = false;
		var mid = false;
		var tmid = false;
		for (var i=0;i<vars.length;i++) 
		{ 
			var pair = vars[i].split('=');
			switch (pair[0].toLowerCase())
			{
				case 'tabid':
					tabid = pair[1];
					break;
				case 'mid':
					mid = pair[1];
					break;
				case 'tmid':
					tmid = pair[1];
					break;
				default:
					if (result.length > 0)
						result += '&'
					result += pair[0] + '=' + pair[1]
			}
		}
		if (tabid)
		{
			if (result.length > 0)
				result += '&'
			result += 'tabid=' + tabid;
		}
		if (mid)
		{
			if (result.length > 0)
				result += '&'
			result += 'mid=' + mid;
		}
		if (tmid)
		{
			if (result.length > 0)
				result += '&'
			result += 'tmid=' + tmid;
		}		
		return result;
	}
	function lxFetchStart(TM,appendQuery,targetobjectid)
	{				
		var TBL;
		var DATA;
		var CURRENTPAGE;
		var RPP;
		var S;
		var WURL;

		eval('TBL = TBL' + TM + ';');
		eval('DATA = DATA' + TM + ';');
		eval('CURRENTPAGE = CURRENTPAGE' + TM + ';');
		eval('RPP = RPP' + TM + ';');
		eval('S = S' + TM + ';');
		eval('WURL = WURL' + TM + ';');
		
		var Qs = "C=" + RPP + "&p=" + CURRENTPAGE + "&" + S;

		if (appendQuery.length > 0)
		{
		  Qs = Qs + '&' + appendQuery;
		}
		
		if (document.location.search.length > 0)
		{
		  Qs = Qs + '&' + document.location.search.substr(1);
		}

		url = WURL + "xListing.IM.aspx?" + lxCleanQuery(Qs);

		if (window.XMLHttpRequest)
		{
			try {
					eval('XML' + TM + ' = new XMLHttpRequest();');
				}
			catch(e)
			{
				eval('XML' + TM + ' = false;');
			}
		}
		else if (window.ActiveXObject) {
			try {
				eval('XML' + TM + ' = new ActiveXObject("Msxml2.XMLHTTP");');
				}
			catch(e) 
				{
					try {
						eval('XML' + TM + ' = new ActiveXObject("Microsoft.XMLHTTP");');
					} 
					catch(e) 
					{
						eval('XML' + TM + ' = false;');
					}
				}
		}


		if (eval('XML' + TM))
		{
			lxStatus(TM,LOCALE_STATUS2);
			try {
				var fstr = lxGetForm(document.forms[0]);
				var random_num = (Math.round((Math.random()*100000000)+1))
				if (targetobjectid!=null)
					eval('XML' + TM + '.onreadystatechange = function() {lxFetchEnd(' + TM + ',\'' + targetobjectid + '\');}');
				else
					eval('XML' + TM + '.onreadystatechange = function() {lxFetchEnd(' + TM + ');}');
				eval('XML' + TM + '.open("POST", url + \'&RA=\' + random_num, true);');
				eval('XML' + TM + '.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");'); 
				PX = url + '&RA=' + random_num;
				eval('XML' + TM + '.send(fstr);');
				}
			catch(e)
			{
				lxStatus(TM,LOCALE_STATUS3 + e.message);
			}
		}
		else
		{
			lxStatus(TM,LOCALE_STATUS4);
		}
	}
	var PX;
	function lxFetchEnd(TM,targetobjectid)
	{
		var TBL;
		var DATA;
		eval('TBL = TBL' + TM + ';');
		eval('DATA = DATA' + TM + ';');
		if (eval('XML' + TM))
		{
			if (eval('XML' + TM + '.readyState == 4')) 
			{
				// only if "OK"
				if (eval('XML' + TM + '.status == 200')) 
				{
					    if (eval('XML' + TM + '.responseText'))
						{
							DATA = lxContent(TM,eval('XML' + TM + '.responseText'));
							lxStatus(TM,'');
							if (DATA)
							{
								eval('DATA' + TM + ' = DATA;');
								lxLoad(TM,targetobjectid);
							}
						}
				} else {
					lxStatus(TM,LOCALE_STATUS5 + eval('XML' + TM + '.statusText'));
				}
				
				//CLEAN UP -- AVOID MEMORY LEAKS (IN IE)
				eval('XML' + TM + '.onreadystatechange = new function() {};');
				lxCleanUp(TM);
			}
		}
	}
	
	function lxCleanUp(TM)
	{
		eval('DATA' + TM + '=null;');
		eval('XML' + TM + '=null;');
	}
		
	//RENDER THE RESULTING TABLE
	function lxRender(TM,targetobjectid)
	{
		var strvalue = '';
		var TBL;
		var DATA;
		var HIDE;
		eval('TBL = TBL' + TM + ';');
		eval('DATA = DATA' + TM + ';');
		eval('HIDE = HIDE' + TM + ';');
		if (TBL && DATA) {
			if (targetobjectid!=undefined)
			{
				var targetobject = document.getElementById(targetobjectid);
				if (targetobject!=undefined)
				{
					targetobject.innerHTML = DATA;
				}
			}
			else
			{
				TBL.innerHTML = DATA;			
			}
		}
		if (HIDE==true)
		{
			if (!DATA || DATA.length==0)
			{
				lxModule(TM,false);
			}
			else
			{
				lxModule(TM,true);
			}
		}
		DATA = null;
	}
	
	//BUILD PAGING CONTROL FOR THE RENDERED TABLE
	var lxPagers = new Array();
	function lxPage(TM)//
	{
		eval('PGS' + TM + '	= document.getElementById(PGSN' + TM + ');');	
		var CURRENTPAGE = 0;
		var DATALENGTH = 0;
		var RPP = 0;
		var PGS = false;
		var PGSa = false;
		var PGSb = new Array();
		var PGStext = '';

		var PGSHeader = '';
		var PGSFooter = '';
		var PGSPages = 10;
		var PGSPageHalf = 0;
		var PGSPage = 'PAGENUMBER';
		var PGSBack = LOCALE_PAGEBACK;
		var PGSNext = LOCALE_PAGENEXT;
		var PGSFirst = LOCALE_PAGEFIRST;
		var PGSLast = LOCALE_PAGELAST;
		var PGSSeparator = '|';
		var PGSPageSeparator = '&nbsp;';
		var PGSBackSeparator = '...';
		var PGSNextSeparator = '...';

		eval('CURRENTPAGE = CURRENTPAGE' + TM + ';');
		eval('DATALENGTH = DATALENGTH' + TM + ';');
		eval('RPP = RPP' + TM + ';');
		eval('PGS = PGS' + TM + ';');

		PGSa = lxPagers[TM];
		if (!PGSa)
		{
			if (!PGS)
			{
				PGSa = document.getElementsByTagName('lxPager' + TM );
			}
			else
			{
				PGSa = new Array();
				PGSa[0] = PGS;
			}
			lxPagers[TM] = PGSa;
		}

		if (PGSa.length > 0)
		{
			if(PGSa[0].getAttribute('Header')!=null) PGSHeader = PGSa[0].getAttribute('Header');
			if(PGSa[0].getAttribute('Footer')!=null) PGSFooter = PGSa[0].getAttribute('Footer');
			if(PGSa[0].getAttribute('Pages')!=null) PGSPages = PGSa[0].getAttribute('Pages');
			if(PGSa[0].getAttribute('Page')!=null) PGSPage = PGSa[0].getAttribute('Page');
			if(PGSa[0].getAttribute('Back')!=null) PGSBack = PGSa[0].getAttribute('Back');
			if(PGSa[0].getAttribute('Next')!=null) PGSNext = PGSa[0].getAttribute('Next');
			if(PGSa[0].getAttribute('First')!=null) PGSFirst = PGSa[0].getAttribute('First');
			if(PGSa[0].getAttribute('Last')!=null) PGSLast = PGSa[0].getAttribute('Last');
			if(PGSa[0].getAttribute('Separator')!=null) PGSSeparator = PGSa[0].getAttribute('Separator');
			if(PGSa[0].getAttribute('PageSeparator')!=null) PGSPageSeparator = PGSa[0].getAttribute('PageSeparator');
			if(PGSa[0].getAttribute('BackSeparator')!=null) PGSBackSeparator = PGSa[0].getAttribute('BackSeparator');
			if(PGSa[0].getAttribute('NextSeparator')!=null) PGSNextSeparator = PGSa[0].getAttribute('NextSeparator');
		}

		if (DATALENGTH > 2)
		{
			PGSPageHalf = PGSPages/2;
			minPage = (CURRENTPAGE + 1) - (PGSPageHalf-1); //4
			if (RPP > 0)
			{
				lastPage = Math.round((DATALENGTH/RPP) + 0.5) - 1;
			}
			else
			{
				lastPage = minPage;
			}
			
			if (minPage < 0)
			{
				minPage = 0;
			}
			maxPage = minPage + (PGSPageHalf+1); //6
			if (maxPage > lastPage)
			{
				maxPage = lastPage;
			}

			if (DATALENGTH==RPP)
			{
				maxPage = minPage;
				lastPage = minPage;
			}
			

			if (lastPage > 0)
			{
				if (CURRENTPAGE > 0)
				{
					if (PGSBack.length > 0)
					{
						PGStext += '<a href="javascript:lxFetch(' + TM + ',' + (CURRENTPAGE - 1) + ',\'\');">' + PGSBack + '</a>' + PGSPageSeparator + '' + PGSBackSeparator + '&nbsp;';
					}
					if (PGSFirst.length > 0)
					{
						PGStext += '<a href="javascript:lxFetch(' + TM + ',' + 0 + ',\'\');">' + PGSFirst + '</a>' + PGSPageSeparator + '' + PGSSeparator + '' + PGSPageSeparator + '';
					}
				}
				else
				{
					if (PGSBack.length > 0)
					{
						PGStext += '' + PGSBack + '' + PGSPageSeparator + '' + PGSBackSeparator + '' + PGSPageSeparator + '';
					}
					if (PGSFirst.length > 0)
					{
						PGStext += '' + PGSFirst + '' + PGSPageSeparator + '' + PGSSeparator + '' + PGSPageSeparator + '';
					}
				}
				//PGStext += PGSHeader;
				for (x=minPage;x<=maxPage;x++)
				{	
					if (x==CURRENTPAGE)
						PGStext +=  PGSPage.replace(/PAGENUMBER/,(x+1));
					else
						PGStext += '<a href="javascript:lxFetch(' + TM + ',' + x + ',\'\');">' + PGSPage.replace(/PAGENUMBER/,(x+1)) + '</a>';
					
					PGStext += '' + PGSPageSeparator + '';
				}
				//PGStext += PGSFooter;
				if (CURRENTPAGE < lastPage)
				{
					if (PGSLast.length > 0)
					{
						PGStext += '' + PGSSeparator + '' + PGSPageSeparator + '<a href="javascript:lxFetch(' + TM + ',' + lastPage + ',\'\');">' + PGSLast + '</a>' + PGSPageSeparator + '' + PGSNextSeparator + '' + PGSPageSeparator + '';
					}
					if (PGSNext.length > 0)
					{
						PGStext += '<a href="javascript:lxFetch(' + TM + ',' + (CURRENTPAGE + 1) + ',\'\');">' + PGSNext + '</a>';
					}
				}
				else
				{
					if (PGSLast.length > 0)
					{
						PGStext += '' + PGSSeparator + ' ' + PGSLast + ' ' + PGSNextSeparator + ' ';
					}
					if (PGSNext.length > 0)
					{
						PGStext += '' + PGSNext + '';
					}
				}
				PGStext = PGSHeader + PGStext + PGSFooter;
			}
		}

		//PGStext = PGSHeader + PGStext + PGSFooter;
		
		if (PGSa.length > 0)
		{
			for(ii=0;ii<PGSa.length;ii++)
			{
				try
				{
					PGSa[ii].innerHTML = PGStext;
				}
				catch(x)
				{
					xt = null;
					xt = document.createElement('span');
					xt.innerHTML = PGStext;
					xt.Header = PGSHeader;
					xt.Footer = PGSFooter;
					xt.Pages = PGSPages;
					xt.Page = PGSPage;
					xt.Back = PGSBack;
					xt.Next = PGSNext;
					xt.First = PGSFirst;
					xt.Last = PGSLast;
					xt.Separator = PGSSeparator;
					xt.PageSeparator = PGSPageSeparator;
					xt.BackSeparator = PGSBackSeparator;
					xt.NextSeparator = PGSNextSeparator;
					PGSa[ii].parentNode.insertBefore(xt,PGSa[ii]);
					PGSb[ii] = xt;
				}
			}
		}
		if (PGSb.length>0)
		{
			lxPagers[TM] = PGSb;
		}
	}
function lxModule(moduleid,display)
{
	var anchor = false;
	for(i=0;i<document.anchors.length;i++)
	{
		if (document.anchors[i].name == moduleid)
		{
			anchor = document.anchors[i];
			i = document.anchors.length;
		}
	}
	if (anchor!=null)
	{
	    var sibling = anchor.nextSibling; 
		var displaytext = '';
		if (display)
		{
			displaytext = 'block';
		}
		else
		{
			displaytext = 'none';
		}
		while (sibling!=null)
		{
			if (sibling!=null && (sibling.tagName!='A'||(sibling.tagName=='A' && !isNaN(sibling.Name))))
			{
				if (sibling.style!=null && sibling.tagName!='SCRIPT')
				{
					sibling.style.display = displaytext;
				}
				sibling=sibling.nextSibling;
			}
			else
			{
				sibling=null;
			}
		}
	}
}
//]]>
