//---------------------------------
//   Web Interface JS functions
//---------------------------------


//-----------------------------------
// browser functions

	var Browser_UA = navigator.userAgent.toLowerCase();
	var Browser_IE50 = (Browser_UA.indexOf("msie 5.0")>=0)?true:false;
	var Browser_IE55 = (Browser_UA.indexOf("msie 5.5")>=0)?true:false;
	var Browser_IE60 = (Browser_UA.indexOf("msie 6")>=0 || Browser_UA.indexOf("msie 7")>=0)?true:false;


	function Browser_IsIE50(){return Browser_IE50;}
	function Browser_IsIE55(){return Browser_IE55;}
	function Browser_IsIE60(){return Browser_IE60;}




//-----------------------------------
// error handler

	if( false )
	{
		window.onError=Window_OnError;

		function Window_OnError(msg,url,line)
		{
		   return false;
		}
	}





//-----------------------------------
// general use functions

	function String_Trim(s)
	{
		return s.replace(/(^\s+)|(\s+$)/g, "");
	}

	function Object_PageLocation(obj)
	{
		var o = new Object();
		o.left=-1, o.top=-1;
		for(;obj&&obj.tagName!='BODY';obj=obj.offsetParent){o.left+=obj.offsetLeft; o.top+=obj.offsetTop;}
		return o;
	}

	function Object_GetRef( id )
	{
		var d=document, o;
		if( d && d.getElementById && (o=d.getElementById(id)) )
		{
			return o;
		}
		return null;
	}

	function Form_MakeQueryString( form_name )
	{
		var d=document, f, qry="", sep="";

		if( d && (f=d.forms[form_name]) )
		{
			for(var i=0;i<f.length;i++)
			{
				if( f[i].name!="" && f[i].name!="__VIEWSTATE" )
				{
					if( f[i].type=="hidden" || f[i].type=="text" || f[i].type=="textarea" )
					{
						qry += sep + escape(f[i].name) +"="+ encodeURIComponent(f[i].value);	sep = "&";
					}

					if( f[i].type=="select" || f[i].type=="select-one" )
					{
						if( f[i].selectedIndex >=0 && f[i].selectedIndex < f[i].options.length )
						{
							qry += sep + escape(f[i].name) +"="+ encodeURIComponent(f[i].options[f[i].selectedIndex].value);		sep = "&";
						}
					}

					if( f[i].type=="checkbox" && f[i].checked )
					{
						qry += sep + escape(f[i].name) +"="+ encodeURIComponent(f[i].value);	sep = "&";
					}

					if( f[i].type=="radio" && f[i].checked )
					{
						qry += sep + escape(f[i].name) +"="+ encodeURIComponent(f[i].value);	sep = "&";
					}
				}
			}
		}
		return qry;
	}


	function Button_ExecuteActionCode( code )
	{
		eval( code );
	}


	function Window_Location( url )
	{
		window.location = url;
	}



//---------------------------------
// HttpClient functions 


	function HttpClient_Get( url, no_random )
	{
		if( !url ) return {state:"BAD_URL", response:""};

		var obj;

		if( Browser_IsIE50() || Browser_IsIE55() )	{	obj = new ActiveXObject("Microsoft.XmlHttp");	}
		if( Browser_IsIE60() )						{	obj = new ActiveXObject("Msxml2.XMLHTTP");		}

		if( obj )
		{
			if( !no_random )
			{
				if( url.indexOf("?")>=0 )	url += "&HC_rand="+Math.random();
				else						url += "?HC_rand="+Math.random();
			}
			obj.Open("GET", url, false);
			obj.Send("");
			return {state:"OK", response:obj.responseText};
		}

		return {state:"XMLHTTP_ERROR", response:""};
	}




	var vHttpClientCalls = new Array(), iHttpClientCurrentCall = 0, HttpClient_XH, HttpClient_XH_lock = false; 


	function HttpClient_GetAsync( url, callback_function, callback_function_second_parameter, timeout, no_random  )
	{
		if( !no_random )
		{
			if( url.indexOf("?")>=0 )	url += "&HC_rand="+Math.random();
			else						url += "?HC_rand="+Math.random();
		}
		if(!url)									return "BAD_URL";
		if(typeof(callback_function)!="function")	return "NO_CALLBACK_FUNCTION";

		var id = vHttpClientCalls.length;

		if( !timeout )	timeout = 60;

		vHttpClientCalls[id] = {url:url, cf:callback_function, cf_sp:callback_function_second_parameter, tout:timeout, btime:new Date()};

		setTimeout("HttpClient_Get0("+ id +");",10);

		return "OK";
	}


	function HttpClient_Get0( id )
	{
		var o = vHttpClientCalls[id], ntime;

		if( o )
		{
			if( HttpClient_XH_lock == false )
			{
				HttpClient_XH_lock		= true;
				iHttpClientCurrentCall	= id;

				if( Browser_IsIE50() || Browser_IsIE55() )	{	HttpClient_XH = new ActiveXObject("Microsoft.XmlHttp");	}
				if( Browser_IsIE60() )						{	HttpClient_XH = new ActiveXObject("Msxml2.XMLHTTP");	}

				if(!HttpClient_XH)
				{
					iHttpClientCurrentCall	= -1;
					HttpClient_XH_lock		= false;

					o.cf( {state:"XMLHTTP_ERROR", response:""}, o.cf_sp );

					vHttpClientCalls[id] = null;
					return;
				}

				HttpClient_XH.onreadystatechange = HttpClient_doHttpReadyStateChange;
				HttpClient_XH.open("GET", o.url, true);
				HttpClient_XH.send();
			}
			else
			{
				ntime = new Date();

				if( ntime - o.btime < o.tout*1000 )
				{
					setTimeout( "HttpClient_Get0("+ id +");", 50 );
				}
				else
				{
					o.cf( {state:"TIMEOUTED", response:""}, o.cf_sp );

					vHttpClientCalls[id] = null;
				}
			}
		}
	}

	function HttpClient_doHttpReadyStateChange()
	{
		if( HttpClient_XH.readyState == 4 && iHttpClientCurrentCall >= 0 )
		{
			var o = vHttpClientCalls[iHttpClientCurrentCall];

			if( o )
			{
				var id = iHttpClientCurrentCall;

				iHttpClientCurrentCall	= -1;
				HttpClient_XH_lock		= false;

				o.cf( {state:"OK", response:HttpClient_XH.responseText}, o.cf_sp );

				vHttpClientCalls[id] = null;
			}
		}
	}





