/*

  OpenLayers.js -- OpenLayers Map Viewer Library

  Copyright 2005-2008 MetaCarta, Inc., released under the Clear BSD license.
  Please see http://svn.openlayers.org/trunk/openlayers/license.txt
  for the full text of the license.

  Includes compressed code under the following licenses:

  (For uncompressed versions of the code used please see the
  OpenLayers SVN repository: <http://openlayers.org/>)

*/

/* Contains portions of Prototype.js:
 *
 * Prototype JavaScript framework, version 1.4.0
 *  (c) 2005 Sam Stephenson <sam@conio.net>
 *
 *  Prototype is freely distributable under the terms of an MIT-style license.
 *  For details, see the Prototype web site: http://prototype.conio.net/
 *
 *--------------------------------------------------------------------------*/

/**  
*  
*  Contains portions of Rico <http://openrico.org/>
* 
*  Copyright 2005 Sabre Airline Solutions  
*  
*  Licensed under the Apache License, Version 2.0 (the "License"); you
*  may not use this file except in compliance with the License. You
*  may obtain a copy of the License at
*  
*         http://www.apache.org/licenses/LICENSE-2.0  
*  
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
*  implied. See the License for the specific language governing
*  permissions and limitations under the License. 
*
**/

/**
 * Contains XMLHttpRequest.js <http://code.google.com/p/xmlhttprequest/>
 * Copyright 2007 Sergey Ilinsky (http://www.ilinsky.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 */

/**
 * Contains portions of Gears <http://code.google.com/apis/gears/>
 *
 * Copyright 2007, Google Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *  1. Redistributions of source code must retain the above copyright notice,
 *     this list of conditions and the following disclaimer.
 *  2. Redistributions in binary form must reproduce the above copyright notice,
 *     this list of conditions and the following disclaimer in the documentation
 *     and/or other materials provided with the distribution.
 *  3. Neither the name of Google Inc. nor the names of its contributors may be
 *     used to endorse or promote products derived from this software without
 *     specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * Sets up google.gears.*, which is *the only* supported way to access Gears.
 *
 * Circumvent this file at your own risk!
 *
 * In the future, Gears may automatically define google.gears.* without this
 * file. Gears may use these objects to transparently fix bugs and compatibility
 * issues. Applications that use the code below will continue to work seamlessly
 * when that happens.
 */
