/*
 * deCarta JavaScript Mapping API
 * Copyright 2006-2009 deCarta. All rights reserved.
 * version DDS 4.5.1sp01
 *
 * Bundles:
 *   Raphael
 *   Project: http://raphaeljs.com/
 *   License: MIT License
 *
 *   Sarissa
 *   Project: http://dev.abiss.gr/sarissa/
 *   License: Apache 2.0
 *   License Location: http://dev.abiss.gr/sarissa/licenses/asl.txt
 */
/*
 * Raphael 1.2.4 - JavaScript Vector Library
 *
 * Copyright (c) 2008 - 2009 Dmitry Baranovskiy (http://raphaeljs.com)
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
 */
window.Raphael=(function(){var a=/[, ]+/,H=document,am=window,k={was:"Raphael" in am,is:am.Raphael},ai= function(){if(ai.is(arguments[0],"array")){var E=arguments[0],R=s[aL](ai,E.splice(0,3+ai.is(E[0],ag))),aQ=R.set();for(var aP=0,aR=E[l];aP<aR;aP++){var S=E[aP]||{};({circle:1,rect:1,path:1,ellipse:1,text:1,image:1})[M](S.type)&&aQ[d](R[S.type]().attr(S))}return aQ}return s[aL](ai,arguments)},aC="appendChild",aL="apply",aI="concat",al="",A=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup"],M="hasOwnProperty",ae=/^\[object\s+|\]$/gi,aq="join",l="length",aN="prototype",aO=String[aN].toLowerCase,f=Math.max,az=Math.min,ag="number",ar="toString",ao=Object[aN][ar],aG={},aD=Math.pow,d="push",aJ=/^(?=[\da-f]$)/,c=/^url\(['"]?([^\)]+)['"]?\)$/i,K=Math.round,ah=" ",r="setAttribute",u="split",Q=parseFloat,C=parseInt,aE=String[aN].toUpperCase,h={"clip-rect":"0 0 10e9 10e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/",opacity:1,path:"M0,0",r:0,rotation:0,rx:0,ry:0,scale:"1 1",src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",translation:"0 0",width:0,x:0,y:0},V={"clip-rect":"csv",cx:ag,cy:ag,fill:"colour","fill-opacity":ag,"font-size":ag,height:ag,opacity:ag,path:"path",r:ag,rotation:"csv",rx:ag,ry:ag,scale:"csv",stroke:"colour","stroke-opacity":ag,"stroke-width":ag,translation:"csv",width:ag,x:ag,y:ag},aF="replace";ai.version="1.2.4";ai.type=(am.SVGAngle||H.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML");ai.svg=!(ai.vml=ai.type=="VML");ai._id=0;ai._oid=0;ai.fn={};ai.is= function(R,E){E=aO.call(E);return((E=="object"||E=="undefined")&&typeof R==E)||(R==null&&E=="null")||aO.call(ao.call(R)[aF](ae,al))==E};ai.setWindow= function(E){am=E;H=am.document};var au= function(R){if(ai.vml){var E=/^\s+|\s+$/g;au=ad(function(aR){var aS;aR=(aR+al).replace(E,al);try{var aP=new ActiveXObject("htmlfile");aP.write("<body>");aP.close();aS=aP.body}catch(aU){aS=createPopup().document.body}var aQ=aS.createTextRange();try{aS.style.color=aR;var aT=aQ.queryCommandValue("ForeColor");aT=((aT&255)<<16)|(aT&65280)|((aT&16711680)>>>16);return"#"+("000000"+aT[ar](16)).slice(-6)}catch(aU){return"none"}})}else{var S=H.createElement("i");S.className="Rapha\xebl Colour Picker";S.style.cssText="display:none";H.body[aC](S);au=ad(function(aP){S.style.color=aP;return H.defaultView.getComputedStyle(S,al).getPropertyValue("color")})}return au(R)};ai.hsb2rgb=ad(function(aU,aS,aY){if(ai.is(aU,"object")&&"h" in aU&&"s" in aU&&"b" in aU){aY=aU.b;aS=aU.s;aU=aU.h}var aP,aQ,aZ;if(aY==0){return{r:0,g:0,b:0,hex:"#000"}}if(aU>1||aS>1||aY>1){aU/=255;aS/=255;aY/=255}var aR=~~(aU*6),aV=(aU*6)-aR,S=aY*(1-aS),R=aY*(1-(aS*aV)),a0=aY*(1-(aS*(1-aV)));aP=[aY,R,S,S,a0,aY,aY][aR];aQ=[a0,aY,aY,R,S,S,a0][aR];aZ=[S,S,a0,aY,aY,R,S][aR];aP*=255;aQ*=255;aZ*=255;var aW={r:aP,g:aQ,b:aZ},E=(~~aP)[ar](16),aT=(~~aQ)[ar](16),aX=(~~aZ)[ar](16);E=E[aF](aJ,"0");aT=aT[aF](aJ,"0");aX=aX[aF](aJ,"0");aW.hex="#"+E+aT+aX;return aW},ai);ai.rgb2hsb=ad(function(E,R,aT){if(ai.is(E,"object")&&"r" in E&&"g" in E&&"b" in E){aT=E.b;R=E.g;E=E.r}if(ai.is(E,"string")){var aV=ai.getRGB(E);E=aV.r;R=aV.g;aT=aV.b}if(E>1||R>1||aT>1){E/=255;R/=255;aT/=255}var aS=f(E,R,aT),S=az(E,R,aT),aQ,aP,aR=aS;if(S==aS){return{h:0,s:0,b:aS}}else{var aU=(aS-S);aP=aU/aS;if(E==aS){aQ=(R-aT)/aU}else{if(R==aS){aQ=2+((aT-E)/aU)}else{aQ=4+((E-R)/aU)}}aQ/=6;aQ<0&&aQ++;aQ>1&&aQ--}return{h:aQ,s:aP,b:aR}},ai);var av=/,?([achlmqrstvxz]),?/gi;ai._path2string= function(){return this.join(",")[aF](av,"$1")};function B(aP,R,E){function S(){var aQ=Array[aN].slice.call(arguments,0),aS=aQ[aq]("\u25ba"),aR=S.cache=S.cache||{},aT=S.count=S.count||[];if(aR[M](aS)){return E?E(aR[aS]):aR[aS]}aT[l]>=1000&&delete aR[aT.shift()];aT[d](aS);aR[aS]=aP[aL](R,aQ);return E?E(aR[aS]):aR[aS]}return S}function ad(aP,R,E){function S(){var aR=Array[aN].slice.call(arguments,0);var aQ=aP[aL](R,aR);return E?E(aQ):aQ}return S}ai.getRGB=ad(function(E){if(!E||!!((E+al).indexOf("-")+1)){return{r:-1,g:-1,b:-1,hex:"none",error:1}}E=E+al;if(E=="none"){return{r:-1,g:-1,b:-1,hex:"none"}}!({hs:1,rg:1})[M](E.substring(0,2))&&(E=au(E));var aR,S,aP,aU,aS=E.match(/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgb\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|rgb\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\)|hs[bl]\(\s*([\d\.]+\s*,\s*[\d\.]+\s*,\s*[\d\.]+)\s*\)|hs[bl]\(\s*([\d\.]+%\s*,\s*[\d\.]+%\s*,\s*[\d\.]+%)\s*\))\s*$/i);if(aS){if(aS[2]){aU=C(aS[2].substring(5),16);aP=C(aS[2].substring(3,5),16);S=C(aS[2].substring(1,3),16)}if(aS[3]){aU=C(aS[3].substring(3)+aS[3].substring(3),16);aP=C(aS[3].substring(2,3)+aS[3].substring(2,3),16);S=C(aS[3].substring(1,2)+aS[3].substring(1,2),16)}if(aS[4]){aS=aS[4][u](/\s*,\s*/);S=Q(aS[0]);aP=Q(aS[1]);aU=Q(aS[2])}if(aS[5]){aS=aS[5][u](/\s*,\s*/);S=Q(aS[0])*2.55;aP=Q(aS[1])*2.55;aU=Q(aS[2])*2.55}if(aS[6]){aS=aS[6][u](/\s*,\s*/);S=Q(aS[0]);aP=Q(aS[1]);aU=Q(aS[2]);return ai.hsb2rgb(S,aP,aU)}if(aS[7]){aS=aS[7][u](/\s*,\s*/);S=Q(aS[0])*2.55;aP=Q(aS[1])*2.55;aU=Q(aS[2])*2.55;return ai.hsb2rgb(S,aP,aU)}aS={r:S,g:aP,b:aU};var R=(~~S)[ar](16),aQ=(~~aP)[ar](16),aT=(~~aU)[ar](16);R=R[aF](aJ,"0");aQ=aQ[aF](aJ,"0");aT=aT[aF](aJ,"0");aS.hex="#"+R+aQ+aT;return aS}return{r:-1,g:-1,b:-1,hex:"none",error:1}},ai);ai.getColor= function(R){var S=this.getColor.start=this.getColor.start||{h:0,s:1,b:R||0.75},E=this.hsb2rgb(S.h,S.s,S.b);S.h+=0.075;if(S.h>1){S.h=0;S.s-=0.2;S.s<=0&&(this.getColor.start={h:0,s:1,b:S.b})}return E.hex};ai.getColor.reset= function(){delete this.start};ai.parsePathString=ad(function(E){if(!E){return null}var S={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},R=[];if(ai.is(E,"array")&&ai.is(E[0],"array")){R=an(E)}if(!R[l]){(E+al)[aF](/([achlmqstvz])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?\s*,?\s*)+)/ig,function(aQ,aP,aT){var aS=[],aR=aO.call(aP);aT[aF](/(-?\d*\.?\d*(?:e[-+]?\d+)?)\s*,?\s*/ig,function(aV,aU){aU&&aS[d](+aU)});while(aS[l]>=S[aR]){R[d]([aP][aI](aS.splice(0,S[aR])));if(!S[aR]){break}}})}R[ar]=ai._path2string;return R});var O=ad(function(aV){if(!aV){return{x:0,y:0,width:0,height:0}}aV=D(aV);var aS=0,aR=0,S=[],R=[];for(var aP=0,aU=aV[l];aP<aU;aP++){if(aV[aP][0]=="M"){aS=aV[aP][1];aR=aV[aP][2];S[d](aS);R[d](aR)}else{var aQ=at(aS,aR,aV[aP][1],aV[aP][2],aV[aP][3],aV[aP][4],aV[aP][5],aV[aP][6]);S=S[aI](aQ.min.x,aQ.max.x);R=R[aI](aQ.min.y,aQ.max.y)}}var E=az[aL](0,S),aT=az[aL](0,R);return{x:E,y:aT,width:f[aL](0,S)-E,height:f[aL](0,R)-aT}}),an= function(aR){var S=[];if(!ai.is(aR,"array")||!ai.is(aR&&aR[0],"array")){aR=ai.parsePathString(aR)}for(var R=0,aP=aR[l];R<aP;R++){S[R]=[];for(var E=0,aQ=aR[R][l];E<aQ;E++){S[R][E]=aR[R][E]}}S[ar]=ai._path2string;return S},Y=ad(function(aP){if(!ai.is(aP,"array")||!ai.is(aP&&aP[0],"array")){aP=ai.parsePathString(aP)}var aV=[],aX=0,aW=0,a0=0,aZ=0,S=0;if(aP[0][0]=="M"){aX=aP[0][1];aW=aP[0][2];a0=aX;aZ=aW;S++;aV[d](["M",aX,aW])}for(var aS=S,a1=aP[l];aS<a1;aS++){var E=aV[aS]=[],aY=aP[aS];if(aY[0]!=aO.call(aY[0])){E[0]=aO.call(aY[0]);switch(E[0]){case"a":E[1]=aY[1];E[2]=aY[2];E[3]=aY[3];E[4]=aY[4];E[5]=aY[5];E[6]=+(aY[6]-aX).toFixed(3);E[7]=+(aY[7]-aW).toFixed(3);break;case"v":E[1]=+(aY[1]-aW).toFixed(3);break;case"m":a0=aY[1];aZ=aY[2];default:for(var aR=1,aT=aY[l];aR<aT;aR++){E[aR]=+(aY[aR]-((aR%2)?aX:aW)).toFixed(3)}}}else{E=aV[aS]=[];if(aY[0]=="m"){a0=aY[1]+aX;aZ=aY[2]+aW}for(var aQ=0,R=aY[l];aQ<R;aQ++){aV[aS][aQ]=aY[aQ]}}var aU=aV[aS][l];switch(aV[aS][0]){case"z":aX=a0;aW=aZ;break;case"h":aX+=+aV[aS][aU-1];break;case"v":aW+=+aV[aS][aU-1];break;default:aX+=+aV[aS][aU-2];aW+=+aV[aS][aU-1]}}aV[ar]=ai._path2string;return aV},0,an),p=ad(function(aP){if(!ai.is(aP,"array")||!ai.is(aP&&aP[0],"array")){aP=ai.parsePathString(aP)}var aU=[],aW=0,aV=0,aZ=0,aY=0,S=0;if(aP[0][0]=="M"){aW=+aP[0][1];aV=+aP[0][2];aZ=aW;aY=aV;S++;aU[0]=["M",aW,aV]}for(var aS=S,a0=aP[l];aS<a0;aS++){var E=aU[aS]=[],aX=aP[aS];if(aX[0]!=aE.call(aX[0])){E[0]=aE.call(aX[0]);switch(E[0]){case"A":E[1]=aX[1];E[2]=aX[2];E[3]=aX[3];E[4]=aX[4];E[5]=aX[5];E[6]=+(aX[6]+aW);E[7]=+(aX[7]+aV);break;case"V":E[1]=+aX[1]+aV;break;case"H":E[1]=+aX[1]+aW;break;case"M":aZ=+aX[1]+aW;aY=+aX[2]+aV;default:for(var aR=1,aT=aX[l];aR<aT;aR++){E[aR]=+aX[aR]+((aR%2)?aW:aV)}}}else{for(var aQ=0,R=aX[l];aQ<R;aQ++){aU[aS][aQ]=aX[aQ]}}switch(E[0]){case"Z":aW=aZ;aV=aY;break;case"H":aW=E[1];break;case"V":aV=E[1];break;default:aW=aU[aS][aU[aS][l]-2];aV=aU[aS][aU[aS][l]-1]}}aU[ar]=ai._path2string;return aU},null,an),aM= function(R,aP,E,S){return[R,aP,E,S,E,S]},aB= function(R,aP,aS,aQ,E,S){var aR=1/3,aT=2/3;return[aR*R+aT*aS,aR*aP+aT*aQ,aR*E+aT*aS,aR*S+aT*aQ,E,S]},G= function(a0,bu,a9,a7,a1,aV,aQ,aZ,bt,a2){var aP=Math.PI,a6=aP*120/180,E=aP/180*(+a1||0),bd=[],ba,bq=ad(function(bw,bz,bv){var by=bw*Math.cos(bv)-bz*Math.sin(bv),bx=bw*Math.sin(bv)+bz*Math.cos(bv);return{x:by,y:bx}});if(!a2){ba=bq(a0,bu,-E);a0=ba.x;bu=ba.y;ba=bq(aZ,bt,-E);aZ=ba.x;bt=ba.y;var R=Math.cos(aP/180*a1),aX=Math.sin(aP/180*a1),bf=(a0-aZ)/2,be=(bu-bt)/2;a9=f(a9,Math.abs(bf));a7=f(a7,Math.abs(be));var S=a9*a9,bi=a7*a7,bk=(aV==aQ?-1:1)*Math.sqrt(Math.abs((S*bi-S*be*be-bi*bf*bf)/(S*be*be+bi*bf*bf))),a4=bk*a9*be/a7+(a0+aZ)/2,a3=bk*-a7*bf/a9+(bu+bt)/2,aU=Math.asin((bu-a3)/a7),aT=Math.asin((bt-a3)/a7);aU=a0<a4?aP-aU:aU;aT=aZ<a4?aP-aT:aT;aU<0&&(aU=aP*2+aU);aT<0&&(aT=aP*2+aT);if(aQ&&aU>aT){aU=aU-aP*2}if(!aQ&&aT>aU){aT=aT-aP*2}}else{aU=a2[0];aT=a2[1];a4=a2[2];a3=a2[3]}var aY=aT-aU;if(Math.abs(aY)>a6){var a5=aT,a8=aZ,aW=bt;aT=aU+a6*(aQ&&aT>aU?1:-1);aZ=a4+a9*Math.cos(aT);bt=a3+a7*Math.sin(aT);bd=G(aZ,bt,a9,a7,a1,0,aQ,a8,aW,[aT,a5,a4,a3])}aY=aT-aU;var aS=Math.cos(aU),bs=Math.sin(aU),aR=Math.cos(aT),br=Math.sin(aT),bg=Math.tan(aY/4),bj=4/3*a9*bg,bh=4/3*a7*bg,bp=[a0,bu],bo=[a0+bj*bs,bu-bh*aS],bn=[aZ+bj*br,bt-bh*aR],bl=[aZ,bt];bo[0]=2*bp[0]-bo[0];bo[1]=2*bp[1]-bo[1];if(a2){return[bo,bn,bl][aI](bd)}else{bd=[bo,bn,bl][aI](bd)[aq](",")[u](",");var bb=[];for(var bm=0,bc=bd[l];bm<bc;bm++){bb[bm]=bm%2?bq(bd[bm-1],bd[bm],E).y:bq(bd[bm],bd[bm+1],E).x}return bb}},I=ad(function(R,E,a4,a2,aR,aQ,aT,aS,aY){var aW=aD(1-aY,3)*R+aD(1-aY,2)*3*aY*a4+(1-aY)*3*aY*aY*aR+aD(aY,3)*aT,aU=aD(1-aY,3)*E+aD(1-aY,2)*3*aY*a2+(1-aY)*3*aY*aY*aQ+aD(aY,3)*aS,a0=R+2*aY*(a4-R)+aY*aY*(aR-2*a4+R),aZ=E+2*aY*(a2-E)+aY*aY*(aQ-2*a2+E),a3=a4+2*aY*(aR-a4)+aY*aY*(aT-2*aR+a4),a1=a2+2*aY*(aQ-a2)+aY*aY*(aS-2*aQ+a2),aX=(1-aY)*R+aY*a4,aV=(1-aY)*E+aY*a2,aP=(1-aY)*aR+aY*aT,S=(1-aY)*aQ+aY*aS;return{x:aW,y:aU,m:{x:a0,y:aZ},n:{x:a3,y:a1},start:{x:aX,y:aV},end:{x:aP,y:S}}}),at=ad(function(R,E,aP,S,a2,a1,aY,aV){var a0=(a2-2*aP+R)-(aY-2*a2+aP),aX=2*(aP-R)-2*(a2-aP),aU=R-aP,aS=(-aX+Math.sqrt(aX*aX-4*a0*aU))/2/a0,aQ=(-aX-Math.sqrt(aX*aX-4*a0*aU))/2/a0,aW=[E,aV],aZ=[R,aY],aT=I(R,E,aP,S,a2,a1,aY,aV,aS>0&&aS<1?aS:0),aR=I(R,E,aP,S,a2,a1,aY,aV,aQ>0&&aQ<1?aQ:0);aZ=aZ[aI](aT.x,aR.x);aW=aW[aI](aT.y,aR.y);a0=(a1-2*S+E)-(aV-2*a1+S);aX=2*(S-E)-2*(a1-S);aU=E-S;aS=(-aX+Math.sqrt(aX*aX-4*a0*aU))/2/a0;aQ=(-aX-Math.sqrt(aX*aX-4*a0*aU))/2/a0;aT=I(R,E,aP,S,a2,a1,aY,aV,aS>0&&aS<1?aS:0);aR=I(R,E,aP,S,a2,a1,aY,aV,aQ>0&&aQ<1?aQ:0);aZ=aZ[aI](aT.x,aR.x);aW=aW[aI](aT.y,aR.y);return{min:{x:az[aL](0,aZ),y:az[aL](0,aW)},max:{x:f[aL](0,aZ),y:f[aL](0,aW)}}}),D=ad(function(a0,aV){var aP=p(a0),aW=aV&&p(aV),aX={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},E={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},aR= function(a2,a3){var a1,a4;if(!a2){return["C",a3.x,a3.y,a3.x,a3.y,a3.x,a3.y]}!(a2[0] in {T:1,Q:1})&&(a3.qx=a3.qy=null);switch(a2[0]){case"M":a3.X=a2[1];a3.Y=a2[2];break;case"A":a2=["C"][aI](G[aL](0,[a3.x,a3.y][aI](a2.slice(1))));break;case"S":a1=a3.x+(a3.x-(a3.bx||a3.x));a4=a3.y+(a3.y-(a3.by||a3.y));a2=["C",a1,a4][aI](a2.slice(1));break;case"T":a3.qx=a3.x+(a3.x-(a3.qx||a3.x));a3.qy=a3.y+(a3.y-(a3.qy||a3.y));a2=["C"][aI](aB(a3.x,a3.y,a3.qx,a3.qy,a2[1],a2[2]));break;case"Q":a3.qx=a2[1];a3.qy=a2[2];a2=["C"][aI](aB(a3.x,a3.y,a2[1],a2[2],a2[3],a2[4]));break;case"L":a2=["C"][aI](aM(a3.x,a3.y,a2[1],a2[2]));break;case"H":a2=["C"][aI](aM(a3.x,a3.y,a2[1],a3.y));break;case"V":a2=["C"][aI](aM(a3.x,a3.y,a3.x,a2[1]));break;case"Z":a2=["C"][aI](aM(a3.x,a3.y,a3.X,a3.Y));break}return a2},R= function(a1,a2){if(a1[a2][l]>7){a1[a2].shift();var a3=a1[a2];while(a3[l]){a1.splice(a2++,0,["C"][aI](a3.splice(0,6)))}a1.splice(a2,1);aY=f(aP[l],aW&&aW[l]||0)}},S= function(a7,a6,a4,a3,a5){if(a7&&a6&&a7[a5][0]=="M"&&a6[a5][0]!="M"){a6.splice(a5,0,["M",a3.x,a3.y]);a4.bx=0;a4.by=0;a4.x=a7[a5][1];a4.y=a7[a5][2];aY=f(aP[l],aW&&aW[l]||0)}};for(var aT=0,aY=f(aP[l],aW&&aW[l]||0);aT<aY;aT++){aP[aT]=aR(aP[aT],aX);R(aP,aT);aW&&(aW[aT]=aR(aW[aT],E));aW&&R(aW,aT);S(aP,aW,aX,E,aT);S(aW,aP,E,aX,aT);var aS=aP[aT],aZ=aW&&aW[aT],aQ=aS[l],aU=aW&&aZ[l];aX.x=aS[aQ-2];aX.y=aS[aQ-1];aX.bx=Q(aS[aQ-4])||aX.x;aX.by=Q(aS[aQ-3])||aX.y;E.bx=aW&&(Q(aZ[aU-4])||E.x);E.by=aW&&(Q(aZ[aU-3])||E.y);E.x=aW&&aZ[aU-2];E.y=aW&&aZ[aU-1]}return aW?[aP,aW]:aP},null,an),n=ad(function(aU){var aT=[];for(var aQ=0,aV=aU[l];aQ<aV;aQ++){var E={},aS=aU[aQ].match(/^([^:]*):?([\d\.]*)/);E.color=ai.getRGB(aS[1]);if(E.color.error){return null}E.color=E.color.hex;aS[2]&&(E.offset=aS[2]+"%");aT[d](E)}for(var aQ=1,aV=aT[l]-1;aQ<aV;aQ++){if(!aT[aQ].offset){var R=Q(aT[aQ-1].offset||0),S=0;for(var aP=aQ+1;aP<aV;aP++){if(aT[aP].offset){S=aT[aP].offset;break}}if(!S){S=100;aP=aV}S=Q(S);var aR=(S-R)/(aP-aQ+1);for(;aQ<aP;aQ++){R+=aR;aT[aQ].offset=R+"%"}}}return aT}),aj= function(){var S,R,aQ,aP,E;if(ai.is(arguments[0],"string")||ai.is(arguments[0],"object")){if(ai.is(arguments[0],"string")){S=H.getElementById(arguments[0])}else{S=arguments[0]}if(S.tagName){if(arguments[1]==null){return{container:S,width:S.style.pixelWidth||S.offsetWidth,height:S.style.pixelHeight||S.offsetHeight}}else{return{container:S,width:arguments[1],height:arguments[2]}}}}else{if(ai.is(arguments[0],ag)&&arguments[l]>3){return{container:1,x:arguments[0],y:arguments[1],width:arguments[2],height:arguments[3]}}}},ax= function(E,S){var R=this;for(var aP in S){if(S[M](aP)&&!(aP in E)){switch(typeof S[aP]){case"function":(function(aQ){E[aP]=E===R?aQ:function(){return aQ[aL](R,arguments)}})(S[aP]);break;case"object":E[aP]=E[aP]||{};ax.call(this,E[aP],S[aP]);break;default:E[aP]=S[aP];break}}}},af= function(E,R){E==R.top&&(R.top=E.prev);E==R.bottom&&(R.bottom=E.next);E.next&&(E.next.prev=E.prev);E.prev&&(E.prev.next=E.next)},U= function(E,R){if(R.top===E){return}af(E,R);E.next=null;E.prev=R.top;R.top.next=E;R.top=E},j= function(E,R){if(R.bottom===E){return}af(E,R);E.next=R.bottom;E.prev=null;R.bottom.prev=E;R.bottom=E},w= function(R,E,S){af(R,S);E==S.top&&(S.top=R);E.next&&(E.next.prev=R);R.next=E.next;R.prev=E;E.next=R},ak= function(R,E,S){af(R,S);E==S.bottom&&(S.bottom=R);E.prev&&(E.prev.next=R);R.prev=E.prev;E.prev=R;R.next=E};if(ai.svg){aG.svgns="http://www.w3.org/2000/svg";aG.xlink="http://www.w3.org/1999/xlink";var K= function(E){return +E+(~~E===E)*0.5},P= function(aQ){for(var R=0,S=aQ[l];R<S;R++){if(aO.call(aQ[R][0])!="a"){for(var E=1,aP=aQ[R][l];E<aP;E++){aQ[R][E]=K(aQ[R][E])}}else{aQ[R][6]=K(aQ[R][6]);aQ[R][7]=K(aQ[R][7])}}return aQ},aA= function(S,E){if(E){for(var R in E){if(E[M](R)){S[r](R,E[R])}}}else{return H.createElementNS(aG.svgns,S)}};ai[ar]= function(){return"Your browser supports SVG.\nYou are running Rapha\xebl "+this.version};var o= function(E,aP){var R=aA("path");aP.canvas&&aP.canvas[aC](R);var S=new ap(R,aP);S.type="path";W(S,{fill:"none",stroke:"#000",path:E});return S};var b= function(S,aY,E){var aV="linear",aS=0.5,aQ=0.5,a0=S.style;aY=(aY+al)[aF](/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,function(a2,a1,a3){aV="radial";if(a1&&a3){aS=Q(a1);aQ=Q(a3);if(aD(aS-0.5,2)+aD(aQ-0.5,2)>0.25){aQ=Math.sqrt(0.25-aD(aS-0.5,2))+0.5}}return al});aY=aY[u](/\s*\-\s*/);if(aV=="linear"){var aR=aY.shift();aR=-Q(aR);if(isNaN(aR)){return null}var aP=[0,0,Math.cos(aR*Math.PI/180),Math.sin(aR*Math.PI/180)],aX=1/(f(Math.abs(aP[2]),Math.abs(aP[3]))||1);aP[2]*=aX;aP[3]*=aX;if(aP[2]<0){aP[0]=-aP[2];aP[2]=0}if(aP[3]<0){aP[1]=-aP[3];aP[3]=0}}var aU=n(aY);if(!aU){return null}var R=aA(aV+"Gradient");R.id="r"+(ai._id++)[ar](36);aV=="radial"?aA(R,{fx:aS,fy:aQ}):aA(R,{x1:aP[0],y1:aP[1],x2:aP[2],y2:aP[3]});E.defs[aC](R);for(var aT=0,aZ=aU[l];aT<aZ;aT++){var aW=aA("stop");aA(aW,{offset:aU[aT].offset?aU[aT].offset:!aT?"0%":"100%","stop-color":aU[aT].color||"#fff"});R[aC](aW)}aA(S,{fill:"url(#"+R.id+")",opacity:1,"fill-opacity":1});a0.fill=al;a0.opacity=1;a0.fillOpacity=1;return 1};var J= function(R){var E=R.getBBox();aA(R.pattern,{patternTransform:ai.format("translate({0},{1})",E.x,E.y)})};var W= function(aY,a7){var a1={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},a3=aY.node,aZ=aY.attrs,aV=aY.rotate(),aR= function(be,bd){bd=a1[aO.call(bd)];if(bd){var bb=be.attrs["stroke-width"]||"1",a9={round:bb,square:bb,butt:0}[be.attrs["stroke-linecap"]||a7["stroke-linecap"]]||0,bc=[];var ba=bd[l];while(ba--){bc[ba]=bd[ba]*bb+((ba%2)?1:-1)*a9}aA(a3,{"stroke-dasharray":bc[aq](",")})}};a7[M]("rotation")&&(aV=a7.rotation);var aU=(aV+al)[u](a);if(!(aU.length-1)){aU=null}else{aU[1]=+aU[1];aU[2]=+aU[2]}Q(aV)&&aY.rotate(0,true);for(var a2 in a7){if(a7[M](a2)){if(!h[M](a2)){continue}var a0=a7[a2];aZ[a2]=a0;switch(a2){case"rotation":aY.rotate(a0,true);break;case"href":case"title":case"target":var a5=a3.parentNode;if(aO.call(a5.tagName)!="a"){var aP=aA("a");a5.insertBefore(aP,a3);aP[aC](a3);a5=aP}a5.setAttributeNS(aY.paper.xlink,a2,a0);break;case"cursor":a3.style.cursor=a0;break;case"clip-rect":var R=(a0+al)[u](a);if(R[l]==4){aY.clip&&aY.clip.parentNode.parentNode.removeChild(aY.clip.parentNode);var S=aA("clipPath"),a4=aA("rect");S.id="r"+(ai._id++)[ar](36);aA(a4,{x:R[0],y:R[1],width:R[2],height:R[3]});S[aC](a4);aY.paper.defs[aC](S);aA(a3,{"clip-path":"url(#"+S.id+")"});aY.clip=a4}if(!a0){var a6=H.getElementById(a3.getAttribute("clip-path")[aF](/(^url\(#|\)$)/g,al));a6&&a6.parentNode.removeChild(a6);aA(a3,{"clip-path":al});delete aY.clip}break;case"path":if(a0&&aY.type=="path"){aZ.path=P(p(a0));aA(a3,{d:aZ.path})}break;case"width":a3[r](a2,a0);if(aZ.fx){a2="x";a0=aZ.x}else{break}case"x":if(aZ.fx){a0=-aZ.x-(aZ.width||0)}case"rx":if(a2=="rx"&&aY.type=="rect"){break}case"cx":aU&&(a2=="x"||a2=="cx")&&(aU[1]+=a0-aZ[a2]);a3[r](a2,K(a0));aY.pattern&&J(aY);break;case"height":a3[r](a2,a0);if(aZ.fy){a2="y";a0=aZ.y}else{break}case"y":if(aZ.fy){a0=-aZ.y-(aZ.height||0)}case"ry":if(a2=="ry"&&aY.type=="rect"){break}case"cy":aU&&(a2=="y"||a2=="cy")&&(aU[2]+=a0-aZ[a2]);a3[r](a2,K(a0));aY.pattern&&J(aY);break;case"r":if(aY.type=="rect"){aA(a3,{rx:a0,ry:a0})}else{a3[r](a2,a0)}break;case"src":if(aY.type=="image"){a3.setAttributeNS(aY.paper.xlink,"href",a0)}break;case"stroke-width":a3.style.strokeWidth=a0;a3[r](a2,a0);if(aZ["stroke-dasharray"]){aR(aY,aZ["stroke-dasharray"])}break;case"stroke-dasharray":aR(aY,a0);break;case"translation":var aS=(a0+al)[u](a);aS[0]=+aS[0]||0;aS[1]=+aS[1]||0;if(aU){aU[1]+=aS[0];aU[2]+=aS[1]}q.call(aY,aS[0],aS[1]);break;case"scale":var aS=(a0+al)[u](a);aY.scale(+aS[0]||1,+aS[1]||+aS[0]||1,+aS[2]||null,+aS[3]||null);break;case"fill":var aQ=(a0+al).match(c);if(aQ){var S=aA("pattern"),aX=aA("image");S.id="r"+(ai._id++)[ar](36);aA(S,{x:0,y:0,patternUnits:"userSpaceOnUse"});aA(aX,{x:0,y:0});aX.setAttributeNS(aY.paper.xlink,"href",aQ[1]);S[aC](aX);var a8=H.createElement("img");a8.style.cssText="position:absolute;left:-9999em;top-9999em";a8.onload= function(){aA(S,{width:this.offsetWidth,height:this.offsetHeight});aA(aX,{width:this.offsetWidth,height:this.offsetHeight});H.body.removeChild(this);aG.safari()};H.body[aC](a8);a8.src=aQ[1];aY.paper.defs[aC](S);a3.style.fill="url(#"+S.id+")";aA(a3,{fill:"url(#"+S.id+")"});aY.pattern=S;aY.pattern&&J(aY);break}if(!ai.getRGB(a0).error){delete a7.gradient;delete aZ.gradient;!ai.is(aZ.opacity,"undefined")&&ai.is(a7.opacity,"undefined")&&aA(a3,{opacity:aZ.opacity});!ai.is(aZ["fill-opacity"],"undefined")&&ai.is(a7["fill-opacity"],"undefined")&&aA(a3,{"fill-opacity":aZ["fill-opacity"]})}else{if((({circle:1,ellipse:1})[M](aY.type)||(a0+al).charAt()!="r")&&b(a3,a0,aY.paper)){aZ.gradient=a0;aZ.fill="none";break}}case"stroke":a3[r](a2,ai.getRGB(a0).hex);break;case"gradient":(({circle:1,ellipse:1})[M](aY.type)||(a0+al).charAt()!="r")&&b(a3,a0,aY.paper);break;case"opacity":case"fill-opacity":if(aZ.gradient){var E=H.getElementById(a3.getAttribute("fill")[aF](/^url\(#|\)$/g,al));if(E){var aT=E.getElementsByTagName("stop");aT[aT[l]-1][r]("stop-opacity",a0)}break}default:a2=="font-size"&&(a0=C(a0,10)+"px");var aW=a2[aF](/(\-.)/g,function(a9){return aE.call(a9.substring(1))});a3.style[aW]=a0;a3[r](a2,a0);break}}}z(aY,a7);if(aU){aY.rotate(aU.join(ah))}else{Q(aV)&&aY.rotate(aV,true)}};var g=1.2;var z= function(E,aP){if(E.type!="text"||!(aP[M]("text")||aP[M]("font")||aP[M]("font-size")||aP[M]("x")||aP[M]("y"))){return}var aU=E.attrs,R=E.node,aW=R.firstChild?C(H.defaultView.getComputedStyle(R.firstChild,al).getPropertyValue("font-size"),10):10;if(aP[M]("text")){aU.text=aP.text;while(R.firstChild){R.removeChild(R.firstChild)}var S=(aP.text+al)[u]("\n");for(var aQ=0,aV=S[l];aQ<aV;aQ++){if(S[aQ]){var aS=aA("tspan");aQ&&aA(aS,{dy:aW*g,x:aU.x});aS[aC](H.createTextNode(S[aQ]));R[aC](aS)}}}else{var S=R.getElementsByTagName("tspan");for(var aQ=0,aV=S[l];aQ<aV;aQ++){aQ&&aA(S[aQ],{dy:aW*g,x:aU.x})}}aA(R,{y:aU.y});var aR=E.getBBox(),aT=aU.y-(aR.y+aR.height/2);aT&&isFinite(aT)&&aA(R,{y:aU.y+aT})};var ap= function(R,E){var aP=0,S=0;this[0]=R;this.id=ai._oid++;this.node=R;R.raphael=this;this.paper=E;this.attrs=this.attrs||{};this.transformations=[];this._={tx:0,ty:0,rt:{deg:0,cx:0,cy:0},sx:1,sy:1};!E.bottom&&(E.bottom=this);this.prev=E.top;E.top&&(E.top.next=this);E.top=this;this.next=null};ap[aN].rotate= function(R,E,aP){if(this.removed){return this}if(R==null){if(this._.rt.cx){return[this._.rt.deg,this._.rt.cx,this._.rt.cy][aq](ah)}return this._.rt.deg}var S=this.getBBox();R=(R+al)[u](a);if(R[l]-1){E=Q(R[1]);aP=Q(R[2])}R=Q(R[0]);if(E!=null){this._.rt.deg=R}else{this._.rt.deg+=R}(aP==null)&&(E=null);this._.rt.cx=E;this._.rt.cy=aP;E=E==null?S.x+S.width/2:E;aP=aP==null?S.y+S.height/2:aP;if(this._.rt.deg){this.transformations[0]=ai.format("rotate({0} {1} {2})",this._.rt.deg,E,aP);this.clip&&aA(this.clip,{transform:ai.format("rotate({0} {1} {2})",-this._.rt.deg,E,aP)})}else{this.transformations[0]=al;this.clip&&aA(this.clip,{transform:al})}aA(this.node,{transform:this.transformations[aq](ah)});return this};ap[aN].hide= function(){!this.removed&&(this.node.style.display="none");return this};ap[aN].show= function(){!this.removed&&(this.node.style.display="");return this};ap[aN].remove= function(){if(this.removed){return}af(this,this.paper);this.node.parentNode.removeChild(this.node);for(var E in this){delete this[E]}this.removed=true};ap[aN].getBBox= function(){if(this.removed){return this}if(this.type=="path"){return O(this.attrs.path)}if(this.node.style.display=="none"){this.show();var R=true}var aR={};try{aR=this.node.getBBox()}catch(aP){}finally{aR=aR||{}}if(this.type=="text"){aR={x:aR.x,y:Infinity,width:0,height:0};for(var E=0,S=this.node.getNumberOfChars();E<S;E++){var aQ=this.node.getExtentOfChar(E);(aQ.y<aR.y)&&(aR.y=aQ.y);(aQ.y+aQ.height-aR.y>aR.height)&&(aR.height=aQ.y+aQ.height-aR.y);(aQ.x+aQ.width-aR.x>aR.width)&&(aR.width=aQ.x+aQ.width-aR.x)}}R&&this.hide();return aR};ap[aN].attr= function(){if(this.removed){return this}if(arguments[l]==0){var aP={};for(var S in this.attrs){if(this.attrs[M](S)){aP[S]=this.attrs[S]}}return aP}if(arguments[l]==1&&ai.is(arguments[0],"string")){if(arguments[0]=="translation"){return q.call(this)}if(arguments[0]=="rotation"){return this.rotate()}if(arguments[0]=="scale"){return this.scale()}return this.attrs[arguments[0]]}if(arguments[l]==1&&ai.is(arguments[0],"array")){var E={};for(var R in arguments[0]){if(arguments[0][M](R)){E[arguments[0][R]]=this.attrs[arguments[0][R]]}}return E}if(arguments[l]==2){var aQ={};aQ[arguments[0]]=arguments[1];W(this,aQ)}else{if(arguments[l]==1&&ai.is(arguments[0],"object")){W(this,arguments[0])}}return this};ap[aN].toFront= function(){if(this.removed){return this}this.node.parentNode[aC](this.node);var E=this.paper;E.top!=this&&U(this,E);return this};ap[aN].toBack= function(){if(this.removed){return this}if(this.node.parentNode.firstChild!=this.node){this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild);j(this,this.paper);var E=this.paper}return this};ap[aN].insertAfter= function(R){if(this.removed){return this}var E=this.paper,S=R.node;if(S.nextSibling){S.parentNode.insertBefore(this.node,S.nextSibling)}else{S.parentNode[aC](this.node)}w(this,R,this.paper);return this};ap[aN].insertBefore= function(E){if(this.removed){return this}var R=E.node;R.parentNode.insertBefore(this.node,R);ak(this,E,this.paper);return this};var L= function(R,E,aR,aQ){E=K(E);aR=K(aR);var aP=aA("circle");R.canvas&&R.canvas[aC](aP);var S=new ap(aP,R);S.attrs={cx:E,cy:aR,r:aQ,fill:"none",stroke:"#000"};S.type="circle";aA(aP,S.attrs);return S};var aw= function(S,E,aT,R,aR,aS){E=K(E);aT=K(aT);var aQ=aA("rect");S.canvas&&S.canvas[aC](aQ);var aP=new ap(aQ,S);aP.attrs={x:E,y:aT,width:R,height:aR,r:aS||0,rx:aS||0,ry:aS||0,fill:"none",stroke:"#000"};aP.type="rect";aA(aQ,aP.attrs);return aP};var ac= function(R,E,aS,aR,aQ){E=K(E);aS=K(aS);var aP=aA("ellipse");R.canvas&&R.canvas[aC](aP);var S=new ap(aP,R);S.attrs={cx:E,cy:aS,rx:aR,ry:aQ,fill:"none",stroke:"#000"};S.type="ellipse";aA(aP,S.attrs);return S};var m= function(S,aS,E,aT,R,aR){var aQ=aA("image");aA(aQ,{x:E,y:aT,width:R,height:aR,preserveAspectRatio:"none"});aQ.setAttributeNS(S.xlink,"href",aS);S.canvas&&S.canvas[aC](aQ);var aP=new ap(aQ,S);aP.attrs={x:E,y:aT,width:R,height:aR,src:aS};aP.type="image";return aP};var T= function(R,E,aR,aQ){var aP=aA("text");aA(aP,{x:E,y:aR,"text-anchor":"middle"});R.canvas&&R.canvas[aC](aP);var S=new ap(aP,R);S.attrs={x:E,y:aR,"text-anchor":"middle",text:aQ,font:h.font,stroke:"none",fill:"#000"};S.type="text";W(S,S.attrs);return S};var aK= function(R,E){this.width=R||this.width;this.height=E||this.height;this.canvas[r]("width",this.width);this.canvas[r]("height",this.height);return this};var s= function(){var aP=aj[aL](null,arguments),S=aP&&aP.container,R=aP.x,aT=aP.y,aQ=aP.width,E=aP.height;if(!S){throw new Error("SVG container not found.")}aG.canvas=aA("svg");var aS=aG.canvas;aG.width=aQ||512;aG.height=E||342;aS[r]("width",aG.width);aS[r]("height",aG.height);if(S==1){aS.style.cssText="position:absolute;left:"+R+"px;top:"+aT+"px";H.body[aC](aS)}else{if(S.firstChild){S.insertBefore(aS,S.firstChild)}else{S[aC](aS)}}S={canvas:aS};for(var aR in aG){if(aG[M](aR)){S[aR]=aG[aR]}}S.bottom=S.top=null;ax.call(S,S,ai.fn);S.clear();S.raphael=ai;return S};aG.clear= function(){var E=this.canvas;while(E.firstChild){E.removeChild(E.firstChild)}this.bottom=this.top=null;(this.desc=aA("desc"))[aC](H.createTextNode("Created with Rapha\xebl"));E[aC](this.desc);E[aC](this.defs=aA("defs"))};aG.remove= function(){this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var E in this){delete this[E]}}}if(ai.vml){var ay= function(aZ){var aW=/[ahqtv]/ig,aR=p;(aZ+al).match(aW)&&(aR=D);aW=/[clmz]/g;if(aR==p&&!(aZ+al).match(aW)){var R={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},aP=/([clmz]),?([^clmz]*)/gi,aQ=/-?[^,\s-]+/g;var aV=(aZ+al)[aF](aP,function(a1,a3,a0){var a2=[];a0[aF](aQ,function(a4){a2[d](K(a4))});return R[a3]+a2});return aV}var aX=aR(aZ),S,aV=[],E;for(var aT=0,aY=aX[l];aT<aY;aT++){S=aX[aT];E=aO.call(aX[aT][0]);E=="z"&&(E="x");for(var aS=1,aU=S[l];aS<aU;aS++){E+=K(S[aS])+(aS!=aU-1?",":al)}aV[d](E)}return aV[aq](ah)};ai[ar]= function(){return"Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl "+this.version};var o= function(E,aR){var aP=ab("group");aP.style.cssText="position:absolute;left:0;top:0;width:"+aR.width+"px;height:"+aR.height+"px";aP.coordsize=aR.coordsize;aP.coordorigin=aR.coordorigin;var S=ab("shape"),R=S.style;R.width=aR.width+"px";R.height=aR.height+"px";S.coordsize=this.coordsize;S.coordorigin=this.coordorigin;aP[aC](S);var aQ=new ap(S,aP,aR);aQ.isAbsolute=true;aQ.type="path";aQ.path=[];aQ.Path=al;E&&W(aQ,{fill:"none",stroke:"#000",path:E});aR.canvas[aC](aP);return aQ};var W= function(aV,a0){aV.attrs=aV.attrs||{};var aY=aV.node,a1=aV.attrs,aS=aY.style,aP,a5=aV;for(var aT in a0){if(a0[M](aT)){a1[aT]=a0[aT]}}a0.href&&(aY.href=a0.href);a0.title&&(aY.title=a0.title);a0.target&&(aY.target=a0.target);a0.cursor&&(aS.cursor=a0.cursor);if(a0.path&&aV.type=="path"){a1.path=a0.path;aY.path=ay(a1.path)}if(a0.rotation!=null){aV.rotate(a0.rotation,true)}if(a0.translation){aP=(a0.translation+al)[u](a);q.call(aV,aP[0],aP[1]);if(aV._.rt.cx!=null){aV._.rt.cx+=+aP[0];aV._.rt.cy+=+aP[1];aV.setBox(aV.attrs,aP[0],aP[1])}}if(a0.scale){aP=(a0.scale+al)[u](a);aV.scale(+aP[0]||1,+aP[1]||+aP[0]||1,+aP[2]||null,+aP[3]||null)}if("clip-rect" in a0){var E=(a0["clip-rect"]+al)[u](a);if(E[l]==4){E[2]=+E[2]+(+E[0]);E[3]=+E[3]+(+E[1]);var aU=aY.clipRect||H.createElement("div"),a4=aU.style,aR=aY.parentNode;a4.clip=ai.format("rect({1}px {2}px {3}px {0}px)",E);if(!aY.clipRect){a4.position="absolute";a4.top=0;a4.left=0;a4.width=aV.paper.width+"px";a4.height=aV.paper.height+"px";aR.parentNode.insertBefore(aU,aR);aU[aC](aR);aY.clipRect=aU}}if(!a0["clip-rect"]){aY.clipRect&&(aY.clipRect.style.clip=al)}}if(aV.type=="image"&&a0.src){aY.src=a0.src}if(aV.type=="image"&&a0.opacity){aY.filterOpacity=" progid:DXImageTransform.Microsoft.Alpha(opacity="+(a0.opacity*100)+")";aS.filter=(aY.filterMatrix||al)+(aY.filterOpacity||al)}a0.font&&(aS.font=a0.font);a0["font-family"]&&(aS.fontFamily='"'+a0["font-family"][u](",")[0][aF](/^['"]+|['"]+$/g,al)+'"');a0["font-size"]&&(aS.fontSize=a0["font-size"]);a0["font-weight"]&&(aS.fontWeight=a0["font-weight"]);a0["font-style"]&&(aS.fontStyle=a0["font-style"]);if(a0.opacity!=null||a0["stroke-width"]!=null||a0.fill!=null||a0.stroke!=null||a0["stroke-width"]!=null||a0["stroke-opacity"]!=null||a0["fill-opacity"]!=null||a0["stroke-dasharray"]!=null||a0["stroke-miterlimit"]!=null||a0["stroke-linejoin"]!=null||a0["stroke-linecap"]!=null){aY=aV.shape||aY;var aZ=(aY.getElementsByTagName("fill")&&aY.getElementsByTagName("fill")[0]),a2=false;!aZ&&(a2=aZ=ab("fill"));if("fill-opacity" in a0||"opacity" in a0){var R=((+a1["fill-opacity"]+1||2)-1)*((+a1.opacity+1||2)-1);R<0&&(R=0);R>1&&(R=1);aZ.opacity=R}a0.fill&&(aZ.on=true);if(aZ.on==null||a0.fill=="none"){aZ.on=false}if(aZ.on&&a0.fill){var S=a0.fill.match(c);if(S){aZ.src=S[1];aZ.type="tile"}else{aZ.color=ai.getRGB(a0.fill).hex;aZ.src=al;aZ.type="solid";if(ai.getRGB(a0.fill).error&&(a5.type in {circle:1,ellipse:1}||(a0.fill+al).charAt()!="r")&&b(a5,a0.fill)){a1.fill="none";a1.gradient=a0.fill}}}a2&&aY[aC](aZ);var aQ=(aY.getElementsByTagName("stroke")&&aY.getElementsByTagName("stroke")[0]),a3=false;!aQ&&(a3=aQ=ab("stroke"));if((a0.stroke&&a0.stroke!="none")||a0["stroke-width"]||a0["stroke-opacity"]!=null||a0["stroke-dasharray"]||a0["stroke-miterlimit"]||a0["stroke-linejoin"]||a0["stroke-linecap"]){aQ.on=true}(a0.stroke=="none"||aQ.on==null||a0.stroke==0||a0["stroke-width"]==0)&&(aQ.on=false);aQ.on&&a0.stroke&&(aQ.color=ai.getRGB(a0.stroke).hex);var R=((+a1["stroke-opacity"]+1||2)-1)*((+a1.opacity+1||2)-1),aW=(Q(a0["stroke-width"])||1)*0.75;R<0&&(R=0);R>1&&(R=1);a0["stroke-width"]==null&&(aW=a1["stroke-width"]);a0["stroke-width"]&&(aQ.weight=aW);aW&&aW<1&&(R*=aW)&&(aQ.weight=1);aQ.opacity=R;a0["stroke-linejoin"]&&(aQ.joinstyle=a0["stroke-linejoin"]||"miter");aQ.miterlimit=a0["stroke-miterlimit"]||8;a0["stroke-linecap"]&&(aQ.endcap=a0["stroke-linecap"]=="butt"?"flat":a0["stroke-linecap"]=="square"?"square":"round");if(a0["stroke-dasharray"]){var aX={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};aQ.dashstyle=aX[M](a0["stroke-dasharray"])?aX[a0["stroke-dasharray"]]:al}a3&&aY[aC](aQ)}if(a5.type=="text"){var aS=a5.paper.span.style;a1.font&&(aS.font=a1.font);a1["font-family"]&&(aS.fontFamily=a1["font-family"]);a1["font-size"]&&(aS.fontSize=a1["font-size"]);a1["font-weight"]&&(aS.fontWeight=a1["font-weight"]);a1["font-style"]&&(aS.fontStyle=a1["font-style"]);a5.node.string&&(a5.paper.span.innerHTML=(a5.node.string+al)[aF](/</g,"&#60;")[aF](/&/g,"&#38;")[aF](/\n/g,"<br>"));a5.W=a1.w=a5.paper.span.offsetWidth;a5.H=a1.h=a5.paper.span.offsetHeight;a5.X=a1.x;a5.Y=a1.y+K(a5.H/2);switch(a1["text-anchor"]){case"start":a5.node.style["v-text-align"]="left";a5.bbx=K(a5.W/2);break;case"end":a5.node.style["v-text-align"]="right";a5.bbx=-K(a5.W/2);break;default:a5.node.style["v-text-align"]="center";break}}};var b= function(E,aS){E.attrs=E.attrs||{};var aT=E.attrs,aV=E.node.getElementsByTagName("fill"),aQ="linear",aR=".5 .5";E.attrs.gradient=aS;aS=(aS+al)[aF](/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,function(aY,aZ,aX){aQ="radial";if(aZ&&aX){aZ=Q(aZ);aX=Q(aX);if(aD(aZ-0.5,2)+aD(aX-0.5,2)>0.25){aX=Math.sqrt(0.25-aD(aZ-0.5,2))+0.5}aR=aZ+ah+aX}return al});aS=aS[u](/\s*\-\s*/);if(aQ=="linear"){var R=aS.shift();R=-Q(R);if(isNaN(R)){return null}}var aP=n(aS);if(!aP){return null}E=E.shape||E.node;aV=aV[0]||ab("fill");if(aP[l]){aV.on=true;aV.method="none";aV.type=(aQ=="radial")?"gradientradial":"gradient";aV.color=aP[0].color;aV.color2=aP[aP[l]-1].color;var aW=[];for(var S=0,aU=aP[l];S<aU;S++){aP[S].offset&&aW[d](aP[S].offset+ah+aP[S].color)}aV.colors.value=aW[l]?aW[aq](","):"0% "+aV.color;if(aQ=="radial"){aV.focus="100%";aV.focussize=aR;aV.focusposition=aR}else{aV.angle=(270-R)%360}}return 1};var ap= function(aQ,aS,E){var aR=0,S=0,R=0,aP=1;this[0]=aQ;this.id=ai._oid++;this.node=aQ;aQ.raphael=this;this.X=0;this.Y=0;this.attrs={};this.Group=aS;this.paper=E;this._={tx:0,ty:0,rt:{deg:0},sx:1,sy:1};!E.bottom&&(E.bottom=this);this.prev=E.top;E.top&&(E.top.next=this);E.top=this;this.next=null};ap[aN].rotate= function(R,E,S){if(this.removed){return this}if(R==null){if(this._.rt.cx){return[this._.rt.deg,this._.rt.cx,this._.rt.cy][aq](ah)}return this._.rt.deg}R=(R+al)[u](a);if(R[l]-1){E=Q(R[1]);S=Q(R[2])}R=Q(R[0]);if(E!=null){this._.rt.deg=R}else{this._.rt.deg+=R}S==null&&(E=null);this._.rt.cx=E;this._.rt.cy=S;this.setBox(this.attrs,E,S);this.Group.style.rotation=this._.rt.deg;return this};ap[aN].setBox= function(aQ,aR,aP){if(this.removed){return this}var R=this.Group.style,aS=(this.shape&&this.shape.style)||this.node.style;aQ=aQ||{};for(var aT in aQ){if(aQ[M](aT)){this.attrs[aT]=aQ[aT]}}aR=aR||this._.rt.cx;aP=aP||this._.rt.cy;var aW=this.attrs,aZ,aY,a0,aV;switch(this.type){case"circle":aZ=aW.cx-aW.r;aY=aW.cy-aW.r;a0=aV=aW.r*2;break;case"ellipse":aZ=aW.cx-aW.rx;aY=aW.cy-aW.ry;a0=aW.rx*2;aV=aW.ry*2;break;case"rect":case"image":aZ=+aW.x;aY=+aW.y;a0=aW.width||0;aV=aW.height||0;break;case"text":this.textpath.v=["m",K(aW.x),", ",K(aW.y-2),"l",K(aW.x)+1,", ",K(aW.y-2)][aq](al);aZ=aW.x-K(this.W/2);aY=aW.y-this.H/2;a0=this.W;aV=this.H;break;case"path":if(!this.attrs.path){aZ=0;aY=0;a0=this.paper.width;aV=this.paper.height}else{var aU=O(this.attrs.path);aZ=aU.x;aY=aU.y;a0=aU.width;aV=aU.height}break;default:aZ=0;aY=0;a0=this.paper.width;aV=this.paper.height;break}aR=(aR==null)?aZ+a0/2:aR;aP=(aP==null)?aY+aV/2:aP;var S=aR-this.paper.width/2,aX=aP-this.paper.height/2;if(this.type=="path"||this.type=="text"){(R.left!=S+"px")&&(R.left=S+"px");(R.top!=aX+"px")&&(R.top=aX+"px");this.X=this.type=="text"?aZ:-S;this.Y=this.type=="text"?aY:-aX;this.W=a0;this.H=aV;(aS.left!=-S+"px")&&(aS.left=-S+"px");(aS.top!=-aX+"px")&&(aS.top=-aX+"px")}else{(R.left!=S+"px")&&(R.left=S+"px");(R.top!=aX+"px")&&(R.top=aX+"px");this.X=aZ;this.Y=aY;this.W=a0;this.H=aV;(R.width!=this.paper.width+"px")&&(R.width=this.paper.width+"px");(R.height!=this.paper.height+"px")&&(R.height=this.paper.height+"px");(aS.left!=aZ-S+"px")&&(aS.left=aZ-S+"px");(aS.top!=aY-aX+"px")&&(aS.top=aY-aX+"px");(aS.width!=a0+"px")&&(aS.width=a0+"px");(aS.height!=aV+"px")&&(aS.height=aV+"px");var a1=(+aQ.r||0)/(az(a0,aV));if(this.type=="rect"&&this.arcsize!=a1&&(a1||this.arcsize)){var E=ab(a1?"roundrect":"rect");E.arcsize=a1;this.Group[aC](E);this.node.parentNode.removeChild(this.node);this.node=E;this.arcsize=a1;this.attr(this.attrs)}}};ap[aN].hide= function(){!this.removed&&(this.Group.style.display="none");return this};ap[aN].show= function(){!this.removed&&(this.Group.style.display="block");return this};ap[aN].getBBox= function(){if(this.removed){return this}if(this.type=="path"){return O(this.attrs.path)}return{x:this.X+(this.bbx||0),y:this.Y,width:this.W,height:this.H}};ap[aN].remove= function(){if(this.removed){return}af(this,this.paper);this.node.parentNode.removeChild(this[0]);this.Group.parentNode.removeChild(this.Group);this.shape&&this.shape.parentNode.removeChild(this.shape);for(var E in this){delete this[E]}this.removed=true};ap[aN].attr= function(){if(this.removed){return this}if(arguments[l]==0){var S={};for(var R in this.attrs){if(this.attrs[M](R)){S[R]=this.attrs[R]}}return S}if(arguments[l]==1&&ai.is(arguments[0],"string")){if(arguments[0]=="translation"){return q.call(this)}if(arguments[0]=="rotation"){return this.rotate()}if(arguments[0]=="scale"){return this.scale()}return this.attrs[arguments[0]]}if(this.attrs&&arguments[l]==1&&ai.is(arguments[0],"array")){var E={};for(var R=0,aP=arguments[0][l];R<aP;R++){E[arguments[0][R]]=this.attrs[arguments[0][R]]}return E}var aQ;if(arguments[l]==2){aQ={};aQ[arguments[0]]=arguments[1]}arguments[l]==1&&ai.is(arguments[0],"object")&&(aQ=arguments[0]);if(aQ){if(aQ.text&&this.type=="text"){this.node.string=aQ.text}W(this,aQ);if(aQ.gradient&&(({circle:1,ellipse:1})[M](this.type)||(aQ.gradient+al).charAt()!="r")){b(this,aQ.gradient)}(this.type!="path"||this._.rt.deg)&&this.setBox(this.attrs)}return this};ap[aN].toFront= function(){!this.removed&&this.Group.parentNode[aC](this.Group);this.paper.top!=this&&U(this,this.paper);return this};ap[aN].toBack= function(){if(this.removed){return this}if(this.Group.parentNode.firstChild!=this.Group){this.Group.parentNode.insertBefore(this.Group,this.Group.parentNode.firstChild);j(this,this.paper)}return this};ap[aN].insertAfter= function(E){if(this.removed){return this}if(E.Group.nextSibling){E.Group.parentNode.insertBefore(this.Group,E.Group.nextSibling)}else{E.Group.parentNode[aC](this.Group)}w(this,E,this.paper);return this};ap[aN].insertBefore= function(E){if(this.removed){return this}E.Group.parentNode.insertBefore(this.Group,E.Group);ak(this,E,this.paper);return this};var L= function(R,E,aT,aR){var aQ=ab("group"),aS=ab("oval"),S=aS.style;aQ.style.cssText="position:absolute;left:0;top:0;width:"+R.width+"px;height:"+R.height+"px";aQ.coordsize=R.coordsize;aQ.coordorigin=R.coordorigin;aQ[aC](aS);var aP=new ap(aS,aQ,R);aP.type="circle";W(aP,{stroke:"#000",fill:"none"});aP.attrs.cx=E;aP.attrs.cy=aT;aP.attrs.r=aR;aP.setBox({x:E-aR,y:aT-aR,width:aR*2,height:aR*2});R.canvas[aC](aQ);return aP};var aw= function(R,aT,aS,aU,aP,E){var aQ=ab("group"),S=ab(E?"roundrect":"rect"),aV=(+E||0)/(az(aU,aP));S.arcsize=aV;aQ.style.cssText="position:absolute;left:0;top:0;width:"+R.width+"px;height:"+R.height+"px";aQ.coordsize=R.coordsize;aQ.coordorigin=R.coordorigin;aQ[aC](S);var aR=new ap(S,aQ,R);aR.type="rect";W(aR,{stroke:"#000"});aR.arcsize=aV;aR.setBox({x:aT,y:aS,width:aU,height:aP,r:+E});R.canvas[aC](aQ);return aR};var ac= function(E,aU,aT,S,R){var aQ=ab("group"),aP=ab("oval"),aS=aP.style;aQ.style.cssText="position:absolute;left:0;top:0;width:"+E.width+"px;height:"+E.height+"px";aQ.coordsize=E.coordsize;aQ.coordorigin=E.coordorigin;aQ[aC](aP);var aR=new ap(aP,aQ,E);aR.type="ellipse";W(aR,{stroke:"#000"});aR.attrs.cx=aU;aR.attrs.cy=aT;aR.attrs.rx=S;aR.attrs.ry=R;aR.setBox({x:aU-S,y:aT-R,width:S*2,height:R*2});E.canvas[aC](aQ);return aR};var m= function(R,E,aU,aT,aV,aP){var aQ=ab("group"),S=ab("image"),aS=S.style;aQ.style.cssText="position:absolute;left:0;top:0;width:"+R.width+"px;height:"+R.height+"px";aQ.coordsize=R.coordsize;aQ.coordorigin=R.coordorigin;S.src=E;aQ[aC](S);var aR=new ap(S,aQ,R);aR.type="image";aR.attrs.src=E;aR.attrs.x=aU;aR.attrs.y=aT;aR.attrs.w=aV;aR.attrs.h=aP;aR.setBox({x:aU,y:aT,width:aV,height:aP});R.canvas[aC](aQ);return aR};var T= function(R,aU,aT,aV){var aQ=ab("group"),aP=ab("shape"),aS=aP.style,aW=ab("path"),E=aW.style,S=ab("textpath");aQ.style.cssText="position:absolute;left:0;top:0;width:"+R.width+"px;height:"+R.height+"px";aQ.coordsize=R.coordsize;aQ.coordorigin=R.coordorigin;aW.v=ai.format("m{0},{1}l{2},{1}",K(aU),K(aT),K(aU)+1);aW.textpathok=true;aS.width=R.width;aS.height=R.height;S.string=aV+al;S.on=true;aP[aC](S);aP[aC](aW);aQ[aC](aP);var aR=new ap(S,aQ,R);aR.shape=aP;aR.textpath=aW;aR.type="text";aR.attrs.text=aV;aR.attrs.x=aU;aR.attrs.y=aT;aR.attrs.w=1;aR.attrs.h=1;W(aR,{font:h.font,stroke:"none",fill:"#000"});aR.setBox();R.canvas[aC](aQ);return aR};var aK= function(S,E){var R=this.canvas.style;S==+S&&(S+="px");E==+E&&(E+="px");R.width=S;R.height=E;R.clip="rect(0 "+S+" "+E+" 0)";return this};H.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{!H.namespaces.rvml&&H.namespaces.add("rvml","urn:schemas-microsoft-com:vml");var ab= function(E){return H.createElement("<rvml:"+E+' class="rvml">')}}catch(aa){var ab= function(E){return H.createElement("<"+E+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}var s= function(){var aP=aj[aL](null,arguments),R=aP.container,aV=aP.height,aW,S=aP.width,aU=aP.x,aT=aP.y;if(!R){throw new Error("VML container not found.")}var aR={},aS=aR.canvas=H.createElement("div"),aQ=aS.style;S=S||512;aV=aV||342;S==+S&&(S+="px");aV==+aV&&(aV+="px");aR.width=1000;aR.height=1000;aR.coordsize="1000 1000";aR.coordorigin="0 0";aR.span=H.createElement("span");aR.span.style.cssText="position:absolute;left:-9999px;top:-9999px;padding:0;margin:0;line-height:1;display:inline;";aS[aC](aR.span);aQ.cssText=ai.format("width:{0};height:{1};position:absolute;clip:rect(0 {0} {1} 0);overflow:hidden",S,aV);if(R==1){H.body[aC](aS);aQ.left=aU+"px";aQ.top=aT+"px";R={style:{width:S,height:aV}}}else{R.style.width=S;R.style.height=aV;if(R.firstChild){R.insertBefore(aS,R.firstChild)}else{R[aC](aS)}}for(var E in aG){if(aG[M](E)){aR[E]=aG[E]}}ax.call(aR,aR,ai.fn);aR.top=aR.bottom=null;aR.raphael=ai;return aR};aG.clear= function(){this.canvas.innerHTML=al;this.bottom=this.top=null};aG.remove= function(){this.canvas.parentNode.removeChild(this.canvas);for(var E in this){delete this[E]}}}if({"Apple Computer, Inc.":1,"Google Inc.":1}[navigator.vendor]&&!(navigator.userAgent.indexOf("Version/4.0")+1)){aG.safari= function(){var E=this.rect(-99,-99,this.width+99,this.height+99);setTimeout(function(){E.remove()})}}else{aG.safari= function(){}}var Z=(function(){if(H.addEventListener){return function(aQ,S,R,E){var aP= function(aR){return R.call(E,aR)};aQ.addEventListener(S,aP,false);return function(){aQ.removeEventListener(S,aP,false);return true}}}else{if(H.attachEvent){return function(aR,aP,S,R){var aQ= function(aS){return S.call(R,aS||am.event)};aR.attachEvent("on"+aP,aQ);var E= function(){aR.detachEvent("on"+aP,aQ);return true};if(aP=="mouseover"){aR.attachEvent("onmouseenter",aQ);return function(){aR.detachEvent("onmouseenter",aQ);return E()}}else{if(aP=="mouseout"){aR.attachEvent("onmouseleave",aQ);return function(){aR.detachEvent("onmouseleave",aQ);return E()}}}return E}}}})();for(var X=A[l];X--;){(function(E){ap[aN][E]= function(R){if(ai.is(R,"function")){this.events=this.events||{};this.events[E]=this.events[E]||{};this.events[E][R]=this.events[E][R]||[];this.events[E][R][d](Z(this.shape||this.node,E,R,this))}return this};ap[aN]["un"+E]= function(R){var S=this.events;S&&S[E]&&S[E][R]&&S[E][R][l]&&S[E][R].shift()()&&!S[E][R][l]&&delete S[E][R];return this}})(A[X])}ap[aN].hover= function(R,E){return this.mouseover(R).mouseout(E)};aG.circle= function(E,S,R){return L(this,E||0,S||0,R||0)};aG.rect= function(E,aQ,R,S,aP){return aw(this,E||0,aQ||0,R||0,S||0,aP||0)};aG.ellipse= function(E,aP,S,R){return ac(this,E||0,aP||0,S||0,R||0)};aG.path= function(E){E&&!ai.is(E,"string")&&!ai.is(E[0],"array")&&(E+=al);return o(ai.format[aL](ai,arguments),this)};aG.image= function(aP,E,aQ,R,S){return m(this,aP||"about:blank",E||0,aQ||0,R||0,S||0)};aG.text= function(E,S,R){return T(this,E||0,S||0,R||al)};aG.set= function(E){arguments[l]>1&&(E=Array[aN].splice.call(arguments,0,arguments[l]));return new N(E)};aG.setSize=aK;ap[aN].scale= function(a0,aZ,S,R){if(a0==null&&aZ==null){return{x:this._.sx,y:this._.sy,toString:function(){return this.x+ah+this.y}}}aZ=aZ||a0;!+aZ&&(aZ=a0);var a4,a2,a3,a1,bg=this.attrs;if(a0!=0){var aX=this.getBBox(),aU=aX.x+aX.width/2,aQ=aX.y+aX.height/2,bf=a0/this._.sx,be=aZ/this._.sy;S=(+S||S==0)?S:aU;R=(+R||R==0)?R:aQ;var aW=~~(a0/Math.abs(a0)),aT=~~(aZ/Math.abs(aZ)),a7=this.node.style,bi=S+(aU-S)*bf,bh=R+(aQ-R)*be;switch(this.type){case"rect":case"image":var aV=bg.width*aW*bf,a6=bg.height*aT*be,aY=bg.r*az(bf,be),aS=bi-aV/2,aP=bh-a6/2;this.attr({width:aV,height:a6,x:aS,y:aP,r:aY});break;case"circle":case"ellipse":this.attr({rx:bg.rx*aW*bf,ry:bg.ry*aT*be,r:bg.r*az(aW*bf,aT*be),cx:bi,cy:bh});break;case"path":var a9=Y(bg.path),ba=true;for(var bd=0,a5=a9[l];bd<a5;bd++){var a8=a9[bd],bc,aR=aE.call(a8[0]);if(aR=="M"&&ba){continue}else{ba=false}if(ai.svg&&aR=="A"){a8[a9[bd][l]-2]*=bf;a8[a9[bd][l]-1]*=be;a8[1]*=aW*bf;a8[2]*=aT*be;a8[5]=+(aW+aT?!!+a8[5]:!+a8[5])}else{if(aR=="H"){for(bc=1,jj=a8[l];bc<jj;bc++){a8[bc]*=bf}}else{if(aR=="V"){for(bc=1,jj=a8[l];bc<jj;bc++){a8[bc]*=be}}else{for(bc=1,jj=a8[l];bc<jj;bc++){a8[bc]*=(bc%2)?bf:be}}}}}var E=O(a9),a4=bi-E.x-E.width/2,a2=bh-E.y-E.height/2;a9[0][1]+=a4;a9[0][2]+=a2;this.attr({path:a9});break}if(this.type in {text:1,image:1}&&(aW!=1||aT!=1)){if(this.transformations){this.transformations[2]="scale("[aI](aW,",",aT,")");this.node[r]("transform",this.transformations[aq](ah));a4=(aW==-1)?-bg.x-(aV||0):bg.x;a2=(aT==-1)?-bg.y-(a6||0):bg.y;this.attr({x:a4,y:a2});bg.fx=aW-1;bg.fy=aT-1}else{this.node.filterMatrix=" progid:DXImageTransform.Microsoft.Matrix(M11="[aI](aW,", M12=0, M21=0, M22=",aT,", Dx=0, Dy=0, sizingmethod='auto expand', filtertype='bilinear')");a7.filter=(this.node.filterMatrix||al)+(this.node.filterOpacity||al)}}else{if(this.transformations){this.transformations[2]=al;this.node[r]("transform",this.transformations[aq](ah));bg.fx=0;bg.fy=0}else{this.node.filterMatrix=al;a7.filter=(this.node.filterMatrix||al)+(this.node.filterOpacity||al)}}bg.scale=[a0,aZ,S,R][aq](ah);this._.sx=a0;this._.sy=aZ}return this};ai.easing_formulas={linear:function(E){return E},"<":function(E){return aD(E,3)},">":function(E){return aD(E-1,3)+1},"<>":function(E){E=E*2;if(E<1){return aD(E,3)/2}E-=2;return(aD(E,3)+2)/2},backIn:function(R){var E=1.70158;return R*R*((E+1)*R-E)},backOut:function(R){R=R-1;var E=1.70158;return R*R*((E+1)*R+E)+1},elastic:function(S){if(S==0||S==1){return S}var R=0.3,E=R/4;return aD(2,-10*S)*Math.sin((S-E)*(2*Math.PI)/R)+1},bounce:function(aP){var R=7.5625,S=2.75,E;if(aP<(1/S)){E=R*aP*aP}else{if(aP<(2/S)){aP-=(1.5/S);E=R*aP*aP+0.75}else{if(aP<(2.5/S)){aP-=(2.25/S);E=R*aP*aP+0.9375}else{aP-=(2.625/S);E=R*aP*aP+0.984375}}}return E}};var F={length:0},aH= function(){var aS=+new Date;for(var a3 in F){if(a3!="length"&&F[M](a3)){var a8=F[a3];if(a8.stop){delete F[a3];F[l]--;continue}var aQ=aS-a8.start,a1=a8.ms,a0=a8.easing,a4=a8.from,aX=a8.diff,R=a8.to,aW=a8.t,aZ=a8.prev||0,aR=a8.el,S=a8.callback,aY={},E;if(aQ<a1){var aP=ai.easing_formulas[a0]?ai.easing_formulas[a0](aQ/a1):aQ/a1;for(var a2 in a4){if(a4[M](a2)){switch(V[a2]){case"number":E=+a4[a2]+aP*a1*aX[a2];break;case"colour":E="rgb("+[y(K(a4[a2].r+aP*a1*aX[a2].r)),y(K(a4[a2].g+aP*a1*aX[a2].g)),y(K(a4[a2].b+aP*a1*aX[a2].b))][aq](",")+")";break;case"path":E=[];for(var a6=0,aV=a4[a2][l];a6<aV;a6++){E[a6]=[a4[a2][a6][0]];for(var a5=1,a7=a4[a2][a6][l];a5<a7;a5++){E[a6][a5]=+a4[a2][a6][a5]+aP*a1*aX[a2][a6][a5]}E[a6]=E[a6][aq](ah)}E=E[aq](ah);break;case"csv":switch(a2){case"translation":var aU=aX[a2][0]*(aQ-aZ),aT=aX[a2][1]*(aQ-aZ);aW.x+=aU;aW.y+=aT;E=aU+ah+aT;break;case"rotation":E=+a4[a2][0]+aP*a1*aX[a2][0];a4[a2][1]&&(E+=","+a4[a2][1]+","+a4[a2][2]);break;case"scale":E=[+a4[a2][0]+aP*a1*aX[a2][0],+a4[a2][1]+aP*a1*aX[a2][1],(2 in R[a2]?R[a2][2]:al),(3 in R[a2]?R[a2][3]:al)][aq](ah);break;case"clip-rect":E=[];var a6=4;while(a6--){E[a6]=+a4[a2][a6]+aP*a1*aX[a2][a6]}break}break}aY[a2]=E}}aR.attr(aY);aR._run&&aR._run.call(aR)}else{(aW.x||aW.y)&&aR.translate(-aW.x,-aW.y);R.scale&&(R.scale=R.scale+al);aR.attr(R);delete F[a3];F[l]--;aR.in_animation=null;ai.is(S,"function")&&S.call(aR)}a8.prev=aQ}}ai.svg&&aG.safari();F[l]&&setTimeout(aH)},y= function(E){return E>255?255:(E<0?0:E)},q= function(E,S){if(E==null){return{x:this._.tx,y:this._.ty}}this._.tx+=+E;this._.ty+=+S;switch(this.type){case"circle":case"ellipse":this.attr({cx:+E+this.attrs.cx,cy:+S+this.attrs.cy});break;case"rect":case"image":case"text":this.attr({x:+E+this.attrs.x,y:+S+this.attrs.y});break;case"path":var R=Y(this.attrs.path);R[0][1]+=+E;R[0][2]+=+S;this.attr({path:R});break}return this};ap[aN].animateWith= function(R,S,E,aQ,aP){F[R.id]&&(S.start=F[R.id].start);return this.animate(S,E,aQ,aP)};ap[aN].onAnimation= function(E){this._run=E||null;return this};ap[aN].animate= function(S,E,aV,a1){if(ai.is(aV,"function")||!aV){a1=aV||null}var aW={},aX={},aY={};for(var aU in S){if(S[M](aU)){if(V[M](aU)){aW[aU]=this.attr(aU);(aW[aU]==null)&&(aW[aU]=h[aU]);aX[aU]=S[aU];switch(V[aU]){case"number":aY[aU]=(aX[aU]-aW[aU])/E;break;case"colour":aW[aU]=ai.getRGB(aW[aU]);var aS=ai.getRGB(aX[aU]);aY[aU]={r:(aS.r-aW[aU].r)/E,g:(aS.g-aW[aU].g)/E,b:(aS.b-aW[aU].b)/E};break;case"path":var R=D(aW[aU],aX[aU]);aW[aU]=R[0];aX[aU]=R[1];aY[aU]=[];for(var aR=0,a0=aW[aU][l];aR<a0;aR++){aY[aU][aR]=[0];for(var aP=1,aT=aW[aU][aR][l];aP<aT;aP++){aY[aU][aR][aP]=(aX[aU][aR][aP]-aW[aU][aR][aP])/E}}break;case"csv":var aZ=(S[aU]+al)[u](a),aQ=(aW[aU]+al)[u](a);switch(aU){case"translation":aW[aU]=[0,0];aY[aU]=[aZ[0]/E,aZ[1]/E];break;case"rotation":aW[aU]=(aQ[1]==aZ[1]&&aQ[2]==aZ[2])?aQ:[0,aZ[1],aZ[2]];aY[aU]=[(aZ[0]-aW[aU][0])/E,0,0];break;case"scale":S[aU]=aZ;aW[aU]=(aW[aU]+al)[u](a);aY[aU]=[(aZ[0]-aW[aU][0])/E,(aZ[1]-aW[aU][1])/E,0,0];break;case"clip-rect":aW[aU]=(aW[aU]+al)[u](a);aY[aU]=[];var aR=4;while(aR--){aY[aU][aR]=(aZ[aR]-aW[aU][aR])/E}break}aX[aU]=aZ}}}}this.stop();this.in_animation=1;F[this.id]={start:S.start||+new Date,ms:E,easing:aV,from:aW,diff:aY,to:aX,el:this,callback:a1,t:{x:0,y:0}};++F[l]==1&&aH();return this};ap[aN].stop= function(){F[this.id]&&F[l]--;delete F[this.id];return this};ap[aN].translate= function(E,R){return this.attr({translation:E+" "+R})};ap[aN][ar]= function(){return"Rapha\xebl\u2019s object"};ai.ae=F;var N= function(E){this.items=[];this[l]=0;if(E){for(var R=0,S=E[l];R<S;R++){if(E[R]&&(E[R].constructor==ap||E[R].constructor==N)){this[this.items[l]]=this.items[this.items[l]]=E[R];this[l]++}}}};N[aN][d]= function(){var aP,E;for(var R=0,S=arguments[l];R<S;R++){aP=arguments[R];if(aP&&(aP.constructor==ap||aP.constructor==N)){E=this.items[l];this[E]=this.items[E]=aP;this[l]++}}return this};N[aN].pop= function(){delete this[this[l]--];return this.items.pop()};for(var t in ap[aN]){if(ap[aN][M](t)){N[aN][t]=(function(E){return function(){for(var R=0,S=this.items[l];R<S;R++){this.items[R][E][aL](this.items[R],arguments)}return this}})(t)}}N[aN].attr= function(R,aR){if(R&&ai.is(R,"array")&&ai.is(R[0],"object")){for(var E=0,aQ=R[l];E<aQ;E++){this.items[E].attr(R[E])}}else{for(var S=0,aP=this.items[l];S<aP;S++){this.items[S].attr[aL](this.items[S],arguments)}}return this};N[aN].animate= function(aQ,R,aT,aS){(ai.is(aT,"function")||!aT)&&(aS=aT||null);var E=this.items[l],S=E,aR=this,aP;aS&&(aP= function(){!--E&&aS.call(aR)});this.items[--S].animate(aQ,R,aT||aP,aP);while(S--){this.items[S].animateWith(this.items[E-1],aQ,R,aT||aP,aP)}return this};N[aN].insertAfter= function(R){var E=this.items[l];while(E--){this.items[E].insertAfter(R)}};N[aN].getBBox= function(){var E=[],aR=[],R=[],aP=[];for(var S=this.items[l];S--;){var aQ=this.items[S].getBBox();E[d](aQ.x);aR[d](aQ.y);R[d](aQ.x+aQ.width);aP[d](aQ.y+aQ.height)}E=az[aL](0,E);aR=az[aL](0,aR);return{x:E,y:aR,width:f[aL](0,R)-E,height:f[aL](0,aP)-aR}};ai.registerFont= function(R){if(!R.face){return R}this.fonts=this.fonts||{};var aP={w:R.w,face:{},glyphs:{}},S=R.face["font-family"];for(var aS in R.face){if(R.face[M](aS)){aP.face[aS]=R.face[aS]}}if(this.fonts[S]){this.fonts[S][d](aP)}else{this.fonts[S]=[aP]}if(!R.svg){aP.face["units-per-em"]=C(R.face["units-per-em"],10);for(var aQ in R.glyphs){if(R.glyphs[M](aQ)){var aR=R.glyphs[aQ];aP.glyphs[aQ]={w:aR.w,k:{},d:aR.d&&"M"+aR.d[aF](/[mlcxtrv]/g,function(aT){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[aT]||"M"})+"z"};if(aR.k){for(var E in aR.k){if(aR[M](E)){aP.glyphs[aQ].k[E]=aR.k[E]}}}}}}return R};aG.getFont= function(aT,aU,R,aP){aP=aP||"normal";R=R||"normal";aU=+aU||{normal:400,bold:700,lighter:300,bolder:800}[aU]||400;var aQ=ai.fonts[aT];if(!aQ){var S=new RegExp("(^|\\s)"+aT[aF](/[^\w\d\s+!~.:_-]/g,al)+"(\\s|$)","i");for(var E in ai.fonts){if(ai.fonts[M](E)){if(S.test(E)){aQ=ai.fonts[E];break}}}}var aR;if(aQ){for(var aS=0,aV=aQ[l];aS<aV;aS++){aR=aQ[aS];if(aR.face["font-weight"]==aU&&(aR.face["font-style"]==R||!aR.face["font-style"])&&aR.face["font-stretch"]==aP){break}}}return aR};aG.print= function(aP,S,E,aS,aT,a2){a2=a2||"middle";var aY=this.set(),a1=(E+al)[u](al),aZ=0,aV=al,a3;ai.is(aS,"string")&&(aS=this.getFont(aS));if(aS){a3=(aT||16)/aS.face["units-per-em"];var R=aS.face.bbox.split(a),aR=+R[0],aU=+R[1]+(a2=="baseline"?R[3]-R[1]+(+aS.face.descent):(R[3]-R[1])/2);for(var aX=0,aQ=a1[l];aX<aQ;aX++){var aW=aX&&aS.glyphs[a1[aX-1]]||{},a0=aS.glyphs[a1[aX]];aZ+=aX?(aW.w||aS.w)+(aW.k&&aW.k[a1[aX]]||0):0;a0&&a0.d&&aY[d](this.path(a0.d).attr({fill:"#000",stroke:"none",translation:[aZ,0]}))}aY.scale(a3,a3,aR,aU).translate(aP-aR,S-aU)}return aY};ai.format= function(S){var R=ai.is(arguments[1],"array")?[0][aI](arguments[1]):arguments,E=/\{(\d+)\}/g;S&&ai.is(S,"string")&&R[l]-1&&(S=S[aF](E,function(aQ,aP){return R[++aP]==null?al:R[aP]}));return S||al};ai.ninja= function(){var R=am.Raphael,E;if(k.was){am.Raphael=k.is}else{try{delete am.Raphael}catch(S){am.Raphael=E}}return R};ai.el=ap[aN];return ai})();function Sarissa(){}Sarissa.VERSION="${project.version}";Sarissa.PARSED_OK="Document contains no parsing errors";Sarissa.PARSED_EMPTY="Document is empty";Sarissa.PARSED_UNKNOWN_ERROR="Not well-formed or other error";Sarissa.IS_ENABLED_TRANSFORM_NODE=false;var _sarissa_iNsCounter=0;var _SARISSA_IEPREFIX4XSLPARAM="";var _SARISSA_HAS_DOM_IMPLEMENTATION=document.implementation&&true;var _SARISSA_HAS_DOM_CREATE_DOCUMENT=_SARISSA_HAS_DOM_IMPLEMENTATION&&document.implementation.createDocument;var _SARISSA_HAS_DOM_FEATURE=_SARISSA_HAS_DOM_IMPLEMENTATION&&document.implementation.hasFeature;var _SARISSA_IS_MOZ=_SARISSA_HAS_DOM_CREATE_DOCUMENT&&_SARISSA_HAS_DOM_FEATURE;var _SARISSA_IS_SAFARI=navigator.userAgent.toLowerCase().indexOf("safari")!=-1||navigator.userAgent.toLowerCase().indexOf("konqueror")!=-1;var _SARISSA_IS_SAFARI_OLD=_SARISSA_IS_SAFARI&&parseInt((navigator.userAgent.match(/AppleWebKit\/(\d+)/)||{})[1])<420;var _SARISSA_IS_IE=document.all&&window.ActiveXObject&&navigator.userAgent.toLowerCase().indexOf("msie")>-1&&navigator.userAgent.toLowerCase().indexOf("opera")==-1;var _SARISSA_IS_OPERA=navigator.userAgent.toLowerCase().indexOf("opera")!=-1;if(!window.Node||!Node.ELEMENT_NODE){Node={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12}}if(_SARISSA_IS_SAFARI_OLD){HTMLHtmlElement=document.createElement("html").constructor;Node=HTMLElement={};HTMLElement.prototype=HTMLHtmlElement.__proto__.__proto__;HTMLDocument=Document=document.constructor;var x=new DOMParser();XMLDocument=x.constructor;Element=x.parseFromString("<Single />","text/xml").documentElement.constructor;x=null}if(typeof XMLDocument=="undefined"&&typeof Document!="undefined"){XMLDocument=Document}if(_SARISSA_IS_IE){_SARISSA_IEPREFIX4XSLPARAM="xsl:";var _SARISSA_DOM_PROGID="";var _SARISSA_XMLHTTP_PROGID="";var _SARISSA_DOM_XMLWRITER="";Sarissa.pickRecentProgID= function(f){var d=false,h;for(var b=0;b<f.length&&!d;b++){try{var a=new ActiveXObject(f[b]);var g=f[b];d=true}catch(c){h=c}}if(!d){throw"Could not retrieve a valid progID of Class: "+f[f.length-1]+". (original exception: "+h+")"}f=null;return g};_SARISSA_DOM_PROGID=null;_SARISSA_THREADEDDOM_PROGID=null;_SARISSA_XSLTEMPLATE_PROGID=null;_SARISSA_XMLHTTP_PROGID=null;if(!window.XMLHttpRequest){XMLHttpRequest= function(){if(!_SARISSA_XMLHTTP_PROGID){_SARISSA_XMLHTTP_PROGID=Sarissa.pickRecentProgID(["Msxml2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"])}return new ActiveXObject(_SARISSA_XMLHTTP_PROGID)}}Sarissa.getDomDocument= function(d,c){if(!_SARISSA_DOM_PROGID){_SARISSA_DOM_PROGID=Sarissa.pickRecentProgID(["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.3.0","MSXML2.DOMDocument","MSXML.DOMDocument","Microsoft.XMLDOM"])}var a=new ActiveXObject(_SARISSA_DOM_PROGID);if(c){var b="";if(d){if(c.indexOf(":")>1){b=c.substring(0,c.indexOf(":"));c=c.substring(c.indexOf(":")+1)}else{b="a"+(_sarissa_iNsCounter++)}}if(d){a.loadXML("<"+b+":"+c+" xmlns:"+b+'="'+d+'" />')}else{a.loadXML("<"+c+" />")}}return a};Sarissa.getParseErrorText= function(a){var c=Sarissa.PARSED_OK;if(a&&a.parseError&&a.parseError.errorCode&&a.parseError.errorCode!=0){c="XML Parsing Error: "+a.parseError.reason+"\nLocation: "+a.parseError.url+"\nLine Number "+a.parseError.line+", Column "+a.parseError.linepos+":\n"+a.parseError.srcText+"\n";for(var b=0;b<a.parseError.linepos;b++){c+="-"}c+="^\n"}else{if(a.documentElement==null){c=Sarissa.PARSED_EMPTY}}return c};Sarissa.setXpathNamespaces= function(a,b){a.setProperty("SelectionLanguage","XPath");a.setProperty("SelectionNamespaces",b)};XSLTProcessor= function(){if(!_SARISSA_XSLTEMPLATE_PROGID){_SARISSA_XSLTEMPLATE_PROGID=Sarissa.pickRecentProgID(["Msxml2.XSLTemplate.6.0","MSXML2.XSLTemplate.3.0"])}this.template=new ActiveXObject(_SARISSA_XSLTEMPLATE_PROGID);this.processor=null};XSLTProcessor.prototype.importStylesheet= function(d){if(!_SARISSA_THREADEDDOM_PROGID){_SARISSA_THREADEDDOM_PROGID=Sarissa.pickRecentProgID(["MSXML2.FreeThreadedDOMDocument.6.0","MSXML2.FreeThreadedDOMDocument.3.0"])}d.setProperty("SelectionLanguage","XPath");d.setProperty("SelectionNamespaces","xmlns:xsl='http://www.w3.org/1999/XSL/Transform'");var c=new ActiveXObject(_SARISSA_THREADEDDOM_PROGID);try{c.resolveExternals=true;c.setProperty("AllowDocumentFunction",true)}catch(b){}if(d.url&&d.selectSingleNode("//xsl:*[local-name() = 'import' or local-name() = 'include']")!=null){c.async=false;c.load(d.url)}else{c.loadXML(d.xml)}c.setProperty("SelectionNamespaces","xmlns:xsl='http://www.w3.org/1999/XSL/Transform'");var a=c.selectSingleNode("//xsl:output");this.outputMethod=a?a.getAttribute("method"):"html";this.template.stylesheet=c;this.processor=this.template.createProcessor();this.paramsSet=[]};XSLTProcessor.prototype.transformToDocument= function(c){if(_SARISSA_THREADEDDOM_PROGID){this.processor.input=c;var b=new ActiveXObject(_SARISSA_DOM_PROGID);this.processor.output=b;this.processor.transform();return b}else{if(!_SARISSA_DOM_XMLWRITER){_SARISSA_DOM_XMLWRITER=Sarissa.pickRecentProgID(["Msxml2.MXXMLWriter.6.0","Msxml2.MXXMLWriter.3.0","MSXML2.MXXMLWriter","MSXML.MXXMLWriter","Microsoft.XMLDOM"])}this.processor.input=c;var b=new ActiveXObject(_SARISSA_DOM_XMLWRITER);this.processor.output=b;this.processor.transform();var a=new ActiveXObject(_SARISSA_DOM_PROGID);a.loadXML(b.output+"");return a}};XSLTProcessor.prototype.transformToFragment= function(j,d){this.processor.input=j;this.processor.transform();var g=this.processor.output;var h=d.createDocumentFragment();if(this.outputMethod=="text"){h.appendChild(d.createTextNode(g))}else{if(d.body&&d.body.innerHTML){var b=d.createElement("div");b.innerHTML=g;while(b.hasChildNodes()){h.appendChild(b.firstChild)}}else{var a=new ActiveXObject(_SARISSA_DOM_PROGID);if(g.substring(0,5)=="<?xml"){g=g.substring(g.indexOf("?>")+2)}var c="".concat("<my>",g,"</my>");a.loadXML(c);var b=a.documentElement;while(b.hasChildNodes()){h.appendChild(b.firstChild)}}}return h};XSLTProcessor.prototype.setParameter= function(c,a,b){b=b?b:"";if(c){this.processor.addParameter(a,b,c)}else{this.processor.addParameter(a,b)}c=""+(c||"");if(!this.paramsSet[c]){this.paramsSet[c]=new Array()}this.paramsSet[c][a]=b};XSLTProcessor.prototype.getParameter= function(b,a){b=""+(b||"");if(this.paramsSet[b]&&this.paramsSet[b][a]){return this.paramsSet[b][a]}else{return null}};XSLTProcessor.prototype.clearParameters= function(){for(var b in this.paramsSet){for(var a in this.paramsSet[b]){if(b!=""){this.processor.addParameter(a,"",b)}else{this.processor.addParameter(a,"")}}}this.paramsSet=new Array()}}else{if(_SARISSA_HAS_DOM_CREATE_DOCUMENT){Sarissa.__handleLoad__= function(a){Sarissa.__setReadyState__(a,4)};_sarissa_XMLDocument_onload= function(){Sarissa.__handleLoad__(this)};Sarissa.__setReadyState__= function(a,b){a.readyState=b;a.readystate=b;if(a.onreadystatechange!=null&&typeof a.onreadystatechange=="function"){a.onreadystatechange()}};Sarissa.getDomDocument= function(c,b){var a=document.implementation.createDocument(c?c:null,b?b:null,null);if(!a.onreadystatechange){a.onreadystatechange=null}if(!a.readyState){a.readyState=0}a.addEventListener("load",_sarissa_XMLDocument_onload,false);return a};if(window.XMLDocument){}else{if(_SARISSA_HAS_DOM_FEATURE&&window.Document&&!Document.prototype.load&&document.implementation.hasFeature("LS","3.0")){Sarissa.getDomDocument= function(c,b){var a=document.implementation.createDocument(c?c:null,b?b:null,null);return a}}else{Sarissa.getDomDocument= function(c,b){var a=document.implementation.createDocument(c?c:null,b?b:null,null);if(a&&(c||b)&&!a.documentElement){a.appendChild(a.createElementNS(c,b))}return a}}}}}if(!window.DOMParser){if(_SARISSA_IS_SAFARI){DOMParser= function(){};DOMParser.prototype.parseFromString= function(b,c){var a=new XMLHttpRequest();a.open("GET","data:text/xml;charset=utf-8,"+encodeURIComponent(b),false);a.send(null);return a.responseXML}}else{if(Sarissa.getDomDocument&&Sarissa.getDomDocument()&&Sarissa.getDomDocument(null,"bar").xml){DOMParser= function(){};DOMParser.prototype.parseFromString= function(a,c){var b=Sarissa.getDomDocument();b.loadXML(a);return b}}}}if((typeof(document.importNode)=="undefined")&&_SARISSA_IS_IE){try{document.importNode= function(c,b){var a;if(c.nodeName=="#text"){return document.createTextElement(c.data)}else{if(c.nodeName=="tbody"||c.nodeName=="tr"){a=document.createElement("table")}else{if(c.nodeName=="td"){a=document.createElement("tr")}else{if(c.nodeName=="option"){a=document.createElement("select")}else{a=document.createElement("div")}}}if(b){a.innerHTML=c.xml?c.xml:c.outerHTML}else{a.innerHTML=c.xml?c.cloneNode(false).xml:c.cloneNode(false).outerHTML}return a.getElementsByTagName("*")[0]}}}catch(e){}}if(!Sarissa.getParseErrorText){Sarissa.getParseErrorText= function(a){var c=Sarissa.PARSED_OK;if(!a.documentElement){c=Sarissa.PARSED_EMPTY}else{if(a.documentElement.tagName=="parsererror"){c=a.documentElement.firstChild.data;c+="\n"+a.documentElement.firstChild.nextSibling.firstChild.data}else{if(a.getElementsByTagName("parsererror").length>0){var b=a.getElementsByTagName("parsererror")[0];c=Sarissa.getText(b,true)+"\n"}else{if(a.parseError&&a.parseError.errorCode!=0){c=Sarissa.PARSED_UNKNOWN_ERROR}}}}return c}}Sarissa.getText= function(h,b){var f="";var c=h.childNodes;for(var d=0;d<c.length;d++){var g=c[d];var a=g.nodeType;if(a==Node.TEXT_NODE||a==Node.CDATA_SECTION_NODE){f+=g.data}else{if(b==true&&(a==Node.ELEMENT_NODE||a==Node.DOCUMENT_NODE||a==Node.DOCUMENT_FRAGMENT_NODE)){f+=Sarissa.getText(g,true)}}}return f};if(!window.XMLSerializer&&Sarissa.getDomDocument&&Sarissa.getDomDocument("","foo",null).xml){XMLSerializer= function(){};XMLSerializer.prototype.serializeToString= function(a){return a.xml}}Sarissa.stripTags= function(a){return a.replace(/<[^>]+>/g,"")};Sarissa.clearChildNodes= function(a){while(a.firstChild){a.removeChild(a.firstChild)}};Sarissa.copyChildNodes= function(d,f,g){if(_SARISSA_IS_SAFARI&&f.nodeType==Node.DOCUMENT_NODE){f=f.documentElement}if((!d)||(!f)){throw"Both source and destination nodes must be provided"}if(!g){Sarissa.clearChildNodes(f)}var b=f.nodeType==Node.DOCUMENT_NODE?f:f.ownerDocument;var a=d.childNodes;if(typeof(b.importNode)!="undefined"){for(var c=0;c<a.length;c++){f.appendChild(b.importNode(a[c],true))}}else{for(var c=0;c<a.length;c++){f.appendChild(a[c].cloneNode(true))}}};Sarissa.moveChildNodes= function(d,f,g){if((!d)||(!f)){throw"Both source and destination nodes must be provided"}if(!g){Sarissa.clearChildNodes(f)}var a=d.childNodes;if(d.ownerDocument==f.ownerDocument){while(d.firstChild){f.appendChild(d.firstChild)}}else{var b=f.nodeType==Node.DOCUMENT_NODE?f:f.ownerDocument;if(typeof(b.importNode)!="undefined"){for(var c=0;c<a.length;c++){f.appendChild(b.importNode(a[c],true))}}else{for(var c=0;c<a.length;c++){f.appendChild(a[c].cloneNode(true))}}Sarissa.clearChildNodes(d)}};Sarissa.xmlize= function(f,h,d){d=d?d:"";var g=d+"<"+h+">";var b=false;if(!(f instanceof Object)||f instanceof Number||f instanceof String||f instanceof Boolean||f instanceof Date){g+=Sarissa.escape(""+f);b=true}else{g+="\n";var a=f instanceof Array;for(var c in f){g+=Sarissa.xmlize(f[c],(a?'array-item key="'+c+'"':c),d+"   ")}g+=d}return(g+=(h.indexOf(" ")!=-1?"</array-item>\n":"</"+h+">\n"))};Sarissa.escape= function(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")};Sarissa.unescape= function(a){return a.replace(/&apos;/g,"'").replace(/&quot;/g,'"').replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&amp;/g,"&")};var _XMLSerializer=new XMLSerializer();Sarissa.serialize= function(a){return _XMLSerializer.serializeToString(a)};Sarissa.updateCursor= function(b,a){if(b&&b.style&&b.style.cursor!=undefined){b.style.cursor=a}};Sarissa.updateContentFromURI= function(b,c,g,k,f){try{Sarissa.updateCursor(c,"wait");var a=new XMLHttpRequest();a.open("GET",b);function j(){if(a.readyState==4){Sarissa.updateContentFromNode(a.responseXML,c,g,k)}}a.onreadystatechange=j;if(f){var d="Sat, 1 Jan 2000 00:00:00 GMT";a.setRequestHeader("If-Modified-Since",d)}a.send("")}catch(h){Sarissa.updateCursor(c,"auto");throw h}};Sarissa.updateContentFromNode= function(f,h,a,g){try{Sarissa.updateCursor(h,"wait");Sarissa.clearChildNodes(h);var b=f.nodeType==Node.DOCUMENT_NODE?f:f.ownerDocument;if(b.parseError&&b.parseError!=0){var d=document.createElement("pre");d.appendChild(document.createTextNode(Sarissa.getParseErrorText(b)));h.appendChild(d)}else{if(a){f=a.transformToDocument(f)}if(h.tagName.toLowerCase()=="textarea"||h.tagName.toLowerCase()=="input"){h.value=new XMLSerializer().serializeToString(f)}else{if(f.nodeType==Node.DOCUMENT_NODE||f.ownerDocument.documentElement==f){h.innerHTML=new XMLSerializer().serializeToString(f)}else{h.appendChild(h.ownerDocument.importNode(f,true))}}}if(g){g(f,h)}}catch(c){throw c}finally{Sarissa.updateCursor(h,"auto")}};if(!_SARISSA_IS_IE){if(_SARISSA_HAS_DOM_CREATE_DOCUMENT){Sarissa.__handleLoad__= function(a){Sarissa.__setReadyState__(a,4)};function SarissaParseError(){this.errorCode=0}_sarissa_XMLDocument_onload= function(){Sarissa.__handleLoad__(this)};Sarissa.__setReadyState__= function(a,b){a.readyState=b;a.readystate=b;if(a.onreadystatechange!=null&&typeof a.onreadystatechange=="function"){a.onreadystatechange()}};Sarissa.getDomDocument= function(c,b){var a=document.implementation.createDocument(c?c:null,b?b:null,null);if(!a.onreadystatechange){a.onreadystatechange=null}if(!a.readyState){a.readyState=0}if(!a.parseError){a.parseError=new SarissaParseError()}a.addEventListener("load",_sarissa_XMLDocument_onload,false);return a};if(window.XMLDocument){XMLDocument.prototype._sarissa_load=XMLDocument.prototype.load;XMLDocument.prototype.load= function(d){var a=Sarissa.getDomDocument();Sarissa.copyChildNodes(this,a);this.parseError.errorCode=0;Sarissa.__setReadyState__(this,1);try{if(this.async==false&&_SARISSA_SYNC_NON_IMPLEMENTED){var b=new XMLHttpRequest();b.open("GET",d,false);b.send(null);Sarissa.__setReadyState__(this,2);Sarissa.copyChildNodes(b.responseXML,this);Sarissa.__setReadyState__(this,3)}else{this._sarissa_load(d)}}catch(c){a.parseError.errorCode=-1}finally{if(!a.documentElement||a.documentElement.tagName=="parsererror"){a.parseError.errorCode=-1}if(this.async==false){Sarissa.__handleLoad__(this)}}return a}}else{if(document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("LS","3.0")){Document.prototype.async=true;Document.prototype.onreadystatechange=null;Document.prototype.load= function(g){var b=Sarissa.getDomDocument();Sarissa.copyChildNodes(this,b,false);var f=document.implementation.createLSParser(this.async?document.implementation.MODE_ASYNCHRONOUS:document.implementation.MODE_SYNCHRONOUS,null);if(this.async){var c=this;f.addEventListener("load",function(h){c.readyState=4;Sarissa.copyChildNodes(h.newDocument,c,false);c.onreadystatechange.call()},false)}try{var a=f.parseURI(g);if(!this.async){Sarissa.copyChildNodes(a,this,false)}}catch(d){this.parseError.errorCode=-1}return b};Sarissa.getDomDocument= function(c,b){var a=document.implementation.createDocument(c?c:null,b?b:null,null);if(!a.parseError){a.parseError={errorCode:0}}return a}}else{Sarissa.getDomDocument= function(c,b){var a=document.implementation.createDocument(c?c:null,b?b:null,null);if(a&&(c||b)&&!a.documentElement){a.appendChild(a.createElementNS(c,b))}if(!a.load){a.load= function(h){var d=document.implementation.createDocument();Sarissa.copyChildNodes(this,d);this.parseError={errorCode:0};Sarissa.__setReadyState__(this,1);if(this.async==false){var g=new XMLHttpRequest();g.open("GET",h,false);g.send(null);Sarissa.__setReadyState__(this,2);Sarissa.copyChildNodes(g.responseXML,a);if(!a.documentElement||a.getElementsByTagName("parsererror").length>0){a.parseError.errorCode=-1}Sarissa.__setReadyState__(this,3);Sarissa.__setReadyState__(this,4)}else{var f=new XMLHttpRequest();f.open("GET",h,true);f.onreadystatechange= function(){if(f.readyState==4){Sarissa.copyChildNodes(f.responseXML,a);if(!a.documentElement||a.getElementsByTagName("parsererror").length>0){a.parseError.errorCode=-1}}Sarissa.__setReadyState__(a,f.readyState)};f.send(null)}return d}}return a}}}}}if(_SARISSA_HAS_DOM_FEATURE&&document.implementation.hasFeature("XPath","3.0")){function SarissaNodeList(a){this.length=a}SarissaNodeList.prototype=new Array(0);SarissaNodeList.prototype.constructor=Array;SarissaNodeList.prototype.item= function(a){return(a<0||a>=this.length)?null:this[a]};SarissaNodeList.prototype.expr="";if(window.XMLDocument&&(!XMLDocument.prototype.setProperty)){XMLDocument.prototype.setProperty= function(a,b){}}Sarissa.setXpathNamespaces= function(h,c){h._sarissa_useCustomResolver=true;var a=c.indexOf(" ")>-1?c.split(" "):new Array(c);h._sarissa_xpathNamespaces=new Array(a.length);for(var d=0;d<a.length;d++){var g=a[d];var j=g.indexOf(":");var k=g.indexOf("=");if(j>0&&k>j+1){var f=g.substring(j+1,k);var b=g.substring(k+2,g.length-1);h._sarissa_xpathNamespaces[f]=b}else{throw"Bad format on namespace declaration(s) given"}}};XMLDocument.prototype._sarissa_useCustomResolver=false;XMLDocument.prototype._sarissa_xpathNamespaces=new Array();XMLDocument.prototype.selectNodes= function(c,h,a){var f=this;var b=this._sarissa_useCustomResolver?function(m){var l=f._sarissa_xpathNamespaces[m];if(l){return l}else{throw"No namespace URI found for prefix: '"+m+"'"}}:this.createNSResolver(this.documentElement);var k=null;if(!a){var j=this.evaluate(c,(h?h:this),b,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);var d=new SarissaNodeList(j.snapshotLength);d.expr=c;for(var g=0;g<d.length;g++){d[g]=j.snapshotItem(g)}k=d}else{k=j=this.evaluate(c,(h?h:this),b,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}return k};Element.prototype.selectNodes= function(a){var b=this.ownerDocument;if(b.selectNodes){return b.selectNodes(a,this)}else{throw"Method selectNodes is only supported by XML Elements"}};XMLDocument.prototype.selectSingleNode= function(c,b){var a=b?b:null;return this.selectNodes(c,a,true)};Element.prototype.selectSingleNode= function(a){var b=this.ownerDocument;if(b.selectSingleNode){return b.selectSingleNode(a,this)}else{throw"Method selectNodes is only supported by XML Elements"}};Sarissa.IS_ENABLED_SELECT_NODES=true}if(!Sarissa.IS_ENABLED_TRANSFORM_NODE&&window.XSLTProcessor&&self.XMLElement){XMLElement.prototype.transformNodeToObject= function(c,b){var a=document.implementation.createDocument("","",null);Sarissa.copyChildNodes(this,a);a.transformNodeToObject(c,b)};Document.prototype.transformNodeToObject= function(f,b){var a=null;try{a=new XSLTProcessor();if(a.reset){a.importStylesheet(f);var c=a.transformToFragment(this,b);Sarissa.copyChildNodes(c,b)}else{a.transformDocument(this,f,b,null)}}catch(d){if(f&&b){throw"Failed to transform document. (original exception: "+d+")"}else{if(!f){throw"No Stylesheet Document was provided. (original exception: "+d+")"}else{if(!b){throw"No Result Document was provided. (original exception: "+d+")"}else{if(a==null){throw"Could not instantiate an XSLTProcessor object. (original exception: "+d+")"}else{throw d}}}}}};XMLElement.prototype.transformNode= function(b){var a=document.implementation.createDocument("","",null);Sarissa.copyChildNodes(this,a);return a.transformNode(b)};Document.prototype.transformNode= function(f){var a=document.implementation.createDocument("","",null);this.transformNodeToObject(f,a);var d=null;try{var b=new XMLSerializer();d=b.serializeToString(a)}catch(c){throw"Failed to serialize result document. (original exception: "+c+")"}return d};Sarissa.IS_ENABLED_TRANSFORM_NODE=true}Sarissa.setXslParameter= function(m,h,k){try{var c=m.getElementsByTagName(_SARISSA_IEPREFIX4XSLPARAM+"param");var b=c.length;var l=false;var a;if(k){for(var f=0;f<b&&!l;f++){if(c[f].getAttribute("name")==h){a=c[f];while(a.firstChild){a.removeChild(a.firstChild)}if(!k||k==null){}else{if(typeof k=="string"){a.setAttribute("select",k);l=true}else{if(k.nodeName){a.removeAttribute("select");a.appendChild(k.cloneNode(true));l=true}else{if(k.item(0)&&k.item(0).nodeType){for(var d=0;d<k.length;d++){if(k.item(d).nodeType){a.appendChild(k.item(d).cloneNode(true))}}l=true}else{throw"Failed to set xsl:param "+h+" (original exception: "+g+")"}}}}}}}return l}catch(g){throw g;return false}};var deCarta={};function GLOBALS(){}GLOBALS.HYBRID="HYBRID";GLOBALS.STREET="STREET";GLOBALS.SATELLITE="SATELLITE";GLOBALS.PAN_PIXEL_DISTANCE=300;GLOBALS.DEFAULT_MAP_TILE_SIZE=256;GLOBALS.DEFAULT_MAP_WIDTH="800px";GLOBALS.DEFAULT_MAP_HEIGHT="500px";GLOBALS.API_VERSION="4.5.1sp01";GLOBALS.API_BUILD="$LastChangedRevision: 53002 $";GLOBALS.API_RELEASECLASS="RELEASE";GLOBALS.ALLOWDOMEVENTS=true;GLOBALS.DEBUG_JSON=false;function Credentials(){}Credentials.url="http://ws.decarta.com/openls/openls";Credentials.jsonServletName="JSON";Credentials.clientName="";Credentials.clientPassword="";Credentials.configuration="old-english-tile";Credentials.transparentConfiguration="transparent-tile";Credentials.mapType="STREET";Credentials.ISOCountryCode="US";Credentials.trafficEnabled=false;Credentials.rel="4.5.1sp01";Credentials.dgkey="";Credentials.imgPath="http://www.decarta.com/wp-content/themes/decarta/contactmap-old/img/";Credentials.errorTile=Credentials.imgPath+"tile.png";Credentials.transparentPNG=Credentials.imgPath+"tile.png";Credentials.transparentGIF=Credentials.imgPath+"x.gif";Credentials.infoWindowCloseButton=Credentials.imgPath+"close.png";Credentials.pinIconPath=Credentials.imgPath+"greenDot.png";Credentials.zoomUnselectedIconPath=Credentials.imgPath+"zoom.png";Credentials.zoomSelectedIconPath=Credentials.imgPath+"zoomChecked.png";Credentials.zoomOutIconPath=Credentials.imgPath+"zoomBottom.png";Credentials.zoomInIconPath=Credentials.imgPath+"zoomTop.png";deCarta.AJAXContentLoader={};deCarta.AJAXContentLoader.load= function(b,g,a){if(a&&a.mode=="iframe"){var c=document.createElement("iframe");c.style.width=a.height||"0px";c.style.height=a.width||"0px";c.style.border="0px";c.src=b;if(typeof(g)=="function"){c.onload=g}a.dom.appendChild(c)}else{if(!Utilities.ie){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesWrite UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead")}catch(d){}}var f=new XMLHttpRequest();f.open("GET",b,true);f.onreadystatechange= function(){if(f.readyState==4){if(f.status==200){g(f.responseText)}else{g(f.responseText)}}};f.send(null)}};deCarta.AdManager={url:"http://mobile-dev.decarta.com/adproxies/AdController",callbacks:[],scriptCounter:0,scriptTagId:"deCartaAdScript",requestAds:function(g,j,h){var c=deCarta.AdManager.scriptCounter++;var d=document.createElement("script");d.setAttribute("type","text/javascript");d.setAttribute("id",deCarta.AdManager.scriptTagId+c);var k="?DECARTAADID="+c;var a="&ADPROVIDER="+g;deCarta.AdManager.callbacks[c]=h;var f=deCarta.AdManager.url+k+a;for(var b in j){if(j.hasOwnProperty(b)){f+="&"+b+"="+escape(j[b])}}d.setAttribute("src",f);document.getElementsByTagName("head").item(0).appendChild(d);deCarta.AdManager.scriptObj=d},callback:function(b){var c=parseInt(b.DECARTAADID);var a=document.getElementById(deCarta.AdManager.scriptTagId+c);if(a){document.getElementsByTagName("head").item(0).removeChild(a)}deCarta.AdManager.callbacks[c](b)}};function Address(f,j,c,b,h,g,d,a){if(f||f==0){this.buildingNumber=f}else{this.buildingNumber=""}this.landmark="";this.street=j||"";this.streetNameAndNumber="";this.speedLimit="";this.countryCode="";this.countrySubdivision=c||"";this.countrySecondarySubdivision=b||"";this.countryTertiarySubdivision="";this.municipality=h||"";this.postalCode=g||"";this.municipalitySubdivision=d||"";this.locale=a||new Locale("en","US");this.type="Structured"}Address.prototype.getBuildingNumber= function(){return this.buildingNumber};Address.prototype.setBuildingNumber= function(a){this.buildingNumber=a};Address.prototype.getStreet= function(){return this.street};Address.prototype.setStreet= function(a){this.street=a};Address.prototype.getCountrySubdivision= function(){return this.countrySubdivision};Address.prototype.setCountrySubdivision= function(a){this.countrySubdivision=a};Address.prototype.getCountrySecondarySubdivision= function(){return this.countrySecondarySubdivision};Address.prototype.setCountrySecondarySubdivision= function(a){this.countrySecondarySubdivision=a};Address.prototype.getMunicipality= function(){return this.municipality};Address.prototype.setMunicipality= function(a){this.municipality=a};Address.prototype.getMunicipalitySubdivision= function(){return this.municipalitySubdivision};Address.prototype.setMunicipalitySubdivision= function(a){this.municipalitySubdivision=a};Address.prototype.getPostalCode= function(){return this.postalCode};Address.prototype.setPostalCode= function(a){this.postalCode=a};Address.prototype.getLocale= function(){return this.locale};Address.prototype.setLocale= function(a){this.locale=a};Address.prototype.toString= function(){var a="";if(this.buildingNumber!=""){a+=this.buildingNumber+" "}if(this.street!=""){a+=this.street+" "}if(this.municipality!=""){a+=this.municipality+" "}if(this.countrySubdivision!=""){a+=this.countrySubdivision+" "}if(this.postalCode!=""){a+=this.postalCode}return a};deCarta.Animator= function(){};deCarta.Animator.prototype.objsToAnimate=null;deCarta.Animator.prototype.objsType=null;deCarta.Animator.prototype.scopeObj=null;deCarta.Animator.prototype.onendCallback=null;deCarta.Animator.prototype.animation=null;deCarta.Animator.prototype.animationId=null;deCarta.Animator.prototype.setObjsToAnimate= function(a){if(!deCarta.Array.isArray(a)){a=[a]}var b;var g=a[0].type;var f=["pin"];var c=f.length;for(b=0;b<c;b++){if(g==f[b]){break}}if(b>=c){throw new Exception("requesting to animate invalid object type: "+this.objsType)}var d=a.length;for(b=0;b<d;b++){if(a[b].type!=g){throw new Exception("obj index: "+b+" is of invalid type: "+a[b].type)}}this.objsType=g;this.objsToAnimate=a};deCarta.Animator.prototype.setScopeObj= function(a){this.scopeObj=a};deCarta.Animator.prototype.setOnendCallback= function(a){if(typeof a!="function"){throw new Exception("deCarta.Animator.setOnendCallback: callback not a function")}this.onendCallback=a};deCarta.Animator.prototype.setAnimation= function(a){};deCarta.Array={};deCarta.Array.isArray= function(a){return Object.prototype.toString.call(a)==="[object Array]"};deCarta.Array.indexOf= function(d,a,c){var b=d.length;c=(!c||isNaN(c))?0:c;c=(c<=0)?0:c;c=(c>=b-1)?b-1:c;for(;c<b;c++){if(d[c]===a){return c}}return -1};function BoundingBox(b,a){if(!(b&&(b.lat||b.lat==0)&&(b.lon||b.lon==0))||!(a&&(a.lat||a.lat==0)&&(a.lon||a.lon==0))){throw new Exception("Error instantiating BoundingBox, invalid parameters: "+b+a)}if(b.lat>a.lat){throw new Exception("Error instantiating BoundingBox, minPos.lat should <= maxPos.lat")}this.minPosition=new Position(b.lat,b.lon);this.maxPosition=new Position(a.lat,a.lon);this.getHeightInDegrees= function(){return this.maxPosition.lat-this.minPosition.lat};this.getWidthInDegrees= function(){if(this.minPosition.lon>this.maxPosition.lon){return(this.maxPosition.lon-this.minPosition.lon)+360}else{return(this.maxPosition.lon-this.minPosition.lon)}};this.getUpperLeftPosition= function(){var c=new Position(this.maxPosition.lat,this.minPosition.lon);return c};this.getLowerRightPosition= function(){var c=new Position(this.minPosition.lat,this.maxPosition.lon);return c};this.getMaxPosition= function(){return this.maxPosition};this.setMaxPosition= function(c){if(this.minPosition.lat>c.lat){throw new Exception("Error setting maxPosition, minPos.lat should <= maxPos.lat")}this.maxPosition=new Position(c.lat,c.lon)};this.getMinPosition= function(){return this.minPosition};this.setMinPosition= function(c){if(c.lat>this.maxPosition.lat){throw new Exception("Error setting minPosition, minPos.lat should <= maxPos.lat")}this.minPosition=new Position(c.lat,c.lon)};this.getCenterPosition= function(){var d=parseFloat(this.maxPosition.lat-((this.maxPosition.lat-this.minPosition.lat)/2));var c=parseFloat(this.maxPosition.lon-((this.maxPosition.lon-this.minPosition.lon)/2));if(this.maxPosition.lon<this.minPosition.lon){c=c+180}return new Position(d,c)};this.getRadius= function(){if(this.getHeightInDegrees()>this.getWidthInDegrees()){return(this.getHeightInDegrees()*111.111)/2}else{return(this.getWidthInDegrees()*111.111)/2}};this.contains= function(f){var d=this.maxPosition.lon;var c=f.lon;if(this.minPosition.lon>0&&this.maxPosition.lon<this.minPosition.lon){d=d+360;if(f.lon<this.minPosition.lon){c=c+360}}if(this.minPosition.lon<0&&this.maxPosition.lon<this.minPosition.lon){d=d+360;if(f.lon<this.minPosition.lon){c=c+360}}if(f.lat>=this.minPosition.lat&&c>=this.minPosition.lon&&f.lat<=this.maxPosition.lat&&c<=d){return true}else{return false}};this.containsBoundingBox= function(h){if(!h){return true}var c=new Position(h.maxPosition.lat,h.minPosition.lon);var f=h.minPosition;var d=h.maxPosition;var g=new Position(h.minPosition.lat,h.maxPosition.lon);if(this.contains(c)&&this.contains(f)&&this.contains(d)&&this.contains(g)){if(new BoundingBox(this.minPosition,d).contains(f)){return true}}return false};this.getOverlapBoundingBox= function(o){var f=this.minPosition;var l=this.maxPosition;var n=o.minPosition;var m=o.maxPosition;if(f.lat>=m.lat||n.lat>=l.lat){return null}var d=new BoundingBox(new Position(-90,f.lon),new Position(90,l.lon));var c=new BoundingBox(new Position(-90,n.lon),new Position(90,m.lon));if(!d.contains(n)&&!d.contains(m)&&!c.contains(f)&&!c.contains(l)){return null}var k=0,h=0;if(d.contains(n)){k=n.lon;if(c.contains(f)){h=l.lon}else{if(d.contains(m)){h=m.lon}else{h=l.lon}}}else{if(c.contains(f)){k=f.lon;if(c.contains(l)){h=l.lon}else{h=m.lon}}}var j=[f.lat,l.lat,n.lat,m.lat];g(j);return new BoundingBox(new Position(j[1],k),new Position(j[2],h));function g(s){var r=0,p=0;for(r=0;r<s.length-1;r++){for(p=0;p<s.length-r-1;p++){if(s[p]>s[p+1]){var q=s[p];s[p]=s[p+1];s[p+1]=q}}}}};this.extendedContains= function(h){var d=new Position(this.minPosition.lat-this.getHeightInDegrees(),this.minPosition.lon-this.getWidthInDegrees());var c=new Position(this.maxPosition.lat+this.getHeightInDegrees(),this.maxPosition.lon+this.getWidthInDegrees());var g=c.lon;var f=h.lon;if(d.lon>0&&c.lon<d.lon){g=g+360;if(h.lon<d.lon){f=f+360}}if(d.lon<0&&c.lon<d.lon){g=g+360;if(h.lon<d.lon){f=f+360}}if(h.lat>d.lat&&f>d.lon&&h.lat<c.lat&&f<g){return true}else{return false}};this.equals= function(c){if(c&&this.minPosition.toString()==c.getMinPosition().toString()&&this.maxPosition.toString()==c.getMaxPosition().toString()){return true}else{return false}};this.toString= function(){return this.minPosition.toString()+" "+this.maxPosition.toString()}}deCarta.CopyrightMessage= function(a){this.init(a)};deCarta.CopyrightMessage.prototype.map=null;deCarta.CopyrightMessage.prototype.type="CopyrightMessage";deCarta.CopyrightMessage.prototype.frame=null;deCarta.CopyrightMessage.prototype.cssClass="decarta-copyright";deCarta.CopyrightMessage.prototype.message=null;deCarta.CopyrightMessage.prototype.init= function(a){this.message=a};deCarta.CopyrightMessage.prototype.build= function(){this.frame=document.createElement("DIV");this.frame.id=this.cssClass;this.frame.className=this.cssClass;this.frame.innerHTML=this.message;Utilities.setUnselectable(this.frame)};deCarta.CopyrightMessage.prototype.appendThis= function(){if(!this.frame){this.build()}return this.frame};deCarta.CopyrightMessage.prototype.removeThis= function(){this.map=null;return this.frame};deCarta.CopyrightMessage.prototype.position= function(a){this.frame.style.top=(a.height-20)+"px";this.frame.style.left="1px"};function DDSShape(){this.borderColor="(0.0.0)";this.borderColorRed=0;this.borderColorGreen=0;this.borderColorBlue=0;this.borderStyle="SOLID";this.borderWidth="2";this.fillColor="(0.0.0)";this.fillColorRed=0;this.fillColorBlue=0;this.fillColorGreen=0;this.id=null;this.opacity="65";this.opacityFloat=0.65;this.strokeOpacity="65";this.strokeOpacityFloat=0.65;this.fillOpacity="65";this.fillOpacityFloat=0.65;this.map=null;this.isVisible=true;this.rendering=null;this.eventListenerMap=null;this.raphael_element=null;this.title="";this.description="";this.customProperties=null;this.generalizedMinLonIndex=[]}DDSShape.prototype.inside=null;DDSShape.prototype.setBorderColor= function(b){if(!b.match(/\([0-9]+\.[0-9]+\.[0-9]+\)/)){throw new Exception("Error setting RGB value in DDSShape.setBorderColor. Please use format (255.255.255)");return}this.borderColor=b;var a=b.replace("(","").replace(")","").split(".");this.borderColorRed=parseInt(a[0],10);this.borderColorGreen=parseInt(a[1],10);this.borderColorBlue=parseInt(a[2],10)};DDSShape.prototype.getBorderColor= function(){return this.borderColor};DDSShape.prototype.setBorderStyle= function(a){if(a=="SOLID"||a=="DASH"||a=="DOT"||a=="DASHDOTDOT"||a=="ALTBLACKDASH"||a=="RAIL"||a=="NONE"){this.borderStyle=a}else{throw new Exception("Error setting border style value in DDSShape.setBorderStyle. Please use format SOLID, DASH, DOT, DASHDOTDOT, ALTBLACKDASH, RAIL, NONE");return}};DDSShape.prototype.getBorderStyle= function(){return this.borderStyle};DDSShape.prototype.setBorderWidth= function(a){this.borderWidth=a};DDSShape.prototype.getBorderWidth= function(){return this.borderWidth};DDSShape.prototype.setFillColor= function(b){if(!b.match(/\([0-9]+\.[0-9]+\.[0-9]+\)/)){throw new Exception("Error setting RGB value in DDSShape.setColor. Please use format (255.255.255)");return}this.fillColor=b;var a=b.replace("(","").replace(")","").split(".");this.fillColorRed=parseInt(a[0],10);this.fillColorGreen=parseInt(a[1],10);this.fillColorBlue=parseInt(a[2],10)};DDSShape.prototype.getFillColor= function(){return this.fillColor};DDSShape.prototype.getId= function(){return this.id};DDSShape.prototype.getTitle= function(){return this.title};DDSShape.prototype.setTitle= function(a){this.title=a};DDSShape.prototype.getDescription= function(){return this.description};DDSShape.prototype.setDescription= function(a){this.description=a};DDSShape.prototype.setOpacity= function(a){var b=parseInt(a,10)/100;if(isNaN(b)){throw new Exception("DDSShape.prototype.setOpacity: invalid argument of: "+a)}this.opacity=a;this.opacityFloat=b;this.strokeOpacityFloat=b;this.fillOpacityFloat=b};DDSShape.prototype.getOpacity= function(){return this.opacity};DDSShape.prototype.setStrokeOpacity= function(a){var b=parseInt(a,10)/100;if(isNaN(b)){throw new Exception("DDSShape.prototype.setStrokeOpacity: invalid argument of: "+a)}this.strokeOpacity=a;this.strokeOpacityFloat=b};DDSShape.prototype.getStrokeOpacity= function(){return this.strokeOpacity};DDSShape.prototype.setFillOpacity= function(a){var b=parseInt(a,10)/100;if(isNaN(b)){throw new Exception("DDSShape.prototype.setStrokeOpacity: invalid argument of: "+a)}this.fillOpacity=a;this.fillOpacityFloat=b};DDSShape.prototype.getFillOpacity= function(){return this.fillOpacity};DDSShape.prototype.hide= function(){if(this.isVisible==true){this.isVisible=false;if(this.map){if(this.map.getShapeRendering()=="client"){if(this.raphael_element){this.raphael_element.hide()}}else{this.map.reDrawMap()}}}};DDSShape.prototype.show= function(){if(this.isVisible==false){this.isVisible=true;if(this.map){if(this.map.getShapeRendering()=="client"){if(this.raphael_element){this.raphael_element.show()}else{this.map.drawShape(this)}}else{this.map.reDrawMap()}}}};DDSShape.prototype.equals= function(a){if(a&&this.id==a.id){return true}else{return false}};DDSShape.prototype.addEventListener= function(b,a){if(!this.eventListenerMap){this.eventListenerMap={}}if(typeof a=="function"){this.eventListenerMap[b]=a;if(this.raphael_element&&this.raphael_element.node){this.raphael_element.node[b]= function(g){g=g?g:window.event;var d=this.raphael.owner_shape;var c=g.type;c="on"+c;var f=d.eventListenerMap[c];f(d)}}}};DDSShape.getMercPixels= function(g,r){if(this.mercPixels[g]){return(this.mercPixels[g])}var a=this.positions;var s=this.getBoundingBox().minPosition.lon;var k=0;var h=Utilities.radsPerPixelAtZoomLevel(r,g);if(this.generalize){if(this.generalized[g]){a=this.generalized[g];if(this.generalizedMinLonIndex[g]){k=this.generalizedMinLonIndex[g]}else{var m=Utilities.pix2lon(10,h);for(var q=0;q<a.length;q++){if(Math.abs(a[q].lon-s)<=m){k=q;this.generalizedMinLonIndex[g]=q;break}}}}else{a=Utilities.generalize(a,g,10,r);this.generalized[g]=a;m=Utilities.pix2lon(10,h);for(q=0;q<a.length;q++){if(Math.abs(a[q].lon-s)<=m){k=q;this.generalizedMinLonIndex[g]=q;break}}}}var p=a.length;var d=[];for(var j=k;j<p;j++){var n=(a[j]);var c=Math.round(Utilities.lat2pix(n.lat,h));var f;if(j>k){var b=a[j-1].lon;var l=d[j-1].x;var o=n.lon-b;if(o>180){o-=360}else{if(o<-180){o+=360}}f=l+Math.round(Utilities.lon2pix(o,h))}else{f=Math.round(Utilities.lon2pix(n.lon,h))}d[j]=new PixelPoint(f,c)}for(j=k-1;j>=0;j--){n=(a[j]);c=Math.round(Utilities.lat2pix(n.lat,h));if(j<k){b=a[j+1].lon;l=d[j+1].x;o=n.lon-b;if(o>180){o-=360}else{if(o<-180){o+=360}}f=l+Math.round(Utilities.lon2pix(o,h))}d[j]=new PixelPoint(f,c)}this.mercPixels[g]=d;return(this.mercPixels[g])};function DDSCircle(b,a){this.id=Math.floor(Math.random()*10000000);this.type="circle";this.radius=a||new Radius(100,new UOM("M"));this.position=b;this.customProperties={}}DDSCircle.prototype=new DDSShape();DDSCircle.prototype.constructor=DDSCircle;DDSCircle.prototype.setPosition= function(a){this.position=a;if(this.map!=null&&this.map.getShapeRendering()=="client"){this.bbox=null;this.map.drawShape(this)}};DDSCircle.prototype.getPosition= function(){return this.position};DDSCircle.prototype.setRadius= function(a){this.radius=a;if(this.map!=null&&this.map.getShapeRendering()=="client"){this.bbox=null;this.map.drawShape(this)}};DDSCircle.prototype.getRadius= function(){return this.radius};DDSCircle.prototype.inside= function(b){var a=deCarta.Math.greatCircleDist(this.position,b,this.radius.uom);if(a<this.radius.distance){return true}else{return false}};DDSCircle.prototype.getBoundingBox= function(){if(this.bbox){return(this.bbox)}this.bbox=Utilities.centerContextToBoundingBox(this.position,this.radius.getDegrees()*111.111);return this.bbox};function DDSLine(a){this.id=Math.floor(Math.random()*10000000);this.type="line";this.generalize=true;this.generalized=[];this.mercPixels=[];this.positions=[];this.width=a||2;this.VR7="";this.clip=false;this.setFillColor("(0.0.0)");this.setBorderWidth("0");this.customProperties={}}DDSLine.prototype=new DDSShape();DDSLine.prototype.constructor=DDSLine;DDSLine.prototype.setColor= function(a){try{this.setBorderColor(a);this.setFillColor(a)}catch(b){throw new Exception("Error setting RGB value in DDSLine.setColor. Please use format (255.255.255)")}};DDSLine.prototype.setPositions= function(a){this.positions=a;this.generalized=[];this.mercPixels=[];if(this.map!=null&&this.map.getShapeRendering()=="client"){this.bbox=null;this.map.drawShape(this)}};DDSLine.prototype.getPositions= function(){return this.positions};DDSLine.prototype.getPosition= function(){return this.getBoundingBox().getCenterPosition()};DDSLine.prototype.setWidth= function(a){this.width=a;if(this.map!=null&&this.map.getShapeRendering()=="client"){this.bbox=null;this.map.drawShape(this)}};DDSLine.prototype.getWidth= function(){return this.width};DDSLine.prototype.setVR7= function(a){this.VR7=a};DDSLine.prototype.getVR7= function(){return this.VR7};DDSLine.prototype.setGeneralize= function(a){this.generalize=a};DDSLine.prototype.getGeneralize= function(){return this.generalize};DDSLine.prototype.setClip= function(a){this.clip=(a)?true:false};DDSLine.prototype.getMercPixels=DDSShape.getMercPixels;DDSLine.prototype.getMercPixelsClipped= function(z,r,b){var G,F;var l=this.getMercPixels(z,r);var f=l.length;if(f<2){return[l]}var t=[];var s=0;for(G=0;G<f-1;G++){if(l[G].equals(l[G+1])){continue}t[s]=[];t[s][0]=l[G];t[s][1]=l[G+1];s++}var E=t.length;var I=Utilities.radsPerPixelAtZoomLevel(r,z);var g=Math.round(Utilities.lat2pix(b.maxPosition.lat,I));var A=Math.round(Utilities.lat2pix(b.minPosition.lat,I));var w=Math.round(Utilities.lon2pix(b.maxPosition.lon,I));var c=Math.round(Utilities.lon2pix(b.minPosition.lon,I));for(G=0;G<E;G++){a(t[G])}var J=[];var h=0;var H="oc";var n="oc0";var k="oc1";var B=1;var m=2;var q=4;var u=8;G=0;while(G<E){var d=t[G];if(!(d[n]|d[k])){if(!(d[0].equals(d[1]))){J[h++]=d}else{}G++;continue}else{if(d[n]&d[k]){G++;continue}else{for(F=0;F<2;F++){var C=d[H+F];var p,o;if(!C){continue}if(C&B){p=d[0].x+(d[1].x-d[0].x)*(g-d[0].y)/(d[1].y-d[0].y);o=g}else{if(C&m){p=d[0].x+(d[1].x-d[0].x)*(A-d[0].y)/(d[1].y-d[0].y);o=A}}if(C&q){p=w;o=d[0].y+(d[1].y-d[0].y)*(w-d[0].x)/(d[1].x-d[0].x)}else{if(C&u){p=c;o=d[0].y+(d[1].y-d[0].y)*(c-d[0].x)/(d[1].x-d[0].x)}}if(isNaN(p)||!isFinite(p)||isNaN(o)||!isFinite(o)){G++;break}var D=new PixelPoint(p,o);d[F]=D}a(d)}}}return J;function a(j){var P="oc";var N=1;var O=2;var M=4;var K=8;for(var y=0;y<2;y++){var L=j[y];j[P+y]=0;if(L.x>w){j[P+y]+=M}else{if(L.x<c){j[P+y]+=K}}if(L.y>g){j[P+y]=N}else{if(L.y<A){j[P+y]=O}}}}};DDSLine.prototype.getBoundingBox= function(){if(this.bbox){return(this.bbox)}if(this.positions.length>1){this.bbox=Utilities.positionsToBoundingBox(this.positions)}else{this.bbox=new BoundingBox(this.positions[0],this.positions[0])}return this.bbox};function DDSPolygon(){this.id=Math.floor(Math.random()*10000000);this.type="polygon";this.generalize=true;this.generalized=[];this.mercPixels=[];this.positions=[];this.VR7="";this.customProperties={}}DDSPolygon.prototype=new DDSShape();DDSPolygon.prototype.constructor=DDSPolygon;DDSPolygon.prototype.setPositions= function(a){this.positions=a;if(!this.positions[this.positions.length-1].equals(this.positions[0])){this.positions.push(this.positions[0].clone())}this.generalized=[];this.mercPixels=[];if(this.map!=null&&this.map.getShapeRendering()=="client"){this.bbox=null;this.map.drawShape(this)}};DDSPolygon.prototype.getPositions= function(){return this.positions};DDSPolygon.prototype.getPosition= function(){return this.getBoundingBox().getCenterPosition()};DDSPolygon.prototype.setVR7= function(a){this.VR7=a;if(this.map!=null){this.bbox=null;this.map.drawShape(this)}};DDSPolygon.prototype.getVR7= function(){return this.VR7};DDSPolygon.prototype.setGeneralize= function(a){this.generalize=a};DDSPolygon.prototype.getGeneralize= function(){return this.generalize};DDSPolygon.prototype.inside= function(a){return deCarta.Math.pointInPolygon(this.positions,a)};DDSPolygon.prototype.getMercPixels=DDSShape.getMercPixels;DDSPolygon.prototype.getBoundingBox= function(){if(this.bbox){return(this.bbox)}if(this.positions.length>1){this.bbox=Utilities.positionsToBoundingBox(this.positions)}else{this.bbox=new BoundingBox(this.positions[0],this.positions[0])}return this.bbox};deCarta.DOMDimensions= function(a){this.init(a)};deCarta.DOMDimensions.prototype.left=null;deCarta.DOMDimensions.prototype.top=null;deCarta.DOMDimensions.prototype.right=null;deCarta.DOMDimensions.prototype.bottom=null;deCarta.DOMDimensions.prototype.width=null;deCarta.DOMDimensions.prototype.height=null;deCarta.DOMDimensions.prototype.init= function(a){try{if(!a||(a&&!a.style)){throw new Exception("passed in element not valid")}this.width=parseInt(a.clientWidth,10);this.height=parseInt(a.clientHeight,10);this.left=parseInt(Utilities.getAbsoluteLeft(a),10);this.top=parseInt(Utilities.getAbsoluteTop(a),10);this.right=this.left+this.width;this.bottom=this.top+this.height;if(isNaN(this.width)||isNaN(this.height)||isNaN(this.left)||isNaN(this.top)||isNaN(this.right)||isNaN(this.bottom)){throw new Exception("element does not have calculable dimensions")}}catch(b){throw new Exception("DOMDimensions: Argument not applicable: "+b.message)}};function DefaultInfoWindow(c){this.width=255;this.height=213;this.autoHeight=false;var a=24;var b=66;var d=89;this.xOffset=-20;this.yOffset=undefined;this.bubble=null;this.bubbleClassName="decarta-bubble";this.bubbleIgnoreMapEvents=true;this.bubbleContent=null;this.bubbleContentClassName="decarta-bubbleContent";this.bubbleContentIgnoreMapEvents=true;this.bubbleContentSelectable=false;this.bubbleClose=null;this.bubbleCloseClassName="decarta-close";this.bubbleCloseIgnoreMapEvents=true;this.associatedPin=null;this.onCloseCallback=null;this.onHideCallback=null;this.onShowCallback=null;this.shouldAutoCenter=false;this.bubbleCloseSrc=Credentials.infoWindowCloseButton;this.setAutoCenter= function(f){f=f||false;this.shouldAutoCenter=f};this.setOnClose= function(f){this.onCloseCallback=f};this.setOnHide= function(f){this.onHideCallback=f};this.setOnShow= function(f){this.onShowCallback=f};this.setIgnoreMapEvents= function(g){for(var f in g){if(g.hasOwnProperty(f)){this[f]=g[f]}}this.resetMapEventIgnorance()};this.setContentSelectable= function(f){this.bubbleContentSelectable=f;this.resetSelectability()};this.init= function(n){for(var p in n){if(n.hasOwnProperty(p)){this[p]=n[p]}}this.bubble=document.createElement("div");this.bubble.id=this.bubbleClassName;this.bubble.style.cssText="display:none;filter:alpha(opacity=100); opacity:1; position:absolute; z-index:10000;background-color:transparent;font-size:11px;";this.bubble.style.width=this.width+"px";var g=document.createElement("div");g.style.cssText="top:0px;left:0px;background-image:url('img/info-tl.png'); margin:0px; padding:0px;position:absolute;background-color:transparent;";g.style.height=a+"px";g.style.width=a+"px";this.bubble.appendChild(g);var s=document.createElement("div");s.style.cssText="top:0px;margin:0px;padding:0px;border-top:1px solid #ABABAB;position:absolute;background-color:white;";s.style.left=a+"px";s.style.right=a+"px";s.style.height=a-1+"px";this.bubble.appendChild(s);var r=document.createElement("div");r.style.cssText="top:0px;right:0px;background-image:url('img/info-tr.png'); margin:0px; padding:0px;position:absolute;background-color:transparent;";r.style.height=a+"px";r.style.width=a+"px";this.bubble.appendChild(r);var h=document.createElement("div");h.style.cssText="left:0px;margin:0px; padding:0px;border-left:1px solid #ABABAB;position:absolute;background-color:white;";h.style.top=a+"px";h.style.bottom=a+b+"px";h.style.width=a-1+"px";this.bubble.appendChild(h);var t=document.createElement("div");t.style.cssText="right:0px;margin:0px; padding:0px;border-right:1px solid #ABABAB;position:absolute;background-color:white;";t.style.top=a+"px";t.style.bottom=a+b+"px";t.style.width=a-1+"px";this.bubble.appendChild(t);var j=document.createElement("div");j.style.cssText="left:0px;background-image:url('img/info-bl.png'); margin:0px; padding:0px;position:absolute;background-color:transparent;";j.style.bottom=b+"px";j.style.height=a+"px";j.style.width=a+"px";this.bubble.appendChild(j);var m=document.createElement("div");m.style.cssText="margin:0px; padding:0px;border-bottom:1px solid #ABABAB;position:absolute;background-color:white;";m.style.bottom=b+"px";m.style.left=a+"px";m.style.right=a+"px";m.style.height=a-1+"px";this.bubble.appendChild(m);var f=document.createElement("div");f.style.cssText="right:0px;background-image:url('img/info-br.png'); margin:0px; padding:0px;position:absolute;background-color:transparent;";f.style.bottom=b+"px";f.style.height=a+"px";f.style.width=a+"px";this.bubble.appendChild(f);var l=document.createElement("div");l.style.cssText="bottom:1px;left:0px;background-image:url('img/info-pointer.png'); margin:0px; padding:0px;position:absolute;background-color:transparent;";l.style.width=d+"px";l.style.height=b+"px";this.bubble.appendChild(l);this.bubbleContent=document.createElement("div");this.bubbleContent.id=this.bubbleContentClassName;this.bubbleContent.style.cssText="background-color:white;";this.bubbleContent.style.marginTop=a+"px";this.bubbleContent.style.marginRight=a+"px";this.bubbleContent.style.marginBottom=a+b+"px";this.bubbleContent.style.marginLeft=a+"px";this.bubbleContent.style.padding=0+"px";if(this.autoHeight){}else{var q=this.height-2*a-b;if(q>0){this.bubbleContent.style.height=q+"px";this.bubbleContent.style.overflowY="auto"}else{throw new Exception("height must be bigger than:"+(2*a+b))}}if(this.width<(a+d)){throw new Exception("width must be bigger than:"+(a+d))}this.bubble.appendChild(this.bubbleContent);if(this.bubbleCloseSrc){this.bubbleClose=document.createElement("img");this.bubbleClose.src=this.bubbleCloseSrc;this.bubbleClose.id=this.bubbleCloseClassName;this.bubbleClose.owner=this;this.bubbleClose.style.cssText="position:absolute; width:13px; height:13px; top:8px; right:8px; cursor:pointer;";deCarta.Events.addEvent(this.bubbleClose,"click",DefaultInfoWindow.eventClose);this.bubble.appendChild(this.bubbleClose)}if(Utilities.ie6){var o=this.bubble.getElementsByTagName("img");for(var k=0;k<o.length;k++){if(o[k].src.match(/\bpng\b/g)){Utilities.fixPng(o[k])}}}};this.build= function(){try{this.bubble=document.createElement("div");this.bubble.id=this.bubbleClassName;this.bubble.className=this.bubbleClassName;this.bubbleContent=document.createElement("div");this.bubbleContent.id=this.bubbleContentClassName;this.bubbleContent.className=this.bubbleContentClassName;if(Credentials.infoWindowCloseButton){this.buildCloseIcon(Credentials.infoWindowCloseButton)}this.bubble.appendChild(this.bubbleContent)}catch(f){throw new Exception("build error:"+f.message)}};this.buildCloseIcon= function(f){this.bubbleClose=document.createElement("img");if(f){this.bubbleClose.src=f}this.bubbleClose.id=this.bubbleCloseClassName;this.bubbleClose.className=this.bubbleCloseClassName;this.bubbleClose.owner=this;deCarta.Events.addEvent(this.bubbleClose,"click",DefaultInfoWindow.eventClose);this.bubble.appendChild(this.bubbleClose)};this.setPosition= function(g,f){f=f||0;g=g||0;if(this.yOffset!=undefined){this.bubble.style.top=f-this.yOffset+"px"}else{if(this.autoHeight){this.bubble.style.top=f+"px"}else{this.bubble.style.top=f-this.height+1+"px"}}this.bubble.style.left=g-this.xOffset+"px"};this.setContent= function(f){this.bubbleContent.innerHTML="";if(f.style){this.bubbleContent.appendChild(f)}else{this.bubbleContent.innerHTML=f}this.resetSelectability();this.resetMapEventIgnorance()};this.resetSelectability= function(){var k=(this.bubbleContentSelectable)?Utilities.setSelectable:Utilities.setUnselectable;var f=this.bubbleContent;k(f);if(f.hasChildNodes()){var g=f.getElementsByTagName("*");for(var h=0;h<g.length;h++){k(g[h])}}};this.resetMapEventIgnorance= function(){var k,h,l,g,f;if(this.bubbleIgnoreMapEvents){deCarta.IdManager.setTag(this.bubble,"ignoreForMapEvents");if(this.bubble.hasChildNodes()){g=this.bubble.childNodes;for(k=0;k<g.length;k++){l=g[k];if(l.id!=this.bubbleContentClassName&&l.id!=this.bubbleCloseClassName){f=l.getElementsByTagName("*");for(h=0;h<f.length;h++){deCarta.IdManager.setTag(f[h],"ignoreForMapEvents")}}}}}if(this.bubbleContentIgnoreMapEvents){deCarta.IdManager.setTag(this.bubbleContent,"ignoreForMapEvents");f=this.bubbleContent.getElementsByTagName("*");for(k=0;k<f.length;k++){deCarta.IdManager.setTag(f[k],"ignoreForMapEvents")}}if(this.bubbleCloseIgnoreMapEvents&&this.bubbleClose){deCarta.IdManager.setTag(this.bubbleClose,"ignoreForMapEvents")}};this.show= function(g){this.bubble.style.zIndex=Pin.zIndexCounter+10000;this.bubbleContent.style.zIndex=Pin.zIndexCounter+10000;if(this.bubbleClose){this.bubbleClose.style.zIndex=Pin.zIndexCounter+10000}this.bubble.style.display="block";if(this.autoHeight&&this.yOffset==undefined){var f=this.bubble.offsetHeight;var h=parseInt(this.bubble.style.top);this.bubble.style.top=h-f-1+"px"}if(g){this.associatedPin=g}else{this.associatedPin=null}if(this.onShowCallback){this.onShowCallback()}this.autoCenter()};this.hide= function(){this.bubble.style.display="none";if(this.onHideCallback){this.onHideCallback()}};this.autoCenter= function(){var n=this.associatedPin;if(!(n&&n.map)||!this.shouldAutoCenter){return}var D=n.map;var k=n.pinImg.clientHeight;var q=n.pinImg.clientWidth;var B=parseInt(n.pinImg.style.top);var F=parseInt(n.pinImg.style.left);var G=Utilities.radsPerPixelAtZoomLevel(D.getTileSize(),D.getZoomController().selected);var t=n.getViewableBoundingBox(G);var E=t.getUpperLeftPosition();var w=D.posToMercPix(E);var C=new PixelPoint(w.x+q,w.y-k);var A=this.bubble.clientHeight;var z=this.bubble.clientWidth;var p=parseInt(this.bubble.style.top);var y=parseInt(this.bubble.style.left);var r=w.y+(B-p);var g=w.x-(F-y);var f=new PixelPoint(g,r);var m=new PixelPoint(g+z,r-A);var s=new PixelPoint(g,r-A);var o=new PixelPoint(g+z,r);var h=D.mercPixToPos(s);var u=D.mercPixToPos(o);var j=new BoundingBox(h,u);var l=j.getCenterPosition();D.panToPosition(l)};this.init(c)}DefaultInfoWindow.eventClose= function(){var a=this.owner;if(a.onCloseCallback){a.onCloseCallback()}a.hide()};function EventRegistry(){}EventRegistry.addListener= function(c,a,b){if(c.type=="map"&&(a=="rightclick"||a=="dblclick"||a=="click"||a=="mousedown"||a=="mouseout"||a=="mouseup"||a=="move"||a=="movestart"||a=="moveend"||a=="zoomend")){c.addEventListener(a,b)}else{if(c.type=="pin"&&(a=="rightclick"||a=="dblclick"||a=="click"||a=="mousedown"||a=="mouseover"||a=="mouseout"||a=="mouseup")){c.addEventListener(a,b)}else{throw new Exception(a+" is unsupported event type for "+c.type)}}};EventRegistry.clearListeners= function(b,a){b.clearListeners(a)};EventRegistry.clearInstanceListeners= function(a){a.clearInstanceListeners()};deCarta.Events={};deCarta.Events.addEvent= function(d,c,b){var a=deCarta.Events.eventKey;if(!deCarta.IdManager.checkTag(d,a)){deCarta.IdManager.setTag(d,a,deCarta.IdManager.getUniqueId())}if(d.attachEvent){if(d["e"+c+b]){return}d["e"+c+b]=b;d[c+b]= function(){d["e"+c+b](window.event)};d.attachEvent("on"+c,d[c+b])}else{if(d.addEventListener){d.addEventListener(c,b,false)}else{d["on"+c]=b}}};deCarta.Events.removeEvent= function(c,b,a){if(c.detachEvent){if(c[b+a]){c.detachEvent("on"+b,c[b+a]);c["e"+b+a]=null;c[b+a]=null}}else{if(c.removeEventListener){c.removeEventListener(b,a,false)}else{c["on"+b]=undefined}}};deCarta.Events.checkIfTarget= function(c,b){var a=deCarta.Events.eventKey;if(c&&c[a]){if(b&&(b.target||b.srcElement)){var d=b.target||b.srcElement;if(d[a]==c[a]){return true}}}return false};deCarta.Events.eventKey="deCartaEventId";(function(){if(Error){Exception=Error}else{Exception= function(b){this.message=b||"an exception has occurred";var a=this;this.toString= function(){return a.message}}}})();function FreeFormAddress(b,a){if(!b||b.toString()==""){throw new Exception("Error instantiating FreeFormAddress, invalid parameters.");return false}this.locale=a||new Locale("en","US");this.address=b;this.type="FreeForm"}FreeFormAddress.prototype.getLocale= function(){return this.locale};FreeFormAddress.prototype.toString= function(){return this.address};function GeocodedAddress(){this.position=null;this.freeFormAddress=null;this.structuredAddress=null;this.boundingBox=null;this.matchType=""}GeocodedAddress.prototype.toString= function(){return this.position+"\n"+this.freeFormAddress+"\n"+this.boundingBox+"\n"+this.matchType};function Geocoder(){this.xmlRecFac=new deCarta.XMLStringBuilder();this.returnFreeForm=true;var b=[];var a=this;this.authenticate= function(d,c){if(!d||!c||d==""||c==""){throw new Exception("Error authenticating Geocoder, invalid parameters.");return false}Credentials.clientName=d;Credentials.clientPassword=c;this.xmlRecFac.clientName=d;this.xmlRecFac.clientPassword=c};this.setConfiguration= function(c){if(!c){throw new Exception("error calling Geocoder.setConfiguration()")}Credentials.configuration=c;this.xmlRecFac.configuration=c};this.geocode= function(c,h,d){var g=Utilities.getRequestId();if(typeof h=="function"){b[g]=h}else{throw new Exception("Geocode.geocode: callBack must be a function, arg was: "+h)}var f=this.xmlRecFac.createGeocodeRequest(c,g,this.returnFreeForm);JSRequest.send(f,a.geocodeCallback,null,d)};this.reverseGeocode= function(c,h,d){var g=Utilities.getRequestId();if(typeof h=="function"){b[g]=h}else{throw new Exception("Geocode.reverseGeocode: callBack must be a function, arg was: "+h)}var f=this.xmlRecFac.createReverseGeocodeRequest(c,g);JSRequest.send(f,a.reverseGeocodeCallback,null,d)};this.reverseGeocodeCallback= function(f){var d=f.XLS.Response.requestID;var c;if(deCarta.JSONParser.parseErrors(f)){c=new Address()}else{c=deCarta.JSONParser.parseAddress(f.XLS.Response.ReverseGeocodeResponse.ReverseGeocodedLocation.Address)}if((d>=0)&&b[d]){b[d](c);b[d]=undefined}};this.geocodeCallback= function(j){var l=[];var c=[];var f=[];var h=j.XLS.Response.requestID;if(deCarta.JSONParser.parseErrors(j)){}else{if(j.XLS.Response.GeocodeResponse.GeocodeResponseList){var k;if(j.XLS.Response.GeocodeResponse.GeocodeResponseList.GeocodedAddress.length==undefined){k=[];k.push(j.XLS.Response.GeocodeResponse.GeocodeResponseList.GeocodedAddress)}else{k=j.XLS.Response.GeocodeResponse.GeocodeResponseList.GeocodedAddress}for(var d=0;d<k.length;d++){var g=new GeocodedAddress();l.push(new Position(k[d].Point.pos));g.position=new Position(k[d].Point.pos.toString());if(k[d].Address.freeFormAddress){g.freeFormAddress=new FreeFormAddress(k[d].Address.freeFormAddress);c.push(new FreeFormAddress(k[d].Address.freeFormAddress))}else{if(k[d].Address.Place){g.structuredAddress=deCarta.JSONParser.parseAddress(k[d].Address);c.push(deCarta.JSONParser.parseAddress(k[d].Address))}}if(k[d].BoundingBox){g.boundingBox=new BoundingBox(new Position(k[d].BoundingBox.pos[0].content),new Position(k[d].BoundingBox.pos[1].content))}g.matchType=k[d].GeocodeMatchCode.matchType;g.accuracy=k[d].GeocodeMatchCode.accuracy;f.push(g)}}}if((h>=0)&&b[h]){b[h](l,c,f);b[h]=undefined}}}function Icon(g,d,b,f,a,c){if(!g||(d!=0&&!d)||(b!=0&&!b)||(f!=0&&!f)||(a!=0&&!a)){throw new Exception("Error instantiating Icon, missing parameters. Icon(src,iconAnchorX,iconAnchorY,width,height) all required. The last parameter overlay is optional.")}this._previousX=null;this._previousY=null;this.src=g;this.anchorX=d;this.anchorY=b;this.width=f;this.height=a;this.overlay=c||new TextOverlay("",1,1)}Icon.prototype.getAnchorX= function(){return this.anchorX};Icon.prototype.getAnchorY= function(){return this.anchorY};Icon.prototype.getHeight= function(){return this.height};Icon.prototype.getOverlay= function(){return this.overlay};Icon.prototype.getSrc= function(){return this.src};Icon.prototype.getWidth= function(){return this.width};Icon.prototype.setAnchorX= function(a){this._previousX=this.anchorX;this.anchorX=a};Icon.prototype.setAnchorY= function(a){this._previousY=this.anchorY;this.anchorY=a};Icon.prototype.setHeight= function(a){this.height=a};Icon.prototype.setOverlay= function(a){this.overlay=a};Icon.prototype.setSrc= function(a){this.src=a};Icon.prototype.setWidth= function(a){this.width=a};deCarta.IdManager={};deCarta.IdManager.getUniqueId= function(c){var b=deCarta.IdManager.getUniqueId.seedNumber++;var a=null;if(c){a=""+c+b}else{a=b}return a};deCarta.IdManager.getUniqueId.seedNumber=10000;deCarta.IdManager.setTag= function(c,a,d){var b=deCarta.IdManager.tagDitionary;d=d||true;if(!c[b]){c[b]={}}c[b][a]=d};deCarta.IdManager.checkTag= function(c,a){var b=deCarta.IdManager.tagDitionary;if(c&&a){if(c[b]){return c[b][a]}}return undefined};deCarta.IdManager.tagDitionary="deCartaTagDictionary";function InfoWindow(b,c,f,d,a){this.init(b,c,f,d,a)}InfoWindow.prototype.xOffset=-20;InfoWindow.prototype.yOffset=0;InfoWindow.prototype.bubble=null;InfoWindow.prototype.bubbleClassName="decarta-bubble";InfoWindow.prototype.bubbleIgnoreMapEvents=false;InfoWindow.prototype.bubbleContent=null;InfoWindow.prototype.bubbleContentClassName="decarta-bubbleContent";InfoWindow.prototype.bubbleContentIgnoreMapEvents=false;InfoWindow.prototype.bubbleContentSelectable=false;InfoWindow.prototype.bubbleClose=null;InfoWindow.prototype.bubbleCloseClassName="decarta-close";InfoWindow.prototype.bubbleCloseIgnoreMapEvents=true;InfoWindow.prototype.associatedPin=null;InfoWindow.prototype.onCloseCallback=null;InfoWindow.prototype.onHideCallback=null;InfoWindow.prototype.onShowCallback=null;InfoWindow.prototype.shouldAutoCenter=false;InfoWindow.prototype.setAutoCenter= function(a){a=a||false;this.shouldAutoCenter=a};InfoWindow.prototype.setOnClose= function(a){this.onCloseCallback=a};InfoWindow.prototype.setOnHide= function(a){this.onHideCallback=a};InfoWindow.prototype.setOnShow= function(a){this.onShowCallback=a};InfoWindow.prototype.setIgnoreMapEvents= function(b){for(var a in b){if(b.hasOwnProperty(a)){this[a]=b[a]}}this.resetMapEventIgnorance()};InfoWindow.prototype.setContentSelectable= function(a){this.bubbleContentSelectable=a;this.resetSelectability()};InfoWindow.prototype.init= function(d,f,h,g,b){var c;this.build();if(d){this.bubble=d;this.bubble.id="decarta-bubble";this.bubbleContent.style.position="absolute";this.bubble.appendChild(this.bubbleContent);if(this.bubbleClose){this.bubble.appendChild(this.bubbleClose)}}if(b){this.bubble.style.width=b.width+"px";this.bubble.style.height=b.height+"px";this.bubble.style.backgroundImage="url("+b.src+")";this.bubble.style.backgroundRepeat="no-repeat";this.bubble.style.backgroundColor="transparent";this.bubble.style.borderStyle="none"}if(g){if(!this.bubbleClose){this.buildCloseIcon(g.src)}this.bubbleClose.style.position="absolute";this.bubbleClose.style.top=g.anchorY+"px";this.bubbleClose.style.left=g.anchorX+"px";if(g.height){this.bubbleClose.style.height=g.height+"px"}if(g.width){this.bubbleClose.style.width=g.width+"px"}}if(f){this.xOffset=f}if(h){this.yOffset=h}if(Utilities.ie6){var a=this.bubble.getElementsByTagName("img");for(c=0;c<a.length;c++){if(a[c].src.match(/\bpng\b/g)){Utilities.fixPng(a[c])}}}};InfoWindow.prototype.build= function(){try{this.bubble=document.createElement("div");this.bubble.id=this.bubbleClassName;this.bubble.className=this.bubbleClassName;this.bubbleContent=document.createElement("div");this.bubbleContent.id=this.bubbleContentClassName;this.bubbleContent.className=this.bubbleContentClassName;if(Credentials.infoWindowCloseButton){this.buildCloseIcon(Credentials.infoWindowCloseButton)}this.bubble.appendChild(this.bubbleContent)}catch(a){throw new Exception("build error:"+a.message)}};InfoWindow.prototype.buildCloseIcon= function(a){this.bubbleClose=document.createElement("img");if(a){this.bubbleClose.src=a}this.bubbleClose.id=this.bubbleCloseClassName;this.bubbleClose.className=this.bubbleCloseClassName;this.bubbleClose.owner=this;deCarta.Events.addEvent(this.bubbleClose,"click",InfoWindow.eventClose);this.bubble.appendChild(this.bubbleClose)};InfoWindow.prototype.setPosition= function(b,a){a=a||0;b=b||0;this.bubble.style.top=a-this.yOffset+"px";this.bubble.style.left=b-this.xOffset+"px"};InfoWindow.prototype.setContent= function(a){this.bubbleContent.innerHTML="";if(a.style){this.bubbleContent.appendChild(a)}else{this.bubbleContent.innerHTML=a}this.resetSelectability();this.resetMapEventIgnorance()};InfoWindow.prototype.resetSelectability= function(){var d=(this.bubbleContentSelectable)?Utilities.setSelectable:Utilities.setUnselectable;var a=this.bubbleContent;d(a);if(a.hasChildNodes()){var b=a.getElementsByTagName("*");for(var c=0;c<b.length;c++){d(b[c])}}};InfoWindow.prototype.resetMapEventIgnorance= function(){var d,c,f,b,a;if(this.bubbleIgnoreMapEvents){deCarta.IdManager.setTag(this.bubble,"ignoreForMapEvents");if(this.bubble.hasChildNodes()){b=this.bubble.childNodes;for(d=0;d<b.length;d++){f=b[d];if(f.id!=this.bubbleContentClassName&&f.id!=this.bubbleCloseClassName){a=f.getElementsByTagName("*");for(c=0;c<a.length;c++){deCarta.IdManager.setTag(a[c],"ignoreForMapEvents")}}}}}if(this.bubbleContentIgnoreMapEvents){deCarta.IdManager.setTag(this.bubbleContent,"ignoreForMapEvents");a=this.bubbleContent.getElementsByTagName("*");for(d=0;d<a.length;d++){deCarta.IdManager.setTag(a[d],"ignoreForMapEvents")}}if(this.bubbleCloseIgnoreMapEvents&&this.bubbleClose){deCarta.IdManager.setTag(this.bubbleClose,"ignoreForMapEvents")}};InfoWindow.prototype.show= function(a){this.bubble.style.zIndex=Pin.zIndexCounter+10000;this.bubbleContent.style.zIndex=Pin.zIndexCounter+10000;if(this.bubbleClose){this.bubbleClose.style.zIndex=Pin.zIndexCounter+10000}this.bubble.style.display="block";if(a){this.associatedPin=a}else{this.associatedPin=null}if(this.onShowCallback){this.onShowCallback()}this.autoCenter()};InfoWindow.prototype.hide= function(){this.bubble.style.display="none";if(this.onHideCallback){this.onHideCallback()}};InfoWindow.prototype.autoCenter= function(){var j=this.associatedPin;if(!(j&&j.map)||!this.shouldAutoCenter){return}var z=j.map;var f=j.pinImg.clientHeight;var m=j.pinImg.clientWidth;var w=parseInt(j.pinImg.style.top);var B=parseInt(j.pinImg.style.left);var C=Utilities.radsPerPixelAtZoomLevel(z.getTileSize(),z.getZoomController().selected);var p=j.getViewableBoundingBox(C);var A=p.getUpperLeftPosition();var r=z.posToMercPix(A);var y=new PixelPoint(r.x+m,r.y-f);var u=this.bubble.clientHeight;var t=this.bubble.clientWidth;var l=parseInt(this.bubble.style.top);var s=parseInt(this.bubble.style.left);var n=r.y+(w-l);var b=r.x-(B-s);var a=new PixelPoint(b,n);var h=new PixelPoint(b+t,n-u);var o=new PixelPoint(b,n-u);var k=new PixelPoint(b+t,n);var c=z.mercPixToPos(o);var q=z.mercPixToPos(k);var d=new BoundingBox(c,q);var g=d.getCenterPosition();z.panToPosition(g)};InfoWindow.eventClose= function(){var a=this.owner;if(a.onCloseCallback){a.onCloseCallback()}a.hide()};deCarta.JSONParser={};deCarta.JSONParser.parseAddress= function(d){var b=new Address();var a=d.Place;if(d.Place&&d.Place.length){for(var c=0;c<a.length;c++){f(b,a[c])}}else{if(d.Place&&d.Place.type){f(b,a)}}b.postalCode=(d.PostalCode)?d.PostalCode:"";b.countryCode=d.countryCode;if(d.StreetAddress&&d.StreetAddress.Street){b.street=d.StreetAddress.Street.content||((typeof d.StreetAddress.Street=="string")?d.StreetAddress.Street:"");b.speedLimit=d.StreetAddress.Street.speedLimit||"";if(d.StreetAddress.Building){b.buildingNumber=d.StreetAddress.Building.number}}return b;function f(h,g){switch(g.type){case"CountrySubdivision":h.countrySubdivision=g.content;break;case"CountrySecondarySubdivision":h.countrySecondarySubdivision=g.content;break;case"CountryTertiarySubdivision":h.countryTertiarySubdivision=g.content;break;case"MunicipalitySubdivision":h.municipalitySubdivision=g.content;break;case"Municipality":h.municipality=g.content;break;case"Landmark":h.landmark=g.content;break}}};deCarta.JSONParser.parsePOI= function(q){var g=[];if(q.POI.POIAttributeList&&q.POI.POIAttributeList.POIInfoList&&q.POI.POIAttributeList.POIInfoList.POIInfo){g=q.POI.POIAttributeList.POIInfoList.POIInfo}var m={};for(var d=0;d<g.length;d++){var k=g[d];var j;for(var h in k){if(h=="name"){j=k[h]}else{if(h=="value"){m[j]=k[h]}}}}if(q.POI.ID){m.ID=q.POI.ID}var c=q.POI.POIName;var r=q.POI.phoneNumber;var l=q.POI.Point.pos;var b=q.Distance.value;var a=q.Distance.uom;var o=deCarta.JSONParser.parseAddress(q.POI.Address);var f=new POI(c,new Position(l),o,r,m);f.distance={value:parseInt(b),uom:new UOM(a)};return f};deCarta.JSONParser.parseRoutes= function(f){var d;var c=f.XLS.Response.DetermineRouteResponse;var b=g(c);if(c.AlternateRoute){var j=c.AlternateRoute;var a=j.length;if(a==undefined){b.alternates[0]=g(j)}else{for(d=0;d<a;d++){b.alternates[d]=g(j[d])}}}return b;function g(s){var z=new Route();var p=s.RouteSummary;z.TotalTime=Utilities.podParse(p.TotalTime);z.TotalTimeObject=Utilities.podParseJSON(p.TotalTime);z.TotalDistance=p.TotalDistance.value;z.uom=new UOM(p.TotalDistance.uom);var n=p.BoundingBox;if(n){var r=new Position(n.pos[0].content);var t=new Position(n.pos[1].content);z.boundingBox=new BoundingBox(r,t);z.centerPosition=z.boundingBox.getCenterPosition()}var A=s.RouteHandle;if(A&&A.routeID){z.routeID=A.routeID}var u=s.viaPointSequence;if(u){z.viaPointSequence=u}var y=s.RouteGeometry;if(y){var m=y.LineString.pos;var w=m.length;if(w==undefined||!(deCarta.Array.isArray(m))){z.RouteGeometry[0]=new Position(m)}else{for(d=0;d<w;d++){z.RouteGeometry[d]=new Position(m[d])}}}var k=s.RouteInstructionsList;var q=s.RouteMap;if(k){var l=k.RouteInstruction;var B=l.length;if(B==undefined){z.RouteInstructions[0]=h(l)}else{for(d=0;d<B;d++){z.RouteInstructions[d]=h(l[d]);if(q){var o=new ManeuverMap();o.desc=q[d].Content.description;o.URL=q[d].Content.URL;o.format=q[d].Content.format;o.height=q[d].Content.height;o.width=q[d].Content.width;o.boundingBox=new BoundingBox(new Position(q[d].BBoxContext.pos[0].content),new Position(q[d].BBoxContext.pos[1].content));z.RouteInstructions[d].maneuverMap=o}}}}return z}function h(l){var k=new RouteInstruction();k.Instruction=l.Instruction;k.distance=l.distance.value;k.duration=Utilities.podParse(l.duration);k.position=new Position(l.Point);k.tour=l.tour;return k}};deCarta.JSONParser.parseErrors= function(b){var a=(b.XLS.ResponseHeader.ErrorList)?true:false;if(b.XLS.Response.ErrorList){a=true}return a};deCarta.JSONViewer= function(){deCarta.StyleManager.init();var j=0;var b="";var g=false;var d=0;var a="decarta-json-reflector";var f="decarta-json-type";var h="decarta-json-relation";var k="decarta-json-string";var c="decarta-json-number";this.reflect= function(y){var o;if(!g){j++}if(typeof(y)==="string"){r(null,y);return}else{if(typeof(y)==="number"){w(null,y);return}else{if(typeof(y)==="boolean"){F(null,y);return}else{if(typeof(y)==="null"){C(null,y);return}else{if(typeof(y)==="undefined"){u(null,y);return}else{if(g){if(Object.prototype.toString.call(y)==="[object Array]"){B(null,y);o=d;d=0;for(var G=0;G<y.length;G++){d++;this.reflect(y[G])}d=o;return}else{q(null);g=false;this.reflect(y);g=true;return}}else{for(var l in y){if(typeof(y[l])==="string"){r(l,y[l])}else{if(typeof(y[l])==="number"){w(l,y[l])}else{if(typeof(y[l])==="boolean"){F(l,y[l])}else{if(typeof(y[l])==="null"){C(l,y[l])}else{if(typeof(y[l])==="undefined"){u(l,y[l])}else{if(Object.prototype.toString.call(y[l])==="[object Array]"){B(l,y[l]);g=true;o=d;d=0;for(var E=0;E<y[l].length;E++){d++;this.reflect(y[l][E])}d=o;g=false}else{q(l);this.reflect(y[l])}}}}}}}}}}}}}j--;function r(s,t){var n;if(s){n=z("string ")+s+H()+A(t)}else{n=z("string ")+A(t)}m(n)}function w(s,t){var n;if(s){n=z("number ")+s+H()+D(t)}else{n=z("number ")+D(t)}m(n)}function F(s,t){var n;if(s){n=z("boolean ")+s+H()+D(t)}else{n=z("boolean ")+D(t)}m(n)}function C(s,t){var n;if(s){n=z("null ")+s+H()+D(t)}else{n=z("null ")+D(t)}m(n)}function u(s,t){var n;if(s){n=z("undefined ")+s+H()+D(t)}else{n=z("undefined ")+D(t)}m(n)}function B(s,t){var n;if(s){n=z("array ")+s+" ("+t.length+")"}else{n=z("array ")+" ("+t.length+")"}m(n)}function q(s){var n;if(s){n=z("object ")+s}else{n=z("object ")}m(n)}function z(n){return"<span class='"+f+"'>"+n+"</span>"}function H(){return"<span class='"+h+"'> = </span>"}function A(n){return"<span class='"+k+"'>\""+n+'"</span>'}function D(s){return"<span class='"+c+"'>"+s+"</span>"}function m(n){if(g){b+=p()+"["+d+"]"+n+"\n"}else{b+=p()+n+"\n"}}function p(){var s="";for(var n=0;n<j;n++){s+="\t"}return s}};this.show= function(){var l;l=document.getElementById(a);if(!l){l=document.createElement("pre");l.id=a;document.body.appendChild(l)}l.innerHTML+=b};this.clear= function(){b="";document.getElementById(a).innerHTML=""}};function JSRequest(){}JSRequest.host=null;JSRequest.TIMEOUT=60000;JSRequest.tHandler= function(a){throw new Exception("JSRequest timeout on requestID: "+a)};JSRequest.qtHandler=[];JSRequest.xmlhttp=true;JSRequest.hostInProgress=false;JSRequest.holder=[];JSRequest.callbackFunctions=[];JSRequest.interceptorXMLHTTPRequest=null;JSRequest.interceptorXMLRequest=null;JSRequest.interceptorXMLResponse=null;JSRequest.interceptorJSONResponse=null;JSRequest.registerXMLHTTPRequestInterceptor= function(a){JSRequest.interceptorXMLHTTPRequest=a};JSRequest.registerXMLRequestInterceptor= function(a){JSRequest.interceptorXMLRequest=a};JSRequest.registerQueryTimeoutHandler= function(b,a){JSRequest.qtHandler[b]=a};JSRequest.registerXMLResponseInterceptor= function(a){JSRequest.interceptorXMLResponse=a};JSRequest.registerJSONResponseInterceptor= function(a){JSRequest.interceptorJSONResponse=a};JSRequest.callbackRegistry= function(b){if(GLOBALS.DEBUG_JSON&&b){if(!window.jsonViewer){window.jsonViewer=new deCarta.JSONViewer()}window.jsonViewer.reflect(b);window.jsonViewer.show()}try{if(b&&(b.response!=null)){try{if(typeof JSRequest.interceptorXMLResponse==="function"&&b.xmlResponse){var a=(new DOMParser()).parseFromString(Utilities.normalizePrefixes(b.xmlResponse),"text/xml");if(b.xmlResponse.indexOf("RUOK")==-1){JSRequest.interceptorXMLResponse(a)}}if(typeof JSRequest.interceptorJSONResponse==="function"){b.response=JSRequest.interceptorJSONResponse(b.response)}}catch(c){throw new Exception("Application Error: API user application response interceptor function threw error: "+c.message)}if(JSRequest.callbackFunctions[b.requestID]){if(b.responseFormat=="XML"){}else{if(deCarta.Array.isArray(b.response.XLS.Response)){if(b.response.XLS.Response[0].requestID==-1){b.response.XLS.Response[0].requestID=b.requestID}}else{if(b.response.XLS.Response.requestID==-1){b.response.XLS.Response.requestID=b.requestID}}}JSRequest.callbackFunctions[b.requestID](b.response);JSRequest.callbackFunctions[b.requestID]=undefined;JSRequest.qtHandler[b.requestID]=undefined}}if(document.getElementById(b.requestID+":"+b.chunkNo)){document.getElementsByTagName("head").item(0).removeChild(document.getElementById(b.requestID+":"+b.chunkNo))}}catch(c){throw new Exception(c.message)}};JSRequest.checkTimeout= function(c){var b=(c.split(":"))[0];if(JSRequest.callbackFunctions[b]||JSRequest.qtHandler[b]){JSRequest.host=null;JSRequest.tHandler(b);if(typeof JSRequest.qtHandler[b]=="function"){JSRequest.qtHandler[b](b);JSRequest.qtHandler[b]=undefined}JSRequest.callbackFunctions[b]=undefined;var a=document.getElementById(c);if(a){document.getElementsByTagName("head").item(0).removeChild(a)}}};JSRequest.timeoutHandler= function(b,a){JSRequest.tHandler=b;JSRequest.TIMEOUT=a||60000};JSRequest.send= function(f,j,s,m,l){if(!f){return}var k=s?"responseFormat="+s:(typeof JSRequest.interceptorXMLRequest==="function"||typeof JSRequest.interceptorXMLResponse==="function")?"responseFormat=ALL":"responseFormat=JSON";var h=(l)?l:Credentials.url;if((/\/openls$|\/openls\/$/.test(h))&&!l){h=h.substring(0,Credentials.url.lastIndexOf("openls"))+Credentials.jsonServletName}if(JSRequest.xmlhttp){JSRequest.sendXHR(f,j,k,h);return}if(JSRequest.host==null&&!l){JSRequest.holder.push(f);JSRequest.holder.push(j);JSRequest.holder.push(s);JSRequest.holder.push(m);if(JSRequest.hostInProgress){return}JSRequest.hostInProgress=true;m=JSRequest.getHostTimeout;var b=new deCarta.XMLStringBuilder();var c=b.createRUOKRequest(Utilities.getRequestId());f=c;j=JSRequest.getHost;k="responseFormat=JSON"}try{if(typeof JSRequest.interceptorXMLRequest==="function"&&JSRequest.host!=null){f=(new DOMParser()).parseFromString(Utilities.normalizePrefixes(f),"text/xml");f=Sarissa.serialize(JSRequest.interceptorXMLRequest(f))}}catch(z){throw new Exception("Application Error: API user application request interceptor function threw error: "+z.message)}var u=1800;var A=h.length;var a=80;var y=(encodeURIComponent(f)).length;var o;var w=1;while(true){if(A+a+(y/w)<u){o=w;break}w++}var q="";var B=Math.ceil(f.length/o);var r=Utilities.parseRequestIDFromXLS(f);var p=0;for(w=1;w<=o;w++){JSRequest.callbackFunctions[r]=j;JSRequest.qtHandler[r]=m;var g;if(p==0){g=Math.round(B*w-B)}else{g=p}var d=Math.round(B*w);p=d;var n=f.substring(g,d);q=encodeURIComponent(n);var C=document.createElement("script");C.setAttribute("type","text/javascript");var t=h+"?reqID="+r+"&chunkNo="+w+"&numChunks="+o+"&callback=JSRequest.callbackRegistry&data="+q+"&"+k;t=t.replace(new RegExp("\\+","g"),"%2b");C.setAttribute("src",t);C.setAttribute("id",r+":"+w);document.getElementsByTagName("head").item(0).appendChild(C);if(JSRequest.TIMEOUT!=-1){setTimeout("JSRequest.checkTimeout('"+r+":"+w+"')",JSRequest.TIMEOUT)}}};JSRequest.sendXHR= function(xml,callback,responseFormat,url){try{if(!Utilities.ie){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesWrite UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead")}catch(e){}}var xmlhttp=new XMLHttpRequest();xmlhttp.open("POST",url+"?"+responseFormat,true)}catch(e){throw new Exception(e.message+"Depending on your browser settings you may have troubles running JavaScript code that uses the XMLHTTPRequest from your local file system.  XMLHTTPRequest verifies that the request to the server is from a script that is downloaded from that same server.  To remedy this problem, place your app inside tomcat and access from localhost.  Or see the feature of using dynamic script tags (JSON/GET) to bypass this security issue.")}xmlhttp.onreadystatechange= function(){if(xmlhttp.readyState==4){if(xmlhttp.responseText==""){throw new Exception("Problem connecting to DDS Web Services: Please try again later or contact support")}if(xmlhttp.responseText&&xmlhttp.responseText!=null&&xmlhttp.responseText.indexOf("problem connecting to DDS")>0){throw new Exception("Problem connecting to DDS: Please try again later or contact support")}var r=eval(xmlhttp.responseText);if(typeof JSRequest.interceptorXMLResponse==="function"&&r.xmlResponse){var xml=(new DOMParser()).parseFromString(Utilities.normalizePrefixes(r.xmlResponse),"text/xml");JSRequest.interceptorXMLResponse(xml)}if(typeof JSRequest.interceptorJSONResponse==="function"){r.response=JSRequest.interceptorJSONResponse(r.response)}if(r.response){callback(r.response)}else{callback(r)}}};if(typeof JSRequest.interceptorXMLHTTPRequest==="function"){JSRequest.interceptorXMLHTTPRequest(xmlhttp)}xmlhttp.send(xml);return};JSRequest.getHost= function(g){var d=g.XLS.Response.RUOKResponse.hostName;var a=Credentials.url;var f,h;if(a.indexOf("https://")>-1){f="https://"}else{f="http://"}var c=a.substring(f.length);if(c.indexOf(":")>-1){h=c.substring(c.indexOf(":"))}else{h=c.substring(c.indexOf("/"))}JSRequest.host=f+d+h;Credentials.url=JSRequest.host;for(var b=0;b<JSRequest.holder.length;b++){JSRequest.send(JSRequest.holder[b],JSRequest.holder[b+1],JSRequest.holder[b+2],JSRequest.holder[b+3]);b=b+3}JSRequest.holder=[];JSRequest.hostInProgress=false};JSRequest.getHostTimeout= function(b){for(var a=0;a<JSRequest.holder.length;a++){if(typeof JSRequest.holder[a+3]=="function"){JSRequest.holder[a+3](null)}a=a+3}JSRequest.holder=[];JSRequest.hostInProgress=false};JSRequest.setXMLHTTPMode= function(){JSRequest.xmlhttp=true};JSRequest.setDynamicScriptTagMode= function(){JSRequest.xmlhttp=false};function KML(c,a,b){if(!c){throw new Exception("Error constructing a KML object, geometry is required")}this.geometry=c;this.name=a||null;this.description=b||null}function KMLGeometry(a,b){this.type=a;this.coordinates=b}deCarta.LinkedList= function(){this.length=0;this.head=null;this.index=deCarta.LinkedList.Config.genIndex()};deCarta.LinkedList.Config={};deCarta.LinkedList.Config.itemBackPointer="dCLLItemPointer";deCarta.LinkedList.Config.itemBackPointerIndex=0;deCarta.LinkedList.Config.genIndex= function(){return(deCarta.LinkedList.Config.itemBackPointer+deCarta.LinkedList.Config.itemBackPointerIndex++)};deCarta.LinkedList.prototype.add= function(a){var b=null;try{b=new deCarta.LinkedListItem(a,this.index)}catch(c){throw new Exception("Error LinkedList.add(): "+c.message)}if(!this.head){this.head=b;this.head.next=null;this.head.prev=null}else{this.head.prev=b;b.next=this.head;b.prev=null;this.head=b}this.length++};deCarta.LinkedList.prototype.remove= function(b){var c=null;var a=null;if(this.length<=0){return null}if(!b){c=this.head;this.head=c.next}else{if((b.data)&&b.data.hasOwnProperty(this.index)){c=b}else{if(b.hasOwnProperty(this.index)){c=b[this.index]}else{throw new Exception("Attempting to remove an item that's not really a part of the LinkedList.")}}}if(c.prev){c.prev.next=c.next}else{this.head=c.next}if(c.next){c.next.prev=c.prev}a=c.destroy(this.index);this.length--;return a};deCarta.LinkedList.prototype.removeByKey= function(g,b){var f;var d=this.length;var a=this.head;var c;var h=new Array();if(!g||!b){throw new Exception("Attempt to removeByKey keyName: "+g+" and keyVal: "+b)}if(this.length<=0){return null}for(f=0;f<d;f++){c=a;a=c.next;if(b==c.data[g.toString()]){h.push(this.remove(c))}}if(!h.length){return null}else{return h}};deCarta.LinkedList.prototype.removeById= function(c,h){var g;var f=this.length;var b=this.head;var d;var a=null;if(!c||!h){throw new Exception("Attempt to removeByKey keyName: "+c+" and keyVal: "+h)}if(this.length<=0){return null}for(g=0;g<f;g++){d=b;b=d.next;if(h==d.data[c.toString()]){a=this.remove(d);return a}}return null};deCarta.LinkedList.prototype.removeAll= function(){var a=[];var b=null;while(this.length>0){b=this.remove();a.push(b)}return a};deCarta.LinkedList.prototype.returnAsArray= function(){var a=[];var b;var d=this.head;var c=null;for(b=0;b<this.length;b++){a.push(d.data);c=d.next;d=c}return a};deCarta.LinkedList.prototype.operateOnData= function(a){var b;var d=this.head;var c=null;if(typeof a!="function"){throw new Exception("Attempt operateOnData without a function.")}for(b=0;b<this.length;b++){a(d.data);c=d.next;d=c}};deCarta.LinkedListItem= function(b,a){if(!b||(typeof b!="object")||!a){throw new Exception("LinkedList Error: Attempt to add null or primitive.")}if(b.hasOwnProperty(a)){throw new Exception("LinkedList Error: newData already containsproperty backpointer: "+a)}this.data=b;b[a]=this;this.next=null;this.prev=null};deCarta.LinkedListItem.prototype.destroy= function(b){var a=this.data;this.data=null;this.next=null;this.prev=null;delete a[b];return a};function Locale(b,a){this.language=b.toUpperCase();this.country=a.toUpperCase()}Locale.prototype.getLanguage= function(){return this.language};Locale.prototype.setLanguage= function(a){this.language=a.toUpperCase()};Locale.prototype.getCountry= function(){return this.country};Locale.prototype.setCountry= function(a){this.country=a.toUpperCase()};Locale.prototype.toString= function(){return this.country+"_"+this.language};function Map(M){deCarta.StyleManager.init();if(!(M&&M.style)){throw new Exception("Must supply a div element to construct the map.")}this.mapDiv=M;var b=parseInt(deCarta.StyleManager.getCurrentStyle(M,"height"));b=(!isNaN(b))?b:this.mapDiv.offsetHeight;b=(b)?b+"px":GLOBALS.DEFAULT_MAP_HEIGHT;this.mapDiv.style.height=b;var aO=parseInt(deCarta.StyleManager.getCurrentStyle(M,"width"));aO=(!isNaN(aO))?aO:this.mapDiv.offsetWidth;aO=(aO)?aO+"px":GLOBALS.DEFAULT_MAP_WIDTH;this.mapDiv.style.width=aO;this.type="map";var aH=this;var a={};var ag=undefined;var aL=null;var C=null;var Z=null;var z=null;var aF=null;var K=null;var ay=null;var aY=new deCarta.XMLStringBuilder();aY.mapType=GLOBALS.STREET;var a1="server";var aM=false;var g=[];var O=new Array();var V=new deCarta.LinkedList();var n={};var aJ=null;var T=null;var c=Utilities.ie;var B="px";var aA=0;var ad=true;var aN=false;var ab=0;var Y=0;var L=false;var aD=false;var aU=0;var aS=0;var s=false;var P=true;var al=true;var av=new Date();var ac=new Date();var f=false;var ao=false;var aR=false;var h=37;var aa=null;var E=GLOBALS.DEFAULT_MAP_TILE_SIZE;var j=E;var an=0;var aT=0;var D=2;var ai=false;var az=new PixelPoint(0,0);var aE=0;var aB=0;var aI=0;var aG=0;var aZ=0;var aC=0;var am=0;var ak=0;var aV=false;var N=false;var af=false;var ap={x:0,y:0};var S={x:0,y:0};var F=null;var aP=null;var d=null;var aj=null;this.authenticate= function(a3,a2){if(!a3||!a2||a3==""||a2==""){throw new Exception("Error calling Map.authenticate(), bad params")}Credentials.clientName=a3;Credentials.clientPassword=a2;aY.clientName=a3;aY.clientPassword=a2};this.setURL= function(a2){Credentials.url=a2};this.setConfiguration= function(a2){if(!a2){throw new Exception("error calling Map.setConfiguration() with argument: "+a2)}Credentials.configuration=a2;aY.configuration=a2};this.setTransparentConfiguration= function(a2){if(!a2){throw new Exception("error calling Map.setTransparentConfiguration() with arg: "+a2)}Credentials.transparentConfiguration=a2;aY.transparentConfiguration=a2};this.setMapStyle= function(a2){Credentials.configuration=a2;aY.configuration=a2;if(n[GLOBALS.STREET]&&n[GLOBALS.STREET].refUrl){n[GLOBALS.STREET].refUrl.setParameter("config",a2);n[GLOBALS.STREET].refresh()}};this.setMapFormat= function(a2){aY.streetImgFormat=a2;if(n[GLOBALS.STREET]&&n[GLOBALS.STREET].refUrl){n[GLOBALS.STREET].refUrl.setParameter("format",a2);n[GLOBALS.STREET].refresh()}};this.changeCurrentMapStyle= function(a2){setMapStyle(a2)};this.reDrawMap= function(a2){if(!n[GLOBALS.STREET]&&!n[GLOBALS.SATELLITE]&&!n[GLOBALS.HYBRID]){return false}aH.centerOnPosition(aH.getCenterPosition(),a2);return true};this.addCopyrightMessage= function(a3,a2,a4){if(deCarta.String.isString(a3)){aL=new deCarta.CopyrightMessage(a3)}else{aL=a3}aH.addMapControl(aL);if(a2&&a4){aL.position= function(){};aL.frame.style.top=a4+B;aL.frame.style.left=a2+B}};this.centerOnPosition= function(a2,a7,a5,a3){var a8=Utilities.getRequestId();if(typeof a7=="function"){g[a8]=a7}else{g[a8]=null}var a6=Utilities.getRequestId();var a4=aY.createMapRequest(a2,E,a8,C?C.getZoomLevel():5,null,a5,a6);JSRequest.send(a4,function(a9){aa=a2.clone();R();aH.hidePinsBeforeZoom();ah(a9)},null,function(a9){g[a9]=undefined});if(z&&z.frame&&!a3){z.centerOnPosition(a2)}else{if(z&&z.frame&&a3){z.panToPosition(a2)}}};this.panToPosition= function(a9,a6){var a2=a9.clone();var a5=aH.getCenterPosition();var a8=this.posToMercPix(a5);var a4=this.posToMercPix(a2);var a3=new PixelPoint(Math.round(a8.x-a4.x),Math.round(a8.y-a4.y));if(aa&&C.getRadius()){var a7=Utilities.centerContextToBoundingBox(a5,C.getRadius());if(a7.extendedContains(a2)){if(typeof a6=="function"){g.panToPosition=a6}else{g.panToPosition=null}if(a3.x==0&&a3.y==0){if(g.panToPosition){g.panToPosition(aH.getCenterPosition());g.panToPosition=undefined}return}else{A(a3.x,-1*a3.y);if(z&&z.frame){z.panToPosition(a2)}}}else{this.centerOnPosition(a2,a6,null,true)}}else{this.centerOnPosition(a2,a6,null,true)}};this.getCenterPosition= function(){if(!aa){throw new Exception("Center Position not set")}var a4=aI-aZ;var a3=aG-aC;if(a4==0&&a3==0){return aa}var a2=aH.posToMercPix(aa);a2.x-=a4;a2.y+=a3;var a5=aH.mercPixToPos(a2);return a5};this.addCustomInfoWindow= function(a2){if(T&&ay){T.removeChild(ay.bubble)}ay=a2;if(T){T.appendChild(ay.bubble)}};this.getInfoWindow= function(){var a2=ay||null;return a2};this.addAndCenterOnPin= function(a2){this.addPin(a2);this.panToPosition(a2.position)};this.addPin= function(a2){if(aa==null){throw new Exception("Error adding Pin, you can not add a pin until the center Position is set. Please use the callback of map.centerPosition().")}try{V.add(a2)}catch(a3){return}a2.map=aH;a2.setPosition(a2.position);T.appendChild(a2.pinImg);if(a2.pinTxt){T.appendChild(a2.pinTxt)}};this.getPins= function(){return V.returnAsArray()};this.getPinById= function(a3){var a2=null;V.operateOnData(function(a4){if(!a4){return null}if(a4.getId()==a3){a2=a4}});return a2};this.hidePins= function(){V.operateOnData(function(a2){if(!a2){return}a2.pinImg.style.display="none";a2.pinTxt.style.display="none"})};this.showPins= function(){V.operateOnData(function(a2){a2.pinImg.style.display="block";a2.pinTxt.style.display="block"})};this.removeAllPins= function(){var a2;while(V.length>0){a2=V.remove();if(c){Utilities.purge(a2.pinImg)}T.removeChild(a2.pinImg);a2.pinImg=null;if(a2.pinTxt){if(c){Utilities.purge(a2.pinTxt)}T.removeChild(a2.pinTxt);a2.pinTxt=null}}};this.removePin= function(a3){var a2=null;try{a2=V.remove(a3)}catch(a4){return}if(!a2){return}a2.destroy()};this.removePinById= function(a4){try{var a2=V.removeById("id",a4)}catch(a3){return}if(!a2){return}if(a2.pinTxt){Utilities.purge(a2.pinTxt);T.removeChild(a2.pinTxt);a2.pinTxt=null}Utilities.purge(a2.pinImg);T.removeChild(a2.pinImg)};this.removePinsById= function(a6){var a2=null;var a4=null;var a3;try{a2=V.removeByKey("id",a6)}catch(a5){return}if(!a2){return}for(a3=0,a4=a2.length;a3<a4;a3++){if(a2[a3].pinTxt){Utilities.purge(a2[a3].pinTxt);T.removeChild(a2[a3].pinTxt);a2[a3].pinTxt=null}Utilities.purge(a2[a3].pinImg);T.removeChild(a2[a3].pinImg)}};this.setDragEasingEnabled= function(a2){N=a2};this.setDragEnabled= function(a2){if(!"boolean"==(typeof a2)){throw new Exception("Map.setDragEnabled requires boolean")}ad=a2};this.setRightClickBBoxZoomEnabled= function(a2){if(!"boolean"==(typeof a2)){throw new Exception("Map.setRightClickBBoxZoomEnabled requires boolean")}aV=a2};this.setShapeClippingEnabled= function(a2){if(!"boolean"==(typeof a2)){throw new Exception("Map.setShapeClippingEnabled requires boolean")}aM=a2};this.setDoubleClickRecenteringEnabled= function(a2){if(!"boolean"==(typeof a2)){throw new Exception("Map.setDoubleClickRecenteringEnabled requires boolean")}al=a2};this.setDoubleClickRecenterAndZoom= function(a2){if(a2){ao=true}else{ao=false}};this.setDigitalZoomEnabled= function(a2){if(a2){P=true}else{P=false}};this.setPanTimeoutDelay= function(a2){h=a2||37};this.addOverlay= function(a2){if(!a2){return}if(deCarta.Array.isArray(a2)){var a4=a2.length;for(var a3=0;a3<a4;a3++){a2[a3].map=aH;aY.overlays.push(a2[a3]);this.drawShape(a2[a3])}}else{a2.map=aH;aY.overlays.push(a2);this.drawShape(a2)}};this.drawShape= function(a9,a5){if(!(a9 instanceof DDSShape)){return}if(a9.rendering=="server"||(a1=="server"&&a9.rendering!="client")){return}if(!a9.isVisible){return}if(!aH.getTileDiv()){return}var a2=aP;if(!a2){aP=a2=k()}var bf=aH.getBoundingBox();var ba=a2.bbox;if(!a5&&y(a9,bf,ba)){au();return}if(a9.raphael_element){a9.raphael_element.remove()}var bp=C.getZoomLevel();var a8=Utilities.radsPerPixelAtZoomLevel(E,bp);var a7=new Position(ba.maxPosition.lat+" "+ba.minPosition.lon);var bb=Math.round(Utilities.lat2pix(a7.lat,a8));var bc=Math.round(Utilities.lon2pix(a7.lon,a8));var bm="rgb("+a9.borderColorRed+","+a9.borderColorGreen+","+a9.borderColorBlue+")";var bB="rgb("+a9.fillColorRed+","+a9.fillColorGreen+","+a9.fillColorBlue+")";var bl=a9.fillOpacityFloat;var a4=a9.getBorderWidth();var a6=a9.strokeOpacityFloat;var bC=null;var be=[];if(a9.type=="polygon"||a9.type=="line"){var bt="";var bA=[];var bz=[];if(a9.type=="line"){a4=a9.getWidth();bB="none";if(a9.clip||aM){be=a9.getMercPixelsClipped(bp,E,ba)}else{be[0]=a9.getMercPixels(bp,E)}}else{if(a9.type=="polygon"){be[0]=a9.getMercPixels(bp,E)}else{throw new Exception("Map inner function draw: fell through to unacceptable situation with line/polygon client side rendering.")}}var a3=Math.round(Utilities.lon2pix(180,a8));var bq=a9.getBoundingBox();var bn=ba.minPosition.lon-bq.minPosition.lon;var bd=be.length;for(var by=0;by<bd;by++){var bk=be[by].length;bA[by]=[];bz[by]=[];for(var bx=0;bx<bk;bx++){var bv=be[by][bx];bA[by][bx]=parseInt(bc-bv.x);if(bn>180){bA[by][bx]=bA[by][bx]-2*a3}else{if(bn<(-180)){bA[by][bx]=bA[by][bx]+2*a3}}bz[by][bx]=parseInt(bb-bv.y);if(bx==0){bt+="M "+bA[by][bx]*-1+" "+bz[by][bx]+" "}else{bt+="L "+bA[by][bx]*-1+" "+bz[by][bx]+" "}}}if(a9.type=="polygon"){bt+="z"}bC=a2.path(bt)}else{if(a9.type=="circle"){var bj=a9.getPosition();var bg=Math.round(Utilities.lat2pix(bj.lat,a8));var bi=Math.round(Utilities.lon2pix(bj.lon,a8));var br=parseInt(bc-bi);var bo=parseInt(bb-bg);var bu=a9.getRadius().getDegrees();var bw=Math.round(Utilities.lat2pix(bj.lat+bu,a8));var bh=parseInt(bw-bg);bC=a2.circle(-br,bo,bh)}}bC.attr({stroke:bm,fill:bB,"fill-opacity":bl,"stroke-width":a4,"stroke-opacity":a6});for(var bs in a9.eventListenerMap){if(a9.eventListenerMap.hasOwnProperty(bs)){if(typeof(a9.eventListenerMap[bs])=="function"){bC.node[bs]= function(bG){bG=bG?bG:window.event;var bE=this.raphael.owner_shape;var bD=bG.type;bD="on"+bD;var bF=bE.eventListenerMap[bD];bF(bE)}}}}bC.owner_shape=a9;deCarta.IdManager.setTag(bC.node,"ignoreForMapEvents");a9.raphael_element=bC};this.getOverlays= function(){var a3=[];var a4=aY.overlays.length;for(var a2=0;a2<a4;a2++){a3[a2]=aY.overlays[a2]}return a3};this.getOverlayById= function(a3){for(var a2=0;a2<aY.overlays.length;a2++){if(aY.overlays[a2]&&aY.overlays[a2].id==(a3)){return aY.overlays[a2]}}return null};this.removeOverlay= function(a2){if(!a2){return}a2.map=null;var a4=new Array();for(var a3=0;a3<aY.overlays.length;a3++){if(aY.overlays[a3]&&!aY.overlays[a3].equals(a2)){a4.push(aY.overlays[a3])}}aY.overlays=a4;if(a2.raphael_element){a2.raphael_element.remove()}a2.raphael_element=null};this.removeOverlayById= function(a4){var a3=new Array();for(var a2=0;a2<aY.overlays.length;a2++){if(aY.overlays[a2]&&aY.overlays[a2].id!=(a4)){a3.push(aY.overlays[a2])}else{if(aY.overlays[a2]&&aY.overlays[a2].id==(a4)){aY.overlays[a2].map=null;if(aY.overlays[a2].raphael_element){aY.overlays[a2].raphael_element.remove();aY.overlays[a2].raphael_element=null}}}}aY.overlays=a3};this.removeAllOverlays= function(){if(aY&&aY.overlays&&(aY.overlays.length<=0)){return}aY.overlays=[];au(true)};this.addRouteIDOverlay= function(a2){aY.routeIDOverlay=a2};this.removeRouteIDOverlay= function(){aY.routeIDOverlay=null};this.setShapeRendering= function(a2){if(!a2||!a2=="client"||!a2=="server"){throw new Exception("map.setShapeRendering() error: use 'client' or 'server'")}if(a2=="server"){ar()}else{a1=a2;aY.rendering=a2;au()}a1=a2;aY.rendering=a2};this.getShapeRendering= function(){return a1};function y(a2,a4,a6){if(!a4){return false}if(!a6){return true}if(a6.equals(a4)||a6.containsBoundingBox(a4)){return false}var a7=a2.getBoundingBox();if(a6.containsBoundingBox(a7)){return false}var a3=a7.getOverlapBoundingBox(a6);var a5=a7.getOverlapBoundingBox(a4);if(a5&&(!a3||!a3.containsBoundingBox(a5))){return true}else{return false}}this.redraw= function(){var a3=false;var a2=aY.overlays;if(!aP){return}if(!aH.getTileDiv()){return}au()};this.panWest= function(){A(GLOBALS.PAN_PIXEL_DISTANCE,0)};this.panEast= function(){A(-GLOBALS.PAN_PIXEL_DISTANCE,0)};this.panNorth= function(){A(0,GLOBALS.PAN_PIXEL_DISTANCE)};this.panSouth= function(){A(0,-GLOBALS.PAN_PIXEL_DISTANCE)};this.panSouthEast= function(){A(-GLOBALS.PAN_PIXEL_DISTANCE,-GLOBALS.PAN_PIXEL_DISTANCE)};this.panNorthEast= function(){A(-GLOBALS.PAN_PIXEL_DISTANCE,GLOBALS.PAN_PIXEL_DISTANCE)};this.panSouthWest= function(){A(GLOBALS.PAN_PIXEL_DISTANCE,-GLOBALS.PAN_PIXEL_DISTANCE)};this.panNorthWest= function(){A(GLOBALS.PAN_PIXEL_DISTANCE,GLOBALS.PAN_PIXEL_DISTANCE)};this.addScaleBar= function(a2){ag=a2;aH.addMapControl(ag)};this.addMapTypeController= function(a2){if(!a2){throw new Exception("error adding mapTypeController to map")}K=a2;aH.addMapControl(K)};this.setMapType= function(a3){if(!(a3==GLOBALS.STREET||a3==GLOBALS.HYBRID||a3==GLOBALS.SATELLITE)){throw new Exception("unsupported mapType. Use '"+GLOBALS.STREET+"' || '"+GLOBALS.HYBRID+"' || '"+GLOBALS.SATELLITE+"'")}aY.mapType=a3;var a2=false;if(!n||Utilities.isObjectEmpty(n)){return}if(a3==GLOBALS.STREET){if(n[GLOBALS.HYBRID]){n[GLOBALS.HYBRID].hide()}if(n[GLOBALS.SATELLITE]){n[GLOBALS.SATELLITE].hide()}if(!n[GLOBALS.STREET]){U(GLOBALS.STREET);a2=true}else{n[GLOBALS.STREET].show()}}else{if(a3==GLOBALS.HYBRID){if(n[GLOBALS.STREET]){n[GLOBALS.STREET].hide()}if(!n[GLOBALS.SATELLITE]){U(GLOBALS.SATELLITE);a2=true}else{n[GLOBALS.SATELLITE].show()}if(!n[GLOBALS.HYBRID]){U(GLOBALS.HYBRID);a2=true}else{n[GLOBALS.HYBRID].show()}}else{if(a3==GLOBALS.SATELLITE){if(n[GLOBALS.HYBRID]){n[GLOBALS.HYBRID].hide()}if(n[GLOBALS.STREET]){n[GLOBALS.STREET].hide()}if(!n[GLOBALS.SATELLITE]){U(GLOBALS.SATELLITE);a2=true}else{n[GLOBALS.SATELLITE].show()}}}}if(z&&z.frame){z.setMapType(a3)}if(a2){this.centerOnPosition(aH.getCenterPosition())}};this.addZoomController= function(a2){C=a2;aH.addMapControl(C);if(Z){C.frame.style.top="61px";C.frame.style.left="21px"}};this.addShapeDrawingTool= function(a2){aF=a2;aH.addMapControl(aF)};this.addPanController= function(a2){Z=a2;aH.addMapControl(Z);if(C){C.frame.style.top="61px";C.frame.style.left="21px"}};this.addMapOverviewController= function(a2){z=a2;aH.addMapControl(z)};this.getZoomController= function(){return C};this.getPanController= function(){return Z};this.getXmlRecFac= function(){return aY};this.resize= function(bb,a2,a9){var a5=parseInt(aH.mapDiv.style.width);var ba=parseInt(aH.mapDiv.style.height);aH.mapDiv.style.height=parseInt(bb)+B;aH.mapDiv.style.width=parseInt(a2)+B;aH.positionMapControls();if(!T){return}aW();for(var a6 in n){if(n.hasOwnProperty(a6)){var a8=n[a6];a8.resize(an,aT)}}var a4=aI-aZ-(parseInt(a2)-a5)/2;var a3=aG-aC-(parseInt(bb)-ba)/2;var a7=aH.posToMercPix(aa);a7.x-=a4;a7.y+=a3;aa=aH.mercPixToPos(a7);aZ=aI;aC=aG;if(typeof a9=="function"){a9(aH.getCenterPosition())}if(z&&z.frame){z.panToPosition(aH.getCenterPosition())}};this.getBoundingBox= function(){var a5=aH.posToMercPix(aH.getCenterPosition());var a3=(aT*E/2);var a9=(an*E/2);var a6=new PixelPoint(a5.x+a9,a5.y+a3);var a7=new PixelPoint(a5.x-a9,a5.y-a3);var a2=aH.mercPixToPos(a6);var a4=aH.mercPixToPos(a7);var a8=new BoundingBox(a4,a2);return a8};this.getBoundingBoxViewable= function(){var a4=aH.posToMercPix(aH.getCenterPosition());var a3=parseInt(aH.mapDiv.style.height)/2;var a9=parseInt(aH.mapDiv.style.width)/2;var a7=new PixelPoint(a4.x+a9,a4.y+a3);var a6=new PixelPoint(a4.x-a9,a4.y-a3);var a8=aH.mercPixToPos(a7);var a2=aH.mercPixToPos(a6);var a5=new BoundingBox(a2,a8);return a5};this.setOnlyLoadTilesInViewport= function(a2){ai=(a2)?true:false};this.getOnlyLoadTilesInViewport= function(){return ai};this.getGridSize= function(){return aT+" "+an};this.setTileBuffer= function(a2){if(a2){D=2}else{D=1}};this.setTileBorder= function(a3){if(a3){aA=1}else{aA=0}for(var a4 in n){if(n.hasOwnProperty(a4)){if(n[a4].tileArray){for(var a5=0;a5<aT;++a5){for(var a2=0;a2<an;++a2){n[a4].tileArray[a2][a5].border=aA}}}}}};this.getTileSize= function(){return E};this.setTileSize= function(a2){E=parseInt(a2,10);j=E;if(T){s=true}};this.positionToMapLayerPixel= function(ba){if(!ba||!aa){throw new Exception("Map.positionToMapLayerPixel: bad input: "+ba)}var a4=aH.getCenterPosition();var bc=aH.posToMercPix(a4);var a9=parseInt(aH.mapDiv.style.height)/2;var a8=parseInt(aH.mapDiv.style.width)/2;var a5=new PixelPoint(bc.x-a8,bc.y+a9);var a7=this.posToMercPix(ba);var a6=Utilities.radsPerPixelAtZoom(E,C.getGXConvertedZoomLevel());var a2=Utilities.lon2pix(180,a6);var bb=-(a5.roundX()-a7.roundX());if(bb>a2){bb-=a2*2}else{if(bb<(-a2)){bb+=a2*2}}var a3=new PixelPoint(bb-aI,a5.roundY()-a7.roundY()-aG);return a3};this.addMapControl= function(a5){if(!a5){throw new Exception("adding invalid control to map.")}else{if(!a5.type||a5.map){throw new Exception("adding invalid control to map, with properties type:"+a5.type+" map:"+a5.map)}}var a3=a5.type;if(this.existsMapControl(a3)){this.removeMapControl(a3)}a[a3]=a5;a5.map=this;var a2=a5.appendThis();if(a2){this.getMapDiv().appendChild(a2)}var a4=new deCarta.DOMDimensions(this.getMapDiv());a5.position(a4)};this.existsMapControl= function(a2){if(a[a2]){return true}else{return false}};this.removeMapControl= function(a2){if(!a2||!(a2&&a[a2])){return}var a3=a[a2];a[a2]=undefined;this.getMapDiv().removeChild(a3.removeThis());Utilities.purge(a3)};this.positionMapControls= function(){var a2;var a3=new deCarta.DOMDimensions(this.getMapDiv());for(a2 in a){if(a.hasOwnProperty(a2)&&a[a2].position){a[a2].position(a3)}}};this.getMapLayers= function(){return n};this.hide= function(){this.getMapDiv().style.display="none"};this.show= function(){this.getMapDiv().style.display="block";this.positionMapControls()};this.setCompatibility= function(a3,a2){switch(a3){case"restrictDragToDiv":if(a2){this.addEventListener("mouseout",w)}else{this.clearListeners("mouseout")}break;default:throw new Exception("Map.setCompatibility: illegal flag: "+a3.toString()+" passed in as argument.");break}};function p(){ay=new DefaultInfoWindow({autoHeight:true})}this.addEventListener= function(a4,a5){var a3=false;for(var a2=0;a2<O.length;a2++){if(O[a2]==a4){O[a4]=a5;a3=true;break}}if(!a3){O.push(a4);O[a4]=a5}};this.getEventListener= function(a3){for(var a2=0;a2<O.length;a2++){if(O[a2]==a3){return O[a3]}}return null};this.clearInstanceListeners= function(){for(var a2=0;a2<O.length;a2++){O[O[a2]]=null;O[a2]=null}};this.clearListeners= function(a3){for(var a2=0;a2<O.length;a2++){if(O[a2]==a3){O[O[a2]]=null;O[a2]=null}}};function at(a4){if(!GLOBALS.ALLOWDOMEVENTS){return true}a4=a4?a4:window.event;var a2;if(a4.target){a2=a4.target}else{if(a4.srcElement){a2=a4.srcElement}}if(a2&&a2.nodeType==3){a2=a2.parentNode}if(deCarta.IdManager.checkTag(a2,"ignoreForMapEvents")){return true}if(a4.type=="mouseup"){ac=new Date();var a5=new PixelPoint(a4.clientX,a4.clientY);var a3=aH.screenPixToPos(a5);if(O.mouseup){O.mouseup(a3)}if((ac-av)<300&&O.rightclick&&((c&&a4.button==2)||(!c&&a4.which==3))){O.rightclick(a3);return false}}else{if(a4.type=="dblclick"){if(F){clearTimeout(F);F=undefined}W(a4)}else{if(a4.type=="click"&&((ac-av)<300)){H(a4)}}}}function H(a4){a4=a4?a4:window.event;var a2;if(a4.target){a2=a4.target}else{if(a4.srcElement){a2=a4.srcElement}}if(a2&&a2.nodeType==3){a2=a2.parentNode}if(deCarta.IdManager.checkTag(a2,"ignoreForMapEvents")){return false}aj.style.cursor="pointer";aj.unselectable="on";var a5=new PixelPoint(a4.clientX,a4.clientY);var a3=aH.screenPixToPos(a5);if(O.dblclick&&a4.type=="dblclick"){O.dblclick(a3);return false}if(O.click&&a4.type=="click"){O.click(a3);return false}return false}function X(a6){if(!GLOBALS.ALLOWDOMEVENTS){return true}a6=a6?a6:window.event;av=new Date();var a3;if(a6.target){a3=a6.target}else{if(a6.srcElement){a3=a6.srcElement}}if(a3&&a3.nodeType==3){a3=a3.parentNode}if(deCarta.IdManager.checkTag(a3,"ignoreForMapEvents")){return true}if((!c&&a6.which==3)||(c&&a6.button==2)){if(aV){a6.stoppropagation?a6.stoppropagation():a6.cancelBubble=true;var ba=a6.clientX;var a9=a6.clientY;var a4=document.createElement("div");a4.className="decarta-bbox-div";var a7=Utilities.getAbsoluteTop(aH.mapDiv);var a8=Utilities.getAbsoluteLeft(aH.mapDiv);a4.style.top=(a9-a7)+"px";a4.style.left=(ba-a8)+"px";aj.appendChild(a4);aj.style.cursor="move";document.body.onmouseup= function(bd){aj.style.cursor="default";bd=bd?bd:window.event;bd.stoppropagation?bd.stoppropagation():bd.cancelBubble=true;var bc,bb;try{bc=new PixelPoint(parseInt(a4.style.left)+Utilities.getAbsoluteLeft(aH.mapDiv)+parseInt(a4.style.width),parseInt(a4.style.top)+Utilities.getAbsoluteTop(aH.mapDiv));bb=new PixelPoint(parseInt(a4.style.left)+Utilities.getAbsoluteLeft(aH.mapDiv),parseInt(a4.style.top)+Utilities.getAbsoluteTop(aH.mapDiv)+parseInt(a4.style.height))}catch(bd){aj.removeChild(a4);a4=undefined;document.body.onmouseup=null;document.body.onmousemove=null;return false}bc=new PixelPoint(parseInt(a4.style.left)+Utilities.getAbsoluteLeft(aH.mapDiv)+parseInt(a4.style.width),parseInt(a4.style.top)+Utilities.getAbsoluteTop(aH.mapDiv));bb=new PixelPoint(parseInt(a4.style.left)+Utilities.getAbsoluteLeft(aH.mapDiv),parseInt(a4.style.top)+Utilities.getAbsoluteTop(aH.mapDiv)+parseInt(a4.style.height));var bf=aH.screenPixToPos(bc);var bg=aH.screenPixToPos(bb);var be=new BoundingBox(bg,bf);C.setZoomLevel(C.getZoomLevelToFitBoundingBox(be));aH.centerOnPosition(be.getCenterPosition());aj.removeChild(a4);a4=undefined;document.body.onmouseup=null;document.body.onmousemove=null;return false};document.body.onmousemove= function(bc){bc=bc?bc:window.event;var bb=bc.clientX;var bd=bc.clientY;if(bc.clientX>ba&&bc.clientY>a9){a4.style.height=(bd-a9)+"px";a4.style.width=(bb-ba)+"px"}else{if(bc.clientX<ba&&bc.clientY<a9){a4.style.height=(a9-bd)+"px";a4.style.width=(ba-bb)+"px";a4.style.top=(a9-(a9-bd)-a7)+"px";a4.style.left=(ba-(ba-bb)-a8)+"px"}else{if(bc.clientX<ba&&bc.clientY>a9){a4.style.height=(bd-a9)+"px";a4.style.width=(ba-bb)+"px";a4.style.left=(ba-(ba-bb)-a8)+"px"}else{if(bc.clientX>ba&&bc.clientY<a9){a4.style.height=(a9-bd)+"px";a4.style.width=(bb-ba)+"px";a4.style.top=(a9-(a9-bd)-a7)+"px"}}}}return false}}return true}if((!c&&a6.which==2)||(c&&a6.button==4)){return true}if(O.mousedown){var a5=new PixelPoint(a6.clientX,a6.clientY);var a2=aH.screenPixToPos(a5);O.mousedown(a2)}aN=true;aj.style.cursor="move";ab=a6.clientX;Y=a6.clientY;document.body.onmousemove=u;document.body.onmouseup=w;return false}function w(a2){aN=false;aj.style.cursor="default";document.body.onmousemove=null;document.body.onmouseup=null;if(aR&&O.moveend){O.moveend();aR=false}if(ag){ag.calculate()}for(var a3 in n){if(n.hasOwnProperty(a3)){n[a3].showTilesInViewport()}}aq();if(af){m();af=false}if(z&&z.frame){z.panToPosition(aH.getCenterPosition())}return false}function m(){var a2=(S.x-ap.x);var a5=(S.y-ap.y);var a4=a2*Math.abs(a2);var a3=a5*Math.abs(a5);a4=a4>256?256:a4;a4=a4<-256?-256:a4;a3=a3>256?256:a3;a3=a3<-256?-256:a3;t(a4,a3)}function t(a2,a3){if(!a2&&!a3){F=undefined;return}a2=a2<0?Math.ceil(a2*0.6):Math.floor(a2*0.6);a3=a3<0?Math.ceil(a3*0.6):Math.floor(a3*0.6);am+=a2;aI+=a2;ak+=a3;aG+=a3;ax(aI,aG);if(Math.abs(am)>j||Math.abs(ak)>j){aX()}F=setTimeout(function(){t(a2,a3)},100)}function W(a8){var a6;if(a8.target){a6=a8.target}else{if(a8.srcElement){a6=a8.srcElement}}if(a6&&a6.nodeType==3){a6=a6.parentNode}if(deCarta.IdManager.checkTag(a6,"ignoreForMapEvents")){return false}f=true;if(O.dblclick){H(a8)}if(!al){return}var a9=a8.clientX;var a7=a8.clientY;var a3=Utilities.getAbsoluteLeft(aH.mapDiv)-Utilities.getScrollLeft();var a2=Utilities.getAbsoluteTop(aH.mapDiv)-Utilities.getScrollTop();var a5=(parseInt(a9-a3)-Math.round(parseInt(aH.mapDiv.style.width)/2))*-1;var a4=(parseInt(a7-a2)-Math.round(parseInt(aH.mapDiv.style.height)/2))*-1;A(a5,a4)}function u(a5){var a6;var a4;a5=a5?a5:window.event;if(!aR){if(O.movestart){O.movestart()}}if(O.move){a6=new PixelPoint(a5.clientX,a5.clientY);a4=aH.screenPixToPos(a6);O.move(a4)}if(!ad){if(a5.type=="mouseup"&&O.mouseup){a6=new PixelPoint(a5.clientX,a5.clientY);a4=aH.screenPixToPos(a6);O.mouseup(a4);w(a5)}return false}aR=true;if(!aN){return false}var a3=a5.clientX-ab;var a2=a5.clientY-Y;am+=a3;ak+=a2;if(Math.abs(am)>j||Math.abs(ak)>j){aX()}if(!af&&N){af=true}ap.x=aI;ap.y=aG;aI+=a3;aG+=a2;S.x=aI;S.y=aG;ax(aI,aG);if(z&&z.frame){z.panMapDivWinToPos(aH.getCenterPosition())}ab=a5.clientX;Y=a5.clientY;return false}function I(a4){if(!GLOBALS.ALLOWDOMEVENTS){return true}if(!a4){a4=window.event}var a3=a4.target?a4.target:a4.srcElement;var a2=(a4.relatedTarget)?a4.relatedTarget:a4.toElement;try{if(a2&&a3&&(a2.id==a3.id)){return true}}catch(a4){}if(O.mouseout){O.mouseout()}}this.getMapDiv= function(){return aH.mapDiv};this.getBubble= function(){return ay};this.getChooser= function(){return K};this.getCopyright= function(){return aL};this.getTileDiv= function(){return T};this.getZoomLck= function(){return L};this.loaded= function(){return(T?true:false)};this.hidePinsBeforeZoom= function(){V.operateOnData(function(a2){if(a2){a2.zoomHide()}})};this.showPinsAfterZoom= function(){V.operateOnData(function(a2){if(a2){a2.zoomShow()}})};function aQ(){V.operateOnData(function(a2){if(!a2){return}a2.setPosition(a2.position);a2.hideInfoWindow()});aH.showPinsAfterZoom()}function aq(){V.operateOnData(function(a3){if(!a3){return}var a4=a3.setPosition(a3.position);if(a4){var a2=a3.map.getInfoWindow();var a5=(a2)?a2.associatedPin:null;if(a2&&a5&&a5.equals(a3)){a3.hideInfoWindow();a3.showInfoWindow()}}});aH.showPinsAfterZoom()}this.zoomMap= function(a3,a6){if(!n[GLOBALS.STREET]&&!n[GLOBALS.SATELLITE]&&!n[GLOBALS.HYBRID]){return false}if(L){return false}if(typeof a6=="function"){g.zoomMap=a6}else{g.zoomMap=null}var a5=C.selected;if(a5==a3){if(g.zoomMap){g.zoomMap();g.zoomMap=undefined}return false}var a4=aH.getCenterPosition();var a7=Utilities.getRequestId();C.setZoomLevel(a3);aH.hidePinsBeforeZoom();L=true;if(P&&(Math.abs(a5-a3)<=2)){if(!aJ){q()}if((aY&&aY.mapType=="HYBRID")||(!aY.mapType&&Credentials.mapType=="HYBRID")){n[GLOBALS.HYBRID].hide()}for(var a8 in n){if(n.hasOwnProperty(a8)){n[a8].zoom(a5-a3,aJ,am,ak)}}}var a2=aY.createMapRequest(a4,E,a7,a5,a3,null,Utilities.getRequestId());R();JSRequest.send(a2,r);if(z&&z.frame){z.zoomMap()}return true};function aK(){return false}this.setCountryCode= function(a2){if(!a2){throw new Exception("error calling Map.setCountryCode()")}Credentials.ISOCountryCode=a2};this.getGXPixelPoint= function(a2){this.posToMercPix(a2)};this.posToMercPix= function(a5){var a3=Utilities.radsPerPixelAtZoom(E,C.getGXConvertedZoomLevel());var a4=Utilities.lat2pix(a5.lat,a3);var a2=Utilities.lon2pix(a5.lon,a3);return new PixelPoint(a2,a4)};this.mercPixToPos= function(a2){var a5=Utilities.radsPerPixelAtZoom(E,C.getGXConvertedZoomLevel());var a3=Utilities.pix2lat(a2.y,a5);var a4=Utilities.pix2lon(a2.x,a5);return new Position(a3,a4)};this.screenPixToPos= function(a5){var a6=a5.y-Utilities.getAbsoluteTop(aH.mapDiv)+Utilities.getScrollTop();var a3=a5.x-Utilities.getAbsoluteLeft(aH.mapDiv)+Utilities.getScrollLeft();var a8=aH.posToMercPix(aH.getCenterPosition());var a9=a8.x-(parseInt(aH.mapDiv.style.width)/2);var ba=a8.y+(parseInt(aH.mapDiv.style.height)/2);var a4=new PixelPoint(a9,ba);var a7=new PixelPoint(a4.x+a3,a4.y-a6);var a2=aH.mercPixToPos(a7);return a2};function ah(a4){var a9=a4.XLS.Response.requestID;var be,a2;var bb=a4.XLS.Response.PortrayMapResponse.TileGrid[0].Pan;var a5;if(deCarta.JSONParser.parseErrors(a4)){a5=null}else{for(var a6=0;a6<bb.length;a6++){if(bb[a6].direction=="E"){az.x=parseFloat(bb[a6].numTiles)*E;a2=bb[a6].toLon}else{az.y=-parseFloat(bb[a6].numTiles)*E;be=bb[a6].toLat}}var bc=a4.XLS.Response.PortrayMapResponse.TileGrid[0].CenterContext.CenterPoint.pos.content;var a8=a4.XLS.Response.PortrayMapResponse.TileGrid[1].CenterContext.CenterPoint.pos.content;if(isNaN(be)||isNaN(a2)){aa=new Position(bc)}else{aa=new Position(be,a2)}var a3=a4.XLS.Response.PortrayMapResponse.TileGrid[0].CenterContext.Radius.content;C.setRadius((parseFloat((a3))/1000)*an);var a7=0;try{a7=parseInt(a4.XLS.Response.PortrayMapResponse.TileGrid[0].GridLayer.maxImageHostAliases,10)}catch(ba){}var bd=[a4.XLS.Response.PortrayMapResponse.TileGrid[0].Tile.Map.Content.URL,a4.XLS.Response.PortrayMapResponse.TileGrid[1].Tile.Map.Content.URL];o(bd,a7);if(ay){ay.hide()}aQ();a5=aH.getCenterPosition()}if((a9>=0)&&g[a9]){g[a9](a5);g[a9]=undefined}}function r(a2){ah(a2);L=false;if(O.zoomend){O.zoomend()}if(g.zoomMap){g.zoomMap();g.zoomMap=undefined}}function o(a2,a6){if(ag){ag.calculate()}ae();a6=a6||0;var a5=new deCarta.MapLayerReferenceUrl((a2[1]));a5.createGlobeXplorerUrl();var a3=new deCarta.MapLayerReferenceUrl((a2[0]),a6);a3.createDeCartaTransparentUrl();a3.setParameter("config",aY.transparentConfiguration);var a4=new deCarta.MapLayerReferenceUrl((a2[0]),a6);a4.createDeCartaUrl();a4.setParameter("config",aY.configuration);if(n[GLOBALS.SATELLITE]){n[GLOBALS.SATELLITE].populate(a5)}if(n[GLOBALS.HYBRID]){n[GLOBALS.HYBRID].populate(a3)}if(n[GLOBALS.STREET]){n[GLOBALS.STREET].populate(a4)}am-=az.x;ak-=az.y;au()}function R(){if(!T){a0();return}}function a0(){var a2="decarta-mapviewport";if(!aH.mapDiv.className){aH.mapDiv.className=a2}else{aH.mapDiv.className+=" "+a2}Utilities.setUnselectable(aH.mapDiv);aj=document.createElement("div");aj.style.cssText="position:absolute;overflow:hidden;left:0px;top:0px;width:100%;height:100%;";Utilities.setUnselectable(aj);aH.mapDiv.appendChild(aj);aj.oncontextmenu=aK;aj.onmousedown=X;aj.onmouseout=I;aj.onmouseup=at;aj.ondblclick=at;aj.onclick=at;T=document.createElement("div");var a3="decarta-tiles";T.id=a3;T.className=a3;T.style.top=0+B;T.style.left=0+B;Utilities.setUnselectable(T);aj.appendChild(T);if(!C){C=new ZoomController();aH.addMapControl(C);C.hide()}if(!ay){p()}T.appendChild(ay.bubble);J()}this.getTilesContainer= function(){return aj};function J(){if(n[GLOBALS.SATELLITE]||n[GLOBALS.HYBRID]||n[GLOBALS.STREET]){throw new Exception("buildDefaultTileGrid called on existing tile grid")}if(aY.mapType==GLOBALS.STREET){U(GLOBALS.STREET)}else{if(aY.mapType==GLOBALS.HYBRID){U(GLOBALS.HYBRID)}else{if(aY.mapType==GLOBALS.SATELLITE){U(GLOBALS.SATELLITE)}}}}function U(a3){if(a3!=GLOBALS.SATELLITE&&a3!=GLOBALS.HYBRID&&a3!=GLOBALS.STREET){throw new Exception("initDefaultMapLayer called with bad value: "+a3)}var a4=parseInt(aH.mapDiv.style.height);var a2=parseInt(aH.mapDiv.style.width);aW();aE=-Math.floor(((an*E)-a2)/2);aB=-Math.floor(((aT*E)-a4)/2);if(a3==GLOBALS.SATELLITE){n[GLOBALS.SATELLITE]=new deCarta.MapLayer(an,aT,aE,aB,E,"decarta-satellite",1,aH);n[GLOBALS.SATELLITE].show();n[GLOBALS.SATELLITE].appendTiles(T);return}else{if(a3==GLOBALS.HYBRID){if(!n[GLOBALS.SATELLITE]){n[GLOBALS.SATELLITE]=new deCarta.MapLayer(an,aT,aE,aB,E,"decarta-satellite",1,aH);n[GLOBALS.SATELLITE].show();n[GLOBALS.SATELLITE].appendTiles(T)}n[GLOBALS.HYBRID]=new deCarta.MapLayer(an,aT,aE,aB,E,"decarta-transparent",2,aH);n[GLOBALS.HYBRID].show();n[GLOBALS.HYBRID].appendTiles(T);return}else{if(a3==GLOBALS.STREET){n[GLOBALS.STREET]=new deCarta.MapLayer(an,aT,aE,aB,E,"decarta-street",3,aH);n[GLOBALS.STREET].show();n[GLOBALS.STREET].appendTiles(T);return}}}}function q(){aJ=new deCarta.ZoomLayer(an,aT,E);aJ.appendTiles(T)}function Q(){if(!T){throw new Exception("resizeMap called without an existing map.")}for(var a2 in n){if(n.hasOwnProperty(a2)){n[a2].hide();n[a2].destroy();n[a2]=undefined}}n={};T.style.top=0+B;T.style.left=0+B;J();aI=0;aG=0;ab=0;Y=0;aN=false;am=0;ak=0}function ae(){aZ=aI;aC=aG;var a4=parseInt(aH.mapDiv.style.height);var a3=parseInt(aH.mapDiv.style.width);aW();aE=-Math.floor(((an*E)-a3)/2);aB=-Math.floor(((aT*E)-a4)/2);for(var a5 in n){if(n.hasOwnProperty(a5)){n[a5].reset(-aI-az.x,-aG-az.y,aE,aB)}}var a2=[];if(aY.mapType==GLOBALS.STREET){a2.push(n[GLOBALS.STREET])}else{if(aY.mapType==GLOBALS.HYBRID){a2.push(n[GLOBALS.SATELLITE]);a2.push(n[GLOBALS.HYBRID])}else{if(aY.mapType==GLOBALS.SATELLITE){a2.push(n[GLOBALS.SATELLITE])}else{throw new Exception("Map.reset: encountered unexpected _xmlRecFac.mapType of "+aY.mapType)}}}G(a2);ab=0;Y=0;aN=false;am=0;ak=0}function G(ba){var a6=ba;var a4=a6.length;var a7;if(!L||!P){for(a7=0;a7<a4;a7++){a6[a7].show()}return}for(a7=0;a7<a4;a7++){a6[a7].delayedLoading=true}var a2=250;var a8=an*aT;var a9=a8*0.8;var a3=6;setTimeout(a5,a2);function a5(){if(a6[0].numTilesLoaded>=a9||a3<=0){for(a7=0;a7<a4;a7++){a6[a7].show();a6[a7].delayedLoading=false}if(aJ){aJ.hide()}return}a3--;setTimeout(a5,a2)}}function aX(){var a2;if(am<=-j){am=am+j;for(a2 in n){if(n.hasOwnProperty(a2)){n[a2].rotateTiles(0,1)}}aH.redraw()}else{if(am>=j){am=am-j;for(a2 in n){if(n.hasOwnProperty(a2)){n[a2].rotateTiles(0,-1)}}aH.redraw()}}if(ak<=-j){ak=ak+j;for(a2 in n){if(n.hasOwnProperty(a2)){n[a2].rotateTiles(-1,0)}}aH.redraw()}else{if(ak>=j){ak=ak-j;for(a2 in n){if(n.hasOwnProperty(a2)){n[a2].rotateTiles(1,0)}}aH.redraw()}}}function ax(a2,a3){T.style.left=a2+B;T.style.top=a3+B}function A(a2,a3){if(aD){return}if(a2>1){T.style.left=parseInt(T.style.left)+1+B}else{if(a2<-1){T.style.left=parseInt(T.style.left)-1+B}}if(a3>1){T.style.top=parseInt(T.style.top)+1+B}else{if(a3<-1){T.style.top=parseInt(T.style.top)-1+B}}aD=true;l(a2,a3,true)}function l(a2,a7,a6){if(a6){aU=a2;aS=a7}var a4=Math.round(Math.abs(aU)*0.3);var a3=Math.round(Math.abs(aS)*0.3);if(a4>0||a3>0){if(aU<0){aU+=a4;am-=a4;aI-=a4}else{if(aU>0){aU-=a4;am+=a4;aI+=a4}}if(aS<0){aS+=a3;ak-=a3;aG-=a3}else{if(aS>0){aS-=a3;ak+=a3;aG+=a3}}ax(aI,aG);if(Math.abs(am)>j||Math.abs(ak)>j){aX()}setTimeout(l,h)}else{if(O.moveend){O.moveend()}if(g.panToPosition){g.panToPosition(aH.getCenterPosition());g.panToPosition=undefined}if(ag){ag.calculate()}if(f&&ao){aH.getZoomController().zoomInOneLevel()}aD=false;f=false;for(var a5 in n){if(n.hasOwnProperty(a5)){n[a5].showTilesInViewport()}}aq()}}function aw(){if(!aH.getTileDiv()){return null}var a2=d;if(!a2){a2=document.createElement("div");a2.id="svgvml_canvas";aH.getTileDiv().appendChild(a2)}a2.style.position="absolute";a2.style.zIndex=100;d=a2;return a2}function ar(){if(a1=="server"){return}var a2=aw();a2.innerHTML=""}function k(){if(!aH.getTileDiv()){return null}var a2=aw();var a6=aH.getGridSize().split(" ");var a5=parseInt(a6[1])*E;var a9=parseInt(a6[0])*E;a2.style.width=a5+B;a2.style.height=a9+B;var a8=aH.mapDiv;var a4=-Math.floor((a5-parseInt(a8.style.width))/2);var a3=-Math.floor((a9-parseInt(a8.style.height))/2);var ba=T;a2.style.left=a4-parseInt(ba.style.left)+B;a2.style.top=a3-parseInt(ba.style.top)+B;a2.innerHTML="";var a7=Raphael(a2);a7.bbox=aH.getBoundingBox();return a7}function au(a2){a2=a2||false;if(aY.overlays.length==0&&!a2){aP=null;return}if(aD||!aH.getTileDiv()){return}aP=k();var a4=aY.overlays;for(var a5=0;a5<a4.length;a5++){var a3=a4[a5];a3.raphael_element=null;aH.drawShape(a3,true)}}this.getRaphaelPaper= function(){return aP};this.getMapOverviewController= function(){return z};function aW(){var a5=parseInt(aH.mapDiv.style.height);var a4=parseInt(aH.mapDiv.style.width);aT=Math.ceil(a5/E)+D;if(aT%2==0){aT++}an=Math.ceil(a4/E)+D;if(an%2==0){an++}var a2=aT*E;var a3=an*E;T.style.width=a3+B;T.style.height=a2+B}}deCarta.MapLayer= function(b,j,f,h,g,d,c,a){this.init(b,j,f,h,g,d,c,a)};deCarta.MapLayer.dgAliasIndex=0;deCarta.MapLayer.dgAliasMax=3;deCarta.MapLayer.prototype.owner=null;deCarta.MapLayer.prototype.onlyLoadTilesInViewport=false;deCarta.MapLayer.prototype.xTiles=null;deCarta.MapLayer.prototype.yTiles=null;deCarta.MapLayer.prototype.xOffset=0;deCarta.MapLayer.prototype.yOffset=0;deCarta.MapLayer.prototype.leftIndex=0;deCarta.MapLayer.prototype.topIndex=0;deCarta.MapLayer.prototype.tileSize=null;deCarta.MapLayer.prototype.layerName="mapLayer";deCarta.MapLayer.prototype.cssClass="decarta-maptile";deCarta.MapLayer.prototype.cssZIndex=0;deCarta.MapLayer.prototype.tileArray=null;deCarta.MapLayer.prototype.srcOnHidden=null;deCarta.MapLayer.prototype.srcOnError=null;deCarta.MapLayer.prototype.isVisible=false;deCarta.MapLayer.prototype.numTilesLoaded=0;deCarta.MapLayer.prototype.delayedLoading=false;deCarta.MapLayer.prototype.refUrl=null;deCarta.MapLayer.prototype.init= function(d,j,g,b,l,f,c,a){var k,h;this.xTiles=d;this.yTiles=j;this.xOffset=g;this.yOffset=b;this.tileSize=l;if(f){this.layerName=f}if(c){this.cssZIndex=c}this.owner=a;this.onlyLoadTilesInViewport=this.owner.getOnlyLoadTilesInViewport();this.tileArray=[];this.setDefaultSrc();for(k=0;k<this.xTiles;k++){this.tileArray[k]=[];for(h=0;h<this.yTiles;h++){this.tileArray[k][h]=this.mapTileFactory(k,h);if(this.owner.type=="MapOverviewController"){deCarta.IdManager.setTag(this.tileArray[k][h],"ignoreForMapEvents")}}}};deCarta.MapLayer.prototype.setDefaultSrc= function(){if(!Utilities.ie6){this.srcOnHidden=Credentials.transparentPNG;this.srcOnError=Credentials.transparentPNG}else{this.srcOnHidden=Credentials.transparentGIF;this.srcOnError=Credentials.transparentGIF}};deCarta.MapLayer.prototype.mapTileOnError= function(b){var a;if(!b){a=window.event.srcElement}else{a=b.currentTarget}if(a&&a.src&&a.srcOnError){a.src=a.srcOnError}};deCarta.MapLayer.prototype.mapTileFactory= function(a,f){var d=Math.floor(this.xTiles/2);var b=Math.floor(this.yTiles/2);var c=document.createElement("IMG");c.ownerLayer=this;c.fromCenterX=a-d;c.fromCenterY=b-f;c.className=this.cssClass;if(this.srcOnHidden){c.altSrc=this.srcOnHidden;c.src=this.srcOnHidden}else{c.altSrc="";c.src=""}c.style.display="none";c.style.zIndex=this.cssZIndex;c.style.height=this.tileSize+"px";c.style.width=this.tileSize+"px";c.onerror=this.mapTileOnError;c.style.left=(a*this.tileSize)+this.xOffset+"px";c.style.top=(f*this.tileSize)+this.yOffset+"px";Utilities.setUnselectable(c);c.coords=new Object();c.coords.ul=null;c.coords.ur=null;c.coords.lr=null;c.coords.ll=null;c.tileViewed=false;c.setTileCoords=deCarta.MapLayer.setTileCoords;c.isTileInViewPort=deCarta.MapLayer.isTileInViewPort;c.setSrc=deCarta.MapLayer.setSrc;if(Utilities.ie6){c.loader=document.createElement("img");c.loader.owner=c;c.loader.loadTile= function(){this.owner.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+this.src+"')";this.owner.src=Credentials.transparentGIF;this.owner.ownerLayer.numTilesLoaded++;return true};c.loader.onload=c.loader.loadTile;c.onload= function(){c.style.display="block"}}else{c.loader=document.createElement("img");c.loader.owner=c;c.loader.loadTile= function(){if(false){$(this.owner).hide().attr("src",this.src).fadeIn("fast")}else{this.owner.src=this.src}this.owner.ownerLayer.numTilesLoaded++;return true};c.loader.onload=c.loader.loadTile;c.onload= function(){this.style.display="block"}}return c};deCarta.MapLayer.prototype.showTilesInViewport= function(){if(this.onlyLoadTilesInViewport){for(var a=0;a<this.xTiles;a++){for(var c=0;c<this.yTiles;c++){var b=this.tileArray[a][c];if(!b.tileViewed){b.setSrc(b.altSrc)}}}}};deCarta.MapLayer.setSrc= function(a){if(this.ownerLayer.layerName=="decarta-satellite"){if(deCarta.MapLayer.dgAliasIndex>=deCarta.MapLayer.dgAliasMax){deCarta.MapLayer.dgAliasIndex=0}else{deCarta.MapLayer.dgAliasIndex++}a=a.replace(/\/\/www/,"//www"+deCarta.MapLayer.dgAliasIndex)}this.altSrc=a;if(this.ownerLayer.isVisible||this.ownerLayer.delayedLoading){if(this.ownerLayer.onlyLoadTilesInViewport&&!this.isTileInViewPort()){this.tileViewed=false;if(this.ownerLayer.srcOnHidden){this.src=this.ownerLayer.srcOnHidden}else{this.style.display="none"}}else{this.tileViewed=true;if(this.ownerLayer.srcOnHidden){this.src=this.ownerLayer.srcOnHidden;this.loader.src=a}else{this.style.display="none";this.src=a}}}};deCarta.MapLayer.setTileCoords= function(a){if(!a){return}var d=a.dynamicProps;var t=d.llMin.split(",");var r=parseInt(d.northing,10);var u=parseInt(d.easting,10);var k=this.ownerLayer;var w=k.owner;var p=w.getZoomController().getZoomLevel();var l=w.getTileSize();var y=Utilities.radsPerPixelAtZoomLevel(l,p);var z=new Position(parseFloat(t[0]),parseFloat(t[1]));var f=Math.round(Utilities.lat2pix(z.lat,y));var c=Math.round(Utilities.lon2pix(z.lon,y));var o=f+(r*l)+(this.fromCenterY*l);var h=c+(u*l)+(this.fromCenterX*l);var j=o+k.tileSize;var b=h+k.tileSize;var s=Utilities.pix2lat(o,y);var g=Utilities.pix2lon(h,y);var m=Utilities.pix2lat(j,y);var q=Utilities.pix2lon(b,y);this.coords.ul=new Position(m,g);this.coords.ur=new Position(m,q);this.coords.lr=new Position(s,q);this.coords.ll=new Position(s,g)};deCarta.MapLayer.isTileInViewPort= function(){var c;var d=this.coords;var g=this.ownerLayer.owner.getBoundingBoxViewable();var b=false;for(c in d){if(d.hasOwnProperty(c)){if(g.contains(d[c])){b=true;break}}}if(!b){var a={};a.ul=new Position(g.maxPosition.lat,g.minPosition.lon);a.ur=new Position(g.maxPosition.lat,g.maxPosition.lon);a.lr=new Position(g.minPosition.lat,g.maxPosition.lon);a.ll=new Position(g.minPosition.lat,g.minPosition.lon);var f=new BoundingBox(d.ll,d.ur);for(c in a){if(a.hasOwnProperty(c)){if(f.contains(a[c])){b=true;break}}}}if(b){return true}else{return false}};deCarta.MapLayer.prototype.appendTiles= function(b){for(var a=0;a<this.xTiles;a++){for(var c=0;c<this.yTiles;c++){b.appendChild(this.tileArray[a][c])}}};deCarta.MapLayer.prototype.hide= function(){if(!this.isVisible){return}var a,b;this.isVisible=false;for(a=0;a<this.xTiles;a++){for(b=0;b<this.yTiles;b++){this.tileArray[a][b].style.display="none"}}};deCarta.MapLayer.prototype.show= function(){if(this.isVisible){return}var a,f;this.isVisible=true;for(a=0;a<this.xTiles;a++){for(f=0;f<this.yTiles;f++){var c=this.tileArray[a][f];var b=c.altSrc.replace(/\:80/,"");var d=c.src.replace(/\:80/,"");if(b!=d&&this.refUrl){c.setSrc(c.altSrc)}c.style.display="block"}}};deCarta.MapLayer.prototype.reset= function(c,a,h,b){this.refUrl=null;if(h){this.xOffset=h}if(b){this.yOffset=b}var k,j;var g,f,d;var l="px";c=c||0;a=a||0;this.numTilesLoaded=0;this.isVisible=false;this.leftIndex=0;this.topIndex=0;this.updateFromCenterVals();for(k=0;k<this.xTiles;k++){g=this.xOffset+c+(k*this.tileSize);for(j=0;j<this.yTiles;j++){d=this.tileArray[k][j];d.tileViewed=false;d.style.display="none";if(this.srcOnHidden){d.altSrc=this.srcOnHidden;d.src=this.srcOnHidden;if(d.loader){d.loader.src=this.srcOnHidden}}else{d.altSrc="";d.src="";if(d.loader){d.loader.src=""}}f=this.yOffset+a+(j*this.tileSize);d.style.left=g+l;d.style.top=f+l}}};deCarta.MapLayer.prototype.refresh= function(){var a,c;for(a=0;a<this.xTiles;a++){for(c=0;c<this.yTiles;c++){var b=this.tileArray[a][c];b.setSrc(this.refUrl.getRelSrc(b.fromCenterY,b.fromCenterX))}}};deCarta.MapLayer.prototype.rotateTiles= function(m,j){var o,k;var l=this.yTiles;var f=this.xTiles;var q=this.tileSize;var c;var h;var p=0;var a;var d;if(m){if(m>0){this.topIndex-=1;if(this.topIndex<0){this.topIndex=l-1}h=this.topIndex;p-=l*q;a=1}else{h=this.topIndex;this.topIndex+=1;if(this.topIndex>=l){this.topIndex=0}p+=l*q;a=-1}this.updateFromCenterVals();this.refUrl.pan(a,0);var g=[];for(o=0;o<f;o++){g.push(this.tileArray[o][h])}n(g);for(o=0;o<g.length;o++){c=g[o];d=parseInt(c.style.top)+p;c.style.top=(d)+"px";if(this.onlyLoadTilesInViewport){c.setTileCoords(this.refUrl)}c.setSrc(this.refUrl.getRelSrc(c.fromCenterY,c.fromCenterX))}return}if(j){if(j>0){h=this.leftIndex;this.leftIndex+=1;if(this.leftIndex>=f){this.leftIndex=0}p+=f*q;a=1}else{this.leftIndex-=1;if(this.leftIndex<0){this.leftIndex=f-1}h=this.leftIndex;p-=f*q;a=-1}this.updateFromCenterVals();this.refUrl.pan(0,a);g=[];for(k=0;k<l;k++){g.push(this.tileArray[h][k])}n(g);for(k=0;k<g.length;k++){c=g[k];d=parseInt(c.style.left)+p;c.style.left=(d)+"px";if(this.onlyLoadTilesInViewport){c.setTileCoords(this.refUrl)}c.setSrc(this.refUrl.getRelSrc(c.fromCenterY,c.fromCenterX))}}function n(t){for(var s=1;s<t.length;s++){for(var r=0;r<t.length-1;r++){if((Math.abs(t[r].fromCenterX)+Math.abs(t[r].fromCenterY))>(Math.abs(t[r+1].fromCenterX)+Math.abs(t[r+1].fromCenterY))){b(t,r,r+1)}}}}function b(s,u,r){var t;t=s[u];s[u]=s[r];s[r]=t}};deCarta.MapLayer.prototype.zoom= function(d,c,b,a){if(!this.isVisible){return}c.zoom(d,this,b,a)};deCarta.MapLayer.prototype.populate= function(f){this.refUrl=f;var j,g,b;var d=[];var c=0;var k;for(j=0;j<this.xTiles;j++){for(g=0;g<this.yTiles;g++){d[c]=this.tileArray[j][g];c++}}k=d.length;h(d);for(b=0;b<k;b++){if(this.onlyLoadTilesInViewport){d[b].setTileCoords(f)}d[b].setSrc(f.getRelSrc(d[b].fromCenterY,d[b].fromCenterX))}function h(n){for(var m=1;m<n.length;m++){for(var l=0;l<n.length-1;l++){if((Math.abs(n[l].fromCenterX)+Math.abs(n[l].fromCenterY))>(Math.abs(n[l+1].fromCenterX)+Math.abs(n[l+1].fromCenterY))){a(n,l,l+1)}}}}function a(m,o,l){var n;n=m[o];m[o]=m[l];m[l]=n}};deCarta.MapLayer.prototype.updateFromCenterVals= function(){var k=this.xTiles;var n=this.yTiles;var b=Math.floor(k/2);var g=-b;var a=Math.floor(n/2);var f=-a;var q=this.leftIndex;var c=this.topIndex;var j,h;if(q>b){j=q-b-1}else{j=q+b}if(c>a){h=c-a-1}else{h=c+a}var d=this.tileArray;var p,m;for(p=0;p<k;p++){for(m=0;m<n;m++){var l=d[p][m];var r=p-j;if(r>b){l.fromCenterX=r-k}else{if(r<g){l.fromCenterX=r+k}else{l.fromCenterX=r}}var o=h-m;if(o>a){l.fromCenterY=o-n}else{if(o<f){l.fromCenterY=o+n}else{l.fromCenterY=o}}}}};deCarta.MapLayer.prototype.resize= function(f,h){if(f==this.xTiles&&h==this.yTiles){return}var b=[];var j=parseInt(this.tileArray[this.leftIndex][this.topIndex].style.top);var a=parseInt(this.tileArray[this.leftIndex][this.topIndex].style.left);var d=Math.floor(this.xTiles/2);var c=Math.floor(this.yTiles/2);var l=0;var g=0;var m;var k;for(l=0;l<this.xTiles;l++){for(g=0;g<this.yTiles;g++){m=(l-this.leftIndex);if(m<0){m+=this.xTiles}k=(g-this.topIndex);if(k<0){k+=this.yTiles}if(m>=f||k>=h){this.owner.getTileDiv().removeChild(this.tileArray[l][g]);this.tileArray[l][g]=null}}}for(l=0;l<f;l++){b[l]=[];for(g=0;g<h;g++){if(l<this.xTiles&&g<this.yTiles){m=(this.leftIndex+l)%this.xTiles;k=(this.topIndex+g)%this.yTiles;b[l][g]=this.tileArray[m][k]}else{b[l][g]=this.mapTileFactory(l,g);b[l][g].style.top=(j+g*this.tileSize)+"px";b[l][g].style.left=(a+l*this.tileSize)+"px";if(this.onlyLoadTilesInViewport){b[l][g].setTileCoords(this.refUrl)}b[l][g].setSrc(this.refUrl.getRelSrc(c-g,l-d));this.owner.getTileDiv().appendChild(b[l][g])}}}this.refUrl.pan(-(h-this.yTiles)/2,(f-this.xTiles)/2);this.tileArray=b;this.xTiles=f;this.yTiles=h;this.leftIndex=0;this.topIndex=0;this.updateFromCenterVals()};deCarta.MapLayer.prototype.destroy= function(){var a,b;for(a=0;a<this.xTiles;a++){for(b=0;b<this.yTiles;b++){Utilities.purge(this.tileArray[a][b])}}};deCarta.ZoomLayer= function(a,c,b){this.init(a,c,b)};deCarta.ZoomLayer.prototype.framesTotal=3;deCarta.ZoomLayer.prototype.msPerFrame=100;deCarta.ZoomLayer.prototype.xTiles=null;deCarta.ZoomLayer.prototype.yTiles=null;deCarta.ZoomLayer.prototype.tileSize=null;deCarta.ZoomLayer.prototype.layerName="zoomLayer";deCarta.ZoomLayer.prototype.cssClass="decarta-maptile";deCarta.ZoomLayer.prototype.cssZIndex=0;deCarta.ZoomLayer.prototype.tileArray=null;deCarta.ZoomLayer.prototype.srcOnHidden=null;deCarta.ZoomLayer.prototype.srcOnError=null;deCarta.ZoomLayer.prototype.isVisible=false;deCarta.ZoomLayer.prototype.init= function(b,f,c){var a,d;this.xTiles=b;this.yTiles=f;this.tileSize=c;this.tileArray=[];this.setDefaultSrc();for(a=0;a<this.xTiles;a++){this.tileArray[a]=[];for(d=0;d<this.yTiles;d++){this.tileArray[a][d]=this.mapTileFactory(a,d)}}};deCarta.ZoomLayer.prototype.setDefaultSrc= function(){if(!Utilities.ie6){this.srcOnHidden=Credentials.transparentPNG;this.srcOnError=Credentials.transparentPNG}else{this.srcOnHidden=Credentials.transparentGIF;this.srcOnError=Credentials.transparentGIF}};deCarta.ZoomLayer.prototype.mapTileOnError= function(b){var a;if(!b){a=window.event.srcElement}else{a=b.currentTarget}if(a&&a.src&&a.srcOnError){a.src=a.srcOnError}};deCarta.ZoomLayer.prototype.mapTileFactory= function(a,g){var b="px";var f=Math.floor(this.xTiles/2);var c=Math.floor(this.yTiles/2);var d=document.createElement("IMG");d.fromCenterX=a-f;d.fromCenterY=c-g;d.className=this.cssClass;d.altSrc=this.srcOnHidden;d.src=this.srcOnHidden;d.style.zIndex=this.cssZIndex;d.style.height=this.tileSize+b;d.style.width=this.tileSize+b;d.onerror=this.mapTileOnError;Utilities.setUnselectable(d);d.setSrc=deCarta.ZoomLayer.setSrc;return d};deCarta.ZoomLayer.setSrc= function(a){this.src=a};deCarta.ZoomLayer.prototype.appendTiles= function(b){for(var a=0;a<this.xTiles;a++){for(var c=0;c<this.yTiles;c++){b.appendChild(this.tileArray[a][c])}}};deCarta.ZoomLayer.prototype.hide= function(){if(!this.isVisible){return}var a,b;this.isVisible=false;for(a=0;a<this.xTiles;a++){for(b=0;b<this.yTiles;b++){this.tileArray[a][b].setSrc(this.srcOnHidden);this.tileArray[a][b].style.display="none"}}};deCarta.ZoomLayer.prototype.show= function(){if(this.isVisible){return}var a,b;this.isVisible=true;for(a=0;a<this.xTiles;a++){for(b=0;b<this.yTiles;b++){this.tileArray[a][b].style.display="block"}}};deCarta.ZoomLayer.prototype.transferSrcFromMapLayer= function(c){var a,g,f,d;var b="px";for(a=0;a<c.xTiles;a++){f=a+c.leftIndex;if(f>=c.xTiles){f-=c.xTiles}for(g=0;g<c.yTiles;g++){d=g+c.topIndex;if(d>=c.yTiles){d-=c.yTiles}this.tileArray[a][g].setSrc(this.srcOnHidden);this.tileArray[a][g].style.top=c.tileArray[f][d].style.top;this.tileArray[a][g].style.left=c.tileArray[f][d].style.left;this.tileArray[a][g].style.height=c.tileSize+b;this.tileArray[a][g].style.width=c.tileSize+b;this.tileArray[a][g].setSrc(c.tileArray[f][d].src)}}};deCarta.ZoomLayer.prototype.zoom= function(m,c,t,s){var u=this;u.show();u.transferSrcFromMapLayer(c);c.hide();var g=t;var f=s;var h=Math.pow(2,m);var b=m>0?+1:-1;var p=this.framesTotal;var n=this.msPerFrame;var k=Math.floor((h*u.tileSize-u.tileSize)/(p));var d=-1*Math.floor(u.xTiles/2);var q=d;var j=-1*Math.floor(u.yTiles/2);var a=j;var l;var o;if(m>0){l=Math.floor(h*b*g/(2*p));o=Math.floor(h*b*f/(2*p))}else{l=Math.floor(h*b*g/(p));o=Math.floor(h*b*f/(p))}r();function r(){var w,B;var A="px";for(w=0;w<u.xTiles;w++){for(B=0;B<u.yTiles;B++){var z=u.tileArray[w][B];z.style.width=parseInt(z.style.width)+k+A;z.style.height=parseInt(z.style.height)+k+A;z.style.left=parseInt(z.style.left)-k/2+d*k+l+A;z.style.top=parseInt(z.style.top)-k/2+j*k+o+A;j+=1}d+=1;j=a}d=q;p-=1;if(p){setTimeout(r,n)}}};deCarta.ZoomLayer.prototype.destroy= function(){var a,b;for(a=0;a<this.xTiles;a++){for(b=0;b<this.yTiles;b++){Utilities.purge(this.tileArray[a][b])}}};deCarta.MapLayerReferenceUrl= function(a,b){this.init(a,b)};deCarta.MapLayerReferenceUrl.prototype.baseUrl=null;deCarta.MapLayerReferenceUrl.prototype.imageHosts=null;deCarta.MapLayerReferenceUrl.prototype.numImageHosts=null;deCarta.MapLayerReferenceUrl.prototype.nextImageHost=null;deCarta.MapLayerReferenceUrl.prototype.staticProps=null;deCarta.MapLayerReferenceUrl.prototype.dynamicProps=null;deCarta.MapLayerReferenceUrl.prototype.urlregx=new RegExp("\\amp;","g");deCarta.MapLayerReferenceUrl.prototype.init= function(a,b){this.baseUrl=a;this.dynamicProps={};this.dynamicProps.northing=0;this.dynamicProps.easting=0;this.llMax=null;this.llMin=null;this.dynamicProps.format="";this.dynamicProps.config="";this.imageHosts=[];this.nextImageHost=0;if(b){this.numImageHosts=b+1}else{this.numImageHosts=1}};deCarta.MapLayerReferenceUrl.prototype.getFullHostName= function(){var d=this.baseUrl.indexOf("?");var c=this.baseUrl.substr(0,d+1);var b=/^[\S]*\/\/([\S]+)/;var a=c.replace(b,"$1");var f=a.split("/")[0];return f};deCarta.MapLayerReferenceUrl.prototype.getProtocol= function(){var c=this.baseUrl.indexOf("?");var b=this.baseUrl.substr(0,c+1);var a=/^([a-zA-Z:]*\/\/)([\s\S]*)/;var d=b.replace(a,"$1");return d};deCarta.MapLayerReferenceUrl.prototype.generateHostAliases= function(){var d;this.imageHosts=[];var j=this.baseUrl.indexOf("?");var k=this.baseUrl.substr(0,j+1);if(this.numImageHosts==1){this.imageHosts[0]=k+this.staticProps;return}else{var g=k.split(".");if(g.length>1){var m=g[0];var f=g.slice(1).join(".");m=m.replace(/-[0-9]+$/,"");this.imageHosts[0]=m+"."+f+this.staticProps;for(d=1;d<this.numImageHosts;d++){if(d<10){this.imageHosts[d]=m+"-0"+d+"."+f+this.staticProps;continue}else{this.imageHosts[d]=m+"-"+d+"."+f+this.staticProps}}}else{var l=this.getProtocol();var a=this.getFullHostName();var b="";if(a.split(":").length>1){b=":"+a.split(":")[1];a=a.split(":")[0]}a=a.replace(/-[0-9]+$/,"");var c=this.baseUrl.indexOf("/",l.length);var h=this.baseUrl.substr(c,j+1-c);this.imageHosts[0]=l+a+b+h+this.staticProps;for(d=1;d<this.numImageHosts;d++){if(d<10){this.imageHosts[d]=l+a+"-0"+d+b+h+this.staticProps;continue}else{this.imageHosts[d]=l+a+"-"+d+b+h+this.staticProps}}}}};deCarta.MapLayerReferenceUrl.prototype.createGlobeXplorerUrl= function(){var c,d,h;var b=[];var f=this.baseUrl.indexOf("?")+1;var a=this.baseUrl.slice(f).split("&");var g=a.length;for(c=0;c<g;c++){d=a[c];if(d.indexOf("N=")==0){this.dynamicProps.northing=parseInt(d.split("=")[1],10);d=null}else{if(d.indexOf("E=")==0){this.dynamicProps.easting=parseInt(d.split("=")[1],10);d=null}else{if(d.indexOf("LLMIN=")==0||d.indexOf("LL=")==0){this.dynamicProps.llMin=d.split("=")[1]}else{if(d.indexOf("key=")==0){if(d.length>4&&!Credentials.dgkey){}else{h=Credentials.dgkey||"";d="key="+h}}}}}if(d!=null){b.push(d)}}this.staticProps=b.join("&");this.generateHostAliases()};deCarta.MapLayerReferenceUrl.prototype.createDeCartaTransparentUrl= function(){var c,d;var b=[];this.baseUrl=this.baseUrl.replace(this.urlregx,"");var f=this.baseUrl.indexOf("?")+1;var a=this.baseUrl.slice(f).split("&");var g=a.length;for(c=0;c<g;c++){d=a[c];if(d.indexOf("N=")==0){this.dynamicProps.northing=parseInt(d.split("=")[1],10);d=null}else{if(d.indexOf("E=")==0){this.dynamicProps.easting=parseInt(d.split("=")[1],10);d=null}else{if(d.indexOf("FORMAT=")==0){this.dynamicProps.format="PNG";d=null}else{if(d.indexOf("CONFIG=")==0){this.dynamicProps.config=d.split("=")[1];d=null}else{if(d.indexOf("LLMIN=")==0||d.indexOf("LL=")==0){this.dynamicProps.llMin=d.split("=")[1]}}}}}if(d!=null){b.push(d)}}this.staticProps=b.join("&");this.generateHostAliases()};deCarta.MapLayerReferenceUrl.prototype.createDeCartaUrl= function(){var c,d;var b=[];this.baseUrl=this.baseUrl.replace(this.urlregx,"");var f=this.baseUrl.indexOf("?")+1;var a=this.baseUrl.slice(f).split("&");var g=a.length;for(c=0;c<g;c++){d=a[c];if(d.indexOf("N=")==0){this.dynamicProps.northing=parseInt(d.split("=")[1],10);d=null}else{if(d.indexOf("E=")==0){this.dynamicProps.easting=parseInt(d.split("=")[1],10);d=null}else{if(d.indexOf("FORMAT=")==0){this.dynamicProps.format=d.split("=")[1];d=null}else{if(d.indexOf("CONFIG=")==0){this.dynamicProps.config=d.split("=")[1];d=null}else{if(d.indexOf("LLMIN=")==0||d.indexOf("LL=")==0){this.dynamicProps.llMin=d.split("=")[1]}}}}}if(d!=null){b.push(d)}}this.staticProps=b.join("&");this.generateHostAliases()};deCarta.MapLayerReferenceUrl.prototype.getNextImageHost= function(){if(this.numImageHosts==1){return this.imageHosts[0]}else{var a=this.imageHosts[this.nextImageHost++];if(this.nextImageHost>=this.numImageHosts){this.nextImageHost=0}return a}};deCarta.MapLayerReferenceUrl.prototype.pan= function(a,b){this.dynamicProps.northing+=a;this.dynamicProps.easting+=b};deCarta.MapLayerReferenceUrl.prototype.getRelSrc= function(g,b){var f=this.getNextImageHost();var d=this.dynamicProps.northing+g;var j=this.dynamicProps.easting+b;var a=this.dynamicProps.config||"";if(a){a="&CONFIG="+a}var c=this.dynamicProps.format||"";if(c){c="&FORMAT="+c}var h=f+c+a+"&N="+d+"&E="+j;return h};deCarta.MapLayerReferenceUrl.prototype.setParameter= function(j,h){var c;var g=this.dynamicProps;for(c in g){if(g.hasOwnProperty(c)){if(c==j){g[j]=h;return}}}var f=this.staticProps.split("&");var d=f.length;var b=j+"=";var a=false;for(c=0;c<d;c++){if(f[c].indexOf(b)==0){f[c]=b+h;a=true;break}}if(!a){f[d]=b+h}this.staticProps=f.join("&");this.generateHostAliases()};deCarta.MapLayerReferenceUrl.prototype.getParameter= function(h){var b;var g=null;var f=this.dynamicProps;for(b in f){if(f.hasOwnProperty(b)){if(b==h){g=f[h];return g}}}var d=this.staticProps.split("&");var c=d.length;var a=h+"=";for(b=0;b<c;b++){if(d[b].indexOf(a)==0){g=d[b].split("=")[1];return g}}return null};deCarta.MapLayerReferenceUrl.prototype.deleteParameter= function(c){var g;var d=this.dynamicProps;for(g in d){if(d.hasOwnProperty(g)){if(g==c){d[c]=null;return true}}}var h=this.staticProps.split("&");var k=[];var a;var b=false;var f=h.length;var j=c+"=";for(g=0;g<f;g++){a=h[g];if(a.indexOf(j)==0){a=null;b=true}if(a){k.push(a)}}if(b){this.staticProps=k.join("&");this.generateHostAliases();return true}else{return false}};function MapOverviewController(W,c,h){this.map=null;this.mapVisible=false;this.frame=null;this.type="MapOverviewController";this.mapDiv=null;this.zoomDif=W||4;this.width=c||120;this.height=h||120;var s=this;var y=Utilities.ie;var T=false;var V=new Array();var A={};var Q=null;var E=null;var Y=null;var ae=true;var j=null;var R=null;var aa=null;var w=[];var n=null;var aj=null;var Z=null;var ac=8;var t;var d;var p;var o;var ai=2;var M=false;var k=new PixelPoint(0,0);var J=0;var I=0;var b=0;var f=0;var P=0;var N=0;var r="px";var B=0;var z=0;var S=false;this.initialize= function(){this.frame=document.createElement("div");this.frame.id="MapOverviewFrame";this.frame.className="decarta-mapOverviewController-frame";deCarta.IdManager.setTag(this.frame,"ignoreForMapEvents");this.frame.onmousedown= function(am){if(!GLOBALS.ALLOWDOMEVENTS){return true}am=am?am:window.event;am.stoppropagation?am.stoppropagation():am.cancelBubble=true;return false};af();L()};this.open= function(){s.mapVisible=true;R.src="http://www.decarta.com/wp-content/themes/decarta/contactmap-old/img/map_overview_hide.png";s.frame.style.height=s.width+5+"px";s.frame.style.width=s.height+5+"px"};this.close= function(){s.mapVisible=false;R.src="http://www.decarta.com/wp-content/themes/decarta/contactmap-old/img/map_overview_show.png";s.frame.style.height="17px";s.frame.style.width="17px"};function af(){j=document.createElement("div");j.id="MapOverviewToggle";j.className="decarta-mapOverviewController-mapToggle";j.onclick= function(am){if(!GLOBALS.ALLOWDOMEVENTS){return true}am=am?am:window.event;am.stoppropagation?am.stoppropagation():am.cancelBubble=true;if(s.mapVisible){s.close()}else{s.open()}return true};deCarta.IdManager.setTag(j,"ignoreForMapEvents");s.frame.appendChild(j);R=document.createElement("img");R.src="http://www.decarta.com/wp-content/themes/decarta/contactmap-old/img/map_overview_show.png";R.className="decarta-mapOverviewController-mapToggleImg";j.appendChild(R);deCarta.IdManager.setTag(R,"ignoreForMapEvents")}function L(){var am=document.createElement("div");am.id="MapOverviewWrapper";am.className="decarta-mapOverviewController-mapDivWrapper";am.style.width=s.width+r;am.style.height=s.height+r;s.frame.appendChild(am);deCarta.IdManager.setTag(am,"ignoreForMapEvents");s.mapDiv=document.createElement("div");s.mapDiv.id="MapOverview";s.mapDiv.className="decarta-mapOverviewController-mapDiv";s.mapDiv.style.width=s.width+"px";s.mapDiv.style.height=s.height+"px";am.appendChild(s.mapDiv);deCarta.IdManager.setTag(s.mapDiv,"ignoreForMapEvents");aj=s.map.getTileSize();Z=aj;n=s.map.getXmlRecFac();s.mapDiv.onmousedown= function(ar){if(!GLOBALS.ALLOWDOMEVENTS){return true}ar=ar?ar:window.event;if((!y&&ar.which==3)||(y&&ar.button==2)){return true}if((!y&&ar.which==2)||(y&&ar.button==4)){return true}var aq;if(ar.target){aq=ar.target}else{if(ar.srcElement){aq=ar.srcElement}}if(aq&&aq.nodeType==3){aq=aq.parentNode}var at=new Date();var ap=true;s.mapDiv.style.cursor="move";var ao=ar.clientX;var an=ar.clientY;document.body.onmousemove= function(ax){var ay;var aw;ax=ax?ax:window.event;if(!ap){return false}var av=ax.clientX-ao;var au=ax.clientY-an;P+=av;N+=au;if(Math.abs(P)>Z||Math.abs(N)>Z){U()}J+=av;I+=au;D(J,I);ao=ax.clientX;an=ax.clientY;return false};document.body.onmouseup= function(au){ap=false;s.mapDiv.style.cursor="default";document.body.onmousemove=null;document.body.onmouseup=null;for(var av in A){if(A.hasOwnProperty(av)){A[av].showTilesInViewport()}}s.map.panToPosition(s.getCenterPosition());return false};return false}}function H(){if(Y){ak()}else{Y=document.createElement("div");Y.className="decarta-mapOverviewController-mapArrayDivWin";ak();deCarta.IdManager.setTag(Y,"ignoreForMapEvents");Q.appendChild(Y)}}function ak(){var an=Math.floor(s.map.mapDiv.offsetWidth/Math.pow(2,s.getZoomDifNow()));var am=Math.floor(s.map.mapDiv.offsetHeight/Math.pow(2,s.getZoomDifNow()));if(an>=s.width||am>=s.height){Y.style.display="none"}else{Y.style.display="block"}Y.style.width=an+"px";Y.style.height=am+"px";Y.style.left=(s.width-an)/2-J+"px";Y.style.top=(s.height-am)/2-I+"px"}function g(){var an=Math.floor(s.map.mapDiv.offsetWidth/Math.pow(2,s.getZoomDifNow()));var am=Math.floor(s.map.mapDiv.offsetHeight/Math.pow(2,s.getZoomDifNow()));if(an>=s.width||am>=s.height){E.style.display="none"}else{E.style.display=""}E.style.width=an+"px";E.style.height=am+"px";E.style.left=(s.width-an)/2+"px";E.style.top=(s.height-am)/2+"px"}function O(){if(E){g()}else{E=document.createElement("div");E.className="decarta-mapOverviewController-mapDivWin";g();deCarta.IdManager.setTag(E,"ignoreForMapEvents");s.mapDiv.appendChild(E);E.onmousedown= function(at){if(!GLOBALS.ALLOWDOMEVENTS){return true}at=at?at:window.event;at.stoppropagation?at.stoppropagation():at.cancelBubble=true;if((!y&&at.which==3)||(y&&at.button==2)){return true}if((!y&&at.which==2)||(y&&at.button==4)){return true}var aq=true;var ar=true;var ap=true;if(E.offsetWidth>=s*c){ar=false}if(E.offsetHeight>=s*h){ap=false}E.style.cursor="move";var an=at.clientX;var am=at.clientY;var ao=null;document.body.onmousemove= function(aA){aA=aA?aA:window.event;if(!aq){return false}if(!ar||!ap){return false}var aC=aA.clientX-an;var aE=0;var az=s.width-E.offsetWidth;var ax=E.offsetLeft+aC;if(ax>az){ax=az}if(ax<aE){ax=aE}E.style.left=ax+r;var aB=aA.clientY-am;var aD=0;var ay=s.height-E.offsetHeight;var aw=E.offsetTop+aB;if(aw>ay){aw=ay}if(aw<aD){aw=aD}E.style.top=aw+r;an=aA.clientX;am=aA.clientY;var av=0;var au=0;if(ax>=az){av=1}if(ax<=aE){av=-1}if(aw>=ay){au=1}if(aw<=aD){au=-1}if(av||au){m(av*(-5),au*(-5));if(ao){clearInterval(ao)}ao=setInterval(function(){if(av||au){m(av*(-5),au*(-5))}else{if(ao){clearInterval(ao)}ao=0}},300)}else{if(ao){clearInterval(ao)}ao=0}return false};document.body.onmouseup= function(aA){document.body.onmousemove=null;document.body.onmouseup=null;aq=false;E.style.cursor="default";aA=aA?aA:window.event;aA.stoppropagation?aA.stoppropagation():aA.cancelBubble=true;if(ao){clearInterval(ao)}ao=0;var au=s.getCenterPosition();var aB=s.posToMercPix(au);var aw=(s.mapDiv.offsetWidth-E.offsetWidth)/2;var az=E.offsetLeft-aw;var ax=(s.mapDiv.offsetHeight-E.offsetHeight)/2;var ay=E.offsetTop-ax;var aC=new PixelPoint(Math.round(aB.x+az),Math.round(aB.y-ay));var av=s.mercPixToPos(aC);s.map.panToPosition(av);return false};return false}}}this.sliderMapDivWin= function(am,an){E.style.left=E.offsetLeft+am+r;E.style.top=E.offsetTop+an+r};this.panMapDivWinToPos= function(ap){var ao=s.getCenterPosition();var an=this.posToMercPix(ao);var am=this.posToMercPix(ap);E.style.left=(s.width-E.offsetWidth)/2+(am.x-an.x)+r;E.style.top=(s.height-E.offsetHeight)/2-(am.y-an.y)+r};this.centerOnPosition= function(am,aq,ao){var ar=Utilities.getRequestId();if(typeof aq=="function"){w[ar]=aq}else{w[ar]=null}var ap=Utilities.getRequestId();var at=l();var an=n.createMapRequest(am,aj,ar,at,null,ao,ap);JSRequest.send(an,function(au){aa=am.clone();ac=at;al();u(au)},null,function(au){w[au]=undefined})};this.zoomMap= function(aq){if(!A[GLOBALS.STREET]&&!A[GLOBALS.SATELLITE]&&!A[GLOBALS.HYBRID]){return false}if(T){return false}if(typeof aq=="function"){w.zoomMap=aq}else{w.zoomMap=null}var ap=ac;var an=l();if(ap==an){if(w.zoomMap){w.zoomMap();w.zoomMap=undefined}H();O();return false}var ao=s.getCenterPosition();var ar=Utilities.getRequestId();T=true;var am=n.createMapRequest(ao,aj,ar,ap,an,null,Utilities.getRequestId());al();JSRequest.send(am,function(at){ac=an;ab(at)});return true};function ab(am){u(am);T=false;if(V.zoomend){V.zoomend()}if(w.zoomMap){w.zoomMap();w.zoomMap=undefined}}function al(){if(!Q){ag();return}}function ag(){Utilities.setUnselectable(s.mapDiv);Q=document.createElement("div");Q.className="decarta-mapOverviewController-mapArrayDiv";Q.id="mapOverviewTilesDiv";Q.style.top=0+"px";Q.style.left=0+"px";Utilities.setUnselectable(Q);s.mapDiv.appendChild(Q);G()}function G(){if(A[GLOBALS.SATELLITE]||A[GLOBALS.HYBRID]||A[GLOBALS.STREET]){throw new Exception("buildDefaultTileGrid called on existing tile grid")}if(n.mapType==GLOBALS.STREET){ad(GLOBALS.STREET)}else{if(n.mapType==GLOBALS.HYBRID){ad(GLOBALS.HYBRID)}else{if(n.mapType==GLOBALS.SATELLITE){ad(GLOBALS.SATELLITE)}}}}function ad(an){if(an!=GLOBALS.SATELLITE&&an!=GLOBALS.HYBRID&&an!=GLOBALS.STREET){throw new Exception("initDefaultMapLayer called with bad value: "+an)}var ao=parseInt(s.mapDiv.style.height);var am=parseInt(s.mapDiv.style.width);t=Math.ceil(ao/aj)+ai;if(t%2==0){t++}d=Math.ceil(am/aj)+ai;if(d%2==0){d++}p=-Math.floor(((d*aj)-am)/2);o=-Math.floor(((t*aj)-ao)/2);if(an==GLOBALS.SATELLITE){A[GLOBALS.SATELLITE]=new deCarta.MapLayer(d,t,p,o,aj,"decarta-satellite",11,s);A[GLOBALS.SATELLITE].show();A[GLOBALS.SATELLITE].appendTiles(Q);return}else{if(an==GLOBALS.HYBRID){if(!A[GLOBALS.SATELLITE]){A[GLOBALS.SATELLITE]=new deCarta.MapLayer(d,t,p,o,aj,"decarta-satellite",11,s);A[GLOBALS.SATELLITE].show();A[GLOBALS.SATELLITE].appendTiles(Q)}A[GLOBALS.HYBRID]=new deCarta.MapLayer(d,t,p,o,aj,"decarta-transparent",12,s);A[GLOBALS.HYBRID].show();A[GLOBALS.HYBRID].appendTiles(Q);return}else{if(an==GLOBALS.STREET){A[GLOBALS.STREET]=new deCarta.MapLayer(d,t,p,o,aj,"decarta-street",13,s);A[GLOBALS.STREET].show();A[GLOBALS.STREET].appendTiles(Q);return}}}}function u(ao){var au=ao.XLS.Response.requestID;var az,am;var aw=ao.XLS.Response.PortrayMapResponse.TileGrid[0].Pan;var ap;if(deCarta.JSONParser.parseErrors(ao)){ap=null}else{for(var aq=0;aq<aw.length;aq++){if(aw[aq].direction=="E"){k.x=parseFloat(aw[aq].numTiles)*aj;am=aw[aq].toLon}else{k.y=-parseFloat(aw[aq].numTiles)*aj;az=aw[aq].toLat}}var ax=ao.XLS.Response.PortrayMapResponse.TileGrid[0].CenterContext.CenterPoint.pos.content;var at=ao.XLS.Response.PortrayMapResponse.TileGrid[1].CenterContext.CenterPoint.pos.content;if(isNaN(az)||isNaN(am)){aa=new Position(ax)}else{aa=new Position(az,am)}var an=ao.XLS.Response.PortrayMapResponse.TileGrid[0].CenterContext.Radius.content;K((parseFloat((an))/1000)*d);var ar=0;try{ar=parseInt(ao.XLS.Response.PortrayMapResponse.TileGrid[0].GridLayer.maxImageHostAliases,10)}catch(av){}var ay=[ao.XLS.Response.PortrayMapResponse.TileGrid[0].Tile.Map.Content.URL,ao.XLS.Response.PortrayMapResponse.TileGrid[1].Tile.Map.Content.URL];C(ay,ar);ap=s.getCenterPosition()}if((au>=0)&&w[au]){w[au](ap);w[au]=undefined}H();O()}function C(am,aq){X();aq=aq||0;var ap=new deCarta.MapLayerReferenceUrl((am[1]));ap.createGlobeXplorerUrl();var an=new deCarta.MapLayerReferenceUrl((am[0]),aq);an.createDeCartaTransparentUrl();an.setParameter("config",n.transparentConfiguration);var ao=new deCarta.MapLayerReferenceUrl((am[0]),aq);ao.createDeCartaUrl();ao.setParameter("config",n.configuration);if(A[GLOBALS.SATELLITE]){A[GLOBALS.SATELLITE].populate(ap)}if(A[GLOBALS.HYBRID]){A[GLOBALS.HYBRID].populate(an)}if(A[GLOBALS.STREET]){A[GLOBALS.STREET].populate(ao)}P-=k.x;N-=k.y}function X(){b=J;f=I;var ao=parseInt(s.mapDiv.style.height);var an=parseInt(s.mapDiv.style.width);t=Math.ceil(ao/aj)+ai;if(t%2==0){t++}d=Math.ceil(an/aj)+ai;if(d%2==0){d++}p=-Math.floor(((d*aj)-an)/2);o=-Math.floor(((t*aj)-ao)/2);for(var ap in A){if(A.hasOwnProperty(ap)){A[ap].reset(-J-k.x,-I-k.y,p,o)}}var am=[];if(n.mapType==GLOBALS.STREET){am.push(A[GLOBALS.STREET])}else{if(n.mapType==GLOBALS.HYBRID){am.push(A[GLOBALS.SATELLITE]);am.push(A[GLOBALS.HYBRID])}else{if(n.mapType==GLOBALS.SATELLITE){am.push(A[GLOBALS.SATELLITE])}else{throw new Exception("Map.reset: encountered unexpected _xmlRecFac.mapType of "+n.mapType)}}}q(am);P=0;N=0}function q(am){var ap=am;var ao=ap.length;var an;for(an=0;an<ao;an++){ap[an].show()}}this.setMapType= function(an){if(!(an==GLOBALS.STREET||an==GLOBALS.HYBRID||an==GLOBALS.SATELLITE)){throw new Exception("unsupported mapType. Use '"+GLOBALS.STREET+"' || '"+GLOBALS.HYBRID+"' || '"+GLOBALS.SATELLITE+"'")}n.mapType=an;var am=false;if(!A||Utilities.isObjectEmpty(A)){return}if(an==GLOBALS.STREET){if(A[GLOBALS.HYBRID]){A[GLOBALS.HYBRID].hide()}if(A[GLOBALS.SATELLITE]){A[GLOBALS.SATELLITE].hide()}if(!A[GLOBALS.STREET]){ad(GLOBALS.STREET);am=true}else{A[GLOBALS.STREET].show()}}else{if(an==GLOBALS.HYBRID){if(A[GLOBALS.STREET]){A[GLOBALS.STREET].hide()}if(!A[GLOBALS.SATELLITE]){ad(GLOBALS.SATELLITE);am=true}else{A[GLOBALS.SATELLITE].show()}if(!A[GLOBALS.HYBRID]){ad(GLOBALS.HYBRID);am=true}else{A[GLOBALS.HYBRID].show()}}else{if(an==GLOBALS.SATELLITE){if(A[GLOBALS.HYBRID]){A[GLOBALS.HYBRID].hide()}if(A[GLOBALS.STREET]){A[GLOBALS.STREET].hide()}if(!A[GLOBALS.SATELLITE]){ad(GLOBALS.SATELLITE);am=true}else{A[GLOBALS.SATELLITE].show()}}}}if(am){}};this.panToPosition= function(au,aq){var am=au.clone();var ap=s.getCenterPosition();var at=this.posToMercPix(ap);var ao=this.posToMercPix(am);var an=new PixelPoint(Math.round(at.x-ao.x),Math.round(at.y-ao.y));if(aa&&F()){var ar=Utilities.centerContextToBoundingBox(ap,F());if(ar.extendedContains(am)){if(typeof aq=="function"){w.panToPosition=aq}else{w.panToPosition=null}if(an.x==0&&an.y==0){if(w.panToPosition){w.panToPosition(s.getCenterPosition());w.panToPosition=undefined}ak();g();return}else{m(an.x,-1*an.y);ak();g()}}else{this.centerOnPosition(am,aq)}}else{this.centerOnPosition(am,aq)}};function m(am,an){if(S){return}if(am>1){Q.style.left=parseInt(Q.style.left)+1+r}else{if(am<-1){Q.style.left=parseInt(Q.style.left)-1+r}}if(an>1){Q.style.top=parseInt(Q.style.top)+1+r}else{if(an<-1){Q.style.top=parseInt(Q.style.top)-1+r}}S=true;a(am,an,true)}function a(am,au,at){var ao=am;var an=au;var aq=Math.round(Math.abs(ao)*0.3);var ap=Math.round(Math.abs(an)*0.3);while(aq>0||ap>0){if(ao<0){ao+=aq;P-=aq;J-=aq}else{if(ao>0){ao-=aq;P+=aq;J+=aq}}if(an<0){an+=ap;N-=ap;I-=ap}else{if(an>0){an-=ap;N+=ap;I+=ap}}D(J,I);if(Math.abs(P)>Z||Math.abs(N)>Z){U()}aq=Math.round(Math.abs(ao)*0.3);ap=Math.round(Math.abs(an)*0.3)}if(V.moveend){V.moveend()}if(w.panToPosition){w.panToPosition(s.getCenterPosition());w.panToPosition=undefined}S=false;for(var ar in A){if(A.hasOwnProperty(ar)){A[ar].showTilesInViewport()}}}function U(){var am;if(P<=-Z){P=P+Z;for(am in A){if(A.hasOwnProperty(am)){A[am].rotateTiles(0,1)}}ah()}else{if(P>=Z){P=P-Z;for(am in A){if(A.hasOwnProperty(am)){A[am].rotateTiles(0,-1)}}ah()}}if(N<=-Z){N=N+Z;for(am in A){if(A.hasOwnProperty(am)){A[am].rotateTiles(-1,0)}}ah()}else{if(N>=Z){N=N-Z;for(am in A){if(A.hasOwnProperty(am)){A[am].rotateTiles(1,0)}}ah()}}}function K(am){B=am;z=B/d*t}function F(){return z}function D(am,an){Q.style.left=am+r;Q.style.top=an+r}this.getOnlyLoadTilesInViewport= function(){return M};this.getCenterPosition= function(){if(!aa){throw new Exception("Center Position not set")}var ao=J-b;var an=I-f;if(ao==0&&an==0){return aa}var am=s.posToMercPix(aa);am.x-=ao;am.y+=an;var ap=s.mercPixToPos(am);return ap};this.getZoomLevel= function(){return ac};this.posToMercPix= function(ap){var an=Utilities.radsPerPixelAtZoom(aj,21-ac);var ao=Utilities.lat2pix(ap.lat,an);var am=Utilities.lon2pix(ap.lon,an);return new PixelPoint(am,ao)};this.mercPixToPos= function(am){var ap=Utilities.radsPerPixelAtZoom(aj,21-ac);var an=Utilities.pix2lat(am.y,ap);var ao=Utilities.pix2lon(am.x,ap);return new Position(an,ao)};function ah(){}this.getZoomDifNow= function(){return ac-s.map.getZoomController().getZoomLevel()};function l(){var am=s.map.getZoomController();if(!am){return 5+s.zoomDif}var an=am.getZoomLevel()+s.zoomDif;if(an>am.upperBound){an=am.upperBound}if(an<am.lowerBound){an=am.lowerBound}return an}this.appendThis= function(){if(!this.frame){this.initialize()}var am=this.frame||null;return am};this.position= function(am){if(!this.map){return}if(this.frame){}}}function MapTypeController(){this.init()}MapTypeController.prototype.map=null;MapTypeController.prototype.type="MapTypeController";MapTypeController.prototype.frame=null;MapTypeController.prototype.cssClass="decarta-mapTypeController";MapTypeController.prototype.linkCssClass="decarta-mapTypeControllerLink";MapTypeController.prototype.streetLabel=GLOBALS.STREET;MapTypeController.prototype.hybridLabel=GLOBALS.HYBRID;MapTypeController.prototype.satelliteLabel=GLOBALS.SATELLITE;MapTypeController.prototype.init= function(){};MapTypeController.prototype.build= function(){this.frame=document.createElement("DIV");this.frame.id=this.cssClass;this.frame.className=this.cssClass;deCarta.IdManager.setTag(this.frame,"ignoreForMapEvents");var c=document.createElement("span");c.innerHTML=" | ";deCarta.IdManager.setTag(c,"ignoreForMapEvents");var a=document.createElement("span");a.innerHTML=" | ";deCarta.IdManager.setTag(a,"ignoreForMapEvents");var f=document.createElement("a");f.className=this.linkCssClass;f.innerHTML=this.streetLabel;f.href="#";f.mapType=GLOBALS.STREET;f.owner=this;f.onclick=this.handleClick;deCarta.IdManager.setTag(f,"ignoreForMapEvents");var b=document.createElement("a");b.className=this.linkCssClass;b.innerHTML=this.hybridLabel;b.href="#";b.mapType=GLOBALS.HYBRID;b.owner=this;b.onclick=this.handleClick;deCarta.IdManager.setTag(b,"ignoreForMapEvents");var d=document.createElement("a");d.className=this.linkCssClass;d.innerHTML=this.satelliteLabel;d.href="#";d.owner=this;d.mapType=GLOBALS.SATELLITE;d.onclick=this.handleClick;deCarta.IdManager.setTag(d,"ignoreForMapEvents");this.frame.appendChild(f);this.frame.appendChild(c);this.frame.appendChild(b);this.frame.appendChild(a);this.frame.appendChild(d)};MapTypeController.prototype.appendThis= function(){if(!this.frame){this.build()}return this.frame};MapTypeController.prototype.removeThis= function(){this.map=null;return this.frame};MapTypeController.prototype.position= function(a){this.frame.style.top="5px";this.frame.style.left=a.width-207+"px"};MapTypeController.prototype.handleClick= function(){if(!GLOBALS.ALLOWDOMEVENTS){return true}this.owner.map.setMapType(this.mapType);return false};deCarta.Math={};deCarta.Math.MercatorSpherical= function(){var d=null;var b=null;var h=null;var j=null;function a(l){return(l*Math.PI/180)}function k(l){return(l*180/Math.PI)}function f(m){var p=a(m);var n=Math.sin(p);var o=Math.log((1+n)/(1-n))/2;var l=k(o);return l}function c(m){var p=a(m);var n=Math.exp(2*p);var o=Math.asin((n-1)/(n+1));var l=k(o);return l}function g(){if(!d||(!b&&b!==0)||(!h&&h!==0)){return false}j=h/Math.abs(d.maxPosition.lon-d.minPosition.lon);return true}this.getBoundingBox= function(){return d};this.setBoundingBox= function(l){if(l.minPosition==undefined||l.maxPosition==undefined){throw new Exception("deCarta.Math.MercatorSpherical.setPixelHeight passed invalid boundingBox of: "+l)}else{d=l}};this.getPixelHeight= function(){return b};this.setPixelHeight= function(l){var m=parseInt(l,10);if(isNaN(m)||(m<0)){throw new Exception("deCarta.Math.MercatorSpherical.setPixelHeight passed invalid height of: "+l)}else{b=m}};this.getPixelWidth= function(){return h};this.setPixelWidth= function(m){var l=parseInt(m,10);if(isNaN(l)||(l<0)){throw new Exception("deCarta.Math.MercatorSpherical.setPixelWidth passed invalid width of: "+m)}else{h=l}};this.positionToPixels= function(o){if(!g()||!o||(!o.lat&&o.lat!=0)||(!o.lon&&o.lon!=0)){throw new Exception("deCarta.Math.MercatorSpherical.positionToPixels: need to setBoundingBox, setPixelHeight and setPixelWidth prior to calculating positionToPixels")}var m=new PixelPoint(0,0);m.x=j*(d.minPosition.lon-o.lon)*-1;var n=f(d.maxPosition.lat)-f(o.lat);var l=f(d.maxPosition.lat)-f(d.minPosition.lat);m.y=b*n/l;return m};this.pixelsToPosition= function(m){if(!g()||!m||(!m.x&&m.x!=0)||(!m.y&&m.y!=0)){throw new Exception("deCarta.Math.MercatorSpherical.positionToPixels: need to setBoundingBox, setPixelHeight and setPixelWidth prior to calculating pixelsToPositiion")}var o=new Position(0,0);o.lon=d.minPosition.lon+(m.x/j);var l=f(d.maxPosition.lat)-f(d.minPosition.lat);var n=(m.y/b)*l;o.lat=c(f(d.maxPosition.lat)-n);return o}};deCarta.Math.MercatorEllipsoidal= function(){var d=null;var b=null;var h=null;var j=null;function a(l){return(l*Math.PI/180)}function k(l){return(l*180/Math.PI)}function f(o){var n=0.081819190842;var q=a(o);var l=n*Math.sin(q);var p=Math.log(Math.pow(((1-l)/(1+l)),n/2)*Math.tan((Math.PI/4)+(q/2)));var m=k(p);return m}function c(n){var q=a(n);var p=Math.pow(Math.E,-q);var m=r();for(var o=0;o<6;o++){m=s(m)}var l=k(m);return l;function r(){return Math.PI/2-2*Math.atan(p)}function s(A){var u=0.0818191908426216;var t=u*Math.sin(A);var z=p*Math.pow((1-t)/(1+t),u/2);var w=(Math.PI/2)-(2*Math.atan(z));return w}}function g(){if(!d||(!b&&b!==0)||(!h&&h!==0)){return false}j=h/Math.abs(d.maxPosition.lon-d.minPosition.lon);return true}this.getBoundingBox= function(){return d};this.setBoundingBox= function(l){if(l.minPosition==undefined||l.maxPosition==undefined){throw new Exception("deCarta.Math.MercatorEllipsoidal.setPixelHeight passed invalid boundingBox of: "+l)}else{d=l}};this.getPixelHeight= function(){return b};this.setPixelHeight= function(l){var m=parseInt(l,10);if(isNaN(m)||(m<0)){throw new Exception("deCarta.Math.MercatorEllipsoidal.setPixelHeight passed invalid height of: "+l)}else{b=m}};this.getPixelWidth= function(){return h};this.setPixelWidth= function(m){var l=parseInt(m,10);if(isNaN(l)||(l<0)){throw new Exception("deCarta.Math.MercatorEllipsoidal.setPixelWidth passed invalid width of: "+m)}else{h=l}};this.positionToPixels= function(o){if(!g()||!o||(!o.lat&&o.lat!=0)||(!o.lon&&o.lon!=0)){throw new Exception("deCarta.Math.MercatorEllipsoidal.positionToPixels: need to setBoundingBox, setPixelHeight and setPixelWidth prior to calculating positionToPixels")}var m=new PixelPoint(0,0);m.x=j*(d.minPosition.lon-o.lon)*-1;var n=f(d.maxPosition.lat)-f(o.lat);var l=f(d.maxPosition.lat)-f(d.minPosition.lat);m.y=b*n/l;return m};this.pixelsToPosition= function(m){if(!g()||!m||(!m.x&&m.x!=0)||(!m.y&&m.y!=0)){throw new Exception("deCarta.Math.MercatorEllipsoidal.positionToPixels: need to setBoundingBox, setPixelHeight and setPixelWidth prior to calculating pixelsToPositiion")}var o=new Position(0,0);o.lon=d.minPosition.lon+(m.x/j);var l=f(d.maxPosition.lat)-f(d.minPosition.lat);var n=(m.y/b)*l;o.lat=c(f(d.maxPosition.lat)-n);return o}};deCarta.Math.greatCircleDist= function(m,l,a){if(!m||!l){throw new Exception("Utilities.greatCircleDist: must have valid coords")}var d=Math.PI*m.lat/180;var h=Math.cos(d);var j=Math.PI*m.lon/180;var c=Math.PI*l.lat/180;var g=Math.cos(c);var f=Math.PI*l.lon/180;var k=Math.abs(Math.abs(j)-Math.abs(f));var o=6372795;var b;var n=2*Math.asin(Math.sqrt(Math.pow(Math.sin(((c-d)/2)),2)+(h*g*Math.pow(Math.sin(k/2),2))));b=o*n;if(!a||a.value=="M"){return b}switch(a.value){case"KM":b/=1000;break;case"MI":b/=1609;break;case"FT":b*=3.28084;break;default:throw new Exception("Utilities.greatCircleDist: unexpected uom value of: "+a.value);break}return b};deCarta.Math.pointInPolygon= function(h,g){function o(r,t,s){if(t.lat<s.lat){if(r){return false}else{return true}}else{if(!r){return false}else{return true}}}function q(s,t,r){if(t.lon<r.lon){if(!s){return false}else{return true}}else{if(s){return false}else{return true}}}var b;var j;var a=0;var p=0;if(g.lat<h[0].lat){j=true}else{j=false}if(g.lon<h[0].lon){b=false}else{b=true}for(var m in h){var f=q(b,g,h[m]);var l=o(j,g,h[m]);if(f&&l){var c=h[m].lat-h[m-1].lat;var d=h[m].lon-h[m-1].lon;var k=c/d;c=g.lat-h[m-1].lat;d=g.lon-h[m-1].lon;var n=c/d;if((b&&!j)||(!b&&!j)){if(n>k){p++}else{a++}}if((!b&&j)||(b&&j)){if(n<k){p++}else{a++}}b=!b;j=!j}else{if(f){b=!b}if(l){j=!j;if(b){a++}else{p++}}}}if(a%2==0){return false}else{return true}};deCarta.Math.headingFromPositions= function(c,a){if(!c||(!c.lat&&c.lat!=0)||(!c.lon&&c.lon!=0)||!a||(!a.lat&&a.lat!=0)||(!a.lon&&a.lon!=0)){throw new Exception("deCarta.Math.headingFromPosition: bad arguments.")}var f=Math.PI/180;var h=c.lat*f;var d=c.lon*f;var g=a.lat*f;var b=a.lon*f;var j=Math.atan2(Math.sin(b-d)*Math.cos(g),Math.cos(h)*Math.sin(g)-Math.sin(h)*Math.cos(g)*Math.cos(b-d));return j/f};deCarta.ObjectToJSON= function(k,d,a){var f;var h="";var c="";if(typeof a==="number"){for(f=0;f<a;f+=1){c+=" "}}else{if(typeof a==="string"){c=a}}var j=d;if(d&&typeof d!=="function"&&(typeof d!=="object"||typeof d.length!=="number")){throw new Exception("Bad replacer in deCarta.ObjectToJSON")}return g("",{"":k});function b(l){var m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};var n=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;n.lastIndex=0;return n.test(l)?'"'+l.replace(n,function(o){var p=m[o];return typeof p==="string"?p:"\\u"+("0000"+o.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+l+'"'}function g(s,p){var n,m,t,l,q=h,o,r=p[s];if(r&&typeof r==="object"&&typeof r.toJSON==="function"){r=r.toJSON(s)}if(typeof j==="function"){r=j.call(p,s,r)}switch(typeof r){case"string":return b(r);case"number":return isFinite(r)?String(r):"null";case"boolean":case"null":return String(r);case"object":if(!r){return"null"}h+=c;o=[];if(Object.prototype.toString.apply(r)==="[object Array]"){l=r.length;for(n=0;n<l;n+=1){o[n]=g(n,r)||"null"}t=o.length===0?"[]":h?"[\n"+h+o.join(",\n"+h)+"\n"+q+"]":"["+o.join(",")+"]";h=q;return t}if(j&&typeof j==="object"){l=j.length;for(n=0;n<l;n+=1){m=j[n];if(typeof m==="string"){t=g(m,r);if(t){o.push(b(m)+(h?": ":":")+t)}}}}else{for(m in r){if(Object.hasOwnProperty.call(r,m)){t=g(m,r);if(t){o.push(b(m)+(h?": ":":")+t)}}}}t=o.length===0?"{}":h?"{\n"+h+o.join(",\n"+h)+"\n"+q+"}":"{"+o.join(",")+"}";h=q;return t}}};function OpenSearchQuery(){this.url=null;this.callback=null;this.params=null}OpenSearchQuery.prototype.setCallback= function(a){this.callback=a};OpenSearchQuery.prototype.setURL= function(a){this.url=a};OpenSearchQuery.prototype.setParams= function(b){this.params="?";for(var a in b){if(b.hasOwnProperty(a)){this.params+=a+"="+b[a]+"&"}}};OpenSearchQuery.prototype.send= function(){var b=this;if(!Utilities.ie){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesWrite UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead")}catch(c){}}var a=new XMLHttpRequest();a.open("POST",this.url+this.params,true);a.onreadystatechange= function(){if(a.readyState==4){b.callback(a.responseText)}};a.send(null)};function POI(d,a,b,c,f){this.name=d;this.position=a;this.address=b;this.phoneNumber=c;this.distance=null;this.properties=f||{};this.toString= function(){return this.name+" "+this.position+" "+this.address+" "+this.phoneNumber}}function POIQuery(){this.xmlRecFac=new deCarta.XMLStringBuilder();var b=[];var a=this;this.authenticate= function(d,c){if(!d||!c||d==""||c==""){throw new Exception("Error authenticating POIQuery, invalid parameters.");return false}Credentials.clientName=d;Credentials.clientPassword=c;this.xmlRecFac.clientName=d;this.xmlRecFac.clientPassword=c};this.query= function(f,h,c){var g=Utilities.getRequestId();if(typeof h=="function"){b[g]=h}else{throw new Exception("POIQuery.query: callBack must be a function, arg was: "+h)}var d=this.xmlRecFac.createPOIRequest(f,g);JSRequest.send(d,a.queryCallback,null,c)};this.fullDetailsQuery= function(h,g,c){var f=Utilities.getRequestId();if(typeof g=="function"){b[f]=g}else{throw new Exception("POIQuery.fullDetailsQuery: callBack must be a function, arg was: "+g)}var d=this.xmlRecFac.createFullDetailsPOIRequest(h,f);JSRequest.send(d,a.fullDetailsQueryCallback,null,c)};this.queryCallback= function(h){var j=false;var d;var f=[];var g;if(deCarta.JSONParser.parseErrors(h)){g=h.XLS.Response.requestID}else{if(deCarta.Array.isArray(h.XLS.Response)){g=h.XLS.Response[0].requestID;j=true;for(d=0;d<h.XLS.Response.length;d++){f.push([]);c(h.XLS.Response[d].DirectoryResponse.POIContext)}}else{g=h.XLS.Response.requestID;c(h.XLS.Response.DirectoryResponse.POIContext)}}if((g>=0)&&b[g]){b[g](f);b[g]=undefined}function c(n){var l;if(!n){return}else{if(n.length==undefined){l=[];l.push(n)}else{l=n}}for(var k=0;k<l.length;k++){var m=deCarta.JSONParser.parsePOI(l[k]);if(j){f[d].push(m)}else{f.push(m)}}}};this.fullDetailsQueryCallback= function(d){var c=d.XLS.Response.requestID;if((c>=0)&&b[c]){b[c]((d.XLS.Response.DirectoryResponse.POIContext.POI));b[c]=undefined}}}function PanController(){this.init()}PanController.prototype.map=null;PanController.prototype.type="PanController";PanController.prototype.frame=null;PanController.prototype.cssClass="decarta-panController";PanController.prototype.init= function(){};PanController.prototype.build= function(){this.frame=document.createElement("DIV");this.frame.id=this.cssClass;this.frame.className=this.cssClass;var h=document.createElement("img");h.className="decarta-panController-north";h.src=Credentials.imgPath+"z2t_pan_north.png";h.onclick=this.map.panNorth;var b=document.createElement("img");b.className="decarta-panController-south";b.src=Credentials.imgPath+"z2t_pan_south.png";b.onclick=this.map.panSouth;var d=document.createElement("img");d.className="decarta-panController-east";d.src=Credentials.imgPath+"z2t_pan_east.png";d.onclick=this.map.panEast;var a=document.createElement("img");a.className="decarta-panController-west";a.src=Credentials.imgPath+"z2t_pan_west.png";a.onclick=this.map.panWest;var g=document.createElement("img");g.className="decarta-panController-center";g.src=Credentials.imgPath+"z2t_pan_center_gray.png";var f=this;g.onclick= function(){if(g.src.indexOf("loading-ball.gif")>-1){return}g.src=Credentials.imgPath+"loading-ball.gif";var j= function(m){m=m.coords||m;var n=new Position(m.latitude+" "+m.longitude);return n};var c= function(m){g.src=Credentials.imgPath+"z2t_pan_center_gray.png";f.map.panToPosition(j(m))};var k= function(){g.src=Credentials.imgPath+"z2t_pan_center_gray.png";alert("unable to position")};if(navigator.geolocation){navigator.geolocation.getCurrentPosition(c,k)}else{if(window.google&&google.gears){var l=google.gears.factory.create("beta.geolocation");if((l)&&(l.getPermission())){l.getCurrentPosition(c,k)}}else{g.src=Credentials.imgPath+"z2t_pan_center_gray.png"}}};this.frame.appendChild(h);this.frame.appendChild(b);this.frame.appendChild(d);this.frame.appendChild(a);this.frame.appendChild(g)};PanController.prototype.appendThis= function(){if(!this.frame){this.build()}return this.frame};PanController.prototype.removeThis= function(){this.map=null;return this.frame};PanController.prototype.position= function(a){};function Pin(f,k,w,y){if(!f){throw new Exception("Error instantiating Pin, must at least provide a Position.");return false}var p=this;var l=new Array();var z=170;var D=null;var B=null;var u=false;var h=false;var m=null;var g=null;var j=null;this.type="pin";this.position=null;if(f&&f.clone){this.position=f.clone()}this.icon=y||new Icon(Credentials.pinIconPath,12,12,24,24);this.map=null;this.isVisible=true;this.id="";this.pinImg=null;this.pinImg=document.createElement("img");var d="decarta-pin";this.pinImg.className=d;this.pinImg.style.position="absolute";this.pinImg.id=f.toString();this.pinImg.src=this.icon.src;this.pinImg.style.width=parseInt(this.icon.width)+"px";this.pinImg.style.height=parseInt(this.icon.height)+"px";Pin.zIndexCounter++;this.pinImg.style.zIndex=Pin.zIndexCounter;this.pinImg.style.cursor="pointer";this.pinImg.style.display="block";this.pinImg.msg=k||"";if(Utilities.ie6&&this.pinImg.src.match(new RegExp("\\bpng\\b","g"))){Utilities.fixPng(this.pinImg)}deCarta.IdManager.setTag(this.pinImg,"ignoreForMapEvents");this.poi=null;this.hoverIconOn=null;this.hoverIconOff=null;this.pinTxt=null;this.pinTxt=document.createElement("DIV");this.pinTxt.id="decarta-textoverlay";this.pinTxt.innerHTML=this.icon.overlay.text;this.pinTxt.className=this.icon.overlay.className;this.pinTxt.style.position="absolute";this.pinTxt.style.color=this.icon.overlay.color;this.pinTxt.style.fontSize=this.icon.overlay.size;this.pinTxt.style.fontFamily=this.icon.overlay.fontFamily;if(this.icon.overlay.text==""){this.pinTxt.style.display="none"}else{this.pinTxt.style.display="block"}Pin.zIndexCounter++;this.pinTxt.style.zIndex=Pin.zIndexCounter;this.pinTxt.style.cursor="pointer";deCarta.IdManager.setTag(this.pinTxt,"ignoreForMapEvents");this.animateDrop=false;this.dropSpeed=30;this.animate= function(E,F){if(E=="DROP"){this.animateDrop=true;if(F=="FAST"){this.dropSpeed=20}else{this.dropSpeed=35}}};this.animateDropPosition=300;function o(){if(p.animateDropPosition>0){p.pinImg.style.top=(parseInt(p.pinImg.style.top)+10)+"px";p.pinTxt.style.top=(parseInt(p.pinTxt.style.top)+10)+"px";p.animateDropPosition-=10;setTimeout(o,p.dropSpeed)}}this.getZIndex= function(){return(this.pinImg.style.zIndex)};this.setZIndex= function(F){var E=parseInt(F,10);if(!isNaN(E)){this.pinImg.style.zIndex=E;if(this.pinTxt){this.pinTxt.style.zIndex=E+1}}else{this.pinImg.style.zIndex=0;if(this.pinTxt){this.pinTxt.style.zIndex=1}}};this.setId= function(E){this.id=E};this.getId= function(){return this.id};this.setCursorStyle= function(E){this.pinImg.style.cursor=E;this.pinTxt.style.cursor=E};this.getCursorStyle= function(){return this.pinImg.style.cursor};this.setIcon= function(E){p.pinImg.src=E.src;if(p.icon.anchorY==E.anchorY&&p.icon.anchorX==E.anchorX&&E._previousY&&E._previousX){p.pinImg.style.top=(parseInt(p.pinImg.style.top)+E._previousY-E.anchorY)+"px";p.pinImg.style.left=(parseInt(p.pinImg.style.left)+E._previousX-E.anchorX)+"px"}else{p.pinImg.style.top=(parseInt(p.pinImg.style.top)+p.icon.anchorY-E.anchorY)+"px";p.pinImg.style.left=(parseInt(p.pinImg.style.left)+p.icon.anchorX-E.anchorX)+"px"}p.pinImg.style.width=E.width+"px";p.pinImg.style.height=E.height+"px";p.icon=E;if(E.overlay.text!=""){p.pinTxt.style.display="block";p.pinTxt.innerHTML=this.icon.overlay.text;p.pinTxt.style.position="absolute";if(E.overlay.className){p.pinTxt.style.className=E.overlay.className}if(E.overlay.color){p.pinTxt.style.color=E.overlay.color}if(E.overlay.size){p.pinTxt.style.fontSize=E.overlay.size}if(E.overlay.fontFamily){p.pinTxt.style.fontFamily=E.overlay.fontFamily}p.pinTxt.style.left=(parseInt(p.pinImg.style.left)+parseInt(p.icon.overlay.anchorX))+"px";p.pinTxt.style.top=(parseInt(p.pinImg.style.top)+parseInt(p.icon.overlay.anchorY))+"px"}else{p.pinTxt.innerHTML="";p.pinTxt.style.display="none"}if(Utilities.ie6&&this.pinImg.src.match(new RegExp("\\bpng\\b","g"))){var F=this.pinImg.src;this.pinImg.src=Credentials.transparentGIF;this.pinImg.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+F+"',sizingMethod='scale')"}};this.getIcon= function(){return p.icon};this.setX= function(E){var F=E-p.icon.anchorX;if(p.pinImg.offsetLeft==F){return false}p.pinImg.style.left=F+"px";if(p.pinTxt){p.pinTxt.style.left=(F+p.icon.overlay.anchorX)+"px"}return true};this.setY= function(F){if(p.animateDrop){p.pinImg.style.top=(F-p.icon.anchorY-p.animateDropPosition)+"px";if(p.pinTxt){p.pinTxt.style.top=(F-p.icon.anchorY+p.icon.overlay.anchorY-p.animateDropPosition)+"px"}}else{var E=F-p.icon.anchorY;if(p.pinImg.offsetTop==E){return false}p.pinImg.style.top=(E)+"px";if(p.pinTxt){p.pinTxt.style.top=(E+p.icon.overlay.anchorY)+"px"}}if(p.animateDrop){o()}return true};this.getPosition= function(){return p.position};this.setPosition= function(H){if(p.map!=null){var G=p.map.positionToMapLayerPixel(H);var F=p.setX(G.x);var E=p.setY(G.y)}p.position=H;return((F||E)?true:false)};this.setMessage= function(E){p.pinImg.msg=E;if(p.map&&p.pinImg&&p.map.getInfoWindow()&&(p==p.map.getInfoWindow().associatedPin)){p.map.getInfoWindow().setContent(E)}};this.getMessage= function(){return p.pinImg.msg};this.hide= function(){p.isVisible=false;p.pinImg.style.display="none";p.pinTxt.style.display="none"};this.show= function(){p.isVisible=true;p.pinImg.style.display="block";if(p.pinTxt.innerHTML!=""){p.pinTxt.style.display="block"}};this.zoomHide= function(){if(p.isVisible){p.pinImg.style.display="none";p.pinTxt.style.display="none"}};this.zoomShow= function(){if(p.isVisible){p.pinImg.style.display="block";if(p.pinTxt.innerHTML!=""){p.pinTxt.style.display="block"}}};this.showInfoWindow= function(){p.map.getInfoWindow().setPosition(parseInt(p.pinImg.style.left),parseInt(p.pinImg.style.top));p.map.getInfoWindow().setContent(p.pinImg.msg);p.map.getInfoWindow().show(p)};this.hideInfoWindow= function(){p.map.getInfoWindow().hide()};this.addEventListener= function(F,G){var H=false;for(var E=0;E<l.length;E++){if(l[E]==F){l[F]=G;H=true;break}}if(!H){l.push(F);l[F]=G;if(F=="click"||F=="dblclick"||F=="rightclick"){deCarta.Events.addEvent(p.pinImg,"mousedown",r);deCarta.Events.addEvent(p.pinImg,"mouseup",s);deCarta.Events.addEvent(p.pinTxt,"mousedown",r);deCarta.Events.addEvent(p.pinTxt,"mouseup",s)}else{if(F=="mouseover"){deCarta.Events.addEvent(p.pinImg,"mouseover",C);deCarta.Events.addEvent(p.pinTxt,"mouseover",C)}else{if(F=="mouseout"){deCarta.Events.addEvent(p.pinImg,"mouseout",A);deCarta.Events.addEvent(p.pinTxt,"mouseout",A)}}}}};this.clearInstanceListeners= function(){for(var E=0;E<l.length;E++){l[l[E]]=null;l[E]=null}};this.clearListeners= function(F){for(var E=0;E<l.length;E++){if(l[E]==F){l[l[E]]=null}}l[E]=null};function r(E){if(!GLOBALS.ALLOWDOMEVENTS){return true}if(E.button==2||E.which==3){u=true;return false}if(l.mousedown){l.mousedown(p)}return false}function s(E){if(!GLOBALS.ALLOWDOMEVENTS){return true}if(u){t();return false}if(l.mouseup){l.mouseup(p)}if(!D){B=setTimeout(q,z);D=new Date()}else{clearTimeout(B);n()}return false}function q(){c();if(l.click){l.click(p)}}function n(){c();if(l.dblclick){l.dblclick(p)}}function t(){c();if(l.rightclick){l.rightclick(p)}}this.pickup= function(){if(!h){deCarta.Events.addEvent(window.document,"mousemove",a)}};this.drop= function(){if(h){b()}};function a(U){var L=U.clientX;var K=U.clientY;var X=p.pinImg;var J=parseInt(X.style.top,10);var F=parseInt(X.style.left,10);var P=p.pinTxt;var M=parseInt(P.style.top,10);var I=parseInt(P.style.left,10);var V=p.map;var H=0;var G=0;var N=0;var E=0;if(!h){h=true;m=new PixelPoint(L,K);g=new PixelPoint(F,J);j=new PixelPoint(I,M)}var Q=K-Utilities.getAbsoluteTop(V.mapDiv)+Utilities.getScrollTop();var R=L-Utilities.getAbsoluteLeft(V.mapDiv)+Utilities.getScrollLeft();var O=J+parseInt(V.getTileDiv().style.top,10);var S=O+X.clientHeight/2;var W=F+parseInt(V.getTileDiv().style.left,10);var T=W+X.clientWidth/2;if(S!=Q){G=Q-S}N=J+G;X.style.top=N+"px";P.style.top=(M+G)+"px";if(T!=R){H=R-T}E=F+H;X.style.left=E+"px";P.style.left=(I+H)+"px";return false}function b(H){deCarta.Events.removeEvent(window.document,"mousemove",a);var M=parseInt(p.pinImg.style.left,10)-g.x;var L=-(parseInt(p.pinImg.style.top,10)-g.y);var N=p.map.getZoomController().getGXConvertedZoomLevel();var G=Utilities.radsPerPixelAtZoom(p.map.getTileSize(),N);var K=Utilities.lon2pix(p.position.lon,G);var J=Utilities.lat2pix(p.position.lat,G);var E=Utilities.pix2lon((K+M),G);var I=Utilities.pix2lat((J+L),G);var F=new Position(I,E);p.setPosition(F);h=false;m=null;g=null;j=null;return false}function C(){if(!GLOBALS.ALLOWDOMEVENTS){return}if(l.mouseover){l.mouseover(p)}}function A(){if(!GLOBALS.ALLOWDOMEVENTS){return}if(l.mouseout){l.mouseout(p)}}function c(){D=null;B=null;u=false}if(w&&(w=="onmouseover"||w=="mouseover")){p.addEventListener("mouseover",p.showInfoWindow);p.addEventListener("mouseout",p.hideInfoWindow)}else{if(w&&(w=="onclick"||w=="click")){p.addEventListener("click",p.showInfoWindow)}}this.destroy= function(){if(p&&p.map){if(p.pinImg){p.pinImg=p.map.getTileDiv().removeChild(p.pinImg);if(p.pinImg){Utilities.purge(p.pinImg)}p.pinImg=null}if(p.pinTxt){p.pinTxt=p.map.getTileDiv().removeChild(p.pinTxt);if(p.pinTxt){Utilities.purge(p.pinTxt)}p.pinTxt=null}}p=null};this.toString= function(){return p.position.toString()};this.equals= function(E){if(E&&E.toString()==this.toString()&&E.pinImg==this.pinImg){return true}else{return false}};this.getViewableBoundingBox= function(I){var M=Utilities.lat2pix(p.position.lat,I);var F=Utilities.lon2pix(p.position.lon,I);var L=M+p.icon.anchorY;var R=F+parseInt(p.pinImg.style.width)-p.icon.anchorX;var Q=M-parseInt(p.pinImg.style.height)+p.icon.anchorY;var J=F-p.icon.anchorX;var N=Utilities.pix2lat(L,I);var E=Utilities.pix2lon(R,I);var O=Utilities.pix2lat(Q,I);var G=Utilities.pix2lon(J,I);var K=new Position(N,E);var H=new Position(O,G);var P=new BoundingBox(H,K);return P}}Pin.zIndexCounter=100;function PixelPoint(a,c){try{this.x=parseFloat(a);this.y=parseFloat(c);if(isNaN(this.x)||isNaN(this.y)){throw new Exception("")}}catch(b){throw new Exception("PixelPoint: bad constructor values for x: "+a+" and y: "+c)}}PixelPoint.prototype.getX= function(){return this.x};PixelPoint.prototype.roundX= function(){return Math.round(this.x)};PixelPoint.prototype.setX= function(a){this.x=parseFloat(a);if(isNaN(this.x)){throw new Exception("PixelPoint: setX bad argument x: "+a)}};PixelPoint.prototype.getY= function(){return this.y};PixelPoint.prototype.roundY= function(){return Math.round(this.y)};PixelPoint.prototype.setY= function(a){this.y=parseFloat(a);if(isNaN(this.y)){throw new Exception("PixelPoint: setY bad argument y: "+a)}};PixelPoint.prototype.toString= function(){return this.x+" "+this.y};PixelPoint.prototype.equals= function(a){if(a&&a.toString()==this.toString()){return true}else{return false}};function Position(f,b){this.lat=0;this.lon=0;if(arguments.length==1){var d=f.split(" ");if(d.length!=2){throw new Exception("error initializing Position object")}try{this.lat=parseFloat(d[0]);this.lon=parseFloat(d[1]);if(isNaN(this.lat)||isNaN(this.lon)){throw new Exception()}}catch(c){throw new Exception("error initializing Position object")}}else{if(arguments.length==2){try{this.lat=parseFloat(f);this.lon=parseFloat(b);if(isNaN(this.lat)||isNaN(this.lon)){throw new Exception()}}catch(c){throw new Exception("error initializing Position object")}}else{throw new Exception("error initializing Position object")}}if(this.lat>90){this.lat=89.5}if(this.lat<-90){this.lat=-89.5}if(this.lon>180||this.lon<-180){var a=this.lon%360;if(a<=-180){a=(360+a)}else{if(a>=180){a=-(360-a)}}this.lon=a}this.customProperties={}}Position.prototype.clone= function(){return new Position(this.toString())};Position.prototype.getLat= function(){return this.lat};Position.prototype.getLon= function(){return this.lon};Position.prototype.setLat= function(a){this.lat=a};Position.prototype.setLon= function(a){this.lon=a};Position.prototype.getLatLon= function(){return this.lat+" "+this.lon};Position.prototype.getLatCommaLon= function(){return this.lat+", "+this.lon};Position.prototype.equals= function(a){if(a&&a.getLatLon()==this.getLatLon()){return true}else{return false}};Position.prototype.toString= function(){return this.lat+" "+this.lon};function Radius(c,b){this.distance=c;this.uom=b||new UOM("KM");var a;if(b=="KM"){a="K"}else{if(b=="M"){a="M"}else{if(b=="MI"){a="R"}else{if(b=="FT"){a="F"}}}}this.uomdds=a;this.toString= function(){return this.distance+" "+this.uom};this.getDegrees= function(){if(this.uom=="KM"){return this.distance/111.111}else{if(this.uom=="M"){return(this.distance/1000)/111.111}else{if(this.uom=="MI"){return(this.distance*1.609)/111.111}else{if(this.uom=="FT"){return((this.distance/3.28)/1000)/111.111}}}}}}function Route(){this.alternates=[];this.TotalTime="";this.TotalTimeObject={};this.TotalDistance="";this.viaPointSequence="";this.RouteInstructions=[];this.RouteGeometry=[];this.routeID="";this.boundingBox=null;this.centerPosition=null;this.uom=null;this.id=Math.floor(Math.random()*10000000);this.title="";this.description="";this.customProperties={}}function ManeuverMap(){this.desc;this.URL;this.height;this.width;this.format;this.boundingBox}function RouteInstruction(){this.maneuverMap=undefined;this.Instruction="";this.distance="";this.duration="";this.position=null;this.tour=""}function RoutePreference(b,c,a){this.maneuverMaps=false;this.maneuverMapConfig={format:"GIF",height:200,width:200};this.routePreference=b||"Fastest";this.uom=c||new UOM("KM");this.routeQueryType=a||"RTXT";this.rules=null;this.optimized=false;this.expectedStartTime=null;this.alternateRoutes=0;this.avoidAreas=[];this.avoidList=[];this.generalizationFactor=0;this.generalizationBBox=null;this.returnRouteGeometry=true;this.returnRouteInstructions=true}RoutePreference.prototype.setOptimized= function(a){this.optimized=a};RoutePreference.prototype.getOptimized= function(){return this.optimized};RoutePreference.prototype.setRules= function(a){this.rules=a};RoutePreference.prototype.getRules= function(){return this.rules};RoutePreference.prototype.setExpectedStartTime= function(a){this.expectedStartTime=a};RoutePreference.prototype.getExpectedStartTime= function(){return this.expectedStartTime};RoutePreference.prototype.getAvoidAreas= function(){return this.avoidAreas};RoutePreference.prototype.addAvoidArea= function(a){if(!a){this.avoidAreas=[]}else{this.avoidAreas.push(a)}};RoutePreference.prototype.getAvoidList= function(){return this.avoidList};RoutePreference.prototype.setAvoidList= function(a){if(typeof a=="string"||a instanceof "String"){switch(a.toLowerCase()){case"ferry":this.avoidList.push("Ferry");return;case"toll":this.avoidList.push("Toll");return;case"tunnels":this.avoidList.push("Tunnels");return;case"bridges":this.avoidList.push("Bridges");return;default:break}}throw new Exception("RoutePreference.setAvoidList: invalid argument: feature: "+a)};RoutePreference.prototype.getGeneralizationFactor= function(){return this.generalizationFactor};RoutePreference.prototype.setGeneralizationFactor= function(a,c){try{this.generalizationBBox=Utilities.positionsToBoundingBox(a);this.generalizationFactor=Utilities.generalizationFactor(this.generalizationBBox,c)}catch(b){throw b}};function RouteQuery(){this.xmlRecFac=new deCarta.XMLStringBuilder();var b=[];var a=this;this.authenticate= function(d,c){if(!d||!c||d==""||c==""){throw new Exception("Error authenticating RouteQuery, invalid parameters.");return false}Credentials.clientName=d;Credentials.clientPassword=c;this.xmlRecFac.clientName=d;this.xmlRecFac.clientPassword=c};this.query= function(c,g,j,d){var h=Utilities.getRequestId();if(typeof j=="function"){b[h]=j}else{throw new Exception("RouteQuery.query: callBack must be a function, arg was: "+j)}var f=this.xmlRecFac.createRouteGeometryRequest(c,h,g);JSRequest.send(f,a.queryCallback,null,d)};this.queryById= function(h,g,c){var f=Utilities.getRequestId();if(typeof g=="function"){b[f]=g}else{throw new Exception("RouteQuery.queryById: callBack must be a function, arg was: "+g)}var d=this.xmlRecFac.createRouteGeometryByIdRequest(h,f);JSRequest.send(d,a.queryCallback,null,c)};this.queryCallback= function(f){var d=f.XLS.Response.requestID;var c;if(deCarta.JSONParser.parseErrors(f)){c=null}else{c=deCarta.JSONParser.parseRoutes(f)}if((d>=0)&&b[d]){b[d](c);b[d]=undefined}}}function ScaleBar(){this.init()}ScaleBar.prototype.map=null;ScaleBar.prototype.type="ScaleBar";ScaleBar.prototype.frameHeight=40;ScaleBar.prototype.frameWidth=120;ScaleBar.prototype.frame=null;ScaleBar.prototype.cssClass="decarta-scaleBar";ScaleBar.prototype.measureImperial=null;ScaleBar.prototype.measureMetric=null;ScaleBar.prototype.measureCssClass="decarta-scaleBarMeasure";ScaleBar.prototype.scaleImperial=null;ScaleBar.prototype.scaleImperialCssClass="decarta-scaleBarImperialScale";ScaleBar.prototype.scaleMetric=null;ScaleBar.prototype.scaleMetricCssClass="decarta-scaleBarMetricScale";ScaleBar.prototype.init= function(){};ScaleBar.prototype.build= function(){this.measureImperial=document.createElement("div");this.measureImperial.className=this.measureCssClass;Utilities.setUnselectable(this.measureImperial);this.scaleImperial=document.createElement("div");this.scaleImperial.className=this.scaleImperialCssClass;if(Utilities.ie6){this.scaleImperial.innerHTML="&nbsp;"}Utilities.setUnselectable(this.scaleImperial);this.measureMetric=document.createElement("div");this.measureMetric.className=this.measureCssClass;Utilities.setUnselectable(this.measureMetric);this.scaleMetric=document.createElement("div");this.scaleMetric.className=this.scaleMetricCssClass;if(Utilities.ie6){this.scaleMetric.innerHTML="&nbsp;"}Utilities.setUnselectable(this.scaleMetric);this.frame=document.createElement("div");this.frame.id=this.cssClass;this.frame.className=this.cssClass;Utilities.setUnselectable(this.frame);this.frame.appendChild(this.measureImperial);this.frame.appendChild(this.scaleImperial);this.frame.appendChild(this.scaleMetric);this.frame.appendChild(this.measureMetric)};ScaleBar.prototype.appendThis= function(){if(!this.frame){this.build()}return this.frame};ScaleBar.prototype.removeThis= function(){this.map=null;return this.frame};ScaleBar.prototype.position= function(b){if(!this.map){return}var a="px";this.frame.style.top=b.height-this.frameHeight+a;this.frame.style.left=b.width-this.frameWidth+a};ScaleBar.prototype.calculate= function(){if(!this.map||!this.map.getZoomController()){return}try{this.map.getCenterPosition()}catch(m){return}var t=this.map.getZoomController().getGXConvertedZoomLevel();var f=Utilities.radsPerPixelAtZoom(this.map.getTileSize(),t);var d=this.map.getCenterPosition();var a=Math.cos(((d.lat)*(Math.PI/180)));var b=Utilities.lon2pix(d.lon,f);var s=Utilities.pix2lon(b+1,f);var r=Utilities.pix2lon(b,f);var c=s-r;var l=parseFloat(a*111325);var g=(c*l);var o=g*3.28;var n=this.frameWidth-15;this.scaleMetric.style.width=q(g,n)+"px";this.scaleImperial.style.width=k(o,n)+"px";this.measureMetric.innerHTML=j(g,n);this.measureImperial.innerHTML=h(o,n);function k(A,p){var w=[25,50,100,200,500,1000,2000,5280,10560,26400,52800,132000,264000,396000,528000,1056000,1584000,2640000,3168000,3696000,4224000,4752000,5280000,10560000,15840000,21120000,26400000];var B=A*p;var y;var u=w.length;for(y=0;y<u;y++){if(B<=w[y]){break}}y=(y-1>0)?y-1:0;var z=w[y]/A;return z}function h(z,p){var w=[25,50,100,200,500,1000,2000,5280,10560,26400,52800,132000,264000,396000,528000,1056000,1584000,2640000,3168000,3696000,4224000,4752000,5280000,10560000,15840000,21120000,26400000];var B=["25 ft","50 ft","100 ft","200 ft","500 ft","1000 ft","2000 ft","1 mi","2 mi","5 mi","10 mi","25 mi","50 mi","75 mi","100 mi","200 mi","300 mi","500 mi","600 mi","700 mi","800 mi","900 mi","1000 mi","2000 mi","3000 mi","4000 mi","5000 mi"];var A=z*p;var y;var u=w.length;for(y=0;y<u;y++){if(A<=w[y]){break}}y=(y-1>0)?y-1:0;return B[y]}function q(u,p){var y=[10,25,50,100,200,500,1000,2000,5000,10000,25000,50000,75000,100000,200000,300000,500000,600000,700000,800000,900000,1000000,2000000,3000000,4000000,5000000];var B=u*p;var z;var w=y.length;for(z=0;z<w;z++){if(B<=y[z]){break}}z=(z-1>0)?z-1:0;var A=y[z]/u;return A}function j(u,p){var y=[10,25,50,100,200,500,1000,2000,5000,10000,25000,50000,75000,100000,200000,300000,500000,600000,700000,800000,900000,1000000,2000000,3000000,4000000,5000000];var B=["10 m","25 m","50 m","100 m","200 m","500 m","1 km","2 km","5 km","10 km","25 km","50 km","75 km","100 km","200 km","300 km","500 km","600 km","700 km","800 km","900 km","1000 km","2000 km","3000 km","4000 km","5000 km"];var A=u*p;var z;var w=y.length;for(z=0;z<w;z++){if(A<=y[z]){break}}z=(z-1>0)?z-1:0;return B[z]}};ScaleBar.prototype.getDiv= function(){return this.frame};function SearchCriteria(g,b,a,d,c,f){if(d>100){throw new Exception("SearchCriteria constructor: maximumResponses cannot exceed 100");return}this.queryString=g;this.position=null;if(b&&b.clone){this.position=b.clone()}else{throw new Exception("SearchCriteria constructor: position not valid")}this.radius=a||new Radius(0.5);this.maximumResponses=d||10;this.database=c||null;this.sortDirection="Ascending";this.sortCriteria="Distance";this.allowAggregates=false;this.retrieveAll=false;this.properties={};this.defaultUOM=f||null}function ServerMonitor(){var _callBackArray=[];var _xmlStringBuilder=new deCarta.XMLStringBuilder();this.query= function(callBack){if(!callBack||(typeof callBack!="function")){return false}var reqId=Utilities.getRequestId();_callBackArray[reqId]=callBack;var xmlRequestString=_xmlStringBuilder.createRUOKRequest(reqId);this.sendServerMonitorQueryRequest(xmlRequestString);return true};this.sendServerMonitorQueryRequest= function(xmlRequestString){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesWrite UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead")}catch(e){}var url=Credentials.url;if(url.indexOf("/openls/openls")>-1){url=url.substring(0,url.indexOf("/openls/openls"));url=url+"/openls/JSON?responseFormat=ALL"}var xmlhttp=null;try{if(XMLHttpRequest){xmlhttp=new XMLHttpRequest()}else{xmlhttp=new ActiveXObject()}}catch(e){}if(!xmlhttp){throw new Exception("ServerMonitor: I can't believe your system cannot generate an XMLHttpRequest. Oh the shame.")}xmlhttp.open("POST",url,true);xmlhttp.onreadystatechange= function(){if(xmlhttp.readyState==4){var rawResponse=eval(xmlhttp.responseText);var response={};response.status=xmlhttp.status;response.xml=rawResponse.xmlResponse;response.json=rawResponse.response;if(_callBackArray[response.json.XLS.Response.requestID]){_callBackArray[response.json.XLS.Response.requestID](response)}}};xmlhttp.send(xmlRequestString)}}function ShapeDrawingTool(p){this.map=null;this.frame=null;this.type="ShapeDrawingTool";this.domView=true;var j=p||a;var d=this;var m=null;var g=null;var u=null;var h=null;var z=[];var f=Utilities.ie;var r=null;var b=null;var l=null;this.initialize= function(){if(!this.domView){return}this.frame=document.createElement("DIV");this.frame.id="decarta-shapeDrawingTool";this.frame.style.cssText="position:absolute;z-index:9999;left:100px;top:10px;";deCarta.IdManager.setTag(this.frame,"ignoreForMapEvents");r=document.createElement("img");r.src=Credentials.imgPath+"draw-tool-drag-selected.png";r.style.cssText="width:31px;height:31px;position:absolute;left:0px;top:0px;";r.onclick= function(){s(true)};this.frame.appendChild(r);var E="circle";m=document.createElement("IMG");m.src=Credentials.imgPath+"draw-tool-"+E+".png";m.style.cssText="width:39px;height:31px;position:absolute;left:31px;top:0px;";m.toolName=E;m.onclick= function(G){G=G||event;G.stoppropagation?G.stoppropagation():G.cancelBubble=true;var F=G.clientX-Utilities.getAbsoluteLeft(m)+Utilities.getScrollLeft();if(F>this.offsetWidth*2/3){g.style.display="block"}else{if(F<this.offsetWidth*2/3){g.style.display="none";d.drawShape(this.toolName)}}};deCarta.IdManager.setTag(m,"ignoreForMapEvents");this.frame.appendChild(m);D();this.frame.appendChild(g)};function D(){g=document.createElement("DIV");g.className="decarta-drawingToolMenu";deCarta.IdManager.setTag(g,"ignoreForMapEvents");var G=document.createElement("DIV");G.innerHTML="Draw a circle";G.className="decarta-drawingToolMenuItemOff";G.onmouseover= function(){this.className="decarta-drawingToolMenuItemOn"};G.onmouseout= function(){this.className="decarta-drawingToolMenuItemOff"};G.onclick= function(){m.toolName="circle";d.drawShape("circle")};deCarta.IdManager.setTag(G,"ignoreForMapEvents");g.appendChild(G);var E=document.createElement("DIV");g.appendChild(E);E.className="decarta-drawingToolMenuItemOff";E.innerHTML="Draw a line";E.onmouseover= function(){this.className="decarta-drawingToolMenuItemOn"};E.onmouseout= function(){this.className="decarta-drawingToolMenuItemOff"};deCarta.IdManager.setTag(E,"ignoreForMapEvents");E.onclick= function(){m.toolName="line";d.drawShape("line")};var F=document.createElement("DIV");g.appendChild(F);F.innerHTML="Draw a polygon";F.className="decarta-drawingToolMenuItemOff";F.onmouseover= function(){this.className="decarta-drawingToolMenuItemOn"};F.onmouseout= function(){this.className="decarta-drawingToolMenuItemOff"};deCarta.IdManager.setTag(F,"ignoreForMapEvents");F.onclick= function(){m.toolName="poly";d.drawShape("poly")}}this.drawShape= function(E){if(E!="circle"&&E!="poly"&&E!="line"){throw new Exception("toolName should be circle or poly or line")}if(!l){A()}C(E)};function C(E){s(true);l=E;if(m){m.src=Credentials.imgPath+"draw-tool-"+l+"-selected.png"}if(r){r.src=Credentials.imgPath+"draw-tool-drag.png"}if(E=="circle"){u=new DDSCircle();u.setFillColor("(77.0.255)")}else{if(E=="line"){u=new DDSLine()}else{u=new DDSLine()}}u.addEventListener("onclick",y);h=new DDSLine();d.map.getTilesContainer().style.cursor="crosshair";EventRegistry.addListener(d.map,"moveend",function(){d.map.getTilesContainer().style.cursor="crosshair"});EventRegistry.addListener(d.map,"zoomend",function(){var G=z;for(var F=0;F<G.length;F++){G[F].setPosition(G[F].position)}});EventRegistry.addListener(d.map,"click",function(G){var H=new w(G);z.push(H);d.addSquarePinToMap(H);if(E=="circle"){if(!u.position){u.position=G;d.map.getTilesContainer().onmousemove=t}else{s();var F=Utilities.positions2Distance(u.position,G);u.setRadius(F);d.map.addOverlay(u);y(u)}}else{u.positions.push(G);if(u.positions.length==2){d.map.addOverlay(u)}if(u.positions.length>2){u.setPositions(u.positions)}d.map.getTilesContainer().onmousemove=t}})}function A(){b={};b.click=d.map.getEventListener("click");b.moveend=d.map.getEventListener("moveend");b.zoomend=d.map.getEventListener("zoomend")}function q(){for(var E in b){if(b[E]&&b.hasOwnProperty(E)){d.map.addEventListener(E,b[E])}else{if(b.hasOwnProperty(E)){d.map.clearListeners(E)}}}}function n(H){H=H?H:window.event;H.stoppropagation?H.stoppropagation():H.cancelBubble=true;var G=l;var I=this.squarePin;if(G=="circle"){s(true)}else{if(G=="line"){if(z.length==1){s(true)}else{var E=u.positions;if(this.squarePin==z[0]||I==z[z.length-1]){if(I==z[0]){E.push(I.position)}s();u.setPositions(E);y(u)}else{E.push(I.position);u.setPositions(E);var F=new w(I.position);z.push(F);d.addSquarePinToMap(F)}}}else{if(z.length==1){s(true)}else{E=u.positions;if(this.squarePin==z[0]||I==z[z.length-1]){s();u.type="polygon";u.setFillColor("(77.0.255)");u.setPositions(E);y(u)}else{E.push(I.position);u.setPositions(E);F=new w(I.position);z.push(F);d.addSquarePinToMap(F)}}}}}function o(){g.style.display="none"}function B(){g.style.display="none"}function t(K){K=K?K:window.event;if(!z.length){return}var F=new PixelPoint(K.clientX,K.clientY);var M=z[z.length-1].position;var E=d.map.screenPixToPos(F);var G=Utilities.radsPerPixelAtZoomLevel(d.map.getTileSize(),d.map.getZoomController().getZoomLevel());var N=E.lon-M.lon;if(N>180){N=N-360}else{if(N<-180){N=N+360}}var L=E.lat-M.lat;if(E.lat==90||E.lat==-90){return}var J=L/Math.cos(E.lat*Math.PI/180);var O=Math.atan2(J,N);var H=Math.sin(O)*G*180/Math.PI*Math.cos(E.lat*Math.PI/180);var I=Math.cos(O)*(G*180/Math.PI);if(h){d.map.removeOverlay(h)}if(Math.sqrt(N*N+J*J)<15*G*180/Math.PI){return}E=new Position(E.lat-5*H,E.lon-5*I);M=new Position(M.lat+10*H,M.lon+10*I);h=new DDSLine();h.setPositions([M,E]);d.map.addOverlay(h)}this.appendThis= function(){if(!this.frame){this.initialize()}var E=this.frame||null;return E};this.removeThis= function(){this.map=null;return this.frame};this.position= function(E){if(!this.map){return}if(this.frame){}};this.addSquarePinToMap= function(E){E.setPosition(E.position);d.map.getTileDiv().appendChild(E.frame)};this.removeSquarePinFromMap= function(E){if(!E||!E.frame){return}d.map.getTileDiv().removeChild(E.frame);E.frame=null};this.getSquarePins= function(){return z};function y(E){j(E)}function a(E){var G=E.map;var F=G.positionToMapLayerPixel(E.getPosition());G.getInfoWindow().setPosition(F.x,F.y);k(E);G.getInfoWindow().show(E)}function k(E){var G=c(E);var F=E.map;F.getInfoWindow().setContentSelectable(true);F.getInfoWindow().setContent(G)}function c(L){var E=L.map;var F=document.createElement("div");F.style.width="100%";F.style.height="100%";var G=document.createElement("div");var J=document.createElement("span");J.className="decarta-drawingToolInfoWin";J.innerHTML="Title      ";G.appendChild(J);var K=document.createElement("input");K.type="text";K.value=L?L.title:"";K.id="titleInput";K.size="20";G.appendChild(K);F.appendChild(G);var I=document.createElement("div");I.style.cssText="width:100%;height:100%;overflow:auto;";var H=document.createElement("div");H.className="decarta-drawingToolInfoWin";H.innerHTML="Description";I.appendChild(H);var O=document.createElement("textarea");O.value=L?L.description:"";I.appendChild(O);F.appendChild(I);var N=document.createElement("div");F.appendChild(N);var P=document.createElement("input");P.type="button";P.value="delete";P.onclick= function(){E.getInfoWindow().hide();E.removeOverlay(L)};N.appendChild(P);var M=document.createElement("input");M.type="button";M.value="save";M.onclick= function(){if(K.value){K.value=K.value.replace(/^\s*|\s*$/g,"")}L.setTitle((K.value)?(K.value):"");if(O.value){O.value=O.value.replace(/^\s*|\s*$/g,"")}L.setDescription((O.value)?(O.value):"");E.getInfoWindow().hide();L.customProperties.saved=true};N.appendChild(M);var Q=document.createElement("input");Q.type="button";Q.value="cancel";Q.onclick= function(){E.getInfoWindow().hide();if(L.customProperties.saved!=true){E.removeOverlay(L)}};N.appendChild(Q);return F}function w(E){this.position=E;this.frame=null;this.frame=document.createElement("DIV");this.frame.style.cssText="border:1px solid blue;background-color:white;opacity:50%;z-index:110;position:absolute;width:10px;height:10px;";this.frame.squarePin=this;this.frame.id="decarta_square_pin "+E.toString();var F=d.map.positionToMapLayerPixel(this.position);this.frame.style.left=F.x-5+"px";this.frame.style.top=F.y-5+"px";this.frame.onclick=n;this.setPosition= function(G){this.position=G;var H=d.map.positionToMapLayerPixel(this.position);this.frame.style.left=H.x-5+"px";this.frame.style.top=H.y-5+"px"};this.equals= function(G){if(this.position.equals(G.position)){return true}else{return false}}}function s(F){if(m){var G=m.src;G=G.replace(/-selected\.png$/,".png");m.src=G}if(r){r.src=Credentials.imgPath+"draw-tool-drag-selected.png"}if(g){g.style.display="none"}l=null;for(var E=0;E<z.length;E++){d.removeSquarePinFromMap(z[E])}if(h){d.map.removeOverlay(h)}d.map.getInfoWindow().hide();h=null;z=[];d.map.getTilesContainer().onmousemove=null;d.map.getTilesContainer().style.cursor="default";if(F){if(u&&u.customProperties.saved!=true){d.map.removeOverlay(u)}u=null}q()}this.getDefaultShapeClickHandler= function(){return a};this.setDomView= function(E){E=(E)?true:false;this.domView=E};this.show= function(){if(this.frame){this.frame.style.display="block"}};this.hide= function(){if(this.frame){this.frame.style.display="none"}}}deCarta.String={};deCarta.String.isString= function(a){if(typeof a==="string"||a instanceof String){return true}else{return false}};deCarta.String.trim= function(a){return a.replace(/^\s*/,"").replace(/\s*$/,"")};deCarta.String.rtrim= function(a){return a.replace(/\s*$/,"")};deCarta.String.ltrim= function(a){return a.replace(/^\s*/,"")};deCarta.String.cleanUTF8= function(b){var a=decodeURIComponent(encodeURIComponent(b));return a};deCarta.StyleManager={};deCarta.StyleManager.stylesCreated=false;deCarta.StyleManager.cssString=".decarta-close{position:absolute; width:20px; height:20px; top:2px; left:178px; display:block; cursor:pointer;}.decarta-bubbleContent{padding:16px;}.decarta-bubble{display:none; width:200px; background-color:#ffffff; filter:alpha(opacity=100); opacity:1; border: 1px solid #cccccc; position:absolute; z-index:10000; color:#000000; font-size:11px;}.decarta-copyright{background-color:#ffffff; opacity:50; filter:alpha(opacity=80); opacity:0.8; padding:1px; font-family:arial; color:#000000; font-size:11px; border:1px solid #cccccc; display:block; position:absolute; z-index:9999;}.decarta-mapTypeController{background-color:#ffffff; opacity:50; filter:alpha(opacity=80); opacity:0.8; padding:3px; font-family:Arial; color:#000000; font-size:11px; font-weight:bold; border:1px solid #cccccc; display:block; position:absolute; height:14px;width:154px; visibility:visible; z-index:9999;}.decarta-mapTypeControllerLink{text-decoration:none;}.decarta-zoomButton{padding:0; margin:0; display:block;}.decarta-zoom{cursor: pointer; width: 20px; height:278px;top: 10px; left: 10px; position: absolute; z-index: 9999;}.decarta-zoomTop{margin:0px;padding:0px;position:absolute;left:0px;width:20px;top:0px;height:20px;}.decarta-zoomPillar{margin:0px;padding:0px;position:absolute;left:0px;width:20px;top:20px;height:170px;}.decarta-zoomBottom{margin:0px;padding:0px;position:absolute;left:0px;width:20px;top:190px;height:20px;}.decarta-zoomSlider{maring:0px;padding:0px;position:absolute;left:0px;width:20px;height:10px;}.decarta-drawingToolMenu{position:absolute;left:31px;top:31px;width:120px;background-color:white;display:none;}.decarta-drawingToolMenuItemOn{padding:3px;background-color:#bbb;color:#000;font-size:11px;font-family:arial}.decarta-drawingToolMenuItemOff{padding:3px;background-color:#fff;color:#888;font-size:11px;font-family:arial}.decarta-drawingToolInfoWin{padding:3px;background-color:#fff;color:#888;font-size:11px;font-family:arial}.decarta-scaleBar{position:absolute; width:120px; text-align:left; z-index:9999;}.decarta-scaleBarMeasure{font-family:arial; font-size:8pt; padding:0px 0px 0px 3px; margin:0;}.decarta-scaleBarImperialScale{display:block; padding:0; margin:0; font-size:6px; height:6px; border-left:2px solid #000; border-right:2px solid #000; border-bottom:1px solid #000;}.decarta-scaleBarMetricScale{display:block; padding:0; margin:0; font-size:6px; height:6px; border-left:2px solid #000; border-right:2px solid #000; border-top:1px solid #000;}.decarta-mapviewport{position:relative; z-index:0; overflow:hidden;}.decarta-tiles{position:absolute; left:0px; top:0px; z-index:0;}.decarta-maptile{z-index:0; position:absolute; display:none;}.decarta-bbox-div{border:4px solid #999;position:absolute}.decarta-panController{z-index:100; position:absolute; top:1px; left:1px; height:60px; width:60px; padding:0px; margin:0px; }.decarta-panController-north{position:absolute; top:0px; left:20px; height:20px; width:20px; padding:0px; margin:0px; cursor: pointer;}.decarta-panController-south{position:absolute; top:40px; left:20px; height:20px; width:20px; padding:0px; margin:0px; cursor: pointer;}.decarta-panController-east{position:absolute; top:20px; left:40px; height:20px; width:20px; padding:0px; margin:0px; cursor: pointer;}.decarta-panController-west{position:absolute; top:20px; left:0px; height:20px; width:20px; padding:0px; margin:0px;cursor: pointer; }.decarta-panController-center{position:absolute; top:20px; left:20px; height:20px; width:20px; padding:0px; margin:0px;cursor: pointer; }.decarta-mapOverviewController-mapArrayDivWin{position:absolute;border: 1px solid blue;background-color: rgb(102, 102, 204); opacity: 0.4;-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=40)';filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);z-index:10020;}.decarta-mapOverviewController-mapDivWin{position:absolute;border: 1px solid blue;background-color: rgb(102, 102, 204); opacity: 0.4;-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=40)';filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);z-index:10021;}.decarta-mapOverviewController-mapDiv{position:absolute;left:0px;top:0px;overflow:hidden;}.decarta-mapOverviewController-frame{position:absolute;right:0px;bottom:0px;width:17px;height:17px;z-index:10010;background-color:gray;}.decarta-mapOverviewController-mapToggle{position: absolute; right: 0px; bottom: 0px; width: 17px; height: 17px;z-index:10020;}.decarta-mapOverviewController-mapToggleImg{position:absolute;left:0px;top:0px;width:17px;height:17px;}.decarta-mapOverviewController-mapDivWrapper{position:absolute;left:5px;top:5px;overflow:hidden;}.decarta-mapOverviewController-mapArrayDiv{position:absolute; left:0px; top:0px;}";deCarta.StyleManager.init= function(){if(deCarta.StyleManager.stylesCreated){return}if(document.styleSheets[0]&&document.styleSheets[0].cssText){document.styleSheets[0].cssText+=deCarta.StyleManager.cssString}else{var a=document.createElement("style");a.appendChild(document.createTextNode(deCarta.StyleManager.cssString));document.getElementsByTagName("head")[0].appendChild(a)}deCarta.StyleManager.stylesCreated=true};deCarta.StyleManager.getCurrentStyle= function(b,a){var c=b.style[d(a)];if(!c){if(document.defaultView){c=document.defaultView.getComputedStyle(b,"").getPropertyValue(a)}else{if(b.currentStyle){c=b.currentStyle[d(a)]}}}return c;function d(f){for(var g=/-([a-z])/;g.test(f);f=f.replace(g,RegExp.$1.toUpperCase())){}return f}};function TextOverlay(g,b,h,c,d,a,f){this.text=g||"";this.anchorX=b||0;this.anchorY=h||0;this.color=c||null;this.size=d||null;this.fontFamily=a||null;this.className=f||null;this.toString= function(){return this.text+" "+this.anchorX+" "+this.anchorY+" "+this.size+" "+this.fontFamily+" "+this.className}}TextOverlay.prototype.getAnchorX= function(){return this.anchorX};TextOverlay.prototype.getAnchorY= function(){return this.anchorY};TextOverlay.prototype.getText= function(){return this.text};TextOverlay.prototype.getClassName= function(){return this.className};TextOverlay.prototype.getColor= function(){return this.color};TextOverlay.prototype.getSize= function(){return this.size};TextOverlay.prototype.getFontFamily= function(){return this.fontFamily};TextOverlay.prototype.setAnchorX= function(a){this.anchorX=a};TextOverlay.prototype.setAnchorY= function(a){this.anchorY=a};TextOverlay.prototype.setText= function(a){this.text=a};TextOverlay.prototype.setClassName= function(a){this.className=a};TextOverlay.prototype.setColor= function(a){this.color=a};TextOverlay.prototype.setSize= function(a){this.size=a};TextOverlay.prototype.setFontFamily= function(a){this.fontFamily=a};function TrafficIncident(a,c,b){this.position=a;this.description=c||"";this.severity=b||"";this.toString= function(){return this.position+"  "+this.description}}function TrafficIncidentQuery(){this.xmlRecFac=new deCarta.XMLStringBuilder();var c=null;var b=[];var a=this;this.authenticate= function(f,d){if(!f||!d){throw new Exception("Error authenticating TrafficIncidentQuery, invalid parameters.")}Credentials.clientName=f;Credentials.clientPassword=d;this.xmlRecFac.clientName=f;this.xmlRecFac.clientPassword=d};this.query= function(f,h,d){var g=Utilities.getRequestId();if(typeof h=="function"){b[g]=h}else{throw new Exception("TrafficIncidentQuery.query: callBack must be a function, arg was: "+h)}c=this.xmlRecFac.createTrafficIncidentRequest(f,g);JSRequest.send(c,a.queryCallback,null,d)};this.queryCallback= function(j){var d=[];var h=j.XLS.Response.requestID;if(deCarta.JSONParser.parseErrors(j)){}else{var g=j.XLS.Response.TrafficResponse.Incident;var l=g.length;if(!l){d.push(new TrafficIncident(new Position(g.Position),g.Description,g.severity))}else{for(var f=0;f<g.length;f++){var k=g[f];d.push(new TrafficIncident(new Position(k.Position),k.Description,k.severity))}}}if((h>=0)&&b[h]){b[h](d);b[h]=undefined}}}function TrafficIncidentSearchCriteria(b,a,c,d){if(c>100){throw new Exception("maximumResponses cannot exceed 100")}this.position=b.clone();this.radius=a;this.maximumResponses=c;this.minimumSeverity=d}function UOM(a){if(a!="KM"&&a!="M"&&a!="MI"&&a!="FT"){throw new Exception("invalid UOM type,  KM M MI FT")}this.value=a;this.toString= function(){return this.value}}function Utilities(){}Utilities.regx2=new RegExp("\\s","g");Utilities.parseRequestIDFromXLS= function(b){var a=/requestID=[\'\"]([0-9]+)/;var d=a.exec(b);var c=null;if(d&&d[1]){c=d[1]}return c};Utilities.isObjectEmpty= function(c){var a=true;for(var b in c){if(c.hasOwnProperty(b)){a=false;break}}return a};Utilities.parseKML= function(k){var b=new RegExp("&","g");k=k.replace(b," ");b=new RegExp("<kml xmlns=");k=k.replace(b,"<kml xmlns:goog=");var c=[];var m=(new DOMParser()).parseFromString(k,"text/xml");m.setProperty("SelectionLanguage","XPath");m.setProperty("SelectionNamespaces","xmlns:goog='http://earth.google.com/kml/2.2' xmlns:atom='http://www.w3.org/2005/Atom'");var f=m.selectNodes("//Placemark");for(var d=0;d<f.length;d++){var a;var h;var l;for(var p=0;p<f[d].childNodes.length;p++){try{if(f[d].childNodes[p].nodeName=="name"){a=Sarissa.getText(f[d].childNodes[p])||""}if(f[d].childNodes[p].nodeName=="description"){h=Sarissa.getText(f[d].childNodes[p])||""}if(f[d].childNodes[p].nodeName=="Point"){var o=Utilities.parseKMLCoords(f[d].childNodes[p].childNodes);l=new KMLGeometry("Point",o[0])}if(f[d].childNodes[p].nodeName=="Polygon"){var n=Utilities.parseKMLCoords(f[d].childNodes[p].childNodes);l=new KMLGeometry("Polygon",n)}if(f[d].childNodes[p].nodeName=="LineString"){var q=Utilities.parseKMLCoords(f[d].childNodes[p].childNodes);l=new KMLGeometry("LineString",q)}if(f[d].childNodes[p].nodeName=="MultiGeometry"){var g=Utilities.parseKMLMultiGeometry(f[d].childNodes[p].childNodes);l=new KMLGeometry("MultiGeometry",g)}}catch(j){continue}}if(l){c.push(new KML(l,a,h));l=undefined;a="";h=""}else{}}return c};Utilities.parseKMLMultiGeometry= function(f){var a=[];for(var b=0;b<f.length;b++){var c=f[b].nodeName;var d=Utilities.parseKMLCoords(f[b].childNodes);a.push(new KMLGeometry(c,d))}return a};Utilities.parseKMLCoords= function(d){var b=[];var a;c(d);function c(m){for(var h=0;h<m.length;h++){if(m[h].nodeName=="coordinates"){var g=Sarissa.getText(m[h]);var g=g.replace(Utilities.regx2,",");var j=g.split(",");var f=0;var k,l;for(var h=0;h<j.length;h++){if(f==0){l=j[h];f++;continue}else{if(f==1){k=j[h];b.push(new Position(k,l));f++;continue}else{if(f==2){f=0;continue}}}}a=b;break}else{if(m[h].childNodes.length){c(m[h].childNodes)}}}}return a};Utilities.getElementByTagName= function(j,h,a){var c=h+":"+a;var g;if(navigator.userAgent.toLowerCase().indexOf("safari")>-1){g=j.getElementsByTagNameNS("*",a)[0];if(!g){var b=j.getElementsByTagName("*");var f=b.length;for(var d=0;d<f;d++){if(b[d].nodeName==c){g=b[d];break}}}}else{g=j.getElementsByTagName(c)[0]}return g};Utilities.px="px";Utilities.LL2VR7= function(b){var g=b[0];var h=10000000;var a=(b.length)+","+(b[0].lat*h)+","+(b[0].lon*h);for(var f=1;f<b.length;f++){var d=Math.round((b[f].lat-g.lat)*h);var c=Math.round((b[f].lon-g.lon)*h);g=b[f];a+=","+d+","+c}return a};Utilities.timer= function(){this.green=null;this.red=null;this.start= function(){this.green=new Date().getTime()};this.stop= function(){this.red=new Date().getTime();return this.red-this.green}};Utilities.ie="\v"=="v";Utilities.ie6=(document.all&&!window.opera&&(typeof document.documentElement.style.maxHeight=="undefined"))?true:false;Utilities.fixPng= function(a){var b=a.src;if(a.style.height&&a.style.width){a.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+b+"',sizingMethod='scale')"}else{a.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+b+"')"}a.src=Credentials.transparentGIF};Utilities.getScrollTop= function(){var a=0;if(document.documentElement&&document.documentElement.scrollTop){a=document.documentElement.scrollTop}else{if(document.body&&document.body.scrollTop){a=document.body.scrollTop}}return parseInt(a)};Utilities.getScrollLeft= function(){var a=0;if(document.documentElement&&document.documentElement.scrollLeft){a=document.documentElement.scrollLeft}else{if(document.body&&document.body.scrollLeft){a=document.body.scrollLeft}}return parseInt(a)};Utilities.podParse= function(b){var f=parseInt(b.substring(b.indexOf("P")+1,b.indexOf("D")));var a=parseInt(b.substring(b.indexOf("T")+1,b.indexOf("H")));var c=parseInt(b.substring(b.indexOf("H")+1,b.indexOf("M")));var d=parseInt(b.substring(b.indexOf("M")+1,b.indexOf("S")));if(f>0){return((f*24)+a)+" hours "+c+" minutes "}else{if(a>0){return a+" hours "+c+" minutes "}else{if(c>0){return c+" minutes "+d+" seconds "}else{return d+" seconds"}}}};Utilities.podParseJSON= function(b){var g=parseInt(b.substring(b.indexOf("P")+1,b.indexOf("D")));var f=parseInt(b.substring(b.indexOf("T")+1,b.indexOf("H")));var a=parseInt(b.substring(b.indexOf("H")+1,b.indexOf("M")));var c=parseInt(b.substring(b.indexOf("M")+1,b.indexOf("S")));return{days:g,hours:f,minutes:a,seconds:c}};Utilities.htmlizeXMLDom= function(c){var b=new RegExp("\\>","g");var a=new RegExp("\\<","g");var d=(Sarissa.serialize(c));d=d.replace(b,"&gt;");d=d.replace(a,"&lt;");return"<PRE>"+d+"</PRE>"};Utilities.p= function(a){};Utilities.c= function(){};Utilities.generalize= function(l,r,j,q){j=Math.round(j/2);var c=r.getZoomLevel?r.getZoomLevel():r;var d=Utilities.radsPerPixelAtZoomLevel(q,c);var k=l.length;var b=[];var p,h,n,m,a,o,g;for(var f=0;f<k;f++){if(f==0||!p.contains(l[f])){h=Utilities.lat2pix(l[f].lat,d)+j;n=Utilities.lon2pix(l[f].lon,d)+j;m=Utilities.lat2pix(l[f].lat,d)-j;a=Utilities.lon2pix(l[f].lon,d)-j;o=Utilities.pix2lat(h,d)+" "+Utilities.pix2lon(n,d);g=Utilities.pix2lat(m,d)+" "+Utilities.pix2lon(a,d);p=new BoundingBox(new Position(g),new Position(o));b.push(l[f]);continue}}return b};Utilities.grouper= function(w,b,h,k){if(!w||!b||h<=0){throw new Exception("Utilities.grouper: Invalid input posArray: "+w+" zoom: "+b+" radius: "+h)}var n=b.getZoomLevel?b.getZoomLevel():b;var t=Utilities.radsPerPixelAtZoomLevel(k,n);var l=w.length;var c,y,o,a,r,s,u;var m=[];var f=[];var d=0;var q,p;var g=[];for(q=0;q<l;q++){for(p=0;p<d;p++){if(m[p].contains(w[q])){g[p].push(w[q]);break}}if(p!=d){continue}else{y=Utilities.lat2pix(w[q].lat,t)+h;o=Utilities.lon2pix(w[q].lon,t)+h;a=Utilities.lat2pix(w[q].lat,t)-h;r=Utilities.lon2pix(w[q].lon,t)-h;s=Utilities.pix2lat(y,t)+" "+Utilities.pix2lon(o,t);u=Utilities.pix2lat(a,t)+" "+Utilities.pix2lon(r,t);c=new BoundingBox(new Position(u),new Position(s));m[d]=c;f[d]=w[q];g[d]=[];d++;continue}}for(q=0;q<d;q++){g[q].push(f[q])}return g};Utilities.groupObjByPosition= function(c,o,h,n){var g,d;var b,m;var l=[];var a="gTag";var k;var f;if(!c||!c[0].position||!o||h<=0||!n||Position.prototype[a]){throw new Exception("Utilities.groupObjByPosition: Invalid input objArray: "+c+" zoom: "+o+" radius: "+h+" tileSize: "+n)}b=c.length;for(g=0;g<b;g++){l[g]=c[g].position.clone();l[g][a]=c[g]}k=Utilities.grouper(l,o,h,n);f=[];b=k.length;for(g=0;g<b;g++){f[g]=[];m=k[g].length;for(d=0;d<m;d++){f[g][d]=k[g][d][a]}}return f};Utilities.getRequestId= function(){return Math.floor(Math.random()*10000000)};Utilities.getAbsoluteLeft= function(c){var b=c.offsetLeft;var a=c.offsetParent;while(a!=null){b+=a.offsetLeft;a=a.offsetParent}return b};Utilities.getAbsoluteTop= function(c){var b=c.offsetTop;var a=c.offsetParent;while(a!=null){b+=a.offsetTop;a=a.offsetParent}return b};Utilities.unloadMap= function(a){a.removeAllPins();Utilities.purge(a.mapDiv)};Utilities.purge= function(g){var c=g.attributes,f,b,h;if(c){b=c.length;for(f=0;f<b;f+=1){h=c[f].name;if(typeof g[h]==="function"){g[h]=null}}}c=g.childNodes;if(c){b=c.length;for(f=0;f<b;f+=1){Utilities.purge(g.childNodes[f])}}};Utilities.what= function(c){var b="";for(var a in c){b+="  "+a}alert(b)};Utilities.normalizePrefixes= function(k){var f=new RegExp("ns1:","g");var j=k.replace(f,"xls:");var d=new RegExp("ns\\d+:","g");var h=j.replace(d,"gml:");var b=new RegExp('\\sxmlns:ns\\d+="http://www.opengis.net/gml"',"g");var g=h.replace(b,"");var a=new RegExp('xmlns:ns1="http://www.opengis.net/xls"',"g");var c=g.replace(a,'xmlns:xls="http://www.opengis.net/xls" xmlns:gml="http://www.opengis.net/gml"');return c};Utilities.centerContextToBoundingBox= function(h,g){var a=g/111.111;var f=g/111.111/Math.cos(((h.lat*Math.PI)/180));var j=(h.lon-parseFloat(f));var k=(h.lon+parseFloat(f));var b=a;var c=(h.lat-parseFloat(b));var d=(h.lat+parseFloat(b));return new BoundingBox(new Position(c,j),new Position(d,k))};Utilities.centerContextToBoundingBoxViewable= function(j,b,a){var d=b/111.111;var c=a/111.111;var k=(j.lon-parseFloat(d));var l=(j.lon+parseFloat(d));var h=c*Math.cos(((j.lat*Math.PI)/180));var f=(j.lat-parseFloat(h));var g=(j.lat+parseFloat(h));return new BoundingBox(new Position(f,k),new Position(g,l))};Utilities.latLonToPixels= function(c,f,d){var b=d*((f.lon-c.minPosition.lon)/(c.maxPosition.lon-c.minPosition.lon));var a=d*((c.maxPosition.lat-f.lat)/(c.maxPosition.lat-c.minPosition.lat));return new PixelPoint(Math.round(b),Math.round(a))};Utilities.formatRadiusToString= function(a){if(typeof a=="number"||typeof a!="string"){a=a.toString()}return a.replace(new RegExp(","),".")};Utilities.pixelsToLatLon= function(n,m,j,f,a,b,p,k){try{n=j-n;m=f-m;var o=p.getLat();var h=p.getLon();var g=(k*2)/111.111;var c=g/(a*b);var d=(g/Math.cos(((o*Math.PI)/180)))/(a*b);if(m!=0){o=""+(parseFloat(o)+parseFloat(m*c))}if(n!=0){h=""+(parseFloat(h)-parseFloat(n*d))}return new Position(o,h)}catch(l){throw new Exception(l.message)}};Utilities.positionsToBoundingBoxLonSpanIndexes= function(f){if(!f||f.length<2){throw new Exception("Utilities.positionsToBoundingBox requires at least two positions")}var o=[];o=f.slice(0);d(o);var b=o.length;var a=360;var h=0;var l=b-1;for(var c=0;c<b;c++){l=(b+(c-1)%b)%b;var k=m(o[c].lon,o[l].lon);if(k<a){a=k;h=c}}l=(b+(h-1)%b)%b;var n,g;for(i=0;i<f.length;i++){if(f[i]==o[h]){n=i;break}}for(i=0;i<f.length;i++){if(f[i]==o[l]){g=i;break}}return[n,g];function m(p,j){if(p<j){return j-p}else{return j+360-p}}function d(p){var r=Math.floor((p.length-1-1)/2);for(;r>=0;r--){j(r,p.length-1)}for(r=p.length-1;r>0;r--){var q=p[0];p[0]=p[r];p[r]=q;j(0,r-1)}function j(y,s){var u=y;var w=y*2+1;var t;while(w<=s){if(w<s&&p[w].lon<p[w+1].lon){w=w+1}if(p[u].lon>p[w].lon){break}else{t=p[u];p[u]=p[w];p[w]=t;u=w;w=u*2+1}}}}};Utilities.positionsToBoundingBox= function(b){if(!b||b.length<1){throw new Exception("Utilities.positionsToBoundingBox requires at least one position")}if(b.length==1){return new BoundingBox(b[0],b[0])}var f=Utilities.positionsToBoundingBoxLonSpanIndexes(b);var a=b[f[0]].lon;var h=b[f[1]].lon;var g=90;var d=-90;for(var c=0;c<b.length;c++){if(b[c].lat<g){g=b[c].lat}if(b[c].lat>d){d=b[c].lat}}return new BoundingBox(new Position(g,a),new Position(d,h))};Utilities.pinsToBoundingBox= function(g,d){if(!d){throw new Exception("Utilities.pinsToBoundingBox requires a scale argument")}if(!g||g.length<2){throw new Exception("Utilities.pinsToBoundingBox requires at least two pins")}var n=[];for(var k=0;k<g.length;k++){n[k]=g[k].getPosition()}var b=Utilities.positionsToBoundingBoxLonSpanIndexes(n);var a=g[b[0]].getViewableBoundingBox(d);var l=a.minPosition.lon;var h=g[b[1]].getViewableBoundingBox(d);var m=h.maxPosition.lon;var f=90;var j=-90;for(k=0;k<g.length;k++){var c=g[k].getViewableBoundingBox(d);if(c.minPosition.lat<f){f=c.minPosition.lat}if(c.maxPosition.lat>j){j=c.maxPosition.lat}}return new BoundingBox(new Position(f,l),new Position(j,m))};Utilities.pixYDist= function(j,g,c,d){if(!d){d=GLOBALS.DEFAULT_MAP_TILE_SIZE}var b=c.getGXConvertedZoomLevel();var a=Utilities.radsPerPixelAtZoom(d,b);var h=Math.round(Utilities.lat2pix(j,a));var f=Math.round(Utilities.lat2pix(g,a));return Math.abs(h-f)};Utilities.pixXDist= function(g,d,c,f){if(!f){f=GLOBALS.DEFAULT_MAP_TILE_SIZE}var b=c.getGXConvertedZoomLevel();var a=Utilities.radsPerPixelAtZoom(f,b);var j=Math.round(Utilities.lon2pix(g,a));var h=Math.round(Utilities.lon2pix(d,a));return Math.abs(j-h)};Utilities.lat2pix= function(d,g){var f=(parseFloat(d)*(2*Math.PI))/360;var b=0.08181919084262157;var a=Math.sin(f);var h=b*a;var c=Math.log(((1+a)/(1-a))*Math.pow((1-h)/(1+h),b))/2;return(c/g)};Utilities.lon2pix= function(b,a){return((b/180)*Math.PI)/a};Utilities.radsPerPixelAtZoom= function(b,a){return 2*Math.PI/(b<<a)};Utilities.radsPerPixelAtZoomLevel= function(b,c){var a=Math.abs(21-c);return 2*Math.PI/(b<<a)};Utilities.deCartaToGXZoomLevel= function(b){var a=Math.abs(21-parseInt(b,10));return a};Utilities.pix2lon= function(a,b){return(a*b)*180/Math.PI};Utilities.pix2lat= function(j,g){var h=1e-7;var f=12;var b=Math.pow(Math.E,-j*g);var d=Utilities.mercatorUnproject(b);var a=Utilities.findRadPhi(d,b);var c=0;while(c<f&&Math.abs(d-a)>h){d=a;a=Utilities.findRadPhi(d,b);c++}return a*180/Math.PI};Utilities.mercatorUnproject= function(a){return(Math.PI/2)-2*Math.atan(a)};Utilities.findRadPhi= function(c,b){var a=0.08181919084262157;var d=a*Math.sin(c);return(Math.PI/2)-(2*Math.atan(b*Math.pow((1-d)/(1+d),a/2)))};Utilities.generalizationFactor= function(f,d){if(!f||!d||!f.minPosition){throw new Exception("Utilities.generalizationFactor: bad input.bbox: "+f+"zoomLevel: "+d)}var c=[0.14916746,0.298780196,0.597003797,1.19445287,2.388571783,4.777143566,9.554287132,19.10857426,38.21725985,76.43440838,152.8688168,305.7376335,611.475267,1222.950534,2445.901068,4891.802136,9783.604272,19567.20854,39134.41709,78268.83418,156537.6684,313075.3367];var b=f.minPosition.lat*Math.PI/180;var a=c[d-1];return(a*Math.cos(b))};Utilities.setUnselectable= function(a){if(a){if(typeof a.onselectstart!="undefined"){a.onselectstart= function(c){c=c||event;var b=c.target||c.srcElement;if(b=="[object Text]"&&b.parentNode){b=b.parentNode}if(!deCarta.IdManager.checkTag(b,"txtSelectable")){return false}else{return true}}}else{if(typeof a.style.MozUserSelect!="undefined"){a.style.MozUserSelect="-moz-none"}else{}}}};Utilities.setSelectable= function(a){if(a){if(typeof a.onselectstart!="undefined"){deCarta.IdManager.setTag(a,"txtSelectable")}else{if(typeof a.style.MozUserSelect!="undefined"){a.style.MozUserSelect="text"}else{}}}};Utilities.vrToPositions= function(d){if(!d){throw new Exception("vrToPositions: illegal argument: "+d)}var h=d.replace(/%[Vv][Rr]=/,"").split(",");var k=h[0]-1;var a=g(h[1]);var f=g(h[2]);var b=h.slice(3);var l=[];l.push(new Position(a,f));var c;for(c=0;c<k;c++){a+=g(b[0]);f+=g(b[1]);b=b.slice(2);var j=new Position(a,f);l.push(j)}return l;function g(r){var o;var m="";if(r.toString().charAt(0)=="-"){m="-";r=r.slice(1)}r=r.toString();var q=r.length;var p;if(q<=5&&q>0){p=["0","0","0","0","0"];var n=5;for(o=1;o<=q;o++){p[n-o]=r.charAt(q-o)}return(parseFloat(parseFloat(m+"0."+p.join("")).toFixed(5)))}else{if(q>5){p=[];for(o=0;o<q;o++){p.push(r.charAt(o));if(q-o-1==5){p.push(".")}}return(parseFloat(parseFloat(m+p.join("")).toFixed(5)))}else{throw new Exception("vrToPositions failed in vrOffsetToFloat with "+r)}}}};Utilities.vr7ToPositions= function(d){if(!d){throw new Exception("vr7ToPositions: illegal argument: "+d)}var g=d.replace(/%[Vv][Rr]7=/,"").split(",");var k=g[0]-1;var a=h(g[1]);var f=h(g[2]);var b=g.slice(3);var l=[];l.push(new Position(a,f));var c;for(c=0;c<k;c++){a+=h(b[0]);f+=h(b[1]);b=b.slice(2);var j=new Position(a,f);l.push(j)}return l;function h(r){var o;var m="";if(r.toString().charAt(0)=="-"){m="-";r=r.slice(1)}r=r.toString();var q=r.length;var p;if(q<=7&&q>0){p=["0","0","0","0","0","0","0"];var n=7;for(o=1;o<=q;o++){p[n-o]=r.charAt(q-o)}return parseFloat(parseFloat(m+"0."+p.join("")).toFixed(7))}else{if(q>7){p=[];for(o=0;o<q;o++){p.push(r.charAt(o));if(q-o-1==7){p.push(".")}}return parseFloat(parseFloat(m+p.join("")).toFixed(7))}else{throw new Exception("vrToPositions failed in vrOffsetToFloat with "+r)}}}};Utilities.positionsToVr= function(f){if(!f&&!f.length){throw new Exception("positionsToVr: cannot create empty VR string.")}var d;var c=f.length;var g=[];g.push("%VR="+c);g.push(k(f[0].lat));g.push(k(f[0].lon));var j=f[0].lat;var a=f[0].lon;for(d=1;d<c;d++){var b=f[d].lat-j;g.push(k(b));j+=b;var h=f[d].lon-a;g.push(k(h));a+=h}return g.join(",");function k(m){var l=parseFloat(parseFloat(m).toFixed(5).toString().replace(/\./,""));return l}};Utilities.positionsToVr7= function(g){if(!g&&!g.length){throw new Exception("positionsToVr7: cannot create empty VR string.")}var f;var d=g.length;var h=[];h.push("%VR7="+d);h.push(b(g[0].lat));h.push(b(g[0].lon));var k=g[0].lat;var a=g[0].lon;for(f=1;f<d;f++){var c=g[f].lat-k;h.push(b(c));k+=c;var j=g[f].lon-a;h.push(b(j));a+=j}return h.join(",");function b(m){var l=parseFloat(parseFloat(m).toFixed(7).toString().replace(/\./,""));return l}};Utilities.positions2Distance= function(g,f){var h=g.lat*Math.PI/180;var c=f.lat*Math.PI/180;var b=g.lon*Math.PI/180;var k=f.lon*Math.PI/180;var a=6366.191;var j=a*Math.acos(Math.cos(h)*Math.cos(c)*Math.cos(b-k)+Math.sin(h)*Math.sin(c));return new Radius(j,new UOM("KM"))};function WSXMLTunnel(){var a=this;this.responseFormat="XML";var b=[];this.send= function(c,f){if(!deCarta.String.isString(c)){if(!window.Sarissa&&!window.Sarissa.serialize){throw new Exception("Sarissa is required to use the WSXMLTunnel with XMLDocument Objects.")}c=Sarissa.serialize(c)}var d=Utilities.parseRequestIDFromXLS(c);if(typeof f=="function"){b[d]=f}else{throw new Exception("WSXMLTunnel.send: callBack must be a function, arg was: "+f)}JSRequest.send(c,this._callBack,this.responseFormat)};this._callBack= function(c){var d,f;if(a.responseFormat=="XML"){d=Sarissa.getDomDocument();d=(new DOMParser()).parseFromString(Utilities.normalizePrefixes(c),"text/xml");d.setProperty("SelectionLanguage","XPath");d.setProperty("SelectionNamespaces","xmlns:xls='http://www.opengis.net/xls' xmlns:gml='http://www.opengis.net/gml'");f=(d.selectSingleNode("//xls:Response/@requestID").value)}else{d=c;if(deCarta.Array.isArray(d.XLS.Response)){f=d.XLS.Response[0].requestID}else{f=d.XLS.Response.requestID}}b[f](d)}}deCarta.XMLStringBuilder= function(){this.overlays=[];this.routeIDOverlay=null;this.rendering="server";this.routeID=null;this.clientName=Credentials.clientName;this.clientPassword=Credentials.clientPassword;this.configuration=Credentials.configuration;this.transparentConfiguration=Credentials.transparentConfiguration;this.mapType=GLOBALS.STREET;this.streetImgFormat="PNG";this.hybridImgFormat="PNG"};deCarta.XMLStringBuilder.prototype.getRequestHeader= function(a,b){a=a||Utilities.getRequestId();var c="<xls:XLS version='1' xls:lang='en' xmlns:xls='http://www.opengis.net/xls'";if(Credentials.rel){c+=" rel='"+Credentials.rel+"' "}c+="xmlns:gml='http://www.opengis.net/gml'><xls:RequestHeader clientName='"+this.clientName+"' sessionID='"+a+"' clientPassword='"+this.clientPassword+"' configuration='";if(this.mapType=="STREET"){c+=this.configuration+"'"}else{c+=this.transparentConfiguration+"'"}if(b){c+=" defaultUOM='"+b+"' "}c+="/>";return c};deCarta.XMLStringBuilder.prototype.getRequestOpen= function(a,c,b){b=b||"10";c=c||Utilities.getRequestId();var d="<xls:Request maximumResponses='"+b+"' version='1.0' requestID='"+c+"' methodName='"+a+"'>";return d};deCarta.XMLStringBuilder.prototype.getHeader= function(a,c,b,d,f){var g=this.getRequestHeader(d,f);g+=this.getRequestOpen(a,c,b);return g};deCarta.XMLStringBuilder.prototype.getFooter= function(){return"</xls:Request></xls:XLS>"};deCarta.XMLStringBuilder.prototype.createRUOKRequest= function(b){var a=this.getHeader("RuokRequest",b,25,Utilities.getRequestId());a+="<xls:RUOKRequest />"+this.getFooter();return a};deCarta.XMLStringBuilder.prototype.createMapRequest= function(j,d,g,f,c,b,h){var a=this.getHeader("PortrayMapRequest",g,null,h);a+="<xls:PortrayMapRequest><xls:Output height='"+d+"' width='"+d+"' ";a+="format='"+(this.mapType=="STREET"?this.streetImgFormat:this.hybridImgFormat)+"' fixedgrid='true' useCache='true'><xls:CenterContext SRS='WGS-84'><xls:CenterPoint><gml:pos>"+j.toString()+"</gml:pos></xls:CenterPoint><xls:Radius unit='KM'>4</xls:Radius></xls:CenterContext><xls:TileGrid rows='1' columns='1'><xls:GridLayer name='deCarta'/><xls:GridLayer name='globexplorer' meta-inf='zoom=";if(!c){a+=Utilities.deCartaToGXZoomLevel(f)}else{a+=Utilities.deCartaToGXZoomLevel(c)+":"+Utilities.deCartaToGXZoomLevel(f)}a+="'/></xls:TileGrid></xls:Output>"+this.overlaysToXLSString();if(Credentials.trafficEnabled){if(b){a+="<xls:Overlay><xls:Traffic><xls:FlowReporting/></xls:Traffic></xls:Overlay>"}else{a+="<xls:Overlay><xls:Traffic><xls:FlowReporting"+(b?" time='"+b+"'":"")+"/></xls:Traffic></xls:Overlay>"}}a+="</xls:PortrayMapRequest>";a+=this.getFooter();return a};deCarta.XMLStringBuilder.prototype.createGeocodeRequest= function(a,f,d){var b=this.getHeader("GeocodeRequest",f);b+="<xls:GeocodeRequest";if(d){b+=" returnFreeForm='true'>"}else{b+=" returnFreeForm='false'>"}b+="<xls:Address countryCode='"+a.getLocale().getCountry()+"'";b+=" language='"+a.getLocale().getLanguage()+"'>";if(a.type=="FreeForm"){b+="<xls:freeFormAddress>"+a.toString()+"</xls:freeFormAddress>"}else{var c="";var g="";if(!(a.buildingNumber&&a.street)&&(a.streetNameAndNumber)){b+="<xls:StreetNameAndNumber>"+a.streetNameAndNumber+"</xls:StreetNameAndNumber>"}else{if(a.buildingNumber||a.buildingNumber==0){c="<xls:Building number='"+a.buildingNumber+"'/>"}if(a.street){g="<xls:Street>"+a.street+"</xls:Street>"}if(a.street){b+="<xls:StreetAddress>"+c+g+"</xls:StreetAddress>"}}if(a.countrySubdivision){b+="<xls:Place type='CountrySubdivision'>"+a.countrySubdivision+"</xls:Place>"}if(a.countrySecondarySubdivision){b+="<xls:Place type='CountrySecondarySubdivision'>"+a.countrySecondarySubdivision+"</xls:Place>"}if(a.countryTertiarySubdivision){b+="<xls:Place type='CountryTertiarySubdivision'>"+a.countryTertiarySubdivision+"</xls:Place>"}if(a.municipality){b+="<xls:Place type='Municipality'>"+a.municipality+"</xls:Place>"}if(a.municipalitySubdivision){b+="<xls:Place type='MunicipalitySubdivision'>"+a.municipalitySubdivision+"</xls:Place>"}if(a.postalCode){b+="<xls:PostalCode>"+a.postalCode+"</xls:PostalCode>"}}b+="</xls:Address></xls:GeocodeRequest>";b+=this.getFooter();return b};deCarta.XMLStringBuilder.prototype.createReverseGeocodeRequest= function(c,b){var a=this.getHeader("ReverseGeocodeRequest",b);a+="<xls:ReverseGeocodeRequest><xls:Position><gml:Point><gml:pos>"+c.toString()+"</gml:pos></gml:Point></xls:Position>";a+="<xls:ReverseGeocodePreference>StreetAddress</xls:ReverseGeocodePreference>";a+="</xls:ReverseGeocodeRequest>";a+=this.getFooter();return a};deCarta.XMLStringBuilder.prototype.createPOIRequest= function(c,f){var d=deCarta.Array.isArray(c);var b;var a="";if(d){a+=this.getRequestHeader(null,c.defaultUOM);for(b=0;b<c.length;b++){a+=this.getRequestOpen("DirectoryRequest",f,c[b].maximumResponses);a+=this.getDirectoryRequest(c[b]);a+="</xls:Request>"}a+="</xls:XLS>"}else{a+=this.getHeader("DirectoryRequest",f,c.maximumResponses,null,c.defaultUOM);a+=this.getDirectoryRequest(c);a+=this.getFooter()}return a};deCarta.XMLStringBuilder.prototype.createFullDetailsPOIRequest= function(c,b){var a=this.getHeader("DirectoryRequest",b,10);a+='<xls:DirectoryRequest paging="current"><xls:POI ID="'+c+'"/></xls:DirectoryRequest>';a+=this.getFooter();return a};deCarta.XMLStringBuilder.prototype.getDirectoryRequest= function(d){var c="";c+="<xls:DirectoryRequest";if(d.database!=null){c+=" database='"+d.database+"'"}if(d.sortDirection){c+=" sortDirection='"+d.sortDirection+"'"}if(d.sortCriteria){c+=" sortCriteria='"+d.sortCriteria+"'"}if(d.allowAggregates){c+=" allowAggregates='true'"}c+=">";c+="<xls:POILocation><xls:WithinDistance>";c+="<xls:POI ID='1'><gml:Point><gml:pos>"+d.position.toString()+"</gml:pos></gml:Point></xls:POI>";c+="<xls:MinimumDistance value='0' uom='KM'/><xls:MaximumDistance value='"+d.radius.distance+"' uom='"+d.radius.uom.value+"'/>";c+="</xls:WithinDistance></xls:POILocation>";c+="<xls:POIProperties>";if(!d.retrieveAll){var b=false;for(var a in d.properties){if(d.properties.hasOwnProperty(a)){b=true;c+="<xls:POIProperty value='"+d.properties[a]+"' name='"+a+"'/>"}}if(!b){c+="<xls:POIProperty value='"+d.queryString+"' name='Keyword'/>"}}c+="</xls:POIProperties></xls:DirectoryRequest>";return c};deCarta.XMLStringBuilder.prototype.createRouteGeometryRequest= function(a,g,f){var b=this.getHeader("DetermineRouteRequest",g);b+="<xls:DetermineRouteRequest distanceUnit='"+f.uom+"' routeQueryType='"+f.routeQueryType+"' provideRouteHandle='true'";if(f.alternateRoutes){b+=" numAltRoutes='"+f.alternateRoutes+"'"}b+=">";b+="<xls:RoutePlan";if(Credentials.trafficEnabled){b+=" useRealTimeTraffic='true'"}if(f.optimized){b+=" optimize='true'"}if(Credentials.trafficEnabled&&f.expectedStartTime){b+=" expectedStartTime='"+f.expectedStartTime+"'"}b+=">";b+="<xls:RoutePreference>"+f.routePreference+"</xls:RoutePreference>";b+="<xls:WayPointList>";for(var d=0;d<a.length;d++){if(d==0){b+="<xls:StartPoint><xls:Position><gml:Point><gml:pos>"+a[d].toString()+"</gml:pos></gml:Point></xls:Position></xls:StartPoint>"}else{if(d>0&&d<(a.length-1)){b+="<xls:ViaPoint><xls:Position><gml:Point><gml:pos>"+a[d].toString()+"</gml:pos></gml:Point></xls:Position></xls:ViaPoint>"}else{if(d==(a.length-1)){b+="<xls:EndPoint><xls:Position><gml:Point><gml:pos>"+a[d].toString()+"</gml:pos></gml:Point></xls:Position></xls:EndPoint>"}}}}b+="</xls:WayPointList>";if(f.avoidList.length>0||f.avoidAreas.length>0){b+="<xls:AvoidList>";for(d=0;d<f.avoidAreas.length;d++){b+=this.avoidAreasToXLSString(f.avoidAreas[d])}for(d=0;d<f.avoidList.length;d++){b+="<xls:AvoidFeature>"+f.avoidList[d].toString()+"</xls:AvoidFeature>"}b+="</xls:AvoidList>"}var c=f.logisticsPreference;if(c&&(c.preferredRoute||c.hazmat||c.vehicleParameters||c.vehicleTypes||c.preferredTurn)){b+="<xls:Logistics>";if(c.preferredRoute){b+="<xls:PreferredRoute>"+c.preferredRoute+"</xls:PreferredRoute>"}if(c.hazmat){b+="<xls:Hazmat>"+c.hazmat+"</xls:Hazmat>"}if(c.vehicleParameters){b+="<xls:VehicleParameters>"+c.vehicleParameters+"</xls:VehicleParameters>"}if(c.vehicleTypes){b+="<xls:VehicleTypes>"+c.vehicleTypes+"</xls:VehicleTypes>"}if(c.preferredTurn){b+="<xls:PreferredTurn>"+c.preferredTurn+"</xls:PreferredTurn>"}b+="</xls:Logistics>"}b+="</xls:RoutePlan>";if(f.returnRouteInstructions){b+="<xls:RouteInstructionsRequest providePoint='true'";if(f.rules){b+=" rules='"+f.rules+"'"}b+="/>"}b+="<xls:RouteGeometryRequest returnRouteIDOnly=";if(f.returnRouteGeometry){b+="'false'"}else{b+="'true'"}if(f.generalizationFactor&&f.generalizationFactor!==0&&f.generalizationBBox){b+=" resolution ='"+f.generalizationFactor+"'>";b+="<xls:BoundingBox><gml:pos>"+f.generalizationBBox.minPosition+"</gml:pos><gml:pos>"+f.generalizationBBox.maxPosition+"</gml:pos></xls:BoundingBox></xls:RouteGeometryRequest>"}else{b+="/>"}if(f.maneuverMaps){b+='<xls:RouteMapRequest><xls:Output format="'+f.maneuverMapConfig.format+'" width="'+f.maneuverMapConfig.width+'" height="'+f.maneuverMapConfig.height+'" /></xls:RouteMapRequest>'}b+="</xls:DetermineRouteRequest>";b+=this.getFooter();return b};deCarta.XMLStringBuilder.prototype.createRouteGeometryByIdRequest= function(d,c,b){var a=this.getHeader("DetermineRouteRequest",c,null,b);a+="<xls:DetermineRouteRequest routeQueryType='RMAN'><xls:RouteHandle serviceID='DetermineRouteService' routeID='"+d+"'/><xls:RouteInstructionsRequest providePoint='true'/><xls:RouteGeometryRequest/>";a+="</xls:DetermineRouteRequest>";a+=this.getFooter();return a};deCarta.XMLStringBuilder.prototype.createTrafficIncidentRequest= function(b,c){var a=this.getHeader("TrafficRequest",c,b.maxiumResponses);a+="<xls:TrafficRequest><xls:IncidentReporting minimumSeverity='"+b.minimumSeverity+"'/>";a+="<xls:CenterContext SRS='WGS-84'><xls:CenterPoint><gml:pos>"+b.position+"</gml:pos></xls:CenterPoint>";a+="<xls:Radius unit='"+b.radius.uom.value+"'>"+b.radius.distance+"</xls:Radius></xls:CenterContext>";a+="</xls:TrafficRequest>";a+=this.getFooter();return a};deCarta.XMLStringBuilder.prototype.overlaysToXLSString= function(){var g=[];if(this.routeIDOverlay){g.push("<xls:Overlay><xls:RouteID>"+this.routeIDOverlay+"</xls:RouteID></xls:Overlay>")}for(var c=0;c<this.overlays.length;c++){if(this.overlays[c].rendering=="client"||(this.rendering!="server"&&this.overlays[c].rendering!="server")){continue}if(!this.overlays[c]||(this.overlays[c]&&!this.overlays[c].isVisible)){continue}var b="";var f=this.overlays[c];b+="<xls:Overlay>";if(f.type=="line"){b+="<xls:Shape color='"+f.fillColor+"_"+f.borderColor+"' style='"+f.borderStyle+"' width='"+f.width+"_"+f.borderWidth+"'";if(f.strokeOpacity){b+=" opacity='"+f.strokeOpacity+"'"}else{b+=" opacity='"+f.opacity+"'"}}else{b+="<xls:Shape type='"+f.type+"' color='"+f.fillColor+"_"+f.borderColor+"' style='"+f.borderStyle+"' width='"+f.borderWidth+"'";if(f.strokeOpacity||f.fillOpacity){var a=f.strokeOpacity||f.opacity;var d=f.fillOpacity||f.opacity;b+=" opacity='"+d+"_"+a+"'"}else{b+=" opacity='"+f.opacity+"'"}}if(f.type=="circle"){b+=" pointspec='LL' radius='"+f.radius.uomdds+f.radius.distance+"'>"+f.position.lat+","+f.position.lon}else{f.VR7=f.VR7||Utilities.LL2VR7(f.positions);if(f.type=="line"){b+=" pointspec='VR7'>"+f.VR7}else{b+=" pointspec='VR7PG'>"+f.VR7}}b+="</xls:Shape></xls:Overlay>";g.push(b)}var h=g.join("");return h};deCarta.XMLStringBuilder.prototype.avoidAreasToXLSString= function(b){var c;var a="<xls:AOI>";if(/Line/i.test(b.name)){a+="<gml:LineString>";for(c=0;c<b.pos.length;c++){a+="<gml:pos>"+b.pos[c]+"</gml:pos>"}a+="</gml:LineString>"}else{if(/Polygon/i.test(b.name)){a+="<gml:Polygon><gml:exterior><gml:LinearRing>";for(c=0;c<b.pos.length;c++){a+="<gml:pos>"+b.pos[c]+"</gml:pos>"}a+="</gml:LinearRing></gml:exterior></gml:Polygon>"}else{if(/Rectangle/i.test(b.name)){a+="<gml:Envelope>";a+="<gml:pos>"+b.pos[0]+"</gml:pos><gml:pos>"+b.pos[1]+"</gml:pos>";a+="</gml:Envelope>"}else{if(/Circle/i.test(b.name)){a+="<gml:CircleByCenterPoint numArc='1'>";a+="<gml:pos>"+b.pos[0]+"</gml:pos>";a+="<gml:radius uom='"+b.radius.uom+"'>"+b.radius.distance+"</gml:radius>";a+="</gml:CircleByCenterPoint>"}else{throw new Exception("deCarta.XMLStringBuilder.avoidAreasToXLSString: invalid type of avoid object: "+b.name)}}}}a+="</xls:AOI>";return a};function ZoomController(q,s,a,g,b,f){this.selected=q||5;if(isNaN(parseInt(this.selected))||this.selected<0||this.selected>17){throw new Exception("Error instantiating ZoomController, invalid initial value "+q+".  The value must be between 1 and 17");return false}this.domView=true;this.zoomLevels=17;this.lowerBound=1;this.upperBound=17;this.color=s||"";this.uncheckedSrc=g||Credentials.zoomUnselectedIconPath;this.checkedSrc=a||Credentials.zoomSelectedIconPath;this.bottomCapSrc=f||Credentials.zoomOutIconPath;this.bottomCapSrc=Credentials.imgPath+"z2t_zoom_bottom_gray.png";this.topCapSrc=b||Credentials.zoomInIconPath;this.topCapSrc=Credentials.imgPath+"z2t_zoom_top_gray.png";this.pillarSrc=Credentials.imgPath+"z2t_zoom_rail_gray.png";this.sliderSrc=Credentials.imgPath+"z2t_zoom_selected_gray.png";this.zoomer=null;this.map=null;this.type="ZoomController";this.frame=null;var m=this;var d=null;var p=null;var u=null;var r=null;var l=false;var h=Utilities.ie;var j;var k;var n=true;this.setDomView= function(w){w=(w)?true:false;this.domView=w};this.initialize= function(){if(!this.domView){return false}d=document.createElement("IMG");d.id="decarta-ztop";d.src=this.topCapSrc;d.className="decarta-zoomTop";d.onclick= function(z){if(!GLOBALS.ALLOWDOMEVENTS){return true}z=z||event;z.stoppropagation?z.stoppropagation():z.cancelBubble=true;m.zoomInOneLevel();return true};deCarta.IdManager.setTag(d,"ignoreForMapEvents");u=document.createElement("DIV");u.style.backgroundImage="url("+this.pillarSrc+")";u.style.backgroundRepeat="repeat-y";u.style.backgroundPosition="center";u.id="decarta-zpillar";u.className="decarta-zoomPillar";u.onclick= function(B){if(!GLOBALS.ALLOWDOMEVENTS){return true}B=B||event;B.stoppropagation?B.stoppropagation():B.cancelBubble=true;var z=B.clientY-Utilities.getAbsoluteTop(u)+Utilities.getScrollTop();var A=parseInt(u.offsetHeight);var C=Math.round(z/A*(m.zoomLevels-1))+1;C+=(m.lowerBound-1);m.map.zoomMap(C);return true};deCarta.IdManager.setTag(u,"ignoreForMapEvents");r=document.createElement("IMG");r.src=this.sliderSrc;r.className="decarta-zoomSlider";r.id="decarta-zslider";deCarta.IdManager.setTag(r,"ignoreForMapEvents");r.onmousedown= function(z){if(!GLOBALS.ALLOWDOMEVENTS){return true}z=z?z:window.event;z.stoppropagation?z.stoppropagation():z.cancelBubble=true;if((!h&&z.which==3)||(h&&z.button==2)){return true}if((!h&&z.which==2)||(h&&z.button==4)){return true}l=true;r.style.cursor="move";document.body.onmousemove=o;document.body.onmouseup=t;return false};u.appendChild(r);p=document.createElement("IMG");p.src=this.bottomCapSrc;p.id="decarta-zbottom";p.className="decarta-zoomBottom";p.onclick= function(z){if(!GLOBALS.ALLOWDOMEVENTS){return true}z=z||event;z.stoppropagation?z.stoppropagation():z.cancelBubble=true;m.zoomOutOneLevel();return true};deCarta.IdManager.setTag(p,"ignoreForMapEvents");var y="decarta-zoom";var w=y;m.frame=document.createElement("DIV");m.frame.id=y;m.frame.className=w;m.frame.innerHTML="";if(m.color){m.frame.style.backgroundColor=m.color}deCarta.IdManager.setTag(m.frame,"ignoreForMapEvents");m.frame.appendChild(d);m.frame.appendChild(u);m.frame.appendChild(p);this.zoomer=this.frame;if(!n){this.frame.style.display="none"}c();return true};function t(y){document.body.onmousemove=null;document.body.onmouseup=null;l=false;r.style.cursor="default";y=y?y:window.event;y.stoppropagation?y.stoppropagation():y.cancelBubble=true;var w=y.clientY-Utilities.getAbsoluteTop(u)+Utilities.getScrollTop();var z=Math.round(w/u.offsetHeight*(m.zoomLevels-1))+1;z+=(m.lowerBound-1);if(z<1){z=1}if(z>17){z=17}m.map.zoomMap(z);return false}function o(A){A=A?A:window.event;if(!l){return false}var z=r.offsetHeight/2;var y=u.offsetHeight-r.offsetHeight/2;var w=A.clientY-Utilities.getAbsoluteTop(u)+Utilities.getScrollTop();if(w<=y&&w>=z){r.style.top=w-r.offsetHeight/2+"px"}return false}this.setZoomRange= function(w,y){if(w<1||y>21||w>y){throw new Exception("illegal values setZoomRange: "+w+", "+y)}if(m.selected>y){m.selected=y}if(m.selected<w){m.selected=w}m.lowerBound=w;m.upperBound=y;m.zoomLevels=y-w+1;c()};this.setZoomButtonImages= function(A,z,w,B){if(A){this.checkedSrc=A}if(z){this.uncheckedSrc=z}if(A||z){for(var y=0;y<_zoomButtons.length;y++){_zoomButtons[y].src=this.uncheckedSrc}if(m.selected){_zoomButtons[m.selected-1].src=this.checkedSrc}}if(w){this.topCapSrc=w;d.src=w}if(B){this.bottomCapSrc=B;p.src=B}};this.setColor= function(w){this.frame.style.backgroundColor=w};this.show= function(){n=true;if(this.frame){this.frame.style.display="block"}};this.hide= function(){n=false;if(this.frame){this.frame.style.display="none"}};this.getRadius= function(){return j};this.setRadius= function(A){k=A;var z=m.map.getGridSize().split(" ");var B=z[0];var w=z[1];if(B==w){j=A}else{j=(k/w)*B}};this.getRadiusX= function(){return k};this.setRadiusX= function(w){k=w};this.getMinViewableRadius= function(){var B=m.map.getGridSize().split(" ");var z=B[0]*GLOBALS.DEFAULT_MAP_TILE_SIZE;var A=B[1]*GLOBALS.DEFAULT_MAP_TILE_SIZE;var D=parseInt(m.map.mapDiv.style.width);var C=parseInt(m.map.mapDiv.style.height);var y=(D/A)*k;var w=(C/z)*j;return w<y?w:y};this.getMaxViewableRadius= function(){var B=m.map.getGridSize().split(" ");var z=B[0]*GLOBALS.DEFAULT_MAP_TILE_SIZE;var A=B[1]*GLOBALS.DEFAULT_MAP_TILE_SIZE;var D=parseInt(m.map.mapDiv.style.width);var C=parseInt(m.map.mapDiv.style.height);var y=(D/A)*k;var w=(C/z)*j;return w>y?w:y};this.getMaxRadius= function(){return k<j?j:k};this.getZoomLevel= function(){return m.selected};this.setZoomValue= function(w){this.setZoomLevel(w)};this.setZoomLevel= function(z){if(z&&z<m.lowerBound||z>m.upperBound){throw new Exception("Error calling setZoomLevel, out of range");return false}m.selected=z;if(r&&r.style){var w=parseInt(u.offsetHeight);var y=parseInt(r.offsetHeight);z=z-(m.lowerBound-1);r.style.top=(z-1/2)*w/m.zoomLevels-1/2*y+"px";u.removeChild(r);u.appendChild(r)}};this.getGXConvertedZoomLevel= function(){return Math.abs(21-m.selected)};this.zoomToNewLevel= function(w){if(w&&w<m.lowerBound||w>m.upperBound){throw new Exception("Error calling zoomToNewLevel, out of range");return false}m.map.zoomMap(w)};this.zoomInOneLevel= function(){if(m.selected<=m.lowerBound){return false}m.map.zoomMap(parseInt(m.selected)-1)};this.zoomOutOneLevel= function(){if(m.selected==m.upperBound){return false}m.map.zoomMap(parseInt(m.selected)+1)};this.getZoomLevelToFitBoundingBox= function(A){var E=parseInt(m.map.mapDiv.style.height)/2;var F=parseInt(m.map.mapDiv.style.width)/2;for(var C=20;C>0;--C){var z=Utilities.radsPerPixelAtZoom(this.map.getTileSize(),C);var H=Utilities.lat2pix(A.getCenterPosition().getLat(),z);var J=Utilities.lon2pix(A.getCenterPosition().getLon(),z);var B=Utilities.pix2lat(H+E,z);var I=Utilities.pix2lon(J+F,z);var y=Utilities.pix2lat(H-E,z);var G=Utilities.pix2lon(J-F,z);var w=new BoundingBox(new Position(y,G),new Position(B,I));if(w.contains(A.minPosition)&&w.contains(A.maxPosition)){var D=Math.abs(21-C);D=(D<m.lowerBound?m.lowerBound:D);return D;break}}};this.getZoomLevelToFitPositions= function(w){var y=Utilities.positionsToBoundingBox(w);return m.getZoomLevelToFitBoundingBox(y)};this.getZoomLevelToFitPins= function(A){var y=[];for(var z=0;z<A.length;z++){y[z]=A[z].position.clone()}var B=Utilities.positionsToBoundingBox(y);var C=m.getZoomLevelToFitBoundingBox(B);var w=Utilities.radsPerPixelAtZoom(m.map.getTileSize(),Math.abs(21-C));B=Utilities.pinsToBoundingBox(A,w);return m.getZoomLevelToFitBoundingBox(B)};this.appendThis= function(){if(!this.frame){this.initialize()}var w=this.frame||null;return w};this.removeThis= function(){this.map=null;return this.frame};this.position= function(w){if(!this.map){return}if(this.frame){if(this.map.getPanController()){this.frame.style.top="61px";this.frame.style.left="21px"}else{this.frame.style.top="10px";this.frame.style.left="10px"}this.setZoomLevel(m.selected)}};function c(){if(m.frame){u.style.height=(m.zoomLevels*10)+"px";p.style.top=((m.zoomLevels*10)+20)+"px"}}}AutoPing= function(){};AlertObj= function(){this.iccid;this.name="Unkown address.";this.pos;this.speed;this.limitSpeed;this.time};AutoPing.callback=null;AutoPing.timeloop=5000;AutoPing.hasNewMsg=false;AutoPing.alertObj=new AlertObj();AutoPing.repingCallBackMod= function(){document.getElementById("speedAlertDiv").style.display="none";document.getElementById("violationDiv").style.display="none";document.getElementById("mail").style.display="none";var b=Message.createPingDOM();var c=new WSXMLTunnelFCS();c.responseFormat="JSON";try{JSRequest.timeoutHandler(AutoPing.timeoutCallback,AutoPing.timeloop);c.send(b,AutoPing.callback,JSRequest.getHostTimeout,CONFIG.fcsUrl)}catch(a){alert(a.message)}setTimeout(AutoPing.repingCallBackMod,AutoPing.timeloop)};AutoPing.reping= function(){document.getElementById("speedAlertDiv").style.display="none";document.getElementById("violationDiv").style.display="none";document.getElementById("mail").style.display="none";var b=Message.createPingDOM();var c=new WSXMLTunnelFCS();c.responseFormat="JSON";try{JSRequest.timeoutHandler(AutoPing.timeoutCallback,AutoPing.timeloop);c.send(b,AutoPing.pingCallBack,JSRequest.getHostTimeout,CONFIG.fcsUrl)}catch(a){alert(a.message)}setTimeout(AutoPing.reping,AutoPing.timeloop)};AutoPing.pingCallBack= function(a){window.status="FCS Gateway Connected.";if(a.XLS.Response.MsgResponse!=null&&a.XLS.Response.MsgResponse.Alert!=null){AutoPing.doAlert(a.XLS.Response.MsgResponse)}else{if(a.XLS.Response.MsgResponse!=null&&a.XLS.Response.MsgResponse.Violation!=null){AutoPing.doViolation(a.XLS.Response.MsgResponse)}else{if(a.XLS.Response.MsgResponse!=null){AutoPing.hasNewMsg=true}else{AutoPing.hasNewMsg=false}}}if(AutoPing.hasNewMsg){document.getElementById("mail").style.display="block"}else{document.getElementById("mail").style.display="none"}};AutoPing.doAlert= function(a){if(a.Receipt!=null){packetId=a.Receipt.packetId;sequenceId=a.Receipt.sequenceId;AutoPing.sendReceipt(packetId,sequenceId)}AutoPing.alertObj.iccid=a.iccid;AutoPing.alertObj.speed=a.Alert.Speed;AutoPing.alertObj.limitSpeed=a.Alert.Limit;AutoPing.alertObj.time=getLocalTimeStr(a.Message.Time);var b=a.Alert.Pos.Lat;var d=a.Alert.Pos.Lon;b=b/10000000;d=~d+1;d=-d/10000000;AutoPing.alertObj.pos=new Position(b+" "+d);var c=new Geocoder();c.reverseGeocode(AutoPing.alertObj.pos,AutoPing.rgCallback)};AutoPing.doViolation= function(a){if(a.Receipt!=null){packetId=a.Receipt.packetId;sequenceId=a.Receipt.sequenceId;AutoPing.sendReceipt(packetId,sequenceId)}AutoPing.alertObj.iccid=a.iccid;AutoPing.alertObj.time=getLocalTimeStr(a.Violation.Time);var b=a.Violation.Pos.Lat;var d=a.Violation.Pos.Lon;b=b/10000000;d=~d+1;d=-d/10000000;AutoPing.alertObj.pos=new Position(b+" "+d);var c=new Geocoder();c.reverseGeocode(AutoPing.alertObj.pos,AutoPing.vioRgCallback)};AutoPing.vioRgCallback= function(a){if(a&&a.toString()!=""){a=a.buildingNumber+" "+a.street+", "+a.countrySecondarySubdivision+", "+a.countrySubdivision;AutoPing.alertObj.name=a}var b=FleetVehicle.createFakeVehicles();v=FleetVehicle.getVehicleByIccid(b,AutoPing.alertObj.iccid);document.getElementById("violationCar").innerHTML="Route Compliance Alert - "+v.name;document.getElementById("violationAddress").innerHTML=AutoPing.alertObj.name;document.getElementById("violationValue").innerHTML=AutoPing.alertObj.time;document.getElementById("violationDiv").style.display="block"};AutoPing.rgCallback= function(a){if(a&&a.toString()!=""){a=a.buildingNumber+" "+a.street+", "+a.countrySecondarySubdivision+", "+a.countrySubdivision;AutoPing.alertObj.name=a}var b=FleetVehicle.createFakeVehicles();v=FleetVehicle.getVehicleByIccid(b,AutoPing.alertObj.iccid);document.getElementById("speedAlertCar").innerHTML="Speed Alert - "+v.name;document.getElementById("speedAlertAddress").innerHTML=AutoPing.alertObj.name;document.getElementById("speedAlertTime").innerHTML=AutoPing.alertObj.time;document.getElementById("speedAlertValue").innerHTML="<font color='red'>"+AutoPing.alertObj.speed+"</font>/"+AutoPing.alertObj.limitSpeed;document.getElementById("speedAlertDiv").style.display="block"};AutoPing.sendReceipt= function(a,d){var c=Message.createPingReceitDOM(a,d);var f=new WSXMLTunnelFCS();f.responseFormat="JSON";try{f.send(c,AutoPing.receitCallBack,JSRequest.getHostTimeout,CONFIG.fcsUrl)}catch(b){alert(b.message)}};AutoPing.receitCallBack= function(){};AutoPing.timeoutCallback= function(){window.status="FCS Gateway Disconnected."};AutoPing.autoPing= function(){window.setTimeout(AutoPing.reping,AutoPing.timeloop)};AutoPing.autoPingCallBackMod= function(a){AutoPing.callback=a;window.setTimeout(AutoPing.repingCallBackMod,AutoPing.timeloop)};function closePanel(){document.getElementById("speedAlertDiv").style.display="none";document.getElementById("violationDiv").style.display="none"}function DispatchQuery(){var j=new deCarta.XMLStringBuilder();var d=[];this.bestVehicleForJob= function(t,q,r,n,u,o){var s=Utilities.getRequestId();if(typeof u=="function"){d[s]=u}else{throw new Exception("DispatchQuery.bestVehicleForJob: callback must be a function, arg was: "+u)}var p=f(t,q,r,n,s);JSRequest.send(p,function(A){var w=A.XLS.Response.requestID;var C=[];var E=[];if(deCarta.JSONParser.parseErrors(A)){}else{if(A.XLS.Response.DispatchResponse&&A.XLS.Response.DispatchResponse.BestVehicleForJobResponse){var F=A.XLS.Response.DispatchResponse.BestVehicleForJobResponse;if(!deCarta.Array.isArray(F)){F=[F]}for(var B=0;B<F.length;B++){var y,D;if(F[B].Vehicle){y=m(F[B].Vehicle)}if(F[B].Route){D=h(F[B].Route);if(F[B].RouteInstructionsList){var z=g(F[B].RouteInstructionsList);D.RouteInstructions=z}}C.push(y);E.push(D)}}}if((w>=0)&&d[w]){d[w](C,E);d[w]=undefined}},null,o)};this.bestJobForVehicle= function(n,t,r,o,u,p){var s=Utilities.getRequestId();if(typeof u=="function"){d[s]=u}else{throw new Exception("DispatchQuery.bestJobForVehicle: callback must be a function, arg was: "+u)}var q=b(n,t,r,o,s);JSRequest.send(q,function(B){var w=B.XLS.Response.requestID;var z=[];var F=[];if(deCarta.JSONParser.parseErrors(B)){}else{if(B.XLS.Response.DispatchResponse&&B.XLS.Response.DispatchResponse.BestJobForVehicleResponse){var D=B.XLS.Response.DispatchResponse.BestJobForVehicleResponse;if(!deCarta.Array.isArray(D)){D=[D]}for(var C=0;C<D.length;C++){var y,E;if(D[C].Job){y=k(D[C].Job)}if(D[C].Route){E=h(D[C].Route);if(D[C].RouteInstructionsList){var A=g(D[C].RouteInstructionsList);E.RouteInstructions=A}}z.push(y);F.push(E)}}}if((w>=0)&&d[w]){d[w](z,F);d[w]=undefined}},null,p)};function f(o,u,w,s,n,q){n=n||Utilities.getRequestId();q=q||Utilities.getRequestId();var r=j.getHeader("DispatchRequest",n,null,q);r+="<xls:DispatchRequest>";r+=l(w);r+="<xls:BestVehicleForJobRequest";for(var t in s){if(s.hasOwnProperty(t)){r+=" "+t+"='"+s[t]+"'"}}r+=">";r+=c(o);r+="<xls:VehicleList>";for(var p=0;p<u.length;p++){r+=a(u[p])}r+="</xls:VehicleList>";r+="</xls:BestVehicleForJobRequest>";r+="</xls:DispatchRequest></xls:Request></xls:XLS>";return r}function b(p,o,w,t,n,r){n=n||Utilities.getRequestId();r=r||Utilities.getRequestId();var s=j.getHeader("DispatchRequest",n,null,r);s+="<xls:DispatchRequest>";s+=l(w);s+="<xls:BestJobForVehicleRequest";for(var u in t){if(t.hasOwnProperty(u)){s+=" "+u+"='"+t[u]+"'"}}s+=">";s+="<xls:JobList>";for(var q=0;q<p.length;q++){s+=c(p[q])}s+="</xls:JobList>";s+=a(o);s+="</xls:BestJobForVehicleRequest>";s+="</xls:DispatchRequest></xls:Request></xls:XLS>";return s}function l(q){var o="";var n=q.getAvoidList();o+="<xls:RoutePreference>"+q.routePreference+"</xls:RoutePreference>";if(n.length>0){o+="<xls:AvoidList>";for(var p=0;p<n.length;p++){o+="<xls:AvoidFeature>"+n[p]+"</xls:AvoidFeature>"}o+="</xls:AvoidList>"}return o}function c(o){var n="";n+="<xls:Job ID='"+o.id+"'>";n+="<xls:Position>"+o.position.toString()+"</xls:Position>";if(o.schedule){n+="<xls:Schedule>"+o.schedule+"</xls:Schedule>"}n+="</xls:Job>";return n}function a(s){var p="";p+="<xls:Vehicle ID='"+s.id+"'>";var o=s.positions;for(var q=0;q<o.length;q++){var n=o[q];p+="<xls:Position><gml:Point><gml:pos>"+n.toString()+"</gml:pos></gml:Point>";var r=n.customProperties.time;if(r&&r.begin){p+="<xls:Time begin='"+r.begin+"'";if(r.duration){p+=" duration='"+r.duration+"'"}p+="/>"}p+="</xls:Position>"}p+="</xls:Vehicle>";return p}function m(r){var t=new Vehicle();t.id=r.ID;var o=r.Position;if(!o){o=[]}else{if(!deCarta.Array.isArray(o)){o=[o]}}for(var q=0;q<o.length;q++){var p=o[q];var n=new Position(p.Point.pos);if(p.Time){var s=new Time(p.Time.begin);if(p.Time.duration){s.duration=p.Time.duration}n.customProperties.time=s}t.positions.push(n)}return t}function k(n){var o=new DispatchJob();o.id=n.ID;o.position=n.Position;o.schedule=n.Schedule;return o}function h(o){var n=new Route();n.routeID=o.RouteID;n.TotalDistance=o.Distance.value;n.uom=new UOM(o.Distance.uom);n.customProperties.eta=o.Eta;return n}function g(r){if(!r){return[]}var s=[];if(deCarta.Array.isArray(r)){r=r[0]}if(r){var o=r.RouteInstruction;var q=o.length;if(q==undefined){s[0]=p(o)}else{for(var n=0;n<q;n++){s[n]=p(o[n])}}}return s;function p(t){var u=new RouteInstruction();u.Instruction=t.Instruction;u.distance=t.distance.value;u.duration=Utilities.podParse(t.duration);if(t.Point){u.position=new Position(t.Point)}u.tour=t.tour;return u}}}FleetVehicle= function(){this.id="";this.iccid="";this.name="";this.latestMsg="";this.time="";this.status="";this.lat="";this.lon="";this.canRspLst=[];this.positions=[]};FleetVehicle.getVehicleByIccid= function(b,c){for(var a=0;a<b.length;a++){if(b[a].iccid==c){return b[a]}}return null};FleetVehicle.getVehicleIndexByIccid= function(b,c){for(var a=0;a<b.length;a++){if(b[a].iccid==c){return a}}return null};FleetVehicle.createFakeVehicles= function(){var n=new Position("37.347398 -121.892052");var o=[];var p=new Date();var g=Utils.formatDate2String(p);var h=1;for(var l=0;l<3;l++,h++){id=Math.floor(Math.random()*10000);var a="Demo"+h;p=new Date(p.getTime()+((Math.random())*6-3)*3600*1000);g=p.format("yyyy-mm-dd'T'HH:MM:ss");g=g.replace(/T/," ");var f=g;var c=Math.random()*0.1-0.05;var b=Math.random()*0.1-0.05;var m=new Position(n.lat-c,n.lon-b);m.customProperties.time=f;var k=[m];var d=FleetVehicle.createFakeVehicle(l,a,k);d.time=f;d.lat=m.lat;d.lon=m.lon;o.push(d)}return o};FleetVehicle.createFakeVehicle= function(c,b,a){var d=new FleetVehicle();d.id=ICCID[c];d.iccid=ICCID[c];d.name=b;d.latestMsg="--";d.status="on";d.positions=a;return d};FleetVehicle.selectVehiclesByName= function(c,d){var f=new Array();for(var a=0;a<d.length;a++){var b=d[a].name;if(b.indexOf(c)!=-1){f.push(d[a])}}return f};function GeofencingQuery(){var m=new deCarta.XMLStringBuilder();var g=[];var l=[];this.create= function(r,u,q){var t=Utilities.getRequestId();if(typeof u=="function"){g[t]=u}else{if(u){throw new Exception("GeofencingQuery.create: callback must be a function, arg was: "+u)}}if(r.type!="polygon"&&r.type!="circle"){throw new Exception("GeofencingQuery.create: shape must be polygon or circle")}if(r instanceof DDSShape){l[t]=r}var s=k(r,t);JSRequest.send(s,function(y){var z=y.XLS.Response.requestID;var A=undefined;if(deCarta.JSONParser.parseErrors(y)){}else{if(y.XLS.Response.GeofencingResponse){A=y.XLS.Response.GeofencingResponse.FenceCreateResponse.Geofence.id}}if((z>=0)&&g[z]){var w=l[z];l[z]=undefined;g[z](A,w);g[z]=undefined}},null,q)};this.remove= function(u,t,q){var s=Utilities.getRequestId();if(typeof t=="function"){g[s]=t}else{throw new Exception("GeofencingQuery.create: callback must be a function, arg was: "+t)}var r=a(u,s);JSRequest.send(r,function(w){var y=w.XLS.Response.requestID;var z=undefined;if(deCarta.JSONParser.parseErrors(w)){}else{if(w.XLS.Response.GeofencingResponse){z=w.XLS.Response.GeofencingResponse.FenceDeleteResponse.Geofence.id}}if((y>=0)&&g[y]){g[y](z);g[y]=undefined}},null,q)};this.update= function(r,u,q){var t=Utilities.getRequestId();if(typeof u=="function"){g[t]=u}else{throw new Exception("GeofencingQuery.create: callback must be a function, arg was: "+u)}var s=p(r,t);JSRequest.send(s,function(w){var y=w.XLS.Response.requestID;var z=undefined;if(deCarta.JSONParser.parseErrors(w)){}else{if(w.XLS.Response.GeofencingResponse){z=w.XLS.Response.GeofencingResponse.FenceUpdateResponse.Geofence.id}}if((y>=0)&&g[y]){g[y](z);g[y]=undefined}},null,q)};this.retrieveById= function(u,t,q){var s=Utilities.getRequestId();if(typeof t=="function"){g[s]=t}else{throw new Exception("GeofencingQuery.create: callback must be a function, arg was: "+t)}var r=d(u,s);JSRequest.send(r,function(y){var z=y.XLS.Response.requestID;var w=[];if(deCarta.JSONParser.parseErrors(y)){}else{if(y.XLS.Response.GeofencingResponse){w=c(y.XLS.Response.GeofencingResponse.FenceRetrieveResponse)}}if((z>=0)&&g[z]){g[z](w);g[z]=undefined}},null,q)};this.retrieveAll= function(t,u,q){if(t!=false){t=true}var s=Utilities.getRequestId();if(typeof u=="function"){g[s]=u}else{throw new Exception("GeofencingQuery.create: callback must be a function, arg was: "+u)}var r=j(t,s);JSRequest.send(r,function(y){var z=y.XLS.Response.requestID;var w=[];if(deCarta.JSONParser.parseErrors(y)){}else{if(y.XLS.Response.GeofencingResponse){w=c(y.XLS.Response.GeofencingResponse.FenceRetrieveResponse)}}if((z>=0)&&g[z]){g[z](w);g[z]=undefined}},null,q)};this.retrieveByProperties= function(s,u,q){if(detailResponse!=false){detailResponse=true}var t=Utilities.getRequestId();if(typeof u=="function"){g[t]=u}else{throw new Exception("GeofencingQuery.create: callback must be a function, arg was: "+u)}var r=f(s,t);JSRequest.send(r,function(y){var z=y.XLS.Response.requestID;var w=[];if(deCarta.JSONParser.parseErrors(y)){}else{if(y.XLS.Response.GeofencingResponse){w=c(y.XLS.Response.GeofencingResponse.FenceRetrieveResponse)}}if((z>=0)&&g[z]){g[z](w);g[z]=undefined}},null,q)};this.violationCheck= function(t,w,u,q){var s=Utilities.getRequestId();if(typeof u=="function"){g[s]=u}else{throw new Exception("GeofencingQuery.create: callback must be a function, arg was: "+u)}var r=o(t,w,s);JSRequest.send(r,function(B){var C=B.XLS.Response.requestID;var z;var A=null;var y=null;if(deCarta.JSONParser.parseErrors(B)){}else{if(B.XLS.Response.GeofencingResponse){z=n(B.XLS.Response.GeofencingResponse.FenceViolationCheckResponse);A=z[0];y=z[1]}if(A&&!(deCarta.Array.isArray(t))){A=A[0];y=y[0]}}if((C>=0)&&g[C]){g[C](A,y);g[C]=undefined}},null,q)};function k(q,s,t){s=s||Utilities.getRequestId();t=t||Utilities.getRequestId();var r=m.getHeader("GeofencingRequest",s,null,t);r+="<xls:GeofencingRequest><xls:FenceCreateRequest><xls:Geofence ";r+="name='"+q.title+"' ";if(q.description&&q.description!=""){r+="description='"+q.description+"' "}r+="violationType='"+q.customProperties.violationType+"' ";r+=b(q);r+=">";r+=h(q);r+="</xls:Geofence></xls:FenceCreateRequest></xls:GeofencingRequest></xls:Request></xls:XLS>";return r}function p(q,s,t){s=s||Utilities.getRequestId();t=t||Utilities.getRequestId();var r=m.getHeader("GeofencingRequest",s,null,t);r+="<xls:GeofencingRequest><xls:FenceUpdateRequest><xls:Geofence id='";r+=q.id+"' ";r+="name='"+q.title+"' ";if(q.description&&q.description!=""){r+="description='"+q.description+"' "}r+="violationType='"+q.customProperties.violationType+"' ";r+=b(q);r+=">";r+=h(q);r+="</xls:Geofence></xls:FenceUpdateRequest></xls:GeofencingRequest></xls:Request></xls:XLS>";return r}function b(q){var r="";r+="metaInfo='borderColorRed@"+q.borderColorRed+" borderColorGreen@"+q.borderColorGreen+" borderColorBlue@"+q.borderColorBlue;r+=" fillColorRed@"+q.fillColorRed+" fillColorGreen@"+q.fillColorGreen+" fillColorBlue@"+q.fillColorBlue;r+=" fillOpacityFloat@"+q.fillOpacityFloat;r+=" borderWidth@"+q.borderWidth;r+=" strokeOpacityFloat@"+q.strokeOpacityFloat;if(q.width){r+=" width@"+q.width}r+="'";return r}function h(s){var t="";t+="<xls:Geometry>";if(s.type=="circle"){t+="<gml:CircleByCenterPoint numArc='1'><gml:pos>"+s.getPosition().toString()+"</gml:pos><gml:radius uom='";t+=s.radius.uom.toString()+"'>"+s.radius.distance+"</gml:radius></gml:CircleByCenterPoint>"}else{if(s.type=="line"){t+="<gml:LineString>";var r=s.getPositions();for(var u=0;u<r.length;u++){t+="<gml:pos>"+r[u].toString()+"</gml:pos>"}t+="</gml:LineString>"}else{if(s.type=="polygon"){t+="<gml:Polygon><gml:exterior><gml:LinearRing>";r=s.getPositions();for(u=0;u<r.length;u++){t+="<gml:pos>"+r[u].toString()+"</gml:pos>"}if(r.length==3){t+="<gml:pos>"+r[0].toString()+"</gml:pos>"}t+="</gml:LinearRing></gml:exterior></gml:Polygon>"}}}t+="</xls:Geometry>";if(s.customProperties&&!Utilities.isObjectEmpty(s.customProperties.properties)){t+="<xls:Properties>";for(var w in s.customProperties.properties){if(s.customProperties.properties.hasOwnProperty(w)){t+="<xls:Property name='"+w+"' value='"+s.customProperties.properties[w]+"'/>"}}t+="</xls:Properties>"}if(s.customProperties&&!Utilities.isObjectEmpty(s.customProperties.restrictedActiveTimes)){t+="<xls:RestrictedActiveTimes>";for(w in s.customProperties.restrictedActiveTimes){if(s.customProperties.restrictedActiveTimes.hasOwnProperty(w)){var q=s.customProperties.restrictedActiveTimes[w];t+="<xls:ActiveTime recurrenceType='"+q.recurrenceType;if(q.recurrenceType=="W"){t+="' weeklyRecurrenceDay='"+q.weeklyRecurrenceDay+"'>"}else{t+="'>"}t+="<xls:StartTime>"+q.startTime+"</xls:StartTime><xls:EndTime>";t+=q.endTime+"</xls:EndTime></xls:ActiveTime>"}}t+="</xls:RestrictedActiveTimes>"}return t}function j(u,w,y){w=w||Utilities.getRequestId();y=y||Utilities.getRequestId();u=u?"true":"false";var t=u;var q=u;var s=u;var r=m.getHeader("GeofencingRequest",w,null,y);r+="<xls:GeofencingRequest><xls:FenceRetrieveRequest returnGeometry='"+t+"' returnProperties='"+q+"' returnRestrictedActiveTimes='"+s+"'>";r+="</xls:FenceRetrieveRequest></xls:GeofencingRequest></xls:Request></xls:XLS>";return r}function d(u,w,z){w=w||Utilities.getRequestId();z=z||Utilities.getRequestId();var s="true";var r=s;var B=s;var t=s;var A=m.getHeader("GeofencingRequest",w,null,z);A+="<xls:GeofencingRequest><xls:FenceRetrieveRequest returnGeometry='"+r+"' returnProperties='"+B+"' returnRestrictedActiveTimes='"+t+"'>";var q=[];if(u){if(u.length==undefined){q.push(u)}else{q=u}}else{q.push(undefined)}for(var y=0;y<q.length;y++){A+="<xls:ID>";A+=q[y]+"</xls:ID>"}A+="</xls:FenceRetrieveRequest></xls:GeofencingRequest></xls:Request></xls:XLS>";return A}function f(y,t,u){t=t||Utilities.getRequestId();u=u||Utilities.getRequestId();var r="true";var q=r;var B=r;var s=r;var w=m.getHeader("GeofencingRequest",t,null,u);w+="<xls:GeofencingRequest><xls:FenceRetrieveRequest returnGeometry='"+q+"' returnProperties='"+B+"' returnRestrictedActiveTimes='"+s+"'>";w+="<xls:Properties>";for(var A in y){if(y.hasOwnProperty(A)){w+="<xls:Property name='"+A+"' value='"+y[A]+"'/>"}}w+="</xls:Properties>";w+="</xls:FenceRetrieveRequest></xls:GeofencingRequest></xls:Request></xls:XLS>";return w}function a(t,r,s){r=r||Utilities.getRequestId();s=s||Utilities.getRequestId();var q=m.getHeader("GeofencingRequest",r,null,s);q+="<xls:GeofencingRequest><xls:FenceDeleteRequest>";q+="<xls:ID>";q+=t+"</xls:ID>";q+="</xls:FenceDeleteRequest></xls:GeofencingRequest></xls:Request></xls:XLS>";return q}function c(u){if(!u){return null}var w=u.Geofence;if(!w){w=[]}else{if(!deCarta.Array.isArray(w)){w=[u.Geofence]}}var s=[];for(var z=0;z<w.length;z++){var B={};var G=w[z];if(G.Geometry){if(G.Geometry.Polygon){B=new DDSPolygon();B.positions=[];if(G.Geometry.Polygon.exterior.LinearRing.pos.length=="undefined"){var A=new Position(G.Geometry.Polygon.exterior.LinearRing.pos);B.positions.push(A)}else{for(var H=0;H<G.Geometry.Polygon.exterior.LinearRing.pos.length;H++){A=new Position(G.Geometry.Polygon.exterior.LinearRing.pos[H]);B.positions.push(A)}}}else{if(G.Geometry.CircleByCenterPoint){B=new DDSCircle();B.position=new Position(G.Geometry.CircleByCenterPoint.pos);var r=G.Geometry.CircleByCenterPoint.radius.uom||"M";var q=G.Geometry.CircleByCenterPoint.radius.content||0;B.radius=new Radius(q,r)}else{if(G.Geometry.LineString){B=new DDSLine();B.positions=[];if(G.Geometry.LineString.pos.length=="undefined"){A=new Position(G.Geometry.LineString.pos);B.positions.push(A)}else{for(H=0;H<G.Geometry.LineString.pos.length;H++){A=new Position(G.Geometry.LineString.pos[H]);B.positions.push(A)}}}}}}B.title=(G.name=="undefined"||!G.name)?"":(G.name);B.id=G.id;B.description=(G.description=="undefined"||!G.description)?"":(G.description);B.customProperties={};B.customProperties.violationType=G.violationType;if(G.Properties){var C=G.Properties.Property;if(C.length==undefined){C=[G.Properties.Property]}B.customProperties.properties={};for(var y=0;y<C.length;y++){B.customProperties.properties[C[y].name]=C[y].value}}if(G.RestrictedActiveTimes){var F=G.RestrictedActiveTimes.ActiveTime;if(G.RestrictedActiveTimes.ActiveTime.length==undefined){F=[G.RestrictedActiveTimes.ActiveTime]}B.customProperties.restrictedActiveTimes=[];for(H=0;H<F.length;H++){var t={};t.startTime=F[H].StartTime;t.endTime=F[H].EndTime;t.recurrenceType=F[H].recurrenceType;t.weeklyRecurrenceDay=F[H].weeklyRecurrenceDay;B.customProperties.restrictedActiveTimes.push(t)}}if(G.metaInfo){var E=G.metaInfo;var D=/([a-zA-Z]+)@((?:\d+\.\d+)|\d+|(?:[a-zA-Z]+))/g;var I;while((I=D.exec(E))!=null){B[I[1]]=I[2]}}B.customProperties.saved=true;s.push(B)}return s}function o(y,A,t,w){t=t||Utilities.getRequestId();w=w||Utilities.getRequestId();var r=m.getHeader("GeofencingRequest",t,null,w);r+="<xls:GeofencingRequest><xls:FenceViolationCheckRequest returnViolationOnly='false'>";if(y.length=="undefined"){y=[y]}for(var s=0;s<y.length;s++){r+="<xls:CheckPoint><gml:pos>"+y[s].toString()+"</gml:pos>";if(y[s].customProperties.violationCheckDateTime){r+=" <xls:DateTime>"+y[s].customProperties.violationCheckDateTime+"</xls:DateTime>"}r+="</xls:CheckPoint>"}if(A){r+="<xls:GeofenceLookupCriteria>";if(!isNaN(A)){A=[A]}if(deCarta.Array.isArray(A)){for(var q=0;q<A.length;q++){r+="<xls:ID>"+A[q]+"</xls:ID>"}}else{if(!Utilities.isObjectEmpty(A)){r+="<xls:Properties>";for(var u in A){if(A.hasOwnProperty(u)){r+="<xls:Property name='"+u+"' value='"+A[u]+"'/>"}}r+="</xls:Properties>"}}r+="</xls:GeofenceLookupCriteria>"}r+="</xls:FenceViolationCheckRequest></xls:GeofencingRequest></xls:Request></xls:XLS>";return r}function n(u){if(!u){return null}var F=[];var r=[];var y=u.CheckPointResult;if(!y){y=[]}else{if(!deCarta.Array.isArray(y)){y=[y]}}for(var w=0;w<y.length;w++){var B=y[w];var A=new Position(B.pos.content);A.customProperties.violationCheckDateTime=B.DateTime;A.isViolation=B.isViolation;var s=[];if(B.ViolatedGeofences){s=B.ViolatedGeofences.Geofence}if(!s){s=[]}else{if(!deCarta.Array.isArray(s)){s=[s]}}var q=[];for(var t=0;t<s.length;t++){var E=s[t];var z={};z.title=(E.name=="undefined"||!E.name)?"":(E.name);z.id=E.id;z.description=(E.description=="undefined"||!E.description)?"":(E.description);z.customProperties={};z.customProperties.violationType=E.violationType;if(E.metaInfo){var D=E.metaInfo;var C=/([a-zA-Z]+)@((?:\d+\.\d+)|\d+|(?:[a-zA-Z]+))/g;var G;while((G=C.exec(D))!=null){z[G[1]]=G[2]}}z.customProperties.saved=true;q.push(z)}F.push(A);r.push(q)}return[F,r]}}function DispatchJob(b){this.id=0;this.position=null;this.schedule=null;this.init= function(c){if(c&&c.schedule&&!a(c.schedule)){throw new Exception("schedule must be in 2010-03-20T12:03:13 or 2010-03-20T12:03:13-05:00 format")}for(var d in c){if(c.hasOwnProperty(d)){this[d]=c[d]}}};this.init(b);function a(d){var c=/^\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}(\.\d+)?(Z|(\+|-)\d{2}\:\d{2})?$/;if(c.test(d)){return true}else{return false}}this.setSchedule= function(c){if(c&&!a(validate(c))){throw new Exception("schedule must be in 2010-03-20T12:03:13 or 2010-03-20T12:03:13-05:00 format")}else{this.schedule=c}}}function Message(d,b,f,a){this.toClient=b;this.msgContent=f;this.nowTime=c();this.type=d;this.id=Utilities.getRequestId();this.iccid=a;this.getICCID= function(){return this.iccid};this.setICCID= function(g){this.iccid=g};this.setType= function(g){this.type=g};this.setToClient= function(g){this.toClient=g};this.setMsgContent= function(g){this.msgContent=g};this.setNowTime= function(g){this.nowTime=g};this.getId= function(){return this.id};this.getType= function(){return this.type};this.getToClient= function(){return this.toClient};this.getMsgContent= function(){return this.msgContent};this.getNowTime= function(){return this.nowTime};function c(){var g=new Date();var h=new Date(g.toUTCString());var j=new Date();j.setUTCFullYear(1989);j.setUTCMonth(11);j.setUTCDate(31);j.setUTCHours(12);j.setUTCMinutes(0);j.setUTCSeconds(0);return Math.floor((h.getTime()-j.getTime())/1000)}}Message.createPingDOM= function(){JSRequest.setDynamicScriptTagMode();var d=Sarissa.getDomDocument();var a=d.createElement("xls:XLS");a.setAttribute("xls:lang","en");a.setAttribute("version","1");a.setAttribute("xmlns:xls","http://www.opengis.net/xls");a.setAttribute("xmlns:gml","http://www.opengis.net/gml");d.appendChild(a);var c=d.createElement("xls:RequestHeader");c.setAttribute("clientName",CONFIG.clientName);c.setAttribute("configuration",CONFIG.configuration);c.setAttribute("sessionID",Math.floor(Math.random()*10000000));c.setAttribute("clientPassword",CONFIG.fleetClientPassword);a.appendChild(c);var b=d.createElement("xls:Request");b.setAttribute("maximumResponses","1");b.setAttribute("version","1.0");b.setAttribute("requestID",Math.floor(Math.random()*10000000));b.setAttribute("methodName","PingRequest");a.appendChild(b);var f=d.createElement("xls:PingRequest");b.appendChild(f);return d};Message.createPingReceitDOM= function(a,j){JSRequest.setDynamicScriptTagMode();var h=Sarissa.getDomDocument();var d=h.createElement("xls:XLS");d.setAttribute("xls:lang","en");d.setAttribute("version","1");d.setAttribute("xmlns:xls","http://www.opengis.net/xls");d.setAttribute("xmlns:gml","http://www.opengis.net/gml");h.appendChild(d);var g=h.createElement("xls:RequestHeader");g.setAttribute("clientName",CONFIG.clientName);g.setAttribute("configuration",CONFIG.configuration);g.setAttribute("sessionID",Math.floor(Math.random()*10000000));g.setAttribute("clientPassword",CONFIG.fleetClientPassword);d.appendChild(g);var f=h.createElement("xls:Request");f.setAttribute("maximumResponses","1");f.setAttribute("version","1.0");f.setAttribute("requestID",Math.floor(Math.random()*10000000));f.setAttribute("methodName","ReceiptRequest");d.appendChild(f);var c=h.createElement("xls:ReceiptRequest");f.appendChild(c);var b=h.createElement("xls:Receipt");b.setAttribute("packetId",a);b.setAttribute("sequenceId",j);c.appendChild(b);return h};Message.createMsgRequestDOM= function(m,r){JSRequest.setDynamicScriptTagMode();var z=Sarissa.getDomDocument();var j=z.createElement("xls:XLS");j.setAttribute("xls:lang","en");j.setAttribute("version","1");j.setAttribute("xmlns:xls","http://www.opengis.net/xls");j.setAttribute("xmlns:gml","http://www.opengis.net/gml");z.appendChild(j);var u=z.createElement("xls:RequestHeader");u.setAttribute("clientName",CONFIG.clientName);u.setAttribute("configuration",CONFIG.configuration);u.setAttribute("sessionID",Math.floor(Math.random()*10000000));u.setAttribute("clientPassword",CONFIG.fleetClientPassword);j.appendChild(u);var h=z.createElement("xls:Request");h.setAttribute("maximumResponses","1");h.setAttribute("version","1.0");h.setAttribute("requestID",Math.floor(Math.random()*10000000));h.setAttribute("methodName","MsgRequest");j.appendChild(h);var y=z.createElement("xls:MsgRequest");h.appendChild(y);var A=z.createElement("xls:MsgHeader");var d=z.createElement("xls:to");var a=z.createTextNode(m.getToClient());d.appendChild(a);A.appendChild(d);y.appendChild(A);var t=z.createElement("xls:IccidList");var f=z.createElement("xls:Iccid");var c=z.createTextNode(m.getICCID());t.appendChild(f);f.appendChild(c);var l=z.createElement("xls:MsgBody");var p=z.createElement("xls:id");var w=z.createTextNode(m.getId());p.appendChild(w);var g=z.createElement("xls:type");var k=z.createTextNode(m.getType());g.appendChild(k);var s=z.createElement("xls:content");var q=z.createTextNode(m.getMsgContent());var o=z.createElement("xls:nowTime");var n=m.getNowTime();var b=z.createTextNode(n);s.appendChild(q);o.appendChild(b);l.appendChild(p);l.appendChild(g);l.appendChild(s);l.appendChild(o);y.appendChild(t);y.appendChild(l);y.appendChild(t);return z};Message.createAddCanResponseDOM= function(k,b,l){JSRequest.setDynamicScriptTagMode();var m=Sarissa.getDomDocument();var h=m.createElement("xls:XLS");h.setAttribute("xls:lang","en");h.setAttribute("version","1");h.setAttribute("xmlns:xls","http://www.opengis.net/xls");h.setAttribute("xmlns:gml","http://www.opengis.net/gml");m.appendChild(h);var o=m.createElement("xls:RequestHeader");o.setAttribute("clientName",CONFIG.clientName);o.setAttribute("configuration",CONFIG.configuration);o.setAttribute("sessionID",Math.floor(Math.random()*10000000));o.setAttribute("clientPassword",CONFIG.fleetClientPassword);h.appendChild(o);var f=m.createElement("xls:Request");f.setAttribute("maximumResponses","1");f.setAttribute("version","1.0");f.setAttribute("requestID",Math.floor(Math.random()*10000000));f.setAttribute("methodName","SetCannedMsgRequest");h.appendChild(f);var p=m.createElement("xls:SetCannedMsgRequest");f.appendChild(p);var g=m.createElement("xls:response_id");var d=m.createTextNode(k);g.appendChild(d);p.appendChild(g);var j=m.createElement("xls:response_text");var q=m.createTextNode(b);j.appendChild(q);p.appendChild(j);var a=m.createElement("xls:IccidList");var n=m.createElement("xls:Iccid");var c=m.createTextNode(l);a.appendChild(n);n.appendChild(c);p.appendChild(a);return m};Message.createDelCanResponseDOM= function(j,b,k){JSRequest.setDynamicScriptTagMode();var l=Sarissa.getDomDocument();var h=l.createElement("xls:XLS");h.setAttribute("xls:lang","en");h.setAttribute("version","1");h.setAttribute("xmlns:xls","http://www.opengis.net/xls");h.setAttribute("xmlns:gml","http://www.opengis.net/gml");l.appendChild(h);var n=l.createElement("xls:RequestHeader");n.setAttribute("clientName",CONFIG.clientName);n.setAttribute("configuration",CONFIG.configuration);n.setAttribute("sessionID",Math.floor(Math.random()*10000000));n.setAttribute("clientPassword",CONFIG.fleetClientPassword);h.appendChild(n);var f=l.createElement("xls:Request");f.setAttribute("maximumResponses","1");f.setAttribute("version","1.0");f.setAttribute("requestID",Math.floor(Math.random()*10000000));f.setAttribute("methodName","DelCannedMsgRequest");h.appendChild(f);var o=l.createElement("xls:DelCannedMsgRequest");f.appendChild(o);var g=l.createElement("xls:message_id");var d=l.createTextNode(j);g.appendChild(d);o.appendChild(g);var a=l.createElement("xls:IccidList");var m=l.createElement("xls:Iccid");var c=l.createTextNode(k);a.appendChild(m);m.appendChild(c);o.appendChild(a);return l};Message.creatCannedResponseListDOM= function(c,o,m){JSRequest.setDynamicScriptTagMode();var n=Sarissa.getDomDocument();var k=n.createElement("xls:XLS");k.setAttribute("xls:lang","en");k.setAttribute("version","1");k.setAttribute("xmlns:xls","http://www.opengis.net/xls");k.setAttribute("xmlns:gml","http://www.opengis.net/gml");n.appendChild(k);var q=n.createElement("xls:RequestHeader");q.setAttribute("clientName",CONFIG.clientName);q.setAttribute("configuration",CONFIG.configuration);q.setAttribute("sessionID",Math.floor(Math.random()*10000000));q.setAttribute("clientPassword",CONFIG.fleetClientPassword);k.appendChild(q);var h=n.createElement("xls:Request");h.setAttribute("maximumResponses","1");h.setAttribute("version","1.0");h.setAttribute("requestID",Math.floor(Math.random()*10000000));h.setAttribute("methodName","CannedRespListRequest");k.appendChild(h);var d=n.createElement("xls:CannedRespListRequest");h.appendChild(d);var j=n.createElement("xls:message_id");var g=n.createTextNode(c);j.appendChild(g);var b=n.createElement("xls:IccidList");var p=n.createElement("xls:Iccid");var f=n.createTextNode(m);b.appendChild(p);p.appendChild(f);d.appendChild(b);d.appendChild(j);if(o){for(var a=0;a<o.length;a++){var l=n.createElement("xls:response_id");var s=n.createTextNode(o[a]);l.appendChild(s);d.appendChild(l)}}return n};Message.createStopXML= function(g,d,f,c,a){var b='<xls:XLS version="1.0" xls:lang="en" rel="4.5.1" xmlns:xls="http://www.opengis.net/xls" xmlns:gml="http://www.opengis.net/gml"><xls:RequestHeader clientPassword="'+CONFIG.clientPassword+'" sessionID="'+Math.floor(Math.random()*10000000)+'" clientName="'+CONFIG.clientName+'" configuration="'+Credentials.configuration+'"/><xls:Request methodName="StopRequest" requestID="'+Math.floor(Math.random()*10000000)+'" maximumResponses="25" version="1.0"><xls:StopRequest><xls:Job ID="'+g+'" text="'+d+'"><xls:Position>'+f+"</xls:Position><xls:Schedule>"+c+"</xls:Schedule></xls:Job><xls:iccid>"+a+"</xls:iccid></xls:StopRequest></xls:Request></xls:XLS>";return b};function CanResponse(b,c,a){this.iccid=a;this.rspId=b;this.rspTxt=c;this.isSelected=false}function Job(f,c,d,b,a){this.iccid=a;this.id=f;this.text=c;this.position=d;this.schedule=b}function RouteComplianceQuery(){var l=new deCarta.XMLStringBuilder();var f=[];this.create= function(p,s,o){var r=Utilities.getRequestId();if(typeof s=="function"){f[r]=s}else{throw new Exception("RouteCompliance.create: callback must be a function, arg was: "+s)}if(!(p instanceof Route)){throw new Exception("route should be DDSLine or RouteID or array of positions")}var q=j(p,r);JSRequest.send(q,function(t){var u=t.XLS.Response.requestID;var w=undefined;if(deCarta.JSONParser.parseErrors(t)){}else{if(t.XLS.Response.RouteComplianceResponse){w=t.XLS.Response.RouteComplianceResponse.RouteCreateResponse.Route.id}}if((u>=0)&&f[u]){f[u](w);f[u]=undefined}},null,o)};this.remove= function(s,r,o){var q=Utilities.getRequestId();if(typeof r=="function"){f[q]=r}else{throw new Exception("RouteCompliance.create: callback must be a function, arg was: "+r)}var p=a(s,q);JSRequest.send(p,function(t){var u=t.XLS.Response.requestID;var w=undefined;if(deCarta.JSONParser.parseErrors(t)){}else{if(t.XLS.Response.RouteComplianceResponse){w=t.XLS.Response.RouteComplianceResponse.RouteDeleteResponse.Route.id}}if((u>=0)&&f[u]){f[u](w);f[u]=undefined}},null,o)};this.update= function(p,s,o){var r=Utilities.getRequestId();if(typeof s=="function"){f[r]=s}else{throw new Exception("RouteCompliance.create: callback must be a function, arg was: "+s)}var q=n(p,r);JSRequest.send(q,function(t){var u=t.XLS.Response.requestID;var w=undefined;if(deCarta.JSONParser.parseErrors(t)){}else{if(t.XLS.Response.RouteComplianceResponse){w=t.XLS.Response.RouteComplianceResponse.RouteUpdateResponse.Route.id}}if((u>=0)&&f[u]){f[u](w);f[u]=undefined}},null,o)};this.retrieveById= function(s,r,o){var q=Utilities.getRequestId();if(typeof r=="function"){f[q]=r}else{throw new Exception("RouteCompliance.create: callback must be a function, arg was: "+r)}var p=c(s,q);JSRequest.send(p,function(u){var w=u.XLS.Response.requestID;var t=[];if(deCarta.JSONParser.parseErrors(u)){}else{if(u.XLS.Response.RouteComplianceResponse){t=k(u.XLS.Response.RouteComplianceResponse.RouteRetrieveResponse)}}if((w>=0)&&f[w]){f[w](t);f[w]=undefined}},null,o)};this.retrieveAll= function(r,s,o){if(r!=false){r=true}var q=Utilities.getRequestId();if(typeof s=="function"){f[q]=s}else{throw new Exception("RouteCompliance.create: callback must be a function, arg was: "+s)}var p=g(r,q);JSRequest.send(p,function(u){var w=u.XLS.Response.requestID;var t=[];if(deCarta.JSONParser.parseErrors(u)){}else{if(u.XLS.Response.RouteComplianceResponse){t=k(u.XLS.Response.RouteComplianceResponse.RouteRetrieveResponse)}}if((w>=0)&&f[w]){f[w](t);f[w]=undefined}},null,o)};this.retrieveByProperties= function(q,s,o){if(detailResponse!=false){detailResponse=true}var r=Utilities.getRequestId();if(typeof s=="function"){f[r]=s}else{throw new Exception("RouteCompliance.create: callback must be a function, arg was: "+s)}var p=d(q,r);JSRequest.send(p,function(u){var w=u.XLS.Response.requestID;var t=[];if(deCarta.JSONParser.parseErrors(u)){}else{if(u.XLS.Response.RouteComplianceResponse){t=k(u.XLS.Response.RouteComplianceResponse.RouteRetrieveResponse)}}if((w>=0)&&f[w]){f[w](t);f[w]=undefined}},null,o)};this.violationCheck= function(r,t,s,o){var q=Utilities.getRequestId();if(typeof s=="function"){f[q]=s}else{throw new Exception("RouteCompliance.create: callback must be a function, arg was: "+s)}var p=m(r,t,q);JSRequest.send(p,function(A){var D=A.XLS.Response.requestID;var z=[];var y=[];if(deCarta.JSONParser.parseErrors(A)){}else{if(A.XLS.Response.RouteComplianceResponse&&A.XLS.Response.RouteComplianceResponse.ComplianceCheckResponse){var C=A.XLS.Response.RouteComplianceResponse.ComplianceCheckResponse;var B=C.CheckPoint;if(!B){B=[]}else{if(!deCarta.Array.isArray(B)){B=[B]}}for(var w=0;w<B.length;w++){var u=B[w];z.push(u.pointIndex);y.push(u.violated)}}if(r&&!(deCarta.Array.isArray(r))){z=z[0];y=y[0]}}if((D>=0)&&f[D]){f[D](z,y);f[D]=undefined}},null,o)};function j(o,q,r){q=q||Utilities.getRequestId();r=r||Utilities.getRequestId();var p=l.getHeader("RouteComplianceRequest",q,null,r);p+="<xls:RouteComplianceRequest><xls:RouteCreateRequest><xls:Route ";p+="name='"+o.title+"' ";if(o.description&&o.description!=""){p+="description='"+o.description+"' "}p+=h(o);p+=">";p+=b(o);p+="</xls:Route></xls:RouteCreateRequest></xls:RouteComplianceRequest></xls:Request></xls:XLS>";return p}function n(o,q,r){q=q||Utilities.getRequestId();r=r||Utilities.getRequestId();var p=l.getHeader("RouteComplianceRequest",q,null,r);p+="<xls:RouteComplianceRequest><xls:RouteUpdateRequest><xls:Route id='";p+=o.id+"' ";p+="name='"+o.title+"' ";if(o.description&&o.description!=""){p+="description='"+o.description+"' "}p+=h(o);p+=">";p+=b(o);p+="</xls:Route></xls:RouteUpdateRequest></xls:RouteComplianceRequest></xls:Request></xls:XLS>";return p}function h(o){var p="";if(o.customProperties.metaInfo){p="metaInfo='"+o.customProperties.metaInfo+"' "}return p}function b(p){var q="";q+="<xls:Geometry>";if(p.routeID){q+="<xls:RouteID>"+p.routeID+"</xls:RouteID>"}else{if(p.RouteGeometry&&p.RouteGeometry.length>0){q+="<gml:LineString>";for(var r=0;r<p.RouteGeometry.length;r++){q+="<gml:pos>"+p.RouteGeometry[r].toString()+"</gml:pos>"}q+="</gml:LineString>"}}q+="</xls:Geometry>";var o=p.customProperties.buffer;q+="<xls:Buffer uom='"+o.uom.value+"' value='"+o.distance+"'/>";if(!Utilities.isObjectEmpty(p.customProperties.properties)){q+="<xls:Properties>";for(var s in p.customProperties.properties){if(p.customProperties.properties.hasOwnProperty(s)){q+="<xls:Property name='"+s+"' value='"+p.customProperties.properties[s]+"'/>"}}q+="</xls:Properties>"}return q}function g(r,s,t){s=s||Utilities.getRequestId();t=t||Utilities.getRequestId();r=r?"true":"false";var q=r;var o=r;var p=l.getHeader("RouteComplianceRequest",s,null,t);p+="<xls:RouteComplianceRequest><xls:RouteRetrieveRequest returnGeometry='"+q+"' returnProperties='"+o+"'>";p+="</xls:RouteRetrieveRequest></xls:RouteComplianceRequest></xls:Request></xls:XLS>";return p}function c(r,s,u){s=s||Utilities.getRequestId();u=u||Utilities.getRequestId();var q="true";var p=q;var y=q;var w=l.getHeader("RouteComplianceRequest",s,null,u);w+="<xls:RouteComplianceRequest><xls:RouteRetrieveRequest returnGeometry='"+p+"' returnProperties='"+y+"'>";var o=[];if(r){if(r.length==undefined){o.push(r)}else{o=r}}else{o.push(undefined)}for(var t=0;t<o.length;t++){w+="<xls:ID>";w+=o[t]+"</xls:ID>"}w+="</xls:RouteRetrieveRequest></xls:RouteComplianceRequest></xls:Request></xls:XLS>";return w}function d(r,t,w){t=t||Utilities.getRequestId();w=w||Utilities.getRequestId();var s="true";var q=s;var o=s;var p=l.getHeader("RouteComplianceRequest",t,null,w);p+="<xls:RouteComplianceRequest><xls:RouteRetrieveRequest returnGeometry='"+q+"' returnProperties='"+o+"'>";p+="<xls:Properties>";for(var u in r){if(r.hasOwnProperty(u)){p+="<xls:Property name='"+u+"' value='"+r[u]+"'/>"}}p+="</xls:Properties>";p+="</xls:RouteRetrieveRequest></xls:RouteComplianceRequest></xls:Request></xls:XLS>";return p}function a(r,p,q){p=p||Utilities.getRequestId();q=q||Utilities.getRequestId();var o=l.getHeader("RouteComplianceRequest",p,null,q);o+="<xls:RouteComplianceRequest><xls:RouteDeleteRequest>";o+="<xls:ID>";o+=r+"</xls:ID>";o+="</xls:RouteDeleteRequest></xls:RouteComplianceRequest></xls:Request></xls:XLS>";return o}function k(u){if(!u){return null}var o=u.Route;if(!o){o=[]}else{if(!deCarta.Array.isArray(o)){o=[u.Route]}}var p=[];for(var s=0;s<o.length;s++){var q={};var w=o[s];if(w.Geometry){if(w.Geometry.RouteID){q=new Route();q.routeID=w.Geometry.RouteID}}q.title=(w.name=="undefined"||!w.name)?"":(w.name);q.id=w.id;q.description=(w.description=="undefined"||!w.description)?"":(w.description);q.customProperties.properties={};if(w.Buffer){q.customProperties.buffer=new Radius();q.customProperties.buffer.uom=new UOM(w.Buffer.uom);q.customProperties.buffer.distance=w.Buffer.value}if(w.Properties){var t=w.Properties.Property;if(t.length==undefined){t=[w.Properties.Property]}q.customProperties.properties={};for(var r=0;r<t.length;r++){q.customProperties.properties[t[r].name]=t[r].value}}if(w.metaInfo){q.customProperties.metaInfo=w.metaInfo}q.customProperties.saved=true;p.push(q)}return p}function m(t,u,r,s){r=r||Utilities.getRequestId();s=s||Utilities.getRequestId();var p=l.getHeader("RouteComplianceRequest",r,null,s);p+="<xls:RouteComplianceRequest><xls:ComplianceCheckRequest returnViolationOnly='false'>";if(t.length=="undefined"){t=[t]}for(var q=0;q<t.length;q++){p+="<xls:CheckPoint><gml:pos>"+t[q].toString()+"</gml:pos>";p+="</xls:CheckPoint>"}if(u){p+="<xls:ComplianceLookupCriteria>";if(!isNaN(u)){p+="<xls:ID>"+u+"</xls:ID>"}else{if(u instanceof Route){var o=u;p+="<xls:ComplianceRoute ";p+=">";p+="<xls:Geometry>";if(o.routeID){p+="<xls:RouteID>"+o.routeID+"</xls:RouteID>"}else{if(o.RouteGeometry&&o.RouteGeometry.length>0){p+="<gml:LineString>";for(q=0;q<o.RouteGeometry.length;q++){p+="<gml:pos>"+o.RouteGeometry[q].toString()+"</gml:pos>"}p+="</gml:LineString>"}}p+="</xls:Geometry>";p+="<xls:Buffer uom='"+o.customProperties.buffer.uom+"' value='"+o.customProperties.buffer.distance+"'></xls:Buffer>";p+="</xls:ComplianceRoute>"}}p+="</xls:ComplianceLookupCriteria>"}p+="</xls:ComplianceCheckRequest></xls:RouteComplianceRequest></xls:Request></xls:XLS>";return p}}function Time(b,c){if(!(b)||!a(b)){throw new Exception("begin format is: 2010-03-10T10:30:10Z or 2010-03-10T10:30:10-05:00.")}this.begin=b;if(c&&!d(c)){throw new Exception("duration should be like PnYnMnDTnHnMnS format.")}this.duration=c;function d(g){var f=/^P(?=\T|\d+)(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$/;if(f.test(g)){return true}else{return false}}function a(g){var f=/^\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}(\.\d+)?(Z|(\+|-)\d{2}\:\d{2})?$/;if(f.test(g)){return true}return false}}var dateFormat= function(){var a=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,b=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,d=/[^-+\dA-Z]/g,c= function(g,f){g=String(g);f=f||2;while(g.length<f){g="0"+g}return g};return function(k,A,t){var h=dateFormat;if(arguments.length==1&&Object.prototype.toString.call(k)=="[object String]"&&!/\d/.test(k)){A=k;k=undefined}k=k?new Date(k):new Date;if(isNaN(k)){throw SyntaxError("invalid date")}A=String(h.masks[A]||A||h.masks["default"]);if(A.slice(0,4)=="UTC:"){A=A.slice(4);t=true}var w=t?"getUTC":"get",p=k[w+"Date"](),f=k[w+"Day"](),l=k[w+"Month"](),r=k[w+"FullYear"](),u=k[w+"Hours"](),n=k[w+"Minutes"](),z=k[w+"Seconds"](),q=k[w+"Milliseconds"](),g=t?0:k.getTimezoneOffset(),j={d:p,dd:c(p),ddd:h.i18n.dayNames[f],dddd:h.i18n.dayNames[f+7],m:l+1,mm:c(l+1),mmm:h.i18n.monthNames[l],mmmm:h.i18n.monthNames[l+12],yy:String(r).slice(2),yyyy:r,h:u%12||12,hh:c(u%12||12),H:u,HH:c(u),M:n,MM:c(n),s:z,ss:c(z),l:c(q,3),L:c(q>99?Math.round(q/10):q),t:u<12?"a":"p",tt:u<12?"am":"pm",T:u<12?"A":"P",TT:u<12?"AM":"PM",Z:t?"UTC":(String(k).match(b)||[""]).pop().replace(d,""),o:(g>0?"-":"+")+c(Math.floor(Math.abs(g)/60)*100+Math.abs(g)%60,4),S:["th","st","nd","rd"][p%10>3?0:(p%100-p%10!=10)*p%10]};return A.replace(a,function(m){return m in j?j[m]:m.slice(1,m.length-1)})}}();dateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};dateFormat.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};Date.prototype.format= function(a,b){return dateFormat(this,a,b)};function WSXMLTunnelFCS(){var a=this;this.responseFormat="XML";var b=[];this.send= function(d,h,g,c){if(!deCarta.String.isString(d)){if(!window.Sarissa&&!window.Sarissa.serialize){throw new Exception("Sarissa is required to use the WSXMLTunnelFCS with XMLDocument Objects.")}d=Sarissa.serialize(d)}var f=Utilities.parseRequestIDFromXLS(d);if(typeof h=="function"){b[f]=h}else{throw new Exception("WSXMLTunnelFCS.send: callBack must be a function, arg was: "+h)}JSRequest.send(d,this._callBack,this.responseFormat,g,c)};this._callBack= function(c){var d,f;if(a.responseFormat=="XML"){d=Sarissa.getDomDocument();d=(new DOMParser()).parseFromString(Utilities.normalizePrefixes(c),"text/xml");d.setProperty("SelectionLanguage","XPath");d.setProperty("SelectionNamespaces","xmlns:xls='http://www.opengis.net/xls' xmlns:gml='http://www.opengis.net/gml'");f=(d.selectSingleNode("//xls:Response/@requestID").value)}else{d=c;if(deCarta.Array.isArray(d.XLS.Response)){f=d.XLS.Response[0].requestID}else{f=d.XLS.Response.requestID}}b[f](d)}}function addT2UTC(b){var a=/\s/;return b.replace(a,"T")}function getUTC(l){var h=new Date();h.setUTCFullYear(1989);h.setUTCMonth(11);h.setUTCDate(31);h.setUTCHours(12);h.setUTCMinutes(0);h.setUTCSeconds(0);var k=Number(h.getTime())+Number(l*1000);var b=new Date(k);var f=b.getUTCMonth()+1;if(f<10){f="0"+f}var c=b.getUTCDate();if(c<10){c="0"+c}var g=b.getUTCHours();if(g<10){g="0"+g}var d=b.getUTCMinutes();if(d<10){d="0"+d}var a=b.getUTCSeconds();if(a<10){a="0"+a}var j=b.getUTCFullYear()+"-"+(f)+"-"+c+" "+g+":"+d+":"+a;return j}function getLocalTimeStr(l){var h=new Date();h.setUTCFullYear(1989);h.setUTCMonth(11);h.setUTCDate(31);h.setUTCHours(12);h.setUTCMinutes(0);h.setUTCSeconds(0);var k=Number(h.getTime())+Number(l*1000);var b=new Date(k);var f=b.getMonth()+1;if(f<10){f="0"+f}var c=b.getDate();if(c<10){c="0"+c}var g=b.getHours();if(g<10){g="0"+g}var d=b.getMinutes();if(d<10){d="0"+d}var a=b.getSeconds();if(a<10){a="0"+a}var j=b.getFullYear()+"-"+(f)+"-"+c+" "+g+":"+d+":"+a;return j}function getNowDateMillis(){var a=new Date();var b=new Date(a.toUTCString());var c=new Date();c.setUTCFullYear(1989);c.setUTCMonth(11);c.setUTCDate(31);c.setUTCHours(12);c.setUTCMinutes(0);c.setUTCSeconds(0);return Math.floor((b.getTime()-c.getTime())/1000)}function createDispatchXML(d,b,a){var c='<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns1:XLS ns1:lang="en" version="1.0" xmlns:ns1="http://www.opengis.net/xls"><ns1:RequestHeader sessionID="999" clientName="'+CONFIG.clientName+'" clientPassword="'+CONFIG.clientPassword+'"/><ns1:Request maximumResponses="2" requestID="10" version="1.0" methodName="DispatchRequest"><ns1:DispatchRequest><ns1:Job ID="'+d.id+'" name="'+d.text+'"><ns1:Position>'+d.position+"</ns1:Position><ns1:Schedule>"+d.schedule+"</ns1:Schedule></ns1:Job><ns1:RouteID>"+b.routeID+"</ns1:RouteID><ns1:iccid>"+a+"</ns1:iccid></ns1:DispatchRequest></ns1:Request></ns1:XLS>";return c}Utils={};Utils.formatDate2String= function(a){if(!a){return null}if(!(a instanceof Date)){return null}var g="";g+=(a.getYear()+1900);g+="-";var d=a.getMonth()+1;g+=(d>9)?(d):("0"+d);g+="-";g+=(a.getDate()>9)?(a.getDate()):("0"+a.getDate());g+="T";g+=(a.getHours()>9)?(a.getHours()):("0"+a.getHours());g+=":";g+=(a.getMinutes()>9)?(a.getMinutes()):("0"+a.getMinutes());g+=":";g+=(a.getSeconds()>9)?(a.getSeconds()):("0"+a.getSeconds());var f=a.getTimezoneOffset();if(f<0){g+="+";var c=Math.floor((-f)/60);var b=(-f)%60}else{g+="-";c=Math.floor(f/60);b=f%60}g+=(c>9)?(c):("0"+c);g+=":";g+=(b>9)?(b):("0"+b);return g};Utils.validateDateTime= function(b){var a=/^\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}(\.\d+)?(Z|(\+|-)\d{2}\:\d{2})?$/;if(a.test(b)){return true}return false};Utils.validateTime= function(b){var a=/\d{2}\:\d{2}\:\d{2}(\.\d+)?(Z|(\+|-)\d{2}\:\d{2})?/;if(a.test(b)){return true}else{return false}};function Vehicle(a){this.id=0;this.positions=[];this.init= function(b){for(var c in b){if(b.hasOwnProperty(c)){this[c]=b[c]}}};this.init(a)};