//---------------------------------
// Body_OnClick functions 


	var zBody_OnClick_SetHandle	= false;
	var Body_OnClick_HandleP	= null;
	var Body_OnClick_Handles	= new Array();


	function Body_OnClick_ExistHandle(name)
	{
		for(var i=0;i<Body_OnClick_Handles.length;i++)
		{
			if( Body_OnClick_Handles[i].name == name )	return true;
		}
		return false;
	}


	function Body_OnClick_AddHandle(name,code)
	{
		if( Body_OnClick_ExistHandle(name) ) return false;
		Body_OnClick_Handles[Body_OnClick_Handles.length] = {name:name, code:code};
	}

	function Body_OnClick_RemoveHandle(name)
	{
		for(var i=0;i<Body_OnClick_Handles.length;i++)
		{
			if( Body_OnClick_Handles[i] && Body_OnClick_Handles[i].name == name )
			{
				Body_OnClick_Handles[i] = null;
				return true;
			}
		}
		return false;
	}


	function Body_OnClick_ExecuteHandles()
	{
		if( zBody_OnClick_SetHandle )
		{
			if(Body_OnClick_HandleP)	eval(Body_OnClick_HandleP);

			for(var i=0;i<Body_OnClick_Handles.length;i++)
			{
				if( Body_OnClick_Handles[i] && Body_OnClick_Handles[i].code )
				{
					try
					{
						eval( Body_OnClick_Handles[i].code );
					}
					catch(ex){}
				}
			}
		}
	}


	function Body_OnClick_SetHandle()
	{
		var d = document;
		if( d.body )
		{
			if( !zBody_OnClick_SetHandle )
			{
				if( d.body.onclick )	Body_OnClick_HandleP = d.body.onclick;
				d.body.onclick = Body_OnClick_ExecuteHandles;
				zBody_OnClick_SetHandle = true;
			}
		}
		else
		{
			setTimeout( "Body_OnClick_SetHandle()", 100);
		}
	}

	Body_OnClick_SetHandle();



	




//---------------------------------
// menu functions 


	function NavigateTo(url)
	{
		setTimeout("window.location = '"+url+"';", 100); 
	}



	var ChangeMenuImage_block = false;

	function ChangeMenuImage(img, src, block)
	{
		if( block == true ) ChangeMenuImage_block = true;
		if( ChangeMenuImage_block == false )	document.images[img].src = src;
	}



	var zCanIShowLoader = true;

	function ShowLoader()
	{
		if( zCanIShowLoader )
		{
			var o = document.getElementById("MsgLoader");	if(o) o.style.display = "";
		}
	}
	window.onbeforeunload = ShowLoader;


	function Loader_HrefJavaScript()
	{
		var s;		

		if( self && self.event && (s=self.event.srcElement) )
		{
			if( s.toString().toLowerCase().indexOf("javascript:") >=0 )
			{
				zCanIShowLoader = false;
				setTimeout("zCanIShowLoader=true;",200);
			}
		}
	}

	Body_OnClick_AddHandle('Loader_HrefJavaScript', 'Loader_HrefJavaScript()');





	var vPageDropDownMenu = new Array();
	var PageDropDownMenu_OnClickHandle	= null;
	var PageDropDownMenu_OnClickHandleP	= null;

	


	function DropDownMenu_Init(		base_name, drop_down_name, 
									arrow_img_name, arrow_img_up_src, arrow_img_down_src, 
									normal_class_name, over_class_name, down_class_name,
									children
							  )
	{

		if( !DropDownMenu_GetMenuObj( base_name, drop_down_name ) )
		{

			var d=document, o = new Object();

			vPageDropDownMenu[vPageDropDownMenu.length] = o;

			o.POCF					=	null;
			o.MenuOn				=	false;
			o.MenuClicked			=	false;

			o.base_name				=	base_name;
			o.drop_down_name		=	drop_down_name;

			o.arrow_img_name		=	arrow_img_name;
			o.arrow_img_up_src		=	arrow_img_up_src;
			o.arrow_img_down_src	=	arrow_img_down_src;
			
			o.normal_class_name		=	normal_class_name;
			o.over_class_name		=	over_class_name;
			o.down_class_name		=	down_class_name;

			o.vChildren				=	children;

			
			Body_OnClick_AddHandle('DropDownMenu_DocumentBody_OnClick','DropDownMenu_DocumentBody_OnClick()');
		}
	}
	

	function DropDownMenu_DocumentBody_OnClick()
	{
		var d=document,o;

		for(var i=0;i<vPageDropDownMenu.length;i++)
		{
			o = vPageDropDownMenu[i];

			if( !o.MenuOn )
			{
				if( d.getElementById(o.drop_down_name) && d.getElementById(o.base_name) )
				{
					d.getElementById(o.base_name).className = o.normal_class_name;
					o.MenuClicked=false;
					if(d.images[o.arrow_img_name])d.images[o.arrow_img_name].src=o.arrow_img_up_src;
					DropDownMenu_HideChildren(o);
					DropDownMenuHide(o.drop_down_name);
					DropDownMenu_SetSelectVisibility( 0, 0, 0, 0, true );
				}
			}
		}
	}


	function DropDownMenu_CloseAll()
	{
		var d=document,o;

		for(var i=0;i<vPageDropDownMenu.length;i++)
		{
			o = vPageDropDownMenu[i];

			if( d.getElementById(o.drop_down_name) && d.getElementById(o.base_name) )
			{
				d.getElementById(o.base_name).className = o.normal_class_name;
				o.MenuClicked=false;
				if(d.images[o.arrow_img_name])d.images[o.arrow_img_name].src=o.arrow_img_up_src;
				DropDownMenu_HideChildren(o);
				DropDownMenuHide(o.drop_down_name);
				DropDownMenu_SetSelectVisibility( 0, 0, 0, 0, true );
			}
		}
	}


	function DropDownMenu_GetMenuObj( base_name, drop_down_name )
	{
		var d=document;

		if( d.getElementById(base_name) && d.getElementById(drop_down_name) )
		{

			for(var i=0;i<vPageDropDownMenu.length;i++)
			{
				if( vPageDropDownMenu[i].base_name == base_name && vPageDropDownMenu[i].drop_down_name == drop_down_name )
				{
					return vPageDropDownMenu[i];
				}
			}
		}
		return null;
	}


	function DropDownMenuBase_OnClick( base_name, drop_down_name, x, y )
	{
		var d=document, o=DropDownMenu_GetMenuObj( base_name, drop_down_name );

		if( o )
		{
			if(o.MenuClicked)
			{
				DropDownMenu_HideChildren(o);
				DropDownMenuHide(drop_down_name);
				DropDownMenu_SetSelectVisibility( 0, 0, 0, 0, true );

				d.getElementById(base_name).className = o.over_class_name;
				o.MenuClicked=false;
				if(d.images[o.arrow_img_name])d.images[o.arrow_img_name].src=o.arrow_img_up_src;
			}
			else
			{
				o.MenuClicked=true;
				o.MenuOn=true;
				d.getElementById(base_name).className = o.down_class_name;
				DropDownMenuShow(drop_down_name,base_name,x,y);
				if(d.images[o.arrow_img_name])d.images[o.arrow_img_name].src=o.arrow_img_down_src;
			}
		}
	}

	function DropDownMenuBase_OnMouseOut( base_name, drop_down_name )
	{
		var d=document, o=DropDownMenu_GetMenuObj( base_name, drop_down_name );

		if( o )
		{
			o.MenuOn=false;
			if(!o.MenuClicked)d.getElementById(base_name).className=o.normal_class_name;
		}
	}

	function DropDownMenuBase_OnMouseOver( base_name, drop_down_name )
	{
		var d=document, o=DropDownMenu_GetMenuObj( base_name, drop_down_name );

		if( o )
		{
			if(!o.MenuClicked)d.getElementById(base_name).className=o.over_class_name;
		}
	}


	function DropDownMenu_OnMouseOut( base_name, drop_down_name )
	{
		var d=document, o=DropDownMenu_GetMenuObj( base_name, drop_down_name );

		if( o )
		{
			o.MenuOn=false;
		}
	}

	function DropDownMenu_OnMouseOver( base_name, drop_down_name )
	{
		var d=document, o=DropDownMenu_GetMenuObj( base_name, drop_down_name );

		if( o )
		{
			o.MenuOn=true;
			DropDownMenuShow( drop_down_name );
		}
	}




	function DropDownMenuShow( container, objref, x, y )
	{
		var o = null, o1 = null, d = document;


		if( d.getElementById && d.getElementById(container) )
		{
			o = d.getElementById(container);
		}
		else
		{
			if(d.all && d.all[container])
			{
				o = d.all[container];
			}
		}
		
		if( o )
		{
			
			if( d.getElementById && d.getElementById(objref) )
			{
				o1 = d.getElementById(objref);
			}
			else
			{
				if(d.all && d.all[objref])
				{
					o1 = d.all[objref];
				}
			}
			
			if( o1 )
			{

				var t=o1,L=0,T=0;
				for(;t&&t.tagName!='BODY';t=t.offsetParent){L+=t.offsetLeft;T+=t.offsetTop;}

				o.style.left	= 	L + x;
				o.style.top		= 	T + y;
			}

			o.style.display	=	'';

			DropDownMenu_SetSelectVisibility( o.offsetLeft, o.offsetTop, o.offsetWidth, o.offsetHeight + 20, false );
		}
	}



	function DropDownMenuHide( container )
	{
		var o=null, d=document;

		if( d.getElementById && d.getElementById(container) )
		{
			o = d.getElementById(container);
		}
		else
		{
			if(d.all && d.all[container])
			{
				o = d.all[container];
			}
		}
		if( o )
		{
			o.style.display	=	'none';
		}
	}

	function DropDownMenu_HideChildren(o)
	{
		if(!o)return;
		var o2;
		for(var i=0; i<o.vChildren.length; i++)
		{
			o2 = document.getElementById( o.vChildren[i] );	if(o2)o2.style.display = 'none';
		}
		return;
		
	}

	function DropDownMenu_ShowChild( base_name, drop_down_name, id, t )
	{
		var o = DropDownMenu_GetMenuObj( base_name, drop_down_name ), d = document, o2, bo;

		if(o)
		{
			bo = d.getElementById(drop_down_name);

			for(var i=0; i<o.vChildren.length; i++)
			{
				o2 = d.getElementById( o.vChildren[i] );	
				if(o2)
				{
					if(o2.id == id)
					{
						DropDownMenu_SetSelectVisibility( bo.offsetLeft + bo.offsetWidth - 2, bo.offsetTop  + t.offsetTop + 4, o2.offsetWidth, o2.offsetHeight, false );

						o2.style.left		= bo.offsetLeft + bo.offsetWidth - 2;
						o2.style.top		= bo.offsetTop  + t.offsetTop + 4;
						o2.style.display	= '';
					}
					else
					{
						DropDownMenu_SetSelectVisibility( 0, 0, 0, 0, true );

						o2.style.display = 'none';
					}
				}
			}
		}
	}

	function DropDownMenu_SetSelectVisibility(BL,BT,BW,BH,show)
	{
		var vT,i,L,T,R,B,TR;

		vT=document.getElementsByTagName("SELECT");

		if(show){for(i=0; i<vT.length; i++)vT[i].style.visibility = "visible";}
		else
		{
			for(i=0; i<vT.length; i++)
			{
				TR=vT[i].getBoundingClientRect();L=TR.left;T=TR.top;R=TR.right;B=TR.bottom;
				if(((L>=BL&&L<=BL+BW)&&(T>=BT&&T<=BT+BH))||((R>=BL&&R<=BL+BW)&&(B>=BT&&B<=BT+BH)))vT[i].style.visibility = "hidden";
			}
		}
	}



