	TableHandler.prototype = {
	onsuccfunc: null,
	content: null,
	div: null,
	trigger: null,

	refreshtable: function( result )
	{
		var oT = document.getElementById( "virtualtable" );
		var oTt = document.getElementById( 'virtualtable_tools' );
		var oNl = document.getElementById( 'noaktivlesson' );
		
		if( result['code'] == 'close' )
		{
			Style.setAttribute( oT, "display", "none" );
			Style.setAttribute( oTt, "display", "none" );
			Style.setAttribute( oNl, "display", "" );
		} else if( result['code'] == 'open' )
		{
			Style.setAttribute( oT, "display", "" );
			Style.setAttribute( oTt, "display", "" );
			Style.setAttribute( oNl, "display", "none" );
			if( result != this.content )
			{
				oT.innerHTML = result['content'];
				this.content = result['content'];
			}
		}
		if( this.trigger )
			this.trigger.reactivate();
	},
	
	get_history: function( result )
	{
		var table = document.getElementById( 'historytable' );
		var topen = document.getElementById( 'htable_open' );
		var tclose = document.getElementById( 'htable_close' );

				
		if( result == -1 )
		{
			/*
			* Üreset választott ki.
			* Eltűnik a history tábla és a ki/be kapcsoló gombok 
			*/
			Style.setAttribute( table, "display", "none" );
			Style.setAttribute( topen, "display", "none" );
			Style.setAttribute( tclose, "display", "none" );
			Elem.setContent( table );
			
		} else
		{
			/*
			* dátumot választott
			* megjelenik a history tábla és a ki kapcsoló gomb 
			*/
			Style.setAttribute( table, "display", "" );
			Style.setAttribute( topen, "display", "none" );
			Style.setAttribute( tclose, "display", "" );
			Elem.setContent( table, result['table'] );
		}
		this.trigger.reactivate();
	},
	
	close_htable: function( result )
	{
		var table = document.getElementById( 'historytable' );
		var topen = document.getElementById( 'htable_open' );
		var tclose = document.getElementById( 'htable_close' );
		Style.setAttribute( table, "display", "none" );
		Style.setAttribute( topen, "display", "" );
		Style.setAttribute( tclose, "display", "none" );
		
	},
	
	closetable: function( result )
	{
		var oT = document.getElementById( "tablecontainer" );
		oT.innerHTML = "";
		Style.setAttribute( oT, 'display', 'none' );
	},

	opentable: function( result )
	{
		var oT = document.getElementById( "tablecontainer" );
		if( result == '' )
		{
			link( "index.php?page=message&msg=novtable" );
		} else if( result == 'noliveonlinelco' )
		{
			link( "index.php?page=message&msg=nolollco" );
		} else if( result == 'noliveonlineuser' )
		{
			link( "index.php?page=message&msg=nololuser" );
		} else
		{
			if( ! oT )
			{
				link( "index.php?page=fooldal" );
				return;
			}
			oT.innerHTML = result;
			this.content = result;
			Style.setAttribute( oT, 'display', '' );
		}
	},
	
	add_content: function( result )
	{
		var oT = document.getElementById( "virtualtable" );
		Elem.setContent( oT, result );
		
		this.trigger.reactivate();
		var oText = document.getElementById( 'textvalue' );
		oText.value = "";
		
	}
}

function TableHandler( ) {}

function setup_server( handler )
{
	var a = new p_oratarto_server( handler );
	a.timeout = 8000;

    // Ignore timeouts
    a.clientErrorFunc = function(e) {
        if ( e.code =! 1003 ) {
            alert(e);
        }
		if( handler.trigger )
			handler.trigger.reactivate();
    }
	return a;
}

function getTableHandler( trigger )
{
	var oTblHandler = new TableHandler();
	oTblHandler.trigger = trigger;
//	var handler = new TableHandler(  );
	return setup_server( oTblHandler );
}


function virtualtable_refresh( trigger )
{
	if( trigger )
	{
		trigger.disabled = true;
		trigger.reactivate = new Function( "this.disabled = false" );
	}
	var srv = getTableHandler( trigger );
	srv.refreshtable();
}

function virtualtable_close()
{
	var srv = getTableHandler();
	srv.closetable();
	return false;
}

function virtualtable_open()
{
	var srv = getTableHandler();
	srv.opentable();
	return false;
}

function virtualtable_autorefresh()
{
	var swtch = document.getElementById( "virtualtable_refreshswitch" );
	if( swtch.checked == true )
	{
		virtualtable_refresh();
		setTimeout( virtualtable_autorefresh, 6000 );
	}
}

function virtualtable_autoswitch( on )
{
	if( on == true )
		setTimeout( virtualtable_autorefresh, 6000 );
}

function refresh_historytable( sel )
{
	var date = selectctrlobj_value( sel );
	sel.disabled = true;
	sel.reactivate = new Function( "this.disabled = false; document.getElementById('htable_open').disabled = false;" );
	var srv = getTableHandler( sel );
	srv.get_history( date );
}

function open_historytable( lnk )
{
	link.disabled = true;
	var sel = document.getElementById( 'dailyfull_sel' );
	refresh_historytable( sel );
	return false;
}

function close_historytable( lnk )
{
	lnk.disabled = true;
	lnk.reactivate = new Function( "this.disabled = false" );
	var srv = getTableHandler( lnk );
	srv.close_htable( );
	return false;
}

var TextTriggerObj = {
	btn1: null,
	txt1: null,
	procc: null,
	inactivate: function()
	{
		this.btn1.disabled = true;
		this.txt1.disabled = true;
		this.procc.style.display = "";
	},
	reactivate: function()
	{
		this.btn1.disabled = false;
		this.txt1.disabled = false;
		this.procc.style.display = "none";
	},
	init: function( )
	{
		this.btn1 = document.getElementById('btn_showtext');
		this.txt1 = document.getElementById('textvalue');
		this.procc = document.getElementById('text_processtext');

	}
}

function virtualtable_showText( nev, deftxt )
{
	var oText = document.getElementById( 'textvalue' );
	if( oText.value == deftxt || is_empty.exec( oText.value ) )
	{
		alert( LcoLng['vtable_notbltxt'] );
		return false;
	}
	var text = oText.value.replace( /\n/g, "<br/>" );
	var holder = Elem.create( "div", null, nev + ' ( '+LcoLng['vtable_diakirta']+' ):' + text );
	Style.setAttribute( holder, "color", "#ff0000" );

	TextTriggerObj.init();
	TextTriggerObj.inactivate();
	var srv = getTableHandler( TextTriggerObj );
	srv.add_content( Elem.toString( holder ) );
}

