function toJSON(d){var b="";if(d instanceof Array){b+="[";for(var a=0;a<d.length;a++){b+=toJSON(d[a])+(a+1<d.length?",":"")}b+="]"}else{if(d instanceof String){b+='"'+d.toString().replace(/\"/g,'\\"')+'"'}else{if(d instanceof Number){b+=""+d.valueOf()}else{if(d instanceof Object){b+="{";var e=0;for(var a in d){b+=(e++?",":"")+'"'+a+'":'+toJSON(d[a])}b+="}"}else{if(typeof(d)=="string"){b+='"'+d.replace(/\"/g,'\\"')+'"'}else{b+=d}}}}}return b}function typeOf(a){var b=a&&a.__class__;if(!b){if(typeof(a)=="object"){return a.constructor.name}else{return typeof(a)}}else{return b.className}}function instanceOf(a,b){if(typeof(a)=="undefined"){return false}if(typeof(b)=="string"){if(a===null){return b.toLowerCase()=="string"}return typeof(a)==b.toLowerCase()}else{if(a===null){return true}if(!a.__class__){return a.constructor==b}else{return inheritsFrom(a.__class__,b)}}}function inheritsFrom(a,b){if(!b){return false}return(a.__inheritance__.indexOf(b.className+"|")!=-1)}function clone(b){if(typeof(b)=="object"){var c={};for(var a in b){c[a]=clone(b[a])}return c}return b}function compare(d,c){if(d&&c&&d!=c&&typeof(d)=="object"&&typeof(c)=="object"){var a=false;for(var b in d){if(!compare(d[b],c[b])){return false}var a=true}for(var b in c){return a}return true}return(d==c)}function equals(d,c){if(d&&c){if(d.equals){return d.equals(c)}if(d!=c&&typeof(d)=="object"&&typeof(c)=="object"){var a=false;for(var b in d){if(!equals(d[b],c[b])){return false}var a=true}for(var b in c){return a}return true}}return(d==c)}function stringValue(a,b){if(typeof(b)=="undefined"){var b=null}return typeof(a)=="undefined"?b:(typeof(a)=="string"?a:""+a||b)}function intValue(a,b){if(typeof(b)=="undefined"){var b=null}return typeof(a)=="number"?parseInt(a):a?parseInt(a):b}function floatValue(a,b){if(typeof(b)=="undefined"){var b=null}return typeof(a)=="number"?parseFloat(a):a?parseFloat(a):b}function boolValue(a,b){if(typeof(b)=="undefined"){var b=null}return typeof(a)=="undefined"?b:a?true:false}function property(b,e,c){if(e==Boolean||(typeof(e)=="string"&&e.toLowerCase()=="boolean")){var f="is"+b}else{var f="get"+b}this[b]=null;var h,d,a,g;if(c){if(c.set){a=c.set}if(c.get){g=c.get}}if(!a){h=function h(i){if(instanceOf(i,e)){this[b]=i}else{throw"TypeMissmatchException: "+this.__class__.className+".property."+b+" takes a '"+(e.className||e.name)+"' value but got a '"+typeOf(n)+"'."}}}else{h=function h(i){if(instanceOf(i,e)){var j=a.call(this,i);if(typeof(j)!="undefined"){this[b]=j}}else{throw"TypeMissmatchException: "+this.__class__.className+".property."+b+" takes a '"+(e.className||e.name)+"' value but got a '"+typeOf(j)+"'."}}}if(!g){d=function d(){return this[b]}}else{d=function d(){var i=g.call(this);if(instanceOf(i,e)){return i}else{throw"TypeMissmatchException: "+this.__class__.className+".property."+b+" should return a '"+(e.className||e.name)+"' value but returned a '"+typeOf(i)+"'."}}}this.prototype["set"+b]=h;this.prototype[f]=d}function arrayCompare(b,a){if(b.length!=a.length){return false}for(var c=0;c<b.length;c++){if(b[c]!=a[c]){return false}}return true}function printf(c){var a=new String(c);for(var b=1;b<arguments.length;b++){a=a.replace("%"+b,arguments[b],"g")}return a}function fuseOnce(d,c,a,b){var g=function(){b.apply(a,arguments);defuse(d,c,a,g)};fuse(d,c,a,g)}function fuse(g,d,a,c){var b="__fuse__"+d;if(!g[d]||!g[d].__fuse__){if(!g[b]){if(typeof(g[d])=="function"){g[b]=new Array({o:g,f:g[d]})}else{g[b]=new Array()}}g[d]=function(){var e=g[b];for(var f=0;f<e.length;f++){e[f].f.apply(e[f].o,arguments)}};g[d].__fuse__=true}g[b].push({o:a,f:c})}function defuse(k,j,c,h){var d="__fuse__"+j;if(k[d]){var b=k[d];for(var g=0;g<b.length;g++){if(b[g].f==h&&b[g].o==c){b.splice(g,1)}}}}function syncronize(d,b,a,g){if(g){a()}else{hookOnce(d,b,a)}}function hookOnce(d,c,a){var b=function(){a.apply(d,arguments);unhook(d,c,b)};hook(d,c,b)}function hook(d,c,b){var a="__hook__"+c;if(!d[a]){if(typeof(d[c])=="function"){d[a]=new Array(d[c])}else{d[a]=new Array()}d[c]=function(){var e=d[a];for(var f=0;f<e.length;f++){e[f].apply(d,arguments)}}}d[a].push(b)}function unhook(j,h,g){var d="__hook__"+h;if(j[d]){var b=j[d];for(var c=0;c<b.length;c++){if(b[c]==g){b.splice(c,1)}}}}function staticConstructor(a,b){gjsf.myStaticConstructors.push(function(){b.call(a)})}function declareClass(b,a){if(!window[b]||typeof(window[b])!="function"){if(a){window[b]=function(){this.construct.apply(this,arguments)}}else{window[b]=function(){}}}if(gjsf.myDebug){window[b]=gjsf.getDebugFunction(window[b],b)}window[b].prototype.toString=function(){return b};window[b].prototype.__class__=window[b];window[b].className=b;window[b].property=property;window[b].__inheritance__=b+"|";if(a){if(a.className){a=a.className}gjsf.xtend(window[b],a)}gjsf.classLoaded(b)}function declareStaticClass(a){if(typeof(window[a])=="function"){gjsf.myStaticConstructors.push(window[a])}window[a]={};window[a].className=a;gjsf.classLoaded(a)}function declareAbstractClass(c,b){if(typeof(window[c])=="function"){var a=window[c];window[c]=function(){if(this.__class__.className==c){throw (c+" is abstract.")}a.apply(this,arguments)}}else{window[c]=function(){if(this.__class__.className==c){throw (c+" is abstract.")}if(this.construct){this.construct.apply(this,arguments)}}}declareClass(c,b)}function declareFinalClass(b,a){declareClass(b,a);window[b].__final__=true}function declareContract(a){declareClass(a);gjsf.myContracts[a]=true}function finalize(a){a.__final__=true;return a}function strapCss(a){var b=document.createElement("link");b.type="text/css";b.rel="stylesheet";b.href=a;gjsf.getHeadElement().appendChild(b)}function strap(d){if(/\.js$/.test(d)){gjsf.openScript(d)}else{var a="";for(var b in gjsf.myClassPaths){if(d.indexOf(b+".")==0){a=gjsf.myClassPaths[b]+d.replace(/\./g,"/");break}}if(!a){for(var b in gjsf.myClassPaths){a=gjsf.myClassPaths[b]+(b+"."+d).replace(/\./g,"/");break}}var c=a.substring(a.lastIndexOf("/")+1,a.length);a+=".js";if(!window[c]){window[c]={className:c};gjsf.myPendingClasses[c]=true;if(gjsf.openScript(a)){gjsf.myLoadCount++}}}}function contract(a){var b=a.substring(a.lastIndexOf("/")+1,a.length);var c=b.indexOf(".");b=b.substring(0,(c!=-1?c:b.length));if(!window[b]){window[b]=b;gjsf.myPendingClasses[b]=true;if(gjsf.openScript(a)){gjsf.myLoadCount++}}}function isClassLoaded(a){return(gjsf.myPendingClasses[a]===false||typeof(window[a])=="function")}function isClassStrapped(a){return(typeof(gjsf.myPendingClasses[a])!="undefined")}function addClassPath(a,b){if(b){gjsf.myClassPaths[a]=b.replace(new RegExp("/*$"),"/")}}function getDefaultCharset(){if(typeof(document.characterSet)=="string"){return document.characterSet}var c=null;var b=document.getElementsByTagName("meta");for(var a=0;a<b.length;a++){c=b[a].content.match(/^.*charset=([\w\d\-]+);?.*$/i);if(c&&c.length>1){return c[1]}}return""}gjsf={};gjsf.myScripts={};gjsf.myPendingClasses={};gjsf.myLoadCount=0;gjsf.myLoadTimer=null;gjsf.myScriptsToStrap=new Array();gjsf.myIsStrapInitiated=false;gjsf.myHeadElement=null;gjsf.myStackTrace=new Array();gjsf.myXtends=new Array();gjsf.myIsXtendInitiated=false;gjsf.myStaticConstructors=new Array();gjsf.myContracts={};gjsf.myClassPaths={};gjsf.xtend=function(a,b){gjsf.myXtends.push({student:a,teacher:b})};gjsf.buildTree=function(a,b){if(!b.__final__){a.__teacher__=b;if(!b.__tree__){b.__tree__=new Array()}b.__tree__.push(a)}else{throw new Exception(b+" is declared as final.")}};gjsf.buildClass=function(d){var e=d.__teacher__;if(e&&!d.__built__){for(var b in e.prototype){var c=d.prototype[b];var a=e.prototype[b];if(a&&a.__final__&&c){throw new Exception(e.className+"."+b+" is declared as final.")}if(typeof(c)=="undefined"){d.prototype[b]=a}else{if(typeof(c)=="function"&&typeof(a)=="function"){c.__base__=e}}}if(e.prototype.toString()!=e.className&&d.prototype.toString()==d.className){d.prototype.toString=e.prototype.toString}d.__inheritance__=e.__inheritance__+"|"+d.__inheritance__;d.prototype.base=gjsf.base;d.prototype.construct=gjsf.construct;d.prototype.getConstruct=gjsf.getConstruct;d.prototype.getClass=gjsf.getClass}if(d.__tree__){for(var b=0;b<d.__tree__.length;b++){gjsf.buildClass(d.__tree__[b])}delete (d.__tree__)}d.__built__=true};gjsf.initXtend=function(){for(var i=0;i<gjsf.myXtends.length;i++){gjsf.myXtends[i].student=eval(gjsf.myXtends[i].student);gjsf.myXtends[i].teacher=eval(gjsf.myXtends[i].teacher);gjsf.buildTree(gjsf.myXtends[i].student,gjsf.myXtends[i].teacher)}for(var i=0;i<gjsf.myXtends.length;i++){var teacher=gjsf.myXtends[i].teacher;if((teacher.__tree__&&teacher.__built__)||!teacher.__teacher__){gjsf.buildClass(teacher)}}gjsf.myXtends=new Array();gjsf.myIsXtendInitiated=true};gjsf.base=function(c,a){var b=this;if(!b.__stack__){b.__stack__={}}if(b.__stack__[c]){var d=b.__stack__[c];b.__stack__[c]=d.prototype[c].__base__}else{var d=null;if(a){b.__stack__[c]=a}else{b.__stack__[c]=b.__class__.prototype[c].__base__}}return function(){try{return b.__stack__[c].prototype[c].apply(b,arguments)}catch(e){}finally{b.__stack__[c]=d}}};gjsf.construct=function(){if(!this.__construct__){this.__construct__=this.__class__.__teacher__}else{this.__construct__=this.__construct__.__teacher__}this.__construct__.apply(this,arguments);delete (this.__construct__)};gjsf.getConstruct=function(b){var a=this;a.__construct__=b;return function(){a.__construct__.apply(a,arguments);delete (a.__construct__)}};gjsf.getClass=finalize(function(){return this.__class__});gjsf.setDebug=function(a){gjsf.myDebug=a};gjsf.isDebug=function(a){return gjsf.myDebug};gjsf.getHeadElement=function(){if(!gjsf.myHeadElement){gjsf.myHeadElement=document.getElementsByTagName("head")[0]}return gjsf.myHeadElement};gjsf.getPendingClasses=function(){return gjsf.myPendingClasses};gjsf.getStackTrace=function(){return gjsf.myStackTrace.concat().reverse()};gjsf.isInitiated=function(){return gjsf.myIsXtendInitiated};gjsf.initStrap=function(){gjsf.myIsStrapInitiated=true;for(var a=0;a<gjsf.myScriptsToStrap.length;a++){gjsf.openScript(gjsf.myScriptsToStrap[a])}};gjsf.openScript=function(b){if(!gjsf.myScripts[b]){if(gjsf.myIsStrapInitiated){gjsf.myScripts[b]=true;var a=document.createElement("script");a.type="text/javascript";a.onerror=gjsf.onerror;a.src=b;gjsf.getHeadElement().appendChild(a)}else{gjsf.myScriptsToStrap.push(b)}return true}return false};gjsf.classLoaded=function(a){if(gjsf.myPendingClasses[a]){gjsf.myPendingClasses[a]=false;gjsf.myLoadCount--;setTimeout(function(){gjsf.onclassload(a)},0);if(gjsf.myLoadCount==0){setTimeout(gjsf.loaded,0)}}};gjsf.execStaticConstructors=function(){for(var a=0;a<gjsf.myStaticConstructors.length;a++){gjsf.myStaticConstructors[a]()}gjsf.myStaticConstructors=new Array()};gjsf.loaded=function(){var a=gjsf.myIsXtendInitiated;if(gjsf.myDebug){gjsf.initDebug()}gjsf.initXtend();gjsf.execStaticConstructors();if(!a){gjsf.onload()}else{clearTimeout(gjsf.myLoadTimer);gjsf.myLoadTimer=setTimeout(gjsf.onlateload,1)}};gjsf.initDebug=function(){for(var b in gjsf.myPendingClasses){var d=window[b];for(var a in d.prototype){if(typeof(d.prototype[a])=="function"&&a!="__class__"&&a!="__original__"){d.prototype[a]=gjsf.getDebugFunction(d.prototype[a],b+".prototype."+a+"()")}}for(var a in d){if(typeof(d[a])=="function"&&a!="__class__"&&a!="__original__"){d[a]=gjsf.getDebugFunction(d[a],b+"."+a+"()")}}}};gjsf.getDebugFunction=function(c,b){var a=function(){gjsf.myStackTrace.push(arguments.callee.functionName);try{var e=arguments.callee.__original__.apply(this,arguments)}catch(d){if(typeof(d)=="string"){d=new Exception(d)}throw d}finally{gjsf.myStackTrace.pop()}return e};a.functionName=b;a.__original__=c;return a};gjsf.onload=function(){};gjsf.onlateload=function(){};gjsf.onclassload=function(a){};gjsf.onerror=function(a){throw (a+" - "+this.src)};try{if(window.attachEvent){window.attachEvent("onload",gjsf.initStrap)}else{window.addEventListener("load",gjsf.initStrap,false)}}catch(ex){if(typeof(window.onload)!="undefined"){var tmpOnLoad=window.onload;window.onload=function(){gjsf.initStrap();window.onload=tmpOnLoad;tmpOnLoad=null;try{window.onload()}catch(a){}}}else{window.onload=function(){gjsf.initStrap()}}};

addClassPath("com.geosition","http://api3.geosition.com/gwc-2.0.1151-systembolaget/");
declareClass("Point");Point.prototype.x=Number.NaN;Point.prototype.y=Number.NaN;function Point(d,c){this.set(d,c)}Point.prototype.add=function(d,c){this.x+=parseInt(d);this.y+=parseInt(c)};Point.prototype.addPoint=function(b){this.add(b.x,b.y)};Point.prototype.sub=function(d,c){this.x-=parseInt(d);this.y-=parseInt(c)};Point.prototype.subPoint=function(b){this.sub(b.x,b.y)};Point.prototype.set=function(d,c){this.x=parseInt(d);this.y=parseInt(c)};Point.prototype.abs=function(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))};Point.prototype.toString=function(){return this.x+","+this.y};
declareClass("LoadPool");LoadPool.prototype.myIsLoading=false;LoadPool.prototype.myLoad=0;LoadPool.prototype.myPoolSize=0;function LoadPool(a){for(var d in a){this.addToPool(a[d])}}LoadPool.prototype.getLoad=function(){return this.myLoad};LoadPool.prototype.isLoading=function(){return this.myIsLoading};LoadPool.prototype.addToPool=function(d){this.myPoolSize++;if(d.myIsLoading){this.loading();this.myLoad+=1}var c=this;hook(d,"ondone",function(){c.myLoad-=1;if(c.myLoad==0){c.done()}});hook(d,"onloading",function(){c.loading();c.myLoad+=1})};LoadPool.prototype.loading=function(){if(!this.myIsLoading){this.myIsLoading=true;this.onloading()}};LoadPool.prototype.done=function(){if(this.myIsLoading){this.myIsLoading=false;this.ondone()}};LoadPool.prototype.onloading=function(){};LoadPool.prototype.ondone=function(){};
declareClass("Dimension");Dimension.prototype.width=null;Dimension.prototype.height=null;function Dimension(d,c){this.set(d,c)}Dimension.prototype.set=function(d,c){this.width=parseInt(d);this.height=parseInt(c)};Dimension.prototype.isSet=function(){return(typeof this.width=="number"&&typeof this.height=="number")};Dimension.prototype.toString=function(){return this.width+"x"+this.height};
strap("com.geosition.util.Dimension");strap("com.geosition.util.Point");declareStaticClass("StdTools");StdTools.BROWSER_FIREFOX="Firefox";StdTools.BROWSER_OPERA="Opera";StdTools.BROWSER_SAFARI="Safari";StdTools.BROWSER_KONQUEROR="Konqueror";StdTools.BROWSER_OMNIWEB="OmniWeb";StdTools.BROWSER_WEBTV="WebTV";StdTools.BROWSER_ICAB="iCab";StdTools.BROWSER_MSIE="Internet Explorer";StdTools.BROWSER_NN="Netscape Navigator";StdTools.BROWSER_UNKNOWN="Unknown";StdTools.OS_LINUX="Linux";StdTools.OS_UNIX="Unix";StdTools.OS_MAC="Mac";StdTools.OS_WINDOWS="Windows";StdTools.OS_UNKNOWN="Unknown";StdTools.HEX_TABLE=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];StdTools.myRequest=null;StdTools.myBrowser="";StdTools.myOS="";StdTools.myBrowserVersion="Unknown";StdTools.myFixPngBlank="";StdTools.detectBrowser=function(){var e=navigator.userAgent.toLowerCase();if(e.indexOf("firefox")!=-1){this.myBrowser=StdTools.BROWSER_FIREFOX}else{if(e.indexOf("opera")!=-1){this.myBrowser=StdTools.BROWSER_OPERA}else{if(e.indexOf("safari")!=-1){this.myBrowser=StdTools.BROWSER_SAFARI;try{var d=new RegExp("version/([0-9.]+)");this.myBrowserVersion=d.exec(e)[1]}catch(f){}}else{if(e.indexOf("konqueror")!=-1){this.myBrowser=StdTools.BROWSER_KONQUEROR}else{if(e.indexOf("omniweb")!=-1){this.myBrowser=StdTools.BROWSER_OMNIWEB}else{if(e.indexOf("webtv")!=-1){this.myBrowser=StdTools.BROWSER_WEBTV}else{if(e.indexOf("icab")!=-1){this.myBrowser=StdTools.BROWSER_ICAB}else{if(e.indexOf("msie")!=-1){this.myBrowser=StdTools.BROWSER_MSIE;try{var d=new RegExp("msie ([0-9.]*)");this.myBrowserVersion=d.exec(e)[1]}catch(f){}}else{if(e.indexOf("compatible")==-1){this.myBrowser=StdTools.BROWSER_NN}}}}}}}}}if(this.myBrowserVersion=="Unknown"){try{var d=new RegExp(this.myBrowser.toLowerCase()+"/([0-9.]+)");this.myBrowserVersion=d.exec(e)[1]}catch(f){}}if(e.indexOf("linux")!=-1){this.myOS=StdTools.OS_LINUX}else{if(e.indexOf("x11")!=-1){this.myOS=StdTools.OS_UNIX}else{if(e.indexOf("mac")!=-1){this.myOS=StdTools.OS_MAC}else{if(e.indexOf("win")!=-1){this.myOS=StdTools.OS_WINDOWS}}}}StdTools.detectBrowser=function(){}};StdTools.getMousePos=function(b){if(!b){var b=window.event}if(b.pageX){return new Point(b.pageX,b.pageY)}return new Point(b.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,b.clientY+document.body.scrollTop+document.documentElement.scrollTop)};StdTools.getRelativeMousePos=function(b){if(!b){var b=window.event}if(b.layerX){return new Point(b.layerX,b.layerY)}if(b.offsetX){return new Point(b.offsetX,b.offsetY)}return new Point(b.x,b.y)};StdTools.getMouseButton=function(b){if(!b){var b=window.event}return b.which||b.button};StdTools.getKeyPressed=function(b){if(!b){var b=window.event}return b.keyCode};StdTools.getKeyShift=function(b){if(!b){var b=window.event}return b.keyShift};StdTools.getTarget=function(b){if(!b){var b=window.event}return b.srcElement||b.target};StdTools.getElementPosition=function(d){var c=new Point(0,0);while(d!=null){c.add(d.offsetLeft,d.offsetTop);d=d.offsetParent}return c};StdTools.getWindowDimension=function(){if(typeof(window.innerWidth)!="undefined"){return new Dimension(window.innerWidth,window.innerHeight)}else{if(typeof(document.documentElement)!="undefined"){if(typeof(document.documentElement.clientWidth)!="undefined"&&document.documentElement.clientWidth!=0){return new Dimension(document.documentElement.clientWidth,document.documentElement.clientHeight)}else{return new Dimension(document.documentElement.offsetWidth,document.documentElement.offsetHeight)}}}};StdTools.getElement=function(b){if(typeof(b)=="string"){return document.getElementById(b)}return b};StdTools.getStyle=function(e,d){var f="";if(e.currentStyle){f=e.currentStyle[d]}else{if(window.getComputedStyle){f=document.defaultView.getComputedStyle(e,null).getPropertyValue(StdTools.camelCaseToStyle(d))}}if(!f&&e.style){f=e.style[d]}return f};StdTools.isAttached=function(b){return(b&&b.parentNode&&b.parentNode.nodeType!=11)};StdTools.addCssClass=function(c,f){var e=c.className||c.getAttribute&&c.getAttribute("class");if(!e){c.className=f}else{if(e.indexOf(f)==-1){c.className=e+" "+f}}};StdTools.removeCssClass=function(c,f){var e=c.className||c.getAttribute&&c.getAttribute("class");if(e){c.className=e.replace(f,"")}};StdTools.trim=function(b){return new String(b).replace(/^\s*/,"").replace(/\s*$/,"")};StdTools.setAlpha=function(d,a){StdTools.setOpacity(d,a)};StdTools.setOpacity=function(d,a){a=parseFloat(a);if(typeof(d.style.filter)!="undefined"){d.style.filter="alpha(opacity="+(a*100)+")"}else{d.style.MozOpacity=a;d.style.opacity=a}};StdTools.stopBubble=function(b){if(!b){var b=window.event}b.cancelBubble=true;if(b.stopPropagation){b.stopPropagation()}};StdTools.parseRequest=function(){var e=window.location.toString();var f="";var d=e.indexOf("?");if(d!=-1&&d<e.length-1){f=e.substring(d+1,e.length)}this.myRequest=this.parseMime(f);StdTools.parseRequest=function(){}};StdTools.parseMime=function(j,m){if(!m){var m="&"}var n={};if(j){var h=j.split(m);for(var k=0;k<h.length;k++){var l=h[k].split("=");if(l.length==2){if(n[l[0]]){if(!(n[l[0]] instanceof Array)){var i=new Array();i.push(n[l[0]]);n[l[0]]=i}n[l[0]].push(l[1])}else{n[l[0]]=l[1]}}}}return n};StdTools.toHex=function(j,g){if(j<0){return StdTools.zeroPad("0",g)}var h=j%16;var b=(j-h)/16;if(b>=16){var i=StdTools.toHex(b)+StdTools.HEX_TABLE[h]}else{var i=StdTools.HEX_TABLE[b]+StdTools.HEX_TABLE[h]}return StdTools.zeroPad(i,g)};StdTools.zeroPad=function(d,c){return(d.toString().length<c)?StdTools.zeroPad("0"+d,c):d.toString()};StdTools.formatHHMM=function(h){var j=new String(h).replace(/[^\d:]/g,"").split(":");var f=0;var i=0;if(j.length<2){var g=j[0];if(g.length>2){if(g.length>4){g=g.substr(0,4)}i=g.substr(-2)}else{g+="00"}g=StdTools.zeroPad(g,4);f=g.substr(0,2)}else{f=j[0].substr(0,2);i=j[1].substr(0,2)}i=parseInt(i,10);mm_r=i-(i%60);f=StdTools.zeroPad((parseInt(f,10)+(mm_r/60))%24,2);i=StdTools.zeroPad(i%60,2);return f+":"+i};StdTools.addMinutesToHHMM=function(d,e){var f=StdTools.HHMMToMinutes(d);return StdTools.minutesToHHMM(f+e)};StdTools.HHMMToMinutes=function(d){d=StdTools.formatHHMM(d);var c=d.split(":");return parseInt(c[0],10)*60+parseInt(c[1],10)};StdTools.minutesToHHMM=function(d){var c=new Date((d-60)*60000);return StdTools.zeroPad(c.getHours(),2)+":"+StdTools.zeroPad(c.getMinutes(),2)};StdTools.disableContextMenu=function(b){if(b){b.oncontextmenu=function(){return false}}};StdTools.enableContextMenu=function(b){if(b){b.oncontextmenu=function(){return true}}};StdTools.disableSelect=function(b){if(b){b.style.MozUserSelect="none"}};StdTools.toggleLayer=function(b){if(b.style.visibility=="hidden"){b.style.visibility="visible"}else{b.style.visibility="hidden"}};StdTools.correctUrl=function(b){b=b.toString().replace(/\/+$/,"/").replace(/^\//,"");if(b.indexOf("http://")==-1&&b.indexOf("https://")==-1){return Config.getHostUrl()+b}return b};StdTools.initialCaps=function(b){return b.substr(0,1).toUpperCase()+b.substr(1).toLowerCase()};StdTools.camelCaseToStyle=function(b){return b.replace(/([A-Z])/g,"-$1").toLowerCase()};StdTools.getBrowser=function(){this.detectBrowser();return this.myBrowser};StdTools.getBrowserVersion=function(){this.detectBrowser();return this.myBrowserVersion};StdTools.getOS=function(){this.detectBrowser();return this.myOS};StdTools.getRequest=function(b){this.parseRequest();return this.myRequest[b]};StdTools.enableFixPng=function(b){if(StdTools.getBrowser()==StdTools.BROWSER_MSIE&&parseFloat(StdTools.getBrowserVersion())<7){StdTools.myFixPngBlank=b;StdTools.fixAllPng()}};StdTools.getSelectIndex=function(e,f){for(var d=0;d<e.options.length;d++){if(f==e.options[d].value){return d}}return -1};StdTools.fixAllPng=function(){if(typeof(noPngBackgroundFix)!="undefined"&&noPngBackgroundFix){if(StdTools.myFixPngBlank){var c=document.getElementsByTagName("img");for(var d=0;d<c.length;d++){StdTools.fixPng(c[d])}}}else{StdTools.fixChildPng(document.getElementsByTagName("body")[0])}};StdTools.fixChildPng=function(e){if(StdTools.myFixPngBlank){for(var d=0;d<e.childNodes.length;d++){var f=e.childNodes[d];StdTools.fixPng(f);if(f.hasChildNodes()){StdTools.fixChildPng(f)}}}};StdTools.fixPng=function(h){if(StdTools.myFixPngBlank&&h&&(h.tagName=="IMG"||h.tagName=="DIV"||h.tagName=="TD")){var e;var g=false;if(h.tagName=="IMG"){e=h.src;g=true}else{var f=StdTools.getStyle(h,"backgroundImage");if(f&&typeof(f)=="string"&&f!="none"){e=f.replace(/(^url\(\"?|\"?\)$)/g,"")}}if(e&&typeof(h.style.filter)!="undefined"&&e.toUpperCase().substr(e.lastIndexOf(".")+1,3)=="PNG"){if(g){StdTools.fixImgPng(h,e)}else{h.style.backgroundImage="none";StdTools.fixBackgroundPng(h,e)}}}};StdTools.fixImgPng=function(h,e){var g=h.width;var f=h.height;if(g>0&&f>0){h.__original_onload__=h.onload;h.onload=StdTools.fixPngLoad;h.src=StdTools.myFixPngBlank;h.style.width=g+"px";h.style.height=f+"px";StdTools.fixBackgroundPng(h,e)}else{h.__original_onload__=h.onload;h.onload=StdTools.fixPngOnLoad}};StdTools.fixBackgroundPng=function(c,d){c.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+d+"',sizingMethod='scale')"};StdTools.fixPngOnLoad=function(){this.onload=this.__original_onload__;StdTools.fixImgPng(this,this.src)};StdTools.fixPngLoad=function(){this.onload=this.__original_onload__};StdTools.findElement=function(h,g){if(h.id==g){return h}for(var e=0;e<h.childNodes.length;e++){var f=this.findElement(h.childNodes[e],g);if(f!=null){return f}}return null};StdTools.getIFrameDocument=function(b){if(b.contentDocument){StdTools.getIFrameDocument=function(a){return a.contentDocument}}else{StdTools.getIFrameDocument=function(a){return a.contentWindow.document}}return StdTools.getIFrameDocument(b)};StdTools.correctPositionByString=function(j,i){var h=i.split(":");j.style.position="absolute";if(parseFloat(h[0])==0.5){var f=j.style.width!=""?parseInt(j.style.width):j.clientWidth;j.style.left=j.parentNode.clientWidth/2-f/2+parseFloat(h[2])+"px"}if(parseFloat(h[1])==0.5){var g=j.style.height!=""?parseInt(j.style.height):j.clientHeight;j.style.top=j.parentNode.clientHeight/2-g/2+parseFloat(h[3])+"px"}};function StdTools(){};
strap("com.geosition.util.Point");strap("com.geosition.util.Dimension");strap("com.geosition.util.StdTools");declareClass("ContainedElement");ContainedElement.myLayoutTimeMargin=1;ContainedElement.myLayoutQueTimer=null;ContainedElement.myLayoutQue=new Array();ContainedElement.layout=function(b){clearTimeout(ContainedElement.myLayoutQueTimer);ContainedElement.myLayoutQue.push(b);ContainedElement.myLayoutQueTimer=setTimeout(ContainedElement.doLayout,ContainedElement.myLayoutTimeMargin)};ContainedElement.doLayout=function(){clearTimeout(ContainedElement.myLayoutQueTimer);if(ContainedElement.myLayoutQue.length>0){ContainedElement.myLayoutQue.shift()();setTimeout(ContainedElement.doLayout,ContainedElement.myLayoutTimeMargin)}};ContainedElement.prototype.myElement=null;ContainedElement.prototype.myIsVisible=true;function ContainedElement(d,e){this.myElement=StdTools.getElement(d);this.addCssClass(this.__class__.className);if(e){this.addCssClass(e)}var f=this;this.myElement.onclick=function(a){return f.onclick(a)}}ContainedElement.prototype.getElement=function(){return this.myElement};ContainedElement.prototype.getDimensions=function(){var d=StdTools.getStyle(this.myElement,"display");this.myElement.style.display="";var c=new Dimension(this.myElement.clientWidth||this.myElement.offsetWidth,this.myElement.clientHeight||this.myElement.offsetHeight);this.myElement.style.display=d;return c};ContainedElement.prototype.setDimensions=function(d,c){this.setWidth(d);this.setHeight(c);this.styleChanged("dimension")};ContainedElement.prototype.getPosition=function(){return new Point(this.myElement.offsetLeft,this.myElement.offsetTop)};ContainedElement.prototype.setWidth=function(b){this.myElement.style.width=parseInt(b)+"px"};ContainedElement.prototype.setHeight=function(b){this.myElement.style.height=parseInt(b)+"px"};ContainedElement.prototype.append=function(b){if(instanceOf(b,ContainedElement)){b.attach(this.myElement)}else{this.myElement.appendChild(b)}this.styleChanged("append")};ContainedElement.prototype.setOpacity=function(a){StdTools.setOpacity(this.myElement,a)};ContainedElement.prototype.setAlpha=function(a){this.setOpacity(a)};ContainedElement.prototype.setCssClass=function(b){this.addCssClass(b)};ContainedElement.prototype.setCssId=function(b){this.myElement.id=b;this.styleChanged("id")};ContainedElement.prototype.addCssClass=function(b){StdTools.addCssClass(this.myElement,b);this.styleChanged("className")};ContainedElement.prototype.deleteCssClass=function(b){this.removeCssClass(b)};ContainedElement.prototype.removeCssClass=function(b){StdTools.removeCssClass(this.myElement,b);this.styleChanged("className")};ContainedElement.prototype.setZIndex=function(b){this.myElement.style.zIndex=b};ContainedElement.prototype.setFullScreen=function(){ContainedElement.setFullScreen(this)};ContainedElement.setFullScreen=function(e){if(instanceOf(e,ContainedElement)){var f=e;e=f.getElement()}e.style.position="absolute";e.style.left="0px";e.style.top="0px";e.style.width="1px";e.style.height="1px";var d=f||e;if(!d.__fullscreen__){hook(window,"onresize",function(){ContainedElement.setFullScreen(d)});d.__fullscreen__=true}ContainedElement.layout(function(){ContainedElement.fullScreen(d)})};ContainedElement.fullScreen=function(e){if(instanceOf(e,ContainedElement)){var g=e}if(typeof(window.innerWidth)!="undefined"){var h=window.innerWidth;var f=window.innerHeight}else{if(typeof(document.documentElement)!="undefined"){if(typeof(document.documentElement.clientWidth)!="undefined"&&document.documentElement.clientWidth!=0){var h=document.documentElement.clientWidth;var f=document.documentElement.clientHeight}else{var h=document.documentElement.offsetWidth;var f=document.documentElement.offsetHeight}}}if(g){g.setDimensions(h,f)}else{e.style.width=h+"px";e.style.height=f+"px"}};ContainedElement.prototype.setFillParent=function(d,c){ContainedElement.setFillParent(this,d,c)};ContainedElement.setFillParent=function(e,g,j){if(instanceOf(e,ContainedElement)){var h=e;var i=h.getElement()}else{var i=e}if(i.parentNode){if(g&&j&&i.parentNode.nodeName.toLowerCase()=="body"){ContainedElement.setFullScreen(h||i)}else{if(g||j){i.__lastStyleOverflow__=(i.__lastStyleOverflow__||StdTools.getStyle(i,"overflow")||"");i.style.overflow="hidden";i.style.left="0px";i.style.top="0px";if(g){i.style.width="1px"}if(j){i.style.height="1px"}ContainedElement.layout(function(){ContainedElement.fillParent(e,g,j)})}}}};ContainedElement.fillParent=function(n,h,l){if(instanceOf(n,ContainedElement)){var k=n;var n=k.getElement()}if(n.parentNode){var j=StdTools.getWindowDimension();if(h){if(n.parentNode.nodeName.toLowerCase()=="body"){var m=j.width}else{var m=n.parentNode.offsetWidth}if(m){m=Math.max(parseInt(m)-(parseInt(StdTools.getStyle(n.parentNode,"paddingLeft"))||0)-(parseInt(StdTools.getStyle(n.parentNode,"paddingRight"))||0),1);n.style.position="relative"}n.style.left="0px"}if(l){if(n.parentNode.nodeName.toLowerCase()=="body"){var i=j.height}else{var i=n.parentNode.offsetHeight}if(i){i=Math.max(parseInt(i)-(parseInt(StdTools.getStyle(n.parentNode,"paddingTop"))||0)-(parseInt(StdTools.getStyle(n.parentNode,"paddingBottom"))||0)-(parseInt(StdTools.getStyle(n,"marginTop"))||0)-(parseInt(StdTools.getStyle(n,"marginBottom"))||0),1);n.style.position="relative"}n.style.top="0px"}if(k){if(m){k.setWidth(m)}if(i){k.setHeight(i)}k.styleChanged("dimension")}else{if(m){n.style.width=m+"px"}if(i){n.style.height=i+"px"}}n.style.overflow=n.__lastStyleOverflow__||""}};ContainedElement.prototype.hide=function(){this.myIsVisible=false;if(this.myElement){this.myElement.style.display="none"}};ContainedElement.prototype.show=function(){this.myIsVisible=true;this.myElement.style.display=""};ContainedElement.prototype.attach=function(b){b.appendChild(this.myElement);this.styleChanged("attach")};ContainedElement.prototype.attachBefore=function(d,c){d.insertBefore(this.myElement,c);this.styleChanged("attach")};ContainedElement.prototype.attachAfter=function(d,c){this.attachBefore(d,c.nextSibling)};ContainedElement.prototype.detach=function(){if(this.isAttached()){this.myElement.parentNode.removeChild(this.myElement)}};ContainedElement.prototype.isVisible=function(){return this.myIsVisible};ContainedElement.prototype.isAttached=function(){return StdTools.isAttached(this.myElement)};ContainedElement.prototype.styleChanged=function(c){var d=this;if(this.isAttached()){setTimeout(function(){d.onStyleChange(c)},0)}};ContainedElement.prototype.onStyleChange=function(b){};ContainedElement.prototype.onclick=function(b){};
strap("com.geosition.util.StdTools");strap("com.geosition.util.Point");declareClass("Dragger");Dragger.GLIDE_CONSTANTS=[Number.NaN,1.884994,1.570171,1.952032,1.747354,1.969839,1.820757,1.97785,1.861405,1.982455,1.886827];Dragger.mySmoothness=4;Dragger.myGlideSpeed=2.4;Dragger.myGlideRate=25;Dragger.myGlideDeltaX=Dragger.myGlideRate*Dragger.myGlideSpeed;Dragger.myCurrent=null;Dragger.myDrag=0;Dragger.myOffset=null;Dragger.mySpeed=1;Dragger.myCounter=15;Dragger.myDoubleClickSwitch=false;Dragger.myDoubleClickTimeout=500;Dragger.myAfterGlideOffset=null;Dragger.myAfterGlideTimeout=null;Dragger.start=function(c){this.stopGlide();StdTools.stopBubble(c);if(this.ondrag.call(this.myOwner,c)!==false){Dragger.myCurrent=this;var d=StdTools.getMousePos(c);Dragger.myAfterGlideOffset=new Point(d.x,d.y);Dragger.myOffset=new Point(d.x,d.y);Dragger.myDrag=Dragger.myCounter;Dragger.mySpeed=StdTools.getMouseButton(c);if(Dragger.mySpeed<1){Dragger.mySpeed=1}}};Dragger.stop=function(c){StdTools.stopBubble(c);if(Dragger.myCurrent){var d=Dragger.myDrag;Dragger.myDrag=0;if(d>=Dragger.myCounter-2){Dragger.myCurrent.onclick.call(Dragger.myCurrent.myOwner,c);Dragger.doubleClickTimer(c)}else{if(d>0){if(Dragger.myCurrent.AfterGlide){Dragger.myCurrent.glideOpt((Dragger.myOffset.x-Dragger.myAfterGlideOffset.x)*Dragger.myCurrent.AfterGlideFactor,(Dragger.myOffset.y-Dragger.myAfterGlideOffset.y)*Dragger.myCurrent.AfterGlideFactor,Dragger.myCurrent.AfterGlideRetardation)}Dragger.myCurrent.ondrop.call(Dragger.myCurrent.myOwner)}}Dragger.myCurrent.onmouseup.call(Dragger.myCurrent.myOwner,c);Dragger.myCurrent=null}};Dragger.move=function(c){if(Dragger.myDrag&&Dragger.myCounter++%2==0){Dragger.myCurrent.onmousemove.call(Dragger.myCurrent.myOwner,c);var d=StdTools.getMousePos(c);Dragger.myCurrent.nudge((d.x-Dragger.myOffset.x)*Dragger.mySpeed,(d.y-Dragger.myOffset.y)*Dragger.mySpeed);Dragger.myAfterGlideOffset.set(Dragger.myOffset.x,Dragger.myOffset.y);Dragger.myOffset.set(d.x,d.y);clearTimeout(Dragger.myAfterGlideTimeout);Dragger.myAfterGlideTimeout=setTimeout(function(){Dragger.myAfterGlideOffset.set(d.x,d.y)},50)}};Dragger.doubleClickTimer=function(b){if(Dragger.mySpeed>1){if(Dragger.myDoubleClickSwitch){Dragger.myCurrent.onrightdblclick(b)}else{Dragger.myDoubleClickSwitch=true;setTimeout("Dragger.myDoubleClickSwitch=false;",Dragger.myDoubleClickTimeout)}}};Dragger.isDragging=function(){return(Dragger.myDrag>0)};Dragger.prototype.myOwner=null;Dragger.prototype.myGlideTimeout=null;Dragger.property("AfterGlide","boolean");Dragger.property("AfterGlideFactor","number");Dragger.property("AfterGlideRetardation","number");function Dragger(i,g,h,j){this.AfterGlide=false;this.AfterGlideFactor=1.5;this.AfterGlideRetardation=0.6;StdTools.addCssClass(i,"geosition_dragger");StdTools.addCssClass(i,"draggable");this.myOwner=g;if(j===true){this.nudge=function(b,a){this.onnudge(0,a)}}else{if(j===false){this.nudge=function(b,a){this.onnudge(b,0)}}}if(h){this.onnudge=function(b,a){h.call(g,b,a)}}var f=this;i.onmousedown=function(a){Dragger.start.call(f,a);return false};i.ondblclick=function(a){f.ondblclick(a)};i.onmousemove=function(a){return false}}Dragger.prototype.stopGlide=function(){clearTimeout(this.myGlideTimeout)};Dragger.prototype.nudge=function(d,c){this.onnudge(d,c)};Dragger.prototype.glide=function(a,f,e){this.glideOpt(Math.sin(a)*f,Math.cos(a)*f,e)};Dragger.prototype.glideOpt=function(f,g,h){this.stopGlide();f*=h;g*=h;this.nudge(f,g);this.onglide.call(this.myOwner);if(Math.abs(f)>1||Math.abs(g)>1){var e=this;this.myGlideTimeout=setTimeout(function(){e.glideOpt(f,g,h)},80)}else{this.ondrop.call(this.myOwner);this.onglidestop.call(this.myOwner)}};Dragger.prototype.glideTo=function(d,c){this.myGlideX=0;this.myGlideDistance=Math.sqrt(Math.pow(d,2)+Math.pow(c,2));this.myGlideFactor=Dragger.GLIDE_CONSTANTS[Dragger.mySmoothness]/this.myGlideDistance;this.onglide.call(this.myOwner);this.glideIterator(d,c)};Dragger.prototype.myGlideX=0;Dragger.prototype.myGlideFactor=0;Dragger.prototype.myGlideDistance=0;Dragger.prototype.glideIterator=function(f,g){this.stopGlide();if(this.myGlideX<2/this.myGlideFactor){var d=this;var h=Math.sqrt(1-Math.pow(this.myGlideX*this.myGlideFactor-1,Dragger.mySmoothness));h=h*Dragger.myGlideDeltaX;this.myGlideX+=Dragger.myGlideDeltaX;this.nudge(h/this.myGlideDistance*f,h/this.myGlideDistance*g);this.myGlideTimeout=setTimeout(function(){d.glideIterator(f,g)},Dragger.myGlideRate)}else{this.ondrop.call(this.myOwner);this.onglidestop.call(this.myOwner)}};Dragger.prototype.onclick=function(b){};Dragger.prototype.ondblclick=function(b){};Dragger.prototype.onrightdblclick=function(b){};Dragger.prototype.onmouseup=function(b){};Dragger.prototype.onmousemove=function(b){};Dragger.prototype.onglide=function(){};Dragger.prototype.onglidestop=function(){};Dragger.prototype.ondrag=function(){};Dragger.prototype.ondrop=function(){};Dragger.prototype.onnudge=function(d,c){};fuse(document,"onmouseup",Dragger,Dragger.stop);fuse(document,"onmouseleave",Dragger,Dragger.stop);fuse(document,"onmousemove",Dragger,Dragger.move);
strap("com.geosition.util.ContainedElement");strap("com.geosition.util.Dragger");declareClass("VisibleElement","ContainedElement");VisibleElement.prototype.myPosition=null;VisibleElement.prototype.myDragger=null;function VisibleElement(b){this.construct(b||document.createElement("div"));this.myElement.style.position="absolute";this.myPosition=this.base("getPosition")()}VisibleElement.prototype.addDragger=function(b){if(!this.myDragger){this.myDragger=new Dragger(this.myElement,this,this.nudge,b);this.myElement.onclick=function(a){StdTools.stopBubble(a)}}};VisibleElement.prototype.getDragger=function(){return this.myDragger};VisibleElement.prototype.show=function(){this.myIsVisible=true;this.myElement.style.visibility="visible"};VisibleElement.prototype.hide=function(){this.myIsVisible=false;this.myElement.style.visibility="hidden"};VisibleElement.prototype.positionAdjust=function(){this.myElement.style.left=this.myPosition.x+"px";this.myElement.style.top=this.myPosition.y+"px"};VisibleElement.prototype.setPosition=function(d,c){this.myPosition.set(d,c);this.positionAdjust()};VisibleElement.prototype.getPosition=function(){return this.myPosition};VisibleElement.prototype.setAdvancedPosition=function(i,j,b,g){var h=this.getDimensions();this.setPosition(j+(i?h.width:0),g+(b?h.height:0))};VisibleElement.prototype.nudge=function(d,c){this.myPosition.add(d,c);this.positionAdjust()};
strap("com.geosition.util.ContainedElement");strap("com.geosition.util.VisibleElement");declareClass("ItemCanvas",VisibleElement);ItemCanvas.prototype.myCache=null;ItemCanvas.prototype.myMap=null;ItemCanvas.prototype.myCounter=0;function ItemCanvas(b){this.construct();this.setZIndex(2);this.myCache={};this.myIndex={};this.myMap=b;this.myPosition=b.myOffset;this.positionAdjust();fuse(this.myMap,"onzoom",this,this.refresh);fuse(this.myMap,"onnudge",this,this.nudge);this.attach(this.myMap.getElement())}ItemCanvas.prototype.add=function(d,c){this.myCache[c||this.myCounter++]=d;d.setRelatedItems&&d.setRelatedItems(this.myCache);d.attach(this.myElement);d.correctToMap(this.myMap)};ItemCanvas.prototype.addItems=function(d){for(var c=0;c<d.length;c++){this.add(d[c])}};ItemCanvas.prototype.replace=function(e,f){var d=this.getCached(f);this.remove(f);this.add(e,f);return d};ItemCanvas.prototype.refresh=function(){this.correctAll();this.onrefresh()};ItemCanvas.prototype.remove=function(b){this.myCache[b].detach();delete (this.myCache[b])};ItemCanvas.prototype.removeItem=function(c){for(var d in this.myCache){if(this.myCache[d]==c){c.detach();delete (this.myCache[d]);break}}};ItemCanvas.prototype.clear=function(){for(var b in this.myCache){this.myCache[b].detach()}this.myCache={}};ItemCanvas.prototype.containsItem=function(c){for(var d in this.myCache){if(this.myCache[d]==c){return true}}return false};ItemCanvas.prototype.getCached=function(b){return this.myCache[b]};ItemCanvas.prototype.correctAll=function(){for(var b in this.myCache){this.myCache[b].correctToMap(this.myMap)}};ItemCanvas.prototype.panTo=function(n,d,k){if(!d){d=0}if(!k){k=0}var j=n.getCoordinate().to(this.myMap.getMapCoordinateSystem()).getInternal();var m=n.getPosition();m.add(d,k);var l=this.myMap.getDimensions();var o=l.width/2-m.x-this.myMap.myOffset.x;var p=l.height/2-m.y-this.myMap.myOffset.y;if(Math.abs(o)<l.width&&Math.abs(p)<l.height){this.myMap.getDragger().glideTo(o,p);fuseOnce(this.myMap.getDragger(),"onglidestop",this.myMap,function(){this.updateLastPosition(j.x,j.y)})}else{this.myMap.centerMapToPos(m.x,m.y);this.myMap.updateLastPosition(j.x,j.y)}};ItemCanvas.prototype.setItemsOverview=function(f){var h=new Array();if(!f){var f=this.myCache}for(var c in f){if(f[c].getCoordinates){h=h.concat(f[c].getCoordinates())}else{var g=f[c].getCoordinate();if(g){h.push(g)}}}if(h.length>0){this.myMap.setToCoordinates(h)}};ItemCanvas.prototype.setItemOverview=function(b){this.myMap.setToBoundingBox(b.getBoundingBox());this.myMap.setCenter(b.getCoordinate())};ItemCanvas.prototype.getItemsInView=function(){var d=this.getItemsInViewPort();var e=new Array();for(var f=0;f<d.length;f++){if(d[f].isVisible()){e.push(d[f])}}return e};ItemCanvas.prototype.getItemsOverlappingView=function(){var d=this.getItemsOverlappingViewPort();var e=new Array();for(var f=0;f<d.length;f++){if(d[f].isVisible()){e.push(d[f])}}return e};ItemCanvas.prototype.hide=function(){this.myIsVisible=false;if(this.myElement){this.myElement.style.display="none"}};ItemCanvas.prototype.show=function(){this.myIsVisible=true;this.myElement.style.display=""};ItemCanvas.prototype.getItemsInViewPort=function(){var b=this.myMap.getDimensions();return this.getItemsInside(0,0,b.width,b.height)};ItemCanvas.prototype.getItemsOverlappingViewPort=function(){var b=this.myMap.getDimensions();return this.getItemsOverlapping(0,0,b.width,b.height)};ItemCanvas.prototype.getItemsInside=function(g,h,e,f){g-=this.myPosition.x;h-=this.myPosition.y;e=-this.myPosition.x+e;f=-this.myPosition.y+f;return AbstractItem.getItemsInside(this.myCache,g,h,e,f)};ItemCanvas.prototype.getItemsOverlapping=function(g,h,e,f){g-=this.myPosition.x;h-=this.myPosition.y;e=-this.myPosition.x+e;f=-this.myPosition.y+f;return AbstractItem.getItemsOverlapping(this.myCache,g,h,e,f)};ItemCanvas.prototype.nudge=function(){this.positionAdjust()};ItemCanvas.prototype.getMap=function(){return this.myMap};ItemCanvas.prototype.onrefresh=function(){};
strap("com.geosition.util.Point");declareClass("PointFloat",Point);PointFloat.prototype.x=Number.NaN;PointFloat.prototype.y=Number.NaN;function PointFloat(d,c){this.set(d,c)}PointFloat.prototype.floor=function(d,c){this.x=Math.floor(d||this.x);this.y=Math.floor(c||this.y)};PointFloat.prototype.round=function(d,c){this.x=Math.round(d||this.x);this.y=Math.round(c||this.y)};PointFloat.prototype.add=function(d,c){this.x+=parseFloat(d);this.y+=parseFloat(c)};PointFloat.prototype.sub=function(d,c){this.x-=parseFloat(d);this.y-=parseFloat(c)};PointFloat.prototype.set=function(d,c){this.x=parseFloat(d);this.y=parseFloat(c)};
strap("com.geosition.util.PointFloat");declareClass("BoundingBoxFloat");BoundingBoxFloat.getBoundingBox=function(r,i,n){var p=r[0];var q=i[0];var s=r[0];var t=i[0];for(var o=1;o<n;o++){var l=r[o];var m=i[o];p=Math.min(p,l);s=Math.max(s,l);q=Math.min(q,m);t=Math.max(t,m)}return new BoundingBoxFloat(p,q,s-p,t-q)};BoundingBoxFloat.getPointBoundingBox=function(o){var i=o[0].x;var k=o[0].y;var m=o[0].x;var n=o[0].y;for(var p=1;p<o.length;p++){var j=o[p].x;var l=o[p].y;i=Math.min(i,j);m=Math.max(m,j);k=Math.min(k,l);n=Math.max(n,l)}return new BoundingBoxFloat(i,k,m-i,n-k)};BoundingBoxFloat.prototype.x=Number.NaN;BoundingBoxFloat.prototype.y=Number.NaN;BoundingBoxFloat.prototype.width=Number.NaN;BoundingBoxFloat.prototype.height=Number.NaN;function BoundingBoxFloat(e,g,h,f){this.set(e,g,h,f)}BoundingBoxFloat.prototype.set=function(e,g,h,f){this.x=parseFloat(e);this.y=parseFloat(g);this.width=parseFloat(h);this.height=parseFloat(f)};BoundingBoxFloat.prototype.setFromBoundingBox=function(b){this.set(b.x,b.y,b.width,b.height)};BoundingBoxFloat.prototype.add=function(d){if(this.isSet()&&d.isSet()){var e=Math.min(this.x,d.x);var f=Math.min(this.y,d.y);return new BoundingBoxFloat(e,f,Math.max(this.x+this.width,d.x+d.width)-e,Math.max(this.y+this.height,d.y+d.height)-f)}else{if(d.isSet()){return new BoundingBoxFloat(d.x,d.y,d.width,d.height)}else{if(this.isSet()){return new BoundingBoxFloat(this.x,this.y,this.width,this.height)}}}return new BoundingBoxFloat()};BoundingBoxFloat.prototype.getCenter=function(){return new PointFloat(this.x+this.width/2,this.y+this.height/2)};BoundingBoxFloat.prototype.isSet=function(){return !(isNaN(this.x)||isNaN(this.y)||isNaN(this.width)||isNaN(this.height))};
strap("com.geosition.util.BoundingBoxFloat");strap("com.geosition.util.Point");declareClass("BoundingBox",BoundingBoxFloat);BoundingBox.toBoundingBox=function(b){return new BoundingBox(b.x,b.y,b.width,b.height)};BoundingBox.getBoundingBox=function(f,e,h){var g=BoundingBoxFloat.getBoundingBox(f,e,h);return new BoundingBox(g.x,g.y,g.width,g.height)};BoundingBox.getPointBoundingBox=function(d){var c=BoundingBoxFloat.getPointBoundingBox(d);return new BoundingBox(c.x,c.y,c.width,c.height)};function BoundingBox(e,g,h,f){this.set(e,g,h,f)}BoundingBox.prototype.set=function(e,g,h,f){this.x=Math.round(e);this.y=Math.round(g);this.width=Math.round(h);this.height=Math.round(f)};BoundingBox.prototype.add=function(d){if(this.isSet()&&d.isSet()){var e=Math.min(this.x,d.x);var f=Math.min(this.y,d.y);return new BoundingBox(e,f,Math.max(this.x+this.width,d.x+d.width)-e,Math.max(this.y+this.height,d.y+d.height)-f)}else{if(d.isSet()){return new BoundingBox(d.x,d.y,d.width,d.height)}else{if(this.isSet()){return new BoundingBox(this.x,this.y,this.width,this.height)}}}return new BoundingBox()};BoundingBox.prototype.getCenter=function(){return new Point(this.x+this.width/2,this.y+this.height/2)};
strap("com.geosition.util.Dimension");strap("com.geosition.util.BoundingBox");declareClass("CanvasElement");CanvasElement.prototype.myElement=null;CanvasElement.prototype.myIsVisible=true;function CanvasElement(){var b=this;this.myElement=document.createElement("div");this.myElement.style.position="absolute";this.myElement.onclick=function(a){b.onclick(a)};this.myElement.ondblclick=function(a){b.ondblclick(a)};StdTools.addCssClass(this.myElement,this.__class__.className)}CanvasElement.prototype.show=function(){this.myIsVisible=true;this.myElement.style.display=""};CanvasElement.prototype.hide=function(){this.myIsVisible=false;this.myElement.style.display="none"};CanvasElement.prototype.isVisible=function(){return this.myIsVisible};CanvasElement.prototype.getElement=function(){return this.myElement};CanvasElement.prototype.setZIndex=function(b){this.myElement.style.zIndex=b};CanvasElement.prototype.setPosition=function(d,c){this.myElement.style.left=d+"px";this.myElement.style.top=c+"px"};CanvasElement.prototype.getPosition=function(){this.myElement.style.display="";var b=new Point(this.myElement.offsetLeft||parseInt(this.myElement.style.left),this.myElement.offsetTop||parseInt(this.myElement.style.top));if(!this.myIsVisible){this.myElement.style.display="none"}return b};CanvasElement.prototype.resetDimensions=function(){this.myElement.style.width="";this.myElement.style.height=""};CanvasElement.prototype.setDimensions=function(d,c){this.myElement.style.width=d+"px";this.myElement.style.height=c+"px"};CanvasElement.prototype.getDimensions=function(){this.myElement.style.display="";var b=new Dimension(this.myElement.clientWidth,this.myElement.clientHeight);if(!this.myIsVisible){this.myElement.style.display="none"}return b};CanvasElement.prototype.setOpacity=function(a){StdTools.setOpacity(this.myElement,a)};CanvasElement.prototype.getBoundingBox=function(){var d=this.getPosition();var c=this.getDimensions();return new BoundingBox(d.x,d.y,c.width,c.height)};CanvasElement.prototype.attach=function(b){b.appendChild(this.myElement)};CanvasElement.prototype.detach=function(){if(this.isAttached()){this.myElement.parentNode.removeChild(this.myElement)}};CanvasElement.prototype.isAttached=function(){return(!!this.myElement&&!!this.myElement.parentNode&&this.myElement.parentNode.nodeType!=11)};CanvasElement.prototype.setStyle=function(c,d){this.myElement.style[c]=d};CanvasElement.prototype.click=function(b){if(this.myElement.onclick){this.myElement.onclick(b)}};CanvasElement.prototype.onclick=function(b){};CanvasElement.prototype.ondblclick=function(b){};
declareStaticClass("Style");Style.add=function(f,g,h){var e=(h?"@media "+h+"{":"")+f+"{"+g+"}"+(h?"}":"");Style.addRaw(e,h)};Style.addRaw=function(d,f){if(document.createStyleSheet){var e=document.createStyleSheet();if(f){e.media=f}e.cssText=d}else{Style.injectIntoDom(d)}};Style.injectIntoDom=function(f){var e=document.getElementsByTagName("head")[0];var d=document.createElement("style");d.type="text/css";d.appendChild(document.createTextNode(f));e.appendChild(d)};Style.copyStyleElement=function(d){var c=d.cloneNode(true);document.getElementsByTagName("head")[0].appendChild(c)};Style.copy=function(g,h){for(var e in g.style){var f=g.style[e];if(isNaN(e)&&e!="cssText"&&typeof(f)=="string"&&f){h.style[e]=f}}};Style.addFromElement=function(e,d,f){Style.add(e,d.style.cssText,f)};function Style(){};
strap("com.geosition.util.Style");strap("com.geosition.util.StdTools");declareClass("Template");Template.STATUS_LOADING=1;Template.STATUS_READY=2;Template.myCounter=0;Template.myTemplates={};Template.myWaitingTemplates={};Template.myUrls={};Template.mySpawnElement=null;Template.getSpawnElement=function(){if(!Template.mySpawnElement){Template.mySpawnElement=document.createElement("div");Template.mySpawnElement.style.display="none";document.getElementsByTagName("body")[0].appendChild(Template.mySpawnElement)}return Template.mySpawnElement};Template.addTemplatesFromIframe=function(o){var l=StdTools.getIFrameDocument(o);var n=l.createElement("div");var p=l.getElementsByTagName("body")[0];var k="TemplateGroup"+Template.myCounter++;Style.addFromElement("."+k,p);var r=l.getElementsByTagName("style");for(var m=0;m<r.length;m++){Style.addRaw(r[0].innerHTML)}for(var m=0;m<p.childNodes.length;m++){var q=p.childNodes[m];if(q.nodeType==1&&q.id){var i=q.cloneNode(true);n.appendChild(i);Template.myTemplates[q.id]=[n.innerHTML,k];n.removeChild(i)}}};Template.copyElementsWithId=function(e,h){for(var f=0;f<e.childNodes.length;f++){var g=e.childNodes[f];if(g.id){h[g.id]=g}if(g.hasChildNodes()){Template.copyElementsWithId(g,h)}}};Template.templateFileLoaded=function(f){Template.myUrls[f]=Template.STATUS_READY;for(var i in Template.myWaitingTemplates){var h=Template.myTemplates[i];if(h){var j=Template.myWaitingTemplates[i];for(var g=0;g<j.length;g++){j[g].load(h[0],h[1])}delete (Template.myWaitingTemplates[i])}}Template.onload(f)};Template.load=function(h,i,f){if(!Template.myUrls[h]){var g=Template.getSpawnElement();var j=document.createElement("div");j.callback=function(a){Template.addTemplatesFromIframe(a);setTimeout(function(){g.removeChild(a.parentNode)},100);Template.templateFileLoaded(h);if(i){i()}};Template.myUrls[h]=Template.STATUS_LOADING;j.innerHTML+="<iframe onload='this.parentNode.callback(this);' src='"+h+"'></iframe>";g.appendChild(j)}else{if(i&&Template.myUrls[h]==Template.STATUS_READY){i()}}};Template.get=function(h,i,g){var f=null;var j=Template.myTemplates[h];if(j){f=new Template(j[0],j[1],g)}else{f=new Template(i,null,g);if(!Template.myWaitingTemplates[h]){Template.myWaitingTemplates[h]=new Array()}Template.myWaitingTemplates[h].push(f)}return f};Template.getInstance=function(b){while(b){if(b.instance){return b.instance}b=b.parentNode}return null};Template.onload=function(b){};Template.prototype.myElement=null;Template.prototype.myInnerElements=null;Template.prototype.myIsLoaded=false;function Template(d,f,e){this.myInnerElements={};if(d){if(typeof(d)=="string"){this.myElement=document.createElement(e||"div");this.load(d,f)}else{this.myElement=d;this.update()}}else{this.myElement=document.createElement("div")}}Template.prototype.getElement=function(){return this.myElement};Template.prototype.getInnerElement=function(b){return this.myInnerElements[b]};Template.prototype.getButton=function(g,h){var e=this.myInnerElements[g];var f=null;if(e){if(e.tagName.toLowerCase()=="img"){f=new NeoClicker(e)}else{f=new ContainedElement(e)}if(h){hook(f,"onclick",h)}}return f};Template.prototype.getInput=function(f){var e=this.myInnerElements[f];if(e&&e.tagName.toLowerCase()=="input"){if(e.alt){var d=new RegExp(e.alt,"i");e.alt="";e.validate=function(){if(d.test(this.value)){StdTools.removeCssClass(this,"invalid");return true}StdTools.addCssClass(this,"invalid");var a=this;setTimeout(function(){StdTools.removeCssClass(a,"invalid")},5000);return false}}else{if(typeof(e.validate)!="function"){e.validate=function(){return true}}}}return e};Template.prototype.isLoaded=function(){return this.myIsLoaded};Template.prototype.load=function(d,c){this.myElement.innerHTML=d;if(c){StdTools.addCssClass(this.myElement,c)}this.update()};Template.prototype.update=function(){this.myInnerElements={};this.myElement.instance=this;Template.copyElementsWithId(this.myElement,this.myInnerElements);if(isClassLoaded("Language")){Language.addChildNodes(this.myElement)}StdTools.fixChildPng(this.myElement);if(!this.myIsLoaded){this.myIsLoaded=true;this.onload()}this.onreload()};Template.prototype.onload=function(){};Template.prototype.onreload=function(){};
declareStaticClass("Language");Language.mySelectedLanguage={};Language.myLanguageElements={};function Language(){Language.addDocumentNodes()}Language.select=function(h){Language.mySelectedLanguage=h||{};for(var i in Language.myLanguageElements){var a=Language.myLanguageElements[i];for(var j=0;j<a.length;j++){var g=a[j];if(StdTools.isAttached(g[0])){Language.renderLabel(g)}else{a.splice(j,1)}}}Language.onchange()};Language.apply=function(c){for(var d in c){Language.mySelectedLanguage[d]=c[d]}Language.select(Language.mySelectedLanguage)};Language.get=function(e,f){var d=e.toLowerCase();if(!Language.mySelectedLanguage[d]){return e}var f=parseInt(f);if(isNaN(f)){return Language.mySelectedLanguage[d]["singular"]||Language.mySelectedLanguage[d]}if(f===1){return Language.replaceN(Language.mySelectedLanguage[d]["singular"]||Language.mySelectedLanguage[d],f)}return Language.replaceN(Language.mySelectedLanguage[d]["plural"]||Language.mySelectedLanguage[d],f)};Language.getInitCap=function(d,c){return Language.initCap(Language.get(d,c))};Language.getCaps=function(d,c){return Language.get(d,c).toUpperCase()};Language.initCap=function(b){return b.substr(0,1).toUpperCase()+b.substr(1)};Language.replaceN=function(d,c){return d.replace(/%n/g,c)};Language.addNode=function(e){var f=e.innerHTML;var h=f.toLowerCase();var g=[e,f,e.title||""];e.title="";Language.renderLabel(g);if(!Language.myLanguageElements[h]){Language.myLanguageElements[h]=new Array()}Language.myLanguageElements[h].push(g)};Language.renderLabel=function(h){var g=h[0];var j=h[1].toLowerCase();var f=h[2].split(":");var i=Language.get(j,f[1]);if(i==j){i=h[1]}switch(f[0]){case"initCap":g.innerHTML=Language.initCap(i);break;case"caps":g.innerHTML=i.toUpperCase();break;default:g.innerHTML=i}};Language.addChildNodes=function(d){for(var e=0;e<d.childNodes.length;e++){var f=d.childNodes[e];if(f.id=="lang"&&f.tagName.toLowerCase()=="font"){Language.addNode(f)}else{if(f.hasChildNodes()){Language.addChildNodes(f)}}}};Language.addDocumentNodes=function(h){if(!h){var h=document}var i=h.getElementsByTagName("font");var f=new Array();for(var j=0;j<i.length;j++){f.push(i[j])}for(var j=0;j<f.length;j++){var g=f[j];if(g.id=="lang"){Language.addNode(g)}}};Language.onchange=function(){};
strap("com.geosition.util.Point");strap("com.geosition.util.VisibleElement");strap("com.geosition.util.gui.Template");strap("com.geosition.util.StdTools");strap("com.geosition.util.language.Language");declareAbstractClass("TemplateTooltip",VisibleElement);TemplateTooltip.attachTooltip=function(c,d){if(!d.__tooltip__){d.__tooltip__={}}d.__tooltip__[c.getClass().className]=c};TemplateTooltip.registerEvent=function(f,e,g){var h=f["__tooltip_"+e+"__"]?false:true;f["__tooltip_"+e+"__"]=function(a){var b=TemplateTooltip.getTooltip(f,g);if(b){b.show(a,f.ontooltip&&f.ontooltip(a))}};if(h){hook(f,e,function(a){this["__tooltip_"+e+"__"](a)})}};TemplateTooltip.registerOnClick=function(f,g,h){var e=f.__tooltip_onclick__?false:true;f.__tooltip_onclick__=function(a){var b=TemplateTooltip.getTooltip(f,h);if(b){b.show(a,g,0,f.ontooltip&&f.ontooltip(a))}};if(e){hook(f,"onclick",function(a){this.__tooltip_onclick__(a)})}};TemplateTooltip.registerOnMouseOver=function(g,h,f,i){var j=g.__tooltip_title__?false:true;if(g.title){if(!h){var h=Language.get(g.title)}g.title=""}g.__tooltip_title__=h||"...";if(j){g.onmousemove=function(a){if(!g.__tooltip_disable__){var b=TemplateTooltip.getTooltip(g,i);if(b){b.show(a,g.__tooltip_title__,f||300,g.ontooltip&&g.ontooltip(a))}}};hook(g,"onmouseout",function(){var a=TemplateTooltip.getTooltip(g,i);if(a){a.hide()}})}};TemplateTooltip.register=function(f,g,e,h){TemplateTooltip.registerOnMouseOver(f,g,e,h)};TemplateTooltip.registerAll=function(h,g,i){if(!h){var h=document.getElementsByTagName("body")[0]}for(var j=0;j<h.childNodes.length;j++){var f=h.childNodes[j];if(f.title){TemplateTooltip.register(f,null,g,i)}if(f.hasChildNodes()){TemplateTooltip.registerAll(f,g,i)}}};TemplateTooltip.getTooltip=function(h,f){if(!f){f=TemplateTooltip}while(h){if(h.__tooltip__){if(h.__tooltip__[f.className]){return h.__tooltip__[f.className]}else{for(var e in h.__tooltip__){var g=h.__tooltip__[e];if(instanceOf(g,f)){return g}}}}h=h.parentNode}return null};TemplateTooltip.prototype.myDefaultTemplateHTML="";TemplateTooltip.prototype.myTemplate=null;TemplateTooltip.prototype.myTimer=null;function TemplateTooltip(b){this.myTemplate=this.getDefaultTemplate();this.construct(this.myTemplate.getElement());this.setZIndex(1000);this.hide();this.attach(b);TemplateTooltip.attachTooltip(this,b)}TemplateTooltip.prototype.setTitle=function(b){if(isClassLoaded("Language")){b=Language.get(b)}if(this.myTemplate.isLoaded()){this.myTemplate.getInnerElement("infoBoxTitle").innerHTML=b}else{this.myTemplate.getElement().innerHTML=b}};TemplateTooltip.prototype.getDefaultTemplate=function(){return Template.get(this.__class__.className,this.myDefaultTemplateHTML)};TemplateTooltip.prototype.getMousePositionInParent=function(j){if(!j){var j=window.event}var i=StdTools.getMousePos(j);var e=StdTools.getElementPosition(this.myElement.parentNode);var g=i.x-e.x;var h=i.y-e.y;return new Point(g,h)};TemplateTooltip.prototype.resetTimer=function(){clearTimeout(this.myTimer)};TemplateTooltip.prototype.show=function(h,g,e){if(g){this.moveToMouse(h);this.setTitle(g);if(e){var f=this;clearTimeout(this.myTimer);this.myTimer=setTimeout(function(){f.base("show",VisibleElement)()},e)}else{this.base("show",VisibleElement)()}}};TemplateTooltip.prototype.hide=function(){this.resetTimer();this.base("hide")()};TemplateTooltip.prototype.moveToMouse=function(l){var h=19;var e=3;var d=this.myElement.parentNode.offsetWidth;var n=this.myElement.parentNode.offsetHeight;var k=this.getDimensions();var m=this.getMousePositionInParent(l);m.x+=((m.x+k.width+h)>=d-e?-e-k.width:h);m.y+=((m.y+k.height+h)>=n-e?-e-k.height:h);this.setPosition(Math.max(m.x,e),Math.max(m.y,e))};
strap("com.geosition.util.gui.tooltip.TemplateTooltip");declareClass("ToolTipInfoBox",TemplateTooltip);ToolTipInfoBox.register=function(d,c){TemplateTooltip.registerOnClick(d,c,ToolTipInfoBox)};ToolTipInfoBox.prototype.myDefaultTemplateHTML="<div id='shadow' class='shadow' style=''><div id='infoBox' class='geosition_infoBox geosition_infoBoxShadow' ><div id='infoBoxTitle' class='geosition_infoBoxTitle'></div><div id='infoBoxContent' class='geosition_infoBoxContent'></div><div id='infoBoxStatus' class='geosition_infoBoxStatus'><div style='padding:0px;'><img id='infoBoxStatusArrowLeft' class='geosition_infoBoxStatusArrowLeft' style='float:left; position:relative; margin-right:3px;' /><img id='infoBoxStatusArrowRight' class='geosition_infoBoxStatusArrowRight' style='float:left; position:relative; margin-right:3px;' /></div><div id='infoBoxStatusText' style='text-align:right;'></div></div></div></div>";ToolTipInfoBox.prototype.myStatusFormat="";ToolTipInfoBox.prototype.myStatusCounter=0;ToolTipInfoBox.prototype.myStatusArray=null;ToolTipInfoBox.prototype.myElementStatusText=null;ToolTipInfoBox.prototype.myPreviousClicker=null;ToolTipInfoBox.prototype.myNextClicker=null;ToolTipInfoBox.prototype.myCurrentElement=null;function ToolTipInfoBox(f,i,j,h){var g=this;this.construct(f);this.myTemplate.onreload=function(){g.initStatus(j,h)};this.setZIndex(999);this.myStatusFormat=i;this.initStatus(j,h);new Dragger(this.myElement,this,this.nudge)}ToolTipInfoBox.prototype.initStatus=function(i,h){var f=this.myTemplate.getInnerElement("infoBoxStatusArrowLeft");var j=this.myTemplate.getInnerElement("infoBoxStatusArrowRight");if(i&&!f.src){f.src=i}if(h&&!j.src){j.src=h}var g=this;this.myPreviousClicker=new NeoClicker(f);this.myPreviousClicker.onclick=function(){g.previous()};this.myNextClicker=new NeoClicker(j);this.myNextClicker.onclick=function(){g.next()}};ToolTipInfoBox.prototype.show=function(e,j){var l=j.getElement();this.setCurrentElement(l);var i=TemplateTooltip.getTooltip(l,TemplateTooltip);if(i){i.hide()}var a=j.getStack(e);for(var k in a){if(a[k]==j){this.setStatus(a);this.myStatusCounter=parseInt(k);this.setContent(j.getContent());if(a&&a.length>1){this.showStatus();this.showShadow();this.base("show")(e,j.getTitle(),null)}else{this.hideStatus();this.hideShadow();this.base("show")(e,j.getTitle(),null)}break}}};ToolTipInfoBox.prototype.hide=function(){if(this.myIsVisible){this.setCurrentElement(null);this.base("hide")();this.hideStatus()}};ToolTipInfoBox.prototype.setTitle=function(c){var d=this.myStatusArray[this.myStatusCounter];this.myTemplate.getInnerElement("infoBoxTitle").innerHTML=c||(d&&d.getTitle())||""};ToolTipInfoBox.prototype.setContent=function(b){if(!b){var b=this.myStatusArray[this.myStatusCounter].getContent()}this.myTemplate.getInnerElement("infoBoxContent").innerHTML=b||"";this.myTemplate.getInnerElement("infoBoxStatusText").innerHTML=this.myStatusFormat.replace("%c",this.myStatusCounter+1).replace("%t",this.myStatusArray.length)};ToolTipInfoBox.prototype.setStatus=function(a){this.myStatusArray=a;this.myStatusCounter=0};ToolTipInfoBox.prototype.setCurrentElement=function(b){if(b){b.__tooltip_disable__="true"}else{if(this.myCurrentElement){this.myCurrentElement.__tooltip_disable__=null}}this.myCurrentElement=b};ToolTipInfoBox.prototype.getCurrentElement=function(){return this.myCurrentElement};ToolTipInfoBox.prototype.showStatus=function(){if(this.myTemplate.getInnerElement("infoBoxStatus")){this.myTemplate.getInnerElement("infoBoxStatus").style.display=""}};ToolTipInfoBox.prototype.hideStatus=function(){if(this.myTemplate.getInnerElement("infoBoxStatus")){this.myTemplate.getInnerElement("infoBoxStatus").style.display="none"}};ToolTipInfoBox.prototype.next=function(){if(this.myStatusCounter<this.myStatusArray.length-1){this.myStatusCounter++;this.setTitle();this.setContent()}};ToolTipInfoBox.prototype.previous=function(){if(this.myStatusCounter>0){this.myStatusCounter--;this.setTitle();this.setContent()}};ToolTipInfoBox.prototype.setHideDragger=function(b){fuse(b,"ondrag",this,this.hide);fuse(b,"onglide",this,this.hide)};ToolTipInfoBox.prototype.showShadow=function(){this.myTemplate.getInnerElement("shadow").style.backgroundColor="#333333"};ToolTipInfoBox.prototype.hideShadow=function(){this.myTemplate.getInnerElement("shadow").style.backgroundColor="transparent"};
strap("com.geosition.util.CanvasElement");strap("com.geosition.util.gui.tooltip.ToolTipInfoBox");declareAbstractClass("AbstractItem","CanvasElement");AbstractItem.prototype.myMotionTimer=null;AbstractItem.prototype.myPulseLastValue=1;AbstractItem.getItemsOverlapping=function(a,i,k,m,o){var p=new Array();for(var n in a){var l=a[n];if(instanceOf(l,AbstractItem)&&l.isVisible()&&l.isOverlapping(i,k,m,o)){p.push(l)}}return p};AbstractItem.getItemsInside=function(a,i,k,m,o){var p=new Array();for(var n in a){var l=a[n];if(instanceOf(l,AbstractItem)&&l.isVisible()&&l.isInside(i,k,m,o)){p.push(l)}}return p};AbstractItem.prototype.stopMotion=function(){clearTimeout(this.myMotionTimer);this.setOpacity(this.myPulseLastValue)};AbstractItem.prototype.startPulse=function(c){var d=this;if(typeof(c)=="undefined"){this.stopMotion();this.myPulseLastValue=1;var c=0}clearTimeout(this.myMotionTimer);this.setOpacity(Math.abs(Math.cos(c)));this.myMotionTimer=setTimeout(function(){d.startPulse(c+=3)},100)};AbstractItem.prototype.myRelatedItems=null;AbstractItem.prototype.myTitle="";AbstractItem.prototype.myContent="";AbstractItem.prototype.myId="";AbstractItem.prototype.myShowInStack=true;AbstractItem.prototype.correctToMap=function(b){};AbstractItem.prototype.setRelatedItems=function(b){this.myRelatedItems=b};AbstractItem.prototype.isOverlapping=function(i,j,f,g){var h=this.getBoundingBox();if(g<h.y){return false}if(f<h.x){return false}if(j>h.y+h.height){return false}if(i>h.x+h.width){return false}return true};AbstractItem.prototype.isInside=function(i,j,f,g){var h=this.getBoundingBox();if(j>h.y){return false}if(i>h.x){return false}if(g<h.y+h.height){return false}if(f<h.x+h.width){return false}return true};AbstractItem.prototype.getStack=function(k){var i=new Array();var e=this.myElement.parentNode;if(e){var j=StdTools.getMousePos(k);var n=StdTools.getElementPosition(e);j.sub(n.x,n.y);for(var m in this.myRelatedItems){var l=this.myRelatedItems[m];if(l.myShowInStack&&l.isVisible()&&l.isOverlapping(j.x,j.y,j.x,j.y)){i.push(l)}}}return i};AbstractItem.prototype.setTitle=function(b){this.myTitle=b;if(this.myElement&&b){TemplateTooltip.register(this.myElement,b)}};AbstractItem.prototype.setContent=function(b){this.myContent=b;if(this.myElement&&b){ToolTipInfoBox.register(this.myElement,this)}};AbstractItem.prototype.setId=function(b){this.myId=b};AbstractItem.prototype.set=function(){};AbstractItem.prototype.getTitle=function(){return this.myTitle};AbstractItem.prototype.getContent=function(){return this.myContent};AbstractItem.prototype.getId=function(){return this.myId};AbstractItem.prototype.getCoordinate=function(){return new Coordinate()};AbstractItem.prototype.showInfoBox=function(){var b=this.getPosition();this.myElement.onclick({pageX:b.x,pageY:b.y})};AbstractItem.prototype.setShowInStack=function(b){this.myShowInStack=(b?true:false)};AbstractItem.prototype.toXml=function(d,c){return""};function AbstractItem(){this.construct.apply(this,arguments)};
strap("com.geosition.map.item.AbstractItem");strap("com.geosition.util.Dimension");declareAbstractClass("AbstractItemPoint","AbstractItem");AbstractItemPoint.prototype.myCoordinate=null;AbstractItemPoint.prototype.myLeftOffset=0;AbstractItemPoint.prototype.myTopOffset=0;AbstractItemPoint.prototype.myHorizontalAnchor=0.5;AbstractItemPoint.prototype.myVerticalAnchor=0.5;AbstractItemPoint.prototype.myBounceStart=null;AbstractItemPoint.prototype.myDimensions=null;AbstractItemPoint.prototype.myOriginalDimensions=null;AbstractItemPoint.prototype.startBounce=function(c){var d=this;if(typeof(c)=="undefined"){this.stopMotion();var c=0}this.setPosition(this.myBounceStart.x,this.myBounceStart.y-Math.abs(Math.sin(c))*20);this.myMotionTimer=setTimeout(function(){d.startBounce(c+=0.3)},80)};AbstractItemPoint.prototype.setOffset=function(e,g,f,h){this.myLeftOffset=e;this.myTopOffset=g;this.myHorizontalAnchor=f;this.myVerticalAnchor=h};AbstractItemPoint.prototype.getOffset=function(e,d){if(!e||!d){var f=this.getDimensions();var e=f.width;var d=f.height}return new Point(this.myLeftOffset+e*this.myHorizontalAnchor,this.myTopOffset+d*this.myVerticalAnchor)};AbstractItemPoint.prototype.correctToMap=function(j){this.stopMotion();var f=this.optimizeCoordinateToMap(j);var i=this.getOffset();var g=f.x-i.x;var h=f.y-i.y;this.myBounceStart=new Point(g,h);this.setPosition(g,h)};AbstractItemPoint.prototype.setCoordinate=function(b){this.myCoordinate=b};AbstractItemPoint.prototype.getCoordinate=function(){return this.myCoordinate};AbstractItemPoint.prototype.optimizeCoordinateToMap=function(f){var d=f.getMapCoordinateSystem();if(this.myCoordinate.getSystemId()!=d){this.myCoordinate=this.myCoordinate.to(d)}var e=this.myCoordinate.getInternal();return f.internalCoordToPos(e.x,e.y)};AbstractItemPoint.prototype.getPositionWithOffset=function(d){var e=this.optimizeCoordinateToMap(d);var f=this.getOffset();e.sub(f.x,f.y);return e};AbstractItemPoint.prototype.setOriginalDimensions=function(d,c){this.myOriginalDimensions=new Dimension(d,c)};AbstractItemPoint.prototype.getOriginalDimensions=function(){return this.myOriginalDimensions};function AbstractItemPoint(){this.construct.apply(this,arguments)};
strap("com.geosition.map.item.AbstractItem");strap("com.geosition.map.item.AbstractItemPoint");strap("com.geosition.util.StdTools");declareClass("ItemPointImage",AbstractItemPoint);function ItemPointImage(f,d){var e=this;this.myElement=document.createElement("img");this.myElement.onload=function(){e.setOriginalDimensions(this.width,this.height);this.onload=function(){};StdTools.fixPng(this)};this.myElement.style.visibility="hidden";this.myElement.style.position="absolute";this.myElement.style.cursor="pointer";this.myElement.ontooltip=function(a){return e.getStack(a)};fuse(this.myElement,"onclick",this,function(a){this.onclick(a)});this.setImage(d);this.setCoordinate(f)}ItemPointImage.prototype.correctToMap=function(s){var r=this.optimizeCoordinateToMap(s);var o=this.getOriginalDimensions();if(o){var t=s.getResizeFactor();var h=o.width*t;var p=o.height*t;this.setDimensions(h,p);var q=this.getOffset(h,p);var m=r.x-q.x;var n=r.y-q.y;this.myBounceStart=new Point(m,n);this.setPosition(m,n);if(this.myIsVisible){this.myElement.style.visibility=""}}else{var d=this;this.myElement.onload=function(){d.resetDimensions();d.setOriginalDimensions(this.width,this.height);d.correctToMap(s);StdTools.fixPng(this)};this.setPosition(r.x,r.y)}};ItemPointImage.prototype.setImage=function(b){if(this.myElement.src!=b){this.myElement.src=b}};ItemPointImage.prototype.getImageUrl=function(){return this.myElement.src||""};ItemPointImage.prototype.toXml=function(e,f){var d=this.myCoordinate.to(e);return'<pointitem id="'+f+'"><name /><coordinate x="'+Math.round(d.x)+'" y="'+Math.round(d.y)+'" /><icon href="'+this.myElement.src+'" /></pointitem>'};ItemPointImage.prototype.onclick=function(b){};
declareClass("Exception");Exception.prototype.myMessage="";Exception.prototype.myStackTrace=null;function Exception(b){this.myMessage=b;this.myStackTrace=gjsf.getStackTrace();this.myStackTrace.shift()}Exception.prototype.getStackTrace=function(){return this.myStackTrace};Exception.prototype.getMessage=function(){return this.myMessage};Exception.prototype.toString=function(){return this.__class__.className+": "+this.myMessage+((this.myStackTrace&&this.myStackTrace.length>0)?"\ntrace:\n"+this.myStackTrace.join("\n"):"")};
strap("com.geosition.lang.Exception");declareClass("NotImplementedException",Exception);function NotImplementedException(b){this.construct("method: '"+arguments.caller+"' - "+b)};
SVG_NAMESPACE="http://www.w3.org/2000/svg";try{var testElement=document.createElementNS(SVG_NAMESPACE,"svg");testElement.style.left="100px";testElement.style.width="100px";strap("graphics.GraphicsSVG")}catch(ex){try{var testElement=document.createElement("canvas");var testContext=testElement.getContext("2d");testElement.style.position="absolute";strap("graphics.GraphicsCanvas")}catch(ex){try{if(document.namespaces.add){strap("graphics.GraphicsVML")}}catch(ex){}}}strap("com.geosition.util.BoundingBox");strap("com.geosition.lang.NotImplementedException");declareAbstractClass("Graphics");Graphics.mySupportedClass=null;Graphics.create=function(f,e){if(Graphics.isSupported()){var d=new Graphics.mySupportedClass(f,e)}else{var d=null}return d};Graphics.isSupported=function(){if(Graphics.mySupportedClass===null){if(isClassLoaded("GraphicsSVG")){Graphics.mySupportedClass=GraphicsSVG}else{if(isClassLoaded("GraphicsCanvas")){Graphics.mySupportedClass=GraphicsCanvas}else{if(isClassLoaded("GraphicsVML")){Graphics.mySupportedClass=GraphicsVML}}}}return(Graphics.mySupportedClass?true:false)};Graphics.getSupportedClass=function(){return Graphics.mySupportedClass};Graphics.prototype.myColor="#000000";Graphics.prototype.myStrokeOpacity=1;Graphics.prototype.myStrokeWidth="1";Graphics.prototype.myFillColor="";Graphics.prototype.myFillOpacity=1;Graphics.prototype.myFontSize="10pt";Graphics.prototype.myStyle="";Graphics.prototype.myElement=null;Graphics.prototype.myBoundingBox=null;Graphics.prototype.getElement=function(){return this.myElement};Graphics.prototype.getShapeElements=function(){return new Array(this.myElement)};Graphics.prototype.getBoundingBox=function(){return this.myBoundingBox};Graphics.prototype.getColor=function(){return this.myColor};Graphics.prototype.getPath=function(i,m,l){var k="";var h="";for(var n=0;n<l;n++){var j=Math.round(i[n])+","+Math.round(m[n])+" ";if(j!=h){h=j;k+=j}}return k};Graphics.prototype.clear=function(){};Graphics.prototype.drawLine=function(e,g,f,h){};Graphics.prototype.drawOval=function(e,g,h,f){};Graphics.prototype.drawPolygon=function(e,d,f){};Graphics.prototype.drawAdvancedPolygon=function(b){throw new NotImplementedException()};Graphics.prototype.drawPolyline=function(e,d,f){};Graphics.prototype.drawRect=function(e,g,h,f){};Graphics.prototype.drawPath=function(b){};Graphics.prototype.drawStringCenter=function(b){};Graphics.prototype.drawString=function(d,e,f){};Graphics.prototype.renderElement=function(b){};Graphics.prototype.setDimensions=function(c,d){this.myBoundingBox.width=c;this.myBoundingBox.height=d};Graphics.prototype.getDimensions=function(){return this.myBoundingBox};Graphics.prototype.rescale=function(b){};Graphics.prototype.setPosition=function(d,c){};Graphics.prototype.setColor=function(b){this.myColor=b};Graphics.prototype.setFillColor=function(b){this.myFillColor=b};Graphics.prototype.setFillOpacity=function(a){this.myFillOpacity=parseFloat(a)};Graphics.prototype.setStrokeOpacity=function(a){this.myStrokeOpacity=parseFloat(a)};Graphics.prototype.setStrokeWidth=function(b){this.myStrokeWidth=parseInt(b)};Graphics.prototype.getStrokeWidth=function(){return this.myStrokeWidth};Graphics.prototype.setFontSize=function(b){this.myFontSize=b};Graphics.prototype.getFontSize=function(){return this.myFontSize};Graphics.prototype.setCursor=function(b){};Graphics.prototype.setStyle=function(c,d){};function Graphics(){};
strap("com.geosition.map.item.AbstractItemPoint");strap("com.geosition.graphics.Graphics");declareClass("ItemPointCircle",AbstractItemPoint);ItemPointCircle.prototype.myGraphics=null;ItemPointCircle.property("PrintImageUrl",String);function ItemPointCircle(i,k,j,d,l){this.myGraphics=Graphics.create(k+2,k+2);this.draw(k,j,d,l);this.myElement=this.myGraphics.getElement();this.myElement.style.cursor="pointer";var h=this;this.myElement.ontooltip=function(a){return h.getStack(a)};fuse(this.myElement,"onclick",this,function(a){this.onclick(a)});fuse(this.myElement,"onmouseover",this,function(a){this.onmouseover(a)});this.setCoordinate(i)}ItemPointCircle.prototype.correctToMap=function(h){this.oncorrect(h);var d=this.optimizeCoordinateToMap(h);var f=h.getResizeFactor();this.myGraphics.rescale(f);var g=this.myGraphics.getDimensions();this.setPosition(d.x-f*g.width/2,d.y-f*g.height/2)};ItemPointCircle.prototype.oncorrect=function(b){};ItemPointCircle.prototype.draw=function(h,g,f,d){if(typeof(d)=="undefined"){var d=1}this.myGraphics.clear();this.myGraphics.setDimensions(h+d*2,h+d*2);this.myGraphics.setColor(f);this.myGraphics.setFillColor(g);this.myGraphics.setStrokeWidth(d);this.myGraphics.drawOval(d,d,h,h)};ItemPointCircle.prototype.setPosition=function(d,c){this.myOverlapCache=null;this.myGraphics.setPosition(d,c)};ItemPointCircle.prototype.getBoundingBox=function(){return this.myGraphics.getBoundingBox()};ItemPointCircle.prototype.getDimensions=function(){return this.myGraphics.getDimensions()};ItemPointCircle.prototype.toXml=function(e,f){var d=this.myCoordinate.to(e);return'<pointitem id="'+f+'"><name /><coordinate x="'+Math.round(d.x)+'" y="'+Math.round(d.y)+'" />'+(this.PrintImageUrl?'<icon href="'+this.PrintImageUrl+'" />':"")+"</pointitem>"};ItemPointCircle.prototype.onclick=function(b){};ItemPointCircle.prototype.onmouseover=function(b){};
strap("com.geosition.map.item.ItemPointCircle");declareClass("ItemPointDefault",ItemPointCircle);function ItemPointDefault(b){this.construct(b,0,"","");this.setCoordinate(b)}ItemPointDefault.prototype.oncorrect=function(d){var e=d.getParameterSet();var f=e.getInt("pointitem_temporary_icon_diameter");this.draw(f,e.get("pointitem_temporary_icon_color"),e.get("pointitem_temporary_icon_border_color"));this.oncorrect=function(){}};ItemPointDefault.prototype.set=function(b){this.setCoordinate(b)};ItemPointDefault.prototype.onclick=function(b){};
declareAbstractClass("CoordinateSystem");CoordinateSystem.SYSTEM_UNKNOWN=0;CoordinateSystem.SYSTEM_RT90=1;CoordinateSystem.SYSTEM_WGS84=2;CoordinateSystem.SYSTEM_LAMBERT=3;CoordinateSystem.SYSTEM_LAMBERT_MEXICO=4;CoordinateSystem.SYSTEM_NAME=["UNKNOWN","RT90","WGS84","LAMBERT","LAMBERTMEXICO"];CoordinateSystem.SYSTEM_NAME_ID={UNKNOWN:CoordinateSystem.SYSTEM_UNKNOWN,RT90:CoordinateSystem.SYSTEM_RT90,WGS84:CoordinateSystem.SYSTEM_WGS84,LAMBERT:CoordinateSystem.SYSTEM_LAMBERT,LAMBERTMEXICO:CoordinateSystem.SYSTEM_LAMBERT_MEXICO};CoordinateSystem.systemHash={};CoordinateSystem.systemNameHash={};CoordinateSystem.define=function(d){var c=d.getId();if(!CoordinateSystem.systemHash[c]){CoordinateSystem.systemHash[c]=d;CoordinateSystem.systemNameHash[d.getName().toUpperCase()]=d}else{throw new Exception("CoordinateSystem system with id '"+c+"' already defined.")}};CoordinateSystem.get=function(c){var d=CoordinateSystem.systemHash[c];if(!d){throw new Exception("Coordinate system with id '"+c+"' not defined.")}return d};CoordinateSystem.getByName=function(d){var c=CoordinateSystem.systemNameHash[d.toUpperCase()];if(!c){throw new Exception("Coordinate system with name '"+d+"' not defined.")}return c};CoordinateSystem.getIdByName=function(d){var c=CoordinateSystem.systemNameHash[d.toUpperCase()];if(!c){throw new Exception("Coordinate system with name '"+d+"' not defined.")}return c.getId()};CoordinateSystem.isDefined=function(b){return CoordinateSystem.systemHash[b]?true:false};function CoordinateSystem(c,d){this.myId=c;this.myName=d;CoordinateSystem.define(this)}CoordinateSystem.prototype.myId=0;CoordinateSystem.prototype.getId=function(){return this.myId};CoordinateSystem.prototype.myName="";CoordinateSystem.prototype.getName=function(){return this.myName};CoordinateSystem.prototype.transform=function(b){throw new Exception("Method not implemented")};CoordinateSystem.prototype.toInternal=function(d,c){throw new Exception("What you talkin' bout fool!")};CoordinateSystem.prototype.fromInternal=function(d,c){throw new Exception("What you talkin' bout fool!")};
strap("com.geosition.coordinate.CoordinateSystem");strap("com.geosition.coordinate.proj4.Proj4CoordinateSystem");declareClass("Coordinate");Coordinate.create=function(e,g,f,h){return new Coordinate(e,g,f,h)};Coordinate.createByName=function(f,h,j,i){var g=CoordinateSystem.getByName(j).getId();return Coordinate.create(f,h,g,i)};Coordinate.get=function(f,g,e,h){return Coordinate.create(f,g,e,h)};Coordinate.getByName=function(f,g,e,h){return Coordinate.createByName(f,g,e,h)};function Coordinate(e,g,f,h){this.mySystem=CoordinateSystem.get(f);if(!h){this.set(e,g)}else{this.setInternal(e,g)}}Coordinate.prototype.x=Number.NaN;Coordinate.prototype.y=Number.NaN;Coordinate.prototype.mySystem=null;Coordinate.prototype.getSystem=function(){return this.mySystem};Coordinate.prototype.getSystemId=function(){return this.mySystem.getId()};Coordinate.prototype.getSystemName=function(){return this.mySystem.getName()};Coordinate.prototype.isSet=function(){return(this.x!=Number.NaN&&this.y!=Number.NaN)};Coordinate.prototype.isValidSystem=function(b){return(b>0)&&(b<=this.systemHash.length)};Coordinate.prototype.reset=function(){this.x=Number.NaN;this.y=Number.NaN};Coordinate.prototype.set=function(d,c){this.x=parseFloat(d);this.y=parseFloat(c)};Coordinate.prototype.setInternal=function(e,f){var d=this.mySystem.fromInternal(e,f);this.set(d.x,d.y)};Coordinate.prototype.getInternal=function(){return this.mySystem.toInternal(this.x,this.y)};Coordinate.prototype.distanceTo=function(g,e){if(e){var h=this.to(e);var f=g.to(e)}else{var h=this.toLambert();var f=g.toLambert()}return Math.sqrt(Math.pow(f.x-h.x,2)+Math.pow(f.y-h.y,2))};Coordinate.prototype.to=function(b){return CoordinateSystem.get(b).transform(this)};Coordinate.prototype.toLambertMexico=function(){return CoordinateSystem.get(CoordinateSystem.SYSTEM_LAMBERT_MEXICO).transform(this)};Coordinate.prototype.toLambert=function(){return CoordinateSystem.get(CoordinateSystem.SYSTEM_LAMBERT).transform(this)};Coordinate.prototype.toRT90=function(){return CoordinateSystem.get(CoordinateSystem.SYSTEM_RT90).transform(this)};Coordinate.prototype.toWGS84=function(){return CoordinateSystem.get(CoordinateSystem.SYSTEM_WGS84).transform(this)};Coordinate.prototype.clone=function(){return new Coordinate(this.x,this.y,this.getSystemId())};declareClass("CoordinateRT90","Coordinate");function CoordinateRT90(e,f,d){this.construct(e,f,CoordinateSystem.SYSTEM_RT90,d)}declareClass("CoordinateWGS84","Coordinate");function CoordinateWGS84(e,f,d){this.construct(e,f,CoordinateSystem.SYSTEM_WGS84,d)}declareClass("CoordinateLambert","Coordinate");function CoordinateLambert(e,f,d){this.construct(e,f,CoordinateSystem.SYSTEM_LAMBERT,d)}declareClass("CoordinateLambertMexico","Coordinate");function CoordinateLambertMexico(e,f,d){this.construct(e,f,CoordinateSystem.SYSTEM_LAMBERT_MEXICO,d)};
declareStaticClass("Proj4gjsf");OpenLayers={};OpenLayers.Class=function(){var f=function(){if(arguments&&arguments[0]!=OpenLayers.Class.isPrototype){this.initialize.apply(this,arguments)}};var g={};var h;for(var j=0;j<arguments.length;++j){if(typeof arguments[j]=="function"){h=arguments[j].prototype}else{h=arguments[j]}OpenLayers.Util.extend(g,h)}f.prototype=g;return f};OpenLayers.Class.isPrototype=function(){};OpenLayers.Class.create=function(){return function(){if(arguments&&arguments[0]!=OpenLayers.Class.isPrototype){this.initialize.apply(this,arguments)}}};OpenLayers.Class.inherit=function(){var j=arguments[0];var h=new j(OpenLayers.Class.isPrototype);for(var f=1;f<arguments.length;f++){if(typeof arguments[f]=="function"){var g=arguments[f];arguments[f]=new g(OpenLayers.Class.isPrototype)}OpenLayers.Util.extend(h,arguments[f])}return h};OpenLayers.Util={};OpenLayers.Util.extend=function(h,j){if(h&&j){for(var l in j){var m=j[l];if(m!==undefined){h[l]=m}}var g=typeof window.Event=="function"&&j instanceof window.Event;if(!g&&j.hasOwnProperty&&j.hasOwnProperty("toString")){h.toString=j.toString}}return h};Proj4js={defaultDatum:"WGS84",proxyScript:null,defsLookupService:"http://spatialreference.org/ref",libPath:"../lib/",transform:function(h,f,g){if(!h.readyToUse||!f.readyToUse){this.reportError("Proj4js initialization for "+h.srsCode+" not yet complete");return}if(g.transformed){this.log("point already transformed");return}if((h.srsProjNumber=="900913"&&f.datumCode!="WGS84")||(f.srsProjNumber=="900913"&&h.datumCode!="WGS84")){var j=Proj4js.WGS84;this.transform(h,j,g);g.transformed=false;h=j}if(h.projName=="longlat"){g.x*=Proj4js.common.D2R;g.y*=Proj4js.common.D2R}else{if(h.to_meter){g.x*=h.to_meter;g.y*=h.to_meter}h.inverse(g)}if(h.from_greenwich){g.x+=h.from_greenwich}g=this.datum_transform(h.datum,f.datum,g);if(f.from_greenwich){g.x-=f.from_greenwich}if(f.projName=="longlat"){g.x*=Proj4js.common.R2D;g.y*=Proj4js.common.R2D}else{f.forward(g);if(f.to_meter){g.x/=f.to_meter;g.y/=f.to_meter}}g.transformed=true;return g},datum_transform:function(g,e,f){if(g.compare_datums(e)){return f}if(g.datum_type==Proj4js.common.PJD_NODATUM||e.datum_type==Proj4js.common.PJD_NODATUM){return f}if(g.datum_type==Proj4js.common.PJD_GRIDSHIFT){alert("ERROR: Grid shift transformations are not implemented yet.")}if(e.datum_type==Proj4js.common.PJD_GRIDSHIFT){alert("ERROR: Grid shift transformations are not implemented yet.")}if(g.es!=e.es||g.a!=e.a||g.datum_type==Proj4js.common.PJD_3PARAM||g.datum_type==Proj4js.common.PJD_7PARAM||e.datum_type==Proj4js.common.PJD_3PARAM||e.datum_type==Proj4js.common.PJD_7PARAM){g.geodetic_to_geocentric(f);if(g.datum_type==Proj4js.common.PJD_3PARAM||g.datum_type==Proj4js.common.PJD_7PARAM){g.geocentric_to_wgs84(f)}if(e.datum_type==Proj4js.common.PJD_3PARAM||e.datum_type==Proj4js.common.PJD_7PARAM){e.geocentric_from_wgs84(f)}e.geocentric_to_geodetic(f)}if(e.datum_type==Proj4js.common.PJD_GRIDSHIFT){alert("ERROR: Grid shift transformations are not implemented yet.")}return f},reportError:function(b){},log:function(b){},loadProjDefinition:function(g){if(this.defs[g.srsCode]){return this.defs[g.srsCode]}var e={method:"get",asynchronous:false,onSuccess:this.defsLoadedFromDisk.bind(this,g.srsCode)};var f=this.libPath+"defs/"+g.srsAuth.toUpperCase()+g.srsProjNumber+".js";new OpenLayers.Ajax.Request(f,e);if(this.defs[g.srsCode]){return this.defs[g.srsCode]}if(this.proxyScript){var f=this.proxyScript+this.defsLookupService+"/"+g.srsAuth+"/"+g.srsProjNumber+"/proj4";e.onSuccess=this.defsLoadedFromService.bind(this,g.srsCode);e.onFailure=this.defsFailed.bind(this,g.srsCode);new OpenLayers.Ajax.Request(f,e)}return this.defs[g.srsCode]},defsLoadedFromDisk:function(srsCode,transport){eval(transport.responseText)},defsLoadedFromService:function(e,d){this.defs[e]=d.responseText},defsFailed:function(b){this.reportError("failed to load projection definition for: "+b);OpenLayers.Util.extend(this.defs[b],this.defs.WGS84)},loadProjCode:function(g){if(this.Proj[g]){return}var e={method:"get",asynchronous:false,onSuccess:this.loadProjCodeSuccess.bind(this,g),onFailure:this.loadProjCodeFailure.bind(this,g)};var f=this.libPath+"projCode/"+g+".js";new OpenLayers.Ajax.Request(f,e)},loadProjCodeSuccess:function(projName,transport){eval(transport.responseText);if(this.Proj[projName].dependsOn){this.loadProjCode(this.Proj[projName].dependsOn)}},loadProjCodeFailure:function(b){Proj4js.reportError("failed to find projection file for: "+b)}};Proj4js.Proj=OpenLayers.Class({readyToUse:false,title:null,projName:null,units:null,datum:null,initialize:function(d){this.srsCode=d.toUpperCase();if(this.srsCode.indexOf("EPSG")==0){this.srsCode=this.srsCode;this.srsAuth="epsg";this.srsProjNumber=this.srsCode.substring(5)}else{this.srsAuth="";this.srsProjNumber=this.srsCode}var e=Proj4js.loadProjDefinition(this);if(e){this.parseDefs(e);Proj4js.loadProjCode(this.projName);this.callInit()}},callInit:function(){Proj4js.log("projection script loaded for:"+this.projName);OpenLayers.Util.extend(this,Proj4js.Proj[this.projName]);this.init();this.mapXYToLonLat=this.inverse;this.lonLatToMapXY=this.forward;this.readyToUse=true},parseDefs:function(h){this.defData=h;var m,o;var j=this.defData.split("+");for(var l=0;l<j.length;l++){var n=j[l].split("=");m=n[0].toLowerCase();o=n[1];switch(m.replace(/\s/gi,"")){case"":break;case"title":this.title=o;break;case"proj":this.projName=o.replace(/\s/gi,"");break;case"units":this.units=o.replace(/\s/gi,"");break;case"datum":this.datumCode=o.replace(/\s/gi,"");break;case"nadgrids":this.nagrids=o.replace(/\s/gi,"");break;case"ellps":this.ellps=o.replace(/\s/gi,"");break;case"a":this.a=parseFloat(o);break;case"b":this.b=parseFloat(o);break;case"lat_0":this.lat0=o*Proj4js.common.D2R;break;case"lat_1":this.lat1=o*Proj4js.common.D2R;break;case"lat_2":this.lat2=o*Proj4js.common.D2R;break;case"lat_ts":this.lat_ts=o*Proj4js.common.D2R;break;case"lon_0":this.long0=o*Proj4js.common.D2R;break;case"x_0":this.x0=parseFloat(o);break;case"y_0":this.y0=parseFloat(o);break;case"k_0":this.k0=parseFloat(o);break;case"k":this.k0=parseFloat(o);break;case"R_A":this.R=parseFloat(o);break;case"zone":this.zone=parseInt(o);break;case"south":this.utmSouth=true;break;case"towgs84":this.datum_params=o.split(",");break;case"to_meter":this.to_meter=parseFloat(o);break;case"from_greenwich":this.from_greenwich=o*Proj4js.common.D2R;break;case"pm":o=o.replace(/\s/gi,"");this.from_greenwich=Proj4js.PrimeMeridian[o]?Proj4js.PrimeMeridian[o]*Proj4js.common.D2R:0;break;case"no_defs":break;default:Proj4js.log("Unrecognized parameter: "+m)}}this.deriveConstants()},deriveConstants:function(){if(this.nagrids=="@null"){this.datumCode="none"}if(this.datumCode&&this.datumCode!="none"){var e=Proj4js.Datum[this.datumCode];if(e){this.datum_params=e.towgs84.split(",");this.ellps=e.ellipse;this.datumName=e.datumName}}if(!this.a){var d=Proj4js.Ellipsoid[this.ellps]?Proj4js.Ellipsoid[this.ellps]:Proj4js.Ellipsoid.WGS84;OpenLayers.Util.extend(this,d)}if(this.rf&&!this.b){this.b=(1-1/this.rf)*this.a}if(Math.abs(this.a-this.b)<Proj4js.common.EPSLN){this.sphere=true}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.k0){this.k0=1}this.datum=new Proj4js.datum(this)}});Proj4js.Proj.longlat={init:function(){},forward:function(b){return b},inverse:function(b){return b}};Proj4js.defs={WGS84:"+title=long/lat:WGS84 +proj=longlat +ellps=WGS84 +datum=WGS84","EPSG:4326":"+title=long/lat:WGS84 +proj=longlat +a=6378137.0 +b=6356752.31424518 +ellps=WGS84 +datum=WGS84","EPSG:4269":"+title=long/lat:NAD83 +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83"};Proj4js.common={PI:Math.PI,HALF_PI:Math.PI*0.5,TWO_PI:Math.PI*2,FORTPI:0.7853981633974483,R2D:57.2957795131,D2R:0.0174532925199,SEC_TO_RAD:0.00000484813681109536,EPSLN:1e-10,MAX_ITER:20,COS_67P5:0.3826834323650898,AD_C:1.0026,PJD_UNKNOWN:0,PJD_3PARAM:1,PJD_7PARAM:2,PJD_GRIDSHIFT:3,PJD_WGS84:4,PJD_NODATUM:5,SRS_WGS84_SEMIMAJOR:6378137,msfnz:function(j,f,h){var g=j*f;return h/(Math.sqrt(1-g*g))},tsfnz:function(j,l,m){var h=j*m;var g=0.5*j;h=Math.pow(((1-h)/(1+h)),g);return(Math.tan(0.5*(this.HALF_PI-l))/h)},phi2z:function(l,m){var n=0.5*l;var j,h;var o=this.HALF_PI-2*Math.atan(m);for(i=0;i<=15;i++){j=l*Math.sin(o);h=this.HALF_PI-2*Math.atan(m*(Math.pow(((1-j)/(1+j)),n)))-o;o+=h;if(Math.abs(h)<=1e-10){return o}}alert("phi2z has NoConvergence");return(-9999)},qsfnz:function(j,f,h){var g;if(j>1e-7){g=j*f;return((1-j*j)*(f/(1-g*g)-(0.5/j)*Math.log((1-g)/(1+g))))}else{return(2*f)}},asinz:function(b){if(Math.abs(b)>1){b=(b>1)?1:-1}return Math.asin(b)},e0fn:function(b){return(1-0.25*b*(1+b/16*(3+1.25*b)))},e1fn:function(b){return(0.375*b*(1+0.25*b*(1+0.46875*b)))},e2fn:function(b){return(0.05859375*b*b*(1+0.75*b))},e3fn:function(b){return(b*b*b*(35/3072))},mlfn:function(j,l,m,g,h){return(j*h-l*Math.sin(2*h)+m*Math.sin(4*h)-g*Math.sin(6*h))},srat:function(e,d){return(Math.pow((1-e)/(1+e),d))},sign:function(b){if(b<0){return(-1)}else{return(1)}},adjust_lon:function(b){b=(Math.abs(b)<this.PI)?b:(b-(this.sign(b)*this.TWO_PI));return b}};Proj4js.datum=OpenLayers.Class({initialize:function(d){this.datum_type=Proj4js.common.PJD_WGS84;if(d.datumCode&&d.datumCode=="none"){this.datum_type=Proj4js.common.PJD_NODATUM}if(d&&d.datum_params){for(var e=0;e<d.datum_params.length;e++){d.datum_params[e]=parseFloat(d.datum_params[e])}if(d.datum_params[0]!=0||d.datum_params[1]!=0||d.datum_params[2]!=0){this.datum_type=Proj4js.common.PJD_3PARAM}if(d.datum_params.length>3){if(d.datum_params[3]!=0||d.datum_params[4]!=0||d.datum_params[5]!=0||d.datum_params[6]!=0){this.datum_type=Proj4js.common.PJD_7PARAM;d.datum_params[3]*=Proj4js.common.SEC_TO_RAD;d.datum_params[4]*=Proj4js.common.SEC_TO_RAD;d.datum_params[5]*=Proj4js.common.SEC_TO_RAD;d.datum_params[6]=(d.datum_params[6]/1000000)+1}}}if(d){this.a=d.a;this.b=d.b;this.es=d.es;this.ep2=d.ep2;this.datum_params=d.datum_params}},compare_datums:function(b){if(this.datum_type!=b.datum_type){return false}else{if(this.a!=b.a||Math.abs(this.es-b.es)>5e-11){return false}else{if(this.datum_type==Proj4js.common.PJD_3PARAM){return(this.datum_params[0]==b.datum_params[0]&&this.datum_params[1]==b.datum_params[1]&&this.datum_params[2]==b.datum_params[2])}else{if(this.datum_type==Proj4js.common.PJD_7PARAM){return(this.datum_params[0]==b.datum_params[0]&&this.datum_params[1]==b.datum_params[1]&&this.datum_params[2]==b.datum_params[2]&&this.datum_params[3]==b.datum_params[3]&&this.datum_params[4]==b.datum_params[4]&&this.datum_params[5]==b.datum_params[5]&&this.datum_params[6]==b.datum_params[6])}else{if(this.datum_type==Proj4js.common.PJD_GRIDSHIFT){return strcmp(pj_param(this.params,"snadgrids").s,pj_param(b.params,"snadgrids").s)==0}else{return true}}}}}},geodetic_to_geocentric:function(B){var p=B.x;var t=B.y;var z=B.z?B.z:0;var w;var C;var D;var r=0;var q;var s;var u;var v;if(t<-Proj4js.common.HALF_PI&&t>-1.001*Proj4js.common.HALF_PI){t=-Proj4js.common.HALF_PI}else{if(t>Proj4js.common.HALF_PI&&t<1.001*Proj4js.common.HALF_PI){t=Proj4js.common.HALF_PI}else{if((t<-Proj4js.common.HALF_PI)||(t>Proj4js.common.HALF_PI)){Proj4js.reportError("geocent:lat out of range:"+t);return null}}}if(p>Proj4js.common.PI){p-=(2*Proj4js.common.PI)}s=Math.sin(t);v=Math.cos(t);u=s*s;q=this.a/(Math.sqrt(1-this.es*u));w=(q+z)*v*Math.cos(p);C=(q+z)*v*Math.sin(p);D=((q*(1-this.es))+z)*s;B.x=w;B.y=C;B.z=D;return r},geocentric_to_geodetic:function(F){var I=1e-12;var p=(I*I);var Y=30;var Q;var V;var ad;var N;var ac;var P;var S;var L;var M;var T;var H;var J;var Z;var O;var W=F.x;var aa=F.y;var ab=F.z?F.z:0;var U;var G;var K;Z=false;Q=Math.sqrt(W*W+aa*aa);V=Math.sqrt(W*W+aa*aa+ab*ab);if(Q/this.a<I){Z=true;U=0;if(V/this.a<I){G=Proj4js.common.HALF_PI;K=-this.b;return}}else{U=Math.atan2(aa,W)}ad=ab/V;N=Q/V;ac=1/Math.sqrt(1-this.es*(2-this.es)*N*N);L=N*(1-this.es)*ac;M=ad*ac;O=0;do{O++;S=this.a/Math.sqrt(1-this.es*M*M);K=Q*L+ab*M-S*(1-this.es*M*M);P=this.es*S/(S+K);ac=1/Math.sqrt(1-P*(2-P)*N*N);T=N*(1-P)*ac;H=ad*ac;J=H*L-T*M;L=T;M=H}while(J*J>p&&O<Y);G=Math.atan(H/Math.abs(T));F.x=U;F.y=G;F.z=K;return F},geocentric_to_geodetic_noniter:function(D){var T=D.x;var U=D.y;var W=D.z?D.z:0;var P;var E;var K;var S;var H;var F;var J;var M;var O;var N;var I;var Q;var p;var C;var G;var L;var V;T=parseFloat(T);U=parseFloat(U);W=parseFloat(W);V=false;if(T!=0){P=Math.atan2(U,T)}else{if(U>0){P=Proj4js.common.HALF_PI}else{if(U<0){P=-Proj4js.common.HALF_PI}else{V=true;P=0;if(W>0){E=Proj4js.common.HALF_PI}else{if(W<0){E=-Proj4js.common.HALF_PI}else{E=Proj4js.common.HALF_PI;K=-this.b;return}}}}}H=T*T+U*U;S=Math.sqrt(H);F=W*Proj4js.common.AD_C;M=Math.sqrt(F*F+H);N=F/M;Q=S/M;I=N*N*N;J=W+this.b*this.ep2*I;L=S-this.a*this.es*Q*Q*Q;O=Math.sqrt(J*J+L*L);p=J/O;C=L/O;G=this.a/Math.sqrt(1-this.es*p*p);if(C>=Proj4js.common.COS_67P5){K=S/C-G}else{if(C<=-Proj4js.common.COS_67P5){K=S/-C-G}else{K=W/p+G*(this.es-1)}}if(V==false){E=Math.atan(p/C)}D.x=P;D.y=E;D.z=K;return D},geocentric_to_wgs84:function(z){if(this.datum_type==Proj4js.common.PJD_3PARAM){z.x+=this.datum_params[0];z.y+=this.datum_params[1];z.z+=this.datum_params[2]}else{var t=this.datum_params[0];var v=this.datum_params[1];var q=this.datum_params[2];var u=this.datum_params[3];var p=this.datum_params[4];var r=this.datum_params[5];var s=this.datum_params[6];var w=s*(z.x-r*z.y+p*z.z)+t;var B=s*(r*z.x+z.y-u*z.z)+v;var o=s*(-p*z.x+u*z.y+z.z)+q;z.x=w;z.y=B;z.z=o}},geocentric_from_wgs84:function(w){if(this.datum_type==Proj4js.common.PJD_3PARAM){w.x-=this.datum_params[0];w.y-=this.datum_params[1];w.z-=this.datum_params[2]}else{var s=this.datum_params[0];var v=this.datum_params[1];var p=this.datum_params[2];var t=this.datum_params[3];var o=this.datum_params[4];var q=this.datum_params[5];var r=this.datum_params[6];var u=(w.x-s)/r;var z=(w.y-v)/r;var B=(w.z-p)/r;w.x=u+q*z-o*B;w.y=-q*u+z+t*B;w.z=o*u-t*z+B}}});Proj4js.Point=OpenLayers.Class({initialize:function(f,g,e){if(typeof f=="object"){this.x=f[0];this.y=f[1];this.z=f[2]||0}else{this.x=f;this.y=g;this.z=e||0}},clone:function(){return new Proj4js.Point(this.x,this.y,this.z)},toString:function(){return("x="+this.x+",y="+this.y)},toShortString:function(){return(this.x+", "+this.y)}});Proj4js.PrimeMeridian={greenwich:0,lisbon:-9.131906111111,paris:2.337229166667,bogota:-74.080916666667,madrid:-3.687938888889,rome:12.452333333333,bern:7.439583333333,jakarta:106.807719444444,ferro:-17.666666666667,brussels:4.367975,stockholm:18.058277777778,athens:23.7163375,oslo:10.722916666667};Proj4js.Ellipsoid={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"},"APL4.":{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},andrae:{a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},clrk80:{a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},CPM:{a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:6355834.8467,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS72:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};Proj4js.Datum={WGS84:{towgs84:"0,0,0",ellipse:"WGS84",datumName:""},GGRS87:{towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},NAD83:{towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},NAD27:{nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},potsdam:{towgs84:"606.0,23.0,413.0",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},carthage:{towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},hermannskogel:{towgs84:"653.0,-212.0,449.0",ellipse:"bessel",datumName:"Hermannskogel"},ire65:{towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},nzgd49:{towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},OSGB36:{towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"}};Proj4js.WGS84=new Proj4js.Proj("WGS84");Proj4js.Datum.OSB36=Proj4js.Datum.OSGB36;Proj4js.Proj.sterea={dependsOn:"gauss",init:function(){Proj4js.Proj.gauss.init.apply(this);if(!this.rc){Proj4js.reportError("sterea:init:E_ERROR_0");return}this.sinc0=Math.sin(this.phic0);this.cosc0=Math.cos(this.phic0);this.R2=2*this.rc;if(!this.title){this.title="Oblique Stereographic Alternative"}},forward:function(b){b.x=Proj4js.common.adjust_lon(b.x-this.long0);Proj4js.Proj.gauss.forward.apply(this,[b]);sinc=Math.sin(b.y);cosc=Math.cos(b.y);cosl=Math.cos(b.x);k=this.k0*this.R2/(1+this.sinc0*sinc+this.cosc0*cosc*cosl);b.x=k*cosc*Math.sin(b.x);b.y=k*(this.cosc0*sinc-this.sinc0*cosc*cosl);b.x=this.a*b.x+this.x0;b.y=this.a*b.y+this.y0;return b},inverse:function(e){var g,f;e.x=(e.x-this.x0)/this.a;e.y=(e.y-this.y0)/this.a;e.x/=this.k0;e.y/=this.k0;if((rho=Math.sqrt(e.x*e.x+e.y*e.y))){c=2*Math.atan2(rho,this.R2);sinc=Math.sin(c);cosc=Math.cos(c);f=Math.asin(cosc*this.sinc0+e.y*sinc*this.cosc0/rho);g=Math.atan2(e.x*sinc,rho*this.cosc0*cosc-e.y*this.sinc0*sinc)}else{f=this.phic0;g=0}e.x=g;e.y=f;Proj4js.Proj.gauss.inverse.apply(this,[e]);e.x=Proj4js.common.adjust_lon(e.x+this.long0);return e}};Proj4js.Proj.aea={init:function(){if(Math.abs(this.lat1+this.lat2)<Proj4js.common.EPSLN){Proj4js.reportError("aeaInitEqualLatitudes");return}this.temp=this.b/this.a;this.es=1-Math.pow(this.temp,2);this.e3=Math.sqrt(this.es);this.sin_po=Math.sin(this.lat1);this.cos_po=Math.cos(this.lat1);this.t1=this.sin_po;this.con=this.sin_po;this.ms1=Proj4js.common.msfnz(this.e3,this.sin_po,this.cos_po);this.qs1=Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);this.sin_po=Math.sin(this.lat2);this.cos_po=Math.cos(this.lat2);this.t2=this.sin_po;this.ms2=Proj4js.common.msfnz(this.e3,this.sin_po,this.cos_po);this.qs2=Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);this.sin_po=Math.sin(this.lat0);this.cos_po=Math.cos(this.lat0);this.t3=this.sin_po;this.qs0=Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);if(Math.abs(this.lat1-this.lat2)>Proj4js.common.EPSLN){this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1)}else{this.ns0=this.con}this.c=this.ms1*this.ms1+this.ns0*this.qs1;this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0},forward:function(q){var p=q.x;var r=q.y;this.sin_phi=Math.sin(r);this.cos_phi=Math.cos(r);var l=Proj4js.common.qsfnz(this.e3,this.sin_phi,this.cos_phi);var n=this.a*Math.sqrt(this.c-this.ns0*l)/this.ns0;var s=this.ns0*Proj4js.common.adjust_lon(p-this.long0);var m=n*Math.sin(s)+this.x0;var o=this.rh-n*Math.cos(s)+this.y0;q.x=m;q.y=o;return q},inverse:function(o){var m,l,j,q,n,p;o.x-=this.x0;o.y=this.rh-o.y+this.y0;if(this.ns0>=0){m=Math.sqrt(o.x*o.x+o.y*o.y);j=1}else{m=-Math.sqrt(o.x*o.x+o.y*o.y);j=-1}q=0;if(m!=0){q=Math.atan2(j*o.x,j*o.y)}j=m*this.ns0/this.a;l=(this.c-j*j)/this.ns0;if(this.e3>=1e-10){j=1-0.5*(1-this.es)*Math.log((1-this.e3)/(1+this.e3))/this.e3;if(Math.abs(Math.abs(j)-Math.abs(l))>1e-10){p=this.phi1z(this.e3,l)}else{if(l>=0){p=0.5*PI}else{p=-0.5*PI}}}else{p=this.phi1z(e3,l)}n=Proj4js.common.adjust_lon(q/this.ns0+this.long0);o.x=n;o.y=p;return o},phi1z:function(n,m){var l,s,r;var o=Proj4js.common.asinz(0.5*m);if(n<Proj4js.common.EPSLN){return o}var p=n*n;for(var q=1;q<=25;q++){sinphi=Math.sin(o);cosphi=Math.cos(o);l=n*sinphi;s=1-l*l;r=0.5*s*s/cosphi*(m/(1-p)-sinphi/s+0.5/n*Math.log((1-l)/(1+l)));o=o+r;if(Math.abs(r)<=1e-7){return o}}Proj4js.reportError("aea:phi1z:Convergence error");return null}};function phi4z(Q,L,M,N,O,a,b,B,P){var K,C,E,D,G,H,I,J,S,F;P=a;for(F=1;F<=15;F++){K=Math.sin(P);tanphi=Math.tan(P);B=tanphi*Math.sqrt(1-Q*K*K);C=Math.sin(2*P);D=L*P-M*C+N*Math.sin(4*P)-O*Math.sin(6*P);G=L-2*M*Math.cos(2*P)+4*N*Math.cos(4*P)-6*O*Math.cos(6*P);H=2*D+B*(D*D+b)-2*a*(B*D+1);I=Q*C*(D*D+b-2*a*D)/(2*B);J=2*(a-D)*(B*G-2/C)-2*G;S=H/(I+J);P+=S;if(Math.abs(S)<=1e-10){return(P)}}Proj4js.reportError("phi4z: No convergence");return null}function e4fn(f){var e,g;e=1+f;g=1-f;return(Math.sqrt((Math.pow(e,e))*(Math.pow(g,g))))}Proj4js.Proj.poly={init:function(){var b;if(this.lat0=0){this.lat0=90}this.temp=this.b/this.a;this.es=1-Math.pow(this.temp,2);this.e=Math.sqrt(this.es);this.e0=Proj4js.common.e0fn(this.es);this.e1=Proj4js.common.e1fn(this.es);this.e2=Proj4js.common.e2fn(this.es);this.e3=Proj4js.common.e3fn(this.es);this.ml0=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0)},forward:function(z){var D,v;var t;var r;var w,u;var B;var p,q;var C=z.x;var s=z.y;w=Proj4js.common.adjust_lon(C-this.long0);if(Math.abs(s)<=1e-7){p=this.x0+this.a*w;q=this.y0-this.a*this.ml0}else{D=Math.sin(s);v=Math.cos(s);u=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,s);B=Proj4js.common.msfnz(this.e,D,v);w=D;p=this.x0+this.a*B*Math.sin(w)/D;q=this.y0+this.a*(u-this.ml0+B*(1-Math.cos(w))/D)}z.x=p;z.y=q;return z},inverse:function(z){var p,t;var u;var b;var r;var w,v;var q;var B,s;z.x-=this.x0;z.y-=this.y0;u=this.ml0+z.y/this.a;q=0;if(Math.abs(u)<=1e-7){B=z.x/this.a+this.long0;s=0}else{b=u*u+(z.x/this.a)*(z.x/this.a);q=phi4z(this.es,this.e0,this.e1,this.e2,this.e3,this.al,b,r,s);if(q!=1){return(q)}B=Proj4js.common.adjust_lon((asinz(z.x*r/this.a)/Math.sin(s))+this.long0)}z.x=B;z.y=s;return z}};Proj4js.Proj.equi={init:function(){if(!this.x0){this.x0=0}if(!this.y0){this.y0=0}if(!this.lat0){this.lat0=0}if(!this.long0){this.long0=0}},forward:function(n){var m=n.x;var o=n.y;var h=Proj4js.common.adjust_lon(m-this.long0);var j=this.x0+this.a*h*Math.cos(this.lat0);var l=this.y0+this.a*o;this.t1=j;this.t2=Math.cos(this.lat0);n.x=j;n.y=l;return n},inverse:function(e){e.x-=this.x0;e.y-=this.y0;var f=e.y/this.a;if(Math.abs(f)>Proj4js.common.HALF_PI){Proj4js.reportError("equi:Inv:DataError")}var g=Proj4js.common.adjust_lon(this.long0+e.x/(this.a*Math.cos(this.lat0)));e.x=g;e.y=f}};Proj4js.Proj.merc={init:function(){if(this.lat_ts){if(this.sphere){this.k0=Math.cos(this.lat_ts)}else{this.k0=Proj4js.common.msfnz(this.es,Math.sin(this.lat_ts),Math.cos(this.lat_ts))}}},forward:function(o){var n=o.x;var p=o.y;if(p*Proj4js.common.R2D>90&&p*Proj4js.common.R2D<-90&&n*Proj4js.common.R2D>180&&n*Proj4js.common.R2D<-180){Proj4js.reportError("merc:forward: llInputOutOfRange: "+n+" : "+p);return null}var l,m;if(Math.abs(Math.abs(p)-Proj4js.common.HALF_PI)<=Proj4js.common.EPSLN){Proj4js.reportError("merc:forward: ll2mAtPoles");return null}else{if(this.sphere){l=this.x0+this.a*this.k0*Proj4js.common.adjust_lon(n-this.long0);m=this.y0+this.a*this.k0*Math.log(Math.tan(Proj4js.common.FORTPI+0.5*p))}else{var q=Math.sin(p);var j=Proj4js.common.tsfnz(this.e,p,q);l=this.x0+this.a*this.k0*Proj4js.common.adjust_lon(n-this.long0);m=this.y0-this.a*this.k0*Math.log(j)}o.x=l;o.y=m;return o}},inverse:function(n){var j=n.x-this.x0;var l=n.y-this.y0;var m,o;if(this.sphere){o=Proj4js.common.HALF_PI-2*Math.atan(Math.exp(-l/this.a*this.k0))}else{var h=Math.exp(-l/(this.a*this.k0));o=Proj4js.common.phi2z(this.e,h);if(o==-9999){Proj4js.reportError("merc:inverse: lat = -9999");return null}}m=Proj4js.common.adjust_lon(this.long0+j/(this.a*this.k0));n.x=m;n.y=o;return n}};Proj4js.Proj.utm={dependsOn:"tmerc",init:function(){if(!this.zone){Proj4js.reportError("utm:init: zone must be specified for UTM");return}this.lat0=0;this.long0=((6*Math.abs(this.zone))-183)*Proj4js.common.D2R;this.x0=500000;this.y0=this.utmSouth?10000000:0;this.k0=0.9996;Proj4js.Proj.tmerc.init.apply(this);this.forward=Proj4js.Proj.tmerc.forward;this.inverse=Proj4js.Proj.tmerc.inverse}};Proj4js.Proj.eqdc={init:function(){if(!this.mode){this.mode=0}this.temp=this.b/this.a;this.es=1-Math.pow(this.temp,2);this.e=Math.sqrt(this.es);this.e0=Proj4js.common.e0fn(this.es);this.e1=Proj4js.common.e1fn(this.es);this.e2=Proj4js.common.e2fn(this.es);this.e3=Proj4js.common.e3fn(this.es);this.sinphi=Math.sin(this.lat1);this.cosphi=Math.cos(this.lat1);this.ms1=Proj4js.common.msfnz(this.e,this.sinphi,this.cosphi);this.ml1=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat1);if(this.mode!=0){if(Math.abs(this.lat1+this.lat2)<Proj4js.common.EPSLN){Proj4js.reportError("eqdc:Init:EqualLatitudes")}this.sinphi=Math.sin(this.lat2);this.cosphi=Math.cos(this.lat2);this.ms2=Proj4js.common.msfnz(this.e,this.sinphi,this.cosphi);this.ml2=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat2);if(Math.abs(this.lat1-this.lat2)>=Proj4js.common.EPSLN){this.ns=(this.ms1-this.ms2)/(this.ml2-this.ml1)}else{this.ns=this.sinphi}}else{this.ns=this.sinphi}this.g=this.ml1+this.ms1/this.ns;this.ml0=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0);this.rh=this.a*(this.g-this.ml0)},forward:function(r){var q=r.x;var s=r.y;var n=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,s);var o=this.a*(this.g-n);var l=this.ns*Proj4js.common.adjust_lon(q-this.long0);var m=this.x0+o*Math.sin(l);var p=this.y0+this.rh-o*Math.cos(l);r.x=m;r.y=p;return r},inverse:function(p){p.x-=this.x0;p.y=this.rh-p.y+this.y0;var l,m;if(this.ns>=0){var m=Math.sqrt(p.x*p.x+p.y*p.y);var l=1}else{m=-Math.sqrt(p.x*p.x+p.y*p.y);l=-1}var j=0;if(m!=0){j=Math.atan2(l*p.x,l*p.y)}var n=this.g-m/this.a;var q=this.phi3z(this.ml,this.e0,this.e1,this.e2,this.e3);var o=Proj4js.common.adjust_lon(this.long0+j/this.ns);p.x=o;p.y=q;return p},phi3z:function(n,o,p,q,r){var s;var m;s=n;for(var l=0;l<15;l++){m=(n+p*Math.sin(2*s)-q*Math.sin(4*s)+r*Math.sin(6*s))/o-s;s+=m;if(Math.abs(m)<=1e-10){return s}}Proj4js.reportError("PHI3Z-CONV:Latitude failed to converge after 15 iterations");return null}};Proj4js.Proj.tmerc={init:function(){this.e0=Proj4js.common.e0fn(this.es);this.e1=Proj4js.common.e1fn(this.es);this.e2=Proj4js.common.e2fn(this.es);this.e3=Proj4js.common.e3fn(this.es);this.ml0=this.a*Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0)},forward:function(H){var J=H.x;var n=H.y;var E=Proj4js.common.adjust_lon(J-this.long0);var G;var K,M;var L=Math.sin(n);var t=Math.cos(n);if(this.sphere){var N=t*Math.sin(E);if((Math.abs(Math.abs(N)-1))<1e-10){Proj4js.reportError("tmerc:forward: Point projects into infinity");return(93)}else{K=0.5*this.a*this.k0*Math.log((1+N)/(1-N));G=Math.acos(t*Math.cos(E)/Math.sqrt(1-N*N));if(n<0){G=-G}M=this.a*this.k0*(G-this.lat0)}}else{var B=t*E;var C=Math.pow(B,2);var p=this.ep2*Math.pow(t,2);var b=Math.tan(n);var I=Math.pow(b,2);G=1-this.es*Math.pow(L,2);var F=this.a/Math.sqrt(G);var D=this.a*Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,n);K=this.k0*F*B*(1+C/6*(1-I+p+C/20*(5-18*I+Math.pow(I,2)+72*p-58*this.ep2)))+this.x0;M=this.k0*(D-this.ml0+F*b*(C*(0.5+C/24*(5-I+9*p+4*Math.pow(p,2)+C/30*(61-58*I+Math.pow(I,2)+600*p-330*this.ep2)))))+this.y0}H.x=K;H.y=M;return H},inverse:function(V){var ab,ad;var f;var S;var Y=6;var Z,ac;if(this.sphere){var t=Math.exp(V.x/(this.a*this.k0));var N=0.5*(t-1/t);var n=this.lat0+V.y/(this.a*this.k0);var P=Math.cos(n);ab=Math.sqrt((1-P*P)/(1+N*N));Z=Math.asinz(ab);if(n<0){Z=-Z}if((N==0)&&(P==0)){ac=this.long0}else{ac=Proj4js.common.adjust_lon(Math.atan2(N,P)+this.long0)}}else{var Q=V.x-this.x0;var U=V.y-this.y0;ab=(this.ml0+U/this.k0)/this.a;ad=ab;for(S=0;;S++){f=((ab+this.e1*Math.sin(2*ad)-this.e2*Math.sin(4*ad)+this.e3*Math.sin(6*ad))/this.e0)-ad;ad+=f;if(Math.abs(f)<=Proj4js.common.EPSLN){break}if(S>=Y){Proj4js.reportError("tmerc:inverse: Latitude failed to converge");return(95)}}if(Math.abs(ad)<Proj4js.common.HALF_PI){var ae=Math.sin(ad);var d=Math.cos(ad);var O=Math.tan(ad);var h=this.ep2*Math.pow(d,2);var aa=Math.pow(h,2);var r=Math.pow(O,2);var af=Math.pow(r,2);ab=1-this.es*Math.pow(ae,2);var T=this.a/Math.sqrt(ab);var g=T*(1-this.es)/ab;var p=Q/(T*this.k0);var W=Math.pow(p,2);Z=ad-(T*O*W/g)*(0.5-W/24*(5+3*r+10*h-4*aa-9*this.ep2-W/30*(61+90*r+298*h+45*af-252*this.ep2-3*aa)));ac=Proj4js.common.adjust_lon(this.long0+(p*(1-W/6*(1+2*r+h-W/20*(5-2*h+28*r-3*aa+8*this.ep2+24*af)))/d))}else{Z=Proj4js.common.HALF_PI*Proj4js.common.sign(U);ac=this.long0}}V.x=ac;V.y=Z;return V}};Proj4js.defs.GOOGLE="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";Proj4js.defs["EPSG:900913"]=Proj4js.defs.GOOGLE;Proj4js.Proj.ortho={init:function(b){this.sin_p14=Math.sin(this.lat0);this.cos_p14=Math.cos(this.lat0)},forward:function(w){var B,v;var g;var p;var u;var t;var z=w.x;var s=w.y;g=Proj4js.common.adjust_lon(z-this.long0);B=Math.sin(s);v=Math.cos(s);p=Math.cos(g);t=this.sin_p14*B+this.cos_p14*v*p;u=1;if((t>0)||(Math.abs(t)<=Proj4js.common.EPSLN)){var q=this.a*u*v*Math.sin(g);var r=this.y0+this.a*u*(this.cos_p14*B-this.sin_p14*v*p)}else{Proj4js.reportError("orthoFwdPointError")}w.x=q;w.y=r;return w},inverse:function(t){var o;var p;var r,m;var n;var s;var u,q;t.x-=this.x0;t.y-=this.y0;o=Math.sqrt(t.x*t.x+t.y*t.y);if(o>this.a+1e-7){Proj4js.reportError("orthoInvDataError")}p=Proj4js.common.asinz(o/this.a);r=Math.sin(p);cosi=Math.cos(p);u=this.long0;if(Math.abs(o)<=Proj4js.common.EPSLN){q=this.lat0}q=Proj4js.common.asinz(m*this.sin_p14+(y*r*this.cos_p14)/o);s=Math.abs(lat0)-Proj4js.common.HALF_PI;if(Math.abs(s)<=Proj4js.common.EPSLN){if(this.lat0>=0){u=Proj4js.common.adjust_lon(this.long0+Math.atan2(t.x,-t.y))}else{u=Proj4js.common.adjust_lon(this.long0-Math.atan2(-t.x,t.y))}}s=m-this.sin_p14*Math.sin(q);if((Math.abs(s)>=Proj4js.common.EPSLN)||(Math.abs(x)>=Proj4js.common.EPSLN)){u=Proj4js.common.adjust_lon(this.long0+Math.atan2((t.x*r*this.cos_p14),(s*o)))}t.x=u;t.y=q;return t}};Proj4js.Proj.stere={ssfn_:function(f,g,e){g*=e;return(Math.tan(0.5*(Proj4js.common.HALF_PI+f))*Math.pow((1-g)/(1+g),0.5*e))},TOL:1e-8,NITER:8,CONV:1e-10,S_POLE:0,N_POLE:1,OBLIQ:2,EQUIT:3,init:function(){this.phits=this.lat_ts?this.lat_ts:Proj4js.common.HALF_PI;var e=Math.abs(this.lat0);if((Math.abs(e)-Proj4js.common.HALF_PI)<Proj4js.common.EPSLN){this.mode=this.lat0<0?this.S_POLE:this.N_POLE}else{this.mode=e>Proj4js.common.EPSLN?this.OBLIQ:this.EQUIT}this.phits=Math.abs(this.phits);if(this.es){var d;switch(this.mode){case this.N_POLE:case this.S_POLE:if(Math.abs(this.phits-Proj4js.common.HALF_PI)<Proj4js.common.EPSLN){this.akm1=2*this.k0/Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e))}else{e=Math.sin(this.phits);this.akm1=Math.cos(this.phits)/Proj4js.common.tsfnz(this.e,this.phits,e);e*=this.e;this.akm1/=Math.sqrt(1-e*e)}break;case this.EQUIT:this.akm1=2*this.k0;break;case this.OBLIQ:e=Math.sin(this.lat0);d=2*Math.atan(this.ssfn_(this.lat0,e,this.e))-Proj4js.common.HALF_PI;e*=this.e;this.akm1=2*this.k0*Math.cos(this.lat0)/Math.sqrt(1-e*e);this.sinX1=Math.sin(d);this.cosX1=Math.cos(d);break}}else{switch(this.mode){case this.OBLIQ:this.sinph0=Math.sin(this.lat0);this.cosph0=Math.cos(this.lat0);case this.EQUIT:this.akm1=2*this.k0;break;case this.S_POLE:case this.N_POLE:this.akm1=Math.abs(this.phits-Proj4js.common.HALF_PI)>=Proj4js.common.EPSLN?Math.cos(this.phits)/Math.tan(Proj4js.common.FORTPI-0.5*this.phits):2*this.k0;break}}},forward:function(s){var t=s.x;var p=s.y;var m,o;if(this.sphere){var u,r,n,q;u=Math.sin(p);r=Math.cos(p);n=Math.cos(t);q=Math.sin(t);switch(this.mode){case this.EQUIT:o=1+r*n;if(o<=Proj4js.common.EPSLN){F_ERROR}o=this.akm1/o;m=o*r*q;o*=u;break;case this.OBLIQ:o=1+this.sinph0*u+this.cosph0*r*n;if(o<=Proj4js.common.EPSLN){F_ERROR}o=this.akm1/o;m=o*r*q;o*=this.cosph0*u-this.sinph0*r*n;break;case this.N_POLE:n=-n;p=-p;case this.S_POLE:if(Math.abs(p-Proj4js.common.HALF_PI)<this.TOL){F_ERROR}o=this.akm1*Math.tan(Proj4js.common.FORTPI+0.5*p);m=q*o;o*=n;break}}else{n=Math.cos(t);q=Math.sin(t);u=Math.sin(p);if(this.mode==this.OBLIQ||this.mode==this.EQUIT){X=2*Math.atan(this.ssfn_(p,u,this.e));sinX=Math.sin(X-Proj4js.common.HALF_PI);cosX=Math.cos(X)}switch(this.mode){case this.OBLIQ:A=this.akm1/(this.cosX1*(1+this.sinX1*sinX+this.cosX1*cosX*n));o=A*(this.cosX1*sinX-this.sinX1*cosX*n);m=A*cosX;break;case this.EQUIT:A=2*this.akm1/(1+cosX*n);o=A*sinX;m=A*cosX;break;case this.S_POLE:p=-p;n=-n;u=-u;case this.N_POLE:m=this.akm1*Proj4js.common.tsfnz(this.e,p,u);o=-m*n;break}m=m*q}s.x=m*this.a+this.x0;s.y=o*this.a+this.y0;return s},inverse:function(I){var N=(I.x-this.x0)/this.a;var w=(I.y-this.y0)/this.a;var J,z;var E,K,p=0,H=0,v,F=0,C=0;var D;if(this.sphere){var B,M,G,L;M=Math.sqrt(N*N+w*w);B=2*Math.atan(M/this.akm1);G=Math.sin(B);L=Math.cos(B);J=0;switch(this.mode){case this.EQUIT:if(Math.abs(M)<=Proj4js.common.EPSLN){z=0}else{z=Math.asin(w*G/M)}if(L!=0||N!=0){J=Math.atan2(N*G,L*M)}break;case this.OBLIQ:if(Math.abs(M)<=Proj4js.common.EPSLN){z=this.phi0}else{z=Math.asin(L*sinph0+w*G*cosph0/M)}B=L-sinph0*Math.sin(z);if(B!=0||N!=0){J=Math.atan2(N*G*cosph0,B*M)}break;case this.N_POLE:w=-w;case this.S_POLE:if(Math.abs(M)<=Proj4js.common.EPSLN){z=this.phi0}else{z=Math.asin(this.mode==this.S_POLE?-L:L)}J=(N==0&&w==0)?0:Math.atan2(N,w);break}}else{v=Math.sqrt(N*N+w*w);switch(this.mode){case this.OBLIQ:case this.EQUIT:p=2*Math.atan2(v*this.cosX1,this.akm1);E=Math.cos(p);K=Math.sin(p);if(v==0){H=Math.asin(E*this.sinX1)}else{H=Math.asin(E*this.sinX1+(w*K*this.cosX1/v))}p=Math.tan(0.5*(Proj4js.common.HALF_PI+H));N*=K;w=v*this.cosX1*E-w*this.sinX1*K;C=Proj4js.common.HALF_PI;F=0.5*this.e;break;case this.N_POLE:w=-w;case this.S_POLE:p=-v/this.akm1;H=Proj4js.common.HALF_PI-2*Math.atan(p);C=-Proj4js.common.HALF_PI;F=-0.5*this.e;break}for(D=this.NITER;D--;H=z){K=this.e*Math.sin(H);z=2*Math.atan(p*Math.pow((1+K)/(1-K),F))-C;if(Math.abs(H-z)<this.CONV){if(this.mode==this.S_POLE){z=-z}J=(N==0&&w==0)?0:Math.atan2(N,w);I.x=J;I.y=z;return I}}}}};Proj4js.Proj.mill={init:function(){},forward:function(m){var l=m.x;var g=m.y;dlon=Proj4js.common.adjust_lon(l-this.long0);var h=this.x0+this.R*dlon;var j=this.y0+this.R*Math.log(Math.tan((Proj4js.common.PI/4)+(g/2.5)))*1.25;m.x=h;m.y=j;return m},inverse:function(e){e.x-=this.x0;e.y-=this.y0;var g=Proj4js.common.adjust_lon(this.long0+e.x/this.R);var f=2.5*(Math.atan(Math.exp(e.y/this.R/1.25))-Proj4js.common.PI/4);e.x=g;e.y=f;return e}};Proj4js.Proj.sinu={init:function(){this.R=6370997},forward:function(n){var j,l,h;var m=n.x;var o=n.y;h=Proj4js.common.adjust_lon(m-this.long0);j=this.R*h*Math.cos(o)+this.x0;l=this.R*o+this.y0;n.x=j;n.y=l;return n},inverse:function(j){var f,g,h;j.x-=this.x0;j.y-=this.y0;f=j.y/this.R;if(Math.abs(f)>Proj4js.common.HALF_PI){Proj4js.reportError("sinu:Inv:DataError")}g=Math.abs(f)-Proj4js.common.HALF_PI;if(Math.abs(g)>Proj4js.common.EPSLN){g=this.long0+j.x/(this.R*Math.cos(f));h=Proj4js.common.adjust_lon(g)}else{h=this.long0}j.x=h;j.y=f;return j}};var GEOCENT_LAT_ERROR=1;var COS_67P5=0.3826834323650898;var AD_C=1.0026;function cs_geodetic_to_geocentric(s,D){var p=D.x;var v=D.y;var C=D.z;var B;var E;var F;var t=0;var r;var u;var w;var z;if(v<-HALF_PI&&v>-1.001*HALF_PI){v=-HALF_PI}else{if(v>HALF_PI&&v<1.001*HALF_PI){v=HALF_PI}else{if((v<-HALF_PI)||(v>HALF_PI)){t|=GEOCENT_LAT_ERROR}}}if(!t){if(p>PI){p-=(2*PI)}u=Math.sin(v);z=Math.cos(v);w=u*u;r=s.a/(Math.sqrt(1-s.es*w));B=(r+C)*z*Math.cos(p);E=(r+C)*z*Math.sin(p);F=((r*(1-s.es))+C)*u}D.x=B;D.y=E;D.z=F;return t}function cs_geocentric_to_geodetic(N,D){var V=D.x;var W=D.y;var Z=D.z;var S;var E;var L;var U;var H;var F;var J;var O;var Q;var P;var I;var T;var K;var p;var G;var M;var Y;V=parseFloat(V);W=parseFloat(W);Z=parseFloat(Z);Y=false;if(V!=0){S=Math.atan2(W,V)}else{if(W>0){S=HALF_PI}else{if(W<0){S=-HALF_PI}else{Y=true;S=0;if(Z>0){E=HALF_PI}else{if(Z<0){E=-HALF_PI}else{E=HALF_PI;L=-N.b;return}}}}}H=V*V+W*W;U=Math.sqrt(H);F=Z*AD_C;O=Math.sqrt(F*F+H);P=F/O;T=U/O;I=P*P*P;J=Z+N.b*N.ep2*I;M=U-N.a*N.es*T*T*T;Q=Math.sqrt(J*J+M*M);K=J/Q;p=M/Q;G=N.a/Math.sqrt(1-N.es*K*K);if(p>=COS_67P5){L=U/p-G}else{if(p<=-COS_67P5){L=U/-p-G}else{L=Z/K+G*(N.es-1)}}if(Y==false){E=Math.atan(K/p)}D.x=S;D.y=E;D.z=L;return 0}function cs_geocentric_to_wgs84(t,C){if(t.datum_type==PJD_3PARAM){C.x+=t.datum_params[0];C.y+=t.datum_params[1];C.z+=t.datum_params[2]}else{var v=t.datum_params[0];var z=t.datum_params[1];var r=t.datum_params[2];var w=t.datum_params[3];var q=t.datum_params[4];var s=t.datum_params[5];var u=t.datum_params[6];var B=u*(C.x-s*C.y+q*C.z)+v;var D=u*(s*C.x+C.y-w*C.z)+z;var p=u*(-q*C.x+w*C.y+C.z)+r;C.x=B;C.y=D;C.z=p}}function cs_geocentric_from_wgs84(s,B){if(s.datum_type==PJD_3PARAM){B.x-=s.datum_params[0];B.y-=s.datum_params[1];B.z-=s.datum_params[2]}else{var u=s.datum_params[0];var z=s.datum_params[1];var q=s.datum_params[2];var v=s.datum_params[3];var p=s.datum_params[4];var r=s.datum_params[5];var t=s.datum_params[6];var w=(B.x-u)/t;var C=(B.y-z)/t;var D=(B.z-q)/t;B.x=w+r*C-p*D;B.y=-r*w+C+v*D;B.z=p*w-v*C+D}}Proj4js.Proj.vandg={init:function(){this.R=6370997},forward:function(F){var H=F.x;var g=F.y;var I=Proj4js.common.adjust_lon(H-this.long0);var J,L;if(Math.abs(g)<=Proj4js.common.EPSLN){J=this.x0+this.R*I;L=this.y0}var D=Proj4js.common.asinz(2*Math.abs(g/Proj4js.common.PI));if((Math.abs(I)<=Proj4js.common.EPSLN)||(Math.abs(Math.abs(g)-Proj4js.common.HALF_PI)<=Proj4js.common.EPSLN)){J=this.x0;if(g>=0){L=this.y0+Proj4js.common.PI*this.R*Math.tan(0.5*D)}else{L=this.y0+Proj4js.common.PI*this.R*-Math.tan(0.5*D)}}var p=0.5*Math.abs((Proj4js.common.PI/I)-(I/Proj4js.common.PI));var E=p*p;var m=Math.sin(D);var w=Math.cos(D);var z=w/(m+w-1);var B=z*z;var C=z*(2/m-1);var K=C*C;var G=Proj4js.common.PI*this.R*(p*(z-K)+Math.sqrt(E*(z-K)*(z-K)-(K+E)*(B-K)))/(K+E);if(I<0){G=-G}J=this.x0+G;G=Math.abs(G/(Proj4js.common.PI*this.R));if(g>=0){L=this.y0+Proj4js.common.PI*this.R*Math.sqrt(1-G*G-2*p*G)}else{L=this.y0-Proj4js.common.PI*this.R*Math.sqrt(1-G*G-2*p*G)}F.x=J;F.y=L;return F},inverse:function(E){var I;var H,u,J,z,B,C;var w,D;var F;var d;var G;var p;var v;E.x-=this.x0;E.y-=this.y0;G=Proj4js.common.PI*this.R;H=E.x/G;u=E.y/G;J=H*H+u*u;z=-Math.abs(u)*(1+J);B=z-2*u*u+H*H;C=-2*z+1+2*u*u+J*J;v=u*u/C+(2*B*B*B/C/C/C-9*z*B/C/C)/27;F=(z-B*B/3/C)/C;d=2*Math.sqrt(-F/3);G=((3*v)/F)/d;if(Math.abs(G)>1){if(G>=0){G=1}else{G=-1}}p=Math.acos(G)/3;if(E.y>=0){lat=(-d*Math.cos(p+Proj4js.common.PI/3)-B/3/C)*Proj4js.common.PI}else{lat=-(-d*Math.cos(p+PI/3)-B/3/C)*Proj4js.common.PI}if(Math.abs(H)<Proj4js.common.EPSLN){lon=this.long0}lon=Proj4js.common.adjust_lon(this.long0+Proj4js.common.PI*(J-1+Math.sqrt(1+2*(H*H-u*u)+J*J))/2/H);E.x=lon;E.y=lat;return E}};Proj4js.Proj.gauss={init:function(){sphi=Math.sin(this.lat0);cphi=Math.cos(this.lat0);cphi*=cphi;this.rc=Math.sqrt(1-this.es)/(1-this.es*sphi*sphi);this.C=Math.sqrt(1+this.es*cphi*cphi/(1-this.es));this.phic0=Math.asin(sphi/this.C);this.ratexp=0.5*this.C*this.e;this.K=Math.tan(0.5*this.phic0+Proj4js.common.FORTPI)/(Math.pow(Math.tan(0.5*this.lat0+Proj4js.common.FORTPI),this.C)*Proj4js.common.srat(this.e*sphi,this.ratexp))},forward:function(e){var g=e.x;var f=e.y;e.y=2*Math.atan(this.K*Math.pow(Math.tan(0.5*f+Proj4js.common.FORTPI),this.C)*Proj4js.common.srat(this.e*Math.sin(f),this.ratexp))-Proj4js.common.HALF_PI;e.x=this.C*g;return e},inverse:function(l){var m=1e-14;var j=l.x/this.C;var g=l.y;num=Math.pow(Math.tan(0.5*g+Proj4js.common.FORTPI)/this.K,1/this.C);for(var h=Proj4js.common.MAX_ITER;h>0;--h){g=2*Math.atan(num*Proj4js.common.srat(this.e*Math.sin(l.y),-0.5*this.e))-Proj4js.common.HALF_PI;if(Math.abs(g-l.y)<m){break}l.y=g}if(!h){Proj4js.reportError("gauss:inverse:convergence failed");return null}l.x=j;l.y=g;return l}};Proj4js.Proj.omerc={init:function(){if(!this.mode){this.mode=0}if(!this.lon1){this.lon1=0;this.mode=1}if(!this.lon2){this.lon2=0}if(!this.lat2){this.lat2=0}var f=this.b/this.a;var g=1-Math.pow(f,2);var e=Math.sqrt(g);this.sin_p20=Math.sin(this.lat0);this.cos_p20=Math.cos(this.lat0);this.con=1-this.es*this.sin_p20*this.sin_p20;this.com=Math.sqrt(1-g);this.bl=Math.sqrt(1+this.es*Math.pow(this.cos_p20,4)/(1-g));this.al=this.a*this.bl*this.k0*this.com/this.con;if(Math.abs(this.lat0)<Proj4js.common.EPSLN){this.ts=1;this.d=1;this.el=1}else{this.ts=Proj4js.common.tsfnz(this.e,this.lat0,this.sin_p20);this.con=Math.sqrt(this.con);this.d=this.bl*this.com/(this.cos_p20*this.con);if((this.d*this.d-1)>0){if(this.lat0>=0){this.f=this.d+Math.sqrt(this.d*this.d-1)}else{this.f=this.d-Math.sqrt(this.d*this.d-1)}}else{this.f=this.d}this.el=this.f*Math.pow(this.ts,this.bl)}if(this.mode!=0){this.g=0.5*(this.f-1/this.f);this.gama=Proj4js.common.asinz(Math.sin(this.alpha)/this.d);this.longc=this.longc-Proj4js.common.asinz(this.g*Math.tan(this.gama))/this.bl;this.con=Math.abs(this.lat0);if((this.con>Proj4js.common.EPSLN)&&(Math.abs(this.con-Proj4js.common.HALF_PI)>Proj4js.common.EPSLN)){this.singam=Math.sin(this.gama);this.cosgam=Math.cos(this.gama);this.sinaz=Math.sin(this.alpha);this.cosaz=Math.cos(this.alpha);if(this.lat0>=0){this.u=(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1)/this.cosaz)}else{this.u=-(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1)/this.cosaz)}}else{Proj4js.reportError("omerc:Init:DataError")}}else{this.sinphi=Math.sin(this.at1);this.ts1=Proj4js.common.tsfnz(this.e,this.lat1,this.sinphi);this.sinphi=Math.sin(this.lat2);this.ts2=Proj4js.common.tsfnz(this.e,this.lat2,this.sinphi);this.h=Math.pow(this.ts1,this.bl);this.l=Math.pow(this.ts2,this.bl);this.f=this.el/this.h;this.g=0.5*(this.f-1/this.f);this.j=(this.el*this.el-this.l*this.h)/(this.el*this.el+this.l*this.h);this.p=(this.l-this.h)/(this.l+this.h);this.dlon=this.lon1-this.lon2;if(this.dlon<-Proj4js.common.PI){this.lon2=this.lon2-2*Proj4js.common.PI}if(this.dlon>Proj4js.common.PI){this.lon2=this.lon2+2*Proj4js.common.PI}this.dlon=this.lon1-this.lon2;this.longc=0.5*(this.lon1+this.lon2)-Math.atan(this.j*Math.tan(0.5*this.bl*this.dlon)/this.p)/this.bl;this.dlon=Proj4js.common.adjust_lon(this.lon1-this.longc);this.gama=Math.atan(Math.sin(this.bl*this.dlon)/this.g);this.alpha=Proj4js.common.asinz(this.d*Math.sin(this.gama));if(Math.abs(this.lat1-this.lat2)<=Proj4js.common.EPSLN){Proj4js.reportError("omercInitDataError")}else{this.con=Math.abs(this.lat1)}if((this.con<=Proj4js.common.EPSLN)||(Math.abs(this.con-HALF_PI)<=Proj4js.common.EPSLN)){Proj4js.reportError("omercInitDataError")}else{if(Math.abs(Math.abs(this.lat0)-Proj4js.common.HALF_PI)<=Proj4js.common.EPSLN){Proj4js.reportError("omercInitDataError")}}this.singam=Math.sin(this.gam);this.cosgam=Math.cos(this.gam);this.sinaz=Math.sin(this.alpha);this.cosaz=Math.cos(this.alpha);if(this.lat0>=0){this.u=(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1)/this.cosaz)}else{this.u=-(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1)/this.cosaz)}}},forward:function(P){var T;var Z,n;var p;var s,K,aa;var W,O,L;var b,S,J;var t,M;var q;var ab;var V;var Y=P.x;var U=P.y;Z=Math.sin(U);ab=Proj4js.common.adjust_lon(Y-this.longc);J=Math.sin(this.bl*ab);if(Math.abs(Math.abs(U)-Proj4js.common.HALF_PI)>Proj4js.common.EPSLN){V=Proj4js.common.tsfnz(this.e,U,Z);b=this.el/(Math.pow(V,this.bl));q=0.5*(b-1/b);K=0.5*(b+1/b);t=(q*this.singam-J*this.cosgam)/K;W=Math.cos(this.bl*ab);if(Math.abs(W)<1e-7){S=this.al*this.bl*ab}else{S=this.al*Math.atan((q*this.cosgam+J*this.singam)/W)/this.bl;if(W<0){S=S+Proj4js.common.PI*this.al/this.bl}}}else{if(U>=0){t=this.singam}else{t=-this.singam}S=this.al*U/this.bl}if(Math.abs(Math.abs(t)-1)<=Proj4js.common.EPSLN){Proj4js.reportError("omercFwdInfinity")}M=0.5*this.al*Math.log((1-t)/(1+t))/this.bl;S=S-this.u;var N=this.x0+M*this.cosaz+S*this.sinaz;var Q=this.y0+S*this.cosaz-M*this.sinaz;P.x=N;P.y=Q;return P},inverse:function(t){var n;var U;var Y;var Z,p;var s;var L,Q,aa;var W,q,N;var b,T,K,O,V;var M,S,J;var ab;var P;t.x-=this.x0;t.y-=this.y0;P=0;b=t.x*this.cosaz-t.y*this.sinaz;T=t.y*this.cosaz+t.x*this.sinaz;T=T+this.u;K=Math.exp(-this.bl*b/this.al);O=0.5*(K-1/K);Q=0.5*(K+1/K);M=Math.sin(this.bl*T/this.al);S=(M*this.cosgam+O*this.singam)/Q;if(Math.abs(Math.abs(S)-1)<=Proj4js.common.EPSLN){lon=this.longc;if(S>=0){lat=Proj4js.common.HALF_PI}else{lat=-Proj4js.common.HALF_PI}}else{W=1/this.bl;V=Math.pow((this.el/Math.sqrt((1+S)/(1-S))),W);lat=Proj4js.common.phi2z(this.e,V);U=this.longc-Math.atan2((O*this.cosgam-M*this.singam),W)/this.bl;lon=Proj4js.common.adjust_lon(U)}t.x=lon;t.y=lat;return t}};Proj4js.Proj.lcc={init:function(){if(!this.lat2){this.lat2=this.lat0}if(!this.k0){this.k0=1}if(Math.abs(this.lat1+this.lat2)<Proj4js.common.EPSLN){Proj4js.reportError("lcc:init: Equal Latitudes");return}var n=this.b/this.a;this.e=Math.sqrt(1-n*n);var q=Math.sin(this.lat1);var s=Math.cos(this.lat1);var o=Proj4js.common.msfnz(this.e,q,s);var v=Proj4js.common.tsfnz(this.e,this.lat1,q);var r=Math.sin(this.lat2);var t=Math.cos(this.lat2);var p=Proj4js.common.msfnz(this.e,r,t);var w=Proj4js.common.tsfnz(this.e,this.lat2,r);var u=Proj4js.common.tsfnz(this.e,this.lat0,Math.sin(this.lat0));if(Math.abs(this.lat1-this.lat2)>Proj4js.common.EPSLN){this.ns=Math.log(o/p)/Math.log(v/w)}else{this.ns=q}this.f0=o/(this.ns*Math.pow(v,this.ns));this.rh=this.a*this.f0*Math.pow(u,this.ns);if(!this.title){this.title="Lambert Conformal Conic"}},forward:function(m){var l=m.x;var n=m.y;if(n<=90&&n>=-90&&l<=180&&l>=-180){}else{Proj4js.reportError("lcc:forward: llInputOutOfRange: "+l+" : "+n);return null}var j=Math.abs(Math.abs(n)-Proj4js.common.HALF_PI);var o;if(j>Proj4js.common.EPSLN){o=Proj4js.common.tsfnz(this.e,n,Math.sin(n));rh1=this.a*this.f0*Math.pow(o,this.ns)}else{j=n*this.ns;if(j<=0){Proj4js.reportError("lcc:forward: No Projection");return null}rh1=0}var h=this.ns*Proj4js.common.adjust_lon(l-this.long0);m.x=this.k0*(rh1*Math.sin(h))+this.x0;m.y=this.k0*(this.rh-rh1*Math.cos(h))+this.y0;return m},inverse:function(o){var m,l,q;var p,n;x=(o.x-this.x0)/this.k0;y=(this.rh-(o.y-this.y0)/this.k0);if(this.ns>0){m=Math.sqrt(x*x+y*y);l=1}else{m=-Math.sqrt(x*x+y*y);l=-1}var j=0;if(m!=0){j=Math.atan2((l*x),(l*y))}if((m!=0)||(this.ns>0)){l=1/this.ns;q=Math.pow((m/(this.a*this.f0)),l);p=Proj4js.common.phi2z(this.e,q);if(p==-9999){return null}}else{p=-Proj4js.common.HALF_PI}n=Proj4js.common.adjust_lon(j/this.ns+this.long0);o.x=n;o.y=p;return o}};Proj4js.Proj.laea={init:function(){this.sin_lat_o=Math.sin(this.lat0);this.cos_lat_o=Math.cos(this.lat0)},forward:function(C){var D=C.x;var t=C.y;var w=Proj4js.common.adjust_lon(D-this.long0);var g=Math.sin(t);var s=Math.cos(t);var B=Math.sin(w);var z=Math.cos(w);var u=this.sin_lat_o*g+this.cos_lat_o*s*z;if(u==-1){Proj4js.reportError("laea:fwd:Point projects to a circle of radius "+2*R);return null}var v=this.a*Math.sqrt(2/(1+u));var p=v*s*B+this.x0;var r=v*(this.cos_lat_o*g-this.sin_lat_o*s*z)+this.x0;C.x=p;C.y=r;return C},inverse:function(p){p.x-=this.x0;p.y-=this.y0;var r=Math.sqrt(p.x*p.x+p.y*p.y);var s=r/(2*this.a);if(s>1){Proj4js.reportError("laea:Inv:DataError");return null}var n=2*Proj4js.common.asinz(s);var l=Math.sin(n);var m=Math.cos(n);var o=this.long0;if(Math.abs(r)>Proj4js.common.EPSLN){var q=Proj4js.common.asinz(this.sin_lat_o*m+this.cos_lat_o*l*p.y/r);var s=Math.abs(this.lat0)-Proj4js.common.HALF_PI;if(Math.abs(s)>Proj4js.common.EPSLN){s=m-this.sin_lat_o*Math.sin(q);if(s!=0){o=Proj4js.common.adjust_lon(this.long0+Math.atan2(p.x*l*this.cos_lat_o,s*r))}}else{if(this.lat0<0){o=Proj4js.common.adjust_lon(this.long0-Math.atan2(-p.x,p.y))}else{o=Proj4js.common.adjust_lon(this.long0+Math.atan2(p.x,-p.y))}}}else{q=this.lat0}p.x=o;p.y=q;return p}};Proj4js.Proj.aeqd={init:function(){this.sin_p12=Math.sin(this.lat0);this.cos_p12=Math.cos(this.lat0)},forward:function(u){var v=u.x;var p=u.y;var s;var w=Math.sin(u.y);var t=Math.cos(u.y);var g=Proj4js.common.adjust_lon(v-this.long0);var o=Math.cos(g);var r=this.sin_p12*w+this.cos_p12*t*o;if(Math.abs(Math.abs(r)-1)<Proj4js.common.EPSLN){s=1;if(r<0){Proj4js.reportError("aeqd:Fwd:PointError");return}}else{var q=Math.acos(r);s=q/Math.sin(q)}u.x=this.x0+this.a*s*t*Math.sin(g);u.y=this.y0+this.a*s*(this.cos_p12*w-this.sin_p12*t*o);return u},inverse:function(t){t.x-=this.x0;t.y-=this.y0;var o=Math.sqrt(t.x*t.x+t.y*t.y);if(o>(2*Proj4js.common.HALF_PI*this.a)){Proj4js.reportError("aeqdInvDataError");return}var q=o/this.a;var r=Math.sin(q);var m=Math.cos(q);var u=this.long0;var p;if(Math.abs(o)<=Proj4js.common.EPSLN){p=this.lat0}else{p=Proj4js.common.asinz(m*this.sin_p12+(t.y*r*this.cos_p12)/o);var s=Math.abs(this.lat0)-Proj4js.common.HALF_PI;if(Math.abs(s)<=Proj4js.common.EPSLN){if(lat0>=0){u=Proj4js.common.adjust_lon(this.long0+Math.atan2(t.x,-t.y))}else{u=Proj4js.common.adjust_lon(this.long0-Math.atan2(-t.x,t.y))}}else{s=m-this.sin_p12*Math.sin(p);if((Math.abs(s)<Proj4js.common.EPSLN)&&(Math.abs(t.x)<Proj4js.common.EPSLN)){}else{var n=Math.atan2((t.x*r*this.cos_p12),(s*o));u=Proj4js.common.adjust_lon(this.long0+Math.atan2((t.x*r*this.cos_p12),(s*o)))}}}t.x=u;t.y=p;return t}};Proj4js.Proj.moll={init:function(){},forward:function(u){var w=u.x;var p=u.y;var r=Proj4js.common.adjust_lon(w-this.long0);var s=p;var t=Proj4js.common.PI*Math.sin(p);for(var q=0;;q++){var v=-(s+Math.sin(s)-t)/(1+Math.cos(s));s+=v;if(Math.abs(v)<Proj4js.common.EPSLN){break}if(q>=50){Proj4js.reportError("moll:Fwd:IterationError")}}s/=2;if(Proj4js.common.PI/2-Math.abs(p)<Proj4js.common.EPSLN){r=0}var n=0.900316316158*this.R*r*Math.cos(s)+this.x0;var o=1.4142135623731*this.R*Math.sin(s)+this.y0;u.x=n;u.y=o;return u},inverse:function(l){var g;var h;l.x-=this.x0;var h=l.y/(1.4142135623731*this.R);if(Math.abs(h)>0.999999999999){h=0.999999999999}var g=Math.asin(h);var j=Proj4js.common.adjust_lon(this.long0+(l.x/(0.900316316158*this.R*Math.cos(g))));if(j<(-Proj4js.common.PI)){j=-Proj4js.common.PI}if(j>Proj4js.common.PI){j=Proj4js.common.PI}h=(2*g+Math.sin(2*g))/Proj4js.common.PI;if(Math.abs(h)>1){h=1}var m=Math.asin(h);l.x=j;l.y=m;return l}};function Proj4gjsf(){};
strap("com.geosition.coordinate.CoordinateSystem");strap("com.geosition.coordinate.Coordinate");strap("com.geosition.coordinate.proj4.Proj4gjsf");declareClass("Proj4CoordinateSystem","CoordinateSystem");Proj4CoordinateSystem.SYSTEM_INTERNAL_MULTIPLICATOR=10;Proj4CoordinateSystem.SYSTEM_DEF=[null,"+lon_0=15.808277777799999 +lat_0=0.0 +k=1.0 +x_0=1500000.0 +y_0=0.0 +proj=tmerc +ellps=bessel +units=m +towgs84=414.1,41.3,603.1,-0.855,2.141,-7.023,0 +no_defs","+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs","+lon_0=10.0 +lat_0=30.0 +lat_1=43.0 +x_0=2000000.0 +y_0=0.0 +lat_2=62.0 +proj=lcc +ellps=WGS84 +datum=WGS84 +units=m +no_defs","+lon_0=-100.0 +lat_0=0.0 +lat_1=20.0 +k_0=1.0 +x_0=5000000.0 +y_0=0.0 +lat_2=30.0 +proj=lcc +ellps=WGS84 +datum=WGS84 +units=m +no_defs"];Proj4CoordinateSystem.projHash={};staticConstructor(Proj4CoordinateSystem,function(){new Proj4CoordinateSystem(CoordinateSystem.SYSTEM_RT90,CoordinateSystem.SYSTEM_NAME[CoordinateSystem.SYSTEM_RT90],Proj4CoordinateSystem.SYSTEM_DEF[CoordinateSystem.SYSTEM_RT90]);new Proj4CoordinateSystem(CoordinateSystem.SYSTEM_WGS84,CoordinateSystem.SYSTEM_NAME[CoordinateSystem.SYSTEM_WGS84]);new Proj4CoordinateSystem(CoordinateSystem.SYSTEM_LAMBERT,CoordinateSystem.SYSTEM_NAME[CoordinateSystem.SYSTEM_LAMBERT],Proj4CoordinateSystem.SYSTEM_DEF[CoordinateSystem.SYSTEM_LAMBERT]);new Proj4CoordinateSystem(CoordinateSystem.SYSTEM_LAMBERT_MEXICO,CoordinateSystem.SYSTEM_NAME[CoordinateSystem.SYSTEM_LAMBERT_MEXICO],Proj4CoordinateSystem.SYSTEM_DEF[CoordinateSystem.SYSTEM_LAMBERT_MEXICO])});Proj4CoordinateSystem.createProj=function(e,f,d){f=f.toUpperCase();if(!Proj4CoordinateSystem.projHash[e]){if(d){Proj4js.defs[f]=d}else{if(!Proj4js.defs[f]){throw new Exception("Proj4 coordinate system '"+f+"' not pre-defined you need to submit a proj4 definition.")}}Proj4CoordinateSystem.projHash[e]=new Proj4js.Proj(f)}else{throw new Exception("Proj4 coordinate system with id '"+e+"' is already defined.")}return Proj4CoordinateSystem.projHash[e]};Proj4CoordinateSystem.getProj=function(b){return Proj4CoordinateSystem.projHash[b]};function Proj4CoordinateSystem(e,f,d){this.myProj=Proj4CoordinateSystem.getProj(e);if(!this.myProj){this.myProj=Proj4CoordinateSystem.createProj(e,f,d)}this.construct(e,this.myProj.srsCode)}Proj4CoordinateSystem.prototype.myProj=null;Proj4CoordinateSystem.prototype.getProj=function(){return this.myProj};Proj4CoordinateSystem.prototype.transform=function(g){var f=g.getSystem();var c=Proj4CoordinateSystem.getProj(f.getId());var h=new Proj4js.Point(g.y,g.x);Proj4js.transform(c,this.getProj(),h);return new Coordinate(h.y,h.x,this.getId())};Proj4CoordinateSystem.prototype.fromInternal=function(d,c){return new Point(c/Proj4CoordinateSystem.SYSTEM_INTERNAL_MULTIPLICATOR,d/Proj4CoordinateSystem.SYSTEM_INTERNAL_MULTIPLICATOR)};Proj4CoordinateSystem.prototype.toInternal=function(d,c){return new Point(Math.round(c*Proj4CoordinateSystem.SYSTEM_INTERNAL_MULTIPLICATOR),Math.round(d*Proj4CoordinateSystem.SYSTEM_INTERNAL_MULTIPLICATOR))};
strap("com.geosition.map.item.AbstractItem");strap("com.geosition.util.gui.tooltip.TemplateTooltip");strap("com.geosition.util.BoundingBox");strap("com.geosition.util.BoundingBoxFloat");strap("com.geosition.util.Dimension");strap("com.geosition.coordinate.Coordinate");strap("com.geosition.graphics.Graphics");declareClass("ItemLine","AbstractItem");ItemLine.prototype.myElement=null;ItemLine.prototype.myCoordinates=null;ItemLine.prototype.myGraphics=null;ItemLine.prototype.myBoundingBox=null;ItemLine.prototype.myLastMap=null;ItemLine.prototype.myDefaultColor="#000000";function ItemLine(c){var d=this;this.myBoundingBox=new BoundingBox(0,0,0,0);this.myGraphics=Graphics.create();this.myElement=this.myGraphics.getElement();if(!isClassLoaded("GraphicsSVG")||Graphics.getSupportedClass()!=GraphicsSVG){this.myElement.style.cursor="pointer";fuse(this.myElement,"onclick",this,function(a){this.onclick(a)});fuse(this.myElement,"ondblclick",this,function(a){this.ondblclick(a)})}this.myElement.ontooltip=function(a){return d.getStack(a)};this.setZIndex(-1);this.setColor(this.myDefaultColor);this.setCoordinates(c)}ItemLine.prototype.setCoordinates=function(b){this.myCoordinates=b?b.concat():new Array();this.render()};ItemLine.prototype.setInternalCoordinates=function(h,e){this.myCoordinates=new Array();if(h){for(var f=0;f<h.length;f++){var g=h[f];this.addInternalPoint(g.x,g.y,e)}}};ItemLine.prototype.getColor=function(){return this.myGraphics.getColor()};ItemLine.prototype.getCoordinate=function(){var b=BoundingBoxFloat.getPointBoundingBox(this.myCoordinates).getCenter();return Coordinate.create(b.x,b.y,this.myCoordinates[0].getSystemId())};ItemLine.prototype.getCoordinates=function(){return this.myCoordinates};ItemLine.prototype.correctToMap=function(b){this.render(b)};ItemLine.prototype.addPoint=function(b){this.myCoordinates.push(b)};ItemLine.prototype.addInternalPoint=function(e,f,d){this.myCoordinates.push(Coordinate.create(e,f,d,true))};ItemLine.prototype.render=function(v){if(v){this.myLastMap=v}if(this.myLastMap){var o=this.getNumberOfPoints();var u=new Array(o);var i=new Array(o);var n=this.myLastMap.getMapCoordinateSystem();for(var q=0;q<o;q++){if(this.myCoordinates[q].getSystemId()!=n){this.myCoordinates[q]=this.myCoordinates[q].to(n)}var m=this.myCoordinates[q].getInternal();var t=this.myLastMap.internalCoordToPos(m.x,m.y);u[q]=t.x;i[q]=t.y}this.myBoundingBox=BoundingBox.getBoundingBox(u,i,o);var r=parseInt(this.myGraphics.getStrokeWidth());var p=this.myBoundingBox.x-r/2;var s=this.myBoundingBox.y-r/2;this.myGraphics.setDimensions(this.myBoundingBox.width+r,this.myBoundingBox.height+r);this.myGraphics.setPosition(p,s);for(var q=0;q<o;q++){u[q]-=p;i[q]-=s}this.myGraphics.clear();this.draw(u,i,o);this.setTitle(this.myTitle)}};ItemLine.prototype.draw=function(f,h,g){this.myGraphics.drawPolyline(f,h,g);if(isClassLoaded("GraphicsSVG")&&Graphics.getSupportedClass()==GraphicsSVG){var e=this;this.myElement.firstChild.style.cursor="pointer";fuse(this.myElement.firstChild,"onclick",this,function(a){this.onclick(a)});fuse(this.myElement.firstChild,"ondblclick",this,function(a){this.ondblclick(a)});this.myElement.firstChild.ontooltip=function(a){return e.getStack(a)}}};ItemLine.prototype.setTitle=function(c){this.myTitle=c;var d=this.myGraphics.getShapeElements()[0];if(this.myTitle&&d){TemplateTooltip.register(d,this.myTitle)}};ItemLine.prototype.getNumberOfPoints=function(){return this.myCoordinates.length};ItemLine.prototype.getBoundingBox=function(){return this.myBoundingBox};ItemLine.prototype.getDimension=function(){return new Dimension(this.myBoundingBox.width,this.myBoundingBox.height)};ItemLine.prototype.setColor=function(b){this.myGraphics.setColor(b)};ItemLine.prototype.setWidth=function(b){this.myGraphics.setStrokeWidth(b)};ItemLine.prototype.setOpacity=function(a){if(a>=0){this.myGraphics.setStrokeOpacity(a)}};ItemLine.prototype.toXml=function(j,h){var g='<routeitem id="'+h+'"><name /><route color="'+(this.myGraphics.myColor||"#000000")+'" width="'+(this.myGraphics.myStrokeWidth||3)+'" opacity="'+(this.myGraphics.myStrokeOpacity==null?1:this.myGraphics.myStrokeOpacity)+'">';for(var f=0;f<this.myCoordinates.length;f++){var i=this.myCoordinates[f].to(j);g+='<vertex ordinal="'+f+'" x="'+Math.round(i.x)+'" y="'+Math.round(i.y)+'" />'}return g+"</route></routeitem>"};ItemLine.prototype.onclick=function(b){};
strap("com.geosition.map.item.ItemLine");declareClass("ItemArea","ItemLine");ItemArea.prototype.myDefaultColor=false;ItemArea.prototype.draw=function(f,h,g){var e=this;this.myGraphics.drawPolygon(f,h,g);if(isClassLoaded("GraphicsSVG")&&Graphics.getSupportedClass()==GraphicsSVG){this.myElement.firstChild.style.cursor="pointer";fuse(this.myElement.firstChild,"onclick",this,function(a){this.onclick(a)});fuse(this.myElement.firstChild,"ondblclick",this,function(a){this.ondblclick(a)});this.myElement.firstChild.ontooltip=function(a){return e.getStack(a)}}};ItemArea.prototype.setFillColor=function(b){this.myGraphics.setFillColor(b)};ItemArea.prototype.setOpacity=function(a){if(a>=0){this.myGraphics.setFillOpacity(a)}};ItemArea.prototype.toXml=function(j,h){var g='<areaitem id="'+h+'"><name /><area color="'+(this.myGraphics.myFillColor||"#000000")+'" opacity="'+(this.myGraphics.myFillOpacity==null?1:this.myGraphics.myFillOpacity)+'">';for(var f=0;f<this.myCoordinates.length;f++){var i=this.myCoordinates[f].to(j);g+='<vertex ordinal="'+f+'" x="'+Math.round(i.x)+'" y="'+Math.round(i.y)+'" />'}return g+"</area></areaitem>"};function ItemArea(){this.construct.apply(this,arguments)};
strap("com.geosition.map.item.AbstractItem");strap("com.geosition.map.item.ItemPointImage");strap("com.geosition.map.item.ItemPointDefault");strap("com.geosition.map.item.ItemLine");strap("com.geosition.map.item.ItemArea");declareStaticClass("ItemServer");ItemServer.PROPERTY_TYPE_NAME="100";ItemServer.PROPERTY_TYPE_CONTENT="content";ItemServer.PROPERTY_TYPE_SCALE="103";ItemServer.PROPERTY_JS_LISTENER="104";ItemServer.PROPERTY_TYPE_OPACITY="105";ItemServer.PROPERTY_TYPE_COORDINATES="1000";ItemServer.PROPERTY_TYPE_ICON="1001";ItemServer.PROPERTY_TYPE_VERTICES="1100";ItemServer.PROPERTY_TYPE_COLOR="1101";ItemServer.PROPERTY_TYPE_WIDTH="1102";ItemServer.ITEM_TYPE_POINT=1;ItemServer.ITEM_TYPE_LINE=2;ItemServer.ITEM_TYPE_AREA=3;ItemServer.create=function(itemType,itemId,coordinateSystem,itemProperties){var title=itemProperties[ItemServer.PROPERTY_TYPE_NAME];var content=itemProperties[ItemServer.PROPERTY_TYPE_CONTENT];var jslistener=itemProperties[ItemServer.PROPERTY_JS_LISTENER];switch(itemType){case ItemServer.ITEM_TYPE_POINT:var icoord=itemProperties[ItemServer.PROPERTY_TYPE_COORDINATES];var coord=Coordinate.create(icoord.x,icoord.y,coordinateSystem,true);var icon=itemProperties[ItemServer.PROPERTY_TYPE_ICON];if(icon){var item=new ItemPointImage(coord,icon)}else{var item=new ItemPointDefault(coord)}break;case ItemServer.ITEM_TYPE_LINE:var vertices=itemProperties[ItemServer.PROPERTY_TYPE_VERTICES];var item=new ItemLine();item.setInternalCoordinates(vertices,coordinateSystem);item.setColor(itemProperties[ItemServer.PROPERTY_TYPE_COLOR]);item.setWidth(itemProperties[ItemServer.PROPERTY_TYPE_WIDTH]);item.setOpacity(itemProperties[ItemServer.PROPERTY_TYPE_OPACITY]);break;case ItemServer.ITEM_TYPE_AREA:var vertices=itemProperties[ItemServer.PROPERTY_TYPE_VERTICES];var item=new ItemArea();item.setInternalCoordinates(vertices,coordinateSystem);item.setFillColor(itemProperties[ItemServer.PROPERTY_TYPE_COLOR]);item.setOpacity(itemProperties[ItemServer.PROPERTY_TYPE_OPACITY]);break;default:var item=new AbstractItem()}item.setTitle(title);item.setContent(content);item.setId(itemId);if(jslistener){item.onclick=function(e){eval(jslistener)}}return item};function ItemServer(){};
strap("com.geosition.util.Point");strap("com.geosition.util.LoadPool");strap("com.geosition.map.item.ItemCanvas");strap("com.geosition.map.item.server.ItemServer");declareClass("ItemCanvasIndexed",ItemCanvas);ItemCanvasIndexed.prototype.mySession=null;ItemCanvasIndexed.prototype.myParameterSet=null;ItemCanvasIndexed.prototype.myIndex=null;ItemCanvasIndexed.prototype.myRequestDistance=null;ItemCanvasIndexed.prototype.myDoRequestTimeout=null;ItemCanvasIndexed.prototype.myIsUpdated=true;ItemCanvasIndexed.prototype.myLoadPool=null;ItemCanvasIndexed.prototype.myItemsLoading=false;ItemCanvasIndexed.prototype.myItemsToRequestQue=new Array();ItemCanvasIndexed.prototype.myIndexRequestInterval=null;function ItemCanvasIndexed(b){this.construct(b);this.myIndex={};this.myRequestDistance=new Point(0,0);this.mySession=this.myMap.getSession();this.myParameterSet=this.myMap.getParameterSet();this.myLoadPool=new LoadPool();fuse(b,"onviewportout",this,this.setIndexRequestTimeout)}ItemCanvasIndexed.prototype.setIndex=function(b){this.myIndex=b;this.correctAll()};ItemCanvasIndexed.prototype.getIndex=function(b){return this.myIndex[b]};ItemCanvasIndexed.prototype.getLoadPool=function(){return this.myLoadPool};ItemCanvasIndexed.prototype.refresh=function(){this.setIndexRequestTimeout();this.myIsUpdated=false};ItemCanvasIndexed.prototype.correctAll=function(){if(this.myIsUpdated){for(var b in this.myCache){if(this.myIndex[b]){this.myCache[b].show()}else{this.myCache[b].hide()}}}else{for(var b in this.myCache){this.myCache[b].correctToMap(this.myMap);if(this.myIndex[b]){this.myCache[b].show()}else{this.myCache[b].hide()}}this.myIsUpdated=true}this.onrefresh()};ItemCanvasIndexed.prototype.nudge=function(){this.positionAdjust();if(!this.myIsUpdated){this.doIndexRequest()}};ItemCanvasIndexed.prototype.setIndexRequestTimeout=function(){if(this.myIsUpdated){var b=this;clearTimeout(this.myDoRequestTimeout);this.myDoRequestTimeout=setTimeout(function(){b.doIndexRequest()},300)}};ItemCanvasIndexed.prototype.getIndexRequestData=function(){var f=this.myMap.getDimensions();var g=this.myMap.pixelToInternalCoord(-f.width,f.height*2);var h=this.myMap.pixelToInternalCoord(f.width*2,-f.height);var e=StdTools.toHex(1,2)+StdTools.toHex(1,2)+StdTools.toHex(g.x,8)+StdTools.toHex(g.y,8)+StdTools.toHex(h.x,8)+StdTools.toHex(h.y,8);return e};ItemCanvasIndexed.prototype.getItemRequestData=function(f){var g=StdTools.toHex(0,2)+StdTools.toHex(1,2)+StdTools.toHex(f.length,4);for(var h=0;h<f.length;h++){var e=f[h].split("-");g+=this.getItemRequest(e[0],e[1])}return g};ItemCanvasIndexed.prototype.getItemRequest=function(d,c){return StdTools.toHex(d,8)+StdTools.toHex(c,8)+"FFFF"};ItemCanvasIndexed.prototype.doIndexRequest=function(){clearTimeout(this.myDoRequestTimeout);var b=Config.getServerBaseUrl()+"item?client=js&data="+this.getIndexRequestData()+"&state="+this.myMap.getState();this.mySession.requestUrl(b,this,this.itemIndexResponse);this.myRequestDistance.set(0,0)};ItemCanvasIndexed.prototype.doItemRequestNextInQue=function(){if(this.myItemsToRequestQue.length>0){this.myLoadPool.loading();var c=this.getItemRequestData(this.myItemsToRequestQue.splice(0,60));var d=Config.getServerBaseUrl()+"item?client=js&data="+c+"&state="+this.myMap.getState();this.mySession.requestUrl(d,this,this.itemResponse);return false}return true};ItemCanvasIndexed.prototype.doItemRequest=function(e){if(e.length>0){var f=this.getItemRequestData(e);var d=Config.getServerBaseUrl()+"item?client=js&data="+f+"&state="+this.myMap.getState();this.mySession.requestUrl(d,this,this.itemResponse)}};ItemCanvasIndexed.prototype.setItemOverview=function(c){var d=Config.getServerBaseUrl()+"itemoverview?js=true"+(c?"&"+c:"");this.mySession.requestUrl(d,this,this.itemOverviewResponse)};ItemCanvasIndexed.prototype.setState=function(b){this.mySession.send(Config.getServerBaseUrl()+"session?"+b);this.setIndexRequestInterval()};ItemCanvasIndexed.prototype.setIndexRequestInterval=function(){var f=this;var h=function(){f.doIndexRequest()};var i=new String(this.myParameterSet.get("index_request_interval")).split(":");for(var j=0;j<i.length;j++){var g=parseInt(i[j])*1000;if(j==i.length-1){clearInterval(this.myIndexRequestInterval);this.myIndexRequestInterval=setInterval(h,g)}else{setTimeout(h,g)}}this.doIndexRequest()};ItemCanvasIndexed.prototype.itemIndexResponse=function(c){for(var d in c){if(!this.getCached(d)&&!this.getIndex(d)){this.myItemsToRequestQue.push(d)}}this.doItemRequestNextInQue();this.setIndex(c)};ItemCanvasIndexed.prototype.itemResponse=function(b){if(b=="endofitemresponse"){this.endOfItemResponse()}else{if(b){this.add(ItemServer.create(b.type,b.id,this.myMap.getMapCoordinateSystem(),b.data),b.id)}}};ItemCanvasIndexed.prototype.endOfItemResponse=function(){if(this.doItemRequestNextInQue()){this.myLoadPool.done();this.onload()}};ItemCanvasIndexed.prototype.itemOverviewResponse=function(d){var g=d[2]-d[0];var h=d[3]-d[1];var i=this.myMap.getDimensions();var j=Math.max(h/i.height,g/i.width);this.myMap.setScale(j);this.myMap.centerMapToInternalCoord(d[4],d[5])};ItemCanvasIndexed.prototype.onload=function(){};
declareClass("Settings");Settings.prototype.mySettings=null;function Settings(b){this.mySettings=b||{}}Settings.prototype.update=function(c){for(var d in c){this.mySettings[d]=c[d]}};Settings.prototype.set=function(d,c){this.mySettings[d]=c};Settings.prototype.get=function(b){return this.mySettings[b]};Settings.prototype.getInt=function(b){return parseInt(this.mySettings[b])};Settings.prototype.getFloat=function(b){return parseFloat(this.mySettings[b])};Settings.prototype.getBool=function(b){return(this.mySettings[b]=="true"?true:false)};
strap("com.geosition.map.util.Settings");declareStaticClass("Config");Config.myHost="/";Config.myCustomerId="";Config.myDefaultSession=null;Config.myParameterSet=null;Config.myMapSets=null;Config.myParameterSetIdToMapSetId=null;Config.myAvailibleServers={};Config.setDefaultSession=function(b){Config.myDefaultSession=b};Config.getDefaultSession=function(){return Config.myDefaultSession};Config.setMapSets=function(b){this.myMapSets=b[0];this.myParameterSetIdToMapSetId=b[1]};Config.setDefaultParameterSet=function(b){Config.myParameterSet=b};Config.getDefaultParameterSet=function(){return Config.myParameterSet};Config.getMapSet=function(d){var c=this.myParameterSetIdToMapSetId[d];return new Settings(this.myMapSets[c])};Config.setHost=function(b){Config.myHost=new String(b).replace(/\/*$/,"/").replace(/^(?:http(s)?:\/\/)*/,"http$1://")};Config.getHostUrl=function(){return Config.myHost};Config.getServerBaseUrl=function(){return Config.myHost+Config.myCustomerId+"/"};Config.setCustomerId=function(b){Config.myCustomerId=b};Config.getCustomerId=function(){return Config.myCustomerId};Config.setAvailibleServers=function(e){for(var d=0;d<e.length;d++){var f=e[d];Config.myAvailibleServers.push(f)}};function Config(){};
declareStaticClass("Web2Connection");Web2Connection.myScripts={};Web2Connection.myEventCounter=0;Web2Connection.myResponseCharset=null;Web2Connection.myResponseCompress=null;Web2Connection.myRequestTimeout=60000;Web2Connection.myHeadElement=null;Web2Connection.mySpawnElement=null;Web2Connection.CALLBACK_METHOD="Web2Connection.getEvent";Web2Connection.myNoCacheCounter=Math.random();function Web2Connection(){Web2Connection.myResponseCharset=getDefaultCharset();Web2Connection.myResponseCompress=(window==top);Web2Connection.myHeadElement=document.getElementsByTagName("head")[0];Web2Connection.mySpawnElement=document.createElement("div")}Web2Connection.getEvent=function(c){var d=Web2Connection.myScripts[c];if(d){d.__web2connection_is_ok__=true;return d.__web2connection_event__}return function(){}};Web2Connection.getErrorEvent=function(c){var d=Web2Connection.myScripts[c];if(d){d.__web2connection_is_ok__=false;return function(a){d.onerror(a)}}return Web2Connection.onerror};Web2Connection.cancelEvent=function(c){var d=Web2Connection.myScripts[c];if(d){Web2Connection.closeScript(d)}};Web2Connection.openScript=function(o,n,m,l,q,j,p){var r=Web2Connection.myEventCounter++;o+=(o.indexOf("?")==-1?"?eventid=":"&eventid=")+r+"&charset="+Web2Connection.myResponseCharset+(Web2Connection.myResponseCompress?"&compress=1":"")+(!q?"&nocache="+Web2Connection.noCache():"")+(j&&p?"&"+j+"="+Web2Connection.CALLBACK_METHOD+"("+r+")(&"+p+"=);":"");var k=document.createElement("script");Web2Connection.myScripts[r]=k;k.__web2connection_event_id__=r;k.__web2connection_event__=function(){m.apply(n,arguments)};if(typeof(l)=="function"){k.__web2connection_error__=function(){l.apply(n,arguments)}}else{var l=k.__web2connection_error__=Web2Connection.onerror}if(!k.readyState){k.onload=Web2Connection.scriptOnload}k.onerror=Web2Connection.scriptOnerror;k.type="text/javascript";k.src=o;k.__web2connection_timeout__=setTimeout(function(){k.onerror("connection timedout when requesting '"+k.src+"'")},Web2Connection.myRequestTimeout);Web2Connection.myHeadElement.appendChild(k);return r};Web2Connection.closeScript=function(d){clearTimeout(d.__web2connection_timeout__);d.onload=null;d.onerror=null;d.__web2connection_timeout__=null;d.__web2connection_event__=null;d.__web2connection_error__=null;try{Web2Connection.myHeadElement.removeChild(d)}catch(c){}delete (Web2Connection.myScripts[d.__web2connection_event_id__])};Web2Connection.request=function(f,d){f+=(!d?f.indexOf("?")==-1?"?nocache="+Web2Connection.noCache():"&nocache="+Web2Connection.noCache():"");var e=document.createElement("img");Web2Connection.mySpawnElement.appendChild(e);e.src=f};Web2Connection.setRequestTimeout=function(b){if(b){Web2Connection.myRequestTimeout=b}};Web2Connection.setResponseCharset=function(b){if(b){Web2Connection.myResponseCharset=b}else{Web2Connection.myResponseCharset=getDefaultCharset()}};Web2Connection.setResponseCompress=function(b){Web2Connection.myResponseCompress=(b?true:false)};Web2Connection.scriptOnerror=function(c){var d=this.__web2connection_error__;Web2Connection.closeScript(this);if(!this.__web2connection_is_ok__){d(c)}};Web2Connection.scriptOnload=function(){Web2Connection.closeScript(this)};Web2Connection.noCache=function(){return Web2Connection.myNoCacheCounter+=1};Web2Connection.onerror=function(b){};
strap("com.geosition.net.Web2Connection");declareClass("Session");Session.prototype.myId=null;Session.myInitiatedSessions={};Session.get=function(c){var d=Session.myInitiatedSessions[c];if(!c||!d){d=new Session(c)}return d};function Session(b){if(Session.myInitiatedSessions[b]){throw new Exception("Can only create two instances of a Session with the same session id")}this.myId=b||Session.generateSessionId();Session.myInitiatedSessions[this.myId]=this}Session.prototype.getId=function(){return this.myId};Session.prototype.request=function(j,h,g,i,f){j+=(j.indexOf("?")==-1?"?session=":"&session=")+this.myId+"&"+h.toQueryString();return Web2Connection.openScript(j,g,i,f)};Session.prototype.requestUrl=function(h,f,g,e){h+=(h.indexOf("?")==-1?"?session=":"&session=")+this.myId;return Web2Connection.openScript(h,f,g,e)};Session.prototype.send=function(b){b+=(b.indexOf("?")==-1?"?session=":"&session=")+this.myId;Web2Connection.request(b)};Session.generateSessionId=function(){var b=Math.random()*100000000000000000000+".web2";return Session.myInitiatedSessions[b]?Session.generateSessionId():b};Session.prototype.onload=function(){};Session.prototype.onerror=function(b){};Session.prototype.onremote=function(b){return true};Session.prototype.toString=function(){return"Session ["+this.myId+"]"};
strap("com.geosition.net.Web2Connection");strap("com.geosition.client.config.Config");declareClass("Billing");Billing.prototype.myBillUrl="";Billing.prototype.myBillTimeout=null;Billing.prototype.myBillTime=10000;function Billing(e){var d=e.getSession().getId();var f=e.getMapSet().get("mapSetId");this.myBillUrl=Config.getServerBaseUrl()+"ticker?type=map&session="+d+"&customer=gsc2_"+Config.getCustomerId()+"&mapset="+f+"&timestamp="}Billing.prototype.doBill=function(){clearTimeout(this.myBillTimeout);Web2Connection.request(this.myBillUrl+new Date().getTime())};Billing.doLocationBill=function(b){Billing.doBill(b,"loc")};Billing.doBill=function(f,d){var e=Config.getServerBaseUrl()+"ticker?type="+d+"&session="+f+"&customer="+Config.getCustomerId()+"&timestamp="+new Date().getTime();Web2Connection.request(e)};Billing.prototype.setBillTimeout=function(){var b=this;clearTimeout(this.myBillTimeout);this.myBillTimeout=setTimeout(function(){b.doBill()},this.myBillTime)};
strap("com.geosition.util.VisibleElement");strap("com.geosition.util.LoadPool");strap("com.geosition.util.Point");declareClass("MapClip",VisibleElement);MapClip.prototype.myElement=null;MapClip.prototype.myPosition=null;MapClip.prototype.myMap=null;MapClip.prototype.myLoadPool=null;function MapClip(h,f,g){var e=this;this.myLoadPool=new LoadPool();this.myMap=h;this.myElement=document.createElement("img");this.myElement.className="MapClip";this.myElement.style.position="absolute";this.myElement.style.visibility="hidden";this.myElement.onload=function(){if(e.myIsVisible){this.style.visibility="visible"}e.myLoadPool.done()};this.myElement.src=this.myMap.getMapUrl(f-this.myMap.myOffset.x,g-this.myMap.myOffset.y);this.myPosition=new Point(f,g);this.positionAdjust();this.attach(h.myElement)}MapClip.prototype.setPosition=function(d,c){this.myLoadPool.loading();this.myElement.style.visibility="hidden";this.myElement.src=this.myMap.getMapUrl(d-this.myMap.myOffset.x,c-this.myMap.myOffset.y);this.myPosition.set(d,c);this.positionAdjust()};MapClip.prototype.clear=function(){this.myElement.style.visibility="hidden"};MapClip.prototype.getLoadPool=function(){return this.myLoadPool};MapClip.prototype.onload=function(){};
strap("com.geosition.lang.Exception");declareClass("AbstractMethodException",Exception);function AbstractMethodException(b){this.construct("method: '"+arguments.caller+"' - "+b)};
strap("com.geosition.util.ContainedElement");strap("com.geosition.util.Point");strap("com.geosition.util.PointFloat");strap("com.geosition.util.Dimension");strap("com.geosition.util.StdTools");strap("com.geosition.util.LoadPool");strap("com.geosition.util.Dragger");strap("com.geosition.coordinate.Coordinate");strap("com.geosition.map.util.Billing");strap("com.geosition.map.util.MapClip");strap("com.geosition.map.util.Settings");strap("com.geosition.client.session.Session");strap("com.geosition.lang.AbstractMethodException");declareClass("Map","ContainedElement");Map.prototype.mySession=null;Map.prototype.myParameterSet=null;Map.prototype.myParameterSetId=-1;Map.prototype.myMapSet=null;Map.prototype.myOffset=null;Map.prototype.myCenterOffset=null;Map.prototype.myMapPosition=null;Map.prototype.myDimensions=null;Map.prototype.myScaleArray=null;Map.prototype.myScaleIndex=0;Map.prototype.myTileArray=null;Map.prototype.myTileSize=0;Map.prototype.myShrinkSize=0;Map.prototype.myDefaultCoordinateSystem=3;Map.prototype.myMapCoordinateSystem=3;Map.prototype.myRootUrl="";Map.prototype.myDragger=null;Map.prototype.myBufferRadius=0;Map.prototype.myMaxTiles=0;Map.prototype.myMinTilePos=null;Map.prototype.myMaxTilePos=null;Map.prototype.myTileArea=null;Map.prototype.myResizeFactor=null;Map.prototype.myLoadPool=null;Map.prototype.myMoveY=true;Map.prototype.myMoveX=true;Map.prototype.myLastCenterInternalCoord=null;Map.prototype.myIsDraggable=true;Map.prototype.myViewportOffset=null;Map.property("ViewportOutEnabled","boolean",{set:function(b){if(!this.ViewportOutEnabled){this.myViewportOffset.set(0,0)}return b}});Map.prototype.myBilling=null;function Map(e,d,f){this.construct(e);StdTools.disableContextMenu(this.myElement);this.myElement.style.overflow="hidden";this.myScaleArray=new Array();this.myTileArray=new Array();this.myOffset=new Point(0,0);this.myCenterOffset=new Point(0,0);this.myViewportOffset=new Point(0,0);this.setViewportOutEnabled(true);this.myBufferRadius=0;this.myLoadPool=new LoadPool();this.mySession=instanceOf(f,Session)?f:new Session(f);this.myParameterSet=instanceOf(d,Settings)?d:new Settings(d);this.myParameterSetId=this.myParameterSet.getInt("parameterSetId");this.myMapSet=Config.getMapSet(this.myParameterSetId);this.myDefaultCoordinateSystem=this.myParameterSet.getInt("default_coordinate_system");this.myMapCoordinateSystem=this.myMapSet.getInt("map_coordinate_system");if(!CoordinateSystem.isDefined(this.myDefaultCoordinateSystem)){new Proj4CoordinateSystem(this.myDefaultCoordinateSystem,this.myParameterSet.get("defaultCoordinateSystemName"),this.myParameterSet.get("defaultCoordinateSystemProj4"))}if(!CoordinateSystem.isDefined(this.myMapCoordinateSystem)){new Proj4CoordinateSystem(this.myMapCoordinateSystem,this.myMapSet.get("mapCoordinateSystemName"),this.myMapSet.get("mapCoordinateSystemProj4"))}this.init();this.onload()}Map.prototype.init=function(g,h){var f=this;this.myElement.onclick=function(){};this.myDragger=new Dragger(this.myElement,this,this.nudge);this.myDragger.ondrag=function(){return f.isDraggable()};hook(this.myDragger,"ondrop",function(){f.updateLastPosition();f.correctToMapLimit();f.onchange();f.updateViewportOffset()});hook(this.myDragger,"onrightdblclick",function(a){f.zoomFromEvent(a,-1)});hook(this.myDragger,"ondblclick",function(a){f.zoomFromEvent(a)});hook(this.myDragger,"onclick",function(a){f.onclick(a)});this.myTileSize=this.myMapSet.getInt("clipsize");this.parseScales();this.initScale(this.myParameterSet.getInt("scale"));this.myRootUrl=StdTools.correctUrl(this.myMapSet.get("mapserverlocation"));ContainedElement.layout(function(){f.correctStylePosition()});this.adjustDimensions();var e=Coordinate.get(this.myParameterSet.getFloat("x"),this.myParameterSet.getFloat("y"),this.myDefaultCoordinateSystem,false).to(this.myMapCoordinateSystem).getInternal();this.setMapOrigo(e.x,e.y);this.centerMapToInternalCoord(e.x,e.y);this.setMapLimit();if(!h){hook(this,"onzoom",function(){f.sendState()});this.sendState()}this.populateMap();hook(this,"onStyleChange",function(a){if(a=="attach"||a=="dimension"){ContainedElement.layout(function(){f.correctStylePosition()});ContainedElement.layout(function(){f.adjustDimensions()})}});if(!g){this.myBilling=new Billing(this);fuse(this,"onzoom",this,function(){fuseOnce(this.myLoadPool,"ondone",this.myBilling,this.myBilling.setBillTimeout)});fuse(this,"onviewportout",this,function(){fuseOnce(this.myLoadPool,"ondone",this.myBilling,this.myBilling.setBillTimeout)});this.myBilling.setBillTimeout()}};Map.prototype.setBufferRadius=function(b){this.BufferRadius=b;this.adjustDimensions()};Map.prototype.updateViewportOffset=function(){if(this.ViewportOutEnabled){var b=this.getDimensions();if(this.myViewportOffset.x>b.width||this.myViewportOffset.x<-b.width||this.myViewportOffset.y>b.height||this.myViewportOffset.y<-b.height){this.myViewportOffset.set(0,0);this.onviewportout()}}};Map.prototype.correctStylePosition=function(){var b=StdTools.getStyle(this.myElement,"position");if(!b||b=="static"){this.myElement.style.position="relative"}};Map.prototype.adjustDimensions=function(){var d=this.base("getDimensions")();if(this.myDimensions){var e=this.getCenterInternal()}this.myDimensions=d;var f=this.getTileGridCeiled(Math.max(this.myTileSize,this.myDimensions.width),Math.max(this.myTileSize,this.myDimensions.height));this.myMinTilePos=this.getTilePosition(-this.myBufferRadius-1,-this.myBufferRadius-1);this.myMaxTilePos=this.getTilePosition(f.x+this.myBufferRadius,f.y+this.myBufferRadius);this.myTileArea=new Dimension(this.myMaxTilePos.x-this.myMinTilePos.x,this.myMaxTilePos.y-this.myMinTilePos.y);if(this.myMapPosition){this.clearTiles();if(e){this.centerMapToInternalCoord(e.x,e.y)}this.populateMap()}};Map.prototype.getMapUrl=function(f,g){var h=this.posToInternalCoord(f,g+this.myTileSize);var e=this.myRootUrl;if(this.myScale[9]!="0"){e+="sz"+this.myTileSize+"x"+this.myTileSize}if(this.myScale[10]!="0"){e+="/sc"+this.myScale[0]}if(this.myScale[11]!="0"){e+="/x"+h.x.toString().substring(0,parseInt(this.myScale[11]))}if(this.myScale[12]!="0"){e+="/y"+h.y.toString().substring(0,parseInt(this.myScale[12]))}e+="/"+h.x+"x"+h.y+"x"+this.myTileSize+"x"+this.myTileSize+"x"+this.myScale[0]+".mgif";return e};Map.prototype.populateMap=function(){var f=this.getTileGridCeiled(Math.max(this.myTileSize,this.myDimensions.width),Math.max(this.myTileSize,this.myDimensions.height));var g=f.x+1+this.myBufferRadius;var h=f.y+1+this.myBufferRadius;for(var i=-this.myBufferRadius;i<h;i++){for(var j=-this.myBufferRadius;j<g;j++){this.createTile(j,i,j+i*(g+this.myBufferRadius))}}};Map.prototype.clearTiles=function(){for(var b=0;b<this.myTileArray.length;b++){this.myTileArray[b].clear()}};Map.prototype.cleanTileArray=function(){this.myLoadPool=new LoadPool();for(var b=0;b<this.myTileArray.length;b++){this.myTileArray[b].detach()}this.myTileArray=new Array()};Map.prototype.correctTiles=function(){for(var b=0;b<this.myTileArray.length;b++){this.correctTile(this.myTileArray[b])}};Map.prototype.correctTile=function(e){var h=e.getPosition();var f=h.x;var g=h.y;if(h.x>this.myMaxTilePos.x){f=this.myMinTilePos.x+(f-this.myMaxTilePos.x)%this.myTileArea.width}else{if(h.x<this.myMinTilePos.x){f=this.myMaxTilePos.x-(this.myMinTilePos.x-f)%this.myTileArea.width}}if(h.y>this.myMaxTilePos.y){g=this.myMinTilePos.y+(g-this.myMaxTilePos.y)%this.myTileArea.height}else{if(h.y<this.myMinTilePos.y){g=this.myMaxTilePos.y-(this.myMinTilePos.y-g)%this.myTileArea.height}}if(f!=h.x||g!=h.y){e.setPosition(f,g)}};Map.prototype.sloppyCorrectTile=function(e){var h=e.getPosition();var f=h.x;var g=h.y;if(h.x>this.myMaxTilePos.x){f-=this.myTileArea.width}else{if(h.x<this.myMinTilePos.x){f+=this.myTileArea.width}}if(h.y>this.myMaxTilePos.y){g-=this.myTileArea.height}else{if(h.y<this.myMinTilePos.y){g+=this.myTileArea.height}}if(f!=h.x||g!=h.y){e.setPosition(f,g)}};Map.prototype.createTile=function(j,k,l){var h=this.getTileGridCeiled(this.myOffset.x,this.myOffset.y);var i=this.getTilePosition(j-h.x,k-h.y);var g;if(l>=this.myTileArray.length){g=new MapClip(this,i.x+this.myOffset.x,i.y+this.myOffset.y);this.myTileArray.push(g);this.myLoadPool.addToPool(g.getLoadPool())}else{g=this.myTileArray[l];g.setPosition(i.x+this.myOffset.x,i.y+this.myOffset.y)}return g};Map.prototype.getLoadPool=function(){return this.myLoadPool};Map.prototype.pixelToInternalCoord=function(d,c){return this.posToInternalCoord(d-this.myOffset.x,c-this.myOffset.y)};Map.prototype.posToInternalCoord=function(d,c){return new PointFloat(this.myMapPosition.x+(this.myScale[0]*d),this.myMapPosition.y+(this.myScale[0]*-c))};Map.prototype.internalCoordToPos=function(d,c){return new Point((d-this.myMapPosition.x)/this.myScale[0],(c-this.myMapPosition.y)/-this.myScale[0])};Map.prototype.coordinateToPos=function(c){var d=c.to(this.myMapCoordinateSystem).getInternal();return new Point((d.x-this.myMapPosition.x)/this.myScale[0],(d.y-this.myMapPosition.y)/-this.myScale[0])};Map.prototype.coordinateToPixel=function(c){var d=this.coordinateToPos(c);d.addPoint(this.myOffset);return d};Map.prototype.posToCoordinate=function(d,f){var e=this.posToInternalCoord(d,f);return Coordinate.create(e.x,e.y,this.myMapCoordinateSystem,true)};Map.prototype.pixelToCoordinate=function(d,f){var e=this.pixelToInternalCoord(d,f);return Coordinate.create(e.x,e.y,this.myMapCoordinateSystem,true)};Map.prototype.getTilePosition=function(c,d){return new Point(c*this.myTileSize,d*this.myTileSize)};Map.prototype.getTileGrid=function(c,d){return new Point(Math.round(c/this.myTileSize),Math.round(d/this.myTileSize))};Map.prototype.getTileGridFloored=function(c,d){return new Point(Math.floor(c/this.myTileSize),Math.floor(d/this.myTileSize))};Map.prototype.getTileGridCeiled=function(c,d){return new Point(Math.ceil(c/this.myTileSize),Math.ceil(d/this.myTileSize))};Map.prototype.parseScales=function(){var e=this.myMapSet.get("layers").split(":");for(var f in e){this.myScaleArray.push(this.myMapSet.get(e[f]).split(" "))}this.myScaleArray.sort(function(a,b){return a[0]-b[0]});for(var f=0;f<this.myScaleArray.length;f++){for(var d=0;d<this.myScaleArray[f].length;d++){this.myScaleArray[f][d]=parseInt(this.myScaleArray[f][d])}}};Map.prototype.calculateScaleIndex=function(g){var h=0;var f=0;g=parseInt(g);for(var e=0;e<this.myScaleArray.length;e++){f=h;h=parseInt(this.myScaleArray[e][0]);if(h>=g){if(e==0||Math.abs(g-h)<=Math.abs(g-f)){return e}else{return e-1}}}return this.myScaleArray.length-1};Map.prototype.calculateScaleIndexCeil=function(c){c=parseInt(c);for(var d=0;d<this.myScaleArray.length;d++){if(parseInt(this.myScaleArray[d][0])>=c){return d}}return this.myScaleArray.length-1};Map.prototype.getCurrentScaleIndex=function(){return this.myScaleIndex};Map.prototype.getScaleFromIndex=function(b){return this.myScaleArray[b][0]};Map.prototype.initScale=function(c){var d=this.calculateScaleIndex(c);if(d!=-1){return this.setScaleIndex(d)}return false};Map.prototype.setScaleIndex=function(b){b=parseInt(b);if(b>=0&&b<this.myScaleArray.length){if(!this.myScale||this.myScale[0]!=this.myScaleArray[b][0]){this.myScale=this.myScaleArray[b];this.myScaleIndex=b;if(this.myMapPosition){this.setMapOrigo(this.myMapPosition.x,this.myMapPosition.y);this.setMapLimit()}return true}}return false};Map.prototype.getMaxScaleIndex=function(){return this.myScaleArray.length-1};Map.prototype.getMinScale=function(){return parseInt(this.myScaleArray[0][0])};Map.prototype.getMaxScale=function(){return parseInt(this.myScaleArray[this.myScaleArray.length-1][0])};Map.prototype.setZoom=function(c){var d=this.myLastCenterInternalCoord||this.getCenterInternal();if(this.setScaleIndex(c)){this.clearTiles();this.myResizeFactor=null;this.setViewportOutEnabled(false);this.centerMapToInternalCoord(d.x,d.y);this.populateMap();this.setViewportOutEnabled(true);this.myDragger.stopGlide();this.onzoom(this.myScale[0])}};Map.prototype.updateLastPosition=function(d,c){if(d&&c){this.myLastCenterInternalCoord=new PointFloat(d,c)}else{this.myLastCenterInternalCoord=this.getCenterInternal()}};Map.prototype.setZoomFocus=function(b){this.myLastCenterInternalCoord=coordinate.to(this.myMapCoordinateSystem).getInternal()};Map.prototype.refresh=function(){this.myResizeFactor=null;this.adjustDimensions();this.onrefresh()};Map.prototype.getOrigoMultipel=function(c,d){return new PointFloat(c-((c-this.myScale[1])%(this.myTileSize*this.myScale[0])),d-((d-this.myScale[2])%(this.myTileSize*this.myScale[0])))};Map.prototype.setMapOrigo=function(d,c){this.myMapPosition=this.getOrigoMultipel(d,c)};Map.prototype.centerMapToInternalCoord=function(e,f){var d=this.internalCoordToPos(e,f);this.centerMapToPos(d.x,d.y);this.updateLastPosition(e,f)};Map.prototype.setCenterOffset=function(d,c){this.myCenterOffset.set(d,c)};Map.prototype.centerMapToPos=function(d,c){this.move(this.myDimensions.width/2-d+this.myCenterOffset.x,this.myDimensions.height/2-c+this.myCenterOffset.y);this.onchange()};Map.prototype.centerMapToPixel=function(d,c){this.centerMapToPos(d-this.myOffset.x,c-this.myOffset.y)};Map.prototype.getCenterInternal=function(){return this.posToInternalCoord(this.myDimensions.width/2-this.myOffset.x,this.myDimensions.height/2-this.myOffset.y)};Map.prototype.getCenter=function(){var b=this.getCenterInternal();return new Coordinate.get(b.x,b.y,this.getMapCoordinateSystem(),true)};Map.prototype.setMapLimit=function(){this.myMapMinPos=this.internalCoordToPos(this.myScale[5],this.myScale[6]);this.myMapMaxPos=this.internalCoordToPos(this.myScale[7],this.myScale[8]);var d=this.myMapMaxPos.x-this.myMapMinPos.x;var e=this.myMapMinPos.y-this.myMapMaxPos.y;var f=this.getDimensions();this.myMoveX=true;if(f.width>=d){this.move(f.width/2-(this.myMapMinPos.x+(d)/2),-this.myOffset.y);this.myMoveX=false}this.myMoveY=true;if(f.height>=e){this.move(-this.myOffset.x,f.height/2-(this.myMapMaxPos.y+(e)/2));this.myMoveY=false}};Map.prototype.correctToMapLimit=function(){if(!this.myMapMinPos||!this.myMapMaxPos){this.setMapLimit()}var d=new PointFloat(-this.myOffset.x,-this.myOffset.y);var c=false;if(d.x<this.myMapMinPos.x){d.x=this.myMapMinPos.x;c=true}else{if(d.x+this.myDimensions.width>this.myMapMaxPos.x){d.x=this.myMapMaxPos.x-this.myDimensions.width;c=true}}if(d.y+this.myDimensions.height>this.myMapMinPos.y){d.y=this.myMapMinPos.y-this.myDimensions.height;c=true}else{if(d.y<this.myMapMaxPos.y){d.y=this.myMapMaxPos.y;c=true}}if(c){this.move(-d.x,-d.y)}};Map.prototype.setOffset=function(d,c){this.myOffset.set(d,c)};Map.prototype.getOffset=function(){return this.myOffset};Map.prototype.move=function(g,h){g=Math.round(g);h=Math.round(h);if(this.myMoveX){var j=g-this.myOffset.x;this.myOffset.x=g}else{var j=0}if(this.myMoveY){var f=h-this.myOffset.y;this.myOffset.y=h}else{var f=0}this.myViewportOffset.add(j,f);for(var i in this.myTileArray){this.myTileArray[i].nudge(j,f)}for(var i in this.myTileArray){this.correctTile(this.myTileArray[i])}this.onnudge(j,f);this.onmove();this.updateViewportOffset()};Map.prototype.nudge=function(e,f){if(!this.myMoveX){e=0}if(!this.myMoveY){f=0}this.myOffset.add(e,f);this.myViewportOffset.add(e,f);for(var d in this.myTileArray){this.myTileArray[d].nudge(e,f)}for(var d in this.myTileArray){this.sloppyCorrectTile(this.myTileArray[d])}this.onnudge(e,f)};Map.prototype.getDimensions=function(){return this.myDimensions};Map.prototype.getScale=function(){return this.myScale[0]};Map.prototype.getScales=function(){var c=new Array();for(var d=0;d<this.myScaleArray.length;d++){c.push(parseInt(this.myScaleArray[d][0]))}return c};Map.prototype.getDefaultCoordinateSystem=function(){return this.myDefaultCoordinateSystem};Map.prototype.getMapCoordinateSystem=function(){return this.myMapCoordinateSystem};Map.prototype.getDragger=function(){return this.myDragger};Map.prototype.getState=function(){var d=this.getCenterInternal();var c=this.getDimensions();return StdTools.toHex(0,2)+StdTools.toHex(1,2)+StdTools.toHex(d.x,8)+StdTools.toHex(d.y,8)+StdTools.toHex(this.getScale(),8)+StdTools.toHex(this.myParameterSetId,8)+StdTools.toHex(c.width,4)+StdTools.toHex(c.height,4)};Map.prototype.sendState=function(){this.getSession().send(Config.getServerBaseUrl()+"item?state="+this.getState())};Map.prototype.getResizeFactor=function(){if(!this.myResizeFactor){this.myResizeFactor=1;var e=this.myParameterSet.getInt("resizefactor")/100;var d=parseInt(this.getScale());var f=parseInt(this.myScaleArray[0][0]);switch(this.myParameterSet.get("resizetype")){case"1":this.myResizeFactor=1/(e*Math.log(d/f)+1);break;case"2":this.myResizeFactor=(f/d)+(1-e)*((d-f)/d);break}}return this.myResizeFactor};Map.prototype.setToBoundingBox=function(i){var j=this.getDimensions();var d=Math.max(i.width,1);var l=Math.max(i.height,1);var k=parseInt(this.getScale());var h=this.posToInternalCoord(i.x+d/2,i.y+l/2);this.setScale(Math.max(d*k/j.width,l*k/j.height));this.centerMapToInternalCoord(h.x,h.y)};Map.prototype.setToCoordinates=function(g){var h=this.getDimensions();var d=this.calculateInternalCoordinateBoundingBox(g);var f=d.getCenter();this.setZoom(this.calculateScaleIndexCeil(Math.max(d.width/h.width,d.height/h.height)));this.centerMapToInternalCoord(f.x,f.y)};Map.prototype.calculateCoordinateCenter=function(c){var d=calculateInternalCoordinateBoundingBox.getCenter();return Coordinate.create(d.x,d.y,this.myMapCoordinateSystem,true)};Map.prototype.calculateInternalCoordinateBoundingBox=function(c){var f=new Array();for(var e=0;e<c.length;e++){f.push(c[e].to(this.myMapCoordinateSystem).getInternal())}return BoundingBoxFloat.getPointBoundingBox(f)};Map.prototype.setCenter=function(c){var d=c.to(this.myMapCoordinateSystem).getInternal();this.centerMapToInternalCoord(d.x,d.y)};Map.prototype.setMapPosition=function(c,d){this.setScale(d);this.setCenter(c)};Map.prototype.setScale=function(c){var d=this.calculateScaleIndex(c);this.setZoom(d)};Map.prototype.getSession=function(){return this.mySession};Map.prototype.getParameterSet=function(){return this.myParameterSet};Map.prototype.getMapSet=function(){return this.myMapSet};Map.prototype.zoomIn=function(){this.setZoom(this.myScaleIndex-1)};Map.prototype.zoomOut=function(){this.setZoom(this.myScaleIndex+1)};Map.prototype.pan=function(c,d){this.myDragger.onmousemove();this.myDragger.glideTo(c,d)};Map.prototype.zoomFromEvent=function(l,n){if(!n){var n=1}var j=StdTools.getMousePos(l);var m=StdTools.getElementPosition(this.myElement);var d=new Point(j.x-m.x,j.y-m.y);var e=this.pixelToInternalCoord(d.x,d.y);this.updateLastPosition(e.x,e.y);if(this.myScaleIndex==0&&n>0){var k=this.getDimensions();this.pan(-(j.x-m.x-k.width/2),-(j.y-m.y-k.height/2))}else{this.setZoom(this.myScaleIndex-n)}};Map.prototype.setDraggable=function(b){this.myIsDraggable=(b?true:false)};Map.prototype.isDraggable=function(){return this.myIsDraggable};Map.prototype.myItemCanvas=null;Map.prototype.getItemCanvas=function(){if(!this.myItemCanvas){this.myItemCanvas=new ItemCanvas(this)}return this.myItemCanvas};Map.prototype.onload=function(){};Map.prototype.onzoom=function(b){};Map.prototype.onnudge=function(d,c){};Map.prototype.onmove=function(){};Map.prototype.onchange=function(){};Map.prototype.onrefresh=function(){};Map.prototype.onviewportout=function(){};
strap("com.geosition.util.VisibleElement");strap("com.geosition.util.StdTools");declareClass("Mask","VisibleElement");Mask.prototype.myLeftElement=null;Mask.prototype.myRightElement=null;Mask.prototype.myTopElement=null;Mask.prototype.myBottomElement=null;Mask.prototype.myOuterDimensions=null;Mask.prototype.myInnerTopLeft=null;Mask.prototype.myInnerBottomRight=null;Mask.prototype.myCenterElement=null;function Mask(j,g,h,i,a){this.construct();this.myLeftElement=document.createElement("div");this.myRightElement=document.createElement("div");this.myTopElement=document.createElement("div");this.myBottomElement=document.createElement("div");this.myCenterElement=document.createElement("div");this.setZIndex(100000);this.setColor(i);this.setPosition(0,0);this.myOuterDimensions=j;this.myInnerTopLeft=g;this.myInnerBottomRight=h;this.correct();this.myElement.appendChild(this.myLeftElement);this.myElement.appendChild(this.myRightElement);this.myElement.appendChild(this.myTopElement);this.myElement.appendChild(this.myBottomElement);this.myElement.appendChild(this.myCenterElement);this.setOpacity(a);this.setCenterOpacity(0)}Mask.prototype.setOpacity=function(a){StdTools.setOpacity(this.myLeftElement,a);StdTools.setOpacity(this.myRightElement,a);StdTools.setOpacity(this.myTopElement,a);StdTools.setOpacity(this.myBottomElement,a)};Mask.prototype.setCenterOpacity=function(a){StdTools.setOpacity(this.myCenterElement,a)};Mask.prototype.setCenterAlpha=function(a){this.setCenterOpacity(a)};Mask.prototype.setColor=function(b){this.myLeftElement.style.backgroundColor=b;this.myRightElement.style.backgroundColor=b;this.myTopElement.style.backgroundColor=b;this.myBottomElement.style.backgroundColor=b};Mask.prototype.setCenterColor=function(b){this.myCenterElement.style.backgroundColor=b};Mask.prototype.setOuterDimensions=function(b){this.myOuterDimensions=new Dimension(b.width||1,b.height||1);this.correct()};Mask.prototype.setInner=function(c,d){this.myInnerTopLeft=new Point(Math.max(c.x,1)||1,Math.max(c.y,1)||1);this.myInnerBottomRight=new Point(Math.min(Math.max(d.x,this.myInnerTopLeft.x),this.myOuterDimensions.width)||1,Math.min(Math.max(d.y,this.myInnerTopLeft.y),this.myOuterDimensions.height)||1);this.correct()};Mask.prototype.correct=function(){this.myElement.style.width=(this.myOuterDimensions.width)+"px";this.myElement.style.height=(this.myOuterDimensions.height)+"px";this.myLeftElement.style.position="absolute";this.myLeftElement.style.left="0px";this.myLeftElement.style.top="0px";this.myLeftElement.style.width=(this.myInnerTopLeft.x)+"px";this.myLeftElement.style.height=(this.myOuterDimensions.height)+"px";this.myRightElement.style.position="absolute";this.myRightElement.style.right="0px";this.myRightElement.style.top="0px";this.myRightElement.style.width=Math.max(this.myOuterDimensions.width-this.myInnerBottomRight.x,1)+"px";this.myRightElement.style.height=(this.myOuterDimensions.height)+"px";this.myTopElement.style.position="absolute";this.myTopElement.style.left=(this.myInnerTopLeft.x)+"px";this.myTopElement.style.top="0px";this.myTopElement.style.width=Math.max(this.myInnerBottomRight.x-this.myInnerTopLeft.x,1)+"px";this.myTopElement.style.height=(this.myInnerTopLeft.y)+"px";this.myBottomElement.style.position="absolute";this.myBottomElement.style.left=(this.myInnerTopLeft.x)+"px";this.myBottomElement.style.bottom="0px";this.myBottomElement.style.width=Math.max(this.myInnerBottomRight.x-this.myInnerTopLeft.x,1)+"px";this.myBottomElement.style.height=Math.max(this.myOuterDimensions.height-this.myInnerBottomRight.y,1)+"px";this.myCenterElement.style.position="absolute";this.myCenterElement.style.left=this.myInnerTopLeft.x+"px";this.myCenterElement.style.top=this.myInnerTopLeft.y+"px";this.myCenterElement.style.width=Math.max(this.myInnerBottomRight.x-this.myInnerTopLeft.x,1)+"px";this.myCenterElement.style.height=Math.max(this.myInnerBottomRight.y-this.myInnerTopLeft.y,1)+"px"};
declareStaticClass("ImagePreloader");ImagePreloader.myQue=new Array();ImagePreloader.myPlaceholderImage=document.createElement("img");ImagePreloader.myPlaceholderImage.onload=function(){var b=ImagePreloader.myQue.shift();if(b.f){b.f()}if(ImagePreloader.myQue.length>0){setTimeout(ImagePreloader.cacheNext,0)}};ImagePreloader.cacheNext=function(){ImagePreloader.myPlaceholderImage.src=ImagePreloader.myQue[0].url};ImagePreloader.add=function(e,d){var f={url:e,f:d};ImagePreloader.myQue.push(f);if(ImagePreloader.myQue.length==1){ImagePreloader.myPlaceholderImage.src=e}};function ImagePreloader(){};
strap("com.geosition.util.ContainedElement");strap("com.geosition.util.ImagePreloader");declareClass("NeoClicker",ContainedElement);NeoClicker.prototype.myOverURL="";NeoClicker.prototype.myDownURL="";NeoClicker.prototype.myUpURL="";function NeoClicker(f,g,h){this.construct(f);var e=this;this.myElement.onload=function(){this.style.visibility=""};this.setImage(this.myElement.src);this.myElement.style.cursor="pointer";this.myElement.onclick=function(a){e.onclick(a)};this.myElement.ondblclick=function(a){e.ondblclick(a);StdTools.stopBubble(a);return false};if(g){this.myElement.title=g;if(isClassLoaded("ToolTipHandler")){ToolTipHandler.attachToolTip(this.myElement,g,h||800,ToolTip)}}}NeoClicker.prototype.updateImageSet=function(){this.myUpURL=this.myElement.src;if(/_default\.\w+$/.test(this.myUpURL)){var b=this;this.myOverURL=this.myUpURL.replace(/_default(\.\w+)$/,"_hover$1");this.myDownURL=this.myUpURL.replace(/_default(\.\w+)$/,"_active$1");ImagePreloader.add(this.myOverURL);ImagePreloader.add(this.myDownURL);this.myElement.onmousedown=function(a){StdTools.stopBubble(a);this.src=b.myDownURL;return false};this.myElement.onmouseup=function(){this.src=b.myOverURL};this.myElement.onmouseover=function(){this.src=b.myOverURL};fuse(this.myElement,"onmouseout",this.myElement,function(){this.src=b.myUpURL})}else{this.myElement.onmousedown=function(a){StdTools.stopBubble(a);return false};this.myElement.onmouseup=function(){};this.myElement.onmouseover=function(){};this.myElement.onmouseout=function(){}}};NeoClicker.prototype.setImage=function(b){this.myElement.style.visibility="hidden";this.myElement.src=b;this.updateImageSet();StdTools.fixPng(this.myElement)};NeoClicker.prototype.onclick=function(){};NeoClicker.prototype.ondblclick=function(){};
strap("com.geosition.util.gui.NeoClicker");strap("com.geosition.util.VisibleElement");declareClass("NeoSpriteClicker",NeoClicker);NeoSpriteClicker.init=function(){NeoSpriteClicker.prototype.show=VisibleElement.prototype.show;NeoSpriteClicker.prototype.hide=VisibleElement.prototype.hide;NeoSpriteClicker.prototype.isAttached=VisibleElement.prototype.isAttached;NeoSpriteClicker.init=function(){}};function NeoSpriteClicker(d,f){NeoSpriteClicker.init();var e=document.createElement("img");e.src=d;this.construct(e,f);e.style.position="absolute"};
strap("com.geosition.map.Map");strap("com.geosition.util.Mask");strap("com.geosition.util.StdTools");strap("com.geosition.util.gui.NeoSpriteClicker");declareClass("MapOverview",Map);MapOverview.prototype.myButton=null;MapOverview.prototype.myMap=null;MapOverview.prototype.myAutoOpen=true;MapOverview.prototype.myMask=null;function MapOverview(c,d){this.myMap=c;this.construct(d||document.createElement("div"),this.myMap.getParameterSet());fuse(this.myDragger,"ondrop",this,this.sync);fuse(this.myMap,"onmove",this,this.syncOverview)}MapOverview.prototype.init=function(){this.base("init")(true,true);this.myMask=new Mask(this.getDimensions(),new Point(0,0),new Point(0,0),this.myParameterSet.get("overview_area_mark_color"),0.3);this.myButton=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"overview_close.gif");var b=this;this.myButton.onclick=function(){b.toggle()};this.myButton.getElement().style.zIndex="100";this.append(this.myMask.getElement());if(this.myParameterSet.get("overviewStart")=="false"){this.myAutoOpen=false;this.close()}fuse(this.myMap.myDragger,"ondrop",this,this.setOverviewPositionIfVisible);this.syncOverview()};MapOverview.prototype.adjustDimensions=function(){this.base("adjustDimensions")();if(this.myMask){this.myMask.setOuterDimensions(this.getDimensions());this.syncOverview()}};MapOverview.prototype.getButton=function(){return this.myButton};MapOverview.prototype.syncOverview=function(){this.setOverviewScale(this.myMap);this.setOverviewPosition(this.myMap);this.projectArea()};MapOverview.prototype.setOverviewPositionIfVisible=function(){if(this.myIsVisible){this.setOverviewPosition()}};MapOverview.prototype.setOverviewPosition=function(){var b=this.myMap.getCenterInternal();this.centerMapToInternalCoord(b.x,b.y)};MapOverview.prototype.setOverviewScale=function(){var h=parseInt(this.myMap.getScale());var e=this.myMap.getDimensions();var f=this.getDimensions();var g=(h*e.width*parseInt(this.myParameterSet.get("overviewFactor")))/f.width;this.setScale(g)};MapOverview.prototype.projectArea=function(){var e=this.myMap.posToInternalCoord(-this.myMap.getOffset().x,-this.myMap.getOffset().y);var f=this.internalCoordToPos(e.x,e.y);e=this.myMap.posToInternalCoord(this.myMap.getDimensions().width-this.myMap.getOffset().x,this.myMap.getDimensions().height-this.myMap.getOffset().y);var d=this.internalCoordToPos(e.x,e.y);f.add(this.getOffset().x,this.getOffset().y);d.add(this.getOffset().x,this.getOffset().y);this.myMask.setInner(f,d);if(f.x<=0&&f.y<=0){if(this.isVisible()){this.close()}this.hideButton()}else{if(!this.isVisible()&&this.myAutoOpen){this.open()}this.showButton()}};MapOverview.prototype.hideButton=function(){this.myButton.hide()};MapOverview.prototype.showButton=function(){this.myButton.show()};MapOverview.prototype.open=function(){this.setOverviewPosition();this.show();this.myButton.setImage(this.myParameterSet.get("image_directory")+"overview_close.gif")};MapOverview.prototype.close=function(){this.hide();this.myButton.setImage(this.myParameterSet.get("image_directory")+"overview_open.gif")};MapOverview.prototype.toggle=function(){if(this.isVisible()){this.myAutoOpen=false;this.close()}else{this.myAutoOpen=true;this.open()}};MapOverview.prototype.correctToMapLimit=function(){};MapOverview.prototype.setMapLimit=function(){this.myMapMinPos=this.internalCoordToPos(this.myScale[5],this.myScale[6]);this.myMapMaxPos=this.internalCoordToPos(this.myScale[7],this.myScale[8])};MapOverview.prototype.sync=function(){var b=this.getCenterInternal();this.myMap.centerMapToInternalCoord(b.x,b.y);this.myMap.correctToMapLimit();var b=this.myMap.getCenterInternal();this.centerMapToInternalCoord(b.x,b.y)};MapOverview.prototype.zoomFromEvent=function(e){var h=StdTools.getMousePos(e);var f=StdTools.getElementPosition(this.myElement);var g=this.pixelToInternalCoord(h.x-f.x,h.y-f.y);this.myMap.zoomIn();this.myMap.centerMapToInternalCoord(g.x,g.y)};
strap("com.geosition.util.VisibleElement");declareClass("ScaleBar",VisibleElement);ScaleBar.prototype.myContent=null;ScaleBar.prototype.myBar=null;ScaleBar.prototype.myLength=80;ScaleBar.prototype.myWidth=80;ScaleBar.units={m:0.1,km:0.0001,mil:0.00001};function ScaleBar(h,f,g){this.myBar=document.createElement("div");var e=document.createElement("div");this.myContent=document.createElement("div");this.myBar.appendChild(e);this.construct();f=parseInt(f);e.style.position="relative";e.style.top="0px";e.style.left="0px";e.style.width="100%";e.style.height=(f-3)+"px";e.style.fontSize="0px";this.myBar.style.borderTop="1px solid #FFFFFF";this.myBar.style.borderLeft="1px solid #FFFFFF";this.myBar.style.borderRight="1px solid #000000";this.myBar.style.borderBottom="1px solid #000000";this.myBar.style.height=(f-2)+"px";this.myBar.style.fontSize="0px";this.myLength=parseInt(h);this.setScale(g);this.myElement.style.backgroundColor="transparent";this.myElement.style.borderWidth="0px";this.myElement.appendChild(this.myBar);this.myElement.appendChild(this.myContent);this.myElement.style.zIndex="105"}ScaleBar.prototype.getTooltip=function(){return this.tooltip};ScaleBar.prototype.addCssClass=function(b){StdTools.addCssClass(this.myElement,b);StdTools.addCssClass(this.myBar.firstChild,b);this.styleChanged("className")};ScaleBar.prototype.setCssId=function(b){this.myElement.id=b;this.myBar.firstChild.id=b};ScaleBar.prototype.setWidth=function(b){this.myWidth=parseInt(b)-2;this.myElement.style.width=this.myWidth+"px";this.myBar.style.width=this.myWidth+"px"};ScaleBar.prototype.setScale=function(c){var d=this.getScaleAndUnit(c);this.setWidth(d[0]/ScaleBar.units[d[1]]/c);this.myContent.innerHTML="<center><b>"+d[0]+d[1]+"</b></center>"};ScaleBar.prototype.getScaleAndUnit=function(j){var i=this.myLength*j;var k=Math.pow(0.1,new String(i).length-1);var l=Math.floor(i*k);for(var g in ScaleBar.units){var h=Math.ceil(l*ScaleBar.units[g]/k);if(new String(h).length<=3){return[h,g]}}};
declareClass("ScrollWheel");ScrollWheel.myActiveInstance=null;ScrollWheel.wheel=function(d){if(ScrollWheel.myActiveInstance){var c=0;if(!d){var d=window.event}if(d.wheelDelta){c=d.wheelDelta/120;if(StdTools.getBrowser()==StdTools.BROWSER_OPERA&&StdTools.getBrowserVersion()<"8"){c=-c}}else{if(d.detail){c=-d.detail/3}}if(c){ScrollWheel.myActiveInstance.onscroll(d,c)}if(!ScrollWheel.myActiveInstance.isPageScroll()){if(d.preventDefault){d.preventDefault()}d.returnValue=false}}};ScrollWheel.deactivate=function(){try{ScrollWheel.myActiveInstance=null}catch(b){}};ScrollWheel.prototype.myPageScroll=false;function ScrollWheel(b){fuse(b,"onmouseover",this,this.activate);fuse(b,"onmouseout",ScrollWheel,ScrollWheel.deactivate)}ScrollWheel.prototype.setPageScroll=function(b){this.myPageScroll=b};ScrollWheel.prototype.isPageScroll=function(){return this.myPageScroll};ScrollWheel.prototype.activate=function(){ScrollWheel.myActiveInstance=this};ScrollWheel.prototype.onscroll=function(d,c){};if(window.addEventListener){window.addEventListener("DOMMouseScroll",ScrollWheel.wheel,false)}window.onmousewheel=document.onmousewheel=ScrollWheel.wheel;
strap("com.geosition.util.VisibleElement");strap("com.geosition.util.ScrollWheel");strap("com.geosition.util.StdTools");strap("com.geosition.util.Point");strap("com.geosition.util.Dimension");declareClass("ZoomBox","VisibleElement");ZoomBox.prototype.myNextScaleIndex=-1;ZoomBox.prototype.myNextPosition=null;ZoomBox.prototype.myTimer=null;ZoomBox.prototype.myTimerTimeout=300;ZoomBox.prototype.myMap=null;ZoomBox.prototype.myAutoDisable=true;ZoomBox.prototype.myScrollWheel=null;function ZoomBox(c){this.construct();this.setZIndex(1000);StdTools.addCssClass(this.myElement,"geosition_zoomBox");this.myMap=c;var d=this.myMap.getElement();this.getElement().style.border="2px dashed #000000";this.myScrollWheel=new ScrollWheel(d);fuse(this.myScrollWheel,"onscroll",this,this.scrollZoom);this.hide();this.attach(d);this.isEnabled()}ZoomBox.prototype.setAutoDisable=function(b){this.myAutoDisable=b};ZoomBox.prototype.isAutoDisable=function(){return this.myAutoDisable};ZoomBox.prototype.isEnabled=function(){var g=StdTools.getWindowDimension();var h=0;try{h=top.document.body.scrollHeight}catch(e){h=document.body.scrollHeight}var f=true;try{if(this.isAutoDisable()&&h>g.height){f=false}}catch(e){}this.myScrollWheel.setPageScroll(!f);return f};ZoomBox.prototype.scrollZoom=function(k,d){if(!this.isEnabled()){return}if(!k){var k=window.event}var e=StdTools.getElementPosition(this.myMap.getElement());if(document.all){var n=new Point(k.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,k.clientY+document.body.scrollTop+document.documentElement.scrollTop)}else{if(StdTools.getBrowser()==StdTools.BROWSER_FIREFOX&&StdTools.getBrowserVersion()<"3"){var n=new Point(k.screenX+window.pageXOffset,k.screenY+window.pageYOffset)}else{var n=new Point(k.clientX+window.pageXOffset,k.clientY+window.pageYOffset)}}this.myNextPosition=new Point(n.x-e.x,n.y-e.y);if(this.myNextScaleIndex==-1){this.myNextScaleIndex=this.myMap.getCurrentScaleIndex()}if(d<0){this.myNextScaleIndex=Math.min(this.myNextScaleIndex+1,this.myMap.getMaxScaleIndex())}else{if(d>0){this.myNextScaleIndex=Math.max(this.myNextScaleIndex-1,0)}}if(this.myNextScaleIndex>this.myMap.getCurrentScaleIndex()){this.commit()}else{if(this.myNextScaleIndex<this.myMap.getCurrentScaleIndex()){var l=this.myMap.getScaleFromIndex(this.myNextScaleIndex)/this.myMap.getScale();var m=this.myMap.getDimensions();var j=new Dimension(m.width*l,m.height*l);this.setDimensions(j.width,j.height);this.setPosition(this.myNextPosition.x-j.width/2-(this.myNextPosition.x-m.width/2)*l,this.myNextPosition.y-j.height/2-(this.myNextPosition.y-m.height/2)*l);this.show();this.startTimer()}else{this.cancel()}}};ZoomBox.prototype.setTimerTimeout=function(b){this.myTimerTimeout=b};ZoomBox.prototype.commit=function(){var d=this.myMap.pixelToInternalCoord(this.myNextPosition.x,this.myNextPosition.y);var c=this.myMap.getDimensions();this.myMap.setCenterOffset(this.myNextPosition.x-c.width/2,this.myNextPosition.y-c.height/2);this.myMap.setZoom(this.myNextScaleIndex);this.myMap.centerMapToInternalCoord(d.x,d.y);this.myMap.setCenterOffset(0,0);this.cancel()};ZoomBox.prototype.cancel=function(){clearTimeout(this.myTimer);this.hide();this.myNextScaleIndex=-1};ZoomBox.prototype.startTimer=function(){clearTimeout(this.myTimer);var b=this;this.myTimer=setTimeout(function(){b.commit()},this.myTimerTimeout)};
strap("com.geosition.util.gui.tooltip.TemplateTooltip");declareClass("ToolTip",TemplateTooltip);ToolTip.prototype.myDefaultTemplateHTML="<div id='infoBox' class='geosition_infoBox geosition_infoBoxShadow'><div id='infoBoxTitle' class='geosition_infoBoxTitle'></div>";
strap("com.geosition.util.gui.tooltip.TemplateTooltip");declareClass("ToolTipShadow",TemplateTooltip);ToolTipShadow.prototype.myDefaultTemplateHTML="<div id='shadow' className='shadow'><div id='infoBox' class='geosition_infoBox geosition_infoBoxShadow'><div id='infoBoxTitle' class='geosition_infoBoxTitle'></div></div>";function ToolTipShadow(b){this.construct(b)}ToolTipShadow.prototype.show=function(e,h,f,g){if(g&&g.length!=1){this.showShadow()}else{this.hideShadow()}this.base("show")(e,h,f)};ToolTipShadow.prototype.showShadow=function(){this.myTemplate.getInnerElement("shadow").style.backgroundColor="#333333"};ToolTipShadow.prototype.hideShadow=function(){this.myTemplate.getInnerElement("shadow").style.backgroundColor="transparent"};
strap("com.geosition.util.gui.tooltip.ToolTipShadow");declareClass("ToolTipList",ToolTipShadow);ToolTipList.prototype.show=function(k,e,m,n){var a=0;if(n){e=""}for(var l=0;l<n.length;l++){var i=n[l].getTitle();if(i){e+='<div class="geosition_infoBoxTitle'+(a++%2==0?"":" geosition_infoBoxTitleSecondary")+'">'+i+"</div>"}}this.base("show")(k,e,m,n)};
strap("com.geosition.map.Map");strap("com.geosition.map.MapOverview");strap("com.geosition.map.util.ScaleBar");strap("com.geosition.map.util.ZoomBox");strap("com.geosition.util.ContainedElement");strap("com.geosition.util.gui.tooltip.TemplateTooltip");strap("com.geosition.util.gui.tooltip.ToolTip");strap("com.geosition.util.gui.tooltip.ToolTipShadow");strap("com.geosition.util.gui.tooltip.ToolTipList");strap("com.geosition.util.gui.tooltip.ToolTipInfoBox");strap("com.geosition.util.gui.NeoSpriteClicker");strap("com.geosition.util.StdTools");declareClass("GeositionMapClassic","Map");GeositionMapClassic.prototype.myClientControls=null;GeositionMapClassic.prototype.myAppletContainer=null;GeositionMapClassic.prototype.myOvMap=null;GeositionMapClassic.prototype.myScaleBar=null;GeositionMapClassic.prototype.myLoadIndicator=null;GeositionMapClassic.prototype.myZoomBox=null;GeositionMapClassic.prototype.myInfoBox=null;function GeositionMapClassic(f,h,g){f=StdTools.getElement(f);if(!f.style.position){f.style.position="relative"}this.myAppletContainer=new ContainedElement(f);this.myAppletContainer.addCssClass("geosition_applet");f.style.overflow="hidden";var e=document.createElement("div");StdTools.addCssClass(e,"geosition_map");e.style.zIndex="2";this.myAppletContainer.append(e);this.construct(e,h||Config.getDefaultParameterSet(),g||Config.getDefaultSession())}GeositionMapClassic.prototype.init=function(){this.myBufferRadius=0;this.base("init")();new ToolTip(this.myAppletContainer.getElement());if(this.myParameterSet.getBool("infoBoxShowMultipleTitles")){new ToolTipList(this.getElement())}else{if(this.myParameterSet.getBool("infoBoxShadow")){new ToolTipShadow(this.getElement())}}this.myInfoBox=new ToolTipInfoBox(this.getElement(),this.myParameterSet.get("mouseClickItemBoxStatusText"),this.myParameterSet.get("infoboxStatusImageUrl")+"small_left_default.gif",this.myParameterSet.get("infoboxStatusImageUrl")+"small_right_default.gif");this.myInfoBox.setHideDragger(this.myDragger);fuse(this,"onchange",this.myInfoBox,this.myInfoBox.hide);if(this.myParameterSet.getBool("overview")){this.myOvMap=new MapOverview(this);this.myOvMap.setZIndex(99);var l=this.myOvMap.getElement();var k=this.myOvMap.getButton().getElement();this.myOvMap.addCssClass("geosition_overview");this.myOvMap.getButton().addCssClass("geosition_overviewButton");this.myAppletContainer.append(l);this.myAppletContainer.append(k);this.myOvMap.refresh();StdTools.correctPositionByString(l,this.myParameterSet.get("overview_position"));StdTools.correctPositionByString(k,this.myParameterSet.get("overviewButtonPosition"))}if(this.myParameterSet.getBool("scalebar")){this.myScaleBar=new ScaleBar(this.myParameterSet.get("scalebar_width"),this.myParameterSet.get("scalebar_height"),this.getScale());this.myScaleBar.setZIndex("3");this.myScaleBar.addCssClass("geosition_scalebar");this.myAppletContainer.append(this.myScaleBar.getElement());StdTools.correctPositionByString(this.myScaleBar.getElement(),this.myParameterSet.get("scalebarPosition"));fuse(this,"onzoom",this.myScaleBar,this.myScaleBar.setScale)}if(this.myParameterSet.get("skin_url")){var j=document.createElement("img");j.className="geosition_skin";j.src=this.myParameterSet.get("skin_url");j.zIndex="1";this.myAppletContainer.append(j)}if(isClassLoaded("ClientControl")){var h=null;if(isClassLoaded("ItemCanvasIndexed")){h=new ItemCanvasIndexed(this);h.setIndexRequestInterval()}this.myClientControls=new ClientControl(this,h)}this.myZoomBox=new ZoomBox(this);var i=this.getDimensions();var d=false;if(!i.width){i.width=this.myElement.parentNode.clientWidth;d=true}if(!i.height){i.height=this.myElement.parentNode.clientHeight;d=true}if(d){this.setDimensions(i.width,i.height)}this.setUpButtons();if(this.myParameterSet.get("geocoderType0")=="1"){this.myClientControls.showPointGeocoder(0)}if(this.myParameterSet.get("geocoderType1")=="1"){this.myClientControls.showPointGeocoder(1)}TemplateTooltip.registerAll(this.myAppletContainer.getElement())};GeositionMapClassic.prototype.setUpButtons=function(){var i=this;var d=this.getDimensions();var j=d.width/2;var l=d.height/2;this.setUpZoomButtons();button=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"up_default.gif",this.myParameterSet.get("up_button_label"));button.setCssClass("geosition_upButton");button.setZIndex("3");button.attach(this.myAppletContainer.myElement);StdTools.correctPositionByString(button.getElement(),this.myParameterSet.get("up_button_position"));button.onclick=function(){i.myDragger.onmousemove();i.myDragger.glideTo(0,l)};button=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"down_default.gif",this.myParameterSet.get("down_button_label"));button.setCssClass("geosition_downButton");button.setZIndex("3");button.attach(this.myAppletContainer.myElement);StdTools.correctPositionByString(button.getElement(),this.myParameterSet.get("down_button_position"));button.onclick=function(){i.myDragger.onmousemove();i.myDragger.glideTo(0,-l)};button=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"left_default.gif",this.myParameterSet.get("left_button_label"));button.setCssClass("geosition_leftButton");button.setZIndex("3");button.attach(this.myAppletContainer.myElement);StdTools.correctPositionByString(button.getElement(),this.myParameterSet.get("left_button_position"));button.onclick=function(){i.myDragger.onmousemove();i.myDragger.glideTo(j,0)};button=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"right_default.gif",this.myParameterSet.get("right_button_label"));button.setCssClass("geosition_rightButton");button.setZIndex("3");button.attach(this.myAppletContainer.myElement,this.myParameterSet.get("right_button_position"));StdTools.correctPositionByString(button.getElement(),this.myParameterSet.get("right_button_position"));button.onclick=function(){i.myDragger.onmousemove();i.myDragger.glideTo(-j,0)};this.setUpDiagonalButtons();var k=document.createElement("img");k.style.borderWidth="0px";k.src=StdTools.correctUrl(this.myMapSet.get("copyrightimage"));StdTools.fixPng(k);var a=document.createElement("a");a.title="Kartena AB";a.href=this.myMapSet.get("copyrighturl");a.target="blank";a.className="geosition_copyright";a.style.zIndex="998";a.appendChild(k);this.myAppletContainer.myElement.appendChild(a);StdTools.correctPositionByString(a,this.myParameterSet.get("copyright_position"));this.setUpButtons=function(){}};GeositionMapClassic.prototype.setUpZoomButtons=function(){var d=this;var c=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"zoom_out_default.gif",this.myParameterSet.get("zoom_out_button_label"));c.setCssClass("geosition_zoomOutButton");c.setZIndex("3");c.attach(this.myAppletContainer.myElement);StdTools.correctPositionByString(c.getElement(),this.myParameterSet.get("zoom_out_button_position"));c.onclick=function(){d.zoomOut()};c=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"zoom_in_default.gif",this.myParameterSet.get("zoom_in_button_label"));c.setCssClass("geosition_zoomInButton");c.setZIndex("3");c.attach(this.myAppletContainer.myElement);StdTools.correctPositionByString(c.getElement(),this.myParameterSet.get("zoom_in_button_position"));c.onclick=function(){d.zoomIn()};this.setUpZoomButtons=function(){}};GeositionMapClassic.prototype.setUpDiagonalButtons=function(){var j=this;var h=this.getDimensions();var d=h.width/2;var g=h.height/2;var i=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"left_up_default.gif",this.myParameterSet.get("left_up_button_label"));i.setCssClass("geosition_leftUpButton");i.setZIndex("3");i.attach(this.myAppletContainer.myElement);StdTools.correctPositionByString(i.getElement(),this.myParameterSet.get("left_up_button_position"));i.onclick=function(){j.myDragger.onmousemove();j.myDragger.glideTo(d,g)};i=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"left_down_default.gif",this.myParameterSet.get("left_down_button_label"));i.setCssClass("geosition_leftDownButton");i.setZIndex("3");i.attach(this.myAppletContainer.myElement);StdTools.correctPositionByString(i.getElement(),this.myParameterSet.get("left_down_button_position"));i.onclick=function(){j.myDragger.onmousemove();j.myDragger.glideTo(d,-g)};i=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"right_up_default.gif",this.myParameterSet.get("right_up_button_label"));i.setCssClass("geosition_rightUpButton");i.setZIndex("3");i.attach(this.myAppletContainer.myElement,this.myParameterSet.get("right_up_button_position"));StdTools.correctPositionByString(i.getElement(),this.myParameterSet.get("right_up_button_position"));i.onclick=function(){j.myDragger.onmousemove();j.myDragger.glideTo(-d,g)};i=new NeoSpriteClicker(this.myParameterSet.get("image_directory")+"right_down_default.gif",this.myParameterSet.get("right_down_button_label"));i.setCssClass("geosition_rightDownButton");i.setZIndex("3");i.attach(this.myAppletContainer.myElement);StdTools.correctPositionByString(i.getElement(),this.myParameterSet.get("right_down_button_position"));i.onclick=function(){j.myDragger.onmousemove();j.myDragger.glideTo(-d,-g)};this.setUpDiagonalButtons=function(){}};GeositionMapClassic.prototype.setFullScreen=function(){this.myAppletContainer.setFullScreen();this.base("setFullScreen")()};GeositionMapClassic.prototype.fillParent=function(){this.setFillParent(true,true)};GeositionMapClassic.prototype.setFillParent=function(d,c){this.myAppletContainer.setFillParent(d,c);this.base("setFillParent")(true,true)};GeositionMapClassic.prototype.getControls=function(){if(!this.myClientControls){}return this.myClientControls};GeositionMapClassic.prototype.getItemCanvas=function(){return this.getControls().getItemCanvas()};GeositionMapClassic.prototype.hideInfoBox=function(){this.myInfoBox.hide()};GeositionMapClassic.prototype.onchange=function(){};
strap("com.geosition.map.item.AbstractItemPoint");declareClass("ItemPoint","AbstractItemPoint");function ItemPoint(f,d){this.myElement=d;this.myElement.style.position="absolute";this.myElement.style.cursor="pointer";var e=this;this.myElement.ontooltip=function(a){return e.getStack(a)};fuse(this.myElement,"onclick",this,function(a){this.onclick(a)});this.setCoordinate(f)}ItemPoint.prototype.onclick=function(b){};
strap("com.geosition.map.item.AbstractItemPoint");strap("com.geosition.util.Point");strap("com.geosition.util.Dragger");strap("com.geosition.util.Dimension");strap("com.geosition.util.StdTools");declareClass("ItemGeocoderPoint",AbstractItemPoint);ItemGeocoderPoint.prototype.myMap=null;ItemGeocoderPoint.prototype.myPositionIsInSync=true;ItemGeocoderPoint.prototype.myIsActive=true;ItemGeocoderPoint.prototype.myPosition=null;ItemGeocoderPoint.prototype.myDragger=null;ItemGeocoderPoint.prototype.myHasFocus=true;function ItemGeocoderPoint(f,d){this.myPosition=new Point(0,0);this.myElement=document.createElement("img");this.myElement.style.position="absolute";this.myShowInStack=false;this.setImage(d);if(f){this.base("setCoordinate")(f)}var e=this;this.myDragger=new Dragger(this.myElement,this,this.nudge);fuse(this.myDragger,"ondrop",this,function(){this.setFromPosition();this.ondrop()});this.myElement.style.cursor="pointer"}ItemGeocoderPoint.prototype.correctToMap=function(l){this.setMap(l);if(this.myCoordinate){var m=this.optimizeCoordinateToMap(l);var j=this.getOriginalDimensions();if(j){var n=l.getResizeFactor();var h=j.width*n;var d=j.height*n;this.setDimensions(h,d)}var k=this.getOffset();this.setPosition(m.x-k.x,m.y-k.y);this.myElement.style.visibility="visible"}else{this.myElement.style.visibility="hidden"}this.myPositionIsInSync=true};ItemGeocoderPoint.prototype.setFocus=function(b){this.myHasFocus=b};ItemGeocoderPoint.prototype.setMap=function(b){if(b&&!this.myMap){this.myMap=b;if(this.myHasFocus){fuse(this.myMap,"onclick",this,this.setFromEvent)}this.setMap=function(){}}};ItemGeocoderPoint.prototype.setPixel=function(e,f){var d=this.myMap.pixelToCoordinate(e,f);this.setCoordinate(d)};ItemGeocoderPoint.prototype.setCoordinate=function(b){this.base("setCoordinate")(b);if(this.myMap){this.correctToMap(this.myMap)}this.onchange(b)};ItemGeocoderPoint.prototype.change=function(b){this.onchange(b.to(this.myMap.getDefaultCoordinateSystem()),this.myMap.getScale())};ItemGeocoderPoint.prototype.centerToMap=function(){if(this.myMap){this.setCoordinate(this.myMap.getCenter())}};ItemGeocoderPoint.prototype.setFromEvent=function(d){if(this.myIsVisible&&this.myIsActive){var f=StdTools.getMousePos(d);var e=StdTools.getElementPosition(this.myMap.myElement);this.setPixel(f.x-e.x,f.y-e.y)}};ItemGeocoderPoint.prototype.setFromPosition=function(){if(this.myIsVisible&&!this.myPositionIsInSync){var d=this.myMap.getOffset();var c=this.getOffset();this.setPixel(this.myPosition.x+c.x+d.x,this.myPosition.y+c.y+d.y)}};ItemGeocoderPoint.prototype.getDimensions=function(){return new Dimension(this.myElement.width,this.myElement.height)};ItemGeocoderPoint.prototype.setImage=function(b){this.myElement.src=b;StdTools.fixPng(this.myElement)};ItemGeocoderPoint.prototype.reset=function(){this.myCoordinate=null;this.correctToMap(this.myMap)};ItemGeocoderPoint.prototype.setActive=function(b){this.myIsActive=(b?true:false)};ItemGeocoderPoint.prototype.isActive=function(){return this.myIsActive};ItemGeocoderPoint.prototype.nudge=function(d,c){this.myPosition.add(d,c);this.refreshPosition()};ItemGeocoderPoint.prototype.setPosition=function(d,c){this.myPosition.set(d,c);this.refreshPosition()};ItemGeocoderPoint.prototype.refreshPosition=function(){this.myElement.style.left=this.myPosition.x+"px";this.myElement.style.top=this.myPosition.y+"px";this.myPositionIsInSync=false};ItemGeocoderPoint.prototype.toString=function(){return"ItemGeocoderPoint"};ItemGeocoderPoint.prototype.onchange=function(c,d){};ItemGeocoderPoint.prototype.onclick=function(b){};ItemGeocoderPoint.prototype.ondrop=function(){};
strap("com.geosition.util.LoadPool");strap("com.geosition.coordinate.Coordinate");strap("com.geosition.map.item.ItemCanvas");strap("com.geosition.map.item.ItemPoint");strap("com.geosition.map.item.ItemPointImage");strap("com.geosition.map.item.geocoder.ItemGeocoderPoint");declareClass("ClientControl");ClientControl.instance=0;ClientControl.prototype.myMap=null;ClientControl.prototype.myItemCanvasIndexed=null;ClientControl.prototype.myItemCanvas=null;ClientControl.prototype.myInstanceName=null;ClientControl.prototype.myLoadPool=null;ClientControl.prototype.myMarkedItem=null;function ClientControl(f,e){this.myMap=f;this.myLastNumberedItems=new Array();fuse(this.myMap,"onzoom",this,this.unmarkItem);this.myInstanceName="__cc"+ClientControl.instance+"__";ClientControl.instance++;document[this.myInstanceName]=this;this.myLoadPool=new LoadPool();this.setItemCanvasIndexed(e);try{this.executeUrlCall()}catch(d){}}ClientControl.prototype.executeUrlCall=function(){var self=this;var query=parent.location.search.replace(/^\?/,"");var calls=query.match(/call=[^&]+/g);if(calls){for(var i=0;i<calls.length;i++){eval("self."+calls[i].replace(/call=/,""))}}var callMethod=query.match(/callMethod=[^&]+/i);if(callMethod){var call="self."+callMethod[0].replace(/callMethod=/i,"")+"(";var args=query.match(/arg\d+=[^&]+/g);for(var i=0;i<args.length;i++){call+='"'+args[i].replace(/arg\d+=/,"")+'"';if(i<args.length-1){call+=","}}eval(call+")")}};ClientControl.prototype.setCenter=function(d,c){this.myMap.setCenter(this.createCoordinate(d,c))};ClientControl.prototype.setMapPosition=function(e,f,d){this.myMap.setMapPosition(this.createCoordinate(e,f),parseInt(d))};ClientControl.prototype.getMapPosition=function(){var parameterSet=this.myMap.getParameterSet();var mapCoordinateSystem=this.myMap.getMapCoordinateSystem();var i=this.myMap.getCenterInternal();var c=Coordinate.get(i.x,i.y,mapCoordinateSystem,true);c=c.to(this.myMap.getDefaultCoordinateSystem());var url=parameterSet.get("map_position_return_url")+"?x="+c.x+"&y="+c.y;var target=eval("window.parent."+parameterSet.get("map_position_return_target"));if(target){if(target.location){target.location.href=url}else{target.src=url}}return c};ClientControl.prototype.setScale=function(b){this.myMap.setScale(b)};ClientControl.prototype.getScale=function(){return this.myMap.getScale()};ClientControl.prototype.zoomIn=function(){this.myMap.zoomIn()};ClientControl.prototype.zoomOut=function(){this.myMap.zoomOut()};ClientControl.prototype.markItem=function(f,h,g){if(f&&this.myItemCanvasIndexed){var i=this.myItemCanvasIndexed.getCached(f+"-"+h);if(i){this.centerItem(i)}else{if(!g){var j=this;this.onItemsLoad=function(){j.onItemsLoad=function(){};var a="db="+f+"&action_"+f+"=add&id_"+f+"="+h;this.myItemCanvasIndexed.setState(a);j.markItem(f,h,true)};this.myItemCanvasIndexed.doItemRequest(new Array(f+"-"+h))}}}else{this.centerItem(this.getItemCanvas().getCached(h))}};ClientControl.prototype.markItemCenter=function(n,j,i,k,h){if(n&&this.myItemCanvasIndexed){var l=this.myItemCanvasIndexed.getCached(n+"-"+j);if(l){this.centerItem(l,this.createCoordinate(i,k))}else{if(!h){var m=this;this.onItemsLoad=function(){m.onItemsLoad=function(){};var a="db="+n+"&action_"+n+"=add&id_"+n+"="+j;this.myItemCanvasIndexed.setState(a);m.markItemCenter(n,j,i,k,true)};this.myItemCanvasIndexed.doItemRequest(new Array(n+"-"+j))}}}else{this.centerItem(this.getItemCanvas().getCached(j))}};ClientControl.prototype.unmarkItem=function(){if(this.myMarkedItem){this.myMarkedItem.stopMotion();this.myMarkedItem=null}};ClientControl.prototype.addPointItem=function(k,j,l,o,n,p){var m=this.createCoordinate(j,l);var i=this.getItem(null,k);if(!i){i=new ItemPointImage(m,o);this.addItem(i,k)}else{i.setCoordinate(m);i.setImage(o)}i.setTitle(n);i.setContent(p)};ClientControl.prototype.showPoint=function(h,g,i,j){if(this.myItemCanvasIndexed){var f=this.myItemCanvasIndexed.getCached(h);if(!f){this.addPointItem(h,g,i,j,"","")}this.markItem(0,h,true)}};ClientControl.prototype.hidePoint=function(c){if(this.myItemCanvasIndexed){var d=this.myItemCanvasIndexed.getCached(c);if(d){d.hide()}}};ClientControl.prototype.setState=function(b){if(this.myItemCanvasIndexed){this.myItemCanvasIndexed.setState(b)}};ClientControl.prototype.updateState=function(){if(this.myItemCanvasIndexed){this.myItemCanvasIndexed.doIndexRequest()}};ClientControl.prototype.setItemOverview=function(b){if(this.myItemCanvasIndexed){this.myItemCanvasIndexed.setItemOverview(b)}};ClientControl.prototype.setItemInSessionOverview=function(){if(this.myItemCanvasIndexed){this.myItemCanvasIndexed.setItemOverview(null)}};ClientControl.prototype.showAreaGeocoder=function(){ClientControl.alertUnsupported("showAreaGeocoder")};ClientControl.prototype.showAreaGeocoderPreset=function(){ClientControl.alertUnsupported("showAreaGeocoderPreset")};ClientControl.prototype.showLineGeocoder=function(){ClientControl.alertUnsupported("showLineGeocoder")};ClientControl.prototype.showLineGeocoderPreset=function(){ClientControl.alertUnsupported("showLineGeocoderPreset")};ClientControl.prototype.showPointGeocoder=function(n,url){var parameterSet=this.myMap.getParameterSet();var geocoder=this["myGeocoder"+n];if(!geocoder){var geoPosX=parseFloat(parameterSet.get("geocoderPointX"+n));var geoPosY=parseFloat(parameterSet.get("geocoderPointY"+n));if(geoPosX==-1||geoPosY==-1){var geocoderCoordinate=this.myMap.getCenterInternal();geocoderCoordinate=Coordinate.get(geocoderCoordinate.x,geocoderCoordinate.y,this.myMap.getMapCoordinateSystem(),true).to(this.myMap.getDefaultCoordinateSystem())}else{if(geoPosX==-2||geoPosY==-2){var geocoderCoordinate=null}else{var geocoderCoordinate=Coordinate.get(geoPosX,geoPosY,this.myMap.getDefaultCoordinateSystem())}}geocoder=this["myGeocoder"+n]=new ItemGeocoderPoint(geocoderCoordinate,url||StdTools.correctUrl(parameterSet.get("geocoderPointIconPath"+n)));this.getItemCanvas().add(geocoder);var myself=this;geocoder.onchange=function(coordinate){if(this.isVisible()){var coordinate=coordinate.to(myself.myMap.getDefaultCoordinateSystem());var x=coordinate.x;var y=coordinate.y;var scale=myself.myMap.getScale();myself.onClickGeocoder(x,y,scale);this.getElement().style.visibility="visible";var url=parameterSet.get("geocoderReturnUrl")+"?x="+x+"&y="+y;if(parameterSet.getBool("geocoderReturnId")){url+="&id="+n}if(parameterSet.getBool("geocoderReturnScale")){url+="&scale="+scale}if(parameterSet.getBool("geocoderReturnSession")){url+="&session="+myself.myMap.getSession().getId()}try{var target=eval("window.parent."+parameterSet.get("geocoderReturnTarget"));if(target){if(target.location){target.location.href=url}else{target.src=url}}}catch(ex){}}}}else{geocoder.setImage(url||StdTools.correctUrl(parameterSet.get("geocoderPointIconPath"+n)));geocoder.show()}};ClientControl.prototype.showPointGeocoderPreset=function(h,g,i,f){this.showPointGeocoder(h,f);var j=this["myGeocoder"+h];if(j){j.setCoordinate(this.createCoordinate(g,i))}};ClientControl.prototype.hideGeocoder=function(c){var d=this["myGeocoder"+c];if(d){d.hide()}};ClientControl.prototype.resetGeocoder=function(){ClientControl.alertUnsupported("resetGeocoder")};ClientControl.prototype.showGeocoderButton=function(){ClientControl.alertUnsupported("showGeocoderButton")};ClientControl.prototype.addItem=function(d,c){if(this.getItem(null,c)){this.getItemCanvas().remove(c)}this.getItemCanvas().add(d,c)};ClientControl.prototype.removeItem=function(b){return this.getItemCanvas().remove(b)};ClientControl.prototype.clearItems=function(){return this.getItemCanvas().clear()};ClientControl.prototype.containsItem=function(b){return this.getItemCanvas().containsItem(b)};ClientControl.prototype.getItem=function(d,c){if(d){if(this.myItemCanvasIndexed){return this.myItemCanvasIndexed.getCached(d+"-"+c)}}else{return this.getItemCanvas().getCached(c)}return null};ClientControl.prototype.centerItem=function(e,f){if(e){if(this.myMap.getParameterSet().getBool("markzoom")){if(instanceOf(e,AbstractItemPoint)){this.myMap.setScale(this.myMap.getMinScale())}else{this.myMap.setToBoundingBox(e.getBoundingBox())}}if(!f){var d=this.coordinateToInternal(e.getCoordinate());this.myMap.centerMapToInternalCoord(d.x,d.y)}else{var d=this.coordinateToInternal(f);this.myMap.centerMapToInternalCoord(d.x,d.y)}this.unmarkItem();this.myMarkedItem=e;this.myMarkedItem.startPulse();this.updateState()}};ClientControl.prototype.centerItems=function(){this.getItemCanvas().setItemsOverview()};ClientControl.prototype.getItemsInView=function(){var a=this.getItemCanvas().getItemsInView();if(this.myItemCanvasIndexed){var d=this.myItemCanvasIndexed.getItemsInView();a=a.concat(d)}return a};ClientControl.prototype.setCenterOffset=function(d,c){this.myMap.setCenterOffset(d,c)};ClientControl.prototype.numberItems=function(k,n){if(this.myItemCanvasIndexed){var h=this.getNumberedItemCanvas();var m=this.getPagedNumberedItems(k,n);h.clear();this.myItemCanvasIndexed.hide();h.show();for(var l=0;l<m.length;l++){var j=document.createElement("div");j.className="geosition_numberedItem";j.id="geosition_numberedItem"+(l+1);j.innerHTML=l+1;var i=new ItemPoint(m[l].getCoordinate(),j);i.setTitle(m[l].getTitle());i.setContent(m[l].getContent());h.add(i)}return m}return null};ClientControl.prototype.clearNumberedItems=function(){if(this.myItemCanvasIndexed){var b=this.getNumberedItemCanvas();b.hide();this.myItemCanvasIndexed.show();b.clear()}};ClientControl.prototype.myNumberedItemCanvas=null;ClientControl.prototype.myLastNumberedItems=null;ClientControl.prototype.getNumberedItemCanvas=function(){if(!this.myNumberedItemCanvas){this.myNumberedItemCanvas=new ItemCanvas(this.myMap);fuse(this.myMap.myDragger,"ondrop",this,this.numberedItemsChange);fuse(this.myItemCanvasIndexed,"onrefresh",this,this.numberedItemsChange);this.numberedItemsChange()}return this.myNumberedItemCanvas};ClientControl.prototype.getPagedNumberedItems=function(h,g){var j=new Array();for(var f=0;f<this.myLastNumberedItems.length;f++){var i=this.myLastNumberedItems[f];if(f>=h+g){break}if(f>=h){j.push(i)}}return j};ClientControl.prototype.getLoadPool=function(){return this.myLoadPool};ClientControl.prototype.toString=function(){return"ClientControl"};ClientControl.prototype.setItemCanvasIndexed=function(b){if(b){this.myItemCanvasIndexed=b;this.myItemCanvasIndexed.setZIndex("11");fuse(this.myItemCanvasIndexed,"onload",this,function(){this.onItemsLoad()});this.myLoadPool.addToPool(this.myItemCanvasIndexed.getLoadPool())}};ClientControl.prototype.getItemCanvas=function(){if(!this.myItemCanvas){this.myItemCanvas=new ItemCanvas(this.myMap)}return this.myItemCanvas};ClientControl.prototype.toInternal=function(f,g){var c=this.myMap.getParameterSet();var h=Coordinate.get(f,g,this.myMap.getParameterSet().getInt("default_coordinate_system"));return h.to(this.myMap.getMapSet().getInt("map_coordinate_system")).getInternal()};ClientControl.prototype.coordinateToInternal=function(b){return b.to(this.myMap.getMapSet().getInt("map_coordinate_system")).getInternal()};ClientControl.prototype.createCoordinate=function(d,c){return Coordinate.get(d,c,this.myMap.getParameterSet().getInt("default_coordinate_system"))};ClientControl.alertUnsupported=function(b){alert("Unsupported ClientControl call: '"+b+"' is not yet supported by GeositionClient Web 2.0")};ClientControl.alertDepricated=function(b){alert("Depricated ClientControl call: '"+b+"' is depricated by GeositionClient Web 2.0 since GeositionPlatform 4.0.1099")};ClientControl.prototype.onItemsLoad=function(){};ClientControl.prototype.numberedItemsChange=function(){if(this.myItemCanvasIndexed){var e=this.myItemCanvasIndexed.getItemsInView();var f=new Array();for(var d=0;d<e.length;d++){if(instanceOf(e[d],AbstractItemPoint)){f.push(e[d])}}if(!arrayCompare(f,this.myLastNumberedItems)){this.myLastNumberedItems=f;this.onNumberedItemsChange(this.myLastNumberedItems.length)}}};ClientControl.prototype.onNumberedItemsChange=function(){};ClientControl.prototype.onClickGeocoder=function(e,f,d){};
strap("com.geosition.map.Map");strap("com.geosition.map.MapOverview");strap("com.geosition.map.util.ButtonPanel");strap("com.geosition.map.util.ScaleBar");strap("com.geosition.map.util.ZoomBox");strap("com.geosition.map.item.ItemCanvas");strap("com.geosition.util.gui.tooltip.TemplateTooltip");strap("com.geosition.util.gui.tooltip.ToolTip");strap("com.geosition.util.gui.tooltip.ToolTipShadow");strap("com.geosition.util.gui.tooltip.ToolTipList");strap("com.geosition.util.gui.tooltip.ToolTipInfoBox");strap("com.geosition.util.gui.Template");declareClass("GeositionMap","Map");GeositionMap.prototype.myOverviewMap=null;GeositionMap.prototype.myItemCanvas=null;GeositionMap.prototype.myTooltip=null;GeositionMap.prototype.myMarkedItem=null;GeositionMap.prototype.myButtonPanel=null;GeositionMap.prototype.myZoomBox=null;function GeositionMap(a,b,c){this.construct(a,b,c);this.setUp()}GeositionMap.prototype.setUp=function(){this.myItemCanvas=new ItemCanvas(this);this.myOverviewMap=new MapOverview(this);this.myOverviewMap.setZIndex(11);this.myOverviewMap.setCssId("overview");this.myOverviewMap.setCssClass("geosition_overview");this.append(this.myOverviewMap);var f=this.myOverviewMap.getButton();f.setCssId("overviewButton");f.setCssClass("geosition_overviewButton");this.append(f);if(this.myParameterSet.getBool("scalebar")){this.myScaleBar=new ScaleBar(this.myParameterSet.get("scalebar_width"),this.myParameterSet.get("scalebar_height"),this.getScale());this.myScaleBar.setCssId("scalebar");this.myScaleBar.setCssClass("geosition_scalebar");this.append(this.myScaleBar);StdTools.correctPositionByString(this.myScaleBar.getElement(),this.myParameterSet.get("scalebarPosition"));fuse(this,"onzoom",this.myScaleBar,this.myScaleBar.setScale)}this.myButtonPanel=new ButtonPanel(this);this.myButtonPanel.setZIndex(15);var e=document.createElement("img");e.style.borderWidth="0px";e.src=StdTools.correctUrl(this.myMapSet.get("copyrightimage"));StdTools.fixPng(e);var c=document.createElement("a");c.style.zIndex=200;c.href=this.myMapSet.get("copyrighturl");c.target="blank";c.id="copyright";c.className="geosition_copyright";c.title="Kartena AB";c.appendChild(e);this.append(c);StdTools.correctPositionByString(c,this.myParameterSet.get("copyright_position"));if(this.myParameterSet.get("templateFileUrl")){Template.load(this.myParameterSet.get("templateFileUrl"))}new ToolTip(this.myElement);if(this.myParameterSet.getBool("infoBoxShowMultipleTitles")){this.myTooltip=new ToolTipList(this.myElement)}else{if(this.myParameterSet.getBool("infoBoxShadow")){this.myTooltip=new ToolTipShadow(this.myElement)}}var b=new ToolTipInfoBox(this.myElement,this.myParameterSet.get("mouseClickItemBoxStatusText"),this.myParameterSet.get("infoboxStatusImageUrl")+"small_left_default.gif",this.myParameterSet.get("infoboxStatusImageUrl")+"small_right_default.gif");b.setHideDragger(this.myDragger);fuse(this,"onchange",b,b.hide);TemplateTooltip.registerAll(this.myElement);var d=this.myParameterSet.get("zoomOnScroll");if(typeof(d)=="undefined"||d==true){this.myZoomBox=new ZoomBox(this)}this.setUp=null};GeositionMap.prototype.add=function(a){if(a instanceof Array){this.myItemCanvas.addItems(a)}else{this.myItemCanvas.add(a)}};GeositionMap.prototype.remove=function(a){this.myItemCanvas.removeItem(a)};GeositionMap.prototype.clear=function(){this.myItemCanvas.clear()};GeositionMap.prototype.markItem=function(a,b){if(!b){var b=a.getCoordinate()}this.slideCenter(b);this.unmarkItem();this.myMarkedItem=a;this.myMarkedItem.startPulse()};GeositionMap.prototype.unmarkItem=function(){if(this.myMarkedItem){this.myMarkedItem.stopMotion();this.myMarkedItem=null}};GeositionMap.prototype.slideCenter=function(g){var a=g.to(this.myMapCoordinateSystem).getInternal();var e=this.coordinateToPos(g);var f=this.getDimensions();var c=f.width/2-e.x-this.myOffset.x;var b=f.height/2-e.y-this.myOffset.y;if(Math.abs(c)<f.width&&Math.abs(b)<f.height){this.myDragger.glideTo(c,b);fuseOnce(this.myDragger,"onglidestop",this,function(){this.updateLastPosition(a.x,a.y)})}else{this.centerMapToPos(e.x,e.y);this.updateLastPosition(a.x,a.y)}};GeositionMap.prototype.centerItems=function(a){if(!a||a instanceof Array){this.myItemCanvas.setItemsOverview(a)}else{this.myItemCanvas.setItemOverview(a)}};GeositionMap.prototype.getTooltip=function(){return this.myTooltip};GeositionMap.prototype.getItemCanvas=function(){return this.myItemCanvas};GeositionMap.prototype.getButtonPanel=function(){return this.myButtonPanel};GeositionMap.prototype.getZoomBox=function(){return this.myZoomBox};GeositionMap.prototype.getItemCanvas=function(){return this.myItemCanvas};
strap("com.geosition.util.VisibleElement");strap("com.geosition.util.gui.NeoSpriteClicker");strap("com.geosition.util.StdTools");declareClass("ButtonPanel");ButtonPanel.prototype.myZIndex=65535;ButtonPanel.prototype.myMap=null;ButtonPanel.prototype.myButtons=null;function ButtonPanel(a){this.myMap=a;this.setUp()}ButtonPanel.prototype.setZIndex=function(b){for(var a=0;a<this.myButtons.length;a++){this.myButtons[a].setZIndex(b)}};ButtonPanel.prototype.setUp=function(){this.myButtons=[];this.settings=this.myMap.getParameterSet();this.imageDirectoryUrl=this.settings.get("image_directory").replace(new RegExp("/*$"),"/");var a=this.myMap;this.addButton("zoom_out_default.gif","zoom_out_button_label","zoomOutButton","geosition_zoomOutButton","zoom_out_button_position",function(){a.zoomOut()});this.addButton("zoom_in_default.gif","zoom_in_button_label","zoomInButton","geosition_zoomInButton","zoom_in_button_position",function(){a.zoomIn()});this.addButton("up_default.gif","up_button_label","upButton","geosition_upButton","up_button_position",function(){var b=a.getDimensions();a.pan(0,b.height)});this.addButton("down_default.gif","down_button_label","downButton","geosition_downButton","down_button_position",function(){var b=a.getDimensions();a.pan(0,-b.height)});this.addButton("left_default.gif","left_button_label","leftButton","geosition_leftButton","left_button_position",function(){var b=a.getDimensions();a.pan(b.width,0)});this.addButton("right_default.gif","right_button_label","rightButton","geosition_rightButton","right_button_position",function(){var b=a.getDimensions();a.pan(-b.width,0)});this.setUpDiagonal();this.setUp=function(){};this.imageDirectoryUrl=null;this.map=null;this.settings=null};ButtonPanel.prototype.setUpDiagonal=function(){var a=this.myMap;this.addButton("left_up_default.gif","left_up_button_label","leftButton","geosition_leftUpButton","left_up_button_position",function(){var b=a.getDimensions();a.pan(b.width/2,b.height/2)});this.addButton("left_down_default.gif","left_down_button_label","leftButton","geosition_leftDownButton","left_down_button_position",function(){var b=a.getDimensions();a.pan(b.width/2,-b.height/2)});this.addButton("right_up_default.gif","right_up_button_label","rightButton","geosition_rightUpButton","right_up_button_position",function(){var b=a.getDimensions();a.pan(-b.width/2,b.height/2)});this.addButton("right_down_default.gif","right_down_button_label","rightButton","geosition_rightDownButton","right_down_button_position",function(){var b=a.getDimensions();a.pan(-b.width/2,-b.height/2)});this.setUpDiagonal=function(){}};ButtonPanel.prototype.addButton=function(e,f,g,b,a,c){var d=new NeoSpriteClicker(this.imageDirectoryUrl+e,this.settings.get(f));d.setCssId(g);d.setCssClass(b);this.myMap.append(d);StdTools.correctPositionByString(d.getElement(),this.settings.get(a));d.onclick=c;this.myButtons.push(d);return d};
;addClassPath("com.geosition","http://api3.geosition.com/gwc-2.0.1151-systembolaget/");strap("com.geosition.client.config.Config");strap("com.geosition.util.StdTools");gjsf.onload = function() {StdTools.enableFixPng("http://api3.geosition.com/resources/images/blank.gif");Config.setCustomerId("134");Config.setHost("http://api3.geosition.com/");Config.setMapSets([{2:{clipsize:"250",layers:"scale10:scale20:scale40:scale120:scale360:scale1080:scale2500:scale4200:scale22000",scale10:"10 12135000 61275000 18960000 76965000 12135000 61275000 18960000 76965000 1 1 2 2",scale20:"20 12120000 61260000 18960000 76980000 12135000 61275000 18960000 76965000 1 1 2 2",scale40:"40 12120000 61260000 18960000 76980000 12135000 61275000 18960000 76965000 1 1 2 2",scale120:"120 12060000 61200000 19080000 77040000 12135000 61275000 18960000 76965000 1 1 2 2",scale360:"360 11880000 61020000 19440000 77220000 12135000 61275000 18960000 76965000 1 1 2 2",scale1080:"1080 11340000 59940000 19440000 77760000 12135000 61275000 18960000 76965000 1 1 2 2",scale2500:"2500 11250000 60000000 22500000 78750000 12135000 61275000 18960000 76965000 1 1 2 2",scale4200:"4200 6300000 56700000 25200000 81900000 12135000 61275000 18960000 76965000 1 1 2 2",scale22000:"22000 0 33000000 33000000 99000000 12135000 61275000 18960000 76965000 1 1 2 2",map_coordinate_system:"1",mapserverlocation:"http://api3.geosition.com/static/maps/lmv_3_0/",copyrightimage:"http://api3.geosition.com/resources/images/copyright/kartena_lantmateriet.png",copyrighturl:"http://www.kartena.se/tekniken-bakom/licenser/lantmateriet-information-om-nyttjanderatt/",mapCoordinateSystemProj4:"+lon_0=15.808277777799999 +lat_0=0.0 +k=1.0 +x_0=1500000.0 +y_0=0.0 +proj=tmerc +units=m +ellps=bessel +towgs84=414.1,41.3,603.1,-0.855,2.141,-7.023,0.0 +no_defs ",mapCoordinateSystemName:"RT90",mapSetId:2}},{1:2,2:2,3:2,4:2,5:2,6:2}]);if(window.onLoadGeosition) {window.onLoadGeosition();}return true;}