//---------------------------------
// HelpToogle functions 



	function ToogleButton_Init( button_name, toogle_on, normal_class_name, over_class_name, down_class_name, callback_function )
	{
		var o,d;

		if( (d=document) && d.body && (o=d.getElementById(button_name)) )
		{
			if( toogle_on )	o.className = down_class_name;
			else			o.className = normal_class_name;

			o.toogle_on				= toogle_on;
			o.normal_class_name		= normal_class_name;
			o.over_class_name		= over_class_name;
			o.down_class_name		= down_class_name;
			
			o.callback_function		= callback_function;
		}
		else
		{
			setTimeout
			(
				"ToogleButton_Init( "+	button_name +", "+ toogle_on +", "+ 
										normal_class_name + ", " + over_class_name +", "+ down_class_name +", "+ callback_function +");" ,
				100
			);
		}
	}


	function ToogleButton_OnClick( o, url_change_status )
	{
		
		if( o.toogle_on )
		{
			o.toogle_on = false;
			o.className = o.over_class_name;
		}
		else
		{
			o.toogle_on = true;
			o.className = o.down_class_name;
		}

		if( o.callback_function )
		{
			setTimeout(o.callback_function +"("+ o.toogle_on +" );", 10);
			
		}
		
		if( url_change_status!="" && url_change_status.indexOf("?")>=0 )
			{
				img = new Image();
				
				img.src = url_change_status+"&minimize="+(o.toogle_on?"true":"false")+"&rnd="+Math.random();
				
			}
	}

	function ToogleButton_OnMouseOut( o )
	{
		if( !o.toogle_on )
		{
			o.className = o.normal_class_name;
		}
	}

	function ToogleButton_OnMouseOver( o )
	{
		if( !o.toogle_on )
		{
			o.className = o.over_class_name;
		}
	}





//---------------------------------
// PageHelp functions 

	var vPageHelpObjects	= new Array();
	var zPageHelpShow		= null;


	function PageHelp_Init( show )
	{
		zPageHelpShow = show;
		setTimeout( "PageHelp_Init2()", 100);
	}


	function PageHelp_Add( name )
	{
		
		var o;

		if( name ) vPageHelpObjects[vPageHelpObjects.length] = name;

		if( zPageHelpShow )
		{
			if( (o=document.getElementById(name)) )
			{
				o.style.display = '';
			}
		}
	}



	var PageHelp_Init2_count = 0;

	function PageHelp_Init2()
	{
		if( vPageHelpObjects )
		{
			if( document && document.body )
			{
				for(var i=0;i<vPageHelpObjects.length;i++)
				{
					if( (o=document.getElementById( vPageHelpObjects[i] )) )
					{
						if( zPageHelpShow != null )
						{
							if( zPageHelpShow )	o.style.display = '';
							else				o.style.display = 'none';
						}
					}
				}
			}
		}
		if( PageHelp_Init2_count < 5 )
		{
			PageHelp_Init2_count++;
			setTimeout( "PageHelp_Init2()", 100);
		}
	}




	function PageHelpShow( array_objects )
	{
		if( array_objects )
		{
			for(var i=0;i<array_objects.length;i++)
			{
				if( (o=document.getElementById( array_objects[i] )) )
				{
					o.style.display = '';
				}
			}
		}
		else
		{
			if( vPageHelpObjects )
			{
				for(var i=0;i<vPageHelpObjects.length;i++)
				{
					if( (o=document.getElementById( vPageHelpObjects[i] )) )
					{
						o.style.display = '';
					}
				}
			}
		}
	}


	function PageHelpHide( array_objects )
	{
		if( array_objects )
		{
			for(var i=0;i<array_objects.length;i++)
			{
				if( (o=document.getElementById( array_objects[i] )) )
				{
					o.style.display = 'none';
				}
			}
		}
		else
		{
			if( vPageHelpObjects )
			{
				for(var i=0;i<vPageHelpObjects.length;i++)
				{
					if( (o=document.getElementById( vPageHelpObjects[i] )) )
					{
						o.style.display = 'none';
					}
				}
			}
		}
	}






