﻿//
// collect dat files and add to palette menu
//
function initMenu()
{
	var datFolder = new JSXFile( module.folder.absurl + "/dat/" );
	
	if( datFolder.exists )
	{
		var files = datFolder.getFiles( "*.xml" );
		
		if( files != null && files.length > 0 )
		{
			var firstEntryName = "";
			var firstEntryDisp = "";
			
			for( var i=0; i<files.length; i++ )
			{
				var xmlDoc = files[i].openMarkup();
				
				if( xmlDoc != null )
				{
					var ident = xmlDoc.getElementsByTagName( "ident" )[0];
					
					if( ident != null )
					{
						var dispName = ident.getAttribute( "displayname" );
						
						if( thWindow == null )
							createWindow();
						
						thWindow.menu.addItem( files[i].lastname, dispName );
						
						if( i == 0 )
						{
							firstEntryDisp = dispName;
							firstEntryName =  files[0].lastname;
						}
						
						if( files[i].lastname == thMenuLastActive )
						{
							thDataBaseName = dispName;
							loadDataBase( files[i].lastname );
							firstEntryName = firstEntryDisp = "";
						}
					}
					
					xmlDoc.close();
				}
			}
			
			if( firstEntryName != "" && firstEntryDisp != "" )
			{
				thDataBaseName = firstEntryDisp;
				loadDataBase( firstEntryName );
			}
		}
	}
}

//
// load database file
//
function loadDataBase( name )
{
	if( name == 'w3c.xml' )
		setw3cdefault();
	else
	{
		var xmlFile = new JSXFile( module.folder.absurl + "/dat/" + name );
		
		if( xmlFile.exists )
		{
			var xmlDoc = xmlFile.openMarkup();
			
			if( xmlDoc != null )
			{
				var ident		= xmlDoc.getElementsByTagName( "ident" )[0];
				var expression	= xmlDoc.getElementsByTagName( "expression" )[0];
				
				thDataBaseName	= ident.getAttribute( "displayname" );
				thDataBaseBaseURL	= ident.getAttribute( "baseurl" );
				thLinkCreator		= expression.getAttribute( "value" );
				
				var mappEntries = xmlDoc.getElementsByTagName( "mappentry" );
				
				thDataBase.splice( 0, thDataBase.length );
				
				for( var i=0; i<mappEntries.length; i++ )
				{
					var tagName	= mappEntries[i].getAttribute( "tagname" );
					var tagLink	= mappEntries[i].getAttribute( "linkname" );

					if( tagName.length > 0 && tagLink.length > 0 )
					{
						var entry = new Array( tagName, tagLink );
						thDataBase.push( entry );
					}
				}
				
				xmlDoc.close();
			}
		}
	}
}