function buildLayers2(_1){
var _2=new YAHOO.widget.TreeView("layers_palette");
_2.onExpand=function(_3){
_3.selectionChanged();
resizeLayers();
};
_2.onCollapse=function(_4){
_4.selectionChanged();
resizeLayers();
};
buildNodes(_1.elements,_2.getRoot());
_2.draw();
resizeLayers();
}
function buildNodes(_5,_6){
for(var i=0;i<_5.length;i++){
var _8=null;
if(_5[i].parentExclusive){
_8=new YAHOO.widget.RadioNode(_5[i].label,_6,_5[i].expanded,_5[i].checked,_5[i].exclusive);
_6.nodeGroup.add(_8);
}else{
_8=new YAHOO.widget.CheckNode(_5[i].label,_6,_5[i].expanded,_5[i].checked);
}
if(_5[i].exclusive){
_8.nodeGroup=new YAHOO.widget.NodeGroup();
}
_8.layer=_5[i];
if(serviceInfo.getLayerByLabel(_5[i].name)&&serviceInfo.getLayerByLabel(_5[i].name).selectable&&!_5[i].category){
selectionManager.activeLayerEvent.subscribe(_8.selectionChanged,_8,true);
}
if(_5[i].category&&_5[i].expandable){
buildNodes(_5[i].elements,_8);
}
delete _8.layer.expandable;
delete _8.layer.expanded;
delete _8.layer.exclusive;
delete _8.layer.visible;
delete _8.layer.parentExclusive;
}
}
function buildSelectionLayers(_9){
if(_9.length>1){
var _a=$("active_layer_field");
var _b=-1;
_9.sortBy(function(_c){
return _c.label;
}).each(function(_d,_e){
Logger.debug("Adding selection layer: "+_d.label);
_a.appendChild(Builder.node("option",{value:_d.label},[_d.label]));
if(_d.name==selectionManager.getActiveLayer().name){
_b=_e;
}
});
if(_b<0){
selectionManager.setActiveLayer(_9[0]);
}
if(_a.options.length>0){
_a.selectedIndex=_b;
}
$("active_layer_form").style.display="inline";
resizeLayers();
}else{
if(_9.length==1){
selectionManager.setActiveLayer(_9[0]);
}
}
}
function buildSearchQueries(_f){
var _10="search-query";
removeChildrenFromNode($("search-input"));
DWRUtil.removeAllOptions(_10);
var _11=null;
DWRUtil.addOptions(_10,_f.sortBy(function(_12){
if(_12.defaultQuery){
_11=_12.label;
}
return _12.label;
}).collect(function(_13){
return _13.label;
}));
if(_11!=null){
DWRUtil.setValue(_10,_11);
}
return DWRUtil.getValue(_10);
}
function setCompanyLogo(url,alt,_16){
var _17=$("company_logo");
_17.src=url;
if(alt!=null){
_17.alt=alt;
}else{
_17.alt="";
}
_17.onclick=function(){
if(_16!=null){
window.open(_16);
}
};
}
function setLanguage(_18){
for(prop in _18){
if($(prop)){
$(prop).innerHTML=_18[prop];
}
}
}
function buildTab(obj,_1a){
for(var i=0;i<obj.buttons.length;i++){
if((obj.buttons[i].buttonName.indexOf("CustomReport")>-1)){
var a=obj.buttons[i].tooltip.split("!~!");
obj.buttons[i].tooltip=a[0];
buttonManager.setReportName(obj.buttons[i].buttonName,a[1]);
}
var _1d=$(_1a).appendChild(Builder.node("a",{href:"#",className:"button",id:obj.buttons[i].buttonName},[Builder.node("img",{className:obj.buttons[i].buttonName+"_img",src:obj.buttons[i].iconPath,alt:obj.buttons[i].tooltip,title:obj.buttons[i].tooltip,style:"width: 20px; height: 20px; border: 0 none;"})]));
_1d.button=obj.buttons[i];
Event.observe(_1d,"click",buttonPress,true);
}
}
function buildFavouritesManager(_1e){
for(var i=0;i<buildFavouritesManager.arguments.length;i++){
Logger.debug("Adding buttons from tab : "+buildFavouritesManager.arguments[i].tabName);
for(var j=0;j<buildFavouritesManager.arguments[i].buttons.length;j++){
if(_1e.buttons.indexOf(buildFavouritesManager.arguments[i].buttons[j])==-1){
var _21=$(buildFavouritesManager.arguments[i].tabName+"_FAVS").appendChild(Builder.node("a",{href:"#",className:"button",id:buildFavouritesManager.arguments[i].buttons[j].buttonName},[Builder.node("img",{className:buildFavouritesManager.arguments[i].buttons[j].buttonName+"_img",src:buildFavouritesManager.arguments[i].buttons[j].iconPath,alt:buildFavouritesManager.arguments[i].buttons[j].tooltip,title:buildFavouritesManager.arguments[i].buttons[j].tooltip})]));
_21.button=buildFavouritesManager.arguments[i].buttons[j];
}
}
}
Logger.debug("Finished building favourites manager");
}
var serviceInfo=null;
function guiLoadedListener(){
setMapDimensions();
loaderDisplay();
}
function setMapDimensions(){
var map=Maps["map"];
var _23=$("sidebar");
iWidth=document.body.clientWidth-_23.getWidth()-2;
iHeight=document.body.clientHeight-116;
map.resize(iWidth,iHeight);
}
function setStartTab(tab){
try{
var _25=document.getElementById(tab+"Tab");
if((isNav)||(isOpera)){
var evt=document.createEvent("MouseEvents");
evt.initMouseEvent("click",true,true,window,0,0,0,0,0,false,false,false,false,0,null);
var _27=_25.dispatchEvent(evt);
if(!_27){
Logger.error("Could not fire the "+tab+" tabs click event (for non IE browser)");
}
}else{
var _27=_25.fireEvent("onclick");
if(!_27){
Logger.error("Could not fire the "+tab+" tabs click event (for IE)");
}
}
}
catch(e){
Logger.error("Could not find the "+tab+" tab to set as the start up tab");
}
}
var _gProjectorEllipsoidA=-2;
var _gProjectorEllipsoidB=-2;
var _gProjectorEllipsoidI=-2;
var _gProjectorScaleFactor=-2;
var _gProjectorZone=-2;
function serviceInfoLoaded(_28,_29){
var _2a=_29[0];
Logger.debug("serviceInfoLoaded Called");
serviceInfo=new ServiceInfo(_2a);
createButtons();
Logger.debug("Building Layers");
setStatus("Building Layers");
buildLayers2(_2a.toc);
Logger.debug("Finished building Layers");
Logger.debug("Building the tabs");
setStatus("Building the tabs");
Logger.debug("Building tab "+TABS_COMMON);
setStatus("Building tab "+TABS_COMMON);
buildTab(serviceInfo.getTab(TABS_COMMON),"button_holder");
Logger.debug("Building tab "+TABS_ZOOM);
setStatus("Building tab "+TABS_ZOOM);
buildTab(serviceInfo.getTab(TABS_ZOOM),"zoom_buttons");
Logger.debug("Building tab "+TABS_SELECTIONS);
setStatus("Building tab "+TABS_SELECTIONS);
buildTab(serviceInfo.getTab(TABS_SELECTIONS),"selection_buttons");
Logger.debug("Building tab "+TABS_TOOLS);
setStatus("Building tab "+TABS_TOOLS);
buildTab(serviceInfo.getTab(TABS_TOOLS),"tools_buttons");
var _2b=serviceInfo.data.properties["eview.html.tab.favourites.show"];
var _2c=serviceInfo.data.properties["eview.html.start.tab.main"];
if(_2b.toLowerCase()=="true"){
Logger.debug("Building tab "+TABS_FAVOURITES);
setStatus("Building tab "+TABS_FAVOURITES);
buildTab(serviceInfo.getTab(TABS_FAVOURITES),"favorites_buttons");
Logger.debug("Building favourites tab");
setStatus("Building favourites tab");
buildFavouritesManager(serviceInfo.getTab(TABS_FAVOURITES),serviceInfo.getTab(TABS_ZOOM),serviceInfo.getTab(TABS_SELECTIONS),serviceInfo.getTab(TABS_TOOLS));
}else{
$("manage_button").parentNode.removeChild($("manage_button"));
$("favorites_buttons").parentNode.removeChild($("favorites_buttons"));
$("tabs.favourites.anchor").parentNode.removeChild($("tabs.favourites.anchor"));
if(_2c=="favourites"){
_2c="none";
}
}
switch(_2c){
case "favourites":
_2c="tabs.favourites.anchor";
break;
case "zoom":
_2c="tabs.zoom.anchor";
break;
case "selection":
_2c="selection";
break;
case "tools":
_2c="tabs.tools.anchor";
break;
default:
_2c="none";
}
if(_2c!="none"){
try{
if((isNav)||(isOpera)){
var evt=document.createEvent("MouseEvents");
evt.initMouseEvent("mousedown",true,true,window,0,0,0,0,0,false,false,false,false,0,null);
var _2e=$(_2c).dispatchEvent(evt);
if(!_2e){
Logger.error("Could not fire the "+_2c+" tabs click event (for non IE browser)");
}
}else{
var _2e=$(_2c).fireEvent("onmousedown");
if(!_2e){
Logger.error("Could not fire the "+_2c+" tabs click event (for IE)");
}
}
}
catch(e){
Logger.error("Could not fire the click event");
}
}
serviceInfo.getSelectionLayers().each(function(_2f,_30){
if(_2f.defaultLayer){
selectionManager.setActiveLayer(_2f);
}
});
if(selectionManager.getActiveLayer()==null){
selectionManager.setActiveLayer(serviceInfo.getSelectionLayers()[0]);
}
if(httpParams["query"]!=null){
var _31=serviceInfo.getQueryByName(httpParams["query"]);
if(_31!=null){
selectionManager.setActiveLayer(serviceInfo.getLayer(_31.layer));
var _32=new Object();
_32.requestName="selectbyattributes";
_32.queryname=httpParams["query"];
_32.properties=httpParams;
_32.operator=NEW_OPERATOR;
_32.calculateextent=true;
mapProperties.checkScale=true;
var _33=selectionManager.updateSelections.bind(selectionManager);
EView.sendRequest(_32,_33);
}else{
setMessageArea("error","Error","The query "+httpParams["query"]+" is not avaliable for the current user");
}
}else{
mapProperties.selectionLayer=selectionManager.getActiveLayer().name;
callMapRefresh();
}
Logger.debug("Building Selection layer list");
setStatus("Building Selection layer list");
buildSelectionLayers(serviceInfo.getSelectionLayers());
Logger.debug("Intializing the selections");
setStatus("Intializing the selections");
selectionManager.updateSelections(_2a);
selectionManager.selectionSizeEvent.subscribe(buttonManager.selectionSizeListener,buttonManager,true);
selectionManager.activeLayerEvent.subscribe(buttonManager.selectionChangedListener,buttonManager,true);
buttonManager.selectionChangedListener();
Logger.debug("Building the initial search query for the default layer");
setStatus("Building the initial search query for the default layer");
var _34=buildSearchQueries(serviceInfo.getQueriesForLayer(selectionManager.getActiveLayer().name));
if(_34!=null){
searchValueChanged(null,[_34]);
}
if(serviceInfo.data.companyLogoUrl!=null){
setCompanyLogo(serviceInfo.data.companyLogoUrl,serviceInfo.data.properties["eview.html.companylogourl.alt"],serviceInfo.data.properties["eview.html.companylogourl.website"]);
}else{
setCompanyLogo("images/client_logo.gif");
}
Logger.debug("Setting the default button to zoom in");
setStatus("Setting the default button to zoom in");
buttonManager.eviewButtonPressed(null,[{buttonName:"Zoomin"}]);
Logger.debug("Setting the information for the about eview dialog");
setStatus("Setting the information for the about eview dialog");
setAboutEview("Client: "+eview.version,"Server: "+_2a.eviewVesrion,getLang("gui.about.title"),"<br/>See <a href=\"http://www.esriaustralia.com.au/eview\" target=\"_blank\">ESRI Australia</a> website for more information");
setStatus("Finshed Loading EView HTML Client version: "+eview.version);
selectionManager.selectionsChanged.subscribe(updateGuiStateAfterSelection);
selectionManager.selectionSizeEvent.subscribe(updateSelectionInfo);
searchQueryListener=new YAHOO.util.KeyListener($("search_palette"),{keys:[YAHOO.util.Key.DOM_VK_ENTER]},handler);
var _35=serviceInfo.data.properties["eview.html.start.tab"];
Logger.debug("Setting the start up tab to "+_35);
setStatus("Setting the start up tab to "+_35);
if(_35!="toc"){
setStartTab(_35);
}
_gProjectorEllipsoidA=parseFloat(serviceInfo.data.properties["projector.ellipsoid.a"]);
_gProjectorEllipsoidB=parseFloat(serviceInfo.data.properties["projector.ellipsoid.b"]);
_gProjectorScaleFactor=parseFloat(serviceInfo.data.properties["projector.scale.factor"]);
_gProjectorEllipsoidI=parseFloat(serviceInfo.data.properties["projector.ellipsoid.invf"]);
_gProjectorZone=parseInt(serviceInfo.data.properties["projector.default.zone"]);
var _36=serviceInfo.data.properties["eview.html.start.units.display"];
if(displayCoordUnits=="none"){
displayCoordUnits=_36;
try{
$("projectionoption"+displayCoordUnits).selected=true;
if(displayCoordUnits=="meters"){
$("positionZone").innerHTML=_gProjectorZone;
$("zoneDisplay").style.display="block";
}
}
catch(e){
displayCoordUnits="meters";
}
}
}
function guiLoaded(){
guiLoadedEvent.fire();
}
function loaderDisplay(){
DWREngine.setPreHook(function(){
Logger.debug("Showing loading image");
});
DWREngine.setPostHook(function(){
Logger.debug("Hiding loading image");
});
}
function callMapResize(){
guiDirtyEvent.fire();
}
function callMapRefresh(){
guiDirtyEvent.fire();
}
function mapRefreshListener(_37,_38){
Logger.debug("Setting the map details after refresh");
var _39=_38[0];
var _3a=_39.mapUrl;
Logger.debug("MapUrl: "+_39.mapUrl);
setScaleBar(_39.scalebarUrl);
setLegendImage(_39.legendUrl);
var map=Maps["map"];
map.divObject.innerHTML="";
map.divObject.style.top="0px";
map.divObject.style.left="0px";
map.updateMapImage(_3a);
map.imageLeft=0;
map.imageTop=0;
var _3c=document.createElement("img");
_3c.id=map.imageId;
_3c.src=map.getMapImage();
map.divObject.appendChild(_3c);
window.status="Done";
}
function selectionLayerChanged(_3d,_3e){
var _3f=_3e[0];
var _40=false;
var _41=selectionManager.getActiveLayer();
if(selectionManager.getActiveLayer().selectable&&selectionManager.getActiveLayer().selection.size>0){
_40=true;
}
_41=serviceInfo.getLayerByLabel(_3f);
var _42="";
if(_41.selectable){
if(!_40&&_41.selection.size>0){
_40=true;
}
setSelectedItemsCount(_41.selection.size);
mapProperties.selectionLayer=_41.name;
var _43=serviceInfo.getQueriesForLayer(_41.name);
_42=buildSearchQueries(_43);
}
selectionManager.setActiveLayer(_41);
if(_42.length>0){
searchValueChanged(null,[_42]);
if($("queryTab").className=="selected"){
$("search_palette").style.display="block";
$("search_submit").style.display="block";
}
}else{
$("search_palette").style.display="none";
$("search_submit").style.display="none";
}
if(_40){
callMapRefresh();
}
}
var valid=null;
function searchValueChanged(_44,_45){
var _46=_45[0];
if(_46.length==0){
return;
}
var _47=serviceInfo.getQuery(selectionManager.getActiveLayer().name,_46);
if(_47==null){
Logger.error("Could not find Query: "+_46);
setMessageArea("error","Error","Could not find Query: "+_46);
return;
}
var _48=_47.parameters;
removeChildrenFromNode($("search-input"));
_48.each(function(_49){
$("search-input").appendChild(Builder.node("label",{},[_49.label]));
var _4a=null;
if(_49.type=="string"){
_4a=$("search-input").appendChild(Builder.node("input",{id:_49.name,type:"text",autocomplete:"off",value:_49.value},[]));
}else{
if(_49.type=="list"){
var _4b=_49.defaultvalue!=null?_49.defaultvalue:_49.value;
if(_49.useAutocomplete){
_4a=$("search-input").appendChild(Builder.node("input",{id:_49.name,type:"text",autocomplete:"off",value:_4b},[]));
_4a.listName=_49.list;
$("bodyElement").appendChild(Builder.node("div",{id:_49.name+"_div",className:"page_name_auto_complete",style:"display: none; zindex: 9999;"}));
new Autocompleter.DWR(_49.name,_49.name+"_div",populateAutocomplete,{});
}else{
_4a=$("search-input").appendChild(Builder.node("select",{id:_49.name,style:"margin-left: 5px;"},[]));
listManager.populateList(_49.list,_4b,_49.name);
}
}else{
if(_49.type=="numeric"){
_4a=$("search-input").appendChild(Builder.node("input",{id:_49.name,type:"text",autocomplete:"off",value:_49.value,className:"validate-number"},[]));
}else{
if(_49.type=="date"){
_4a=$("search-input").appendChild(Builder.node("input",{id:_49.name,type:"text",autocomplete:"off",value:_49.value},[]));
Calendar.setup({inputField:_49.name,ifFormat:"%d/%m/%Y",showsTime:false,timeFormat:"24"});
}else{
alert("Unknown parameter type");
}
}
}
}
if(_49.required){
_4a.className="required";
}
_4a.param=_49;
valid=new Validation("search_container");
});
}
function populateAutocomplete(_4c,_4d){
var _4e=new Object();
_4e.requestName="autocomplete";
_4e.list=_4c.element.listName;
_4e.token=_4d;
EView.sendRequest(_4e,function(_4f){
_4c.setChoices(_4f.list);
});
}
function removeChildrenFromNode(_50){
var _51=_50.childNodes.length;
while(_50.hasChildNodes()){
_50.removeChild(_50.firstChild);
}
return _51;
}
function scaleChanged(_52,_53){
mapProperties.scale=_53[0];
callMapRefresh();
}
guiLoadedEvent.subscribe(guiLoadedListener);
serviceInfoEvent.subscribe(serviceInfoLoaded);
mapRefeshedEvent.subscribe(mapRefreshListener);
selectionLayerEvent.subscribe(selectionLayerChanged);
searchValueEvent.subscribe(searchValueChanged);
scaleEvent.subscribe(scaleChanged);