//---------------------------------
// form functions 



	// public

	var vDynamicTables = new Array();



	function DynamicTable_Init( table_name, field_sep, line_sep, constraints )
	{	
		var d;

		if( (d=document) && d.body )
		{
			var t = eval("document.all."+table_name);
			if( typeof(t)=="undefined" ) return false;


			var DTlen = vDynamicTables.length;

			for(var i=0;i<DTlen;i++)
			{
				if( vDynamicTables[i][0] == table_name )
				{
					return false;
				}
			}


			var array_row_data = new Array(), array_row_display_data = new Array();

			var row_html="", row_sep_html="", html_obj, iTL, vTL, vTLF;


			if( (hobj=d.getElementById(table_name+"Row")) )		row_html		= hobj.innerHTML.replace(/<tbody>/gi,"").replace(/<\/tbody>/gi,"");
			if( (hobj=d.getElementById(table_name+"Sep")) )		row_sep_html	= hobj.innerHTML.replace(/<tbody>/gi,"").replace(/<\/tbody>/gi,"");

			if( (hobj=d.getElementById(table_name+"DV")) )
			{
				vTL = hobj.innerText.split(line_sep);

				for(iTL=0;iTL<vTL.length;iTL++)
				{
					if( vTL[iTL]!="" )
					{
						vTLF = vTL[iTL].split( field_sep );
						if( vTLF.length>0 || (vTLF.length==1&&vTLF[0]!="") )
						{
							array_row_data[array_row_data.length] = vTLF;
						}
					}
				}
			}

			if( (hobj=d.getElementById(table_name+"DT")) )
			{

				vTL = hobj.innerText.split(line_sep);

				for(iTL=0;iTL<vTL.length;iTL++)
				{
					if( vTL[iTL]!="" )
					{
						vTLF = vTL[iTL].split( field_sep );
						if( vTLF.length>0 || (vTLF.length==1&&vTLF[0]!="") )
						{
							array_row_display_data[array_row_display_data.length] = vTLF;
						}
					}
				}
			}

			

			vDynamicTables[DTlen] = new Array( table_name, new Array(), row_html, row_sep_html, (constraints?constraints:null) );

			for(var i=0;i<array_row_data.length;i++)
			{
				vDynamicTables[DTlen][1][i] = array_row_data[i];
			}

			
			var table_html = "", tr_html = "";

			for(var i=0;i<array_row_display_data.length;i++)
			{
				tr_html = row_html;

				for(j=0;j<array_row_display_data[i].length;j++)
				{
					tr_html = tr_html.replace(eval("/{data_"+j+"}/gi"), array_row_display_data[i][j] );
				}

				if( i==0 )
				{
					table_html += tr_html.replace(/<tr/gi,'<tr id="ID_'+table_name+'_'+i+'" ').replace(/TABLE_TR_ID/gi,table_name+'_'+i);
				}
				else
				{
					table_html += 
						row_sep_html.replace(/<tr/gi,'<tr id="ID_'+table_name+'_'+i+'_SEP" ')
						+
						tr_html.replace(/<tr/gi,'<tr id="ID_'+table_name+'_'+i+'" ').replace(/TABLE_TR_ID/gi,table_name+'_'+i);
				}
			}

			t.outerHTML = t.outerHTML.replace(	/<\/tbody>/gi, table_html );

			return true;

		}
		else
		{
			setTimeout("DynamicTable_Init('"+ table_name +"', '" + field_sep +"', '" + line_sep + "');", 300 );
		}
	}




	function DynamicTable_AddRow( table_name, row_data, row_display_data )
	{
		var t = eval("document.all."+table_name);
		if( typeof(t)=="undefined" ) return "UNDEFINED_TABLE";


		var DTi = -1, DTlen = vDynamicTables.length, row_html, row_sep_html;

		for(var i=0;i<DTlen;i++)
		{
			if( vDynamicTables[i][0] == table_name )
			{
				DTi=i;
				row_html		= vDynamicTables[i][2];
				row_sep_html	= vDynamicTables[i][3];
				break;
			}
		}

		if( DTi == -1 )
		{
			return "UNDEFINED_TABLE";
		}


		if( !(row_data && row_data.length) )	return "ROW_DATA_NULL";

		
		var vD = vDynamicTables[DTi][1], vC = vDynamicTables[DTi][4], DTRlen = vD.length, zC;

		

		if( vC && vC.length )				/* constraints */
		{
			for(j=0;j<vD.length;j++)
			{
				if( vD[j] && vD[j].length>0 )
				{
					zC = true;

					for(k=0;k<vC.length;k++)
					{
						if( vC[k]>=0 && vC[k]<vD[j].length && vC[k]<row_data.length )
						{
							if( row_data[vC[k]] != vD[j][vC[k]] )	zC = false;
						}
						else
						{
							return "COLUMN_CONSTRAINTS_NOT_MATCH_WITH_TABLE";
						}
					}

					if( zC )	return "DUPLICATE_ROW";
				}
			}
		}


		vDynamicTables[DTi][1][DTRlen] = row_data;



		for(j=0;j<row_display_data.length;j++)
		{
			row_html = row_html.replace(eval("/{data_"+j+"}/gi"), row_display_data[j] );
		}



		if( DynamicTable_CountRows(table_name)-1==0 )
		{
			t.outerHTML = t.outerHTML.replace
							(	/<\/tbody>/gi, 
								row_html.replace(/<tr/gi,'<tr id="ID_'+table_name+'_'+DTRlen+'" ').replace(/TABLE_TR_ID/gi,table_name+'_'+DTRlen)
							);
		}
		else
		{
			t.outerHTML =	t.outerHTML.replace
							(	/<\/tbody>/gi, 
								row_sep_html.replace(/<tr/gi,'<tr id="ID_'+table_name+'_'+DTRlen+'_SEP" ')
								+
								row_html.replace(/<tr/gi,'<tr id="ID_'+table_name+'_'+DTRlen+'" ').replace(/TABLE_TR_ID/gi,table_name+'_'+DTRlen)
							);
		}


		return "OK";
	}


	function DynamicTable_RemoveRow(t,msg)
	{

		var conf = confirm(msg);

		if( !conf ) return false;


		var vT = t.split("_");

		if(vT.length>=2)
		{
			var tb = eval("document.all."+vT[0]);

			if( typeof(tb)!="undefined" )
			{
				var z_delete = true, iDel = 0, sT3, vT3, zDataRow, vRowsToDel, zAddToDel, iLastRowIndex, iLastSep;
	
				while( z_delete && iDel < 10 )
				{
					z_delete = false;

					for(iRow=0;iRow<tb.rows.length;iRow++)
					{
						if( tb.rows[iRow].id == ("ID_"+vT[0]+"_"+vT[1]) )
						{
							z_delete = true;
							tb.deleteRow( iRow );
							//break;
						}
					}

					
		
					if( z_delete )
					{

						zDataRow	= false;
						vRowsToDel	= new Array();
						zAddToDel	= false;
						iLastRowIndex = -1;
						iLastSep = -1;


						for(iRow=0;iRow<tb.rows.length;iRow++)
						{
							sT3 = tb.rows[iRow].id;		vT3 = sT3.split("_");

							if( vT3.length==3 && vT3[1]==vT[0] )
							{
								zDataRow = true;
								iLastSep = -1;
							}
							else
							{
								if( vT3.length==4 && vT3[1]==vT[0] && vT3[3]=="SEP" )
								{
									zAddToDel = false;

									if( !zDataRow && iLastRowIndex==-1		)	zAddToDel = true;
									if( !zDataRow && iLastRowIndex!=vT3[2]	)	zAddToDel = true;

									if( zAddToDel )
									{
										vRowsToDel[vRowsToDel.length] = iRow;
									}
									zDataRow = false;

									if( iLastRowIndex!=vT3[2] )	iLastRowIndex = vT3[2];
									iLastSep = iRow;
								}
							}
						}

						
						if( iLastSep>-1 )
						{
							for(iR=0;iR<vRowsToDel.length;iR++)	if( iLastSep==vRowsToDel[iR] )	iLastSep = -1;
							if( iLastSep>-1 )	vRowsToDel[vRowsToDel.length] = iLastSep;
						}


						for(iR=0;iR<vRowsToDel.length;iR++)
						{
							tb.deleteRow( vRowsToDel[iR] );
						}
					}
				}



				var DTi = -1, DTlen = vDynamicTables.length;

				for(var i=0;i<DTlen;i++)
				{
					if( vDynamicTables[i][0] == vT[0] )
					{
						for(j=0;j<vDynamicTables[i][1].length;j++)
						{
							if( vT[1] == j )
							{
								vDynamicTables[i][1][j] = null;
								return true;
							}
						}
					}
				}

			}
		}
		return false;
	}


	function DynamicTable_RemoveAllRows( table_name, msg )
	{
		var conf = confirm(msg);

		if( !conf ) return false;

		
		var tb = eval("document.all."+table_name);

		if( typeof(tb)=="undefined" )	return false;
		else
		{
			var z_delete = true, iDel = 0;

			while( z_delete && iDel < 10 )
			{
				z_delete = false;

				for(iRow=0;iRow<tb.rows.length;iRow++)
				{
					var sT2 = tb.rows[iRow].id, vT2 = sT2.split("_");

					if( vT2.length>=2 && table_name==vT2[1] )
					{
						z_delete = true;
						tb.deleteRow( iRow );
						//break;
					}
				}
				iDel++;
			}


			var DTi = -1, DTlen = vDynamicTables.length;

			for(var i=0;i<DTlen;i++)
			{
				if( vDynamicTables[i][0] == table_name )
				{
					for(j=0;j<vDynamicTables[i][1].length;j++)
					{
						vDynamicTables[i][1][j] = null;
					}
				}
			}

			return true;
		}
	}


	function DynamicTable_GetRowsDataAsString( table_name, field_sep, row_sep )
	{
		var sC = "", fs="", ls="";

		for(var i=0;i<vDynamicTables.length;i++)
		{
			if( table_name==vDynamicTables[i][0] )
			{
				ls=""

				for(j=0;j<vDynamicTables[i][1].length;j++)
				{
					if( vDynamicTables[i][1][j] )
					{
						sC += ls;

						fs = "";

						for(k=0;k<vDynamicTables[i][1][j].length;k++)
						{
							sC += fs + vDynamicTables[i][1][j][k];		fs = field_sep;
						}
						ls = row_sep;
					}
				}
				break;
			}

		}

		return sC;
	}



	function DynamicTable_GetRowsDataAsJSArray( table_name )
	{
		var vR = new Array();

		for(var i=0;i<vDynamicTables.length;i++)
		{
			if( table_name==vDynamicTables[i][0] )
			{
				for(j=0;j<vDynamicTables[i][1].length;j++)
				{
					if( vDynamicTables[i][1][j] )
					{
						vR[vR.length] = vDynamicTables[i][1][j];
					}
				}
				break;
			}
		}

		return vR;
	}


	function DynamicTable_IsLastRow( table_name, row_index )
	{
		row_index = parseInt( row_index );

		for(var i=0;i<vDynamicTables.length;i++)
		{
			if( table_name==vDynamicTables[i][0] )
			{
				var j2 = -1;

				for(j=0;j<vDynamicTables[i][1].length;j++)
				{
					if( vDynamicTables[i][1][j] ) j2 = j;
				}
				return ((j2==row_index)?true:false);
			}
		}
		return false;
	}


	function DynamicTable_CountRows( table_name )
	{
		var iCount = 0;

		for(var i=0;i<vDynamicTables.length;i++)
		{
			if( table_name==vDynamicTables[i][0] )
			{
				for(j=0;j<vDynamicTables[i][1].length;j++)
				{
					if( vDynamicTables[i][1][j] )
					{
						iCount++;
					}
				}
				break;
			}
		}
		
		return iCount;
	}


	function DynamicTable_ChangeRow( t, cell_index, data )
	{
		var vT = t.split("_");

		if(vT.length>=2)
		{
			var tb = eval("document.all."+vT[0]);

			if( typeof(tb)!="undefined" )
			{
				var DTi = -1, DTlen = vDynamicTables.length;

				for(var i=0;i<DTlen;i++)
				{
					if( vDynamicTables[i][0] == vT[0] )
					{
						for(j=0;j<vDynamicTables[i][1].length;j++)
						{
							if( vT[1] == j )
							{
								if( vDynamicTables[i][1][j] && vDynamicTables[i][1][j].length>0 )
								{
									for(k=0;k<vDynamicTables[i][1][j].length;k++)
									{
										if( cell_index == k )
										{
											vDynamicTables[i][1][j][k] = data;
											return true;
										}
									}
								}
							}
						}
					}
				}

			}
		}
		return false;
	}


	function DynamicTable_GetRow( t, cell_index )
	{
		var vT = t.split("_");

		if(vT.length>=2)
		{
			var tb = eval("document.all."+vT[0]);

			if( typeof(tb)!="undefined" )
			{
				var DTi = -1, DTlen = vDynamicTables.length;

				for(var i=0;i<DTlen;i++)
				{
					if( vDynamicTables[i][0] == vT[0] )
					{
						for(j=0;j<vDynamicTables[i][1].length;j++)
						{
							if( vT[1] == j )
							{
								if( vDynamicTables[i][1][j] && vDynamicTables[i][1][j].length>0 )
								{
									for(k=0;k<vDynamicTables[i][1][j].length;k++)
									{
										if( cell_index == k )
										{
											return vDynamicTables[i][1][j][k];
										}
									}
								}
							}
						}
					}
				}

			}
		}
		return null;
	}







