var MapBuilder_Release=true
var mbTimerStart=new Date();var config;if(typeof baseDir=="undefined"){var baseDir;}
var mbServerConfig="mapbuilderConfig.xml";var mbNsUrl="http://mapbuilder.sourceforge.net/mapbuilder";var MB_UNLOADED=0;var MB_LOAD_CORE=1;var MB_LOAD_CONFIG=2;var MB_LOADED=3;function Mapbuilder(){this.loadState=MB_UNLOADED;this.loadingScripts=new Array();this.scriptsTimer=null;this.checkScriptsLoaded=function(){if(typeof MapBuilder_Release=="boolean"){this.setLoadState(MB_LOAD_CONFIG);return;}
if(document.readyState!=null){while(this.loadingScripts.length>0&&(this.loadingScripts[0].readyState=="loaded"||this.loadingScripts[0].readyState=="complete"||this.loadingScripts[0].readyState==null))
{this.loadingScripts.shift();}
if(this.loadingScripts.length==0){this.setLoadState(this.loadState+1);}}
else{if(this.loadState==MB_LOAD_CORE&&config!=null){this.setLoadState(MB_LOAD_CONFIG);}}}
this.setLoadState=function(newState){this.loadState=newState;switch(newState){case MB_LOAD_CORE:this.loadScript(baseDir+"/util/sarissa/Sarissa.js");this.loadScript(baseDir+"/util/sarissa/sarissa_dhtml.js");this.loadScript(baseDir+"/util/sarissa/sarissa_ieemu_xpath.js");this.loadScript(baseDir+"/util/cscs/lib/cscs.js");this.loadScript(baseDir+"/util/cscs/lib/geocent.js");this.loadScript(baseDir+"/util/Util.js");this.loadScript(baseDir+"/util/Listener.js");this.loadScript(baseDir+"/model/ModelBase.js");this.loadScript(baseDir+"/model/Config.js");break;case MB_LOAD_CONFIG:if(document.readyState){config=new Config(mbConfigUrl);config.loadConfigScripts();if(typeof MapBuilder_Release=="boolean"){this.setLoadState(MB_LOADED);return;}}else{this.setLoadState(MB_LOADED);}
break;case MB_LOADED:clearInterval(this.scriptsTimer);break;}}
this.loadScript=function(url){if(typeof MapBuilder_Release=="boolean")return
if(!document.getElementById(url)){var script=document.createElement('script');script.defer=false;script.type="text/javascript";script.src=url;script.id=url;document.getElementsByTagName('head')[0].appendChild(script);this.loadingScripts.push(script);}}
this.loadScriptsFromXpath=function(nodes,dir){for(var i=0;i<nodes.length;i++){if(nodes[i].selectSingleNode("mb:scriptFile")==null){scriptFile=baseDir+"/"+dir+nodes[i].nodeName+".js";this.loadScript(scriptFile);}}}
var head=document.getElementsByTagName('head')[0];var nodes=head.childNodes;for(var i=0;i<nodes.length;++i){var src=nodes.item(i).src;if(src){var index=src.indexOf("/Mapbuilder.js");if(index>=0){baseDir=src.substring(0,index);}else{index=src.indexOf("/MapbuilderCompressed.js");if(index>=0){baseDir=src.substring(0,index);}}}}
this.setLoadState(MB_LOAD_CORE);this.scriptsTimer=setInterval('mapbuilder.checkScriptsLoaded()',100);}
function checkIESecurity()
{var testPrefixes=["Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","Msxml2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"];var bFound=false;for(var i=0;i<testPrefixes.length&&!bFound;i++){try{var oDoc=new ActiveXObject(testPrefixes[i]);bFound=true;}
catch(e){}}
if(!bFound)window.open("/mapbuilder/docs/help/IESetup.html");}
if(navigator.userAgent.toLowerCase().indexOf("msie")>-1)checkIESecurity();var mapbuilder=new Mapbuilder();function mapbuilderInit(){if(mapbuilder&&mapbuilder.loadState==MB_LOADED){clearInterval(mbTimerId);config.parseConfig(config);config.callListeners("init");var mbTimerStop=new Date();if(window.mbInit)window.mbInit();config.callListeners("loadModel");}}
var mbTimerId;function mbDoLoad(initFunction){mbTimerId=setInterval('mapbuilderInit()',100);if(initFunction)window.mbInit=initFunction;}
function Sarissa(){};Sarissa.PARSED_OK="Document contains no parsing errors";Sarissa.PARSED_EMPTY="Document is empty";Sarissa.PARSED_UNKNOWN_ERROR="Not well-formed or other error";var _sarissa_iNsCounter=0;var _SARISSA_IEPREFIX4XSLPARAM="";var _SARISSA_HAS_DOM_IMPLEMENTATION=document.implementation&&true;var _SARISSA_HAS_DOM_CREATE_DOCUMENT=_SARISSA_HAS_DOM_IMPLEMENTATION&&document.implementation.createDocument;var _SARISSA_HAS_DOM_FEATURE=_SARISSA_HAS_DOM_IMPLEMENTATION&&document.implementation.hasFeature;var _SARISSA_IS_MOZ=_SARISSA_HAS_DOM_CREATE_DOCUMENT&&_SARISSA_HAS_DOM_FEATURE;var _SARISSA_IS_SAFARI=(navigator.userAgent&&navigator.vendor&&(navigator.userAgent.toLowerCase().indexOf("applewebkit")!=-1||navigator.vendor.indexOf("Apple")!=-1));var _SARISSA_IS_OPERA=navigator.userAgent.toLowerCase().indexOf("opera")!=-1;var _SARISSA_IS_IE=document.all&&window.ActiveXObject&&navigator.userAgent.toLowerCase().indexOf("msie")>-1&&navigator.userAgent.toLowerCase().indexOf("opera")==-1;if(!window.Node||!Node.ELEMENT_NODE){Node={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12};};if(typeof XMLDocument=="undefined"&&typeof Document!="undefined"){XMLDocument=Document;}
if(_SARISSA_IS_IE){_SARISSA_IEPREFIX4XSLPARAM="xsl:";var _SARISSA_DOM_PROGID="";var _SARISSA_XMLHTTP_PROGID="";var _SARISSA_DOM_XMLWRITER="";Sarissa.pickRecentProgID=function(idList){var bFound=false;for(var i=0;i<idList.length&&!bFound;i++){try{var oDoc=new ActiveXObject(idList[i]);o2Store=idList[i];bFound=true;}catch(objException){};};if(!bFound){throw"Could not retreive a valid progID of Class: "+idList[idList.length-1]+". (original exception: "+e+")";};idList=null;return o2Store;};_SARISSA_DOM_PROGID=null;_SARISSA_THREADEDDOM_PROGID=null;_SARISSA_XSLTEMPLATE_PROGID=null;_SARISSA_XMLHTTP_PROGID=null;if(!window.XMLHttpRequest){XMLHttpRequest=function(){if(!_SARISSA_XMLHTTP_PROGID){_SARISSA_XMLHTTP_PROGID=Sarissa.pickRecentProgID(["Msxml2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"]);};return new ActiveXObject(_SARISSA_XMLHTTP_PROGID);};};Sarissa.getDomDocument=function(sUri,sName){if(!_SARISSA_DOM_PROGID){_SARISSA_DOM_PROGID=Sarissa.pickRecentProgID(["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"]);};var oDoc=new ActiveXObject(_SARISSA_DOM_PROGID);if(sName){var prefix="";if(sUri){if(sName.indexOf(":")>1){prefix=sName.substring(0,sName.indexOf(":"));sName=sName.substring(sName.indexOf(":")+1);}else{prefix="a"+(_sarissa_iNsCounter++);};};if(sUri){oDoc.loadXML('<'+prefix+':'+sName+" xmlns:"+prefix+"=\""+sUri+"\""+" />");}else{oDoc.loadXML('<'+sName+" />");};};return oDoc;};Sarissa.getParseErrorText=function(oDoc){var parseErrorText=Sarissa.PARSED_OK;if(oDoc.parseError.errorCode!=0){parseErrorText="XML Parsing Error: "+oDoc.parseError.reason+"\nLocation: "+oDoc.parseError.url+"\nLine Number "+oDoc.parseError.line+", Column "+
oDoc.parseError.linepos+":\n"+oDoc.parseError.srcText+"\n";for(var i=0;i<oDoc.parseError.linepos;i++){parseErrorText+="-";};parseErrorText+="^\n";}
else if(oDoc.documentElement==null){parseErrorText=Sarissa.PARSED_EMPTY;};return parseErrorText;};Sarissa.setXpathNamespaces=function(oDoc,sNsSet){oDoc.setProperty("SelectionLanguage","XPath");oDoc.setProperty("SelectionNamespaces",sNsSet);};XSLTProcessor=function(){if(!_SARISSA_XSLTEMPLATE_PROGID){_SARISSA_XSLTEMPLATE_PROGID=Sarissa.pickRecentProgID(["Msxml2.XSLTemplate.6.0","MSXML2.XSLTemplate.3.0"]);};this.template=new ActiveXObject(_SARISSA_XSLTEMPLATE_PROGID);this.processor=null;};XSLTProcessor.prototype.importStylesheet=function(xslDoc){if(!_SARISSA_THREADEDDOM_PROGID){_SARISSA_THREADEDDOM_PROGID=Sarissa.pickRecentProgID(["MSXML2.FreeThreadedDOMDocument.6.0","MSXML2.FreeThreadedDOMDocument.3.0"]);};xslDoc.setProperty("SelectionLanguage","XPath");xslDoc.setProperty("SelectionNamespaces","xmlns:xsl='http://www.w3.org/1999/XSL/Transform'");var converted=new ActiveXObject(_SARISSA_THREADEDDOM_PROGID);if(xslDoc.url&&xslDoc.selectSingleNode("//xsl:*[local-name() = 'import' or local-name() = 'include']")!=null){converted.async=false;if(_SARISSA_THREADEDDOM_PROGID=="MSXML2.FreeThreadedDOMDocument.6.0"){converted.setProperty("AllowDocumentFunction",true);converted.resolveExternals=true;}
converted.load(xslDoc.url);}else{converted.loadXML(xslDoc.xml);};converted.setProperty("SelectionNamespaces","xmlns:xsl='http://www.w3.org/1999/XSL/Transform'");var output=converted.selectSingleNode("//xsl:output");this.outputMethod=output?output.getAttribute("method"):"html";this.template.stylesheet=converted;this.processor=this.template.createProcessor();this.paramsSet=new Array();};XSLTProcessor.prototype.transformToDocument=function(sourceDoc){if(_SARISSA_THREADEDDOM_PROGID){this.processor.input=sourceDoc;var outDoc=new ActiveXObject(_SARISSA_DOM_PROGID);this.processor.output=outDoc;this.processor.transform();return outDoc;}
else{if(!_SARISSA_DOM_XMLWRITER){_SARISSA_DOM_XMLWRITER=Sarissa.pickRecentProgID(["Msxml2.MXXMLWriter.6.0","Msxml2.MXXMLWriter.3.0","MSXML2.MXXMLWriter","MSXML.MXXMLWriter","Microsoft.XMLDOM"]);};this.processor.input=sourceDoc;var outDoc=new ActiveXObject(_SARISSA_DOM_XMLWRITER);this.processor.output=outDoc;this.processor.transform();var oDoc=new ActiveXObject(_SARISSA_DOM_PROGID);oDoc.loadXML(outDoc.output+"");return oDoc;};};XSLTProcessor.prototype.transformToFragment=function(sourceDoc,ownerDoc){this.processor.input=sourceDoc;this.processor.transform();var s=this.processor.output;var f=ownerDoc.createDocumentFragment();if(this.outputMethod=='text'){f.appendChild(ownerDoc.createTextNode(s));}else if(ownerDoc.body&&ownerDoc.body.innerHTML){var container=ownerDoc.createElement('div');container.innerHTML=s;while(container.hasChildNodes()){f.appendChild(container.firstChild);}}
else{var oDoc=new ActiveXObject(_SARISSA_DOM_PROGID);if(s.substring(0,5)=='<?xml'){s=s.substring(s.indexOf('?>')+2);}
var xml=''.concat('<my>',s,'</my>');oDoc.loadXML(xml);var container=oDoc.documentElement;while(container.hasChildNodes()){f.appendChild(container.firstChild);}}
return f;};XSLTProcessor.prototype.setParameter=function(nsURI,name,value){if(nsURI){this.processor.addParameter(name,value,nsURI);}else{this.processor.addParameter(name,value);};if(!this.paramsSet[""+nsURI]){this.paramsSet[""+nsURI]=new Array();};this.paramsSet[""+nsURI][name]=value;};XSLTProcessor.prototype.getParameter=function(nsURI,name){nsURI=nsURI||"";if(this.paramsSet[nsURI]&&this.paramsSet[nsURI][name]){return this.paramsSet[nsURI][name];}else{return null;};};XSLTProcessor.prototype.clearParameters=function(){for(var nsURI in this.paramsSet){for(var name in this.paramsSet[nsURI]){if(nsURI){this.processor.addParameter(name,null,nsURI);}else{this.processor.addParameter(name,null);};};};this.paramsSet=new Array();};}else{if(_SARISSA_HAS_DOM_CREATE_DOCUMENT){Sarissa.__handleLoad__=function(oDoc){Sarissa.__setReadyState__(oDoc,4);};_sarissa_XMLDocument_onload=function(){Sarissa.__handleLoad__(this);};Sarissa.__setReadyState__=function(oDoc,iReadyState){oDoc.readyState=iReadyState;oDoc.readystate=iReadyState;if(oDoc.onreadystatechange!=null&&typeof oDoc.onreadystatechange=="function")
oDoc.onreadystatechange();};Sarissa.getDomDocument=function(sUri,sName){var oDoc=document.implementation.createDocument(sUri?sUri:null,sName?sName:null,null);if(!oDoc.onreadystatechange){oDoc.onreadystatechange=null;};if(!oDoc.readyState){oDoc.readyState=0;};oDoc.addEventListener("load",_sarissa_XMLDocument_onload,false);return oDoc;};if(window.XMLDocument){}
else if(_SARISSA_HAS_DOM_FEATURE&&window.Document&&!Document.prototype.load&&document.implementation.hasFeature('LS','3.0')){Sarissa.getDomDocument=function(sUri,sName){var oDoc=document.implementation.createDocument(sUri?sUri:null,sName?sName:null,null);return oDoc;};}
else{Sarissa.getDomDocument=function(sUri,sName){var oDoc=document.implementation.createDocument(sUri?sUri:null,sName?sName:null,null);if(oDoc&&(sUri||sName)&&!oDoc.documentElement){oDoc.appendChild(oDoc.createElementNS(sUri,sName));};return oDoc;};};};};if(!window.DOMParser){if(_SARISSA_IS_SAFARI){DOMParser=function(){};DOMParser.prototype.parseFromString=function(sXml,contentType){var xmlhttp=new XMLHttpRequest();xmlhttp.open("GET","data:text/xml;charset=utf-8,"+encodeURIComponent(sXml),false);xmlhttp.send(null);return xmlhttp.responseXML;};}else if(Sarissa.getDomDocument&&Sarissa.getDomDocument()&&Sarissa.getDomDocument(null,"bar").xml){DOMParser=function(){};DOMParser.prototype.parseFromString=function(sXml,contentType){var doc=Sarissa.getDomDocument();doc.loadXML(sXml);return doc;};};};if((typeof(document.importNode)=="undefined")&&_SARISSA_IS_IE){try{document.importNode=function(oNode,bChildren){var tmp;if(oNode.nodeName=="tbody"||oNode.nodeName=="tr"){tmp=document.createElement("table");}
else if(oNode.nodeName=="td"){tmp=document.createElement("tr");}
else if(oNode.nodeName=="option"){tmp=document.createElement("select");}
else{tmp=document.createElement("div");};if(bChildren){tmp.innerHTML=oNode.xml?oNode.xml:oNode.outerHTML;}else{tmp.innerHTML=oNode.xml?oNode.cloneNode(false).xml:oNode.cloneNode(false).outerHTML;};return tmp.getElementsByTagName("*")[0];};}catch(e){};};if(!Sarissa.getParseErrorText){Sarissa.getParseErrorText=function(oDoc){var parseErrorText=Sarissa.PARSED_OK;if(!oDoc.documentElement){parseErrorText=Sarissa.PARSED_EMPTY;}else if(oDoc.documentElement.tagName=="parsererror"){parseErrorText=oDoc.documentElement.firstChild.data;parseErrorText+="\n"+oDoc.documentElement.firstChild.nextSibling.firstChild.data;}else if(oDoc.getElementsByTagName("parsererror").length>0){var parsererror=oDoc.getElementsByTagName("parsererror")[0];parseErrorText=Sarissa.getText(parsererror,true)+"\n";}else if(oDoc.parseError&&oDoc.parseError.errorCode!=0){parseErrorText=Sarissa.PARSED_UNKNOWN_ERROR;};return parseErrorText;};};Sarissa.getText=function(oNode,deep){var s="";var nodes=oNode.childNodes;for(var i=0;i<nodes.length;i++){var node=nodes[i];var nodeType=node.nodeType;if(nodeType==Node.TEXT_NODE||nodeType==Node.CDATA_SECTION_NODE){s+=node.data;}else if(deep==true&&(nodeType==Node.ELEMENT_NODE||nodeType==Node.DOCUMENT_NODE||nodeType==Node.DOCUMENT_FRAGMENT_NODE)){s+=Sarissa.getText(node,true);};};return s;};if(!window.XMLSerializer&&Sarissa.getDomDocument&&Sarissa.getDomDocument("","foo",null).xml){XMLSerializer=function(){};XMLSerializer.prototype.serializeToString=function(oNode){return oNode.xml;};};Sarissa.stripTags=function(s){return s.replace(/<[^>]+>/g,"");};Sarissa.clearChildNodes=function(oNode){while(oNode.firstChild){oNode.removeChild(oNode.firstChild);};};Sarissa.copyChildNodes=function(nodeFrom,nodeTo,bPreserveExisting){if((!nodeFrom)||(!nodeTo)){throw"Both source and destination nodes must be provided";};if(!bPreserveExisting){Sarissa.clearChildNodes(nodeTo);};var ownerDoc=nodeTo.nodeType==Node.DOCUMENT_NODE?nodeTo:nodeTo.ownerDocument;var nodes=nodeFrom.childNodes;if(typeof(ownerDoc.importNode)!="undefined"){for(var i=0;i<nodes.length;i++){nodeTo.appendChild(ownerDoc.importNode(nodes[i],true));};}else{for(var i=0;i<nodes.length;i++){nodeTo.appendChild(nodes[i].cloneNode(true));};};};Sarissa.moveChildNodes=function(nodeFrom,nodeTo,bPreserveExisting){if((!nodeFrom)||(!nodeTo)){throw"Both source and destination nodes must be provided";};if(!bPreserveExisting){Sarissa.clearChildNodes(nodeTo);};var nodes=nodeFrom.childNodes;if(nodeFrom.ownerDocument==nodeTo.ownerDocument){while(nodeFrom.firstChild){nodeTo.appendChild(nodeFrom.firstChild);};}else{var ownerDoc=nodeTo.nodeType==Node.DOCUMENT_NODE?nodeTo:nodeTo.ownerDocument;if(typeof(ownerDoc.importNode)!="undefined"){for(var i=0;i<nodes.length;i++){nodeTo.appendChild(ownerDoc.importNode(nodes[i],true));};}else{for(var i=0;i<nodes.length;i++){nodeTo.appendChild(nodes[i].cloneNode(true));};};Sarissa.clearChildNodes(nodeFrom);};};Sarissa.xmlize=function(anyObject,objectName,indentSpace){indentSpace=indentSpace?indentSpace:'';var s=indentSpace+'<'+objectName+'>';var isLeaf=false;if(!(anyObject instanceof Object)||anyObject instanceof Number||anyObject instanceof String||anyObject instanceof Boolean||anyObject instanceof Date){s+=Sarissa.escape(""+anyObject);isLeaf=true;}else{s+="\n";var itemKey='';var isArrayItem=anyObject instanceof Array;for(var name in anyObject){s+=Sarissa.xmlize(anyObject[name],(isArrayItem?"array-item key=\""+name+"\"":name),indentSpace+"   ");};s+=indentSpace;};return s+=(objectName.indexOf(' ')!=-1?"</array-item>\n":"</"+objectName+">\n");};Sarissa.escape=function(sXml){return sXml.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;");};Sarissa.unescape=function(sXml){return sXml.replace(/&apos;/g,"'").replace(/&quot;/g,"\"").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&amp;/g,"&");};if(_SARISSA_HAS_DOM_FEATURE&&document.implementation.hasFeature("XPath","3.0")){function SarissaNodeList(i){this.length=i;};SarissaNodeList.prototype=new Array(0);SarissaNodeList.prototype.constructor=Array;SarissaNodeList.prototype.item=function(i){return(i<0||i>=this.length)?null:this[i];};SarissaNodeList.prototype.expr="";if(window.XMLDocument&&(!XMLDocument.prototype.setProperty)){XMLDocument.prototype.setProperty=function(x,y){};};Sarissa.setXpathNamespaces=function(oDoc,sNsSet){oDoc._sarissa_useCustomResolver=true;var namespaces=sNsSet.indexOf(" ")>-1?sNsSet.split(" "):new Array(sNsSet);oDoc._sarissa_xpathNamespaces=new Array(namespaces.length);for(var i=0;i<namespaces.length;i++){var ns=namespaces[i];var colonPos=ns.indexOf(":");var assignPos=ns.indexOf("=");if(colonPos>0&&assignPos>colonPos+1){var prefix=ns.substring(colonPos+1,assignPos);var uri=ns.substring(assignPos+2,ns.length-1);oDoc._sarissa_xpathNamespaces[prefix]=uri;}else{throw"Bad format on namespace declaration(s) given";};};};XMLDocument.prototype._sarissa_useCustomResolver=false;XMLDocument.prototype._sarissa_xpathNamespaces=new Array();XMLDocument.prototype.selectNodes=function(sExpr,contextNode,returnSingle){var nsDoc=this;var nsresolver=this._sarissa_useCustomResolver?function(prefix){var s=nsDoc._sarissa_xpathNamespaces[prefix];if(s)return s;else throw"No namespace URI found for prefix: '"+prefix+"'";}:this.createNSResolver(this.documentElement);var result=null;if(!returnSingle){var oResult=this.evaluate(sExpr,(contextNode?contextNode:this),nsresolver,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);var nodeList=new SarissaNodeList(oResult.snapshotLength);nodeList.expr=sExpr;for(var i=0;i<nodeList.length;i++)
nodeList[i]=oResult.snapshotItem(i);result=nodeList;}
else{result=oResult=this.evaluate(sExpr,(contextNode?contextNode:this),nsresolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;};return result;};Element.prototype.selectNodes=function(sExpr){var doc=this.ownerDocument;if(doc.selectNodes)
return doc.selectNodes(sExpr,this);else
throw"Method selectNodes is only supported by XML Elements";};XMLDocument.prototype.selectSingleNode=function(sExpr,contextNode){var ctx=contextNode?contextNode:null;return this.selectNodes(sExpr,ctx,true);};Element.prototype.selectSingleNode=function(sExpr){var doc=this.ownerDocument;if(doc.selectSingleNode)
return doc.selectSingleNode(sExpr,this);else
throw"Method selectNodes is only supported by XML Elements";};Sarissa.IS_ENABLED_SELECT_NODES=true;};var MB_IS_MOZ=(document.implementation&&document.implementation.createDocument)?true:false;function XslProcessor(xslUrl,docNSUri){if(!MB_IS_MOZ){_SARISSA_DOM_PROGID=Sarissa.pickRecentProgID(["Msxml2.DOMDocument.3.0","Msxml2.DOMDocument.6.0"],[["SELECT_NODES",2],["TRANSFORM_NODE",2]]);_SARISSA_XMLHTTP_PROGID=Sarissa.pickRecentProgID(["Msxml2.XMLHTTP.3.0","MSXML2.XMLHTTP.6.0"],[["XMLHTTP",4]]);_SARISSA_THREADEDDOM_PROGID=Sarissa.pickRecentProgID(["Msxml2.FreeThreadedDOMDocument.3.0","MSXML2.FreeThreadedDOMDocument.6.0"]);_SARISSA_XSLTEMPLATE_PROGID=Sarissa.pickRecentProgID(["Msxml2.XSLTemplate.3.0","MSXML2.XSLTemplate.6.0"],[["XSLTPROC",2]]);}
this.xslUrl=xslUrl;this.xslDom=Sarissa.getDomDocument();this.xslDom.async=false;if(!MB_IS_MOZ){try{this.xslDom.validateOnParse=false;this.xslDom.setProperty("AllowDocumentFunction",true);this.xslDom.resolveExternals=true;}
catch(e){}}
if(typeof(inlineXSL)!="undefined"){xmlString=inlineXSL[_1];xmlString=xmlString.replace(/DOUBLE_QUOTE/g,"\"");this.xslDom=(new DOMParser()).parseFromString(xmlString,"text/xml");}
else{if(_SARISSA_IS_SAFARI){var xmlhttp=new XMLHttpRequest();xmlhttp.open("GET",xslUrl,false);xmlhttp.send(null);this.xslDom=xmlhttp.responseXML;}else
{this.xslDom.load(xslUrl);}}
if(Sarissa.getParseErrorText(this.xslDom)!=Sarissa.PARSED_OK)
alert(mbGetMessage("errorLoadingStylesheet",xslUrl));this.processor=new XSLTProcessor();this.processor.importStylesheet(this.xslDom);this.docNSUri=docNSUri;this.transformNodeToString=function(xmlNode){try{if(_SARISSA_IS_IE){var str=(new XMLSerializer()).serializeToString(xmlNode);var xmlNode=(new DOMParser()).parseFromString(str,"text/xml");}
var newDoc=this.transformNodeToObject(xmlNode);var s=(new XMLSerializer()).serializeToString(newDoc);if(_SARISSA_IS_OPERA)
s=s.replace(/.*\?\>/,"");return s;}catch(e){alert(mbGetMessage("exceptionTransformingDoc",this.xslUrl));alert("XSL="+(new XMLSerializer()).serializeToString(this.xslDom));alert("XML="+(new XMLSerializer()).serializeToString(xmlNode));}}
this.transformNodeToObject=function(xmlNode){if(_SARISSA_IS_SAFARI){var oResult=new DOMParser().parseFromString("<xsltresult></xsltresult>","text/xml");var newFragment=this.processor.transformToFragment(xmlNode,oResult);var str=(new XMLSerializer()).serializeToString(newFragment);str.replace(/\s/g,"");}else{var newFragment=this.processor.transformToDocument(xmlNode);}
return newFragment;}
this.setParameter=function(paramName,paramValue,nsUri){if(!paramValue){return;}
this.processor.setParameter(null,paramName,paramValue);}}
function postLoad(sUri,docToSend,contentType){var xmlHttp=new XMLHttpRequest();if(sUri.indexOf("http://")==0){xmlHttp.open("POST",config.proxyUrl,false);xmlHttp.setRequestHeader("serverUrl",sUri);}else{xmlHttp.open("POST",sUri,false);}
xmlHttp.setRequestHeader("content-type","text/xml");if(contentType)xmlHttp.setRequestHeader("content-type",contentType);xmlHttp.send(docToSend);if(xmlHttp.status>=400){alert(mbGetMessage("errorLoadingDocument",sUri,xmlHttp.statusText,xmlHttp.responseText));var outDoc=Sarissa.getDomDocument();outDoc.parseError=-1;return outDoc;}else{if(null==xmlHttp.responseXML)alert(mbGetMessage("nullXmlResponse",xmlHttp.responseText));return xmlHttp.responseXML;}}
function postGetLoad(sUri,docToSend,contentType,dir,fileName){var xmlHttp=new XMLHttpRequest();if(sUri.indexOf("http://")==0)
{xmlHttp.open("POST",config.proxyUrl,false);xmlHttp.setRequestHeader("serverUrl",sUri);}
else
{sUri=sUri+"?dir="+dir+"&fileName="+fileName;xmlHttp.open("POST",sUri,false);}
xmlHttp.setRequestHeader("content-type","text/xml");if(contentType)xmlHttp.setRequestHeader("content-type",contentType);xmlHttp.send(docToSend);if(xmlHttp.status>=400)
{alert(mbGetMessage("errorLoadingDocument",sUri,xmlHttp.statusText,xmlHttp.responseText));var outDoc=Sarissa.getDomDocument();outDoc.parseError=-1;return outDoc;}
else
{if(null==xmlHttp.responseXML)alert(mbGetMessage("nullXmlResponse",xmlHttp.responseText));return xmlHttp.responseXML;}}
function getProxyPlusUrl(url){if(url.indexOf("http://")==0){if(config.proxyUrl){url=config.proxyUrl+"?url="+escape(url).replace(/\+/g,'%2C').replace(/\"/g,'%22').replace(/\'/g,'%27');}else{alert(mbGetMessage("unableToLoadDoc",url));url=null;}}
return url;}
function createElementWithNS(doc,name,nsUri){if(_SARISSA_IS_IE){return doc.createNode(1,name,nsUri);}else{return doc.createElementNS(nsUri,name);}}
function UniqueId(){this.lastId=0;this.getId=function(){this.lastId++;return this.lastId;}}
var mbIds=new UniqueId();function setISODate(isoDateStr){var parts=isoDateStr.match(/(\d{4})-?(\d{2})?-?(\d{2})?T?(\d{2})?:?(\d{2})?:?(\d{2})?\.?(\d{0,3})?(Z)?/);var res=null;for(var i=1;i<parts.length;++i){if(!parts[i]){parts[i]=(i==3)?1:0;if(!res)res=i;}}
var isoDate=new Date();isoDate.setFullYear(parseInt(parts[1],10));isoDate.setMonth(parseInt(parts[2],10)-1,parseInt(parts[3],10));isoDate.setDate(parseInt(parts[3],10));isoDate.setHours(parseInt(parts[4],10));isoDate.setMinutes(parseInt(parts[5],10));isoDate.setSeconds(parseFloat(parts[6],10));if(!res)res=6;isoDate.res=res;return isoDate;}
function getISODate(isoDate){var res=isoDate.res?isoDate.res:6;var dateStr="";dateStr+=res>=1?isoDate.getFullYear():"";dateStr+=res>=2?"-"+leadingZeros(isoDate.getMonth()+1,2):"";dateStr+=res>=3?"-"+leadingZeros(isoDate.getDate(),2):"";dateStr+=res>=4?"T"+leadingZeros(isoDate.getHours(),2):"";dateStr+=res>=5?":"+leadingZeros(isoDate.getMinutes(),2):"";dateStr+=res>=6?":"+leadingZeros(isoDate.getSeconds(),2):"";return dateStr;}
function leadingZeros(num,digits){var intNum=parseInt(num,10);var base=Math.pow(10,digits);if(intNum<base)intNum+=base;return intNum.toString().substr(1);}
function fixPNG(myImage,myId,oldImage){if(_SARISSA_IS_IE){if(oldImage){var valIEOpacity=oldImage.style.filter.substring(oldImage.style.filter.indexOf('opacity=',0)+8,oldImage.style.filter.lastIndexOf(')',0));if(oldImage.style.filter.indexOf('opacity=',0)==-1){valIEOpacity=null;}
var _opacity=(valIEOpacity)?valIEOpacity/100:-1;}
var imgID="id='"+myId+"' ";var imgClass=(myImage.className)?"class='"+myImage.className+"' ":""
var imgTitle=(myImage.title)?"title='"+myImage.title+"' ":"title='"+myImage.alt+"' "
var imgStyle="display:inline-block;"+myImage.style.cssText
var strNewHTML="<span "+imgID+imgClass+imgTitle
strNewHTML+=" style=\""+"width:"+myImage.width+"px; height:"+myImage.height+"px;"+imgStyle+";"
if(_opacity!=-1)strNewHTML+="opacity="+_opacity+";";var src=myImage.src;src=src.replace(/\(/g,'%28');src=src.replace(/\)/g,'%29');src=src.replace(/'/g,'%27');src=src.replace(/%23/g,'%2523');strNewHTML+="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader";strNewHTML+="(src=\'"+src+"\', sizingMethod='scale')";if(oldImage&&_opacity!=-1)strNewHTML+=" alpha(opacity="+(_opacity*100)+")";strNewHTML+="; \"></span>";return strNewHTML;}}
function getAbsX(elt){return(elt.x)?elt.x:getAbsPos(elt,"Left")+2;}
function getAbsY(elt){return(elt.y)?elt.y:getAbsPos(elt,"Top")+2;}
function getAbsPos(elt,which){iPos=0;while(elt!=null){iPos+=elt["offset"+which];elt=elt.offsetParent;}
return iPos;}
function getPageX(e){var posx=0;if(!e)var e=window.event;if(e.pageX){posx=e.pageX;}
else if(e.clientX){posx=e.clientX;}
if(document.body&&document.body.scrollLeft){posx+=document.body.scrollLeft;}
else if(document.documentElement&&document.documentElement.scrollLeft){posx+=document.documentElement.scrollLeft;}
return posx;}
function getPageY(e){var posy=0;if(!e)var e=window.event;if(e.pageY){posy=e.pageY;}
else if(e.clientY){posy=e.clientY;}
if(document.body&&document.body.scrollTop){posy+=document.body.scrollTop;}
else if(document.documentElement&&document.documentElement.scrollTop){posy+=document.documentElement.scrollTop;}
return posy;}
function getArgs(){var args=new Object();var query=location.search.substring(1);var pairs=query.split("&");for(var i=0;i<pairs.length;i++){var pos=pairs[i].indexOf('=');if(pos==-1)continue;var argname=pairs[i].substring(0,pos);var value=pairs[i].substring(pos+1);args[argname]=unescape(value.replace(/\+/g," "));}
return args;}
window.cgiArgs=getArgs();function getScreenX(context,xCoord){bbox=context.getBoundingBox();width=context.getWindowWidth();bbox[0]=parseFloat(bbox[0]);bbox[2]=parseFloat(bbox[2]);var xfac=(width/(bbox[2]-bbox[0]));x=xfac*(xCoord-bbox[0]);return x;}
function getScreenY(context,yCoord){var bbox=context.getBoundingBox();var height=context.getWindowHeight();bbox[1]=parseFloat(bbox[1]);bbox[3]=parseFloat(bbox[3]);var yfac=(heighteight/(bbox[3]-bbox[1]));var y=height-(yfac*(pt.y-bbox[1]));return y;}
function getGeoCoordX(context,xCooord){var bbox=context.getBoundingBox();var width=context.getWindowWidth();bbox[0]=parseFloat(bbox[0]);bbox[2]=parseFloat(bbox[2]);var xfac=((bbox[2]-bbox[0])/width);var x=bbox[0]+xfac*(xCoord);return x;}
function getGeoCoordY(yCoord){var bbox=context.getBoundingBox();var height=context.getWindowHeight();bbox[1]=parseFloat(bbox[1]);bbox[3]=parseFloat(bbox[3]);var yfac=((bbox[3]-bbox[1])/height);var y=bbox[1]+yfac*(height-yCoord);return y;}
function makeElt(type){var node=document.createElement(type);document.getElementsByTagName("body").item(0).appendChild(node);return node;}
var newWindow='';function openPopup(url,width,height){if(width==null){width=300;}
if(height==null){height=200;}
if(!newWindow.closed&&newWindow.location){newWindow.location.href=url;}
else{newWindow=window.open(url,'name','height='+height+',width='+width);if(!newWindow.opener)newwindow.opener=self;}
if(window.focus){newWindow.focus()}
return false;}
function debug(output){tarea=makeElt("textarea");tarea.setAttribute("rows","3");tarea.setAttribute("cols","40");tnode=document.createTextNode(output);tarea.appendChild(tnode);}
function returnTarget(evt){evt=(evt)?evt:((window.event)?window.event:"");var elt=null;if(evt.target){elt=evt.target;}
else if(evt.srcElement){elt=evt.srcElement;}
return elt;}
function addEvent(elementObject,eventName,functionObject){if(document.addEventListener){elementObject.addEventListener(eventName,functionObject,false);}
else if(document.attachEvent){elementObject.attachEvent("on"+eventName,functionObject);}}
function handleEventWithObject(evt){var elt=returnTarget(evt);var obj=elt.ownerObj;if(obj!=null)obj.handleEvent(evt);}
function mbDebugMessage(object,message)
{if(object&&object.debug){alert(message);}}
function mbGetMessage(messageKey)
{var message="NoMsgsFound";if(config.widgetText){var msgKeyXpath="/mb:WidgetText/mb:messages/mb:"+messageKey;var msgKeyNodes=config.widgetText.selectNodes(msgKeyXpath);if(!msgKeyNodes||msgKeyNodes.length==0){message=messageKey;}
else{message=msgKeyNodes.item(msgKeyNodes.length-1).firstChild.nodeValue;if(arguments[mbGetMessage.length]){var varArgs=[].slice.call(arguments,mbGetMessage.length);varArgs.unshift(message);message=mbFormatMessage.apply(this,varArgs);}}}
return message;}
function mbFormatMessage(messageFormat)
{var message=messageFormat;var varArgs=[].slice.call(arguments,mbFormatMessage.length);for(var i in varArgs){var parm=new RegExp("\\{"+i+"\\}","g");message=message.replace(parm,varArgs[i]);}
return message;}
function sld2UrlParam(node){var params=new Array();if(node){var sld=node.selectSingleNode("wmc:SLD");var name=node.selectSingleNode("wmc:Name");if(sld){if(sld.selectSingleNode("wmc:OnlineResource")){params.sld=sld.selectSingleNode("wmc:OnlineResource").getAttribute("xlink:href");}else if(sld.selectSingleNode("wmc:FeatureTypeStyle")){params.sld=(new XMLSerializer()).serializeToString(sld.selectSingleNode("wmc:FeatureTypeStyle"));}else if(sld.selectSingleNode("wmc:StyledLayerDescriptor")){params.sld_body=(new XMLSerializer()).serializeToString(sld.selectSingleNode("wmc:StyledLayerDescriptor"));}}else if(name){params.styles=(name.firstChild)?name.firstChild.nodeValue:"";}}
return params;}
function sld2OlStyle(node){var style1=new Object();var value;var styleSet=false;if(node){value=node.selectSingleNode(".//sld:ExternalGraphic/sld:OnlineResource/@xlink:href");if(value){style1.externalGraphic=value.firstChild.nodeValue;styleSet=true;}
value=node.selectSingleNode(".//sld:Fill/sld:CssParameter[@name='fill']");if(value){style1.fillColor=value.firstChild.nodeValue;styleSet=true;}
value=node.selectSingleNode(".//sld:Fill/sld:CssParameter[@name='fill-opacity']");if(value){style1.fillOpacity=value.firstChild.nodeValue;styleSet=true;}else{value=node.selectSingleNode(".//sld:Opacity/sld:Literal");if(value){style1.fillOpacity=value.firstChild.nodeValue;styleSet=true;}}
value=node.selectSingleNode(".//sld:Stroke/sld:CssParameter[@name='stroke']");if(value){style1.strokeColor=value.firstChild.nodeValue;styleSet=true;}
value=node.selectSingleNode(".//sld:Stroke/sld:CssParameter[@name='stroke-opacity']");if(value){style1.strokeOpacity=value.firstChild.nodeValue;styleSet=true;}
value=node.selectSingleNode(".//sld:Stroke/sld:CssParameter[@name='stroke-width']");if(value){style1.strokeWidth=value.firstChild.nodeValue;styleSet=true;}
value=node.selectSingleNode(".//sld:Size");if(value){style1.pointRadius=value.firstChild.nodeValue;styleSet=true;}}
if(!styleSet)style1=null;return style1;}
function loadCss(cssFileName){var id=cssFileName.match(/[^\/]*$/).toString().replace(/./,'_');if(!document.getElementById(id)){var cssNode=document.createElement('link');cssNode.setAttribute('id',id);cssNode.setAttribute('rel','stylesheet');cssNode.setAttribute('type','text/css');cssNode.setAttribute('href',config.skinDir+'/'+cssFileName);document.getElementsByTagName('head')[0].appendChild(cssNode);}}
function getNodeValue(sResult){if(sResult.nodeType==1)return sResult.firstChild?sResult.firstChild.nodeValue:"";if(sResult.nodeType>1||sResult.nodeType<5)return sResult.nodeValue;return sResult;}
var PI=Math.PI;var HALF_PI=PI*0.5;var TWO_PI=PI*2;var R2D=57.2957795131;var D2R=0.0174532925199;var SEC_TO_RAD=4.84813681109535993589914102357e-6
var EPSLN=1.0e-100;var SRS_WGS84_SEMIMAJOR=6378137.0;var PJD_UNKNOWN=0;var PJD_3PARAM=1;var PJD_7PARAM=2;var PJD_GRIDSHIFT=3;var PJD_WGS84=4;var csErrorMessage="";function PT(x,y){this.x=x;this.y=y;this.z=0.0;}
var csList=new Object();csList.EPSG4326="+title=long / lat WGS84 +proj=longlat";csList.EPSG4269="+title=long / lat NAD83 +proj=longlat";function CS(def){if(!def){var def=csList.EPSG4326;csErrorMessage+="No coordinate system definition provided, assuming longlat WGS83";}
var paramName,paramVal;var paramArray=def.split("+");for(var prop=0;prop<paramArray.length;prop++)
{property=paramArray[prop].split("=");paramName=property[0].toLowerCase();paramVal=property[1];switch(paramName.replace(/\s/gi,""))
{case"":break;case"title":this.title=paramVal;break;case"proj":this.proj=paramVal.replace(/\s/gi,"");break;case"ellps":this.ellps=paramVal.replace(/\s/gi,"");break;case"datum":this.datum=paramVal.replace(/\s/gi,"");break;case"a":this.a=parseFloat(paramVal);break;case"b":this.b=parseFloat(paramVal);break;case"lat_1":this.lat1=paramVal*D2R;break;case"lat_2":this.lat2=paramVal*D2R;break;case"alpha":this.alpha=paramVal*D2R;break;case"lonc":this.longc=paramVal*D2R;break;case"lon_0":this.long0=paramVal*D2R;break;case"lat_0":this.lat0=paramVal*D2R;break;case"x_0":this.x0=parseFloat(paramVal);break;case"y_0":this.y0=parseFloat(paramVal);break;case"k":this.k0=parseFloat(paramVal);break;case"R_A":this.R=parseFloat(paramVal);break;case"to_meter":this.to_meter=parseFloat(paramVal);break;case"to_meter":this.to_meter=eval(paramVal);break;case"zone":this.zone=parseInt(paramVal);break;case"towgs84":this.datum_params=paramVal.split(",");break;case"units":this.units=paramVal.replace(/\s/gi,"");break;case"from_greenwich":this.from_greenwich=paramVal*D2R;break;default:csErrorMessage+="\nUnrecognized parameter: "+paramName;}}
if(this.datum_params){for(var i=0;i<this.datum_params.length;i++)
this.datum_params[i]=parseFloat(this.datum_params[i]);if(this.datum_params[0]!=0||this.datum_params[1]!=0||this.datum_params[2]!=0)
this.datum_type=PJD_3PARAM;if(this.datum_params.length>3){if(this.datum_params[3]!=0||this.datum_params[4]!=0||this.datum_params[5]!=0||this.datum_params[6]!=0){this.datum_type=PJD_7PARAM;this.datum_params[3]*=SEC_TO_RAD;this.datum_params[4]*=SEC_TO_RAD;this.datum_params[5]*=SEC_TO_RAD;this.datum_params[6]=(this.datum_params[6]/1000000.0)+1.0;}}}
if(!this.datum_type)
this.datum_type=PJD_WGS84;if(this.ellps=="GRS80"){this.a=6378137.0;this.b=6356752.31414036;}
if(this.ellps=="WGS84"){this.a=6378137.0;this.b=6356752.31424518;}
if(this.ellps=="WGS72"){this.a=6378135.0;this.b=6356750.52001609;}
if(this.ellps=="intl"){this.a=6378388.0;this.b=6356911.94612795;}
if(this.ellps=="clrk66"){this.a=6378206.4;this.b=6356583.8;}
if(this.ellps=="airy"){this.a=6377563.396;this.b=6356256.910;}
if(this.ellps=="mod_airy"){this.a=6377340.189;this.b=6356034.446;}
if(this.ellps=="new_intl"){this.a=6378157.5;this.b=6356772.2;}
if(this.ellps=="plessis"){this.a=6376523.0;this.b=6355863.0;}
if(this.ellps=="SEasia"){this.a=6378155.0;this.b=6356773.3205;}
if(this.ellps=="walbeck"){this.a=6376896.0;this.b=6355834.8467;}
if(this.ellps=="sphere"){this.a=6370997.0;this.b=6370997.0;}
if(this.ellps=="MERIT"){this.a=6378137.0;this.b=6356752.298215968;}
if(this.ellps=="SGS85"){this.a=6378136.0;this.b=6356751.30156878;}
if(this.ellps=="IAU76"){this.a=6378137.0;this.b=6356752.31414035585;}
if(this.ellps=="APL4.9"){this.a=6378137.0;this.b=6356751.7963118;}
if(this.ellps=="NW9LD"){this.a=6378145.0;this.b=6356759.76948868;}
if(this.ellps=="andrae"){this.a=6377104.43;this.b=6355847.415233333333;}
if(this.ellps=="aust_SA"){this.a=6378160.0;this.b=356774.7191953;}
if(this.ellps=="GRS67"){this.a=6378160.0;this.b=6356774.5160907;}
if(this.ellps=="bessel"){this.a=6377397.155;this.b=6356078.96281818;}
if(this.ellps=="bess_nam"){this.a=6377483.865;this.b=6356165.3829663;}
if(this.ellps=="CPM"){this.a=6375738.7;this.b=6356666.22191211;}
if(this.ellps=="clrk80"){this.a=6378249.145;this.b=6356514.965828;}
if(this.ellps=="delmbr"){this.a=6376428.0;this.b=6355957.9261637239;}
if(this.ellps=="engelis"){this.a=6378136.05;this.b=6356751.32272;}
if(this.ellps=="evrst30"){this.a=6377276.345;this.b=6356075.4131402398989;}
if(this.ellps=="evrst48"){this.a=6377304.063;this.b=6356103.038993;}
if(this.ellps=="evrst56"){this.a=6377301.243;this.b=6356100.2283681013;}
if(this.ellps=="evrst69"){this.a=6377295.664;this.b=6356094.6679152;}
if(this.ellps=="evrstSS"){this.a=6377298.556;this.b=6356097.55030089657;}
if(this.ellps=="fschr60"){this.a=6378166.0;this.b=6356784.283607;}
if(this.ellps=="fschr60m"){this.a=6378155.0;this.b=6356773.3204827;}
if(this.ellps=="fschr68"){this.a=6378150.0;this.b=6356768.337244;}
if(this.ellps=="helmert "){this.a=6378200.0;this.b=6356818.16962789;}
if(this.ellps=="hough"){this.a=6378270.0;this.b=6356794.343434343;}
if(this.ellps=="krass"){this.a=6378245.0;this.b=63568630.187730;}
if(this.ellps=="kaula"){this.a=6378163.0;this.b=6356776.9920869;}
if(this.ellps=="lerch"){this.a=6378139.0;this.b=6356754.29151034;}
if(this.ellps=="mprts"){this.a=6397300.0;this.b=6363806.282722513;}
if(this.ellps=="WGS60"){this.a=6378165.0;this.b=6356783.2869594;}
if(this.ellps=="WGS66"){this.a=6378145.0;this.b=6356759.76948868;}
if(!this.a){this.a=6378137.0;this.b=6356752.31424518;csErrorMessage+="\nEllipsoid parameters not provided, assuming WGS84";}
this.a2=this.a*this.a;this.b2=this.b*this.b;this.es=(this.a2-this.b2)/this.a2;this.e=Math.sqrt(this.es);this.ep2=(this.a2-this.b2)/this.b2;if(this.proj!="longlat"){this.Forward=eval(this.proj+"Fwd");this.Inverse=eval(this.proj+"Inv");this.Init=eval(this.proj+"Init");this.Init(this);}}
function cs_transform(srcdefn,dstdefn,point){pj_errno=0;if(srcdefn.proj=="longlat"){point.x*=D2R;point.y*=D2R;}else{if(srcdefn.to_meter){point.x*=srcdefn.to_meter;point.y*=srcdefn.to_meter;}
srcdefn.Inverse(point);}
if(srcdefn.from_greenwich){point.x+=srcdefn.from_greenwich;}
if(cs_datum_transform(srcdefn,dstdefn,point)!=0)
return pj_errno;if(dstdefn.from_greenwich){point.x-=dstdefn.from_greenwich;}
if(dstdefn.proj=="longlat")
{point.x*=R2D;point.y*=R2D;}else{dstdefn.Forward(point);if(dstdefn.to_meter){point.x/=dstdefn.to_meter;point.y/=dstdefn.to_meter;}}}
function cs_datum_transform(srcdefn,dstdefn,point)
{if(cs_compare_datums(srcdefn,dstdefn))
return 0;if(srcdefn.datum_type==PJD_GRIDSHIFT)
{if(!MB_IGNORE_CSCS_ERRORS)alert(mbGetMessage("gridShiftError"));}
if(dstdefn.datum_type==PJD_GRIDSHIFT)
{if(!MB_IGNORE_CSCS_ERRORS)alert(mbGetMessage("gridShiftError"));}
if(srcdefn.datum_type==PJD_3PARAM||srcdefn.datum_type==PJD_7PARAM||dstdefn.datum_type==PJD_3PARAM||dstdefn.datum_type==PJD_7PARAM)
{cs_geodetic_to_geocentric(srcdefn,point);if(srcdefn.datum_type==PJD_3PARAM||srcdefn.datum_type==PJD_7PARAM)
{cs_geocentric_to_wgs84(srcdefn,point);}
if(dstdefn.datum_type==PJD_3PARAM||dstdefn.datum_type==PJD_7PARAM)
{cs_geocentric_from_wgs84(dstdefn,point);}
cs_geocentric_to_geodetic(dstdefn,point);}
if(dstdefn.datum_type==PJD_GRIDSHIFT)
{if(!MB_IGNORE_CSCS_ERRORS)alert(mbGetMessage("gridShiftError"));}
return 0;}
function cs_compare_datums(srcdefn,dstdefn)
{if(srcdefn.datum_type!=dstdefn.datum_type)
{return 0;}
else if(srcdefn.datum_type==PJD_3PARAM)
{return(srcdefn.datum_params[0]==dstdefn.datum_params[0]&&srcdefn.datum_params[1]==dstdefn.datum_params[1]&&srcdefn.datum_params[2]==dstdefn.datum_params[2]);}
else if(srcdefn.datum_type==PJD_7PARAM)
{return(srcdefn.datum_params[0]==dstdefn.datum_params[0]&&srcdefn.datum_params[1]==dstdefn.datum_params[1]&&srcdefn.datum_params[2]==dstdefn.datum_params[2]&&srcdefn.datum_params[3]==dstdefn.datum_params[3]&&srcdefn.datum_params[4]==dstdefn.datum_params[4]&&srcdefn.datum_params[5]==dstdefn.datum_params[5]&&srcdefn.datum_params[6]==dstdefn.datum_params[6]);}
else if(srcdefn.datum_type==PJD_GRIDSHIFT)
{return strcmp(pj_param(srcdefn.params,"snadgrids").s,pj_param(dstdefn.params,"snadgrids").s)==0;}
else
return 1;}
var GEOCENT_LAT_ERROR=0x0001;var COS_67P5=0.38268343236508977;var AD_C=1.0026000;function cs_geodetic_to_geocentric(cs,p){var Longitude=p.x;var Latitude=p.y;var Height=p.z;var X;var Y;var Z;var Error_Code=0;var Rn;var Sin_Lat;var Sin2_Lat;var Cos_Lat;if(Latitude<-HALF_PI&&Latitude>-1.001*HALF_PI)
Latitude=-HALF_PI;else if(Latitude>HALF_PI&&Latitude<1.001*HALF_PI)
Latitude=HALF_PI;else if((Latitude<-HALF_PI)||(Latitude>HALF_PI))
{Error_Code|=GEOCENT_LAT_ERROR;}
if(!Error_Code)
{if(Longitude>PI)
Longitude-=(2*PI);Sin_Lat=Math.sin(Latitude);Cos_Lat=Math.cos(Latitude);Sin2_Lat=Sin_Lat*Sin_Lat;Rn=cs.a/(Math.sqrt(1.0e0-cs.es*Sin2_Lat));X=(Rn+Height)*Cos_Lat*Math.cos(Longitude);Y=(Rn+Height)*Cos_Lat*Math.sin(Longitude);Z=((Rn*(1-cs.es))+Height)*Sin_Lat;}
p.x=X;p.y=Y;p.z=Z;return Error_Code;}
function cs_geocentric_to_geodetic(cs,p){var X=p.x;var Y=p.y;var Z=p.z;var Longitude;var Latitude;var Height;var W;var W2;var T0;var T1;var S0;var S1;var Sin_B0;var Sin3_B0;var Cos_B0;var Sin_p1;var Cos_p1;var Rn;var Sum;var At_Pole;X=parseFloat(X);Y=parseFloat(Y);Z=parseFloat(Z);At_Pole=false;if(X!=0.0)
{Longitude=Math.atan2(Y,X);}
else
{if(Y>0)
{Longitude=HALF_PI;}
else if(Y<0)
{Longitude=-HALF_PI;}
else
{At_Pole=true;Longitude=0.0;if(Z>0.0)
{Latitude=HALF_PI;}
else if(Z<0.0)
{Latitude=-HALF_PI;}
else
{Latitude=HALF_PI;Height=-cs.b;return;}}}
W2=X*X+Y*Y;W=Math.sqrt(W2);T0=Z*AD_C;S0=Math.sqrt(T0*T0+W2);Sin_B0=T0/S0;Cos_B0=W/S0;Sin3_B0=Sin_B0*Sin_B0*Sin_B0;T1=Z+cs.b*cs.ep2*Sin3_B0;Sum=W-cs.a*cs.es*Cos_B0*Cos_B0*Cos_B0;S1=Math.sqrt(T1*T1+Sum*Sum);Sin_p1=T1/S1;Cos_p1=Sum/S1;Rn=cs.a/Math.sqrt(1.0-cs.es*Sin_p1*Sin_p1);if(Cos_p1>=COS_67P5)
{Height=W/Cos_p1-Rn;}
else if(Cos_p1<=-COS_67P5)
{Height=W/-Cos_p1-Rn;}
else
{Height=Z/Sin_p1+Rn*(cs.es-1.0);}
if(At_Pole==false)
{Latitude=Math.atan(Sin_p1/Cos_p1);}
p.x=Longitude;p.y=Latitude;p.z=Height;return 0;}
function cs_geocentric_to_wgs84(defn,p){if(defn.datum_type==PJD_3PARAM)
{p.x+=defn.datum_params[0];p.y+=defn.datum_params[1];p.z+=defn.datum_params[2];}
else
{var Dx_BF=defn.datum_params[0];var Dy_BF=defn.datum_params[1];var Dz_BF=defn.datum_params[2];var Rx_BF=defn.datum_params[3];var Ry_BF=defn.datum_params[4];var Rz_BF=defn.datum_params[5];var M_BF=defn.datum_params[6];var x_out=M_BF*(p.x-Rz_BF*p.y+Ry_BF*p.z)+Dx_BF;var y_out=M_BF*(Rz_BF*p.x+p.y-Rx_BF*p.z)+Dy_BF;var z_out=M_BF*(-Ry_BF*p.x+Rx_BF*p.y+p.z)+Dz_BF;p.x=x_out;p.y=y_out;p.z=z_out;}}
function cs_geocentric_from_wgs84(defn,p){if(defn.datum_type==PJD_3PARAM)
{p.x-=defn.datum_params[0];p.y-=defn.datum_params[1];p.z-=defn.datum_params[2];}
else
{var Dx_BF=defn.datum_params[0];var Dy_BF=defn.datum_params[1];var Dz_BF=defn.datum_params[2];var Rx_BF=defn.datum_params[3];var Ry_BF=defn.datum_params[4];var Rz_BF=defn.datum_params[5];var M_BF=defn.datum_params[6];var x_tmp=(p.x-Dx_BF)/M_BF;var y_tmp=(p.y-Dy_BF)/M_BF;var z_tmp=(p.z-Dz_BF)/M_BF;p.x=x_tmp+Rz_BF*y_tmp-Ry_BF*z_tmp;p.y=-Rz_BF*x_tmp+y_tmp+Rx_BF*z_tmp;p.z=Ry_BF*x_tmp-Rx_BF*y_tmp+z_tmp;}}
function Listener(){this.listeners=new Array();this.values=new Array();this.addListener=function(param,listener,target){if(window.logger)logger.logEvent("addListener: "+param,this.id,target.id);if(!this.listeners[param]){this.listeners[param]=new Array();}
this.removeListener(param,listener,target);this.listeners[param].push(new Array(listener,target));if(!listener){alert(mbGetMessage("undefinedListener",target));}}
this.addFirstListener=function(param,listener,target){if(window.logger)logger.logEvent("addFirstListener: "+param,this.id,target.id);if(!this.listeners[param]){this.listeners[param]=new Array();}
this.removeListener(param,listener,target);this.listeners[param].unshift(new Array(listener,target));if(!listener){alert(mbGetMessage("undefinedListener",target));}}
this.removeListener=function(param,listener,target){if(this.listeners[param]){for(var i=0;i<this.listeners[param].length;i++){if(this.listeners[param][i][0]==listener&&this.listeners[param][i][1]==target){for(var j=i;j<this.listeners[param].length-1;j++){this.listeners[param][j]=this.listeners[param][j+1];}
this.listeners[param].pop();return;}}}}
this.callListeners=function(param,value){if(this.listeners[param]){var count=this.listeners[param].length;for(var i=0;i<count;i++){if(window.logger)logger.logEvent(param,this.id,this.listeners[param][i][1].id,value);if(this.listeners[param][i][0]){this.listeners[param][i][0](this.listeners[param][i][1],value);}else{alert(mbGetMessage("listenerError",param,this.listeners[param][i][1].id,this.listeners[param][i][0]));}}}}
this.setParam=function(param,value){this.values[param]=value;this.callListeners(param,value);}
this.getParam=function(param){return this.values[param];}}
mapbuilder.loadScript(baseDir+"/util/Listener.js");function ModelBase(modelNode,parentModel){Listener.apply(this);this.async=true;this.contentType="text/xml";this.modelNode=modelNode;var idAttr=modelNode.attributes.getNamedItem("id");if(idAttr){this.id=idAttr.nodeValue;}else{this.id="MbModel_"+mbIds.getId();}
var titleNode=modelNode.selectSingleNode("mb:title");if(titleNode){this.title=titleNode.firstChild.nodeValue;}else{this.title=this.id;}
if(modelNode.selectSingleNode("mb:debug"))this.debug="true";if(window.cgiArgs[this.id]){this.url=window.cgiArgs[this.id];}else if(window[this.id]){this.url=window[this.id];}else if(modelNode.url){this.url=modelNode.url;}else{var defaultModel=modelNode.selectSingleNode("mb:defaultModelUrl");if(defaultModel)this.url=defaultModel.firstChild.nodeValue;}
var method=modelNode.selectSingleNode("mb:method");if(method){this.method=method.firstChild.nodeValue;}else{this.method="get";}
var namespace=modelNode.selectSingleNode("mb:namespace");if(namespace){this.namespace=namespace.firstChild.nodeValue;}
var templateAttr=modelNode.attributes.getNamedItem("template");if(templateAttr){this.template=(templateAttr.nodeValue=="true")?true:false;this.modelNode.removeAttribute("template");}
var nodeSelectXpath=modelNode.selectSingleNode("mb:nodeSelectXpath");if(nodeSelectXpath){this.nodeSelectXpath=nodeSelectXpath.firstChild.nodeValue;}
this.config=new Array();this.getXpathValue=function(objRef,xpath){if(!objRef.doc)return null;node=objRef.doc.selectSingleNode(xpath);if(node&&node.firstChild){return node.firstChild.nodeValue;}else{return null;}}
this.setXpathValue=function(objRef,xpath,value,refresh){if(refresh==null)refresh=true;var node=objRef.doc.selectSingleNode(xpath);if(node){if(node.firstChild){node.firstChild.nodeValue=value;}else{dom=Sarissa.getDomDocument();v=dom.createTextNode(value);node.appendChild(v);}
if(refresh)objRef.setParam("refresh");return true;}else{return false;}}
this.setNewDoc=function(doc){this.doc=doc;}
this.loadModelDoc=function(objRef){if(objRef.url){objRef.callListeners("newModel");objRef.setParam("modelStatus","loading");if(objRef.contentType=="image"){objRef.doc=new Image();objRef.doc.src=objRef.url;}else{var xmlHttp=new XMLHttpRequest();var sUri=objRef.url;if(sUri.indexOf("http://")==0){if(objRef.method.toLowerCase()=="get"){sUri=getProxyPlusUrl(sUri);}else{sUri=config.proxyUrl;}}
xmlHttp.open(objRef.method,sUri,objRef.async);if(objRef.method.toLowerCase()=="post"){xmlHttp.setRequestHeader("content-type",objRef.contentType);xmlHttp.setRequestHeader("serverUrl",objRef.url);}
xmlHttp.onreadystatechange=function(){objRef.setParam("modelStatus",httpStatusMsg[xmlHttp.readyState]);if(xmlHttp.readyState==4){if(xmlHttp.status>=400){var errorMsg=mbGetMessage("errorLoadingDocument",sUri,xmlHttp.statusText,xmlHttp.responseText);alert(errorMsg);objRef.setParam("modelStatus",errorMsg);return;}else{if((xmlHttp.responseXML!=null)&&(xmlHttp.responseXML.root!=null)&&(xmlHttp.responseXML.root.children.length>0)){var doc=xmlHttp.responseXML;if(Sarissa.getParseErrorText(doc)==Sarissa.PARSED_OK){objRef.setNewDoc(doc);objRef.finishLoading();}else{alert(mbGetMessage("parseError",Sarissa.getParseErrorText(doc)));}
return;}
if(xmlHttp.responseText!=null){var doc=Sarissa.getDomDocument();doc.async=false;doc=(new DOMParser()).parseFromString(xmlHttp.responseText.replace(/>\s+</g,"><"),"text/xml")
if(doc==null){alert(mbGetMessage("documentParseError",Sarissa.getParseErrorText(objRef.doc)));}else{if(Sarissa.getParseErrorText(doc)==Sarissa.PARSED_OK){objRef.setNewDoc(doc);objRef.finishLoading();}else{alert(mbGetMessage("parseError",Sarissa.getParseErrorText(doc)));}}
return;}}}}
xmlHttp.send(objRef.postData);if(!objRef.async){if(xmlHttp.status>=400){var errorMsg=mbGetMessage("errorLoadingDocument",sUri,xmlHttp.statusText,xmlHttp.responseText);alert(errorMsg);this.objRef.setParam("modelStatus",errorMsg);return;}else{if(null==xmlHttp.responseXML)alert(mbGetMessage("nullXmlResponse",xmlHttp.responseText));objRef.setNewDoc(xmlHttp.responseXML);objRef.finishLoading();}}}}}
this.addListener("reloadModel",this.loadModelDoc,this);this.setModel=function(objRef,newModel){objRef.doc=newModel;objRef.callListeners("newModel");if((newModel==null)&&objRef.url){objRef.url=null;}
if(!newModel)objRef.setParam("modelStatus",null);objRef.finishLoading();}
this.finishLoading=function(){if(this.doc){if(!_SARISSA_IS_SAFARI){this.doc.setProperty("SelectionLanguage","XPath");if(this.namespace)Sarissa.setXpathNamespaces(this.doc,this.namespace);}
if(this.debug)mbDebugMessage(this,"Loading Model:"+this.id+" "+(new XMLSerializer()).serializeToString(this.doc));this.callListeners("loadModel");}}
this.newRequest=function(objRef,httpPayload){var model=objRef;if(objRef.template){var parentNode=objRef.modelNode.parentNode;var newConfigNode;if(_SARISSA_IS_IE){newConfigNode=parentNode.appendChild(modelNode.cloneNode(true));}
else{newConfigNode=parentNode.appendChild(objRef.modelNode.ownerDocument.importNode(objRef.modelNode,true));}
newConfigNode.removeAttribute("id");newConfigNode.setAttribute("createByTemplate","true");model=objRef.createObject(newConfigNode);model.callListeners("init");if(!objRef.templates)objRef.templates=new Array();objRef.templates.push(model);}
model.url=httpPayload.url;if(!model.url)model.doc=null;model.method=httpPayload.method;model.postData=httpPayload.postData;model.loadModelDoc(model);}
this.deleteTemplates=function(){if(this.templates){while(model=this.templates.pop()){model.setParam("newModel");var parentNode=this.modelNode.parentNode;parentNode.removeChild(model.modelNode);}}}
this.saveModel=function(objRef){if(config.serializeUrl){var response=postGetLoad(config.serializeUrl,objRef.doc,"text/xml","/temp","sld.xml");if(!_SARISSA_IS_SAFARI){response.setProperty("SelectionLanguage","XPath");Sarissa.setXpathNamespaces(response,"xmlns:xlink='http://www.w3.org/1999/xlink'");}
var onlineResource=response.selectSingleNode("//OnlineResource");var fileUrl=onlineResource.attributes.getNamedItem("xlink:href").nodeValue;objRef.setParam("modelSaved",fileUrl);}else{alert(mbGetMessage("noSerializeUrl"));}}
this.createObject=function(configNode){var objectType=configNode.nodeName;if(!window[objectType]){alert("Can't find object: "+objectType);}
var newObject=new window[objectType](configNode,this);if(newObject){config.objects[newObject.id]=newObject;return newObject;}else{alert(mbGetMessage("errorCreatingObject",objectType));}}
this.loadObjects=function(objectXpath){var configObjects=this.modelNode.selectNodes(objectXpath);for(var i=0;i<configObjects.length;i++){if(configObjects[i].nodeName!="#text"&&configObjects[i].nodeName!="#comment")
{this.createObject(configObjects[i]);}}}
this.parseConfig=function(objRef){objRef.loadObjects("mb:widgets/*");objRef.loadObjects("mb:tools/*");objRef.loadObjects("mb:models/*");}
this.refresh=function(objRef){objRef.setParam("refresh");}
this.addListener("loadModel",this.refresh,this);this.init=function(objRef){objRef.callListeners("init");}
this.clearModel=function(objRef){objRef.doc=null;}
if(parentModel){this.parentModel=parentModel;this.parentModel.addListener("init",this.init,this);this.parentModel.addListener("loadModel",this.loadModelDoc,this);this.parentModel.addListener("newModel",this.clearModel,this);this.parseConfig(this);}}
var httpStatusMsg=['uninitialized','loading','loaded','interactive','completed'];mapbuilder.loadScript(baseDir+"/model/ModelBase.js");function StyledLayerDescriptor(modelNode,parent){ModelBase.apply(this,new Array(modelNode,parent));this.namespace="xmlns:sld='http://www.opengis.net/sld' xmlns:mb='http://mapbuilder.sourceforge.net/mapbuilder' xmlns:wmc='http://www.opengis.net/context' xmlns:wms='http://www.opengis.net/wms' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:ogc='http://www.opengis.net/ogc' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:wfs='http://www.opengis.net/wfs'";var sldNode=modelNode.selectSingleNode('mb:sldXPath');this.sldXPath=sldNode?sldNode.firstChild.nodeValue:"/sld:StyledLayerDescriptor";this.getSldNode=function(){return this.doc.selectSingleNode(this.sldXPath);}}
mapbuilder.loadScript(baseDir+"/model/ModelBase.js");function Config(url){this.doc=Sarissa.getDomDocument();this.doc.async=false;this.doc.validateOnParse=false;if(_SARISSA_IS_SAFARI)
{var xmlhttp=new XMLHttpRequest();xmlhttp.open("GET",url,false);xmlhttp.send(null);this.doc=xmlhttp.responseXML;}else
{this.doc.load(url);}
if(Sarissa.getParseErrorText(this.doc)!=Sarissa.PARSED_OK){alert("error loading config document: "+url);}
this.url=url;this.namespace="xmlns:mb='"+mbNsUrl+"'";if(!_SARISSA_IS_SAFARI){this.doc.setProperty("SelectionLanguage","XPath");Sarissa.setXpathNamespaces(this.doc,this.namespace);}
var configDoc=Sarissa.getDomDocument();configDoc.async=false;configDoc.validateOnParse=false;if(_SARISSA_IS_SAFARI){var xmlhttp=new XMLHttpRequest();xmlhttp.open("GET",baseDir+"/"+mbServerConfig,false);xmlhttp.send(null);configDoc=xmlhttp.responseXML;}else
{configDoc.load(baseDir+"/"+mbServerConfig);}
if(Sarissa.getParseErrorText(configDoc)!=Sarissa.PARSED_OK){}else{if(!_SARISSA_IS_SAFARI){configDoc.setProperty("SelectionLanguage","XPath");Sarissa.setXpathNamespaces(configDoc,this.namespace);}
var node=configDoc.selectSingleNode("/mb:MapbuilderConfig/mb:proxyUrl");if(node)this.proxyUrl=getNodeValue(node);node=configDoc.selectSingleNode("/mb:MapbuilderConfig/mb:serializeUrl");if(node)this.serializeUrl=getNodeValue(node);}
configDoc=null;this.loadConfigScripts=function(){mapbuilder.loadScriptsFromXpath(this.doc.selectNodes("//mb:models/*"),"model/");mapbuilder.loadScriptsFromXpath(this.doc.selectNodes("//mb:widgets/*"),"widget/");mapbuilder.loadScriptsFromXpath(this.doc.selectNodes("//mb:tools/*"),"tool/");var scriptFileNodes=this.doc.selectNodes("//mb:scriptFile");for(var i=0;i<scriptFileNodes.length;i++){scriptFile=getNodeValue(scriptFileNodes[i]);mapbuilder.loadScript(scriptFile);}}
this.defaultLang="en";this.lang=this.defaultLang;if(window.cgiArgs["language"]){this.lang=window.cgiArgs["language"];}else if(window.language){this.lang=window.language;}
var modelNode=this.doc.documentElement;this.skinDir=modelNode.selectSingleNode("mb:skinDir").firstChild.nodeValue;var proxyUrl=modelNode.selectSingleNode("mb:proxyUrl");if(proxyUrl)this.proxyUrl=getNodeValue(proxyUrl);var serializeUrl=modelNode.selectSingleNode("mb:serializeUrl");if(serializeUrl)this.serializeUrl=getNodeValue(serializeUrl);function loadWidgetText(config,dir){var widgetFile="/widgetText.xml";var widgetText;var widgetTextUrl=dir+"/"+config.lang+widgetFile;widgetText=Sarissa.getDomDocument();widgetText.async=false;widgetText.validateOnParse=false;if(typeof(inlineXSL)!="undefined"){var xmlString=inlineXSL[widgetTextUrl];xmlString=xmlString.replace(/DOUBLE_QUOTE/g,"\"");widgetText=(new DOMParser()).parseFromString(xmlString,"text/xml");}
else{if(_SARISSA_IS_SAFARI){var xmlhttp=new XMLHttpRequest();xmlhttp.open("GET",widgetTextUrl,false);xmlhttp.send(null);widgetText=xmlhttp.responseXML;}
else{try{widgetText.load(widgetTextUrl);}
catch(ignoredErr){}}}
if(Sarissa.getParseErrorText(widgetText)!=Sarissa.PARSED_OK){var errMsg="Error loading widgetText document: "+widgetTextUrl;if(config.lang==config.defaultLang){alert(errMsg);}
else{alert(errMsg+"\nFalling back on default language=\""+config.defaultLang+"\"");config.lang=config.defaultLang;widgetTextUrl=dir+"/"+config.lang+widgetFile;if(_SARISSA_IS_SAFARI){var xmlhttp=new XMLHttpRequest();xmlhttp.open("GET",widgetTextUrl,false);xmlhttp.send(null);widgetText=xmlhttp.responseXML;}
else{widgetText.load(widgetTextUrl);}
if(Sarissa.getParseErrorText(widgetText)!=Sarissa.PARSED_OK){alert("Falling back on default language failed!");}}}
if(!_SARISSA_IS_SAFARI){widgetText.setProperty("SelectionLanguage","XPath");Sarissa.setXpathNamespaces(widgetText,config.namespace);}
return widgetText;}
this.widgetText=loadWidgetText(this,baseDir+"/text");userWidgetTextDir=modelNode.selectSingleNode("mb:userWidgetTextDir");if(userWidgetTextDir){var userWidgetText=loadWidgetText(this,getNodeValue(userWidgetTextDir));if(userWidgetText){var userWidgets=userWidgetText.selectSingleNode("/mb:WidgetText/mb:widgets");var configWidgets=this.widgetText.selectSingleNode("/mb:WidgetText/mb:widgets");if(userWidgets&&configWidgets){Sarissa.copyChildNodes(userWidgets,configWidgets,true);}
var userMessages=userWidgetText.selectSingleNode("/mb:WidgetText/mb:messages");var configMessages=this.widgetText.selectSingleNode("/mb:WidgetText/mb:messages");if(userMessages&&configMessages){Sarissa.copyChildNodes(userMessages,configMessages,true);}}}
this.objects=new Object();ModelBase.apply(this,new Array(modelNode));this.loadModel=function(modelId,modelUrl){var model=this.objects[modelId];if(model&&modelUrl){var httpPayload=new Object();httpPayload.method=model.method;httpPayload.url=modelUrl;model.newRequest(model,httpPayload);}else{alert(mbGetMessage("errorLoadingModel",modelId,modelUrl));}}
this.paintWidget=function(widget){if(widget){widget.paint(widget,widget.id);}else{alert(mbGetMessage("errorPaintingWidget"));}}}
if(document.readyState==null){mapbuilder.setLoadState(MB_LOAD_CONFIG);config=new Config(mbConfigUrl);config[config.id]=config;config.loadConfigScripts();}
mapbuilder.loadScript(baseDir+"/model/ModelBase.js");mapbuilder.loadScript(baseDir+"/model/Proj.js");function Context(modelNode,parent){ModelBase.apply(this,new Array(modelNode,parent));this.namespace="xmlns:mb='http://mapbuilder.sourceforge.net/mapbuilder' xmlns:wmc='http://www.opengis.net/context' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'";this.setHidden=function(layerName,hidden){var hiddenValue="0";if(hidden)hiddenValue="1";var layer=this.doc.selectSingleNode("/wmc:ViewContext/wmc:LayerList/wmc:Layer[wmc:Name='"+layerName+"']");if(layer)layer.setAttribute("hidden",hiddenValue);this.callListeners("hidden",layerName);}
this.getHidden=function(layerName){var hidden=1;var layer=this.doc.selectSingleNode("/wmc:ViewContext/wmc:LayerList/wmc:Layer[wmc:Name='"+layerName+"']");if(layer)hidden=layer.getAttribute("hidden");return hidden;}
this.getBoundingBox=function(){var bbox=new Array();var boundingBox=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:BoundingBox");bbox[0]=parseFloat(boundingBox.getAttribute("minx"));bbox[1]=parseFloat(boundingBox.getAttribute("miny"));bbox[2]=parseFloat(boundingBox.getAttribute("maxx"));bbox[3]=parseFloat(boundingBox.getAttribute("maxy"));return bbox;}
this.setBoundingBox=function(boundingBox){var bbox=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:BoundingBox");bbox.setAttribute("minx",boundingBox[0]);bbox.setAttribute("miny",boundingBox[1]);bbox.setAttribute("maxx",boundingBox[2]);bbox.setAttribute("maxy",boundingBox[3]);this.callListeners("bbox",boundingBox);}
this.initBbox=function(objRef){if(window.cgiArgs["bbox"]){var bbox=window.cgiArgs["bbox"].split(',');objRef.map.zoomToExtent(new OpenLayers.Bounds(bbox[0],bbox[1],bbox[2],bbox[3]));objRef.setBoundingBox(objRef.map.getExtent().toBBOX().split(','));}}
this.addListener("loadModel",this.initBbox,this);this.initAoi=function(objRef){if(window.cgiArgs["aoi"]){var aoi=window.cgiArgs["aoi"].split(',');objRef.setParam("aoi",new Array(new Array(aoi[0],aoi[3]),new Array(aoi[2],aoi[1])));}}
this.addListener("loadModel",this.initAoi,this);this.setSRS=function(srs){var bbox=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:BoundingBox");bbox.setAttribute("SRS",srs);this.callListeners("srs");}
this.getSRS=function(){var bbox=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:BoundingBox");srs=bbox.getAttribute("SRS");srs=srs?srs:'EPSG:4326';return srs;}
this.initProj=function(objRef){objRef.proj=new Proj(objRef.getSRS());}
this.addFirstListener("loadModel",this.initProj,this);this.getWindowWidth=function(){var win=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:Window");return win.getAttribute("width");}
this.setWindowWidth=function(width){var win=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:Window");win.setAttribute("width",width);this.callListeners("resize");}
this.getWindowHeight=function(){var win=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:Window");return win.getAttribute("height");}
this.setWindowHeight=function(height){var win=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:Window");win.setAttribute("height",height);this.callListeners("resize");}
this.getWindowSize=function(){var win=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:Window");return new Array(win.getAttribute("width"),win.getAttribute("height"));}
this.setWindowSize=function(size){var width=size[0];var height=size[1];var win=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:Window");win.setAttribute("width",width);win.setAttribute("height",height);this.callListeners("resize");}
this.getFeatureNode=function(featureName){return this.doc.selectSingleNode(this.nodeSelectXpath+"[wmc:Name='"+featureName+"']");}
this.getServerUrl=function(requestName,method,feature){return feature.selectSingleNode("wmc:Server/wmc:OnlineResource").getAttribute("xlink:href");}
this.getVersion=function(feature){return feature.selectSingleNode("wmc:Server").getAttribute("version");}
this.getMethod=function(feature){return feature.selectSingleNode("wmc:Server/wmc:OnlineResource").getAttribute("wmc:method");}
this.getQueryableLayers=function(){var listNodeArray=this.doc.selectNodes("/wmc:ViewContext/wmc:LayerList/wmc:Layer[attribute::queryable='1']/wmc:Name");return listNodeArray;}
this.getAllLayers=function(){var listNodeArray=this.doc.selectNodes("/wmc:ViewContext/wmc:LayerList/wmc:Layer");return listNodeArray;}
this.getLayer=function(layerName){var layer=this.doc.selectSingleNode("/wmc:ViewContext/wmc:LayerList/wmc:Layer[wmc:Name='"+layerName+"']");return layer;}
this.addLayer=function(objRef,layerNode){var parentNode=objRef.doc.selectSingleNode("/wmc:ViewContext/wmc:LayerList");parentNode.appendChild(layerNode.cloneNode(true));objRef.modified=true;}
this.addFirstListener("addLayer",this.addLayer,this);this.addSLD=function(objRef,sldNode){var layerName=sldNode.selectSingleNode("//Name").firstChild.nodeValue;var parentNode=objRef.doc.selectSingleNode("//wmc:Layer[wmc:Name='"+layerName+"']");parentNode.appendChild(sldNode.cloneNode(true));objRef.modified=true;var attribs=[];attribs["sld_body"]=(new XMLSerializer()).serializeToString(objRef.doc.selectSingleNode("//wmc:Layer[wmc:Name='"+layerName+"']/wmc:StyleList/wmc:Style/wmc:SLD/wmc:StyledLayerDescriptor"));objRef.map.mbMapPane.refreshLayer(objRef.map.mbMapPane,layerName,attribs);}
this.addFirstListener("addSLD",this.addSLD,this);this.deleteLayer=function(objRef,layerName){var deletedNode=objRef.getLayer(layerName);if(!deletedNode){alert(mbGetMessage("nodeNotFound",layerName));return;}
deletedNode.parentNode.removeChild(deletedNode);objRef.modified=true;}
this.addFirstListener("deleteLayer",this.deleteLayer,this);this.moveLayerUp=function(objRef,layerName){var movedNode=objRef.getLayer(layerName);var sibNode=movedNode.selectSingleNode("following-sibling::*");if(!sibNode){alert(mbGetMessage("cantMoveUp",layerName));return;}
movedNode.parentNode.insertBefore(sibNode,movedNode);objRef.modified=true;}
this.addFirstListener("moveLayerUp",this.moveLayerUp,this);this.moveLayerDown=function(objRef,layerName){var movedNode=objRef.getLayer(layerName);var listNodeArray=movedNode.selectNodes("preceding-sibling::*");var sibNode=listNodeArray[listNodeArray.length-1];if(!sibNode){alert(mbGetMessage("cantMoveDown",layerName));return;}
movedNode.parentNode.insertBefore(movedNode,sibNode);objRef.modified=true;}
this.addFirstListener("moveLayerDown",this.moveLayerDown,this);this.setExtension=function(extensionNode){var extension=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:Extension");if(!extension){var general=this.doc.selectSingleNode("/wmc:ViewContext/wmc:General");var newChild=createElementWithNS(this.doc,"Extension",'http://www.opengis.net/context');extension=general.appendChild(newChild);}
return extension.appendChild(extensionNode);}
this.getExtension=function(){return this.doc.selectSingleNode("/wmc:ViewContext/wmc:General/wmc:Extension");}
this.initTimeExtent=function(objRef){var timeNodes=objRef.doc.selectNodes("//wmc:Dimension[@name='time']");for(var i=0;i<timeNodes.length;++i){var extentNode=timeNodes[i];objRef.timestampList=createElementWithNS(objRef.doc,"TimestampList",mbNsUrl);var layerName=extentNode.parentNode.parentNode.selectSingleNode("wmc:Name").firstChild.nodeValue;objRef.timestampList.setAttribute("layerName",layerName);var times=extentNode.firstChild.nodeValue.split(",");for(var j=0;j<times.length;++j){var params=times[j].split("/");if(params.length==3){var start=setISODate(params[0]);var stop=setISODate(params[1]);var period=params[2];var parts=period.match(/^P((\d*)Y)?((\d*)M)?((\d*)D)?T?((\d*)H)?((\d*)M)?((.*)S)?/);for(var i=1;i<parts.length;++i){if(!parts[i])parts[i]=0;}
do{var timestamp=createElementWithNS(objRef.doc,"Timestamp",mbNsUrl);timestamp.appendChild(objRef.doc.createTextNode(getISODate(start)));objRef.timestampList.appendChild(timestamp);start.setFullYear(start.getFullYear()+parseInt(parts[2],10));start.setMonth(start.getMonth()+parseInt(parts[4],10));start.setDate(start.getDate()+parseInt(parts[6],10));start.setHours(start.getHours()+parseInt(parts[8],10));start.setMinutes(start.getMinutes()+parseInt(parts[10],10));start.setSeconds(start.getSeconds()+parseFloat(parts[12]));}while(start.getTime()<=stop.getTime());}else{var timestamp=createElementWithNS(objRef.doc,"Timestamp",mbNsUrl);timestamp.appendChild(objRef.doc.createTextNode(times[j]));objRef.timestampList.appendChild(timestamp);}}
objRef.setExtension(objRef.timestampList);}}
this.addFirstListener("loadModel",this.initTimeExtent,this);this.getCurrentTimestamp=function(layerName){var index=this.getParam("timestamp");return this.timestampList.childNodes[index].firstChild.nodeValue;}
this.setOpacity=function(layerName,Opacity){var layer=this.doc.selectSingleNode("/wmc:ViewContext/wmc:LayerList/wmc:Layer[wmc:Name='"+layerName+"']");if(layer)layer.setAttribute("opacity",Opacity);this.callListeners("opacity",layerName);}
this.getOpacity=function(layerName){var opacity=1;var layer=this.doc.selectSingleNode("/wmc:ViewContext/wmc:LayerList/wmc:Layer[wmc:Name='"+layerName+"']");if(layer)opacity=layer.getAttribute("opacity");return opacity;}}
mapbuilder.loadScript(baseDir+"/model/ModelBase.js");function Transaction(modelNode,parent){ModelBase.apply(this,new Array(modelNode,parent));this.namespace="xmlns:gml='http://www.opengis.net/gml' xmlns:wfs='http://www.opengis.net/wfs'";}
mapbuilder.loadScript(baseDir+"/model/ModelBase.js");function MultiFeatureCollection(modelNode,parent){ModelBase.apply(this,new Array(modelNode,parent));var featureTagName=modelNode.selectSingleNode("mb:featureTagName");if(featureTagName){this.featureTagName=featureTagName.firstChild.nodeValue;}else{this.featureTagName="topp:CITY_NAME";}
var coordsTagName=modelNode.selectSingleNode("mb:coordsTagName");if(coordsTagName){this.coordsTagName=coordsTagName.firstChild.nodeValue;}else{this.coordsTagName="//gml:coordinates";}
var nodeSelectXpath=modelNode.selectSingleNode("mb:nodeSelectXpath");if(nodeSelectXpath){this.nodeSelectXpath=nodeSelectXpath.firstChild.nodeValue;}
var coordSelectXpath=modelNode.selectSingleNode("mb:coordSelectXpath");if(coordSelectXpath){this.coordSelectXpath=coordSelectXpath.firstChild.nodeValue;}else{this.coordSelectXpath="topp:the_geom/gml:MultiPoint/gml:pointMember/gml:Point/gml:coordinates";}
this.type="other";this.convertCoords=function(objRef){if(objRef.doc&&objRef.containerModel&&objRef.containerModel.doc){var coordNodes=objRef.doc.selectNodes(objRef.coordsTagName);if(coordNodes.length>0&&objRef.containerModel){var srsNode=coordNodes[0].selectSingleNode("ancestor-or-self::*/@srsName");if(srsNode&&(srsNode.nodeValue.toUpperCase()!=objRef.containerModel.getSRS().toUpperCase())){var sourceProj=new Proj(srsNode.nodeValue);objRef.setParam("modelStatus",mbGetMessage("convertingCoords"));var containerProj=new Proj(objRef.containerModel.getSRS());for(var i=0;i<coordNodes.length;++i){var coords=coordNodes[i].firstChild.nodeValue;var coordsArray=coords.split(' ');var newCoords='';for(var j=0;j<coordsArray.length;++j){var xy=coordsArray[j].split(',');if(xy.length==2){var pt=new PT(xy[0],xy[1]);cs_transform(sourceProj,containerProj,pt);newCoords+=pt.join(',')+' ';}}
coordNodes[i].firstChild.nodeValue=newCoords;}}}}}
this.loadWfsRequests=function(objRef){if(objRef.containerModel.doc!=null){var featureTypes=objRef.containerModel.doc.selectNodes("/wmc:OWSContext/wmc:ResourceList/wmc:FeatureType");if(featureTypes.length>0){for(var i=0;i<featureTypes.length;i++){var httpPayload=new Object();var wfsFeature=featureTypes[i]
var server=wfsFeature.selectSingleNode("wmc:Server")
var onlineResource=server.selectSingleNode("wmc:OnlineResource")
httpPayload.method=onlineResource.getAttribute("method")
httpPayload.url=onlineResource.getAttribute("xlink:href")
var query=wfsFeature.selectSingleNode("wfs:GetFeature")
httpPayload.postData=(new XMLSerializer()).serializeToString(query)
objRef.wfsFeature=wfsFeature
objRef.newRequest(objRef,httpPayload);}}}}
this.addFirstListener("loadModel",this.convertCoords,this);if(this.containerModel)this.containerModel.addListener("loadModel",this.loadWfsRequests,this);this.setHidden=function(featureName,hidden){this.hidden=hidden;this.callListeners("hidden",featureName);}
this.getHidden=function(layerName){return this.hidden;}
this.hidden=false;this.getFeatureNodes=function(){var featureMember=this.doc.selectSingleNode(this.nodeSelectXpath);if(featureMember!=null)
return featureMember.childNodes
else
return null;}
this.getFeatureName=function(featureNode){var labelNode=featureNode.selectSingleNode(this.featureTagName);return labelNode?labelNode.firstChild.nodeValue:mbGetMessage("noRssTitle");}
this.getFeatureId=function(featureNode){return featureNode.getAttribute("fid")?featureNode.getAttribute("fid"):"no_id";}
this.getFeatureEndPoint=function(featureNode){var coords=featureNode.selectSingleNode(this.coordSelectXpath);var coords=featureNode.selectSingleNode(coordSelectXpath);if(coords)coords=coords.firstChild.nodeValue;if(coords){var coordsArray=coords.split(' ');if(coordsArray.length==0)return null;var xy=coordsArray[coordsArray.length-1].split(',');if(xy.length==2){return xy;}else{return null;}}}
this.getFeatureGeometry=function(featureNode){var geometryTag=featureNode.selectSingleNode(this.coordsTagName);if(geometryTag!=null)
return geometryTag.firstChild;else{alert(mbGetMessage("invalidGeom",(new XMLSerializer()).serializeToString(featureNode)));}}
this.getInnerText=function(node){if(typeof node.textContent!='undefined'){return node.textContent;}
else if(typeof node.innerText!='undefined'){return node.innerText;}
else if(typeof node.text!='undefined'){return node.text;}
else{switch(node.nodeType){case 3:case 4:return node.nodeValue;break;case 1:case 11:var innerText='';for(var i=0;i<node.childNodes.length;i++){innerText+=this.getInnerText(node.childNodes[i]);}
return innerText;break;default:return'';}}}
this.setNewDoc=function(doc){var gmlNS="";var myNS="";var wfsNS="";if((navigator.appVersion.indexOf("MSIE")>0)||(navigator.userAgent.indexOf("Firefox/3")>-1)){gmlNS="gml:";myNS="myns:";wfsNS="wfs:";}
var doc_type="other";if(doc){if(doc.getElementsByTagName(myNS+'roads').length||doc.getElementsByTagName(myNS+'unknown_roads').length||doc.getElementsByTagName(myNS+'line_roads').length){doc_type="roads";}}
if(!this.doc||!this.doc.getElementsByTagName(gmlNS+'featureMember').length||(this.type!="roads")||!doc.getElementsByTagName(gmlNS+'featureMember').length||(doc_type!="roads")){this.doc=doc;this.type=doc_type;return;}
var new_feature=doc.getElementsByTagName(gmlNS+'featureMember')[0];var new_feature_id=this.getInnerText(new_feature.getElementsByTagName(myNS+'id')[0]);var current_features=this.doc.getElementsByTagName(gmlNS+'featureMember');for(var i=0;i<current_features.length;++i){var id=this.getInnerText(current_features[i].getElementsByTagName(myNS+'id')[0]);if(id==new_feature_id){current_features[i].parentNode.removeChild(current_features[i]);return;}}
this.doc.getElementsByTagName(wfsNS+'FeatureCollection')[0].appendChild(new_feature);}}
mapbuilder.loadScript(baseDir+"/model/ModelBase.js");function FeatureCollection(modelNode,parent){ModelBase.apply(this,new Array(modelNode,parent));var featureTagName=modelNode.selectSingleNode("mb:featureTagName");if(featureTagName){this.featureTagName=featureTagName.firstChild.nodeValue;}else{this.featureTagName="topp:CITY_NAME";}
var coordsTagName=modelNode.selectSingleNode("mb:coordsTagName");if(coordsTagName){this.coordsTagName=coordsTagName.firstChild.nodeValue;}else{this.coordsTagName="//gml:coordinates";}
var nodeSelectXpath=modelNode.selectSingleNode("mb:nodeSelectXpath");if(nodeSelectXpath){this.nodeSelectXpath=nodeSelectXpath.firstChild.nodeValue;}
var coordSelectXpath=modelNode.selectSingleNode("mb:coordSelectXpath");if(coordSelectXpath){this.coordSelectXpath=coordSelectXpath.firstChild.nodeValue;}else{this.coordSelectXpath="topp:the_geom/gml:MultiPoint/gml:pointMember/gml:Point/gml:coordinates";}
this.script=null;this.setScript=function(objRef,script){objRef.script=script;}
this.getScript=function(objRef){return objRef.script;}
this.convertCoords=function(objRef){if(objRef.doc&&objRef.containerModel&&objRef.containerModel.doc){var coordNodes=objRef.doc.selectNodes(objRef.coordsTagName);if(coordNodes.length>0&&objRef.containerModel){var srsNode=coordNodes[0].selectSingleNode("ancestor-or-self::*/@srsName");if(srsNode&&(srsNode.nodeValue.toUpperCase()!=objRef.containerModel.getSRS().toUpperCase())){var sourceProj=new Proj(srsNode.nodeValue);objRef.setParam("modelStatus",mbGetMessage("convertingCoords"));var containerProj=new Proj(objRef.containerModel.getSRS());for(var i=0;i<coordNodes.length;++i){var coords=coordNodes[i].firstChild.nodeValue;var coordsArray=coords.split(' ');var newCoords='';for(var j=0;j<coordsArray.length;++j){var xy=coordsArray[j].split(',');if(xy.length==2){var pt=new PT(xy[0],xy[1]);cs_transform(sourceProj,containerProj,pt);newCoords+=pt.join(',')+' ';}}
coordNodes[i].firstChild.nodeValue=newCoords;}}}}}
this.loadWfsRequests=function(objRef){if(objRef.containerModel.doc!=null){var featureTypes=objRef.containerModel.doc.selectNodes("/wmc:OWSContext/wmc:ResourceList/wmc:FeatureType");if(featureTypes.length>0){for(var i=0;i<featureTypes.length;i++){var httpPayload=new Object();var wfsFeature=featureTypes[i]
var server=wfsFeature.selectSingleNode("wmc:Server")
var onlineResource=server.selectSingleNode("wmc:OnlineResource")
httpPayload.method=onlineResource.getAttribute("method")
httpPayload.url=onlineResource.getAttribute("xlink:href")
var query=wfsFeature.selectSingleNode("wfs:GetFeature")
httpPayload.postData=(new XMLSerializer()).serializeToString(query)
objRef.wfsFeature=wfsFeature
objRef.newRequest(objRef,httpPayload);}}}}
this.addFirstListener("loadModel",this.convertCoords,this);if(this.containerModel)this.containerModel.addListener("loadModel",this.loadWfsRequests,this);this.setHidden=function(featureName,hidden){this.hidden=hidden;this.callListeners("hidden",featureName);}
this.getHidden=function(layerName){return this.hidden;}
this.hidden=false;this.getFeatureNodes=function(){return this.doc.selectNodes(this.nodeSelectXpath);}
this.getFeatureName=function(featureNode){var labelNode=featureNode.selectSingleNode(this.featureTagName);return labelNode?labelNode.firstChild.nodeValue:mbGetMessage("noRssTitle");}
this.getFeatureId=function(featureNode){return featureNode.getAttribute("fid")?featureNode.getAttribute("fid"):"no_id";}
this.getFeaturePoint=function(featureNode){var coords=featureNode.selectSingleNode(this.coordSelectXpath);if(coords){var point=coords.firstChild.nodeValue.split(',');return point}else{return new Array(0,0);}}
this.getFeatureGeometry=function(featureNode){var geometryTag=featureNode.selectSingleNode(this.coordsTagName);if(geometryTag!=null)
return geometryTag.firstChild;else{alert(mbGetMessage("invalidGeom",(new XMLSerializer()).serializeToString(featureNode)));}}}
mapbuilder.loadScript(baseDir+"/model/ModelBase.js");function ContextCollection(modelNode,parent){ModelBase.apply(this,new Array(modelNode,parent));this.insertContext=function(context,zindex){}
this.deleteContext=function(id){}
this.reorderContext=function(context,zindex){}
this.selectContext=function(context,selected){for(var i=0;i<this.listeners["select"].length;i++){this.listeners["select"][i][0](context,this.listeners["select"][i][1]);}}}
mapbuilder.loadScript(baseDir+"/util/openlayers/OpenLayers.js");mapbuilder.loadScript(baseDir+"/util/Util.js");mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");mapbuilder.loadScript(baseDir+"/tool/Extent.js");function MapPaneOL(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));loadCss('openlayers/style.css');OpenLayers.ImgPath=config.skinDir+'/images/openlayers/';this.containerNodeId=this.htmlTagId;model.containerModel=this.model;if(!this.model.extent){this.model.extent=new Extent(this.model);this.model.addFirstListener("loadModel",this.model.extent.firstInit,this.model.extent);}
var tileGutter=widgetNode.selectSingleNode("mb:tileGutter");this.tileGutter=tileGutter?parseInt(tileGutter.firstChild.nodeValue):0;var tileBuffer=widgetNode.selectSingleNode("mb:tileBuffer");this.tileBuffer=tileBuffer?parseInt(tileBuffer.firstChild.nodeValue):2;var tileSize=widgetNode.selectSingleNode("mb:tileSize");this.tileSize=tileSize?parseInt(tileSize.firstChild.nodeValue):256;var imageReproject=widgetNode.selectSingleNode("mb:imageReproject");this.imageReproject=imageReproject?imageReproject.firstChild.nodeValue:'false';if(this.imageReproject.match(/true/i)){this.imageReproject=true;}else{this.imageReproject=false;}
var imageBuffer=widgetNode.selectSingleNode("mb:imageBuffer");this.imageBuffer=imageBuffer?parseInt(imageBuffer.firstChild.nodeValue):2;var displayOutsideMaxExtent=widgetNode.selectSingleNode("mb:displayOutsideMaxExtent");this.displayOutsideMaxExtent=displayOutsideMaxExtent?displayOutsideMaxExtent.firstChild.nodeValue:'false';if(this.displayOutsideMaxExtent.match(/true/i)){this.displayOutsideMaxExtent=true;}else{this.displayOutsideMaxExtent=false;}
this.loadingLayerCount=0;this.refreshWmsLayers=function(objRef){var uniqueId=(new Date()).getTime();var layers=objRef.model.map.layers;for(var i in layers){if(layers[i].visibility&&(layers[i].CLASS_NAME.indexOf('OpenLayers.Layer.WMS')==0)){layers[i].mergeNewParams({uniqueId:uniqueId});}}}
this.model.addListener("refreshWmsLayers",this.refreshWmsLayers,this);this.model.addListener("refresh",this.paint,this);this.model.addListener("hidden",this.hidden,this);this.model.addListener("addLayer",this.addLayer,this);this.model.addListener("deleteLayer",this.deleteLayer,this);this.model.addListener("moveLayerUp",this.moveLayerUp,this);this.model.addListener("moveLayerDown",this.moveLayerDown,this);this.model.addListener("opacity",this.setOpacity,this);this.model.addListener("bbox",this.zoomToBbox,this);this.model.addListener("newModel",this.clearWidget2,this);}
MapPaneOL.prototype.paint=function(objRef,refresh){if(objRef.model.buttonBars&&objRef.model.map){for(var i in objRef.model.buttonBars){objRef.model.map.removeControl(objRef.model.buttonBars[i]);}
objRef.model.buttonBars=new Array();}
if(!objRef.model.map||refresh=="sld"){if(refresh=="sld"){objRef.clearWidget2(objRef);}
if(objRef.model.doc.selectSingleNode("//wmc:OWSContext"))
objRef.context="OWS";else if(objRef.model.doc.selectSingleNode("//wmc:ViewContext"))
objRef.context="View";else
alert(mbGetMessage("noContextDefined"));var proj=objRef.model.proj;var maxExtent=null;maxExtent=objRef.widgetNode.selectSingleNode("mb:maxExtent");maxExtent=(maxExtent)?maxExtent.firstChild.nodeValue.split(" "):null;if(!maxExtent){maxExtent=objRef.model.getBoundingBox();}
maxExtent=(maxExtent)?new OpenLayers.Bounds(maxExtent[0],maxExtent[1],maxExtent[2],maxExtent[3]):null;if(maxExtent==null)alert(mbGetMessage("noBboxInContext"));var maxResolution=null;maxResolution=objRef.widgetNode.selectSingleNode("mb:maxResolution");maxResolution=(maxResolution)?parseFloat(maxResolution.firstChild.nodeValue):"auto";var units=proj.units=='meters'?'m':proj.units;var resolutions=objRef.widgetNode.selectSingleNode("mb:resolutions");resolutions=resolutions?resolutions.firstChild.nodeValue.split(","):null;for(var r in resolutions){resolutions[r]=parseFloat(resolutions[r]);}
var scales=objRef.widgetNode.selectSingleNode("mb:scales");if(scales){scales=scales.firstChild.nodeValue.split(",");resolutions=new Array();for(var s in scales){resolutions.push(OpenLayers.Util.getResolutionFromScale(scales[s],units));}}
if(resolutions){objRef.model.extent.setZoomLevels(true,resolutions);}
else objRef.model.extent.setZoomLevels(false);var node=document.getElementById(objRef.containerNodeId);var fixedSize=null;fixedSize=objRef.widgetNode.selectSingleNode("mb:fixedSize");fixedSize=(fixedSize)?fixedSize.firstChild.nodeValue:null;if(fixedSize=="true"){node.style.width=objRef.model.getWindowWidth()+"px";node.style.height=objRef.model.getWindowHeight()+"px";}
var mapOptions={controls:[],projection:proj.srs,units:units,maxExtent:maxExtent,maxResolution:maxResolution,resolutions:resolutions,theme:null};objRef.model.map=new OpenLayers.Map(node,mapOptions);objRef.model.map.Z_INDEX_BASE.Control=10000;var layers=objRef.model.getAllLayers();if(!objRef.oLlayers){objRef.oLlayers=new Array();}
for(var i=0;i<=layers.length-1;i++){objRef.addLayer(objRef,layers[i]);}
var bbox=objRef.model.getBoundingBox();objRef.model.map.mbMapPane=objRef;objRef.model.map.events.register('moveend',objRef.model.map,objRef.updateContext);objRef.model.map.events.register('mouseup',objRef.model.map,objRef.updateMouse);objRef.model.callListeners("bbox");}}
MapPaneOL.prototype.updateContext=function(e){var objRef=e.object.mbMapPane;var bboxOL=objRef.model.map.getExtent().toBBOX().split(',');var ul=new Array(bboxOL[0],bboxOL[3]);var lr=new Array(bboxOL[2],bboxOL[1]);if(objRef.model.getWindowWidth()!=e.element.offsetWidth)
objRef.model.setWindowWidth(e.element.offsetWidth);if(objRef.model.getWindowHeight()!=e.element.offsetHeight)
objRef.model.setWindowHeight(e.element.offsetHeight);var currentAoi=objRef.model.getParam('aoi');var newAoi=new Array(ul,lr);if(!currentAoi||currentAoi.toString()!=newAoi.toString()){objRef.model.setBoundingBox(new Array(ul[0],lr[1],lr[0],ul[1]));objRef.model.extent.setSize(objRef.model.map.getResolution());objRef.model.setParam("aoi",newAoi);}}
MapPaneOL.prototype.updateMouse=function(e){var objRef=e.object.mbMapPane;if(objRef.model.map.mbCursor){objRef.model.map.div.style.cursor=objRef.model.map.mbCursor;}}
MapPaneOL.prototype.zoomToBbox=function(objRef){if(objRef.model.map){var bbox=objRef.model.getBoundingBox();var displayBbox=[];var extent=objRef.model.map.getExtent();if(extent){displayBbox=extent.toBBOX();}
if(bbox.toString()!=displayBbox.toString()){objRef.model.map.zoomToExtent(new OpenLayers.Bounds(bbox[0],bbox[1],bbox[2],bbox[3]));}}}
MapPaneOL.prototype.hidden=function(objRef,layerName){var vis=objRef.model.getHidden(layerName);if(vis=="1"){var hidden=false;}
else{var hidden=true;}
var tmpLayer=objRef.getLayer(objRef,layerName)
if(tmpLayer)tmpLayer.setVisibility(hidden);}
MapPaneOL.prototype.getLayer=function(objRef,layerName){return objRef.model.map.getLayer(objRef.oLlayers[layerName].id);}
MapPaneOL.prototype.deleteLayer=function(objRef,layerName){if(objRef.oLlayers[layerName])objRef.model.map.removeLayer(objRef.oLlayers[layerName]);}
MapPaneOL.prototype.deleteAllLayers=function(objRef){objRef.model.map.destroy();}
MapPaneOL.prototype.moveLayerUp=function(objRef,layerName){var map=objRef.model.map;map.raiseLayer(map.getLayer(objRef.oLlayers[layerName].id),1);}
MapPaneOL.prototype.moveLayerDown=function(objRef,layerName){objRef.model.map.raiseLayer(objRef.getLayer(objRef,layerName),-1);}
MapPaneOL.prototype.setOpacity=function(objRef,layerName){var _opacity="1";_opacity=objRef.model.getOpacity(layerName);objRef.getLayer(objRef,layerName).setOpacity(_opacity);}
MapPaneOL.prototype.addLayer=function(objRef,layerNode){var layer=layerNode;var service=layer.selectSingleNode("wmc:Server/@service");service=(service)?service.nodeValue:"";var title=layer.selectSingleNode("wmc:Title");title=(title)?title.firstChild.nodeValue:"";var name2=layer.selectSingleNode("wmc:Name");name2=(name2)?name2.firstChild.nodeValue:"";if(objRef.context=="OWS"){var href=layer.selectSingleNode("wmc:Server/wmc:OnlineResource/@xlink:href");href=(href)?getNodeValue(href):"";}
else{if(_SARISSA_IS_SAFARI){var nodehref=layer.selectSingleNode("wmc:Server/wmc:OnlineResource");var href=nodehref.attributes[1].nodeValue;}
else{if(_SARISSA_IS_OPERA){var href=layer.selectSingleNode("wmc:Server/wmc:OnlineResource").getAttributeNS("http://www.w3.org/1999/xlink","href");}else{var href=layer.selectSingleNode("wmc:Server/wmc:OnlineResource").getAttribute("xlink:href");}}}
var format=layer.selectSingleNode("wmc:FormatList/wmc:Format");format=(format)?format.firstChild.nodeValue:"image/gif";var vis=layer.selectSingleNode("@hidden");if(vis){if(vis.nodeValue=="1")
vis=false;else
vis=true;}
var query=layer.selectSingleNode("@queryable");if(query){if(query.nodeValue=="1")
query=true;else
query=false;}
var opacity=layer.selectSingleNode("@opacity");if(opacity)
opacity=opacity.nodeValue;else
opacity=false;var currentStyle=layer.selectSingleNode('wmc:StyleList/wmc:Style[@current=1]');var layerOptions={visibility:vis,transparent:"TRUE",projection:objRef.model.map.projection,queryable:query,maxExtent:objRef.model.map.maxExtent,maxResolution:objRef.model.map.maxResolution,alpha:false,isBaseLayer:false,displayOutsideMaxExtent:objRef.displayOutsideMaxExtent,buffer:1};switch(service){case"OGC":case"WMS":case"wms":case"OGC:WMS":if(!objRef.model.map.baseLayer){layerOptions.isBaseLayer=true;}
else{layerOptions.reproject=objRef.imageReproject;layerOptions.isBaseLayer=false;}
layerOptions.ratio=objRef.imageBuffer;layerOptions.singleTile=true;var params=new Array();params=sld2UrlParam(currentStyle);var layer;if(objRef.model.timestampList&&objRef.model.timestampList.getAttribute("layerName")==name2){var timestamp=objRef.model.timestampList.childNodes[0];layer=new OpenLayers.Layer.WMS(title,href,{layers:name2,transparent:"TRUE","TIME":timestamp.firstChild.nodeValue,format:format,sld:params.sld,sld_body:params.sld_body,styles:params.styles},layerOptions);this.model.addListener("timestamp",this.timestampListener,this);}
else{layer=new OpenLayers.Layer.WMS(title,href,{layers:name2,transparent:"TRUE",format:format,sld:params.sld,sld_body:params.sld_body,styles:params.styles},layerOptions);}
objRef.oLlayers[name2]=layer;layer.events.register("loadstart",objRef,function(){objRef.layerEvent(objRef,1);});layer.events.register("loadcancel",objRef,function(){objRef.layerEvent(objRef,0);});layer.events.register("loadend",objRef,function(){objRef.layerEvent(objRef,0);});break;case"WMS-C":case"OGC:WMS-C":if(!objRef.model.map.baseLayer){layerOptions.isBaseLayer=true;}
else{layerOptions.reproject=objRef.imageReproject;layerOptions.isBaseLayer=false;}
layerOptions.gutter=objRef.tileGutter;layerOptions.buffer=objRef.tileBuffer;layerOptions.tileSize=new OpenLayers.Size(objRef.tileSize,objRef.tileSize);var params=new Array();params=sld2UrlParam(currentStyle);objRef.oLlayers[name2]=new OpenLayers.Layer.WMS(title,href,{layers:name2,transparent:"TRUE",format:format,sld:params.sld,sld_body:params.sld_body,styles:params.styles},layerOptions);break;case"wfs":case"OGC:WFS":style=sld2OlStyle(currentStyle);if(style){layerOptions.style=style;}
else{layerOptions.style=objRef.getWebSafeStyle(objRef,2*i+1);}
layerOptions.featureClass=OpenLayers.Feature.WFS;objRef.oLlayers[name2]=new OpenLayers.Layer.WFS(title,href,{typename:name2,maxfeatures:1000},layerOptions);break;case"gml":case"FMReport":case"OGC:GML":style=sld2OlStyle(currentStyle);if(style){layerOptions.style=style;}
else{layerOptions.style=objRef.getWebSafeStyle(objRef,2*i+1);}
objRef.oLlayers[name2]=new OpenLayers.Layer.GML(title,href,layerOptions);if(service=='FMReport'&&window.gmlReports)window.gmlReports.initLayer(objRef.oLlayers[name2]);break;case"GMAP":case"Google":layerOptions.projection="EPSG:41001";layerOptions.units="degrees";objRef.model.map.units="degrees";layerOptions.maxExtent=new OpenLayers.Bounds("-180","-90","180","90");layerOptions.isBaseLayer=true;objRef.oLlayers[name2]=new OpenLayers.Layer.Google("Google Satellite",{type:G_SATELLITE_MAP,maxZoomLevel:18},layerOptions);break;case"YMAP":case"Yahoo":layerOptions.isBaseLayer=true;objRef.oLlayers[name2]=new OpenLayers.Layer.Yahoo("Yahoo");break;case"VE":case"Microsoft":layerOptions.isBaseLayer=true;objRef.oLlayers[name2]=new OpenLayers.Layer.VirtualEarth("VE",{minZoomLevel:0,maxZoomLevel:18,type:VEMapStyle.Hybrid});break;case"MultiMap":layerOptions.isBaseLayer=true;objRef.oLlayers[name2]=new OpenLayers.Layer.MultiMap("MultiMap");break;default:alert(mbGetMessage("layerTypeNotSupported",service));}
if(opacity&&objRef.oLlayers[name2]){objRef.oLlayers[name2].setOpacity(opacity);}
objRef.model.map.addLayer(objRef.oLlayers[name2]);}
MapPaneOL.prototype.getWebSafeStyle=function(objRef,colorNumber){colors=new Array("00","33","66","99","CC","FF");colorNumber=(colorNumber)?colorNumber:0;colorNumber=(colorNumber<0)?0:colorNumber;colorNumber=(colorNumber>215)?215:colorNumber;i=parseInt(colorNumber/36);j=parseInt((colorNumber-i*36)/6);k=parseInt((colorNumber-i*36-j*6));var color="#"+colors[i]+colors[j]+colors[k];var style=new Object();style.fillColor=color;style.strokeColor=color;style.map=objRef.model.map;return style;}
MapPaneOL.prototype.refreshLayer=function(objRef,layerName,newParams){newParams['version']=Math.random();objRef.getLayer(objRef,layerName).mergeNewParams(newParams);}
MapPaneOL.prototype.clearWidget2=function(objRef){if(objRef.model.map){objRef.model.map.destroy();var node=document.getElementById(objRef.containerNodeId);var outputNode=document.getElementById(objRef.model.id+"Container_OpenLayers_ViewPort");if(node&&outputNode){node.removeChild(outputNode);}
objRef.model.map=null;objRef.oLlayers=null;}}
MapPaneOL.prototype.layerEvent=function(objRef,loading){if(loading)objRef.loadingLayerCount++;else if(objRef.loadingLayerCount>0)objRef.loadingLayerCount--;if(!objRef.loadingLayerCount)objRef.model.setParam('modelStatus');else{var message=mbGetMessage((objRef.loadingLayerCount>1)?"loadingLayers":"loadingLayer",objRef.loadingLayerCount);objRef.model.setParam("modelStatus",message);}}
MapPaneOL.prototype.timestampListener=function(objRef,timestampIndex){var layerName=objRef.model.timestampList.getAttribute("layerName");var timestamp=objRef.model.timestampList.childNodes[timestampIndex];if((layerName)&&(timestamp)){var curLayer=objRef.oLlayers[layerName];var oldImageUrl=curLayer.grid[0][0].imgDiv.src;var newImageUrl=oldImageUrl;newImageUrl=newImageUrl.replace(/TIME\=.*?\&/,'TIME='+timestamp.firstChild.nodeValue+'&');function imageLoaded(){window.movieLoop.frameIsLoading=false;}
window.movieLoop.frameIsLoading=true;var element=curLayer.grid[0][0].imgDiv;if(element.addEventListener){element.addEventListener("load",imageLoaded,false);}else if(element.attachEvent){element.attachEvent('onload',imageLoaded);}
element.src=newImageUrl;}}
mapbuilder.loadScript(baseDir+"/util/openlayers/OpenLayers.js");mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function LinkView(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));this.linkView=null;this.model.addListener("refresh",this.addLinkView,this);}
LinkView.prototype.addLinkView=function(objRef){if(objRef.getNode()&&objRef.model&&objRef.model.map){var outputNode=document.getElementById(objRef.outputNodeId+"_linkview");if(!outputNode){outputNode=document.createElement("div");outputNode.setAttribute("id",objRef.outputNodeId+"_linkview");outputNode.className="linkView";outputNode.style.zIndex=1000;outputNode.style.position="absolute";outputNode.style.right='0px';outputNode.style.bottom='0px';objRef.getNode().appendChild(outputNode);}
var messageNode=document.getElementById(objRef.htmlTagId+"_messageNode");if(!messageNode){messageNode=document.createElement("a");messageNode.setAttribute("id",objRef.htmlTagId+"_messageNode");var txt=document.createTextNode("קישור למפה זו");messageNode.appendChild(txt);messageNode.href="";objRef.getNode().appendChild(messageNode);}
var map=objRef.model.map;var permalink=new OpenLayers.Control.Permalink(objRef.htmlTagId+"_messageNode");map.addControl(permalink);objRef.linkView=permalink;}}
mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function MapProblems(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));var mapContainerNode=widgetNode.selectSingleNode("mb:mapContainerId");if(mapContainerNode){this.containerNodeId=mapContainerNode.firstChild.nodeValue;}
this.tc=widgetNode.selectSingleNode("mb:targetContext").firstChild.nodeValue;this.model.addListener("bbox",this.update,this);this.model.addListener("refresh",this.paint,this);}
MapProblems.prototype.paint=function(objRef){if(objRef.getNode()){var outputNode=document.getElementById(objRef.outputNodeId+"_mapprobs");if(!outputNode){outputNode=document.createElement("div");outputNode.setAttribute("id",objRef.outputNodeId+"_mapprobs");outputNode.className="mapProblems";outputNode.style.zIndex=1000;outputNode.style.position="absolute";outputNode.style.right='0px';outputNode.style.bottom='0px';objRef.getNode().appendChild(outputNode);}
if(objRef.updateMessage){var messageNode=document.getElementById(objRef.htmlTagId+"_messageNode");if(!messageNode){messageNode=document.createElement("a");messageNode.setAttribute("id",objRef.htmlTagId+"_messageNode");var txt=document.createTextNode("רענן בעיות מפה");messageNode.appendChild(txt);objRef.getNode().appendChild(messageNode);}
messageNode.href="edit_map.html?bbox="+objRef.updateMessage[0]+","+objRef.updateMessage[1]+","+objRef.updateMessage[2]+","+objRef.updateMessage[3];messageNode.onclick=function(){objRef.sendRefresh(objRef);return false;}}}}
MapProblems.prototype.clear=function(objRef){var outputNode=document.getElementById(objRef.htmlTagId+"_messageNode");if(outputNode)objRef.getNode().removeChild(outputNode);}
MapProblems.prototype.update=function(objRef,message){if(message){objRef.updateMessage=message;objRef.paint(objRef);}else{objRef.clear(objRef);}}
MapProblems.prototype.sendRefresh=function(objRef){FM_exec_cmd(this.model,"bbox="+escape(objRef.updateMessage[0]+" "+objRef.updateMessage[1]+", "+objRef.updateMessage[2]+" "+objRef.updateMessage[3]),'/map_edit/map_problems.php',objRef.sendDone.bind(objRef));}
MapProblems.prototype.sendDone=function(error){if(!error){if(!this.targetContext){this.targetContext=window.config.objects[this.tc];}
this.targetContext.callListeners("refreshGmlRenderers");this.targetContext.callListeners("refreshWmsLayers");}}
mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function Loading2(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));var imageSrc=widgetNode.selectSingleNode("mb:imageSrc");if(imageSrc){this.imageSrc=config.skinDir+imageSrc.firstChild.nodeValue;}else{this.imageSrc=config.skinDir+"/images/Loading.gif";}
var textMessage=widgetNode.selectSingleNode("mb:textMessage");if(textMessage){this.textMessage=textMessage.firstChild.nodeValue;}else{this.textMessage=mbGetMessage("docLoading");}
this.updateMessage=this.textMessage;this.mapContainerNode=widgetNode.selectSingleNode("mb:mapContainerId");if(this.mapContainerNode){this.containerNodeId=this.mapContainerNode.firstChild.nodeValue;this.htmlTagId=this.containerNodeId;}
this.model.addListener("newModel",this.paint,this);this.model.addListener("loadModel",this.clear,this);this.model.addListener("modelStatus",this.update,this);}
Loading2.prototype.paint=function(objRef){var node=objRef.getNode();if(node){if(objRef.model.template)return;if(!objRef.model.url)return;var outputNode=document.getElementById(objRef.outputNodeId+"_loading");if(!outputNode){outputNode=document.createElement("div");outputNode.setAttribute("id",objRef.outputNodeId+"_loading");node.appendChild(outputNode);}
outputNode.className="loadingIndicator";outputNode.style.zIndex=1000;if(objRef.mapContainerNode){outputNode.style.position="absolute";outputNode.style.left='0px';outputNode.style.top='0px';}
if(objRef.imageSrc){var imageNode=document.getElementById(objRef.outputNodeId+"_imageNode");if(!imageNode){imageNode=document.createElement("img");imageNode.setAttribute("id",objRef.outputNodeId+"_imageNode");outputNode.appendChild(imageNode);imageNode.style.zIndex=1000;}
imageNode.src=objRef.imageSrc;}
if(objRef.updateMessage){var messageNode=document.getElementById(objRef.outputNodeId+"_messageNode");if(!messageNode){messageNode=document.createElement("p");messageNode.setAttribute("id",objRef.outputNodeId+"_messageNode");outputNode.appendChild(messageNode);}
messageNode.innerHTML=objRef.updateMessage;}}}
Loading2.prototype.clear=function(objRef){objRef.updateMessage=null;var outputNode=document.getElementById(objRef.outputNodeId+"_loading");var node=objRef.getNode();if(node&&outputNode)node.removeChild(outputNode);}
Loading2.prototype.update=function(objRef,message){if(message){objRef.updateMessage=message;objRef.paint(objRef);}else{objRef.clear(objRef);}}
mapbuilder.loadScript(baseDir+"/util/openlayers/OpenLayers.js");mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function OverviewMap(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));var widthNode=widgetNode.selectSingleNode("mb:width");if(widthNode){this.width=new Number(widthNode.firstChild.nodeValue);}
var heightNode=widgetNode.selectSingleNode("mb:height");if(heightNode){this.height=new Number(heightNode.firstChild.nodeValue);}
var minRatio=widgetNode.selectSingleNode("mb:minRatio");if(minRatio){this.minRatio=new Number(minRatio.firstChild.nodeValue);}
var maxRatio=widgetNode.selectSingleNode("mb:maxRatio");if(maxRatio){this.maxRatio=new Number(maxRatio.firstChild.nodeValue);}
var layersNode=widgetNode.selectSingleNode("mb:layers");if(layersNode){this.layerNames=new Array();var layers=layersNode.childNodes;for(var i=0;i<layers.length;i++){if(layers[i].firstChild){this.layerNames.push(layers[i].firstChild.nodeValue);}}}
this.model.addListener("refresh",this.addOverviewMap,this);}
OverviewMap.prototype.addOverviewMap=function(objRef){if(objRef.model&&objRef.model.map){var map=objRef.model.map;this.control=null
var options={div:objRef.getNode(),destroy:function(){OpenLayers.Control.OverviewMap.prototype.destroy.apply(this,arguments);this.div=null;},layers:new Array()};if(objRef.minRatio)options.minRatio=objRef.minRatio;if(objRef.maxRatio)options.maxRatio=objRef.maxRatio;var showBaseLayer=true;var baseLayer=null;if(map.baseLayer){baseLayer=objRef.getClonedLayer(map.baseLayer)
options.layers.push(baseLayer);}
if(objRef.layerNames){showBaseLayer=false;for(var i=0;i<objRef.layerNames.length;i++){for(var j=0;j<map.layers.length;j++){if(objRef.layerNames[i]==map.layers[j].params.LAYERS){if(map.layers[j]==map.baseLayer){showBaseLayer=true;}else{options.layers.push(objRef.getClonedLayer(map.layers[j]));}}}}}
var extent=map.getExtent();if(objRef.width&&objRef.height){options.size=new OpenLayers.Size(objRef.width,objRef.height);}
else if(objRef.width){options.size=new OpenLayers.Size(objRef.width,objRef.width*extent.getHeight()/extent.getWidth());}
else if(objRef.height){options.size=new OpenLayers.Size(objRef.height*extent.getWidth()/extent.getHeight(),objRef.height);}
objRef.control=new OpenLayers.Control.OverviewMap(options);objRef.control.mapOptions={theme:null};map.addControl(objRef.control);for(var i in options.layers){options.layers[i].setVisibility(true);}
if(baseLayer){baseLayer.setVisibility(showBaseLayer);}}}
OverviewMap.prototype.getClonedLayer=function(layer){if(layer==null){return null;}
if(layer instanceof OpenLayers.Layer.WMS){var layerOptions={units:layer.units,projection:layer.projection,maxExtent:layer.maxExtent,maxResolution:"auto",ratio:1,singleTile:true,isBaseLayer:layer.isBaseLayer};return new OpenLayers.Layer.WMS(layer.name,layer.url,{layers:layer.params.LAYERS,format:layer.params.FORMAT,transparent:"TRUE"},layerOptions);}
else{var clonedLayer=layer.clone();clonedLayer.setVisibility(true);return clonedLayer;}}
mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function MapScaleBar(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));this.scaleDenominator=1;this.displaySystem='metric';var displaySystem=widgetNode.selectSingleNode("mb:displaySystem");if(displaySystem)this.displaySystem=displaySystem.firstChild.nodeValue;this.minWidth=100;var minWidth=widgetNode.selectSingleNode("mb:minWidth");if(minWidth)this.minWidth=minWidth.firstChild.nodeValue;this.maxWidth=200;var maxWidth=widgetNode.selectSingleNode("mb:maxWidth");if(maxWidth)this.maxWidth=maxWidth.firstChild.nodeValue;this.divisions=2;var divisions=widgetNode.selectSingleNode("mb:divisions");if(divisions)this.divisions=divisions.firstChild.nodeValue;this.subdivisions=2;var subdivisions=widgetNode.selectSingleNode("mb:subdivisions");if(subdivisions)this.subdivisions=subdivisions.firstChild.nodeValue;this.showMinorMeasures=false;var showMinorMeasures=widgetNode.selectSingleNode("mb:showMinorMeasures");if(showMinorMeasures&&showMinorMeasures.firstChild.nodeValue=="true")this.showMinorMeasures=true;this.abbreviateLabel=false;var abbreviateLabel=widgetNode.selectSingleNode("mb:abbreviateLabel");if(abbreviateLabel&&abbreviateLabel.firstChild.nodeValue=="true")this.abbreviateLabel=true;this.singleLine=false;var singleLine=widgetNode.selectSingleNode("mb:singleLine");if(singleLine&&singleLine.firstChild.nodeValue=="true")this.singleLine=true;this.align='center';var align=widgetNode.selectSingleNode("mb:align");if(align)this.align=align.firstChild.nodeValue;this.resolution=72;this.containerId=this.outputNodeId;this.labelContainerId=this.containerId+"Label";this.graphicsContainerId=this.containerId+"Graphics";this.numbersContainerId=this.containerId+"Numbers";this.model.addListener("bbox",this.update,this);this.model.addListener("refresh",this.update,this);}
MapScaleBar.prototype.getContainerNode=function(){var node=document.getElementById(this.containerId);if(!node){var node=document.createElement('div');node.className='sbWrapper';node.style.position='relative';node.setAttribute("id",this.containerId);}
return node;}
MapScaleBar.prototype.getGraphicsContainerNode=function(){var node=document.getElementById(this.graphicsContainerId);if(!node){var node=document.createElement('div');node.style.position='absolute';node.className='sbGraphicsContainer';node.setAttribute("id",this.graphicsContainerId);var markerMajor=document.createElement('div');markerMajor.className='sbMarkerMajor';node.appendChild(markerMajor);var markerMinor=document.createElement('div');markerMinor.className='sbMarkerMinor';node.appendChild(markerMinor);var barPiece=document.createElement('div');barPiece.className='sbBar';node.appendChild(barPiece);var barPieceAlt=document.createElement('div');barPieceAlt.className='sbBarAlt';node.appendChild(barPieceAlt);}
return node;}
MapScaleBar.prototype.getLabelContainerNode=function(){var node=document.getElementById(this.labelContainerId);if(!node){var node=document.createElement('div');node.className='sbUnitsContainer';node.style.position='absolute';node.setAttribute("id",this.labelContainerId);}
return node;}
MapScaleBar.prototype.getNumbersContainerNode=function(){var node=document.getElementById(this.numbersContainerId);if(!node){var node=document.createElement('div');node.style.position='absolute';node.className='sbNumbersContainer';node.setAttribute("id",this.numbersContainerId);}
return node;}
MapScaleBar.prototype.update=function(objRef){var outputNode=document.getElementById(objRef.outputNodeId);if(!outputNode)objRef.getNode().appendChild(objRef.getContainerNode());var scaleDenominator=objRef.model.map.getScale();if(scaleDenominator!=null){objRef.scaleDenominator=scaleDenominator;}
function HandsomeNumber(smallUglyNumber,bigUglyNumber,sigFigs){var sigFigs=(sigFigs==null)?10:sigFigs;var bestScore=Number.POSITIVE_INFINITY;var bestTieBreaker=Number.POSITIVE_INFINITY;var handsomeValue=smallUglyNumber;var handsomeNumDec=3;for(var halvingExp=0;halvingExp<3;++halvingExp){var comelyMultiplicand=Math.pow(2,(-1*halvingExp));var maxTensExp=Math.floor(Math.log(bigUglyNumber/comelyMultiplicand)/Math.LN10)
for(var tensExp=maxTensExp;tensExp>(maxTensExp-sigFigs+1);--tensExp){var numDec=Math.max(halvingExp-tensExp,0);var testMultiplicand=comelyMultiplicand*Math.pow(10,tensExp);if((testMultiplicand*Math.floor(bigUglyNumber/testMultiplicand))>=smallUglyNumber){if(smallUglyNumber%testMultiplicand==0){var testMultiplier=smallUglyNumber/testMultiplicand;}
else{var testMultiplier=Math.floor(smallUglyNumber/testMultiplicand)+1;}
var testScore=testMultiplier+(2*halvingExp);var testTieBreaker=(tensExp<0)?(Math.abs(tensExp)+1):tensExp;if((testScore<bestScore)||((testScore==bestScore)&&(testTieBreaker<bestTieBreaker))){bestScore=testScore;bestTieBreaker=testTieBreaker;handsomeValue=(testMultiplicand*testMultiplier).toFixed(numDec);handsomeNumDec=numDec;}}}}
this.value=handsomeValue;this.score=bestScore;this.tieBreaker=bestTieBreaker;this.numDec=handsomeNumDec;}
HandsomeNumber.prototype.toString=function(){return this.value.toString();}
HandsomeNumber.prototype.valueOf=function(){return this.value;}
function styleValue(aSelector,styleKey){var aValue=0;if(document.styleSheets){for(var sheetIndex=document.styleSheets.length-1;sheetIndex>=0;--sheetIndex){var aSheet=document.styleSheets[sheetIndex];if(!aSheet.disabled){var allRules;if(typeof(aSheet.rules)=='undefined'){if(typeof(aSheet.rules)=='undefined'){return 0;}
else{allRules=aSheet.rules;}}
else{allRules=aSheet.rules;}
for(var ruleIndex=0;ruleIndex<allRules.length;++ruleIndex){var aRule=allRules[ruleIndex];if(aRule.selectorText&&(aRule.selectorText.toLowerCase()==aSelector.toLowerCase())){if(aRule.style[styleKey]!=''){aValue=parseInt(aRule.style[styleKey]);}}}}}}
return aValue?aValue:0;}
function formatNumber(aNumber,numDecimals){numDecimals=(numDecimals)?numDecimals:0;var formattedInteger=''+Math.round(aNumber);var thousandsPattern=/(-?[0-9]+)([0-9]{3})/;while(thousandsPattern.test(formattedInteger)){formattedInteger=formattedInteger.replace(thousandsPattern,'$1,$2');}
if(numDecimals>0){var formattedDecimal=Math.floor(Math.pow(10,numDecimals)*(aNumber-Math.round(aNumber)));if(formattedDecimal==0){return formattedInteger;}
else{return formattedInteger+'.'+formattedDecimal;}}
else{return formattedInteger;}}
var container=objRef.getContainerNode();var graphicsContainer=objRef.getGraphicsContainerNode();var labelContainer=objRef.getLabelContainerNode();var numbersContainer=objRef.getNumbersContainerNode();container.title=mbGetMessage("scale",formatNumber(objRef.scaleDenominator));var measurementProperties=new Object();measurementProperties.english={units:[mbGetMessage("unitMiles"),mbGetMessage("unitFeet"),mbGetMessage("unitInches")],abbr:[mbGetMessage("unitMilesAbbr"),mbGetMessage("unitFeetAbbr"),mbGetMessage("unitInchesAbbr")],inches:[63360,12,1]}
measurementProperties.nautical={units:[mbGetMessage("unitNauticalMiles"),mbGetMessage("unitFeet"),mbGetMessage("unitInches")],abbr:[mbGetMessage("unitNauticalMilesAbbr"),mbGetMessage("unitFeetAbbr"),mbGetMessage("unitInchesAbbr")],inches:[72913.3860,12,1]}
measurementProperties.metric={units:[mbGetMessage("unitKilometers"),mbGetMessage("unitMeters"),mbGetMessage("unitCentimeters")],abbr:[mbGetMessage("unitKilometersAbbr"),mbGetMessage("unitMetersAbbr"),mbGetMessage("unitCentimetersAbbr")],inches:[39370.07874,39.370079,0.393701]}
var comparisonArray=new Array();for(var unitIndex=0;unitIndex<measurementProperties[objRef.displaySystem].units.length;++unitIndex){comparisonArray[unitIndex]=new Object();var pixelsPerDisplayUnit=objRef.resolution*measurementProperties[objRef.displaySystem].inches[unitIndex]/objRef.scaleDenominator;var minSDDisplayLength=(objRef.minWidth/pixelsPerDisplayUnit)/(objRef.divisions*objRef.subdivisions);var maxSDDisplayLength=(objRef.maxWidth/pixelsPerDisplayUnit)/(objRef.divisions*objRef.subdivisions);for(var valueIndex=0;valueIndex<(objRef.divisions*objRef.subdivisions);++valueIndex){var minNumber=minSDDisplayLength*(valueIndex+1);var maxNumber=maxSDDisplayLength*(valueIndex+1);var niceNumber=new HandsomeNumber(minNumber,maxNumber);comparisonArray[unitIndex][valueIndex]={value:(niceNumber.value/(valueIndex+1)),score:0,tieBreaker:0,numDec:0,displayed:0};for(var valueIndex2=0;valueIndex2<(objRef.divisions*objRef.subdivisions);++valueIndex2){displayedValuePosition=niceNumber.value*(valueIndex2+1)/(valueIndex+1);niceNumber2=new HandsomeNumber(displayedValuePosition,displayedValuePosition);var isMajorMeasurement=((valueIndex2+1)%objRef.subdivisions==0);var isLastMeasurement=((valueIndex2+1)==(objRef.divisions*objRef.subdivisions));if((objRef.singleLine&&isLastMeasurement)||(!objRef.singleLine&&(isMajorMeasurement||objRef.showMinorMeasures))){comparisonArray[unitIndex][valueIndex].score+=niceNumber2.score;comparisonArray[unitIndex][valueIndex].tieBreaker+=niceNumber2.tieBreaker;comparisonArray[unitIndex][valueIndex].numDec=Math.max(comparisonArray[unitIndex][valueIndex].numDec,niceNumber2.numDec);comparisonArray[unitIndex][valueIndex].displayed+=1;}
else{comparisonArray[unitIndex][valueIndex].score+=niceNumber2.score/objRef.subdivisions;comparisonArray[unitIndex][valueIndex].tieBreaker+=niceNumber2.tieBreaker/objRef.subdivisions;}}
var scoreAdjustment=(unitIndex+1)*comparisonArray[unitIndex][valueIndex].tieBreaker/comparisonArray[unitIndex][valueIndex].displayed;comparisonArray[unitIndex][valueIndex].score*=scoreAdjustment;}}
var subdivisionDisplayLength=null;var displayUnits=null;var displayUnitsAbbr=null;var subdivisionPixelLength=null;var bestScore=Number.POSITIVE_INFINITY;var bestTieBreaker=Number.POSITIVE_INFINITY;var numDec=0;for(var unitIndex=0;unitIndex<comparisonArray.length;++unitIndex){for(valueIndex in comparisonArray[unitIndex]){if((comparisonArray[unitIndex][valueIndex].score<bestScore)||((comparisonArray[unitIndex][valueIndex].score==bestScore)&&(comparisonArray[unitIndex][valueIndex].tieBreaker<bestTieBreaker))){bestScore=comparisonArray[unitIndex][valueIndex].score;bestTieBreaker=comparisonArray[unitIndex][valueIndex].tieBreaker;subdivisionDisplayLength=comparisonArray[unitIndex][valueIndex].value;numDec=comparisonArray[unitIndex][valueIndex].numDec;displayUnits=measurementProperties[objRef.displaySystem].units[unitIndex];displayUnitsAbbr=measurementProperties[objRef.displaySystem].abbr[unitIndex];pixelsPerDisplayUnit=objRef.resolution*measurementProperties[objRef.displaySystem].inches[unitIndex]/objRef.scaleDenominator;subdivisionPixelLength=pixelsPerDisplayUnit*subdivisionDisplayLength;}}}
var xOffsetMarkerMajor=(styleValue('.sbMarkerMajor','borderLeftWidth')+styleValue('.sbMarkerMajor','width')+styleValue('.sbMarkerMajor','borderRightWidth'))/2;var xOffsetMarkerMinor=(styleValue('.sbMarkerMinor','borderLeftWidth')+styleValue('.sbMarkerMinor','width')+styleValue('.sbMarkerMinor','borderRightWidth'))/2;var xOffsetBar=(styleValue('.sbBar','borderLeftWidth')+styleValue('.sbBar','border-right-width'))/2;var xOffsetBarAlt=(styleValue('.sbBarAlt','borderLeftWidth')+styleValue('.sbBarAlt','borderRightWidth'))/2;if(!document.styleSheets){xOffsetMarkerMajor=0.5;xOffsetMarkerMinor=0.5;}
while(labelContainer.hasChildNodes()){labelContainer.removeChild(labelContainer.firstChild);}
while(graphicsContainer.hasChildNodes()){graphicsContainer.removeChild(graphicsContainer.firstChild);}
while(numbersContainer.hasChildNodes()){numbersContainer.removeChild(numbersContainer.firstChild);}
var aMarker,aBarPiece,numbersBox,xOffset;var alignmentOffset={left:0,center:(-1*objRef.divisions*objRef.subdivisions*subdivisionPixelLength/2),right:(-1*objRef.divisions*objRef.subdivisions*subdivisionPixelLength)}
var xPosition=0+alignmentOffset[objRef.align];var markerMeasure=0;for(var divisionIndex=0;divisionIndex<objRef.divisions;++divisionIndex){xPosition=divisionIndex*objRef.subdivisions*subdivisionPixelLength;xPosition+=alignmentOffset[objRef.align];markerMeasure=(divisionIndex==0)?0:((divisionIndex*objRef.subdivisions)*subdivisionDisplayLength).toFixed(numDec);aMarker=document.createElement('div');aMarker.className='sbMarkerMajor';aMarker.style.position='absolute';aMarker.style.overflow='hidden';aMarker.style.left=Math.round(xPosition-xOffsetMarkerMajor)+'px';aMarker.appendChild(document.createTextNode(' '));graphicsContainer.appendChild(aMarker);if(!objRef.singleLine){numbersBox=document.createElement('div');numbersBox.className='sbNumbersBox';numbersBox.style.position='absolute';numbersBox.style.overflow='hidden';numbersBox.style.textAlign='center';if(objRef.showMinorMeasures){numbersBox.style.width=Math.round(subdivisionPixelLength*2)+'px';numbersBox.style.left=Math.round(xPosition-subdivisionPixelLength)+'px';}
else{numbersBox.style.width=Math.round(objRef.subdivisions*subdivisionPixelLength*2)+'px';numbersBox.style.left=Math.round(xPosition-(objRef.subdivisions*subdivisionPixelLength))+'px';}
numbersBox.appendChild(document.createTextNode(markerMeasure));numbersContainer.appendChild(numbersBox);}
for(var subdivisionIndex=0;subdivisionIndex<objRef.subdivisions;++subdivisionIndex){aBarPiece=document.createElement('div');aBarPiece.style.position='absolute';aBarPiece.style.overflow='hidden';aBarPiece.style.width=Math.round(subdivisionPixelLength)+'px';if((subdivisionIndex%2)==0){aBarPiece.className='sbBar';aBarPiece.style.left=Math.round(xPosition-xOffsetBar)+'px';}
else{aBarPiece.className='sbBarAlt';aBarPiece.style.left=Math.round(xPosition-xOffsetBarAlt)+'px';}
aBarPiece.appendChild(document.createTextNode(' '));graphicsContainer.appendChild(aBarPiece);if(subdivisionIndex<(objRef.subdivisions-1)){xPosition=((divisionIndex*objRef.subdivisions)+(subdivisionIndex+1))*subdivisionPixelLength;xPosition+=alignmentOffset[objRef.align];markerMeasure=(divisionIndex*objRef.subdivisions+subdivisionIndex+1)*subdivisionDisplayLength;aMarker=document.createElement('div');aMarker.className='sbMarkerMinor';aMarker.style.position='absolute';aMarker.style.overflow='hidden';aMarker.style.left=Math.round(xPosition-xOffsetMarkerMinor)+'px';aMarker.appendChild(document.createTextNode(' '));graphicsContainer.appendChild(aMarker);if(objRef.showMinorMeasures&&!objRef.singleLine){numbersBox=document.createElement('div');numbersBox.className='sbNumbersBox';numbersBox.style.position='absolute';numbersBox.style.overflow='hidden';numbersBox.style.textAlign='center';numbersBox.style.width=Math.round(subdivisionPixelLength*2)+'px';numbersBox.style.left=Math.round(xPosition-subdivisionPixelLength)+'px';numbersBox.appendChild(document.createTextNode(markerMeasure));numbersContainer.appendChild(numbersBox);}}}}
xPosition=(objRef.divisions*objRef.subdivisions)*subdivisionPixelLength;xPosition+=alignmentOffset[objRef.align];markerMeasure=((objRef.divisions*objRef.subdivisions)*subdivisionDisplayLength).toFixed(numDec);aMarker=document.createElement('div');aMarker.className='sbMarkerMajor';aMarker.style.position='absolute';aMarker.style.overflow='hidden';aMarker.style.left=Math.round(xPosition-xOffsetMarkerMajor)+'px';aMarker.appendChild(document.createTextNode(' '));graphicsContainer.appendChild(aMarker);if(!objRef.singleLine){numbersBox=document.createElement('div');numbersBox.className='sbNumbersBox';numbersBox.style.position='absolute';numbersBox.style.overflow='hidden';numbersBox.style.textAlign='center';if(objRef.showMinorMeasures){numbersBox.style.width=Math.round(subdivisionPixelLength*2)+'px';numbersBox.style.left=Math.round(xPosition-subdivisionPixelLength)+'px';}
else{numbersBox.style.width=Math.round(objRef.subdivisions*subdivisionPixelLength*2)+'px';numbersBox.style.left=Math.round(xPosition-(objRef.subdivisions*subdivisionPixelLength))+'px';}
numbersBox.appendChild(document.createTextNode(markerMeasure));numbersContainer.appendChild(numbersBox);}
var labelBox=document.createElement('div');labelBox.style.position='absolute';var labelText;if(objRef.singleLine){labelText=markerMeasure;labelBox.className='sbLabelBoxSingleLine';labelBox.style.top='-0.6em';labelBox.style.left=(xPosition+10)+'px';}
else{labelText='';labelBox.className='sbLabelBox';labelBox.style.textAlign='center';labelBox.style.width=Math.round(objRef.divisions*objRef.subdivisions*subdivisionPixelLength)+'px'
labelBox.style.left=Math.round(alignmentOffset[objRef.align])+'px';labelBox.style.overflow='hidden';}
if(objRef.abbreviateLabel){labelText+=' '+displayUnitsAbbr;}
else{labelText+=' '+displayUnits;}
labelBox.appendChild(document.createTextNode(labelText));labelContainer.appendChild(labelBox);if(!document.styleSheets){var defaultStyle=document.createElement('style');defaultStyle.type='text/css';var styleText='.sbBar {top: 0px; background: #666666; height: 1px; border: 0;}';styleText+='.sbBarAlt {top: 0px; background: #666666; height: 1px; border: 0;}';styleText+='.sbMarkerMajor {height: 7px; width: 1px; background: #666666; border: 0;}';styleText+='.sbMarkerMinor {height: 5px; width: 1px; background: #666666; border: 0;}';styleText+='.sbLabelBox {top: -16px;}';styleText+='.sbNumbersBox {top: 7px;}';defaultStyle.appendChild(document.createTextNode(styleText));document.getElementsByTagName('head').item(0).appendChild(defaultStyle);}
container.appendChild(graphicsContainer);container.appendChild(labelContainer);container.appendChild(numbersContainer);}
mapbuilder.loadScript(baseDir+"/widget/WidgetBaseXSL.js");mapbuilder.loadScript(baseDir+"/model/Proj.js");function CursorTrack(widgetNode,model){WidgetBaseXSL.apply(this,new Array(widgetNode,model));this.showPx=false;this.showXY=false;this.showLatLong=true;this.showDMS=false;this.showDM=false;this.showMGRS=false;this.precision=2;var showPx=widgetNode.selectSingleNode("mb:showPx");if(showPx)
this.showPx=(showPx.firstChild.nodeValue=="false")?false:true;var showXYNode=widgetNode.selectSingleNode("mb:showXY");if(showXYNode)
this.showXY=(showXYNode.firstChild.nodeValue=="false")?false:true;var showLatLong=widgetNode.selectSingleNode("mb:showLatLong");if(showLatLong)
this.showLatLong=(showLatLong.firstChild.nodeValue=="false")?false:true;var showDMS=widgetNode.selectSingleNode("mb:showDMS");if(showDMS)
this.showDMS=(showDMS.firstChild.nodeValue=="false")?false:true;var showDM=widgetNode.selectSingleNode("mb:showDM");if(showDM)
this.showDM=(showDM.firstChild.nodeValue=="false")?false:true;var showMGRS=widgetNode.selectSingleNode("mb:showMGRS");if(showMGRS){this.showMGRS=(showMGRS.firstChild.nodeValue=="false")?false:true;mapbuilder.loadScript(baseDir+"/util/MGRS.js");}
var precision=widgetNode.selectSingleNode("mb:precision");if(precision)
this.precision=precision.firstChild.nodeValue;this.formName="CursorTrackForm_"+mbIds.getId();this.stylesheet.setParameter("formName",this.formName);this.init=function(objRef){objRef.proj=new Proj(objRef.model.getSRS());objRef.epsg4326=new CS(csList.EPSG4326);objRef.model.map.events.register('mousemove',objRef,objRef.mousemoveHandler);objRef.model.map.events.register('mouseout',objRef,objRef.mouseoutHandler);if(this.showMGRS)
this.MGRS=new MGRS();}
this.model.addListener("loadModel",this.init,this);this.mousemoveHandler=function(evt){var coordForm=document.getElementById(this.formName);if(!evt)return;var evXY=this.model.map.getLonLatFromPixel(evt.xy);var pt=new PT(evXY.lon,evXY.lat)
cs_transform(this.proj,this.epsg4326,pt);var evLonLat=new OpenLayers.LonLat(pt.x,pt.y);if(this.showPx){if(coordForm.px)
coordForm.px.value=evt.xy.x;if(coordForm.py)
coordForm.py.value=evt.xy.y;}
if(this.showXY){if(coordForm.x)
coordForm.x.value=evXY.lon.toFixed(this.precision);;if(coordForm.y)
coordForm.y.value=evXY.lat.toFixed(this.precision);;}
if(this.showLatLong){if(coordForm.longitude)
coordForm.longitude.value=evLonLat.lon.toFixed(this.precision);if(coordForm.latitude)
coordForm.latitude.value=evLonLat.lat.toFixed(this.precision);}
if(this.showDMS){var longitude=this.convertDMS(evLonLat.lon,'LON');if(coordForm.longdeg)
coordForm.longdeg.value=longitude[0];if(coordForm.longmin)
coordForm.longmin.value=longitude[1];if(coordForm.longsec)
coordForm.longsec.value=longitude[2];if(coordForm.longH)
coordForm.longH.value=longitude[3];var latitude=this.convertDMS(evLonLat.lat,'LAT');if(coordForm.latdeg)
coordForm.latdeg.value=latitude[0];if(coordForm.latmin)
coordForm.latmin.value=latitude[1];if(coordForm.latsec)
coordForm.latsec.value=latitude[2];if(coordForm.latH)
coordForm.latH.value=latitude[3];}
if(this.showDM){var longitude=this.convertDM(evLonLat.lon,'LON');if(coordForm.longDMdeg)
coordForm.longDMdeg.value=longitude[0];if(coordForm.longDMmin)
coordForm.longDMmin.value=longitude[1];if(coordForm.longDMH)
coordForm.longDMH.value=longitude[2];var latitude=this.convertDM(evLonLat.lat,'LAT');if(coordForm.latDMdeg)
coordForm.latDMdeg.value=latitude[0];if(coordForm.latDMmin)
coordForm.latDMmin.value=latitude[1];if(coordForm.latDMH)
coordForm.latDMH.value=latitude[2];}
if(this.showMGRS){if(!this.MGRS)
this.MGRS=new MGRS();coordForm.mgrs.value=this.MGRS.convert(evLonLat.lat,evLonLat.lon);}}
this.mouseoutHandler=function(evt){var coordForm=document.getElementById(this.formName);if(this.showPx){if(coordForm.px)
coordForm.px.value="";if(coordForm.py)
coordForm.py.value="";}
if(this.showXY){if(coordForm.x)
coordForm.x.value="";if(coordForm.y)
coordForm.y.value="";}
if(this.showLatLong){if(coordForm.longitude)
coordForm.longitude.value="";if(coordForm.latitude)
coordForm.latitude.value="";}
if(this.showDMS){if(coordForm.longdeg)
coordForm.longdeg.value="";if(coordForm.longmin)
coordForm.longmin.value="";if(coordForm.longsec)
coordForm.longsec.value="";if(coordForm.longH)
coordForm.longH.value="";if(coordForm.latdeg)
coordForm.latdeg.value="";if(coordForm.latmin)
coordForm.latmin.value="";if(coordForm.latsec)
coordForm.latsec.value="";if(coordForm.latH)
coordForm.latH.value="";}
if(this.showDM){if(coordForm.longDMdeg)
coordForm.longDMdeg.value="";if(coordForm.longDMmin)
coordForm.longDMmin.value="";if(coordForm.longDMH)
coordForm.longDMH.value="";if(coordForm.latDMdeg)
coordForm.latDMdeg.value="";if(coordForm.latDMmin)
coordForm.latDMmin.value="";if(coordForm.latDMH)
coordForm.latDMH.value="";}
if(this.showMGRS){if(coordForm.mgrs)
coordForm.mgrs.value="";}}
this.convertDMS=function(coordinate,type){var coords=new Array();abscoordinate=Math.abs(coordinate)
coordinatedegrees=Math.floor(abscoordinate);coordinateminutes=(abscoordinate-coordinatedegrees)/(1/60);tempcoordinateminutes=coordinateminutes;coordinateminutes=Math.floor(coordinateminutes);coordinateseconds=(tempcoordinateminutes-coordinateminutes)/(1/60);coordinateseconds=Math.round(coordinateseconds*10);coordinateseconds/=10;if(coordinatedegrees<10)
coordinatedegrees="0"+coordinatedegrees;if(coordinateminutes<10)
coordinateminutes="0"+coordinateminutes;if(coordinateseconds<10)
coordinateseconds="0"+coordinateseconds;coords[0]=coordinatedegrees;coords[1]=coordinateminutes;coords[2]=coordinateseconds;coords[3]=this.getHemi(coordinate,type);return coords;}
this.convertDM=function(coordinate,type){var coords=new Array();abscoordinate=Math.abs(coordinate)
coordinatedegrees=Math.floor(abscoordinate);coordinateminutes=(abscoordinate-coordinatedegrees)*60;coordinateminutes=Math.round(coordinateminutes*1000);coordinateminutes/=1000;if(coordinatedegrees<10)
coordinatedegrees="0"+coordinatedegrees;if(coordinateminutes<10)
coordinateminutes="0"+coordinateminutes;coords[0]=coordinatedegrees;coords[1]=coordinateminutes;coords[2]=this.getHemi(coordinate,type);return coords;}
this.getHemi=function(coordinate,type){var coordinatehemi="";if(type=='LAT'){if(coordinate>=0){coordinatehemi="N";}
else{coordinatehemi="S";}}
else if(type=='LON'){if(coordinate>=0){coordinatehemi="E";}else{coordinatehemi="W";}}
return coordinatehemi;}}
mapbuilder.loadScript(baseDir+"/widget/WidgetBaseXSL.js");function LayerControl(widgetNode,model){WidgetBaseXSL.apply(this,new Array(widgetNode,model));this.prePaint=function(objRef){if(objRef.model.featureName){objRef.stylesheet.setParameter("featureName",objRef.model.featureName);objRef.stylesheet.setParameter("hidden",objRef.model.getHidden(objRef.model.featureName).toString());}}
this.highlightLayer=function(layerName,legendURL){var legendImage;legendImage=document.getElementById("legendImage");if(!legendImage)return;if(legendURL){legendImage.src=legendURL;return;}
var layerId=this.model.id+"_"+"mainMapWidget"+"_"+layerName;var layer=document.getElementById(layerId);if(!layer)return;legendImage.src=layer.firstChild.src;}
this.refresh=function(objRef,layerName){objRef.paint(objRef,objRef.id);}
this.foldUnfoldGroup=function(groupName,id){var xpathExpression="//wmc:General/wmc:Extension/wmc:GroupList/wmc:Group[@name='"+groupName+"']";var thisGroupsNode=model.doc.selectSingleNode(xpathExpression);var thisGroupsFoldedState=thisGroupsNode.getAttribute('folded');e=document.getElementById(id);if(thisGroupsFoldedState=="1"){thisGroupsNode.setAttribute("folded","0");e.value="-";}else{thisGroupsNode.setAttribute("folded","1");e.value="+";}}
this.showLayerMetadata=function(layerName){var metadataWidget=config.objects.layerMetadata;if(metadataWidget){metadataWidget.stylesheet.setParameter("featureName",layerName);metadataWidget.node=document.getElementById(metadataWidget.htmlTagId);metadataWidget.paint(metadataWidget);}}
this.ChangeImage=function(id,imageA,imageB){var indexA=document.getElementById(id).src.indexOf(imageA);var indexB=document.getElementById(id).src.indexOf(imageB);if(document.getElementById(id)!=null){if(indexA!=-1){document.getElementById(id).src=document.getElementById(id).src.substring(0,indexA)+imageB;}else{document.getElementById(id).src=document.getElementById(id).src.substring(0,indexB)+imageA;}}
return;}
this.switchVisibilityById=function(id){e=document.getElementById(id);if(e.style.display=="none"){e.style.display="block";}else{e.style.display="none";}}
this.model.addListener("deleteLayer",this.refresh,this);this.model.addListener("moveLayerUp",this.refresh,this);this.model.addListener("moveLayerDown",this.refresh,this);if(this.autoRefresh)this.model.addListener("addLayer",this.refresh,this);}
mapbuilder.loadScript(baseDir+"/widget/WidgetBaseXSL.js");function TransactionResponse(widgetNode,model){WidgetBaseXSL.apply(this,new Array(widgetNode,model));}
mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function GmlRendererBase(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));var hoverCursorNode=widgetNode.selectSingleNode('mb:hoverCursor');this.hoverCursor=hoverCursorNode?hoverCursorNode.firstChild.nodeValue:'pointer';this.sldModelNode=widgetNode.selectSingleNode('mb:sldModel');var defaultStyle=widgetNode.selectSingleNode('mb:defaultStyleName');this.defaultStyleName=defaultStyle?defaultStyle.firstChild.nodeValue:'default';var selectStyle=widgetNode.selectSingleNode('mb:selectStyleName');this.selectStyleName=selectStyle?selectStyle.firstChild.nodeValue:'selected';this.config=new Object({model:model,hoverCursor:this.hoverCursor,sldModelNode:this.sldModelNode,defaultStyleName:this.defaultStyleName,selectStyleName:this.selectStyleName});}
mapbuilder.loadScript(baseDir+"/widget/GmlRendererBase.js");function GmlRendererOL(widgetNode,model){GmlRendererBase.apply(this,new Array(widgetNode,model));this.olLayer=null;this.defaultStyle=null;this.selectStyle=null;this.hiddenFeatures=new Array();this.containerNodeId=this.htmlTagId;model.containerModel=this.targetModel;if(!this.stylesheet){var styleNode=widgetNode.selectSingleNode("mb:stylesheet");if(styleNode){this.stylesheet=new XslProcessor(styleNode.firstChild.nodeValue,model.namespace);this.stylesheet.setParameter("proxyUrl",config.proxyUrl);}}
var hoverCursorNode=widgetNode.selectSingleNode('mb:hoverCursor');this.hoverCursor=hoverCursorNode?hoverCursorNode.firstChild.nodeValue:'pointer';this.paint=function(objRef){if(objRef.targetModel.map){if(objRef.olLayer){objRef.model.setParam('gmlRendererLayer',null);if(objRef.targetModel.map==objRef.map){objRef.olLayer.destroy();objRef.olLayer=null;}}
var doc=objRef.stylesheet?objRef.stylesheet.transformNodeToObject(objRef.model.doc):objRef.model.doc;if(!doc){return;}
objRef.map=objRef.targetModel.map;var models=[objRef.model];if(objRef.model.mergeModels){for(var i in objRef.model.mergeModels){models.push(objRef.model.mergeModels[i]);}}
for(var i=0;i<models.length;i++){var widgetConfig=config.objects[models[i].id].config?config.objects[models[i].id].config[objRef.id]:null;if(!widgetConfig){widgetConfig=objRef.config;}
if(widgetConfig.sldModelNode){var sldModel=config.objects[widgetConfig.sldModelNode.firstChild.nodeValue];if(sldModel){sldModel.addListener("loadModel",objRef.paint,objRef);if(sldModel.doc){widgetConfig.defaultStyle=new Object();widgetConfig.selectStyle=new Object();var sldNode=sldModel.getSldNode();var sldXPath="sld:UserStyle[sld:Name=";var wmcXPath="wmc:Style[wmc:Name=";var defaultPointNode="//sld:UserStyle[sld:Name='"+widgetConfig.defaultStyleName+"']//sld:PointSymbolizer";var defaultLineNode="//sld:UserStyle[sld:Name='"+widgetConfig.defaultStyleName+"']//sld:LineSymbolizer";var defaultPolygonNode="//sld:UserStyle[sld:Name='"+widgetConfig.defaultStyleName+"']//sld:PolygonSymbolizer";var selectPointNode="//sld:UserStyle[sld:Name='"+widgetConfig.selectStyleName+"']//sld:PointSymbolizer";var selectLineNode="//sld:UserStyle[sld:Name='"+widgetConfig.selectStyleName+"']//sld:LineSymbolizer";var selectPolygonNode="//sld:UserStyle[sld:Name='"+widgetConfig.selectStyleName+"']//sld:PolygonSymbolizer";widgetConfig.defaultStyle.point=sld2OlStyle(sldNode.selectSingleNode(defaultPointNode));if(!widgetConfig.defaultStyle.point){widgetConfig.defaultStyle.point=sld2OlStyle(sldNode.selectSingleNode(defaultPointNode.replace(sldXPath,wmcXPath)));}
widgetConfig.defaultStyle.line=sld2OlStyle(sldNode.selectSingleNode(defaultLineNode));if(!widgetConfig.defaultStyle.line){widgetConfig.defaultStyle.line=sld2OlStyle(sldNode.selectSingleNode(defaultLineNode.replace(sldXPath,wmcXPath)));}
widgetConfig.defaultStyle.polygon=sld2OlStyle(sldNode.selectSingleNode(defaultPolygonNode));if(!widgetConfig.defaultStyle.polygon){widgetConfig.defaultStyle.polygon=sld2OlStyle(sldNode.selectSingleNode(defaultPolygonNode.replace(sldXPath,wmcXPath)));}
widgetConfig.selectStyle.point=sld2OlStyle(sldNode.selectSingleNode(selectPointNode));if(!widgetConfig.selectStyle.point){widgetConfig.selectStyle.point=sld2OlStyle(sldNode.selectSingleNode(selectPointNode.replace(sldXPath,wmcXPath)));}
widgetConfig.selectStyle.line=sld2OlStyle(sldNode.selectSingleNode(selectLineNode));if(!widgetConfig.selectStyle.line){widgetConfig.selectStyle.line=sld2OlStyle(sldNode.selectSingleNode(selectLineNode.replace(sldXPath,wmcXPath)));}
widgetConfig.selectStyle.polygon=sld2OlStyle(sldNode.selectSingleNode(selectPolygonNode));if(!widgetConfig.selectStyle.polygon){widgetConfig.selectStyle.polygon=sld2OlStyle(sldNode.selectSingleNode(selectPolygonNode.replace(sldXPath,wmcXPath)));}
if(widgetConfig.selectStyle.point){widgetConfig.selectStyle.point.cursor=widgetConfig.hoverCursor;}
if(widgetConfig.selectStyle.line){widgetConfig.selectStyle.line.cursor=widgetConfig.hoverCursor;}
if(widgetConfig.selectStyle.polygon){widgetConfig.selectStyle.polygon.cursor=widgetConfig.hoverCursor;}}}}}
var OlLayer=OpenLayers.Class(OpenLayers.Layer.GML,{loadGML:function(){if(!this.loaded){var gml=this.format?new this.format():new OpenLayers.Format.GML();try{this.addFeatures(gml.read(doc));this.loaded=true;}catch(e){}}},preFeatureInsert:function(feature){if(feature.geometry){var sourceNode=objRef.model.doc.selectSingleNode("//*[@fid='"+feature.fid+"']");if(!sourceNode)return;var sourceModel=null;if(sourceNode){sourceModel=sourceNode.getAttribute('sourceModel');}
var widgetConfig=null;if(sourceModel&&config.objects[sourceModel].config&&config.objects[sourceModel].config[objRef.id]){widgetConfig=config.objects[sourceModel].config[objRef.id];}else{widgetConfig=objRef.config;}
if(widgetConfig.defaultStyle){if(feature.geometry.CLASS_NAME.indexOf('Point')>-1){feature.style=widgetConfig.defaultStyle.point;}else
if(feature.geometry.CLASS_NAME.indexOf('Line')>-1){feature.style=widgetConfig.defaultStyle.line;}else
if(feature.geometry.CLASS_NAME.indexOf('Polygon')>-1){feature.style=widgetConfig.defaultStyle.polygon;}}
if(widgetConfig.selectStyle){if(feature.geometry.CLASS_NAME.indexOf('Point')>-1){feature.mbSelectStyle=widgetConfig.selectStyle.point;}else
if(feature.geometry.CLASS_NAME.indexOf('Line')>-1){feature.mbSelectStyle=widgetConfig.selectStyle.line;}else
if(feature.geometry.CLASS_NAME.indexOf('Polygon')>-1){feature.mbSelectStyle=widgetConfig.selectStyle.polygon;}}}},getFeatureByFid:function(fid){var layer=objRef.olLayer;if(!layer){return null;}
var features=layer.features;if(!features){return null;}
for(var i=0;i<features.length;++i){if(features[i].fid==fid){return features[i];}}}});objRef.olLayer=new OlLayer(objRef.id);objRef.targetModel.map.addLayer(objRef.olLayer);objRef.model.setParam('gmlRendererLayer',objRef.olLayer);}
objRef.targetModel.addListener('refresh',objRef.paint,objRef);}
this.model.addListener("refresh",this.paint,this);this.model.addListener("newModel",this.paint,this);this.hiddenListener=function(objRef,layerName){alert('hide/unhide '+layerName);}
this.model.addListener("hidden",this.hiddenListener,this);this.hideFeature=function(objRef,fid){if(!fid){fid=objRef.model.getParam('hideFeature');}
var feature=objRef.olLayer.getFeatureByFid(fid);if(feature){objRef.hiddenFeatures.push(fid);feature.mbHidden=true;objRef.olLayer.renderer.eraseGeometry(feature.geometry);}}
this.model.addListener("hideFeature",this.hideFeature,this);this.showFeature=function(objRef,fid){if(!fid){fid=objRef.model.getParam('showFeature');}
var feature=objRef.olLayer.getFeatureByFid(fid);if(feature){OpenLayers.Util.removeItem(objRef.hiddenFeatures,fid);feature.mbHidden=false;objRef.olLayer.drawFeature(feature);}}
this.model.addListener("showFeature",this.showFeature,this);this.removeHiddenFeatures=function(objRef){if(objRef.olLayer){var hiddenFeatures=objRef.hiddenFeatures.toString().split(/,/);objRef.hiddenFeatures=new Array();for(var i in hiddenFeatures){if(hiddenFeatures[i]){objRef.hideFeature(objRef,hiddenFeatures[i]);}}}}
this.init=function(objRef){var clickWidgetNode=widgetNode.selectSingleNode("mb:featureOnClick");if(clickWidgetNode){var clickWidget=config.objects[clickWidgetNode.firstChild.nodeValue];objRef.model.addListener("olFeatureSelect",clickWidget.onClick,clickWidget);}
var hoverWidgetNode=widgetNode.selectSingleNode("mb:featureOnHover");if(hoverWidgetNode){var hoverWidget=config.objects[hoverWidgetNode.firstChild.nodeValue];objRef.model.addListener("olFeatureHover",hoverWidget.onMouseover,hoverWidget);objRef.model.addListener("olFeatureOut",hoverWidget.onMouseout,hoverWidget);}
objRef.targetModel.addListener("aoi",objRef.removeHiddenFeatures,objRef);}
this.model.addListener("init",this.init,this);}
mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function FmFeatureList(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));this.refresh=function(objRef){FM_hide_status();if(objRef.model.modifyControl){objRef.model.modifyControl.destroy();objRef.model.modifyControl=null;objRef.modifiedFeature=false;objRef.model.setNewDoc(objRef.model.doc);}}
this.model.addListener("newModel",this.refresh,this);this.attrConfig=new Array();this.formData=null;this.tc=widgetNode.selectSingleNode("mb:targetContext").firstChild.nodeValue;function addConfAttribute(attrConfig,params){attrConfig[attrConfig.length]=params;attrConfig[params.id]=params;}
var idOptions=[{label:"",value:""},{label:"רחוב משני",value:1},{label:"רחוב ראשי",value:2},{label:"מחלף",value:4},{label:"כביש מהיר",value:3},{label:"בין עירוני",value:6},{label:"בין עירוני משני",value:7},{label:"דרך עפר",value:5},{label:"דרך 4x4",value:8},{label:"טיילת",value:9},{label:"מדרחוב",value:10}];var dirOptions=[{label:"",value:""},{label:"דו כיווני",value:1},{label:"חד כיווני",value:2}];var booleanOptions=[{label:"",value:""},{label:"לא",value:"false"},{label:"כן",value:"true"}];var typeOptions=[{label:"",value:""},{label:"ללא סוג",value:1},{label:"דרך",value:2},{label:"שדרות",value:3},{label:"שדרת",value:4},{label:"סמטת",value:5}];var requestTypes=[{label:"",value:""},{label:"עדכון שם",value:1},{label:"רחוב אינו קיים",value:2},{label:"תיקון כביש",value:3},{label:"ישוב אינו קיים",value:4},{label:"אחר",value:5}];var requestState=[{label:"",value:""},{label:"סגורה",value:0},{label:"פתוחה",value:1},{label:"דרושה בדיקת שטח",value:2},{label:"חסרים נתונים",value:3}];var speedCamType=[{label:"מצלמה אמיתית",value:2},{label:"מצלמה דמה",value:3}];addConfAttribute(this.attrConfig,{id:"id",name:"",formType:"hidden",joinType:"concat"});addConfAttribute(this.attrConfig,{id:"update_type",name:"סוג בקשה:",formType:"select",joinType:"same",options:requestTypes});addConfAttribute(this.attrConfig,{id:"city_name",name:"ישוב:",formType:"ajaxinput",joinType:"same"});addConfAttribute(this.attrConfig,{id:"street_type",name:"סוג (דרך, שדרה):",formType:"select",joinType:"same",options:typeOptions});addConfAttribute(this.attrConfig,{id:"street_name",name:"רחוב:",formType:"ajaxinput",joinType:"same"});addConfAttribute(this.attrConfig,{id:"text2speech",name:"txt2speech:",formType:"txt2speech",joinType:"same"});addConfAttribute(this.attrConfig,{id:"english_name",name:"English:",formType:"einput",joinType:"same"});addConfAttribute(this.attrConfig,{id:"road_type",name:"סוג הכביש:",formType:"select",joinType:"same",options:idOptions});addConfAttribute(this.attrConfig,{id:"direction",name:"כיוון:",formType:"select",joinType:"same",options:dirOptions,one_line:true});addConfAttribute(this.attrConfig,{id:"separator",name:"קו הפרדה:",formType:"select",joinType:"same",options:booleanOptions});addConfAttribute(this.attrConfig,{id:"locked",name:"נעול:",formType:"select",joinType:"same",options:booleanOptions});addConfAttribute(this.attrConfig,{id:"road_length",name:"אורך:",formType:"ignore",joinType:"accum"});addConfAttribute(this.attrConfig,{id:"from_cross_time",name:"זמן (שניות):",formType:"ignore",joinType:"accum"});addConfAttribute(this.attrConfig,{id:"to_cross_time",name:"זמן (שניות):",formType:"ignore",joinType:"accum"});addConfAttribute(this.attrConfig,{id:"user_name",name:"אחראי:",formType:"ignore",joinType:"same"});addConfAttribute(this.attrConfig,{id:"update_user",name:"אחראי:",formType:"ignore",joinType:"same"});addConfAttribute(this.attrConfig,{id:"user_rank",name:"דרגה:",formType:"ignore",joinType:"same"});addConfAttribute(this.attrConfig,{id:"description",name:"הערה:",formType:"textarea",joinType:"same"});addConfAttribute(this.attrConfig,{id:"update_text",name:"בקשת עדכון:",formType:"textarea",joinType:"same",readOnly:true});addConfAttribute(this.attrConfig,{id:"updater_note",name:"הערת המעדכן:",formType:"textarea",joinType:"same"});addConfAttribute(this.attrConfig,{id:"left_addr",name:"שמאל:",formType:"input",joinType:"same"});addConfAttribute(this.attrConfig,{id:"right_addr",name:"ימין:",formType:"input",joinType:"same"});addConfAttribute(this.attrConfig,{id:"magvar",name:"אזימוט:",formType:"text",joinType:"same"});addConfAttribute(this.attrConfig,{id:"name",name:"שם:",formType:"text",joinType:"same"});addConfAttribute(this.attrConfig,{id:"age",name:"נפתח לפני:",formType:"text",joinType:"same",suffix:" יום"});addConfAttribute(this.attrConfig,{id:"update_state",name:"מצב בקשה:",formType:"select",joinType:"same",options:requestState});addConfAttribute(this.attrConfig,{id:"cam_speed",name:"מהירות מותרת:",formType:"input",joinType:"same"});addConfAttribute(this.attrConfig,{id:"cam_type",name:"סוג:",formType:"select",joinType:"same",options:speedCamType});this.prePaint=function(objRef){objRef.formData=new Array();}
this.addAttribute=function(objRef,id,value){if(typeof objRef.formData[id]=="undefined"){objRef.formData[id]=addSlashes(value);return;}
var cur_value=objRef.formData[id];switch(objRef.attrConfig[id].joinType){case"concat":objRef.formData[id]=cur_value+","+value;break;case"accum":objRef.formData[id]=parseInt(objRef.formData[id],10)+
parseInt(value,10);break;case"same":if(cur_value!=value){objRef.formData[id]="";}
break;}}
this.getInnerText=function(node){if(typeof node.textContent!='undefined'){return node.textContent;}
else if(typeof node.innerText!='undefined'){return node.innerText;}
else if(typeof node.text!='undefined'){return node.text;}
else{switch(node.nodeType){case 3:case 4:return node.nodeValue;break;case 1:case 11:var innerText='';for(var i=0;i<node.childNodes.length;i++){innerText+=this.getInnerText(node.childNodes[i]);}
return innerText;break;default:return'';}}}
this.paint=function(objRef,refresh){var outputNode=document.getElementById(objRef.outputNodeId);if(objRef.model.doc&&objRef.getNode()&&!outputNode){objRef.prePaint(objRef);if(!objRef.targetContext){objRef.targetContext=window.config.objects[objRef.tc];}
var gmlNS="";var myNS="";if((navigator.appVersion.indexOf("MSIE")>0)||(navigator.userAgent.indexOf("Firefox/3")>-1)){gmlNS="gml:";myNS="myns:";}
var tempNode=document.createElement("DIV");var layers=objRef.model.doc.selectNodes('//gml:featureMember/*');for(var i=0;i<layers.length;++i){var layer=layers[i];if(!layer)continue;var attributes=layer.childNodes;var localName="";for(var j=0;j<attributes.length;++j){if(navigator.appVersion.indexOf("MSIE")>0){localName=attributes[j].baseName;}else{localName=attributes[j].localName;}
if(objRef.attrConfig[localName]){objRef.addAttribute(objRef,localName,objRef.getInnerText(attributes[j]));}}}
if(!objRef.formData[objRef.attrConfig[0].id])return;var node=objRef.model.doc.selectNodes('//gml:featureMember/*')[0];if(node.nodeName=="myns:users_notes"){objRef.feature_type='notes';}else if(node.nodeName=="myns:street_ranges"){objRef.feature_type='street_ranges';}else if(node.nodeName=="myns:update_requests"){objRef.feature_type='update_requests';}else if(node.nodeName=="myns:speed_cams"){objRef.feature_type='speed_cams';}else if((node.nodeName=="myns:roads")||(node.nodeName=="myns:unknown_roads")||(node.nodeName=="myns:segments_for_deletion")||(node.nodeName=="myns:line_roads")){objRef.feature_type='segments';}else{alert('Unknown type:'+node.nodeName);return;}
var html="";html+="<form id=\""+objRef.outputNodeId+"\" method=\"POST\" action=\"\" name=\"updateForm\">";html+="<span id=soundspan></span>\n";html+="<fieldset> <legend>פרטים:</legend>"
for(var i=0;i<objRef.attrConfig.length;++i){html+=objRef.createTableRow(objRef,i);}
html+="<input type=\"hidden\" name=\"update_type\" value=\""+objRef.feature_type+"\"/>";if(objRef.formData['id']!=-1){if(objRef.formData['road_length']){if(objRef.formData['road_length']==0)objRef.formData['road_length']=1;html+="<strong>";html+="אורך: ";html+="</strong>";html+="<span class=\"text\">";html+=objRef.formData['road_length']+' מטרים';html+="</span>";html+="<br />";}
if(objRef.formData['from_cross_time']){html+="<strong>";html+="זמן: ";html+="</strong>";html+="<span class=\"text\">";html+=objRef.formData['from_cross_time'];if(objRef.formData['to_cross_time']){html+='/'+objRef.formData['to_cross_time'];}
html+=' שניות';html+="</span>";html+="<br />";html+="<strong>";html+="מהירות: ";html+="</strong>";html+="<span class=\"text\">";html+=Math.round(objRef.formData['road_length']/objRef.formData['from_cross_time']*3.6)+' קמ"ש';html+="</span>";html+="<br />";}
if(objRef.formData['user_name']){html+="<strong>";html+="אחראי: ";html+="</strong>";html+="<span class=\"text\">";html+='('+objRef.formData['user_rank']+') <a href="/forum/privmsg.php?mode=post&username='+objRef.formData['user_name']+'" target="_blank">';var name=objRef.formData['user_name'];if(name.substr(0,5)=='anon_')name='אנונימי';if(name.length>20)name=name.substr(1,20);html+=name+'</a>';html+="</span>";html+="<br />";if(objRef.formData['update_user']){html+="<strong>";html+="עודכן ע\"י: ";html+="</strong>";html+="<span class=\"text\">";html+='<a href="/forum/privmsg.php?mode=post&username='+objRef.formData['update_user']+'" target="_blank">'+objRef.formData['update_user']+'</a>';html+="</span>";html+="<br />";}}
html+="<br />";if(objRef.feature_type=='segments'){html+="<p class=\"submit\"><input id=\"updateFormSubmit\" type=\"button\" value=\"עדכן\" /></p>";html+="<p class=\"submit\"><input id=\"resetFormSubmit\" type=\"button\" value=\"אפס נתונים\" /></p>";}else{html+="<p class=\"submit\" align=center><input id=\"updateFormSubmit\" type=\"button\" value=\"עדכן\" /></p>";}}else{html+="<label>קואורדינטות:</label>";html+="<textarea id=\"newLinePoints\" dir=\"ltr\" readonly rows=\"2\" style=\"width:100%\"></textarea>";html+="<br />";html+="<p class=\"submit\" align=center><input id=\"updateFormSubmit\" type=\"button\" value=\"שמור\" /></p>";}
html+="</fieldset></form>";tempNode.innerHTML=html;if(tempNode.firstChild!=null){if(outputNode){objRef.getNode().replaceChild(tempNode.firstChild,outputNode);}else{objRef.getNode().appendChild(tempNode.firstChild);$('#updateFormSubmit').click(function(){objRef.sendUpdate(objRef);return false;});var resetButton=$('#resetFormSubmit');if(resetButton)resetButton.click(function(){objRef.sendReset(objRef);return false;});if((objRef.feature_type=='segments')||(objRef.feature_type=='street_ranges')){$("#city_name").autocomplete("/libs/jcomplete.php?name=city_name",{parse:function(data){return eval(data);}});$("#street_name").autocomplete("/libs/jcomplete.php?name=street_name",{parse:function(data){return eval(data);}});}
$('#featureList').show();}}}else if(objRef.formData['id']==-1){var textarea=$('#newLinePoints');if(!textarea)return;var geom=objRef.model.getXpathValue(objRef.model,'//gml:featureMember/*/myns:msGeometry/gml:LineString/gml:coordinates');if(geom)textarea.val(geom);}}
this.model.addListener("refresh",this.paint,this);this.setAttr=function(objRef,xpath,value){objRef.model.setXpathValue(objRef.model,xpath,value);}
this.createTableRow=function(objRef,row){var html="";var attrConf=objRef.attrConfig[row];if(typeof objRef.formData[attrConf.id]=="undefined")return"";switch(attrConf.formType){case"hidden":html+="<input type=\"hidden\" name=\""+attrConf.id+"\" value=\""+objRef.formData[attrConf.id]+"\"/>";break;case"select":if((attrConf.options==booleanOptions)||attrConf.one_line){html+="<span style=\"vertical-align: super;\">"+attrConf.name+"&nbsp;</span>";}else{html+="<label>"+attrConf.name+"</label>";}
html+="<SELECT name=\""+attrConf.id+"\">";for(var i=0;i<attrConf.options.length;++i){html+="<OPTION value=\""+attrConf.options[i].value+"\"";if(objRef.formData[attrConf.id]==attrConf.options[i].value){html+=" SELECTED";}
html+="> "+attrConf.options[i].label+"</OPTION>";}
html+="</SELECT>";html+="<br/>";break;case"text":html+=attrConf.name+" ";html+=objRef.formData[attrConf.id];if(attrConf.suffix)html+=attrConf.suffix;html+="<br/>";break;case"ignore":break;case"input":html+="<label>"+objRef.attrConfig[row].name+"</label>";html+="<input type=\"text\" id=\""+attrConf.id+"\" name=\""+attrConf.id+"\" value=\""+objRef.formData[attrConf.id]+"\" size=12/>";html+="<br/>";break;case"ajaxinput":html+="<label>"+objRef.attrConfig[row].name+"</label>";html+="<input type=\"text\" id=\""+attrConf.id+"\" name=\""+attrConf.id+"\" class=\"ac_noraml\" value=\""+objRef.formData[attrConf.id]+"\" size=12/>";html+="<br/>";break;case"einput":html+="<label>"+objRef.attrConfig[row].name+"</label>";html+="<input dir=\"ltr\" type=\"text\" id=\""+attrConf.id+"\" name=\""+attrConf.id+"\" value=\""+objRef.formData[attrConf.id]+"\" size=12/>";html+="<br/>";break;case"txt2speech":html+="<label>"+objRef.attrConfig[row].name+"</label>";html+="<input style=\"position:relative; top:-7px; direction:ltr;\" type=\"text\" id=\""+attrConf.id+"\" name=\""+attrConf.id+"\" value=\""+objRef.formData[attrConf.id]+"\" size=12/>";html+=" <input style=\"position:relative; top:-4px; direction:ltr;\"type=\"image\" src=\"/images/common/spkr.png\" alt=\"לחץ כדי לשמוע\" onClick=\"DHTMLSound(this.form."+attrConf.id+".value); return false;\">";html+="<br/>";break;case"textarea":html+="<label>"+objRef.attrConfig[row].name+"</label>";html+="<textarea name=\""+attrConf.id+"\" rows=\"5\" style=\"width:100%\"";if(attrConf.readOnly)html+=" readonly";html+=">"+objRef.formData[attrConf.id]+"</textarea>";break;}
return html;}
this.sendUpdate=function(objRef){var script='/map_edit/update.php';var params='';if(objRef.model.modifyControl&&objRef.model.modifyControl.feature){objRef.model.modifyControl.unselectFeature(objRef.model.modifyControl.feature);objRef.modifiedFeature=true;}
if(objRef.feature_type=='update_requests'){var orig_msg=objRef.model.getXpathValue(objRef.model,'//gml:featureMember/*/myns:updater_note');if(orig_msg==null)orig_msg='';var updater_note=$('textarea[@name=updater_note]').val();var send_updater_note=false;var update_state=$('select[@name=update_state]').val();if(updater_note!=orig_msg){if(updater_note){if(confirm('האם לשלוח את הערת המעדכן אל המשתמש?')==true){send_updater_note=true;}}}else{updater_note=null;if((update_state==0)&&(confirm('קישור למפה זו יישלח אל המשתמש - אנא וודא שהמפה ממורכזת למקום העדכון.')!=true))return;}
script='/map_edit/update_request.php';var center=objRef.targetContext.map.getCenter();var zoom="zoom="+objRef.targetContext.map.getZoom();var lat="lat="+Math.round(center.lat*100000)/100000;var lon="lon="+Math.round(center.lon*100000)/100000;var url="http://www.freemap.co.il/edit_map_ol.html?"+lat+"&"+lon+"&"+zoom;params='id='+objRef.formData['id']+'&url='+encodeURIComponent(url)+'&update_state='+update_state+'&update_type='+$('select[@name=update_type]').val()
if(send_updater_note)params+='&send_msg='+1;if(updater_note!=null)params+='&updater_note='+encodeURIComponent(updater_note);}else{params=$('#featureListForm').formSerialize();var geom=null;if(objRef.modifiedFeature||(objRef.formData['id']==-1)){geom=objRef.model.getXpathValue(objRef.model,'//gml:featureMember/*/myns:msGeometry/gml:LineString/gml:coordinates');}
if(geom){params+='&the_geom='+escape(geom);}}
FM_exec_cmd(this.model,params,script,objRef.sendDone.bind(objRef));}
this.sendReset=function(objRef){if(confirm('אשר את פעולת האיפוס')!=true)return;FM_exec_cmd(this.model,$('#featureListForm').formSerialize()+'&do_reset=true','/map_edit/update.php',objRef.sendDone.bind(objRef));}
this.sendDone=function(error){if(!error){if(this.model.modifyControl){this.model.modifyControl.destroy();this.model.modifyControl=null;this.modifiedFeature=false;}
this.model.setModel(this.model,null);this.targetContext.callListeners("refreshWmsLayers");this.targetModel.callListeners("refreshGmlRenderers");}}}
function addSlashes(str){return str.replace(/\"/g,'&quot;');}
function DHTMLSound(text){document.getElementById("soundspan").innerHTML="<embed src='/map_edit/flite.php?text="+escape(text)+"' hidden=true autostart=true loop=false>";}
function FM_hide_status(){$('#updateStatus').hide("fast");}
function FM_process_cmd_result(model,callback,response){model.setParam("modelStatus",null);var jsonReply=eval("("+response+")");if(!jsonReply.reply.error){$('#updateStatusMsg').html("העדכון בוצע בהצלחה");if(callback)callback(0);}else{switch(jsonReply.reply.type){case 1:FM_login.showLoginBox();$('#updateStatusMsg').html("שגיאה: יש לבצע כניסה למערכת");break;case 2:$('#updateStatusMsg').html("שגיאה: אין לך הרשאות לשנות את הכביש שבחרת");break;case 3:$('#updateStatusMsg').html("שגיאה: אין לך הרשאות לשנות את המצלמה שבחרת");break;default:$('#updateStatusMsg').html("שגיאה: "+jsonReply.reply.message);}
if(callback)callback(1);}
$('#updateStatus').show('slow');}
FM_process_cmd_error=function(model,callback,t){model.setParam("modelStatus",null);alert('Error '+t.status+' -- '+t.statusText);if(callback)callback();}
function FM_exec_cmd(model,params,url,callback,errorCallback){model.setParam("modelStatus","אנא המתן...");$.ajax({type:'POST',url:url,data:params,success:function(){FM_process_cmd_result(model,callback,arguments[0])},error:function(){FM_process_cmd_error(model,errorCallback,arguments[0]);}});}
mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function EditFeaturePointView(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));this.refresh=function(objRef){FM_hide_status();}
this.model.addListener("newModel",this.refresh,this);this.tc=widgetNode.selectSingleNode("mb:targetContext").firstChild.nodeValue;this.m2=widgetNode.selectSingleNode("mb:model2").firstChild.nodeValue;this.paint=function(objRef,refresh){if(objRef.model.doc&&objRef.getNode()&&(objRef.autoRefresh||refresh)){objRef.prePaint(objRef);if(!objRef.targetContext){objRef.targetContext=window.config.objects[objRef.tc];}
if(!objRef.model2){objRef.model2=window.config.objects[objRef.m2];}
var outputNode=document.getElementById(objRef.outputNodeId);var tempNode=document.createElement("DIV");var featureId="";var circle_radius=objRef.model.getXpathValue(objRef.model,'//gml:featureMember/*/myns:radius');if(!circle_radius){var features=objRef.model.getFeatureNodes();if(features.length==0)return;featureId=features[0].firstChild.nodeValue;if(features.length>1){featureId+=","+features[1].firstChild.nodeValue;}}
var is_move_node=objRef.model.doc.selectNodes('//gml:featureMember/myns:nodes/*').length;var nodes=objRef.model2.getFeatureNodes();if(!nodes)return;var splitPoint=objRef.model2.getFeaturePoint(nodes[0]);if(!splitPoint)return;var html="";html+="<form id=\""+objRef.outputNodeId+"\" method=\"POST\" action=\"\" name=\"updateForm\">";html+="<fieldset> <legend>פרטים:</legend>"
html+="<input type=\"hidden\" name=\"longitude\" value=\""+splitPoint[0]+"\"/>";html+="<input type=\"hidden\" name=\"latitude\" value=\""+splitPoint[1]+"\"/>";if(!circle_radius){html+="<input type=\"hidden\" name=\"id\" value=\""+featureId+"\"/>";if(is_move_node){html+="<p>סמן את המיקום החדש של הצומת ואשר.</p>";}else{html+="<p>האם ברצונך לחלק את הכביש בנקודה שבחרת?</p>";}
html+="<p class=\"submit\" align=center><input id=\"updateFormSubmit\" type=\"button\" value=\"בצע פעולה\" /></p>";}else{html+="<p><label>רדיוס (מטרים):</label><p>";html+='<input type="text" name="radius" id="roundabout_radius" size="7" value="'+circle_radius+'" onchange="config.objects.'+objRef.id+'.setAttr(config.objects.'+objRef.id+', \'//gml:featureMember/*/myns:radius\', document.getElementById(\'roundabout_radius\').value);config.objects.editRoundabout.reDraw(config.objects.editRoundabout); return true;"/>';html+=' <span class="submit"><input type="button" name="stam" value="עדכן" size="10" /></span>';html+="<p class=\"submit\" align=center><input id=\"updateFormSubmit\" type=\"button\" value=\"צור כיכר\" /></p>";}
html+="</fieldset></form>";tempNode.innerHTML=html;if(tempNode.firstChild!=null){if(outputNode){objRef.getNode().replaceChild(tempNode.firstChild,outputNode);}else{objRef.getNode().appendChild(tempNode.firstChild);}
$('#updateFormSubmit').click(function(){objRef.sendUpdate(objRef);});$('#featurePointView').show();}}}
this.model.addListener("refresh",this.paint,this);this.setAttr=function(objRef,xpath,value){objRef.model.setXpathValue(objRef.model,xpath,value);}
this.sendUpdate=function(objRef){FM_exec_cmd(this.model,$('#pointListForm').formSerialize(),objRef.model2.getScript(objRef.model2),objRef.sendDone.bind(objRef));}
this.sendDone=function(error){if(!error){this.model.setModel(this.model,null);this.targetModel.callListeners("refreshGmlRenderers");this.targetContext.callListeners("refreshWmsLayers");}}}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");mapbuilder.loadScript(baseDir+"/util/openlayers/OpenLayers.js");function ZoomIn(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.cursor='crosshair';this.createControl=function(){return OpenLayers.Control.ZoomBox;}}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");mapbuilder.loadScript(baseDir+"/util/openlayers/OpenLayers.js");function ZoomOut(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.cursor='crosshair';this.createControl=function(objRef){var Control=OpenLayers.Class(OpenLayers.Control,{CLASS_NAME:'mbControl.ZoomOut',type:OpenLayers.Control.TYPE_TOOL,draw:function(){this.handler=new OpenLayers.Handler.Box(this,{done:this.zoomBox},{keyMask:this.keyMask});},zoomBox:function(position){if(position instanceof OpenLayers.Bounds){var minXY=new OpenLayers.Pixel(position.left,position.bottom);var maxXY=new OpenLayers.Pixel(position.right,position.top);var bounds=new OpenLayers.Bounds(minXY.x,minXY.y,maxXY.x,maxXY.y);var mapSize=(this.map.getSize().w+this.map.getSize().h)/2;var boxSize=(Math.abs(bounds.getWidth())+Math.abs(bounds.getHeight()))/2;var newScale=this.map.getScale()*(mapSize/boxSize);this.map.setCenter(bounds.getCenterLonLat());this.map.zoomToScale(newScale);}else{this.map.setCenter(this.map.getLonLatFromPixel(position),this.map.getZoom()-1);}}});return Control;}}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");function DragPan(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.createControl=function(objRef){return OpenLayers.Control.DragPan;}
this.cursor='move';}
mapbuilder.loadScript(baseDir+"/widget/EditButtonBase.js");function EditLine(widgetNode,model){EditButtonBase.apply(this,new Array(widgetNode,model));this.createControl=function(objRef){var Control=OpenLayers.Class(OpenLayers.Control.DrawFeature,{CLASS_NAME:'mbEditLine'});return Control;}
this.instantiateControl=function(objRef,Control){return new Control(objRef.featureLayer,OpenLayers.Handler.Path);}
this.setFeature=function(objRef,feature){if(objRef.enabled){var points=feature.geometry.components;var geom='';var count=points.length;for(var i=0;i<count;i++){geom+=' '+points[i].x+","+points[i].y;}
sucess=objRef.targetModel.setXpathValue(objRef.targetModel,objRef.featureXpath,geom);if(!sucess){alert(mbGetMessage("invalidFeatureXpathEditLine",objRef.featureXpath));}}}
this.doSelect=function(objRef,selected){if(this.trm&&!this.transactionResponseModel){this.transactionResponseModel=window.config.objects[this.trm];}
if(this.tc&&!this.targetContext){this.targetContext=window.config.objects[this.tc];this.targetContext.addListener("refreshWmsLayers",this.refreshWmsLayers,this);}
if(this.enabled&&selected){this.loadDefaultModel(this);}
if(!selected&&this.transactionResponseModel){this.transactionResponseModel.setModel(this.transactionResponseModel,null);}}
this.refreshWmsLayers=function(objRef){if(objRef.enabled){objRef.loadDefaultModel(objRef);}}}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");function Back(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.createControl=function(objRef){var Control=OpenLayers.Class(OpenLayers.Control,{objRef:objRef,type:OpenLayers.Control.TYPE_BUTTON,trigger:function(){var objRef=this.objRef;objRef.targetModel.setParam("historyBack");var previousExtent=objRef.targetModel.previousExtent;if(previousExtent){objRef.targetModel.setParam("historyStop");this.map.setCenter(previousExtent.center);this.map.zoomToScale(previousExtent.scale);objRef.targetModel.setParam("historyStart");}},CLASS_NAME:'mbControl.Back'});return Control;}}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");function Forward(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.createControl=function(objRef){var Control=OpenLayers.Class(OpenLayers.Control,{objRef:objRef,type:OpenLayers.Control.TYPE_BUTTON,trigger:function(){var objRef=this.objRef;objRef.targetModel.setParam("historyForward");var nextExtent=objRef.targetModel.nextExtent;if(nextExtent){objRef.targetModel.setParam("historyStop");this.map.setCenter(nextExtent.center);this.map.zoomToScale(nextExtent.scale);objRef.targetModel.setParam("historyStart");}},CLASS_NAME:'mbControl.Forward'});return Control;}}
mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function Undo(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));var mapContainerNode=widgetNode.selectSingleNode("mb:mapContainerId");if(mapContainerNode){this.containerNodeId=mapContainerNode.firstChild.nodeValue;}
this.tc=widgetNode.selectSingleNode("mb:targetContext").firstChild.nodeValue;this.model.addListener("refreshWmsLayers",this.paint,this);}
Undo.prototype.paint=function(objRef){if(!objRef.targetContext){objRef.targetContext=window.config.objects[objRef.tc];}
if(objRef.getNode()){var messageNode=document.getElementById(objRef.htmlTagId+"_messageNode");if(!objRef.targetContext.undo&&messageNode){objRef.getNode().removeChild(messageNode);}else if(!messageNode&&objRef.targetContext.undo){messageNode=document.createElement("a");messageNode.className="undo";messageNode.setAttribute("id",objRef.htmlTagId+"_messageNode");var txt=document.createTextNode("בטל פעולה אחרונה");messageNode.appendChild(txt);messageNode.href="#";messageNode.onclick=function(){objRef.sendRefresh(objRef);return false;}
objRef.getNode().appendChild(messageNode);}
if(objRef.targetContext.undo){objRef.undo_id=objRef.targetContext.undo;objRef.targetContext.undo=0;}}}
Undo.prototype.clear=function(objRef){var outputNode=document.getElementById(objRef.htmlTagId+"_messageNode");if(outputNode)objRef.getNode().removeChild(outputNode);}
Undo.prototype.sendRefresh=function(objRef){FM_exec_cmd(this.model,"id="+objRef.undo_id,'/map_edit/undo.php',objRef.sendDone.bind(objRef));}
Undo.prototype.sendDone=function(error){if(!error){this.targetContext.callListeners("refreshGmlRenderers");this.targetContext.callListeners("refreshWmsLayers");}}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");function DeleteFeature2(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.cursor="default";this.tm=widgetNode.selectSingleNode("mb:targetModel").firstChild.nodeValue;this.tc=widgetNode.selectSingleNode("mb:targetContext").firstChild.nodeValue;this.createControl=function(objRef){var Control=OpenLayers.Class.create();Control.prototype=OpenLayers.Class.inherit(OpenLayers.Control,{CLASS_NAME:'mbDeleteFeature2',type:OpenLayers.Control.TYPE_BUTTON});return Control;}
this.doSelect=function(objRef,selected){if(selected){if(!objRef.targetModel){objRef.targetModel=window.config.objects[objRef.tm];}
if(!objRef.targetContext){objRef.targetContext=window.config.objects[objRef.tc];}
var fid=0;if(objRef.targetModel.doc){var features=objRef.targetModel.doc.selectNodes('//gml:featureMember/*/myns:id');if(features.length>1){alert('ניתן למחוק רק מקטע אחד - בחר קטע אחד בלבד');return;}
var type=null;var node=objRef.targetModel.doc.selectNodes('//gml:featureMember/*')[0];if(node.nodeName=="myns:users_notes"){type='notes';}else if(node.nodeName=="myns:street_ranges"){type='street_ranges';}else if(node.nodeName=="myns:speed_cams"){type='speed_cams';}else if((node.nodeName=="myns:roads")||(node.nodeName=="myns:unknown_roads")||(node.nodeName=="myns:line_roads")){type='segments';}else{alert('לא ניתן למחוק סימונים מסוג זה.');return;}
if(confirm('אשר את המחיקה')!=true)return;fid=objRef.targetModel.getXpathValue(objRef.targetModel,'//gml:featureMember/*/myns:id');}
if(objRef.targetModel.doc&&fid){objRef.sendDelete(objRef,fid,type);}else{alert('לא נבחר כביש למחיקה');}}}
this.sendDelete=function(objRef,fid,type){objRef.fid=fid;FM_exec_cmd(this.targetModel,'id='+fid+'&type='+type,'/map_edit/delete.php',objRef.sendDone.bind(objRef));}
this.sendDone=function(error){if(!error){this.targetModel.setModel(this.targetModel,null);this.targetModel.callListeners("refreshGmlRenderers");this.targetContext.undo=this.fid;this.targetContext.callListeners("refreshWmsLayers");}}}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");function SplitDirections(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.cursor="default";this.tm=widgetNode.selectSingleNode("mb:targetModel").firstChild.nodeValue;this.tc=widgetNode.selectSingleNode("mb:targetContext").firstChild.nodeValue;this.createControl=function(objRef){var Control=OpenLayers.Class.create();Control.prototype=OpenLayers.Class.inherit(OpenLayers.Control,{CLASS_NAME:'mbSplitDirections',type:OpenLayers.Control.TYPE_BUTTON});return Control;}
this.doSelect=function(objRef,selected){if(selected){if(!objRef.targetModel){objRef.targetModel=window.config.objects[objRef.tm];}
if(!objRef.targetContext){objRef.targetContext=window.config.objects[objRef.tc];}
var fid=0;if(objRef.targetModel.doc){var features=objRef.targetModel.doc.selectNodes('//gml:featureMember/*/myns:id');if(features.length>1){alert('ניתן לפצל כיוון רק עבור קטע אחד - בחר קטע אחד בלבד');return;}
var type='segments';var nodes=objRef.targetModel.doc.selectNodes('//gml:featureMember/myns:roads/myns:id');if(!nodes.length){alert('ניתן לפצל כיוון רק עבור קטע אחד - בחר קטע אחד בלבד');return;}
if(confirm('אשר את הפיצול')!=true)return;fid=objRef.targetModel.getXpathValue(objRef.targetModel,'//gml:featureMember/*/myns:id');}
if(objRef.targetModel.doc&&fid){objRef.sendSplit(objRef,fid,type);}else{alert('לא נבחר כביש לפיצול');}}}
this.sendSplit=function(objRef,fid,type){objRef.fid=fid;FM_exec_cmd(this.targetModel,'id='+fid+'&type='+type,'/map_edit/split_directions.php',objRef.sendDone.bind(objRef));}
this.sendDone=function(error){if(!error){this.targetModel.setModel(this.targetModel,null);this.targetModel.callListeners("refreshGmlRenderers");this.targetContext.callListeners("refreshWmsLayers");}}}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");mapbuilder.loadScript(baseDir+"/util/openlayers/OpenLayers.js");function Reset(widgetNode,model){this.createControl=function(){return OpenLayers.Control.ZoomToMaxExtent;}
ButtonBase.apply(this,new Array(widgetNode,model));}
mapbuilder.loadScript(baseDir+"/widget/TwoFeaturesBase.js");function ConnectFeatures(widgetNode,model){TwoFeaturesBase.apply(this,new Array(widgetNode,model));}
mapbuilder.loadScript(baseDir+"/widget/EditButtonBase.js");function EditPoint2(widgetNode,model){EditButtonBase.apply(this,new Array(widgetNode,model));this.tolerance=widgetNode.selectSingleNode('mb:tolerance').firstChild.nodeValue;this.typeName=widgetNode.selectSingleNode('mb:typeName').firstChild.nodeValue;this.webServiceUrl=widgetNode.selectSingleNode('mb:webServiceUrl').firstChild.nodeValue;this.httpPayload=new Object();this.httpPayload.method="get";this.httpPayload.postData=null;this.trm2=widgetNode.selectSingleNode("mb:transactionResponseModel2").firstChild.nodeValue;this.transactionResponseModel2="init";this.createControl=function(objRef){var Control=OpenLayers.Class.create();Control.prototype=OpenLayers.Class.inherit(OpenLayers.Control.DrawFeature,{CLASS_NAME:'mbEditPoint2'});return Control;}
this.instantiateControl=function(objRef,Control){return new Control(objRef.featureLayer,OpenLayers.Handler.Point);}
this.setFeature=function(objRef,feature){if(objRef.enabled){sucess=objRef.targetModel.setXpathValue(objRef.targetModel,objRef.featureXpath,feature.geometry.x+","+feature.geometry.y);if(!sucess){alert("EditPoint: invalid featureXpath in config: "+objRef.featureXpath);}
xPixel=this.control.map.getResolution()*objRef.tolerance;yPixel=xPixel;bbox=(feature.geometry.x-xPixel)+","+(feature.geometry.y-yPixel)+","+(feature.geometry.x+xPixel)+","+(feature.geometry.y+yPixel);objRef.httpPayload.url=objRef.webServiceUrl+"request=GetFeature&typeName="+objRef.typeName+"&bbox="+bbox+"&maxFeatures=2";if(objRef.transactionResponseModel2="init"){objRef.transactionResponseModel2=window.config.objects[objRef.trm2];}
objRef.transactionResponseModel.setScript(objRef.transactionResponseModel,'/map_edit/do_split.php');objRef.transactionResponseModel2.newRequest(objRef.transactionResponseModel2,objRef.httpPayload);}}
this.doSelect=function(objRef,selected){if(this.trm&&!this.transactionResponseModel){this.transactionResponseModel=window.config.objects[this.trm];}
if(this.enabled&&selected){this.loadDefaultModel(this);}
if(!selected&&this.transactionResponseModel){this.transactionResponseModel.setModel(this.transactionResponseModel,null);}
if(!selected&&this.transactionResponseModel2&&this.transactionResponseModel2!="init"){this.transactionResponseModel2.setModel(this.transactionResponseModel2,null);}}}
mapbuilder.loadScript(baseDir+"/widget/TwoFeaturesBase.js");function MergeFeatures(widgetNode,model){TwoFeaturesBase.apply(this,new Array(widgetNode,model));}
mapbuilder.loadScript(baseDir+"/widget/EditButtonBase.js");function EditRoundabout(widgetNode,model){EditButtonBase.apply(this,new Array(widgetNode,model));this.tolerance=widgetNode.selectSingleNode('mb:tolerance').firstChild.nodeValue;this.typeName=widgetNode.selectSingleNode('mb:typeName').firstChild.nodeValue;this.webServiceUrl=widgetNode.selectSingleNode('mb:webServiceUrl').firstChild.nodeValue;this.httpPayload=new Object();this.httpPayload.method="get";this.httpPayload.postData=null;this.trm2=widgetNode.selectSingleNode("mb:transactionResponseModel2").firstChild.nodeValue;this.transactionResponseModel2="init";this.createControl=function(objRef){var Control=OpenLayers.Class.create();Control.prototype=OpenLayers.Class.inherit(OpenLayers.Control.DrawFeature,{CLASS_NAME:'mbEditRoundabout'});return Control;}
this.instantiateControl=function(objRef,Control){return new Control(objRef.featureLayer,OpenLayers.Handler.Point);}
this.setFeature=function(objRef,feature){if(objRef.enabled){sucess=objRef.targetModel.setXpathValue(objRef.targetModel,objRef.featureXpath,feature.geometry.x+","+feature.geometry.y);if(!sucess){alert("EditPoint: invalid featureXpath in config: "+objRef.featureXpath);}
xPixel=this.control.map.getResolution()*objRef.tolerance;yPixel=xPixel;bbox=(feature.geometry.x-xPixel)+","+(feature.geometry.y-yPixel)+","+(feature.geometry.x+xPixel)+","+(feature.geometry.y+yPixel);if(objRef.transactionResponseModel2="init"){objRef.transactionResponseModel2=window.config.objects[objRef.trm2];}
var circle_radius=null;if(objRef.transactionResponseModel2.doc){circle_radius=objRef.transactionResponseModel2.getXpathValue(objRef.transactionResponseModel2,'//gml:featureMember/*/myns:radius');}
objRef.httpPayload.url=objRef.webServiceUrl+"longitude="+feature.geometry.x+"&latitude="+feature.geometry.y;if(circle_radius){objRef.httpPayload.url+="&radius="+circle_radius;}
objRef.transactionResponseModel.setScript(objRef.transactionResponseModel,'/map_edit/create_rndabt.php');objRef.transactionResponseModel2.newRequest(objRef.transactionResponseModel2,objRef.httpPayload);}}
this.reDraw=function(objRef){if(!objRef.transactionResponseModel2.doc)return;var nodes=objRef.transactionResponseModel.getFeatureNodes();if(!nodes)return;var point=objRef.transactionResponseModel.getFeaturePoint(nodes[0]);if(!point)return;circle_radius=objRef.transactionResponseModel2.getXpathValue(objRef.transactionResponseModel2,'//gml:featureMember/*/myns:radius');objRef.httpPayload.url=objRef.webServiceUrl+"longitude="+point[0]+"&latitude="+point[1]+"&radius="+circle_radius;objRef.transactionResponseModel.setScript(objRef.transactionResponseModel,'/map_edit/create_rndabt.php');objRef.transactionResponseModel2.newRequest(objRef.transactionResponseModel2,objRef.httpPayload);}
this.doSelect=function(objRef,selected){if(this.trm&&!this.transactionResponseModel){this.transactionResponseModel=window.config.objects[this.trm];}
if(this.enabled&&selected){this.loadDefaultModel(this);}
if(!selected&&this.transactionResponseModel){this.transactionResponseModel.setModel(this.transactionResponseModel,null);}
if(!selected&&this.transactionResponseModel2&&this.transactionResponseModel2!="init"){this.transactionResponseModel2.setModel(this.transactionResponseModel2,null);}}}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");function ModifyFeature(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.cursor="default";this.tm=widgetNode.selectSingleNode("mb:targetModel").firstChild.nodeValue;this.tc=widgetNode.selectSingleNode("mb:targetContext").firstChild.nodeValue;this.featureXpath=widgetNode.selectSingleNode("mb:featureXpath").firstChild.nodeValue;this.createControl=function(objRef){var Control=OpenLayers.Class.create();Control.prototype=OpenLayers.Class.inherit(OpenLayers.Control,{CLASS_NAME:'mbModifyFeature',type:OpenLayers.Control.TYPE_BUTTON});return Control;}
this.doSelect=function(objRef,selected){if(selected){if(!objRef.targetModel){objRef.targetModel=window.config.objects[objRef.tm];}
if(!objRef.targetContext){objRef.targetContext=window.config.objects[objRef.tc];}
var fid=0;if(objRef.targetModel.doc){var features=objRef.targetModel.doc.selectNodes('//gml:featureMember/*/myns:id');if(features.length>1){alert('ניתן למחוק רק מקטע אחד - בחר קטע אחד בלבד');return;}
var type=null;var node=objRef.targetModel.doc.selectNodes('//gml:featureMember/*')[0];if(node.nodeName=="myns:users_notes"){type='notes';}else if(node.nodeName=="myns:street_ranges"){type='street_ranges';}else if((node.nodeName=="myns:roads")||(node.nodeName=="myns:unknown_roads")||(node.nodeName=="myns:line_roads")){type='segments';}else{alert('לא ניתן לעדכן סימונים מסוג זה.');return;}
fid=objRef.targetModel.getXpathValue(objRef.targetModel,'//gml:featureMember/*/myns:id');}
if(type!='segments'){alert('לא נבחר מקטע לעדכון.');return;}
gmlLayer=objRef.targetModel.getParam('gmlRendererLayer');var vertexS={fillColor:"#FF00FF",fillOpacity:0.8,strokeColor:"black",strokeOpacity:1,strokeWidth:2,pointRadius:4};var virtualS={fillColor:"#000000",fillOpacity:0.4,strokeColor:"#000000",strokeOpacity:1,strokeWidth:3,pointRadius:3};control=new OpenLayers.Control.ModifyFeature(gmlLayer,{styleVirtual:virtualS,styleVertex:vertexS,onModificationEnd:function(feature){objRef.updateFeature(objRef,feature);}});var map=objRef.targetContext.map;map.addControl(control);objRef.targetModel.modifyControl=control;control.activate();control.selectFeature(gmlLayer.features[0]);}}
this.updateFeature=function(objRef,feature){var points=feature.geometry.components;var geom='';var count=points.length;for(var i=0;i<count;i++){geom+=' '+points[i].x+","+points[i].y;}
sucess=objRef.targetModel.setXpathValue(objRef.targetModel,objRef.featureXpath,geom);if(!sucess){alert(mbGetMessage("invalidFeatureXpathEditLine",objRef.featureXpath));}}}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");mapbuilder.loadScript(baseDir+"/util/openlayers/OpenLayers.js");function WfsGetFeature(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.widgetNode=widgetNode;this.trm=widgetNode.selectSingleNode("mb:transactionResponseModel").firstChild.nodeValue
this.httpPayload=new Object({method:"get",postData:null});var typeNameNode=widgetNode.selectSingleNode('mb:typeName');if(typeNameNode!=null){this.typeName=typeNameNode.firstChild.nodeValue;}
this.maxFeatures=widgetNode.selectSingleNode('mb:maxFeatures');this.maxFeatures=this.maxFeatures?this.maxFeatures.firstChild.nodeValue:1;this.webServiceUrl=widgetNode.selectSingleNode('mb:webServiceUrl').firstChild.nodeValue;this.webServiceUrl+=this.webServiceUrl.indexOf("?")>-1?'&':'?';this.cursor="pointer";this.createControl=function(objRef){var transactionResponseModel=config.objects[objRef.trm];var Control=OpenLayers.Class(OpenLayers.Control,{CLASS_NAME:'mbControl.WfsGetFeature',type:OpenLayers.Control.TYPE_TOOL,tolerance:new Number(objRef.widgetNode.selectSingleNode('mb:tolerance').firstChild.nodeValue),httpPayload:objRef.httpPayload,maxFeatures:objRef.maxFeatures,webServiceUrl:objRef.webServiceUrl,transactionResponseModel:transactionResponseModel,draw:function(){this.handler=new OpenLayers.Handler.Box(this,{done:this.selectBox},{keyMask:this.keyMask});},selectBox:function(position){var bounds,minXY,maxXY;if(position instanceof OpenLayers.Bounds){minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left,position.bottom));maxXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.right,position.top));}else{minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.x-this.tolerance,position.y+this.tolerance));maxXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.x+this.tolerance,position.y-this.tolerance));}
bounds=new OpenLayers.Bounds(minXY.lon,minXY.lat,maxXY.lon,maxXY.lat);var typeName=objRef.typeName;if(!typeName){var queryList=objRef.targetModel.getQueryableLayers();if(queryList.length==0){alert(mbGetMessage("noQueryableLayers"));return;}
else{typeName="";for(var i=0;i<queryList.length;++i){var layerNode=queryList[i];var layerName=layerNode.firstChild.data;var hidden=objRef.targetModel.getHidden(layerName);if(hidden==0){if(typeName!=""){typeName+=",";}
typeName+=layerName;}}}}
if(typeName==""){alert(mbGetMessage("noQueryableLayersVisible"));return;}
this.httpPayload.url=this.webServiceUrl+OpenLayers.Util.getParameterString({SERVICE:"WFS",VERSION:"1.0.0",REQUEST:"GetFeature",TYPENAME:typeName,MAXFEATURES:this.maxFeatures,BBOX:bounds.toBBOX()});this.transactionResponseModel.newRequest(this.transactionResponseModel,this.httpPayload);}});return Control;}
this.doSelect=function(objRef,selected){if(this.trm&&!this.transactionResponseModel){this.transactionResponseModel=window.config.objects[this.trm];}
if(!selected&&this.transactionResponseModel){this.transactionResponseModel.setModel(this.transactionResponseModel,null);}
this.transactionResponseModel.setParam("selection",selected);}}
mapbuilder.loadScript(baseDir+"/tool/ToolBase.js");function History(toolNode,model){ToolBase.apply(this,new Array(toolNode,model));this.init=function(objRef){objRef.model.active=-1;objRef.model.historyList=new Array();objRef.add(objRef);}
this.add=function(objRef){if(objRef.model.active!=null){var place=objRef.model.active;var list=objRef.model.historyList;var center=objRef.targetModel.map.getExtent().getCenterLonLat();var scale=objRef.targetModel.map.getScale()-1;if(place>-1){if(center.toString()==list[place].center.toString()&&scale==list[place].scale){return;}}
var newExtent=new Object({center:center,scale:scale});if(place==(list.length-1)){list.push(newExtent);place=place+1;}
else{place=place+1;list=list.slice(0,place);list.push(newExtent);}
objRef.model.active=place;objRef.model.historyList=list;}}
this.back=function(objRef){var place=objRef.model.active;if(place<1){objRef.model.previousExtent=null;alert(mbGetMessage("cantGoBack"));}
else{place=place-1;objRef.model.active=place;objRef.model.previousExtent=objRef.model.historyList[place];}}
this.forward=function(objRef){var place=objRef.model.active;if(place<(objRef.model.historyList.length-1)){place=place+1;objRef.model.active=place;objRef.model.nextExtent=objRef.model.historyList[place];}
else{objRef.model.nextExtent=null;alert(mbGetMessage("cantGoForward"));}}
this.stop=function(objRef){objRef.model.removeListener("bbox",objRef.add,objRef);}
this.start=function(objRef){objRef.model.addListener("bbox",objRef.add,objRef);}
this.initReset=function(objRef){objRef.targetModel.addListener("bbox",objRef.add,objRef);objRef.targetModel.addListener("loadModel",objRef.init,objRef);}
this.model.addListener("historyBack",this.back,this);this.model.addListener("historyForward",this.forward,this);this.model.addListener("historyStart",this.start,this);this.model.addListener("historyStop",this.stop,this);this.model.addListener("init",this.initReset,this);}
mapbuilder.loadScript(baseDir+"/tool/ToolBase.js");function LoadDone(toolNode,model){ToolBase.apply(this,new Array(toolNode,model));this.firstTime=true;var htmlTag=toolNode.selectSingleNode("mb:showTagId");if(htmlTag){this.showNodeId=htmlTag.firstChild.nodeValue;}
htmlTag=toolNode.selectSingleNode("mb:hideTagId");if(htmlTag){this.hideNodeId=htmlTag.firstChild.nodeValue;}
this.doAction=function(toolRef){if(toolRef.firstTime)toolRef.firstTime=false;else return;if(toolRef.hideNodeId){var node=document.getElementById(toolRef.hideNodeId);node.parentNode.removeChild(node);}
if(toolRef.showNodeId){document.getElementById(toolRef.showNodeId).style.display='block';}
if(window.mbLoadDone)window.mbLoadDone()}
this.model.addListener("loadModel",this.doAction,this);}
function WidgetBase(widgetNode,model){this.model=model;this.widgetNode=widgetNode;var templatedWidget=false;if(model.modelNode.attributes.getNamedItem("createByTemplate")&&model.modelNode.attributes.getNamedItem("createByTemplate").nodeValue=='true'){widgetNode.setAttribute("id","MbWidget_"+mbIds.getId());templatedWidget=true;}
if(widgetNode.attributes.getNamedItem("id")){this.id=widgetNode.attributes.getNamedItem("id").nodeValue;}else{alert(mbGetMessage("idRequired",widgetNode.nodeName));}
var outputNode=widgetNode.selectSingleNode("mb:outputNodeId");if(templatedWidget){this.outputNodeId=this.id;}else if(outputNode){this.outputNodeId=outputNode.firstChild.nodeValue;}else{this.outputNodeId="MbWidget_"+mbIds.getId();}
if(!this.htmlTagId){var htmlTagNode=widgetNode.selectSingleNode("mb:htmlTagId");if(htmlTagNode){this.htmlTagId=htmlTagNode.firstChild.nodeValue;}else{this.htmlTagId=this.id;}}
this.getNode=function(){var node=document.getElementById(this.htmlTagId);if(!node){}
return node;}
this.autoRefresh=true;var autoRefresh=widgetNode.selectSingleNode("mb:autoRefresh");if(autoRefresh&&autoRefresh.firstChild.nodeValue=="false")this.autoRefresh=false;if(widgetNode.selectSingleNode("mb:debug"))this.debug=true;this.initTargetModel=function(objRef){var targetModel=objRef.widgetNode.selectSingleNode("mb:targetModel");if(targetModel){objRef.targetModel=window.config.objects[targetModel.firstChild.nodeValue];if(!objRef.targetModel){alert(mbGetMessage("noTargetModelWidget",targetModel.firstChild.nodeValue,objRef.id));}}else{objRef.targetModel=objRef.model;}}
this.model.addListener("init",this.initTargetModel,this);this.prePaint=function(objRef){}
this.postPaint=function(objRef){}
this.clearWidget=function(objRef){var outputNode=document.getElementById(objRef.outputNodeId);var node=objRef.getNode();if(node&&outputNode)node.removeChild(outputNode);}
this.model.addListener("newModel",this.clearWidget,this);}
mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function WidgetBaseXSL(widgetNode,model){WidgetBase.apply(this,new Array(widgetNode,model));if(!this.stylesheet){var styleNode=widgetNode.selectSingleNode("mb:stylesheet");if(styleNode){this.stylesheet=new XslProcessor(styleNode.firstChild.nodeValue,model.namespace);}else{this.stylesheet=new XslProcessor(baseDir+"/widget/"+widgetNode.nodeName+".xsl",model.namespace);}}
if(config.widgetText){var textNodeXpath="/mb:WidgetText/mb:widgets/mb:"+widgetNode.nodeName;var textParams=config.widgetText.selectNodes(textNodeXpath+"/*");for(var j=0;j<textParams.length;j++){this.stylesheet.setParameter(textParams[j].nodeName,textParams[j].firstChild.nodeValue);}}
for(var j=0;j<widgetNode.childNodes.length;j++){if(widgetNode.childNodes[j].firstChild&&widgetNode.childNodes[j].firstChild.nodeValue)
{this.stylesheet.setParameter(widgetNode.childNodes[j].nodeName,widgetNode.childNodes[j].firstChild.nodeValue);}}
this.stylesheet.setParameter("modelId",this.model.id);this.stylesheet.setParameter("modelTitle",this.model.title);this.stylesheet.setParameter("widgetId",this.id);this.stylesheet.setParameter("skinDir",config.skinDir);this.stylesheet.setParameter("lang",config.lang);this.paint=function(objRef,refreshId){if(refreshId&&(refreshId!=objRef.id))return;if(objRef.model.doc&&objRef.getNode()){objRef.stylesheet.setParameter("modelUrl",objRef.model.url);objRef.stylesheet.setParameter("targetModelId",objRef.targetModel.id);objRef.resultDoc=objRef.model.doc;objRef.prePaint(objRef);if(objRef.debug)mbDebugMessage(objRef,"prepaint:"+(new XMLSerializer()).serializeToString(objRef.resultDoc));if(objRef.debug)mbDebugMessage(objRef,"stylesheet:"+(new XMLSerializer()).serializeToString(objRef.stylesheet.xslDom));var outputNode=document.getElementById(objRef.outputNodeId);var tempNode=document.createElement("DIV");var s=objRef.stylesheet.transformNodeToString(objRef.resultDoc);if(config.serializeUrl&&objRef.debug)postLoad(config.serializeUrl,s);if(objRef.debug)mbDebugMessage(objRef,"painting:"+objRef.id+":"+s);tempNode.innerHTML=s;if(tempNode.firstChild!=null){tempNode.firstChild.setAttribute("id",objRef.outputNodeId);if(outputNode){objRef.getNode().replaceChild(tempNode.firstChild,outputNode);}else{objRef.getNode().appendChild(tempNode.firstChild);}}
objRef.postPaint(objRef);}}
this.model.addListener("refresh",this.paint,this);this.clearWidget=function(objRef){var outputNode=document.getElementById(objRef.outputNodeId);var node=objRef.getNode();if(node&&outputNode)node.removeChild(outputNode);}
this.model.addListener("newModel",this.clearWidget,this);}
var cscsPath=baseDir+"/util/cscs/lib/";function Proj(srs){var tmp=srs.split(":");cs=tmp[0]+tmp[1];cscsRequestCSDefinition(cs);var epsg=new CS(eval("csList."+cs));epsg.srs=srs;return epsg;}
function cscsRequestCSDefinition(csCode){var title=null;var proj=null;var def;var defLoaded;for(i in csList){if(csCode==i){defLoaded=true;break;}}
if(!defLoaded){def=get_content(cscsPath+"defs/"+csCode+".js");if(def){var chk;eval("chk="+def);var propArray;var paramArray=chk.split("+");for(var i=0;i<paramArray.length;i++){propArray=paramArray[i].split("=");if(propArray[0].toLowerCase()=="proj"){proj=propArray[1].replace(/\s/gi,"");}else if(propArray[0].toLowerCase()=="title"){title=propArray[1];}}
if(proj){if(!title){title=proj;}
var projLoaded;for(i in csList){if((csList[i].indexOf(proj)!=-1)&&i!=csCode){projLoaded=true;break;}}
if(!projLoaded){eval(get_content(cscsPath+proj+".js"));}}}}}
function get_content(url){var content;if(document.all){var xml=new ActiveXObject("Microsoft.XMLHTTP");xml.Open("GET",url,false);xml.Send()
content=xml.responseText;}else{var xml=new XMLHttpRequest();xml.open("GET",url,false);xml.send(null);content=xml.responseText;}
if(xml.status==200){return(content);}else{alert("Error, status = "+xml.status);return null;}}
mapbuilder.loadScript(baseDir+"/util/Util.js");mapbuilder.loadScript(baseDir+"/widget/WidgetBase.js");function ButtonBase(widgetNode,model){var buttonBarNode=widgetNode.selectSingleNode("mb:buttonBar");if(buttonBarNode){this.htmlTagId=buttonBarNode.firstChild.nodeValue;}
var htmlTagNode=widgetNode.selectSingleNode("mb:htmlTagId");if(htmlTagNode){this.htmlTagId=htmlTagNode.firstChild.nodeValue;}
if((!buttonBarNode)&&(!htmlTagNode)){alert(mbGetMessage("buttonBarRequired",widgetNode.nodeName));}
if(config.widgetText){var textNodeXpath="/mb:WidgetText/mb:widgets/mb:"+widgetNode.nodeName;var textParams=config.widgetText.selectNodes(textNodeXpath+"/*");for(var j=0;j<textParams.length;j++){this[textParams[j].nodeName]=textParams[j].firstChild.nodeValue;}}
this.panelHtmlTagId=this.htmlTagId+'_panel';if(!document.getElementById(this.panelHtmlTagId)){var parentNode=document.getElementById(this.htmlTagId);var olPanelNode=document.createElement('div');olPanelNode.setAttribute('id',this.panelHtmlTagId);olPanelNode.setAttribute('class','olControlPanel');parentNode.appendChild(olPanelNode);parentNode.innerHTML+=' ';}
loadCss('controlPanel.css');WidgetBase.apply(this,new Array(widgetNode,model));this.buttonType=widgetNode.selectSingleNode("mb:class").firstChild.nodeValue;if(this.buttonType=="RadioButton")this.enabled=false;var action=widgetNode.selectSingleNode("mb:action");if(action){this.action=action.firstChild.nodeValue;}
var tooltip=widgetNode.selectSingleNode("mb:tooltip");if(tooltip){this.tooltip=tooltip.firstChild.nodeValue;}
var disabledImage=widgetNode.selectSingleNode("mb:disabledSrc");if(disabledImage){this.disabledImage=config.skinDir+disabledImage.firstChild.nodeValue;}
var enabledImage=widgetNode.selectSingleNode("mb:enabledSrc");if(enabledImage){this.enabledImage=config.skinDir+enabledImage.firstChild.nodeValue;}
this.cursor='default';var cursorNode=this.widgetNode.selectSingleNode("mb:cursor");if(cursorNode!=null){var cursor=cursorNode.firstChild.nodeValue;this.cursor=cursor;}
var selected=widgetNode.selectSingleNode("mb:selected");if(selected&&selected.firstChild.nodeValue)this.selected=true;this.getButtonClass=function(objRef,state){var cssName;if(objRef.control.displayClass){cssName=objRef.control.displayClass;}else{cssName=objRef.control.CLASS_NAME;cssName=cssName.replace(/OpenLayers/,'ol').replace(/\./g,'');}
cssName+='Item';return'.'+cssName+state;}
this.control=null;this.doAction=function(){}
this.select=function(){if(this.control.type==OpenLayers.Control.TYPE_BUTTON){this.control.trigger();}else{this.panel.activateControl(this.control);}}
this.doSelect=function(objRef,selected){}
this.attachToOL=function(objRef,refreshId){if(refreshId&&(refreshId!=objRef.id))return;if(!objRef.createControl)return;var SubclassControl=objRef.createControl(objRef);var Control=OpenLayers.Class(SubclassControl,{superclass:SubclassControl.prototype,trigger:function(){if(this.superclass.trigger){this.superclass.trigger.call(this);}
objRef.doSelect(objRef,true);},activate:function(){if(this.superclass.activate.call(this)){this.panel_div.style.backgroundImage="url(\""+objRef.enabledImage+"\")";this.map.div.style.cursor=objRef.cursor;this.map.mbCursor=objRef.cursor;objRef.enabled=true;this.active=true;objRef.doSelect(objRef,true);}},deactivate:function(){if(this.superclass.deactivate.call(this)){this.panel_div.style.backgroundImage="url(\""+objRef.disabledImage+"\")";objRef.enabled=false;this.active=false;objRef.doSelect(objRef,false)}},destroy:function(){this.superclass.destroy.apply(this,arguments);this.div=null;}});objRef.control=objRef.instantiateControl?objRef.instantiateControl(objRef,Control):new Control();var map=objRef.targetContext.map;objRef.panel=objRef.targetContext.buttonBars[objRef.htmlTagId];if(!objRef.panel||objRef.panel.map==null){var Panel=OpenLayers.Class(OpenLayers.Control.Panel,{div:document.getElementById(objRef.panelHtmlTagId),defaultControl:null,destroy:function(){OpenLayers.Control.Panel.prototype.destroy.apply(this,arguments);this.div=null;}});objRef.panel=new Panel();objRef.targetContext.buttonBars[objRef.htmlTagId]=objRef.panel;map.addControl(objRef.panel);}
objRef.panel.addControls(objRef.control);if(objRef.tooltip){objRef.control.panel_div.title=objRef.tooltip;}
objRef.control.panel_div.style.backgroundImage="url(\""+objRef.disabledImage+"\")";if(objRef.selected==true){objRef.control.activate();}}
this.buttonInit=function(objRef){var targetContext=objRef.widgetNode.selectSingleNode("mb:targetContext");if(targetContext){objRef.targetContext=window.config.objects[targetContext.firstChild.nodeValue];if(!objRef.targetModel){alert(mbGetMessage("noTargetContext",targetContext.firstChild.nodeValue,objRef.id));}}else{objRef.targetContext=objRef.targetModel;}
if(!objRef.targetContext.buttonBars){objRef.targetContext.buttonBars=new Array();}
objRef.targetContext.addListener("refresh",objRef.attachToOL,objRef);}
this.model.addListener("init",this.buttonInit,this);}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");function EditButtonBase(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.cursor="crosshair";this.trm=widgetNode.selectSingleNode("mb:transactionResponseModel");if(this.trm)this.trm=this.trm.firstChild.nodeValue;this.defaultModelUrl=widgetNode.selectSingleNode("mb:defaultModelUrl").firstChild.nodeValue;this.featureXpath=widgetNode.selectSingleNode("mb:featureXpath").firstChild.nodeValue;this.doSelect=function(objRef,selected){if(this.trm&&!this.transactionResponseModel){this.transactionResponseModel=window.config.objects[this.trm];}
if(this.enabled&&selected&&this.targetModel.url!=this.defaultModelUrl){this.loadDefaultModel(this);}
if(!selected&&this.transactionResponseModel){this.transactionResponseModel.setModel(this.transactionResponseModel,null);}}
this.loadDefaultModel=function(objRef){objRef.targetModel.url=objRef.defaultModelUrl;var httpPayload=new Object();httpPayload.url=objRef.defaultModelUrl;httpPayload.method="get";httpPayload.postData=null;objRef.targetModel.newRequest(objRef.targetModel,httpPayload);}
this.handleFeatureInsert=function(feature){var objRef=feature.layer.mbButton;objRef.setFeature(objRef,feature);feature.destroy();}
this.setEditingLayer=function(objRef){if(!objRef.targetContext.featureLayers[objRef.id]){objRef.featureLayer=new OpenLayers.Layer.Vector(objRef.id);objRef.featureLayer.mbButton=objRef;objRef.targetContext.featureLayers[objRef.id]=objRef.featureLayer;objRef.featureLayer.onFeatureInsert=objRef.handleFeatureInsert;}}
this.initButton=function(objRef){if(!objRef.targetContext.featureLayers){objRef.targetContext.featureLayers=new Array();}
objRef.targetContext.addFirstListener("refresh",objRef.setEditingLayer,objRef);}
this.model.addListener("init",this.initButton,this);}
mapbuilder.loadScript(baseDir+"/widget/ButtonBase.js");function TwoFeaturesBase(widgetNode,model){ButtonBase.apply(this,new Array(widgetNode,model));this.cursor="default";this.tm=widgetNode.selectSingleNode("mb:targetModel").firstChild.nodeValue;this.tc=widgetNode.selectSingleNode("mb:targetContext").firstChild.nodeValue;this.script=widgetNode.selectSingleNode("mb:script").firstChild.nodeValue;this.createControl=function(objRef){var Control=OpenLayers.Class.create();Control.prototype=OpenLayers.Class.inherit(OpenLayers.Control,{CLASS_NAME:'mb'+widgetNode.tagName,type:OpenLayers.Control.TYPE_BUTTON});return Control;}
this.doSelect=function(objRef,selected){if(selected){if(!objRef.targetModel){objRef.targetModel=window.config.objects[objRef.tm];}
if(!objRef.targetContext){objRef.targetContext=windows.config.objects[objRef.tc];}
var features=null;if(objRef.targetModel.doc){var feature_nodes=objRef.targetModel.doc.selectNodes('//gml:featureMember/*/myns:id');if((feature_nodes.length==2)&&(feature_nodes[0]&&feature_nodes[0].firstChild&&feature_nodes[1]&&feature_nodes[1].firstChild)){features=new Array();features[0]=feature_nodes[0].firstChild.nodeValue;features[1]=feature_nodes[1].firstChild.nodeValue;}
else
{alert('לא נבחרו שני קטעים');return;}}
if(objRef.targetModel.doc&&features){objRef.sendMerge(objRef,features);}else{alert('לא נבחרו שני קטעים');}}}
this.sendMerge=function(objRef,features){FM_exec_cmd(this.targetModel,'seg1='+features[0]+'&seg2='+features[1],objRef.script,objRef.sendDone.bind(objRef));}
this.sendDone=function(error){if(!error){this.targetModel.setModel(this.targetModel,null);this.targetModel.callListeners("refreshGmlRenderers");this.targetContext.callListeners("refreshWmsLayers");}}}
mapbuilder.loadScript(baseDir+"/widget/WidgetBaseXSL.js");function CollectionList(widgetNode,model){WidgetBaseXSL.apply(this,new Array(widgetNode,model));this.switchMap=function(objRef,modelUrl){objRef.extent=objRef.targetModel.map.getExtent();objRef.srs=objRef.targetModel.getSRS();objRef.scale=objRef.targetModel.map.getScale();objRef.targetModel.addListener("loadModel",objRef.setExtent,objRef);window.cgiArgs["bbox"]=objRef.extent.toBBOX();config.loadModel(objRef.targetModel.id,modelUrl);}
this.setExtent=function(objRef){objRef.targetModel.removeListener("loadModel",objRef.setExtent,objRef);var bbox=objRef.extent.toBBOX().split(/,/);if(objRef.targetModel.getSRS().toUpperCase()!=objRef.srs.toUpperCase()){var targetProj=new Proj(objRef.targetModel.getSRS());var srcProj=new Proj(objRef.srs);var ptLL=new PT(bbox[0],bbox[1]);var ptUR=new PT(bbox[2],bbox[3]);cs_transform(srcProj,targetProj,ptLL);cs_transform(srcProj,targetProj,ptUR);objRef.extent=new OpenLayers.Bounds(ptLL.x,ptLL.y,ptUR.x,ptUR.y);}
if(objRef.targetModel.map.getExtent().containsBounds(objRef.extent,false,false)){objRef.targetModel.map.zoomToExtent(objRef.extent);if(objRef.targetModel.map.getScale()>objRef.scale){objRef.targetModel.map.zoomIn();}}}}
function ToolBase(toolNode,model){this.model=model;this.toolNode=toolNode;var id=toolNode.selectSingleNode("@id");if(id){this.id=getNodeValue(id);}else{this.id="MbTool_"+mbIds.getId();}
this.initTargetModel=function(toolRef){var targetModel=toolRef.toolNode.selectSingleNode("mb:targetModel");if(targetModel){var targetModelName=targetModel.firstChild.nodeValue;toolRef.targetModel=window.config.objects[targetModelName];if(!toolRef.targetModel)alert(mbGetMessage("noTargetModelTool",targetModelName,toolRef.id));}else{toolRef.targetModel=toolRef.model;}}
this.model.addListener("init",this.initTargetModel,this);this.initMouseHandler=function(toolRef){var mouseHandler=toolRef.toolNode.selectSingleNode("mb:mouseHandler");if(mouseHandler){toolRef.mouseHandler=window.config.objects[mouseHandler.firstChild.nodeValue];if(!toolRef.mouseHandler){alert(mbGetMessage("noMouseHandlerTool",mouseHandler.firstChild.nodeValue,toolRef.id));}}}
this.model.addListener("init",this.initMouseHandler,this);this.enabled=true;var enabled=toolNode.selectSingleNode("mb:enabled");if(enabled)this.enabled=eval(enabled.firstChild.nodeValue);}
var Rearth=6378137.0;var degToMeter=Rearth*2*Math.PI/360;var mbScaleFactor=3571.428;var minScale=1000;var maxScale=200000;function Extent(model,initialRes){this.model=model;this.id=model.id+"_MbExtent"+mbIds.getId();this.size=new Array();this.res=new Array();this.zoomBy=4;this.getBbox=function(){var bbox=this.model.getBoundingBox();return bbox;}
this.setBbox=function(bbox){size=this.getSize();res=Math.max((bbox[2]-bbox[0])/size[0],(bbox[3]-bbox[1])/size[1]);scale=this.getFixedScale(res);center=new Array((bbox[1]-bbox[3])/2,(bbox[0]-bbox[2])/2);half=new Array(size[0]/2,size[1]/2);bbox=new Array(center[0]-half[0]*scale,center[1]-half[1]*scale,center[0]+half[0]*scale,center[1]+half[1]*scale);this.model.setBoundingBox(bbox);}
this.getSize=function(){size=new Array();size[0]=this.model.getWindowWidth();size[1]=this.model.getWindowHeight();return size;}
this.setSize=function(size){this.model.setWindowWidth(size[0]);this.model.setWindowHeight(size[1]);}
this.getFixedScale=function(res){if(this.zoomLevels){if(!res){this.setResolution(new Array(this.model.getWindowWidth(),this.model.getWindowHeight()));res=Math.max(this.res[0],this.res[1]);}
var sortstring="function sort(a,b){return b-a}";var evalsort=eval(sortstring);var zoomLevels=this.zoomLevels.sort(evalsort);var i=0;while(zoomLevels[i]>=res){i++;}
if(i==0){i=1;}
this.fixedScale=zoomLevels[i-1];}
else this.fixedScale=Math.max(this.res[0],this.res[1]);return this.fixedScale;}
this.setZoomLevels=function(enabled,zoomLevels){if(enabled){this.zoomLevels=zoomLevels;}
else this.zoomLevels=null;}
this.checkBbox=function(){var center=this.getCenter();var half=new Array(this.size[0]/2,this.size[1]/2);var res=this.getFixedScale();this.lr=new Array(center[0]+half[0]*res,center[1]-half[1]*res);this.ul=new Array(center[0]-half[0]*res,center[1]+half[1]*res);}
this.getCenter=function(){return new Array((this.ul[0]+this.lr[0])/2,(this.ul[1]+this.lr[1])/2);}
this.getXY=function(pl){latlng=new Array(this.ul[0]+pl[0]*this.res[0],this.ul[1]-pl[1]*this.res[1]);return latlng;}
this.getPL=function(xy){var p=Math.floor((xy[0]-this.ul[0])/this.res[0]);var l=Math.floor((this.ul[1]-xy[1])/this.res[1]);return new Array(p,l);}
this.centerAt=function(center,newres,limitExtent){var half=new Array(this.size[0]/2,this.size[1]/2);if(this.zoomLevels){newres=this.getFixedScale(newres);}
this.lr=new Array(center[0]+half[0]*newres,center[1]-half[1]*newres);this.ul=new Array(center[0]-half[0]*newres,center[1]+half[1]*newres);if(limitExtent){var xShift=0;if(this.lr[0]>ContextExtent.lr[0])xShift=ContextExtent.lr[0]-this.lr[0];if(this.ul[0]<ContextExtent.ul[0])xShift=ContextExtent.ul[0]-this.ul[0];this.lr[0]+=xShift;this.ul[0]+=xShift;var yShift=0;if(this.lr[1]<ContextExtent.lr[1])yShift=ContextExtent.lr[1]-this.lr[1];if(this.ul[1]>ContextExtent.ul[1])yShift=ContextExtent.ul[1]-this.ul[1];this.lr[1]+=yShift;this.ul[1]+=yShift;}
this.model.setBoundingBox(new Array(this.ul[0],this.lr[1],this.lr[0],this.ul[1]));this.setSize(newres);}
this.zoomToBox=function(ul,lr){var center=new Array((ul[0]+lr[0])/2,(ul[1]+lr[1])/2);newres=Math.max((lr[0]-ul[0])/this.size[0],(ul[1]-lr[1])/this.size[1]);this.centerAt(center,newres);}
this.setSize=function(res){this.res[0]=this.res[1]=res;this.size[0]=(this.lr[0]-this.ul[0])/this.res[0];this.size[1]=(this.ul[1]-this.lr[1])/this.res[1];this.width=Math.ceil(this.size[0]);this.height=Math.ceil(this.size[1]);}
this.setResolution=function(size){this.size[0]=size[0];this.size[1]=size[1];this.res[0]=(this.lr[0]-this.ul[0])/this.size[0];this.res[1]=(this.ul[1]-this.lr[1])/this.size[1];this.width=Math.ceil(this.size[0]);this.height=Math.ceil(this.size[1]);}
this.getScale=function(){var pixRes=null;switch(this.model.getSRS()){case"EPSG:GMAPS":break;case"EPSG:4326":case"EPSG:4269":pixRes=this.res[0]*degToMeter;break;default:pixRes=this.res[0];break;}
return mbScaleFactor*pixRes;}
this.setScale=function(scale){var newRes=null;switch(this.model.getSRS()){case"EPSG:4326":case"EPSG:4269":newRes=scale/(mbScaleFactor*degToMeter);break;default:newRes=scale/mbScaleFactor;break;}
this.centerAt(this.getCenter(),newRes);}
this.init=function(extent,initialRes){var bbox=extent.model.getBoundingBox();extent.ul=new Array(bbox[0],bbox[3]);extent.lr=new Array(bbox[2],bbox[1]);extent.setResolution(new Array(extent.model.getWindowWidth(),extent.model.getWindowHeight()));extent.checkBbox();}
if(initialRes)this.init(this,initialRes);this.firstInit=function(extent,initialRes){extent.init(extent,initialRes);}}