// JavaScript Document
/*

	region select - used in public and admin

*/

function getRegion()
{
	var pkRegion = DWRUtil.getValue("state");
	DWREngine._execute( _cfscriptLocation, null, 'RegionChildren', pkRegion, getRegionResult );
}

function getRegionResult( queryChildren )
{
	DWRUtil.removeAllOptions("region");
	addOption( "region" , "", "Region" );
	DWRUtil.addOptions("region", queryChildren, "KEY", "VALUE" );
}

function getSubRegion()
{
	var pkRegion = DWRUtil.getValue("region");
	DWREngine._execute( _cfscriptLocation, null, 'RegionChildren', pkRegion, getSubRegionResult );
}

function getSubRegionResult( structChildren )
{
	DWRUtil.removeAllOptions("subregion");
	addOption( "subregion" , "", "Sub-Region" );
	DWRUtil.addOptions("subregion", structChildren, "KEY", "VALUE");
}
	
function getTown()
{
	var pkRegion = DWRUtil.getValue("subregion");
	DWREngine._execute( _cfscriptLocation, null, 'RegionChildren', pkRegion, getTownResult );
}

function getTownResult( structChildren )
{
	DWRUtil.removeAllOptions("town");
	addOption( "town" , "", "Town" );
	DWRUtil.addOptions("town", structChildren, "KEY", "VALUE");
}
			
function init()
{
	DWRUtil.useLoadingMessage();
	DWREngine._errorHandler = errorHandler;
	getRegion();
	
	if( document.getElementById('searchRegion') ) {
		getSearchRegion();
	}
}

function addOption( selectName, optionValue, optionText ) 
{
	var selectObject = document.getElementById( selectName );
	var optionObject = new Option( optionText, optionValue );
	var optionLast = selectObject.options.length;
	selectObject.options[ optionLast ]= optionObject;
}

/*

Search region select

*/

function getSearchRegion()
{
	var pkRegion = DWRUtil.getValue("searchState");
	DWREngine._execute( _cfscriptLocation, null, 'RegionChildren', pkRegion, getSearchRegionResult );
}

function getSearchRegionResult( queryChildren )
{
	DWRUtil.removeAllOptions("searchRegion");
	addOption( "searchRegion" , "", "Region" );
	DWRUtil.addOptions("searchRegion", queryChildren, "KEY", "VALUE" );
}

function getSearchSubRegion()
{
	var pkRegion = DWRUtil.getValue("searchRegion");
	DWREngine._execute( _cfscriptLocation, null, 'RegionChildren', pkRegion, getSearchSubRegionResult );
}

function getSearchSubRegionResult( structChildren )
{
	DWRUtil.removeAllOptions("searchSubRegion");
	addOption( "searchSubRegion" , "", "Sub-Region" );
	DWRUtil.addOptions("searchSubRegion", structChildren, "KEY", "VALUE");
}
	
function getSearchTown()
{
	var pkRegion = DWRUtil.getValue("searchSubRegion");
	DWREngine._execute( _cfscriptLocation, null, 'RegionChildren', pkRegion, getSearchTownResult );
}

function getSearchTownResult( structChildren )
{
	DWRUtil.removeAllOptions("searchTown");
	addOption( "searchTown" , "", "Town" );
	DWRUtil.addOptions("searchTown", structChildren, "KEY", "VALUE");
}

/* todo categories */
function getSearchToDoCategory( pkRegion )
{
	DWREngine._execute( _cfscriptLocation, null, 'TodoCategories', pkRegion, getSearchToDoCategoryResult );
}
function getSearchToDoCategoryResult( structChildren )
{
	DWRUtil.removeAllOptions("pkToDoCategory");
	DWRUtil.addOptions( "pkToDoCategory", structChildren, "KEY", "VALUE" );
}


/* event categories */
function getSearchEventCategory( pkRegion )
{
	DWREngine._execute( _cfscriptLocation, null, 'EventCategories', pkRegion, getSearchEventCategoryResult );
}
function getSearchEventCategoryResult( structChildren )
{
	DWRUtil.removeAllOptions("pkEventCategory");
	DWRUtil.addOptions( "pkEventCategory", structChildren, "KEY", "VALUE" );
}
			

/*
	
	Tour Towns - used in combination with above region select, in administration area

*/

function getTourRegion()
{
	var pkRegion = DWRUtil.getValue("TourState");
	DWREngine._execute( _cfscriptLocation, null, 'RegionChildren', pkRegion, getTourRegionResult );
}

function getTourRegionResult( queryChildren )
{
	DWRUtil.removeAllOptions("TourRegion");
	addOption( "TourRegion" , "", "Region" );
	DWRUtil.addOptions("TourRegion", queryChildren, "KEY", "VALUE" );
}

function getTourSubRegion()
{
	var pkRegion = DWRUtil.getValue("TourRegion");
	DWREngine._execute( _cfscriptLocation, null, 'RegionChildren', pkRegion, getTourSubRegionResult );
}

function getTourSubRegionResult( structChildren )
{
	DWRUtil.removeAllOptions("TourSubRegion");
	addOption( "TourSubRegion" , "", "Sub-Region" );
	DWRUtil.addOptions("TourSubRegion", structChildren, "KEY", "VALUE");
}
	
function getTourTown()
{
	var pkRegion = DWRUtil.getValue("TourSubRegion");
	DWREngine._execute( _cfscriptLocation, null, 'RegionChildren', pkRegion, getTourTownResult );
}

function getTourTownResult( structChildren )
{
	DWRUtil.removeAllOptions("TourTown");
	addOption( "TourTown" , "", "Town" );
	DWRUtil.addOptions("TourTown", structChildren, "KEY", "VALUE");
}



function AddTourTown( pkListing )
{
	var pkRegion = Number( DWRUtil.getValue("TourTown") );

	// check for numeracy
	if( String( pkRegion ) == "NaN" ) 
	{
		alert('Please select a town');
	}
	else
	{
		DWREngine._execute( _cfscriptLocation, null, 'TourTownAdd', pkRegion, pkListing, TourTownResult );
	}
}

function DelTourTown( pkListing )
{
	pkRegion = Number( DWRUtil.getValue("pkRegion_Towns") );
	if( String( pkRegion ) == "NaN" || pkRegion == 0 )
	{
		alert( 'Please select a town to remove' );
	}
	else
	{
		DWREngine._execute( _cfscriptLocation, null, 'TourTownDelete', pkRegion, pkListing, TourTownResult );
	}
}

function TourTownResult( structChildren )
{
	DWRUtil.removeAllOptions("pkRegion_Towns");
	DWRUtil.addOptions("pkRegion_Towns", structChildren, "KEY", "VALUE");
}



function getListingPage( pkListing, intPageNumber )
{
	DWREngine._execute( _cfscriptLocation, null, 'ListingPage', intPageNumber, pkListing, getListingPageResult );
}

function getListingPageResult( returnValue )
{	
	document.getElementById("listingPageContent").innerHTML = returnValue;
}