if(window.g_lyrManagers==null)
{var g_lyrManagers=new Array();}
var m_lyrMgrTree='_tLyrMgr';var m_layerMgrTree='lmTree';function LayerManager(id,mapId,mapControlId,guid)
{var m_map;this.Id=id;this.MapId=mapId;this.MapControlId=mapControlId;this.GUID=guid;this.DisableRedraw=false;this.ActiveLyrId=null;this.GetMap=function()
{if(m_map==null)
{m_map=GetMapCtrl(this.MapControlId);}
return m_map;}
this.DestroyMap=function()
{if(m_map&&m_map.events)
{m_map.events.unregister(m_map.MAPEVENT_TYPES.ZOOMEND,this.Refresh,this);}
m_map=null;}
this.ApplyLyrMgr=function()
{if(!sessionExpired)
{var tree=_FindTree(this.Id);if(tree!=null)
{var state=_GetTreeState(tree);_OnPointWebControls.Map.LayerManagerAjaxWrapper.ApplyLayerManager(escape(state),this.HandleApplyLyrMgr,this);}}
else
HandleSessionExpired();}
this.HandleApplyLyrMgr=function(resp)
{if(resp.value)
{resp.context.DisableRedraw=true;var r=resp.context.GetMap().RefreshMap();}}
this.GetTree=function()
{return _FindTree(this.Id);}
this.SetActiveLayer=function()
{try
{var tree=this.GetTree();if(tree&&tree.GetLastCtxNode()!=null)
{var lyrId=tree.GetLastCtxNode().Id;this.ActiveLyrId=lyrId;lyrId=lyrId.substr(lyrId.indexOf(":")+1);_OnPointWebControls.Map.LayerManagerAjaxWrapper.SetActiveLayer(lyrId,this.HandleSetActiveLayer,this);}}
catch(e){alert('ExceptionHandler::SetActiveLayer'+e.message);}}
this.SetActiveLayerById=function(lyrId)
{try
{this.ActiveLyrId=lyrId;lyrId=lyrId.substr(lyrId.indexOf(":")+1);_OnPointWebControls.Map.LayerManagerAjaxWrapper.SetActiveLayer(lyrId,this.HandleSetActiveLayer,this);}
catch(e){alert('ExceptionHandler::SetActiveLayerById'+e.message);}}
this.HandleSetActiveLayer=function(resp)
{if(resp.value)
{var tree=resp.context.GetTree();if(tree!=null)
tree.SetActiveNode(resp.context.ActiveLyrId,tree.GetStyles().Active);LayerManagerActiveLayerDropDown.UpdateActiveLayer(resp.context.ActiveLyrId);}}
this.Refresh=function()
{var lyrStyles=_GetLyrMgrStyles();_OnPointWebControls.Map.LayerManagerAjaxWrapper.RefreshLayerManager(lyrStyles.Regular,lyrStyles.Active,lyrStyles.Greyed,lyrStyles.Group,lyrStyles.RootLevel,this.HandleRefresh,this);}
this.HandleRefresh=function(resp)
{if(resp.value)
{var xmlStr=resp.value;try
{if(isIE)
{objXmlDoc=new ActiveXObject("Msxml2.DOMDocument");objXmlDoc.loadXML(xmlStr);}
else
{objXmlDoc=new DOMParser().parseFromString(xmlStr,"text/xml");}
var errorNodes=objXmlDoc.getElementsByTagName("ERROR");if(errorNodes!=null&&errorNodes.length>0)
{var message=getAttributeValue(errorNodes[0],"message");if(message!=null&&message.length>0)
{alert(message);}}
else
{if(!resp.context.DisableRedraw)
{resp.context.Redraw(objXmlDoc);var tree=resp.context.GetTree();LayerManagerActiveLayerDropDown.UpdateActiveLayerCombo(tree);}
resp.context.DisableRedraw=false;}}
catch(ex)
{alert('HandleRefresh of layermgr - exception:'+ex.message);}}
else
{}}
this.Redraw=function(xmlDoc)
{if(xmlDoc)
{var nodeList=xmlDoc.getElementsByTagName("LyrMgr");if(nodeList!=null&&nodeList.length>0)
{var tree=this.GetTree();var expNodes=null;if(tree!=null)
{expNodes=tree.GetExpandedNodes();}
var xmlText=null;if(m_ie5)
xmlText=nodeList[0].text;else
xmlText=nodeList[0].textContent;xmlText=xmlText.replace(/&([^alg]|a[^m]|am[^p]|l[^t]|g[^t])/g,function(str){return"&amp;"+str.substr(1);});xmlText=xmlText.replace(/</g,'&lt;');xmlText=xmlText.replace(/>/g,'&gt;');_loadTree(xmlText,this.Id);tree=this.GetTree();if(tree!=null)
{tree.RegisterDragDrop(HandleDragDrop);tree.RegisterSelect(HandleSelect)
tree.RegisterRadioSelect(HandleRadioSelect);if(expNodes!=null)
{for(var i=0;i<expNodes.length;i++)
{tree.ExpandNode(expNodes[i]);var node=tree.FindNode(expNodes[i]);if(node)
node.Expanded=true;}}
UpdateTreeSymbols();}}}}
this.RegisterWithMap=function()
{if(this.GetMap())
{m_map.AddEventCallback(m_map.MAPEVENT_TYPES.ZOOMEND,this.Refresh,this);}}
this._SetLMUrl=function()
{if(this.GUID)
{var url=_OnPointWebControls.Map.LayerManagerAjaxWrapper.url;if(url.indexOf("?")==-1)
{_OnPointWebControls.Map.LayerManagerAjaxWrapper.url=_OnPointWebControls.Map.LayerManagerAjaxWrapper.url+"?GUID="+this.GUID;}}}
this.RegisterWithMap();this._SetLMUrl();}
function btnApplyLyrMgr(lid)
{var lm=_GetLM(lid);if(lm)
lm.ApplyLyrMgr();}
var m_lyrNodeStyle="";var m_activeNodeStyle="ActiveLayer";var m_greyedNodeStyle="GreyedLayer";var m_groupNodeStyle="GroupedLayer";var m_mapNodeStyle="MapNode";var m_mapSourceId="";function _GetLM(id)
{var lm=null;if(g_lyrManagers)
{for(var i=0;i<g_lyrManagers.length;i++)
{if(g_lyrManagers[i].Id==id)
{lm=g_lyrManagers[i];break;}}}
return lm;}
function _RedrawLMTree(tree)
{var expNodes=tree.GetExpandedNodes();var container=document.getElementById(tree.ContainerId);if(container)
{container.innerHTML=tree.GetHtml();tree.SetInitialExpand();for(var i=0;i<expNodes.length;i++)
{tree.ExpandNode(expNodes[i]);}
var ae=tree.GetActiveElement();if(ae!=null)
tree.SetActiveNode(ae.id,tree.GetStyles().Active);}}
function _GetTreeState(tree)
{var sb=new Array();sb.push("<T v=\""+(tree.GetNodesMovedStatus()?"1":"0")+"\">");var nodes=tree.GetNodes();for(var i=0;i<nodes.length;i++)
SetNodeState(nodes[i],sb);sb.push("</T>");tree.ResetNodesMovedStatus();return sb.join('');}
function SetNodeState(node,stateArray)
{var close=true;if(node.NodeType!="LG")
{stateArray.push("<"+node.NodeType+" v=\"");stateArray.push(node.Id+"^"+(node.IsChecked()?"1":"0")+"^"+(node.IsExpanded()?"1\" >":"0\" >"));}
else
close=false;var children=node.Children;if(children!=null)
{for(var i=0;i<children.length;i++)
SetNodeState(children[i],stateArray);}
if(close)
stateArray.push("</"+node.NodeType+">");}
function ZoomToLayer(id)
{_InvokeMethod(id,'_OnPointWebControls.Map.LayerManagerAjaxWrapper.ZoomToLayer(mapId,lyrId,styles.Regular,styles.Active,styles.Greyed,styles.Group,styles.RootLevel,HandleServerResponse);',0);}
function ZoomToLyrScale(id)
{_InvokeMethod(id,'_OnPointWebControls.Map.LayerManagerAjaxWrapper.ZoomToLayerScale(mapId,lyrId,styles.Regular,styles.Active,styles.Greyed,styles.Group,styles.RootLevel,HandleServerResponse);',1);}
function _InvokeMethod(lmid,method,methodType)
{if(!sessionExpired)
{var lm=_GetLM(lmid);var tree=lm.GetTree();var lyrId=lm.ActiveLyrId;if(tree&&tree.GetLastCtxNode()!=null)
{lyrId=tree.GetLastCtxNode().Id;}
if(tree&&lyrId!=null)
{var styles=tree.GetStyles();var idx=lyrId.indexOf(":");var mapIdx=lyrId.substr(0,idx);var mapId=tree.GetNode(mapIdx).Id;lyrId=lyrId.substr(idx+1);eval(method);}}
else
HandleSessionExpired();}
function SetActiveLayer(lmid)
{if(!sessionExpired)
{var lm=_GetLM(lmid);if(lm)
lm.SetActiveLayer();}
else
HandleSessionExpired();}
function SetActiveLayerById(lmid,layerId){if(!sessionExpired){var lm=_GetLM(lmid);if(lm)
lm.SetActiveLayerById(layerId);}
else
HandleSessionExpired();}
function ExpandLegends(id)
{var tree=_GetLM(id).GetTree();if(tree)
{var node=tree.GetLastCtxNode();if(node)
node.ExpandAll();}}
function ExpandAllLegends(id)
{var tree=_GetLM(id).GetTree();if(tree)
{tree.ExpandAll();}}
function CollapseLegends(id)
{var tree=_GetLM(id).GetTree();if(tree!=null&&tree.GetLastCtxNode()!=null)
_CollapseIfLegend(tree.GetLastCtxNode());}
function CollapseAllLegends(id)
{var tree=_GetLM(id).GetTree();if(tree!=null)
{var nodes=tree.GetNodes();for(var i=0;i<nodes.length;i++)
{_CollapseIfLegend(nodes[i]);}}}
function _CollapseIfLegend(node)
{var childCount=node.GetChildCount();if(childCount==1&&node.GetChild(0).NodeType=="LG")
node.Collapse();else if(childCount>0)
{for(var i=0;i<childCount;i++)
_CollapseIfLegend(node.GetChild(i));}}
function CheckAllLayers(id,checked)
{var tree=_GetLM(id).GetTree();if(tree!=null&&tree.GetLastCtxNode()!=null)
tree.GetLastCtxNode().CheckNode(checked,true);btnApplyLyrMgr(id);}
function CheckAllAllLayers(id,checked)
{var tree=_GetLM(id).GetTree();if(tree!=null)
{var nodes=tree.GetNodes();for(var i=0;i<nodes.length;i++)
{nodes[i].CheckNode(checked,true);}}
btnApplyLyrMgr(id);}
function _MoveCtxMenus()
{window._moveCtxMenu='_MoveCtxMenus2()';}
function _MoveCtxMenus2()
{var node=document.getElementById('cmLayer');if(node!=null)
document.body.appendChild(node);node=document.getElementById('cmLayerThemeMore');if(node!=null)
document.body.appendChild(node);node=document.getElementById('cmLayerMore');if(node!=null)
document.body.appendChild(node);node=document.getElementById('cmLayerTheme');if(node!=null)
document.body.appendChild(node);node=document.getElementById('cmMap');if(node!=null)
document.body.appendChild(node);node=document.getElementById('cmLayerThematicSelections');if(node!=null)
document.body.appendChild(node);}
function don(){return;}
function UpdateMapPanel(resp)
{__doPostBack(_Target,'Map');}
function ResetRedrawFlag(resp)
{resp.context.DisableRedraw=false;}
function InitializeLyrMgr(lyrMgrTree,mapSourceId,mapControlId,guid)
{var lm=_GetLM(lyrMgrTree);if(lm)
{lm.MapId=mapSourceId;lm.MapControlId=mapControlId;lm.DestroyMap();lm.RegisterWithMap();lm.Refresh();}
else
{var tree=_FindTree(lyrMgrTree);tree.RegisterDragDrop(HandleDragDrop);tree.RegisterSelect(HandleSelect)
tree.RegisterRadioSelect(HandleRadioSelect);var styles=tree.GetStyles();m_lyrNodeStyle=styles.Regular;m_activeNodeStyle=styles.Active;m_greyedNodeStyle=styles.Greyed;m_groupNodeStyle=styles.Group;m_mapNodeStyle=styles.RootLevel;var count=0;for(var i=0;i<tree.GetNodeCount();i++)
{count+=tree.GetNode(i).GetChildCount();}
if(count==0)
{}
if(mapSourceId!=null)
m_mapSourceId=mapSourceId;lm=new LayerManager(lyrMgrTree,mapSourceId,mapControlId,guid);for(var i=0;i<g_lyrManagers.length;i++)
{if(g_lyrManagers[i].Id==lm.Id)
{g_lyrManagers.splice(i,1);break;}}
g_lyrManagers.push(lm);}
if(window._LayerManager){var lyrElem=document.getElementById(_LayerManager);if(lyrElem==null){return;}
else{if(lyrElem.style.display=="none"){return;}}}
LoadLMMenuItems();}
var g_menuLoaded=false;function LoadLMMenuItems(){if(!g_menuLoaded){try{LoadThemeMenus();}
catch(e){alert('ExceptionHandler::LoadThemeMenus'+e.message);}
try{LoadDynamicMenus();}
catch(e){alert('ExceptionHandler::LoadDynamicMenus'+e.message);}
g_menuLoaded=true;}}
function VerifyLyrMgr(lmid,mapSourceId)
{}
function HandleLyrMgrUpdate(updateScript)
{try
{eval(updateScript.value);}
catch(e){}}
function HandleDragDrop(tree,draggedNode,droppedNode)
{if(draggedNode!=null&&droppedNode!=null&&draggedNode.Id!=droppedNode.Id)
{var draggedId=draggedNode.Id;var droppedId=droppedNode.Id;var m1=draggedId.substring(0,draggedId.indexOf(":"));var m2=droppedId.substring(0,droppedId.indexOf(":"));if(m1==m2)
{if(draggedNode.NodeType=="G")
{var parentNode=tree.GetParentNode(droppedNode.Id);if(parentNode!=null&&parentNode.NodeType=="G")
return;}
else if(draggedNode.NodeType=="TH")
{var draggedNodeLayerId=getLayerId(draggedId);var droppedNodeLayerId=getLayerId(droppedId);if(draggedNodeLayerId==null||droppedNodeLayerId==null||draggedNodeLayerId!=droppedNodeLayerId)
return;if(droppedNode.NodeType=="L")
return;}
tree.UpdateChecked();if(tree.MoveNode(draggedId,droppedId))
{_RedrawLMTree(tree);}}}}
function HandleSelect(tree,selectedNode)
{if(selectedNode.NodeType=="J")
{var lm=_GetLM(tree.Id);var map=lm.GetMap();var opt=selectedNode.GetSelectedRadioOption();var checked=selectedNode.IsChecked();if(map!=null)
{DisablePluginMapButtons(checked)
if(map.baseLayer.getVisibility()!=checked)
{if(opt==JsMapView.EARTH||opt==JsMapView.STREET)
{if(checked)
ToggleGESubMapTab(checked,opt);}
else
{lm.DisableRedraw=true;map.baseLayer.setVisibility(checked);_OnPointWebControls.Map.LayerManagerAjaxWrapper.UpdateJSMapState(lm.MapId,selectedNode.Id,checked,opt,ResetRedrawFlag,lm);}}}}}
function HandleRadioSelect(tree,selectedNode)
{if(selectedNode)
{var opt=selectedNode.GetSelectedRadioOption();var checked=selectedNode.IsChecked();if(opt==JsMapView.EARTH||opt==JsMapView.STREET)
{if(checked)
ToggleGESubMapTab(checked,opt);}
else
{var lm=_GetLM(tree.Id);_OnPointWebControls.Map.LayerManagerAjaxWrapper.UpdateJSMapState(lm.MapId,selectedNode.Id,checked,opt,UpdateMapPanel,lm);}}}
function getLayerId(nodeId)
{var layerId=null;if(nodeId!=null)
{var arrIds=nodeId.split(":");if(arrIds!=null&&arrIds.length>=2)
{layerId=arrIds[1];}}
return layerId;}
function RemoveThematicSelection(id)
{if(!sessionExpired)
{try
{var tree=_FindTree(id);if(tree!=null&&tree.GetLastCtxNode()!=null)
{var lyrId=tree.GetLastCtxNode().Id;var selectionId;var arr=lyrId.split(":");if(arr!=null&&arr.length==3)
{lyrId=arr[1];selectionId=arr[2];}
_OnPointWebControls.Map.LayerManagerAjaxWrapper.RemoveThematicSelection(lyrId,selectionId,HandleRemoveThematicSelection);}}
catch(e){alert('ExceptionHandler::RemoveThematicSelection'+e.message);}}
else
HandleSessionExpired();}
function HandleRemoveThematicSelection(success)
{if(success.value&&window.UpdatePanel)
{if(window.RefreshMap)
{RefreshMap();}}}
function GetContextLayerId()
{var tree=_GetFirstTree();var lyrId=null;if(tree!=null&&tree.GetLastCtxNode()!=null)
{lyrId=tree.GetLastCtxNode().Id;lyrId=lyrId.substr(lyrId.indexOf(":")+1);}
return lyrId;}
function ClearTheme()
{if(!sessionExpired)
{try
{var layerId=GetContextLayerId();if(layerId!=null)
{showLoading();_OnPointWebControls.Map.LayerManagerAjaxWrapper.ClearTheme(layerId,HandleClearTheme);}}
catch(e)
{alert('ExceptionHandler::ClearTheme '+e.message);hideLoading();}}
else
{HandleSessionExpired();}}
function HandleClearTheme(errorMessage)
{if(errorMessage.value==null)
{if(window.RefreshMap)
{RefreshMap();}}
else
{alert(errorMessage.value);hideLoading();}}
function ApplyTheme(themeId)
{if(!sessionExpired)
{try
{showLoading();_OnPointWebControls.Map.LayerManagerAjaxWrapper.ApplyTheme(themeId,HandleApplyTheme);}
catch(e)
{alert('ExceptionHandler::ApplyTheme '+e.message);hideLoading();}}
else
{HandleSessionExpired();}}
function HandleApplyTheme(errorMessage)
{if(errorMessage.value==null)
{if(window.RefreshMap)
{RefreshMap();}}
else
{alert(errorMessage.value);hideLoading();}}
function NewTheme()
{if(!sessionExpired)
{try
{var layerId=GetContextLayerId();if(layerId!=null)
{_OnPointWebControls.Map.LayerManagerAjaxWrapper.SetThematicMappingLayer(layerId,true,HandleNewTheme);}}
catch(e){alert('ExceptionHandler::NewTheme '+e.message);}}
else
{HandleSessionExpired();}}
function HandleNewTheme(errorMessage)
{if(errorMessage.value==null)
{window.HandleThemeFrame(NGServerUrl()+'/WebPages/ThematicMap/ThematicMapPage.aspx');}
else
{alert(errorMessage.value);}}
function ManageTheme()
{if(!sessionExpired)
{try
{var layerId=GetContextLayerId();if(layerId!=null)
{_OnPointWebControls.Map.LayerManagerAjaxWrapper.SetThematicMappingLayer(layerId,false,HandleManageTheme);}}
catch(e){alert('ExceptionHandler::ManageTheme '+e.message);}}
else
{HandleSessionExpired();}}
function HandleManageTheme(errorMessage)
{if(errorMessage.value==null)
{window.HandleManageThemeFrame(NGServerUrl()+'/WebPages/ThematicMap/ManageThemes.aspx');}
else
{alert(errorMessage.value);}}
function LoadThemeMenu(layerId)
{if(!sessionExpired)
{try
{_OnPointWebControls.Map.LayerManagerAjaxWrapper.GetThemeMenu(layerId,HandleLoadThemeMenu);}
catch(e){alert('ExceptionHandler::LoadThemeMenu '+e.message);}}
else
{HandleSessionExpired();}}
function LoadThemeMenus()
{if(!sessionExpired)
{try
{_OnPointWebControls.Map.LayerManagerAjaxWrapper.GetThemeMenus(HandleLoadThemeMenu);}
catch(e){alert('ExceptionHandler::LoadThemeMenus '+e.message);}}
else
{HandleSessionExpired();}}
function HandleLoadThemeMenu(themeMenuData)
{if(themeMenuData!=null)
{LoadMenu(themeMenuData.value);}}
function LoadDynamicMenus()
{if(!sessionExpired)
{try
{_OnPointWebControls.Map.LayerManagerAjaxWrapper.GetDynamicMenus(HandleLoadDynamicMenu);}
catch(e){alert('ExceptionHandler::LoadDynamicMenus '+e.message);}}
else
{HandleSessionExpired();}}
function HandleLoadDynamicMenu(dynamicMenuData)
{if(dynamicMenuData!=null)
{LoadMenu(dynamicMenuData.value);}}
function SetThematic(id){return;}
function SetMore(id){return;}
function GetThematicItems()
{childItemsData=1
return childItemsData;}
function FillThematicContainer(layerId,nodeText,tableClass,itemTableClass,linkClass,tableHoverClass,linkHoverClass,ctrlSuffix)
{var themeMenu=FindMenu(nodeText,layerId);var themeMenuHtml='';if(themeMenu!=null)
{themeMenuHtml=themeMenu.GetHtml(tableClass,itemTableClass,linkClass,tableHoverClass,linkHoverClass);}
document.getElementById('cmThematic'+ctrlSuffix).innerHTML=themeMenuHtml;}
function FillDynamicMenuContainer(layerId,nodeText,tableClass,itemTableClass,linkClass,tableHoverClass,linkHoverClass,ctrlSuffix)
{if(typeof nodeText=='undefined')
nodeText='More';var themeMenu=FindMenu(nodeText,layerId);var themeMenuHtml='';if(themeMenu!=null)
{themeMenuHtml=themeMenu.GetHtml(tableClass,itemTableClass,linkClass,tableHoverClass,linkHoverClass);}
document.getElementById('cmMore'+ctrlSuffix).innerHTML=themeMenuHtml;}
function ClearThematicContainer(ctrlSuffix)
{document.getElementById('cmThematic'+ctrlSuffix).innerHTML='';}
function ClearMoreOptionsContainer()
{if(typeof ctrlSuffix!="undefined")
document.getElementById('cmMore'+ctrlSuffix).innerHTML='';}
function CustomMenuHover(item)
{var node=Menu_HoverRoot(item);var data=Menu_GetData(item);if(!data)
return;__disappearAfter=data.disappearAfter;if(node.href=="javascript:SetThematic()"||node.href=="javascript:SetThematic('2')")
{var menuCreated=false;var ctrlSuffix="";if(node.href=="javascript:SetThematic('2')")
ctrlSuffix="2";try
{var layerId=GetContextLayerId();if(layerId!=null)
{var menuTable=Menu_FindParentContainer(item);var tableClass=menuTable.className;var previousNode=Menu_FindPrevious(item);var itemTable=previousNode.parentNode.parentNode.parentNode.parentNode;var itemTableClass=itemTable.className;var itemLink=Menu_FindNext(item);var linkClass=itemLink.className;var tableHoverClass=data.staticHoverClass;var linkHoverClass=data.staticHoverHyperLinkClass;FillThematicContainer(layerId,node.innerHTML,tableClass,itemTableClass,linkClass,tableHoverClass,linkHoverClass,ctrlSuffix);menuCreated=true;}}
catch(e){alert('ExceptionHandler::CustomMenuHover '+e.message);}
if(!menuCreated)
{ClearThematicContainer(ctrlSuffix);}}
else if(node.href=="javascript:SetMore()"||node.href=="javascript:SetMore('2')")
{var menuCreated=false;var ctrlSuffix="";if(node.href=="javascript:SetMore('2')")
ctrlSuffix="2";try
{var layerId=GetContextLayerId();if(layerId!=null)
{var menuTable=Menu_FindParentContainer(item);var tableClass=menuTable.className;var previousNode=Menu_FindPrevious(item);var itemTable=previousNode.parentNode.parentNode.parentNode.parentNode;var itemTableClass=itemTable.className;var itemLink=Menu_FindNext(item);var linkClass=itemLink.className;var tableHoverClass=data.staticHoverClass;var linkHoverClass=data.staticHoverHyperLinkClass;FillDynamicMenuContainer(layerId,node.innerHTML,tableClass,itemTableClass,linkClass,tableHoverClass,linkHoverClass,ctrlSuffix);menuCreated=true;}}
catch(e){alert('ExceptionHandler::CustomMenuHover '+e.message);}
if(!menuCreated)
{ClearMoreOptionsContainer(ctrlSuffix);}}
var horizontalOffset=data.horizontalOffset;try
{if(m_lastCtx.offsetLeft+(m_lastCtx.clientWidth*2)>GetBrowserWidth())
horizontalOffset=-1*m_lastCtx.clientWidth-75;}
catch(ex){}
Menu_Expand(node,horizontalOffset,data.verticalOffset);}
function _GetLyrMgrStyles()
{var lyrCSS="";try{lyrCSS=m_lyrNodeStyle;}catch(e){};var activeCSS="";try{activeCSS=m_activeNodeStyle;}catch(e){};var greyedCSS=""
try{greyedCSS=m_greyedNodeStyle;}catch(e){};var groupCSS="";try{groupCSS=m_groupNodeStyle;}catch(e){};var mapCss="";try{mapCss=m_mapNodeStyle;}catch(e){};return{Regular:lyrCSS,Active:activeCSS,Greyed:greyedCSS,Group:groupCSS,RootLevel:mapCss};}
function GetMapIDMTD()
{var tree=_FindTree(m_layerMgrTree);var mapId=null;if(tree!=null&&tree.GetLastCtxNode()!=null)
{mapId=tree.GetLastCtxNode().Id;mapId=mapId.substr(mapId.indexOf(":")+1);}
var url=NGServerUrl();var MypageURurl='/WebPages/MetaDataViewer/frmViewMetaData.aspx';var CompleteURL=url+MypageURurl;HandleMetadataToolFrame(CompleteURL+'?RESOURCE=MS'+mapId);return;}
function GetInstanceIDMTD()
{var instanceId=1;var url=NGServerUrl();var MypageURurl='/WebPages/MetaDataViewer/frmViewMetaData.aspx';var CompleteURL=url+MypageURurl;HandleMetadataToolFrame(CompleteURL+'?RESOURCE=IN'+instanceId);return;}
function GetLayerIDMTD()
{var tree=_FindTree(m_layerMgrTree);var lyrId=null;if(tree!=null&&tree.GetLastCtxNode()!=null)
{lyrId=tree.GetLastCtxNode().Id;lyrId=lyrId.substr(lyrId.indexOf(":")+1);}
var url=NGServerUrl();var MypageURurl='/WebPages/MetaDataViewer/frmViewMetaData.aspx';var CompleteURL=url+MypageURurl;HandleMetadataToolFrame(CompleteURL+'?RESOURCE=LY'+lyrId);return;}
function __alert(msg)
{}
function GetLayerIDATRTAB()
{var tree=_FindTree(m_layerMgrTree);var lyrId=null;if(tree!=null&&tree.GetLastCtxNode()!=null)
{lyrId=tree.GetLastCtxNode().Id;lyrId='Layers,'+lyrId.substr(lyrId.indexOf(":")+1);PageMethods.SetSearchResult(lyrId,tree.GetLastCtxNode().Text,true,Dopostback);}}
function Dopostback()
{try
{if((this.parent)&&(this.parent.frames)&&(this.parent.frames['fundySearchiFrame']))
{ShowLayer(_SearchLayer,null,null);var date_object=new Date();var url=NGServerUrl()+"/Webpages/Search/FundySearch.aspx?DISPLAYRESULTS=true&uniqueid="+date_object.getTime()
var iframeElem=document.getElementById(_SearchIframe);iframeElem.setAttribute('isLoaded','true');var eleWidth=null;var eleHeight=null;if(iframeElem.getAttribute('OriginalWidth')!=null&&typeof iframeElem.getAttribute('OriginalWidth')!='undefined')
eleWidth=iframeElem.getAttribute('OriginalWidth');else if(document.getElementById(_SearchLayer)!=null&&document.getElementById(_SearchLayer).getAttribute('OriginalWidth')!=null)
eleWidth=document.getElementById(_SearchLayer).getAttribute('OriginalWidth');if(iframeElem.getAttribute('OriginalHeight')!=null&&typeof iframeElem.getAttribute('OriginalHeight')!='undefined')
eleHeight=iframeElem.getAttribute('OriginalHeight');else if(document.getElementById(_SearchLayer)!=null&&document.getElementById(_SearchLayer).getAttribute('OriginalHeight')!=null)
eleHeight=document.getElementById(_SearchLayer).getAttribute('OriginalHeight');PopulateiFrame(_SearchIframe,url,eleWidth,eleHeight);var innerRowElem=document.getElementById("Inner_"+_SearchLayer);innerRowElem.style.display="none";ResetSearchWindow(false);}
else
{UpdatePanel('Search_Result');}}
catch(e)
{alert('ExceptionHandler::'+e);}}
function ApplyLyrMgrActionOnClick(treeId,nodeid)
{var tree=_FindTree(treeId);if(tree)
{var parentNode=tree.GetParentNode(nodeid);if(parentNode!=null&&parentNode.NodeType=="G")
{var parentNodeElement=document.getElementById("ck"+parentNode.Id);if(parentNodeElement)
{if(parentNodeElement.checked)
{ShowLoading();btnApplyLyrMgr(treeId);}}}
else
{ShowLoading();btnApplyLyrMgr(treeId);}}}
var LayerManagerActiveLayerDropDown={ToggleActiveLayersDropDown:function(event)
{var div=document.getElementById('divActiveLayers');if(div!=null)
{if(div.style.visibility=="visible")
{this.CloseActiveLayersDropDown();}
else
{div.style.visibility="visible";var td=document.getElementById('tdActiveLayer');if(td!=null)
{var location=YAHOO.util.Dom.getXY(td);var rect=td.getBoundingClientRect();var rectContainer=div.getBoundingClientRect();var containerWidth=rectContainer.right-rectContainer.left;var height=rect.bottom-rect.top;location[1]+=height;var viewingWidth=YAHOO.util.Dom.getViewportWidth();location[0]=Math.min(location[0],viewingWidth-containerWidth-5);YAHOO.util.Dom.setXY(div,location);if(window.htmlDir&&htmlDir=="RTL")
{var location=YAHOO.util.Dom.getXY(td);location[1]+=height;YAHOO.util.Dom.setXY(div,location);}}
if(window._actLayerDropDownId)
{var selElement=document.getElementById(_actLayerDropDownId);if(selElement!=null)
selElement.focus();}
OPAddEventListener(document,"click",this.CloseActiveLayersDropDown);if(event)
event.cancelBubble=true;}}
return false;},HideActiveLayersDropDown:function()
{var div=document.getElementById('divActiveLayers');if(div!=null)
div.style.visibility="hidden";},CloseActiveLayersDropDown:function()
{LayerManagerActiveLayerDropDown.HideActiveLayersDropDown();OPRemoveEventListener(document,"click",this.CloseActiveLayersDropDown);},ChangeActiveLayer:function(selElement,treeId)
{if(selElement!=null&&selElement.selectedIndex>=0)
{var layerId=selElement.options[selElement.selectedIndex].value;SetActiveLayerById(treeId,layerId);var labelElement=document.getElementById('tdActiveLayer');if(labelElement!=null)
labelElement.innerHTML=selElement.options[selElement.selectedIndex].text;var div=document.getElementById('divActiveLayers');if(div!=null)
div.style.visibility="hidden";}},UpdateActiveLayer:function(layerId)
{var selElement=null;if(window._actLayerDropDownId)
{selElement=document.getElementById(_actLayerDropDownId);if(selElement!=null)
{for(var i=0;i<selElement.options.length;i++)
{if(selElement.options[i].value==layerId)
{selElement.selectedIndex=i;var labelElement=document.getElementById('tdActiveLayer');if(labelElement!=null)
labelElement.innerHTML=selElement.options[selElement.selectedIndex].text;break;}}}}
selElement=document.getElementById("selActiveLayer");if(selElement!=null)
{for(var i=0;i<selElement.options.length;i++)
if(selElement.options[i].value==layerId)
selElement.selectedIndex=i;}},PopulateCombo:function(selElement,tree)
{var options=new Array();var nodes=tree.GetNodes();var activeElement=tree.GetActiveElement();for(var i=0;i<nodes.length;i++)
{if(nodes[i].NodeType=="M")
this.AddLayers(nodes[i].Children,options,activeElement);}
for(var i=selElement.options.length-1;i>=0;i--)
selElement.options[i]=null;options.sort(this.CompareOptions);for(var i=0;i<options.length;i++)
selElement.options[i]=options[i];},UpdateActiveLayerCombo:function(tree)
{var selElement=document.getElementById(_actLayerDropDownId);if(selElement!=null)
{this.PopulateCombo(selElement,tree);var containerDiv=document.getElementById('divActiveLayerContainer');containerDiv.style.display=selElement.options.length>0?"":"none";var activeElement=tree.GetActiveElement();if(activeElement!=null)
{this.UpdateActiveLayer(activeElement.id);}}
selElement=document.getElementById("selActiveLayer");if(selElement!=null&&selElement.style.visibility!='hidden')
{this.PopulateCombo(selElement,tree);}},AddLayers:function(nodes,options,activeElement)
{if(nodes!=null)
{for(var i=0;i<nodes.length;i++)
{if(nodes[i].NodeType=="L")
{var option=new Option(nodes[i].Text,nodes[i].Id);if(activeElement!=null&&nodes[i].Id==activeElement.id)
option.selected=true;options.push(option);}
else if(nodes[i].NodeType=="G")
{var children=nodes[i].Children;if(children!=null)
{for(var j=0;j<children.length;j++)
{if(children[j].NodeType=="L")
{var option=new Option(children[j].Text,children[j].Id);if(activeElement!=null&&children[j].Id==activeElement.id)
option.selected=true;options.push(option);}}}}}}},CompareOptions:function(optionA,optionB)
{if(optionA.text>optionB.text)
return 1;else if(optionA.text<optionB.text)
return-1;return 0;}}
function DisplayActiveLayerControl(tool,treeId)
{var selElement=document.getElementById("selActiveLayer");if(selElement!=null)
{var tree=_FindTree(treeId);if(tree!=null)
{LayerManagerActiveLayerDropDown.PopulateCombo(selElement,tree);ShowLayer(_boxActiveLayerDropDown);}}}
function GetBaseMapCheckedStateOnLayerManager()
{var tree=_FindTree(m_layerMgrTree);if(tree)
{for(var count=0;count<tree.GetNodeCount();count++)
{var node=tree.GetNode(count);if(node.NodeType=="J")
{return node.IsChecked();}}}
return true;}
function DisablePluginMapButtons(checkedState)
{if(document.getElementById("btnGoogleEarth"))document.getElementById("btnGoogleEarth").disabled=!(checkedState);if(document.getElementById("btnStreet"))document.getElementById("btnStreet").disabled=!(checkedState);var mapCtrl=GetMapCtrl(null);var btnBirdseye=document.getElementById("btnBirdseye");if(btnBirdseye!=null&&mapCtrl!=null)
{if(mapCtrl.baseLayer.mapObject.IsBirdseyeAvailable())
btnBirdseye.disabled=!(checkedState);else
btnBirdseye.disabled=true;}}
function UpdateMapHistory()
{if(!sessionExpired){try{_Onpoint.MapHistory.GetMapHistoryStatus(1,g_mapSourceSessionKey,null,HandleServerResponse);}
catch(e){}}
else{if(!g_sessionConfirmed){HandleSessionExpired();}
else{g_sessionConfirmed=false;}}}
function navigateMapHistory(direction)
{if(!sessionExpired)
{ShowLoading();if(!g_subjectAreaMapMode)
{var lyrStyles=_GetLyrMgrStyles();}
if(direction=='PREVIOUS_MAP')
{try
{_Onpoint.MapHistory.DisplayPreviousImages(1,g_mapSourceSessionKey,null,HandleServerResponse);}
catch(e)
{_Onpoint.MapHistory.DisplayPreviousImagesAdmin(1,g_mapSourceSessionKey,HandleServerResponse);}}
else if(direction=='NEXT_MAP')
{try
{_Onpoint.MapHistory.DisplayNextImages(1,g_mapSourceSessionKey,null,HandleServerResponse);}
catch(e)
{_Onpoint.MapHistory.DisplayNextImagesAdmin(1,g_mapSourceSessionKey,HandleServerResponse);}}}
else
{HandleSessionExpired();}}