//---------------------------------
// filter functions 

	
	function GridFilter_RefreshSync( container, url, qry, form_name, init )
	{
		var d=document, o;
		
		if( typeof(form_name)=="undefined" )	form_name = '';
		if(!qry)qry = '';

		if( init!="false" )		init = "true";

		if( d.body && (o=d.getElementById(container)) )
		{
			var sep = ((url.indexOf("?")>=0)?"&":"?");

			url = url + sep + "GF_rand="+Math.random()+"&GF_name="+escape(container)+"&GF_form="+escape(form_name)+ (init=="true"?"&GF_init=true":"") +"&"+qry;

			var r = HttpClient_Get(url, true);

			if( r.state == "OK" )
			{
				o.innerHTML = r.response;
			}
		}
		else
		{
			setTimeout('GridFilter_Refresh("'+container+'", "'+url+'", "'+qry+'", "'+form_name+'", "'+init+'");', (Browser_IsIE50()||Browser_IsIE55()?100:10) );
		}
		
	}

	function GridFilter_SubmitSync( name, url, form_name )
	{
		if( document.forms[form_name] )
		{
			var qry = Form_MakeQueryString( form_name );
			GridFilter_RefreshSync( name, url, qry, form_name, "false" );
		}
	}



	


	function GridFilter_Refresh( container, url, qry, form_name, init )
	{
		var d=document, o;
		
		if( typeof(form_name)=="undefined" )	form_name = '';
		if(!qry)qry = '';

		if( init!="false" )		init = "true";

		if( d.body && (o=d.getElementById(container)) )
		{
			var sep = ((url.indexOf("?")>=0)?"&":"?");

			url = url + sep + "GF_rand="+Math.random()+"&GF_name="+escape(container)+"&GF_form="+escape(form_name)+ (init=="true"?"&GF_init=true":"") +"&"+qry;

			var r = HttpClient_GetAsync(url, GridFilter_Render, o, 60, true );

			if( r=="OK" )
			{
				//display loading message
			}
		}
		else
		{
			setTimeout('GridFilter_Refresh("'+container+'", "'+url+'", "'+qry+'", "'+form_name+'", "'+init+'");', (Browser_IsIE50()||Browser_IsIE55()?100:10) );
		}
		
	}

	function GridFilter_Render( r, o )
	{
		if( r.state == "OK" )
		{
			o.innerHTML = r.response;
		}
	}

	function GridFilter_Submit( name, url, form_name )
	{
		if( document.forms[form_name] )
		{
			var qry = Form_MakeQueryString( form_name );
			GridFilter_Refresh( name, url, qry, form_name, "false" );
		}
	}

	function GridFilter_GoToPage( name, url, form_name, page )
	{
		var f;
		
		if( (f=document.forms[form_name]) )
		{
			var qry = Form_MakeQueryString( form_name );

			GridFilter_Refresh( name, url, qry + "&" + page, form_name, "false" );
		}
	}

	function GridFilter_Sort( name, url, form_name, sort_info )
	{
		var f;
		
		if( (f=document.forms[form_name]) )
		{
			var qry = Form_MakeQueryString( form_name );

			GridFilter_Refresh( name, url, qry + "&" + sort_info, form_name, "false" );
		}
	}




