function PopulatePeopleFirstChannel(channel)
{
	var aImagesToPreload = ["images/channelBarPeopleFirst","images/helpGuide","images/helpGuide_on", 
	"images/lotinfo","images/lotinfo_on","images/lotinfo_disabled","images/status", "images/status_on",
	"images/back_nav", "images/back_nav_on", "images/forward_nav", "images/forward_nav_on", 
	"images/print_nav", "images/print_nav_on", 
	"images/addpin_nav", "images/addpin_nav_on", "images/tools_nav", "images/tools_nav_on",
	"images/search_radio", "images/search_radio_selected", "images/search_label_address", 
	"images/search_label_town_suburb","images/search_label_lotdp"];
	
	channel.preloadImages(aImagesToPreload, SIXConfig.aHostAliases);

	var theNavigator = new SIX.Navigator(channel, map);
	SIX.App.addBuildCallback(function () {
								if (theNavigator.infoTool.bEnabled)
									theNavigator.infoTool.activate();
							});

	var consoleWin = SIX.App.addWindow(new SIX.Window(channel, "console" ,"People First Console", ""));
	var theConsole = consoleWin.attach(new SIX.Console(channel));
	theConsole.setTabVisibility(SIX.eConsoleTabs.MESSAGES, false);
	theConsole.setTabVisibility(SIX.eConsoleTabs.HEALTH, false);
	theConsole.setActiveTab(SIX.eConsoleTabs.PROGRESS);
	
	var toolWin = SIX.App.addWindow(new SIX.Window(channel, "toolbar" ,"Image Viewer Toolbar"));
	var toolbar = toolWin.attach(new SIX.Toolbar(channel));

	// ------------------ Image Viewer toolbar buttons -----------------------------
	toolbar.addTool(new SIX.Tool.ToolbarHelp(toolbar, "helpGuide", "Help Guide"));
	toolbar.addTool(new SIX.Tool.ToolbarLogo(toolbar, "ToolbarLogo"));
	
	toolbar.addTool(new SIX.Tool.LastExtents(toolbar, "back_nav", "Go back to the previously viewed extent"));
	toolbar.addSpace();
	toolbar.addTool(new SIX.Tool.NextExtents(toolbar, "forward_nav", "Go forward to the previously viewed extent"));
	toolbar.addSpace();
	toolbar.addTool(new SIX.Tool.PrintPreviewPageSetup(toolbar, "print_nav", "Print the current view"));
	toolbar.addSpace();
	var markerTool = toolbar.addTool(new SIX.Tool.Marker(toolbar, "addpin_nav", "Click on map to add a place marker"));
	toolbar.addSpace();
	var toolbox = toolbar.addTool(new SIX.Tool.Toolbox(channel, toolbar, "tools_nav", "Open toolbox to add extra tools"));
	toolbox.addTool(new SIX.Tool.Measure(toolbar, "measure", "Measure distance"));
	toolbox.addTool(new SIX.Tool.Area(toolbar, "freehandarea", "Measure area"));
	toolbox.addTool(new SIX.Tool.PanToCoord(toolbar, "panToCoordinate", "Pan to X/Y"));	

	var airviewQueryTool = toolbox.addTool(new SIX.Tool.Query(toolbar, SIX.eQueryTypes.POINT, "airview", "Order hardcopy aerial photo"));
	
	airviewQueryTool.addCallback(SIX.eToolCallbacks.ONDEACTIVATE, 
					function (map){
						airviewWin.hideWin();
						SIX.App.onWindowResize();
					});
					
	airviewQueryTool.addCallback(SIX.eToolCallbacks.ONACTIVATE, 
					function (map){
						airviewWin.showWin();
						SIX.App.onWindowResize();
					});
	
	AddMarkerSymbols(channel);
	
	var catalog = new SIX.Catalog(channel);
	catalog.attach(map);

	// ---------------- Image Viewer channel windows -------------------
	var catalogSearchWin = SIX.App.addWindow(new SIX.Window(channel, "pane", "Search", ""));
	catalogSearchWin.attach(catalog);

	var SOAPSearchWin = catalogSearchWin;
	var ArcXMLSearchWin = catalogSearchWin;
	var airviewWin = SIX.App.addWindow(new SIX.Window(channel, "pane", "Airview results", "collapsible=true;visible=false;"));
	var imageSvcWin = SIX.App.addWindow(new SIX.Window(channel, "pane", "Display images", "collapsible=true;showunselectedlayers=true;visible=false;top=50;left=20;width=260;height=150"));
	var queryWin = SIX.App.addWindow(new SIX.Window(channel, "pane", "Info tool results", "collapsible=true"));

	theNavigator.infoTool.addCallback(SIX.eToolCallbacks.ONACTIVATE, function () {if (SIX.App.bMaxMapWidth) {SIX.App.showPanes();}});

	var svc;
	var layer;

	svc = catalog.addService(new SIX.Service("Images","ecwp",0,0,"alwayson=true;displaybest=true;displaybestinlayerslist=true;canreorder=false;metadata=false"));
	imageSvcWin.attach(svc);
	theNavigator.attachImagesToolWindow(imageSvcWin);
	theNavigator.addImagesToolService(svc);

	AddSydneyImages(svc, false);
	AddNSWRegionalCentres(svc, false);
	AddADS40Images(svc, false);
		
	if (!SIXConfig.bExternalUser)
	{
		layer = svc.addLayer(new SIX.Layer(svc, SIXConfig.BALRANALDAREA_DESCRIPTION, SIXConfig.BALRANALDAREA_ID, SIXConfig.BALRANALDAREA_ECWP_URL,"bestindex=" + SIXConfig.BALRANALDAREA_BEST_INDEX + ";neverinlist=true"));
		layer.setScale(SIXConfig.BALRANALDAREA_MIN_SCALE, SIXConfig.BALRANALDAREA_MAX_SCALE);
		layer.setExtents(SIXConfig.BALRANALDAREA_EXTENTS[0],SIXConfig.BALRANALDAREA_EXTENTS[1],SIXConfig.BALRANALDAREA_EXTENTS[2],SIXConfig.BALRANALDAREA_EXTENTS[3]);
		layer.setCoordSys("gda94", "nswlam94");
		layer.setColorMask(["#000000", "#FFFFFF"], "#202020", SIXConfig.BALRANALDAREA_REGION);
	}		

	var fnOnSelectLayer = function ()
	{
		if (this.bSelected && !this.bInScale)
		{
			var elemVisibilitySelectedDisabled = document.getElementById(this.visibilitySelectedDisabledUid);
			if (elemVisibilitySelectedDisabled)
			{
				var sOldTitle = elemVisibilitySelectedDisabled.title;
				elemVisibilitySelectedDisabled.title = "Zoom in to Sydney to display";
				//Restore original tool tip after timeout.
				setTimeout(function () {elemVisibilitySelectedDisabled.title = sOldTitle;}, 5000);
			}
		}
	}
	var bSydneyAerialPhotosOn = false;
	
	layer = svc.addLayer(new SIX.Layer(svc, "1943 Sydney suburbs", SIXConfig.SYDNEY43_V2_ID, SIXConfig.SYDNEY43_V2_ECWP_URL,
					(SIXConfig.bHaveOTDF ? "otdfpath=" + SIXConfig.SYDNEY43_V2_OTDF_PATH : "") + ";canquery=false"));	
	//layer.setListButton("images/1943_sydney_suburbs_layer");
	layer.setMetadataUrl(SIXConfig.SYDNEY43_V2_METADATA_URL);
	layer.setCoordSys("gda94", "nswlam94");
	layer.setScale(SIXConfig.SYDNEY43_V2_MIN_SCALE, SIXConfig.SYDNEY43_V2_MAX_SCALE);
	layer.setExtents(SIXConfig.SYDNEY43_V2_EXTENTS[0], SIXConfig.SYDNEY43_V2_EXTENTS[1], SIXConfig.SYDNEY43_V2_EXTENTS[2], SIXConfig.SYDNEY43_V2_EXTENTS[3]);
	layer.fnOnSelect = fnOnSelectLayer;

	layer = svc.addLayer(new SIX.Layer(svc, SIXConfig.LR94SYDWAY5KV2_DESCRIPTION, SIXConfig.LR94SYDWAY5KV2_ID, SIXConfig.LR94SYDWAY5KV2_ECWP_URL,
					(SIXConfig.bHaveOTDF ? "otdfpath=" + SIXConfig.LR94SYDWAY5KV2_OTDF_PATH : "") + ";neverinlist=true;bestindex=" + SIXConfig.LR94SYDWAY5KV2_BEST_INDEX + ";canquery=false"));	
	layer.setMetadataUrl(SIXConfig.LR94SYDWAY5KV2_METADATA_URL);
	layer.setCoordSys("gda94", "nswlam94");
	layer.setScale(SIXConfig.LR94SYDWAY5KV2_MIN_SCALE, SIXConfig.LR94SYDWAY5KV2_MAX_SCALE);
	layer.setExtents(SIXConfig.LR94SYDWAY5KV2_EXTENTS[0], SIXConfig.LR94SYDWAY5KV2_EXTENTS[1], SIXConfig.LR94SYDWAY5KV2_EXTENTS[2], SIXConfig.LR94SYDWAY5KV2_EXTENTS[3]);

	layer = svc.addLayer(new SIX.Layer(svc, "Sydney Regional road directory", SIXConfig.LR94SYDWAY20KV2_ID, SIXConfig.LR94SYDWAY20KV2_ECWP_URL,
					(SIXConfig.bHaveOTDF ? "otdfpath=" + SIXConfig.LR94SYDWAY20KV2_OTDF_PATH : "") + ";canquery=false"));	
	//layer.setListButton("images/sydney_regional_road_directory_layer");
	layer.setMetadataUrl(SIXConfig.LR94SYDWAY20KV2_METADATA_URL);
	layer.setCoordSys("gda94", "nswlam94");
	layer.setScale(SIXConfig.LR94SYDWAY20KV2_MIN_SCALE, SIXConfig.LR94SYDWAY20KV2_MAX_SCALE);
	layer.setExtents(SIXConfig.LR94SYDWAY20KV2_EXTENTS[0], SIXConfig.LR94SYDWAY20KV2_EXTENTS[1], SIXConfig.LR94SYDWAY20KV2_EXTENTS[2], SIXConfig.LR94SYDWAY20KV2_EXTENTS[3]);
	layer.fnOnSelect = fnOnSelectLayer;
	
	if (SIXConfig.bHaveOTDF)
	{
		layer = svc.addLayer(new SIX.Layer(svc, SIXConfig.LR94ORTHO1M_DESCRIPTION, SIXConfig.LR94ORTHO1M_ID, SIXConfig.LR94ORTHO1M_ECWP_URL,"neverinlist=true;bestindex=" + SIXConfig.LR94ORTHO1M_BEST_INDEX + ";otdf=true;canquery=false"));	
		layer.setMetadataUrl(SIXConfig.LR94ORTHO1M_METADATA_URL);
		layer.setCoordSys("gda94", "nswlam94");
		layer.setScale(SIXConfig.LR94ORTHO1M_MIN_SCALE, SIXConfig.LR94ORTHO1M_MAX_SCALE);
		layer.setExtents(SIXConfig.LR94ORTHO1M_EXTENTS[0], SIXConfig.LR94ORTHO1M_EXTENTS[1], SIXConfig.LR94ORTHO1M_EXTENTS[2], SIXConfig.LR94ORTHO1M_EXTENTS[3]);
	}

	layer = svc.addLayer(new SIX.Layer(svc, SIXConfig.NSWCOLSIV1_DESCRIPTION, SIXConfig.NSWCOLSIV1_ID, SIXConfig.NSWCOLSIV1_ECWP_URL,
					(SIXConfig.bHaveOTDF ? "otdfpath=" + SIXConfig.NSWCOLSIV1_OTDF_PATH : "") + ";neverinlist=true;bestindex=" + SIXConfig.NSWCOLSIV1_BEST_INDEX + ";selected=true;canquery=false;calculateextents=false"));
	layer.setMetadataUrl(SIXConfig.NSWCOLSIV1_METADATA_URL);
	layer.setCoordSys("gda94", "nswlam94");

	//channel.setExtentsAllLayer(layer);

	layer = svc.addLayer(new SIX.Layer(svc, "Current State-wide topographic", SIXConfig.NSWTOPOS2V2_ID, SIXConfig.NSWTOPOS2V2_ECWP_URL,
					(SIXConfig.bHaveOTDF ? "otdfpath=" + SIXConfig.NSWTOPOS2V2_OTDF_PATH : "") + ";canquery=false"));
	//layer.setListButton("images/current_state_wide_topographic_layer");
	layer.setMetadataUrl(SIXConfig.NSWTOPOS2V2_METADATA_URL);
	layer.setCoordSys("gda94", "nswlam94");
	layer.setExtents(SIXConfig.NSWTOPOS2V2_EXTENTS[0], SIXConfig.NSWTOPOS2V2_EXTENTS[1], SIXConfig.NSWTOPOS2V2_EXTENTS[2], SIXConfig.NSWTOPOS2V2_EXTENTS[3]);

	// ----------------- ArcXML Map Service  ------------------------------
	var sParamsThemes = "ui=layers;hiddenslider=true;alwayson=true;layersoutsideextentsenabled=true;layersoutofscaleenabled=false;";
	var svcPropertyThemes = catalog.addService(new SIX.Service("Property Themes","arcxml","","",sParamsThemes));
	theNavigator.addPropertiesToolService(svcPropertyThemes);	
	
	// ----------------- ArcXML Map Service  ------------------------------	
	var svcPropertyThemes2 = svcPropertyThemes.addService(new SIX.Service("Property Themes (Child 1)","arcxml",SIXConfig.ARCXML_SERVER,"imagery_portlet_themes",sParamsThemes));
	svcPropertyThemes2.hideColors(["#ffffff","#F8F6C4","#6496FF"]);
	svcPropertyThemes2.setLayerFilterDefaults(false,true,false);
	svcPropertyThemes2.addLayerFilter("Address_1", /*"Property Address"*/"", true, false, false);
	svcPropertyThemes2.addLayerFilter("Lot_1", /*"Cadastre"*/"", true, false, false);
	svcPropertyThemes2.addLayerFilter("Suburb_1", /*"Suburb"*/"", true, false, false);
	svcPropertyThemes2.addLayerFilter("LocalGovernmentArea_1", /*"Local Government Authority"*/"", true, false, false);
	
	var svcTopoThemes = catalog.addService(new SIX.Service("Topographic Themes","arcxml","","",sParamsThemes));
	theNavigator.addTopoToolService(svcTopoThemes);	

	var sBackgroundColor = "#eeeeee";
	var svcTopoThemes1 = svcTopoThemes.addService(new SIX.Service("Topographic Themes (Child 2)","arcxml",SIXConfig.ARCXML_SERVER,"six_combo",sParamsThemes + ";backgroundcolor=" + sBackgroundColor));
	svcTopoThemes1.setLayerFilterDefaults(false,true,false);
	svcTopoThemes1.addLayerFilter("RoadSegment_Label_1", /*"Road Labels"*/"", true, false, false);
	svcTopoThemes1.hideColors([sBackgroundColor]);
		
	var svcTopoThemes2 = svcTopoThemes.addService(new SIX.Service("Topographic Themes (Child 1)","arcxml",SIXConfig.ARCXML_SERVER,"imagery_portlet_themes",sParamsThemes));
	svcTopoThemes2.hideColors(["#ffffff","#F8F6C4","#6496FF"]);
	svcTopoThemes2.setLayerFilterDefaults(false,true,false);
	svcTopoThemes2.addLayerFilter("BuildingComplexPoint", /*"Points of Interest (Facilities)"*/"", true, false, false);
	svcTopoThemes2.addLayerFilter("Locality_Label_1", /*"Localities"*/"", true, false, false);
	svcTopoThemes2.addLayerFilter("Road", /*"Roads"*/"", true, false, false);

	var sBackgroundColor = "#eeeeee";
	var svcPropertyThemes1 = catalog.addService(new SIX.Service("Property Themes (Child 2)","arcxml",SIXConfig.ARCXML_SERVER,"six_combo",sParamsThemes + ";backgroundcolor=" + sBackgroundColor));
	svcPropertyThemes1.setLayerFilterDefaults(false,true,false);
	svcPropertyThemes1.addLayerFilter("Suburb_Label_1", /*"Suburb Labels"*/"", true, false, false);
	svcPropertyThemes1.hideColors([sBackgroundColor]);
	theNavigator.addPropertiesToolService(svcPropertyThemes1);
	
	// ----------------- ArcXML Map Service  ------------------------------
	//Geoscience Australia Sentinel "Fire Hot Spots" ArcXML service
	var svcHotSpots = catalog.addService(new SIX.Service("Fire Hot Spots (Geoscience Australia)","arcxml",SIXConfig.SENTINEL_ARCXML_SERVER,"GDA94_Sentinel_Shapefiles_WMS",
						"ui=layers;hiddenslider=true;alwayson=true;layersoutsideextentsenabled=true;layersoutofscaleenabled=false"));
	svcHotSpots.setLayerFilterDefaults(false, true, false);
	svcHotSpots.addLayerFilter("", "Avhrr00to12Hours", true);
	svcHotSpots.addLayerFilter("", "Avhrr12to24Hours", true);
	svcHotSpots.setLayerNameAlias("", "Avhrr00to12Hours", "Fire Hot Spots Last 12 Hours");
	svcHotSpots.setLayerNameAlias("", "Avhrr12to24Hours", "Fire Hot Spots 12 to 24 Hours");
	svcHotSpots.hideColors(["#ffffff","#F8F6C4","#6496FF","#53B1FB"]);
	theNavigator.addWeatherToolService(svcHotSpots);	

	//Bureau of Meteorology WMS services
	//To make the background transparent, we set the background color to a color unlikely to be used for wms features.
	//WMS supports the request attribute "TRANSPARENT" to automatically set any background to transparent.  However, 
	//the NCSLayeredView control does not handle transparent gif or png images well, so we need to hide the background
	//via the SIX.Service.hideColors() method.
	var sBackgroundColor = "#E7DCBD";
	var svcBOM = catalog.addService(new SIX.Service("Weather (Bureau of Meteorology)","wms",SIXConfig.EMSINA_ARCXML_SERVER,"?",
						"ui=layers;backgroundcolor=" + sBackgroundColor + ";hiddenslider=true;alwayson=true;layersoutsideextentsenabled=true;layersoutofscaleenabled=false"));
	svcBOM.setLayerFilterDefaults(false, true, false);
	svcBOM.addLayerFilter("IDR53POL", "", true);//Radar Moree
	svcBOM.addLayerFilter("IDR04POL", "", true);//Radar Newcastle
	svcBOM.addLayerFilter("IDR55POL", "", true);//Radar Wagga Wagga
	svcBOM.addLayerFilter("IDR54POL", "", true);//Radar Kurnell
	svcBOM.addLayerFilter("IDR28POL", "", true);//Radar Grafton
	svcBOM.addLayerFilter("IDR03POL", "", true);//Radar Sydney
	svcBOM.addLayerFilter("IDR35POL", "", true);//Radar Coffs Harbour	
	
	svcBOM.addLayerFilter("IDYLP002_contours", "", true);
	svcBOM.setLayerNameAlias("IDYLP002_contours", "", "Mean Sea Level Pressure");
	svcBOM.addLayerFilter("IDYLP003_windanalysis", "", true);
	svcBOM.setLayerNameAlias("IDYLP003_windanalysis", "", "Wind (10m) Analysis"); 	
	svcBOM.addLayerFilter("IDN65238", "", true);
	svcBOM.setLayerNameAlias("IDN65238", "", "Thunderstorm Forecast for NSW");	
	svcBOM.hideColors([sBackgroundColor]);
	svcBOM.hideColor("#ffdc00", 30);
	theNavigator.addWeatherToolService(svcBOM);	
	
	var sSearch = SIX.Util.getQueryStringParamValue("search");
	sSearch = sSearch.toLowerCase();

	// ----------------- SOAP Feature service  ------------------------------
	var svcSearch1 = catalog.addService(new SIX.Service("Take me to Address Search","soap",SIXConfig.SOAP_SERVER,"HRAddressSearchWS","ui=search;alwayson=true;featureserver=true"));
	SOAPSearchWin.attach(svcSearch1);

	var bAddressSearchDefault = (sSearch == "" || (sSearch == "address" && channel == SIX.App.getCurrentChannel()));
	var sAddressSearchParams = (bAddressSearchDefault ? "default=true;" : "") + "idfield=propId;mapserviceidfield=delivsdm:geodb.Property.propid;onresponse=searchAddressResponse;onsubmit=searchAddress;minzoomwidth=0.002;minzoomheight=0.002;";
	var sAddressHouseNumber = "";
	var sAddressRoadName = "";
	var sAddressSuburb = "";
	var sAddressPostcode = "";
	if ((sSearch == "address") && (channel == SIX.App.getCurrentChannel()))
	{
		sAddressSearchParams += "onsubmit=search;submitonfirstloadonly=true;zoomtofirstfeatureonstartup=true;";

		sAddressHouseNumber = SIX.Util.getQueryStringParamValue("housenum");
		sAddressRoadName = SIX.Util.getQueryStringParamValue("rdname");
		sAddressSuburb = SIX.Util.getQueryStringParamValue("suburb");
		sAddressPostcode = SIX.Util.getQueryStringParamValue("pcode");
	}
		
	var searchAddress = svcSearch1.addSearch(new SIX.Search(svcSearch1, "Address", "addresses", svcPropertyThemes2, "Address_1", sAddressSearchParams));
	searchAddress.addString("Number:", "houseNum",20,sAddressHouseNumber,[["onkeypress", searchAddress.myself + ".submitOnEnter(event)"]]);
	searchAddress.addString("* Road Name:", "rdName",20,sAddressRoadName,[["onkeypress", searchAddress.myself + ".submitOnEnter(event)"]]);
	searchAddress.addChoice("Road Type:", "rdType", SIXConfig.aAddressRoadTypes, "");
	searchAddress.addString("* Suburb or Postcode:", "suburb;pcode",20,(sAddressPostcode != "" ? sAddressPostcode : sAddressSuburb),[["onkeypress", searchAddress.myself + ".submitOnEnter(event)"]]);
	searchAddress.addButton("submit", "submit", "Get results", [["onclick", "searchAddress"]]);

	searchAddress.addResults("results",
							["houseNum","rdName","suburb","pcode"],
							["Number","Road Name","Suburb","Postcode"],
							null, 15,[["onclick",  "onSelectSearchResult"]]);

	//The themes service may not always contain all the layers being searched or queried, so we need an additional SIX.Service
	//for highlighting the query and "Take me to" search results.
	var svcHighlights = catalog.addService(new SIX.Service("Take me to Search Highlights","arcxml",SIXConfig.ARCXML_SERVER,"imagery_portlet_themes",""));
	svcHighlights.setLayerFilterDefaults(true, true, false);	
	svcHighlights.hideColors(["#ffffff","#F8F6C4"]);

	// ----------------- ArcXML Feature Service  ------------------------------
	var svcSearch2 = catalog.addService(new SIX.Service("Take me to Searches","arcxml",SIXConfig.ARCXML_SERVER,"imagery_portlet_themes","ui=search;alwayson=true;featureserver=true"));
	ArcXMLSearchWin.attach(svcSearch2);

	var bPlaceNamesSearchDefault = (sSearch == "place" && channel == SIX.App.getCurrentChannel());
	var sPlaceSearchParams = (bPlaceNamesSearchDefault ? "default=true;" : "") + "idfield=delivsdm:geodb.placepoint.objectid;mapserviceidfield=delivsdm:geodb.placepoint.objectid;onresponse=searchResponse;minzoomwidth=0.015;minzoomheight=0.015;";
	var sPlaceName = "";
	if ((sSearch == "place") && (channel == SIX.App.getCurrentChannel())) {
	    sPlaceSearchParams += "onsubmit=search;submitonfirstloadonly=true;zoomtofirstfeatureonstartup=true;";
	    sPlaceName = SIX.Util.getQueryStringParamValue("name");
	}
	
	// ----------------- Localities Search ------------------------------
	var searchCityTownSuburb = svcSearch2.addSearch(new SIX.Search(svcSearch2, "Place names", "Locality_Label_1", null/*svcHighlights*/, ""/*"Locality_Label_1"*/, sPlaceSearchParams));
	searchCityTownSuburb.addString("Name:", "delivsdm:geodb.placepoint.generalname", 20, sPlaceName, [["onkeyup", "search"]]);
	searchCityTownSuburb.addResults("results",
						["delivsdm:geodb.placepoint.generalname"],
						["Results"],
						null, 15,[["onclick",  "onSelectSearchResult"]]);

	var bLotDPSearchDefault = (sSearch == "lotdp" && channel == SIX.App.getCurrentChannel());
	var sLotDPSearchParams = (bLotDPSearchDefault ? "default=true;" : "") + "idfield=delivsdm:geodb.lot.objectid;mapserviceidfield=delivsdm:geodb.lot.objectid;onresponse=searchResponse;onsubmit=searchLotDP;minzoomwidth=0.002;minzoomheight=0.002;";
	var sLot = "";
	var sSection = "";
	var nPlanNumber = 0;
	if ((sSearch == "lotdp") && (channel == SIX.App.getCurrentChannel())) {
	    sLotDPSearchParams += "onsubmit=search;submitonfirstloadonly=true;zoomtofirstfeatureonstartup=true;";
	    sLot = SIX.Util.getQueryStringParamValue("lot");
	    sSection = SIX.Util.getQueryStringParamValue("section");
	    var sPlanNumber = SIX.Util.getQueryStringParamValue("plan");
	    if (!isNaN(parseInt(sPlanNumber)))
	        nPlanNumber = parseInt(sPlanNumber);
	}
	
	// ----------------- Lot/DP Search ------------------------------
	var searchLotDP = svcSearch2.addSearch(new SIX.Search(svcSearch2, "Lot / Section / Deposited Plan", "Lot_1", svcHighlights, "Lot_1", sLotDPSearchParams));
	searchLotDP.addString("Lot:", "delivsdm:geodb.lot.lotnumber",20,sLot,[["onkeypress", searchLotDP.myself + ".submitOnEnter(event)"]]);
	searchLotDP.addString("Section:", "delivsdm:geodb.lot.sectionnumber", 20, sSection, [["onkeypress", searchLotDP.myself + ".submitOnEnter(event)"]]);
	searchLotDP.addNumber("Plan Number:", "delivsdm:geodb.lot.plannumber", nPlanNumber, [["onkeypress", searchLotDP.myself + ".submitOnEnter(event)"]]);
	searchLotDP.addButton("submit", "submit", "Get results", [["onclick", "searchLotDP"]]);
	searchLotDP.addResults("results",
						["delivsdm:geodb.lot.lotnumber","delivsdm:geodb.lot.sectionnumber","delivsdm:geodb.lot.plannumber"],
						["Lot","Section","Plan Number"],
						null, 15,[["onclick",  "onSelectSearchResult"]]);
			
	var aSearchIds = new Object();
	aSearchIds["Address"] = SIX.Uid.getUid("AddressSearch");
	aSearchIds["CityTownSuburb"] = SIX.Uid.getUid("CityTownSuburb");
	aSearchIds["LotDP"] = SIX.Uid.getUid("LotDP");	
			
	catalog.onClickSearch = function (sSearchId)
	{
		with ({aSearchIds : aSearchIds, searchAddress : searchAddress, searchCityTownSuburb : searchCityTownSuburb, searchLotDP : searchLotDP})
		{
			var elemImgAddressSearch = document.getElementById(aSearchIds["Address"]);
			var elemImgCityTownSuburbSearch = document.getElementById(aSearchIds["CityTownSuburb"]);
			var elemImgLotDPSearch = document.getElementById(aSearchIds["LotDP"]);	
			
			if (elemImgAddressSearch)
				elemImgAddressSearch.src = (sSearchId == aSearchIds["Address"] ? "images/search_radio_selected.gif" : "images/search_radio.gif");
			if (elemImgCityTownSuburbSearch)
				elemImgCityTownSuburbSearch.src = (sSearchId ==  aSearchIds["CityTownSuburb"] ? "images/search_radio_selected.gif" : "images/search_radio.gif");
			if (elemImgLotDPSearch)
				elemImgLotDPSearch.src = (sSearchId == aSearchIds["LotDP"] ? "images/search_radio_selected.gif" : "images/search_radio.gif");
		
			if (sSearchId == aSearchIds["Address"])
				this.setCurrentSearch(searchAddress.uid);
			else if (sSearchId == aSearchIds["CityTownSuburb"])
				this.setCurrentSearch(searchCityTownSuburb.uid);
			else if (sSearchId == aSearchIds["LotDP"])
				this.setCurrentSearch(searchLotDP.uid);
			return false;
		}
	}

	catalog.fnBuildSearch = function () {
		if (!this.divSearch)
			this.divSearch = document.createElement("div");	
		var sHTML = "";
		with ({aSearchIds : aSearchIds, searchAddress : searchAddress, searchCityTownSuburb : searchCityTownSuburb, searchLotDP : searchLotDP})
		{		
			var searchCurrent = null;
			if (this.currentSearchService && (this.currentSearchService.currentSearch > -1))
				searchCurrent = this.currentSearchService.searches[this.currentSearchService.currentSearch];	
			var sImgSrcAddressSearch = (searchAddress == searchCurrent ? "images/search_radio_selected" : "images/search_radio");
			var sImgSrcCityTownSuburbSearch = (searchCityTownSuburb == searchCurrent ? "images/search_radio_selected" : "images/search_radio");
			var sImgSrcLotDPSearch = (searchLotDP == searchCurrent ? "images/search_radio_selected" : "images/search_radio");
		
			var sAddressSearchId = aSearchIds["Address"];
			var sCityTownSuburbSearchId = aSearchIds["CityTownSuburb"];
			var sLotDPSearchId = aSearchIds["LotDP"];
			
			sHTML += "<div style='width:306px;height:30px'>" +
			"<img id='" + sAddressSearchId + "' " + SIX.App.imageSrc(sImgSrcAddressSearch) + " border='0' onclick='" + this.myself + ".onClickSearch(this.id)'>" + 
			"<img " + SIX.App.imageSrc("images/search_label_address") + " border='0' onclick='" + this.myself + ".onClickSearch(\"" + sAddressSearchId + "\")'>" + 
			"<img id='" + sCityTownSuburbSearchId + "' " + SIX.App.imageSrc(sImgSrcCityTownSuburbSearch) + " border='0' onclick='" + this.myself + ".onClickSearch(this.id)'>" + 
			"<img " + SIX.App.imageSrc("images/search_label_town_suburb") + " border='0' onclick='" + this.myself + ".onClickSearch(\"" + sCityTownSuburbSearchId + "\")'>" + 
			"<img id='" + sLotDPSearchId + "' " + SIX.App.imageSrc(sImgSrcLotDPSearch) + " border='0' onclick='" + this.myself + ".onClickSearch(this.id)'>" + 
			"<img " + SIX.App.imageSrc("images/search_label_lotdp") + " border='0' onclick='" + this.myself + ".onClickSearch(\"" + sLotDPSearchId + "\")'>" + 
			"</div>";
		}
		this.divSearch.innerHTML = sHTML;
		return this.divSearch;
	}
	
	
	// ----------------- ArcXML Reports Service ---------------------------
	var svcReports = catalog.addService(new SIX.Service("Queries","arcxml",SIXConfig.ARCXML_SERVER,"imagery_portlet_takemeto","ui=query;alwayson=true;featureserver=true"));
	queryWin.attach(svcReports);

	var reportsQueries = svcReports.addQueries(new SIX.Queries(svcReports,"Image Viewer Queries"));
	theNavigator.addInfoToolService(svcReports);

	// ----------------- Address Query ------------------------------
	var reportsQuery = reportsQueries.addQuery("Address","Address_Label_1", svcHighlights,"Address_1","queryunselected=true;idfield=delivsdm:geodb.Property.propid;mapserviceidfield=delivsdm:geodb.Property.propid;fielddisplay=horizontal;commadelimited=false");
	var houseNumberField = reportsQuery.addField("", "delivsdm:geodb.addressstring.housenumberfirst");
	
	houseNumberField.fnGetValue = function (sValue, aFieldValues) {
					var value = "";
					var query = this.query;
					var sHouseNumberFirst = sValue;
					var sHouseNumberFirstSuffix = "";
					var sHouseNumberSecond = "";
					var sHouseNumberSecondSuffix = "";
					var sUnitNumberPrefix = "";
					var sUnitNumber = "";
					var sUnitNumberSuffix = "";
					
					for (var i=0; i<query.fields.length; i++)
					{
						var field = query.fields[i];
						switch(field.key)
						{
							case "delivsdm:geodb.addressstring.housenumberfirstsuffix": 
								sHouseNumberFirstSuffix = aFieldValues[i];
							break;
							case "delivsdm:geodb.addressstring.housenumbersecond":
							 	sHouseNumberSecond = aFieldValues[i];
							break;
							case "delivsdm:geodb.addressstring.housenumbersecondsuffix":
								sHouseNumberSecondSuffix = aFieldValues[i];
							break;							
							case "delivsdm:geodb.addressstring.unitnumberprefix":
								sUnitNumberPrefix = aFieldValues[i];
							break;
							case "delivsdm:geodb.addressstring.unitnumber":
								sUnitNumber = aFieldValues[i];
							break;
							case "delivsdm:geodb.addressstring.unitnumbersuffix":
								sUnitNumberSuffix = aFieldValues[i];
							break;
							default:
							break;
						}
					}
					var sUnitText = (sUnitNumberPrefix != "" || sUnitNumber != "" || sUnitNumberSuffix != "" ? sUnitNumberPrefix + sUnitNumber + sUnitNumberSuffix : "");
					var sHouseNumberSecondText = sHouseNumberSecond + sHouseNumberSecondSuffix;
					
					value = (sUnitText != "" ? "Unit " + sUnitText + ", " : "") + 
						sHouseNumberFirst + sHouseNumberFirstSuffix + 
						(sHouseNumberSecondText != "" ? "-" + sHouseNumberSecondText : "");
					
					return value;
				}		
		
	reportsQuery.addField("", "delivsdm:geodb.addressstring.housenumberfirstsuffix", null, "hidden=true");
	reportsQuery.addField("", "delivsdm:geodb.addressstring.housenumbersecond", null, "hidden=true");
	reportsQuery.addField("", "delivsdm:geodb.addressstring.housenumbersecondsuffix", null, "hidden=true");
	reportsQuery.addField("", "delivsdm:geodb.addressstring.unitnumberprefix", null, "hidden=true");
	reportsQuery.addField("", "delivsdm:geodb.addressstring.unitnumber", null, "hidden=true");
	reportsQuery.addField("", "delivsdm:geodb.addressstring.unitnumbersuffix", null, "hidden=true");


	reportsQuery.addField("", "delivsdm:geodb.addressstring.roadname");
	reportsQuery.addField("", "delivsdm:geodb.addressstring.roadtype");
	reportsQuery.addField("", "delivsdm:geodb.addressstring.suburbname");
	reportsQuery.addField("", "delivsdm:geodb.addressstring.postcode");

	// ----------------- Lot/DP Query ------------------------------
	reportsQuery = reportsQueries.addQuery("Lot/DP", "Lot_Label_1", svcHighlights, "Lot_1", "queryunselected=true;idfield=delivsdm:geodb.lot.objectid;mapserviceidfield=delivsdm:geodb.lot.objectid");
	reportsQuery.addField("Lot", "delivsdm:geodb.lot.lotnumber");
	reportsQuery.addField("Section", "delivsdm:geodb.lot.sectionnumber");
	reportsQuery.addField("Plan Number", "delivsdm:geodb.lot.plannumber");

	// ----------------- Suburbs Query ------------------------------
	reportsQuery = reportsQueries.addQuery("Suburb", "Suburb_Label_1", svcHighlights, "Suburb_1",
											"queryunselected=true;idfield=delivsdm:geodb.Suburb.objectid;mapserviceidfield=delivsdm:geodb.Suburb.objectid");
	reportsQuery.addField("Suburb", "delivsdm:geodb.suburb.suburbname");
	
	// ----------------- Points of Interest Query ------------------------------
	var aEducationFacilityLookupTable = new Object();
	aEducationFacilityLookupTable["#0"] = "Undefined";
	aEducationFacilityLookupTable["#1"] = "PrimarySchool";
	aEducationFacilityLookupTable["#2"] = "HighSchool";
	aEducationFacilityLookupTable["#3"] = "TechnicalCollege";
	aEducationFacilityLookupTable["#4"] = "University";
	aEducationFacilityLookupTable["#5"] = "Academy";
	aEducationFacilityLookupTable["#6"] = "SpecialSchool";
	aEducationFacilityLookupTable["#7"] = "Pre-School";
	aEducationFacilityLookupTable["#8"] = "CombinedPrimarySecondarySchool";

	var aCommunityFacilityLookupTable = new Object();
	aCommunityFacilityLookupTable["#0"] = "Undefined";
	aCommunityFacilityLookupTable["#1"] = "Ambulance";
	aCommunityFacilityLookupTable["#2"] = "ArtGallery";
	aCommunityFacilityLookupTable["#4"] = "CommunityHome";
	aCommunityFacilityLookupTable["#5"] = "ConventMonastery";
	aCommunityFacilityLookupTable["#6"] = "CourtHouse";
	aCommunityFacilityLookupTable["#7"] = "Embassy";
	aCommunityFacilityLookupTable["#8"] = "FireStation-Bush";
	aCommunityFacilityLookupTable["#9"] = "FireStation-Urban";
	aCommunityFacilityLookupTable["#10"] = "Gaol";
	aCommunityFacilityLookupTable["#11"] = "Library";
	aCommunityFacilityLookupTable["#12"] = "LocalGovtChambers";
	aCommunityFacilityLookupTable["#14"] = "Museum";
	aCommunityFacilityLookupTable["#15"] = "Observatory";
	aCommunityFacilityLookupTable["#16"] = "PlaceOfWorship";
	aCommunityFacilityLookupTable["#17"] = "PoliceStation";
	aCommunityFacilityLookupTable["#18"] = "PostOffice";
	aCommunityFacilityLookupTable["#19"] = "SES_Facility";
	aCommunityFacilityLookupTable["#20"] = "TouristInformationCentre";

	var aHospitalFacilityLookupTable = new Object();
	aHospitalFacilityLookupTable["#0"] = "GeneralHospital";     
	aHospitalFacilityLookupTable["#1"] = "PsychiatricHospital";
	aHospitalFacilityLookupTable["#2"] = "EmergencyHospital";
	aHospitalFacilityLookupTable["#3"] = "MedicalCentre";

	var aIndustryFacilityLookupTable = new Object();
	aIndustryFacilityLookupTable["#0"] = "Undefined";
	aIndustryFacilityLookupTable["#1"] = "Abattoir";
	aIndustryFacilityLookupTable["#2"] = "Brickworks";
	aIndustryFacilityLookupTable["#3"] = "Co-operative";
	aIndustryFacilityLookupTable["#4"] = "Depot";
	aIndustryFacilityLookupTable["#5"] = "Depot-NRMA";
	aIndustryFacilityLookupTable["#6"] = "Factory";
	aIndustryFacilityLookupTable["#7"] = "Homestead";
	aIndustryFacilityLookupTable["#8"] = "ResearchStation";
	aIndustryFacilityLookupTable["#9"] = "Shipyard";
	aIndustryFacilityLookupTable["#10"] = "ShoppingCentre";

	var aUtilityFacilityLookupTable = new Object();
	aUtilityFacilityLookupTable["#0"] = "Undefined";
	aUtilityFacilityLookupTable["#1"] = "FiltrationPlant";
	aUtilityFacilityLookupTable["#2"] = "GasFacility";
	aUtilityFacilityLookupTable["#3"] = "PowerStation-FuelDriven";
	aUtilityFacilityLookupTable["#4"] = "PowerStation-GeoThermal";
	aUtilityFacilityLookupTable["#5"] = "PowerStation-Hydro";
	aUtilityFacilityLookupTable["#6"] = "PowerStation-Solar";
	aUtilityFacilityLookupTable["#7"] = "PowerStation-Wind";
	aUtilityFacilityLookupTable["#8"] = "PumpingStation";
	aUtilityFacilityLookupTable["#9"] = "SewageWorks";
	aUtilityFacilityLookupTable["#10"] = "SubStation";
	aUtilityFacilityLookupTable["#11"] = "TransmissionStation";

	var aRecreationalFacilityLookupTable = new Object();
	aRecreationalFacilityLookupTable["#0"] = "Undefined";
	aRecreationalFacilityLookupTable["#2"] = "CaravanPark";
	aRecreationalFacilityLookupTable["#3"] = "Club";
	aRecreationalFacilityLookupTable["#12"] = "SportsCentre";
	aRecreationalFacilityLookupTable["#17"] = "TouristAttraction";
	aRecreationalFacilityLookupTable["#18"] = "Zoo";
	aRecreationalFacilityLookupTable["#15"] = "SwimmingPoolFacility";

	var aBuildingTypeLookupTable = new Object();
	aBuildingTypeLookupTable["#1"] = aEducationFacilityLookupTable;
	aBuildingTypeLookupTable["#2"] = aCommunityFacilityLookupTable;
	aBuildingTypeLookupTable["#3"] = aHospitalFacilityLookupTable;
	aBuildingTypeLookupTable["#4"] = aIndustryFacilityLookupTable;
	aBuildingTypeLookupTable["#5"] = aUtilityFacilityLookupTable;
	aBuildingTypeLookupTable["#6"] = aRecreationalFacilityLookupTable;

	reportsQuery = reportsQueries.addQuery("Points of Interest (Facilities)", "BuildingComplexPoint", svcHighlights, "BuildingComplexPoint",
											"queryunselected=true;idfield=delivsdm:geodb.BuildingComplexPoint.objectid;mapserviceidfield=delivsdm:geodb.BuildingComplexPoint.objectid"+
												";host=" + SIXConfig.ARCXML_SERVER + ";service=imagery_portlet_themes");
	reportsQuery.addField("Name", "delivsdm:geodb.BuildingComplexPoint.generalname");
	reportsQuery.addField("Alternative Name", "delivsdm:geodb.BuildingComplexPoint.alternativeLabel");
	reportsQuery.addField("SubType", "delivsdm:geodb.BuildingComplexPoint.classsubtype", null, "hidden=true");
	reportsQuery.addField("Type", "delivsdm:geodb.BuildingComplexPoint.buildingcomplextype", aBuildingTypeLookupTable, "primarylookupfieldkey=delivsdm:geodb.BuildingComplexPoint.classsubtype");
	reportsQuery.addField("id", "delivsdm:geodb.cadpoint.objectid");

	// ----------------- Localities Query ------------------------------
	reportsQuery = reportsQueries.addQuery("Place names", "Locality_Label_1", svcHighlights, "Locality_Label_1",
											"queryunselected=true;idfield=delivsdm:geodb.placepoint.objectid;mapserviceidfield=delivsdm:geodb.placepoint.objectid");
	reportsQuery.addField("Name", "delivsdm:geodb.placepoint.generalname");

	// ----------------- Local Govt Boundaries Query ------------------------------
	reportsQuery = reportsQueries.addQuery("Local Government Area", "LocalGovernmentArea_Label_1", svcHighlights,"LocalGovernmentArea_1",
											"queryunselected=true;idfield=delivsdm:geodb.LocalGovernmentArea.objectid;mapserviceidfield=delivsdm:geodb.LocalGovernmentArea.objectid");
	reportsQuery.addField("LGA", "delivsdm:geodb.localgovernmentarea.lganame");

	// ----------------- Road Names Query ------------------------------
	reportsQuery = reportsQueries.addQuery("Road", "RoadSegment_Label_1", svcTopoThemes1, "RoadSegment_Label_1",
											"queryunselected=true;highlightcolor=#ffff00;host=" + SIXConfig.ARCXML_SERVER + ";service=six_combo;idfield=delivsdm:geodb.RoadSegment.objectid;mapserviceidfield=delivsdm:geodb.RoadSegment.objectid");
	var fieldRoadNameBase = reportsQuery.addField("", "delivsdm:geodb.RoadSegment.roadnamebase");
	
	fieldRoadNameBase.fnGetValue = function (sValue, aFieldValues) {
									var value = "";
									var query = this.query;
									var sRoadNameBase = "";
									var sRoadNameType = "";
									var sRoadNameSuffix = "";
								
									for (var i=0; i<query.fields.length; i++)
									{
										var field = query.fields[i];
										switch(field.key)
										{
											case "delivsdm:geodb.RoadSegment.roadnamebase": 
												sRoadNameBase = aFieldValues[i];
											break;
											case "delivsdm:geodb.RoadSegment.roadnametype":
							 					sRoadNameType = aFieldValues[i];
											break;
											case "delivsdm:geodb.RoadSegment.roadnamesuffix":
												sRoadNameSuffix = aFieldValues[i];
											break;
										}
									}
									
									value = (sRoadNameBase != "" ? sRoadNameBase : "") + 
										(sRoadNameType != "" ? " " + sRoadNameType : "") + 
										(sRoadNameSuffix != "" ? " " + sRoadNameSuffix : "");
									
									return value;
								}		
		
	reportsQuery.addField("", "delivsdm:geodb.RoadSegment.roadnametype", null, "hidden=true");	
	reportsQuery.addField("", "delivsdm:geodb.RoadSegment.roadnamesuffix", null, "hidden=true");	

	// ----------------- Airview ArcXML Reports Service ---------------------------
	svcReports = catalog.addService(new SIX.Service("Queries","arcxml",SIXConfig.ARCXML_SERVER,"imagery_portlet_takemeto","ui=query;alwayson=true;featureserver=true"));
	airviewWin.attach(svcReports);

	reportsQueries = svcReports.addQueries(new SIX.Queries(svcReports,"Airview Queries"));

	// ----------------- Airview Query ------------------------------
	reportsQuery = reportsQueries.addQuery("Airview", "Airview_Index_1", svcReports,"Airview_Index_1",
											"idfield=FID;mapserviceidfield=FID;alwayson=true;queryoutofscale=true;queryunselected=true" +
												";host=" + SIXConfig.ARCXML_SERVER + ";service=img_index_airview");
	reportsQuery.addField("Map Name", "NAME");
	reportsQuery.addField("Number", "NUMBER", null, "hidden=true;");
	reportsQuery.fnGetMoreInfoUrl = function (aFieldValues)
	{
		var mapNumber = aFieldValues[1];
		
		var map = this.mapService.catalog.maps[0];
		var dMouseLatitude = map.getMouseLatitude();
		var dMouseLongitude = map.getMouseLongitude();
		
		return SIXConfig.AIRVIEW_URL + "viewAerialPhotoDetails.jsp?MAP_NUM=" + mapNumber
			+ "&X=" + dMouseLongitude
			+ "&Y=" + dMouseLatitude;
	}
	reportsQuery.setMoreInfoLabel("Order aerial photo");
	airviewQueryTool.attachService(svcReports);
	
	// ----------------- Topographic Query ------------------------------
	reportsQuery = reportsQueries.addQuery("Topographic", "Topographic_Map_Index_1", svcReports,"Topographic_Map_Index_1",
											"idfield=FID;mapserviceidfield=FID;alwayson=true;queryoutofscale=true;queryunselected=true" +
												";host=" + SIXConfig.ARCXML_SERVER + ";service=img_index_topo");
	reportsQuery.addField("Map Name", "MAP_NAME");
	reportsQuery.addField("Mnemonic", "MNEMONIC", null, "hidden=true;");
	reportsQuery.fnGetMoreInfoUrl = function (aFieldValues)
	{
		var mapNumber = aFieldValues[1];
		
		var map = this.mapService.catalog.maps[0];
		var dMouseLatitude = map.getMouseLatitude();
		var dMouseLongitude = map.getMouseLongitude();
		
		return SIXConfig.AIRVIEW_URL + "viewTopoMap.jsp?MAP_ID=" + mapNumber
			+ "&X=" + dMouseLongitude
			+ "&Y=" + dMouseLatitude;
	}
	reportsQuery.setMoreInfoLabel("Order topo map");
	//airviewQueryTool.attachService(svcReports);
}