//	dojo.event.topic.subscribe("/ListClicks",EventHandler,captureTableClick);
//	dojo.event.topic.subscribe("/SearchInput",EventHandler,captureSearchInput);
//	dojo.event.topic.subscribe("/WindowClicks",EventHandler,crossFade);
//	dojo.event.topic.subscribe("dragEnd",EventHandler,dropHandler);
//	dojo.event.topic.subscribe("/UserListAdd",EventHandler,listAddHandler);
//	dojo.event.topic.subscribe("/MenuClicks",EventHandler,captureMenuClick);
//	dojo.event.topic.subscribe("/DLogClicks",EventHandler,captureDLogClick);
//	dojo.event.topic.subscribe("/WindowClosure",EventHandler,windowClosureHandler);
//	dojo.event.topic.subscribe("/DataClicks",EventHandler,captureDataClick);	
//	dojo.event.topic.subscribe("/SearchWindowDisplayButton",EventHandler,captureSearchWindowDisplayClick);

	// Refers to file: EventHandler.js
	EventHandler.init();

	// Refers to file: WM.js
	WM.activeWindow = 0;
	WM.A_windows = [];

	// Refers to file: Dialog.js
	Dialog.dialogue_CreateUserWindow = Dialog.dLog_CreateUserWindow();
	Dialog.dialogue_SaveWorkspace    = Dialog.dLog_SaveWorkspace();
	Dialog.dialogue_LoadWorkspace    = Dialog.dLog_LoadWorkspace();

	//----- This section creates and displays the retractable left-hand "Searches" bar. -----
	WM.tempLeftList = container.appendChild(document.createElement('div')); // NOTE: The variable 'container' is defined at the bottom of file: index.php
	WM.leftList = dojo.widget.createWidget('LeftMenuList',{title:'Searches'},WM.tempLeftList);
	WM.searches = [];

	//----- Retrieve selectable species.
	var SelectableSpeciesArray = [];
	dojo.io.bind({
		sync: true,
		url: 'AjaxSearchPane.php?type=selectable_species',
		load: function(type,data,evt) {
			eval('SelectableSpeciesArray = ' + data + ';');
			//totalSelectableSpecies = SelectableSpeciesArray.length;

			// DEBUG.
			//alert('totalSelectableSpecies = ' + totalSelectableSpecies + ';');
		},
		mimetype: 'text/plain',
		error: function(type, data, evt) {
			// DEBUG.
			alert("Error loading selectable species array: " + data);
		},
		timeoutSeconds: 40,
		timeout: function(type, data, evt) {
			// DEBUG.
			alert("Error loading selectable species array: Request timed out.");
		}
	});

	//----- Retrieve selectable treesample species.
	var SelectableTreeSampleSpeciesArray = [];
	dojo.io.bind({
		sync: true,
		url: 'AjaxSearchPane.php?type=selectable_treesample_species',
		load: function(type,data,evt) {
			eval('SelectableTreeSampleSpeciesArray = ' + data + ';');
			//totalSelectableSpecies = SelectableTreeSampleSpeciesArray.length;

			// DEBUG.
			//alert('totalSelectableSpecies = ' + totalSelectableSpecies + ';');
		},
		mimetype: 'text/plain',
		error: function(type, data, evt) {
			// DEBUG.
			alert("Error loading selectable species array: " + data);
		},
		timeoutSeconds: 40,
		timeout: function(type, data, evt) {
			// DEBUG.
			alert("Error loading selectable species array: Request timed out.");
		}
	});

	// Build the SearchPane.
	for (var i=0; i<GLOBALSearches.length; i++) // NOTE: The 'GLOBALSearches' object is defined in file: SearchWindows.js
	{
		// DEBUG.
		//alert(
		//	'GLOBALSearches[' + i + '].title: ' + GLOBALSearches[i].title +
		//	'\nGLOBALSearches[' + i + '].content: ' + GLOBALSearches[i].content +
		//	'\nGLOBALSearches[' + i + '].identifier: ' + GLOBALSearches[i].identifier
		//);
/*
		// Create a Search Header that displays the Title of a Search Section.
		var searchHeader = document.createElement('div');
		searchHeader.setAttribute('style','border: 1px solid #00f; height: 20px;');

		// Create the Search Header Label.
		var searchHeaderLabel = document.createElement('div');
		searchHeaderLabel.setAttribute('style','display: block; float: left;               margin: 3px 0px 0px 0px; padding: 0px 0px 0px 0px; width: 138px;');
		searchHeaderLabel.innerHTML = ' + ' + GLOBALSearches[i].title;

		// Create the Search Header Help box.
		var searchHeaderHelp = document.createElement('div');
		searchHeaderHelp.setAttribute('style','display: block; float: right; height: 18px; margin: 0px 2px 0px 0px; padding: 0px 0px 0px 0px; width:  20px;');

		// Dojo Help Window Method. (Works Great, but choose this OR the Pop-up Help Window method (NOT BOTH)!)
		var searchHeaderHelpButton = document.createElement('img');
		searchHeaderHelpButton.setAttribute('border','0');
		searchHeaderHelpButton.setAttribute('src','images/QuestionMark1.jpg');
		searchHeaderHelpButton.searchHeaderIdentifier = GLOBALSearches[i].identifier;
		dojo.event.connect(searchHeaderHelpButton,"onclick","DisplaySearchHeaderHelpWindow");
		searchHeaderHelp.appendChild(searchHeaderHelpButton);

		// Bind Search Header components together.
		searchHeader.appendChild(searchHeaderLabel);
		searchHeader.appendChild(searchHeaderHelp);
*/

		// Create a Search Header that displays the Title of a Search Section.
		var searchHeader = document.createElement('table');
		searchHeader.setAttribute('style','border: 0px solid #00f; border-collapse: collapse; min-height: 20px; width: 205px;');
		var searchHeaderRow = document.createElement('tr');

		// Create the Search Header Label.
		var searchHeaderLabel = document.createElement('td');
		searchHeaderLabel.setAttribute('style','border: 0px; cursor: pointer; font-family: serif; font-size: 11pt; padding-left: 5px; width: 180px;');
		searchHeaderLabel.innerHTML = ' + ' + GLOBALSearches[i].title;

		// Create the Search Header Help box.
		var searchHeaderHelp = document.createElement('td');
		searchHeaderHelp.setAttribute('style','border: 0px; text-align: right; width: 25px;');

		// Dojo Help Window Method. (Works Great, but choose this OR the Pop-up Help Window method (NOT BOTH)!)
		var searchHeaderHelpButton = document.createElement('img');
		searchHeaderHelpButton.setAttribute('border','0');
		searchHeaderHelpButton.setAttribute('src','images/QuestionMark1.jpg');
		searchHeaderHelpButton.setAttribute('style','cursor: pointer;');
		searchHeaderHelpButton.searchHeaderIdentifier = GLOBALSearches[i].identifier;
		dojo.event.connect(searchHeaderHelpButton,"onclick","DisplaySearchHeaderHelpWindow");
		searchHeaderHelp.appendChild(searchHeaderHelpButton);

		// Bind Search Header components together.
		searchHeaderRow.appendChild(searchHeaderLabel);
		searchHeaderRow.appendChild(searchHeaderHelp);
		searchHeader.appendChild(searchHeaderRow);

		// Create the Search Sections.
		var temp2 = container.appendChild(document.createElement('div'));
		WM.searches[i] = dojo.widget.createWidget(
			'SearchPane',
		    {
				searchURL:'AjaxSearchResults.php',
				resultUrl:'AjaxRslt.php',
				inputs:[],
				SelectableTreeSampleSpeciesArray: SelectableTreeSampleSpeciesArray,
				SelectableSpeciesArray: SelectableSpeciesArray,
				SelectableSpeciesCheckBoxes: []
			},
			temp2
		);
		WM.searches[i].content=GLOBALSearches[i].content;
		WM.searches[i].searchIdentifier=GLOBALSearches[i].identifier;

		// This function adds the Search Fields to the Search Section. It is defined in file: js/src/widget/SearchPane.js
		WM.searches[i].finalize();

		// Bind the Search Header to the Search Pane.
		// ORIGINAL FUNCTION CALL: WM.leftList.addItem(searchHeader,WM.searches[i].domNode);
		WM.leftList.addItem(searchHeader, searchHeaderLabel, searchHeaderHelp, WM.searches[i].domNode);
	}


	//--------------------------------------------------
	//---------- Search Header Help Functions ----------
	//--------------------------------------------------
	function DisplaySearchHeaderHelpWindow(evt) {
    	MCP.chooseWindow('SearchHelp_' + evt.target.searchHeaderIdentifier);
	}