//---------------------------------
// show/hide objects by id functions 


	function ShowHideObject( object_id )
	{
		var d=document,o=null;

		if( d.getElementById && (o=d.getElementById(object_id)) ){}
		else
		{
			if(d.all && (o=d.all[object_id]) ){}
		}

		if(o)
		{
			if( o.style.display=='none' )	o.style.display='';
			else							o.style.display='none';
		}
	}


	function MinimizeMaximizeBox( object_id, t, img_src_min, img_src_max, url_change_status  )
	{
		var d=document,o=null;

		if( d.getElementById && (o=d.getElementById(object_id)) ){}
		else
		{
			if(d.all && (o=d.all[object_id]) ){}
		}

		if(o)
		{
			var z_min = true, img;
			
			if( o.style.display=='none' )
			{
				t.src = img_src_min;
				o.style.display='';
				z_min = false;
			}
			else
			{
				t.src = img_src_max;
				o.style.display='none';
				z_min = true;
			}

			if( url_change_status!="" && url_change_status.indexOf("?")>=0 )
			{
				img = new Image();
				img.src = url_change_status+"&minimize="+(z_min?"true":"false")+"&rnd="+Math.random();
			}
		}
	}





//---------------------------------
// Calendar functions




	var vCalendars = new Array();

	var Calendar_iSH = -2;


	function Calendar_Init( name, src_page, width, height, src_page_h, width_h, height_h, callback_function, show_hours )
	{
		var d = document;


		show_hours = (show_hours==true?true:false);


		if( name!="" && src_page!="" && Calendar_GetObjRef(name)==null )
		{

			if( show_hours && src_page_h=="" )	return;


			var o = new Object;
			vCalendars[vCalendars.length] = o;

			o.func		= callback_function;
			o.name		= name;

			o.z_CalendarOpen	= false;
			o.timeout_id;

			o.state				= "init";

			o.show_hours		= show_hours;


			Body_OnClick_AddHandle('Calendar_CloseAll', 'Calendar_CloseAll()');



			if( d && d.body )
			{
				d.writeln
				(
					'<iframe style="visibility:hidden;position:absolute; left:42px; top:275px; z-index:2;" '+
					'  id="'+o.name+'" name="'+o.name+'" '+
					'  width="'+width+'" height="'+height+'" '+
					'  marginheight=0 marginwidth=0 noresize frameborder=0 scrolling=no '+
					'  src="'+src_page+'">'+
					'</iframe>'
				);

				if( o.show_hours )
				{
					d.writeln
					(
						'<iframe style="visibility:hidden;position:absolute; left:42px; top:275px; z-index:2;" '+
						'  id="'+o.name+'Hours" name="'+o.name+'Hours" '+
						'  width="'+width_h+'" height="'+height_h+'" '+
						'  marginheight=0 marginwidth=0 noresize frameborder=0 scrolling=no'+
						'  src="'+src_page_h+'">'+
						'</iframe>'
					);
				}



				setTimeout("Calendar_CheckGrowingOf('"+o.name+"','')",1000);

				if( o.show_hours )
				{
					setTimeout("Calendar_CheckGrowingOf('"+o.name+"','Hours')",1000);
				}
			}
		}
	}



	function Calendar_CheckGrowingOf( name, suf )
	{
		var d=document, o, i, obj, timeout = 1000;

		if( d && d.frames[name+suf] && (o=d.frames[name+suf].document.body) && (i=d.getElementById(name+suf)) )
		{
			obj = Calendar_GetObjRef(name);

			if( obj && obj.z_CalendarOpen )
			{
				i.height	= o.scrollHeight;

				if( suf=='')
				{
					if( !Browser_IsIE60() )	i.width		= o.scrollWidth;
					else					i.width		= o.scrollWidth - 4;	
				}
				else
				{
					i.width		= o.scrollWidth;
				}

				timeout		= 200;
			}
		}
		setTimeout("Calendar_CheckGrowingOf('"+name+"','"+suf+"')",timeout);
	}




	function Calendar_GetObjRef( name )
	{
		for(var i=0;i<vCalendars.length;i++)
		{
			if( vCalendars[i].name == name )	return vCalendars[i];
		}
		return null;
	}


	function Calendar_SetTimeoutCalendarOpen( name )
	{
		var o = Calendar_GetObjRef(name);
		if( o )	o.z_CalendarOpen = true;
	}



	function Calendar_CheckChangeDate( name )
	{
		function n(x){return Number(x);}

		var o = Calendar_GetObjRef(name);

		if( o )
		{
			if( o.state == "cancel" )	return;

			if( o.state == "open" )
			{
				var sDate = top.frames[o.name].CalendarGetSelectedDate();
							
				if( sDate!="" )
				{

					var aa, d=document, cal=d.getElementById(o.name),hours, L=cal.offsetLeft, T=cal.offsetTop, W=cal.offsetWidth;


					if( o.show_hours )
					{
						hours=d.getElementById(o.name+"Hours");

						if( (aa=d.frames[name+"Hours"].document.body) )
						{
							hours.width = aa.scrollWidth;
						}

						hours.style.left		= L+W+2;
						hours.style.top			= T;

						hours.style.visibility	= "visible";
					}
					else
					{
						Calendar_iSH = -1;
					}

					


					if( Calendar_iSH>=-1 )
					{
						o.z_CalendarOpen = false;

						cal.style.visibility	= "hidden";

						if( o.show_hours )
						{
							hours.style.visibility	= "hidden";
						}


						if( o.func )
						{
							var vT = sDate.split("-");


							if(vT.length>=3)
							{
								if( Calendar_iSH>23 )		Calendar_iSH = -1;

								setTimeout(o.func+"("+n(vT[0])+","+n(vT[1])+","+n(vT[2])+","+Calendar_iSH+");", 10);
							}
						}

						Calendar_iSH = -2;
					}
					else
					{
						o.timeout_id = setTimeout( "Calendar_CheckChangeDate('"+name+"')", 100 );	return;
					}
				}
				else
				{
					o.timeout_id = setTimeout( "Calendar_CheckChangeDate('"+name+"')", 100 );	return;
				}
			}

		}
	}


	function Calendar_Open( name, base_object, x_offset_base, y_offset_base )
	{

		function n(x){return Number(x);}


		var o = Calendar_GetObjRef(name);

		if( o )
		{
			if( o.z_CalendarOpen )
			{
				clearTimeout(o.timeout_id);
				setTimeout( "Calendar_Close('"+o.name+"');", 20 );
				return;
			}


			var dc = document, L=0, T=0, CF, t=base_object;

			for(;t&&t.tagName!='BODY';t=t.offsetParent){L+=t.offsetLeft;T+=t.offsetTop;}

			o.state = "open";

			top.frames[o.name].CalendarOpen();


			CF = dc.getElementById(o.name);
			
			CF.style.left		= n(L+x_offset_base);
			CF.style.top		= n(T+y_offset_base);
			CF.style.visibility	= "visible";

			dc.body.onkeypress		= Calendar_OnKeyPress;

			Calendar_CheckChangeDate(name);
			
			setTimeout( "Calendar_SetTimeoutCalendarOpen('"+name+"')", 100);
		}
	}


	function Calendar_Close( name )
	{

		var o = Calendar_GetObjRef(name);

		if( o )
		{
			if( o.z_CalendarOpen && Calendar_iSH==-2)
			{
				document.getElementById(name).style.visibility			= "hidden";

				if( o.show_hours )
				{
					document.getElementById(name+"Hours").style.visibility	= "hidden";
				}

				o.z_CalendarOpen	= false;
				o.state				= "cancel";
				Calendar_iSH		= -2;
			}
		}
	}


	function Calendar_CloseAll()
	{
		for(var i=0;i<vCalendars.length;i++)
		{
			Calendar_Close( vCalendars[i].name );
		}
	}


	function Calendar_OnKeyPress()
	{
		if( top.window.event )
		{
			if( top.window.event.keyCode == 27 )
			{
				Calendar_CloseAll();
			}
		}
	}










