﻿//
// create palette window
//
function initWindow()
{
	if( thWSPageCreation )
	{
		menu.addItem( "wspagecreation", "create pages from Websettings" );
		menu.addItem( "-", "-" );
	}
	
	// add from source files	
	initMenu();
	
	//
	// event handling
	//
	thWindow.addEventListener
	(
		'onClick',
		
		function( evObj )
		{
			if( thLoadState )
			{
				var preview = previewCtrl();
				
				if( preview != null )
					preview.stop();
			}
			else
				showElementHelp();
		}
		
		, true
	);

	thWindow.addEventListener
	(
		'previewNavigate',
		
		function( evObj )
		{
			if( thModuleInit )
			{
				thLoadState = true;
				updateLoadBusy();
			}
		}
		
		, true
	);

	thWindow.addEventListener
	(
		'menuSetup',
		
		function( evObj )
		{
			if( thModuleInit )
			{
				switch( evObj.target.name )
				{
					case "useTimer":
						evObj.target.enabled = true;
						evObj.target.checked = thUseTimer;
						break;
						
					case "wspagecreation":
						evObj.target.enabled = thWSPageCreation;
						break;
						
					default:
						evObj.target.enabled = true;
						evObj.target.checked = thDataBaseName == evObj.target.title;
						break;
				}
			}
		}
		
		, true
	);

	thWindow.addEventListener
	(
		'menuSignal',
		
		function( evObj )
		{
			switch( evObj.target.name )
			{
				case "useTimer":
				{
					thUseTimer = !thUseTimer;
					
					if( thUseTimer && thModuleInit )
						showElementHelp();
				}
				break;
				
				case "wspagecreation":
				{
					if( thWSPageCreation )
						createDefaultSite();
				}
				break;
					
				default:
					thLastLink = "";
					thDataBaseName = evObj.target.title;				
					loadDataBase( evObj.target.name );
					showElementHelp();
					break;
				
			}
		}
		
		, true
	);
}

//
// return preview control
//
function previewCtrl()
{
	var preview = null;
	
	if( thWindow != null )
	{
		preview = thWindow.children['preview'];
	}
	
	return preview;
}

//
// set new content to preview ctrl
//
function setPreviewContent( content )
{
	var ret = false;
	
	var preview = previewCtrl();
	
	if( preview != null )
	{
		dbgwriteln( "setPreviewContent( "+content+" )" );
		ret = preview.setFile( content );
	}
	
	return ret;
}

//
// update busy state
//
function updateLoadBusy()
{
	var busy = false;
	var control = previewCtrl();
	
	if( control != null )
		busy = control.busy;
		
	dbgwriteln( "updateLoadBusy : busy = " + busy );
	
	if( !busy )
	{
		thLoadState = false;
		thWindow.children['refresh'].text = module.localize( "$$$/refresh=Refresh" );
	}
	else
	{
		thWindow.children['refresh'].text = module.localize( "$$$/stop=Stop" );
		thBusyTimer = startTimer( "updateLoadBusy()", 50 );
	}
	
	dbgwriteln( "updateLoadBusy : button text = '"+thWindow.children['refresh'].text+"'");
}

