var AjaxMapsConfig=new NaviciAjaxConfiguration();AjaxMapsConfig.LANGUAGE="en";AjaxMapsConfig.SERVER_SIDE_FILE="/MapPortlet/jsp/util/reqCom.jsp";AjaxMapsConfig.MAP_IMAGEPATH="/MapPortlet/images";AjaxMapsConfig.MAP_START_X=3385850;AjaxMapsConfig.MAP_START_Y=6674957;AjaxMapsConfig.MAP_MIN_X=3000000;AjaxMapsConfig.MAP_MAX_X=3800000;AjaxMapsConfig.MAP_MIN_Y=6570000;AjaxMapsConfig.MAP_MAX_Y=7850000;AjaxMapsConfig.scales[11]=3172.931125;AjaxMapsConfig.scales[10]=794.034895;AjaxMapsConfig.scales[9]=264.639239;AjaxMapsConfig.scales[8]=132.291931;AjaxMapsConfig.scales[7]=26.458386;AjaxMapsConfig.scales[6]=13.229193;AjaxMapsConfig.scales[5]=6.614597;AjaxMapsConfig.scales[4]=4.234905;AjaxMapsConfig.scales[3]=2.116577;AjaxMapsConfig.scales[2]=1.411246;AjaxMapsConfig.scales[1]=0.5;AjaxMapsConfig.SCALEBAR_TOOLTIPS[11]="1:12.000.000";AjaxMapsConfig.SCALEBAR_TOOLTIPS[10]="1:3.000.000";AjaxMapsConfig.SCALEBAR_TOOLTIPS[9]="1:1.000.000";AjaxMapsConfig.SCALEBAR_TOOLTIPS[8]="1:500.000";AjaxMapsConfig.SCALEBAR_TOOLTIPS[7]="1:100.000";AjaxMapsConfig.SCALEBAR_TOOLTIPS[6]="1:50.000";AjaxMapsConfig.SCALEBAR_TOOLTIPS[5]="1:25.000";AjaxMapsConfig.SCALEBAR_TOOLTIPS[4]="1:16.000";AjaxMapsConfig.SCALEBAR_TOOLTIPS[3]="1:8.000";AjaxMapsConfig.SCALEBAR_TOOLTIPS[2]="1:5.300";AjaxMapsConfig.SCALEBAR_TOOLTIPS[1]="1:1.900";AjaxMapsConfig.SCALEBAR_TOOLTIPS_OFF_X=-55;AjaxMapsConfig.availableImages=null;AjaxMapsConfig.MAP_MAX_ZOOM=11;AjaxMapsConfig.MAP_MIN_ZOOM=2;AjaxMapsConfig.MAP_INI_ZOOM=6;AjaxMapsConfig.CREATE_MAP_MENU=false;AjaxMapsConfig.CREATE_INDEXMAP=false;AjaxMapsConfig.MAP_FIXEDSIZE=false;AjaxMapsConfig.MAP_WIDTH=600;AjaxMapsConfig.MAP_HEIGHT=400;AjaxMapsConfig.MAP_MARGIN_RIGHT=15;AjaxMapsConfig.MAP_MARGIN_BOTTOM=10;AjaxMapsConfig.MAP_MARGIN_RIGHT=15;AjaxMapsConfig.MAP_MARGIN_BOTTOM=0;AjaxMapsConfig.MAP_AREA="MapArea";AjaxMapsConfig.LAYERS.push({type:"Map",format:"png",view:"background",label:"Map"});AjaxMapsConfig.LAYERS.push({type:"Aerial",format:"jpeg",view:"background",label:"Aerial"});AjaxMapsConfig.LAYERS.push({type:"Hybrid",format:"jpeg",view:"background",label:"Hybrid"});AjaxMapsConfig.LAYERS.push({type:"Dynamic",format:"png",view:"dynamic",label:""});AjaxMapsConfig.LAYERS.push({type:"Topo",format:"jpeg",view:"background",label:"Topo"});if(!this.JSON){JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z"};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==="string"){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")}return str("",{"":value})}}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}());var naviciAjaxApi=null;close_bar_shown=true;var markers_shown=false;var mapMarkers=new Array();var mapPopups=new Array();var mapGroupedMarkers=new Array();var mapMarkerGroups=new Array();var searchMarker=null;var currentPopup=null;var mapWidth=535;var mapHeight=275;var mapMinX=3007940;var mapMinY=6577956;var mapMaxX=3767038;var mapMaxY=7865881;var WGS_COORDS=5;var KKJ_COORDS=3;var useDoubleClickDefault=true;var useMarkerIndication=false;var markerIndicatorObject=null;var longitudeHtmlId;var latitudeHtmlId;var zoomLevelHtmlId;var longitudePicked;var latitudePicked;var initialXcoord;var initialYCoord;var mapReadyForLoading=false;var noMatchesFoundPopupOpened=false;var noInputPopupOpened=false;var chooseCoordinateCommunitieInstance=false;function mapLoadTest(){var xcoord=Number(3385850);var ycoord=Number(6674957);for(var i=0;i<100;i++){var coordinations=convertKKJtoWGS(xcoord,ycoord);var xcoord_wgs=Number(coordinations[0]);var ycoord_wgs=Number(coordinations[1]);mapAddMarker("",xcoord_wgs,ycoord_wgs,"","map_marker_numbered_pink",false,false,false,"");xcoord=xcoord+100;ycoord=ycoord+100}}function mapCmsPoiCheckBoxCallback(){if(1==2){if(jQuery("#mapCheckboxPoiAccommodation:checked").val()==1){var map=naviciAjaxApi.getMap();map.addMapMovedCallback(mapCmsPoiRequest);mapCmsPoiRequest()}}}function mapCmsPoiRequest(){if(jQuery("#mapCheckboxPoiAccommodation:checked").val()==1){jQuery("#mapLoadingStatusCmsPoi").replaceWith('<div id="mapLoadingStatusCmsPoi" class="mapLoadingStatusCmsPoi">'+jQuery("#mapHiddenLoadingStatusCmsPoi").val()+"</div>");var mapInfo=naviciAjaxApi.getMapInfos();var topLeftX=mapInfo.centerX-(mapInfo.width*AjaxMapsConfig.scales[mapInfo.zoom])/2;var topLeftY=mapInfo.centerY+(mapInfo.height*AjaxMapsConfig.scales[mapInfo.zoom])/2;var bottomRightX=mapInfo.centerX+(mapInfo.width*AjaxMapsConfig.scales[mapInfo.zoom])/2;var bottomRightY=mapInfo.centerY-(mapInfo.height*AjaxMapsConfig.scales[mapInfo.zoom])/2;var topLeft_wgs=convertKKJtoWGS(topLeftX,topLeftY);var viewMinX=topLeft_wgs[0];var viewMaxY=topLeft_wgs[1];var bottomRight_wgs=convertKKJtoWGS(bottomRightX,bottomRightY);var viewMaxX=bottomRight_wgs[0];var viewMinY=bottomRight_wgs[1];if(1==2){MapPortletDwrService.getCmsPoi(viewMinY,viewMaxY,viewMinX,viewMaxX,-1,function(response){jQuery("#mapLoadingStatusCmsPoi").replaceWith('<div id="mapLoadingStatusCmsPoi"></div>');var obj=JSON.parse(response);jQuery.each(obj.items,function(){mapAddMarker("",this.longitude,this.latitude,"","map_marker_numbered_pink",false,false,false,"<b>"+this.title+"</b>")})})}}}function mapGroupMarkers(){var mapInfo=naviciAjaxApi.getMapInfos();var topLeftX=mapInfo.centerX-(mapInfo.width*AjaxMapsConfig.scales[mapInfo.zoom])/2;var topLeftY=mapInfo.centerY+(mapInfo.height*AjaxMapsConfig.scales[mapInfo.zoom])/2;var bottomRightX=mapInfo.centerX+(mapInfo.width*AjaxMapsConfig.scales[mapInfo.zoom])/2;var bottomRightY=mapInfo.centerY-(mapInfo.height*AjaxMapsConfig.scales[mapInfo.zoom])/2;var mapDiffX=Number(bottomRightX-topLeftX).toFixed(3);var mapDiffY=Number(topLeftY-bottomRightY).toFixed(3);alert(mapDiffX+" | "+mapDiffY);var groupMark=Number(10);for(var i=0;i<mapMarkers.length;i++){for(var j=0;j<mapMarkers.length;j++){diffX=Number(mapMarkers[i].getAttribute("mapxcoord",0)-mapMarkers[j].getAttribute("mapxcoord",0)).toFixed(3);diffY=Number(mapMarkers[i].getAttribute("mapycoord",0)-mapMarkers[j].getAttribute("mapycoord",0)).toFixed(3);if(diffX<0){diffX=diffX*(-1)}if(diffY<0){diffY=diffY*(-1)}if((i!=j)&((diffX<(mapDiffX/100))||(diffY<(mapDiffY/100)))){var markerGroup=mapAddNumberedMarkerKKJ3("","23",mapMarkers[i].getAttribute("mapxcoord",0),mapMarkers[i].getAttribute("mapycoord",0),"","map_marker_numbered_pink",false,false,false,"");markerGroup.setAttribute("markergroup","true",0);mapGroupedMarkers.push(mapMarkers[i]);mapGroupedMarkers.push(mapMarkers[j]);jQuery(mapMarkers[i]).css("display","none");jQuery(mapMarkers[j]).css("display","none");mapMarkers.splice(i,1);mapMarkers.splice(j,1);mapMarkerGroups.push(markerGroup);alert("Grouped markers: "+mapGroupedMarkers.length)}}}}function positionInfo(map,mousePosition){var posTimerId=setTimeout(setPosition,50);function setPosition(){clearTimeout(posTimerId);var mapInfos=map.getInfo();var coordinations=convertKKJtoWGS(mapInfos.mouseCoordX,mapInfos.mouseCoordY);var longitude=Number(coordinations[0]).toFixed(5);var latitude=Number(coordinations[1]).toFixed(5);mousePosition.innerHTML="Longitude: "+longitude+"<br />Latitude: "+latitude;posTimerId==setTimeout(setPosition,50)}}function mapNoMatchesPopupCloseCallback(){noMatchesFoundPopupOpened=false}function mapNoInputPopupCloseCallback(){noMatchesFoundPopupOpened=false}function myAddressSearchResults(id,key,locations,status){if(locations!=null&&locations.length>0){var x=parseFloat(locations[0].getX());var y=parseFloat(locations[0].getY());naviciAjaxApi.setMapCenter(x,y)}}function clearAddressSearch(){var aInput=util.attach("Address_name");aInput.value=""}function mapChooseCoordinate(){var map=naviciAjaxApi.getMap();var mapInfos=map.getInfo();var xcoord=Math.round(mapInfos.mouseCoordX);var ycoord=Math.round(mapInfos.mouseCoordY);map.setCenter(xcoord,ycoord);var coordinations=convertKKJtoWGS(xcoord,ycoord);var xcoord=Number(coordinations[0]).toFixed(6);var ycoord=Number(coordinations[1]).toFixed(6);window.opener.document.getElementById(latitudeHtmlId).value=xcoord;window.opener.document.getElementById(longitudeHtmlId).value=ycoord;if((zoomLevelHtmlId!="")&&(zoomLevelHtmlId!="null")){window.opener.document.getElementById(zoomLevelHtmlId).value=naviciAjaxApi.getMapZoom()}if(markerIndicatorObject!=null){naviciAjaxApi.deleteDivMarker(markerIndicatorObject)}markerIndicatorObject=mapAddMarker("",xcoord,ycoord,"","map_marker_numbered_pink",false,false,false,"");alert("Coordinates have been put into according fields!\n\nLatitude: "+ycoord+"\nLongitude: "+xcoord)}function mapChooseCoordinateCommunity(){var map=naviciAjaxApi.getMap();var mapInfos=map.getInfo();var xcoordKKJ=Math.round(mapInfos.mouseCoordX);var ycoordKKJ=Math.round(mapInfos.mouseCoordY);var coordinations=convertKKJtoWGS(xcoordKKJ,ycoordKKJ);var xcoord=Number(coordinations[0]).toFixed(6);var ycoord=Number(coordinations[1]).toFixed(6);jQuery("#hiddenLatitude").val(ycoord);jQuery("#hiddenLongitude").val(xcoord);if(useMarkerIndication==false){alert("Your location was saved.\n\nLatitude: "+ycoord+"\nLongitude: "+xcoord)}else{if(markerIndicatorObject!=null){naviciAjaxApi.deleteDivMarker(markerIndicatorObject)}markerIndicatorObject=mapAddMarker("",xcoord,ycoord,"","map_marker_numbered_pink",false,false,false,"")}}function mapChooseCoordinateCommunityCancel(){jQuery("#hiddenLatitude").val(latitudePicked);jQuery("#hiddenLongitude").val(longitudePicked);findAndCloseActualModalWindow("#map_view")}function mapChooseCoordinateCommunitySave(){var latitude=Number(jQuery("#hiddenLatitude").val());var longitude=Number(jQuery("#hiddenLongitude").val());if((latitude==0)||(isNaN(latitude))||(longitude==0)||(isNaN(longitude))){var mwc=new ModalWindowContext();mwc.isMessageWindow=true;mwc.caption=jQuery("#mapHiddenCommunitySaveWithoutCoordinatesTitle").val();mwc.message=jQuery("#mapHiddenCommunitySaveWithoutCoordinates").val();mwc.onCloseFunction=mapNoInputPopupCloseCallback;showModalWindow(mwc)}else{findAndCloseActualModalWindow("#map_view")}}function mapGoToInitializedCoordinates(){if((initialXcoord!=null)&&(Number(initialXcoord)>0)&&(initialYcoord!=null)&&(Number(initialYcoord)>0)){mapGoToKKJ(initialXcoord,initialYcoord,-1,"","",false,"")}}function mapZoomIn(){naviciAjaxApi.setMapZoom(naviciAjaxApi.getMapZoom()-1)}function mapZoomOut(){naviciAjaxApi.setMapZoom(naviciAjaxApi.getMapZoom()+1)}function mapSetZoom(zoom){naviciAjaxApi.setMapZoom(zoom)}function mapClearLayer(){for(var i=0;i<mapMarkers.length;i++){naviciAjaxApi.deleteDivMarker(mapMarkers[i])}}function mapGoTo(xcoord,ycoord,zoom,imageCssClass,label,popupOpened,popupPayload){var coordinations=convertWGStoKKJ(xcoord,ycoord);var xcoord=Number(coordinations[0]).toFixed(1);var ycoord=Number(coordinations[1]).toFixed(1);if((xcoord>mapMinX)&&(xcoord<mapMaxX)&&(ycoord>mapMinY)&&(ycoord<mapMaxY)&((xcoord!=null)&&(ycoord!=null))){if(searchMarker!==null){naviciAjaxApi.deleteDivMarker(searchMarker)}if(Number(zoom)!=-1){naviciAjaxApi.setMapZoom(zoom)}naviciAjaxApi.setMapCenter(xcoord,ycoord);if(imageCssClass!==""){searchMarker=mapAddMarker(xcoord,ycoord,label,imageCssClass,0,popupOpened,popupPayload)}}}function mapGoToKKJ(xcoord,ycoord,zoom,imageCssClass,label,popupOpened,popupPayload){if((xcoord>mapMinX)&&(xcoord<mapMaxX)&&(ycoord>mapMinY)&&(ycoord<mapMaxY)&((xcoord!=null)&&(ycoord!=null))){if(searchMarker!==null){naviciAjaxApi.deleteDivMarker(searchMarker)}if(Number(zoom)!=-1){naviciAjaxApi.setMapZoom(zoom)}naviciAjaxApi.setMapCenter(xcoord,ycoord);if(imageCssClass!==""){searchMarker=mapAddMarker(xcoord,ycoord,label,imageCssClass,0,popupOpened,popupPayload)}}}function mapGoToMarker(number,zoom,openPopup){var markerDiv=null;for(var i=0;i<mapMarkers.length;i++){if(Number(mapMarkers[i].getAttribute("markernumber",0))==number){markerDiv=mapMarkers[i];break}}if(markerDiv!=null){var xCoord=Number(markerDiv.getAttribute("mapxcoord",0));var yCoord=Number(markerDiv.getAttribute("mapycoord",0));if(Number(zoom)!=-1){naviciAjaxApi.setMapZoom(zoom)}else{naviciAjaxApi.setMapZoom(6)}naviciAjaxApi.setMapCenter(xCoord,yCoord);if(openPopup==true){for(var i=0;i<mapPopups.length;i++){if((Number(mapPopups[i].getAttribute("markernumber",0))!=-1)&&(Number(mapPopups[i].getAttribute("markernumber",0))==number)){mapPopups[i].style.display="block";mapFixPanForPopup(markerDiv,0,0)}else{mapPopups[i].style.display="none"}}}}}function mapFixPanForPopup(markerDiv,xCoord,yCoord){var mapInfo=naviciAjaxApi.getMapInfos();var basePanX=2275;var basePanY=1244;var baseMulti=1;switch(Number(mapInfo.zoom)){case 1:baseMulti=0.038;break;case 2:baseMulti=0.106;break;case 3:baseMulti=0.16;break;case 4:baseMulti=0.32;break;case 5:baseMulti=0.5;break;case 6:break;case 7:baseMulti=2;break;case 8:baseMulti=10;break;case 9:baseMulti=20;break;case 10:baseMulti=60;break;case 11:baseMulti=240;break}if((Number(xCoord)==0)&&(Number(yCoord)==0)){var markerX=Number(markerDiv.getAttribute("mapxcoord",0))+(basePanX*baseMulti);var markerY=Number(markerDiv.getAttribute("mapycoord",0))+(basePanY*baseMulti)}else{var markerX=xCoord+(basePanX*baseMulti);var markerY=yCoord+(basePanY*baseMulti)}naviciAjaxApi.setMapCenter(markerX,markerY)}function mapFixZoomForMarkers(){var maxX=0;var maxY=0;var minX=0;var minY=0;for(var i=0;i<mapMarkers.length;i++){if(i==0){naviciAjaxApi.setMapZoom(6);maxX=mapMarkers[i].getAttribute("mapxcoord",0);maxY=mapMarkers[i].getAttribute("mapycoord",0);minX=mapMarkers[i].getAttribute("mapxcoord",0);minY=mapMarkers[i].getAttribute("mapycoord",0)}else{if(mapMarkers[i].getAttribute("mapxcoord",0)>maxX){maxX=mapMarkers[i].getAttribute("mapxcoord",0)}else{if(mapMarkers[i].getAttribute("mapxcoord",0)<minX){minX=mapMarkers[i].getAttribute("mapxcoord",0)}}if(mapMarkers[i].getAttribute("mapycoord",0)>maxY){maxY=mapMarkers[i].getAttribute("mapycoord",0)}else{if(mapMarkers[i].getAttribute("mapycoord",0)<minY){minY=mapMarkers[i].getAttribute("mapycoord",0)}}}}var diffX=Number((maxX-minX)/2).toFixed(0);diffX=Number(Number(diffX)+Number(minX)).toFixed(0);var diffY=Number((maxY-minY)/2).toFixed(0);diffY=Number(Number(diffY)+Number(minY));naviciAjaxApi.setMapCenter(diffX,diffY);var mapInfo=naviciAjaxApi.getMapInfos();var topLeftX=mapInfo.centerX-(mapInfo.width*AjaxMapsConfig.scales[mapInfo.zoom])/2;var topLeftY=mapInfo.centerY+(mapInfo.height*AjaxMapsConfig.scales[mapInfo.zoom])/2;var bottomRightX=mapInfo.centerX+(mapInfo.width*AjaxMapsConfig.scales[mapInfo.zoom])/2;var bottomRightY=mapInfo.centerY-(mapInfo.height*AjaxMapsConfig.scales[mapInfo.zoom])/2;while(true){mapInfo=naviciAjaxApi.getMapInfos();topLeftX=mapInfo.centerX-(mapInfo.width*AjaxMapsConfig.scales[mapInfo.zoom])/2;topLeftY=mapInfo.centerY+(mapInfo.height*AjaxMapsConfig.scales[mapInfo.zoom])/2;bottomRightX=mapInfo.centerX+(mapInfo.width*AjaxMapsConfig.scales[mapInfo.zoom])/2;bottomRightY=mapInfo.centerY-(mapInfo.height*AjaxMapsConfig.scales[mapInfo.zoom])/2;if((minX>topLeftX)&&(minY>bottomRightY)&&(maxX<bottomRightX)&&(maxY<topLeftY)){break}else{if(naviciAjaxApi.getMapZoom()<11){mapZoomOut()}else{break}}}}function convertKKJtoWGS(x,y){var Long0=27;Long0=deg2rad(Long0);var MinLa=deg2rad(59);var MaxLa=deg2rad(70.5);var MinLo=deg2rad(18.5);var MaxLo=deg2rad(32);var lalo_la=0;var lalo_lo=0;for(var i=1;i<35;i++){var DeltaLa=MaxLa-MinLa;var DeltaLo=MaxLo-MinLo;lalo_la=(MinLa+0.5*DeltaLa);lalo_lo=(MinLo+0.5*DeltaLo);var coords=KKJLaLo_to_KKJxy(lalo_la,lalo_lo,Long0);var tempY=coords[1];var tempX=coords[0];if(tempY<y){MinLa=(MinLa+0.45*DeltaLa)}else{MaxLa=(MinLa+0.55*DeltaLa)}if(tempX<x){MinLo=(MinLo+0.45*DeltaLo)}else{MaxLo=(MinLo+0.55*DeltaLo)}}var La=rad2deg(lalo_la);var Lo=rad2deg(lalo_lo);var dLa=deg2rad(1.24867+-0.269982*La+0.19133*Lo+0.00356119*La*La+-0.00122312*La*Lo+-0.000335514*Lo*Lo)/3600;var dLo=deg2rad(-28.6111+1.14183*La+-0.581428*Lo+-0.0152421*La*La+0.0118177*La*Lo+0.000826646*Lo*Lo)/3600;lalo_la=lalo_la+dLa;lalo_lo=lalo_lo+dLo;var degY=rad2deg(lalo_la)+1e-10;degY=Math.round(degY*Math.pow(10,WGS_COORDS))/Math.pow(10,WGS_COORDS);var degX=rad2deg(lalo_lo)+1e-10;degX=Math.round(degX*Math.pow(10,WGS_COORDS))/Math.pow(10,WGS_COORDS);return new Array(degX,degY)}function convertWGStoKKJ(x,y){var latitude=this.deg2rad(y);var longitude=this.deg2rad(x);var la=this.rad2deg(latitude);var lo=this.rad2deg(longitude);var dLa=this.deg2rad(-1.24766+0.269941*la+-0.191342*lo+-0.00356086*la*la+0.00122353*la*lo+0.000335456*lo*lo)/3600;var dLo=this.deg2rad(28.6008+-1.14139*la+0.581329*lo+0.0152376*la*la+-0.0118166*la*lo+-0.000826201*lo*lo)/3600;var lat=latitude+dLa;var lon=longitude+dLo;var long0=this.deg2rad(3*3+18);var coords=KKJLaLo_to_KKJxy(lat,lon,long0);var tempY=Math.round(coords[1]*Math.pow(10,KKJ_COORDS))/Math.pow(10,KKJ_COORDS);var tempX=Math.round(coords[0]*Math.pow(10,KKJ_COORDS))/Math.pow(10,KKJ_COORDS);return new Array(tempX,tempY)}function KKJLaLo_to_KKJxy(lat,lon,long0){var ZoneNumber=3;var lo=lon-long0;var a=6378388;var f=1/297;var b=(1-f)*a;var bb=b*b;var c=(a/b)*a;var ee=(a*a-bb)/bb;var n=(a-b)/(a+b);var nn=n*n;var cosLa=Math.cos(lat);var NN=ee*cosLa*cosLa;var LaF=Math.atan(Math.tan(lat)/Math.cos(lo*Math.sqrt(1+NN)));var cosLaF=Math.cos(LaF);var t=(Math.tan(lo)*cosLaF)/Math.sqrt(1+ee*cosLaF*cosLaF);var A=a/(1+n);var A1=A*(1+nn/4+nn*nn/64);var A2=A*1.5*n*(1-nn/8);var A3=A*0.9375*nn*(1-nn/4);var A4=A*35/48*nn*n;var tempY=A1*LaF-A2*Math.sin(2*LaF)+A3*Math.sin(4*LaF)-A4*Math.sin(6*LaF);var tempX=c*Math.log(t+Math.sqrt(1+t*t))+500000+ZoneNumber*1000000;var coords=new Array(tempX,tempY);return coords}function deg2rad(degrees){var rads=degrees*((2*Math.PI)/360);return rads}function rad2deg(rads){var degs=rads*(180/Math.PI);return degs}function worldmercator2wgs84(x,y){var r=6378137;var lon=rad2deg(x/r);var f=1/298.257223563;var e=Math.sqrt(2*f-Math.pow(f,2));var t=Math.pow(Math.E,(-1*y)/r);var lat=Math.PI/2-2*Math.atan(t);for(var i=0;i<10;i++){var temp=lat;lat=(Math.PI/2)-(2*Math.atan(t*Math.pow((1-e*Math.sin(temp))/(1+e*Math.sin(temp)),(e/2))))}var lat=rad2deg(lat);return new Array({lon:lon,lat:lat})}function wgs842worldmercator(lon,lat){var a=6378137;var f=(1/298.257223563);var e=Math.sqrt(2*f-Math.pow(f,2));var lat=deg2rad(lat);var lon=deg2rad(lon);var esin=e*Math.sin(lat);var x=a*lon;var y=a*Math.log(Math.tan(Math.PI/4+lat/2)*Math.pow(((1-esin)/(1+esin)),(e/2)));return new Array({x:x,y:y})}function sinh(x){return(Math.exp(x)-Math.exp(-x))/2}function asinh(x){return Math.log(x+Math.sqrt(1+x*x))}function initUserArea(){var userDiv=util.attach("page_user_area");userDiv.onmouseover=new ose(userDiv);userDiv.onmouseout=new ohe(userDiv);var userDiv2=util.attach("page_user_area2");userDiv2.onmouseover=new ose(userDiv2);userDiv2.onmouseout=new ohe(userDiv2);userDiv2.style.visibility="hidden";function ose(elem){var _elem=elem;return function(event){_elem.className="opacityShow"}}function ohe(elem){var _elem=elem;return function(event){_elem.className="opacityHide"}}function showFull(shown){if(shown){resultArea.style.height="150px";resultArea.style.overflow="auto"}}function showFullAddress(shown){if(shown){addressArea.style.height="auto";addressArea.style.overflow="auto"}}function showFullRouting(shown){if(shown){routingArea.style.height="auto";routingArea.style.overflow="auto"}}function showFullPoi(shown){if(shown){poiArea.style.height="auto";poiArea.style.overflow="auto"}}function showFullProx(shown){if(shown){pArea.style.height="auto";pArea.style.overflow="auto"}}}var poi=null;function showPoiInfoDiv(id){return function(event){var elem=util.attach("poi_info_div_"+id);elem.style.display="block";elem.style.left=event.clientX+"px";elem.style.top=event.clientY+"px";mapFixPanForPopup(markerDiv,0,0)}}function PoiHandling(naviciAjaxApi,ulId,fromSearchObject,toSearchObject){var poiPopFormatter=new PoiPopupFormatterNavici();naviciAjaxApi.setPoiPopupFormatter(poiPopFormatter);naviciAjaxApi.startPoiManager(200,"Point of Interest","Click");this.setPoiCategory=setPoiCategory;this.setPoi=setPoi;this.buttonEvent=buttonEvent;resetCheckboxes(util.attach(ulId));function setButtons(target,text){var poiFormatter=naviciAjaxApi.getPoiPopupFormatter();var button=util.createElement("a");button.className="poi_button";var buttonText=document.createTextNode(text);button.appendChild(buttonText);button.onclick=function(){return poi.buttonEvent(this,target)};poiFormatter.addElement(button)}function buttonEvent(x,y,address,target){var loc=new MapLocation(x,y);loc.setAttribute("name",address);if(target=="start"){fromSearchObject.setLocation(loc)}else{toSearchObject.setLocation(loc)}}function resetCheckboxes(node){if(node!=null){for(var element=node.firstChild;element!=null;element=element.nextSibling){if(element.nodeName=="INPUT"&&element.type=="checkbox"){element.checked=false}else{resetCheckboxes(element)}}}}function setPoi(callingObject,category,subcategory,redraw){naviciAjaxApi.setPoiVisibility(category,subcategory,null,callingObject.checked);naviciAjaxApi.redrawDynamicLayer()}function setPoiCategory(callingObject){var node=callingObject.nextSibling;for(;node!=null&&node.nodeName!="UL";node=node.nextSibling){}for(var listitem=node.firstChild;listitem!=null;listitem=listitem.nextSibling){var element=listitem.firstChild;if(element!=null&&element.nodeName=="INPUT"&&element.type=="checkbox"){element.checked=callingObject.checked;element.onclick()}}naviciAjaxApi.redrawDynamicLayer()}}function searchObject(objectId,divName,caption,cssClass,naviciAjaxApi,cb,autoSuggestion){var _cb=cb;var currentMarkerDiv=null;var searchDiv=util.attach(divName);var input=util.attach(divName+"_name");input.onkeyup=keyPressed;var ddListDiv=util.createElement("div");jQuery(ddListDiv).addClass("dropdown_list");var listDiv=document.getElementsByTagName("body");listDiv[0].appendChild(ddListDiv);var mapMainDivNode=util.attach("map_view");var parentAttachObject=jQuery("#"+divName+"_name");var dd_list=new DropDownList(mapMainDivNode,selectSuggestion,"dropdown_list",ddListDiv,5,5);var actualDropDownList=dd_list.getDiv();if(chooseCoordinateCommunitieInstance==true){jQuery(actualDropDownList).css({position:"absolute",top:"70px",left:"68px"})}else{jQuery(actualDropDownList).css({position:"absolute",top:parentAttachObject.offset().top+5,left:parentAttachObject.offset().left-24})}var wobbler=util.createElement("img");wobbler.src="/MapPortlet/images/empty.gif";wobbler.style.width="20px";wobbler.style.height="20px";input.parentNode.appendChild(wobbler);input.value="";var lastInputValue="";var lastGeocodedValue="";var delayTimerId=null;var x=null;var y=null;var mapLocation=null;var parameters=new Array({attributename:"class",attributevalue:"map_menu_"+divName},{attributename:"className",attributevalue:"map_menu_"+divName});var geocoder=new GeoserverGeocodingXml();this.getX=function(){return x};this.getY=function(){return y};this.getLocation=function(){return mapLocation};this.clear=clear;this.setLocation=setLocation;var searchMapButton=jQuery("#showOnMapButton");searchMapButton.click(function(){var address_input_field=jQuery("#Address_name");if(address_input_field.val().length>0){callGeocoding(jQuery("#Address_name").val())}else{if(noInputPopupOpened==false){var mwc=new ModalWindowContext();mwc.isMessageWindow=true;mwc.caption=jQuery("#mapHiddenNoInputTitle").val();mwc.message=jQuery("#mapHiddenNoInputMessage").val();mwc.onCloseFunction=mapNoInputPopupCloseCallback;showModalWindow(mwc);noInputPopupOpened=true}}});start();function start(){if(autoSuggestion){geocoder.setFreeFormStrategy("StartFallbackSoundas")}else{geocoder.setFreeFormStrategy("MatchFallbackStart")}geocoder.addLocationNamePart("POI");geocoder.addLocationNamePart("Street"," ",null,"",null,"");geocoder.addLocationNamePart("StreetAddress"," ",null,"");geocoder.addLocationNamePart("MunicipalitySubdivision",", ",null,"",null,"");geocoder.addLocationNamePart("Municipality",", ",null,"",null,"");geocoder.addLocationOrder("Type","descent");geocoder.addLocationOrder("LocationName")}function clear(withInput){x=null;y=null;mapLocation=null;if(currentMarkerDiv!=null){naviciAjaxApi.deleteDivMarker(currentMarkerDiv)}if(withInput){input.value="";lastInputValue=input.value}}function keyPressed(event){var keyCode=null;var ev=util.getEvent(event);if(ev.keyCode){keyCode=ev.keyCode}else{if(ev.which){keyCode=ev.which}}if(keyCode!=13){lastGeocodedValue=""}if(delayTimerId!=null){clearTimeout(delayTimerId);delayTimerId=null}if(keyCode==13&&input.value.toLowerCase()!=lastGeocodedValue.toLowerCase()){dd_list.empty();clear(false);lastInputValue=input.value;if(input.value.length>=1){callGeocoding(input.value)}}else{if(input.value!=lastInputValue){dd_list.empty();clear(false);lastInputValue=input.value;if(input.value.length>=3&&autoSuggestion){delayTimerId=setTimeout(function(){return callGeocoding(input.value)},250)}else{dd_list.hide()}}}}function callGeocoding(search_key){if(delayTimerId!=null){clearTimeout(delayTimerId);delayTimerId=null}geocoder.setFreeFormKey(search_key);naviciAjaxApi.getAddressByObject(objectId,geocoder,setSuggestions);wobbler.src=AjaxMapsConfig.MAP_IMAGEPATH+"/gs_wobbler.gif";wobbler.title="Searching location";lastGeocodedValue=search_key}function setSuggestions(id,key,locations,status){if(locations!=null&&locations.length>0){wobbler.src="/MapPortlet/images/empty.gif";wobbler.title=""}else{wobbler.src="images/gs_error.gif";wobbler.title="No location found";if(noMatchesFoundPopupOpened==false){var mwc=new ModalWindowContext();mwc.isMessageWindow=true;mwc.caption=jQuery("#mapHiddenNoMatchesTitle").val();mwc.message=jQuery("#mapHiddenNoMatchesMessage").val();mwc.onCloseFunction=mapNoMatchesPopupCloseCallback;showModalWindow(mwc);noMatchesFoundPopupOpened=true}}if(locations!=null&&locations.length==1&&key==lastInputValue&&!autoSuggestion){selectSuggestion(locations[0])}else{if(locations!=null&&locations.length>0&&key==lastInputValue){var suggestions=new Array();for(var i=0;i<locations.length;i++){var caption=locations[i].getLocationName();if(caption!=""){suggestions.push({caption:caption,callbackArgument:locations[i]})}}dd_list.show(suggestions)}}}function selectSuggestion(location){naviciAjaxApi.setMapCenter(location.getX(),location.getY());setLocation(location)}function setXY(id,map_x,map_y,status){if(status==0){clear(true);var printXML='<marker type="image" ';printXML+='x="'+x+'" y="'+y+'" ';printXML+='label="'+encodeURIComponent(caption)+'" ';printXML+='imagename="from.gif" ';printXML+=" />";input.value="["+map_x+","+map_y+"]";x=map_x;y=map_y;currentMarkerDiv=naviciAjaxApi.addDivMarker(cssClass,x,y,caption,-1,-18);currentMarkerDiv.printXML=printXML;var params=Array({attributename:"radius",attributevalue:250});naviciAjaxApi.getAddressByCoordinates(id,map_x,map_y,1,params,setInput)}}function setInput(id,map_x,map_y,locs,status){if(status==0&&locs!=null){setLocation(locs[0])}else{input.value="No Address ["+map_x+","+map_y+"]";x=map_x;y=map_y;lastInputValue=input.value;mapLocation=null}}function setLocation(location){x=location.getX();y=location.getY();input.value=location.getLocationName();lastInputValue=input.value;lastGeocodedValue=input.value;if(currentMarkerDiv!=null){naviciAjaxApi.deleteDivMarker(currentMarkerDiv)}var printXML='<marker type="image" ';printXML+='x="'+x+'" y="'+y+'" ';printXML+='label="'+encodeURIComponent(caption)+'" ';printXML+='imagename="from.gif" ';printXML+=" />";currentMarkerDiv=naviciAjaxApi.addDivMarker(cssClass,x,y,caption,-12,-12);currentMarkerDiv.printXML=printXML}}function routing(naviciAjaxApi,autoSuggestion){var searchFromObject=new searchObject(0,"fromLocation","Start Location","map_marker_green_x",naviciAjaxApi,null,autoSuggestion);var searchToObject=new searchObject(1,"toLocation","End Location","map_marker_red_x",naviciAjaxApi,null,autoSuggestion);var searchViaObject=new searchObject(1,"viaLocation","","map_marker_red_x",naviciAjaxApi,null,autoSuggestion);var routeResultArea=util.attach("routeResultArea");var clearButton=util.attach("clearRouteButton");clearButton.onclick=clearSearch;var searchButton=util.attach("searchRouteButton");searchButton.onclick=getRoute;this.getFromSearchObject=function(){return searchFromObject};this.getToSearchObject=function(){return searchToObject};this.getViaSearchObject=function(){return searchViaObject};var route_id=null;function clearSearch(event){searchFromObject.clear(true);searchToObject.clear(true);if(route_id!=null){naviciAjaxApi.deleteRoute(route_id)}while(routeResultArea.firstChild){routeResultArea.removeChild(routeResultArea.firstChild)}var elem=util.attach("page_user_area2");elem.style.visibility="hidden";naviciAjaxApi.redrawDynamicLayer()}function getRoute(event){if(searchFromObject.getX()==null||searchFromObject.getY()==null){var mwc=new ModalWindowContext();mwc.isMessageWindow=true;mwc.caption=jQuery("#mapHiddenRoutingValidationErrorLabel").val();mwc.message=jQuery("#mapHiddenRoutingValidationErrorHint").val();showModalWindow(mwc);return false}else{if(searchToObject.getX()==null||searchToObject.getY()==null){var mwc=new ModalWindowContext();mwc.isMessageWindow=true;mwc.caption=jQuery("#mapHiddenRoutingValidationErrorLabel").val();mwc.message=jQuery("#mapHiddenRoutingValidationErrorHint").val();showModalWindow(mwc);return false}else{while(routeResultArea.firstChild){routeResultArea.removeChild(routeResultArea.firstChild)}var locations=new Array();locations[0]=searchFromObject.getLocation();if(locations[0]==null){locations[0]=new MapLocation(searchFromObject.getX(),searchFromObject.getY())}if(searchViaObject.getX()!=null&&searchViaObject.getY()!=null){locations[1]=searchViaObject.getLocation();if(locations[1]==null){locations[1]=new MapLocation(searchViaObject.getX(),searchViaObject.getY())}locations[2]=searchToObject.getLocation();if(locations[2]==null){locations[2]=new MapLocation(searchToObject.getX(),searchToObject.getY())}}else{locations[1]=searchToObject.getLocation();if(locations[1]==null){locations[1]=new MapLocation(searchToObject.getX(),searchToObject.getY())}}var parameters=getParameters();route_id=naviciAjaxApi.searchRoute(1,locations,parameters,displayRoute);while(routeResultArea.firstChild){routeResultArea.removeChild(routeResultArea.firstChild)}var elem=util.attach("page_user_area2");elem.style.visibility="visible";var pElem=util.createElement("p");var textNode=document.createTextNode(jQuery("#mapHiddenRoutingInProgress").val());pElem.appendChild(textNode);routeResultArea.appendChild(pElem)}}}function getParameters(){var parameters=new Array();var vehicle=document.getElementsByName("RoutingVehicle");var foundVehicle=false;for(var i=0;i<vehicle.length&&!foundVehicle;i++){if(vehicle[i].checked){foundVehicle=true;parameters.push({attributename:"routeby",attributevalue:vehicle[i].value})}}var type=document.getElementsByName("RoutingType");var foundType=false;for(var i=0;i<type.length&&!foundType;i++){if(type[i].checked){foundType=true;parameters.push({attributename:"optimize",attributevalue:type[i].value})}}return parameters}function displayRoute(id,resultXML,status){while(routeResultArea.firstChild){routeResultArea.removeChild(routeResultArea.firstChild)}var elem=util.attach("page_user_area2");elem.style.visibility="visible";function rowEventHandler(elem,x,y){var _elem=elem;var _x=x;var _y=y;var _divMarker=null;_elem.style.cursor="pointer";_elem.onmouseover=function(){_divMarker=naviciAjaxApi.addDivMarker("TurnMarker",_x,_y,"",-1,-18);_elem.style.color="blue"};_elem.onmouseout=function(){if(_divMarker!==null){naviciAjaxApi.deleteDivMarker(_divMarker);_divMarker=null}_elem.style.color="black"};_elem.onclick=function(){naviciAjaxApi.setMapCenter(_x,_y)}}if(status==0){var result="a";if(result!=null){var fromInput=util.attach("fromLocation_name");var fromText=fromInput.value;var toInput=util.attach("toLocation_name");var toText=toInput.value;var routeElem=resultXML.childNodes[1];var minx=routeElem.getAttribute("minx");var miny=routeElem.getAttribute("miny");var maxx=routeElem.getAttribute("maxx");var maxy=routeElem.getAttribute("maxy");var x=((maxx*1)+(minx*1))/2;var y=((maxy*1)+(miny*1))/2;setMapEnvelope(x,y,minx,maxx,miny,maxy);var routeElem=resultXML.firstChild.firstChild;var durationText=routeElem.getAttribute("time");durationText+=" "+routeElem.getAttribute("timeunit");var durationTextElem=document.createTextNode(durationText);var lengthText=routeElem.getAttribute("distance");lengthText+=" "+routeElem.getAttribute("distanceunit");var lengthTextElem=document.createTextNode(lengthText);turnNodes=routeElem.childNodes;var tableElem=util.createElement("table");tableElem.style.border="none";tableElem.style.padding="0px";tableElem.style.borderSpacing="0px";var tbodyElem=util.createElement("tbody");tableElem.appendChild(tbodyElem);for(var i=0;i<turnNodes.length;i++){var x=turnNodes[i].getAttribute("x");var y=turnNodes[i].getAttribute("y");var durationText=turnNodes[i].getAttribute("tdurat");var durationTextElem=document.createTextNode(durationText);var distanceText=turnNodes[i].getAttribute("tdist");distanceText=distanceText.replace(/ /g,"");var distanceTextElem=document.createTextNode(distanceText);var angle=turnNodes[i].getAttribute("angle");var angleTextElem=document.createTextNode(angle);var turnTextElem=turnNodes[i].firstChild;var turnText=turnTextElem.nodeValue;turnText=turnText.replace(/->/g," -> ");turnTextElem=document.createTextNode(turnText);var rowElem=util.createElement("tr");rowElem.style.padding="0px";tbodyElem.appendChild(rowElem);if(i%2==0){rowElem.style.backgroundColor="#dddddd"}var foo=new rowEventHandler(rowElem,x,y);var colElem=util.createElement("td");rowElem.appendChild(colElem);colElem.appendChild(distanceTextElem);colElem.style.textAlign="right";colElem.style.padding="5px";colElem.style.border="none";colElem.style.margin="0px;";var colElem=util.createElement("td");rowElem.appendChild(colElem);colElem.appendChild(durationTextElem);colElem.style.textAlign="right";colElem.style.padding="5px";colElem.style.border="none";colElem.style.margin="0px;";var colElem=util.createElement("td");rowElem.appendChild(colElem);var imgElem=util.createElement("img");imgElem.src="/MapPortlet/images/"+angle+".gif";colElem.appendChild(imgElem);colElem.style.padding="5px";colElem.style.border="none";colElem.style.margin="0px;";var colElem=util.createElement("td");rowElem.appendChild(colElem);colElem.appendChild(turnTextElem);colElem.style.padding="5px";colElem.style.border="none";colElem.style.margin="0px;"}routeResultArea.appendChild(tableElem);naviciAjaxApi.redrawDynamicLayer();self.location.hash="#searchRouteButton"}}else{routeResultArea.innerHTML="<h4>Error "+status+" in Routing</h4>"}function setMapEnvelope(x,y,minx,maxx,miny,maxy){if(minx==null||minx==""||minx==undefined){naviciAjaxApi.setMapCenter(x,y);return}var map=naviciAjaxApi.getMap();var height=map.getHeight();var width=map.getWidth();var scale=0;var xmin=0;var xmax=0;var ymin=0;var ymax=0;for(var i=AjaxMapsConfig.MAP_MIN_ZOOM;i<=AjaxMapsConfig.MAP_MAX_ZOOM;i++){scale=AjaxMapsConfig.scales[i];ymax=y+(((height)/2)*scale);ymin=y-(((height)/2)*scale);xmax=x+(((width)/2)*scale);xmin=x-(((width)/2)*scale);if((ymax>=maxy)&&(xmax>=maxx)&&(ymin<=miny)&&(xmin<=minx)){var level=i;naviciAjaxApi.setMapZoom(level);naviciAjaxApi.setMapCenter(x,y);return}}naviciAjaxApi.setMapCenter(x,y);naviciAjaxApi.setMapZoom(AjaxMapsConfig.MAP_MAX_ZOOM)}}}var mapHiddenMap=false;function mapPrepareDoubleUsage(){mapHiddenMap=false;if((jQuery("#map_view").css("display")!="none")||((jQuery("#map_view").css("display")=="none")&&(jQuery("#map_view").length>0))){jQuery("#map_view").hide("slow");jQuery("#map_view").attr("id","map_view_2");jQuery("#addressArea").attr("id","addressArea_2");jQuery("#MapArea").attr("id","MapArea_2");if((jQuery("#map_view_2").css("display")=="none")&&(jQuery("#map_view_2").length>0)){mapHiddenMap=true}}else{mapHiddenMap=true}}function mapEndDoubleUsage(){if(mapHiddenMap==false){jQuery("#map_view_2").show("slow");jQuery("#map_view_2").attr("id","map_view");jQuery("#addressArea_2").attr("id","addressArea");jQuery("#MapArea_2").attr("id","MapArea")}}function mapMainTourismRoutes(width,height,zoomLevel,centerX,centerY,routeIdentifier){mapMainParameterized(width,height,zoomLevel,centerX,centerY);var route1=naviciAjaxApi.addDynamicLayerObject('<shape name="data/symbols/navici_poi/'+routeIdentifier+'"/>');naviciAjaxApi.redrawDynamicLayer()}function mapMainParameterized(width,height,zoomLevel,centerX,centerY){if((Number(width)>0)&&(Number(height)>0)){mapWidth=width;mapHeight=height}else{mapWidth=535;mapHeight=430}mapReadyForLoading=true;mapmain();mapReadyForLoading=false;if((Number(centerX)>0)&&(Number(centerY)>0)){var coordinations=convertWGStoKKJ(centerX,centerY);var xcoord=Number(coordinations[0]).toFixed(1);var ycoord=Number(coordinations[1]).toFixed(1);naviciAjaxApi.setMapCenter(xcoord,ycoord)}else{naviciAjaxApi.setMapCenter(3428068,7213509)}if(Number(zoomLevel)>0){naviciAjaxApi.setMapZoom(zoomLevel)}else{naviciAjaxApi.setMapZoom(11)}}function mapMainChooseCoordinates(longitudeId,latitudeId,zoomId,mapWidth,mapHeight){longitudeHtmlId=longitudeId;latitudeHtmlId=latitudeId;zoomLevelHtmlId=zoomId;var longitudeValue=window.opener.document.getElementById(longitudeHtmlId).value;var latitudeValue=window.opener.document.getElementById(latitudeHtmlId).value;var zoomLevelValue=null;if((zoomLevelHtmlId!="")&&(zoomLevelHtmlId!="null")){zoomLevelValue=window.opener.document.getElementById(zoomLevelHtmlId).value}useDoubleClickDefault=false;mapMainParameterized(mapWidth,mapHeight,0,0,0);if((longitudeValue!=null)&&(longitudeValue.length>0)&&(latitudeValue!=null)&&(latitudeValue.length>0)){var coordinations=convertWGStoKKJ(latitudeValue,longitudeValue);initialXcoord=Number(coordinations[0]).toFixed(6);initialYcoord=Number(coordinations[1]).toFixed(6);naviciAjaxApi.setMapCenter(initialXcoord,initialYcoord);if(zoomLevelValue!=null){naviciAjaxApi.setMapZoom(Number(zoomLevelValue))}else{naviciAjaxApi.setMapZoom(4)}}else{naviciAjaxApi.setMapCenter(3428068,7213509);naviciAjaxApi.setMapZoom(11)}var map=naviciAjaxApi.getMap();map.addDoubleClickCallback(mapChooseCoordinate);var mousePosition=util.attach("mousePosition");if(mousePosition!=null){positionInfo(map,mousePosition)}}function mapMainChooseCoordinatesCommunity(mapWidth,mapHeight,useMarker){chooseCoordinateCommunitieInstance=true;useMarkerIndication=useMarker;longitudePicked=0;latitudePicked=0;var longitudeValue=jQuery("#hiddenLongitude").val();var latitudeValue=jQuery("#hiddenLatitude").val();useDoubleClickDefault=false;if((mapWidth>0)&&(mapHeight>0)){mapMainParameterized(mapWidth,mapHeight,0,0,0)}else{mapMainParameterized(535,275,0,0,0)}if((longitudeValue!=null)&&(longitudeValue.length>0)&&(longitudeValue!="null")&&(Number(longitudeValue)>0)&&(latitudeValue!=null)&&(latitudeValue.length>0)&&(latitudeValue!="null")&&(Number(latitudeValue)>0)){longitudePicked=longitudeValue;latitudePicked=latitudeValue;var coordinations=convertWGStoKKJ(longitudeValue,latitudeValue);initialXcoord=Number(coordinations[0]).toFixed(6);initialYcoord=Number(coordinations[1]).toFixed(6);naviciAjaxApi.setMapCenter(initialXcoord,initialYcoord)}else{longitudePicked=Number(0);latitudePicked=Number(0)}var map=naviciAjaxApi.getMap();map.addDoubleClickCallback(mapChooseCoordinateCommunity)}function mapmain(){if(mapReadyForLoading==true){var windowDimensions=Tools.getWindowDimensions();var mapAreaElem=Tools.getElement("MapArea");var mapAreaPosition=Tools.getElementPosition(mapAreaElem);AjaxMapsConfig.MAP_FIXEDSIZE=true;AjaxMapsConfig.MAP_WIDTH=mapWidth;AjaxMapsConfig.MAP_HEIGHT=mapHeight;mapAreaElem.style.height=(mapHeight)+"px";mapAreaElem.style.width=(mapWidth)+"px";mapAreaElem.style.backgroundColor="blue";var mapViewDiv=jQuery("#map_view");jQuery(mapViewDiv).css("width",mapWidth+"px");naviciAjaxApi=new NaviciAjaxApi();naviciAjaxApi.start(AjaxMapsConfig);naviciAjaxApi.setLanguage("en");var map=naviciAjaxApi.getMap();map.deleteDoubleClickCallback(0);var zoomIn=function(mapInfo){var zoom=mapInfo.zoom;var x=mapInfo.mouseCoordX;var y=mapInfo.mouseCoordY;zoom-=1;naviciAjaxApi.setMapZoom(zoom);naviciAjaxApi.setMapCenter(x,y)};if(useDoubleClickDefault==true){map.addDoubleClickCallback(zoomIn)}try{var addressSearchObject=new searchObject(5,"Address","","map_marker_green_x",naviciAjaxApi,null,false)}catch(e){}try{var routingObject=new routing(naviciAjaxApi,false)}catch(e){}try{poi=new PoiHandling(naviciAjaxApi,"pois",routingObject.getFromSearchObject(),routingObject.getToSearchObject())}catch(e){poi=new PoiHandling(naviciAjaxApi,"pois",null,null)}}}function mapAddMarker(category,xcoord,ycoord,label,imageCssClass,resetMapPos,calculateZoomLevel,popupOpened,popupPayload){var coordinations=convertWGStoKKJ(xcoord,ycoord);var xcoord=Number(coordinations[0]).toFixed(1);var ycoord=Number(coordinations[1]).toFixed(1);if((xcoord>mapMinX)&&(xcoord<mapMaxX)&&(ycoord>mapMinY)&&(ycoord<mapMaxY)&((xcoord!=null)&&(ycoord!=null))){var item;if((imageCssClass=="")||(imageCssClass==null)){imageCssClass="map_marker_numbered_pink"}naviciAjaxApi.setMapZoom(0);item=naviciAjaxApi.addDivMarker(imageCssClass,xcoord,ycoord,label,-12,-32);mapMarkers.push(item);item.setAttribute("mapcategory",category,0);item.setAttribute("mapxcoord",xcoord,0);item.setAttribute("mapycoord",ycoord,0);if((popupPayload!=null)&&(popupPayload.length>0)){mapAddPopup(item,"-1",xcoord,ycoord,popupOpened,popupPayload)}naviciAjaxApi.redrawDynamicLayer();if(resetMapPos==true){naviciAjaxApi.setMapCenter(AjaxMapsConfig.MAP_START_X,AjaxMapsConfig.MAP_START_Y)}if(calculateZoomLevel==true){mapFixZoomForMarkers()}return item}}function mapAddNumberedMarker(category,number,xcoord,ycoord,label,imageCssClass,resetMapPos,calculateZoomLevel,popupOpened,popupPayload){var coordinations=convertWGStoKKJ(xcoord,ycoord);var xcoord=Number(coordinations[0]).toFixed(1);var ycoord=Number(coordinations[1]).toFixed(1);if((xcoord>mapMinX)&&(xcoord<mapMaxX)&&(ycoord>mapMinY)&&(ycoord<mapMaxY)){var item;var markerCssClass="map_marker_numbered_pink";if(imageCssClass=="gray"){markerCssClass="map_marker_numbered_gray"}else{if(imageCssClass.length>0){markerCssClass=imageCssClass}}naviciAjaxApi.setMapZoom(0);label="";item=naviciAjaxApi.addDivMarker(markerCssClass,xcoord,ycoord,label,-19,-33);mapMarkers.push(item);item.setAttribute("mapcategory",category,0);item.setAttribute("mapxcoord",xcoord,0);item.setAttribute("mapycoord",ycoord,0);item.setAttribute("markernumber",number,0);jQuery(item).attr("id","mapMarker_"+number);var numberDiv=document.createElement("div");var cssLabelClass="map_marker_numbered_label_single";if(Number(number)>=10){cssLabelClass="map_marker_numbered_label_double"}jQuery(numberDiv).addClass(cssLabelClass);var numberLabel=document.createTextNode(number);numberDiv.appendChild(numberLabel);item.appendChild(numberDiv);if((popupPayload!=null)&&(popupPayload.length>0)){mapAddPopup(item,number,xcoord,ycoord,popupOpened,popupPayload)}naviciAjaxApi.redrawDynamicLayer();if(resetMapPos==true){naviciAjaxApi.setMapCenter(AjaxMapsConfig.MAP_START_X,AjaxMapsConfig.MAP_START_Y)}if(calculateZoomLevel==true){mapFixZoomForMarkers()}return item}}function mapAddNumberedMarkerKKJ3(category,number,xcoord,ycoord,label,imageCssClass,resetMapPos,calculateZoomLevel,popupOpened,popupPayload){if((xcoord>mapMinX)&&(xcoord<mapMaxX)&&(ycoord>mapMinY)&&(ycoord<mapMaxY)){var item;var markerCssClass="map_marker_numbered_pink";if(imageCssClass=="gray"){markerCssClass="map_marker_numbered_gray"}else{if(imageCssClass.length>0){markerCssClass=imageCssClass}}naviciAjaxApi.setMapZoom(0);label="";item=naviciAjaxApi.addDivMarker(markerCssClass,xcoord,ycoord,label,-19,-33);mapMarkers.push(item);item.setAttribute("mapcategory",category,0);item.setAttribute("mapxcoord",xcoord,0);item.setAttribute("mapycoord",ycoord,0);item.setAttribute("markernumber",number,0);jQuery(item).attr("id","mapMarker_"+number);var numberDiv=document.createElement("div");var cssLabelClass="map_marker_numbered_label_single";if(Number(number)>=10){cssLabelClass="map_marker_numbered_label_double"}jQuery(numberDiv).addClass(cssLabelClass);var numberLabel=document.createTextNode(number);numberDiv.appendChild(numberLabel);item.appendChild(numberDiv);if((popupPayload!=null)&&(popupPayload.length>0)){mapAddPopup(item,number,xcoord,ycoord,popupOpened,popupPayload)}naviciAjaxApi.redrawDynamicLayer();if(resetMapPos==true){naviciAjaxApi.setMapCenter(AjaxMapsConfig.MAP_START_X,AjaxMapsConfig.MAP_START_Y)}if(calculateZoomLevel==true){mapFixZoomForMarkers()}return item}}function mapAddPopup(markerDiv,markerNumber,xCoord,yCoord,popupOpened,popupPayload){var popupManager=naviciAjaxApi.getMapPopupManager();var popupDiv=null;var elements=new Array();var parentDiv=util.createElement("div");parentDiv.innerHTML=popupPayload;elements.push(parentDiv);popupDiv=popupManager.addPopup(xCoord,yCoord,elements);popupDiv.setAttribute("markernumber",markerNumber,0);if(popupOpened==true){for(var i=0;i<mapPopups.length;i++){mapPopups[i].style.display="none"}mapFixPanForPopup(markerDiv,0,0)}else{popupDiv.style.display="none"}markerDiv.onclick=new mapShowPopup(markerDiv,popupDiv);mapPopups.push(popupDiv);return popupDiv}function mapShowPopup(markerDiv,popupDiv){return function(){for(var i=0;i<mapPopups.length;i++){mapPopups[i].style.display="none"}mapFixPanForPopup(markerDiv,0,0);popupDiv.style.display="block"}}function mapHidePopup(popupDiv){popupDiv.style.display="none"}function mapSwitchMarkerDisplay(category){for(var i=0;i<mapMarkers.length;i++){if(mapMarkers[i].getAttribute("mapcategory",0)==category){if(mapMarkers[i].style.display=="none"){mapMarkers[i].style.display="inline"}else{mapMarkers[i].style.display="none"}}}}function mapProcessCommunityMarkers(jsonInput,initializeMap){if((jsonInput!=null)&&(jsonInput!="undefined")&&(jsonInput.length>0)){var json=JSON.parse(jsonInput);if((json.hideMap==false)&&((json.items.length>0)||((Number(json.postTag.postLongitude)>0)&&(Number(json.postTag.postLatitude)>0)))){if(initializeMap==true){mapMainParameterized(535,275,0,0,0)}jQuery("#map_view").show("slow");var i=0;jQuery.each(json.items,function(){var itemTagLongitude=Number(this.mmLongitude);var itemTagLatitude=Number(this.mmLatitude);if((isNaN(itemTagLongitude)==false)&&(isNaN(itemTagLatitude)==false)&&(itemTagLongitude>0)&&(itemTagLatitude>0)){i++;mapAddNumberedMarker("community",i,itemTagLongitude,itemTagLatitude,"","",false,false,false,"")}});var postTagLongitude=Number(json.postTag.postLongitude);var postTagLatitude=Number(json.postTag.postLatitude);if((isNaN(postTagLongitude)==false)&&(isNaN(postTagLatitude)==false)&&(postTagLongitude>0)&&(postTagLatitude>0)){mapAddNumberedMarker("community","X",postTagLongitude,postTagLatitude,"","",false,true,false,"")}else{if(i==0){var mapMainElem=jQuery("#map_view");jQuery(mapMainElem).css("display","none")}}}}}function mapPickSelectItem(id,hiddenId,buttonId,name){jQuery("#regionMapSidePanelLabel").replaceWith('<h2 id="regionMapSidePanelLabelH2">'+jQuery("#hiddenRegionSelectedLabel").val()+"</h2>");jQuery("#regionMapSelectedInfoRegionName").replaceWith('<span id="regionMapSelectedInfoRegionName"onmouseover="switchRegionButtonActive(\''+buttonId+"', true);\"onmouseout=\"switchRegionButtonActive('"+buttonId+'\', false);"class="regionMapSelectedInfoRegionName">'+jQuery("#"+hiddenId).val().replace(/ae/g,"&#228;").replace(/oe/g,"&#246;")+"</span>");if(jQuery("#regionMapSelectedInfo").css("visibility")=="hidden"){jQuery("#regionMapSelectedInfo").css("visibility","visible")}try{setAutoRegion("Regions."+id)}catch(e){}}function switchRegionButtonActive(id,on){var element=jQuery("#button_"+id);if(element!=null){jQuery(element).css("background","url(/MapPortlet/styles/images/regionMap/mouseover_inactive.png) no-repeat top left");if(on==true){jQuery(element).css("background","url(/MapPortlet/styles/images/regionMap/mouseover_active.png) no-repeat top left")}}}function loadInternationalizedRegionNames(){alert("huu");jQuery("input:hidden[name='hiddenRegionName']").each(function(){var hiddenId=this.getAttribute("id");var spanElem=jQuery("#"+hiddenId+"_label");jQuery(spanElem).html(jQuery(this).val().replace(/ae/g,"&#228;").replace(/oe/g,"&#246;"))})}function PoiPopupFormatterNavici(){var actionElements=new Array();var css_base="poi_popup";this.setCssBase=function(newBase){css_base=newBase};this.format=format;this.addElement=addElement;this.deleteElement=deleteElement;function addElement(element){var id=util.getFreeIndex(actionElements);actionElements[id]=element;return id}function deleteElement(id){actionElements[id]=null;return 0}function format(locations){elements=new Array();for(var i=0;i<locations.length;i++){var div=util.createElement("div");div.className=css_base;if(locations[i].getAttribute("category")!=null){var locHeadDiv=util.createElement("div");locHeadDiv.className=css_base+"_head";var headText=locations[i].getAttribute("category");var subcategory=locations[i].getAttribute("subcategory");if(subcategory!=null){headText+="("+subcategory+")"}locHeadDiv.appendChild(document.createTextNode(headText));div.appendChild(locHeadDiv)}var locText=util.createElement("p");locText.className=css_base+"_text";locText.appendChild(document.createTextNode(locations[i].getName()));div.appendChild(locText);var locText=util.createElement("p");locText.className=css_base+"_address";locText.appendChild(document.createTextNode(locations[i].getAttribute("address")));div.appendChild(locText);var button=util.createElement("a");button.XXXaddress=locations[i].getAttribute("address");button.XXXx=locations[i].getAttribute("x");button.XXXy=locations[i].getAttribute("y");button.className="poi_button";var buttonText=document.createTextNode("Start Point");button.appendChild(buttonText);button.onclick=function(e){var targ;if(!e){var e=window.event}if(e.target){targ=e.target}else{if(e.srcElement){targ=e.srcElement}}if(targ.nodeType==3){targ=targ.parentNode}return poi.buttonEvent(targ.XXXx,targ.XXXy,targ.XXXaddress,"start")};div.appendChild(button);var button=util.createElement("a");button.XXXaddress=locations[i].getAttribute("address");button.XXXx=locations[i].getAttribute("x");button.XXXy=locations[i].getAttribute("y");button.className="poi_button";var buttonText=document.createTextNode("End Point");button.appendChild(buttonText);button.onclick=function(e){var targ;if(!e){var e=window.event}if(e.target){targ=e.target}else{if(e.srcElement){targ=e.srcElement}}if(targ.nodeType==3){targ=targ.parentNode}return poi.buttonEvent(targ.XXXx,targ.XXXy,targ.XXXaddress,"end")};div.appendChild(button);for(var j=0;j<actionElements.length;j++){if(actionElements[j]!=null){var clone=actionElements[j].cloneNode(true);cloneEventAttributes(actionElements[j],clone);div.appendChild(clone);clone.locationObject=locations[i]}}elements.push(div)}return elements}function cloneEventAttributes(source,target){target.onclick=source.onclick;target.ondblclick=source.ondblclick;target.onmousedown=source.onmousedown;target.onmouseup=source.onmouseup;target.onmouseover=source.onmouseover;target.onmousemove=source.onmousemove;target.onmouseout=source.onmouseout;target.onkeypress=source.onkeypress;target.onkeydown=source.onkeydown;target.onkeyup=source.onkeyup}}var Tools=new function(){this.getElement=function(id){if(document.getElementById){this.getElement=function(id){return document.getElementById(id)}}else{if(document.all){this.getElement=function(id){return document.all[id]}}else{if(document.layers){this.getElement=function(id){return document.layers[id]}}else{this.getElement=function(id){return null}}}}return this.getElement(id)};this.createElement=function(elem){if(document.createElementNS){this.createElement=function(elem){return document.createElementNS("http://www.w3.org/1999/xhtml","html:"+elem)}}else{this.createElement=document.createElement}return this.createElement(elem)};this.getWindowDimensions=function(){if(typeof(window.innerWidth)=="number"){this.getWindowDimensions=function(){return{width:window.innerWidth,height:window.innerHeight}}}else{if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){this.getWindowDimensions=function(){return{width:document.documentElement.clientWidth,height:document.documentElement.clientHeight}}}else{if(document.body&&(document.body.clientWidth||document.body.clientHeight)){this.getWindowDimensions=function(){return{width:document.body.clientWidth,height:document.body.clientHeight}}}else{this.getWindowDimensions=function(){return null}}}}return this.getWindowDimensions()};this.getElementPosition=function(elem){if(elem.offsetParent){this.getElementPosition=function(elem){var x=0;var y=0;do{x+=elem.offsetLeft;y+=elem.offsetTop;elem=elem.offsetParent}while(elem);return{x:x,y:y}}}else{if(elem.x&&elem.y){this.getElementPosition=function(elem){return{x:elem.x,y:elem.y}}}else{this.getElementPosition=function(){return null}}}return this.getElementPosition(elem)}};function AjaxObject(serverSideUrl){var httpRequestObject=null;var requestStatus=0;var currentRequestObjects=new Array();var requestTimerId=null;var requestTimeout=10000;var requestQueueLookupTimerId=0;var lookupTime=10000;var requestObjects=new Array();var boundaryString="<<<<<Navici<<<<";this.lookupTime=lookupTime;this.addRequestObject=addRequestObject;this.sendRequest=sendRequest;this.requestQueueLookup=requestQueueLookup;this.setRequestTimeout=setRequestTimeout;function addRequestObject(obj){requestObjects.push(obj)}function setRequestTimeout(timeout){requestTimeout=timeout}function sendRequest(){if(requestStatus==0||requestStatus==4){var currentRequest="";if(requestStatus==0){currentRequest=buildRequest()}if(currentRequest!=""){httpRequestObject=util.getXmlhttp();requestStatus=1;httpRequestObject.open("POST",serverSideUrl,true);httpRequestObject.onreadystatechange=callbackFunction;requestTimerId=setTimeout(function(){requestRetry()},requestTimeout);if(util.useFormData()){var requestBody="--"+boundaryString+'\r\nContent-Disposition: form-data; name="requestXml"\r\n\r\n'+currentRequest+"\r\n--"+boundaryString+"--\r\n";httpRequestObject.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");httpRequestObject.send(currentRequest)}else{httpRequestObject.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");httpRequestObject.send("requestXml="+encodeURIComponent(currentRequest))}}else{requestStatus=0}}else{}}function callbackFunction(){if(httpRequestObject.readyState==4){clearTimeout(requestTimerId);var state=-1;var statusText="";try{state=httpRequestObject.status;statusText=httpRequestObject.statusText}catch(e){requestFailed()}if(state!=200&&state!=0&&state!=-1){requestFailed()}else{if(state!=-1){handleResponse(httpRequestObject.responseXML);httpRequestObject=null;requestStatus=0;sendRequest()}else{requestFailed()}}}}function requestRetry(){clearTimeout(requestTimerId);try{httpRequestObject.abort()}catch(e){}requestFailed()}function requestQueueLookup(){if(requestQueueLookupTimerId){clearTimeout(requestQueueLookupTimerId);requestQueueLookupTimerId=0}if(requestStatus==0){sendRequest()}requestQueueLookupTimerId=setTimeout(function(){requestQueueLookup()},lookupTime)}function requestFailed(){requestStatus=0;for(var i=0;i<requestObjects.length;i++){requestObjects[i].requestFailed()}}function buildRequest(){var result="";for(var i=0;i<requestObjects.length;i++){currentRequestObjects[i]=false;var requestXml=requestObjects[i].buildRequest();if(requestXml!=null){requestXml=requestXml.replace(/√∂/g,"!o");requestXml=requestXml.replace(/√ñ/g,"!O");requestXml=requestXml.replace(/√º/g,"!u");requestXml=requestXml.replace(/√ú/g,"!U");requestXml=requestXml.replace(/√§/g,"!a");requestXml=requestXml.replace(/√Ñ/g,"!A");result+='<ajax_request_object object_id="'+i+'" service="'+requestObjects[i].service+'">'+requestXml+"</ajax_request_object>";currentRequestObjects[i]=true}}if(result!=""){result="<navici_request>"+result+"</navici_request>"}return result}function handleResponse(response){var xmlObject=response.getElementsByTagName("navici_response")[0];if(xmlObject==null){for(var i=0;i<requestObjects.length;i++){if(currentRequestObjects[i]){requestObjects[i].requestFailed()}}}else{var xmlRequestObjectResponses=response.getElementsByTagName("ajax_response_object");for(var i=0;i<xmlRequestObjectResponses.length;i++){if(xmlRequestObjectResponses[i].hasChildNodes()){var ObjectId=xmlRequestObjectResponses[i].getAttribute("object_id");try{requestObjects[ObjectId].parseResultXML(xmlRequestObjectResponses[i])}catch(e){}currentRequestObjects[ObjectId]=false}}for(var i=0;i<requestObjects.length;i++){if(currentRequestObjects[i]){requestObjects[i].parseResultXML(null)}}}}}function DivMarkerLayer(){var markers=new Array();var map=null;var tileSize=256;var tileRows=0;var tileCols=0;var currentStartCol=0;var currentStartRow=0;var tiles=null;var tileContainer=null;var activeSurface=null;var visible=false;this.start=start;this.redraw=redraw;this.imageRequest=function(){};this.finishMove=finishMove;this.addMarker=addMarker;this.deleteMarker=deleteMarker;this.getMarkers=function(){return markers};this.getVisibility=function(){return visible};function start(mapObject){map=mapObject;activeSurface=map.getActiveSurface();tileSize=map.settings.MAP_TILE_SIZE;tiles=map.getTiles();tileCols=tiles.length;tileRows=tiles[0].length;tileContainer=map.getTileContainer()}function redraw(){finishMove()}function finishMove(){var newStartCol=tiles[0][0].col;var newStartRow=tiles[0][0].row;if(visible){for(var id=0;id<markers.length;id++){if(markers[id]!=null){var markerMap=checkShow(markers[id],newStartCol,newStartRow);if(markerMap==null&&markers[id].shown){activeSurface.removeChild(markers[id].div);markers[id].shown=false}else{if(markerMap!=null){var left=(markerMap.col-newStartCol)*tileSize+markerMap.left+tileContainer.x+markers[id].offsetX;var top=(markerMap.row-newStartRow)*tileSize+markerMap.top+tileContainer.y+markers[id].offsetY;markers[id].div.style.left=left+"px";markers[id].div.style.top=top+"px";if(!markers[id].shown){activeSurface.appendChild(markers[id].div);markers[id].shown=true}}}}}}currentStartCol=newStartCol;currentStartRow=newStartRow}function addMarker(className,x,y,caption,offsetX,offsetY,printXML){var id=util.getFreeIndex(markers);var markerDiv=util.createElement("div");markerDiv.className=className;if(caption!=null&&caption!=""){var textnode=document.createTextNode(caption);markerDiv.appendChild(textnode)}markerDiv.markerId=id;markers[id]=new createMarker(id,markerDiv,x,y,offsetX,offsetY,printXML);var markerMap=checkShow(markers[id],currentStartCol,currentStartRow);if(markerMap!=null){markers[id].shown=true;var left=(markerMap.col-currentStartCol)*tileSize+markerMap.left+tileContainer.x+markers[id].offsetX;var top=(markerMap.row-currentStartRow)*tileSize+markerMap.top+tileContainer.y+markers[id].offsetY;markerDiv.style.left=left+"px";markerDiv.style.top=top+"px";activeSurface.appendChild(markerDiv)}visible=true;return markerDiv}function deleteMarker(marker){if(markers[marker.markerId]!=null){if(markers[marker.markerId].shown){activeSurface.removeChild(markers[marker.markerId].div)}markers[marker.markerId]=null}var hasMarkers=false;for(var id=0;id<markers.length;id++){if(markers[id]!=null){hasMarkers=true}}if(!hasMarkers){markers=new Array();visible=false}return 0}function checkShow(point,startCol,startRow){var markerMap=map.calcMapTileCoords(point.x,point.y,map.getZoom());if(markerMap.col>=startCol&&markerMap.col<startCol+tileCols&&markerMap.row>=startRow&&markerMap.row<startRow+tileRows){return markerMap}else{return null}}function createMarker(id,div,x,y,offsetX,offsetY,printXML){this.id=id;this.div=div;this.x=x;this.y=y;this.offsetX=offsetX;this.offsetY=offsetY;this.shown=false;this.div.printXML=printXML}}function DocumentEvents(eventName){var functions=new Array();this.addEvent=addEvent;this.deleteEvent=deleteEvent;this.handleEvent=handleEvent;function addEvent(functionObject){var id=util.getFreeIndex(functions);functions[id]=functionObject;if(eventName=="mouseMove"){document.onmousemove=handleEvent}else{if(eventName=="mouseUp"){document.onmouseup=handleEvent}}return id}function deleteEvent(id){if(id!=null){functions[id]=null;var hasNoFunctions=true;for(var i=0;i<functions.length;i++){if(functions[i]!=null){hasNoFunctions=false}}if(hasNoFunctions){functions=new Array();if(eventName=="mouseMove"){document.onmousemove=null}else{if(eventName=="mouseUp"){document.onmouseup=null}}}}}function handleEvent(event){for(var id=0;id<functions.length;id++){if(functions[id]!=null){functions[id](event)}}}}var DocumentMouseMoveEvent=new DocumentEvents("mouseMove");var DocumentMouseUpEvent=new DocumentEvents("mouseUp");function DropDownList(inputObject,callbackFunction,css_base){var ioKeydownEvent=null;var ioBlurEvent=null;var hideTimerId=null;var options=new Array();var selectItems=new Array();var selectedId=null;var div=null;createDiv();setEvents();this.show=show;this.hide=hide;this.empty=empty;this.getDiv=getDiv;function getDiv(){return div}function createDiv(){div=util.createElement("div");div.className=css_base;inputObject.parentNode.appendChild(div);div.style.left="0px";div.style.top="0px";var pos0=util.objectXY(div);var pos=util.objectXY(inputObject)}function setEvents(){ioBlurEvent=inputObject.onblur;inputObject.onblur=inputLeaveEvent;ioKeydownEvent=inputObject.onkeydown;inputObject.onkeydown=keyDownHandling}function inputLeaveEvent(event){hideTimerId=setTimeout(hide,100);if(ioBlurEvent!=null){ioBlurEvent(event)}}function keyDownHandling(event){var keyCode=null;var ev=util.getEvent(event);if(ev.keyCode){keyCode=ev.keyCode}else{if(ev.which){keyCode=ev.which}}if(div.style.visibility=="visible"){if(keyCode==13){if(selectedId!=null){select(selectedId)}}else{if(keyCode==40&&(selectedId<options.length-1)){highlight(selectedId+1)}else{if(keyCode==38&&selectedId>0){highlight(selectedId-1)}}}}if(ioKeydownEvent!=null){ioKeydownEvent(event)}}function show(selectList){empty();var start=options.length;for(var i=0;i<selectList.length;i++){options[start+i]=getOptionDiv(selectList[i],start+i);selectItems[start+i]=selectList[i];div.appendChild(options[start+i])}selectedId=start;options[selectedId].className=css_base+"_item_select";div.style.visibility="visible"}function hide(){if(hideTimerId!=null){clearTimeout(hideTimerId)}div.style.visibility="hidden"}function getOptionDiv(selectItem,arrayId){var option=util.createElement("div");option.appendChild(document.createTextNode(selectItem.caption));option.className=css_base+"_item";option.onmouseover=function(){return highlight(arrayId)};option.onclick=function(){return select(arrayId)};return option}function empty(){for(var i=0;i<options.length;i++){div.removeChild(options[i])}options=new Array()}function highlight(arrayId){options[selectedId].className=css_base+"_item";selectedId=arrayId;options[selectedId].className=css_base+"_item_select"}function select(arrayId){hide();callbackFunction(selectItems[arrayId].callbackArgument)}}function EventHandler(){var functions=new Array();this.addListener=addListener;this.deleteListener=deleteListener;this.triggerEvent=triggerEvent;function addListener(functionObject){var id=util.getFreeIndex(functions);functions[id]=functionObject;return id}function deleteListener(id){if(id!=null){functions[id]=null;var hasNoFunctions=true;for(var i=0;i<functions.length&&hasNoFunctions;i++){if(functions[i]!=null){hasNoFunctions=false}}if(hasNoFunctions){functions=new Array()}}}function triggerEvent(argument){for(var id=0;id<functions.length;id++){if(functions[id]!=null){functions[id](argument)}}}}function Geocoding(){var callback=new Array();var ajaxObject=null;var requests=new Array();var requestsPending=false;var simpleXml=null;this.service="Geocoding";this.start=start;this.getAddress=getAddress;this.getAddressByObject=getAddressByObject;this.buildRequest=buildRequest;this.parseResultXML=parseResultXML;this.requestFailed=requestFailed;this.errorAjaxFailed=1;function start(ajaxObj){ajaxObject=ajaxObj;ajaxObject.addRequestObject(this);simpleXml=new NaviciSimpleGeocoding()}function getAddressByObject(id,object,callbackFunction){if(id==null){id=util.getFreeIndex(requests)}requests[id]={key:object.getKey(),xml:object.getXml(id),root:object.getRootElementName(),parser:object.getParseFunction(),callback:callbackFunction};requestsPending=true;return id}function getAddress(id,key,language,maxResults,parameters,callbackFunction){if(id==null){id=util.getFreeIndex(requests)}requests[id]={key:key,xml:simpleXml.getXml(id,key,language,maxResults,parameters),root:simpleXml.getRootElementName(),parser:simpleXml.getParseFunction(),callback:callbackFunction};requestsPending=true;return id}function requestFailed(){for(var id=0;id<callback.length;id++){if(callback[id]!=null&&!callback[id].send){callback[id].callback(id,callback[id].key,null,this.errorAjaxFailed)}}callback=new Array()}function buildRequest(){if(requestsPending){var request="";for(var id=0;id<requests.length;id++){if(requests[id]!=null){if(requests[id].xml==null){requests[id].callback(id,requests[id].key,new Array(),0)}else{callback[id]=requests[id];callback[id].send=false;request+=requests[id].xml}}}requests=new Array();requestsPending=false;return request}else{return null}}function parseResultXML(xmlObject){if(xmlObject!=null&&xmlObject.nodeType==1&&xmlObject.nodeName=="ajax_response_object"){if(xmlObject.hasChildNodes()){var node=xmlObject.firstChild;while(node!=null){if(node.nodeType==1){var id=0;var found=false;var result=null;while(id<callback.length&&!found){if(callback[id]!=null&&callback[id].root==node.nodeName){response=callback[id].parser(node);callback[response.id].callback(response.id,callback[response.id].key,response.locations,response.status);callback[response.id]=null;found=true}id++}}node=node.nextSibling}}}for(var id=0;id<callback.length;id++){if(callback[id]!=null&&!callback[id].send){callback[id].callback(id,callback[id].key,new Array(),0)}}callback=new Array()}function NaviciSimpleGeocoding(){this.getXml=getXml;this.getRootElementName=function(){return"locations"};this.getParseFunction=getParseFunction;function getXml(id,key,language,maxResults,parameters){var result='<address_for_key id="'+id+'" key="'+util.xmlAttributeString(key)+'" ';result+='max_results="'+maxResults+'" ';result+='language="'+language+'" ';result+=util.parameterObject2Text(parameters);result+="/>";return result}function getParseFunction(){return parseNavici}function parseNavici(node){var result={id:0,locations:null,status:0};id=node.getAttribute("id");if(id!=null){result.id=id;var locationArray=Array();var locationsXml=node.getElementsByTagName("location");for(var i=0;i<locationsXml.length;i++){locationArray[i]=parseXmlLocation(locationsXml[i])}result.locations=locationArray}return result}function parseXmlLocation(locationXml){var location=new MapLocation(locationXml.getAttribute("x"),locationXml.getAttribute("y"));location.setType(locationXml.getAttribute("type"));for(var i=0;i<locationXml.attributes.length;i++){location.setAttribute(locationXml.attributes[i].nodeName,locationXml.attributes[i].nodeValue)}return location}}}function GeocodingReversed(){var callback=new Array();var ajaxObject=null;var requests=new Array();var requestsPending=false;this.service="ReverseGeocoding";this.start=start;this.getAddress=getAddress;this.buildRequest=buildRequest;this.parseResultXML=parseResultXML;this.requestFailed=requestFailed;this.errorAjaxFailed=1;function start(ajaxObj){ajaxObject=ajaxObj;ajaxObject.addRequestObject(this)}function getAddress(id,x,y,language,maxResults,parameters,callbackFunction){if(id==null){id=util.getFreeIndex(requests)}requests[id]={x:x,y:y,language:language,maxResults:maxResults,parameters:parameters,callback:callbackFunction};requestsPending=true;return id}function requestFailed(){for(var id=0;id<callback.length;id++){if(callback[id]!=null&&!callback[id].send){callback[id].callback(id,callback[id].x,callback[id].y,null,this.errorAjaxFailed)}}callback=new Array()}function buildRequest(){if(requestsPending){var request="";for(var id=0;id<requests.length;id++){if(requests[id]!=null){callback[id]=requests[id];callback[id].send=false;request+='<address_for_location id="'+id+'" x="'+requests[id].x+'" y="'+requests[id].y+'" ';request+='language="'+requests[id].language+'" ';request+=util.parameterObject2Text(requests[id].parameters);request+="/>"}}requests=new Array();requestsPending=false;return request}else{return null}}function parseResultXML(xmlObject){if(xmlObject!=null){var suggestions=xmlObject.getElementsByTagName("locations");for(i=0;i<suggestions.length;i++){var id=suggestions[i].getAttribute("id");var locationArray=Array();locationsXml=suggestions[i].getElementsByTagName("location");for(var i=0;i<locationsXml.length;i++){locationArray[i]=parseXmlLocation(locationsXml[i])}callback[id].callback(id,callback[id].x,callback[id].y,locationArray,0);callback[id].send=true}}for(var id=0;id<callback.length;id++){if(callback[id]!=null&&!callback[id].send){callback[id].callback(id,callback[id].x,callback[id].y,null,0)}}callback=new Array()}function parseXmlLocation(locationXml){var location=new MapLocation(locationXml.getAttribute("x"),locationXml.getAttribute("y"));location.setType(locationXml.getAttribute("type"));for(var i=0;i<locationXml.attributes.length;i++){location.setAttribute(locationXml.attributes[i].name,locationXml.attributes[i].nodeValue)}return location}}function GeocodingReversedPoi(){var callback=new Array();var ajaxObject=null;var requests=new Array();var requestsPending=false;this.service="PoiReverseGeocoding";this.start=start;this.getPois=getPois;this.buildRequest=buildRequest;this.parseResultXML=parseResultXML;this.requestFailed=requestFailed;this.errorAjaxFailed=1;function start(ajaxObj){ajaxObject=ajaxObj;ajaxObject.addRequestObject(this)}function getPois(id,x,y,types,language,maxResults,service,parameters,callbackFunction){if(id==null){id=util.getFreeIndex(requests)}requests[id]={x:x,y:y,types:types,language:language,maxResults:maxResults,service:service,parameters:parameters,callback:callbackFunction};requestsPending=true;ajaxObject.sendRequest();return id}function requestFailed(){for(var id=0;id<callback.length;id++){if(callback[id]!=null&&!callback[id].send){callback[id].callback(id,callback[id].x,callback[id].y,null,this.errorAjaxFailed)}}callback=new Array()}function buildRequest(){if(requestsPending){request="";for(var id=0;id<requests.length;id++){if(requests[id]!=null){callback[id]=requests[id];callback[id].send=false;request+='<poi_for_location id="'+id+'" service="'+requests[id].service+'" x="'+requests[id].x+'" y="'+requests[id].y+'" ';request+='language="'+requests[id].language+'" ';request+=util.parameterObject2Text(requests[id].parameters);request+=">";var types=requests[id].types;for(var i=0;i<types.length;i++){request+='<poi_type category="'+types[i].category+'" ';if(types[i].subcategory!=null){request+='subcategory="'+types[i].subcategory+'" '}request+="/>"}request+="</poi_for_location>"}}requests=new Array();requestsPending=false;return request}else{return null}}function parseResultXML(xmlObject){if(xmlObject!=null){var suggestions=xmlObject.getElementsByTagName("locations");for(i=0;i<suggestions.length;i++){var id=suggestions[i].getAttribute("id");var locationArray=Array();locationsXml=suggestions[i].getElementsByTagName("location");for(var i=0;i<locationsXml.length;i++){locationArray[i]=parseXmlLocation(locationsXml[i])}callback[id].callback(id,callback[id].x,callback[id].y,locationArray,0);callback[id].send=true}}for(var id=0;id<callback.length;id++){if(callback[id]!=null&&!callback[id].send){callback[id].callback(id,callback[id].x,callback[id].y,null,0)}}callback=new Array()}function parseXmlLocation(locationXml){var location=new MapLocation(locationXml.getAttribute("x"),locationXml.getAttribute("y"));for(var i=0;i<locationXml.attributes.length;i++){location.setAttribute(locationXml.attributes[i].name,locationXml.attributes[i].nodeValue)}return location}}function GeoserverGeocodingXml(){var freeFormKey=null;var freeFormStrategy=null;var maxResults=100;var restrictions=Array();var types=Array();var languages=Array();var locationParts=Array();var locationOrder=Array();var LOCATION_TYPES=Array();var MAX_LOCATION_TYPES=7;start();this.getXml=getXml;this.getKey=function(){return freeFormKey};this.getParseFunction=function(){return parseOpenGis};this.getRootElementName=function(){return"Response"};this.getFreeFormKey=function(){return freeFormKey};this.setFreeFormKey=function(key){freeFormKey=key};this.setFreeFormStrategy=function(method){freeFormStrategy=method};this.getFreeFormStrategy=function(method){return freeFormStrategy};this.getMaxResults=function(){return maxResults};this.setMaxResults=function(results){maxResults=results};this.addLocationRestriction=addLocationRestriction;this.deleteLocationRestriction=deleteLocationRestriction;this.getLocationRestriction=getLocationRestriction;this.addLocationNamePart=addLocationNamePart;this.addLocationOrder=addLocationOrder;this.addLocationType=addLocationType;this.deleteLocationType=deleteLocationType;this.addAllLocationType=addAllLocationType;this.deleteAllLocationType=deleteAllLocationType;this.addLanguage=addLanguage;this.deleteLanguage=deleteLanguage;function start(){LOCATION_TYPES[0]="POI";LOCATION_TYPES[1]="Street";LOCATION_TYPES[2]="PostalCode";LOCATION_TYPES[3]="MunicipalitySubdivision";LOCATION_TYPES[4]="Municipality";LOCATION_TYPES[5]="CountrySecondarySubdivision";LOCATION_TYPES[6]="CountrySubdivision";LOCATION_TYPES[7]="Country";LOCATION_TYPES[8]="POIClass";LOCATION_TYPES[9]="StreetAddress";LOCATION_TYPES[10]="Language";LOCATION_TYPES[11]="Quality";LOCATION_TYPES[12]="Distance";LOCATION_TYPES[13]="Type";for(var i=0;i<=MAX_LOCATION_TYPES;i++){types[i]=true}}function addLanguage(language){if(language!=null&&language!=""){var i=0;var found=false;var lang=language.toUpperCase();while(i<languages.length&&!found){if(languages[i]!=null&&languages[i].key==lang){found=true}}if(!found){var newIndex=getFreeIndex(languages);languages[newIndex]={key:key}}return 0}else{return 1}}function deleteLanguage(language){if(language!=null&&language!=""){var i=0;var found=false;var lang=language.toUpperCase();while(i<languages.length&&!found){if(languages[i]!=null&&languages[i].key==lang){languages[i]=null;found=true}}if(!found){return 0}else{return 2}}else{return 1}}function addLocationType(locationType){var typeNr=getLocationTypeNr(locationType);if(typeNr>=0&&typeNr<=MAX_LOCATION_TYPES){types[typeNr]=true;return 0}else{return 1}}function deleteLocationType(locationType){var typeNr=getLocationTypeNr(locationType);if(typeNr>=0&&typeNr<=MAX_LOCATION_TYPES){types[typeNr]=false;return 0}else{return 1}}function deleteAllLocationType(){for(var i=0;i<MAX_LOCATION_TYPES;i++){types[i]=false}}function addAllLocationType(){for(var i=0;i<MAX_LOCATION_TYPES;i++){types[i]=true}}function addLocationRestriction(locationType,key,method,idList){var typeNr=getLocationTypeNr(locationType);if(typeNr>=0){if(key==null&&method==null&&idList==null){restrictions[typeNr]=null}else{restrictions[typeNr]={key:key,method:method,idList:idList}}return 0}else{return 1}}function deleteLocationRestriction(locationType){var typeNr=getLocationTypeNr(locationType);if(typeNr>=0){restrictions[typeNr]=null;return 0}else{return 1}}function getLocationRestriction(locationType){var typeNr=getLocationTypeNr(locationType);if(typeNr>=0){return restrictions[typeNr]}else{return null}}function getXml(id){var result="";result+='<Request methodName="LocationRequest" requestID="'+id+'" maximumResponses="'+maxResults+'">';result+="<LocationRequest>";result+=getFreeFormKeyXml();result+=getLocationNameXml();result+=getOrderXml();result+=getLocationTypeListXml();result+=getAddressXml();result+=getPOIPropertiesXml();result+="</LocationRequest>";result+="</Request>";return result}function getLocationNameXml(){var result="";if(locationParts.length>0){result+="<LocationNameDefinition>";for(var i=0;i<locationParts.length;i++){result+=locationParts[i].getXml()}result+="</LocationNameDefinition>"}return result}function getOrderXml(){var result="";if(locationOrder.length>0){result+="<SortBy>";for(var i=0;i<locationOrder.length;i++){result+=locationOrder[i].getXml()}result+="</SortBy>"}return result}function getFreeFormKeyXml(){var result="";if(freeFormKey!=null){result+="<FreeFormLocationName";if(freeFormStrategy!=null){result+=' matchMethod="'+util.xmlAttributeString(freeFormStrategy)+'" >'}else{result+=">"}result+=util.xmlAttributeString(freeFormKey);result+="</FreeFormLocationName>"}return result}function getLocationTypeListXml(){var result="";var innerXml="";var required=false;for(var i=0;i<MAX_LOCATION_TYPES;i++){if(types[i]==true){innerXml+="<LocationType ";innerXml+='name="'+LOCATION_TYPES[i]+'" ';innerXml+="/>"}else{required=true}}if(required){result+="<LocationTypeList>";result+=innerXml;result+="</LocationTypeList>"}return result}function getPOIPropertiesXml(){var result="";if(restrictions[0]!=null||restrictions[8]!=null){result+="<POIProperties>";result+=getPOIPropertyXml("POIName","locationIds",restrictions[0]);result+=getPOIPropertyXml("POIClass","classIds",restrictions[8]);result+="</POIProperties>"}return result}function getPOIPropertyXml(name,idListAttributeName,restriction){var result="";if(restriction!=null){result+='<POIProperty name="'+name+'" ';result+=getAttributeXml("matchMethod",restriction.method);result+=getAttributeXml(idListAttributeName,restriction.idList);result+=getAttributeXml("value",restriction.key);result+=" />"}return result}function getAddressXml(){result="";if(restrictions[1]!=null||restrictions[2]!=null||restrictions[3]!=null||restrictions[4]!=null||restrictions[5]!=null||restrictions[6]!=null||restrictions[7]!=null||restrictions[9]!=null){result+="<Address>";if(restrictions[1]!=null||restrictions[9]!=null){result+="<StreetAddress>";result+=getLocationPartXml("StreetLocation",restrictions[9]);result+=getLocationPartXml("Street",restrictions[1]);result+="</StreetAddress>"}result+=getLocationPartXml("PostalCode",restrictions[2]);result+=getPlaceXml("MunicipalitySubdivision",restrictions[3]);result+=getPlaceXml("Municipality",restrictions[4]);result+=getPlaceXml("CountrySecondarySubdivision",restrictions[5]);result+=getPlaceXml("CountrySubdivision",restrictions[6]);result+=getPlaceXml("Country",restrictions[7]);result+="</Address>"}return result}function getLocationPartXml(elementName,restriction){var result="";if(restriction!=null){result+="<"+elementName+" ";result+=getAttributeXml("matchMethod",restriction.method);result+=getAttributeXml("locationIds",restriction.idList);result+=" >";if(restriction.key!=null&&restriction.key!=""){result+=util.xmlAttributeString(restriction.key)}result+="</"+elementName+">"}return result}function getPlaceXml(place,restriction){var result="";if(restriction!=null){result+='<Place type="'+place+'" ';result+=getAttributeXml("matchMethod",restriction.method);result+=getAttributeXml("locationIds",restriction.idList);result+=" >";if(restriction.key!=null&&restriction.key!=""){result+=util.xmlAttributeString(restriction.key)}result+="</Place>"}return result}function getAttributeXml(attributeName,attributeValue){var result="";if(attributeValue!=null&&attributeValue!=""){result+=attributeName+'="'+util.xmlAttributeString(attributeValue)+'" '}return result}function addLocationNamePart(locationPartName,prefix,postfix,prefixIfNull,postfixIfNull,prefixIfFirst,postfixIfLast){if(locationPartName!=null){var i=0;while(i<LOCATION_TYPES.length&&i!=-1){if(LOCATION_TYPES[i]==locationPartName){locationParts[locationParts.length]=new LocationNamePart(locationPartName,prefix,postfix,prefixIfNull,postfixIfNull);i=-1}else{i++}}if(i==-1){return 0}else{return 1}}else{return 2}}function addLocationOrder(locationPartName,orderDirection,caseHandling){if(orderDirection!=null&&orderDirection!="ascent"&&orderDirection!="descent"){return 3}if(caseHandling!=null&&caseHandling!="insensitive"&&caseHandling!="sensitive"){return 4}if(locationPartName!=null){var i=0;if(locationPartName=="LocationName"){locationOrder[locationOrder.length]=new LocationOrder(locationPartName,orderDirection,caseHandling);i=-1}while(i<LOCATION_TYPES.length&&i!=-1){if(LOCATION_TYPES[i]==locationPartName){locationOrder[locationOrder.length]=new LocationOrder(locationPartName,orderDirection,caseHandling);i=-1}else{i++}}if(i==-1){return 0}else{return 1}}else{return 2}}function LocationNamePart(locationPartName,prefix,postfix,prefixIfNull,postfixIfNull,prefixIfFirst,postfixIfLast){this.getXml=getXml;function getXml(){if(locationPartName==null){return""}else{var result='<LocationNameElement name="'+util.xmlAttributeString(locationPartName)+'" ';if(prefix!=null){result+=' prefix="'+util.xmlAttributeString(prefix)+'" '}if(prefixIfNull!=null){result+=' prefixIfNull="'+util.xmlAttributeString(prefixIfNull)+'" '}if(postfix!=null){result+=' postfix="'+util.xmlAttributeString(postfix)+'" '}if(postfixIfNull!=null){result+=' postfixIfNull="'+util.xmlAttributeString(postfixIfNull)+'" '}if(prefixIfFirst!=null){result+=' prefixIfFirst="'+util.xmlAttributeString(prefixIfFirst)+'" '}if(postfixIfLast!=null){result+=' postfixIfLast="'+util.xmlAttributeString(postfixIfLast)+'" '}result+=" />";return result}}}function LocationOrder(locationPartName,orderDirection,caseHandling){this.getXml=getXml;function getXml(){if(locationPartName==null){return""}else{var result='<OrderElement name="'+util.xmlAttributeString(locationPartName)+'" ';if(orderDirection!=null){result+=' order="'+orderDirection+'" '}if(caseHandling!=null){result+=' case="'+caseHandling+'" '}result+=" />";return result}}}function parseOpenGis(request){var result={id:0,locations:null,status:0};var id=request.getAttribute("requestID");if(id!=null){result.id=id;var locationArray=Array();if(request.hasChildNodes()){var node=request.firstChild;var i=0;while(node!=null){if(node.nodeType==1){parseLocationList(locationArray,node)}node=node.nextSibling}}result.locations=locationArray}return result}function parseLocationList(locationArray,xmlElement){var result=null;if(xmlElement.nodeName=="LocationResponseList"){var node=xmlElement.firstChild;while(node!=null){if(node.nodeType==1){var location=parseLocation(node);if(location!=null){locationArray[locationArray.length]=location}}node=node.nextSibling}}}function parseLocation(xmlElement){var result=null;if(xmlElement.nodeName=="GeocodedAddress"){result=new MapLocation(0,0);if(xmlElement.hasChildNodes()){var node=xmlElement.firstChild;while(node!=null){if(node.nodeType==1){if(node.nodeName=="Point"){setPosition(result,node)}else{if(node.nodeName=="LocationName"){setLocationName(result,node)}else{if(node.nodeName=="Address"){setAddress(result,node)}else{if(node.nodeName=="GeocodeMatchCode"){setMatchCode(result,node)}}}}}node=node.nextSibling}}if(result.getStreetLocation()==null){result.setType("Street")}else{result.setType("Address")}}else{if(xmlElement.nodeName=="POI"){result=new MapLocation(0,0);result.setType("Poi");var poiName=util.xmlUnescape(xmlElement.getAttribute("POIName"));result.setPOIName(poiName);if(xmlElement.hasChildNodes()){var node=xmlElement.firstChild;while(node!=null){if(node.nodeType==1){if(node.nodeName=="Point"){setPosition(result,node)}else{if(node.nodeName=="LocationName"){setLocationName(result,node)}else{if(node.nodeName=="POIAttributeList"){setPoiAttributes(result,node)}else{if(node.nodeName=="Address"){setAddress(result,node)}else{if(node.nodeName=="GeocodeMatchCode"){setMatchCode(result,node)}}}}}}node=node.nextSibling}}}}return result}function setPoiAttributes(location,attributeList){var infoList=attributeList.getElementsByTagName("POIInfoList");if(infoList.length>0){var infoArray=attributeList.getElementsByTagName("POIInfo");for(var i=0;i<infoArray.length;i++){var attributeName=util.xmlUnescape(infoArray[i].getAttribute("name"));var attributeValue=util.xmlUnescape(infoArray[i].getAttribute("value"));if(attributeName!=null&&attributeName!=""&&attributeValue!=null&&attributeValue!=""){location.setAttribute(attributeName,attributeValue)}}}}function setAddress(location,addressElement){if(addressElement.getAttribute("countryCode")!=null){location.setCountryCode(addressElement.getAttribute("countryCode"))}var streetAddresses=addressElement.getElementsByTagName("StreetAddress");if(streetAddresses.length>0){var streets=streetAddresses[0].getElementsByTagName("Street");if(streets.length>0){var street=util.xmlElementTextContent(streets[0]);location.setStreet(util.xmlUnescape(street))}var streetLocations=streetAddresses[0].getElementsByTagName("StreetLocation");if(streetLocations.length>0){var streetLocation=util.xmlElementTextContent(streetLocations[0]);location.setStreetLocation(util.xmlUnescape(streetLocation))}}var postalcodes=addressElement.getElementsByTagName("Postalcode");if(postalcodes.length>0){var postalcode=util.xmlElementTextContent(postalcodes[0]);location.setPostalcode(util.xmlUnescape(postalcode))}var places=addressElement.getElementsByTagName("Place");for(var i=0;i<places.length;i++){setPlace(location,places[i])}}function setLocationName(location,addressElement){var name=util.xmlElementTextContent(addressElement);location.setLocationName(util.xmlUnescape(name))}function setMatchCode(location,matchCode){if(matchCode.getAttribute("accuracy")!=null){var accuracy=Number(matchCode.getAttribute("accuracy"));location.setAttribute("accuracy",accuracy)}}function setPlace(location,place){if(place.getAttribute("type")!=null){var type=place.getAttribute("type");var value=util.xmlUnescape(util.xmlElementTextContent(place));if(type=="Municipality"){location.setMunicipality(value)}else{if(type=="MunicipalitySubdivision"){location.setMunicipalitySubdivision(value)}else{if(type=="CountrySecondarySubdivision"){location.setCountrySecondarySubdivision(value)}else{if(type=="CountrySubdivision"){location.setCountrySubdivision(value)}else{if(type=="Country"){location.setCountry(value)}}}}}}}function setPosition(location,pointElement){var positions=pointElement.getElementsByTagName("pos");if(positions.length>0){var positionString=util.xmlElementTextContent(positions[0]);if(positionString!=null&&positionString!=""){var positionArray=positionString.split(" ");var x=Number(positionArray[0]);var y=Number(positionArray[1]);if(x!="NaN"&&y!="NaN"){location.setX(x);location.setY(y)}}}}function getLocationTypeNr(locationTypeName){var i=0;var result=-1;if(locationTypeName!=null){while(i<LOCATION_TYPES.length&&result==-1){if(LOCATION_TYPES[i]==locationTypeName){result=i}i++}}return result}}function ImageLayer(layerId,ajaxObject,imageFormat,cssClass,visibility,hasTransparency){var images=null;var timer=new Array();var urlCache=null;var tilesArray=null;var imageRequestQueue=new Array();var imageRequestQueueBackup=new Array();var imageLayerObjects=new Array;var imageLayerObjectsString="";var autoVisible=false;var tileRows=0;var tileCols=0;var availableImages=null;var visible=visibility;var map=null;var emptyImagePath="";var fixPng=util.fixIEpng&&imageFormat=="png";this.service="ImageLayer";this.imageRequest=imageRequest;this.setAutoVisible=function(onOff){autoVisible=onOff};this.start=start;this.redraw=redraw;this.buildRequest=buildRequest;this.parseResultXML=parseResultXML;this.requestFailed=requestFailed;this.resetCache=resetCache;this.setVisibility=setVisibility;this.getVisibility=function(){return visible};this.getID=function(){return layerId};this.getImages=function(){return images};this.addImageLayerObject=addImageLayerObject;this.deleteImageLayerObject=deleteImageLayerObject;this.clearImageLayerObjects=clearImageLayerObjects;this.getImageLayerObjects=function(){return imageLayerObjects};this.finishMove=finishMove;function start(mapObject){ajaxObject.addRequestObject(this);map=mapObject;availableImages=map.settings.availableImages;tilesArray=map.getTileArray();resetCache();images=new Array();var tiles=map.getTiles();tileCols=tiles.length;tileRows=tiles[0].length;emptyImagePath=map.settings.MAP_IMAGEPATH+"/empty.gif";for(var i=0;i<tilesArray.length;i++){if(tilesArray[i].created){images[i]=util.createElement("img");jQuery(images[i]).addClass(cssClass);images[i].src=emptyImagePath;images[i].style.visibility="hidden";images[i].tileCol=null;images[i].tileRow=null;images[i].tileZoom=null;tilesArray[i].div.appendChild(images[i])}else{images[i]=tilesArray[i].div.childNodes[map.tempLayerIndex]}}}function setVisibility(layerVisible){visible=layerVisible;var value="";var visValue="hidden";if(visible){visValue="visible"}for(var i=0;i<images.length;i++){images[i].style.visibility=visValue}if(util.isIE6){setTimeout(ie6Fix,100)}}function ie6Fix(saveUrls){var mapContainer=util.attach(map.settings.MAP_AREA);mapContainer.className=mapContainer.className}function addImageLayerObject(xmlString){var id=util.getFreeIndex(imageLayerObjects);imageLayerObjects[id]=xmlString;imageLayerObjectsString=buildImageLayerObjects();return id}function deleteImageLayerObject(id){imageLayerObjects[id]=null;var hasObjects=false;for(var i=0;i<imageLayerObjects.length;i++){if(imageLayerObjects[i]!=null){hasObjects=true}}if(hasObjects){imageLayerObjectsString=buildImageLayerObjects()}else{imageLayerObjectsString="";imageLayerObjects=new Array()}return 0}function clearImageLayerObjects(){imageLayerObjects=new Array();imageLayerObjectsString=""}function buildImageLayerObjects(){var result="";for(var id=0;id<imageLayerObjects.length;id++){if(imageLayerObjects[id]!=null){result+=imageLayerObjects[id]}}if(result!=""){result="<image_layer_objects>"+result+"</image_layer_objects >"}return result}function resetCache(){if(images!=null){for(var i=0;i<images.length;i++){images[i].tileZoom=null;images[i].tileCol=null;images[i].tileRow=null}}urlCache=new Array();for(var i=map.settings.MAP_MIN_ZOOM;i<=map.settings.MAP_MAX_ZOOM;i++){urlCache[i]=new Array()}}function redraw(){for(var i=0;i<tilesArray.length;i++){imageRequest(tilesArray[i].id,map.getZoom(),tilesArray[i].col,tilesArray[i].row)}finishMove()}function requestFailed(){if(visible){for(var id=0;id<imageRequestQueueBackup.length;id++){if(imageRequestQueue[id]==null){imageRequestQueue[id]=imageRequestQueueBackup[id]}}imageRequestQueueBackup=new Array();ajaxObject.sendRequest()}}function imageRequest(id,zoom,col,row){if(visible&&images[id]){if(images[id].tileZoom!=zoom||images[id].tileCol!=col||images[id].tileRow!=row){images[id].style.visibility="hidden";images[id].src=emptyImagePath;var url=null;if(urlCache[zoom][col]!=null){if(urlCache[zoom][col][row]!=null){url=urlCache[zoom][col][row]}}if(url==null){url="EMPTY";if(availableImages==null){putImageRequest(id,zoom,col,row)}else{if(col>=availableImages[zoom].MIN_COL&&col<=availableImages[zoom].MAX_COL&&row>=availableImages[zoom].MIN_ROW&&row<=availableImages[zoom].MAX_ROW){putImageRequest(id,zoom,col,row)}}}setImageUrl(id,col,row,zoom,url)}}return true}function setImageUrl(id,col,row,zoom,url){if(zoom==map.getZoom()){if(tilesArray[id].col==col&&tilesArray[id].row==row){if(url=="EMPTY"){if(images[id].src!=emptyImagePath){images[id].src=emptyImagePath}if(images[id].style.visibility=="visible"){images[id].style.visibility="hidden"}}else{if(images[id].src!=url){if(hasTransparency&&fixPng&&imageFormat=="png"){if(images[id].style.visibility=="hidden"){images[id].style.visibility="visible"}images[id].src=map.settings.MAP_IMAGEPATH+"/spacer.gif";images[id].style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src='"+url+"');"}else{images[id].style.visibility="hidden";images[id].src=url;images[id].style.visibility="visible"}}else{if(images[id].style.visibility=="hidden"){images[id].style.visibility="visible"}}}images[id].tileZoom=zoom;images[id].tileCol=col;images[id].tileRow=row}}}function showImage(id){if(images[id].style.visibility=="hidden"){images[id].style.visibility="visible"}}function putImageRequest(id,zoom,col,row){var i=imageRequestQueue.length-1;var found=false;imageRequestQueue[id]={zoom:zoom,col:col,row:row}}function buildRequest(){if(visible){var i=0;var requests=imageRequestQueue;imageRequestQueue=new Array();var requestTiles="";for(var id=0;id<requests.length;id++){if(requests[id]!=null&&i<1000){imageRequestQueueBackup[id]=requests[id];requestTiles+='<tile response_id="'+id+'" ';requestTiles+='zoom="'+requests[id].zoom+'" ';requestTiles+='row="'+requests[id].row+'" ';requestTiles+='column="'+requests[id].col+'" />'}i++}if(i>0){var request='<tiles layer="'+layerId+'" format="'+imageFormat+'" >';request+=imageLayerObjectsString;request+=requestTiles;request+="</tiles>";return request}else{return null}}else{return null}}function parseResultXML(xmlObject){if(visible&&xmlObject!=null){imageRequestQueueBackup=new Array();var resultImages=xmlObject.getElementsByTagName("tile");for(var i=0;i<resultImages.length;i++){var id=resultImages[i].getAttribute("id");var col=resultImages[i].getAttribute("column");var row=resultImages[i].getAttribute("row");var zoom=resultImages[i].getAttribute("zoom");var url=resultImages[i].firstChild.nodeValue;if(urlCache[zoom][col]==null){urlCache[zoom][col]=new Array()}urlCache[zoom][col][row]=url;setImageUrl(id,col,row,zoom,url)}}}function finishMove(){if(imageRequestQueue.length>0&&visible){ajaxObject.sendRequest()}}}function IndexMap(settings){var map=null;var smoothCenter=null;var hideButton=null;var indexMap=null;var mapWidth=200;var mapHeight=200;var zoomFrame=null;var moveFrame=null;var zoomFrameWidth=50;var zoomFrameHeight=50;var zoomFrameTop=0;var zoomFrameLeft=0;var moveFrameTop=0;var moveFrameLeft=0;var shrinkerFx=null;var activeSurface=null;var tileContainer=null;var block=false;var externalBlock=true;var positionCoordPending=null;var mousePressed=false;var lastMoveTime=0;var minMoveTime=40;var mouseMoveEventId=null;var mouseUpEventId=null;var startPos=null;var mapTileSize=settings.MAP_TILE_SIZE;var zoomScales=settings.scales;var currentZoomLevel=1;var tiles=null;var tileObjectsarray=new Array();var tileRows=2;var tileCols=2;var wrapDistance=20;var layers=new Array();var layerType="";var currentX=settings.MAP_START_X;var currentY=settings.MAP_START_Y;var position=null;var startPos=null;var mapPos=null;var visible=true;var currentScaleFactor=mapTileSize*zoomScales[currentZoomLevel];var offset_col=Math.floor(mapWidth/2/mapTileSize)+1;var offset_row=Math.floor(mapHeight/2/mapTileSize)+1;var mapWidthHalf=Math.floor(mapWidth/2);var mapHeightHalf=Math.floor(mapHeight/2);this.settings=settings;this.getZoom=function(){return currentZoomLevel};this.getTiles=function(){return tiles};this.getTileArray=function(){return tileObjectsarray};this.start=start;this.setCenter=setCenter;this.setZoom=setZoom;this.setDragCenter=setDragCenter;this.redraw=redraw;this.setLayout=setLayout;this.addLayer=addLayer;this.hide=function(callback){shrinkerFx.hide(callback)};this.show=function(callback){shrinkerFx.show(callback)};this.getVisibility=function(){return visible};this.getActiveSurface=function(){return activeSurface};this.getWidth=function(){return mapWidth};this.getHeight=function(){return mapHeight};function addLayer(layer){layers.push(layer);return layers.length-1}function setLayout(controlWidth,controlHeight){mapWidth=controlWidth;mapHeight=controlHeight}function start(mapObject,showLayerType){map=mapObject;if(settings.MAP_SMOOTHMOVE){smoothCenter=new MapSmoothMove();smoothCenter.start(map)}layerType=showLayerType;mapWidth=settings.INDEXMAP_WIDTH;mapHeight=settings.INDEXMAP_HEIGHT;mapWidthHalf=Math.floor(mapWidth/2);mapHeightHalf=Math.floor(mapHeight/2);offset_col=Math.floor(mapWidth/2/mapTileSize)+1;offset_row=Math.floor(mapHeight/2/mapTileSize)+1;createMapObjects();shrinkerFx=new visualFx.shrinkHiding(hideButton,indexMap,mapWidth,mapHeight,false,settings.INDEXMAP_CSS_BASE+"_button",50,10,indexMapHide);setZoom(map.getZoom());currentScaleFactor=mapTileSize*zoomScales[currentZoomLevel];setZoomframeDimension();prepareViewer();for(var i=0;i<layers.length;i++){layers[i].start(this)}externalBlock=false;var newCenter=map.getCenter();setCenter(newCenter.x,newCenter.y)}function createMapObjects(){indexMap=util.createElement("div");var mapMainObject=map.getMapNode();mapMainObject.appendChild(indexMap);indexMap.className=settings.INDEXMAP_CSS_BASE;indexMap.style.width=mapWidth+"px";indexMap.style.height=mapHeight+"px";tileContainer={x:0,y:0,div:null,width:0,height:0};tileContainer.div=util.createElement("div");indexMap.appendChild(tileContainer.div);tileContainer.div.className=settings.INDEXMAP_CSS_BASE+"_tilecontainer";activeSurface=util.createElement("div");indexMap.appendChild(activeSurface);activeSurface.className=settings.INDEXMAP_CSS_BASE+"_surface";zoomFrame=util.createElement("div");zoomFrame.className=settings.INDEXMAP_CSS_BASE+"_zoomframe";activeSurface.appendChild(zoomFrame);moveFrame=util.createElement("div");moveFrame.className=settings.INDEXMAP_CSS_BASE+"_moveframe";activeSurface.appendChild(moveFrame);hideButton=util.createElement("div");hideButton.className=settings.INDEXMAP_CSS_BASE+"_button_hide";mapMainObject.appendChild(hideButton)}function prepareViewer(){position=new Point(0,0);startPos=new Point(0,0);tiles=new Array();tileContainer.width=(tileCols*mapTileSize);tileContainer.height=(tileRows*mapTileSize);tileContainer.div.style.width=tileContainer.width+"px";tileContainer.div.style.height=tileContainer.height+"px";tileContainer.x=0;tileContainer.y=0;var tilesCounter=0;for(var col=0;col<tileCols;col++){var tileCol=new Array();for(var row=0;row<tileRows;row++){var tile=new Tile(tilesCounter,null,null);tile.div=util.createElement("div");tile.div.className=settings.MAP_CSS_BASE+"_tile";tileContainer.div.appendChild(tile.div);tileObjectsarray[tilesCounter]=tile;tilesCounter++;tileCol[row]=tile}tiles[col]=tileCol}moveFrame.onmousedown=pressMoveFrame;activeSurface.onclick=util.stopPropagation;activeSurface.oncontextmenu=util.stopPropagation;activeSurface.onmousedown=pressViewer;activeSurface.ondblclick=mapDoubleClick}function setCenter(newX,newY){var x=Number(newX);var y=Number(newY);if(!block&&!externalBlock&&visible){block=true;if(smoothCenter!=null){smoothCenter.stopCentering()}var center_col=Math.floor((x-settings.MAP_MIN_X)/currentScaleFactor);var center_row=Math.floor((settings.MAP_MAX_Y-y)/currentScaleFactor);var rest_x=x-(settings.MAP_MIN_X+center_col*currentScaleFactor);var rest_y=y-(settings.MAP_MAX_Y-center_row*currentScaleFactor);rest_x=-Math.ceil(rest_x/zoomScales[currentZoomLevel]);rest_y=Math.ceil(rest_y/zoomScales[currentZoomLevel]);position.x=-(center_col)*mapTileSize+rest_x+mapWidthHalf;position.y=-(center_row)*mapTileSize+rest_y+mapHeightHalf;rest_x+=mapWidthHalf-offset_col*mapTileSize;rest_y+=mapHeightHalf-offset_row*mapTileSize;if(tileCols*mapTileSize+rest_x<mapWidth){center_col++;rest_x+=mapTileSize}if(tileRows*mapTileSize+rest_y<mapHeight){center_row++;rest_y+=mapTileSize}tileContainer.x=rest_x;tileContainer.y=rest_y;tileContainer.div.style.top=rest_y+"px";tileContainer.div.style.left=rest_x+"px";for(var col=0;col<tileCols;col++){for(var row=0;row<tileRows;row++){var tile=tiles[col][row];tile.x=col*mapTileSize;tile.y=row*mapTileSize;tile.div.style.top=tile.y+"px";tile.div.style.left=tile.x+"px";var new_col=center_col+col-offset_col;var new_row=center_row+row-offset_row;if(tile.col!=new_col||tile.row!=new_row){tile.col=new_col;tile.row=new_row;requestTile(tile.id,tile.col,tile.row)}}}currentX=x;currentY=y;moveFrameLeft=zoomFrameLeft;moveFrameTop=zoomFrameTop;moveFrame.style.left=moveFrameLeft+"px";moveFrame.style.top=moveFrameTop+"px";layerFinishMove();block=false}else{positionCoordPending=new Point(x,y)}return 0}function moveMapDelta(deltaX,deltaY){var delta_x=Number(deltaX);var delta_y=Number(deltaY);if(!block&&visible){block=true;var newContainerY=tileContainer.y+delta_y;var newContainerX=tileContainer.x+delta_x;if(newContainerX>-wrapDistance){newContainerX-=mapTileSize;tileContainer.x-=mapTileSize;for(var row=0;row<tileRows;row++){var lastTile=tiles[tileCols-1][row];for(var col=tileCols-1;col>0;col--){tiles[col][row]=tiles[col-1][row];tiles[col][row].x=col*mapTileSize;tiles[col][row].div.style.left=tiles[col][row].x+"px"}tiles[0][row]=lastTile;tiles[0][row].x=0;tiles[0][row].col-=tileCols;tiles[0][row].div.style.left="0px";requestTile(tiles[0][row].id,tiles[0][row].col,tiles[0][row].row)}}else{if(newContainerX<-mapTileSize-wrapDistance){newContainerX+=mapTileSize;tileContainer.x+=mapTileSize;for(var row=0;row<tileRows;row++){var firstTile=tiles[0][row];for(var col=0;col<tileCols-1;col++){tiles[col][row]=tiles[col+1][row];tiles[col][row].x=col*mapTileSize;tiles[col][row].div.style.left=tiles[col][row].x+"px"}tiles[tileCols-1][row]=firstTile;tiles[tileCols-1][row].x=(tileCols-1)*mapTileSize;tiles[tileCols-1][row].col+=tileCols;tiles[tileCols-1][row].div.style.left=tiles[tileCols-1][row].x+"px";requestTile(tiles[tileCols-1][row].id,tiles[tileCols-1][row].col,tiles[tileCols-1][row].row)}}}if(newContainerY>-wrapDistance){newContainerY-=mapTileSize;tileContainer.y-=mapTileSize;for(var col=0;col<tileCols;col++){var lastTile=tiles[col][tileRows-1];for(var row=tileRows-1;row>0;row--){tiles[col][row]=tiles[col][row-1];tiles[col][row].y=row*mapTileSize;tiles[col][row].div.style.top=tiles[col][row].y+"px"}tiles[col][0]=lastTile;tiles[col][0].y=0;tiles[col][0].row-=tileRows;tiles[col][0].div.style.top="0px";requestTile(tiles[col][0].id,tiles[col][0].col,tiles[col][0].row)}}else{if(newContainerY<-mapTileSize-wrapDistance){newContainerY+=mapTileSize;tileContainer.y+=mapTileSize;for(var col=0;col<tileCols;col++){var firstTile=tiles[col][0];for(var row=0;row<tileRows-1;row++){tiles[col][row]=tiles[col][row+1];tiles[col][row].y=row*mapTileSize;tiles[col][row].div.style.top=tiles[col][row].y+"px"}tiles[col][tileRows-1]=firstTile;tiles[col][tileRows-1].y=(tileRows-1)*mapTileSize;tiles[col][tileRows-1].row+=tileRows;tiles[col][tileRows-1].div.style.top=tiles[col][tileRows-1].y+"px";requestTile(tiles[col][tileRows-1].id,tiles[col][tileRows-1].col,tiles[col][tileRows-1].row)}}}position.x+=delta_x;position.y+=delta_y;currentX=settings.MAP_MIN_X-(position.x-mapWidthHalf)*zoomScales[currentZoomLevel];currentY=settings.MAP_MAX_Y+(position.y-mapHeightHalf)*zoomScales[currentZoomLevel];tileContainer.x=newContainerX;tileContainer.y=newContainerY;tileContainer.div.style.top=newContainerY+"px";tileContainer.div.style.left=newContainerX+"px";layerFinishMove();block=false;return true}else{return false}}function setDragCenter(newX,newY){var x=Number(newX);var y=Number(newY);if(visible){moveFrameLeft=Math.round(zoomFrameLeft+(x-currentX)/zoomScales[currentZoomLevel]);moveFrameTop=Math.round(zoomFrameTop-(y-currentY)/zoomScales[currentZoomLevel]);moveFrame.style.left=moveFrameLeft+"px";moveFrame.style.top=moveFrameTop+"px"}}function redraw(){if(visible){for(var i=0;i<layers.length;i++){layers[i].redraw()}}}function mapDoubleClick(event){if(!externalBlock&&visible){if(smoothCenter!=null){smoothCenter.stopCentering()}var ev=util.getEvent(event);var mouse=util.inObjectXY(ev,activeSurface);var newX=currentX+(mouse.x-mapWidthHalf)*zoomScales[currentZoomLevel];var newY=currentY-(mouse.y-mapHeightHalf)*zoomScales[currentZoomLevel];if(smoothCenter!=null){var info=map.getInfo();var deltaX=Math.abs(mouse.x-mapWidthHalf)*zoomScales[currentZoomLevel]/zoomScales[info.zoom];var deltaY=Math.abs(mouse.y-mapHeightHalf)*zoomScales[currentZoomLevel]/zoomScales[info.zoom];if(deltaX<info.width/2&&deltaY<info.height/2){smoothCenter.startCenteringCoordinate(newX,newY)}else{map.setCenter(newX,newY)}}else{map.setCenter(newX,newY)}util.stopPropagation(ev)}}function pressMoveFrame(event){var ev=util.getEvent(event);if(!mousePressed&&!externalBlock&&visible){if(smoothCenter!=null){smoothCenter.stopCentering()}mousePressed=true;var mouse=util.inObjectXY(ev,activeSurface);activeSurface.style.cursor=settings.PAN_CURSOR_STYLE;startPos=new Point(mouse.x,mouse.y);mouseMoveEventId=DocumentMouseMoveEvent.addEvent(moveMoveFrame);mouseUpEventId=DocumentMouseUpEvent.addEvent(releaseMoveFrame);moveFrame.onmousedown=null}util.stopPropagation(ev)}function releaseMoveFrame(event){if(!externalBlock&&visible){var ev=util.getEvent(event);DocumentMouseUpEvent.deleteEvent(mouseUpEventId);DocumentMouseMoveEvent.deleteEvent(mouseMoveEventId);mouseMoveEventId=null;mouseUpEventId=null;activeSurface.style.cursor="default";if(mousePressed){mousePressed=false;var newX=currentX-(zoomFrameLeft-moveFrameLeft)*zoomScales[currentZoomLevel];var newY=currentY+(zoomFrameTop-moveFrameTop)*zoomScales[currentZoomLevel];map.setCenter(newX,newY);moveFrameLeft=zoomFrameLeft;moveFrameTop=zoomFrameTop;moveFrame.style.left=moveFrameLeft+"px";moveFrame.style.top=moveFrameTop+"px";moveFrame.onmousedown=pressMoveFrame}util.stopPropagation(ev);if(util.fixIEmarking){document.selection.empty()}}}function moveMoveFrame(event){if(!externalBlock&&visible){var ev=util.getEvent(event);var nowDate=new Date();var nowTime=nowDate.getTime();if((nowTime-lastMoveTime)>minMoveTime){lastMoveTime=nowTime;var mouse=util.inObjectXY(ev,activeSurface);moveFrameLeft=zoomFrameLeft+mouse.x-startPos.x;moveFrameTop=zoomFrameTop+mouse.y-startPos.y;moveFrame.style.left=moveFrameLeft+"px";moveFrame.style.top=moveFrameTop+"px"}util.stopPropagation(ev)}}function pressViewer(event){var ev=util.getEvent(event);if(!mousePressed&&!externalBlock&&visible){if(smoothCenter!=null){smoothCenter.stopCentering()}mousePressed=true;var mouse=util.inObjectXY(ev,activeSurface);activeSurface.style.cursor=settings.PAN_CURSOR_STYLE;startPos=new Point(mouse.x,mouse.y);mapPos=new Point(mouse.x,mouse.y);mouseMoveEventId=DocumentMouseMoveEvent.addEvent(moveViewer);mouseUpEventId=DocumentMouseUpEvent.addEvent(releaseViewer);activeSurface.onmousedown=null}util.stopPropagation(ev)}function releaseViewer(event){if(!externalBlock&&visible){var ev=util.getEvent(event);DocumentMouseUpEvent.deleteEvent(mouseUpEventId);DocumentMouseMoveEvent.deleteEvent(mouseMoveEventId);mouseMoveEventId=null;mouseUpEventId=null;activeSurface.style.cursor="default";if(mousePressed){mousePressed=false;zoomFrameLeft=moveFrameLeft;zoomFrameTop=moveFrameTop;zoomFrame.style.left=zoomFrameLeft+"px";zoomFrame.style.top=zoomFrameTop+"px";var newX=currentX-(zoomFrameLeft-moveFrameLeft)*zoomScales[currentZoomLevel];var newY=currentY+(zoomFrameTop-moveFrameTop)*zoomScales[currentZoomLevel];map.setCenter(newX,newY);activeSurface.onmousedown=pressViewer}util.stopPropagation(ev);if(util.fixIEmarking){document.selection.empty()}}}function moveViewer(event){if(!externalBlock&&visible){var ev=util.getEvent(event);var nowDate=new Date();var nowTime=nowDate.getTime();if((nowTime-lastMoveTime)>minMoveTime){lastMoveTime=nowTime;var mouse=util.inObjectXY(ev,activeSurface);if(moveMapDelta(mouse.x-mapPos.x,mouse.y-mapPos.y)){mapPos.x=mouse.x;mapPos.y=mouse.y}zoomFrameLeft=moveFrameLeft+mouse.x-startPos.x;zoomFrameTop=moveFrameTop+mouse.y-startPos.y;zoomFrame.style.left=zoomFrameLeft+"px";zoomFrame.style.top=zoomFrameTop+"px"}util.stopPropagation(ev)}}function setZoom(newZoom){var newZoomlevel=Number(newZoom);if(visible){if(newZoomlevel>=settings.MAP_MIN_ZOOM&&newZoomlevel<=settings.MAP_MAX_ZOOM){if(smoothCenter!=null){smoothCenter.stopCentering()}var newZoom=newZoomlevel;var found=false;var mapBaseWidth=map.getWidth()*zoomScales[map.getZoom()];var maxNewWidth=mapWidth*settings.INDEXMAP_ZOOM_MAPSIZE/100;for(;newZoom<settings.MAP_MAX_ZOOM&&!found;){found=mapBaseWidth/zoomScales[newZoom]<maxNewWidth;if(!found){newZoom++}}if(currentZoomLevel!=newZoom){currentZoomLevel=newZoom;currentScaleFactor=mapTileSize*zoomScales[currentZoomLevel];setCenter(currentX,currentY)}setZoomframeDimension();return 0}else{return 1}}else{return 0}}function indexMapHide(isNowVisible){visible=isNowVisible;if(isNowVisible){var info=map.getInfo();setZoom(map.zoom);setCenter(info.centerX,info.centerY);redraw()}else{}}function setTimer(newTimerId,newTimerCount){if(timerId>0){clearTimeout(timerId)}timerId=newTimerId;timerCount=newTimerCount}function layerFinishMove(){for(var i=0;i<layers.length;i++){layers[i].finishMove()}}function requestTile(id,col,row){for(var i=0;i<layers.length;i++){layers[i].imageRequest(id,currentZoomLevel,col,row)}}function setZoomframeDimension(){zoomFrameWidth=Math.round(map.getWidth()*zoomScales[map.getZoom()]/zoomScales[currentZoomLevel]);zoomFrameHeight=Math.round(map.getHeight()*zoomScales[map.getZoom()]/zoomScales[currentZoomLevel]);zoomFrameLeft=Math.round((mapWidth-zoomFrameWidth)/2);zoomFrameTop=Math.round((mapHeight-zoomFrameHeight)/2);zoomFrame.style.width=zoomFrameWidth+"px";zoomFrame.style.height=zoomFrameHeight+"px";zoomFrame.style.left=zoomFrameLeft+"px";zoomFrame.style.top=zoomFrameTop+"px";moveFrameLeft=zoomFrameLeft;moveFrameTop=zoomFrameTop;moveFrame.style.width=zoomFrameWidth+"px";moveFrame.style.height=zoomFrameHeight+"px";moveFrame.style.left=moveFrameLeft+"px";moveFrame.style.top=moveFrameTop+"px"}}function LayerManager(naviciAjaxApi,settings,backgroundOnly){var map=null;var layers=new Array();var divLayers=new Array();var currentType=null;var menu=null;var ajaxObject=null;var typeChangeHandler=new EventHandler();var requests=Array();var callback=Array();var requestsPending=false;this.service="Image";this.start=start;this.setMapType=setMapType;this.getLayer=getLayer;this.clearLayer=clearLayer;this.redrawLayer=redrawLayer;this.setLayerVisibility=setLayerVisibility;this.getMapPrintXML=getMapPrintXML;this.getMapPrintURL=getMapPrintURL;this.getCurrentType=function(){return currentType};this.createMenu=createMenu;this.buildRequest=buildRequest;this.parseResultXML=parseResultXML;this.requestFailed=requestFailed;this.addTypeChangeCallback=function(func){return typeChangeHandler.addListener(func)};this.deleteTypeChangeCallback=function(id){typeChangeHandler.addListener(id)};this.addDivLayer=addDivLayer;this.deleteDivLayer=deleteDivLayer;function start(ajaxObjectInstance,mapObject){map=mapObject;ajaxObject=ajaxObjectInstance;var foundfirst=false;var counter=0;for(var i=0;i<settings.LAYERS.length;i++){if(!backgroundOnly||settings.LAYERS[i].view=="background"){var transpareny=false;var css="map_image_background";var visible=false;if(settings.LAYERS[i].view=="dynamic"){css="map_image_dynamic";transpareny=true}else{if(!foundfirst){visible=true;foundfirst=true;currentType=settings.LAYERS[i].type}}var layer=null;if(settings.LAYERS[i].object==null){layer=new ImageLayer(settings.LAYERS[i].type,ajaxObject,settings.LAYERS[i].format,css,visible,transpareny)}else{layer=settings.LAYERS[i].object}layers[counter]={layer:layer,type:settings.LAYERS[i].type,dynamic:settings.LAYERS[i].view=="dynamic",format:settings.LAYERS[i].format,label:settings.LAYERS[i].label};counter++;map.addLayer(layer)}}ajaxObject.addRequestObject(this)}function createMenu(){var mapMainObject=map.getMapNode();menu=util.createElement("div");mapMainObject.appendChild(menu);menu.className=settings.MAP_CSS_BASE+"_typemenu";for(var i=0;i<layers.length;i++){if(!layers[i].dynamic){var menuItem=util.createElement("div");menuItem.className=settings.MAP_CSS_BASE+"_typemenu_item";menuItem.onclick=util.stopPropagation;menuItem.oncontextmenu=util.stopPropagation;menuItem.onmousedown=util.stopPropagation;menuItem.ondblclick=util.stopPropagation;var menuItemBackground=util.createElement("div");menuItem.appendChild(menuItemBackground);var menuItemText=util.createElement("div");menuItemText.appendChild(document.createTextNode(layers[i].label));menuItem.appendChild(menuItemText);menu.appendChild(menuItem);layers[i].menuItemBackground=menuItemBackground;layers[i].menuItemText=menuItemText;setActiveMenuItem(layers[i],layers[i].type==currentType)}}}function getSetTypeFunction(type){return function(){return naviciAjaxApi.setMapType(type)}}function setActiveMenuItem(layer,active){if(active){layer.menuItemBackground.className=settings.MAP_CSS_BASE+"_typemenu_item_bg_active";layer.menuItemText.className=settings.MAP_CSS_BASE+"_typemenu_item_text_active";layer.menuItemText.onclick=null}else{layer.menuItemBackground.className=settings.MAP_CSS_BASE+"_typemenu_item_bg";layer.menuItemText.className=settings.MAP_CSS_BASE+"_typemenu_item_text";layer.menuItemText.onclick=getSetTypeFunction(layer.type)}}function getLayer(type){for(var i=0;i<layers.length;i++){if(layers[i].type==type){return layers[i].layer}}return null}function setMapType(type){for(var i=0;i<layers.length;i++){if(!layers[i].dynamic){layers[i].layer.setVisibility(layers[i].type==type);if(menu!=null){setActiveMenuItem(layers[i],layers[i].type==type)}}}currentType=type;map.redraw();typeChangeHandler.triggerEvent(currentType);return 0}function clearLayer(type){for(var i=0;i<layers.length;i++){if(layers[i].type==type){if(layers[i].dynamic){layers[i].layer.setVisibility(false)}layers[i].layer.clearImageLayerObjects();layers[i].layer.resetCache();return 0}}return 1}function redrawLayer(type){for(var i=0;i<layers.length;i++){if(layers[i].type==type){layers[i].layer.resetCache();if(layers[i].dynamic){var objectArray=layers[i].layer.getImageLayerObjects();layers[i].layer.setVisibility(objectArray.length>0)}layers[i].layer.redraw();return 0}}return 1}function setLayerVisibility(type,show){for(var i=0;i<layers.length;i++){if(layers[i].type==type){layers[i].layer.setVisibility(show);return 0}}return 1}function addDivLayer(divLayer){var id=util.getFreeIndex(divLayers);divLayers[id]=divLayer;return id}function deleteDivLayer(id){if(id!=null){divLayers[id]=null;var hasNoFunctions=true;for(var i=0;i<divLayers.length;i++){if(divLayers[i]!=null){hasNoFunctions=false}}if(hasNoFunctions){divLayers=new Array()}}}function getMapPrintXML(width,height,type,zoom,x,y,parameters,id){var printWidth=width;var printHeight=height;var printZoom=zoom;var printX=x;var printY=y;var printType=type;var printFormat=null;var mapInfos=map.getInfo();if(printWidth==null){printWidth=mapInfos.width}if(printHeight==null){printHeight=mapInfos.height}if(printZoom==null){printZoom=mapInfos.zoom}if(printX==null){printX=mapInfos.centerX}if(printY==null){printY=mapInfos.centerY}if(printType==null){printType=currentType}for(var i=0;i<layers.length;i++){if(layers[i].type==printType){printFormat=layers[i].format}}var xml='<image type="'+printType+'" ';if(printFormat!=null){xml+='format="'+printFormat+'" '}if(id!=null){xml+='id="'+id+'" '}xml+='zoom="'+printZoom+'" ';xml+='width="'+printWidth+'" ';xml+='height="'+printHeight+'" ';xml+='center_x="'+printX+'" ';xml+='center_y="'+printY+'" ';xml+=util.parameterObject2Text(parameters);xml+=">";for(var i=0;i<layers.length;i++){var objectArray=layers[i].layer.getImageLayerObjects();for(var j=0;j<objectArray.length;j++){xml+=objectArray[j]}}for(var i=0;i<divLayers.length;i++){if(divLayers[i]!=null){var markers=divLayers[i].getMarkers();for(var j=0;j<markers.length;j++){if(markers[j]!=null&&markers[j].div.printXML!=null){xml+=markers[j].div.printXML}}}}xml+="</image>";return xml}function getMapPrintURL(callback,width,height,type,zoom,x,y,parameters){id=util.getFreeIndex(requests);requests[id]={id:id,callback:callback,width:width,height:height,type:type,zoom:zoom,x:x,y:y,parameters:parameters,status:"queued"};requestsPending=true;ajaxObject.sendRequest()}function buildRequest(){if(requestsPending){var request="";for(var i=0;i<requests.length;i++){request+=getMapPrintXML(requests[i].width,requests[i].height,requests[i].type,requests[i].zoom,requests[i].x,requests[i].y,requests[i].parameters,i);callback[id]=requests[id];callback[id].send=false}requests=new Array();requestsPending=false;return request}else{return null}}function parseResultXML(xmlObject){if(xmlObject!=null){var images=xmlObject.getElementsByTagName("image");for(i=0;i<images.length;i++){var id=images[i].getAttribute("id");callback[id].callback(images[i].firstChild.nodeValue);callback[id].send=true}}for(var id=0;id<callback.length;id++){if(callback[id]!=null&&!callback[id].send){callback[id].callback(null)}}callback=new Array()}function requestFailed(){for(var id=0;id<callback.length;id++){if(callback[id]!=null&&!callback[id].send){callback[id].callback(1)}}callback=new Array()}}function LayerMarker(imageLayer){this.addMarker=addMarker;this.addMarkerImage=addMarkerImage;this.deleteMarker=deleteMarker;function addMarker(type,x,y,color,label){var xml='<marker type="'+type+'" ';xml+='x="'+x+'" y="'+y+'" ';if(label!=null&&label!=""){xml+='label="'+encodeURIComponent(label)+'" '}if(color!=null&&color!=""){xml+='color="'+color+'" '}xml+=" />";return imageLayer.addImageLayerObject(xml)}function addMarkerImage(x,y,filename,label){var xml='<marker type="image" ';xml+='x="'+x+'" y="'+y+'" ';xml+='imagename="'+filename+'" ';if(label!=null&&label!=""){xml+='label="'+encodeURIComponent(label)+'" '}xml+=" />";return imageLayer.addImageLayerObject(xml)}function deleteMarker(id){return imageLayer.deleteImageLayerObject(id)}}function Map(settings){var mapObject=null;var activeSurface=null;var tileBackground=null;var tileContainer=null;var block=false;var externalBlock=true;var positionCoordPending=null;var mousePressed=false;var timerId=0;var timerCount=0;var lastMoveTime=0;var minMoveTime=40;var singleClickTimeout=250;var mouseMoveEventId=null;var mouseUpEventId=null;var singleClickSensitivity=0;var singleClickHandler=new EventHandler();var doubleClickHandler=new EventHandler();var contextClickHandler=new EventHandler();var zoomChangeHandler=new EventHandler();var mapDraggedHandler=new EventHandler();var mapMovedHandler=new EventHandler();var mouseDownHandler=new EventHandler();var mouseOverHandler=new EventHandler();var mouseOverInterval=50;var mouseOverTimer=null;var mouseOnMap=false;var mapFixedSize=true;var mapWidth=settings.MAP_WIDTH;var mapHeight=settings.MAP_HEIGHT;var mapTileSize=settings.MAP_TILE_SIZE;var currentZoomLevel=5;var zoomScales=settings.scales;var position=null;var currentX=0;var currentY=0;var startPos=null;var clickPos=new Point(0,0);var eventMousePosX=0;var eventMousePosY=0;var tiles=null;var tileObjectsarray=new Array();var tileRows=1;var tileCols=1;var wrapDistance=20;var layers=new Array();var currentScaleFactor=mapTileSize*zoomScales[currentZoomLevel];var mapWidthHalf=Math.floor(mapWidth/2);var mapHeightHalf=Math.floor(mapHeight/2);var offset_col=Math.floor(mapWidth/2/mapTileSize)+1;var offset_row=Math.floor(mapHeight/2/mapTileSize)+1;this.settings=settings;this.getWidth=function(){return mapWidth};this.getHeight=function(){return mapHeight};this.getCenter=getCenterCoordinates;this.getZoom=function(){return currentZoomLevel};this.getActiveSurface=function(){return activeSurface};this.getMapNode=function(){return mapObject};this.getTileBackground=function(){return tileBackground};this.getTileContainer=function(){return tileContainer};this.getTiles=function(){return tiles};this.getTileArray=function(){return tileObjectsarray};this.getMapDivObject=function(){return mapObject};this.setBlock=setBlock;this.getBlock=function(){return externalBlock};this.getDragStatus=function(){return mousePressed};this.addZoomChangeCallback=function(func){return zoomChangeHandler.addListener(func)};this.deleteZoomChangeCallback=function(id){zoomChangeHandler.deleteListener(id)};this.addContextClickCallback=function(func){return contextClickHandler.addListener(func)};this.deleteContextClickCallback=function(id){contextClickHandler.deleteListener(id)};this.addClickCallback=function(func){return singleClickHandler.addListener(func)};this.deleteClickCallback=function(id){singleClickHandler.deleteListener(id)};this.addDoubleClickCallback=function(func){return doubleClickHandler.addListener(func)};this.deleteDoubleClickCallback=function(id){doubleClickHandler.deleteListener(id)};this.addMapMovedCallback=function(func){return mapMovedHandler.addListener(func)};this.deleteMapMovedCallback=function(id){mapMovedHandler.deleteListener(id)};this.addMapDraggedCallback=function(func){return mapDraggedHandler.addListener(func)};this.deleteMapDraggedCallback=function(id){return mapDraggedHandler.deleteListener(id)};this.addMapMouseDownCallback=function(func){return mouseDownHandler.addListener(func)};this.deleteMapMouseDownCallback=function(id){mouseDownHandler.deleteListener(id)};this.addMouseOverCallback=function(func){return mouseOverHandler.addListener(func)};this.deleteMouseOverCallback=function(id){mouseOverHandler.deleteListener(id)};this.setMouseOverCallbackIntervall=setMouseOverCallbackIntervall;this.getSingleClickSensitivity=function(){return singleClickSensitivity};this.setSingleClickSensitivity=function(sensitivity){singleClickSensitivity=sensitivity};this.addLayer=addLayer;this.start=start;this.setCenter=setCenter;this.moveMapDelta=moveMapDelta;this.moveMapDeltaXY=moveMapDeltaXY;this.moveMapDeltaFinished=moveMapDeltaFinished;this.setZoom=setZoom;this.redraw=redraw;this.setSize=setSize;this.calcMapCoordinates=calcMapCoordinates;this.calcMapTileCoords=calcMapTileCoords;this.getInfo=getInfo;var test=0;function addLayer(layer){layers.push(layer);return layers.length-1}function setBlock(state){if(!state){if(positionCoordPending!=null){setCenter(positionCoordPending.x,positionCoordPending.y);positionCoordPending=null}}externalBlock=state}function setMouseOverCallbackIntervall(time){if(mouseOverTimer!=null){clearTimeout(mouseOverTimer);mouseOverTimer=null}mouseOverInterval=Math.floor(time/4);if(mouseOverInterval>0){var x=eventMousePosX;var y=eventMousePosY;mouseOverTimer=setTimeout(function(){return mouseOverEvent(x,y,0)},mouseOverInterval)}return 0}function start(x,y,zoom){currentZoomLevel=zoom;currentScaleFactor=mapTileSize*zoomScales[currentZoomLevel];createMapObjects();prepareViewer();if(util.isIE){var activeSurfaceHeight=activeSurface.clientHeight;var activeSurfaceWidth=activeSurface.clientWidth;activeSurface.style.height=(activeSurfaceHeight+2*mapTileSize)+"px";activeSurface.style.width=(activeSurfaceWidth+2*mapTileSize)+"px";activeSurface.style.backgroundPosition=(Math.round(activeSurfaceWidth/2))+"px "+(Math.round(activeSurfaceHeight/2))+"px"}for(var i=0;i<layers.length;i++){layers[i].start(this)}externalBlock=false;setCenter(x,y);setMouseOverCallbackIntervall(mouseOverInterval*4)}function createMapObjects(){var mapContainer=util.attach(settings.MAP_AREA);mapObject=util.createElement("div");mapContainer.appendChild(mapObject);mapObject.className=settings.MAP_CSS_BASE;mapObject.style.width=mapWidth+"px";mapObject.style.height=mapHeight+"px";tileBackground=util.createElement("div");mapObject.appendChild(tileBackground);tileBackground.className=settings.MAP_CSS_BASE+"_backgroundtiles";tileContainer={x:0,y:0,div:null,width:0,height:0};tileContainer.div=util.createElement("div");tileBackground.appendChild(tileContainer.div);tileContainer.div.className=settings.MAP_CSS_BASE+"_tilecontainer";activeSurface=util.createElement("div");mapObject.appendChild(activeSurface);activeSurface.className=settings.MAP_CSS_BASE+"_surface"}function prepareViewer(){position=new Point(0,0);startPos=new Point(0,0);var firsttime=(tiles==null);var oldTileRows=tileRows;var oldTileCols=tileCols;tileRows=Math.ceil((mapHeight+2*wrapDistance)/mapTileSize)+1;tileCols=Math.ceil((mapWidth+2*wrapDistance)/mapTileSize)+1;if(firsttime){tiles=new Array()}else{if(tileCols<oldTileCols){var tilediff=oldTileCols-tileCols;for(var col=0;col<tilediff;col++){var tileCol=tiles.pop();for(var row=0;row<oldTileRows;row++){var tile=tileCol.pop();tileObjectsarray.splice(tile.id,1);tileContainer.div.removeChild(tile.div)}}oldTileCols=tileCols}if(tileRows<oldTileRows){var tilediff=oldTileRows-tileRows;for(var col=0;col<oldTileCols;col++){var tileCol=tiles[col];for(var row=0;row<tilediff;row++){var tile=tileCol.pop();tileObjectsarray.splice(tile.id,1);tileContainer.div.removeChild(tile.div)}}}}tileContainer.width=(tileCols*mapTileSize);tileContainer.height=(tileRows*mapTileSize);tileContainer.div.style.width=tileContainer.width+"px";tileContainer.div.style.height=tileContainer.height+"px";tileContainer.x=0;tileContainer.y=0;var tilesCounter=0;for(var col=0;col<tileCols;col++){var tileCol=tiles[col];if(tileCol==null){tileCol=new Array()}for(var row=0;row<tileRows;row++){var tile=tileCol[row];if(tile==null){tile=new Tile(tilesCounter,null,null);tile.div=util.createElement("div");tile.div.className=settings.MAP_CSS_BASE+"_tile";tileContainer.div.appendChild(tile.div);tile.created=true}else{tile.created=false}tile.id=tilesCounter;tileObjectsarray[tilesCounter]=tile;tilesCounter++;tileCol[row]=tile}tiles[col]=tileCol}if(firsttime){activeSurface.onmousedown=pressViewer;activeSurface.ondblclick=doubleClickEvent;activeSurface.onmousemove=mousePosition;activeSurface.oncontextmenu=contextClickEvent;activeSurface.onmouseout=mouseLeavesMap}}function setSize(newWidth,newHeight,newX,newY){if(!block){block=true;mapWidth=newWidth;mapHeight=newHeight;mapWidthHalf=Math.floor(mapWidth/2);mapHeightHalf=Math.floor(mapHeight/2);offset_col=Math.floor(mapWidth/2/mapTileSize)+1;offset_row=Math.floor(mapHeight/2/mapTileSize)+1;mapObject.style.width=mapWidth+"px";mapObject.style.height=mapHeight+"px";prepareViewer();block=false;for(var i=0;i<layers.length;i++){this.tempLayerIndex=i;layers[i].start(this)}for(var t=0;t<tileObjectsarray.length;t++){tileObjectsarray[t].create=false}if(newX!=null&&newY!=null){setCenter(newX,newY)}else{setCenter(currentX,currentY)}zoomChangeHandler.triggerEvent(getInfo())}}function setCenter(newX,newY){var x=Number(newX);var y=Number(newY);if(!block&&!externalBlock){block=true;var center_col=Math.floor((x-settings.MAP_MIN_X)/currentScaleFactor);var center_row=Math.floor((settings.MAP_MAX_Y-y)/currentScaleFactor);var rest_x=x-(settings.MAP_MIN_X+center_col*currentScaleFactor);var rest_y=y-(settings.MAP_MAX_Y-center_row*currentScaleFactor);rest_x=-Math.ceil(rest_x/zoomScales[currentZoomLevel]);rest_y=Math.ceil(rest_y/zoomScales[currentZoomLevel]);position.x=-(center_col)*mapTileSize+rest_x+mapWidthHalf;position.y=-(center_row)*mapTileSize+rest_y+mapHeightHalf;rest_x+=mapWidthHalf-offset_col*mapTileSize;rest_y+=mapHeightHalf-offset_row*mapTileSize;if(tileCols*mapTileSize+rest_x<mapWidth){center_col++;rest_x+=mapTileSize}if(tileRows*mapTileSize+rest_y<mapHeight){center_row++;rest_y+=mapTileSize}tileContainer.x=rest_x;tileContainer.y=rest_y;tileContainer.div.style.top=rest_y+"px";tileContainer.div.style.left=rest_x+"px";for(var col=0;col<tileCols;col++){for(var row=0;row<tileRows;row++){var tile=tiles[col][row];tile.x=col*mapTileSize;tile.y=row*mapTileSize;tile.div.style.top=tile.y+"px";tile.div.style.left=tile.x+"px";var new_col=center_col+col-offset_col;var new_row=center_row+row-offset_row;if(tile.col!=new_col||tile.row!=new_row){tile.col=new_col;tile.row=new_row;requestTile(tile.id,tile.col,tile.row)}}}currentX=x;currentY=y;layerFinishMove();mapMovedHandler.triggerEvent(getInfo());block=false}else{positionCoordPending=new Point(x,y)}return 0}function moveMapDelta(deltaX,deltaY){var delta_x=Number(deltaX);var delta_y=Number(deltaY);if(!block){block=true;var newContainerY=tileContainer.y+delta_y;var newContainerX=tileContainer.x+delta_x;if(newContainerX>-wrapDistance){newContainerX-=mapTileSize;tileContainer.x-=mapTileSize;for(var row=0;row<tileRows;row++){var lastTile=tiles[tileCols-1][row];for(var col=tileCols-1;col>0;col--){tiles[col][row]=tiles[col-1][row];tiles[col][row].x=col*mapTileSize;tiles[col][row].div.style.left=tiles[col][row].x+"px"}tiles[0][row]=lastTile;tiles[0][row].x=0;tiles[0][row].col-=tileCols;tiles[0][row].div.style.left="0px";requestTile(tiles[0][row].id,tiles[0][row].col,tiles[0][row].row)}}else{if(newContainerX<-mapTileSize-wrapDistance){newContainerX+=mapTileSize;tileContainer.x+=mapTileSize;for(var row=0;row<tileRows;row++){var firstTile=tiles[0][row];for(var col=0;col<tileCols-1;col++){tiles[col][row]=tiles[col+1][row];tiles[col][row].x=col*mapTileSize;tiles[col][row].div.style.left=tiles[col][row].x+"px"}tiles[tileCols-1][row]=firstTile;tiles[tileCols-1][row].x=(tileCols-1)*mapTileSize;tiles[tileCols-1][row].col+=tileCols;tiles[tileCols-1][row].div.style.left=tiles[tileCols-1][row].x+"px";requestTile(tiles[tileCols-1][row].id,tiles[tileCols-1][row].col,tiles[tileCols-1][row].row)}}}if(newContainerY>-wrapDistance){newContainerY-=mapTileSize;tileContainer.y-=mapTileSize;for(var col=0;col<tileCols;col++){var lastTile=tiles[col][tileRows-1];for(var row=tileRows-1;row>0;row--){tiles[col][row]=tiles[col][row-1];tiles[col][row].y=row*mapTileSize;tiles[col][row].div.style.top=tiles[col][row].y+"px"}tiles[col][0]=lastTile;tiles[col][0].y=0;tiles[col][0].row-=tileRows;tiles[col][0].div.style.top="0px";requestTile(tiles[col][0].id,tiles[col][0].col,tiles[col][0].row)}}else{if(newContainerY<-mapTileSize-wrapDistance){newContainerY+=mapTileSize;tileContainer.y+=mapTileSize;for(var col=0;col<tileCols;col++){var firstTile=tiles[col][0];for(var row=0;row<tileRows-1;row++){tiles[col][row]=tiles[col][row+1];tiles[col][row].y=row*mapTileSize;tiles[col][row].div.style.top=tiles[col][row].y+"px"}tiles[col][tileRows-1]=firstTile;tiles[col][tileRows-1].y=(tileRows-1)*mapTileSize;tiles[col][tileRows-1].row+=tileRows;tiles[col][tileRows-1].div.style.top=tiles[col][tileRows-1].y+"px";requestTile(tiles[col][tileRows-1].id,tiles[col][tileRows-1].col,tiles[col][tileRows-1].row)}}}position.x+=delta_x;position.y+=delta_y;currentX=settings.MAP_MIN_X-(position.x-mapWidthHalf)*zoomScales[currentZoomLevel];currentY=settings.MAP_MAX_Y+(position.y-mapHeightHalf)*zoomScales[currentZoomLevel];tileContainer.x=newContainerX;tileContainer.y=newContainerY;tileContainer.div.style.top=newContainerY+"px";tileContainer.div.style.left=newContainerX+"px";mapDraggedHandler.triggerEvent(getInfo());layerFinishMove();block=false;return true}else{return false}}function moveMapDeltaXY(newX,newY){var x=Number(newX);var y=Number(newY);var deltaX=(currentX-x)/zoomScales[currentZoomLevel];var deltaY=(y-currentY)/zoomScales[currentZoomLevel];moveMapDelta(deltaX,deltaY);currentX=x;currentY=y}function moveMapDeltaFinished(){mapMovedHandler.triggerEvent(getInfo())}function redraw(){for(var i=0;i<layers.length;i++){layers[i].redraw()}}function requestTile(id,col,row){for(var i=0;i<layers.length;i++){layers[i].imageRequest(id,currentZoomLevel,col,row)}}function pressViewer(event){setTimer(0,0);var ev=util.getEvent(event);test=ev.clientX;if(!mousePressed&&!externalBlock){mousePressed=true;var mouse=util.inObjectXY(ev,activeSurface);tileBackground.style.cursor=activeSurface.style.cursor=settings.PAN_CURSOR_STYLE;startPos=new Point(mouse.x,mouse.y);clickPos=new Point(mouse.x,mouse.y);mouseMoveEventId=DocumentMouseMoveEvent.addEvent(moveViewer);mouseUpEventId=DocumentMouseUpEvent.addEvent(releaseViewer);activeSurface.onmousedown=null;mouseDownHandler.triggerEvent(getInfo(ev.clientX,ev.clientY))}util.stopPropagation(ev)}function releaseViewer(event){setTimer(0,0);if(!externalBlock){var ev=util.getEvent(event);DocumentMouseUpEvent.deleteEvent(mouseUpEventId);DocumentMouseMoveEvent.deleteEvent(mouseMoveEventId);mouseMoveEventId=null;mouseUpEventId=null;tileBackground.style.cursor=activeSurface.style.cursor="default";var mouse=util.inObjectXY(ev,activeSurface);if(Math.abs(mouse.x-clickPos.x)<=singleClickSensitivity&&Math.abs(mouse.y-clickPos.y)<=singleClickSensitivity){eventMousePosX=ev.clientX;eventMousePosY=ev.clientY;var x=ev.clientX;var y=ev.clientY;var newtimerId=setTimeout(function(){return singleClickEvent(x,y)},singleClickTimeout);setTimer(newtimerId,0)}if(mousePressed){mousePressed=false;activeSurface.onmousedown=pressViewer;mapMovedHandler.triggerEvent(getInfo(ev.clientX,ev.clientY))}util.stopPropagation(ev);if(util.fixIEmarking){document.selection.empty()}}}function moveViewer(event){if(!externalBlock){var ev=util.getEvent(event);var nowDate=new Date();var nowTime=nowDate.getTime();if((nowTime-lastMoveTime)>minMoveTime){lastMoveTime=nowTime;var mouse=util.inObjectXY(ev,activeSurface);if(moveMapDelta(mouse.x-startPos.x,mouse.y-startPos.y)){startPos.x=mouse.x;startPos.y=mouse.y}}util.stopPropagation(ev)}}function mousePosition(event){var ev=util.getEvent(event);mouseOnMap=true;eventMousePosX=ev.clientX;eventMousePosY=ev.clientY}function mouseLeavesMap(event){mouseOnMap=false}function setZoom(newZoom){var newZoomlevel=Number(newZoom);if(newZoomlevel!=currentZoomLevel){if(newZoomlevel>=settings.MAP_MIN_ZOOM&&newZoomlevel<=settings.MAP_MAX_ZOOM){currentZoomLevel=newZoomlevel;currentScaleFactor=mapTileSize*zoomScales[currentZoomLevel];setCenter(currentX,currentY);zoomChangeHandler.triggerEvent(getInfo());return 0}else{return 1}}else{return 0}}function setTimer(newTimerId,newTimerCount){if(timerId>0){clearTimeout(timerId)}timerId=newTimerId;timerCount=newTimerCount}function layerFinishMove(){for(var i=0;i<layers.length;i++){layers[i].finishMove()}}function contextClickEvent(event){setTimer(0,0);var ev=util.getEvent(event);if(!block&&!externalBlock){eventMousePosX=ev.clientX;eventMousePosY=ev.clientY;contextClickHandler.triggerEvent(getInfo(eventMousePosX,eventMousePosY))}util.stopPropagation(ev)}function singleClickEvent(x,y){setTimer(0,0);if(!block&&!externalBlock){singleClickHandler.triggerEvent(getInfo(x,y))}}function doubleClickEvent(event){setTimer(0,0);var ev=util.getEvent(event);if(!block&&!externalBlock){eventMousePosX=ev.clientX;eventMousePosY=ev.clientY;doubleClickHandler.triggerEvent(getInfo(eventMousePosX,eventMousePosY))}util.stopPropagation(ev)}function mouseOverEvent(lastX,lastY,counter){clearTimeout(mouseOverTimer);var x=eventMousePosX;var y=eventMousePosY;if(mouseOnMap&&!block&&!externalBlock&&Math.abs(eventMousePosX-lastX)<=1&&Math.abs(eventMousePosY-lastY)<=1){if(counter<4){mouseOverTimer=setTimeout(function(){return mouseOverEvent(x,y,counter+1)},mouseOverInterval)}else{mouseOverHandler.triggerEvent(getInfo(x,y));mouseOverTimer=setTimeout(function(){return mouseOverEvent(x,y,0)},mouseOverInterval)}}else{mouseOverTimer=setTimeout(function(){return mouseOverEvent(x,y,0)},mouseOverInterval)}}function calcMapCoordinates(newX,newY,newZoom){var x=Number(newX);var y=Number(newY);var zoom=Number(newZoom);var new_x=settings.MAP_MIN_X-Math.floor((position.x-mapWidthHalf)-(x-mapWidth/2))*zoomScales[zoom];var new_y=settings.MAP_MAX_Y+Math.floor((position.y-mapHeightHalf)-(y-mapHeight/2))*zoomScales[zoom];return new Point(new_x,new_y)}function calcMapTileCoords(newX,newY,newZoom){var x=Number(newX);var y=Number(newY);var zoom=Number(newZoom);var col=Math.floor((x-settings.MAP_MIN_X)/zoomScales[zoom]/mapTileSize);var row=Math.floor((settings.MAP_MAX_Y-y)/zoomScales[zoom]/mapTileSize);var left=x-(settings.MAP_MIN_X+col*mapTileSize*zoomScales[zoom]);var top=y-(settings.MAP_MAX_Y-row*mapTileSize*zoomScales[zoom]);left=Math.ceil(left/zoomScales[zoom]);top=-Math.ceil(top/zoomScales[zoom]);return{zoom:zoom,col:col,row:row,left:left,top:top}}function getCenterCoordinates(){return calcMapCoordinates(mapWidthHalf,mapHeightHalf,currentZoomLevel)}function getInfo(mouseX,mouseY){if(mouseX==null||mouseY==null){mouseX=eventMousePosX;mouseY=eventMousePosY}var mouse={clientX:mouseX,clientY:mouseY};var mouseOnMap=util.inObjectXY(mouse,activeSurface);var mouseCoord=calcMapCoordinates(mouseOnMap.x,mouseOnMap.y,currentZoomLevel);return{zoom:currentZoomLevel,centerX:currentX,centerY:currentY,mouseX:mouseX,mouseY:mouseY,mouseOnMapX:mouseOnMap.x,mouseOnMapY:mouseOnMap.y,mouseCoordX:mouseCoord.x,mouseCoordY:mouseCoord.y,width:mapWidth,height:mapHeight}}}function MapCopyright(){var map=null;var currentType="";var currentZoom="";var copyrightImage=null;var imagePath="";this.set=set;this.update=update;this.start=start;function start(mapObject,settings,type){map=mapObject;currentZoom=settings.MAP_INI_ZOOM;currentType=type;imagePath=settings.MAP_IMAGEPATH;copyrightImage=util.createElement("img");var tileBackground=map.getTileBackground();tileBackground.appendChild(copyrightImage);copyrightImage.className=settings.MAP_CSS_BASE+"_copyright";util.loadPngImage(copyrightImage,imagePath+"/"+currentType+"/copyright"+currentZoom)}function set(type,zoom){if(type!=null){currentType=type}if(zoom!=null){currentZoom=zoom}util.loadPngImage(copyrightImage,imagePath+"/"+currentType+"/copyright"+currentZoom)}function update(){currentZoom=map.getZoom();util.loadPngImage(copyrightImage,imagePath+"/"+currentType+"/copyright"+currentZoom)}}function MapLocation(initialX,initialY){var attributes=new Array();var x=initialX;var y=initialY;var category=null;var name=null;var caption=null;var type=null;var poiName=null;var street=null;var streetLocation=null;var postalcode=null;var municipalitySubdivision=null;var municipality=null;var countrySecondarySubdivision=null;var countrySubdivision=null;var country=null;var countryCode=null;var locationName=null;this.getAddress=getAddress;this.setAttribute=setAttribute;this.getAttribute=getAttribute;this.getX=function(){return x};this.getY=function(){return y};this.getCategory=function(){return category};this.getCity=function(){return municipality};this.getName=function(){return name};this.getLocationName=function(){return locationName};this.getNumber=function(){return streetLocation};this.getType=function(){return type};this.getPOIName=function(){return poiName};this.getStreet=function(){return street};this.getStreetLocation=function(){return streetLocation};this.getPostalcode=function(){return postalcode};this.getMunicipalitySubdivision=function(){return municipalitySubdivision};this.getMunicipality=function(){return municipality};this.getCountrySecondarySubdivision=function(){return countrySecondarySubdivision};this.getCountrySubdivision=function(){return countrySubdivision};this.getCountry=function(){return country};this.getCountryCode=function(){return countryCode};this.setX=function(newX){x=newX};this.setY=function(newY){y=newY};this.setCategory=function(newCategory){category=newCategory};this.setNumber=function(newNumber){streetLocation=newNumber};this.setStreetLocation=function(newNumber){streetLocation=newNumber};this.setCountryCode=function(newCode){countryCode=newCode};this.setName=setName;this.setLocationName=setLocationName;this.setType=setType;this.setPOIName=setPOIName;this.setStreet=setStreet;this.setPostalcode=setPostalcode;this.setMunicipality=setMunicipality;this.setMunicipalitySubdivision=setMunicipalitySubdivision;this.setCity=setMunicipality;this.setCountrySecondarySubdivision=setCountrySecondarySubdivision;this.setCountrySubdivision=setCountrySubdivision;this.setCountry=setCountry;function setType(newType){type=newType;if(type=="Poi"||type=="poi"){name=poiName;category="poi";type="Poi"}else{if(type=="Address"||type=="Street"||type=="street"){name=street;category="street";type="Street"}else{if(type=="Postalcode"){name=postalcode;category="postalcode"}else{if(type=="MunicipalitySubdivision"){name=municipalitySubdivision;category="district"}else{if(type=="Municipality"){name=municipality;category="city"}else{if(type=="CountrySecondarySubdivision"){category="county";name=countrySecondarySubdivision}else{if(type=="CountrySubdivision"){category="state";name=countrySubdivision}else{if(type=="Country"){category="country";name=country}}}}}}}}}function setName(newName){name=newName;if(type=="Poi"){poiName=name}else{if(type=="Address"||type=="Street"){street=newName}else{if(type=="Postalcode"){postalcode=newName}else{if(type=="MunicipalitySubdivision"){municipalitySubdivision=newName}else{if(type=="Municipality"){municipality=newName}else{if(type=="CountrySecondarySubdivision"){countrySecondarySubdivision=newName}else{if(type=="CountrySubdivision"){countrySubdivision=newName}else{if(type=="Country"){country=newName}}}}}}}}}function setLocationName(newName){locationName=newName}function setPOIName(newName){poiName=newName;if(type=="Poi"){name=newName}}function setStreet(newName){street=newName;if(type=="Street"){name=newName}}function setPostalcode(newName){postalcode=newName;if(type=="Postalcode"){name=newName}}function setMunicipalitySubdivision(newName){municipalitySubdivision=newName;if(type=="MunicipalitySubdivision"){name=newName}}function setMunicipality(newName){municipality=newName;if(type=="Municipality"){name=newName}}function setCountrySecondarySubdivision(newName){countrySecondarySubdivision=newName;if(type=="CountrySecondarySubdivision"){name=newName}}function setCountrySubdivision(newName){countrySubdivision=newName;if(type=="CountrySubdivision"){name=newName}}function setCountry(newName){country=newName;if(type=="Country"){name=newName}}function getAddress(){var result=name;if(streetLocation!=null&&streetLocation!=""){result+=" "+streetLocation}if(municipality!=null){result+=", "+municipality}return result}function setAttribute(attributename,attributevalue){if(attributename=="Type"||attributename=="type"){setType(attributevalue)}else{if(attributename=="category"){category=attributevalue}else{if(attributename=="name"){setName(attributevalue)}else{if(attributename=="x"){x=attributevalue}else{if(attributename=="y"){y=attributevalue}else{if(attributename=="number"||attributename=="StreetLocation"){streetLocation=attributevalue}else{if(attributename=="caption"){caption=attributevalue}else{if(attributename=="POIName"){setPOIName(attributevalue)}else{if(attributename=="Street"){setStreet(attributevalue)}else{if(attributename=="Postalcode"){setPostalcode(attributevalue)}else{if(attributename=="city"||attributename=="Municipality"){setMunicipality(attributevalue)}else{if(attributename=="MunicipalitySubdivision"){setMunicipalitySubdivision(attributevalue)}else{if(attributename=="CountrySecondarySubdivision"){setCountrySecondarySubdivision(attributevalue)}else{if(attributename=="CountrySubdivision"){setCountrySubdivision(attributevalue)}else{if(attributename=="Country"){setCountry(attributevalue)}else{if(attributename=="LocationName"){setLocationName(attributevalue)}else{var found=false;for(var i=0;i<attributes.length&&!found;i++){if(attributes[i].attributename==attributename){found=true;attributes[i].attributevalue=attributevalue}}if(!found){attributes.push({attributename:attributename,attributevalue:attributevalue})}}}}}}}}}}}}}}}}}}function getAttribute(attributename){if(attributename=="category"){return category}else{if(attributename=="name"){return name}else{if(attributename=="x"){return x}else{if(attributename=="y"){return y}else{if(attributename=="number"||attributename=="StreetLocation"){return streetLocation}else{if(attributename=="caption"){return caption}else{if(attributename=="POIName"){return poiName}else{if(attributename=="Street"){return street}else{if(attributename=="Postalcode"){return postalcode}else{if(attributename=="city"||attributename=="Municipality"){return municipality}else{if(attributename=="MunicipalitySubdivision"){return municipalitySubdivision}else{if(attributename=="CountrySecondarySubdivision"){return countrySecondarySubdivision}else{if(attributename=="CountrySubdivision"){return countrySubdivision}else{if(attributename=="Country"){return country}else{if(attributename=="LocationName"){return locationName}else{var result=null;for(var i=0;i<attributes.length&&result==null;i++){if(attributes[i].attributename==attributename){result=attributes[i].attributevalue}}return result}}}}}}}}}}}}}}}}}function MapMenu(){var div=null;var left=0;var top=0;var mapPositionX=null;var mapPositionY=null;var menuItems=new Array();var cssBase="";this.show=show;this.start=start;this.hide=hide;this.addMapMenuItem=addMapMenuItem;this.deleteMapMenuItem=deleteMapMenuItem;function start(cssClass,map){cssBase=cssClass;div=util.createElement("div");div.className=cssClass;div.onmouseout=hideOnOut;div.onclick=util.stopPropagation;div.onmousedown=util.stopPropagation;div.onmouseup=util.stopPropagation;div.onmousemove=util.stopPropagation;var activeSurface=map.getActiveSurface();activeSurface.appendChild(div)}function addMapMenuItem(outsideId,caption,callback,parameters){var id=outsideId;if(id==null){id=util.getFreeIndex(menuItems)}menuItems[id]=util.createElement("a");menuItems[id].menuItemId=id;menuItems[id].onclick=new callCallback(id);menuItems[id].setAttribute("href","javascript: util.voidFunction();");menuItems[id].callback=callback;if(caption!=null&&caption!=""){var textnode=document.createTextNode(caption);menuItems[id].appendChild(textnode)}div.appendChild(menuItems[id]);if(parameters!=null){for(var i=0;i<parameters.length;i++){menuItems[id].setAttribute(parameters[i].attributename,parameters[i].attributevalue)}}return menuItems[id]}function deleteMapMenuItem(item){div.removeChild(item);menuItems[item.menuItemId]=null;return 0}function callCallback(id){return function(event){hide();menuItems[id].callback(id,mapPositionX,mapPositionY,0)}}function show(mapInfos){left=mapInfos.mouseOnMapX-8;top=mapInfos.mouseOnMapY-8;mapPositionX=mapInfos.mouseCoordX;mapPositionY=mapInfos.mouseCoordY;div.style.visibility="visible";div.style.left=(left)+"px";div.style.top=(top)+"px"}function hide(){div.style.visibility="hidden"}function hideOnOut(event){var ev=util.getEvent(event);if(util.leavingObject(ev,div)){div.style.visibility="hidden"}}}function MapMeter(){var map=null;var currentType="";var currentZoom="";var zoomImage=null;var imagePath="";this.set=set;this.update=update;this.start=start;function start(mapObject,settings,type){map=mapObject;currentZoom=settings.MAP_INI_ZOOM;currentType=type;imagePath=settings.MAP_IMAGEPATH;zoomImage=util.createElement("img");var tileBackground=map.getTileBackground();tileBackground.appendChild(zoomImage);zoomImage.className=settings.MAP_CSS_BASE+"_meter";util.loadPngImage(zoomImage,imagePath+"/"+currentType+"/meter"+currentZoom)}function set(type,zoom){if(type!=null){currentType=type}if(zoom!=null){currentZoom=zoom}util.loadPngImage(zoomImage,imagePath+"/"+currentType+"/meter"+currentZoom)}function update(){currentZoom=map.getZoom();util.loadPngImage(zoomImage,imagePath+"/"+currentType+"/meter"+currentZoom)}}function MapPanControl(){var cssClass="map_pan";var width=52;var height=52;var mapPan=null;var map=null;var moveFactor=0.25;var panActive=false;var panPressed=false;var deltaX=0;var deltaY=0;var mouseMoveEventId=null;var mouseUpEventId=null;var timerSpeed=50;var timerId=0;var timerCount=0;this.start=start;this.setLayout=setLayout;function start(mapObject){map=mapObject;moveFactor=map.settings.PAN_FACTOR;timerSpeed=map.settings.PAN_SPEED;mapPan=util.createElement("div");var mapMainObject=map.getMapNode();var mapPanBackground=util.createElement("div");mapMainObject.appendChild(mapPanBackground);mapPanBackground.className=cssClass+"_background";mapMainObject.appendChild(mapPan);jQuery(mapPan).addClass(cssClass);mapPan.style.width=width+"px";mapPan.style.height=height+"px";mapPan.onmousedown=startPan;mapPan.onmouseout=releasePan}function setLayout(controlWidth,controlHeight,cssClassName){height=controlHeight;width=controlWidth;cssClass=cssClassName}function startPan(event){if(!panPressed&&!map.getBlock()){panPressed=true;map.setBlock(true);var ev=util.getEvent(event);var mouse=util.inObjectXY(ev,mapPan);deltaX=-Math.ceil((mouse.x-width/2)*moveFactor);deltaY=-Math.ceil((mouse.y-height/2)*moveFactor);timerCount=1000;moveMapTimer();mouseMoveEventId=DocumentMouseMoveEvent.addEvent(changePanDirection);mouseUpEventId=DocumentMouseUpEvent.addEvent(releasePan);mapPan.onmouseout=releasePan;mapPan.onmousedown=null;util.stopPropagation(ev)}}function changePanDirection(event){if(panPressed){var ev=util.getEvent(event);var mouse=util.inObjectXY(ev,mapPan);deltaX=-Math.ceil((mouse.x-width/2)*moveFactor);deltaY=-Math.ceil((mouse.y-height/2)*moveFactor);timerCount=1000;util.stopPropagation(ev)}}function releasePan(){if(panPressed){if(timerId>0){clearTimeout(timerId)}timerCount=0;DocumentMouseUpEvent.deleteEvent(mouseUpEventId);DocumentMouseMoveEvent.deleteEvent(mouseMoveEventId);mouseMoveEventId=null;mouseUpEventId=null;mapPan.onmousedown=startPan;panPressed=false;map.setBlock(false);map.moveMapDeltaFinished()}}function moveMapTimer(){if(timerId>0){clearTimeout(timerId)}timerCount--;map.moveMapDelta(deltaX,deltaY);if(timerCount>0){timerId=setTimeout(function(){moveMapTimer()},timerSpeed)}}}function MapPopupManager(naviciAjaxApi,settings){var titelText="Points of Interest";var popupDivs=new Array();var eventCallback=null;var css_base=settings.POPUP_CSS_BASE;var dynamicPosition=settings.POPUP_DYNAMIC_POSITION;var backgroundWidth=settings.POPUP_WIDTH;var backgroundHeight=settings.POPUP_HEIGHT;var backgroundImage=settings.POPUP_BACKGROUND_IMAGE;this.setEventCallback=function(callbackFunction){eventCallback=callbackFunction};this.setTitle=function(newTitle){titelText=newTitle};this.setCssBase=function(newBase){css_base=newBase};this.addPopup=addPopup;this.deletePopup=deletePopup;function addPopup(x,y,elements){var offsetX=-234;var offsetY=-287;var styleTop="0px";var styleBottom="0px";var styleLeft="0px";var styleRight="0px";var image_suffix="_";if(dynamicPosition){var map=naviciAjaxApi.getMapInfos();if(y<map.centerY){offsetY=-backgroundHeight-offsetY;styleBottom="0px";image_suffix+="t"}else{styleTop="0px";image_suffix+="b"}if(x>map.centerX){offsetX=-backgroundWidth-offsetX;styleRight="0px";image_suffix+="l"}else{styleLeft="0px";image_suffix+="r"}}var markerDiv=naviciAjaxApi.addDivMarker(css_base,x,y,"",offsetX,offsetY);markerDiv.onmouseout=function(event){return mouseOutEvent(event,markerDiv.markerId)};var backgroundDiv=util.createElement("div");backgroundDiv.className=css_base+"_background";markerDiv.appendChild(backgroundDiv);if(backgroundImage!=null){var backgroundImg=util.createElement("img");backgroundDiv.appendChild(backgroundImg);image_suffix="_tl";util.loadPngImage(backgroundImg,backgroundImage+image_suffix);if(dynamicPosition){backgroundImg.style.top=styleTop;backgroundImg.style.bottom=styleBottom;backgroundImg.style.left=styleLeft;backgroundImg.style.right=styleRight}}var windowDiv=util.createElement("div");windowDiv.className=css_base+"_window";if(dynamicPosition){windowDiv.style.top=styleTop;windowDiv.style.bottom=styleBottom;windowDiv.style.left=styleLeft;windowDiv.style.right=styleRight}windowDiv.onmousedown=util.stopPropagation;windowDiv.onmousemove=util.stopPropagation;windowDiv.ondblclick=util.stopPropagation;markerDiv.appendChild(windowDiv);var headerDiv=util.createElement("div");headerDiv.className=css_base+"_header";headerDiv.appendChild(document.createTextNode(titelText));windowDiv.appendChild(headerDiv);var closeDiv=util.createElement("div");closeDiv.className=css_base+"_close";closeDiv.onclick=function(event){return deletePopup(markerDiv.markerId)};headerDiv.appendChild(closeDiv);var infoDiv=util.createElement("div");infoDiv.className=css_base+"_infoarea";windowDiv.appendChild(infoDiv);for(var i=0;i<elements.length;i++){infoDiv.appendChild(elements[i])}popupDivs[markerDiv.markerId]=markerDiv;return markerDiv}function mouseOutEvent(event,markerId){var ev=util.getEvent(event);util.stopPropagation(event);if(util.leavingObject(ev,popupDivs[markerId])){}}function deletePopup(markerId){if(eventCallback!=null){eventCallback(popupDivs[markerId],1)}popupDivs[markerId].style.display="none"}function pinclose(markerId){popupDivs[markerId].onmouseout=null;popupDivs[markerId].pinDiv.className=css_base+"_pinclose";popupDivs[markerId].pinDiv.onclick=function(event){return pinopen(markerId)};eventCallback(popupDivs[markerId],2)}function pinopen(markerId){popupDivs[markerId].onmouseout=function(event){return mouseOutEvent(event,markerId)};popupDivs[markerId].pinDiv.className=css_base+"_pinopen";popupDivs[markerId].pinDiv.onclick=function(event){return pinclose(markerId)};eventCallback(popupDivs[markerId],3)}}function MapScaleBar(){var map=null;var mapMainObject=null;var divMarker=null;var markers=null;var cssClass="map_scalebar";var scalebarStart=22;var scalebarLength=157;var mapScalebar=null;var mapScalebarSlider=null;var tooltips=null;var mapZoomScales=null;var bartop=0;var mousePressPosition=null;var scaleUnitLength=0;var zoomlevels=0;var centerX=0;var centerY=0;var tileRows=1;var tileCols=1;var tileContainer=null;var tiles=null;var pseudoZoomActive=false;var zoomSliderPressed=false;var sliderPos=0;var tileContainerLeft="0px";var tileContainerTop="0px";var tooltipDiv=null;var tooltipText=null;var tooltipOffsetX=-15;var tooltipOffsetY=15;var mouseMoveEventId=null;var mouseUpEventId=null;this.start=start;this.setLayout=setLayout;this.setZoom=setZoom;this.getPseudoZoomStatus=getPseudoZoomStatus;this.releaseZoom=releaseZoom;function start(mapObject,divMarkerLayer){map=mapObject;divMarker=divMarkerLayer;mapZoomScales=map.settings.scales;tooltipOffsetX=map.settings.SCALEBAR_TOOLTIPS_OFF_X;tooltipOffsetY=map.settings.SCALEBAR_TOOLTIPS_OFF_Y;if(map.settings.SCALEBAR_TOOLTIPS.length>0){tooltips=map.settings.SCALEBAR_TOOLTIPS}mapMainObject=map.getMapNode();var mapScaleBackground=util.createElement("div");mapMainObject.appendChild(mapScaleBackground);var initialLeftPosition=mapScaleBackground.offsetLeft;mapScaleBackground.className=cssClass+"_background";var mapScale=util.createElement("div");mapMainObject.appendChild(mapScale);mapScale.className=cssClass;var plusButtonDiv=document.createElement("div");jQuery(plusButtonDiv).addClass(cssClass+"_plus");var plusButton=util.createElement("img");mapScale.appendChild(plusButtonDiv);plusButton.src=map.settings.MAP_IMAGEPATH+"/scalebar_plus.png";plusButton.onclick=zoomPlusOne;plusButtonDiv.appendChild(plusButton);var scaleBarDiv=document.createElement("div");jQuery(scaleBarDiv).addClass(cssClass+"_bar");mapScalebar=util.createElement("img");mapScale.appendChild(scaleBarDiv);mapScalebar.src=map.settings.MAP_IMAGEPATH+"/scrollbar.png";mapScalebar.onclick=zoomBarClick;scaleBarDiv.appendChild(mapScalebar);var minusButtonDiv=document.createElement("div");jQuery(minusButtonDiv).addClass(cssClass+"_minus");var minusButton=util.createElement("img");mapScale.appendChild(minusButtonDiv);minusButton.src=map.settings.MAP_IMAGEPATH+"/scalebar_minus.png";minusButton.onclick=zoomMinusOne;minusButtonDiv.appendChild(minusButton);mapScalebarSlider=util.createElement("div");mapMainObject.appendChild(mapScalebarSlider);mapScalebarSlider.className=cssClass+"_slider";mapScalebarSlider.onmousedown=pressZoom;if(tooltips!=null){tooltipDiv=util.createElement("div");tooltipDiv.className=cssClass+"_tooltip";tooltipDiv.style.visibility="hidden";mapMainObject.appendChild(tooltipDiv);mapScalebarSlider.onmouseover=sliderMouseover;mapScalebarSlider.onmouseout=hideTooltip;mapScalebar.onmousemove=barMouseover;mapScalebar.onmouseout=hideTooltip}bartop=mapScaleBackground.offsetTop+scalebarStart-27;mapScalebarSlider.style.top=bartop+"px";zoomlevels=map.settings.MAP_MAX_ZOOM-map.settings.MAP_MIN_ZOOM+1;scaleUnitLength=scalebarLength/(zoomlevels-1)}function setLayout(cssClassBaseName,scalebarStartPosition,scalebarLen){cssClass=cssClassBaseName;scalebarStart=scalebarStartPosition;scalebarLength=scalebarLen}function setZoom(zoomLevel){if(zoomLevel==2){jQuery(mapScalebarSlider).css("top","85px")}else{if(zoomLevel==3){jQuery(mapScalebarSlider).css("top","96px")}else{if(zoomLevel==4){jQuery(mapScalebarSlider).css("top","107px")}else{if(zoomLevel==5){jQuery(mapScalebarSlider).css("top","118px")}else{if(zoomLevel==6){jQuery(mapScalebarSlider).css("top","129px")}else{if(zoomLevel==7){jQuery(mapScalebarSlider).css("top","140px")}else{if(zoomLevel==8){jQuery(mapScalebarSlider).css("top","151px")}else{if(zoomLevel==9){jQuery(mapScalebarSlider).css("top","162px")}else{if(zoomLevel==10){jQuery(mapScalebarSlider).css("top","173px")}else{if(zoomLevel==11){jQuery(mapScalebarSlider).css("top","190px")}}}}}}}}}}}function sliderMouseover(event){if(!map.getDragStatus()){var zoomLevel=map.getZoom();setTooltipText(event,zoomLevel)}}function barMouseover(event){if(!map.getDragStatus()){var ev=util.getEvent(event);var innerMousePos=util.inObjectXY(ev,mapScalebar);var mousePosY=innerMousePos.y;if(mousePosY<0){mousePosY=0}else{if(mousePosY>scalebarLength){mousePosY=scalebarLength}}var newZoomLevelInt=Math.floor((mousePosY/scaleUnitLength)+map.settings.MAP_MIN_ZOOM);setTooltipText(event,newZoomLevelInt)}}function hideTooltip(){if(tooltips!=null&&tooltipDiv!=null&&!zoomSliderPressed){tooltipDiv.style.visibility="hidden"}}function setTooltipText(event,zoomLevel){if(tooltips!=null&&!zoomSliderPressed){var ev=util.getEvent(event);var position=util.inObjectXY(ev,mapMainObject);if(tooltipText!=null){tooltipDiv.removeChild(tooltipText)}tooltipText=document.createTextNode(tooltips[zoomLevel]);tooltipDiv.appendChild(tooltipText);tooltipDiv.style.visibility="hidden";tooltipDiv.style.top=(position.y+tooltipOffsetY)+"px";tooltipDiv.style.left=(position.x+tooltipOffsetX)+"px"}}function getPseudoZoomStatus(){return pseudoZoomActive}function zoomPlusOne(){if(!zoomSliderPressed&&!map.getBlock()){map.setZoom(map.getZoom()-1);setZoom(map.getZoom())}}function zoomMinusOne(){if(!zoomSliderPressed&&!map.getBlock()){map.setZoom(map.getZoom()+1);setZoom(map.getZoom())}}function zoomBarClick(event){if(1==2){if(!zoomSliderPressed&&!map.getBlock()){var ev=util.getEvent(event);var innerMousePos=util.inObjectXY(ev,mapScalebar);var mousePosY=innerMousePos.y;if(mousePosY>=0&&mousePosY<=scalebarLength){var newZoomLevel=Math.round(mousePosY/scaleUnitLength)+map.settings.MAP_MIN_ZOOM;map.setZoom(newZoomLevel);setZoom(map.getZoom())}util.stopPropagation(ev)}}}function pressZoom(event){if(1==2){if(!zoomSliderPressed&&!map.getBlock()){zoomSliderPressed=true;map.setBlock(true);tiles=map.getTiles();tileCols=tiles.length;tileRows=tiles[0].length;tileContainer=map.getTileContainer();centerX=map.getWidth()/2;centerY=map.getHeight()/2;tileContainerLeft=tileContainer.div.style.left;tileContainerTop=tileContainer.div.style.top;var ev=util.getEvent(event);mousePressPosition=util.inObjectXY(ev,mapScalebarSlider);var bartop=0;for(var node=mapScalebar;node;node=node.offsetParent){bartop+=node.offsetTop}mapScalebar.bartop=bartop;setTooltipText(event,map.getZoom());mouseMoveEventId=DocumentMouseMoveEvent.addEvent(pseudoZoom);mouseUpEventId=DocumentMouseUpEvent.addEvent(releaseZoom);mapScalebarSlider.onmousedown=null;util.stopPropagation(ev);if(divMarker!=null){if(divMarker.getVisibility()){markers=divMarker.getMarkers();var newStartCol=tiles[0][0].col;var newStartRow=tiles[0][0].row;for(var id=0;id<markers.length;id++){if(markers[id]!=null&&markers[id].shown){var markerMap=map.calcMapTileCoords(markers[id].x,markers[id].y,map.getZoom());markers[id].baseCol=markerMap.col-newStartCol;markers[id].baseRow=markerMap.row-newStartRow;markers[id].baseLeft=markerMap.left+markers[id].offsetX;markers[id].baseTop=markerMap.top+markers[id].offsetY}}}}}}}function releaseZoom(){if(zoomSliderPressed){DocumentMouseUpEvent.deleteEvent(mouseUpEventId);DocumentMouseMoveEvent.deleteEvent(mouseMoveEventId);mouseMoveEventId=null;mouseUpEventId=null;for(var col=0;col<tileCols;col++){for(var row=0;row<tileRows;row++){tiles[col][row].div.style.height=map.settings.MAP_TILE_SIZE+"px";tiles[col][row].div.style.width=map.settings.MAP_TILE_SIZE+"px";tiles[col][row].div.style.left=(col*map.settings.MAP_TILE_SIZE)+"px";tiles[col][row].div.style.top=(row*map.settings.MAP_TILE_SIZE)+"px"}}tileContainer.div.style.left=tileContainerLeft;tileContainer.div.style.top=tileContainerTop;markers=null;var newZoom=Math.floor(sliderPos/scaleUnitLength+0.5)+map.settings.MAP_MIN_ZOOM;setZoom(newZoom);map.setBlock(false);map.setZoom(newZoom);mapScalebarSlider.onmousedown=pressZoom;hideTooltip();if(util.fixIEmarking){document.selection.empty()}zoomSliderPressed=false}}function pseudoZoom(event){var ev=util.getEvent(event);if(!pseudoZoomActive&&zoomSliderPressed){pseudoZoomActive=true;var innerMousePos=util.inObjectXY(ev,mapScalebar);var mousePosY=innerMousePos.y;if(mousePosY<0){mousePosY=0}else{if(mousePosY>scalebarLength){mousePosY=scalebarLength}}sliderPos=mousePosY;mapScalebarSlider.style.top=(mousePosY-mousePressPosition.y+bartop)+"px";if(tooltipDiv!=null){tooltipDiv.style.top=(mousePosY+bartop+tooltipOffsetY)+"px"}var currentZoomFactor=mapZoomScales[map.getZoom()];var newZoomLevel=(sliderPos/scaleUnitLength)+map.settings.MAP_MIN_ZOOM;var newZoomLevelInt=Math.floor(newZoomLevel);var newZoomFactor=mapZoomScales[newZoomLevelInt];if(newZoomLevel!=newZoomLevelInt){newZoomFactor+=(mapZoomScales[newZoomLevelInt+1]-mapZoomScales[newZoomLevelInt])*(newZoomLevel-newZoomLevelInt);if(tooltipDiv!=null){if(tooltipText!=null){tooltipDiv.removeChild(tooltipText)}tooltipText=document.createTextNode(tooltips[newZoomLevelInt]);tooltipDiv.appendChild(tooltipText)}}var tilesFactor=currentZoomFactor/newZoomFactor;var newWidth=Math.round(map.settings.MAP_TILE_SIZE*tilesFactor);var startX=Math.round(tileContainer.x+(-tileContainer.x+centerX)*(1-tilesFactor));var startY=Math.round(tileContainer.y+(-tileContainer.y+centerY)*(1-tilesFactor));tileContainer.div.style.left=startX+"px";tileContainer.div.style.top=startY+"px";for(var col=0;col<tileCols;col++){for(var row=0;row<tileRows;row++){tiles[col][row].div.style.height=newWidth+"px";tiles[col][row].div.style.width=newWidth+"px";tiles[col][row].div.style.left=(col*newWidth)+"px";tiles[col][row].div.style.top=(row*newWidth)+"px"}}if(markers!=null){for(var id=0;id<markers.length;id++){if(markers[id]!=null&&markers[id].shown){var markerMap=map.calcMapTileCoords(markers[id].x,markers[id].y,map.getZoom());var left=markers[id].baseCol*newWidth+Math.round(markers[id].baseLeft*tilesFactor)+startX;var top=markers[id].baseRow*newWidth+Math.round(markers[id].baseTop*tilesFactor)+startY;markers[id].div.style.left=left+"px";markers[id].div.style.top=top+"px"}}}if(util.fixIEmarking){document.selection.empty()}pseudoZoomActive=false}util.stopPropagation(ev)}}function MapSmoothMove(){var map=null;var active=false;var centerStepNumber=15;var deltaX=0;var deltaY=0;var movedX=0;var movedY=0;var targetX=0;var targetY=0;var timerSpeed=40;var timerId=0;var timerCount=0;var nowDate=new Date();this.start=start;this.startCentering=startCentering;this.startCenteringCoordinate=startCenteringCoordinate;this.stopCentering=stopCentering;function start(mapObject){map=mapObject}function startCentering(mapInfos){if(active){stopCentering()}if(!active){active=true;nowDate=new Date();movedX=0;movedY=0;deltaX=((map.getWidth()/2)-mapInfos.mouseOnMapX);deltaY=((map.getHeight()/2)-mapInfos.mouseOnMapY);targetX=mapInfos.centerX-deltaX*map.settings.scales[mapInfos.zoom];targetY=mapInfos.centerY+deltaY*map.settings.scales[mapInfos.zoom];timerCount=centerStepNumber;moveMapTimer(1)}}function startCenteringCoordinate(newX,newY){var x=Number(newX);var y=Number(newY);if(active){stopCentering()}if(!active){targetX=x;targetY=y;movedX=0;movedY=0;active=true;nowDate=new Date();var info=map.getInfo();deltaX=(info.centerX-x)/map.settings.scales[info.zoom];deltaY=(y-info.centerY)/map.settings.scales[info.zoom];timerCount=centerStepNumber;moveMapTimer(1)}}function stopCentering(){if(timerId>0){clearTimeout(timerId)}if(active){map.moveMapDeltaFinished()}active=false;targetX=0;targetY=0}function moveMapTimer(factor){if(timerId>0){clearTimeout(timerId)}if(timerCount<factor){factor=timerCount}var startTime=nowDate.getTime();var dx=Math.round(factor*(deltaX-movedX)/(timerCount));var dy=Math.round(factor*(deltaY-movedY)/(timerCount));movedX+=dx;movedY+=dy;map.moveMapDelta(dx,dy);timerCount-=factor;if(timerCount>0){var restTime=timerSpeed-(nowDate.getTime()-startTime);if(restTime>0){timerId=setTimeout(function(){moveMapTimer(1)},timerSpeed)}else{moveMapTimer(2)}}else{if(targetX!=0&&targetY!=0){map.moveMapDeltaXY(targetX,targetY)}stopCentering()}}}function NaviciAjaxApi(){var version="1.4.0 beta";var language="fi";var map=null;var ajaxObject=null;var layerManager=null;var indexLayerManager=null;var dynamicLayer=null;var smoothCenter=null;var divMarkerLayer=null;var geocoding=null;var rgeocoding=null;var prgeocoding=null;var routeRequestObject=null;var layerMarker=null;var mapMenu=null;var mapMeter=null;var mapCopyright=null;var mapScaleBar=null;var indexMap=null;var poisOnLayer=null;var mapPopupManager=null;var poiPopupFormatter=null;var poiManager=null;var printMenu=null;var settings=null;this.start=start;this.getVersion=function(){return version};this.setLanguage=function(languageId){language=languageId};this.getLanguage=function(){return language};this.setMapSize=function(newWidth,newHeight,newX,newY){return map.setSize(newWidth,newHeight,newX,newY)};this.setMapCenter=setMapCenter;this.setMapZoom=function(zoom){return map.setZoom(zoom)};this.getMapZoom=function(){return map.getZoom()};this.getMapInfos=function(){return map.getInfo()};this.getMap=function(){return map};this.getMapPrintMenu=function(){return printMenu};this.getLayerManager=function(){return layerManager};this.getIndexMap=function(){return indexMap};this.setMapType=function(type){return layerManager.setMapType(type)};this.getMapType=function(){return layerManager.getCurrentType()};this.addMapTypeChangeCallback=function(func){return layerManager.addTypeChangeCallback(func)};this.deleteMapTypeChangeCallback=function(id){return layerManager.deleteTypeChangeCallback(id)};this.clearDynamicLayer=function(){return layerManager.clearLayer("Dynamic")};this.redrawDynamicLayer=function(){return layerManager.redrawLayer("Dynamic")};this.setDynamicLayerVisibility=function(visible){return layerManager.setLayerVisibility("Dynamic",visible)};this.addDynamicLayerObject=addDynamicLayerObject;this.deleteDynamicLayerObject=deleteDynamicLayerObject;this.getMapPrintXML=function(width,height,type,zoom,x,y,parameters){return layerManager.getMapPrintXML(width,height,type,zoom,x,y,parameters)};this.getMapPrintURL=function(callback,width,height,type,zoom,x,y,parameters){return layerManager.getMapPrintURL(callback,width,height,type,zoom,x,y,parameters)};this.addLayerMarker=addLayerMarker;this.addLayerMarkerImage=addLayerMarkerImage;this.deleteLayerMarker=deleteLayerMarker;this.addDivMarker=addDivMarker;this.deleteDivMarker=deleteDivMarker;this.searchRoute=function(id,locations,parameters,callback){return routeRequestObject.getRoute(id,locations,language,parameters,callback)};this.getRouteVisibility=function(id,routeId){return routeRequestObject.getRouteVisibility(id,routeId)};this.setRouteVisibility=function(id,visibility,routeId){return routeRequestObject.setRouteVisibility(id,visibility,routeId)};this.getRouteCount=function(id){return routeRequestObject.getRouteCount(id)};this.deleteRoute=function(id){routeRequestObject.deleteRoute(id)};this.addMapMenuItem=function(id,caption,callbackFunction,parameters){return mapMenu.addMapMenuItem(id,caption,callbackFunction,parameters)};this.deleteMapMenuItem=function(item){return mapMenu.deleteMapMenuItem(item)};this.getAddressByKey=getAddressByKey;this.getAddressByObject=getAddressByObject;this.getAddressByCoordinates=getAddressByCoordinates;this.getPoisByCoordinates=function(id,x,y,types,maxResults,parameters,callbackFunction){return prgeocoding.getPois(id,x,y,types,language,maxResults,settings.POI_SERVICE,parameters,callbackFunction)};this.startPoiManager=startPoiManager;this.getPoiManager=function(){return poiManager};this.setPoiVisibility=setPoiVisibility;this.getPoiPopupFormatter=function(){return poiPopupFormatter};this.setPoiPopupFormatter=function(newFormatter){poiPopupFormatter=newFormatter};this.getMapPopupManager=function(){return mapPopupManager};this.setMapPopupManager=function(newManager){mapPopupManager=newManager};function start(startSettings){settings=startSettings;language=settings.LANGUAGE;if(settings.IE_FIX_CSS!=null&&util.isIE){util.loadCssFile(settings.IE_FIX_CSS)}ajaxObject=new AjaxObject(settings.SERVER_SIDE_FILE);if(!settings.MAP_FIXEDSIZE){var start=util.objectXY(util.attach(settings.MAP_AREA));settings.MAP_WIDTH=util.getWindowWidth()-start.x-settings.MAP_MARGIN_RIGHT;settings.MAP_HEIGHT=util.getWindowHeight()-start.y-settings.MAP_MARGIN_BOTTOM}map=new Map(settings);layerManager=new LayerManager(this,settings,false);layerManager.start(ajaxObject,map);dynamicLayer=layerManager.getLayer("Dynamic");if(dynamicLayer!=null){layerMarker=new LayerMarker(dynamicLayer);poisOnLayer=new PoisOnLayer(dynamicLayer)}divMarkerLayer=new DivMarkerLayer();map.addLayer(divMarkerLayer);layerManager.addDivLayer(divMarkerLayer);routeRequestObject=new RouteRequests(ajaxObject);ajaxObject.addRequestObject(routeRequestObject);routeRequestObject.start(dynamicLayer);if(settings.MAP_SMOOTHMOVE){smoothCenter=new MapSmoothMove();smoothCenter.start(map);map.addDoubleClickCallback(smoothCenter.startCentering);map.addZoomChangeCallback(smoothCenter.stopCentering);map.addMapMouseDownCallback(smoothCenter.stopCentering);map.addClickCallback(smoothCenter.stopCentering)}else{map.addDoubleClickCallback(function(mapInfo){map.setCenter(mapInfo.mouseCoordX,mapInfo.mouseCoordY)})}map.start(settings.MAP_START_X,settings.MAP_START_Y,settings.MAP_INI_ZOOM);if(settings.CREATE_TYPE_MENU){layerManager.createMenu()}if(settings.CREATE_MAP_SCALEBAR){mapScaleBar=new MapScaleBar();mapScaleBar.setLayout(settings.SCALEBAR_CSS_BASE,settings.SCALEBAR_TOP,settings.SCALEBAR_LENGTH);mapScaleBar.start(map,divMarkerLayer);mapScaleBar.setZoom(settings.MAP_INI_ZOOM);map.addZoomChangeCallback(function(mapInfo){mapScaleBar.setZoom(mapInfo.zoom)})}if(settings.CREATE_MAP_PAN){var mapPanControl=new MapPanControl();mapPanControl.setLayout(settings.PAN_WIDTH,settings.PAN_HIGHT,settings.PAN_CSS_BASE);mapPanControl.start(map)}if(settings.CREATE_INDEXMAP){indexMap=new IndexMap(settings);indexLayerManager=new LayerManager(this,settings,true);indexLayerManager.start(ajaxObject,indexMap);indexMap.start(map,layerManager.getCurrentType());map.addMapDraggedCallback(function(mapInfo){indexMap.setDragCenter(mapInfo.centerX,mapInfo.centerY)});map.addMapMovedCallback(function(mapInfo){indexMap.setCenter(mapInfo.centerX,mapInfo.centerY)});map.addZoomChangeCallback(function(mapInfo){indexMap.setZoom(mapInfo.zoom)});layerManager.addTypeChangeCallback(indexLayerManager.setMapType)}if(settings.CREATE_PRINT_MENU){printMenu=new PrintMenu(settings);printMenu.start(map,layerManager,indexMap);map.addZoomChangeCallback(printMenu.updateZoom)}if(settings.CREATE_MAP_MENU){mapMenu=new MapMenu();mapMenu.start("map_menu",map);map.addClickCallback(mapMenu.show)}if(settings.CREATE_MAP_METER){mapMeter=new MapMeter();mapMeter.start(map,settings,layerManager.getCurrentType());map.addZoomChangeCallback(mapMeter.update);layerManager.addTypeChangeCallback(mapMeter.set)}if(settings.CREATE_MAP_COPYRIGHT){mapCopyright=new MapCopyright();mapCopyright.start(map,settings,layerManager.getCurrentType());map.addZoomChangeCallback(mapCopyright.update);layerManager.addTypeChangeCallback(mapCopyright.set)}geocoding=new Geocoding();geocoding.start(ajaxObject);rgeocoding=new GeocodingReversed();rgeocoding.start(ajaxObject);prgeocoding=new GeocodingReversedPoi();prgeocoding.start(ajaxObject);mapPopupManager=new MapPopupManager(this,settings);poiPopupFormatter=new PoiPopupFormatter()}function getAddressByCoordinates(id,x,y,maxResults,parameters,callbackFunction){var id=rgeocoding.getAddress(id,x,y,language,maxResults,parameters,callbackFunction);ajaxObject.sendRequest();return id}function getAddressByKey(id,key,maxResults,parameters,callbackFunction){var id=geocoding.getAddress(id,key,language,maxResults,parameters,callbackFunction);ajaxObject.sendRequest();return id}function getAddressByObject(id,object,callbackFunction){var id=geocoding.getAddressByObject(id,object,callbackFunction);ajaxObject.sendRequest();return id}function addDynamicLayerObject(xml){var dynamicLayer=layerManager.getLayer("Dynamic");if(dynamicLayer==null){return null}else{return dynamicLayer.addImageLayerObject(xml)}}function deleteDynamicLayerObject(id){var dynamicLayer=layerManager.getLayer("Dynamic");if(dynamicLayer==null){return 1}else{return dynamicLayer.deleteImageLayerObject(id)}}function addLayerMarker(type,x,y,color,label){if(layerMarker!=null){return layerMarker.addMarker(type,x,y,color,label)}else{return null}}function addLayerMarkerImage(x,y,filename,label){if(layerMarker!=null){return layerMarker.addMarkerImage(x,y,filename,label)}else{return null}}function deleteLayerMarker(id){if(layerMarker!=null){return layerMarker.deleteMarker(id)}else{return 1}}function addDivMarker(className,x,y,label,offsetX,offsetY,printXML){if(divMarkerLayer!=null){return divMarkerLayer.addMarker(className,x,y,label,offsetX,offsetY,printXML)}else{return null}}function deleteDivMarker(div){if(divMarkerLayer!=null){return divMarkerLayer.deleteMarker(div)}else{return 1}}function setPoiVisibility(category,subcategory,parameters,visibility){if(poisOnLayer!=null){return poisOnLayer.setPoiVisibility(settings.POI_SERVICE,category,subcategory,parameters,visibility)}else{return 1}}function getVisiblePoistypes(){if(poisOnLayer!=null){return poisOnLayer.getVisiblePois}else{return null}}function startPoiManager(showPoiTime,titleText,triggerEvent){if(poisOnLayer!=null){mapPopupManager.setTitle(titleText);poiManager=new PoiManager(this,mapPopupManager,poiPopupFormatter,poisOnLayer.getVisiblePois,showPoiTime,triggerEvent);return 0}else{return 1}}function setMapCenter(x,y){return map.setCenter(x,y);if(smoothCenter!=null){var info=map.getInfo();var distanceX=Math.abs((x-info.centerX)/settings.scales[info.zoom]);var distanceY=Math.abs((y-info.centerY)/settings.scales[info.zoom]);if(distanceX<info.width/2&&distanceY<info.height/2){smoothCenter.startCenteringCoordinate(x,y);return 0}else{return map.setCenter(x,y)}}else{return map.setCenter(x,y)}}}function NaviciAjaxConfiguration(){this.LANGUAGE="fi";this.IE_FIX_CSS="styles/ie_specials.css";this.SERVER_SIDE_FILE="/MapPortlet/jsp/util/reqCom.jsp";this.POPUP_BACKGROUND_IMAGE="/MapPortlet/styles/images/popup_bg";this.MAP_START_X=0;this.MAP_START_Y=0;this.MAP_MIN_X=0;this.MAP_MAX_X=0;this.MAP_MIN_Y=0;this.MAP_MAX_Y=0;this.scales=new Array();this.availableImages=new Array();this.MAP_TILE_SIZE=256;this.MAP_MAX_ZOOM=0;this.MAP_MIN_ZOOM=0;this.MAP_INI_ZOOM=0;this.MAP_IMAGEPATH="images";this.MAP_SMOOTHMOVE=true;this.CREATE_MAP_METER=true;this.CREATE_MAP_COPYRIGHT=true;this.MAP_FIXEDSIZE=false;this.MAP_WIDTH=600;this.MAP_HEIGHT=400;this.MAP_MARGIN_RIGHT=15;this.MAP_MARGIN_BOTTOM=10;this.MAP_AREA="MapArea";this.MAP_CSS_BASE="map_image";this.CREATE_MAP_SCALEBAR=true;this.SCALEBAR_CSS_BASE="map_scalebar";this.SCALEBAR_TOP=22;this.SCALEBAR_LENGTH=157;this.SCALEBAR_TOOLTIPS=new Array();this.SCALEBAR_TOOLTIPS_OFF_X=-5;this.SCALEBAR_TOOLTIPS_OFF_Y=15;this.CREATE_MAP_PAN=true;this.PAN_CSS_BASE="map_pan";this.PAN_WIDTH=52;this.PAN_HIGHT=52;this.PAN_FACTOR=0.25;this.PAN_SPEED=50;this.CREATE_MAP_MENU=true;this.CREATE_TYPE_MENU=true;this.CREATE_PRINT_MENU=true;this.PRINT_MENU_BUTTON="Print";this.PRINT_MENU_BUTTON_PRINT="Print";this.PRINT_MENU_BUTTON_CLOSE="Close";this.PRINT_MENU_FORMATS=Array();this.PRINT_MENU_FORMATS[0]={type:"Portrait",width:535,height:782,label:"Portrait"};this.PRINT_MENU_FORMATS[1]={type:"Landscape",width:782,height:535,label:"Landscape"};this.PRINT_MENU_CSS_BASE="map_printmenu";this.PAN_CURSOR_STYLE="pointer";this.LAYERS=new Array();this.POI_SERVICE="navici_poi";this.CREATE_INDEXMAP=true;this.INDEXMAP_WIDTH=250;this.INDEXMAP_HEIGHT=200;this.INDEXMAP_ZOOM_MAPSIZE=60;this.INDEXMAP_CSS_BASE="indexmap_image";this.POPUP_CSS_BASE="map_popup";this.POPUP_DYNAMIC_POSITION=false;this.POPUP_WIDTH=238;this.POPUP_HEIGHT=291}function PoiManager(naviciAjaxApi,mapPopupManager,poiPopupFormatter,poisArrayCallback,showPoiTime,triggerEvent){var lastX=0;var lastY=0;var poiTypeArray=new Array();var map=naviciAjaxApi.getMap();var block=true;var triggerId=null;enable();mapPopupManager.setEventCallback(popupevent);block=false;this.disable=disable;this.enable=enable;function disable(){if(triggerId!=null){if(triggerEvent=="Click"){map.deleteClickCallback(triggerId)}else{if(triggerEvent=="DoubleClick"){map.addDoubleClickCallback(triggerId)}else{if(triggerEvent=="ContextClick"){map.addContextClickCallback(triggerId)}else{map.addMouseOverCallback(triggerId)}}}triggerId=null}}function enable(){if(triggerId==null){if(triggerEvent=="Click"){triggerId=map.addClickCallback(checkPoisForCoordinate)}else{if(triggerEvent=="DoubleClick"){triggerId=map.addDoubleClickCallback(checkPoisForCoordinate)}else{if(triggerEvent=="ContextClick"){triggerId=map.addContextClickCallback(checkPoisForCoordinate)}else{map.setMouseOverCallbackIntervall(showPoiTime);triggerId=map.addMouseOverCallback(checkPoisForCoordinate)}}}}}function popupevent(popupId,status){if(status==3){block=true}else{block=false}}function checkPoisForCoordinate(mapInfos){if(!block&&isVisible()&&(lastX!=mapInfos.mouseCoordX||lastY!=mapInfos.mouseCoordY)){block=true;lastX=mapInfos.mouseCoordX;lastY=mapInfos.mouseCoordY;var parameters=new Array();parameters.push({attributename:"zoom",attributevalue:mapInfos.zoom});var types=new Array();for(var i=0;i<poiTypeArray.length;i++){types.push({category:poiTypeArray[i].category,subcategory:poiTypeArray[i].subcategory})}naviciAjaxApi.getPoisByCoordinates(1,mapInfos.mouseCoordX,mapInfos.mouseCoordY,types,99,parameters,showPos)}}function showPos(id,x,y,locations,status){if(status==0&&locations!=null&&locations.length>0){var elements=poiPopupFormatter.format(locations)}else{block=false}}function isVisible(){var result=false;poiTypeArray=poisArrayCallback();for(var i=0;i<poiTypeArray.length&&!result;i++){result=poiTypeArray[i]}return result}}function PoiPopupFormatter(){var actionElements=new Array();var css_base="poi_popup";this.setCssBase=function(newBase){css_base=newBase};this.format=format;this.addElement=addElement;this.deleteElement=deleteElement;function addElement(element){var id=util.getFreeIndex(actionElements);actionElements[id]=element;return id}function deleteElement(id){actionElements[id]=null;return 0}function format(locations){elements=new Array();for(var i=0;i<locations.length;i++){var div=util.createElement("div");div.className=css_base;if(locations[i].getAttribute("category")!=null){var locHeadDiv=util.createElement("div");locHeadDiv.className=css_base+"_head";var headText=locations[i].getAttribute("category");var subcategory=locations[i].getAttribute("subcategory");if(subcategory!=null){headText+="("+subcategory+")"}locHeadDiv.appendChild(document.createTextNode(headText));div.appendChild(locHeadDiv)}var locText=util.createElement("p");locText.className=css_base+"_text";locText.appendChild(document.createTextNode(locations[i].getName()));div.appendChild(locText);for(var j=0;j<actionElements.length;j++){if(actionElements[j]!=null){var clone=actionElements[j].cloneNode(true);cloneEventAttributes(actionElements[j],clone);div.appendChild(clone);clone.locationObject=locations[i]}}elements.push(div)}return elements}function cloneEventAttributes(source,target){target.onclick=source.onclick;target.ondblclick=source.ondblclick;target.onmousedown=source.onmousedown;target.onmouseup=source.onmouseup;target.onmouseover=source.onmouseover;target.onmousemove=source.onmousemove;target.onmouseout=source.onmouseout;target.onkeypress=source.onkeypress;target.onkeydown=source.onkeydown;target.onkeyup=source.onkeyup}}function PoisOnLayer(imageLayer){var pois=new Array();var categoryMap=new Array();var subcategoryMap=new Array();var poisVisible=new Array();this.setPoiVisibility=setPoiVisibility;this.getVisiblePois=function(){return poisVisible};function setPoiVisibility(service,category,subcategory,parameters,visible){var categoryNr=getCategoryNumber(category);if(visible){var xml=createXml(service,category,subcategory,parameters);if(pois[categoryNr]==null){pois[categoryNr]=new mainCategoryObject();if(subcategory==null){pois[categoryNr].layerObjectId=imageLayer.addImageLayerObject(xml)}else{pois[categoryNr].subcategories[subcategory]=imageLayer.addImageLayerObject(xml)}}else{if(subcategory==null){if(pois[categoryNr].layerObjectId!=null){imageLayer.deleteImageLayerObject(pois[categoryNr].layerObjectId)}pois[categoryNr].layerObjectId=imageLayer.addImageLayerObject(xml)}else{subcategoryNr=getSubcategoryNumber(subcategory);if(pois[categoryNr].subcategories[subcategoryNr]!=null){imageLayer.deleteImageLayerObject(pois[categoryNr].subcategories[subcategoryNr])}pois[categoryNr].subcategories[subcategoryNr]=imageLayer.addImageLayerObject(xml)}}updatePoisVisible();return 0}else{var result=0;if(pois[categoryNr]!=null){if(subcategory==null){if(pois[categoryNr].layerObjectId!=null){result=imageLayer.deleteImageLayerObject(pois[categoryNr].layerObjectId);pois[categoryNr].layerObjectId=null}}else{subCats=pois[categoryNr].subcategories;subcategoryNr=getSubcategoryNumber(subcategory);if(subCats[subcategoryNr]!=null){result=imageLayer.deleteImageLayerObject(subCats[subcategoryNr]);subCats[subcategoryNr].layerObjectId=null}}}updatePoisVisible();return result}}function updatePoisVisible(){poisVisible=new Array();for(var c=0;c<pois.length;c++){if(pois[c]!=null){if(pois[c].layerObjectId!=null){poisVisible.push({category:categoryMap[c],subcategory:null})}for(var s=0;s<pois[c].subcategories.length;s++){if(pois[c].subcategories[s]!=null){poisVisible.push({category:categoryMap[c],subcategory:subcategoryMap[s]})}}}}}function mainCategoryObject(){this.layerObjectId=null;this.subcategories=new Array()}function createXml(service,category,subcategory,parameters){var xml='<pois service="'+service+'" category="'+category+'" ';if(subcategory!=null&&subcategory!=""){xml+='subcategory="'+subcategory+'" '}xml+=util.parameterObject2Text(parameters);xml+=" />";return xml}function getCategoryNumber(category){var result=null;for(var i=0;i<categoryMap.length&&result==null;i++){if(categoryMap[i]==category){result=i}}if(result==null){result=categoryMap.length;categoryMap[categoryMap.length]=category}return result}function getSubcategoryNumber(subcategory){var result=null;for(var i=0;i<subcategoryMap.length&&result==null;i++){if(subcategoryMap[i]==subcategory){result=i}}if(result==null){result=subcategoryMap.length;subcategoryMap[subcategoryMap.length]=subcategory}return result}}function PrintMenu(settings){var map=null;var indexMap=null;var layerManager=null;var menuItem=null;var menu=null;var dialog=null;var menuVisible=false;var previewFrame=null;var shrinkerFx=null;var printButton=null;var closeButton=null;var formats=Array();var currentFormatIndex=0;var printBlock=false;var printParameters=null;var userArea=null;var menuItemText=null;this.start=start;this.getDialog=function(){return dialog};this.getPrintButton=function(){return menuItemText};this.getUserDiv=function(){return userArea};this.setFormatSize=setFormatSize;this.setPrintParameters=function(parameters){printParameters=parameters};this.getPrintParameters=function(){return printParameters};this.setPrintCallback=function(func){printButton.onclick=func};this.setCloseCallback=function(func){closeButton.onclick=func};this.getCurrentFormat=function(){return formats[currentFormatIndex]};this.updateZoom=updateZoom;this.getPreviewInfo=getPreviewInfo;this.getMapPrintXML=getMapPrintXML;this.getMapPrintURL=getMapPrintURL;this.hide=function(callback){shrinkerFx.hide(callback)};this.show=function(callback){shrinkerFx.show(callback)};function start(mapObject,layerManagerObject,indexMapObject){map=mapObject;indexMap=indexMapObject;layerManager=layerManagerObject;var mapMainObject=map.getMapNode();menu=util.createElement("div");mapMainObject.appendChild(menu);menu.className=settings.PRINT_MENU_CSS_BASE;menuItem=util.createElement("div");menu.appendChild(menuItem);menuItem.className=settings.PRINT_MENU_CSS_BASE+"_item";menuItem.onclick=util.stopPropagation;menuItem.oncontextmenu=util.stopPropagation;menuItem.onmousedown=util.stopPropagation;menuItem.ondblclick=util.stopPropagation;var menuItemBackground=util.createElement("div");menuItem.appendChild(menuItemBackground);menuItemText=util.createElement("div");menuItemText.appendChild(document.createTextNode(settings.PRINT_MENU_BUTTON));menuItem.appendChild(menuItemText);menu.appendChild(menuItem);menuItemBackground.className=settings.PRINT_MENU_CSS_BASE+"_item_bg";menuItemText.className=settings.PRINT_MENU_CSS_BASE+"_item_text";dialog=util.createElement("div");dialog.className=settings.PRINT_MENU_CSS_BASE+"_dialog";dialog.style.visibility="hidden";if(settings.PRINT_MENU_FORMATS!=null){var form=util.createElement("form");form.setAttribute("method","post");for(var i=0;i<settings.PRINT_MENU_FORMATS.length;i++){var div=util.createElement("div");var input=null;if(util.isIE){if(i==0){input=util.createElement('<input type="radio" name="PrintMenuTypeSetting" checked="checked" />')}else{input=util.createElement('<input type="radio" name="PrintMenuTypeSetting"  />')}}else{input=util.createElement("input");input.type="radio";input.name="PrintMenuTypeSetting";input.checked=i==0}if(indexMap!=null){input.onclick=getSetPreviewFrameFunction(i)}formats[i]={type:settings.PRINT_MENU_FORMATS[i].type,width:settings.PRINT_MENU_FORMATS[i].width,height:settings.PRINT_MENU_FORMATS[i].height};div.appendChild(input);div.appendChild(document.createTextNode(settings.PRINT_MENU_FORMATS[i].label));form.appendChild(div)}dialog.appendChild(form)}userArea=util.createElement("div");dialog.appendChild(userArea);var divButtons=util.createElement("div");closeButton=util.createElement("input");closeButton.setAttribute("type","Button");closeButton.setAttribute("value",settings.PRINT_MENU_BUTTON_CLOSE);divButtons.appendChild(closeButton);printButton=util.createElement("input");printButton.setAttribute("type","Button");printButton.setAttribute("value",settings.PRINT_MENU_BUTTON_PRINT);divButtons.appendChild(printButton);dialog.appendChild(divButtons);if(indexMap!=null){if(!indexMap.getVisibility()){indexMap.show()}previewFrame=util.createElement("div");previewFrame.className=settings.PRINT_MENU_CSS_BASE+"_previewframe";previewFrame.style.visibility="hidden";setPreviewFrameSize(0);var mapSurface=indexMap.getActiveSurface();mapSurface.appendChild(previewFrame)}mapMainObject.appendChild(dialog);shrinkerFx=new visualFx.shrinkHiding(menuItemText,dialog,null,null,true,null,50,10,showPrintMenu);closeButton.onclick=shrinkerFx.hide;printButton.onclick=requestPrintPreview}function getSetPreviewFrameFunction(formatIndex){return function(){return setPreviewFrameSize(formatIndex)}}function setFormatSize(format,width,height){var foundIndex=-1;for(var i=0;i<formats.length&&foundIndex==-1;i++){if(formats[i].type==format){formats[i].width=width;formats[i].height=height;foundIndex=i}}if(foundIndex==-1){return 1}else{if(menuVisible&&foundIndex==currentFormatIndex){setPreviewFrameSize(currentFormatIndex)}return 0}}function updateZoom(){setPreviewFrameSize(currentFormatIndex)}function setPreviewFrameSize(formatIndex){if(previewFrame!=null){var factor=settings.scales[map.getZoom()]/settings.scales[indexMap.getZoom()];var width=Math.round(formats[formatIndex].width*factor);var height=Math.round(formats[formatIndex].height*factor);previewFrame.style.width=width+"px";previewFrame.style.height=height+"px";previewFrame.style.left=Math.round((indexMap.getWidth()-width)/2)+"px";previewFrame.style.top=Math.round((indexMap.getHeight()-height)/2)+"px"}currentFormatIndex=formatIndex}function showPrintMenu(shown){menuVisible=shown;if(menuVisible){if(indexMap!=null){if(!indexMap.getVisibility()){indexMap.show()}previewFrame.style.visibility="visible"}}else{if(indexMap!=null){previewFrame.style.visibility="hidden"}}}function getMapPrintXML(){return layerManager.getMapPrintXML(formats[currentFormatIndex].width,formats[currentFormatIndex].height,null,null,null,null,printParameters)}function getMapPrintURL(callback){layerManager.getMapPrintURL(callback,formats[currentFormatIndex].width,formats[currentFormatIndex].height,null,null,null,null,printParameters)}function requestPrintPreview(){if(!printBlock){printBlock=true;layerManager.getMapPrintURL(showPrintPreview,formats[currentFormatIndex].width,formats[currentFormatIndex].height,null,null,null,null,printParameters)}}function showPrintPreview(url){var printPreview=window.open(url,"Print","menubar=yes,toolbar=yes,resizable=yes,scrollbars=yes");printBlock=false}function getPreviewInfo(){var factor=settings.scales[map.getZoom()]/settings.scales[indexMap.getZoom()];var width=Math.round(formats[currentFormatIndex].width*factor);var height=Math.round(formats[currentFormatIndex].height*factor);return{frameWidth:width,frameHeight:height,indexMapZoom:indexMap.getZoom(),mapZoom:map.getZoom()}}}function RouteRequests(ajaxObject){var routeRequests=new Array();var callbackRoute=new Array();var requestsPending=false;var routeResults=new Array();var dynamicLayer=null;this.service="RouteRequests";this.start=start;this.getRoute=getRoute;this.deleteRoute=deleteRoute;this.setRouteVisibility=setRouteVisibility;this.getRouteVisibility=getRouteVisibility;this.getRouteCount=getRouteCount;this.buildRequest=buildRequest;this.parseResultXML=parseResultXML;this.requestFailed=requestFailed;function start(layer){dynamicLayer=layer}function getRoute(id,locationsArray,language,parameters,callbackFunction){if(locationsArray.length>=2){if(routeResults[id]!=null&&routeResults[id].layerObjectId!=null){dynamicLayer.deleteImageLayerObject(routeResults[id].layerObjectId);routeResults[id]=null}if(id==null){id=util.getFreeIndex(routeResults)}routeRequests[id]={locations:locationsArray,language:language,parameters:parameters,callback:callbackFunction};requestsPending=true;ajaxObject.sendRequest();return id}else{return null}}function requestFailed(){for(var id=0;id<callbackRoute.length;id++){if(callbackRoute[id]!=null){callbackRoute[id].callback(id,null,null,1)}}}function buildRequest(){if(requestsPending){var request="";for(var id=0;id<routeRequests.length;id++){if(routeRequests[id]!=null){callbackRoute[id]=routeRequests[id];callbackRoute[id].send=false;request+='<get_route id="'+id+'" language="'+routeRequests[id].language+'" ';request+=util.parameterObject2Text(routeRequests[id].parameters);request+=" >";request+='<output type="image_layer_objects"/>';request+='<output type="gui_objects"/>';request+='<output type="turn_instructions"/>';var locations=routeRequests[id].locations;for(var i=0;i<locations.length;i++){request+='<location order="'+i;request+='" x="'+locations[i].getX()+'" y="'+locations[i].getY();request+='" name="'+locations[i].getName();if(locations[i].getNumber()!=null&&locations[i].getNumber()!=""){request+='" number="'+locations[i].getNumber()}request+='" city="'+locations[i].getCity();request+='" />'}request+="</get_route>"}}routeRequests=new Array();requestsPending=false;return request}else{return null}}function parseResultXML(xmlObject){if(xmlObject!=null){var routeList=xmlObject.getElementsByTagName("route_response");for(var i=0;i<routeList.length;i++){var id=routeList[i].getAttribute("id");if(id!=null){var imageLayerXML=routeList[i].getElementsByTagName("image_layer_objects");var guiObjects=routeList[i].getElementsByTagName("gui_objects");if(imageLayerXML.length==0||guiObjects.length==0){callbackRoute[id].callback(id,null,null,2)}else{var layerXMLArray=new Array();var i=0;for(var node=imageLayerXML[0].firstChild;node;node=node.nextSibling){layerXMLArray[i]=util.xml2text(node);i++}setResult(id,layerXMLArray,guiObjects[0].firstChild,callbackRoute[id].callback)}callbackRoute[id].send=true}}for(var id=0;id<callbackRoute.length;id++){if(callbackRoute[id]!=null&&!callbackRoute[id].send){callbackRoute[id].callback(id,null,null,0)}}callbackRoute=new Array()}}function setResult(id,layerXMLArray,guiXMLString,callbackFunction){if(dynamicLayer!=null){deleteRoute(id);if(layerXMLArray.length>0){routeResults[id]=new Array();var j=0;for(var i=0;i<layerXMLArray.length;i++){if(layerXMLArray[i]!=null&&layerXMLArray[i]!=""){routeResults[id][j]={imageLayerXML:layerXMLArray[j],layerObjectId:null};j++}}routeResults[id][0].layerObjectId=dynamicLayer.addImageLayerObject(layerXMLArray[0])}}callbackFunction(id,guiXMLString,0)}function getRouteCount(id){if(routeResults[id]==0){return 0}else{return routeResults[id].length}}function setRouteVisibility(id,visibility,routeId){if(dynamicLayer!=null){if(routeResults[id]!=null){if(routeId==null){for(var i=0;i<routeResults[id].length;i++){if(routeResults[id][i].layerObjectId!=null&&!visibility){dynamicLayer.deleteImageLayerObject(routeResults[id][i].layerObjectId);routeResults[id][i].layerObjectId=null}else{if(routeResults[id].layerObjectId==null&&visibility){routeResults[id][i].layerObjectId=dynamicLayer.addImageLayerObject(routeResults[id][i].imageLayerXML)}}}}else{if(routeResults[id][routeId]!=null){if(routeResults[id][routeId].layerObjectId!=null&&!visibility){dynamicLayer.deleteImageLayerObject(routeResults[id][routeId].layerObjectId);routeResults[id][routeId].layerObjectId=null}else{if(routeResults[id].layerObjectId==null&&visibility){routeResults[id][routeId].layerObjectId=dynamicLayer.addImageLayerObject(routeResults[id][routeId].imageLayerXML)}}}}}else{return 2}return 0}else{return 1}}function getRouteVisibility(id,routeIdNr){var routeId=0;if(routeIdNr!=null){routeId=routeIdNr}if(routeResults[id]!=null&&routeResults[id][routeId]!=null){return routeResults[id][routeId].layerObjectId!=null}else{return false}}function deleteRoute(id){if(routeResults[id]!=null&&dynamicLayer!=null){for(var i=0;i<routeResults[id].length;i++){if(routeResults[id][i].layerObjectId!=null){dynamicLayer.deleteImageLayerObject(routeResults[id][i].layerObjectId)}}routeResults[id]=null}return 0}}function ServerFileRequest(){var callback=new Array();var ajaxObject=null;var requests=new Array();var requestsPending=false;this.service="ServerFileRequest";this.start=start;this.getFile=getFile;this.buildRequest=buildRequest;this.parseResultXML=parseResultXML;this.requestFailed=requestFailed;this.errorAjaxFailed=1;function start(ajaxObj){ajaxObject=ajaxObj;ajaxObject.addRequestObject(this)}function getFile(id,url,parameters,callbackFunction){if(id==null){id=util.getFreeIndex(requests)}requests[id]={url:url,parameters:parameters,callback:callbackFunction};requestsPending=true;ajaxObject.sendRequest();return id}function requestFailed(){for(var id=0;id<callback.length;id++){if(callback[id]!=null&&!callback[id].send){callback[id].callback(id,callback[id].url,null,this.errorAjaxFailed)}}callback=new Array()}function buildRequest(){if(requestsPending){var request="";for(var id=0;id<requests.length;id++){if(requests[id]!=null){callback[id]=requests[id];callback[id].send=false;request+='<get_file id="'+id+'" url="'+util.xmlAttributeString(requests[id].url)+'" ';request+=util.parameterObject2Text(requests[id].parameters);request+="/>"}}requests=new Array();requestsPending=false;return request}else{return null}}function parseResultXML(xmlObject){if(xmlObject!=null){var files=xmlObject.getElementsByTagName("file_content");for(i=0;i<files.length;i++){var id=files[i].getAttribute("id");var div=xmlObject.getElementsByTagName("div");callback[id].callback(id,div[0]);callback[id].send=true}}for(var id=0;id<callback.length;id++){if(callback[id]!=null&&!callback[id].send){callback[id].callback(id,null)}}callback=new Array()}}var util=new function(){var timerId=null;var useFormData=true;this.useFormData=function(){return useFormData};this.setUseFormData=function(use){useFormData=use};this.loadCssFile=loadCssFile;var currentBrowser=new CurrentBrowser();this.currentBrowser=currentBrowser;this.currentOs=currentBrowser.operatingSystem;this.isMobile=currentBrowser.isMobile;this.fixIEpng=false;this.fixIEmarking=false;this.isIE=false;this.isIE6=false;if(document.createElementNS){this.createElement=createElementNS}else{this.createElement=createElementHtml}if(currentBrowser.browser=="Explorer"){this.onPageLoad=onPageLoad;this.getEvent=getEvent_ie;this.xml2text=xml2text_ie;this.attach=attach_ie;this.stopPropagation=stopPropagation_ie;this.isIE=true;if(currentBrowser.version<7){if(document.compatMode=="BackCompat"){this.getScrollbarPosition=getScrollbarPosition_ie6quirks}else{this.getScrollbarPosition=getScrollbarPosition_ie6}this.getWindowHeight=getWindowHeight_ie6;this.getWindowWidth=getWindowWidth_ie6;this.isIE6=true;this.fixIEpng=true;this.fixIEmarking=true;this.loadPngImage=loadPngImage_ie6;this.getXmlhttp=getXmlhttp_ie6}else{this.getScrollbarPosition=getScrollbarPosition_ie;this.fixIEpng=false;this.fixIEmarking=false;this.loadPngImage=loadPngImage;this.getXmlhttp=getXmlhttp_ie;this.getWindowHeight=getWindowHeight_ie;this.getWindowWidth=getWindowWidth_ie}}else{if(currentBrowser.browser=="Firefox"){this.onPageLoad=onPageLoad_ff;this.fixIEpng=false;this.fixIEmarking=false;this.getEvent=getEvent_ff;this.loadPngImage=loadPngImage;this.getXmlhttp=getXmlhttp;this.xml2text=xml2text_ff;this.getScrollbarPosition=getScrollbarPosition_ff;this.getWindowHeight=getWindowHeight_ff;this.getWindowWidth=getWindowWidth_ff;this.stopPropagation=stopPropagation_ff;this.attach=attach_ff}else{if(currentBrowser.browser=="Safari"){this.onPageLoad=onPageLoad;this.fixIEpng=false;this.fixIEmarking=false;this.getEvent=getEvent_ff;this.loadPngImage=loadPngImage;this.getXmlhttp=getXmlhttp;this.xml2text=xml2text;if(currentBrowser.version>=520){this.getScrollbarPosition=getScrollbarPosition_ff}else{this.getScrollbarPosition=getScrollbarPosition_safari}this.getWindowHeight=getWindowHeight_ff;this.getWindowWidth=getWindowWidth_ff;this.stopPropagation=stopPropagation_ff;this.attach=attach_ff;if(currentBrowser.operatingSystem=="Series60"){useFormData=false}}else{this.onPageLoad=onPageLoad;this.fixIEpng=false;this.fixIEmarking=false;this.getEvent=getEvent;this.loadPngImage=loadPngImage;this.getXmlhttp=getXmlhttp;this.xml2text=xml2text;this.getScrollbarPosition=getScrollbarPosition;this.stopPropagation=stopPropagation;this.attach=attach;this.getWindowHeight=getWindowHeight;this.getWindowWidth=getWindowWidth}}}function onPageLoad(callback,lastElementId){if(lastElementId==null){window.onload=callback}else{if(timerId!=null){clearTimeout(timerId)}if(attach(lastElementId)==null){timerId=setTimeout(function(){util.onPageLoad(callback,lastElementId)},10)}else{callback()}}}function onPageLoad_ff(callback,lastElementId){if(lastElementId==null){if(document.addEventListener!=null){document.addEventListener("DOMContentLoaded",callback,false)}else{window.onload=callback}}else{if(timerId!=null){clearTimeout(timerId)}if(attach(lastElementId)==null){timerId=setTimeout(function(){util.onPageLoad(callback,lastElementId)},10)}else{callback()}}}function createElement(elemName){if(util.createElementNS){return document.createElementNS("http://www.w3.org/1999/xhtml","html:"+elemName)}else{return document.createElement(elemName)}}function createElementNS(elemName){return document.createElementNS("http://www.w3.org/1999/xhtml","html:"+elemName)}function createElementHtml(elemName){return document.createElement(elemName)}function xml2text(xmlObject){try{var serializer=null;serializer=new XMLSerializer();var result=serializer.serializeToString(xmlObject);if(result==null){return xml2text_serializer(xmlObject)}else{return result}}catch(e){try{return xmlObject.xml}catch(e){return"<error>No XML Serializer available</error>"}}}function xml2text_serializer(xmlObject){var result="";if(xmlObject.nodeType==9){if(xmlObject.hasChildNodes()){for(var node=xmlObject.firstChild;node;){result+=xml2text_serializer(node);node=node.nextSibling}}}else{if(xmlObject.nodeType==3){result.data}else{if(xmlObject.nodeType==1){result="<"+xmlObject.tagName;if(xmlObject.hasAttributes()){var attributes=xmlObject.attributes;for(var i=0;i<attributes.length;i++){result+=" "+attributes[i].name+'="'+attributes[i].value+'"'}}if(xmlObject.hasChildNodes()){result+=">";for(var node=xmlObject.firstChild;node;){result+=xml2text_serializer(node);node=node.nextSibling}result+="</"+xmlObject.tagName+">"}else{result+=" />"}}}}return result}function xml2text_ff(xmlObject){var serializer=null;serializer=new XMLSerializer();return serializer.serializeToString(xmlObject)}function xml2text_ie(xmlObject){return xmlObject.xml}function getScrollbarPosition(){var pos=null;if(typeof(window.pageYOffset)=="number"){return new Point(window.pageXOffset,window.pageYOffset)}else{if(document.body.scrollTop>0||document.body.scrollLeft>0){pos=new Point(document.body.scrollLeft,document.body.scrollTop)}else{pos=new Point(document.documentElement.scrollLeft,document.documentElement.scrollTop)}}return pos}function getScrollbarPosition_ie6(){return new Point(document.documentElement.scrollLeft,document.documentElement.scrollTop)}function getScrollbarPosition_ie6quirks(){return new Point(document.body.scrollLeft,document.body.scrollTop)}function getScrollbarPosition_ie(){return new Point(document.documentElement.scrollLeft,document.documentElement.scrollTop)}function getScrollbarPosition_ff(){return new Point(window.pageXOffset,window.pageYOffset)}function getScrollbarPosition_safari(){return new Point(0,0)}function getEvent(event){if(!event){return window.event}return event}function getEvent_ie(event){return window.event}function getEvent_ff(event){return event}function loadPngImage(image,url){image.src=url+".png"}function loadPngImage_ie6(image,url){image.src=url+".gif";image.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod='scale', src='"+url+".png');"}function getXmlhttp(){return new XMLHttpRequest()}function getXmlhttp_ie(){return new ActiveXObject("Microsoft.XMLHTTP")}function getXmlhttp_ie6(){return new ActiveXObject("Msxml2.XMLHTTP")}function attach(id){if(document.all){return document.all[id]}else{if(document.layers){return document.layers[id]}else{return document.getElementById(id)}}}function attach_ie(id){return document.all[id]}function attach_ff(id){return document.getElementById(id)}function stopPropagation(event){var ev=getEvent(event);if(ev.stopPropagation){ev.stopPropagation()}else{ev.cancelBubble=true}}function stopPropagation_ff(ev){ev.stopPropagation()}function stopPropagation_ie(ev){window.event.cancelBubble=true}function getWindowHeight(){if(window.innerHeight){return window.innerHeight}else{return document.documentElement.clientHeight}}function getWindowHeight_ie(){return document.documentElement.clientHeight}function getWindowHeight_ff(){return window.innerHeight}function getWindowHeight_ie6(){if(document.documentElement.clientHeight>0){return document.documentElement.clientHeight}else{return document.body.clientHeight}}function getWindowWidth(){if(window.innerWidth){return window.innerWidth}else{return document.documentElement.clientWidth}}function getWindowWidth_ie(){return document.documentElement.clientWidth}function getWindowWidth_ff(){return window.innerWidth}function getWindowWidth_ie6(){if(document.documentElement.clientWidth>0){return document.documentElement.clientWidth}else{return document.body.clientWidth}}this.objectXY=function(object){var pos=this.getScrollbarPosition();for(var node=object;node;node=node.offsetParent){pos.x+=node.offsetLeft;pos.y+=node.offsetTop}return pos};this.inObjectXY=function(ev,object){var scroll=this.getScrollbarPosition();var mouse=new Point(ev.clientX+scroll.x,ev.clientY+scroll.y);for(var node=object;node;node=node.offsetParent){mouse.x-=node.offsetLeft;mouse.y-=node.offsetTop}return mouse};this.inObjectXYname=function(ev,objectname){var object=attach(objectname);return this.inObjectXY(ev,object)};this.parameterObject2Text=function(parameters){var xml="";if(parameters!=null){for(var i=0;i<parameters.length;i++){xml+=parameters[i].attributename+'="'+this.xmlAttributeString(parameters[i].attributevalue)+'" '}}return xml};this.falseFunction=function(){return false};this.voidFunction=function(){};this.getFreeIndex=function(arrayObject){try{var index=arrayObject.length;while(arrayObject[index]!=undefined){index++}return index}catch(e){return null}};this.leavingObject=function(ev,object){if(object==null){return false}else{var innerMousePos=util.inObjectXY(ev,object);return innerMousePos.x<=1||innerMousePos.y<=1||innerMousePos.x>object.clientWidth||innerMousePos.y>object.clientHeight}};this.xmlAttributeString=function(attributevalue){if(attributevalue==null){return null}else{var result=attributevalue+"";result=result.replace(/&/g,"&amp;");result=result.replace(/</g,"&lt;");result=result.replace(/>/g,"&gt;");result=result.replace(/\'/g,"&apos;");result=result.replace(/"/g,"&quot;");return result}};this.xmlUnescape=function(attributevalue){if(attributevalue==null){return null}else{var result=attributevalue+"";result=result.replace(/&amp;/g,"&");result=result.replace(/&lt;/g,"<");result=result.replace(/&gt;/g,">");result=result.replace(/&apos;/g,"'");result=result.replace(/&quot;/g,'"');return result}};this.xmlElementTextContent=function(element){var result="";var node=element.firstChild;while(node!=null){if(node.nodeType==3){result+=node.nodeValue}node=node.nextSibling}return result};function loadCssFile(filepath){var link=util.createElement("link");link.setAttribute("rel","stylesheet");link.setAttribute("type","text/css");link.setAttribute("href",filepath);var headArray=document.getElementsByTagName("head");headArray[0].appendChild(link)}};function Point(x,y){this.x=x;this.y=y}function Tile(id,indexColumn,indexRow){this.id=id;this.indexCol=indexColumn;this.indexRow=indexRow;this.col=indexColumn;this.row=indexRow;this.x=0;this.y=0;this.div=null;this.created=true}function Attribute(attributename,attributevalue){this.attributename=attributename;this.attributevalue=attributevalue}function AssociatedArray(){var items=new Array();this.get=get;this.set=set;function set(itemName,itemValue){var found=false;for(var i=0;i<items.length&&!found;i++){if(items[i]!=null&&items[i].itemName==itemName){found=true;items[i].itemValue=itemValue}}if(!found){items.push({itemName:itemName,itemValue:itemValue})}}function get(itemName){var result=null;for(var i=0;i<items.length&&result==null;i++){if(items[i]!=null&&items[i].itemName==itemName){result=items[i].itemValue}}return result}}function CurrentBrowser(){function searchString(data,notFoundMessage){for(var i=0;i<data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1){return data[i].identity}}else{if(dataProp){return data[i].identity}}}return notFoundMessage}function searchVersion(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1){return null}return parseFloat(dataString.substring(index+this.versionSearchString.length+1))}var dataBrowser=new Array({string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"});this.browser=searchString(dataBrowser,"Unknown Browser");this.version=searchVersion(navigator.userAgent,null)||searchVersion(navigator.appVersion,null)||"Unknown Version";this.operatingSystem=navigator.platform;this.isMobile=(navigator.platform=="Series60")||(navigator.platform=="Symbian OS")||(navigator.platform=="SymbianOS")||(navigator.platform=="Series80")||(navigator.platform=="Windows CE")||(navigator.platform=="Pocket PC")||(navigator.platform=="Windows Mobile'")||(navigator.platform=="PalmOS'")}var visualFx=new function(){this.shrinkHiding=shrinkHiding;function shrinkHiding(trigger,element,elementWidthFixed,elementHeightFixed,hidden,cssBase,hideSpeed,hideSteps,callback){var elementWidth=elementWidthFixed;var elementHeight=elementHeightFixed;var hideTimer=null;var hideWidthStep=1;var hideHeightStep=1;var shrinkHeight=true;var shrinkWidth=true;var stateHidden=true;this.hide=hide;this.show=show;this.setShrinkDirection=setShrinkDirection;start();function start(){trigger.oncontextmenu=util.stopPropagation;trigger.onmousedown=util.stopPropagation;trigger.ondblclick=util.stopPropagation;stateHidden=hidden;if(hidden){trigger.onclick=show}else{trigger.onclick=hide}}function setShrinkDirection(setShrinkWidth,setShrinkHeight){shrinkHeight=setShrinkHeight;shrinkWidth=setShrinkWidth}function hide(current_callback){if(stateHidden){if(current_callback){try{current_callback()}catch(e){}}}else{if(elementWidth==null){elementWidth=Math.round(element.offsetWidth)}if(elementHeight==null){elementHeight=Math.round(element.offsetHeight)}hideWidthStep=Math.round(elementWidth/hideSteps);hideHeightStep=Math.round(elementHeight/hideSteps);trigger.onclick=util.stopPropagation;if(hideTimer!=null){clearTimeout(hideTimer)}hideTimer=setTimeout(function(){hideTimed(1,current_callback)},hideSpeed)}}function hideTimed(counter,current_callback){if(hideTimer!=null){clearTimeout(hideTimer)}var newWidth=elementWidth-hideWidthStep*counter;if(newWidth<0){newWidth=0}var newHeight=elementHeight-hideHeightStep*counter;if(newHeight<0){newHeight=0}if(newHeight==0&&newWidth==0){if(util.isIE6){if(shrinkWidth){element.style.width="1px"}if(shrinkHeight){element.style.height="1px"}}else{if(shrinkWidth){element.style.width="0px"}if(shrinkHeight){element.style.height="0px"}}element.style.visibility="hidden";if(cssBase!=null){trigger.className=cssBase+"_show"}trigger.onclick=show;if(callback!=null){callback(false)}if(current_callback!=null){try{current_callback()}catch(e){}}stateHidden=true}else{if(!util.isIE6||(newWidth>0&&newHeight>0)){var newStyle="";if(shrinkWidth){element.style.width=newWidth+"px";newStyle+="width: "+newWidth+"px;"}if(shrinkHeight){element.style.height=newHeight+"px";newStyle+=" height: "+newHeight+"px;"}element.setAttribute("style",newStyle)}hideTimer=setTimeout(function(){return hideTimed(counter+1,current_callback)},hideSpeed)}}function show(current_callback){if(!stateHidden){if(current_callback){try{current_callback()}catch(e){}}}else{element.style.visibility="hidden";if(elementWidth==null||elementHeight==null){element.style.width="auto";element.style.height="auto";elementWidth=Math.round(element.offsetWidth);elementHeight=Math.round(element.offsetHeight);element.style.width="0";element.style.height="0"}hideWidthStep=Math.round(elementWidth/hideSteps);hideHeightStep=Math.round(elementHeight/hideSteps);trigger.onclick=util.stopPropagation;if(hideTimer!=null){clearTimeout(hideTimer)}hideTimer=setTimeout(function(){showTimed(1,current_callback)},hideSpeed)}}function showTimed(counter,current_callback){element.style.visibility="visible";if(hideTimer!=null){clearTimeout(hideTimer)}var newWidth=hideWidthStep*counter;if(elementWidth<newWidth){newWidth=elementWidth}var newHeight=hideHeightStep*counter;if(elementHeight<newHeight){newHeight=elementHeight}var newStyle="";if(shrinkWidth){element.style.width=newWidth+"px";newStyle+="width: "+newWidth+"px;"}if(shrinkHeight){element.style.height=newHeight+"px";newStyle+=" height: "+newHeight+"px;"}element.setAttribute("style",newStyle);if(elementWidth==newWidth&&elementHeight==newHeight){if(cssBase!=null){trigger.className=cssBase+"_hide"}trigger.onclick=hide;if(callback!=null){callback(true)}if(current_callback){try{current_callback()}catch(e){}}stateHidden=false}else{hideTimer=setTimeout(function(){showTimed(counter+1,current_callback)},hideSpeed)}}}};