//---------------------------------
// LookUpList functions



	var vLookUpLists			= new Array();
	var sLookUpList_OpenObjName	= null;



	function LookUpList_Init( name, src_page )
	{
		var d = document;
		
		if( name!="" && src_page!="" && LookUpList_GetObjRef(name)==null )
		{

			var o = new Object;

			vLookUpLists[vLookUpLists.length] = o;

			o.name		= name;


			if( d && d.body )
			{
				d.writeln
				(
					'<div id="'+o.name+'Div" style="display:none; position:absolute; left:0px; top:0px; z-index:254; background-color: #C9C9C9; filter:alpha(opacity=70);-moz-opacity:0.7;opacity: 0.7;" '+
					' onClick="return false;" '+
					'></div>'+

					'<iframe style="visibility:hidden; position:absolute; left:0px; top:-3000px; z-index:255;"'+
					'  id="'+o.name+'" name="'+o.name+'" '+
					'  width="600" height="100" '+
					'  marginheight=0 marginwidth=0 noresize frameborder=1 scrolling=no '+
					'  src="'+src_page+'">'+
					'</iframe>'
				);

				
			}
		}
	}



	function LookUpList_GetObjRef( name )
	{
		for(var i=0;i<vLookUpLists.length;i++)
		{
			if( vLookUpLists[i].name == name )	return vLookUpLists[i];
		}
		return null;
	}



	function LookUpList_Open( name, width, callback_function, open_function, open_parameters )
	{
		var o = LookUpList_GetObjRef(name);

		if( o )
		{
			sLookUpList_OpenObjName = o.name;


			o.func = callback_function;


			var d=document, ifr, left, top;

			o.di  = null;
			o.ifr_body = null;
			o.ifr = null;

			o.WasClicked = false;


			if( d && d.body && (ifr=d.getElementById(o.name)) && (di=d.getElementById(o.name+"Div")) )
			{
				o.di	= di;
				o.ifr	= ifr;

				d.body.scroll = "no";

				di.style.height		= d.body.clientHeight>d.body.scrollHeight?d.body.clientHeight:d.body.scrollHeight;
				di.style.width		= d.body.scrollWidth;
				di.style.display	= '';

				if( d.frames[o.name] && (ifr_body=d.frames[o.name].document.body) )
				{
					o.ifr_body = ifr_body;

					ifr.style.width		= width;
					ifr.style.height	= ifr_body.scrollHeight;

					left	= parseInt((d.body.clientWidth-width)/2);
					top		= d.body.scrollTop + parseInt((d.body.clientHeight-ifr_body.scrollHeight)/2);

					if( left <=0 )	left	= 2;
					if( top  <=0 )	top		= 10;


					ifr.style.left	= left;
					ifr.style.top	= top;

					ifr.style.visibility = 'visible';

					d.body.onkeypress		= LookUpList_OnKeyPress;
					o.ifr_body.onkeypress	= LookUpList_OnKeyPress;
					o.ifr_body.onmousedown		= new Function("top.window.LookUpList_OnClick('"+o.name+"');");
					o.ifr_body.onclick			= new Function("top.window.LookUpList_OnClick('"+o.name+"');");

					var f;

					if( open_function && (f=eval("d.frames['"+o.name+"']."+open_function)) )
					{
						f( open_parameters );
					}
				}
			}

			o.timeout_id = setTimeout("LookUpList_Resize('"+o.name+"')", 300);

		}
	}

	
	function LookUpList_OnClick(name)
	{
		var o = LookUpList_GetObjRef(name);

		if( o )	o.WasClicked = true;
	}


	function LookUpList_OnKeyPress()
	{
		var zCancel = false;

		if( top.window.event )
		{
			if( top.window.event.keyCode == 27 )	zCancel = true;
		}
		else
		{
			var wo = top.window, name, o;

			if( wo && wo.LookUpList_OpenObjName && (name = wo.LookUpList_OpenObjName()) && (o=LookUpList_GetObjRef(name)) )
			{
				if( document.frames[o.name].window.event.keyCode == 27 )
				{
					zCancel = true;
				}
			}
		}

		if( zCancel )	LookUpList_Cancel();
	}

		

	
	function LookUpList_Resize(name)
	{
		var o = LookUpList_GetObjRef(name), d=document;

		if( o )
		{
			if( o.di && o.ifr && o.ifr_body )
			{
				try
				{
					if( !o.WasClicked )
					{
						var top		= d.body.scrollTop + parseInt((d.body.clientHeight-ifr_body.scrollHeight)/2);
						if( top <=0 ) top = 10;
						o.ifr.style.top = top;
					}


					if( o.ifr_body.scrollHeight != o.ifr_body_prevHeight )
					{
						if( parseInt(o.ifr.style.top) - d.body.scrollTop + o.ifr_body.scrollHeight > d.body.clientHeight )
						{
							o.ifr_body_prevHeight	= d.body.clientHeight - parseInt(o.ifr.style.top) - d.body.scrollTop;
							o.ifr.style.height		= o.ifr_body_prevHeight;
							o.ifr_body.scroll		= "yes";
						}
						else
						{
							o.ifr_body_prevHeight	= o.ifr_body.scrollHeight;
							o.ifr.style.height		= o.ifr_body_prevHeight;
							o.ifr_body.scroll		= "no";
						}
					}
					o.di.style.height	= d.body.clientHeight>d.body.scrollHeight?d.body.clientHeight:d.body.scrollHeight;
					o.di.style.width	= d.body.clientWidth;
				}
				catch(ex){}
			}
			o.timeout_id = setTimeout("LookUpList_Resize('"+o.name+"')", 200);
		}
	}


	function LookUpList_OpenObjName()
	{
		return sLookUpList_OpenObjName;
	}



	function LookUpList_Close( name, cancel, vRowsSelected )
	{

		var o = LookUpList_GetObjRef(name);

		if( o )
		{
			var d=document, ifr;

			if( d && d.body && (ifr=d.getElementById(o.name)) && (di=d.getElementById(o.name+"Div")) )
			{
				d.body.scroll		= "yes";

				di.style.display	= 'none';
				di.style.height		= 100;
				di.style.width		= 100;

				if( d.frames[o.name] && (ifr_body=d.frames[o.name].document.body) )
				{
					ifr.style.visibility	= 'hidden';
					ifr.style.width			= 600;
					ifr.style.heigth		= 100;
				}
			}

			clearTimeout( o.timeout_id );

			sLookUpList_OpenObjName = null;

			if( o.func!="" && typeof(o.func)!="undefined" )
			{
				if( cancel )	eval(o.func+"( null,  false			);"	);
				else			eval(o.func+"( vRowsSelected, true	);"	);
			}

		}
	}




	var vLookUpList_SelectedRows = new Array();


	function LookUpList_RemoveAllRows()
	{
		vLookUpList_SelectedRows = new Array();
	}



	function LookUpList_Cancel()
	{
		var wo = top.window;

		if( wo && wo.LookUpList_OpenObjName && wo.LookUpList_Close )
		{
			var name = wo.LookUpList_OpenObjName();
			if( name )	wo.LookUpList_Close( name, true, null );
		}
	}

	function LookUpList_OK()
	{
		var wo = top.window;

		if( wo && wo.LookUpList_OpenObjName && wo.LookUpList_Close )
		{
			var name = wo.LookUpList_OpenObjName();
			if( name )
			{
				var vT = new Array();

				for(var i=0;i<=vLookUpList_SelectedRows.length;i++)
				{
					if( vLookUpList_SelectedRows[i] )	vT[vT.length] = vLookUpList_SelectedRows[i];
				}
				wo.LookUpList_Close( name, false, vT );
			}
		}
	}



	function LookUpList_AddRow( id, array_row )
	{
		var ex = false;

		for(var i=0;i<=vLookUpList_SelectedRows.length;i++)
		{
			if( vLookUpList_SelectedRows[i] && vLookUpList_SelectedRows[i][0] == id )
			{
				ex = true;
				break;
			}
		}
		
		if( !ex )
		{
			vLookUpList_SelectedRows[vLookUpList_SelectedRows.length] = new Array(id, array_row);
		}
	}
	
	function LookUpList_DelRow( id )
	{
		for(var i=0;i<=vLookUpList_SelectedRows.length;i++)
		{
			if( vLookUpList_SelectedRows[i] && vLookUpList_SelectedRows[i][0] == id )
			{
				vLookUpList_SelectedRows[i] = null;
			}
		}
	}











//---------------------------------
// Document functions



	function Document_Table_ShowSortedColumn( id )
	{
		var o,iTD=-1;
		if( (o=document.getElementById( id )) )
		{
			if( o.rows[0] )
			{
				for(var i=0;i<o.rows[0].cells.length;i++)
				{
					if( o.rows[0].cells[i].innerHTML.indexOf("_sel.gif")>=0 )
					{
						iTD = i;
					}
				}
			}
		}
		
		if( iTD>=0 )
		{
			for (var i=0; i<o.rows.length; i++)
			{
				if( o.rows[i].cells[iTD] )
				{
					if(o.rows[i].cells[iTD].className == "table_header" )
					{
						o.rows[i].cells[iTD].className	= "table_header_sel";
					}
					
					if(o.rows[i].cells[iTD].className == "table_filter" )
					{
						o.rows[i].cells[iTD].className = "table_filter_sel";
						
						if(o.rows[i].cells[iTD-1])	o.rows[i].cells[iTD-1].innerHTML	= "";
						if(o.rows[i].cells[iTD+1])	o.rows[i].cells[iTD+1].innerHTML	= "";
					}
					
					if(o.rows[i].cells[iTD].className == "table_row" )
					{
						o.rows[i].cells[iTD].className = "table_row_sel";
						
						if(o.rows[i].cells[iTD-1])	o.rows[i].cells[iTD-1].innerHTML	= "";
						if(o.rows[i].cells[iTD+1])	o.rows[i].cells[iTD+1].innerHTML	= "";
					}
				}
			}
		}
	}
