var iwconst = {SESSION_ID: 'C22072C9B62FE741C88503440AC019EA', LOCAL_APP_URL: 'http://localhost:80/MapAPI-0.71/',GLOBAL_APP_URL: 'http://map.rast.de:80/MapAPI-0.71/',GLOBAL_PROXY_URL: 'http://map.rast.de:80/MapAPI-0.71/XMLHttpRequestProxy',CACHE_CLIENT_URL: 'http://map.rast.de:80/cache/MapAPI/',CACHE_GROUP_SIZE: '10',CACHE_GROUP_LEVEL: '4',CACHE_BLOCK_SIZE: '10',CACHE_URL_USE: 'true',CACHE_MAPSERVER_GROUP: '',A_TILESIZE_METER: [43, 80, 120, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200, 102400, 204800, 409600, 819200, 1638400]};Function.prototype.iwclosure=function(obj){if(!window.__objs)window.__objs=[];if(!window.__funs)window.__funs=[];var fun=this;var objId=obj.__objId;if(!objId){__objs[objId=obj.__objId=__objs.length]=obj;}
var funId=fun.__funId;if(!funId){__funs[funId=fun.__funId=__funs.length]=fun;}
if(!obj.__closures)obj.__closures=[];var closure=obj.__closures[funId];if(closure)return closure;obj=null;fun=null;return __objs[objId].__closures[funId]=function(){return __funs[funId].apply(__objs[objId],arguments);};};var log4javascript;(function(){function ff(){return function(){}}function copy(obj,props){for(var i in props){obj[i]=props[i]}}var f=ff();var Logger=ff();copy(Logger.prototype,{addAppender:f,removeAppender:f,removeAllAppenders:f,log:f,setLevel:f,getLevel:f,trace:f,debug:f,info:f,warn:f,error:f,fatal:f});var getLogger=function(){return new Logger()};log4javascript={isStub:true,version:"dummy",logLog:{setQuietMode:f,setAlertAllErrors:f,debug:f,warn:f,error:f},addErrorListener:f,removeErrorListener:f,setEnabled:f,setShowStackTraces:f,isEnabled:f,evalInScope:f,getLogger:getLogger,getDefaultLogger:getLogger,getNullLogger:getLogger,Level:ff(),LoggingEvent:ff(),Layout:ff(),Appender:ff()};log4javascript.LoggingEvent.prototype={getThrowableStrRep:f};log4javascript.Level.prototype={toString:f,equals:f,isGreaterOrEqual:f};var level=new log4javascript.Level();copy(log4javascript.Level,{ALL:level,TRACE:level,DEBUG:level,INFO:level,WARN:level,ERROR:level,FATAL:level,OFF:level});log4javascript.Layout.prototype={defaults:{},format:f,ignoresThrowable:f,getContentType:f,allowBatching:f,getDataValues:f,setKeys:f,setCustomField:f,hasCustomFields:f};log4javascript.SimpleLayout=ff();log4javascript.SimpleLayout.prototype=new log4javascript.Layout();log4javascript.XmlLayout=ff();log4javascript.XmlLayout.prototype=new log4javascript.Layout();log4javascript.XmlLayout.prototype.escapeCdata=f;log4javascript.JsonLayout=ff();log4javascript.JsonLayout.prototype=new log4javascript.Layout();copy(log4javascript.JsonLayout.prototype,{setReadable:f,isReadable:f});log4javascript.HttpPostDataLayout=ff();log4javascript.HttpPostDataLayout.prototype=new log4javascript.Layout();log4javascript.PatternLayout=ff();log4javascript.PatternLayout.prototype=new log4javascript.Layout();log4javascript.NullLayout=ff();log4javascript.NullLayout.prototype=new log4javascript.Layout();log4javascript.Appender=ff();log4javascript.Appender.prototype={layout:new log4javascript.PatternLayout(),threshold:log4javascript.Level.ALL,doAppend:f,append:f,setLayout:f,getLayout:f,setThreshold:f,getThreshold:f,toString:f};log4javascript.AlertAppender=ff();log4javascript.AlertAppender.prototype=new log4javascript.Appender();log4javascript.ArrayAppender=ff();log4javascript.ArrayAppender.prototype=new log4javascript.Appender();log4javascript.AjaxAppender=ff();log4javascript.AjaxAppender.prototype=new log4javascript.Appender();copy(log4javascript.AjaxAppender.prototype,{isTimed:f,setTimed:f,getTimerInterval:f,setTimerInterval:f,isWaitForResponse:f,setWaitForResponse:f,getBatchSize:f,setBatchSize:f,setRequestSuccessCallback:f,setFailCallback:f,sendAll:f,defaults:{requestSuccessCallback:null,failCallback:null}});function ConsoleAppender(){}ConsoleAppender.prototype=new log4javascript.Appender();copy(ConsoleAppender.prototype,{create:f,isNewestMessageAtTop:f,setNewestMessageAtTop:f,isScrollToLatestMessage:f,setScrollToLatestMessage:f,getWidth:f,setWidth:f,getHeight:f,setHeight:f,getMaxMessages:f,setMaxMessages:f});log4javascript.InPageAppender=ff();log4javascript.InPageAppender.prototype=new ConsoleAppender();copy(log4javascript.InPageAppender.prototype,{isInitiallyMinimized:f,setInitiallyMinimized:f,hide:f,show:f,isVisible:f,close:f,defaults:{layout:new log4javascript.PatternLayout(),maxMessages:null}});log4javascript.InlineAppender=log4javascript.InPageAppender;log4javascript.PopUpAppender=ff();log4javascript.PopUpAppender.prototype=new ConsoleAppender();copy(log4javascript.PopUpAppender.prototype,{isUseOldPopUp:f,setUseOldPopUp:f,isComplainAboutPopUpBlocking:f,setComplainAboutPopUpBlocking:f,isFocusPopUp:f,setFocusPopUp:f,isReopenWhenClosed:f,setReopenWhenClosed:f,close:f,defaults:{layout:new log4javascript.PatternLayout(),maxMessages:null}});log4javascript.BrowserConsoleAppender=ff();log4javascript.BrowserConsoleAppender.prototype=new log4javascript.Appender()})();var log4javascript_dummy=log4javascript;function IWAsynchroneTransferObject(tileset,maxRequests){var self=this;var _tileset=tileset;var _types=new Object();var _iMaxRequests=maxRequests;var _requests=new Array(_iMaxRequests);for(var nRequest=0;nRequest<_iMaxRequests;nRequest++){_requests[nRequest]=new IWXMLHttpRequest();}
this.PrepareTilesAsynchrone=function(request,data){request.onreadystatechange=function(){checkPrepareRequest(self,request,data.nTimestamp);};request.open('GET',data.sURL,true);request.send(null);};this.AbortAllRequests=function(){for(var i=0;i<_iMaxRequests;i++){_requests[i].abort();_requests[i].isActive=false;}
};this.getFreeRequest=function(){var request=null;for(var i=0;i<_requests.length;i++){if(_requests[i].isActive==false){request=_requests[i];request.isActive=true;break;}
}
return request;};this.getRequest=function(index){return _requests[index];};function checkPrepareRequest(self,oRequest,nTimestamp){try{if(oRequest.readyState==4){if(oRequest.status==200){if(oRequest.responseXML){if(oRequest.url.indexOf('load=strip')>-1||oRequest.url.indexOf('code=c')>-1){var types=oRequest.responseXML.getElementsByTagName('type');for(var i=0;i<types.length;i++){var sTypeName=types[i].getAttribute('id');var sAvailable=types[i].getAttribute('available');if(!_types[sTypeName]||_types[sTypeName]!=sAvailable){var event=new IWMapTypeAvailabilityChangedEvent();event.type=sTypeName;event.available=(sAvailable=='true');IWEventManager.trigger(self,'aftermaptypeavailabilitychanged',event);}
_types[sTypeName]=sAvailable;}
}
var status=getContent(oRequest,'status');if(status.toLowerCase()=='ok'){if(!_tileset.bLoadingLabels){_tileset.RequestNext();_tileset.LoadNextSection();}
_tileset.AddTilesToQueue(nTimestamp);}
else if(status.toLowerCase()=='no_data'){var mapType=map.getOptions().getMapTypes()[0];map.setMapType(mapType,false);}
else
{alert('Map server returned an error:[' + status + ']');if(navigator.appName.indexOf("Internet Explorer")==-1)oRequest.send(null);}
}
}
}
}
catch(e){alert('CheckPrepareRequest Error:' + e);}
}
function getContent(request,sTagName){return request.responseXML.getElementsByTagName(sTagName)[0].firstChild.nodeValue;}
}
function IWXMLHttpRequest(){var self=this;var _logger=log4javascript.getLogger("shapeservice.IWLayerInfoManager");var _currentScriptID='';var _script=null;this.isActive=false;this.url=null;this.onreadystatechange=null;this.readyState=0;this.status=null;this.statusText=null;this.responseText=null;this.responseXML=null;var _callbackClosure=function(){if(_script){self.readyState=4;self.responseText=_script.loadedText;self.responseXML=IWXMLHelper.parse(_script.loadedText);self.status=_script.statusCode;self.statusText=_script.statusText;if(self.onreadystatechange !=null){self.onreadystatechange();}
self.isActive=false;iw.remove(_script);}
_script=null;}
this.open=function(method,url,asyncFlag){this.readyState=1;if(url.substr(0,7)!='http://'){url=iwconst.LOCAL_APP_URL + url;}
if(asyncFlag==false){throw 'IWXMLHttpRequest:synchronious calls are not supported yet';}
if(method !='GET'){throw 'IWXMLHttpRequest:unsupported method. Use GET.';}
this.url=url;};this.send=function(content){if(this.url==null||this.readyState !=1){throw 'IWXMLHttpRequest:Call open before send';}
var date=new Date();_currentScriptID="IWXMLHttpRequest_Script" + date.getTime()+ "_" + iw.random(1,10000000);var ajaxScripts=iw.id('iw-ajax');if(!ajaxScripts){ajaxScripts=iw.create('div');ajaxScripts.id='iw-ajax';iw.append(document.body,ajaxScripts);}
_script=iw.create('script');iw.append(ajaxScripts,_script);_script.type='text/javascript';_script.id=_currentScriptID;_script.loadedText='';_script.callback=_callbackClosure;var src=iwconst.GLOBAL_PROXY_URL + '?serverURL=' + escape(this.url)+ '&callerID=' + _script.id
_logger.fatal("URL " + src);_script.src=src;ajaxScripts=null;};this.abort=function(){this.onreadystatechange=function(){};this.isActive=false;if(_script){iw.remove(_script);_script=null;}
};}
var IWAlignment=new function(){this.CENTER=0;this.LEFT=1;this.RIGHT=2;this.TOP=3;this.BOTTOM=4;};var IWButton=new function(){this.NONE=0;this.LEFT=1;this.RIGHT=2;this.MIDDLE=4;};function IWBirdsEyeControl(map){IWControl.call(this,map);var self=this;var _map=map;var _areaUp=iw.create('area');var _areaLeft=iw.create('area');var _areaRight=iw.create('area');var _areaDown=iw.create('area');var _img=iw.create('img');var _translations=new Object();_translations['de']=new Object();_translations['en']=new Object();_translations['fr']=new Object();_translations['es']=new Object();_translations['tr']=new Object();_translations['de']['NORTH']='Blick nach Norden';_translations['de']['EAST']='Blick nach Osten';_translations['de']['SOUTH']='Blick nach S\u00FCden';_translations['de']['WEST']='Blick nach Westen';_translations['en']['NORTH']='View north';_translations['en']['EAST']='View east';_translations['en']['SOUTH']='View south';_translations['en']['WEST']='View west';_translations['fr']['NORTH']='Regard sur le nord';_translations['fr']['EAST']='Regard sur l\'est';_translations['fr']['SOUTH']='Regard sur le sud';_translations['fr']['WEST']='Regard sur l\'ouest';_translations['es']['NORTH']='Vista hacia el norte';_translations['es']['EAST']='Vista hacia el este';_translations['es']['SOUTH']='Vista hacia el sur';_translations['es']['WEST']='Vista hacia el ocaso';_translations['tr']['NORTH']='Kuzeyden g\u00F6r\u00FCn\u00FCm';_translations['tr']['EAST']='Do\u011Fudan g\u00F6r\u00FCn\u00FCm';_translations['tr']['SOUTH']='G\u00FCneyden g\u00F6r\u00FCn\u00FCm';_translations['tr']['WEST']='Bat\u0131dan g\u00F6r\u00FCn\u00FCm';var _language=map.getOptions().getLanguage();if(!_translations[_language])_language='en';this.toString=function(){return '[IWBirdsEyeControl]';};function changeDir(iDirection){var mapType=_map.getCurrentMapType();mapType.setDirection(iDirection);_map.setMapType(mapType);switch(iDirection){case IWMapTypeBirdsView.EAST:_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_east.png';break;case IWMapTypeBirdsView.WEST:_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_west.png';break;case IWMapTypeBirdsView.NORTH:_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_north.png';break;case IWMapTypeBirdsView.SOUTH:_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_south.png';break;default:_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_neutral.png';break;}
}
function changeVisibility(){var mapType=map.getCurrentMapType();self.setVisible(mapType.getType()=='birds-eye');}
function setLanguage(event){if(_translations[event.language]){_language=event.language;_areaUp.alt=_areaUp.title=_translations[_language]['NORTH'];_areaLeft.alt=_areaLeft.title=_translations[_language]['WEST'];_areaRight.alt=_areaRight.title=_translations[_language]['EAST'];_areaDown.alt=_areaDown.title=_translations[_language]['SOUTH'];}
}
function buildGUI(container){container.id='IWBirdsEyeControl';container.style.width='60px';container.style.height='60px';iw.append(container,_img);_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_north.png';_img.border='0';_img.useMap='#mapBirdsEye';var mapBirdsEye=iw.create('map');iw.append(container,mapBirdsEye);mapBirdsEye.id='mapBirdsEye';mapBirdsEye.name='mapBirdsEye';iw.append(mapBirdsEye,_areaUp);_areaUp.shape='rect';_areaUp.coords='18,4,38,18';_areaUp.alt=_areaUp.title=_translations[_language]['NORTH'];IWEventManager.addDOMListener(_areaUp,'onmousedown',function(event){changeDir(IWMapTypeBirdsView.NORTH);});iw.append(mapBirdsEye,_areaLeft);_areaLeft.shape='rect';_areaLeft.coords='4,18,18,38';_areaLeft.alt=_areaLeft.title=_translations[_language]['WEST'];IWEventManager.addDOMListener(_areaLeft,'onmousedown',function(event){changeDir(IWMapTypeBirdsView.WEST);});iw.append(mapBirdsEye,_areaRight);_areaRight.shape='rect';_areaRight.coords='38,18,50,38';_areaRight.alt=_areaRight.title=_translations[_language]['EAST'];IWEventManager.addDOMListener(_areaRight,'onmousedown',function(event){changeDir(IWMapTypeBirdsView.EAST);});iw.append(mapBirdsEye,_areaDown);_areaDown.shape='rect';_areaDown.coords='18,38,38,50';_areaDown.alt=_areaDown.title=_translations[_language]['SOUTH'];IWEventManager.addDOMListener(_areaDown,'onmousedown',function(event){changeDir(IWMapTypeBirdsView.SOUTH);});}
buildGUI(this.getContainer());changeVisibility();IWEventManager.addListener(_map,'aftermaptypechanged',changeVisibility);IWEventManager.addListener(_map,'afterlanguagechanged',setLanguage);}
function IWControl(map){IWMapElement.call(this,iw.search(map.getContainer(),'divControl'));this.isControl=function(){return true;};this.getPadding=function(){return _padding;};this.setPadding=function(padding){_padding=padding;};this.setFirstOrientation=function(alignment){_firstOrientation=alignment;};this.getFirstOrientation=function(){return _firstOrientation;};this.setSecondOrientation=function(alignment){_secondOrientation=alignment;};this.getSecondOrientation=function(){return _secondOrientation;};this.toString=function(){return '[IWControl]' +'Padding:' +_padding + ',' +'Orientation:' + _firstOrientation + '/' +_secondOrientation + ',' +'Visible:' + this.isVisible()+ ',' +'Draggable:' + this.isDraggable()+ ',' +'Drag button:' + this.getDragButton()+ ',' +'Drag container:' + this.getDraggableContainer()+ ',' +'Allow dragging outside parent:' + this.isDraggingOutsideParentAllowed();};var _padding=new IWSize(0,0);var _firstOrientation=IWAlignment.CENTER;var _secondOrientation=IWAlignment.CENTER;IWDraggable.call(this,this.getContainer(),iw.search(map.getContainer(),'divZoomingAndDragging'));this.setPrintable(false);}
function IWCopyrightControl(map){IWControl.call(this,map);var _map=map;var _container=this.getContainer();var _self=this;var _copyright='';var _logger=log4javascript.getLogger("mapapi");this.afterAppend=function(){updateCopyright();};function buildGUI(container){container.id='IWCopyrightControl';container.style.border='1px solid #dddddd';iw.backgroundImage(container,iwconst.GLOBAL_APP_URL + '/img/background_white_transparency.png');var div=iw.create('div');iw.append(container,div);div.style.position='absolute';div.style.top='0px';div.styleleft='2px';var span=iw.create('span');iw.append(div,span);span.style.whiteSpace='nowrap';span.style.verticalAlign='middle';}
function updateCopyright(){var newCopyright=_map.getCurrentMapType().getCopyright();var userCopyright=_map.getOptions().getApplicationCopyright();if(userCopyright !=null&&userCopyright.length>0){newCopyright=newCopyright + ',' + userCopyright;}
if(_copyright !=newCopyright){_logger.info('setting copyright ' + _copyright);_copyright=newCopyright;var container=_self.getContainer();var span=container.lastChild.firstChild;span.innerHTML='&#169;&nbsp;' + new Date().getFullYear()+ '&nbsp;<a href="http://www.infoware.de" target="_blank">infoware</a>,&nbsp;' + _copyright;container.style.width=span.offsetWidth + 6 + 'px';container.style.height=span.offsetHeight + 1 + 'px';_map.getLayoutManager().redraw();}
}
this.setPrintable(true);buildGUI(_container);IWEventManager.addListener(_map,'aftermaptypechanged',updateCopyright);IWEventManager.addListener(_map,'aftercopyrightchanged',updateCopyright);}
function IWLayerSelectionControl(map){IWControl.call(this,map);var _translations=new Object();_translations['de']=new Object();_translations['en']=new Object();_translations['de']['DISPLAYED']='Dargestellte Statistik';_translations['de']['NONE']='Statistik ausblenden';_translations['de']['LEGEND']='Legende';_translations['de']['QUERY_MODE']='Abfragemodus';_translations['de']['POPULATION']='Einwohnerzahl';_translations['en']['DISPLAYED']='Displayed statistic';_translations['en']['NONE']='No statistic';_translations['en']['LEGEND']='Legend';_translations['en']['QUERY_MODE']='Query mode';_translations['en']['POPULATION']='Population';var _sLanguage=map.getOptions().getLanguage();if(!_translations[_sLanguage])_sLanguage='en';var _self=this;var _map=map;var _container=this.getContainer();var _layers=new Array(4);var _currentLayer=null;var _clickHandler=null;var _colors=['#ffff00','#ffdf00','#ffbf00','#ff9f00','#ff8000','#ff6000','#ff3900','#ff0000'];_container.id='layerSelectionDiv';function buildGUI(){var linkCSS=iw.create('link');iw.tag('head')[0].appendChild(linkCSS);linkCSS.type='text/css';linkCSS.rel='stylesheet';linkCSS.href=iwconst.GLOBAL_APP_URL + 'css/layerSelection.css';var form=document.createElement('form');form.id='formLayerSelection';_container.appendChild(form);var header=document.createElement('h1');header.appendChild(document.createTextNode(_translations[_sLanguage]['DISPLAYED']));form.appendChild(header);var catWithSubs=document.createElement('div');catWithSubs.className='category';var title=document.createElement('span');title.className='header';title.appendChild(document.createTextNode(_translations[_sLanguage]['POPULATION']));catWithSubs.appendChild(title);catWithSubs.appendChild(document.createElement('br'));for(var i=0;i<6;i++){var input=makeInputRadio();input.value=_layers[i].getName();var closure=new layerClickedClosure(input);IWEventManager.addDOMListener(input,'onclick',closure);var subCat=document.createElement('div');subCat.className='subcategory';subCat.appendChild(input);subCat.appendChild(document.createTextNode(_layers[i].getName()));catWithSubs.appendChild(subCat);}
form.appendChild(catWithSubs);for(var i=6;i<_layers.length;i++){var categories=document.createElement('div');categories.className='category';var inputDiv=document.createElement('div');inputDiv.className='radio';var input=makeInputRadio();inputDiv.appendChild(input);input.value=_layers[i].getName();var closure=new layerClickedClosure(input);IWEventManager.addDOMListener(input,'onclick',closure);var title=document.createElement('div');title.className='header';title.appendChild(document.createTextNode(_layers[i].getName()));categories.appendChild(inputDiv);categories.appendChild(title);form.appendChild(categories);}
var divAus=document.createElement('div');divAus.className='category';var radioDiv=document.createElement('div');radioDiv.className='radio';var input=makeInputRadio();input.value='Karte ausblenden';input.selected='selected';radioDiv.appendChild(input);var title=document.createElement('div');title.className='header';title.appendChild(document.createTextNode(_translations[_sLanguage]['NONE']));divAus.appendChild(radioDiv);divAus.appendChild(title);form.appendChild(divAus);var closure=new layerClickedClosure(input);IWEventManager.addDOMListener(input,'onclick',closure);var divShowStatistic=document.createElement('div');form.appendChild(divShowStatistic);divShowStatistic.id='divShowStatistic';divShowStatistic.style.display='none';divShowStatistic.appendChild(document.createElement('br'));var header2=document.createElement('h1');divShowStatistic.appendChild(header2);header2.appendChild(document.createTextNode(_translations[_sLanguage]['LEGEND']));var divLegend=document.createElement('div');divLegend.className='category';divShowStatistic.appendChild(divLegend);var table=document.createElement('table');divLegend.appendChild(table);table.id='tableLegend';table.style.padding='5px;'
var tbody=document.createElement('tbody');table.appendChild(tbody);for(var i=0;i<_colors.length;i++){var tr=document.createElement('tr');tbody.appendChild(tr);var td1=document.createElement('td');tr.appendChild(td1);var div=document.createElement('div');td1.appendChild(div);div.style.width='25px';div.style.height='16px';div.style.border='1px solid black';div.style.backgroundColor=_colors[i];var td2=document.createElement('td');tr.appendChild(td2);td2.appendChild(document.createTextNode(''));}
var input;try{input=document.createElement('<input name="queryPoint" type="checkbox">');}
catch(exception){input=document.createElement('input');input.name='queryPoint';input.type='checkbox';}
divShowStatistic.appendChild(input);var noStat=document.createElement('div');noStat.className='category';var checkDiv=document.createElement('div');checkDiv.className='radio';checkDiv.appendChild(input);var title=document.createElement('div');title.className='header';title.appendChild(document.createTextNode(_translations[_sLanguage]['QUERY_MODE']));noStat.appendChild(checkDiv);noStat.appendChild(title);divShowStatistic.appendChild(noStat);IWEventManager.addDOMListener(input,'onclick',function(event){if(!event)event=window.event;var target=event.target;if(!target)target=event.srcElement;if(target.nodeType==3)target=target.parentNode;if(target.checked){_clickHandler=IWEventManager.addListener(_map,'onclick',function(mouseEvent){queryCoord(mouseEvent.position,_currentLayer.getLayer(),_currentLayer.getShape());}.iwclosure(this));}
else
{IWEventManager.removeListener(_clickHandler);}
});}
function layerClickedClosure(refButton){var _button=refButton;return function(){_currentLayer=null;for(var i=0;i<_layers.length;i++){if(_layers[i].getName()==_button.value)_currentLayer=_layers[i];removeParam('layer' + _layers[i].getLayer());}
updateLegend(_currentLayer);if(_currentLayer !=null)szExtraUrlParm +='&layer' + _currentLayer.getLayer()+ '=' + _currentLayer.getShape();_map.setCenter(_map.getCenter());};}
function updateLegend(layer){var divShowStatistic=document.getElementById('divShowStatistic');if(layer==null){divShowStatistic.style.display='none';}
else
{divShowStatistic.style.display='block';var table=document.getElementById('tableLegend');var values=layer.getLegend().split(';');for(var i=0;i<table.firstChild.childNodes.length;i++){var secondTableData=table.firstChild.childNodes[i].lastChild;var newNode=document.createTextNode(values[i]+ ' - ' + values[i+1]);secondTableData.replaceChild(newNode,secondTableData.firstChild);}
}
IWEventManager.trigger(_self,'onredraw',null);}
function queryCoord(position,layer,shape){var coord=_map.fromPixelToCoordinate(position);var xmlHttp=new IWXMLHttpRequest();if(xmlHttp==null){alert("Browser does not support HTTP Request")
return;}
var sURL=iwconst.LOCAL_APP_URL
+ "servlet/FrontController"
+ "?cmd=getLocationStatistics"
+ '&VNR=' + IWAccessFilter.getCNR()
+ '&PNR=' + IWAccessFilter.getPNR()
+ "&app=ms"
+ "&layer=" + layer
+ "&shape=" + shape
+ "&x=" + coord.getX()
+ "&y=" + coord.getY();try{xmlHttp.open("GET",sURL,true);xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){if(xmlHttp.status==200){var xmlDocument=xmlHttp.responseXML;var sName=xmlDocument.getElementsByTagName('G_NAME')[0].firstChild.nodeValue;var sKGS=xmlDocument.getElementsByTagName('KGS22')[0].firstChild.nodeValue;var sEW=xmlDocument.getElementsByTagName('EW')[0].firstChild.nodeValue;var sEW0014=parseFloat(xmlDocument.getElementsByTagName('EWp0014')[0].firstChild.nodeValue).toFixed(1);var sEW1524=parseFloat(xmlDocument.getElementsByTagName('EWp1524')[0].firstChild.nodeValue).toFixed(1);var sEW2549=parseFloat(xmlDocument.getElementsByTagName('EWp2549')[0].firstChild.nodeValue).toFixed(1);var sEW5064=parseFloat(xmlDocument.getElementsByTagName('EWp5064')[0].firstChild.nodeValue).toFixed(1);var sEW65=parseFloat(xmlDocument.getElementsByTagName('EWp65')[0].firstChild.nodeValue).toFixed(1);var coordShort=new IWCoordinate(coord.getX().toFixed(0),coord.getY().toFixed(0));var sInfo='Koordinate:&nbsp;' + coordShort.toString()+ '<br>'
+ 'Ort:&nbsp;' + sName + '<br>'
+ 'KGS22:&nbsp;' + sKGS + '<br><br>'
+ 'Einwohner:&nbsp;' + sEW + '<br>'
+ 'Anteil 0 bis 14:&nbsp;' + sEW0014 + '%<br>'
+ 'Anteil 15 bis 24:&nbsp;' + sEW1524 + '%<br>'
+ 'Anteil 25 bis 49:&nbsp;' + sEW2549 + '%<br>'
+ 'Anteil 50 bis 64:&nbsp;' + sEW5064 + '%<br>'
+ 'Anteil \u00FCber 65:&nbsp;' + sEW65 + '%';var list=globalPOIList.getPOIList();for(var i=0;i<list.length;i++){var poi=list[i];var divPopup=document.getElementById("divPopup_" + poi);if(divPopup !=null)divPopup.parentNode.removeChild(divPopup);}
globalPOIList.clear();globalPOIList.addPOI('1_Window');var popup=new Sprechblase_Schatten();popup.activateMapSlide=true;popup.setContent(new StatisticsContent(coord,sInfo));popup.show(position.getX(),position.getY());}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
else
{alert("Unable to query data from server");}
}
}.iwclosure(this);xmlHttp.send(null);}
catch(exception){alert("Exception:" + exception);}
}
function removeParam(parameter){var startIndex=szExtraUrlParm.indexOf('&' + parameter);if(startIndex>-1){var endIndex=szExtraUrlParm.indexOf('&',startIndex + 1);if(endIndex>-1)szExtraUrlParm=szExtraUrlParm.substring(0,startIndex)+ szExtraUrlParm.substring(endIndex);else
szExtraUrlParm=szExtraUrlParm.substring(0,startIndex);}
}
function setLanguage(event){alert(event.language);if(_translations[event.language]){_sLanguage=event.language;var text1=document.getElementById('headerDisplayedStatistics').firstChild;text1.data=_translations[_sLanguage]['DISPLAYED'];var text2=document.getElementById('formLayerSelection').children[1];text2.data=_translations[_sLanguage]['NONE'];var text3=document.getElementById('headerLegend').firstChild;text3.data=_translations[_sLanguage]['LEGEND'];}
}
function makeInputRadio(){var input;try{input=document.createElement('<input name="layer" type="radio">');}
catch(exception){input=document.createElement('input');input.name='layer';input.type='radio';}
return input;}
_layers[0]=new IWStatisticLayer('insgesamt','EW','wq06gk300_lcc_europe','0;347;637;921;1182;1465;1839;2429;3767');_layers[1]=new IWStatisticLayer('0- bis 14-j\u00E4hrig','EWp0014','wq06gk300_lcc_europe','0%;4,3%;9,8%;12,4%;14,8%;17,4%;20,4%;25,5%;45,6%');_layers[2]=new IWStatisticLayer('15- bis 24-j\u00E4hrig','EWp1524','wq06gk300_lcc_europe','0,0%;4,0%;8,3%;9,6%;10,7%;11,8%;13,2%;15,3%;60,0%');_layers[3]=new IWStatisticLayer('25- bis 49-j\u00E4hrig','EWp2549','wq06gk300_lcc_europe','0,0%;14,4%;28,6%;32,6%;35,6%;38,5%;42,2%;47,3%;72,4%');_layers[4]=new IWStatisticLayer('50- bis 64-j\u00E4hrig','EWp5064','wq06gk300_lcc_europe','0,0%;13,2%;15,4%;17,1%;18,5%;19,9%;21,6%;24,0%;40,0%');_layers[5]=new IWStatisticLayer('\u00DCber 65-j\u00E4hrig','EWp65','wq06gk300_lcc_europe','0,0%;6.7%;14,4%;17,3%;19,9%;22,6%;25,9%;31,4%;57,3%');_layers[6]=new IWStatisticLayer('Kaufkraft pro Einwohner in Euro','KK_EW','wq06gk300_lcc_europe','0;14859;16294;17554;18980;20667;23059;27296;55025');_layers[7]=new IWStatisticLayer('Firmen pro km²','FZ_QKM','wq06gk300_lcc_europe','0;1,5;3,1;7,0;17,6;47,0;106,2;248,5;4711,8');buildGUI();IWEventManager.trigger(_self,'onredraw',null);IWEventManager.addListener(_map.getOptions(),'afterlanguagechanged',setLanguage);}
function IWStatisticLayer(name,layer,shape,legend){var _name=name;var _layer=layer;var _shape=shape;var _legend=legend;this.getName=function(){return _name;};this.getLayer=function(){return _layer;};this.getShape=function(){return _shape;};this.getLegend=function(){return _legend;};this.toString=function(){return 'IWStatisticLayer:' + name;};}
function IWMeasuringControl(map){IWControl.call(this,map);var _translations=new Object();_translations['de']=new Object();_translations['en']=new Object();_translations['es']=new Object();_translations['tr']=new Object();_translations['de']['PREVIOUS']='Bisherige Strecke';_translations['de']['TOTAL']='Gesamte Strecke';_translations['en']['PREVIOUS']='Previous distance';_translations['en']['TOTAL']='Total distance';_translations['es']['PREVIOUS']='Camino previo';_translations['es']['TOTAL']='Todo camino';_translations['tr']['PREVIOUS']='Sonuncu Yol uzunlu\u011Fu';_translations['tr']['TOTAL']='Toplam Yol uzunlu\u011Fu';var _sLanguage=map.getOptions().getLanguage();if(!_translations[_sLanguage])_sLanguage='en';var _logger=log4javascript.getLogger("js.measuring");var _map=map;var _div=this.getContainer();var _divLineSolid=null;var _divLineDotted=null;var _coords=new Array();var _points=new Array();var _mousemoveHandler=null;var _clickHandler=null;var _movestartHandler=null;var _zoomstartHandler=null;var _iDistance=0;var _bActive=false;_div.id='divMeasuring';_div.style.visibility='hidden';_div.style.position='absolute';_div.style.whiteSpace='nowrap';_div.style.height='35px';_div.style.verticalAlign='middle';_div.style.backgroundColor='#ffffff';_div.style.opacity='0.8';_div.style.mozOpacity='0.8';_div.style.filter='alpha(opacity=80)';_div.style.border='1px outset #dddddd';_div.fontSize='8px';_divLineSolid=document.createElement('div');document.getElementById('divClipping').appendChild(_divLineSolid);_divLineSolid.id='divLineSolid';_divLineSolid.style.position='absolute';_divLineSolid.style.zIndex='12';_divLineDotted=document.createElement('div');document.getElementById('divClipping').appendChild(_divLineDotted);_divLineDotted.id='divLineDotted';_divLineDotted.style.position='absolute';_divLineDotted.style.zIndex='12';IWEventManager.addListener(_map.getOptions(),'afterlanguagechanged',setLanguage);this.start=function(){_logger.debug('Starting measurement');_div.style.left='-1000px';_div.style.top='-1000px';_div.style.visibility='visible';_mousemoveHandler=IWEventManager.addListener(_map,'onmousemove',function(e){showState(e);if(_coords.length>0){var lastPosition=_map.fromCoordinateToPixel(_coords[_coords.length - 1]);deleteLine(false);drawLine(lastPosition,e.position,false);}
}.iwclosure(this));_clickHandler=IWEventManager.addListener(_map,'onclick',function(e){addPoint(e);}.iwclosure(this));_movestartHandler=IWEventManager.addListener(_map,'beforemove',function(e){this.stop();}.iwclosure(this));_zoomstartHandler=IWEventManager.addListener(_map,'beforezoom',function(e){this.stop();}.iwclosure(this));_bActive=true;};this.stop=function(){_logger.debug('Stopping measurement');this.clear();_div.style.visibility='hidden';if(_mousemoveHandler)IWEventManager.removeListener(_mousemoveHandler);if(_clickHandler)IWEventManager.removeListener(_clickHandler);if(_movestartHandler)IWEventManager.removeListener(_movestartHandler);if(_zoomstartHandler)IWEventManager.removeListener(_zoomstartHandler);_bActive=false;};this.isActive=function(){return _bActive;};this.clear=function(){_logger.debug('Clearing all measurement points');for(var i=0;i<_points.length;i++)_points[i].parentNode.removeChild(_points[i]);_points.length=0;_coords.length=0;_iDistance=0;deleteLine(false);deleteLine(true);};function addPoint(mouseEvent){var coord=_map.fromPixelToCoordinate(mouseEvent.position);_logger.debug('Adding point at ' + coord.toString());_coords.push(coord);if(_coords.length>=2){_iDistance +=_coords[_coords.length - 1].distanceFrom(_coords[_coords.length - 2]);}
showState(mouseEvent);if(_coords.length>=2){var lastPosition=_map.fromCoordinateToPixel(_coords[_coords.length - 2]);drawLine(lastPosition,mouseEvent.position,true);}
var divClipping=document.getElementById('divClipping');var image=document.createElement('img');divClipping.appendChild(image);image.style.position='absolute';image.style.left=(mouseEvent.position.getX()- 8)+ 'px';image.style.top=(mouseEvent.position.getY()- 8)+ 'px';image.style.zIndex='3';image.border='0';image.src=iwconst.GLOBAL_APP_URL + '/img/middlePoint.gif';_points.push(image);}
function drawLine(point1,point2,solid){var div;var iSize;var iOffset;if(solid){div=_divLineSolid;iSize=1;iOffset=1;}
else
{div=_divLineDotted;iSize=2;iOffset=10;}
var iDistance=point1.distanceFrom(point2);var sLine='';for(var i=0;i<iDistance;i+=iOffset){var iLeft=Math.round(point1.getX()+(point2.getX()- point1.getX())*i/iDistance);var iTop=Math.round(point1.getY()+(point2.getY()- point1.getY())*i/iDistance);sLine +='<div style="position:absolute;left:' + iLeft + 'px;top:' + iTop + 'px;width:' + iSize + 'px;height:' + iSize + 'px;font-size:0;z-index:4;background:#ff0000;"></div>';}
div.innerHTML +=sLine;}
function deleteLine(solid){if(solid)_divLineSolid.innerHTML='';else
_divLineDotted.innerHTML='';}
function showState(mouseEvent){var offset=0;if(_coords.length>0){var coordCurrent=_map.fromPixelToCoordinate(mouseEvent.position);offset=coordCurrent.distanceFrom(_coords[_coords.length - 1]);}
_div.style.left=(mouseEvent.position.getX()+ 10)+ 'px';_div.style.top=(mouseEvent.position.getY()+ 10)+ 'px';_div.innerHTML=_translations[_sLanguage]['PREVIOUS']+ ':&nbsp;' + getFormattedDistance(_iDistance)+ '<br>'
+	_translations[_sLanguage]['TOTAL']+ ':&nbsp;' + getFormattedDistance(_iDistance + offset);}
function getFormattedDistance(iDistance){if(iDistance>1000){iDistance=iDistance/1000;sDistance='' + iDistance;if(iDistance>100)return sDistance.substring(0,sDistance.indexOf('.'))+ ' km';else
return sDistance.substring(0,sDistance.indexOf('.')+ 2)+ ' km';}
else
{return Math.round(iDistance)+ ' m';}
}
function setLanguage(event){if(_translations[event.language]){_sLanguage=event.language;}
}
}
function IWNavigationControl(map){IWControl.call(this,map);var _map=map;var _container=this.getContainer();var _self=this;var _areaUp=iw.create('area');var _areaRight=iw.create('area');var _areaDown=iw.create('area');var _areaLeft=iw.create('area');var _t=new Object();_t['de']=new Object();_t['en']=new Object();_t['es']=new Object();_t['tr']=new Object();_t['de']['UP']='Karte nach oben verschieben';_t['de']['RIGHT']='Karte nach rechts verschieben';_t['de']['DOWN']='Karte nach unten verschieben';_t['de']['LEFT']='Karte nach links verschieben';_t['en']['UP']='Move map up';_t['en']['RIGHT']='Move map right';_t['en']['DOWN']='Move map down';_t['en']['LEFT']='Move map left';_t['es']['UP']='Desplazar el mapa hacia arriba';_t['es']['RIGHT']='Desplazar el mapa hacia la derecha';_t['es']['DOWN']='Desplazar el mapa hacia abajo';_t['es']['LEFT']='Desplazar el mapa hacia la izquierda';_t['tr']['UP']='Haritayi yukari kaydir';_t['tr']['RIGHT']='Haritayi saga kaydir';_t['tr']['DOWN']='Haritayi asagi kaydir';_t['tr']['LEFT']='Haritayi sola kaydir';var _sLanguage=map.getOptions().getLanguage();if(!_t[_sLanguage])_sLanguage='en';this.toString=function(){return 'IWNavigationControl';};function buildGUI(){_container.id='divNavigationControl';_container.style.width='58px';_container.style.height='55px';var imgNaviCross=iw.create('img');iw.append(_container,imgNaviCross);imgNaviCross.onload=function(){correctPNG(this);}.iwclosure(imgNaviCross);imgNaviCross.src=iwconst.GLOBAL_APP_URL + 'img/navicross.png';imgNaviCross.width='58';imgNaviCross.height='55';imgNaviCross.border='0';imgNaviCross.useMap='#mapNaviCross';var mapNaviCross=iw.create('map');iw.append(_container,mapNaviCross);mapNaviCross.id='mapNaviCross';mapNaviCross.name='mapNaviCross';iw.append(mapNaviCross,_areaUp);_areaUp.shape='rect';_areaUp.coords='18,4,38,18';_areaUp.alt=_t[_sLanguage]['UP'];_areaUp.title=_t[_sLanguage]['UP'];IWEventManager.addDOMListener(_areaUp,'onmousedown',function(event){var offset=new IWPoint(0,Math.floor(this.getOptions().getSize().getHeight()/2));this.panBy(offset);}.iwclosure(_map)
);iw.append(mapNaviCross,_areaLeft);_areaLeft.shape='rect';_areaLeft.coords='4,18,18,38';_areaLeft.alt=_t[_sLanguage]['LEFT'];_areaLeft.title=_t[_sLanguage]['LEFT'];IWEventManager.addDOMListener(_areaLeft,'onmousedown',function(event){var offset=new IWPoint(Math.floor(this.getOptions().getSize().getWidth()/2),0);this.panBy(offset);}.iwclosure(_map)
);iw.append(mapNaviCross,_areaRight);_areaRight.shape='rect';_areaRight.coords='38,18,50,38';_areaRight.alt=_t[_sLanguage]['RIGHT'];_areaRight.title=_t[_sLanguage]['RIGHT'];IWEventManager.addDOMListener(_areaRight,'onmousedown',function(event){var offset=new IWPoint(-Math.floor(this.getOptions().getSize().getWidth()/2),0);this.panBy(offset);}.iwclosure(_map)
);iw.append(mapNaviCross,_areaDown);_areaDown.shape='rect';_areaDown.coords='18,38,38,50';_areaDown.alt=_t[_sLanguage]['DOWN'];_areaDown.title=_t[_sLanguage]['DOWN'];IWEventManager.addDOMListener(_areaDown,'onmousedown',function(event){var offset=new IWPoint(0,-Math.floor(this.getOptions().getSize().getHeight()/2));this.panBy(offset);}.iwclosure(_map)
);IWEventManager.addListener(_map.getOptions(),'afterlanguagechanged',setLanguage);}
function setLanguage(event){if(_t[event.language]){_sLanguage=event.language;_areaUp.alt=_areaUp.title=_t[_sLanguage]['UP'];_areaLeft.alt=_areaLeft.title=_t[_sLanguage]['LEFT'];_areaRight.alt=_areaRight.title=_t[_sLanguage]['RIGHT'];_areaDown.alt=_areaDown.title=_t[_sLanguage]['DOWN'];}
}
buildGUI();}
function IWOverlaySelectionControl(map){IWControl.call(this,map);var _self=this;var _treeview=null;var _translations=new Object();_translations['de']=new Object();_translations['en']=new Object();_translations['es']=new Object();_translations['fr']=new Object();_translations['tr']=new Object();_translations['de']['POI_SELECTION']='POI-Auswahl';_translations['en']['POI_SELECTION']='POI selection';_translations['es']['POI_SELECTION']='Selecci\u00F3n de POI';_translations['fr']['POI_SELECTION']='S\u00E9lection de POI';_translations['tr']['POI_SELECTION']='POI Se\u00E7enekleri';var _lang=map.getOptions().getLanguage();if(!_translations[_lang])_lang='en';var _divHeader=iw.create('div');var _divClose=iw.create('div');this.init=function(){_treeview.addNodes(map.getLayers());_treeview.build();};this.getTreeView=function(){return _treeview;};this.setCloseable=function(closeable){if(closeable==true){_divClose.style.display='block';}
else if(closeable==false){_divClose.style.display='none';}
};this.isCloseable=function(){return(_divClose.style.display !='none');};function buildGUI(container){container.id='IWOverlaySelectionControl';container.className='iwoverlayselectioncontrol';container.style.left='50px';container.style.top='50px';container.style.width='240px';container.style.height='294px';container.style.backgroundColor='white';container.appendChild(_divHeader);_divHeader.style.font='bold 12px Arial';_divHeader.style.color='#ffffff';_divHeader.style.backgroundColor='#689acd';_divHeader.style.padding='4px';_divHeader.style.border='1px solid #ffffff';iw.append(_divHeader,_translations[_lang]['POI_SELECTION']);_divHeader.appendChild(_divClose);_divClose.style.display='none';_divClose.style.position='absolute';_divClose.style.right='4px';_divClose.style.top='6px';var imgClose=iw.create('img');_divClose.appendChild(imgClose);imgClose.align='right';imgClose.src=iwconst.GLOBAL_APP_URL + 'img/close.png';imgClose.style.cursor='pointer';IWEventManager.addDOMListener(imgClose,'onclick',function(event){_self.setVisible(false);});var divBody=iw.create('div');container.appendChild(divBody);divBody.style.backgroundColor='white';divBody.style.overflowX='hidden';divBody.style.overflowY='auto';divBody.style.height='265px';divBody.style.border='1px solid #ffffff';_treeview=new IWTreeView(divBody);}
this.setDragButton(IWButton.LEFT);this.setDraggableContainer(_divHeader);this.allowDraggingOutsideParent(false);this.setDraggable(true);buildGUI(this.getContainer());this.setCloseable(true);IWEventManager.addListener(_treeview,'afternodeclicked',function(e){map.redraw();}
);}
function IWOverviewMapControl(map,size){IWControl.call(this,map);var self=this;var _map=map;var _overviewMap=null;var _dragBoxControl=null;var _mapTypeNormal=null;var _zoomStep=4;var _size=(typeof size !='undefined' ? size:new IWSize(115,115));this.getSize=function(){return _size;};this.getMap=function(){return _map;};this.setZoomStep=function(zoomStep){_zoomStep=zoomStep;};this.getZoomStep=function(){return _zoomStep;};this.getOverviewMap=function(){return _overviewMap;};function buildGUI(container){container.id='IWOverviewMapControl';container.className='iwoverviewmapcontrol';with(container.style){height=_size.getHeight()+ 'px';width=_size.getWidth()+ 'px';}
_overviewMap=new IWMap(container);_mapTypeNormal=_overviewMap.getOptions().getMapTypes()[0];var options=_overviewMap.getOptions();options.setLeftMouseAction(IWMapOptions.CONTROL_NONE);options.setRightMouseAction(IWMapOptions.CONTROL_NONE);options.setDoubleClickAction(IWMapOptions.CONTROL_NONE);options.setMouseWheelAction(IWMapOptions.CONTROL_NONE);IWEventManager.addListener(_overviewMap,'afterinitialized',function(e){_dragBoxControl=new IWOverviewDragBoxControl(self);_overviewMap.getLayoutManager().getLayer(0).addControl(_dragBoxControl,IWAlignment.CENTER,IWAlignment.CENTER);}
);_overviewMap.setCenter(_map.getCenter(),findZoomLevel(_map.getZoom()),_mapTypeNormal);}
function findZoomLevel(zoomlevel){if(zoomlevel + _zoomStep<=_mapTypeNormal.getMinLevel()){return zoomlevel + _zoomStep;}
else
{return _mapTypeNormal.getMinLevel();}
}
function onZoomHandler(event){_overviewMap.setCenter(event.newCenter,findZoomLevel(event.newZoomLevel),_mapTypeNormal);_overviewMap.getLayoutManager().redraw();}
function afterCenteredHandler(event){var coordinate=event.coordinate;if(event.zoom !=event.lastZoom){_overviewMap.setCenter(coordinate,findZoomLevel(event.zoom));}
else
{_overviewMap.panTo(coordinate);}
}
var _container=this.getContainer();buildGUI(_container);IWEventManager.addListener(_map,'onzoom',onZoomHandler);IWEventManager.addListener(_map,'aftercentered',afterCenteredHandler);}
function IWOverviewDragBoxControl(overviewMapControl){IWControl.call(this,overviewMapControl.getOverviewMap());var self=this;var _onMoveListener=null;var _afterMoveListener=null;var _container=this.getContainer();var _listener=null;var _map=overviewMapControl.getMap();var _overviewMap=overviewMapControl.getOverviewMap();var _mouseWheelAction=IWMapOptions.CONTROL_NONE;function buildGUI(container){container.id='IWOverviewDragBoxControl';container.style.position='absolute';container.className='iwoverviewdragboxcontrol_outer';var div=iw.create('div');div.style.position='absolute';div.style.top='0px';div.style.left='0px';div.className='iwoverviewdragboxcontrol_inner';iw.append(container,div);iw.backgroundImage(div,iwconst.GLOBAL_APP_URL + 'img/background_white_transparency.png');updateBoxSize();}
function updateBoxSize(){var size=calculateVisibleMapAreaSize();if(_overviewMap.getOptions().getSize().compareTo(size)==1){var container=self.getContainer();container.style.width=size.getWidth()+ 'px';container.style.height=size.getHeight()+ 'px';var div=container.firstChild;div.style.width=size.getWidth()- 2 + 'px';div.style.height=size.getHeight()- 2 + 'px';self.setVisible(true);}
else
{self.setVisible(false);}
}
function calculateVisibleMapAreaSize(){var metersMapX=_map.getMapWidthInMeter();var metersMapY=_map.getMapHeightInMeter();var metersOverviewMapX=_overviewMap.getMapWidthInMeter();var metersOverviewMapY=_overviewMap.getMapHeightInMeter();var pixelsOverviewMapX=_overviewMap.getOptions().getSize().getWidth();var pixelsOverviewMapY=_overviewMap.getOptions().getSize().getHeight();var width=pixelsOverviewMapX/((metersOverviewMapX/metersMapX));var height=pixelsOverviewMapY/((metersOverviewMapY/metersMapY));var size=new IWSize(Math.round(width),Math.round(height));return size;}
function onResizeHandler(event){updateBoxSize();_overviewMap.getLayoutManager().redraw();}
function beforeDraggedHandler(event){_mouseWheelAction=_map.getOptions().getMouseWheelAction();_map.getOptions().setMouseWheelAction(IWMapOptions.CONTROL_NONE);}
function afterCenteredHandler(event){if(event.zoom !=event.lastZoom){updateBoxSize();_overviewMap.getLayoutManager().redraw();}
}
function afterDraggedHandler(event){var div=self.getContainer();var top=div.offsetTop;var left=div.offsetLeft;var width=div.offsetWidth;var height=div.offsetHeight;var center=new IWPoint(left +(width/2),top +(height/2));var coordinate=_overviewMap.fromPixelToCoordinate(center);_map.getOptions().setMouseWheelAction(_mouseWheelAction);if(_listener !=null){IWEventManager.removeListener(_listener);listener=null;}
_listener=IWEventManager.addListener(_overviewMap,'onmove',function(e){div.style.top=parseInt(div.style.top)+ e.offset.getY()+ 'px';div.style.left=parseInt(div.style.left)+ e.offset.getX()+ 'px';});_map.panTo(coordinate);}
function afterMoveHandler(){if(_listener !=null){IWEventManager.removeListener(_listener);_listener=null;}
};function onMoveHandler(event){var coordinate=_map.getCenter();_overviewMap.panTo(coordinate);}
function afterZoomHandler(){updateBoxSize();_overviewMap.getLayoutManager().redraw();}
buildGUI(_container);this.setDragButton(IWButton.LEFT + IWButton.RIGHT);this.allowDraggingOutsideParent(true);this.setDraggingBounds(_overviewMap.getOptions().getSize());this.setDraggable(true);IWEventManager.addListener(_map,'onresize',onResizeHandler);IWEventManager.addListener(_map,'onmove',onMoveHandler);IWEventManager.addListener(_map,'afterzoom',afterZoomHandler);IWEventManager.addListener(_overviewMap,'aftercentered',afterCenteredHandler);IWEventManager.addListener(_overviewMap,'aftermove',afterMoveHandler);IWEventManager.addListener(this,'afterdragged',afterDraggedHandler);IWEventManager.addListener(this,'beforedragged',beforeDraggedHandler)
}
function IWPanelControl(map,size){function redraw(){_layoutManager.redraw();}
function setNewSize(event){if((_bounding_box.getWidth()<event.newSize.getWidth())||(_bounding_box.getHeight()<event.newSize.getHeight()))
{_bounding_box=new IWSize(event.newSize.getWidth(),event.newSize.getHeight());_background.style.width=event.newSize.getWidth()+ 'px';_background.style.height=event.newSize.getHeight()+ 'px';}
}
function recursiveSizesearch(o_size,div){var childNodes=div.childNodes;for(var i=0;i<childNodes.length;i++){if(childNodes.item(i).nodeName=='DIV')o_size=recursiveSizesearch(o_size,childNodes.item(i));var size=new IWSize(childNodes.item(i).offsetWidth,childNodes.item(i).offsetHeight);if((size.getWidth()>o_size.getWidth())&&(childNodes.item(i).id !="divPanelBackground")&&(childNodes.item(i).style.visibility !="hidden")&&(childNodes.item(i).style.display !="none")){o_size=new IWSize(size.getWidth(),o_size.getHeight());}
if((size.getHeight()>o_size.getHeight())&&(childNodes.item(i).id !="divPanelBackground")&&(childNodes.item(i).style.visibility !="hidden")&&(childNodes.item(i).style.display !="none")){o_size=new IWSize(o_size.getWidth(),size.getHeight());}
if((size.getHeight()>o_size.getHeight())&&(size.getWidth()>o_size.getWidth())&&(childNodes.item(i).id !="divPanelBackground")&&(childNodes.item(i).style.visibility !="hidden")&&(childNodes.item(i).style.display !="none")){o_size=new IWSize(size.getWidth(),size.getHeight());}
}
return o_size
}
this.isPanelControl=function(){return true;};this.getLayoutManager=function(){return _layoutManager;};this.setSize=function(size){_size=size;_container.style.width=size.getWidth()+'px';_container.style.height=size.getHeight()+'px';_background.style.width=size.getWidth()+'px';_background.style.height=size.getHeight()+'px';redraw();};this.setVerticalScroll=function(scroll){if(typeof _container.style.overflowY !='undefined'){_container.style.overflowY=scroll;}
else
{_container.style.overflow=scroll;}
};this.setHorizontalScroll=function(scroll){if(typeof _container.style.overflowX !='undefined'){_container.style.overflowX=scroll;}
else
{_container.style.overflow=scroll;}
};this.adjustBackground=function(){var newSize=this.getSize();newSize=recursiveSizesearch(this.getSize(),_container);_background.style.width=newSize.getWidth()+ 'px';if(newSize.getHeight()<=_size.getHeight()){_background.style.height=newSize.getHeight()+ 'px';}
else
{_background.style.height=newSize.getHeight()+ 15 + 'px';}
};this.getSize=function(){return new IWSize(parseInt(_container.style.width),parseInt(_container.style.height));};this.setOpacity=function(opa){opaf=parseFloat(opa);if((opaf<0)||(opaf>1)){throw('setOpacity:parameter not between 0 and 1');}
_opacity=opaf;_background.style.opacity=_opacity;_background.style.filter='alpha(opacity='+_opacity*100+')';};this.getOpacity=function(){return _opacity;};this.setBackgroundColor=function(color){_background.style.backgroundColor=color;};this.getBackgroundColor=function(){return _background.style.backgroundColor;};this.toString=function(){return "[IWPanelControl]" +"Size:" + this.getSize()+ "," +"Backgroundcolor:" + this.getBackgroundColor()+ "," +"Opacity:" + this.getOpacity();};IWControl.call(this,map);var _container=this.getContainer();_container.id="divPanelControl";var _this=this;var _layoutManager=new IWLayoutManager(_container);var _size;if(typeof size=='undefined')_size=new IWSize(100,100);else
_size=size;var _bounding_box=_size;var _opacity=0.8;var _backgroundColor="";var _background=document.createElement('div');_background.id="divPanelBackground"
_background.style.zIndex=-1;_container.appendChild(_background);var _layer=new Array();this.setSize(_size);this.setOpacity(_opacity);this.setBackgroundColor(_backgroundColor);IWEventManager.addListener(_layoutManager,"onresize",function(event){setNewSize(event);}.iwclosure(this));}
function IWRoutingControl(map){var _t=new Object();_t['de']=new Object();_t['en']=new Object();_t['fr']=new Object();_t['es']=new Object();_t['tr']=new Object();_t['de']['SEARCH_ROUTE']='Route suchen';_t['en']['SEARCH_ROUTE']='Search route';_t['fr']['SEARCH_ROUTE']='Calculer l\'itin\u00F3raire';_t['es']['SEARCH_ROUTE']='Calcular la ruta';_t['tr']['SEARCH_ROUTE']='G\u00FCzergah hesapla';_t['de']['START']='Start Adresse';_t['en']['START']='Start address';_t['fr']['START']='adresse de d\u00F3part';_t['es']['START']='nueva direcci\u00F3n de salida';_t['tr']['START']='yeni start adresi';_t['de']['STREET']='Stra\u00DFe';_t['en']['STREET']='Street';_t['fr']['STREET']='Rue';_t['es']['STREET']='Calle';_t['tr']['STREET']='Cadde';_t['de']['NUMBER']='Nr.';_t['en']['NUMBER']='No.';_t['fr']['NUMBER']='No.';_t['es']['NUMBER']='N\u00FAmero';_t['tr']['NUMBER']='No.';_t['de']['ZIPCODE']='PLZ';_t['en']['ZIPCODE']='Post Code';_t['fr']['ZIPCODE']='Code postal';_t['es']['ZIPCODE']='digo Postal';_t['tr']['ZIPCODE']='Posta kodu';_t['de']['CITY']='Stadt';_t['en']['CITY']='City';_t['fr']['CITY']='Localit\u00E9';_t['es']['CITY']='Poblaci\u00F3n';_t['tr']['CITY']='\u015Eehir';_t['de']['ADD_INTERSTATION']='Zwischenstation einf\u00FCgen';_t['en']['ADD_INTERSTATION']='Add interstation';_t['fr']['ADD_INTERSTATION']='Ajouter une \u00F3tape';_t['es']['ADD_INTERSTATION']='Introducir una estaci\u00F3n intermedia';_t['tr']['ADD_INTERSTATION']='Durak ilave et';_t['de']['DELETE_INTERSTATION']='Zwischenstation l\u00F6schen';_t['en']['DELETE_INTERSTATION']='Delete interstation';_t['fr']['DELETE_INTERSTATION']='Supprimer \u00F3tape';_t['es']['DELETE_INTERSTATION']='Borrar estaci\u00F3n';_t['tr']['DELETE_INTERSTATION']='\u0130stasyon sil';_t['de']['DESTINATION']='Ziel Adresse';_t['en']['DESTINATION']='Destination address';_t['fr']['DESTINATION']='Adresse d\'arriv\u00F3e';_t['es']['DESTINATION']='Direcci\u00F3n de destino';_t['tr']['DESTINATION']='Hedef adres';_t['de']['ROUTING_OPTIONS']='Routing Optionen';_t['en']['ROUTING_OPTIONS']='Routing options';_t['fr']['ROUTING_OPTIONS']='Configurer votre itin\u00F3raire';_t['es']['ROUTING_OPTIONS']='Configura tu ruta';_t['tr']['ROUTING_OPTIONS']='Rotan\u0131z \u00FCzerinde ayarlar';_t['de']['FASTEST']='Schnellste';_t['en']['FASTEST']='fastest';_t['fr']['FASTEST']='le plus rapide';_t['es']['FASTEST']='m\u00E1s r\u00E1pida';_t['tr']['FASTEST']='en h\u0131zl\u0131';_t['de']['SHORTEST']='K\u00FCrzeste';_t['en']['SHORTEST']='shortest';_t['fr']['SHORTEST']='le plus court';_t['es']['SHORTEST']='m\u00E1s corta';_t['tr']['SHORTEST']='en k\u0131sa';_t['de']['ECONOMIEST']='Wirtschaftlichste';_t['en']['ECONOMIEST']='Economiest';_t['fr']['ECONOMIEST']='\u0102conomique';_t['es']['ECONOMIEST']='econ\u010Dmico';_t['tr']['ECONOMIEST']='Economiest';_t['de']['SPEED_SETTINGS']='Fahrstil';_t['en']['SPEED_SETTINGS']='Driving style';_t['fr']['SPEED_SETTINGS']='Style de conduite';_t['es']['SPEED_SETTINGS']='Estilo de conducci\u00F3n';_t['tr']['SPEED_SETTINGS']='s\u00FCr\u00FC\u015F stili';_t['de']['HIGHWAY']='Autobahn';_t['en']['HIGHWAY']='Motorway';_t['fr']['HIGHWAY']='autoroute';_t['es']['HIGHWAY']='Autopista';_t['tr']['HIGHWAY']='otoyol';_t['de']['COUNTRYROAD']='Landstra\u00DFe';_t['en']['COUNTRYROAD']='country road';_t['fr']['COUNTRYROAD']='route r\u00F3gionale';_t['es']['COUNTRYROAD']='Carretera';_t['tr']['COUNTRYROAD']='karayolu';_t['de']['CALCULATE_ROUTE']='Route berechnen';_t['en']['CALCULATE_ROUTE']='Calculate route';_t['fr']['CALCULATE_ROUTE']='Calculer l\'itin\u00F3raire';_t['es']['CALCULATE_ROUTE']='Calcular la ruta';_t['tr']['CALCULATE_ROUTE']='G\u00FCzergah\u0131 hesapla';_t['de']['INTERSTATION']='Zwischenstation';_t['en']['INTERSTATION']='Interstation';_t['fr']['INTERSTATION']='\u00F3tape';_t['es']['INTERSTATION']='estaci\u00F3n';_t['tr']['INTERSTATION']='\u0130stasyon';_t['de']['ROUTING_MODE']='Routing Modus';_t['en']['ROUTING_MODE']='Routing Mode';_t['fr']['ROUTING_MODE']='Routing Mode';_t['es']['ROUTING_MODE']='Routing Mode';_t['tr']['ROUTING_MODE']='Routing Mode';_t['de']['ANDORRA']='Andorra';_t['en']['ANDORRA']='Andorra';_t['fr']['ANDORRA']='Andorra';_t['es']['ANDORRA']='Andorra';_t['tr']['ANDORRA']='Andorra';_t['de']['BELGIUM']='Belgien';_t['en']['BELGIUM']='Belgium';_t['fr']['BELGIUM']='Belgique';_t['es']['BELGIUM']='B\u00E9lgica';_t['tr']['BELGIUM']='Bel\u00E7ika';_t['de']['DENMARK']='D\u00E4nemark';_t['en']['DENMARK']='Denmark';_t['fr']['DENMARK']='Danemark';_t['es']['DENMARK']='Dinamarca';_t['tr']['DENMARK']='Danimarka';_t['de']['GERMANY']='Deutschland';_t['en']['GERMANY']='Germany';_t['fr']['GERMANY']='Allemagne';_t['es']['GERMANY']='Alemania';_t['tr']['GERMANY']='Almanya';_t['de']['FINNLAND']='Finnland';_t['en']['FINNLAND']='Finnland';_t['fr']['FINNLAND']='Finlande';_t['es']['FINNLAND']='Finlandia';_t['tr']['FINNLAND']='Finlandiya';_t['de']['FRANCE']='Frankreich';_t['en']['FRANCE']='France';_t['fr']['FRANCE']='France';_t['es']['FRANCE']='Francia';_t['tr']['FRANCE']='Fransa';_t['de']['GREECE']='Griechenland';_t['en']['GREECE']='Greece';_t['fr']['GREECE']='Gr\u00E8ce';_t['es']['GREECE']='Grecia';_t['tr']['GREECE']='Yunanistan';_t['de']['GREATE_BRITAIN']='Gro\u00DFbritannien';_t['en']['GREATE_BRITAIN']='Great Britain';_t['fr']['GREATE_BRITAIN']='Grande-Bretagne';_t['es']['GREATE_BRITAIN']='Gran Breta\u00F1a';_t['tr']['GREATE_BRITAIN']='Ingiltere';_t['de']['IRELAND']='Irland';_t['en']['IRELAND']='Ireland';_t['fr']['IRELAND']='Irlande';_t['es']['IRELAND']='Irlanda';_t['tr']['IRELAND']='Irlanda';_t['de']['ITALY']='Italien';_t['en']['ITALY']='Italy';_t['fr']['ITALY']='Italie';_t['es']['ITALY']='Italia';_t['tr']['ITALY']='Ingiltere';_t['de']['LUXEMBOURG']='Luxemburg';_t['en']['LUXEMBOURG']='Luxembourg';_t['fr']['LUXEMBOURG']='Luxembourg';_t['es']['LUXEMBOURG']='Luxemburgo';_t['tr']['LUXEMBOURG']='L\u00FCksemburg';_t['de']['NORWAY']='Norwegen';_t['en']['NORWAY']='Norway';_t['fr']['NORWAY']='Norv\u00E8ge';_t['es']['NORWAY']='Noruega';_t['tr']['NORWAY']='Norve\u00E7';_t['de']['NETHERLANDS']='Niederlande';_t['en']['NETHERLANDS']='Netherlands';_t['fr']['NETHERLANDS']='Pays-Bas';_t['es']['NETHERLANDS']='Pa\u00EDses Bajos';_t['tr']['NETHERLANDS']='Hollanda';_t['de']['AUSTRIA']='\u00D6sterreich';_t['en']['AUSTRIA']='Austria';_t['fr']['AUSTRIA']='Autriche';_t['es']['AUSTRIA']='Austria';_t['tr']['AUSTRIA']='Avusturya';_t['de']['POLAND']='Polen';_t['en']['POLAND']='Poland';_t['fr']['POLAND']='Pologne';_t['es']['POLAND']='Polonia';_t['tr']['POLAND']='Polonya';_t['de']['PORTUGAL']='Portugal';_t['en']['PORTUGAL']='Portugal';_t['fr']['PORTUGAL']='Portugal';_t['es']['PORTUGAL']='Portugal';_t['tr']['PORTUGAL']='Portekiz';_t['de']['SAN_MARINO']='San Marino';_t['en']['SAN_MARINO']='San Marino';_t['fr']['SAN_MARINO']='Saint-Marin';_t['es']['SAN_MARINO']='San Marino';_t['tr']['SAN_MARINO']='San Marino';_t['de']['SWEDEN']='Schweden';_t['en']['SWEDEN']='Sweden';_t['fr']['SWEDEN']='Su\u00E8de';_t['es']['SWEDEN']='Suecia';_t['tr']['SWEDEN']='Isve\u00E7';_t['de']['SWITZERLAND']='Schweiz';_t['en']['SWITZERLAND']='Switzerland';_t['fr']['SWITZERLAND']='Suisse';_t['es']['SWITZERLAND']='Suiza';_t['tr']['SWITZERLAND']='Isvi\u00E7re';_t['de']['SLOVAKIA']='Slowakei';_t['en']['SLOVAKIA']='Slovakia';_t['fr']['SLOVAKIA']='Slovaquie';_t['es']['SLOVAKIA']='Eslovaquia';_t['tr']['SLOVAKIA']='Slovakya';_t['de']['SPAIN']='Spanien';_t['en']['SPAIN']='Spain';_t['fr']['SPAIN']='Espagne';_t['es']['SPAIN']='Espa\u00F1a';_t['tr']['SPAIN']='Ispanya';_t['de']['CZECH_REPUBLIC']='Tschechien';_t['en']['CZECH_REPUBLIC']='Czech Republic';_t['fr']['CZECH_REPUBLIC']='Tch\u00E9quie';_t['es']['CZECH_REPUBLIC']='Rep\u00FAblica Checa';_t['tr']['CZECH_REPUBLIC']='\u00C7ek Cumhuriyeti';_t['de']['HUNGARY']='Ungarn';_t['en']['HUNGARY']='Hungary';_t['fr']['HUNGARY']='Hongrie';_t['es']['HUNGARY']='Hungr\u00EDa';_t['tr']['HUNGARY']='Macaristan';_t['de']['GEOCODE_ERROR']='Geocoding fehlgeschlagen';_t['en']['GEOCODE_ERROR']='Geocoding failed';_t['fr']['GEOCODE_ERROR']='Il y a une erreur.';_t['es']['GEOCODE_ERROR']='Se ha producido un error.';_t['tr']['GEOCODE_ERROR']='Bir hata olu\u015Ftu.';_t['de']['ROUTING_ERROR']='Routing fehlgeschlagen';_t['en']['ROUTING_ERROR']='Routing failed';_t['fr']['ROUTING_ERROR']='Il y a une erreur.';_t['es']['ROUTING_ERROR']='Se ha producido un error.';_t['tr']['ROUTING_ERROR']='Bir hata olu\u015Ftu.';_t['de']['GEOCODE_ERROR_ADDRESS']='Die Zieladresse konnte nicht geocodiert werden';_t['en']['GEOCODE_ERROR_ADDRESS']='The destination address could not be geo-coded';_t['fr']['GEOCODE_ERROR_ADDRESS']='La destination indiqu\u00E9e n\'a pas pu \u00EAtre localis\u00E9e';_t['es']['GEOCODE_ERROR_ADDRESS']='No se ha podido geocodificar la direcci\u00F3n de destino.';_t['tr']['GEOCODE_ERROR_ADDRESS']='Hedef adres co\u011Frafi kodlanamad\u0131.';_t['de']['BACK']='Zur\u00FCck';_t['en']['BACK']='Return';_t['fr']['BACK']='Return';_t['es']['BACK']='Return';_t['tr']['BACK']='Return';_t['de']['INPUT_STARTADDRESS']='F\u00FCr die Startadresse ist mindestens die PLZ oder der Ort anzugeben';_t['en']['INPUT_STARTADDRESS']='You have to insert at least a city or zip code for the start address';_t['fr']['INPUT_STARTADDRESS']='You have to insert at least a city or zip code for the start address';_t['es']['INPUT_STARTADDRESS']='You have to insert at least a city or zip code for the start address';_t['tr']['INPUT_STARTADDRESS']='You have to insert at least a city or zip code for the start address';_t['de']['INPUT_DESTINATIONADDRESS']='F\u00FCr die Zieladresse ist mindestens die PLZ oder der Ort anzugeben';_t['en']['INPUT_DESTINATIONADDRESS']='You have to insert at least a city or zip code for the destination address';_t['fr']['INPUT_DESTINATIONADDRESS']='You have to insert at least a city or zip code for the destination address';_t['es']['INPUT_DESTINATIONADDRESS']='You have to insert at least a city or zip code for the destination address';_t['tr']['INPUT_DESTINATIONADDRESS']='You have to insert at least a city or zip code for the destination address';_t['de']['INPUT_INTERSTATIONADDRESS']='F\u00FCr die Zwischenstation ist mindestens die PLZ oder der Ort anzugeben';_t['en']['INPUT_INTERSTATIONADDRESS']='You have to insert at least a city or zip code for the interstation address';_t['fr']['INPUT_INTERSTATIONADDRESS']='You have to insert at least a city or zip code for the interstation address';_t['es']['INPUT_INTERSTATIONADDRESS']='You have to insert at least a city or zip code for the interstation address';_t['tr']['INPUT_INTERSTATIONADDRESS']='You have to insert at least a city or zip code for the interstation address';_t['de']['DISTANCE']='Distanz';_t['en']['DISTANCE']='distance';_t['fr']['DISTANCE']='distance';_t['es']['DISTANCE']='distancia';_t['tr']['DISTANCE']='uzakl\u0131\u011Fa g\u00F6re';_t['de']['TIME']='Fahrtzeit';_t['en']['TIME']='Travel time';_t['fr']['TIME']='Dur\u00F3e du trajet';_t['es']['TIME']='Duraci\u00F3n del trayecto';_t['tr']['TIME']='Yolculuk s\u00FCresi';_t['de']['ROUTE_DESCRIPTION']='Beschreibung';_t['en']['ROUTE_DESCRIPTION']='Description';_t['fr']['ROUTE_DESCRIPTION']='Description';_t['es']['ROUTE_DESCRIPTION']='Descripci\u00F3n';_t['tr']['ROUTE_DESCRIPTION']='Tarifi';_t['de']['NEW_ROUTE']='Neue Route berechnen';_t['en']['NEW_ROUTE']='New route';_t['fr']['NEW_ROUTE']='New route';_t['es']['NEW_ROUTE']='New route';_t['tr']['NEW_ROUTE']='New route';_t['de']['NEXT']='Weiter';_t['en']['NEXT']='Next';_t['fr']['NEXT']='Next';_t['es']['NEXT']='Next';_t['tr']['NEXT']='Next';_t['de']['WAY_BACK']='R\u00FCckweg berechnen';_t['en']['WAY_BACK']='Way back';_t['fr']['WAY_BACK']='Way back';_t['es']['WAY_BACK']='Way back';_t['tr']['WAY_BACK']='Way back';this.setLanguage=function(language){iw.strict([String],[language]);if(_t[language]){_language=language;}
else
{throw 'Language \'' + language + '\' is not supported.';}
};this.getLanguage=function(){return _language;};this.setStartAddress=function(address){iw.strict([IWAddress],[address]);setAddressFields(_startAddressDiv,address);};this.getStartAddress=function(){return getAddressFields(_startAddressDiv);};this.resetStartAddress=function(){setAddressFields(_startAddressDiv,new IWAddress());};this.setDestinationAddress=function(address){iw.strict([IWAddress],[address]);setAddressFields(_destinationAddressDiv,address);};this.getDestinationAddress=function(){return getAddressFields(_destinationAddressDiv);};this.resetDestinationAddress=function(){setAddressFields(_destinationAddressDiv,new IWAddress());};this.addInterstationAddress=function(address){iw.strict([IWAddress],[address]);var div=iw.create('div');var addressDiv=createAddressFields('interstationAddress' + _uniqueInterstationId++);addressDiv.className='interstation';var img=iw.create('img');addressDiv.appendChild(img);img.src=iwconst.GLOBAL_APP_URL + 'img/close.gif';_interstationAddressDivs.push(addressDiv);var h2=iw.create('H2');h2.innerHTML=_t[_language]['INTERSTATION']+ ' ' + _interstationAddressDivs.length;var n=_interstationMenu.childNodes[1];div.appendChild(h2);div.appendChild(addressDiv);n.insertBefore(div,n.lastChild);setAddressFields(addressDiv,address);IWEventManager.trigger(_self,'onredraw',null);var onMouseOverListener=IWEventManager.addDOMListener(img,'onmouseover',function(){this.style.cursor="pointer";}.iwclosure(img)
);var onMouseOutListener=IWEventManager.addDOMListener(img,'onmouseout',function(){this.style.cursor="auto";}.iwclosure(img)
);var onClickListener=IWEventManager.addDOMListener(img,'onclick',function(){_self.removeInterstationAddress(div);IWEventManager.removeListener(onMouseOverListener);IWEventManager.removeListener(onMouseOutListener);IWEventManager.removeListener(onClickListener);IWEventManager.trigger(_self,'onredraw',null);}.iwclosure(_self)
);};this.setInterstationAddresses=function(addresses){iw.strict(IWAddress,[addresses]);for(var i=0;i<addresses.length;i++){this.addInterstationAddress(addresses[i]);}
};this.removeInterstationAddress=function(div){div.parentNode.removeChild(div);for(var i=0;i<_interstationAddressDivs.length;i++){if(div.lastChild.id==_interstationAddressDivs[i].id){_interstationAddressDivs.splice(i,1);break;}
}
var childNodes=iw.tag('h2',_interstationMenu);for(var i=0;i<childNodes.length;i++){childNodes[i].innerHTML=_t[_language]['INTERSTATION']+ ' ' +(i+1);}
IWEventManager.trigger(_self,'onredraw',null);};this.removeInterstationAddresses=function(){for(var i=0;i<_interstationAddressDivs.length;i++){this.removeInterstationAddress(_interstationAddressDivs[0].parentNode);}
};this.getInterstationAddresses=function(){var addresses=new Array();for(var i=0;i<_interstationAddressDivs.length;i++){addresses.push(getAddressFields(_interstationAddressDivs[i]));}
return addresses;};this.changeAddressOrder=function(){var elems=iw.tag('select',_routePane2);var addresses=new Array();for(var i=0;i<elems.length;i++){addresses.push(_geocodeAddresses[i][elems[i].selectedIndex].getAddress());}
addresses.reverse();setAddressFields(_startAddressDiv,addresses[0]);setAddressFields(_destinationAddressDiv,addresses[addresses.length-1]);for(var i=0;i<_interstationAddressDivs.length;i++){setAddressFields(_interstationAddressDivs[i],addresses[i+1]);}
};this.getRouteSegments=function(){return _routeSegments;};function startSearch(){if(_isAlreadySearching){return;}
_isAlreadySearching=true;_inputAddresses=new Array();var childNodes=iw.tag('div',_routePane1);for(var i=0;i<childNodes.length;i++){if(childNodes[i].name=="address"){var address=new IWAddress();var street=childNodes[i].childNodes.item(_STREET).value;if(street !=_t[_language]["STREET"]){address.setStreet(street);}
var number=childNodes[i].childNodes.item(_HOUSENUMBER).value;if(number !=_t[_language]["NUMBER"]){address.setHouseNumber(number);}
var zipcode=childNodes[i].childNodes.item(_ZIPCODE).value;if(zipcode !=_t[_language]["ZIPCODE"]){address.setZipCode(zipcode);}
var city=childNodes[i].childNodes.item(_CITY).value;if(city !=_t[_language]["CITY"]){address.setCity(city);}
address.setCountryCode(childNodes[i].childNodes.item(_COUNTRY).value);_inputAddresses.push(address);}
}
for(var i=0;i<_inputAddresses.length;i++){var addr=_inputAddresses[i];if((addr.getZipCode()==null||addr.getZipCode().length==0)&&(addr.getCity()==null||addr.getCity().length==0)){if(i==0){alert(_t[_language]["INPUT_STARTADDRESS"]);}
else if(i==_inputAddresses.length-1){alert(_t[_language]["INPUT_DESTINATIONADDRESS"]);}
else
{alert(_t[_language]["INPUT_INTERSTATIONADDRESS"]);}
_isAlreadySearching=false;return;}
}
addressNodes=null;var childNodes=_routePane2.childNodes;while(childNodes.length>0){childNodes[0].parentNode.removeChild(childNodes[0]);}
var backButton=iw.create('button');_routePane2.appendChild(backButton);backButton.id="backButton";backButton.innerHTML=_t[_language]["BACK"];IWEventManager.addDOMListener(backButton,"onclick",function(event){hide(_routePane2);show(_routePane1);IWEventManager.trigger(_self,"onredraw",null);}
);_addressIndex=0;_geocodeAddresses=new Array();_geocoderClient.geocodeAddress(_inputAddresses[_addressIndex],_MAX_ADDRESSES_PER_GEOCODE);}
function buildGUI(){var linkCSS=iw.create('link');iw.tag('head')[0].appendChild(linkCSS);linkCSS.type='text/css';linkCSS.rel='stylesheet';linkCSS.href=iwconst.GLOBAL_APP_URL + 'css/routing.css';_routePane1.id='routePane1';_routePane1.className='stdForm';container.appendChild(_routePane1);var h1=iw.create('H1');h1.innerHTML=_t[_language]['SEARCH_ROUTE'];_routePane1.appendChild(h1);_routePane1.appendChild(createStartAddress());_routePane1.appendChild(createInterstationMenu());_routePane1.appendChild(createDestinationAddress());_routePane1.appendChild(createOptionsMenu());var searchButton=iw.create('button');_routePane1.appendChild(searchButton);searchButton.id='searchButton';searchButton.innerHTML=_t[_language]['SEARCH_ROUTE'];IWEventManager.addDOMListener(searchButton,"onclick",startSearch.iwclosure(searchButton));var _onGeocodeListener=IWEventManager.addListener(_geocoderClient,'aftergeocoded',function(event){var results=event.results;if(results.length==0){alert(_t[_language]['GEOCODE_ERROR_ADDRESS']+ ':' + formatAddressString(event.inputAddress));return;}
else
{var caption='';var h1=iw.create('h1');h1.style.marginTop='5px';if(_addressIndex==0){caption=_t[_language]['START'];}
else if(_addressIndex==_inputAddresses.length-1){caption=_t[_language]['DESTINATION'];}
else
{caption=_t[_language]['INTERSTATION']+ ' ' + _addressIndex;}
h1.innerHTML=caption;_routePane2.appendChild(h1);var select=iw.create('select');select.name='address';select.style.width='190px';select.style.fontSize='0.8em';select.style.marginBottom='10px';_geocodeAddresses.push(results);for(var i=0;i<results.length;i++){var result=results.pop();var text=formatAddressString(result.getAddress());var value=result.getLCC().getX()+ ',' + result.getLCC().getY();select.options[i]=new Option(text,value);}
_routePane2.appendChild(select);}
if(_addressIndex<_inputAddresses.length-1){_addressIndex++;_geocoderClient.geocodeAddress(_inputAddresses[_addressIndex],_MAX_ADDRESSES_PER_GEOCODE);}
else
{hide(_routePane1);_routePane2.appendChild(nextButton);show(_routePane2);nextButton.focus();IWEventManager.trigger(_self,"onredraw",null);_isAlreadySearching=false;}
}.iwclosure(this)
);container.appendChild(_routePane2);_routePane2.id='routePane2';_routePane2.className='stdForm';hide(_routePane2);var nextButton=iw.create('button');nextButton.id='nextButton';nextButton.innerHTML=_t[_language]['NEXT'];IWEventManager.addDOMListener(nextButton,'onclick',function(event){var options=new IWRouteOptions();var radios=iw.name('routeMode');for(var i=0;i<radios.length;i++){if(radios[i].checked){options.setRoutingMode(radios[i].value);break;}
}
options.setCitySpeed(getSelectedText(iw.id('routeSpeedCity')));options.setCountryRoadSpeed(getSelectedText(iw.id('routeSpeedCountryRoad')));options.setHighwaySpeed(getSelectedText(iw.id('routeSpeedHighway')));options.setLanguage(_language);_routerClient.setRouteOptions(options);var addressNodes=iw.tag('select',_routePane2);if(addressNodes.length>=2){_routeAddresses=new Array();var start=parseCoordinate(addressNodes[0].value);_routeAddresses.push(addressNodes[0].selectedIndex)
var destination=parseCoordinate(addressNodes[addressNodes.length-1].value);var interstations=null;if(addressNodes.length>=3){var interstations=new Array();for(var i=1;i<addressNodes.length-1;i++){var coordinate=parseCoordinate(addressNodes[i].value);interstations.push(coordinate);}
}
_routerClient.route(start,destination,interstations);}
else
{}
}
);IWEventManager.addListener(_routerClient,'afterrouted',function(event){hide(_routePane2);var table=iw.id('routeTable');for(var i=table.rows.length-1;i>0;i--){table.deleteRow(i);}
_routeSegments=event.route;if(_routeSegments==null||_routeSegments.length==0){alert(_t[_language]['ROUTING_ERROR']);}
else
{for(var i=0;i<_routeSegments.length;i++){var tr=table.insertRow(i+1);var color=(i % 2==0 ? '#FFFFFF':'#DCDCDC');var td=tr.insertCell(0);td.align='right';td.style.verticalAlign='top';td.style.backgroundColor=color;td.innerHTML=_routeSegments[i].getRouteLength()+ '\n' + _routeSegments[i].getRouteTime();var td=tr.insertCell(1);td.style.backgroundColor=color;td.innerHTML=_routeSegments[i].getInstruction();var coord=_routeSegments[i].getCoordinate();var listener=IWEventManager.addDOMListener(tr,"onclick",function(event){showRoutingMagnifier(this);}.iwclosure(coord));IWEventManager.addDOMListener(tr,"onmouseover",function(event){tr.style.backgroundColor='white';}.iwclosure(this));tr.style.cursor='pointer';}
}
show(_routePane3);IWEventManager.trigger(_self,'onredraw',null);var layer=new IWLayer(map,'route','ROUTE');layer.addShape(new IWShape(event.shape));_map.addLayer(layer);_map.setCenter(event.bounds.getCenter(),_map.getBoundsZoomlevel(event.bounds));for(var i=0;i<_routeSegments.length;i++){var coord=_routeSegments[i].getCoordinate();addRoutingPoint(i + 1,coord);}
}.iwclosure(this));container.appendChild(_routePane3);_routePane3.id='routePane3';_routePane3.className='stdForm'
hide(_routePane3);var waybackButton=iw.create('button');_routePane3.appendChild(waybackButton);waybackButton.id='waybackButton';waybackButton.style.marginBottom='5px'
waybackButton.innerHTML=_t[_language]['WAY_BACK'];IWEventManager.addDOMListener(waybackButton,'onclick',function(){deleteRoute();this.changeAddressOrder();hide(_routePane3);show(_routePane1);IWEventManager.trigger(_self,'onredraw',null);}.iwclosure(_self)
);var newRouteButton=iw.create('button');_routePane3.appendChild(newRouteButton);newRouteButton.id='newRouteButton';newRouteButton.style.marginBottom='10px'
newRouteButton.innerHTML=_t[_language]['NEW_ROUTE'];IWEventManager.addDOMListener(newRouteButton,'onclick',function(){deleteRoute();_self.resetStartAddress();_self.resetDestinationAddress();_self.removeInterstationAddresses();hide(_routePane3);show(_routePane1);IWEventManager.trigger(_self,'onredraw',null);}.iwclosure(_self)
);var table=iw.create('table');table.id='routeTable';table.style.border='1px solid #689acd';table.style.width='190px';var tr=table.insertRow(0);var th=iw.create('TH');th.innerHTML=_t[_language]['DISTANCE']+ '\n' + _t[_language]['TIME'];tr.appendChild(th);var th=iw.create('TH');th.innerHTML=_t[_language]['ROUTE_DESCRIPTION'];tr.appendChild(th);_routePane3.appendChild(table);}
function show(pane){pane.style.visibility='visible';pane.style.display='block';}
function hide(pane){pane.style.visibility='hidden';pane.style.display='none';}
function deleteRoute(){_map.getOverlayManager().removeLayer(100);_map.removeLayerByName('route');_map.setCenter(_map.getCenter());_routeSegments=null;}
function createStartAddress(){var div=iw.create('div');div.className='dropDownContent';div.style.display='block';div.style.visibility='visible';var h2=iw.create('H2');h2.innerHTML=_t[_language]['START'];div.appendChild(h2);div.appendChild(_startAddressDiv);return div;}
function createDestinationAddress(){var div=iw.create('div');div.className='dropDownContent';div.style.display='block';div.style.visibility='visible';var h2=iw.create('H2');h2.innerHTML=_t[_language]['DESTINATION'];div.appendChild(h2);div.appendChild(_destinationAddressDiv);return div;}
function createAddressFields(id){var div=iw.create('div');div.id=id;div.name='address';div.appendChild(createInputField('street',_t[_language]['STREET']));div.appendChild(createInputField('housenumber',_t[_language]['NUMBER']));div.appendChild(createInputField('zipcode',_t[_language]['ZIPCODE']));div.appendChild(createInputField('city',_t[_language]['CITY']));var country=iw.create('select');country.className='country';country.options[0]=new Option(_t[_language]['ANDORRA'],'AND');country.options[1]=new Option(_t[_language]['BELGIUM'],'B');country.options[2]=new Option(_t[_language]['DENMARK'],'DK');country.options[3]=new Option(_t[_language]['GERMANY'],'D');country.options[4]=new Option(_t[_language]['FINNLAND'],'FIN');country.options[5]=new Option(_t[_language]['FRANCE'],'F');country.options[6]=new Option(_t[_language]['GREECE'],'GR');country.options[7]=new Option(_t[_language]['GREATE_BRITAIN'],'GB');country.options[8]=new Option(_t[_language]['IRELAND'],'IRL');country.options[9]=new Option(_t[_language]['ITALY'],'I');country.options[10]=new Option(_t[_language]['LUXEMBOURG'],'L');country.options[11]=new Option(_t[_language]['NETHERLANDS'],'NL');country.options[12]=new Option(_t[_language]['AUSTRIA'],'A');country.options[13]=new Option(_t[_language]['NORWAY'],'N');country.options[14]=new Option(_t[_language]['POLAND'],'PL');country.options[15]=new Option(_t[_language]['PORTUGAL'],'P');country.options[16]=new Option(_t[_language]['SAN_MARINO'],'RSM');country.options[17]=new Option(_t[_language]['SWEDEN'],'S');country.options[18]=new Option(_t[_language]['SWITZERLAND'],'CH');country.options[19]=new Option(_t[_language]['SLOVAKIA'],'SK');country.options[20]=new Option(_t[_language]['SPAIN'],'E');country.options[21]=new Option(_t[_language]['CZECH_REPUBLIC'],'CZ');country.options[22]=new Option(_t[_language]['HUNGARY'],'H');setSelectedIndex(country,'D');div.appendChild(country);return div;}
function setSelectedIndex(elem,value){for(var i=0;i<elem.options.length;i++){if(elem.options[i].value==value){elem.selectedIndex=i;return;}
}
}
function getSelectedText(elem){return elem.options[elem.selectedIndex].text;}
function setAddressFields(div,address){var street=address.getStreet();div.childNodes[_STREET].value=(street !=null&&street.length>0 ? street:_t[_language]['STREET']);var number=address.getHouseNumber();div.childNodes[_HOUSENUMBER].value=(number !=0 ? number:_t[_language]['NUMBER']);var zipcode=address.getZipCode();div.childNodes[_ZIPCODE].value=(zipcode !=null&&zipcode.length>0 ? zipcode:_t[_language]['ZIPCODE']);var city=address.getCity();div.childNodes[_CITY].value=(city !=null&&city.length>0 ? city:_t[_language]['CITY']);var country=address.getCountryCode();if(country !=null&&country.length>0){setSelectedIndex(div.childNodes[_COUNTRY],country);}
else
{setSelectedIndex(div.childNodes[_COUNTRY],'D');}
}
function getAddressFields(div){var address=new IWAddress();address.setStreet(div.childNodes[_STREET].value);address.setHouseNumber(div.childNodes[_HOUSENUMBER].value);address.setZipCode(div.childNodes[_ZIPCODE].value);address.setCity(div.childNodes[_CITY].value);return address;}
function createInputField(name,value){var input=iw.create('input');input.name=name;input.className=name;input.value=value;IWEventManager.addDOMListener(input,'onfocus',function(){if(this.value==value){this.value='';}
}.iwclosure(input)
);IWEventManager.addDOMListener(input,'onblur',function(){if(this.value==''){this.value=value;}
}.iwclosure(input)
);IWEventManager.addDOMListener(input,"onkeypress",function(event){if(event.keyCode==13)startSearch();}.iwclosure(input)
);return input;}
function createOptionsMenu(){_optionsMenu=iw.create('div');_optionsMenu.id='optionsMenu';_optionsMenu.className='dropDownMenu';var header=iw.create('div');header.className='dropDownHeader'
header.name='modus';_optionsMenu.appendChild(header);IWEventManager.addDOMListener(header,'onclick',function(){dropDown(header);}.iwclosure(this));var img=iw.create('img');header.appendChild(img);img.src=iwconst.GLOBAL_APP_URL + 'img/oeffnen_route.gif';img.className='img';var h1=iw.create('h1');h1.innerHTML=_t[_language]['ROUTING_OPTIONS'];header.appendChild(h1);var content=iw.create('div');content.className='dropDownContent';_optionsMenu.appendChild(content);content.appendChild(createModusDIV());content.appendChild(createSpeedDIV());return _optionsMenu;}
function createInterstationMenu(){_interstationMenu=iw.create('div');_interstationMenu.id='interstationMenu';_interstationMenu.className='dropDownMenu';var header=iw.create('div');header.className='dropDownHeader'
header.name='modus';_interstationMenu.appendChild(header);IWEventManager.addDOMListener(header,'onclick',function(){dropDown(header);}.iwclosure(this));var img=iw.create('img');header.appendChild(img);img.src=iwconst.GLOBAL_APP_URL + 'img/oeffnen_route.gif';img.className='img';var h1=iw.create('h1');h1.innerHTML=_t[_language]['INTERSTATION'];header.appendChild(h1);var content=iw.create('div');content.id='routeInterstationContent';content.className='dropDownContent';var a=iw.create('A');a.innerHTML=_t[_language]['ADD_INTERSTATION'];IWEventManager.addDOMListener(a,'onclick',function(event){this.addInterstationAddress(new IWAddress());}.iwclosure(_self)
);content.appendChild(a);_interstationMenu.appendChild(content);return _interstationMenu;}
function createModusDIV(){var div=iw.create('div');div.id='modusDiv';var h2=iw.create('h2');h2.innerHTML=_t[_language]['ROUTING_MODE'];div.appendChild(h2);div.appendChild(createModusTable());return div;}
function createModusTable(){var radio1=null;var radio2=null;var radio3=null;if(IWBrowser.isInternetExplorer()){radio1=iw.create('<input type="radio" name="mode" value="1" className="modus" checked>');radio2=iw.create('<input type="radio" name="mode" value="2" className="modus">');radio3=iw.create('<input type="radio" name="mode" value="3" className="modus">');}
else
{radio1=iw.create('input');radio1.type='radio';radio1.name='routeMode';radio1.value=0;radio1.checked=true;radio1.className='modus';radio2=iw.create('input');radio2.type='radio';radio2.name='routeMode';radio2.value=1;radio2.className='modus';radio3=iw.create('input');radio3.type='radio';radio3.name='routeMode';radio3.value=2;radio3.className='modus';}
var table=iw.create('table');table.id='modusTable';var tr=table.insertRow(0);var td=tr.insertCell(0);td.style.width='50px';td.appendChild(radio1);tr.insertCell(1).innerHTML=_t[_language]['FASTEST'];var tr=table.insertRow(1);tr.insertCell(0).appendChild(radio2);tr.insertCell(1).innerHTML=_t[_language]['SHORTEST'];var tr=table.insertRow(2);tr.insertCell(0).appendChild(radio3);tr.insertCell(1).innerHTML=_t[_language]['ECONOMIEST'];return table;}
function createSpeedDIV(){var div=iw.create('div');div.id='speedDiv';var h2=iw.create('h2');h2.innerHTML=_t[_language]['SPEED_SETTINGS'];div.appendChild(h2);div.appendChild(createSpeedTable());return div;}
function createSpeedTable(){var highway=iw.create('select');highway.id='routeSpeedHighway';highway.className='speed';highway.options[0]=new Option('130');highway.options[1]=new Option('120');highway.options[2]=new Option('110');highway.options[3]=new Option('100');highway.options[4]=new Option('90');highway.options[5]=new Option('80');highway.selectedIndex=0;var countryroad=iw.create('select');countryroad.id='routeSpeedCountryRoad';countryroad.className='speed';countryroad.options[0]=new Option('100');countryroad.options[1]=new Option('90');countryroad.options[2]=new Option('80');countryroad.options[3]=new Option('70');countryroad.options[4]=new Option('60');countryroad.options[5]=new Option('50');countryroad.selectedIndex=2;var city=iw.create('select');city.id='routeSpeedCity';city.className='speed';city.options[0]=new Option('50');city.options[1]=new Option('40');city.options[2]=new Option('30');city.selectedIndex=0;var table=iw.create('table');table.id='speedTable';var tr=table.insertRow(0);var td=tr.insertCell(0);td.style.width='50px';td.appendChild(highway);tr.insertCell(1).innerHTML=_t[_language]['HIGHWAY'];var tr=table.insertRow(1);tr.insertCell(0).appendChild(countryroad);tr.insertCell(1).innerHTML=_t[_language]['COUNTRYROAD'];var tr=table.insertRow(2);tr.insertCell(0).appendChild(city);tr.insertCell(1).innerHTML=_t[_language]['CITY'];return table;}
function dropDown(menu){var img=null;var content=null;for(var i=0;i<menu.childNodes.length;i++){if(menu.childNodes[i].className){if(menu.childNodes[i].className=='img'){img=menu.childNodes[i];break;}
}
}
var sibling=menu.nextSibling;while(sibling){if(sibling.className=='dropDownContent'){content=sibling;break;}
sibling=sibling.nextSibling;}
if(content.style.display=='block'){content.style.display='none';img.src=iwconst.GLOBAL_APP_URL + 'img/oeffnen_route.gif'
}
else
{content.style.display='block';img.src=iwconst.GLOBAL_APP_URL + 'img/schliessen_route.gif'
}
IWEventManager.trigger(_self,'onredraw',null);}
function formatAddressString(address){var s='';if(address.getStreet()!=null){s=s.concat(address.getStreet());if(address.getHouseNumber()!=null){s=s.concat(address.getHouseNumber());}
}
if(address.getZipCode()!=null){if(s.length>0){s=s.concat(',');}
s=s.concat(address.getZipCode()).concat(' ');}
if(address.getCity()!=null){s=s.concat(address.getCity());}
return s;}
function parseCoordinate(stringCoordinate){var coord=null;try{var chunks=stringCoordinate.split(',');var x=parseInt(chunks[0]);var y=parseInt(chunks[1]);coord=new IWCoordinate(x,y);}
catch(e){throw 'Cant parse coordinate string:' + stringCoordinate;}
return coord;}
function addRoutingPoint(number,coordinate){var marker=new IWMarker(_map,coordinate);marker.setDefaultIcon(new IWIcon(iwconst.GLOBAL_APP_URL + '/img/bullet_white_10.gif',new IWPoint(10,10)));var div=iw.create('div');marker.getContainer().appendChild(div);div.innerHTML='<p align="center" style="margin:0px">' + number + '</p>';div.style.position='absolute';div.style.top='2px';div.style.left='0px';div.style.width='20px';div.style.color='black';div.style.fontSize='8pt';div.style.fontWeight='bold';var listener=IWEventManager.addListener(marker,'onclick',function(e){showRoutingMagnifier(this.getCoordinate());}.iwclosure(marker)
);_map.getOverlayManager().getLayer(100).addOverlay(marker);}
function showRoutingMagnifier(coordinate){if(_infoballoon !=null){_map.removeWindowOverlay(_infoballoon);}
_infoballoon=new IWInfoBalloon(_map,coordinate,createRoutingMagnifierDiv(coordinate));_infoballoon.setSize(new IWSize(261,324));_map.addWindowOverlay(_infoballoon);}
function createRoutingMagnifierDiv(coordinate){var div=iw.create('div');with(div.style){position='absolute';width='230px';height='240px';top='14px';}
var img=iw.create('img');iw.append(div,img);img.onload=function(){this.style.display='block';}.iwclosure(div);loadRoutingMagnifierImage(img,coordinate,_mapType);var imgZoomIn=iw.create('img');iw.append(div,imgZoomIn);imgZoomIn.src=iwconst.GLOBAL_APP_URL + 'img/zoomIn.gif';with(imgZoomIn.style){position='absolute';top='5px';left='5px';cursor='pointer';}
imgZoomIn.onclick=function(){if(_zoomLevel>400){_zoomLevel -=400;loadRoutingMagnifierImage(img,coordinate,_mapType);}
}.iwclosure(_self);var imgZoomOut=iw.create('img');iw.append(div,imgZoomOut);imgZoomOut.src=iwconst.GLOBAL_APP_URL + 'img/zoomOut.gif';with(imgZoomOut.style){position='absolute';top='23px';left='5px';cursor='pointer';}
imgZoomOut.onclick=function(){_zoomLevel +=400;loadRoutingMagnifierImage(img,coordinate,_mapType);}.iwclosure(_self);var imgMap=iw.create('img');iw.append(div,imgMap);imgMap.src=iwconst.GLOBAL_APP_URL + 'img/bMap.gif';with(imgMap.style){position='absolute';top='5px';left='30px';cursor='pointer';}
imgMap.onclick=function(){_mapType='map';loadRoutingMagnifierImage(img,coordinate,_mapType);}.iwclosure(_self);var imgHybrid=iw.create('img');iw.append(div,imgHybrid);imgHybrid.src=iwconst.GLOBAL_APP_URL + 'img/bAir.gif';with(imgHybrid.style){position='absolute';top='5px';left='77px';cursor='pointer';}
imgHybrid.onclick=function(){_mapType='hybrid';loadRoutingMagnifierImage(img,coordinate,_mapType);}.iwclosure(_self);return div;}
function loadRoutingMagnifierImage(img,coordinate,mapType){img.src=iwconst.GLOBAL_APP_URL
+	'servlet/FrontController?cmd=getPrintMap'
+ '&app=ms'
+ '&VNR=' + IWAccessFilter.getCNR()
+ '&PNR=' + IWAccessFilter.getPNR()
+ '&mapcx=' + coordinate.getX()
+ '&mapcy=' + coordinate.getY()
+ '&mapdx=' + _zoomLevel
+ '&mapdy=' + _zoomLevel
+ '&width=230'
+ '&height=240'
+ '&projc=lcc_europe'
+ '&maptype=' + mapType
+ IWRequestFormatter.getLayerParameter(_map.getZoom(),_map.getLayers());}
IWControl.call(this,map);var _MAX_ADDRESSES_PER_GEOCODE=100;var _STREET=0;var _HOUSENUMBER=1;var _ZIPCODE=2;var _CITY=3;var _COUNTRY=4;var container=this.getContainer();var _self=this;var _map=map;var _language=null;this.setLanguage(_map.getOptions().getLanguage());var _logger=log4javascript.getLogger('IWRoutingControl');var _inputAddresses=null;var _geocoderClient=new IWGeocoderClient();var _routerClient=new IWRouterClient();var _routeSegments=null;var _addressIndex=0;var _geocodeAddresses=null;var _routeAddresses=null;var _routePane1=iw.create('div');var _routePane2=iw.create('div');var _routePane3=iw.create('div');var _startAddressDiv=createAddressFields('startAddress');var _destinationAddressDiv=createAddressFields('destinationAddress');var _interstationAddressDivs=new Array();var	_uniqueInterstationId=0;var _optionsMenu=null;var _interstationMenu=null;var _isAlreadySearching=false;var _infoballoon=null;var _zoomLevel=200;var _mapType='map';IWEventManager.addListener(_map.getOptions(),'afterlanguagechanged',function(event){_self.setLanguage(event.language);});buildGUI();_map.getOverlayManager().getLayer(100).setVisibilityRange(new IWRange(0,120));}
function IWScalarControl(map){IWControl.call(this,map);var _map=map;var _container=this.getContainer();var _left=5;var _width=0;var _scaleUnits=[20,50,100,200,500,1000,2000,5000,10000,20000,50000,100000,200000,500000,1000000,2000000,5000000];var _scaleUnitsText=['20 m','50 m','100 m','200 m','500 m','1 km','2 km','5 km','10 km','20 km','50 km','100 km','200 km','500 km','1000 km','2000 km','5000 km'];this.afterAppend=function(){redraw();};function buildGUI(container){container.id='IWScalarControl';with(container.style){width='120px';height='25px';}
var divBackground=iw.create('div');iw.append(container,divBackground);iw.backgroundImage(divBackground,iwconst.GLOBAL_APP_URL + 'img/background_white_transparency.png');with(divBackground.style){position='absolute';top='0px';left='0px';width='120px';height='25px';zIndex='3';border='1px solid #dddddd';}
var divForeground=iw.create('div');iw.append(container,divForeground);with(divForeground.style){position='absolute';textAlign='center';top='0px';left='0px';zIndex='3';}
var divText=iw.create('div');iw.append(_container.lastChild,divText);with(divText.style){fontSize='9px';textAlign='center';width=divText.parentNode.style.width;}
iw.append(_container.lastChild,createSeperator());iw.append(_container.lastChild,createBlueBox());iw.append(_container.lastChild,createSeperator());iw.append(_container.lastChild,createWhiteBox());iw.append(_container.lastChild,createSeperator());iw.append(_container.lastChild,createBlueBox());iw.append(_container.lastChild,createSeperator());iw.append(_container.lastChild,createWhiteBox());iw.append(_container.lastChild,createSeperator());}
function createSeperator(){var div=iw.create('div');iw.append(_container.lastChild,div);with(div.style){position='absolute';borderBottom='1px solid #0066CC';width='1px';height='8px';top='15px';}
iw.backgroundImage(div,iwconst.GLOBAL_APP_URL + '/img/background_blue.jpg');return div;}
function createBlueBox(){var div=createBox();iw.backgroundImage(div,iwconst.GLOBAL_APP_URL + '/img/background_blue.jpg');return div;}
function createWhiteBox(){var div=createBox();iw.backgroundImage(div,iwconst.GLOBAL_APP_URL + '/img/background_white.jpg');return div;}
function createBox(){var div=iw.create('div');with(div.style){position='absolute';borderBottom='1px solid #0066CC';height='5px';top='18px';}
return div;}
function redraw(){var meter=Math.round(map.getMapWidthInMeter()/4);var i=0;while(meter>=_scaleUnits[i]&&i<(_scaleUnits.length-1)){i++;}
var left=5;var width=Math.round(_scaleUnits[i]*map.getOptions().getSize().getWidth()/map.getMapWidthInMeter()/4)- 1;_container.style.width=_container.firstChild.style.width=_container.lastChild.style.width=(4*width + 15)+ 'px';var nodes=_container.lastChild.childNodes;nodes[0].innerHTML=_scaleUnitsText[i];nodes[1].style.left=left + 'px';left=left + 1;nodes[2].style.left=left + 'px';nodes[2].style.width=width + 'px';left=left + width;nodes[3].style.left=left + 'px';left=left + 1;nodes[4].style.left=left + 'px';nodes[4].style.width=width + 'px';left=left + width;nodes[5].style.left=left + 'px';left=left + 1;nodes[6].style.left=left + 'px';nodes[6].style.width=width + 'px';left=left + width;nodes[7].style.left=left + 'px';left=left + 1;nodes[8].style.left=left + 'px';nodes[8].style.width=width + 'px';left=left + width;nodes[9].style.left=left - 1 + 'px';}
this.setPrintable(true);buildGUI(_container);IWEventManager.addListener(map,'afterzoom',function(event){redraw();});}
function IWSlideInMenuControl(map,size,slideDirection){IWControl.call(this,map);var _slideSteps=[0.03,0.07,0.12,0.18,0.20,0.18,0.12,0.07,0.03];function _move(){var size=null;var switch_=null;if(_slideDirection==IWAlignment.LEFT){size=_size.getWidth();switch_=-1;if(!_isOpen){_this.getContainer().style.width=_size.getWidth()+11+'px';_this.getContainer().style.left=parseInt(_this.getContainer().style.left)-_size.getWidth()+'px';_container.style.left=_size.getWidth()+ 'px';}
}else if(_slideDirection==IWAlignment.RIGHT){size=_size.getWidth();switch_=1;if(!_isOpen)_this.getContainer().style.width=_size.getWidth()+11+'px';}else if(_slideDirection==IWAlignment.TOP){size=_size.getHeight();switch_=-1;if(!_isOpen){_this.getContainer().style.height=_size.getHeight()+11+'px';_this.getContainer().style.top=parseInt(_this.getContainer().style.top)-_size.getHeight()+'px';_container.style.top=_size.getHeight()+ 'px';}
}else if(_slideDirection==IWAlignment.BOTTOM){size=_size.getHeight();switch_=1;if(!_isOpen)_this.getContainer().style.height=_size.getHeight()+11+'px';}
_isOpen=!_isOpen;if(!_isOpen){_oflowX=_panel.getContainer().style.overflowX;_oflowY=_panel.getContainer().style.overflowY;_panel.getContainer().style.overflowX='hidden';_panel.getContainer().style.overflowY='hidden';_saveOverflowDiv(_panel.getContainer());_moveWindow(size,switch_,0,0);}
else
{_moveWindow(size,-1*switch_,0,0);_panel.getContainer().style.overflowX=_oflowX;_panel.getContainer().style.overflowY=_oflowY;for(var i=0;i<_overflowSave.length;i++){if(_overflowSave[i][0]=='v')_overflowSave[i][1].style.overflow=_overflowSave[i][2];if(_overflowSave[i][0]=='x')_overflowSave[i][1].style.overflowX=_overflowSave[i][2];if(_overflowSave[i][0]=='y')_overflowSave[i][1].style.overflowY=_overflowSave[i][2];}
_overflowSave=new Array();}
}
function _saveOverflowDiv(div){for(var i=0;i<div.childNodes.length;i++){if(div.childNodes.item(i).nodeName=='DIV'){_saveOverflowDiv(div.childNodes.item(i));}
}
if(div.style.overflow=='auto'||div.style.overflow=='scroll'){_overflowSave.push(new Array('v',div,div.style.overflow));div.style.overflow='hidden';}
if(div.style.overflowY=='auto'||div.style.overflowY=='scroll'){_overflowSave.push(new Array('y',div,div.style.overflowY));div.style.overflowY='hidden';}
if(div.style.overflowX=='auto'||div.style.overflowX=='scroll'){_overflowSave.push(new Array('x',div,div.style.overflowX));div.style.overflowX='hidden';}
}
function _moveWindow(size,switch_,nStep,nRest){if(nStep<_slideSteps.length){var nStepMovementX=Math.round(_slideSteps[nStep]*size);nStepMovementX +=nRest;nRest=nStepMovementX - Math.round(nStepMovementX);if(_slideDirection==IWAlignment.LEFT||_slideDirection==IWAlignment.RIGHT){var nLeft=parseInt(_container.style.left)- switch_*nStepMovementX;_container.style.left=nLeft + 'px';}
else if(_slideDirection==IWAlignment.TOP||_slideDirection==IWAlignment.BOTTOM){var nHeight=parseInt(_container.style.top)- switch_*nStepMovementX;_container.style.top=nHeight + 'px';}
window.setTimeout(function(){_moveWindow(size,switch_,++nStep,nRest);},35);}
else
{_setCorrectPosition();_addArrowImg();}
}
function _setCorrectPosition(){if(_isOpen){if(_slideDirection==IWAlignment.LEFT)_container.style.left='11px';else if(_slideDirection==IWAlignment.RIGHT)_container.style.left='0px';else if(_slideDirection==IWAlignment.TOP){_container.style.top='11px';}
else if(_slideDirection==IWAlignment.BOTTOM)_container.style.top='0px';}
else
{if(_slideDirection==IWAlignment.LEFT){_container.style.left='11px';_this.getContainer().style.width='11px';if(!_this.getContainer().style.left)_this.getContainer().style.left=_size.getWidth()+'px';else
_this.getContainer().style.left=parseInt(_this.getContainer().style.left)+_size.getWidth()+'px';}
else if(_slideDirection==IWAlignment.RIGHT){_container.style.left=- _size.getWidth()+'px';_this.getContainer().style.width='11px';}
else if(_slideDirection==IWAlignment.TOP){_container.style.top='11px';_this.getContainer().style.height='11px';if(!_this.getContainer().style.top)_this.getContainer().style.top=_size.getHeight()+'px';else
_this.getContainer().style.top=parseInt(_this.getContainer().style.top)+_size.getHeight()+'px';}
else if(_slideDirection==IWAlignment.BOTTOM){_container.style.top=- _size.getHeight()+'px';_this.getContainer().style.height='11px';}
}
}
function _addArrowImg(){if(_slideDirection==IWAlignment.RIGHT){_slideWindowImg.src=iwconst.GLOBAL_APP_URL +(_isOpen ? 'img/links.gif':'img/rechts.gif');}
else if(_slideDirection==IWAlignment.LEFT){_slideWindowImg.src=iwconst.GLOBAL_APP_URL +(_isOpen ? 'img/rechts.gif':'img/links.gif');}
else if(_slideDirection==IWAlignment.TOP){_slideWindowImg.src=iwconst.GLOBAL_APP_URL +(_isOpen ? 'img/unten.gif':'img/oben.gif');}
else if(_slideDirection==IWAlignment.BOTTOM){_slideWindowImg.src=iwconst.GLOBAL_APP_URL +(_isOpen ? 'img/oben.gif':'img/unten.gif');}
}
this.setSize=function(size){_size=size;if(_slideDirection==IWAlignment.LEFT||_slideDirection==IWAlignment.RIGHT){_container.style.width=size.getWidth()+11+'px';_container.style.height=size.getHeight()+'px';this.getContainer().style.width=size.getWidth()+11+'px';this.getContainer().style.height=size.getHeight()+'px';_slider.style.height=size.getHeight()-2+'px';_slider.style.width='9px';_slideArrow.style.top=(size.getHeight()/2 - 10)+ 'px';_slideArrow.style.left='0px';_slider.style.top='0px';}else if(_slideDirection==IWAlignment.TOP||_slideDirection==IWAlignment.BOTTOM){_container.style.width=size.getWidth()+'px';_container.style.height=size.getHeight()+11+'px';this.getContainer().style.width=size.getWidth()+'px';this.getContainer().style.height=size.getHeight()+11+'px';_slider.style.width=size.getWidth()-2+'px';_slider.style.height='9px';_slideArrow.style.left=(size.getWidth()/2 - 10)+ 'px';_slideArrow.style.bottom='0px';_slider.style.left='0px';}
if(_slideDirection==IWAlignment.RIGHT){_container.style.left=-_size.getWidth()+'px';_slider.style.left=size.getWidth()+'px';}else if(_slideDirection==IWAlignment.LEFT){_slider.style.left='-11px';_container.style.left=size.getWidth()+11+'px';}else if(_slideDirection==IWAlignment.TOP){_slider.style.top='-11px';_container.style.top=size.getHeight()+11+'px';}else if(_slideDirection==IWAlignment.BOTTOM){_container.style.top=-size.getHeight()+'px';_slider.style.top=size.getHeight()+'px';}
_panel.setSize(size);}
this.setVerticalScroll=function(scroll){_oflowY=scroll;_panel.setVerticalScroll(scroll);};this.setHorizontalScroll=function(scroll){_oflowX=scroll;_panel.setHorizontalScroll(scroll);};this.getSize=function(){return _panel.getSize();}
this.setBackgroundColor=function(color){_panel.setBackgroundColor(color);_slider.style.backgroundColor=color;}
this.adjustBackground=function(){_panel.adjustBackground();}
this.setOpacity=function(alpha){_panel.setOpacity(alpha);_slider.style.opacity=alpha;_slider.style.filter='alpha(opacity='+alpha*100+')';}
this.getOpacity=function(){return _panel.getOpacity();}
this.getBackgroundColor=function(){return _panel.getBackgroundColor();}
this.getLayoutManager=function(){return _panel.getLayoutManager();}
this.expand=function(){if(!_isOpen)_move();}
this.collapse=function(){if(_isOpen)_move();}
this.open=function(){if(_isOpen){return;}
_isOpen=true;_addArrowImg();if(_slideDirection==IWAlignment.LEFT){_this.getContainer().style.width=_size.getWidth()+11+'px';_this.getContainer().style.left=parseInt(_this.getContainer().style.left)-_size.getWidth()+'px';_container.style.left=_size.getWidth()+ 'px';}
else if(_slideDirection==IWAlignment.RIGHT){_this.getContainer().style.width=_size.getWidth()+11+'px';}
else if(_slideDirection==IWAlignment.TOP){_this.getContainer().style.height=_size.getHeight()+11+'px';_this.getContainer().style.top=parseInt(_this.getContainer().style.top)-_size.getHeight()+'px';_container.style.top=_size.getHeight()+ 'px';}
else if(_slideDirection==IWAlignment.BOTTOM){_this.getContainer().style.height=_size.getHeight()+11+'px';}
_setCorrectPosition();}
this.close=function(){if(!_isOpen){return;}
_isOpen=false;_addArrowImg();_setCorrectPosition();}
this.toString=function(){return "[IWSlideInMenuControl]" +"Size:" + this.getSize()+ "," +"Backgroundcolor:" + this.getBackgroundColor()+"Opacity:" + this.getOpacity();};if(typeof slideDirection=='undefined'||slideDirection<0||slideDirection>4){throw('IWSlideInMenuControl:adding control failed:slideDirection not valid!');}
this.getContainer().id="divSlideInMenu";var _this=this;var _slideDirection=slideDirection;var _isOpen=false;var _oflowX='inherit';var _oflowY='inherit';var _overflowSave=new Array();var _size;if(typeof size=='undefined')_size=new IWSize(100,100);else
_size=size;var _container=document.createElement('div');_container.style.position='absolute';this.getContainer().appendChild(_container);_this.getContainer().style.overflow='hidden';var _panel=new IWPanelControl(map);_container.appendChild(_panel.getContainer());var _slider=document.createElement('div');_container.appendChild(_slider);var _slideArrow=document.createElement('div');var _slideWindowImg=document.createElement('img');_slideArrow.appendChild(_slideWindowImg);_slider.appendChild(_slideArrow);_slideArrow.style.position='absolute';_addArrowImg();_slider.style.position='absolute';_slider.style.right='0px';_slider.style.cursor='pointer';_slider.style.borderLeftWidth='1px';_slider.style.borderLeftStyle='solid';_slider.style.borderLeftColor='#689acd';_slider.style.borderRightWidth='1px';_slider.style.borderRightStyle='solid';_slider.style.borderRightColor='#689acd';_slider.style.borderTopWidth='1px';_slider.style.borderTopStyle='solid';_slider.style.borderTopColor='#689acd';_slider.style.borderBottomWidth='1px';_slider.style.borderBottomStyle='solid';_slider.style.borderBottomColor='#689acd';this.setOpacity(0.8);this.setBackgroundColor("");this.setSize(_size);_setCorrectPosition();IWEventManager.addDOMListener(_slider,"onclick",function(event){_move();}.iwclosure(this));}
function IWSliderControl(map){IWControl.call(this,map);var _map=map;var _self=this;var _tilesizeArray=iwconst.A_TILESIZE_METER;var _lowValue=_map.getCurrentMapType().getMaxLevel();var _highValue=_map.getCurrentMapType().getMinLevel();var _offsetX=23;var _offsetY=21;var _maxSlide=161 - _offsetY;var _currentPos=_map.getZoom();var _mouseAdapter=new IWMouseAdapter();var _container=this.getContainer();var _divSliderButton=iw.create('div');var _areaPlus=iw.create('area');var _areaMinus=iw.create('area');this.getValue=function(round){if(typeof(round)=="undefined"){round=true;}
var value=_lowValue +(_highValue-_lowValue)*(parseInt(_divSliderButton.style.top)-_offsetY)/_maxSlide;if(round){return Math.round(value);}
else
{return value;}
};this.setValue=function(value,ignore){if(typeof(ignore)=="undefined")ignore=false;if(typeof(value)=="string")value=parseInt(value);var rangeValue=Math.min(Math.max(value,_lowValue),_highValue)- _lowValue;_divSliderButton.style.top=_maxSlide*rangeValue/(_highValue-_lowValue)+ _offsetY + 'px';_currentPos=value;if(!ignore){_map.setZoom(value);}
};this.setLanguage=function(language){var lng=language.toLowerCase();if(lng.toLowerCase()=='de'){_areaPlus.title='Vergr\u00F6\u00DFern';_areaMinus.title='Verkleinern';}
else
{_areaPlus.title='zoom in';_areaMinus.title='zoom out';}
};this.toString=function(){return '[IWSliderControl]';};function _fromSteptoPixel(step){return parseInt(_maxSlide/_highValue)*step + _offsetY;}
function buildGUI(){_container.id='IWSliderControl';_container.style.width='58px';_container.style.height='218px';var mapSlider=null;try{mapSlider=iw.create('<map name="mapSlider">');}
catch(e){mapSlider=iw.create('map');mapSlider.name='mapSlider';}
iw.append(_container,mapSlider);iw.append(mapSlider,_areaPlus);_areaPlus.shape='rect';_areaPlus.coords='8,1,45,20';IWEventManager.addDOMListener(_areaPlus,'onmouseover',function(e){_areaPlus.style.cursor='pointer';}
);IWEventManager.addDOMListener(_areaPlus,'onmousedown',function(event){_currentPos=_map.getZoom();if(!map.isZooming()&&(_map.getCurrentMapType().getMaxLevel()<_currentPos)){_currentPos--;this.setValue(_currentPos,true);if(!_map.zoomIn()){_currentPos++;this.setValue(_currentPos,true);}
}
}.iwclosure(_self)
);iw.append(mapSlider,_areaMinus);_areaMinus.shape='rect';_areaMinus.coords='8,193,45,218';IWEventManager.addDOMListener(_areaMinus,'onmouseover',function(e){_areaMinus.style.cursor='pointer';}
);IWEventManager.addDOMListener(_areaMinus,'onmousedown',function(event){_currentPos=_map.getZoom();if(!map.isZooming()&&(_map.getCurrentMapType().getMinLevel()>_currentPos)){_currentPos++;this.setValue(_currentPos,true);if(!_map.zoomOut()){_currentPos--;this.setValue(_currentPos,true);}
}
}.iwclosure(_self)
);var areaPanel=iw.create('area');iw.append(mapSlider,areaPanel);areaPanel.shape='rect';areaPanel.coords='20,21,35,218';IWEventManager.addDOMListener(areaPanel,'onmousedown',function(event){if(map.isZooming())return;if(!event)event=window.event;var _mouseAdapter=new IWMouseAdapter();var mouseEvent=_mouseAdapter.toMouseEvent(event,_container);var y=mouseEvent.position.getY()- 20;if(y>=0&&y<=170){var idx=Math.min(Math.round((y/161)*_highValue),_highValue);_map.setZoom(idx);}
}.iwclosure(_self)
);var imgSlider=iw.create('img');iw.append(_container,imgSlider);imgSlider.useMap='#mapSlider';imgSlider.onload=function(){correctPNG(this);}.iwclosure(imgSlider);imgSlider.src=iwconst.GLOBAL_APP_URL + 'img/slider.png';imgSlider.width='58';imgSlider.height='218';imgSlider.border='0';iw.append(_container,_divSliderButton);_divSliderButton.style.position='absolute';_divSliderButton.style.left=_offsetX + 'px';_divSliderButton.style.top=_offsetY + 'px';_divSliderButton.style.width='13px';_divSliderButton.style.height='35px';IWEventManager.addDOMListener(_divSliderButton,'onmouseover',function(e){this.style.cursor='pointer';}.iwclosure(_divSliderButton)
);IWEventManager.addDOMListener(_divSliderButton,'onmousedown',function(event){if(!event){event=window.event;}
if(event.cancelable){event.preventDefault();}
event.cancelBubble=false;event.returnValue=false;var mouseEvent=_mouseAdapter.toMouseEvent(event,_container);if((mouseEvent.button !=IWButton.LEFT)||map.isZooming()||!map.startOpticalZoom())return;IWEventManager.trigger(_map,'beforezoom',null);limitHigh=_offsetY;limitLow=_maxSlide+_offsetY;var oldPosY=mouseEvent.position.getY();var onMouseMoveListener=IWEventManager.addListener(document.body,'onmousemove',function(event){if(!event)event=window.event;var mouseEvent=_mouseAdapter.toMouseEvent(event,_container);var mouseY=mouseEvent.position.getY();if(event.cancelable)event.preventDefault();event.cancelBubble=false;event.returnValue=false;var y=parseInt(_divSliderButton.style.top)+ mouseY - oldPosY;if((limitHigh<y)&&(y<limitLow)){_divSliderButton.style.top=y +'px';oldPosY=mouseY;var alpha=this.getValue(false)- this.getValue()+1;var meter;if(this.getValue()==_lowValue)meter=alpha*_tilesizeArray[this.getValue()];else
meter=alpha*_tilesizeArray[this.getValue()]+(1-alpha)*_tilesizeArray[this.getValue()-1];_map.setOpticalZoomStep(meter);}
}.iwclosure(this)
);var onMouseUpListener=IWEventManager.addListener(document.body,'onmouseup',function(event){_currentPos=this.getValue();var newLevel=_map.endOpticalZoom(_currentPos);if(_currentPos !=newLevel){_currentPos=newLevel;this.setValue(newLevel,true);}
IWEventManager.removeListener(onMouseMoveListener);IWEventManager.removeListener(onMouseUpListener);}.iwclosure(this)
);}.iwclosure(_self)
);var imgButton=iw.create('img');iw.append(_divSliderButton,imgButton);imgButton.src=iwconst.GLOBAL_APP_URL + 'img/slider_button.png';imgButton.style.width='13px';imgButton.style.height='35px';}
buildGUI();this.setLanguage(_map.getOptions().getLanguage());this.setValue(_map.getZoom(),true);IWEventManager.addListener(_map,'onmousewheel',function(event){if(map.isZooming()||map.getOptions().getMouseWheelAction()!=IWMapOptions.CONTROL_ZOOM){return;}
_currentPos=Math.min(Math.max(_currentPos - event.delta,_map.getCurrentMapType().getMaxLevel()),_map.getCurrentMapType().getMinLevel());this.setValue(_currentPos,true);}.iwclosure(this)
);IWEventManager.addListener(_map,'onzoom',function(event){this.setValue(event.newZoomLevel,true);}.iwclosure(this)
);IWEventManager.addListener(_map,'aftercentered',function(event){this.setValue(_map.getZoom(),true);}.iwclosure(this)
);IWEventManager.addListener(_map,'aftermaptypechanged',function(event){_currentPos=_map.getZoom();_lowValue=_map.getCurrentMapType().getMaxLevel();_highValue=_map.getCurrentMapType().getMinLevel();this.setValue(_currentPos,true);}.iwclosure(this)
);IWEventManager.addListener(_map,'afterlanguagechanged',function(e){_self.setLanguage(e.language);});}
function IWTabbedPanelControl(map,size){IWControl.call(this,map);this.setSize=function(size){_size=size;_container.style.width=_size.getWidth()+ 'px';_container.style.height=_size.getHeight()+ 'px';};this.setTabTextSize=function(size){_tabsDiv.style.fontSize=size;};this.setTabColor=function(color){_tabsDiv.style.color=color;_borderColor=color;_panelsDiv.style.borderLeftColor=_borderColor;_panelsDiv.style.borderRightColor=_borderColor;_panelsDiv.style.borderBottomColor=_borderColor;};this.setTabHeight=function(height){_tabDivHeight=parseInt(height);};this.addPanel=function(panel,title){if((typeof panel.isPanelControl=="undefined")||!panel.isPanelControl()){alert('IWTabbedPanelControl:Only IWPanelControls allowed!');return;}
for(var i=0;i<_panels.length;i++){if(_panels[i][0]==panel){alert('IWTabbedPanelControl:Panel already added:'+panel);return;}
}
var tab=document.createElement('div');tab.style.position='absolute';tab.style.height=_tabDivHeight+'px';tab.style.cursor="pointer";tab.style.whiteSpace='nowrap';tab.appendChild(document.createTextNode(title));_tabsDiv.appendChild(tab);IWEventManager.addDOMListener(tab,'onclick',function(){this.showTab(panel);}.iwclosure(this));panel.setSize(new IWSize(_size.getWidth(),_size.getHeight()-_tabDivHeight-1));_panels.push(new Array(panel,title,tab));redrawTabDiv();if(_panels.length>=1)this.showTab(_panels[0][0]);};this.removePanel=function(panel){for(var i=0;i<_panels.length;i++){if(_panels[i][0]==panel){_tabsDiv.removeChild(_panels[i][2]);if(_currentVisiblePanel==panel)_panelsDiv.removeChild(_panels[i][0].getContainer());var temp=new Array();for(var j=0;j<_panels.length;j++){if(i!=j)temp.push(_panels[j])
}
_panels=temp;redrawTabDiv();if(_currentVisiblePanel==panel)this.showTab(_panels[0][0]);else
drawTabColors();return true;}
}
return false;};this.showTab=function(panel){for(var i=0;i<_panels.length;i++){if(_panels[i][0]==panel){if(_currentVisiblePanel)_panelsDiv.removeChild(_currentVisiblePanel.getContainer());_panelsDiv.appendChild(panel.getContainer());_currentVisiblePanel=panel;drawTabColors();return true;}
}
return false;};function redrawTabDiv(){var tabsize=_size.getWidth()/_panels.length;for(var i=0;i<_panels.length;i++){if(i==_panels.length-1)_panels[i][2].style.width=tabsize-2+'px';else
_panels[i][2].style.width=tabsize-1+'px';_panels[i][2].style.left=tabsize*i + 'px';}
}
function drawTabColors(){var greyscale=new Array('dddddd','cccccc','bbbbbb','aaaaaa','999999','888888','777777','666666','555555');if(_panels.length-1<greyscale.length)step=parseInt(greyscale.length/_panels.length-1);if(step==0)step++;var currentVisibleReached=false;for(var i=0;i<_panels.length;i++){if(_panels[i][0]==_currentVisiblePanel){_panels[i][2].style.backgroundColor=_panels[i][0].getBackgroundColor();_panels[i][2].style.borderLeftWidth='1px';_panels[i][2].style.borderLeftStyle='solid';_panels[i][2].style.borderLeftColor=_borderColor;_panels[i][2].style.borderTopWidth='1px';_panels[i][2].style.borderTopStyle='solid';_panels[i][2].style.borderTopColor=_borderColor;_panels[i][2].style.borderBottomWidth='0px';_panels[i][2].style.borderBottomStyle='solid';_panels[i][2].style.borderBottomColor=_borderColor;currentVisibleReached=true;}
else
{var j=i;if(currentVisibleReached)j--;if(i<greyscale.length){_panels[i][2].style.backgroundColor='#'+greyscale[step*j];}
else
{_panels[i][2].style.backgroundColor='#'+greyscale[greyscale.length-1];}
_panels[i][2].style.borderLeftWidth='1px';_panels[i][2].style.borderLeftStyle='solid';_panels[i][2].style.borderLeftColor=_borderColor;_panels[i][2].style.borderTopWidth='1px';_panels[i][2].style.borderTopStyle='solid';_panels[i][2].style.borderTopColor=_borderColor;_panels[i][2].style.borderBottomWidth='1px';_panels[i][2].style.borderBottomStyle='solid';_panels[i][2].style.borderBottomColor=_borderColor;}
if(i==_panels.length-1){_panels[i][2].style.borderRightWidth='1px';_panels[i][2].style.borderRightStyle='solid';_panels[i][2].style.borderRightColor=_borderColor;}else{_panels[i][2].style.borderRightWidth='0px';_panels[i][2].style.borderRightStyle='solid';_panels[i][2].style.borderRightColor=_borderColor;}
}
}
this.getContainer().id="divTabbedPanelControl";var _this=this;var _container=this.getContainer();var _tabDivHeight=15;var _borderColor="black";var _currentVisiblePanel=null;_panels=new Array();var _size;if(typeof size=='undefined')_size=new IWSize(100,100);else
_size=size;var _tabsDiv=document.createElement('div');_tabsDiv.id="divTabs";_container.appendChild(_tabsDiv);_tabsDiv.style.position="absolute";_tabsDiv.style.top='0px';_tabsDiv.style.left='0px';_tabsDiv.style.width=_size.getWidth()+ 'px';_tabsDiv.style.height=_tabDivHeight+'px';this.setTabTextSize('9pt');var _panelsDiv=document.createElement('div');_panelsDiv.id="divPanels";_container.appendChild(_panelsDiv);_panelsDiv.style.position="absolute";_panelsDiv.style.visibility='inherit';_panelsDiv.style.top=_tabDivHeight+1 + 'px';_panelsDiv.style.left='0px';_panelsDiv.style.width=_size.getWidth()-2 + 'px';_panelsDiv.style.height=_size.getHeight()- _tabDivHeight -2 + 'px';_panelsDiv.style.borderLeftWidth='1px';_panelsDiv.style.borderLeftStyle='solid';_panelsDiv.style.borderLeftColor=_borderColor;_panelsDiv.style.borderRightWidth='1px';_panelsDiv.style.borderRightStyle='solid';_panelsDiv.style.borderRightColor=_borderColor;_panelsDiv.style.borderBottomWidth='1px';_panelsDiv.style.borderBottomStyle='solid';_panelsDiv.style.borderBottomColor=_borderColor;this.setSize(size);}
function IWToolbarControl(map){IWControl.call(this,map);var self=this;var _items=new Object();var _container=this.getContainer();var _left=0;this.addItem=function(item){_items[item.name]=item;var event=new IWToolbarEvent();event.item=item;this.triggerBeforeAppended(event);var node=event.item.getNode();if(node==null){throw 'IWToolbarControl.addItem failed. The item.getNode()returns null.';}
iw.append(_container,node);var nodeWidth=parseInt(node.style.width);var nodeHeight=parseInt(node.style.height);_container.style.width=parseInt(_container.style.width)+ nodeWidth + 'px';node.style.left=_left + 'px';_left +=nodeWidth;if(nodeHeight>parseInt(_container.style.height)){_container.style.height=nodeHeight + 'px';}
var mapItem=null;try{mapItem=iw.create('<map name="map' + item.getName()+ '">');}
catch(e){mapItem=iw.create('map');mapItem.name='map' + item.getName();}
mapItem.id='map' + item.getName();var area=iw.create('area');iw.append(mapItem,area);area.shape='rect';area.coords='0,0,' + nodeWidth + ',' + nodeHeight;try{iw.append(node,mapItem);}
catch(e){return;}
var blank=iw.create('img');iw.append(node,blank);blank.useMap='#map' + item.getName();blank.src=iwconst.GLOBAL_APP_URL + 'img/blank.gif';blank.border='0px';blank.style.position='absolute';blank.style.top='0px';blank.style.height='100%';blank.style.width='100%';blank.style.left='0px';IWEventManager.addDOMListener(area,'onclick',function(e){var event=new IWToolbarEvent();event.item=item;self.triggerOnClickEvent(event);}.iwclosure(item)
);IWEventManager.addDOMListener(area,'onmouseover',function(e){var event=new IWToolbarEvent();event.item=item;self.triggerOnMouseOverEvent(event);}.iwclosure(item)
);IWEventManager.addDOMListener(area,'onmouseout',function(e){var event=new IWToolbarEvent();event.item=item;self.triggerOnMouseOutEvent(event);}.iwclosure(item)
);};this.removeItem=function(item){_items[item.name]=null;};this.getItem=function(name){return _items[name];};this.toString=function(){return '[IWToolbarControl]';};this.triggerOnMouseOverEvent=function(event){IWEventManager.trigger(this,'onmouseover',event);};this.triggerOnMouseOutEvent=function(event){IWEventManager.trigger(this,'onmouseout',event);};this.triggerOnClickEvent=function(event){IWEventManager.trigger(this,'onclick',event);};this.triggerBeforeAppended=function(event){IWEventManager.trigger(this,'beforeappended',event);};function buildGUI(container){container.id='IWToolbarControl';container.style.position='absolute';container.style.height='0px';container.style.width='0px';}
buildGUI(_container);}
function IWToolbarItem(name){var _enable=true;var _name=name;var _node=null;this.getName=function(){return _name;};this.getNode=function(){return _node;};this.setNode=function(node){_node=node;};this.disable=function(){_enable=false;};this.enable=function(){_enable=true;};this.isEnabled=function(){return _enable;};this.toString=function(){return '[IWToolbarItem]' +'name:' + _name;};}
function IWToolbarEvent(){this.item=null;this.toString=function(){return '[IWToolbarEvent]\u0020' +(this.item !=null ? this.item.getName():'');};}
function IWToolboxControl(map,tools){IWControl.call(this,map);var _sTools=tools;var _map=map;var _div=this.getContainer();var _xPosition=0;var _translations=new Object();_translations['de']=new Object();_translations['en']=new Object();_translations['de']['Karte']='Stra\u03B2enkarte';_translations['de']['Luftbild']='Luftbild';_translations['de']['Hybrid']='Hybrid';_translations['de']['Vogelperspektive']='Schr\u00E4gansichten';_translations['de']['Vollbild']='Vollbild';_translations['de']['POI']='POI-Auswahl';_translations['de']['Verkehrsinfo']='Verkehrsinformation';_translations['de']['Route']='Route berechnen';_translations['de']['Adresse_Suchen']='Adresse suchen';_translations['de']['Verschieben']='Karte verschieben';_translations['de']['Ausschnitt']='Ausschnitt w\u00E4hlen';_translations['de']['Messen']='Entfernung messen';_translations['de']['Drucken']='Karte drucken';_translations['en']['Karte']='Road map';_translations['en']['Luftbild']='Aerial view';_translations['en']['Hybrid']='Hybrid view';_translations['en']['Vogelperspektive']='Birds\' eye view';_translations['en']['Vollbild']='Full screen';_translations['en']['POI']='POI selection';_translations['en']['Verkehrsinfo']='Traffic Information';_translations['en']['Route']='Routing';_translations['en']['Adresse_Suchen']='Search address';_translations['en']['Verschieben']='Move map';_translations['en']['Ausschnitt']='Zoom map';_translations['en']['Messen']='Distance measrurement';_translations['en']['Drucken']='Print map';var TOOLS=new Array(13);TOOLS[0]=new Object();TOOLS[0].Name='Karte';TOOLS[0].Group=0;TOOLS[0].Logo='karte.gif';TOOLS[0].Function=function(){if(map.getCurrentMapType().getType()!="map")map.setMapType(new IWMapTypeNormal(map));};TOOLS[1]=new Object();TOOLS[1].Name='Luftbild';TOOLS[1].Group=0;TOOLS[1].Logo='luftbild.gif';TOOLS[1].Function=function(){if(map.getCurrentMapType().getType()!="air")map.setMapType(new IWMapTypeAir(map));};TOOLS[2]=new Object();TOOLS[2].Name='Hybrid';TOOLS[2].Group=0;TOOLS[2].Logo='hybrid.gif';TOOLS[2].Function=function(){if(map.getCurrentMapType().getType()!="hybrid")map.setMapType(new IWMapTypeHybrid(map));};TOOLS[3]=new Object();TOOLS[3].Name='Vogelperspektive';TOOLS[3].Group=0;TOOLS[3].Logo='birdsview.gif';TOOLS[3].Function=function(){if(map.getCurrentMapType().getType()!="birds-eye")map.setMapType(new IWMapTypeBirdsView(map));};TOOLS[4]=new Object();TOOLS[4].Name='Vollbild';TOOLS[4].Group=-1;TOOLS[4].Logo='vollbild.gif';TOOLS[4].Function=function(){alert("Nicht implementiert:Vollbild");};TOOLS[5]=new Object();TOOLS[5].Name='POI';TOOLS[5].Group=-1;TOOLS[5].Logo='poi.gif';TOOLS[5].Function=function(){overlaySelectionControl.setVisible(!overlaySelectionControl.isVisible());};TOOLS[6]=new Object();TOOLS[6].Name='Verkehrsinfo';TOOLS[6].Group=-1;TOOLS[6].Logo='tmc.gif';TOOLS[6].tmpApplicationCopyright=map.getOptions().getApplicationCopyright();TOOLS[6].Info=true;TOOLS[6].Function=function(){if(map.getCurrentMapType().getType()=="map"||map.getCurrentMapType().getType()=="hybrid"){if(TOOLS[6].Info){TOOLS[6].Info=false;}
else
{TOOLS[6].Info=true;}
}
};TOOLS[7]=new Object();TOOLS[7].Name='Route';TOOLS[7].Group=-1;TOOLS[7].Logo='route.gif';TOOLS[7].Function=function(){routingMenu.expand();};TOOLS[8]=new Object();TOOLS[8].Name='Adresse_Suchen';TOOLS[8].Group=-1;TOOLS[8].Logo='adresse_suchen.gif';TOOLS[8].Function=function(){alert("Nicht implementiert:Adresse suchen");};TOOLS[9]=new Object();TOOLS[9].Name='Verschieben';TOOLS[9].Group=1;TOOLS[9].Logo='verschieben.gif';TOOLS[9].Function=function(){measuringTool.stop();map.getOptions().setLeftMouseAction(IWMapOptions.CONTROL_MOVE);};TOOLS[10]=new Object();TOOLS[10].Name='Ausschnitt';TOOLS[10].Group=1;TOOLS[10].Logo='ausschnitt.gif';TOOLS[10].Function=function(){measuringTool.stop();map.getOptions().setLeftMouseAction(IWMapOptions.CONTROL_ZOOM);};TOOLS[11]=new Object();TOOLS[11].Name='Messen';TOOLS[11].Group=1;TOOLS[11].Logo='messen.gif';TOOLS[11].Function=function(){if(measuringTool.isActive())measuringTool.stop();else
measuringTool.start();};TOOLS[12]=new Object();TOOLS[12].Name='Drucken';TOOLS[12].Group=-2;TOOLS[12].Logo='drucken.gif';TOOLS[12].Function=function(){alert("Method not implemented.");};var _sLanguage=map.getOptions().getLanguage();if(!_translations[_sLanguage])_sLanguage='en';IWEventManager.addListener(map,'afterlanguagechanged',setLanguage.iwclosure(this));_div.id='divToolbox';IWEventManager.addDOMListener(_div,"onmousedown",function(event){if(!event)event=window.event;return noPropagation(event);});_div.style.height='58px';_div.style.opacity='0.85';_div.style.filter='alpha(opacity=85)';var aTools=new Array();for(var nTool=0;nTool<TOOLS.length;nTool++){if(_sTools.indexOf(TOOLS[nTool].Name)>-1){var nLeft=-1;var nRight=-1;for(var nIndex=nTool - 1;nIndex>=0;nIndex--){if(_sTools.indexOf(TOOLS[nIndex].Name)>-1){nLeft=nIndex;break;}
}
for(var nIndex=nTool + 1;nIndex<=TOOLS.length - 1;nIndex++){if(_sTools.indexOf(TOOLS[nIndex].Name)>-1){nRight=nIndex;break;}
}
var sSelectedLeft=null;if(nLeft>-1)sSelectedLeft=TOOLS[nLeft + 1].SelectedLeft;var sSelectedRight=null;if(nRight>-1)sSelectedRight=TOOLS[nRight - 1].SelectedRight;var tool=new iwTool(TOOLS[nTool].Name,_translations[_sLanguage][TOOLS[nTool].Name],TOOLS[nTool].Logo,TOOLS[nTool].Group,TOOLS[nTool].Function
);if(TOOLS[nTool].Name=='Messen')toolboxMeasuringTool=tool;aTools.push(tool);}
}
var imgLeftBorder=document.createElement('img');_div.appendChild(imgLeftBorder);imgLeftBorder.id='imgToolbarLeft';imgLeftBorder.src=iwconst.GLOBAL_APP_URL + 'img/toolbox/links.gif';imgLeftBorder.style.position='absolute';imgLeftBorder.style.bottom='0px';imgLeftBorder.style.left=_xPosition+'px';_xPosition +=7;for(var nTool=0;nTool<aTools.length;nTool++){var tool=aTools[nTool];var neighbourLeft=null;var neighbourRight=null;if(nTool>0)neighbourLeft=aTools[nTool - 1];if(nTool<(aTools.length - 1));neighbourRight=aTools[nTool + 1];tool.setNeighbours(neighbourLeft,neighbourRight);_div.appendChild(tool.imgButton);tool.imgButton.src=tool.sImageNormal;if(tool.sName=='Verkehrsinfo'){if(TOOLS[6].Info)tool.imgButton.src=tool.sImageActive;}
tool.imgButton.style.position='absolute';tool.imgButton.style.bottom='0px';tool.imgButton.style.left=_xPosition+'px';_xPosition +=42;if(nTool<aTools.length - 1){if(tool.nGroup !=aTools[nTool + 1].nGroup){var imgSeparator=document.createElement('img');tool.separatorRight=imgSeparator;aTools[nTool+1].separatorLeft=imgSeparator;_div.appendChild(imgSeparator);imgSeparator.src=iwconst.GLOBAL_APP_URL + 'img/toolbox/trennlinie.gif';imgSeparator.style.position='absolute';imgSeparator.style.bottom='0px';imgSeparator.style.left=_xPosition+'px';_xPosition++;}
}
}
var imgRightBorder=document.createElement('img');_div.appendChild(imgRightBorder);imgRightBorder.id='imgToolbarRight';imgRightBorder.src=iwconst.GLOBAL_APP_URL + 'img/toolbox/rechts.gif';imgRightBorder.style.position='absolute';imgRightBorder.style.bottom='0px';imgRightBorder.style.left=_xPosition+'px';_xPosition +=7;_div.style.width=_xPosition+'px';function setLanguage(event){if(_translations[event.language]){_sLanguage=event.language;for(var i=0;i<aTools.length;i++){var sTitle=_translations[_sLanguage][aTools[i].sName];aTools[i].imgButton.alt=aTools[i].imgButton.title=sTitle;}
}
}
function iwTool(sName,sTitle,sLogo,nGroup,sFunction){this.sName=sName;this.sLogo=sLogo;this.nGroup=nGroup;this.sFunction=sFunction;this.available=true;this.bActive=false;this.toolLeft=null;this.toolRight=null;this.separatorRight=null;this.separatorLeft=null;this.sImageNormal=iwconst.GLOBAL_APP_URL + 'img/toolbox/normal/' + sLogo;this.sImageSmall=iwconst.GLOBAL_APP_URL + 'img/toolbox/klein/' + sLogo;this.sImageLarge=iwconst.GLOBAL_APP_URL + 'img/toolbox/gross/' + sLogo;this.sImageActive=iwconst.GLOBAL_APP_URL + 'img/toolbox/aktiv/' + sLogo;if(sName=='Vogelperspektive'){var mapTypes=map.getOptions().getMapTypes();for(var i=0;i<mapTypes.length;i++){if(mapTypes[i].getType()=='birds-eye'){if(!mapTypes[i].isAvailable()){this.available=false;this.sImageNormal=iwconst.GLOBAL_APP_URL + 'img/toolbox/inaktiv/' + sLogo;}
break;}
}
}
this.imgButton=document.createElement('img');this.imgButton.id='Button' + sName;this.imgButton.name='Button' + sName;this.imgButton.border='0';this.imgButton.alt=this.imgButton.title=sTitle;this.imgButton.style.margin='0px';if(sName=='Vogelperspektive'){IWEventManager.addListener(map,'ontypeavailabilitychange',function(event){if(event.type=='birds-eye'){if(event.available){this.available=true;this.imgButton.src=this.sImageNormal=iwconst.GLOBAL_APP_URL + 'img/toolbox/normal/' + sLogo;}
else
{this.available=false;this.imgButton.src=this.sImageNormal=iwconst.GLOBAL_APP_URL + 'img/toolbox/inaktiv/' + sLogo;}
}
}.iwclosure(this));}
IWEventManager.addDOMListener(this.imgButton,"onclick",function(event){if(!this.available)return;if(!event){event=window.event;}
if(this.nGroup>=0){this.bActive=true;var tool=this.toolLeft;while(tool !=null){if(tool.nGroup==this.nGroup){tool.bActive=false;tool.imgButton.src=tool.sImageNormal;}
tool=tool.toolLeft;}
tool=this.toolRight;while(tool !=null){if(tool.nGroup==this.nGroup){tool.bActive=false;tool.imgButton.src=tool.sImageNormal;}
tool=tool.toolRight;}
}
sFunction();return noPropagation(event);}.iwclosure(this));IWEventManager.addDOMListener(this.imgButton,"onmouseover",function(event){if(!this.available)return;if(!event){event=window.event;}
noPropagation(event);this.imgButton.src=this.sImageLarge;this.imgButton.style.width="50px";this.imgButton.style.height="58px";this.imgButton.style.bottom="0px";this.imgButton.style.left=parseInt(this.imgButton.style.left)-4+"px";if(this.separatorRight !=null)this.separatorRight.style.left=parseInt(this.separatorRight.style.left)+4+'px';else if(this.separatorLeft !=null)this.separatorLeft.style.left=parseInt(this.separatorLeft.style.left)-4+'px';if(this.toolLeft !=null){this.toolLeft.imgButton.src=this.toolLeft.sImageSmall;this.toolLeft.imgButton.style.width="38px";this.toolLeft.imgButton.style.height="37px";}
else
{var imgToolbarLeft=document.getElementById('imgToolbarLeft');imgToolbarLeft.src=iwconst.GLOBAL_APP_URL + 'img/toolbox/links_schmal.gif';imgToolbarLeft.style.width="3px";imgToolbarLeft.style.height="37px";}
if(this.toolRight !=null){this.toolRight.imgButton.src=this.toolRight.sImageSmall;this.toolRight.imgButton.style.width="38px";this.toolRight.imgButton.style.height="37px";this.toolRight.imgButton.style.left=parseInt(this.toolRight.imgButton.style.left)+4+"px";}
else
{var imgToolbarRight=document.getElementById('imgToolbarRight');imgToolbarRight.src=iwconst.GLOBAL_APP_URL + 'img/toolbox/rechts_schmal.gif';imgToolbarRight.style.width="3px";imgToolbarRight.style.height="37px";imgToolbarRight.style.left=parseInt(imgToolbarRight.style.left)+4+"px";}
}.iwclosure(this));IWEventManager.addDOMListener(this.imgButton,"onmouseout",function(event){if(!this.available)return;if(!event){event=window.event;}
noPropagation(event);this.imgButton.style.width='42px';this.imgButton.style.height='37px';this.imgButton.style.bottom='0px';if(this.bActive)this.imgButton.src=this.sImageActive;else
this.imgButton.src=this.sImageNormal;this.imgButton.style.left=parseInt(this.imgButton.style.left)+4+"px";if(this.separatorRight !=null)this.separatorRight.style.left=parseInt(this.separatorRight.style.left)-4+'px';else if(this.separatorLeft !=null)this.separatorLeft.style.left=parseInt(this.separatorLeft.style.left)+4+'px';if(this.toolLeft !=null){if(this.toolLeft.bActive){this.toolLeft.imgButton.src=this.toolLeft.sImageActive;this.toolLeft.imgButton.style.width="42px";this.toolLeft.imgButton.style.height="37px";}
else
{this.toolLeft.imgButton.src=this.toolLeft.sImageNormal;this.toolLeft.imgButton.style.width="42px";this.toolLeft.imgButton.style.height="37px";}
}
else
{var imgToolbarLeft=document.getElementById('imgToolbarLeft');imgToolbarLeft.src=iwconst.GLOBAL_APP_URL + 'img/toolbox/links.gif';imgToolbarLeft.style.width="7px";imgToolbarLeft.style.height="37px";}
if(this.toolRight !=null){if(this.toolRight.bActive){this.toolRight.imgButton.src=this.toolRight.sImageActive;this.toolRight.imgButton.style.width="42px";this.toolRight.imgButton.style.height="37px";}
else
{this.toolRight.imgButton.src=this.toolRight.sImageNormal;this.toolRight.imgButton.style.width="42px";this.toolRight.imgButton.style.height="37px";}
this.toolRight.imgButton.style.left=parseInt(this.toolRight.imgButton.style.left)-4+"px";}
else
{var imgToolbarRight=document.getElementById('imgToolbarRight');imgToolbarRight.src=iwconst.GLOBAL_APP_URL + 'img/toolbox/rechts.gif';imgToolbarRight.style.width="7px";imgToolbarRight.style.height="37px";imgToolbarRight.style.left=parseInt(imgToolbarRight.style.left)-4+"px";}
}.iwclosure(this));this.setNeighbours=function(toolLeft,toolRight){this.toolLeft=toolLeft;this.toolRight=toolRight;};}
this.toString=function(){return 'IWToolboxControl(' + _sTools + ')';};}
var iw={id:function(id){return document.getElementById(id);},search:function(node,id){if(node.id==id){return node;}
for(var i=0;i<node.childNodes.length;i++){var elem=this.search(node.childNodes[i],id);if(elem !=null){return elem;}
}
return null;},name:function(name){return document.getElementsByName(name);},tag:function(name,elem){return(elem||document).getElementsByTagName(name);},hasClass:function(name,type){var r=[];var re=new RegExp("(^|\\s)" + name + "(\\s|$)");var e=document.getElementsByTagName(type||"*");for(var i=0;i<e.length;i++){if(re.test(e[i]))r.push(e[i]);}
return r;},create:function(name){return document.createElement(name);},before:function(parent,before,elem){if(elem==null){elem=before;before=parent;parent=before.parentNode;}
try{parent.insertBefore(iw.checkElem(elem),before);}
catch(e){}
},append:function(parent,elem){parent.appendChild(iw.checkElem(elem));},checkElem:function(elem){if(elem !=null&&elem.constructor==String){var span=iw.create('span');span.innerHTML=elem;return span;}
return elem;},remove:function(elem){if(elem&&elem.parentNode){elem.parentNode.removeChild(elem);}
},empty:function(elem){while(elem.firstChild){if(elem.firstChild.firstChild)iw.empty(elem.firstChild.firstChild);iw.remove(elem.firstChild);}
},absolute:function(elem,parent){var e=elem;var x=0;var y=0;do
{var left=(e.style.left ? parseInt(e.style.left):0);var top=(e.style.top ? parseInt(e.style.top):0);if(e.style.position !='absolute'&&(left !=0||top !=0)){throw 'Invalid positioning attribute:' + e.style.position + '. Require absolute positioning.';}
x +=left;y +=top;e=e.parentNode;}
while(e.parentNode !=null&&e !=parent)return new IWPoint(x,y);},backgroundImage:function(parent,imageURL){var img=iw.create('img');with(img.style){position='absolute';top='0px';left='0px';width='100%';height='100%';}
if(imageURL.match('.*\.png$')){img.onload=function(){correctPNG(this);}.iwclosure(img);}
img.src=imageURL;iw.append(parent,img);},strict:function(types,args){if(types.length !=args.length){throw "Invalid number of arguments. Excepted " + types.length +",received " + args.length + " instead.";}
for(var i=0;i<args.length;i++){if(args[i].constructor !=types[i]){throw 'Invalid argument type. Excepted ' + types[i].name +',received ' + args[i].constructor.name + ' instead.';}
}
},extractFilePath:function(filepath){var m=filepath.match(/(.*)\/([^\/\\]+)(\.\w+)$/);if(m==null||m.length<=3){throw 'extractFilePath:invalid filepath '+filepath;}
return{path:m[1],file:m[2],extension:m[3]}
},fireMouseEvent:function(fireOnThis,eventName,mouseEvent){var screenX=0;var screenY=0;var clientX=0;var clientY=0;var button=0;if(typeof mouseEvent !='undefined'){screenX=mouseEvent.screenX;screenY=mouseEvent.screenY;clientX=mouseEvent.clientX;clientY=mouseEvent.clientY;button=mouseEvent.button;}
if(document.createEvent){var eventObj=document.createEvent('MouseEvents');eventObj.initMouseEvent(eventName,true,false,window,0,0,0,clientX,clientY,false,false,false,false,button,null);fireOnThis.dispatchEvent(eventObj);}
else if(document.createEventObject){var eventObj=document.createEventObject();eventObj.detail=0;eventObj.screenX=screenX;eventObj.screenY=screenY;eventObj.clientX=clientX;eventObj.clientY=clientY;eventObj.ctrlKey=false;eventObj.altKey=false;eventObj.shiftKey=false;eventObj.metaKey=false;eventObj.button=button;eventObj.relatedTarget=null;fireOnThis.fireEvent('on' + eventName,eventObj);}
},destroy:function(elem){var a=elem.attributes,i,l,n;if(a){l=a.length;for(i=0;i<l;i +=1){n=a[i].name;if(typeof elem[n]==='function'){elem[n]=null;}
}
}
a=elem.childNodes;if(a){l=a.length;for(i=l;i>0;i--){iw.destroy(a[i-1]);}
}
iw.remove(elem);if(typeof elem.outerHTML !='undefined'){try{elem.outerHTML=null;}
catch(e){}
}
},getPageOffset:function(){var offset=null;if(window.pageYOffset){offset=new IWPoint(window.pageXOffset,window.pageYOffset);}
else if(document.documentElement&&document.documentElement.scrollTop){offset=new IWPoint(document.documentElement.scrollLeft,document.documentElement.scrollTop);}
else if(document.body){offset=new IWPoint(document.body.scrollLeft,document.body.scrollTop);}
else
{offset=new IWPoint(0,0);}
return offset;},random:function(min,max){return Math.floor(Math.random()*(max - min + 1))+ min;}
};function IWDraggable(container,parent){var self=this;var _logger=log4javascript.getLogger("mapapi");var _parent=(typeof parent !='undefined' ? parent:null);var _draggable=false;var _container=(typeof container !='undefined' ? container:null);var _dragContainer=null;var _allowDraggingOutsideParent=false;var _dragButton=IWButton.LEFT;var _onMouseMoveListener=null;var _onMouseUpListener=null;var _onMouseDownListener=null;var _mouseAdapter=new IWMouseAdapter();var _startDraggingPosition=null;var _mouseOffsetPosition=null;var _lastPosition=null;var _draggingBounds=null;var _onMouseMoveContainer=window.document;this.allowDraggingOutsideParent=function(allowDraggingOutsideParent){if(allowDraggingOutsideParent==true||allowDraggingOutsideParent==false){_allowDraggingOutsideParent=allowDraggingOutsideParent;}
else
{throw 'Type exception allowDraggingOutsideParent:' + allowDraggingOutsideParent + '. A boolean value is needed.';}
};this.isDraggingOutsideParentAllowed=function(){return _allowDraggingOutsideParent;};this.setOnMouseMoveContainer=function(container){_onMouseMoveContainer=container;};this.getOnMouseMoveContainer=function(){return _onMouseMoveContainer;};this.setDraggingBounds=function(bounds){_draggingBounds=bounds;};this.getDraggingBounds=function(){return _draggingBounds;};this.setDraggable=function(draggable){if(draggable==true||draggable==false){_draggable=draggable;}
else
{throw 'Type exception draggable:' + draggable + '. A boolean value is needed.';}
if(_draggable){_dragContainer.style.cursor='pointer';IWEventManager.addDOMListener(_dragContainer,'ondrag',function(event){noPropagation(event);return false;});_onMouseDownListener=IWEventManager.addDOMListener(_dragContainer,'onmousedown',function(event){if(!event){event=window.event;}
if(event.cancelable)event.preventDefault();var mouseEvent=_mouseAdapter.toMouseEvent(event,_parent);if(_draggable&&(_dragButton & mouseEvent.button)){var x=parseInt(_container.style.left);var y=parseInt(_container.style.top)
var offset=iw.absolute(_container,_parent);var mouseOffsetX=mouseEvent.position.getX()- offset.getX();var mouseOffsetY=mouseEvent.position.getY()- offset.getY();_mouseOffsetPosition=new IWPoint(mouseOffsetX,mouseOffsetY);var divPosX=mouseEvent.position.getX()- _mouseOffsetPosition.getX()-(offset.getX()- x);var divPosY=mouseEvent.position.getY()- _mouseOffsetPosition.getY()-(offset.getY()- y);_startDraggingPosition=new IWPoint(divPosX,divPosY);_lastPosition=_startDraggingPosition;_dragContainer.style.cursor='move';prepareDragging();}
}
);}
else
{if(_onMouseDownListener !=null){_dragContainer.style.cursor='auto';IWEventManager.removeListener(_onMouseDownListener);}
}
}
this.isDraggable=function(){return _draggable;};this.setDraggableContainer=function(container){if(container.style){_dragContainer=container;}
else
{throw 'Type exception container:' + container + '.';}
};this.getDraggableContainer=function(){return _dragContainer;};this.setDragButton=function(button){var intValue=parseInt(button)
if(intValue &(IWButton.LEFT + IWButton.MIDDLE + IWButton.RIGHT)){_dragButton=button;}
else
{throw 'Invalid drag button ' + button + '. ' +'Use one of the following constants:IWButton.LEFT,IWButton.MIDDLE or IWButton.RIGHT.';}
};this.getDragButton=function(){return _dragButton;};this.triggerBeforeDragged=function(event){IWEventManager.trigger(this,'beforedragged',event);};this.triggerDrag=function(event){IWEventManager.trigger(this,'ondrag',event);};this.triggerAfterDragged=function(event){IWEventManager.trigger(this,'afterdragged',event);};function prepareDragging(){var dragEvent=new IWMouseEvent();dragEvent.position=_lastPosition;dragEvent.lastPosition=_lastPosition;dragEvent.offset=new IWPoint(0,0);self.triggerBeforeDragged(dragEvent);_logger.debug('prepareDragging - trigger beforedragged:' + dragEvent);if(_onMouseMoveListener !=null){IWEventManager.removeListener(_onMouseMoveListener);}
if(_onMouseUpListener !=null){IWEventManager.removeListener(_onMouseUpListener);}
_onMouseMoveListener=IWEventManager.addDOMListener(_onMouseMoveContainer,'onmousemove',function(event){_logger.debug('dragging onmousemove:');var mouseEvent=_mouseAdapter.toMouseEvent(event,_parent);_logger.debug('dragging onmousemove:' + mouseEvent + ' draggingBounds:' + _draggingBounds);if(_draggingBounds==null||_draggingBounds.containsPoint(mouseEvent.position)){dragContainer(mouseEvent);}
else
{dropContainer();}
}
);_onMouseUpListener=IWEventManager.addDOMListener(_onMouseMoveContainer,'onmouseup',function(event){dropContainer();}
);_logger.debug('prepareDragging - end');}
function dragContainer(mouseEvent){var mousePos=mouseEvent.position;var newDivPos=new IWPoint(mousePos.getX()- _mouseOffsetPosition.getX(),mousePos.getY()- _mouseOffsetPosition.getY());if(!_allowDraggingOutsideParent){var width=parseInt(_parent.style.width);var height=parseInt(_parent.style.height);if(newDivPos.getX()+ _container.offsetWidth>=width){newDivPos.setX(width - container.offsetWidth);}
else if(newDivPos.getX()<=0){newDivPos.setX(0);}
if(newDivPos.getY()+ container.offsetHeight>=height){newDivPos.setY(height - container.offsetHeight);}
else if(newDivPos.getY()<=0){newDivPos.setY(0);}
}
var x=parseInt(_container.style.left);var y=parseInt(_container.style.top);var offset=iw.absolute(_container,_parent);_container.style.left=newDivPos.getX()-(offset.getX()- x)+ 'px';_container.style.top=newDivPos.getY()-(offset.getY()- y)+ 'px';var dragX=newDivPos.getX()- _lastPosition.getX();var dragY=newDivPos.getY()- _lastPosition.getY();var dragEvent=new IWMoveEvent();dragEvent.position=newDivPos;dragEvent.lastPosition=_lastPosition;dragEvent.offset=new IWPoint(dragX,dragY);_lastPosition=newDivPos;self.triggerDrag(dragEvent);};function dropContainer(){_logger.debug('dragging dropContainer');IWEventManager.removeListener(_onMouseMoveListener);IWEventManager.removeListener(_onMouseUpListener);_onMouseMoveListener=null;_onMouseUpListener=null;_dragContainer.style.cursor='pointer';var dragX=_lastPosition.getX()- _startDraggingPosition.getX();var dragY=_lastPosition.getY()- _startDraggingPosition.getY();var dragEvent=new IWMoveEvent();dragEvent.position=_lastPosition;dragEvent.lastPosition=_startDraggingPosition;dragEvent.offset=new IWPoint(dragX,dragY);self.triggerAfterDragged(dragEvent);}
this.setDraggableContainer(_container);}
function IWNodeElement(name){var _parent=null;var _children=new Array();var _name=name;var _marked=false;var _collapsed=false;this.isNodeElement=true;this.setParent=function(parent){if(parent !=null&&!parent.isNodeElement){throw 'NodeElement.setParent:"'+ parent + '" does not implement tree functionality!';}
_parent=parent;};this.hasChildren=function(){return(_children !=null&&_children.length !=0);};this.hasChild=function(child){for(var i=0;i<_children.length;i++){if(child==_children[i]){return true;}
}
return false;};this.getChildren=function(){return _children;};this.getParent=function(){return _parent;};this.add=function(node){if(!node.isNodeElement){throw 'NodeElement.add:"'+ node + '" does not implement tree functionality!';}
if(this.hasChild(node)||this.checkIfExistsAsParent(node)||node.getParent()!=null)
{throw 'NodeElement.add:Node "'+node.getName()+'" could not be added';}
node.setParent(this);this.getChildren().push(node);};this.remove=function(node){if(!this.hasChild(node)){throw 'NodeElement.remove:Node not found';}
node.setParent(null);for(var i=0;i<this.getChildren().length;i++){if(node==this.getChildren()[i]){this.getChildren().splice(i,1);break;}
}
};this.getName=function(){return _name;};this.setName=function(name){_name=name;};this.checkIfExistsAsParent=function(node){if(node==this){return true;}
if(this.getParent()==null){return false;}
return this.getParent().checkIfExistsAsParent(node);};this.mark=function(){var oldValue=_marked;_marked=true;if(oldValue !=_marked){this.triggerStateChangedEvent();}
};this.unmark=function(){var oldValue=_marked;_marked=false;if(oldValue !=_marked){this.triggerStateChangedEvent();}
};this.isMarked=function(){return _marked;};this.collapse=function(){var oldValue=_collapsed;_collapsed=true;if(oldValue !=_collapsed){this.triggerViewChangedEvent();}
};this.expand=function(){var oldValue=_collapsed;_collapsed=false;if(oldValue !=_collapsed){this.triggerViewChangedEvent();}
};this.isCollapsed=function(){return _collapsed;};this.triggerStateChangedEvent=function(){IWEventManager.trigger(this,'statechanged',null);};this.triggerViewChangedEvent=function(){IWEventManager.trigger(this,'viewchanged',null);};}/***This event is triggered when a<code>IWTreeNode</code>is appended to the treeview.
**@class This event is triggered when a<code>IWTreeNode</code>is appended to the treeview.
**@constructor
**@since 0.70
**@author JAN
*/function IWFormatNodeEvent(){this.obj=null;this.node=null;this.toString=function(){return '[IWFormatNodeEvent]';};}
function IWTreeNode(node){var _node=node;var _state=null;var _lastChild=null;var _checked=null;var _container=null;var _treeImage=null;var _parent=null;var _children=new Array();var _checkbox=null;this.hasParent=function(){return _parent !=null;};this.setParent=function(parent){_parent=parent;};this.hasChildren=function(){return(_children.length>0);};this.addChild=function(treeNode){_children.push(treeNode);};this.getChildren=function(){return _children;};this.getNode=function(){return _node;};this.getCheckbox=function(){return _checkbox;};this.setCheckbox=function(checkbox){_checkbox=checkbox;};this.setState=function(state){var value=state.toLowerCase();if(value=='expanded'||value=='collapsed'){_state=value;}
else
{throw 'Invalid state:' + state;}
};this.getState=function(){return _state;};this.setContainer=function(container){_container=container;};this.getContainer=function(){return _container;};this.setLastChild=function(lastChild){_lastChild=lastChild;};this.isLastChild=function(){return _lastChild;};this.isExpanded=function(){return(_state=='expanded');};this.isCollapsed=function(){return(_state=='collapsed');};this.isChecked=function(){return _checked;};this.setTreeImage=function(treeImage){_treeImage=treeImage;};this.getTreeImage=function(){return _treeImage;};this.toString=function(){return '[IWTreeNode]' +'node:' + _node.toString()+ ',' +'state:' + _state + ',' +'hasParent:' + this.hasParent()+ ',' +'hasChildren:' + this.hasChildren()+ ',' +'isLastChild:' + _lastChild + ',' +'isExpanded:' + this.isExpanded()+ ',' +'isCollapsed:' + this.isCollapsed()+ ',' +'isChecked:' + this.isChecked();};}
function IWTreeNodeClickedEvent(){this.treeNode=null;this.toString=function(){return '[IWTreeNodeClickedEvent]' +'treeNode:' + this.treeNode.toString();};}
function IWTreeView(parent){var self=this;var _blankImageURL="http://map.rast.de/MapAPI-0.71/img/treeview/blank.gif";var _backgroundLineImageURL="http://map.rast.de/MapAPI-0.71/img/treeview/background_line.gif";var _childImageURL="http://map.rast.de/MapAPI-0.71/img/treeview/child.gif";var _lastChildImageURL="http://map.rast.de/MapAPI-0.71/img/treeview/last_child.gif";var _parentCollapsedImageURL="http://map.rast.de/MapAPI-0.71/img/treeview/parent_collapsed.gif";var _lastParentCollapsedImageURL="http://map.rast.de/MapAPI-0.71/img/treeview/last_parent_collapsed.gif";var _parentExpandedImageURL="http://map.rast.de/MapAPI-0.71/img/treeview/parent_expanded.gif";var _lastParentExpandedImageURL="http://map.rast.de/MapAPI-0.71/img/treeview/last_parent_expanded.gif";var _nodes=new Array();var _container=iw.create('div');var _parent=parent;this.addNodes=function(nodes){for(var i=0;i<nodes.length;i++){this.addNode(nodes[i]);}
};this.addNode=function(node){_nodes.push(node);};this.getContainer=function(){return _container;};this.getParent=function(){return _parent;};this.build=function(){iw.empty(_parent);_container.style.visibility='hidden';for(var i=0;i<_nodes.length;i++){var node=_nodes[i];if(i==(_nodes.length-1)){createChildDiv(null,node,2,'1',false);}
else
{createChildDiv(null,node,2,'0',false);}
}
_container.style.visibility='visible';iw.append(_parent,_container);};function buildGUI(container){container.id='treeview';container.style.position='relative';container.style.top='0px';container.style.left='0px';container.style.width=_parent.style.width;container.style.height=_parent.style.height;container.style.overflow='auto';}
function createChildDiv(parentNode,node,depth,islastchild,isHidden){var nodeContainer=iw.create('div');nodeContainer.style.display='block';var treeNode=new IWTreeNode(node);if(node.isCollapsed()){treeNode.setState('collapsed');}
else
{treeNode.setState('expanded');}
treeNode.setContainer(nodeContainer);treeNode.setLastChild(islastchild.charAt(islastchild.length-1)=='1');IWEventManager.addListener(node,'statechanged',function(){this.getCheckbox().checked=this.getNode().isMarked();}.iwclosure(treeNode)
);IWEventManager.addListener(node,'viewchanged',function(){if(this.getNode().isCollapsed()){collapse(this);}
else
{expand(this);}
}.iwclosure(treeNode)
);if(parentNode !=null){parentNode.addChild(treeNode);treeNode.setParent(parentNode);}
var table=iw.create('table');table.border='0px';table.cellPadding='0px';table.cellSpacing='0px';var tr=table.insertRow(0);for(i=0;i<depth;i++){var td=iw.create('td');td.style.verticalAlign='top';td.style.margin='0px';if(i==(depth-1)){var checkbox=null;if(IWBrowser.isInternetExplorer()){if(node.isMarked()){checkbox=iw.create('<input type=\'checkbox\' checked>');}
else
{checkbox=iw.create('<input type=\'checkbox\'>');}
}
else
{checkbox=iw.create('input');checkbox.type='checkbox';checkbox.checked=node.isMarked();}
checkbox.style.border='0px';treeNode.setCheckbox(checkbox);td.className='treeviewNode';iw.append(td,checkbox);var event=new IWFormatNodeEvent();event.obj=null;event.node=node;self.triggerFormatNodeEvent(event);if(event.obj !=null){iw.append(td,event.obj);}
else
{iw.append(td,node.getName());}
IWEventManager.addDOMListener(checkbox,'onclick',function(){this.getNode().setVisible(this.getCheckbox().checked);var event=new IWTreeNodeClickedEvent();event.treeNode=this;self.triggerAfterNodeClickedEvent(event);}.iwclosure(treeNode)
);}
else
{td.style.width='16px';td.style.height='22px';var image=iw.create('img');treeNode.setTreeImage(image);if(i==(depth-2)){if(node.hasChildren()){if(treeNode.isExpanded()){if(islastchild.charAt(i)=='1'){image.src=_lastParentExpandedImageURL;}
else
{image.src=_parentExpandedImageURL;}
}
else
{if(islastchild.charAt(i)=='1'){image.src=_lastParentCollapsedImageURL;}
else
{image.src=_parentCollapsedImageURL;}
}
image.style.verticalAlign='top';image.style.cursor='pointer';IWEventManager.addDOMListener(image,'onclick',function(e){if(this.isCollapsed()){expand(this);}
else if(this.isExpanded()){collapse(this);}
}.iwclosure(treeNode)
);}
else
{if(islastchild.charAt(i)=='1'){image.src=_lastChildImageURL;}
else
{image.src=_childImageURL;}
}
}
else
{image.src=_blankImageURL;if(islastchild.charAt(i)=='0'){td.style.backgroundImage='url(' + _backgroundLineImageURL + ')';td.style.backgroundRepeat='repeat-y';}
}
image.style.display='block';iw.append(td,image);}
iw.append(tr,td);}
iw.append(nodeContainer,table);iw.append(_container,nodeContainer);if(isHidden){treeNode.getContainer().style.display='none';treeNode.getContainer().style.visibility='hidden';}
if(node.hasChildren()){depth++;var children=node.getChildren();for(var i=0;i<children.length;i++){var child=children[i];var s=islastchild;if(i==(children.length-1)){s +='1';}
else
{s +='0';}
createChildDiv(treeNode,child,depth,s,(isHidden||treeNode.isCollapsed()));}
}
}
this.triggerAfterNodeClickedEvent=function(event){IWEventManager.trigger(this,'afternodeclicked',event);};this.triggerFormatNodeEvent=function(event){IWEventManager.trigger(this,'formatnode',event);};function collapse(treeNode){collapseChildren(treeNode);treeNode.setState('collapsed');treeNode.getTreeImage().alt='collapse';if(treeNode.isLastChild()==true){treeNode.getTreeImage().src=_lastParentCollapsedImageURL;}
else
{treeNode.getTreeImage().src=_parentCollapsedImageURL;}
}
function collapseChildren(treeNode){var children=treeNode.getChildren();for(var i=0;i<children.length;i++){var treeNode=children[i];treeNode.getContainer().style.display='none';treeNode.getContainer().style.visibility='hidden';if(treeNode.hasChildren()){collapseChildren(treeNode);}
}
}
function expand(treeNode){expandChildren(treeNode);treeNode.setState('expanded');if(treeNode.isLastChild()==true){treeNode.getTreeImage().src=_lastParentExpandedImageURL;}
else
{treeNode.getTreeImage().src=_parentExpandedImageURL;}
}
function expandChildren(treeNode){var children=treeNode.getChildren();for(var i=0;i<children.length;i++){var treeNode=children[i];treeNode.getContainer().style.display='block';treeNode.getContainer().style.visibility='visible';if(treeNode.hasChildren()&&treeNode.isExpanded()){expandChildren(treeNode);}
}
}
buildGUI(_container);}
function IWAbstractPosition(){this.getX=function(){alert('IWAbstractPosition.getX():Method not implemented');return 'undefined';};this.getY=function(){alert('IWAbstractPosition.getY():Method not implemented');return 'undefined';};this.equals=function(otherPoint){alert('IWAbstractPosition.equals():Method not implemented');return 'undefined';};this.toString=function(){return 'IWAbstractPosition';};}
function IWBounds(coordNW,coordSE){var _coordNW=coordNW;var _coordSE=coordSE;this.getNorthWest=function(){return _coordNW;};this.getSouthEast=function(){return _coordSE;};this.getCenter=function(){var iCenterX=_coordNW.getX()+(_coordSE.getX()- _coordNW.getX())/2;var iCenterY=_coordSE.getY()+(_coordNW.getY()- _coordSE.getY())/2;return new _coordNW.constructor(iCenterX,iCenterY);};this.getSize=function(){var width=_coordSE.getX()- _coordNW.getX();var height=_coordNW.getY()- _coordSE.getY();return new IWSize(width,height);};this.isEmpty=function(){return _coordNW.equals(_coordSE);};this.containsCoordinate=function(coord){var iMinX=Math.min(_coordNW.getX(),_coordSE.getX());var iMaxX=Math.max(_coordNW.getX(),_coordSE.getX());var iMinY=Math.min(_coordNW.getY(),_coordSE.getY());var iMaxY=Math.max(_coordNW.getY(),_coordSE.getY());if(iMinX<=coord.getX()&&iMaxX>=coord.getX())if(iMinY<=coord.getY()&&iMaxY>=coord.getY())return true;return false;};this.extendBy=function(coord){if(coord.getX()<_coordNW.getX())_coordNW=new _coordNW.constructor(coord.getX(),_coordNW.getY());else if(coord.getX()>_coordSE.getX())_coordSE=new _coordSE.constructor(coord.getX(),_coordSE.getY());if(coord.getY()>_coordNW.getY())_coordNW=new _coordNW.constructor(_coordNW.getX(),coord.getY());else if(coord.getY()<_coordSE.getY())_coordSE=new _coordSE.constructor(_coordSE.getX(),coord.getY());};this.equals=function(boundsOther){if(this.getNorthWest().equals(boundsOther.getNorthWest()))if(this.getSouthEast().equals(boundsOther.getSouthEast()))return true;return false;};this.contains=function(boundsOther){if(this.containsCoordinate(boundsOther.getNorthWest()))if(this.containsCoordinate(boundsOther.getSouthEast()))return true;return false;};this.intersects=function(boundsOther){if(this.containsCoordinate(boundsOther.getNorthWest())||boundsOther.containsCoordinate(this.getNorthWest()))return true;if(this.containsCoordinate(boundsOther.getSouthEast())||boundsOther.containsCoordinate(this.getSouthEast()))return true;var thisNorthEast=new _coordNW.constructor(_coordSE.getX(),_coordNW.getY());var otherNorthEast=new _coordNW.constructor(boundsOther.getSouthEast().getX(),boundsOther.getNorthWest().getY());if(this.containsCoordinate(otherNorthEast)||boundsOther.containsCoordinate(thisNorthEast))return true;var thisSouthWest=new _coordNW.constructor(_coordNW.getX(),_coordSE.getY());var otherSouthWest=new _coordNW.constructor(boundsOther.getNorthWest().getX(),boundsOther.getSouthEast().getY());if(this.containsCoordinate(otherSouthWest)||boundsOther.containsCoordinate(thisSouthWest))return true;return false;};this.toString=function(){return _coordNW.toString()+ ' - ' + _coordSE.toString();};}
function IWCoordinate(x,y){IWAbstractPosition.call(this);var _EPSILON=5;var _x=parseFloat(x);var _y=parseFloat(y);if(typeof y=='undefined'){_x=0;_y=0;}
this.getX=function(){return _x;};this.getY=function(){return _y;};this.equals=function(otherCoord){return this.distanceFrom(otherCoord)<_EPSILON;};this.distanceFrom=function(otherCoord){var nDiffX=_x - otherCoord.getX();var nDiffY=_y - otherCoord.getY();return Math.sqrt(nDiffX*nDiffX + nDiffY*nDiffY);};this.toString=function(){return '(' + _x + '/' + _y + ')';};}
function IWIcon(iconURL,hotspot){var _iconURL='ROOT_URL/img/house_blue_30.png';var _hotspot=new IWPoint(0,0);this.setURL=function(iconURL){_iconURL=iconURL;};this.getURL=function(){return _iconURL;};this.setHotspot=function(hotspot){_hotspot=hotspot;};this.getHotspot=function(){return _hotspot;};this.toString=function(){return '[IWIcon]url:' + _iconURL + ',hotspot:' + _hotspot.toString();};if(typeof iconURL !='undefined'){this.setURL(iconURL);}
if(typeof hotspot !='undefined'){this.setHotspot(hotspot);}
}
function IWLCCEurope(x,y){var _x=parseFloat(x);var _y=parseFloat(y);if(typeof y=='undefined'){_x=0;_y=0;}
this.getX=function(){return _x;};this.getY=function(){return _y;};this.toCoordinate=function(){return new IWCoordinate(_x,_y);};this.getProjectionType=function(){return IWProjectionType.LCC_EUROPE;};this.toString=function(){return 'IWLCCEurope(' + _x + '/' + _y + ')';};}
function IWLine(point1,point2){var _dSlope;var _dIntercept;this.getSlope=function(){return _dSlope;};this.getIntercept=function(){return _dIntercept;};this.getIntersection=function(other){var x;var y;if(_dSlope==other.getSlope())x=-1000000;else
x=(other.getIntercept()- _dIntercept)/(_dSlope - other.getSlope());y=_dSlope*x + _dIntercept;return new IWCoordinate(x,y);};this.toString=function(){return "y=" + _dSlope + "*x + " + _dIntercept;};if(point1.getX()==point2.getX())_dSlope=1000;else
_dSlope=(point2.getY()- point1.getY())/(point2.getX()- point1.getX());_dIntercept=point1.getY()- _dSlope*point1.getX();}
function IWPoint(x,y){IWAbstractPosition.call(this);var _x=0;var _y=0;this.setX=function(x){var intVal=Math.floor(x);if(intVal==NaN){throw "IWPoint:X parameter must be an integer value.";}
_x=intVal;};this.getX=function(){return _x;};this.setY=function(y){var intVal=Math.floor(y);if(intVal==NaN){throw "IWPoint:Y parameter must be an integer value.";}
_y=intVal;};this.getY=function(){return _y;};this.substract=function(other){return new IWPoint(_x - other.getX(),_y - other.getY());};this.add=function(other){return new IWPoint(_x + other.getX(),_y + other.getY());};this.distanceFrom=function(other){var iDiffX=_x - other.getX();var iDiffY=_y - other.getY();return Math.sqrt(iDiffX*iDiffX + iDiffY*iDiffY);};this.equals=function(otherPoint){return(otherPoint.getX()==_x&&otherPoint.getY()==_y);};this.toString=function(){return '(' + _x + '/' + _y + ')';};if(typeof x !='undefined'&&typeof y !='undefined'){this.setX(x);this.setY(y);}
}
function IWRange(min,max){var _min=Number.MIN_VALUE;var _max=Number.MAX_VALUE;this.setMin=function(min){if(isNaN(min)){throw 'Minimum value is not a number:' + min;}
if(min>_max){throw 'Minimum value is greater than the maximum value:' + min + '>' + _max;}
_min=min;};this.setMax=function(max){if(isNaN(max)){throw 'Maximum value is not a number:' + max;}
if(max<_min){throw 'Maximum value is less than the minimum value:' + max + '<' + _min;}
_max=max;};this.getMin=function(){return _min;};this.getMax=function(){return _max;};this.contains=function(value){iw.strict([Number],arguments)
return(_min<=value&&value<=_max);}
this.toString=function(){return '[IWRange]' + _min + ' .. ' + _max;};this.setMin(min);this.setMax(max);}
function IWSize(width,height){var _width=0;var _height=0;this.setWidth=function(width){var intVal=parseInt(width);if(intVal==NaN||intVal<0){throw "IWSize:Width parameter must be a positive integer value.";}
_width=intVal;};this.getWidth=function(){return _width;};this.setHeight=function(height){var intVal=parseInt(height);if(intVal==NaN||intVal<0){throw "IWSize:Height parameter must be a positive integer value.";}
_height=intVal;};this.getHeight=function(){return _height;};this.equals=function(sizeOther){return(this.getWidth()==sizeOther.getWidth()&&this.getHeight()==sizeOther.getHeight());};this.compareTo=function(otherSize){var area1=_width*_height;var area2=otherSize.getWidth()*otherSize.getHeight();if(area1>area2){return 1;}
else if(area1<area2){return -1;}
else
{return 0;}
}
this.containsPoint=function(point){return(point.getX()>=0&&point.getX()<=this.getWidth()
&&point.getY()>=0&&point.getY()<=this.getHeight());};this.multiplicate=function(scalar){return new IWSize(_width*scalar,_height*scalar);};this.divide=function(scalar){return new IWSize(_width/scalar,_height/scalar);};this.toString=function(){return _width + ' x ' + _height;};this.setWidth(width);this.setHeight(height);}
function IWWGS84(longitude,latitude){var _longitude=parseFloat(longitude);var _latitude=parseFloat(latitude);this.getLongitude=function(){return _longitude;};this.getLatitude=function(){return _latitude;};this.getProjectionType=function(){return IWProjectionType.WGS84;};this.toString=function(){return 'WGS84(' + _longitude + '/' + _latitude + ')';};}
function IWCopyrightChangedEvent(){this.copyright='';}
function IWEventListener(){this.id=IWEventListener.prototype.instanceId++;this.type='';this.objectHandler=null;this.arr=null;this.removeFunction=null;this.obj=null;this.toString=function(){return '[IWEventListener]' +'id:' + this.id + ',' +'type:' + this.type + ',' +'objectHandler:' + this.objectHandler + ',' +'arr:' + this.arr + ',' +'removeFunction:' + this.removeFunction + ',' +'obj:' + this.obj;};}
IWEventListener.prototype.instanceId=0;var IWEventManager=new function(){var _logger=log4javascript.getLogger("iwAPI.js.event.IWEventManager");this.addListener=function(obj,eventName,eventHandler){var eventListener=this.bind(obj,eventName,null,eventHandler);var elem=(obj.toString ? obj.toString():(obj.id ? obj.id:'unnamed object'));_logger.debug('Adding listener ' + eventListener.id + ' of type ' + eventListener.type + ' for ' + eventName + ' on ' + elem);return eventListener;};this.addDOMListener=function(obj,eventName,eventHandler){var eventListener=null;if(obj.addEventListener||obj.attachEvent){eventListener=new IWEventListener();if(!obj.domListenerDelegate)obj.domListenerDelegate=new Object();if(!obj.domListenerDelegate[eventName])obj.domListenerDelegate[eventName]=new Array();if(obj.addEventListener){var name=eventName.indexOf('on')==0 ? eventName.substring(2):eventName;obj.addEventListener(name,eventHandler,false);eventListener.type='W3C';eventListener.removeFunction=function(){obj.removeEventListener(name,eventHandler,false);var arr=obj.domListenerDelegate[eventName];for(var i=arr.length;i>0;i--){if(arr[(i-1)].method==eventHandler){arr.splice(i-1,1);}
}
};}
else if(obj.attachEvent){obj.attachEvent(eventName,eventHandler);eventListener.type='MS';eventListener.removeFunction=function(){obj.detachEvent(eventName,eventHandler);var arr=obj.domListenerDelegate[eventName];for(var i=arr.length;i>0;i--){if(arr[(i-1)].method==eventHandler){arr.splice(i-1,i)
}
}
};}
var objectHandler=new Object();objectHandler.listenerObject=eventListener;objectHandler.method=eventHandler;obj.domListenerDelegate[eventName].push(objectHandler);}
else
{eventListener=this.bind(obj,eventName,null,eventHandler);}
_logger.debug('Adding DOM listener ' + eventListener.id + ' of type ' + eventListener.type + ' for ' + eventName + ' on ' +(obj.id ? obj.id:'unnamed object'));return eventListener;};this.trigger=function(obj,eventName,theEvent){try{var f=eval('obj.' + eventName);f(theEvent);}
catch(e){}
};this.removeListener=function(eventListener){if(eventListener.removeFunction){eventListener.removeFunction();_logger.debug('Removing event listener ' + eventListener.id + ' of type ' + eventListener.type);}
else
{_logger.error('Could not remove event listener');}
};this.clearListeners=function(obj,eventName){if(obj.iwListenerDelegate&&obj.iwListenerDelegate[eventName]){obj.iwListenerDelegate[eventName]=null;_logger.debug('Removed all ' + eventName + ' listeners from ' + obj);}
if(obj.domListenerDelegate&&obj.domListenerDelegate[eventName]){var arr=obj.domListenerDelegate[eventName];for(var i=arr.length;i>0;i--){arr[(i-1)].listenerObject.removeFunction();}
_logger.debug('Removed all ' + eventName + ' listeners from ' + obj);}
else
{_logger.debug('Removing ' + eventName + ' listeners from ' + obj + ':Nothing registered');}
};this.clearInstanceListeners=function(obj){if(typeof obj.iwListenerDelegate !='undefined'){obj.iwListenerDelegate=null;}
if(typeof obj.domListenerDelegate !='undefined'){for(eventName in obj.domListenerDelegate){var arr=obj.domListenerDelegate[eventName];for(var i=arr.length;i>0;i--){arr[(i-1)].listenerObject.removeFunction();}
}
}
};this.bind=function(obj,eventName,listenerObj,eventHandler){_logger.trace('Binding ' + eventName + ' to object ' + obj + ' with listener ' + eventHandler);if(!obj.iwListenerDelegate)obj.iwListenerDelegate=new Object();if(!obj.iwListenerDelegate[eventName])obj.iwListenerDelegate[eventName]=new Array();var objectHandler=new Object();objectHandler.listenerObject=listenerObj;objectHandler.method=eventHandler;obj.iwListenerDelegate[eventName].push(objectHandler);obj[eventName]=function(e){if(this.iwListenerDelegate !=null&&this.iwListenerDelegate[eventName]!=null){var objectHandlerArr=this.iwListenerDelegate[eventName];for(var i=objectHandlerArr.length;i>0;i--){var theObjectHandler=objectHandlerArr[(i-1)];var theObject=theObjectHandler.listenerObject;var theMethod=theObjectHandler.method;try{if(theObject !=null){theMethod.call(theObject,e);}
else
{theMethod(e);}
}
catch(ex){_logger.warn('Listener method for ' + eventName + ' threw an exception:' + theMethod + ' exception:' + ex);}
}
}
}.iwclosure(obj);var eventListener=new IWEventListener();eventListener.type='IW';eventListener.objectHandler=objectHandler;eventListener.removeFunction=function(){var objectHandler=eventListener.objectHandler;var arr=obj.iwListenerDelegate[eventName];for(var i=arr.length;i>0;i--){_logger.debug("i=" + i + ",arr.length:" + arr.length + ",objectHandler=" + arr[(i-1)]);if(arr[(i-1)]==objectHandler){arr.splice(i-1,1);_logger.debug('Removing event listener ' + eventListener.id + ' of type ' + eventListener.type);}
}
eventListener.objectHandler.method=null;eventListener.objectHandler=null;eventListener=null;};return eventListener;};}
function IWLanguageChangedEvent(){this.language='';}
function IWMapCenteredEvent(){this.coordinate=null;this.lastCoordinate=null;this.offset=null;this.zoom=null;this.lastZoom=null;this.toString=function(){return '[IWMapCenteredEvent]' +'coordinate:' + this.coordinate + ',' +'last coordinate:' + this.lastCoordinate + ',' +'offset:' + this.offset + ',' +'zoom:' + this.zoom + ',' +'last zoom:' + this.lastZoom;};}
function IWMapInitializedEvent(){this.toString=function(){return '[IWMapInitializedEvent]';};}
function IWMapTypeAvailabilityChangedEvent(){this.type=null;this.available=null;this.toString=function(){return '[IWMapTypeAvailabilityChangedEvent]' + 'type:' + this.type + ',available:' + this.available;};}
function IWMapTypeChangedEvent(){this.oldMapType=null;this.newMapType=null;this.toString=function(){return '[IWMapTypeChangedEvent]';};}
function IWMapTypesChangedEvent(){this.mapTypes=null;this.toString=function(){return '[IWMapTypesChangedEvent]';};}
function IWMouseAdapter(){var _lastPosition=null;var _lastEvent=null;var _lastMouseEvent=null;this.getButton=function(event){if(!event){event=window.event;}
if(event.which==null){return(event.button<2)? IWButton.LEFT:((event.button==4)? IWButton.MIDDLE:IWButton.RIGHT);}
else
{return(event.which<2)? IWButton.LEFT:((event.which==2)? IWButton.MIDDLE:IWButton.RIGHT);}
}
this.toMouseEvent=function(event,container){if(!event){event=window.event;}
if(_lastEvent&&_lastEvent==event){return _lastMouseEvent;}
var mouseEvent=new IWMouseEvent();var pageOffset=iw.getPageOffset();mouseEvent.scrollbarOffset=pageOffset;var position=this.getPosition(event,container);mouseEvent.position=new IWPoint(position.getX()+ pageOffset.getX(),position.getY()+ pageOffset.getY());if(_lastPosition==null){mouseEvent.lastPosition=mouseEvent.position;}
else
{mouseEvent.lastPosition=_lastPosition;}
_lastPosition=mouseEvent.position;var xOffset=mouseEvent.position.getX()- mouseEvent.lastPosition.getX();var yOffset=mouseEvent.position.getY()- mouseEvent.lastPosition.getY();mouseEvent.offset=new IWPoint(xOffset,yOffset);mouseEvent.button=this.getButton(event);_lastMouseEvent=mouseEvent;_lastEvent=event;return mouseEvent;}
this.getPosition=function(event,container){var x=0;var y=0;var left=0;var top=0;if(!event){event=window.event;}
if(typeof container !='undefined'&&container !=null){left=(container.offsetLeft ? container.offsetLeft:0);top=(container.offsetTop ? container.offsetTop:0);while(container.offsetParent){container=container.offsetParent;left +=(container.offsetLeft ? container.offsetLeft:0);top +=(container.offsetTop ? container.offsetTop:0);}
}
if(event.clientX){x=event.clientX - left;y=event.clientY - top;}
return new IWPoint(x,y);}
this.toString=function(){return '[IWMouseAdapter]last mouse event:' +(_lastMouseEvent !=null ? _lastMouseEvent.toString():'');};}
function IWMouseControlChangedEvent(){this.mouseAction='';this.controlMethod=-1;}
function IWMouseEvent(){this.position=null;this.lastPosition=null;this.offset=null;this.scrollbarOffset=null;this.button=IWButton.NONE;this.toString=function(){return '[IWMouseEvent]' +'position:' +(this.position==null ? '':this.position.toString())+ ',' +'lastPosition:' +(this.lastPosition==null ? '':this.lastPosition.toString())+ ',' +'offset:' +(this.offset==null ? '':this.offset.toString())+ ',' +'scrollbarOffset:' +(this.scrollbarOffset==null ? '':this.scrollbarOffset.toString())+ ',' +'button:' + this.button;};}
function IWMouseWheelEvent(){this.delta=null;this.toString=function(){return "[IWMouseWheelEvent]" +"delta:" +(this.delta==null ? "":this.delta.toString());}
}
function IWMoveEvent(){this.position=null;this.lastPosition=null;this.offset=new IWPoint(0,0);this.toString=function(){return '[IWMoveEvent]' +'position:' +(this.position==null ? 'null':this.position.toString())+ ',' +'lastPosition:' +(this.lastPosition==null ? 'null':this.lastPosition.toString())+ ',' +'offset:' + this.offset.toString();};}
function IWResizeEvent(){this.oldSize=null;this.newSize=null;this.toString=function(){return '[IWResizeEvent]' +'oldSize:' +(this.oldSize==null ? 'null':this.oldSize.toString())+ ',' +'newSize:' +(this.newSize==null ? 'null':this.newSize.toString());};}
function IWTileLoadedEvent(){this.column=null;this.row=null;this.toString=function(){return '[IWTileLoadedEvent]' +'column:' + this.column + ',' +'row:' + this.row;};}
function IWZoomEvent(){this.newZoomLevel=null;this.newCenter=null;this.toString=function(){return '[IWZoomEvent]' +'newZoomLevel:' + this.newZoomLevel + ',' +'newCenter:' + this.newCenter;};}
function IWAddress(){var _street='';var _houseNumber='';var _zipCode='';var _city='';var _country='';var _countryCode='';this.setZipCode=function(zipCode){_zipCode=zipCode;};this.getZipCode=function(){return _zipCode;};this.setCity=function(city){_city=city;};this.getCity=function(){return _city;};this.setStreet=function(street){_street=street;};this.getStreet=function(){return _street;};this.setHouseNumber=function(houseNumber){_houseNumber=houseNumber;};this.getHouseNumber=function(){return _houseNumber;};this.setCountry=function(country){_country=country;};this.getCountry=function(){return _country;};this.setCountryCode=function(countryCode){_countryCode=countryCode;}
this.getCountryCode=function(){return _countryCode;};this.hasHouseNumber=function(){return(_houseNumber !=null&&_houseNumber !='');};this.toString=function(){return '[IWAddress]' +'Street:' +(_street==null ? 'null':_street)+ ',' +'HouseNumber:' +(_houseNumber==null ? 'null':_houseNumber)+ ',' +'ZipCode:' +(_zipCode==null ? 'null':_zipCode)+ ',' +'City:' +(_city==null ? 'null':_city)+ ',' +'Country:' +(_country==null)? 'null':_country + ',' +'CountryCode:' +(_countryCode==null ? 'null':_countryCode);};this.equals=function(anotherAddress){return(this.getStreet()==anotherAddress.getStreet()&&this.getHouseNumber()==anotherAddress.getHouseNumber()&&this.getCity()==anotherAddress.getCity()&&this.getZipCode()==anotherAddress.getZipCode()&&this.getCountry()==anotherAddress.getCountry()&&this.getCountryCode()==anotherAddress.getCountryCode()
);};}
function IWGeocoderClient(){this.geocodeAddressString=function(inputAddress,countryCode,maximumHits){var intValue=parseInt(maximumHits);var max=(intValue>0 ? intValue:1);var url=iwconst.LOCAL_APP_URL + '/servlet/FrontController' +'?cmd=geocode' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&RTVDIR=mapapi-0.70' +'&RTVMODE=' +(max>1 ? '0':'1')+'&RTVADR=' + inputAddress +'&RTVLAND=' + countryCode +'&RTVHITMAX=' + max;var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('GET',url,true);xmlHttp.onreadystatechange=function(){geocodedCallback(this,xmlHttp,inputAddress);}.iwclosure(this);xmlHttp.send(null);};this.geocodeAddress=function(inputAddress,maximumHits){var rtvMode=null;var intValue=parseInt(maximumHits);var max=(intValue>0 ? intValue:1);if(inputAddress.hasHouseNumber()){if(intValue==1){rtvMode='';}
else
{rtvMode='1&RTVHITMAX=' + max;}
}
else
{if(intValue>1){rtvMode='2&RTVHITMAX=' + max;}
else
{rtvMode='3';}
}
var url=iwconst.LOCAL_APP_URL + '/servlet/FrontController' +'?cmd=geocode' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&RTVDIR=mapapi-0.70' +'&RTVMODE=' + rtvMode +'&RTVPLZ=' + inputAddress.getZipCode()+'&RTVORT=' + inputAddress.getCity()+'&RTVSTR=' + inputAddress.getStreet()+'&RTVHNR=' + inputAddress.getHouseNumber()+'&RTVLAND=' + inputAddress.getCountryCode();var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('GET',url,true);xmlHttp.onreadystatechange=function(){geocodedCallback(this,xmlHttp,inputAddress);}.iwclosure(this);xmlHttp.send(null);};this.reverseGeocode=function(inputCoordinate,searchMode,searchCriteria){var url=iwconst.LOCAL_APP_URL + '/servlet/FrontController' +'?cmd=locate' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&RTVDIR=mapapi-0.70' +'&RTVLAND=EU' +'&REVPROJ=LCC_EUROPE' +'&REVMODE=' + searchMode +'&REVX=' + inputCoordinate.getX()+'&REVY=' + inputCoordinate.getY()+'&REVOPT=' + searchCriteria;var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('GET',url,true);xmlHttp.onreadystatechange=function(){reverseGeocodedCallback(this,xmlHttp,inputCoordinate);}.iwclosure(this);xmlHttp.send(null);};this.toString=function(){return '[IWGeocoderClient]';};this.triggerAfterGeocoded=function(event){IWEventManager.trigger(this,'aftergeocoded',event);};this.triggerAfterReverseGeocoded=function(event){IWEventManager.trigger(this,'afterreversegeocoded',event);};function geocodedCallback(self,xmlHttp,inputAddress){var results=new Array();if(xmlHttp.readyState==4){if(xmlHttp.statusText=='OK'){var root=xmlHttp.responseXML.documentElement;if(root.getElementsByTagName('fail').length==0){var streets=root.getElementsByTagName('street');var houseNumbers=root.getElementsByTagName('housenumber');var zipCodes=root.getElementsByTagName('zipcode');var cities=root.getElementsByTagName('city');var countries=root.getElementsByTagName('country')
var country_codes=root.getElementsByTagName('country_code');var lcc_x=root.getElementsByTagName('lcc_x');var lcc_y=root.getElementsByTagName('lcc_y');var wgs84_long=root.getElementsByTagName('wgs84_long');var wgs84_lat=root.getElementsByTagName('wgs84_lat');var hitprobabilities=root.getElementsByTagName('hitprobability');var qualities=root.getElementsByTagName('quality');for(var i=(zipCodes.length-1);i>=0;i--){var houseNumber=IWXMLHelper.getNodeValue(houseNumbers[i]);var address=new IWAddress();address.setStreet(IWXMLHelper.getNodeValue(streets[i]));address.setHouseNumber((houseNumber !='X'&&houseNumber !='0' ? houseNumber:''));address.setZipCode(IWXMLHelper.getNodeValue(zipCodes[i]));address.setCity(IWXMLHelper.getNodeValue(cities[i]));address.setCountry(IWXMLHelper.getNodeValue(countries[i]));address.setCountryCode(IWXMLHelper.getNodeValue(country_codes[i]));var result=new IWGeocodingResult();result.setAddress(address);result.setLCC(new IWLCCEurope(IWXMLHelper.getNodeValue(lcc_x[i]),IWXMLHelper.getNodeValue(lcc_y[i])));result.setWGS84(new IWWGS84(IWXMLHelper.getNodeValue(wgs84_long[i]),IWXMLHelper.getNodeValue(wgs84_lat[i])));result.setHitprobability(parseInt(IWXMLHelper.getNodeValue(hitprobabilities[i])));result.setQuality(IWXMLHelper.getNodeValue(qualities[i]));results.push(result);}
}
}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
else
{alert('Geocoding failed:' + xmlHttp.status + '\n' + xmlHttp.statusText);}
}
var event=new IWGeocodingEvent();event.inputAddress=inputAddress;event.status=xmlHttp.statusText;event.results=results;self.triggerAfterGeocoded(event);}
function reverseGeocodedCallback(self,xmlHttp,inputCoordinate){var results=new Array();if(xmlHttp.readyState==4){if(xmlHttp.statusText=='OK'){var root=xmlHttp.responseXML.documentElement;if(root.getElementsByTagName('fail').length==0){var hits=root.getElementsByTagName('zipcode').length;var countries=root.getElementsByTagName('country');var zipCodes=root.getElementsByTagName('zipcode');var cities=root.getElementsByTagName('city');var streets=root.getElementsByTagName('street');var houseNumbers=root.getElementsByTagName('housenumber');var lcc_x=root.getElementsByTagName('lcc_x');var lcc_y=root.getElementsByTagName('lcc_y');var wgs84_long=root.getElementsByTagName('wgs84_long');var wgs84_lat=root.getElementsByTagName('wgs84_lat');var distances=root.getElementsByTagName('distance');var hitprobabilities=root.getElementsByTagName('hitprobability');for(var i=(hits-1);i>=0;i--){var result=new IWReverseGeocodingResult();result.setLCC(new IWLCCEurope(IWXMLHelper.getNodeValue(lcc_x[i]),IWXMLHelper.getNodeValue(lcc_y[i])));result.setWGS84(new IWWGS84(IWXMLHelper.getNodeValue(wgs84_long[i]),IWXMLHelper.getNodeValue(wgs84_lat[i])));var address=new IWAddress();address.setStreet(IWXMLHelper.getNodeValue(streets[i]));address.setZipCode(IWXMLHelper.getNodeValue(zipCodes[i]));address.setCity(IWXMLHelper.getNodeValue(cities[i]));var houseNumber=IWXMLHelper.getNodeValue(houseNumbers[i]);address.setHouseNumber((houseNumber !='X'&&houseNumber !='0' ? houseNumber:''));address.setCountryCode(IWXMLHelper.getNodeValue(countries[i]));result.setAddress(address);result.setDistance(IWXMLHelper.getNodeValue(distances[i]));result.setHitprobability(parseInt(IWXMLHelper.getNodeValue(hitprobabilities[i])));results.push(result);}
}
}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
else
{alert('Reverse-Geocoding failed:' + xmlHttp.status + ' ' + xmlHttp.statusText);}
}
var event=new IWReverseGeocodingEvent();event.status=xmlHttp.statusText;event.inputCoordinate=inputCoordinate;event.results=results;self.triggerAfterReverseGeocoded(event);}
}
function IWGeocodingEvent(){this.status=null;this.inputAddress=null;this.results=null;this.toString=function(){return "[IWGeocodingEvent]" +"InputAddress:" +(this.inputAddress==null ? "null":this.inputAddress)+ "," +"Status:" +(this.status==null ? "null":this.status)+ "," +"Results:" +(this.results==null ? "null":this.results.length);};}
function IWGeocodingResult(){var _address=null;var _lcc=null;var _wgs84=null;var _hitprobability=null;var _quality=null;this.setAddress=function(address){_address=address;};this.getAddress=function(){return _address;};this.setLCC=function(lcc){_lcc=lcc;}
this.getLCC=function(){return _lcc;};this.setWGS84=function(wgs84){_wgs84=wgs84;};this.getWGS84=function(){return _wgs84;};this.setHitprobability=function(hitprobability){_hitprobability=hitprobability;};this.getHitprobability=function(){return _hitprobability;};this.setQuality=function(quality){_quality=quality;};this.getQuality=function(){return _quality;};this.toString=function(){return '[IWGeocodingResult]' +'address:' + _address.toString()+ ',' +'lcc cooordinate:' + _lcc.toString()+ ',' +'wgs84 coordinate:' + _wgs84.toString()+ ',' +'hitprobability:' + _hitprobability + ',' +'quality:' + _quality;};}
function IWReverseGeocodingEvent(){this.status=null;this.inputCoordinate=null;this.results=null;}
function IWReverseGeocodingResult(){var _lcc=null;var _wgs84=null;var _address=null;var _distance=0;var _hitprobability=null;this.setLCC=function(lcc){_lcc=lcc;};this.getLCC=function(){return _lcc;};this.getWGS84=function(){return _wgs84;};this.setWGS84=function(wgs84){_wgs84=wgs84;};this.setAddress=function(address){_address=address;}
this.getAddress=function(){return _address;};this.setDistance=function(distance){_distance=distance;};this.getDistance=function(){return _distance;};this.setHitprobability=function(hitprobability){_hitprobability=hitprobability;};this.getHitprobability=function(){return _hitprobability;};this.toString=function(){return '[IWReverseGeocodingResult]' +'lcc coordinate:' + _lcc.toString()+ ',' +'wgs84 coordinate:' + _wgs84.toString()+ ',' +'address:' + _address.toString()+ ',' +'distance:' + _distance;};}
function IWActionStack(map,maxActions){var _map=map;var _maxActions=(typeof maxActions !='undefined' ? maxActions:20)
var _undoStack=new Array();var _redoStack=new Array();var _logger=log4javascript.getLogger("js.IWActionStack");this.clear=function(){_logger.debug('IWActionStack:Clearing stack');_undoStack=new Array();_redoStack=new Array();};this.addAction=function(action){if(action.isMapAction&&action.isMapAction()){_undoStack.push(action);_logger.debug('IWActionStack:Adding ' + action.toString()+ ',new stack size is ' + _undoStack.length);if(_redoStack.length>0){_redoStack=new Array();}
if(_undoStack.length>_maxActions){_logger.debug('IWActionStack:Stack size exceeds maximum,removing oldest action');_undoStack.shift();}
}
else
{_logger.error('IWActionStack:Adding action failed:Parameter has to implement IWMapAction');}
};this.undoAction=function(){var action=_undoStack.pop();if(action){_logger.debug('IWActionStack:Undoing ' + action.toString());action.undo(_map);_redoStack.push(action);}
else
{_logger.debug('IWActionStack:Cannot undo operation:Stack is empty');}
};this.redoAction=function(){var action=_redoStack.pop();if(action){_logger.debug('IWActionStack:Redoing ' + action.toString());action.redo(_map);_undoStack.push(action);}
else
{_logger.debug('IWActionStack:Cannot redo operation:Stack is empty');}
};this.toString=function(){return '[IWActionStack]' +'max actions:' + _maxActions + ',' +'undo stack length:' + _undoStack.length + ',' +'redo stack length:' + _redoStack.length;};_logger.debug('IWActionStack:Created new stack with ' + _maxActions + ' actions');}
function IWBoundsConstraintManager(tileset){var _tileset=tileset;var _map=_tileset.getMap();var _boundsConstraint=null;this.setBoundsConstraint=function(bounds){if(bounds.constructor !=IWBounds&&bounds !=null){alert('IWBoundsConstraint]invalid argument:\''+bounds.constructor+'\' given,IWBounds or null expected');}
_boundsConstraint=bounds;}
this.getBoundsConstraint=function(){return _boundsConstraint;}
this.getMinimumZoomLevel=function(){if(_boundsConstraint==null){return _map.getCurrentMapType().getMinLevel();}
else
{return _map.getBoundsZoomlevel(_boundsConstraint);}
}
this.isZoomOutOfBounds=function(zoomFactor){if(_boundsConstraint==null){return false;}
var mapSize=_map.getBounds().getSize().divide(zoomFactor);var constraintSize=_boundsConstraint.getSize();return(mapSize.compareTo(constraintSize)>0);}
this.calculateNewCenter=function(tileSizeInMeter,zoomCenter){if(typeof zoomCenter=='undefined'){zoomCenter=_map.getCenter();}
if(_boundsConstraint !=null){var halfMapHeightInMeter=_tileset.getMapHeightForTile(tileSizeInMeter)/2;var halfMapWidthInMeter=_tileset.getMapWidthForTile(tileSizeInMeter)/2;var coordinateNorth=zoomCenter.getY()+ halfMapHeightInMeter;var coordinateSouth=zoomCenter.getY()- halfMapHeightInMeter;var coordinateEast=zoomCenter.getX()+ halfMapWidthInMeter;var coordinateWest=zoomCenter.getX()- halfMapWidthInMeter;var differenceNorth=coordinateNorth - _boundsConstraint.getNorthWest().getY();var differenceSouth=_boundsConstraint.getSouthEast().getY()- coordinateSouth;var differenceEast=coordinateEast -_boundsConstraint.getSouthEast().getX();var differenceWest=_boundsConstraint.getNorthWest().getX()- coordinateWest;if(differenceNorth>0&&differenceSouth>0){zoomCenter=new IWCoordinate(zoomCenter.getX(),_boundsConstraint.getCenter().getY());}
else if(differenceNorth>0){zoomCenter=new IWCoordinate(zoomCenter.getX(),zoomCenter.getY()- differenceNorth);}
else if(differenceSouth>0){zoomCenter=new IWCoordinate(zoomCenter.getX(),zoomCenter.getY()+ differenceSouth);}
if(differenceEast>0&&differenceWest>0){zoomCenter=new IWCoordinate(_boundsConstraint.getCenter().getX(),zoomCenter.getY());}
else if(differenceEast>0){zoomCenter=new IWCoordinate(zoomCenter.getX()- differenceEast,zoomCenter.getY());}
else if(differenceWest>0){zoomCenter=new IWCoordinate(zoomCenter.getX()+ differenceWest,zoomCenter.getY());}
}
return zoomCenter;};this.isMoveAllowed=function(offset){if(_boundsConstraint==null){return true;}
var halfMapSizeInMeter=_map.getBounds().getSize().divide(2);var newNorthWest=new IWCoordinate(_boundsConstraint.getNorthWest().getX()+ halfMapSizeInMeter.getWidth(),_boundsConstraint.getNorthWest().getY()- halfMapSizeInMeter.getHeight());var newSouthEast=new IWCoordinate(_boundsConstraint.getSouthEast().getX()- halfMapSizeInMeter.getWidth(),_boundsConstraint.getSouthEast().getY()+ halfMapSizeInMeter.getHeight());var constraint=new IWBounds(newNorthWest,newSouthEast);var centerInPixel=new IWPoint(_map.getOptions().getSize().getWidth()/2,_map.getOptions().getSize().getHeight()/2);var newCenterInPixel=centerInPixel.substract(offset);var newCenter=_map.getCurrentMapType().getProjection().pixelToMeter(newCenterInPixel);if(!constraint.containsCoordinate(newCenter)){return false;}
return true;};}
function IWCentralProjection(map){IWProjection.call(this);var _map=map;var _dAlt;var _dCameraLon;var _dCameraLat;var _iWidth;var _iHeight;var _dElevation;var _points;var _dFactor;var _offset;var _moved=new IWPoint(0,0);this.initialize=function(xmlDocument){var camera=xmlDocument.getElementsByTagName('camera')[0];var view=xmlDocument.getElementsByTagName('view')[0];var section=xmlDocument.getElementsByTagName('section')[0];try{_dCameraLon=IWXMLHelper.getFloatAttribute(camera,'longitude');_dCameraLat=IWXMLHelper.getFloatAttribute(camera,'latitude');_dAlt=IWXMLHelper.getFloatAttribute(camera,'altitude');_dElevation=IWXMLHelper.getFloatAttribute(view,'elevation');_iWidth=IWXMLHelper.getFloatAttribute(view,'width');_iHeight=IWXMLHelper.getFloatAttribute(view,'height');_points=new Array(4);var point0=xmlDocument.getElementsByTagName('point')[0];_points[0]=new IWCoordinate(parseFloat(point0.getAttribute('x')),parseFloat(point0.getAttribute('y')));var point1=xmlDocument.getElementsByTagName('point')[1];_points[1]=new IWCoordinate(parseFloat(point1.getAttribute('x')),parseFloat(point1.getAttribute('y')));var point2=xmlDocument.getElementsByTagName('point')[2];_points[2]=new IWCoordinate(parseFloat(point2.getAttribute('x')),parseFloat(point2.getAttribute('y')));var point3=xmlDocument.getElementsByTagName('point')[3];_points[3]=new IWCoordinate(parseFloat(point3.getAttribute('x')),parseFloat(point3.getAttribute('y')));_dFactor=IWXMLHelper.getFloatAttribute(section,'factor');var dOffsetX=IWXMLHelper.getFloatAttribute(section,'offsetX');var dOffsetY=IWXMLHelper.getFloatAttribute(section,'offsetY');_offset=new IWPoint(dOffsetX,dOffsetY);}
catch(e){throw 'Could not initialize projection:' + e;}
_moved=new IWPoint(0,0);};this.meterToPixel=function(coord){var offsetInView=getOffset(coord);var iPointX=((offsetInView.getX()- _offset.getX())/_dFactor)- _moved.getX();var iPointY=((_offset.getY()- offsetInView.getY())/_dFactor)- _moved.getY();return new IWPoint(iPointX,iPointY);};this.pixelToMeter=function(point){var iViewX=_offset.getX()+(point.getX()+ _moved.getX())*_dFactor;var iViewY=_offset.getY()-(point.getY()+ _moved.getY())*_dFactor;return getCoordinate(new IWPoint(iViewX,iViewY));};this.needsReload=function(coord,size){var iHalfWidth=size.getWidth()/2;var iHalfHeight=size.getHeight()/2;var points=new Array(4);points[0]=getOffset(new IWCoordinate(coord.getX()- iHalfWidth,coord.getY()- iHalfHeight));points[1]=getOffset(new IWCoordinate(coord.getX()+ iHalfWidth,coord.getY()- iHalfHeight));points[2]=getOffset(new IWCoordinate(coord.getX()- iHalfWidth,coord.getY()+ iHalfHeight));points[3]=getOffset(new IWCoordinate(coord.getX()+ iHalfWidth,coord.getY()+ iHalfHeight));for(var i=0;i<4;i++){if(points[i].getX()<0||points[i].getX()>_iWidth)return true;if(points[i].getY()<0||points[i].getY()>_iHeight)return true;}
return false;};this.toString=function(){return '[IWCentralProjection]';};function getDistance(x1,y1,z1,x2,y2,z2){var dx=x2 - x1;var dy=y2 - y1;var dz=z2 - z1;return Math.sqrt(dx*dx + dy*dy + dz*dz);}
function getAngle(d0,d1,d2){return Math.acos((d0*d0 - d1*d1 - d2*d2)/(- 2*d1*d2));}
function calcTriangle(x0,y0,z0,x1,y1,z1,x2,y2,z2){var d0=getDistance(x1,y1,z1,x2,y2,z2);var d1=getDistance(x2,y2,z2,x0,y0,z0);var d2=getDistance(x1,y1,z1,x0,y0,z0);var dW0=getAngle(d0,d1,d2);var dW1=getAngle(d1,d0,d2);var dW2=getAngle(d2,d1,d0);var result=[d0,d1,d2,dW0,dW1,dW2];return result;}
function getProjectedLength(dLength,dLengthMax,point1,point2){var dTriangle1=calcTriangle(point1.getX(),point1.getY(),0,point2.getX(),point2.getY(),0,_dCameraLon,_dCameraLat,_dAlt - _dElevation);var dTriangle2=new Array(6);dTriangle2[1]=dTriangle1[1];dTriangle2[3]=dTriangle1[3];dTriangle2[5]=dTriangle1[5]/2 + Math.atan((dLength - dLengthMax/2)*(Math.tan(dTriangle1[5]/2)/(dLengthMax/2)));dTriangle2[4]=Math.PI - dTriangle2[5]- dTriangle2[3];dTriangle2[2]=dTriangle2[1]/Math.sin(dTriangle2[4])*Math.sin(dTriangle2[5]);return dTriangle2[2]/dTriangle1[2];}
function getAlong(coord1,coord2,dAlong){var x=coord1.getX()+(coord2.getX()- coord1.getX())*dAlong;var y=coord1.getY()+(coord2.getY()- coord1.getY())*dAlong;return new IWCoordinate(x,y);}
function getCoordinate(point){var point01=getAlong(_points[0],_points[1],getProjectedLength(point.getX(),_iWidth,_points[0],_points[1]));var point23=getAlong(_points[2],_points[3],getProjectedLength(point.getX(),_iWidth,_points[2],_points[3]));var point02=getAlong(_points[0],_points[2],getProjectedLength(point.getY(),_iHeight,_points[0],_points[2]));var point13=getAlong(_points[1],_points[3],getProjectedLength(point.getY(),_iHeight,_points[1],_points[3]));var line0123=new IWLine(point01,point23);var line0213=new IWLine(point02,point13);return line0123.getIntersection(line0213);}
function getIntersections(point,point0,point1,point2,point3){var intersections=new Array(3);var line01=new IWLine(point0,point1);var line23=new IWLine(point2,point3);var line02=new IWLine(point0,point2);var line13=new IWLine(point1,point3);intersections[0]=line01.getIntersection(line23);var line4=new IWLine(intersections[0],point);intersections[1]=line4.getIntersection(line02);intersections[2]=line4.getIntersection(line13);return intersections;}
function getOffset(coord){var dCameraZ=_dAlt - _dElevation;var dTriangle1;var dTriangle2;var intersections=getIntersections(coord,_points[0],_points[1],_points[2],_points[3]);dTriangle1=calcTriangle(_points[0].getX(),_points[0].getY(),0,_points[2].getX(),_points[2].getY(),0,_dCameraLon,_dCameraLat,dCameraZ);dTriangle2=calcTriangle(_points[0].getX(),_points[0].getY(),0,intersections[1].getX(),intersections[1].getY(),0,_dCameraLon,_dCameraLat,dCameraZ);if(Math.abs(dTriangle1[3]- dTriangle2[3])>=0.001)dTriangle2[5]*=-1;var y=0.5 - 0.5*Math.tan(dTriangle1[5]/2 - dTriangle2[5])/Math.tan(dTriangle1[5]/2);intersections=getIntersections(coord,_points[0],_points[2],_points[1],_points[3]);dTriangle1=calcTriangle(_points[0].getX(),_points[0].getY(),0,_points[1].getX(),_points[1].getY(),0,_dCameraLon,_dCameraLat,dCameraZ);dTriangle2=calcTriangle(_points[0].getX(),_points[0].getY(),0,intersections[1].getX(),intersections[1].getY(),0,_dCameraLon,_dCameraLat,dCameraZ);if(Math.abs(dTriangle1[3]- dTriangle2[3])>=0.001)dTriangle2[5]*=-1;var x=0.5 - 0.5*Math.tan(dTriangle1[5]/2 - dTriangle2[5])/Math.tan(dTriangle1[5]/2);return new IWPoint(x*_iWidth,y*_iHeight);}
IWEventManager.addListener(_map,'onmove',function(moveEvent){_moved=_moved.add(new IWPoint(-moveEvent.offset.getX(),-moveEvent.offset.getY()));}
);}
function IWLayout(container,zIndex){function resetBorders(){_top_left=new IWSize(0,0);_top_right=new IWSize(0,0);_bottom_left=new IWSize(0,0);_bottom_right=new IWSize(0,0);_center_x=new IWSize(0,0);_center_y=new IWSize(0,0);_center_top=new Array();_center_bottom=new Array();_center_left=new Array();_center_right=new Array();}
function getMainWidth(){var width=_container.style.width;return parseInt(width);}
function getMainHeight(){var height=_container.style.height;return parseInt(height);}
this.setBorder=function(x,y){_mapBorder=new IWSize(x,y);this.redraw();};this.addControl=function(control,firstOrientation,secondOrientation,paddingX,paddingY){if((typeof control.isControl=="undefined")||!control.isControl()){throw('IWLayoutManager:adding control failed:control has to implement IWControl!');}
if(firstOrientation<0||firstOrientation>4||secondOrientation<0||secondOrientation>4){throw('IWLayoutManager:adding control failed:orientation not valid!');}
for(var i=0;i<_controls.length;i++){if(control==_controls[i]){throw('IWLayoutManager:adding control failed:control already added!');}
}
_logger.debug('adding ' + control.toString()+ ' to map.');if((typeof paddingX !='undefined')||(typeof paddingY !='undefined')){control.setPadding(new IWSize(parseInt(paddingX),parseInt(paddingY)));}
control.setFirstOrientation(firstOrientation);control.setSecondOrientation(secondOrientation);control.onresizeListener=IWEventManager.addListener(control,'onresize',function(){this.redraw();}.iwclosure(this));_controls.push(control);control.getContainer().style.zIndex=_zIndex;_old_bb=new IWSize(_bounding_box.getWidth(),_bounding_box.getHeight());setControlPosition(control);control.beforeAppend();_container.appendChild(control.getContainer());control.afterAppend();if(!_old_bb.equals(_bounding_box)){var event=new IWResizeEvent();event.newSize=_bounding_box;IWEventManager.trigger(this,'onresize',event);}
};this.removeControl=function(control){for(var i=0;i<_controls.length;i++){if(control==_controls[i]){_controls.splice(i,1);control.beforeRemove();iw.remove(control.getContainer());this.redraw();control.afterRemove();IWEventManager.removeListener(control.onresizeListener);break;}
}
};function setControlPosition(control){size=IWDOMHelper.getSize(control.getContainer());var controlWidth=size.getWidth();var controlHeight=size.getHeight();switch(control.getFirstOrientation()){case IWAlignment.TOP:switch(control.getSecondOrientation()){case IWAlignment.LEFT:control.getContainer().style.top=_mapBorder.getHeight()+ control.getPadding().getHeight()+'px';control.getContainer().style.left=_mapBorder.getWidth()+ _top_left.getWidth()+ control.getPadding().getWidth()+'px';if(_top_left.equals(new IWSize(0,0))){_top_left=new IWSize(_top_left.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_top_left.getHeight()+ control.getPadding().getHeight()*2 + controlHeight);}else{_top_left=new IWSize(_top_left.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_top_left.getHeight());}
if(_top_left.getWidth()>getMainWidth())_bounding_box=new IWSize(_top_left.getWidth()+_mapBorder.getWidth(),_bounding_box.getHeight());break;case IWAlignment.RIGHT:control.getContainer().style.top=_mapBorder.getHeight()+ control.getPadding().getHeight()+'px';control.getContainer().style.left=getMainWidth()-(_mapBorder.getWidth()+ _top_right.getWidth()+ control.getPadding().getWidth()+controlWidth)+'px';if(_top_right.equals(new IWSize(0,0))){_top_right=new IWSize(_top_right.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_top_right.getHeight()+ control.getPadding().getHeight()*2 + controlHeight);}else{_top_right=new IWSize(_top_right.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_top_right.getHeight());}
break;case IWAlignment.CENTER:case IWAlignment.TOP:_center_top.push(control);var length=0;for(var i=0;i<_center_top.length;i++){length +=parseInt(_center_top[i].getContainer().style.width);length +=2*_center_top[i].getPadding().getWidth();}
var start=Math.round((getMainWidth()- length)/2.0);var pos=start;for(var i=0;i<_center_top.length;i++){_center_top[i].getContainer().style.top=_mapBorder.getHeight()+ _center_top[i].getPadding().getHeight()+'px';_center_top[i].getContainer().style.left=pos + _center_top[i].getPadding().getWidth()+ 'px';pos +=parseInt(_center_top[i].getContainer().style.width);pos +=2*_center_top[i].getPadding().getWidth();}
if(length>getMainWidth())_bounding_box=new IWSize(getMainWidth()+(length-getMainWidth())/2,_bounding_box.getHeight());break;default:alert("Invalid positioning!");}
break;case IWAlignment.RIGHT:switch(control.getSecondOrientation()){case IWAlignment.TOP:control.getContainer().style.top=_top_right.getHeight()+ _mapBorder.getHeight()+ control.getPadding().getHeight()+'px';control.getContainer().style.left=getMainWidth()-(_mapBorder.getWidth()+ control.getPadding().getWidth()+controlWidth)+'px';if(_top_right.equals(new IWSize(0,0))){_top_right=new IWSize(_top_right.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_top_right.getHeight()+ control.getPadding().getHeight()*2 + controlHeight);}else{_top_right=new IWSize(_top_right.getWidth(),_top_right.getHeight()+control.getPadding().getHeight()*2 + controlHeight);}
if(_top_right.getHeight()>getMainHeight())_bounding_box=new IWSize(_bounding_box.getWidth(),_top_right.getHeight()+_mapBorder.getHeight());break;case IWAlignment.BOTTOM:control.getContainer().style.top=getMainHeight()-(_bottom_right.getHeight()+_mapBorder.getHeight()+ control.getPadding().getHeight()+ controlHeight)+'px';control.getContainer().style.left=getMainWidth()-(_mapBorder.getWidth()+ control.getPadding().getWidth()+controlWidth)+'px';if(_bottom_right.equals(new IWSize(0,0))){_bottom_right=new IWSize(_bottom_right.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_bottom_right.getHeight()+ control.getPadding().getHeight()*2 + controlHeight);}else{_bottom_right=new IWSize(_bottom_right.getWidth(),_bottom_right.getHeight()+control.getPadding().getHeight()*2 + controlHeight);}
break;case IWAlignment.CENTER:case IWAlignment.RIGHT:_center_right.push(control);var length=0
for(var i=0;i<_center_right.length;i++){length +=parseInt(_center_right[i].getContainer().style.height);length +=2*_center_right[i].getPadding().getHeight();}
var start=Math.round((getMainHeight()- length)/2.0);var pos=start;for(var i=0;i<_center_right.length;i++){_center_right[i].getContainer().style.top=pos + _center_right[i].getPadding().getHeight()+ 'px';_center_right[i].getContainer().style.left=getMainWidth()-(_mapBorder.getWidth()+ _center_right[i].getPadding().getWidth()+parseInt(_center_right[i].getContainer().style.width))+'px';pos +=parseInt(_center_right[i].getContainer().style.height);pos +=2*_center_right[i].getPadding().getHeight();}
if(length>getMainHeight())_bounding_box=new IWSize(_bounding_box.getWidth(),getMainHeight()+(length-getMainHeight())/2);break;default:alert("Invalid positioning!");}
break;case IWAlignment.BOTTOM:switch(control.getSecondOrientation()){case IWAlignment.LEFT:control.getContainer().style.top=getMainHeight()-(_mapBorder.getHeight()+ control.getPadding().getHeight()+ controlHeight)+'px';control.getContainer().style.left=_mapBorder.getWidth()+ _bottom_left.getWidth()+ control.getPadding().getWidth()+'px';if(_bottom_left.equals(new IWSize(0,0))){_bottom_left=new IWSize(_bottom_left.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_bottom_left.getHeight()+ control.getPadding().getHeight()*2 + controlHeight);}else{_bottom_left=new IWSize(_bottom_left.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_bottom_left.getHeight());}
if(_bottom_left.getWidth()>getMainWidth())_bounding_box=new IWSize(_top_right.getWidth()+_mapBorder.getWidth(),_bounding_box.getHeight());break;case IWAlignment.RIGHT:control.getContainer().style.top=getMainHeight()-(_mapBorder.getHeight()+ control.getPadding().getHeight()+ controlHeight)+'px';control.getContainer().style.left=getMainWidth()-(_mapBorder.getWidth()+ _bottom_right.getWidth()+ control.getPadding().getWidth()+controlWidth)+'px';if(_bottom_right.equals(new IWSize(0,0))){_bottom_right=new IWSize(_bottom_right.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_bottom_right.getHeight()+ control.getPadding().getHeight()*2 + controlHeight);}else{_bottom_right=new IWSize(_bottom_right.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_bottom_right.getHeight());}
break;case IWAlignment.CENTER:case IWAlignment.BOTTOM:_center_bottom.push(control);var length=0;for(var i=0;i<_center_bottom.length;i++){length +=parseInt(_center_bottom[i].getContainer().style.width);length +=2*_center_bottom[i].getPadding().getWidth();}
var start=Math.round((getMainWidth()- length)/2.0);var pos=start;for(var i=0;i<_center_bottom.length;i++){_center_bottom[i].getContainer().style.top=getMainHeight()-(_mapBorder.getHeight()+ _center_bottom[i].getPadding().getHeight()+ parseInt(_center_bottom[i].getContainer().style.height))+'px';_center_bottom[i].getContainer().style.left=pos + _center_bottom[i].getPadding().getWidth()+ 'px';pos +=parseInt(_center_bottom[i].getContainer().style.width);pos +=2*_center_bottom[i].getPadding().getWidth();}
if(length>getMainWidth())_bounding_box=new IWSize(getMainWidth()+(length-getMainWidth())/2,_bounding_box.getHeight());break;default:alert("Invalid positioning!");}
break;case IWAlignment.LEFT:switch(control.getSecondOrientation()){case IWAlignment.TOP:control.getContainer().style.top=_top_left.getHeight()+ _mapBorder.getHeight()+ control.getPadding().getHeight()+'px';control.getContainer().style.left=_mapBorder.getWidth()+ control.getPadding().getWidth()+'px';if(_top_left.equals(new IWSize(0,0))){_top_left=new IWSize(_top_left.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_top_left.getHeight()+ control.getPadding().getHeight()*2 + controlHeight);}else{_top_left=new IWSize(_top_left.getWidth(),_top_left.getHeight()+control.getPadding().getHeight()*2 + controlHeight);}
if(_top_left.getHeight()>getMainHeight())_bounding_box=new IWSize(_bounding_box.getWidth(),_top_left.getHeight()+_mapBorder.getHeight());break;case IWAlignment.BOTTOM:control.getContainer().style.top=getMainHeight()-(_bottom_left.getHeight()+_mapBorder.getHeight()+ control.getPadding().getHeight()+ controlHeight)+'px';control.getContainer().style.left=_mapBorder.getWidth()+ control.getPadding().getWidth()+'px';if(_bottom_left.equals(new IWSize(0,0))){_bottom_left=new IWSize(_bottom_left.getWidth()+ control.getPadding().getWidth()*2 + controlWidth,_bottom_left.getHeight()+ control.getPadding().getHeight()*2 + controlHeight);}else{_bottom_left=new IWSize(_bottom_left.getWidth(),_bottom_left.getHeight()+control.getPadding().getHeight()*2 + controlHeight);}
break;case IWAlignment.CENTER:case IWAlignment.LEFT:_center_left.push(control);var length=0;for(var i=0;i<_center_left.length;i++){length +=parseInt(_center_left[i].getContainer().style.height);length +=2*_center_left[i].getPadding().getHeight();}
var start=Math.round((getMainHeight()- length)/2.0);var pos=start;for(var i=0;i<_center_left.length;i++){_center_left[i].getContainer().style.top=pos + _center_left[i].getPadding().getHeight()+ 'px';_center_left[i].getContainer().style.left=_mapBorder.getWidth()+ _center_left[i].getPadding().getWidth()+'px';pos +=parseInt(_center_left[i].getContainer().style.height);pos +=2*_center_left[i].getPadding().getHeight();}
if(length>getMainHeight())_bounding_box=new IWSize(_bounding_box.getWidth(),getMainHeight()+(length-getMainHeight())/2);break;default:alert("Invalid positioning!");}
break;case IWAlignment.CENTER:var x_center=Math.round(getMainWidth()/2.0);var y_center=Math.round(getMainHeight()/2.0);if(_center_x.equals(new IWSize(0,0))&&_center_y.equals(new IWSize(0,0))){con_y=Math.round(controlHeight/2.0);con_x=Math.round(controlWidth/2.0);_center_x=new IWSize(x_center + con_x + control.getPadding().getWidth(),x_center + con_x + control.getPadding().getWidth());_center_y=new IWSize(y_center + con_y + control.getPadding().getHeight(),y_center + con_y + control.getPadding().getHeight());control.getContainer().style.top=y_center - con_y+'px';control.getContainer().style.left=x_center - con_x+'px';}else{switch(control.getSecondOrientation()){case IWAlignment.TOP:control.getContainer().style.top=getMainHeight()-(_center_y.getWidth()+ controlHeight + control.getPadding().getHeight())+'px';control.getContainer().style.left=x_center - Math.round(controlWidth/2.0)+'px';_center_y=new IWSize(_center_y.getWidth()+ controlHeight + control.getPadding().getHeight()*2,_center_y.getHeight());break;case IWAlignment.RIGHT:case IWAlignment.CENTER:control.getContainer().style.top=y_center - Math.round(controlHeight/2.0)+'px';control.getContainer().style.left=_center_x.getHeight()+ control.getPadding().getWidth()+'px';_center_x=new IWSize(_center_x.getWidth(),_center_x.getHeight()+ controlWidth + control.getPadding().getWidth()*2);break;case IWAlignment.BOTTOM:control.getContainer().style.top=_center_y.getHeight()+ control.getPadding().getHeight()+'px';control.getContainer().style.left=x_center - Math.round(controlWidth/2.0)+'px';_center_y=new IWSize(_center_y.getWidth(),_center_y.getHeight()+ controlHeight + control.getPadding().getHeight()*2);break;case IWAlignment.LEFT:control.getContainer().style.top=y_center - Math.round(controlHeight/2.0)+'px';control.getContainer().style.left=getMainWidth()-(_center_x.getWidth()+ controlWidth + control.getPadding().getWidth())+'px';_center_x=new IWSize(_center_x.getWidth()+ controlWidth + control.getPadding().getWidth()*2,_center_x.getHeight());break;default:alert("Invalid positioning!");}
}
if(_center_x.getHeight()>getMainWidth())_bounding_box=new IWSize(_center_x.getHeight(),_bounding_box.getHeight());if(_center_y.getHeight()>getMainHeight())_bounding_box=new IWSize(_bounding_box.getWidth(),_center_y.getHeight());break;default:alert("Invalid positioning!");}
};this.redraw=function(){resetBorders();for(var i=0;i<_controls.length;i++){setControlPosition(_controls[i]);}
};var _logger=log4javascript.getLogger("iwAPI.js.mapping.IWLayout");if((typeof zIndex !='number')||(parseInt(zIndex)!=zIndex)){_logger.error('Layer is not an int:'+ zIndex+',type:'+typeof zIndex);}
var _zIndex=zIndex;var _mapBorder=new IWSize(4,4);var _container=container;var _bounding_box=new IWSize(getMainWidth(),getMainHeight());var _controls=new Array();var _center_top=new Array();var _center_bottom=new Array();var _center_left=new Array();var _center_right=new Array();var _top_left;var _top_right;var _bottom_left;var _bottom_right;var _center_x;var _center_y;resetBorders();}
function IWLayoutManager(div){this.getLayer=function(zIndex){if((typeof zIndex !='number')||(parseInt(zIndex)!=zIndex)){throw('Layer is not an int:'+ zIndex+',type:'+typeof zIndex);}
zIndex +=_OFFSET;var found=false;var i=0;for(i=0;i<_layer.length;i++){if((typeof _layer[i][0]=='number')&&(_layer[i][0]==zIndex)){found=true
break;}
}
if(found==false){var layout=new IWLayout(_divMap,zIndex);_layer.push(new Array(zIndex,layout));i=_layer.length-1;IWEventManager.addListener(layout,"onresize",function(event){if(_boundingBoxChanged(event.newSize)){IWEventManager.trigger(this,'onresize',event);}}.iwclosure(this));}
return _layer[i][1];}
this.redraw=function(){for(var i=0;i<_layer.length;i++){_layer[i][1].redraw();}
};function _boundingBoxChanged(newSize){if((_bounding_box.getWidth()<newSize.getWidth())||(_bounding_box.getHeight()<newSize.getHeight()))
{_bounding_box=new IWSize(newSize.getWidth(),newSize.getHeight());return true;}
return false;}
var _logger=log4javascript.getLogger("iwAPI.js.mapping.IWLayoutManager");var _layer=new Array();var _divMap=div;var _bounding_box=new IWSize(0,0);var _OFFSET=30;}
var IWLockManager=new function(){var _lockObjects=new Object();this.lock=function(lockObject){if(typeof _lockObjects[lockObject]!='undefined'){return false;}
_lockObjects[lockObject]=lockObject;return true;};this.unlock=function(lockObject){if(typeof _lockObjects[lockObject]=='undefined'){return false;}
delete _lockObjects[lockObject];return true;};this.isLocked=function(lockObject){return(typeof _lockObjects[lockObject]!='undefined'&&_lockObjects[lockObject]==lockObject);};};function IWMap(container){var _divCSS=iw.create('div');var _divClipping=iw.create('div');var _divLabels=iw.create('div');var _divLabels2=iw.create('div');var _divZoomingAndDragging=iw.create('div');var _divOverlaysAndControls=iw.create('div');var _divOverlay=iw.create('div');var _divZoomBox=iw.create('div');var _divControl=iw.create('div');var _divWindowOverlay=iw.create('div');var _imgZoomingAndDragging=iw.create('img');var _imgLabels=iw.create('img');var _imgLabels2=iw.create('img');var self=this;var _logger=log4javascript.getLogger("js.map");var _container=container;var _options=new IWMapOptions(this);var _tileset=null;var _savedCenter=null;var _savedZoom=null;var _actionStack=new IWActionStack(this);var _layoutManager=new IWLayoutManager(_divControl);var _windowOverlayManager=new IWWindowOverlayManager(this);var _layers=new Array();var _overlayManager=null;var _isOpticalZooming=false;var _layerInfoManager=new IWLayerInfoManager(this);var _startZoomPosition=null;var _mouseAdapter=new IWMouseAdapter();var _mouseStopTimeout=null;var _oldZoomBounds=null;var _dragOnMouseMoveListener=null;var _dragOnMouseUpListener=null;var _startDragPosition=null;var _timeoutWheel=null;var _clickTimeout=null;var _clickTimestamp=null;var _dblClickTimestamp=null;var _onMouseDownPosition=null;var _isOnClickEvent=false;var _dragClosure=function(event){if(_divZoomingAndDragging.style.cursor !="pointer"){_divZoomingAndDragging.style.cursor="pointer";}
dragMap(_mouseAdapter.toMouseEvent(event,_container));}.iwclosure(this);var _dropClosure=function(event){dropMap(_mouseAdapter.toMouseEvent(event,_container));IWLockManager.unlock(self);}.iwclosure(this);var _onmousestopClosure=function(event){if(typeof event.returnValue=='undefined'||event.returnValue !=false){window.clearTimeout(_mouseStopTimeout);var mouseEvent=_mouseAdapter.toMouseEvent(event,_container);_mouseStopTimeout=window.setTimeout(function(){if(!IWLockManager.isLocked(self)){window.clearTimeout(_mouseStopTimeout);self.triggerOnMouseStop(mouseEvent);}
},350
);}
this.triggerOnMouseMove(mouseEvent);}.iwclosure(this);var _mouseWheelClosure=wheelZoom.iwclosure(this);this.addWindowOverlay=function(windowOverlay){windowOverlay.beforeAppend();windowOverlay.redraw();iw.append(windowOverlay.getParent(),windowOverlay.getContainer());windowOverlay.afterAppend();};this.removeWindowOverlay=function(windowOverlay){if(windowOverlay.getContainer){windowOverlay.beforeRemove();iw.remove(windowOverlay.getContainer());windowOverlay.afterRemove();}
};this.openInfoBalloon=function(coordinate,content){_windowOverlayManager.openInfoBalloon(coordinate,content);};this.removeInfoBalloon=function(){_windowOverlayManager.removeInfoBalloon();};this.openTooltip=function(coordinate,text){_windowOverlayManager.openTooltip(coordinate,text);};this.removeTooltip=function(){_windowOverlayManager.removeTooltip();};this.getContainer=function(){return _container;};this.getCenter=function(){return _tileset.getCenter();};this.getMapWidthInMeter=function(){return _tileset.GetMeterWidth();};this.getMapHeightInMeter=function(){return _tileset.GetMeterHeight();};this.getMeterPerPixel=function(){if(_options.getSize().getWidth()==0){return 0;}
return Math.round(this.getMapWidthInMeter()/_options.getSize().getWidth());};this.getZoom=function(){return _tileset.FindBestScalingLevel();};this.getZoomByMeter=function(meter){var zoomlevel=null;var n=iwconst.A_TILESIZE_METER.length-1;var meterPerTile=meter/(this.getOptions().getSize().getWidth()/IWTile.SIZE);if(meterPerTile<=iwconst.A_TILESIZE_METER[0]){zoomlevel=0;}
else if(meterPerTile>=iwconst.A_TILESIZE_METER[n]){zoomlevel=n;}
else
{for(var i=0;i<n;i++){if(meterPerTile>=iwconst.A_TILESIZE_METER[i]&&meterPerTile<=iwconst.A_TILESIZE_METER[i+1]){var a=meterPerTile - iwconst.A_TILESIZE_METER[i];var b=iwconst.A_TILESIZE_METER[i+1]- meterPerTile;if(a<=b){zoomlevel=i;}
else
{zoomlevel=i+1;}
break;}
}
}
_logger.info('getZoomByMeter(' + meter + ')meterPerTile:' + meterPerTile + ',tilesX:' + _tileset.getTilesAxis().getWidth()+ ' returning zoomlevel ' + zoomlevel);return zoomlevel;};this.getBounds=function(){var nDiffX=_tileset.GetMeterWidth()/2;var nDiffY=_tileset.GetMeterHeight()/2;var center=this.getCenter();var coordNW=new IWCoordinate(center.getX()- nDiffX,center.getY()+ nDiffY);var coordSE=new IWCoordinate(center.getX()+ nDiffX,center.getY()- nDiffY);return new IWBounds(coordNW,coordSE);};this.getBoundsZoomlevel=function(bounds){return _tileset.getBoundsZoomlevel(bounds);};this.getCurrentMapType=function(){return _tileset.getCurrentMapType();};this.getOptions=function(){return _options;};this.getLayoutManager=function(){return _layoutManager;};this.getOverlayManager=function(){return _overlayManager;};this.getLayerInfoManager=function(){return _layerInfoManager;};this.setCenter=function(coordinate,zoom,mapType){var lastZoom=_tileset.FindBestScalingLevel();var lastCenter=_tileset.getCenter();if(typeof zoom !='undefined'){_tileset.setZoomLevel(zoom,false);}
if(mapType){_tileset.setMapType(mapType,false);}
_tileset.setCenter(coordinate,true);var event=new IWMapCenteredEvent();event.coordinate=_tileset.getCenter();if(lastCenter !=null){event.lastCoordinate=lastCenter;}
else
{event.lastCoordinate=event.coordinate;}
var offsetX=event.coordinate.getX()- event.lastCoordinate.getX();var offsetY=event.coordinate.getY()- event.lastCoordinate.getY();event.offset=new IWCoordinate(offsetX,offsetY);event.zoom=_tileset.FindBestScalingLevel();event.lastZoom=lastZoom;this.triggerAfterCentered(event);};this.panTo=function(coord){var oldCenter=this.fromCoordinateToPixel(this.getCenter());var newCenter=this.fromCoordinateToPixel(coord);var offset=new IWPoint(oldCenter.getX()- newCenter.getX(),oldCenter.getY()- newCenter.getY());_tileset.panTo(coord);if(this.panTo.caller.caller !=_actionStack.undoAction)if(this.panTo.caller.caller !=_actionStack.redoAction)_actionStack.addAction(new IWMapActionMove(offset));};this.panBy=function(offset,undoable){_tileset.panBy(offset);if(undoable||typeof undoable=='undefined'){_actionStack.addAction(new IWMapActionMove(offset));}
};this.setZoom=function(zoomLevel,undoable){var oldBounds=this.getBounds();_tileset.setZoomLevel(zoomLevel,true);if(undoable||typeof undoable=='undefined'){_actionStack.addAction(new IWMapActionZoom(oldBounds,this.getBounds()));}
};this.isZooming=function(){return _tileset.isZooming()||_tileset.oZoomObject.hasZoomContainer();};this.zoomIn=function(undoable){var oldBounds=this.getBounds();if(_tileset.zoomIn()){if(undoable||typeof undoable=='undefined'){_actionStack.addAction(new IWMapActionZoom(oldBounds,this.getBounds()));}
return true;}
return false;};this.zoomOut=function(undoable){var oldBounds=this.getBounds();if(_tileset.zoomOut()){if(undoable||typeof undoable=='undefined'){_actionStack.addAction(new IWMapActionZoom(oldBounds,this.getBounds()));}
return true;}
return false;};this.setOpticalZoomStep=function(tileSizeInMeter){if(!_isOpticalZooming){return false;}
return _tileset.oZoomObject.opticalZoom(tileSizeInMeter);}
this.startOpticalZoom=function(){if(!_isOpticalZooming){_tileset.createZoomDIV();_isOpticalZooming=true;return true;}
return false;}
this.endOpticalZoom=function(step){if(_isOpticalZooming){_isOpticalZooming=false;return _tileset.endOpticalZoom(step);}
return null;}
this.setMapType=function(mapType,undoable){var bAvailable=false;var mapTypes=_options.getMapTypes();for(var n=0;n<mapTypes.length;n++){if(mapTypes[n].getType()==mapType.getType()){bAvailable=true;break;}
}
if(!bAvailable){_logger.debug('Map type ' + mapType.getName()+ ' is not available');return false;}
var mapTypeOld=_tileset.getCurrentMapType();_tileset.setMapType(mapType,true);if(undoable||typeof undoable=='undefined')_actionStack.addAction(new IWMapActionTypeChange(mapTypeOld,mapType));_logger.debug('New map type is ' + mapType.toString());return true;}
this.fromCoordinateToPixel=function(coord){return _tileset.fromCoordinateToPixel(coord);};this.fromPixelToCoordinate=function(point){return _tileset.fromPixelToCoordinate(point);};this.savePosition=function(){_savedCenter=this.getCenter();_savedZoom=this.getZoom();_logger.debug('Position saved');};this.returnToSavedPosition=function(){if(_savedCenter&&_savedZoom){this.setCenter(_savedCenter,_savedZoom);_logger.debug('Returning to saved position');}
else
{_logger.debug('No position saved yet');}
};this.undo=function(){_actionStack.undoAction();};this.redo=function(){_actionStack.redoAction();};this.addLayer=function(layer){for(var i=0;i<_layers.length;i++){if(layer==_layers[i]){_layers[i]=layer;return;}
}
_layers.push(layer);};this.removeLayerByName=function(layerName){for(var i=0;i<_layers.length;i++){if(layerName==_layers[i].getName()){var removeLayer=_layers[i];_layers.splice(i,1);removeLayer.triggerOnRemove();return removeLayer;}
}
return null;};this.removeLayer=function(layer){for(var i=0;i<_layers.length;i++){if(layer==_layers[i]){var removeLayer=_layers[i];_layers.splice(i,1);removeLayer.triggerOnRemove();break;}
}
};this.redraw=function(){_tileset.showLabels(true);};this.getLayers=function(){return _layers;};this.getSessionId=function(){return iwconst.SESSION_ID;};this.getClippingContainer=function(){return _divClipping;};this.getWindowOverlayContainer=function(){return _divWindowOverlay;};this.getOverlayContainer=function(){return _divOverlay;};this.setBoundsConstraint=function(bounds){_tileset.getBoundsConstraintManager().setBoundsConstraint(bounds);}
this.getBoundsConstraint=function(){return _tileset.getBoundsConstraintManager().getBoundsConstraint();}
this.toString=function(){return 'IWMap';};this.triggerOnMouseWheel=function(event){if(!event){event=window.event;}
var delta=0;if(event.wheelDelta){delta=(event.wheelDelta/120);if(window.opera){delta=-delta;}
}
else if(event.detail){delta=-event.detail/3;}
if(this.getOptions().getMouseWheelAction()==IWMapOptions.CONTROL_ZOOM){_mouseWheelClosure(event,delta);}
var mouseWheelEvent=new IWMouseWheelEvent();mouseWheelEvent.delta=delta;IWEventManager.trigger(this,'onmousewheel',mouseWheelEvent);};this.triggerOnMouseDown=function(event){IWEventManager.trigger(this,'onmousedown',event);};this.triggerOnMouseUp=function(event){IWEventManager.trigger(this,'onmouseup',event);};this.triggerOnMouseMove=function(event){IWEventManager.trigger(this,'onmousemove',event);};this.triggerOnMouseStop=function(event){IWEventManager.trigger(this,'onmousestop',event);};this.triggerOnClick=function(event){_clickTimestamp=new Date().getTime();_clickTimeout=null;if(_isOnClickEvent){IWEventManager.trigger(this,'onclick',event);}
};this.triggerAfterInitialized=function(event){IWEventManager.trigger(this,'afterinitialized',event);};this.triggerAfterCentered=function(event){IWEventManager.trigger(this,'aftercentered',event);};this.triggerBeforeMove=function(event){IWEventManager.trigger(this,'beforemove',event);};this.triggerOnMove=function(event){IWEventManager.trigger(this,'onmove',event);};this.triggerAfterMove=function(event){IWEventManager.trigger(this,'aftermove',event);};this.triggerBeforeZoom=function(){IWEventManager.trigger(this,'beforezoom',null);};this.triggerOnZoom=function(event){IWEventManager.trigger(this,'onzoom',event);};this.triggerAfterZoom=function(){IWEventManager.trigger(this,'afterzoom',null);};this.triggerAfterMapTypeChanged=function(event){IWEventManager.trigger(this,'aftermaptypechanged',event);};this.triggerAfterMapTypesChanged=function(event){IWEventManager.trigger(this,'aftermaptypeschanged',event);};this.triggerAfterMapTypeAvailabilityChanged=function(event){IWEventManager.trigger(this,'aftermaptypeavailabilitychanged',event);};this.triggerAfterResized=function(event){var size=event.newSize;var width=parseInt(_container.style.width);var height=parseInt(_container.style.height);if(size.getWidth()!=width||size.getHeight()!=height){resize(size);_layoutManager.redraw();IWEventManager.trigger(this,'afterresized',event);}
};this.triggerAfterMouseControlChanged=function(event){IWEventManager.trigger(this,'aftermousecontrolchanged',event);};this.triggerAfterLanguageChanged=function(event){IWEventManager.trigger(this,'afterlanguagechanged',event);};this.triggerAfterCopyrightChanged=function(event){IWEventManager.trigger(this,'aftercopyrightchanged',event);};this.triggerAfterMapTypesChanged=function(event){IWEventManager.trigger(this,'aftermaptypeschanged',event);};function wheelZoom(event,nDelta){if(_tileset.isZooming())return;if(!event)event=window.event;if(_timeoutWheel==null){self.triggerBeforeZoom();_tileset.createZoomDIV();_iCurrectWheelstep=self.getZoom();_oldZoomBounds=self.getBounds();var listener=IWEventManager.addListener(self,'afterzoom',function(e){var action=new IWMapActionZoom(_oldZoomBounds,self.getBounds());_actionStack.addAction(action);IWEventManager.removeListener(listener);}
);}
else
{window.clearTimeout(_timeoutWheel);}
var mapType=self.getCurrentMapType();_iCurrectWheelstep=Math.min(Math.max(_iCurrectWheelstep - nDelta,mapType.getMaxLevel()),mapType.getMinLevel());var iSizeMeter=iwconst.A_TILESIZE_METER[_iCurrectWheelstep];var zoomFactor=_tileset.nTilesizeMeter/iSizeMeter;_timeoutWheel=window.setTimeout(function(){this.loadZoomMap();_timeoutWheel=null;}.iwclosure(_tileset),500
);_tileset.oZoomObject.opticalZoom(iSizeMeter);if(event.preventDefault){event.preventDefault();}
}
function prepareMouseZooming(mouseEvent){if(IWLockManager.lock(self)){_startZoomPosition=mouseEvent.position;var onMouseMoveListener=IWEventManager.addListener(self,'onmousemove',function(mouseEvent){if(self.getOptions().getSize().containsPoint(mouseEvent.position)){if(_divZoomingAndDragging.style.cursor !='crosshair'){_divZoomingAndDragging.style.cursor='crosshair';}
redrawZoomingBox(mouseEvent);}
}
);var onMouseUpListener=IWEventManager.addListener(self,'onmouseup',function(mouseEvent){_divZoomBox.style.visibility='hidden';IWEventManager.removeListener(onMouseMoveListener);IWEventManager.removeListener(onMouseUpListener);onMouseMoveListener=null;onMouseUpListener=null;_divZoomingAndDragging.style.cursor='auto';_tileset.mouseZoom(_startZoomPosition,mouseEvent.position);IWLockManager.unlock(self);}
);}
}
function redrawZoomingBox(mouseEvent){var x1=_startZoomPosition.getX();var y1=_startZoomPosition.getY();var x2=mouseEvent.position.getX();var y2=mouseEvent.position.getY();var nBoxPixelLeft=Math.min(x2,x1)+ 2;var nBoxPixelRight=Math.max(x2,x1);var nBoxPixelWidth=Math.max(nBoxPixelRight - nBoxPixelLeft,0);var nBoxPixelTop=Math.min(y2,y1)+ 2;var nBoxPixelBottom=Math.max(y2,y1);var nBoxPixelHeight=Math.max(nBoxPixelBottom - nBoxPixelTop,0);with(_divZoomBox.style){visibility='visible';height=nBoxPixelHeight	+ 'px';width=nBoxPixelWidth	+ 'px';top=nBoxPixelTop + 'px';left=nBoxPixelLeft + 'px';}
var textNode=_divZoomBox.firstChild.firstChild.firstChild;textNode.innerHTML=(x1<x2 ? '+':'-');}
function prepareMouseDragging(mouseEvent){if(IWLockManager.lock(self)){_bMousePressed=true;if(_dragOnMouseMoveListener !=null)IWEventManager.removeListener(_dragOnMouseMoveListener);if(_dragOnMouseUpListener !=null)IWEventManager.removeListener(_dragOnMouseUpListener);var moveEvent=new IWMoveEvent();moveEvent.position=mouseEvent.position;moveEvent.lastPosition=mouseEvent.lastPosition;moveEvent.offset=new IWPoint(0,0);self.triggerBeforeMove(moveEvent);_startDragPosition=mouseEvent.position;_divZoomingAndDragging.style.cursor='pointer';_dragOnMouseMoveListener=IWEventManager.addDOMListener(_divZoomingAndDragging,'onmousemove',_dragClosure);_dragOnMouseUpListener=IWEventManager.addDOMListener(_divZoomingAndDragging,'onmouseup',_dropClosure);}
}
function dragMap(mouseEvent){if(_options.getSize().containsPoint(mouseEvent.position)){if(_divZoomingAndDragging.style.cursor !='pointer'){_divZoomingAndDragging.style.cursor='pointer';}
_tileset.move(mouseEvent.offset);}
}
function dropMap(mouseEvent){_bMousePressed=false;IWEventManager.removeListener(_dragOnMouseMoveListener);IWEventManager.removeListener(_dragOnMouseUpListener);_dragOnMouseMoveListener=null;_dragOnMouseUpListener=null;_divZoomingAndDragging.style.cursor='auto';_tileset.showLabels(true);var moveEvent=new IWMoveEvent();moveEvent.position=mouseEvent.position;moveEvent.lastPosition=_startDragPosition;var moveX=mouseEvent.position.getX()- _startDragPosition.getX();var moveY=mouseEvent.position.getY()- _startDragPosition.getY();moveEvent.offset=new IWPoint(moveX,moveY);if(_tileset.needsReload()){_tileset.reload();}
self.triggerAfterMove(moveEvent);}
function buildGUI(container){var newWidth=parseInt(container.style.width)+ 'px';var newHeight=parseInt(container.style.height)+ 'px';iw.empty(container);_divCSS.className='iwmapcss';_divCSS.style.position='relative';_divCSS.style.top='0px';_divCSS.style.left='0px';iw.append(container,_divCSS);iw.append(container.firstChild,_divClipping);_divClipping.id='divClipping';_divClipping.name='divClipping';with(_divClipping.style){position='relative';left='0px';top='0px';width=newWidth;height=newHeight;overflow='hidden';clip='rect(0px ' + newWidth + ' ' + newHeight + ' 0px)';}
iw.append(_divClipping,_divLabels);_divLabels.id='divLabels';with(_divLabels.style){position='absolute';left='0px';top='0px';zIndex='2';width=newWidth;height=newHeight;}
iw.append(_divLabels,_imgLabels);_imgLabels.id='imgLabels';with(_imgLabels.style){width=newWidth;height=newHeight;}
_imgLabels.src=iwconst.GLOBAL_APP_URL + 'img/blank.gif';iw.append(_divClipping,_divLabels2);_divLabels2.id='divLabels2';with(_divLabels2.style){position='absolute';left='0px';top='0px';zIndex='2';width=newWidth;height=newHeight;}
iw.append(_divLabels2,_imgLabels2);_imgLabels2.id='imgLabels2';with(_imgLabels2.style){width=newWidth;height=newHeight;}
_imgLabels2.src=iwconst.GLOBAL_APP_URL + 'img/blank.gif';iw.append(_divClipping,_divZoomingAndDragging);_divZoomingAndDragging.id='divZoomingAndDragging';with(_divZoomingAndDragging.style){position='absolute';left='0px';top='0px';zIndex='3';width=newWidth;height=newHeight;}
iw.append(_divZoomingAndDragging,_imgZoomingAndDragging);_imgZoomingAndDragging.id='imgZoomingAndDragging';_imgZoomingAndDragging.src=iwconst.GLOBAL_APP_URL + 'img/blank.gif';_imgZoomingAndDragging.galleryimg='no';_imgZoomingAndDragging.style.width=newWidth;_imgZoomingAndDragging.style.height=newHeight;iw.append(_divZoomingAndDragging,_divOverlaysAndControls);_divOverlaysAndControls.id='divOverlaysAndControls';with(_divOverlaysAndControls.style){position='absolute';left='0px';top='0px';width='0px';height='0px';}
iw.append(_divOverlaysAndControls,_divControl);_divControl.id='divControl';with(_divControl.style){position='absolute';left='0px';top='0px';width=newWidth;height=newHeight;zIndex='0';}
iw.append(_divControl,_divOverlay);_divOverlay.id='divOverlay';with(_divOverlay.style){position='absolute';left='0px';top='0px';width='0px';height='0px';zIndex='0';}
iw.append(_divControl,_divZoomBox);_divZoomBox.id='divZoomBox';with(_divZoomBox.style){backgroundColor='#ffffff';opacity='0.6';filter='alpha(opacity=60)';position='absolute';overflow='hidden';zIndex='0';}
iw.append(_divOverlaysAndControls,_divWindowOverlay);_divWindowOverlay.id='divWindowOverlay';with(_divWindowOverlay.style){position='absolute';left='0px';top='0px';zIndex='1';}
IWEventManager.addListener(self,'onmove',function(event){var vis=_divWindowOverlay.style.display;if(IWBrowserDetect.browser !='Explorer'||IWBrowserDetect.version>=7){_divWindowOverlay.style.display='none';}
_divWindowOverlay.style.top=parseInt(_divWindowOverlay.style.top)+ event.offset.getY()+ 'px';_divWindowOverlay.style.left=parseInt(_divWindowOverlay.style.left)+ event.offset.getX()+ 'px';_divWindowOverlay.style.display=vis;}
);var divHorizon=iw.create('div');iw.append(_divZoomBox,divHorizon);divHorizon.style.position='absolute';divHorizon.style.top='50%';divHorizon.style.left='0px';divHorizon.style.width='100%';divHorizon.style.height='1px';divHorizon.style.overflow='visible';var divContent=iw.create('div');iw.append(divHorizon,divContent);divContent.style.marginTop='-58px';divContent.style.paddingTop='48px';divContent.style.marginLeft='-48px';divContent.style.position='absolute';divContent.style.top='50%';divContent.style.left='50%';divContent.style.width='96px';divContent.style.height='96px';divContent.style.textAlign='center';divContent.style.color='#d0d0d0';divContent.style.fontSize='96pt';divContent.style.overflow='visible';iw.append(divContent,'+');_divOverlay.oncontextmenu=function(){return false;};_divOverlay.onselectstart=function(){return false;};_divOverlay.ondrag=function(){return false;};_divControl.oncontextmenu=function(){return false;};_divControl.onselectstart=function(){return false;};_divControl.ondrag=function(){return false;};_divOverlaysAndControls.oncontextmenu=function(){return false;};_divOverlaysAndControls.onselectstart=function(){return false;};_divOverlaysAndControls.ondrag=function(){return false;};_divWindowOverlay.oncontextmenu=function(){return false;};_divWindowOverlay.onselectstart=function(){return false;};_divWindowOverlay.ondrag=function(){return false;};_divZoomingAndDragging.oncontextmenu=function(){return false;};_divZoomingAndDragging.onselectstart=function(){return false;};_divZoomingAndDragging.ondrag=function(){return false;};IWEventManager.addDOMListener(_divClipping,'onmousemove',_onmousestopClosure);IWEventManager.addDOMListener(_divClipping,'onmouseout',function(e){window.clearTimeout(_mouseStopTimeout);}.iwclosure(self)
);IWEventManager.addDOMListener(_divZoomingAndDragging,'onmousedown',function(event){_isOnClickEvent=false;_divZoomingAndDragging.style.cursor='pointer';var mouseEvent=_mouseAdapter.toMouseEvent(event,_container);_onMouseDownPosition=mouseEvent.position;if(mouseEvent.button==IWButton.LEFT){var leftMouseAction=this.getOptions().getLeftMouseAction();if(leftMouseAction==IWMapOptions.CONTROL_MOVE){prepareMouseDragging(mouseEvent);}
else if(leftMouseAction==IWMapOptions.CONTROL_ZOOM){prepareMouseZooming(mouseEvent);}
}
else if(mouseEvent.button==IWButton.RIGHT){var rightMouseAction=this.getOptions().getRightMouseAction();if(rightMouseAction==IWMapOptions.CONTROL_MOVE){prepareMouseDragging(mouseEvent);}
else if(rightMouseAction==IWMapOptions.CONTROL_ZOOM){prepareMouseZooming(mouseEvent);}
}
this.triggerOnMouseDown(mouseEvent);}.iwclosure(self)
);IWEventManager.addDOMListener(_divZoomingAndDragging,'onmouseup',function(event){_divZoomingAndDragging.style.cursor='auto';var mouseEvent=_mouseAdapter.toMouseEvent(event,_container);if(_onMouseDownPosition&&_onMouseDownPosition.distanceFrom(mouseEvent.position)<2){_isOnClickEvent=true;}
_onMouseDownPosition=null;this.triggerOnMouseUp(mouseEvent);}.iwclosure(self)
);IWEventManager.addDOMListener(_divZoomingAndDragging,'onclick',function(event){window.clearTimeout(_mouseStopTimeout);_clickTimestamp=new Date().getTime();if(_clickTimeout){return;}
if(_dblClickTimestamp){var time=_clickTimestamp - _dblClickTimestamp;if(time<10){return;}
}
if(!event)event=window.event;var mouseEvent=_mouseAdapter.toMouseEvent(event,_container);_clickTimeout=window.setTimeout(function(){self.triggerOnClick(mouseEvent);}.iwclosure(mouseEvent),200);}.iwclosure(self)
);IWEventManager.addDOMListener(_divZoomingAndDragging,'ondblclick',function(event){_dblClickTimestamp=new Date().getTime();if(_clickTimeout){window.clearTimeout(_clickTimeout);_clickTimeout=null;}
if(this.getOptions().getDoubleClickAction()==IWMapOptions.CONTROL_ZOOM){var mouseEvent=_mouseAdapter.toMouseEvent(event,_container);var pixel=mouseEvent.position;var pixelNW=pixel.add(new IWPoint(-20,-20));var pixelSE=pixel.add(new IWPoint(20,20));var coord=this.fromPixelToCoordinate(pixel);var coordNW=this.fromPixelToCoordinate(pixelNW);var coordSE=this.fromPixelToCoordinate(pixelSE);var maxLevel=this.getCurrentMapType().getMaxLevel();var newZoomLevel=this.getBoundsZoomlevel(new IWBounds(coordNW,coordSE));if(newZoomLevel>=maxLevel){_divZoomingAndDragging.style.cursor='pointer';_tileset.mouseZoom(pixelNW,pixelSE);IWEventManager.addListener(this,'afterzoom',function(e){_divZoomingAndDragging.style.cursor='auto'}.iwclosure(this));}
}
}.iwclosure(self)
);IWEventManager.addDOMListener(_divZoomingAndDragging,'onmousewheel',function(e){self.triggerOnMouseWheel(e);});IWEventManager.addDOMListener(_divZoomingAndDragging,'DOMMouseScroll',function(e){self.triggerOnMouseWheel(e);});}
function resize(size){var newWidth=size.getWidth()+ 'px';var newHeight=size.getHeight()+ 'px';_container.style.width=newWidth;_container.style.height=newHeight;if(_tileset !=null&&_tileset.getCenter()!=null){_tileset.Hide();_tileset.showLabels(false);_tileset.oAsynchroneTransferObject.AbortAllRequests();}
with(_divCSS.style){width=newWidth;height=newHeight;}
with(_divClipping.style){clip='rect(0px,' + newWidth + ',' + newHeight + ',0px)';width=newWidth;height=newHeight;}
with(_divLabels.style){width=newWidth;height=newHeight;}
with(_divLabels2.style){width=newWidth;height=newHeight;}
with(_imgLabels.style){width=newWidth;height=newHeight;}
with(_imgLabels2.style){width=newWidth;height=newHeight;}
with(_divZoomingAndDragging.style){width=newWidth;height=newHeight;}
with(_divOverlaysAndControls.style){width=newWidth;height=newHeight;}
with(_imgZoomingAndDragging.style){width=newWidth;height=newHeight;}
with(_divControl.style){width=newWidth;height=newHeight;}
_tileset.createTiles();_tileset.oZoomObject=new IWZoom(_tileset);if(_tileset !=null&&_tileset.getCenter()!=null){_tileset.PlaceTiles();_tileset.LoadWholeMap();}
}
if(!container){alert('Das angegebene Karten-Element wurde nicht gefunden');return false;}
if(container.style.position==''){container.style.position='relative';}
var width=parseInt(container.style.width);var height=parseInt(container.style.height);if(_options.getSize()==null){if(!isNaN(width)&&!isNaN(height)&&width>0&&height>0){_options.setSize(new IWSize(width,height));}
else
{_options.setSize(new IWSize(600,400));}
}
buildGUI(container);_overlayManager=new IWOverlayManager(this,_divOverlay);_tileset=new IWTileset(this);this.getLayoutManager().getLayer(0).addControl(new IWCopyrightControl(this),IWAlignment.RIGHT,IWAlignment.BOTTOM,0,0);IWEventManager.addListener(_tileset,'onclick',function(e){self.triggerOnClick(e);});IWEventManager.addListener(_tileset,'ontypeavailabilitychange',function(e){self.triggerAfterMapTypeAvailabilityChanged(e);});IWEventManager.addListener(this,'beforezoom',function(e){window.clearTimeout(_timeoutWheel);}
);}
function IWMapAction(){this.isMapAction=function(){return true;};this.redo=function(){throw('Method IWMapAction.redo is not implemented.');};this.undo=function(){throw('Method IWMapAction.undo is not implemented.');};this.toString=function(){throw('Method IWMapAction.toString is not implemented.');};}
function IWMapActionMove(offset){IWMapAction.call(this);var _offset=offset;this.redo=function(map){map.panBy(_offset,false);};this.undo=function(map){map.panBy(new IWPoint(-_offset.getX(),-_offset.getY()),false);};this.toString=function(){return 'IWMapActionMove ' + _offset.toString();};}
function IWMapActionTypeChange(oldType,newType){IWMapAction.call(this);var _oldType=oldType;var _newType=newType;this.redo=function(map){map.setMapType(_newType,false);};this.undo=function(map){map.setMapType(_oldType,false);};this.toString=function(){return 'IWMapActionTypeChange(' + _oldType.toString()+ ',' + _newType.toString()+ ')';};}
function IWMapActionZoom(oldBounds,newBounds){IWMapAction.call(this);var _oldBounds=oldBounds;var _newBounds=newBounds;this.redo=function(map){var zoom=map.getBoundsZoomlevel(_newBounds);map.setZoom(map.getBoundsZoomlevel(_newBounds));};this.undo=function(map){var zoom=map.getBoundsZoomlevel(_oldBounds);map.setZoom(zoom);};this.toString=function(){return '[IWMapActionZoom]' +'old bounds:' + _oldBounds.toString()+ ',' +'new bounds:' + _newBounds.toString();};}
function IWMapElement(parent){var self=this;var _container=null;var _parent=parent;var _logger=log4javascript.getLogger("js.map");this.isDisplayed=function(){var e=_container.parentNode;while(e){if(e==parent)return true;e=e.parentNode;}
return false;};this.getParent=function(){return _parent;};this.setParent=function(parent){_parent=parent;};this.isVisible=function(){return(_container.style.visibility !='hidden');};this.setVisible=function(visible){if(visible==true){_container.style.visibility='visible';_container.style.display='block';}
else if(visible==false){_container.style.visibility='hidden';_container.style.display='none';}
};this.setPrintable=function(printable){if(printable==false){_container.className='iwnoprint';}
else if(printable==true){_container.removeAttribute("className");}
};this.isPrintable=function(){return _container.className !='iwnoprint';};this.getContainer=function(){return _container;};this.setId=function(id){_container.id=id;};this.getId=function(){return _container.id;};this.onContextMenu=function(event){};this.onMouseUp=function(event){};this.onMouseDown=function(event){};this.onMouseMove=function(event){};this.onMouseOut=function(event){};this.onMouseOver=function(event){};this.onClick=function(event){};this.onDblClick=function(event){};this.onSelect=function(event){};this.beforeAppend=function(){};this.afterAppend=function(){};this.beforeRemove=function(){};this.afterRemove=function(){};this.destroyMapElement=function(){iw.destroy(_container);IWEventManager.clearInstanceListeners(_container);_container=null;};function handleMouseEvent(eventName,event){if(!event){event=window.event;}
switch(eventName){case 'oncontextmenu':noPropagation(event);self.onContextMenu(event);break;case 'onmouseup':self.onMouseUp(event);break;case 'onmousedown':noPropagation(event);self.onMouseDown(event);break;case 'onmousemove':event.returnValue=false;self.onMouseMove(event);break;case 'onmouseout':noPropagation(event);self.onMouseOut(event);break;case 'onmouseover':noPropagation(event);self.onMouseOver(event);break;case 'onclick':noPropagation(event);self.onClick(event);break;case 'ondblclick':noPropagation(event);self.onDblClick(event);break;case 'onselect':self.onSelect(event);break;}
}
_container=iw.create('div');_container.style.position='absolute';IWEventManager.addDOMListener(_container,'oncontextmenu',function(e){handleMouseEvent('oncontextmenu',e);});IWEventManager.addDOMListener(_container,'onmouseup',function(e){handleMouseEvent('onmouseup',e);});IWEventManager.addDOMListener(_container,'onmousedown',function(e){handleMouseEvent('onmousedown',e);});IWEventManager.addDOMListener(_container,'onmousemove',function(e){handleMouseEvent('onmousemove',e);});IWEventManager.addDOMListener(_container,'onmouseout',function(e){handleMouseEvent('onmouseout',e);});IWEventManager.addDOMListener(_container,'onmouseover',function(e){handleMouseEvent('onmouseover',e);});IWEventManager.addDOMListener(_container,'ondblclick',function(e){handleMouseEvent('ondblclick',e);});IWEventManager.addDOMListener(_container,'onclick',function(e){handleMouseEvent('onclick',e);});}
function IWMapOptions(map){var _size=null;var _language='en';var _applicationCopyright='';var _leftMouseAction=IWMapOptions.CONTROL_ZOOM;var _rightMouseAction=IWMapOptions.CONTROL_MOVE;var _mouseWheelAction=IWMapOptions.CONTROL_ZOOM;var _doubleClickAction=IWMapOptions.CONTROL_ZOOM;var _mapTypes=[
new IWMapTypeNormal(map),new IWMapTypeAir(map),new IWMapTypeHybrid(map),new IWMapTypeBirdsView(map)
];this.getSize=function(){return _size;};this.getMapTypes=function(){return _mapTypes;};this.getLanguage=function(){return _language;};this.getApplicationCopyright=function(){return _applicationCopyright;};this.setSize=function(size){var event=new IWResizeEvent();event.oldSize=_size;event.newSize=size;_size=size;map.triggerAfterResized(event);};this.setMapTypes=function(mapTypes){_mapTypes=mapTypes;var event=new IWMapTypesChangedEvent(_mapTypes)
event.mapTypes=_mapTypes;map.triggerAfterMapTypesChanged(event);};this.setLanguage=function(language){_language=language;var event=new IWLanguageChangedEvent();event.language=_language;map.triggerAfterLanguageChanged(event);};this.setApplicationCopyright=function(applicationCopyright){_applicationCopyright=applicationCopyright;var event=new IWCopyrightChangedEvent();event.copyright=_applicationCopyright;map.triggerAfterCopyrightChanged(event);};this.getLeftMouseAction=function(){return _leftMouseAction;};this.getRightMouseAction=function(){return _rightMouseAction;};this.getMouseWheelAction=function(){return _mouseWheelAction;};this.getDoubleClickAction=function(){return _doubleClickAction;};this.setLeftMouseAction=function(action){if(action !=IWMapOptions.CONTROL_MOVE&&action !=IWMapOptions.CONTROL_ZOOM&&action !=IWMapOptions.CONTROL_NONE)throw('Invalid action:' + action);_leftMouseAction=action;var event=new IWMouseControlChangedEvent();event.mouseAction='left';event.action=action;map.triggerAfterMouseControlChanged(event);};this.setRightMouseAction=function(action){if(action !=IWMapOptions.CONTROL_MOVE&&action !=IWMapOptions.CONTROL_ZOOM&&action !=IWMapOptions.CONTROL_NONE)throw('Invalid action:' + action);_rightMouseAction=action;var event=new IWMouseControlChangedEvent();event.mouseAction='right';event.action=action;map.triggerAfterMouseControlChanged(event);};this.setMouseWheelAction=function(action){if(action !=IWMapOptions.CONTROL_ZOOM&&action !=IWMapOptions.CONTROL_NONE)throw('Invalid action:' + action);_mouseWheelAction=action;var event=new IWMouseControlChangedEvent();event.mouseAction='wheel';event.action=action;map.triggerAfterMouseControlChanged(event);};this.setDoubleClickAction=function(action){if(action !=IWMapOptions.CONTROL_ZOOM&&action !=IWMapOptions.CONTROL_NONE)throw('Invalid action:' + action);_doubleClickAction=action;var event=new IWMouseControlChangedEvent();event.mouseAction='doubleclick';event.action=action;map.triggerAfterMouseControlChanged(event);};}
IWMapOptions.CONTROL_NONE=0;IWMapOptions.CONTROL_MOVE=1;IWMapOptions.CONTROL_ZOOM=2;function IWMapType(){this.getName=function(){throw('IWMapType.getName:Method not implemented');};this.getCopyright=function(){throw('IWMapType.getCopyright:Method not implemented');};this.getImageFormat=function(){throw('IWMapType.getImageFormat:Method not implemented');};this.getType=function(){throw('IWMapType.getType:Method not implemented');};this.getMaxLevel=function(){throw('IWMapType.getMaxLevel:Method not implemented');};this.getPreferredLevel=function(){throw('IWMapType.getPreferredLevel:Method not implemented');};this.getMinLevel=function(){throw('IWMapType.getMinLevel:Method not implemented');};this.getRequestParameters=function(){throw('IWMapType.getRequestParameters:Method not implemented');};this.getProjection=function(){throw('IWMapType.getProjection:Method not implemented');};this.hasLabels=function(){throw('IWMapType.hasLabels:Method not implemented');};this.toString=function(){return 'IWMapType';};this.isAvailable=function(){throw('IWMapType.isAvailable:Method not implemented');};}
function IWMapTypeAir(map){IWMapType.call(this);var _map=map;var _sMapType='air';var _sName='Luftbilder';var _sCopyright='GeoContent';var _sImageFormat='jpg';var _iMaxLevel=4;var _iPreferredLevel=4;var _iMinLevel=16;var _projection=new IWParallelProjection(_map);this.getName=function(){return _sName;};this.getCopyright=function(){return _sCopyright;};this.getImageFormat=function(){return _sImageFormat;};this.getType=function(){return _sMapType;};this.getMaxLevel=function(){return _iMaxLevel;};this.getPreferredLevel=function(){return _iPreferredLevel;};this.getMinLevel=function(){return _iMinLevel;};this.getRequestParameters=function(){return '';};this.getProjection=function(){return _projection;};this.hasLabels=function(){return false;};this.toString=function(){return _sMapType;};this.isAvailable=function(){return true;};}
IWMapTypeBirdsView.NORTH=0;IWMapTypeBirdsView.EAST=1;IWMapTypeBirdsView.SOUTH=2;IWMapTypeBirdsView.WEST=3;function IWMapTypeBirdsView(map){IWMapType.call(this);var _map=map;var _sMapType='birds-eye';var _sName='Vogelperspektive';var _sCopyright='Blom&nbsp;ASA';var _sImageFormat='jpg';var _iDirection=0;var _iMaxLevel=0;var _iPreferredLevel=0;var _iMinLevel=2;var _bAvailable=false;var _projection=new IWCentralProjection(_map);this.getRequestParameters=function(){switch(_iDirection){case IWMapTypeBirdsView.NORTH:return '&direction=N';case IWMapTypeBirdsView.EAST:return '&direction=E';case IWMapTypeBirdsView.SOUTH:return '&direction=S';case IWMapTypeBirdsView.WEST:return '&direction=W';default:return '';}
};this.getDirection=function(){return _iDirection;};this.setDirection=function(iDirection){if(iDirection>=0&&iDirection<=3){_iDirection=iDirection;}
};this.getName=function(){return _sName;};this.getCopyright=function(){return _sCopyright;};this.getImageFormat=function(){return _sImageFormat;};this.getType=function(){return _sMapType;};this.getMaxLevel=function(){return _iMaxLevel;};this.getPreferredLevel=function(){return _iPreferredLevel;};this.getMinLevel=function(){return _iMinLevel;};this.getProjection=function(){return _projection;};this.hasLabels=function(){return false;};this.toString=function(){return _sMapType;};this.isAvailable=function(){return _bAvailable;};IWEventManager.addListener(_map,'aftermaptypeavailabilitychanged',function(event){if(event.type==_sMapType){_bAvailable=event.available;}
}
);}
function IWMapTypeHybrid(map){IWMapType.call(this);var _map=map;var _sMapType='hybrid';var _sName='Hybrid';var _sCopyright='GeoContent,&nbsp;Tele&nbsp;Atlas';var _sImageFormat='jpg';var _iMaxLevel=4;var _iPreferredLevel=4;var _iMinLevel=16;var _projection=new IWParallelProjection(_map);this.getName=function(){return _sName;};this.getCopyright=function(){return _sCopyright;};this.getImageFormat=function(){return _sImageFormat;};this.getType=function(){return _sMapType;};this.getMaxLevel=function(){return _iMaxLevel;};this.getPreferredLevel=function(){return _iPreferredLevel;};this.getMinLevel=function(){return _iMinLevel;};this.getRequestParameters=function(){return '';};this.getProjection=function(){return _projection;};this.hasLabels=function(){return true;};this.toString=function(){return _sMapType;};this.isAvailable=function(){return true;};}
function IWMapTypeNormal(map){IWMapType.call(this);var _map=map;var _sMapType='map';var _sName='Normale Karte';var _sCopyright='Tele&nbsp;Atlas';var _sImageFormat='gif';var _iMaxLevel=0;var _iPreferredLevel=3;var _iMinLevel=16;var _projection=new IWParallelProjection(_map);this.getName=function(){return _sName;};this.getCopyright=function(){return _sCopyright;};this.getImageFormat=function(){return _sImageFormat;};this.getType=function(){return _sMapType;};this.getMaxLevel=function(){return _iMaxLevel;};this.getPreferredLevel=function(){return _iPreferredLevel;};this.getMinLevel=function(){return _iMinLevel;};this.getRequestParameters=function(){return '';};this.getProjection=function(){return _projection;};this.hasLabels=function(){return true;};this.toString=function(){return _sMapType;};this.isAvailable=function(){return true;};}
function IWOverlay(map,coordinate){var _map=map;var _coordinate=coordinate;var _hotspot=new IWPoint(0,0);var _self=this;var _missingOnMouseOutEvent=false;IWMapElement.call(this,iw.search(map.getContainer(),'divOverlay'));var _container=this.getContainer();IWDraggable.call(this,_container,map.getContainer());this.setDraggableContainer(_container);this.setHotspot=function(hotspot){iw.strict([IWPoint],[hotspot]);_hotspot=hotspot;};this.getHotspot=function(){return _hotspot;};this.setCoordinate=function(coordinate){iw.strict([IWCoordinate],[coordinate]);_coordinate=coordinate;};this.getCoordinate=function(){return _coordinate;};this.beforeAppend=function(){};this.afterAppend=function(){};this.beforeRemove=function(){if(_missingOnMouseOutEvent){iw.fireMouseEvent(_container,'mouseout');}
};this.afterRemove=function(){};this.redraw=function(){this.triggerBeforeRedraw();var position=_map.fromCoordinateToPixel(this.getCoordinate());var div=this.getContainer();if(div.parentNode&&div.parentNode.parentNode){var divOverlay=div.parentNode.parentNode;div.style.top=position.getY()- this.getHotspot().getY()- parseInt(divOverlay.style.top)+ 'px';div.style.left=position.getX()- this.getHotspot().getX()- parseInt(divOverlay.style.left)+ 'px';divOverlay=null;}
this.triggerAfterRedraw();div=null;};this.triggerAfterPositionUpdated=function(event){IWEventManager.trigger(this,'afterpositionupdated',event);};this.triggerBeforeRedraw=function(){IWEventManager.trigger(this,'beforeredraw');};this.triggerAfterRedraw=function(){IWEventManager.trigger(this,'afterredraw');};this.destroyOverlay=function(){this.destroyMapElement();};IWEventManager.addDOMListener(_container,'onclick',function(e){if(!IWLockManager.isLocked(map)){IWEventManager.trigger(_self,'onclick',e);}
});IWEventManager.addDOMListener(_container,'ondblclick',function(e){if(!IWLockManager.isLocked(map)){IWEventManager.trigger(_self,'ondblclick',e);}
});IWEventManager.addDOMListener(_container,'onmouseover',function(e){if(!IWLockManager.isLocked(map)){_container.style.cursor='pointer';IWEventManager.trigger(_self,'onmouseover',e);_missingOnMouseOutEvent=true;}
});IWEventManager.addDOMListener(_container,'onmouseout',function(e){if(!IWLockManager.isLocked(map)){_container.style.cursor='auto';IWEventManager.trigger(_self,'onmouseout',e);_missingOnMouseOutEvent=false;}
});}
function IWOverlayLayer(map,parent,layer){var _self=this;var _map=map;var _parent=parent;var _container=iw.create('div');var _layer=layer;var _visibilityRange=new IWRange(0,Number.MAX_VALUE);var _visible=true;var _references=new Object();var _overlayId=1;var _divZoomingAndDragging=iw.search(map.getContainer(),'divZoomingAndDragging');this.addOverlay=function(overlay){if(overlay.overlayId==null){overlay.beforeAppend();overlay.getContainer().style.zIndex=_layer;IWEventManager.addListener(overlay,'afterdragged',function(event){var e=overlay.getContainer();var x=parseInt(e.style.left)+ overlay.getHotspot().getX();var y=parseInt(e.style.top)+ overlay.getHotspot().getY();while(e.parentNode !=null&&e.parentNode !=_divZoomingAndDragging){e=e.parentNode;if(e.style.left)x +=parseInt(e.style.left);if(e.style.top)y +=parseInt(e.style.top);}
overlay.setCoordinate(_map.fromPixelToCoordinate(new IWPoint(x,y)));overlay.triggerAfterPositionUpdated(event);}
);iw.append(_container,overlay.getContainer());overlay.redraw();addReference(overlay);overlay.afterAppend();}
};this.removeOverlay=function(overlay){if(overlay.overlayId){removeReference(overlay);overlay.beforeRemove();iw.remove(overlay.getContainer());overlay.afterRemove();}
};this.removeAllOverlays=function(){for(var p in _references){this.removeOverlay(_references[p]);}
};this.setVisibilityRange=function(range){_visibilityRange=range;};this.redraw=function(){for(p in _references){var overlay=_references[p];overlay.redraw();overlay=null;}
if(_visibilityRange.getMin()<=_map.getZoom()&&_map.getZoom()<=_visibilityRange.getMax()){this.setVisible(true);}
else
{this.setVisible(false);}
};this.getVisibilityRange=function(){return _visibilityRange;};this.setVisible=function(visible){if(visible==true){_container.style.visibility='inherit';}
else if(visible==false){_container.style.visibility='hidden';}
};this.isVisible=function(){return(_container.style.visibility !='hidden');};function addReference(overlay){overlay.overlayId=_overlayId;_references[overlay.overlayId]=overlay;_overlayId++;}
function removeReference(overlay){delete _references[overlay.overlayId];overlay.overlayId=null;}
_container.id='IWOverlayLayer_' + layer;_container.style.position='absolute';_container.style.top='0px';_container.style.left='0px';_container.style.zIndex=layer;iw.append(_parent,_container);}
function IWOverlayManager(map,container){var _self=this;var _map=map;var _container=container;var _overlayLayers=new Object;this.setVisible=function(visible){if(visible==true){_container.style.visibility='inherit';}
else if(visible==false){_container.style.visibility='hidden';}
};this.isVisible=function(){return(_container.style.visibility !='hidden');};this.getLayer=function(layer){iw.strict([Number],arguments);if(_overlayLayers[layer]==null){_overlayLayers[layer]=new IWOverlayLayer(_map,_container,layer);}
return _overlayLayers[layer];};this.removeLayer=function(layer){iw.strict([Number],arguments);var layer=_overlayLayers[layer];if(layer !=null){layer.removeAllOverlays();layer=null;}
};this.removeAllLayers=function(){for(layer in _overlayLayers){this.removeLayer(parseInt(layer));}
};this.redraw=function(){for(layer in _overlayLayers){_overlayLayers[layer].redraw();}
};this.toString=function(){return '[IWOverlayManager]';};IWEventManager.addListener(map,'onmove',function(e){var vis=_container.style.display;if(IWBrowserDetect.browser !='Explorer'||IWBrowserDetect.version>=7){_container.style.display='none';}
_container.style.top=parseInt(_container.style.top)+ e.offset.getY()+ 'px';_container.style.left=parseInt(_container.style.left)+ e.offset.getX()+ 'px';_container.style.display=vis;}
);IWEventManager.addListener(map,'aftercentered',function(e){_container.style.visibility='hidden';_self.redraw();_container.style.visibility='visible';}
);IWEventManager.addListener(map,'beforezoom',function(){_container.style.visibility='hidden';}
);IWEventManager.addListener(map,'afterzoom',function(){_self.redraw();_container.style.visibility='visible';}
);IWEventManager.addListener(_map,'afterresized',function(){_container.style.visibility='hidden';_self.redraw();_container.style.visibility='visible';}
);}function IWOverlayOld(){var _this=this;var _parent=null;var _mouseAdapter=new IWMouseAdapter();this.newContainer=function(){var _container=document.createElement("div");_container.oncontextmenu=function(e){handleMouseEvent("oncontextmenu",e);};_container.onmouseup=function(e){handleMouseEvent("onmouseup",e);};_container.onmousedown=function(e){handleMouseEvent("onmousedown",e);};_container.onmousemove=function(e){handleMouseEvent("onmousemove",e);};_container.onmouseout=function(e){handleMouseEvent("onmouseout",e);};_container.onmouseover=function(e){handleMouseEvent("onmouseover",e);};_container.onclick=function(e){handleMouseEvent("onclick",e);};_container.ondblclick=function(e){handleMouseEvent("ondblclick",e);};return _container;}
function handleMouseEvent(eventName,event){noPropagation(event);handleEvent(_mouseAdapter.toMouseEvent(event,_this.getParent()));}
function handleEvent(eventName,event){switch(eventName){case "oncontextmenu":onContextMenu(event);break;case "onmouseup":onMouseUp(event);break;case "onmousedown":nMouseDown(event);break;case "onmousemove":onMouseMove(event);break;case "onmouseout":onMouseOut(event);break;case "onmouseover":onMouseOver(event);break;case "onclick":onClick(event);break;case "ondblclick":onDblClick(event);break;case "onkeydown ":onKeyDown(event);break;case "onkeypress":onKeyPress(event);break;case "onkeyup":onKeyUp(event);break;}
}
this.getContainer=function(){alert("IWOverlay.getContainer:not implemented.");};this.getParent=function(){if(_parent==null){_parent=document.getElementById("divControl");}
return _parent;}
this.getId=function(){alert("IWOverlay.getId:not implemented.");};this.onContextMenu=function(event){};this.onMouseUp=function(event){};this.onMouseDown=function(event){};this.onMouseMove=function(event){};this.onMouseOut=function(event){};this.onMouseOver=function(event){};this.onClick=function(event){};this.onDblClick=function(event){};this.setCoordinate=function(coordinate){};this.getCoordinate=function(){};}
function IWParallelProjection(map){IWProjection.call(this);var _map=map;var _dMeterPerPixel=1;this.initialize=function(xmlDocument){var meterPerPixel=xmlDocument.getElementsByTagName('meterPerPixel')[0];_dMeterPerPixel=parseFloat(meterPerPixel.firstChild.nodeValue);};this.meterToPixel=function(coord){var centerMeter=_map.getCenter();var offsetMeter=new IWCoordinate(coord.getX()- centerMeter.getX(),coord.getY()- centerMeter.getY());var size=_map.getOptions().getSize();var centerPixel=new IWPoint(size.getWidth()/2,size.getHeight()/2);var offsetPixel=new IWPoint(offsetMeter.getX()/_dMeterPerPixel,-1*offsetMeter.getY()/_dMeterPerPixel);return new IWPoint(centerPixel.getX()+ offsetPixel.getX(),centerPixel.getY()+ offsetPixel.getY());};this.pixelToMeter=function(point){var size=_map.getOptions().getSize();var centerPixel=new IWPoint(size.getWidth()/2,size.getHeight()/2);var offsetPixel=new IWPoint(point.getX()- centerPixel.getX(),point.getY()- centerPixel.getY());var centerMeter=_map.getCenter();var offsetMeter=new IWCoordinate(offsetPixel.getX()*_dMeterPerPixel,-1*offsetPixel.getY()*_dMeterPerPixel);return new IWCoordinate(centerMeter.getX()+ offsetMeter.getX(),centerMeter.getY()+ offsetMeter.getY());};this.needsReload=function(coord,size){return false;};this.toString=function(){return '[IWParallelProjection]' +'Meter per pixel:' + _dMeterPerPixel;};}
function IWProjection(){this.initialize=function(xmlDocument){alert('Method not implemented');};this.meterToPixel=function(coord){alert('Method not implemented');return 'undefined';};this.pixelToMeter=function(offset){alert('Method not implemented');return 'undefined';};this.needsReload=function(coord,size){alert('Method not implemented');return 'undefined';};this.toString=function(){alert('Method not implemented');return 'undefined';};}
function IWTile(tileset,cellIndex){var _self=this;var _tileset=tileset;var _logger=log4javascript.getLogger('js.tile');var _position=new IWPoint(0,0);var _sSource='';var _sCache='';var _iState=IWTile.STATE_WAITING;var _iTimestamp=0;var _cellIndex=cellIndex;var _img=iw.create('img');var _div=iw.create('div');tileset.getTilesContainer().appendChild(_div);_div.id='divTile_' + _cellIndex.getX()+ '_' + _cellIndex.getY();with(_div.style){position='absolute';zIndex='1';left='0px';top='0px';width=IWTile.SIZE + 'px';height=IWTile.SIZE + 'px';visibility='hidden';}
_div.appendChild(_img);_img.id='imgTile_' + _cellIndex.getX()+ '_' + _cellIndex.getY();_img.width=IWTile.SIZE;_img.height=IWTile.SIZE;IWEventManager.addDOMListener(_img,'onload',function(){if(_iState==IWTile.STATE_LOADING){_div.style.visibility='visible';_iState=IWTile.STATE_COMPLETE;}
var event=new IWTileLoadedEvent();event.column=_cellIndex.getX();event.row=_cellIndex.getY();IWEventManager.trigger(_self,'onload',event);}
);this.getPosition=function(){return _position;};this.destroy=function(){IWEventManager.clearInstanceListeners(this);IWEventManager.clearInstanceListeners(_img);iw.destroy(_img);_img=null;iw.destroy(_div);_div=null;};this.getBounds=function(){var lowerRight=new IWPoint(_position.getX()+ IWTile.SIZE,_position.getY()+ IWTile.SIZE);return new IWBounds(_position,lowerRight);};this.getState=function(){return _iState;};this.getTimestamp=function(){return _iTimestamp;};this.setSource=function(source,timestamp){_iState=IWTile.STATE_WAITING;this.hide();_iTimestamp=timestamp;_sSource=source;var bottomLeftPixel=new IWPoint(_position.getX()+ IWTile.SIZE/2,_position.getY()+ IWTile.SIZE/2);var bottomLeftMeter=_tileset.getCurrentMapType().getProjection().pixelToMeter(bottomLeftPixel);_sCache=getTileCacheName(new IWCoordinate(bottomLeftMeter.getX(),bottomLeftMeter.getY()));};this.setState=function(state){_iState=state;};this.hide=function(){if(_div)_div.style.visibility='hidden';};this.move=function(offset){_position=_position.add(offset);_div.style.left=_position.getX()+ 'px';_div.style.top=_position.getY()+ 'px';var bottomLeftPixel=new IWPoint(_position.getX()+ IWTile.SIZE/2,_position.getY()+ IWTile.SIZE/2);var bottomLeftMeter=_tileset.getCurrentMapType().getProjection().pixelToMeter(bottomLeftPixel);_sCache=getTileCacheName(new IWCoordinate(bottomLeftMeter.getX(),bottomLeftMeter.getY()));};this.moveTo=function(position){_position=position;_div.style.left=_position.getX()+ 'px';_div.style.top=_position.getY()+ 'px';};this.load=function(){_div.style.visibility='hidden';var bottomLeftPixel=new IWPoint(_position.getX()+ IWTile.SIZE/2,_position.getY()+ IWTile.SIZE/2);var bottomLeftMeter=_tileset.getCurrentMapType().getProjection().pixelToMeter(bottomLeftPixel);var cache_use=isCacheUsed(_tileset.getCurrentMapType().getType());if(iwconst.CACHE_URL_USE=='false'||cache_use==false){var sCacheParam='&left=' + bottomLeftMeter.getX()+'&bottom=' + bottomLeftMeter.getY()+'&tilemeter=' + _tileset.nTilesizeMeter +'&tile=' + IWTile.SIZE +'&maptype=' + _tileset.getCurrentMapType();var url=iwconst.GLOBAL_APP_URL +'servlet/FrontController' +'?cmd=getTile' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&app=ms' +'&file=' + _sSource +sCacheParam +szExtraUrlParm;_img.src=url;}
else
{_img.src=_sCache + '?file=' + _sSource;}
_iState=IWTile.STATE_LOADING;};this.compare=function(tile1,tile2){var mapCenterX=_tileset.getSize().getWidth()/2;var mapCenterY=_tileset.getSize().getHeight()/2;var iWeight1=Math.pow(mapCenterX -(tile1.getPosition().getX()+ IWTile.SIZE/2),2)
+ Math.pow(mapCenterY -(tile1.getPosition().getY()+ IWTile.SIZE/2),2);var iWeight2=Math.pow(mapCenterX -(tile2.getPosition().getX()+ IWTile.SIZE/2),2)
+ Math.pow(mapCenterY -(tile2.getPosition().getY()+ IWTile.SIZE/2),2);return iWeight2 - iWeight1;};this.toString=function(){return '[IWTile]' +'cellIndex:' + _cellIndex + ',' +'position:' + _position;};this.getContainer=function(){return _div;};function getTileCacheName(coordinate){var sPathFile='';var dTilesizeMeter=tileset.nTilesizeMeter;var dX=coordinate.getX();var dY=coordinate.getY();var iPreX=dX<0 ? -1:1;var iPreY=dY<0 ? -1:1;var dGroupMeter=(dTilesizeMeter*iwconst.CACHE_BLOCK_SIZE);for(var level=iwconst.CACHE_GROUP_LEVEL;level>0;level--){var iGroupX=parseInt(Math.ceil(Math.abs(dX/(dGroupMeter*Math.pow(iwconst.CACHE_GROUP_SIZE,(level-1))))));var iGroupY=parseInt(Math.ceil(Math.abs(dY/(dGroupMeter*Math.pow(iwconst.CACHE_GROUP_SIZE,(level-1))))));if(iPreX>=0){if(Math.ceil(dX/(dGroupMeter*Math.pow(iwconst.CACHE_GROUP_SIZE,(level-1))))==dX/(dGroupMeter*Math.pow(iwconst.CACHE_GROUP_SIZE,(level-1))))iGroupX++;}
if(iPreY>=0){if(Math.ceil(dY/(dGroupMeter*Math.pow(iwconst.CACHE_GROUP_SIZE,(level-1))))==dY/(dGroupMeter*Math.pow(iwconst.CACHE_GROUP_SIZE,(level-1))))iGroupY++;}
dX=dX - iPreX*dGroupMeter*Math.pow(iwconst.CACHE_GROUP_SIZE,(level-1))*(iGroupX - 1);dY=dY - iPreY*dGroupMeter*Math.pow(iwconst.CACHE_GROUP_SIZE,(level-1))*(iGroupY - 1);if(iPreX>=0)iGroupX=(iGroupX-1)*iPreX;if(iPreY>=0)iGroupY=(iGroupY-1)*iPreY;if(level !=iwconst.CACHE_GROUP_LEVEL){if(iPreX<0)iGroupX=iwconst.CACHE_GROUP_SIZE - iGroupX;if(iPreY<0)iGroupY=iwconst.CACHE_GROUP_SIZE - iGroupY;}
else
{if(iPreX<0)iGroupX=iGroupX*iPreX;if(iPreY<0)iGroupY=iGroupY*iPreY;}
sPathFile +=iGroupX + '_' + iGroupY + '/';if(level==1){var iTileX=Math.ceil(Math.abs(dX/dTilesizeMeter));var iTileY=Math.ceil(Math.abs(dY/dTilesizeMeter));if(iPreX>=0){if(Math.ceil(dX/dTilesizeMeter)==dX/dTilesizeMeter)iTileX++;}
if(iPreY>=0){if(Math.ceil(dY/dTilesizeMeter)==dY/dTilesizeMeter)iTileY++;}
if(iPreX<0)iTileX=iwconst.CACHE_BLOCK_SIZE - iTileX;else
iTileX--;if(iPreY<0)iTileY=iwconst.CACHE_BLOCK_SIZE - iTileY;else
iTileY--;sPathFile +=iTileX + '_' + iTileY;}
}
var sMapType=tileset.getCurrentMapType().getType();var sEnd=tileset.getCurrentMapType().getImageFormat();var sRootPath=iwconst.CACHE_CLIENT_URL + sMapType + '/' + IWTile.SIZE + '/' + parseInt(dTilesizeMeter);var sCachename=sRootPath + '/' + sPathFile + '.' + sEnd;return sCachename;}
function isCacheUsed(maptype){if(iwconst.CACHE_MAPSERVER_GROUP.indexOf(maptype)!=-1)return true;else
return false;}
}
IWTile.SIZE=250;IWTile.STATE_INACTIVE=-1;IWTile.STATE_WAITING=0;IWTile.STATE_QUEUED=1;IWTile.STATE_LOADING=2;IWTile.STATE_COMPLETE=3;function IWWindowOverlay(map,coordinate){var self=this;var _map=map;var _coordinate=coordinate;var _anchor=new IWPoint(0,0);IWMapElement.call(this,map.getWindowOverlayContainer());this.getAnchor=function(){return _anchor;};this.setAnchor=function(anchor){if(this.isDisplayed()){var container=this.getContainer();var top=parseInt(container.style.top);var left=parseInt(container.style.left)
container.style.top=top - _anchor.getY()+ anchor.getY()+ 'px';container.style.left=left - _anchor.getX()+ anchor.getX()+ 'px';}
_anchor=anchor;};this.setCoordinate=function(coordinate){iw.strict([IWCoordinate],[coordinate]);_coordinate=coordinate;};this.getCoordinate=function(){return _coordinate;};this.destroyWindowOverlay=function(){IWEventManager.removeListener(_afterCenteredListener);IWEventManager.removeListener(_beforeZoomListener);IWEventManager.removeListener(_afterZoomedListener);this.destroyMapElement();};this.redraw=function(){var container=this.getContainer();var parent=this.getParent();var pixel=map.fromCoordinateToPixel(_coordinate);container.style.top=pixel.getY()+ _anchor.getY()- parseInt(parent.style.top)+ 'px';container.style.left=pixel.getX()+ _anchor.getX()- parseInt(parent.style.left)+ 'px';};var _afterCenteredListener=IWEventManager.addListener(map,'aftercentered',function(e){self.setVisible(false);self.redraw();self.setVisible(true);}
);var _beforeZoomListener=IWEventManager.addListener(map,'beforezoom',function(){self.setVisible(false);}
);var _afterZoomedListener=IWEventManager.addListener(map,'afterzoom',function(){self.redraw();self.setVisible(true);}
);}
function IWWindowOverlayManager(map){var _infoBalloon=null;var _tooltip=null;var _map=map;this.openInfoBalloon=function(coordinate,content){var myContent=null;if(myContent==null){myContent='';}
if(content.constructor==String){var elem=iw.checkElem(content);myContent=iw.create('div');myContent.style.top='0px'
myContent.style.left='0px';myContent.style.overflow='auto';iw.append(myContent,elem);}
else
{myContent=content;}
myContent.style.position='relative';var contentSize=IWDOMHelper.getSize(myContent,map.getContainer());var left=myContent.style.left=='' ? 0:parseInt(myContent.style.left);var top=myContent.style.top=='' ? 0:parseInt(myContent.style.top);var mapsize=map.getOptions().getSize();var maxHeight=Math.ceil(mapsize.getHeight()- 80);var maxWidth=Math.ceil(mapsize.getWidth()- 50);if(contentSize.getHeight()<80){contentSize.setHeight(80);}
else if(contentSize.getHeight()>maxHeight){contentSize.setHeight(maxHeight);}
if(contentSize.getWidth()<160){contentSize.setWidth(160);}
else if(contentSize.getWidth()>maxWidth){contentSize.setWidth(maxWidth);}
myContent.style.height=contentSize.getHeight()- 15 + 'px';myContent.style.width=contentSize.getWidth()+ 'px';this.removeInfoBalloon();_infoBalloon=new IWInfoBalloon(_map,coordinate,myContent);_infoBalloon.setSize(new IWSize(contentSize.getWidth()+ 30 + left,contentSize.getHeight()+ 58 + top));_map.addWindowOverlay(_infoBalloon);};this.removeInfoBalloon=function(){if(_infoBalloon !=null){map.removeWindowOverlay(_infoBalloon);_infoBalloon.destroy();_infoBalloon=null;}
};this.openTooltip=function(coordinate,text){this.removeTooltip();_tooltip=new IWTooltip(_map,coordinate,text);_map.addWindowOverlay(_tooltip);};this.removeTooltip=function(){if(_tooltip !=null){map.removeWindowOverlay(_tooltip);_tooltip.destroy();_tooltip=null;}
};}
function IWInfoBalloon(map,coordinate,content){var _map=map;var _coordinate=coordinate;var _size=new IWSize(240,180);var _border=5;var _self=this;var _content=content;var _divMain=iw.create('div');var _divContent=iw.create('div');var _divTopBorder=iw.create('div');var _divRightBorder=iw.create('div');var _divBottomBorder=iw.create('div');var _divLeftBorder=iw.create('div');var _imgArrow=iw.create('img');var _imgClose=iw.create('img');IWWindowOverlay.call(this,map,coordinate);this.getContent=function(){return _content;};this.setContent=function(newContent){_content=newContent;};this.afterAppend=function(){_container.style.visibility='visible';var position=iw.absolute(_container,_map.getContainer());var offsetRight=position.getX()+ _size.getWidth()+ _border - _map.getOptions().getSize().getWidth();var offsetLeft=position.getX()- _border;var offsetTop=position.getY()- _border;var offsetBottom=position.getY()+ _size.getHeight()+ _border - _map.getOptions().getSize().getHeight();if(offsetRight>0||offsetLeft<0||offsetTop<0||offsetBottom>0){var x=0;var y=0;if(offsetRight>0){x=-offsetRight;}
else if(offsetLeft<0){x=-offsetLeft;}
if(offsetTop<0){y=-offsetTop;}
else if(offsetBottom>0){y=-offsetBottom;}
_map.panBy(new IWPoint(x,y),true);}
};this.setSize=function(size){iw.strict([IWSize],[size]);_size=size;resize();this.setAnchor(new IWPoint(-(_size.getWidth()/2),-(_size.getHeight())));};this.getSize=function(){return _size;};this.destroy=function(){IWEventManager.clearInstanceListeners(this);this.destroyWindowOverlay();_content=null;_divMain=null;_divContent=null;_divTopBorder=null;_divRightBorder=null;_divBottomBorder=null;_divLeftBorder=null;_imgArrow=null;_imgClose=null;_container=null;};this.setLanguage=function(language){var lng=language.toLowerCase();if(lng=='de'){_imgClose.title='Schlie\u00DFen';}
else if(lng=='fr'){_imgClose.title='fin';}
else if(lng=='es'){_imgClose.title='cierre';}
else
{_imgClose.title='close';}
};this.toString=function(){return '[IWInfoBalloon]';};function buildGUI(){_container.style.height=_size.getHeight()+ 'px';_container.style.width=_size.getWidth()+ 'px';_container.style.visibility='hidden';iw.append(_container,_divMain);_divMain.style.position='absolute';_divMain.style.top='0px';_divMain.style.left='0px';_divMain.style.width=_size.getWidth()+ 'px';_divMain.style.height=_size.getHeight()- 51 + 'px';var imgTopLeft=iw.create('img');iw.append(_divMain,imgTopLeft);imgTopLeft.src=iwconst.GLOBAL_APP_URL + 'img/infoballoon/etl2.gif';with(imgTopLeft.style){position='absolute';top='0px';left='0px';height='21px';width='21px';}
var imgTopRight=iw.create('img');iw.append(_divMain,imgTopRight);imgTopRight.src=iwconst.GLOBAL_APP_URL + 'img/infoballoon/etr2.gif';with(imgTopRight.style){position='absolute';top='0px';right='0px';height='21px';width='21px';}
var imgBottomLeft=iw.create('img');iw.append(_divMain,imgBottomLeft);imgBottomLeft.src=iwconst.GLOBAL_APP_URL + 'img/infoballoon/ebl2.gif';with(imgBottomLeft.style){position='absolute';bottom='0px';left='0px';height='21px';width='21px';}
var imgBottomRight=iw.create('img');iw.append(_divMain,imgBottomRight);imgBottomRight.src=iwconst.GLOBAL_APP_URL + 'img/infoballoon/ebr2.gif';with(imgBottomRight.style){position='absolute';bottom='0px';right='0px';height='21px';width='21px';}
iw.append(_divMain,_divTopBorder);iw.backgroundImage(_divTopBorder,iwconst.GLOBAL_APP_URL + '/img/background_white.jpg');with(_divTopBorder.style){position='absolute';borderTop='1px solid #cfcfd1';top='0px';left='21px';height='21px';width=_size.getWidth()- 42 + 'px';}
iw.append(_divMain,_divRightBorder);iw.backgroundImage(_divRightBorder,iwconst.GLOBAL_APP_URL + '/img/background_white.jpg');with(_divRightBorder.style){position='absolute';borderRight='1px solid #cfcfd1';top='21px';right='0px';width='21px';height=_size.getHeight()- 51 - 42 + 'px';}
iw.append(_divMain,_divBottomBorder);iw.backgroundImage(_divBottomBorder,iwconst.GLOBAL_APP_URL + '/img/background_white.jpg');with(_divBottomBorder.style){position='absolute';borderBottom='1px solid #cfcfd1';bottom='0px';left='21px';height='21px';width=_size.getWidth()- 42 + 'px';}
iw.append(_divMain,_divLeftBorder);iw.backgroundImage(_divLeftBorder,iwconst.GLOBAL_APP_URL + '/img/background_white.jpg');with(_divLeftBorder.style){borderLeft='1px solid #cfcfd1';position='absolute';top='21px';left='0px';width='21px';height=_size.getHeight()- 51 - 42 + 'px';}
_divContent.id='divContent';iw.append(_divMain,_divContent);iw.backgroundImage(_divContent,iwconst.GLOBAL_APP_URL + '/img/background_white.jpg');with(_divContent.style){position='absolute';top='17px';left='15px';overflow='hidden';}
var div=iw.create('div');div.style.position='absolute';div.style.overflow='auto';iw.append(_divContent,div);iw.append(div,_content);iw.append(_divMain,_imgClose);_imgClose.src=iwconst.GLOBAL_APP_URL + 'img/close.png';with(_imgClose.style){position='absolute';top='3px';right='16px';cursor='pointer';}
iw.append(_container,_imgArrow);_imgArrow.src=iwconst.GLOBAL_APP_URL + 'img/infoballoon/arrow7.gif';with(_imgArrow.style){position='absolute';bottom='0px';height='53px';width='105px';left=Math.round(_size.getWidth()/2)+ 'px';}
_imgClose.onclick=function(){map.removeWindowOverlay(_self);};}
function resize(){_container.style.height=_size.getHeight()+ 'px';_container.style.width=_size.getWidth()+ 'px';_divMain.style.width=_size.getWidth()+ 'px';_divMain.style.height=_size.getHeight()- 51 + 'px';_divContent.style.width=_size.getWidth()- 30 + 'px';_divContent.style.height=_size.getHeight()- 53 - 5 - 15 + 'px';_divTopBorder.style.width=_size.getWidth()- 42 + 'px';_divRightBorder.style.height=_size.getHeight()- 51 - 42 + 'px';_divBottomBorder.style.width=_size.getWidth()- 42 + 'px';_divLeftBorder.style.height=_size.getHeight()- 51 - 42 + 'px';_imgArrow.style.left=Math.round(_size.getWidth()/2)+ 'px';}
var _container=this.getContainer();buildGUI();this.setLanguage(_map.getOptions().getLanguage());this.setAnchor(new IWPoint(-(_size.getWidth()/2),-(_size.getHeight())));IWEventManager.addListener(_map,'afterlanguagechanged',function(e){_self.setLanguage(e.language);});}
function IWMarker(map,coordinate){IWOverlay.call(this,map,coordinate);var _self=this;var _iconImage=null;var _defaultIcon=new IWIcon(iwconst.GLOBAL_APP_URL + 'img/house_blue_30.gif',new IWPoint(15,13));var _scaleDependentIcons=new Array();var _container=this.getContainer();var _logger=log4javascript.getLogger("overlay.IWMarker");this.setDefaultIcon=function(icon){_defaultIcon=icon;if(this.isDisplayed()){loadScaleDependentImage();}
};this.getDefaultIcon=function(){return _defaultIcon;};this.addScaleDependentIcon=function(icon,range){var o=new Object();o.icon=icon;o.range=range;_scaleDependentIcons.push(o);};this.beforeAppend=function(){_iconImage=new Image();iw.append(_container,_iconImage);loadScaleDependentImage();};this.beforeRemove=function(){IWEventManager.clearInstanceListeners(_iconImage);iw.remove(_iconImage);iw.destroy(_iconImage);_iconImage=null;};this.toString=function(){return '[IWMarker]' +'coordinate:' + coordinate.toString()+ ',' +'default icon:' + _defaultIcon.toString();};this.destroy=function(){this.destroyOverlay();IWEventManager.clearInstanceListeners(this);};function loadScaleDependentImage(){var icon=null;for(var i=0;i<_scaleDependentIcons.length;i++){var obj=_scaleDependentIcons[i];if(obj.range.getMin()<=map.getZoom()&&map.getZoom()<=obj.range.getMax()){icon=obj.icon;break;}
}
var myIcon=(icon !=null ? icon:_defaultIcon);if(_iconImage.src !=myIcon.getURL()){var imageURL=myIcon.getURL();if(iw.extractFilePath(imageURL).extension=='.png'){IWEventManager.addDOMListener(_iconImage,'onload',function(){correctPNG(_iconImage);});}
_iconImage.src=imageURL;}
_self.setHotspot(myIcon.getHotspot());}
this.setDraggable(false);this.setDragButton(IWButton.LEFT);this.setDraggableContainer(_container);this.allowDraggingOutsideParent(false);IWEventManager.addListener(this,'beforeredraw',loadScaleDependentImage);}
function IWTooltip(map,coordinate,obj){var self=this;var _map=map;var _size=null;var _xAnchor=15;var _yAnchor=0;var _mapSize=map.getOptions().getSize();IWWindowOverlay.call(this,map,coordinate);this.beforeAppend=function(){this.setAnchor(new IWPoint(_xAnchor,_yAnchor));};this.afterAppend=function(){var position=iw.absolute(this.getContainer(),_map.getContainer());var spaceRight=_mapSize.getWidth()-(position.getX()+ _size.getWidth()+ 5);var spaceBottom=_mapSize.getHeight()-(position.getY()+ _size.getHeight()+ 5);var newAnchorX=_xAnchor;var newAnchorY=_yAnchor;if(spaceRight<0){newAnchorX=-(_xAnchor + _size.getWidth());}
if(spaceBottom<0){newAnchorY=-(_yAnchor + _size.getHeight());}
if(newAnchorX !=_xAnchor||newAnchorY !=_yAnchor){this.setAnchor(new IWPoint(newAnchorX,newAnchorY));}
this.getContainer().style.visibility='visible';};this.destroy=function(){obj=null;this.destroyWindowOverlay();IWEventManager.clearInstanceListeners(this);};function buildGUI(container){container.style.visibility='hidden';iw.backgroundImage(container,iwconst.GLOBAL_APP_URL + 'img/background_white.jpg');var div=iw.create('div');if(typeof obj=='string'){obj=obj.replace(/\u0020/g,'&nbsp;');}
iw.append(div,obj);iw.append(container,div);_size=IWDOMHelper.getSize(container,self.getParent());with(div.style){position='absolute';left='0px';top='0px';width=_size.getWidth()+ 4 + 'px';height=_size.getHeight()+ 'px';textAlign='center';}
container.style.border='1px solid #dddddd';container.style.width=div.style.width;container.style.height=div.style.height;}
buildGUI(this.getContainer());}
function IWProjectionClient(){this.project=function(coordinate,toProjection){var x=null;var y=null;if(coordinate.getProjectionType()==IWProjectionType.WGS84){x=coordinate.getLatitude();y=coordinate.getLongitude();}
else if(coordinate.getProjectionType()==IWProjectionType.LCC_EUROPE){x=coordinate.getX();y=coordinate.getY();}
else
{throw 'Unkown projection system:' + coordinate;}
var url=iwconst.LOCAL_APP_URL + '/servlet/FrontController' +'?cmd=project' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&FROM_X=' + x +'&FROM_Y=' + y +'&FROM_PROJ=' + coordinate.getProjectionType()+'&TO_PROJ=' + toProjection;var xmlHttp=new IWXMLHttpRequest();xmlHttp.open("GET",url,true);xmlHttp.onreadystatechange=function(){projectionCallback(this,xmlHttp,coordinate,toProjection);}.iwclosure(this);xmlHttp.send(null);};this.toString=function(){return '[IWProjectionClient]';};this.triggerOnProjection=function(event){IWEventManager.trigger(this,'onprojection',event);};function projectionCallback(self,xmlHttp,inputCoordinate,projectionType){if(xmlHttp.readyState==4){if(xmlHttp.statusText=='OK'){if(xmlHttp.responseText.length>0){var root=xmlHttp.responseXML.documentElement
var event=new IWProjectionEvent();event.inputCoordinate=inputCoordinate;var outputCoordinate=null;if(root.getElementsByTagName("PROJECTION_RESULT")[0]){event.status='OK';var x=IWXMLHelper.getNodeValue(root.getElementsByTagName("PROJECTED_X")[0]);var y=IWXMLHelper.getNodeValue(root.getElementsByTagName("PROJECTED_Y")[0]);if(projectionType==IWProjectionType.WGS84){outputCoordinate=new IWWGS84(x,y);}
else if(projectionType==IWProjectionType.LCC_EUROPE){outputCoordinate=new IWLCCEurope(x,y);}
else
{throw 'Error on projection';}
event.outputCoordinate=outputCoordinate;}
else
{event.status=IWXMLHelper.getNodeValue(root.getElementsByTagName("ERROR_CODE")[0]);event.errorDescription=IWXMLHelper.getNodeValue(root.getElementsByTagName("ERROR_MSG")[0]);}
}
else
{alert('Response text is empty.');}
}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
else
{alert('Projection failed:' + xmlHttp.statusText);}
self.triggerOnProjection(event);}
}
}
function IWProjectionEvent(){this.status=null;this.errorDescription=null;this.inputCoordinate=null;this.outputCoordinate=null;this.toString=function(){var s='[IWProjectionEvent]status:' + this.status + ',';if(this.status=='OK'){s +='inputCoordinate:' +(this.inputCoordinate ? this.inputCoordinate.toString():'null')+ ',outputCoordinate:' +(this.outputCoordinate ? this.outputCoordinate.toString():'null');}
else
{s +='errorDescription:' + this.errorDescription;}
return s;};}
var IWProjectionType=new function(){this.WGS84='WGS84';this.LCC_EUROPE='LCC_EUROPE';};function IWRouteOptions(){var _routingMode=0;var _citySpeed=50;var _countryRoadSpeed=70;var _highwaySpeed=120;var _language='en';var _shapeEnabled=false;this.FASTEST_ROUTE=0;this.SHORTEST_ROUTE=1;this.MOST_ECONOMIC_ROUTE=2;this.setShapeEnabled=function(shapeEnabled){if(shapeEnabled==true||shapeEnabled==false){_shapeEnabled=shapeEnabled;}
};this.isShapeEnabled=function(){return _shapeEnabled;};this.setRoutingMode=function(routingMode){var intVal=parseInt(routingMode);if(intVal>=0&&intVal<=2){_routingMode=intVal;}
else
{throw "Unkown routing mode:" + routingMode + ". The routing mode must be between 0 and 2.";}
};this.getRoutingMode=function(){return _routingMode;};this.setCitySpeed=function(citySpeed){var intVal=parseInt(citySpeed);if(intVal>0){_citySpeed=intVal;}
else
{throw "The average driving speed in cities must be greater than 0.";}
};this.getCitySpeed=function(){return _citySpeed;};this.setCountryRoadSpeed=function(countryRoadSpeed){var intVal=parseInt(countryRoadSpeed);if(intVal>0){_countryRoadSpeed=intVal;}
else
{throw "The average driving speed on country roads must be greater than 0.";}
};this.getCountryRoadSpeed=function(){return _countryRoadSpeed;};this.setHighwaySpeed=function(highwaySpeed){var intVal=parseInt(highwaySpeed);if(intVal>0){_highwaySpeed=intVal;}
else
{throw 'The average driving speed on highways must be greater than 0.';}
};this.getHighwaySpeed=function(){return _highwaySpeed;};this.setLanguage=function(language){_language=language;var event=new IWLanguageChangedEvent();event.language=_language;this.triggerAfterLanguageChanged(event);};this.getLanguage=function(){return _language;}
this.toString=function(){return '[IWRouteOptions]' +'Routing mode:' +(_routingMode==0 ? 'shortest route':(_routingMode==1 ? 'fastes route':'most economic'))+ ',' +'Average driving speed in cities:' + _citySpeed + ',' +'Average driving speed on country roads:' + _countryRoadSpeed + ',' +'Average driving speed on highways:' + _highwaySpeed;};this.triggerAfterLanguageChanged=function(event){IWEventManager.trigger(this,'afterlanguagechanged',event);};}
function IWRouteSegment(){var _instruction=null;var _coordinate=null;var _direction=null;var _length=null;var _time=null;var _routeLength=null;var _routeTime=null;this.DC_START=0;this.DC_DESTINATION=1;this.DC_STRAIGHTAHEAD=2;this.DC_HALFRIGHT=3;this.DC_RIGHT=4;this.DC_SHARPRIGHT=5;this.DC_HALFLEFT=6;this.DC_LEFT=7;this.DC_SHARPLEFT=8;this.DC_ROUNDABOUT=9;this.setInstruction=function(newInstruction){_instruction=newInstruction;}
this.getInstruction=function(){return _instruction;};this.setCoordinate=function(newCoordinate){_coordinate=newCoordinate;}
this.getCoordinate=function(){return _coordinate;};this.setDirection=function(newDirection){var intValue=parseInt(newDirection);if(intValue>=0&&intValue<=12){_direction=newDirection;}
else
{throw "The direction " + newDirection + " is out of range. The value must be between 0 and 12.";}
};this.getDirection=function(){return _direction;};this.setLength=function(newSegmentLength){_length=newSegmentLength;}
this.getLength=function(){return _length;};this.setRouteLength=function(newRouteLength){_routeLength=newRouteLength;}
this.getRouteLength=function(){return _routeLength;}
this.setTime=function(newTime){_time=newTime;};this.getTime=function(){return _time;}
this.setRouteTime=function(newRouteTime){_routeTime=newRouteTime;};this.getRouteTime=function(){return _routeTime;}
this.toString=function(){return "[IWRouteSegment]" +"Instruction text:" + _instruction + "," +"Coordinate:" + _coordinate.toString()+ "," +"Driving direction code:" + _direction + "," +"Segment Length:" + _length + "," +"Segment Driving Time:" + _time + "," +"Route Driving Time:" + _routeTime + "," +"Route Length:" + _routeLength;};}
function IWRouterClient(){var _logger=log4javascript.getLogger('mapapi');var _routeOptions=new IWRouteOptions();this.setRouteOptions=function(routeOptions){_routeOptions=routeOptions;};this.getRouteOptions=function(){return _routeOptions;};this.route=function(start,destination,interstations){var params='';params=params.concat('&X1=').concat(start.getX());params=params.concat('&Y1=').concat(start.getY());params=params.concat('&X2=').concat(destination.getX());params=params.concat('&Y2=').concat(destination.getY());if((interstations !=null)&&(typeof interstations !='undefined')){for(var i=0,n=1;i<interstations.length;i++,n++){params=params.concat('&IX').concat(n).concat('=').concat(interstations[i].getX());params=params.concat('&IY').concat(n).concat('=').concat(interstations[i].getY());}
}
if(_routeOptions !=null){params=params.concat('&LANG=').concat(_routeOptions.getLanguage());params=params.concat('&MODE=').concat(_routeOptions.getRoutingMode());params=params.concat('&SPEED_CI=').concat(_routeOptions.getCitySpeed());params=params.concat('&SPEED_CO=').concat(_routeOptions.getCountryRoadSpeed());params=params.concat('&SPEED_HI=').concat(_routeOptions.getHighwaySpeed());params=params.concat('&SHAPE=').concat(_routeOptions.isShapeEnabled()? "1":"0");}
var url=iwconst.LOCAL_APP_URL + '/servlet/FrontController' +'?cmd=route' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+params;var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('GET',url,true);xmlHttp.onreadystatechange=function(){routeCallback(this,xmlHttp);}.iwclosure(this);xmlHttp.send(null);};this.toString=function(){return '[IWRouterClient]' +(_routeOptions !=null ? _routeOptions.toString():'null');};this.triggerAfterRouted=function(event){IWEventManager.trigger(this,'afterrouted',event);};function routeCallback(self,xmlHttp){if(xmlHttp.readyState==4){if(xmlHttp.statusText=='OK'){if(xmlHttp.responseText.length>0){var root=xmlHttp.responseXML.documentElement;var shape='';var coordNW=null;var coordSE=null;var route=new Array();if(root.getElementsByTagName('fail').length==0){shape=IWXMLHelper.getNodeValue(root.getElementsByTagName('shape')[0]);var directions=root.getElementsByTagName('dir');var segments=directions.length;if(segments>0){var instructions=root.getElementsByTagName('text');var xCoordinates=root.getElementsByTagName('x');var yCoordinates=root.getElementsByTagName('y');var routelengths=root.getElementsByTagName('routelength');var routetimes=root.getElementsByTagName('routetime');var routetotallengths=root.getElementsByTagName('routetotallength');var routetotaltimes=root.getElementsByTagName('routetotaltime');for(var i=0;i<segments;i++){var segment=new IWRouteSegment();segment.setInstruction(IWXMLHelper.getNodeValue(instructions[i]));segment.setDirection(IWXMLHelper.getNodeValue(directions[i]));segment.setCoordinate(new IWCoordinate(parseFloat(IWXMLHelper.getNodeValue(xCoordinates[i])),parseFloat(IWXMLHelper.getNodeValue(yCoordinates[i]))));segment.setLength(IWXMLHelper.getNodeValue(routelengths[i]));segment.setTime(IWXMLHelper.getNodeValue(routetimes[i]));segment.setRouteLength(IWXMLHelper.getNodeValue(routetotallengths[i]));segment.setRouteTime(IWXMLHelper.getNodeValue(routetotaltimes[i]));var newCoord=segment.getCoordinate();if(coordNW==null){coordNW=new IWCoordinate(newCoord.getX(),newCoord.getY());}
else
{if(newCoord.getY()>coordNW.getY()){coordNW=new IWCoordinate(coordNW.getX(),newCoord.getY());}
if(newCoord.getX()<coordNW.getX()){coordNW=new IWCoordinate(newCoord.getX(),coordNW.getY());}
}
if(coordSE==null){coordSE=new IWCoordinate(newCoord.getX(),newCoord.getY());}
else
{if(newCoord.getY()<coordSE.getY()){coordSE=new IWCoordinate(coordSE.getX(),newCoord.getY());}
if(newCoord.getX()>coordSE.getX()){coordSE=new IWCoordinate(newCoord.getX(),coordSE.getY());}
}
route.push(segment);}
}
}
}
else
{alert("Response text is empty.");}
}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
else
{alert('Projection failed:' + xmlHttp.statusText);}
}
else
{throw 'Error. ReadyState:' + xmlHttp.readyState + ',Status:' + xmlHttp.statusText + ',Content-length:' + xmlHttp.responseText.length;}
var event=new IWRoutingEvent();event.statusCode=xmlHttp.statusText;event.shape=shape;event.bounds=new IWBounds(coordNW,coordSE);event.route=route;self.triggerAfterRouted(event);}
}
function IWRoutingEvent(){this.status=null;this.bounds=null;this.shape='';this.route=null;this.toString=function(){return '[IWRoutingEvent]';};}
var IWAccessFilter=new function(){var _CNR=0;var _PNR=0;this.setCNR=function(cnr){_CNR=parseInt(cnr);};this.getCNR=function(){return _CNR;};this.setPNR=function(pnr){_PNR=parseInt(pnr);};this.getPNR=function(){return _PNR;};this.toString=function(){return '[IWAccessFilter]CNR=' + _CNR + ',PNR=' + _PNR;};};function IWLayer(map,layerTitle,layerName,idfLayerName){IWLayerInterface.call(this,layerTitle);var _map=map;var _layerName=layerName;var _idfLayerName=(typeof idfLayerName=='undefined')? layerName:idfLayerName;var _shapes=new Array();var _this=this;this.add=function(node){throw 'IWLayer is not allowed to add childnodes.'
};this.expand=function(node){throw 'IWLayer cannot expand childnodes.'
};this.collapse=function(node){throw 'IWLayer cannot collapse childnodes.'
};this.addLayer=function(node){this.add(node);};this.setLayerName=function(layerName){_layerName=layerName;};this.getLayerName=function(){return _layerName;};this.setLayerTitle=function(layerTitle){this.setName(layerTitle);};this.getLayerTitle=function(){return this.getName();};this.getCurrentShapeName=function(newZoomLevel){for(var i=0;i<_shapes.length;i++){if(_shapes[i].getRange().contains(newZoomLevel)){return _shapes[i].getShapeName();}
}
return null;};this.setVisibility=function(newVisibility){iw.strict([Boolean],arguments);this.setUseDefaults(false);if(this.isMarked()!=newVisibility){if(newVisibility)this.mark();else
this.unmark();updateParentVisibility(this.getParent());}
}
this.setIdfLayerName=function(idfLayer){_idfLayerName=idfLayer;};this.getIdfLayerName=function(){return _idfLayerName;};this.addShape=function(shape){this.removeShape(shape.getShapeName());_shapes.push(shape);updateVisibility(_map.getZoom());};this.removeShape=function(shapeName){iw.strict([String],arguments);for(var i=0;i<_shapes.length;i++){if(_shapes[i].getShapeName()==shapeName){_shapes.splice(i,1);updateVisibility(_map.getZoom());return true;}
}
return false;};this.isVisible=function(){return this.isMarked();};this.toString=function(){return '[IWLayer]' +'layertitle:' + this.getName()+ ',' +'layername:' + _layerName + ',' +'idfLayerName:' + _idfLayerName + ',' +'shapes:' + _shapes;};this.triggerOnRemove=function(){IWEventManager.trigger(this,'onremove',null);};function updateVisibility(newZoomLevel){if(_this.useDefaults()){if(_this.getCurrentShapeName(newZoomLevel)==null){_this.unmark();}
else
{_this.mark();}
updateParentVisibility(_this.getParent());}
}
function updateParentVisibility(parent){if(parent==null){return;}
var children=parent.getChildren();var visibleFound=false;for(var i=0;i<children.length;i++){if(children[i].isMarked()){visibleFound=true;break;}
}
if(!parent.isMarked()&&visibleFound){parent.mark();updateParentVisibility(parent.getParent());}
else if(parent.isMarked()&&!visibleFound){parent.unmark();updateParentVisibility(parent.getParent());}
}
if(typeof layerTitle !='string'){throw 'IWLayer:layerTitle has to be specified';}
if(typeof layerName !='string'){throw 'IWLayer:layerName has to be specified';}
IWEventManager.addListener(_map,'onzoom',function(event){updateVisibility(event.newZoomLevel);});IWEventManager.addListener(_map,'aftercentered',function(){updateVisibility(_map.getZoom());});}
function IWLayerGroup(groupName){IWLayerInterface.call(this,groupName);this.getGroupName=function(){return this.getName();};this.setGroupName=function(groupName){iw.strict([String],arguments);this.setName(groupName);};this.isVisible=function(){return this.isMarked();};this.addLayer=function(layer){this.add(layer);if(!this.isMarked()&&layer.isMarked()){this.mark();}
};this.removeLayer=function(layer){this.remove(layer);layer.triggerOnRemove();if(this.isMarked()&&layer.isMarked()){var visibleFound=false;for(var i=0;i<this.getChildren().length;i++){if(this.getChildren()[i].isMarked()){visibleFound=true;break;}
}
if(!visibleFound){this.unmark();}
}
};this.removeLayerByName=function(layerName){var layer=null;for(var i=0;i<this.getChildren().length;i++){if(this.getChildren()[i].getName()==layerName){layer=this.getChildren()[i];break;}
}
if(layer==null){throw 'IWLayerGroup.removeLayerByName:Layer(Group)\'' + layerName + '\' not found!';}
this.removeLayer(layer);return layer;};this.triggerOnRemove=function(){for(var i=0;i<this.getChildren().length;i++){this.getChildren()[i].triggerOnRemove();}
};this.toString=function(){return '[IWLayerGroup]' +'groupName:' + this.getName()+ ',' +'isVisible:' + this.isVisible()+ ',' +'useDefaults:' + this.useDefaults()+ ',' +'hasChildren:' + this.hasChildren();};if(typeof groupName !="string"){throw 'IWLayerGroup:groupName has to be specified';}
}
function IWLayerInfoEvent(){this.requestedId=null;this.requestedEvent=null;this.json=null;this.mouseCoordinate=null;this.records=0;this.toString=function(){return '[IWLayerInfoEvent]' +'requestedId:' + this.requestedId + ',' +'requestedEvent:' + this.requestedEvent + ',' +'json:' + this.json + ',' +'mouseCoordinate:' + this.mouseCoordinate + ',' +'records:' + this.records;};}
function IWLayerInfoManager(map){var _this=this;var _map=map;var _requestLayers=new Array();var _eventListeners=new Object();var _captureSize=new IWSize(25,25);var _requestIdCounter=0;this.setCaptureSize=function(captureSize){iw.strict([IWSize],arguments);_captureSize=captureSize;};this.getCaptureSize=function(){return _captureSize;};this.addRequestLayer=function(requestLayer){iw.strict([IWRequestLayer],arguments);for(var i=0;i<_requestLayers.length;i++){if(_requestLayers[i]==requestLayer){return false;}
}
_requestLayers.push(requestLayer);var newEvents=requestLayer.getEvents();for(var eventName in newEvents){addEvent(eventName);}
requestLayer.onRegisterListener=IWEventManager.addListener(requestLayer,'onregisterevent',function(e){addEvent(e.eventName);}
);requestLayer.onUnregisterListener=IWEventManager.addListener(requestLayer,'onunregisterevent',function(e){removeEvent(e.eventName);}
);return true;};this.removeRequestLayer=function(requestLayer){iw.strict([IWRequestLayer],arguments);var layerIndex=null;for(var i=0;i<_requestLayers.length;i++){if(_requestLayers[i]==requestLayer){layerIndex=i;break
}
}
if(layerIndex==null){return false;}
IWEventManager.removeListener(requestLayer.onRegisterListener);IWEventManager.removeListener(requestLayer.onUnregisterListener);var oldEvents=requestLayer.getEvents();for(var eventName in oldEvents){removeEvent(eventName);}
_requestLayers.splice(layerIndex,1);return true;};this.triggerDataReceived=function(event){IWEventManager.trigger(this,'datareceived',event);};this.toString=function(){return '[IWLayerInfoManager]' +'capture size:' + _captureSize.toString();};function addEvent(eventName){if(_eventListeners[eventName]==null){_eventListeners[eventName]=new Array();_eventListeners[eventName].push(1);var listener=IWEventManager.addListener(_map,eventName,function(e){sendServerRequest(e,eventName);});_eventListeners[eventName].push(listener);}
else
{_eventListeners[eventName][0]++;}
}
function removeEvent(eventName){if(_eventListeners[eventName]==null){throw 'IWLayerInfoManager:Event not found:' + eventName;}
else
{if(_eventListeners[eventName][0]==1){IWEventManager.removeListener(_eventListeners[eventName][1]);_eventListeners[eventName]=null;}
else
{_eventListeners[eventName][0]--;}
}
}
function sendServerRequest(event,eventName){var layernames='';var idflayernames='';var maxHits='';var idfIndex=1;for(var i=0;i<_requestLayers.length;i++){if(_requestLayers[i].getEvents()[eventName]&&_requestLayers[i].getLayer().isVisible()){var layer=_requestLayers[i].getLayer();layernames=layernames.concat('&layer=' + layer.getLayerName()+ '&shape' + layer.getLayerName()+ '=' + layer.getCurrentShapeName(_map.getZoom()));idflayernames=idflayernames.concat('&idflayer' + idfIndex + '=' + layer.getIdfLayerName());if(_requestLayers[i].getMaximumHits()!=null){maxHits=maxHits.concat('&hits' + layer.getLayerName()+ '=' + _requestLayers[i].getMaximumHits());}
}
idfIndex++;}
if(layernames !=''){var dxPixel=_captureSize.getWidth();var dyPixel=_captureSize.getHeight();var coordD=_map.fromPixelToCoordinate(new IWPoint(dxPixel,dyPixel));var coord0=_map.fromPixelToCoordinate(new IWPoint(0,0));var dxMeter=Math.abs(coordD.getX()- coord0.getX());var dyMeter=Math.abs(coordD.getY()- coord0.getY());var mouseCoordinate=_map.fromPixelToCoordinate(event.position);var url=iwconst.LOCAL_APP_URL +'servlet/FrontController?' +'cmd=getIdentifyInfo' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&app=ms' +'&mapcx=' + mouseCoordinate.getX()+'&mapcy=' + mouseCoordinate.getY()+'&mapdx=' + dxMeter +'&mapdy=' + dyMeter +'&width=' + dxPixel +'&height=' + dyPixel +'&projc=lcc_europe' +'&borderpolygon=yes' +layernames +idflayernames +maxHits;var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('GET',url,true);xmlHttp.onreadystatechange=function(){callbackServerRequest(xmlHttp,eventName,mouseCoordinate);}.iwclosure(_this);xmlHttp.send(null);}
}
function callbackServerRequest(xmlHttp,eventName,mouseCoordinate){var json=null;if(xmlHttp.readyState==4){if(xmlHttp.statusText=='OK'){if(xmlHttp.responseText.length>0){json=eval(xmlHttp.responseText);}
else
{alert('IWLayerInfoManager:Response text is empty.');}
}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
}
else
{alert('GetIdentifyInfo failed:' + xmlHttp.statusText);}
_requestIdCounter++;var records=0;for(var layerData in json){records +=json[layerData].meta.records;}
var infoManagerEvent=new IWLayerInfoEvent();infoManagerEvent.requestId=_requestIdCounter;infoManagerEvent.mouseCoordinate=mouseCoordinate;infoManagerEvent.requestedEvent=eventName;infoManagerEvent.json=json;infoManagerEvent.records=records;_this.triggerDataReceived(infoManagerEvent);var dataEvent=new IWLayerInfoEvent();dataEvent.requestedEvent=eventName;dataEvent.mouseCoordinate=mouseCoordinate;for(var i=0;i<_requestLayers.length;i++){if(_requestLayers[i].getEvents()[eventName]&&_requestLayers[i].getLayer().isVisible())
{var layer=_requestLayers[i].getLayer();if(json[layer.getIdfLayerName()]){var jsonLayer=json[layer.getIdfLayerName()];dataEvent.json=jsonLayer.recordset;dataEvent.requestId=_requestIdCounter;dataEvent.records=jsonLayer.meta.records;_requestLayers[i].triggerDataReceived(dataEvent);}
}
}
}
}
function IWLayerInterface(name){IWNodeElement.call(this,name);var _useDefaults=true;this.isVisible=function(){throw 'Function isVisible is not implemented!';};this.setUseDefaults=function(useDefaults){_useDefaults=useDefaults;};this.useDefaults=function(){return _useDefaults;};this.setVisible=function(visible){iw.strict([Boolean],arguments);var node=this;if(visible){while(node){node.setUseDefaults(false);node.mark();node=node.getParent();}
}
else
{node.setUseDefaults(false);node.unmark();var visibleFound=false;node=node.getParent();while(node){if(!visibleFound){for(var i=0;i<node.getChildren().length;i++){if(node.getChildren()[i].isMarked()){visibleFound=true
node.setUseDefaults(false);node.mark();break;}
}
if(!visibleFound){node.setUseDefaults(false);node.unmark();}
}
else
{break;}
node=node.getParent();}
}
if(this.hasChildren()){for(var i=0;i<this.getChildren().length;i++){this.getChildren()[i].setVisible(visible);}
}
};}
function IWRequestLayer(layer){var _layer=layer;var _maxHits=5;var _events=new Object();this.setMaximumHits=function(maxHits){if(maxHits==null){_maxHits=null;}
else
{var intValue=parseInt(maxHits);if(intValue<0){throw('Invalid value for maxHits:'+ intValue);}
_maxHits=intValue;}
};this.getMaximumHits=function(){return _maxHits;};this.registerEvent=function(eventName){iw.strict([String],arguments)
if(_events[eventName]==null){_events[eventName]=true;var e=new IWRequestLayerEvent();e.eventName=eventName;this.triggerOnRegisterEvent(e);return true;}
return false;};this.unregisterEvent=function(eventName){iw.strict([String],arguments)
if(_events[eventName]!=null){_events[eventName]=null;var e=new IWRequestLayerEvent();e.eventName=eventName;this.triggerOnUnregisterEvent(e);return true;}
return false;};this.getEvents=function(){return _events;};this.getLayer=function(){return _layer;};this.triggerOnRegisterEvent=function(event){iw.strict([IWRequestLayerEvent],arguments);IWEventManager.trigger(this,'onregisterevent',event)
};this.triggerOnUnregisterEvent=function(event){iw.strict([IWRequestLayerEvent],arguments);IWEventManager.trigger(this,'onunregisterevent',event)
};this.triggerDataReceived=function(event){IWEventManager.trigger(this,'datareceived',event);};}
function IWRequestLayerEvent(){this.eventName=null;}
function IWShape(shapeName,range){var _shapeName=shapeName;var _range=(typeof range !='undefined' ? range:new IWRange(0,100));this.getShapeName=function(){return _shapeName;};this.getRange=function(){return _range;};this.toString=function(){return '[IWShape]' +'shapeName:' + _shapeName + ',' +'range:' + _range;};}
function IWShapeCreateEvent(){this.statuscode='';this.errordesc='';this.shapename='';this.bounds=null;this.toString=function(){return '[IWShapeCreateEvent]' +'Statuscode:' +(this.statuscode==null ? 'null':this.statuscode)+ ',' +'ErrorDesc:' +(this.errordesc==null ? 'null':this.errordesc)+ ',' +'Shapename:' +(this.shapename==null ? 'null':this.shapename);};}
function IWShapeService(){this.createFromKML=function(kmlfile){var url=iwconst.LOCAL_APP_URL + '/servlet/FrontController' +'?cmd=createShape' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&kmlfile=' + kmlfile;var xmlHttp=new IWXMLHttpRequest();xmlHttp.open("GET",url,true);xmlHttp.onreadystatechange=function(){createFromKMLCallback(this,xmlHttp);}.iwclosure(this);xmlHttp.send(null);};this.toString=function(){return '[IWShapeService]';};this.triggerOncreatefromkml=function(event){IWEventManager.trigger(this,'oncreatefromkml',event);};function createFromKMLCallback(self,xmlHttp){if(xmlHttp.readyState==4){if(xmlHttp.statusText=='OK'){if(xmlHttp.responseText.length>0){var root=xmlHttp.responseXML.documentElement;var event=new IWShapeCreateEvent();event.statuscode=IWXMLHelper.getNodeValue(root.getElementsByTagName('status')[0]);if(event.statuscode=='ERROR'){event.errordesc=IWXMLHelper.getNodeValue(root.getElementsByTagName('errdesc')[0]);}
else if(event.statuscode=='OK'){event.shapename=IWXMLHelper.getNodeValue(root.getElementsByTagName('shapename')[0]);var coordNW=IWXMLHelper.getNodeValue(root.getElementsByTagName('coordNW')[0]).split(',');var coordSE=IWXMLHelper.getNodeValue(root.getElementsByTagName('coordSE')[0]).split(',');event.bounds=new IWBounds(new IWCoordinate(coordNW[0],coordNW[1]),new IWCoordinate(coordSE[0],coordSE[1]));}
else
{throw('Undefined statuscode:' + event.statuscode);}
}
else
{alert("Response text is empty.");}
}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
else
{alert('Shape service failed:' + xmlHttp.statusText);}
self.triggerOncreatefromkml(event);}
}
}var IWBrowser=new function(){this.isInternetExplorer=function(){return((document.all)&&(window.offscreenBuffering))? true:false;};this.isNetscape=function(){return((document.captureEvents)&&(!document.getElementById))? true:false;};this.isMozilla=function(){return((document.getElementById)&&(!document.all)&&(document.documentElement))? true:false;};this.isOpera=function(){return window.opera ? true:false;};};var IWBrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)
||this.searchVersion(navigator.appVersion)
||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS";},searchString:function(data){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;}
},searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1)return;return parseFloat(dataString.substring(index+this.versionSearchString.length+1));},dataBrowser:[
{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"
}
],dataOS:[
{string:navigator.platform,subString:"Win",identity:"Windows"
},{string:navigator.platform,subString:"Mac",identity:"Mac"
},{string:navigator.platform,subString:"Linux",identity:"Linux"
}
]
};IWBrowserDetect.init();var IWDOMHelper=new function(){this.getSize=function(node,targetNode){var width=parseInt(node.style.width);var height=parseInt(node.style.height);if(isNaN(width)){width=node.offsetWidth;}
if(isNaN(height)){height=node.offsetHeight;}
if(isNaN(width)||width==0||isNaN(height)||height==0){var position=node.style.position;var parentNode=node.parentNode;var visibility=node.style.visibility;node.style.position='absolute';node.style.visibility='hidden';if(targetNode !=null&&typeof targetNode !='undefined'&&targetNode.parentNode !=null){iw.append(targetNode,node);}
else
{iw.append(document.body,node);}
if(isNaN(width)||width==0){width=node.offsetWidth;}
if(isNaN(height)||height==0){height=node.offsetHeight;}
iw.remove(node);node.style.position=position;node.style.visibility=visibility;if(parentNode){iw.append(parentNode,node);}
}
return new IWSize(width,height);};}
var IWRequestFormatter=new function(){this.getLayerParameter=function(zoomLevel,array){var layerstring='';for(var i=0;i<array.length;i++){if(array[i].constructor==IWLayerGroup){layerstring=layerstring + this.getLayerParameter(zoomLevel,array[i].getChildren());}
else if(array[i].constructor==IWLayer){if(array[i].getLayerName()!=null&&array[i].getLayerName()!=''&&array[i].isVisible()){layerstring=layerstring + '&layer' + array[i].getLayerName()+ '=';if(array[i].getCurrentShapeName(zoomLevel)!=null){layerstring=layerstring + array[i].getCurrentShapeName(zoomLevel);}
}
}
}
return layerstring;};}
var IWXMLHelper=new function(){this.parse=function(xmlString){var doc=null;if(document.implementation&&document.implementation.createDocument){var parser=new DOMParser();try{doc=parser.parseFromString(xmlString,'text/xml');}
catch(e){}
}
else if(window.ActiveXObject){doc=new ActiveXObject("Microsoft.XMLDOM");doc.async="false";if(xmlString&&xmlString.length>0){doc.loadXML(xmlString);}
}
else if(document.implementation&&document.implementation.createLSParser){var mode=document.implementation.MODE_SYNCHRONOUS;var schemaType='http:/' + '/www.w3.org/TR/REC-xml';var parser=document.implementation.createLSParser(mode,schemaType);var input=document.implementation.createLSInput();input.stringData=sXMLString;doc=parser.parse(input);}
else
{throw('Your browser can\'t handle this script');}
return doc;};this.getNodeValue=function(obj){if(typeof obj !='undefined'&&obj !=null){if(obj.childNodes&&obj.childNodes[0]!=null){return obj.childNodes[0].nodeValue;}
}
return null;};this.getFloatAttribute=function(node,attributeName){var attribute=node.getAttribute(attributeName);if(attribute){var value=parseFloat(attribute);if(!isNaN(value))return value;else
throw 'Attribute is not a number';}
else
throw 'Attribute not found';};}
function IWZoom(tileset){var _tileset=null;var _map=null;var _imageArea=null;var _zoomImagesContainer=null;var _zoomImageZIndex=0;var _zoomImagePropertyList=null;var _zoomFactor=1;var _zoomSteps=4;var _nZoomStepNumber=0;var _nZoomSingleStepX=0;var _nZoomSingleStepY=0;var _nMoveSingleStepX=0;var _nMoveSingleStepY=0;var _limitationOfTileSize=4200;var _zoomTimeout=null;var _nLastTilesizeMeter=0;var _currentTilesizeMeter=0;var _self=this;var _prepareZoom=false;this.zoom=function(centralPoint,zoomFactor){_imageArea.init();_imageArea.getZoomArea().getCenter().setX(centralPoint.getX());_imageArea.getZoomArea().getCenter().setY(centralPoint.getY());_imageArea.getZoomArea().getSize().setWidth(_imageArea.getSize().getWidth());_imageArea.getZoomArea().getSize().setHeight(_imageArea.getSize().getHeight());zoomWithSteps(_imageArea.getZoomArea().getCenter(),zoomFactor);};this.opticalZoom=function(tileSizeInMeter){var zoomFactor=_tileset.nTilesizeMeter/tileSizeInMeter;var centralPoint=_tileset.getCurrentMapType().getProjection().meterToPixel(_map.getCenter());if(!this.isPrepareZoom()){this.resetPrepareZoom(true);_imageArea.init();createZoomContainer();var children=_tileset.getTilesContainer().childNodes;for(var i=0;i<children.length;i++){children[i].style.visibility="hidden";}
}
_imageArea.getZoomArea().getCenter().setX(centralPoint.getX());_imageArea.getZoomArea().getCenter().setY(centralPoint.getY());_imageArea.getZoomArea().getSize().setWidth(_imageArea.getSize().getWidth());_imageArea.getZoomArea().getSize().setHeight(_imageArea.getSize().getHeight());zoomWithOneStep(_imageArea.getZoomArea().getCenter(),zoomFactor);return true;}
this.removeZoomContainer=function(){if(_imageArea !=null){for(var i=_imageArea.getImageList().length;i>0;i--){var obj=_imageArea.getImageList().pop();iw.destroy(obj.imgZoomTile);iw.destroy(obj.divZoomTile);}
}
this.resetPrepareZoom();};this.hasZoomContainer=function(){return(_zoomImagesContainer.childNodes.length>0);};this.getZoomCentral=function(){return _imageArea.getZoomArea().getCenter();};this.setZoomFactor=function(zoomFactor){_zoomFactor=zoomFactor;};this.getZoomFactor=function(){return _zoomFactor;};this.GetCurrentTilesizeMeter=function(){return _currentTilesizeMeter;};this.isPrepareZoom=function(){return _prepareZoom;};this.resetPrepareZoom=function(prepare){if(typeof prepare=="undefined"){_prepareZoom=false;}
else
{_prepareZoom=prepare;}
}
function createPropertyList(){var tileXTotal=_imageArea.getAreaSize().getWidth();var tileYTotal=_imageArea.getAreaSize().getHeight();var tileWidth=_imageArea.getImageSize().getWidth();var tileHeight=_imageArea.getImageSize().getHeight();var tileXIndex=_imageArea.getLeftTop().getPosition().getX();var tileYIndex=_imageArea.getLeftTop().getPosition().getY();_zoomImagePropertyList=new Array(tileXTotal*tileYTotal);var tileIndex=0;for(var row=0;row<tileYTotal;row++){for(var column=0;column<tileXTotal;column++){var image=new IWImage();image.getLeftTop().setX(tileXIndex + tileWidth*column);image.getLeftTop().setY(tileYIndex + tileHeight*row);image.getSize().setWidth(tileWidth);image.getSize().setHeight(tileHeight);image.setZIndex(_zoomImageZIndex);image.setZooming(true);_zoomImagePropertyList[tileIndex++]=image;}
}
}
function zoomTilesHorizontal(variationX,numX,numY){var averageVar=Math.floor(Math.abs(variationX)/numX);var remainVar=Math.abs(variationX)% numX;var pre_step=1;if(variationX<0){pre_step=-1;}
var y=0;{for(var i=0;i<numX;i++){var nPos=i +y*numX;_zoomImagePropertyList[nPos].getLeftTop().setX(_zoomImagePropertyList[nPos].getLeftTop().getX()+ pre_step*i*averageVar);_zoomImagePropertyList[nPos].getSize().setWidth(_zoomImagePropertyList[nPos].getSize().getWidth()+ pre_step*averageVar);}
var indexTile=0;var tempSizeTile=_zoomImagePropertyList[y*numX].getSize().getWidth();for(var j=remainVar-1;j>=0;j--){for(var i=0;i<numX;i++){var nPos=i + y*numX;if(pre_step<0){if((_zoomImagePropertyList[nPos].getSize().getWidth())>=tempSizeTile){tempSizeTile=(_zoomImagePropertyList[nPos].getSize().getWidth());indexTile=i;}
}
else
{if((_zoomImagePropertyList[nPos].getSize().getWidth())<tempSizeTile){tempSizeTile=(_zoomImagePropertyList[nPos].getSize().getWidth());indexTile=i;}
}
}
var ni=indexTile + y*numX;_zoomImagePropertyList[ni].getSize().setWidth(_zoomImagePropertyList[ni].getSize().getWidth()+ pre_step);for(var k=indexTile+1;k<numX;k++){var nk=k + y*numX;_zoomImagePropertyList[nk].getLeftTop().setX(_zoomImagePropertyList[nk].getLeftTop().getX()+ pre_step);}
}
}
for(y=1;y<numY;y++){for(var i=0;i<numX;i++){var newPosition=_zoomImagePropertyList[i].getLeftTop().getX();var newSize=_zoomImagePropertyList[i].getSize().getWidth();var nPos=i +y*numX;_zoomImagePropertyList[nPos].getLeftTop().setX(newPosition);_zoomImagePropertyList[nPos].getSize().setWidth(newSize);}
}
};function zoomTilesVertical(variationY,numX,numY){var averageVar=Math.floor(Math.abs(variationY)/numY);var remainVar=Math.abs(variationY)% numY;var pre_step=1;if(variationY<0){pre_step=-1;}
var x=0;{for(var i=0;i<numY;i++){var nPos=numX*i + x;_zoomImagePropertyList[nPos].getLeftTop().setY(_zoomImagePropertyList[nPos].getLeftTop().getY()+ pre_step*i*averageVar);_zoomImagePropertyList[nPos].getSize().setHeight(_zoomImagePropertyList[nPos].getSize().getHeight()+pre_step*averageVar);}
var indexTile=0;var tempSizeTile=(_zoomImagePropertyList[x].getSize().getHeight());for(var j=remainVar-1;j>=0;j--){for(var i=0;i<numY;i++){var nPos=numX*i + x;if(pre_step<0){if((_zoomImagePropertyList[nPos].getSize().getHeight())>=tempSizeTile){tempSizeTile=(_zoomImagePropertyList[nPos].getSize().getHeight());indexTile=i;}
}
else
{if((_zoomImagePropertyList[nPos].getSize().getHeight())<tempSizeTile){tempSizeTile=(_zoomImagePropertyList[nPos].getSize().getHeight());indexTile=i;}
}
}
var ni=indexTile*numX + x;_zoomImagePropertyList[ni].getSize().setHeight(_zoomImagePropertyList[ni].getSize().getHeight()+pre_step);for(var k=indexTile+1;k<numY;k++){ni=k*numX + x;_zoomImagePropertyList[ni].getLeftTop().setY(_zoomImagePropertyList[ni].getLeftTop().getY()+ pre_step);}
}
}
for(x=1;x<numX;x++){for(var i=0;i<numY;i++){var newPosition=_zoomImagePropertyList[numX*i].getLeftTop().getY();var newSize=_zoomImagePropertyList[numX*i].getSize().getHeight();var nPos=numX*i + x;_zoomImagePropertyList[nPos].getLeftTop().setY(newPosition);_zoomImagePropertyList[nPos].getSize().setHeight(newSize);}
}
}
function zoomTiles(variationX,variationY){zoomTilesHorizontal(variationX,_imageArea.getAreaSize().getWidth(),_imageArea.getAreaSize().getHeight());zoomTilesVertical(variationY,_imageArea.getAreaSize().getWidth(),_imageArea.getAreaSize().getHeight());}
function moveTiles(offsetX,offsetY){for(var i=0;i<_zoomImagePropertyList.length;i++){_zoomImagePropertyList[i].getLeftTop().setX(_zoomImagePropertyList[i].getLeftTop().getX()+ offsetX);_zoomImagePropertyList[i].getLeftTop().setY(_zoomImagePropertyList[i].getLeftTop().getY()+ offsetY);}
}
function zoomEnd(){for(var i=0;i<_zoomImagePropertyList.length;i++){_zoomImagePropertyList[i].setZooming(false);}
_nZoomStepNumber=_zoomSteps;window.clearTimeout(_zoomTimeout);_zoomTimeout=null;}
function doZoom(){if(_nZoomStepNumber>0){if(_nZoomStepNumber==1){var center=_imageArea.getZoomArea().getCenter();zoomWithOneStep(center,_zoomFactor);}
else
{zoomTiles(_nZoomSingleStepX,_nZoomSingleStepY,_imageArea.getAreaSize().getWidth(),_imageArea.getAreaSize().getHeight());moveTiles(_nMoveSingleStepX,_nMoveSingleStepY);_imageArea.placeImageList(_zoomImagePropertyList);}
_nZoomStepNumber --;_zoomTimeout=window.setTimeout(doZoom,0);}
else
{zoomEnd();}
}
function zoomWithSteps(newCenterPoint,zoomFactor){var ZoomCenterPixelX=newCenterPoint.getX();var ZoomCenterPixelY=newCenterPoint.getY();createPropertyList();createZoomContainer();_nZoomStepNumber=_zoomSteps;_zoomFactor=zoomFactor;_nZoomSingleStepX=Math.round(_imageArea.getImageSize().getWidth()*_imageArea.getAreaSize().getWidth()*(zoomFactor - 1)/_zoomSteps);_nZoomSingleStepY=Math.round(_imageArea.getImageSize().getHeight()*_imageArea.getAreaSize().getHeight()*(zoomFactor - 1)/_zoomSteps);var nVisibleCenterX=_imageArea.getSize().getWidth()/2 - _imageArea.getLeftTop().getPosition().getX();var nVisibleCenterY=_imageArea.getSize().getHeight()/2 - _imageArea.getLeftTop().getPosition().getY();var nNewZoomCenterX=(ZoomCenterPixelX - _imageArea.getLeftTop().getPosition().getX())*zoomFactor;var nNewZoomCenterY=(ZoomCenterPixelY - _imageArea.getLeftTop().getPosition().getY())*zoomFactor;_nMoveSingleStepX=Math.round((nVisibleCenterX - nNewZoomCenterX)/_zoomSteps);_nMoveSingleStepY=Math.round((nVisibleCenterY - nNewZoomCenterY)/_zoomSteps);doZoom();}
function zoomWithOneStep(newCenterPoint,zoomFactor){if(_tileset.getBoundsConstraintManager().isZoomOutOfBounds(zoomFactor)){return false;}
var tileSizeInMeter=_tileset.nTilesizeMeter/zoomFactor;var zoomCenter=_tileset.getCurrentMapType().getProjection().pixelToMeter(newCenterPoint);var newCenterPointinMeter=_tileset.getBoundsConstraintManager().calculateNewCenter(tileSizeInMeter,zoomCenter);newCenterPoint=_tileset.getCurrentMapType().getProjection().meterToPixel(newCenterPointinMeter);var ZoomCenterPixelX=newCenterPoint.getX();var ZoomCenterPixelY=newCenterPoint.getY();var nSliderTileLeft=_imageArea.getLeftTop().getPosition().getX();var nSliderTileTop=_imageArea.getLeftTop().getPosition().getY();var nSliderTileWidth=_imageArea.getImageSize().getWidth();var nSliderTileHeight=_imageArea.getImageSize().getHeight();createPropertyList();_zoomFactor=zoomFactor;_nZoomSingleStepX=Math.round(nSliderTileWidth*_imageArea.getAreaSize().getWidth()*(_zoomFactor - 1));_nZoomSingleStepY=Math.round(nSliderTileHeight*_imageArea.getAreaSize().getHeight()*(_zoomFactor - 1));zoomTiles(_nZoomSingleStepX,_nZoomSingleStepY,_imageArea.getAreaSize().getWidth(),_imageArea.getAreaSize().getHeight());var nVisibleCenterX=_imageArea.getSize().getWidth()/2 - nSliderTileLeft;var nVisibleCenterY=_imageArea.getSize().getHeight()/2 - nSliderTileTop;var nNewZoomCenterX=0;var nOriginalX=ZoomCenterPixelX - nSliderTileLeft;var nCenterTileNumX=Math.floor(nOriginalX/_imageArea.getImageSize().getWidth());var nXinTile=nOriginalX - _imageArea.getImageSize().getWidth()*nCenterTileNumX;nCenterTileNumX=nCenterTileNumX + 1;if(nCenterTileNumX<2){nNewZoomCenterX=nXinTile/_imageArea.getImageSize().getWidth()*_zoomImagePropertyList[0].getSize().getWidth();}
else
{try{for(var nTileNum=0;nTileNum<=nCenterTileNumX - 2;nTileNum++){nNewZoomCenterX +=_zoomImagePropertyList[nTileNum].getSize().getWidth();}
nNewZoomCenterX +=nXinTile/_imageArea.getImageSize().getWidth()*_zoomImagePropertyList[nCenterTileNumX-1].getSize().getWidth();}catch(e){}
}
var nNewZoomCenterY=0;var nOriginalY=ZoomCenterPixelY - nSliderTileTop;var nCenterTileNumY=Math.floor(nOriginalY/_imageArea.getImageSize().getHeight());var nYinTile=nOriginalY - _imageArea.getImageSize().getHeight()*nCenterTileNumY;nCenterTileNumY=nCenterTileNumY + 1;if(nCenterTileNumY<2){nNewZoomCenterY=nYinTile/_imageArea.getImageSize().getHeight()*_zoomImagePropertyList[0].getSize().getHeight();}
else
{for(var nTileNumY=0;nTileNumY<=nCenterTileNumY - 2;nTileNumY++){nNewZoomCenterY=nNewZoomCenterY + _zoomImagePropertyList[nCenterTileNumX + _imageArea.getAreaSize().getWidth()*nTileNumY].getSize().getHeight();}
nNewZoomCenterY=nNewZoomCenterY + nYinTile/_imageArea.getImageSize().getHeight()*_zoomImagePropertyList[nCenterTileNumX-1 + _imageArea.getAreaSize().getWidth()*(nCenterTileNumY-1)].getSize().getHeight();}
_nMoveSingleStepX=Math.round((nVisibleCenterX - nNewZoomCenterX));_nMoveSingleStepY=Math.round((nVisibleCenterY - nNewZoomCenterY));moveTiles(_nMoveSingleStepX,_nMoveSingleStepY);if(_zoomImagePropertyList[0].getSize().getWidth()<_limitationOfTileSize){_imageArea.placeImageList(_zoomImagePropertyList);}
}
function buildZoomContainer(){var oldZoomImagesContainer=iw.search(tileset.getTilesContainer().parentNode,'divTileMapZoom')
if(oldZoomImagesContainer !=null){iw.remove(oldZoomImagesContainer);}
_zoomImagesContainer=iw.create('div');_zoomImagesContainer.id='divTileMapZoom';_zoomImagesContainer.style.zIndex=0;var n=iw.search(_tileset.getTilesContainer().parentNode,'divTileMap');iw.before(_tileset.getTilesContainer().parentNode,n,_zoomImagesContainer);}
function createZoomContainer(){for(var i=0;i<_imageArea.getImageList().length;i++){var obj=_imageArea.getImageList()[i];_zoomImagesContainer.appendChild(obj.divZoomTile);iw.append(obj.divZoomTile,obj.imgZoomTile);}
}
function getZoomLimitation(){var mapType=_tileset.getMap().getCurrentMapType();var CurrentTilesizeMeter=_tileset.nTilesizeMeter;if(CurrentTilesizeMeter/_zoomFactor<iwconst.A_TILESIZE_METER[mapType.getMaxLevel()]){_zoomFactor=CurrentTilesizeMeter/iwconst.A_TILESIZE_METER[mapType.getMaxLevel()];return iwconst.A_TILESIZE_METER[mapType.getMaxLevel()];}
if(CurrentTilesizeMeter/_zoomFactor>iwconst.A_TILESIZE_METER[mapType.getMinLevel()]){_zoomFactor=CurrentTilesizeMeter/iwconst.A_TILESIZE_METER[mapType.getMinLevel()];return iwconst.A_TILESIZE_METER[mapType.getMinLevel()];}
}
_tileset=tileset;_map=_tileset.getMap();_imageArea=new IWTileSetArea(_tileset);buildZoomContainer();_zoomImageZIndex=1;if(navigator.appName=="Microsoft Internet Explorer"){_zoomSteps=8;_limitationOfTileSize=10000;}
else
{_zoomSteps=4;_limitationOfTileSize=4200;}
}
function IWImage(){var _pixelLeftTop=new IWPoint(0,0);;var _pixelSize=new IWSize(0,0);var _zIndex=1;var _zooming=true;this.getLeftTop=function(){return _pixelLeftTop;};this.getSize=function(){return _pixelSize;};this.setLeftTop=function(leftTop){_pixelLeftTop=leftTop;};this.setSize=function(size){_pixelSize=size;};this.isZooming=function(){return _zooming;};this.setZooming=function(zoom){_zooming=zoom;};this.setZIndex=function(zindex){_zIndex=zindex;}
this.getZIndex=function(){return _zIndex;}
}
function IWImageArea(imgAreaSize,imgSize){var _size=null;var _imageSize=null;var _imageList=null;var _leftTop=new IWPoint(0,0);this.getSize=function(){return _size;};this.getImageSize=function(){return _imageSize;};this.getImageList=function(){return _imageList;};this.setImageList=function(imgList){_imageList=imgList;};this.placeImageList=function(imgList){};this.getLeftTop=function(){return _leftTop;};this.setLeftTop=function(lefttop){_leftTop=lefttop;};_size=imgAreaSize;_imageSize=imgSize;_imageList=new Array(_size.getWidth()*_size.getHeight());}
function IWImageTile(){var _position=new IWPoint(0,0);var _index=new IWPoint(0,0);this.getPosition=function(){return _position;}
this.setPosition=function(position){_position=postion;}
this.getIndex=function(){return _index;}
this.setIndex=function(index){_index=index;}
}
function ZoomArea(startPoint,endPoint){var _size=new IWSize(0,0);var _center=new IWPoint(0,0);this.setSize=function(size){_size=size;};this.getSize=function(){return _size;};this.setCentral=function(center){_center=center;};this.getCenter=function(){return _center;};this.create=function(startPoint,endPoint){_center.setX((startPoint.getX()+ endPoint.getX())/2);_center.setY((startPoint.getY()+ endPoint.getY())/2);_size.setWidth(Math.abs(startPoint.getX()- endPoint.getX()));_size.setHeight(Math.abs(startPoint.getY()- endPoint.getY()));};if(typeof startPoint !="undefined"&&typeof endPoint !="undefined"){this.create(startPoint,endPoint);}
}
function IWTileSetArea(tileset){IWImageArea.call(this,tileset.getSize(),new IWSize(IWTile.SIZE,IWTile.SIZE));var _zoomArea=new ZoomArea();var _leftTop=new IWImageTile();var _imageList=null;var _areaSize=tileset.getTilesAxis();this.getZoomArea=function(){return _zoomArea;}
this.getAreaSize=function(){return _areaSize;};this.getLeftTop=function(){return _leftTop;};this.getImageList=function(){return _imageList;};this.setImageList=function(tilesetContainer){if(_imageList !=null){_imageList=null;}
_imageList=new Array();for(var row=0;row<this.getAreaSize().getHeight();row++){for(var column=0;column<this.getAreaSize().getWidth();column++){var divTile=null;var divTileId='divTile_'+((this.getLeftTop().getIndex().getX()+ column)% this.getAreaSize().getWidth())+'_'+((this.getLeftTop().getIndex().getY()+ row)% this.getAreaSize().getHeight())
for(var pos=0;pos<tilesetContainer.childNodes.length;pos++){if(tilesetContainer.childNodes[pos].id==divTileId){divTile=tilesetContainer.childNodes[pos];break;}
}
var obj=new Object();var divZoomTile=iw.create('div');divZoomTile.id='z' + divTile.id;divZoomTile.style.position='absolute';divZoomTile.style.zIndex=0;divZoomTile.style.left=divTile.style.left;divZoomTile.style.top=divTile.style.top;divZoomTile.style.width=divTile.style.width;divZoomTile.style.height=divTile.style.height;divZoomTile.style.visibility=divTile.style.visibility;obj.divZoomTile=divZoomTile;var imgZoomTile=iw.create('img');imgZoomTile.id='z' + divTile.childNodes[0].id;imgZoomTile.src=divTile.childNodes[0].src;obj.imgZoomTile=imgZoomTile;_imageList.push(obj);}
}
}
this.placeImageList=function(zoomImageList){if(_imageList.length==0){return false;}
var i=0;for(var y=0;y<this.getAreaSize().getHeight();y++){for(var x=0;x<this.getAreaSize().getWidth();x++){var obj=getImage(i);var div=obj.divZoomTile;div.style.top=zoomImageList[i].getLeftTop().getY()+ 'px';div.style.left=zoomImageList[i].getLeftTop().getX()+ 'px';div.style.width=zoomImageList[i].getSize().getWidth()+ 'px';div.style.height=zoomImageList[i].getSize().getHeight()+ 'px';div.style.zIndex=zoomImageList[i].getZIndex();var image=obj.imgZoomTile;image.width=zoomImageList[i].getSize().getWidth();image.height=zoomImageList[i].getSize().getHeight();i++;}
}
}
this.setLeftTop=function(tilesetContainer){var nStartTilesX=0;var nStartTilesY=0;var nTilesX=0;var nTilesY=0;var aZoomTilesNodes=tilesetContainer.childNodes;var nLeftMin=parseInt(aZoomTilesNodes[0].style.left);nStartTilesX=(parseInt(aZoomTilesNodes[0].id.substring(aZoomTilesNodes[0].id.indexOf("_",1)+1,aZoomTilesNodes[0].id.lastIndexOf("_"))));var nTopMin=parseInt(aZoomTilesNodes[0].style.top);nStartTilesY=(parseInt(aZoomTilesNodes[0].id.substring(aZoomTilesNodes[0].id.lastIndexOf("_")+1)));var nRightMax=parseInt(aZoomTilesNodes[0].style.left);nTilesX=(parseInt(aZoomTilesNodes[0].id.substring(aZoomTilesNodes[0].id.indexOf("_",1)+1,aZoomTilesNodes[0].id.lastIndexOf("_"))));var nBottomMax=parseInt(aZoomTilesNodes[0].style.top);nTilesY=(parseInt(aZoomTilesNodes[0].id.substring(aZoomTilesNodes[0].id.lastIndexOf("_")+1)));for(var nTileNum=0;nTileNum<aZoomTilesNodes.length;nTileNum++){if(parseInt(aZoomTilesNodes[nTileNum].style.left)<nLeftMin){nLeftMin=parseInt(aZoomTilesNodes[nTileNum].style.left);nStartTilesX=(parseInt(aZoomTilesNodes[nTileNum].id.substring(aZoomTilesNodes[nTileNum].id.indexOf("_",1)+1,aZoomTilesNodes[nTileNum].id.lastIndexOf("_"))));}
if(parseInt(aZoomTilesNodes[nTileNum].style.top)<nTopMin){nTopMin=parseInt(aZoomTilesNodes[nTileNum].style.top);nStartTilesY=(parseInt(aZoomTilesNodes[nTileNum].id.substring(aZoomTilesNodes[nTileNum].id.lastIndexOf("_")+1)));}
if(parseInt(aZoomTilesNodes[nTileNum].style.left)>nRightMax){nRightMax=parseInt(aZoomTilesNodes[nTileNum].style.left);nTilesX=(parseInt(aZoomTilesNodes[nTileNum].id.substring(aZoomTilesNodes[nTileNum].id.indexOf("_",1)+1,aZoomTilesNodes[nTileNum].id.lastIndexOf("_"))));}
if(parseInt(aZoomTilesNodes[nTileNum].style.top)>nBottomMax){nBottomMax=parseInt(aZoomTilesNodes[nTileNum].style.top);nTilesY=(parseInt(aZoomTilesNodes[nTileNum].id.substring(aZoomTilesNodes[nTileNum].id.lastIndexOf("_")+1)));}
}
var nZoomTilesX1=nTilesX - nStartTilesX + 1;var nZoomTilesY1=nTilesY - nStartTilesY + 1;if(nZoomTilesX1<=0){nZoomTilesX1=nZoomTilesX1 + _areaSize.getWidth();}
if(nZoomTilesY1<=0){nZoomTilesY1=nZoomTilesY1 + _areaSize.getHeight();}
this.getAreaSize().setWidth(nZoomTilesX1);this.getAreaSize().setHeight(nZoomTilesY1);this.getLeftTop().getPosition().setX(nLeftMin);this.getLeftTop().getPosition().setY(nTopMin);this.getLeftTop().getIndex().setX(nStartTilesX);this.getLeftTop().getIndex().setY(nStartTilesY);aZoomTilesNodes=null;}
this.getMouseZoomArea=function(startZoomPosition,endZoomPosition){if(startZoomPosition.equals(endZoomPosition))return;var startPosition=new IWPoint(startZoomPosition.getX(),startZoomPosition.getY());var endPosition=new IWPoint(endZoomPosition.getX(),endZoomPosition.getY());var pixelX=Math.round((startPosition.getX()+ endPosition.getX())/2);var pixelY=Math.round((startPosition.getY()+ endPosition.getY())/2);this.getZoomArea().getCenter().setX(pixelX);this.getZoomArea().getCenter().setY(pixelY);var width=Math.abs(startPosition.getX()- endPosition.getX());var height=Math.abs(startPosition.getY()- endPosition.getY());this.getZoomArea().getSize().setWidth(width);this.getZoomArea().getSize().setHeight(height);var visibleRatio=this.getSize().getWidth()/this.getSize().getHeight();var zoomAreaRatio=this.getZoomArea().getSize().getWidth()/this.getZoomArea().getSize().getHeight();if(zoomAreaRatio<visibleRatio){var diffWidth=(this.getZoomArea().getSize().getHeight()*visibleRatio - this.getZoomArea().getSize().getWidth())/2;var signed=(startPosition.getX()- endPosition.getX())/Math.abs(startPosition.getX()- endPosition.getX())
startPosition.setX(Math.round(startPosition.getX()+ signed*diffWidth));endPosition.setX(Math.round(endPosition.getX()- signed*diffWidth));}
else
{var diffHeight=(this.getZoomArea().getSize().getWidth()/visibleRatio - this.getZoomArea().getSize().getHeight())/2;var signed=(startPosition.getY()- endPosition.getY())/Math.abs(startPosition.getY()- endPosition.getY())
startPosition.setY(Math.round(startPosition.getY()+ signed*diffHeight));endPosition.setY(Math.round(endPosition.getY()- signed*diffHeight));}
this.getZoomArea().getSize().setWidth(Math.abs(startPosition.getX()- endPosition.getX()));this.getZoomArea().getSize().setHeight(Math.abs(startPosition.getY()- endPosition.getY()));}
this.init=function(){var tilesetContainer=tileset.getTilesContainer();this.setLeftTop(tilesetContainer);this.setImageList(tilesetContainer);}
function addImage(imageObject){_imageList.push(imageObject);}
function getImage(index){return _imageList[index];}
}function POIEntries(){var array=new Array();this.addEntry=function(ovlID,windowtype,name,street,housenumber,zipcode,city,phone,fax,link,mail,type,description,keywords,detailURL){var obj=new Object();if(link.indexOf('http://')!=0&&link.length>0){link='http://' + link;}
obj["ovlID"]=ovlID;obj["windowtype"]=windowtype;obj["name"]=name;obj["street"]=street;obj["housenumber"]=housenumber;obj["zipcode"]=zipcode;obj["city"]=city;obj["phone"]=phone;obj["fax"]=fax;obj["link"]=link;obj["mail"]=mail;obj["type"]=type;obj["description"]=(typeof description !='undefined')? description:'';obj["keywords"]=(typeof keywords !='undefined')? keywords:'';obj["detailURL"]=(typeof detailURL !='undefined')? detailURL:'';array.push(obj);}
this.getEntry=function(nIndex){if(nIndex<array.length){return array[nIndex];}
}
this.getEntries=function(){return array;}
}
function GlobalPOIList(){var ARRAY_OVL_IDS=new Array();this.contains=function(id){for(var i=0;i<ARRAY_OVL_IDS.length;i++){if(ARRAY_OVL_IDS[i]==id){return true;}
}
return false;}
this.addPOI=function(id){ARRAY_OVL_IDS.push(id);}
this.removePOI=function(id){for(var i=0;i<ARRAY_OVL_IDS.length;i++){if(ARRAY_OVL_IDS[i]==id){var obj=ARRAY_OVL_IDS[i];ARRAY_OVL_IDS[i]=ARRAY_OVL_IDS[ARRAY_OVL_IDS.length-1];ARRAY_OVL_IDS.length=ARRAY_OVL_IDS.length - 1;return obj;}
}
return null;}
this.removeTooltips=function(){for(var nEntry=0;nEntry<ARRAY_OVL_IDS.length;){if(ARRAY_OVL_IDS[nEntry].indexOf("Tooltip")>-1){this.removePOI(ARRAY_OVL_IDS[nEntry]);}
else
{nEntry++;}
}
}
this.clear=function(){ARRAY_OVL_IDS.length=0;}
this.getPOIList=function(){return ARRAY_OVL_IDS;}
}
var poiOverMapServer=true;var nPOIMax=0;var globalPOIList=new GlobalPOIList();function setRouteStart(sSTR,sHNR,sPLZ,sORT,sLND){unlockInputFields("dest");lockInputFields("start");document.RouteBerechnen.STR1.value=sSTR;document.RouteBerechnen.HNR1.value=sHNR;document.RouteBerechnen.PLZ1.value=sPLZ;document.RouteBerechnen.ORT1.value=sORT;if(sLND.length>0)document.RouteBerechnen.LAND1.value='sLND';else
document.RouteBerechnen.LAND1.value='Deutschland';document.RouteBerechnen.STR2.value='Strasse';document.RouteBerechnen.HNR2.value='H-Nr';document.RouteBerechnen.PLZ2.value='PLZ';document.RouteBerechnen.ORT2.value='Ort';document.RouteBerechnen.LAND2.value='Deutschland';if(isOpen !='true')move();}
function setRouteDestination(sSTR,sHNR,sPLZ,sORT,sLND){unlockInputFields("start");lockInputFields("dest");document.RouteBerechnen.STR2.value=sSTR;document.RouteBerechnen.HNR2.value=sHNR;document.RouteBerechnen.PLZ2.value=sPLZ;document.RouteBerechnen.ORT2.value=sORT;if(sLND.length>0)document.RouteBerechnen.LAND2.value='sLND';else
document.RouteBerechnen.LAND2.value='Deutschland';document.RouteBerechnen.STR1.value='Strasse';document.RouteBerechnen.HNR1.value='H-Nr';document.RouteBerechnen.PLZ1.value='PLZ';document.RouteBerechnen.ORT1.value='Ort';document.RouteBerechnen.LAND1.value='Deutschland';if(isOpen !='true')move();}
function iwSetSelectionString(){this.sSelection='';for(var nType=0;nType<this.aPOITypes.length;nType++){this.sSelection +=unescape(this.aPOITypes[nType].getName())+ '=';if(this.aPOITypes[nType].isVisible())this.sSelection +='1';else
this.sSelection +='0';if(nType<this.aPOITypes.length - 1)this.sSelection +=';';}
}
function POIEntry(name,defaultSymbol,visibility,zoomLevel){var name=name;var defaultSymbol=defaultSymbol;var visible=visibility;var zoomLevel=zoomLevel;this.getName=function getName(){return name;}
this.getSymbolURL=function getSymbolURL(){return defaultSymbol;}
this.isVisible=function isVisible(){return visibility==1? true:false;}
this.getZoomLevel=function getZoomLevel(){return zoomLevel;}
}
function PointsOfInterest(){var entryArray=new Array();var flags="";this.setPOIGroup=function setPOIGroup(groupName,callback){if(flags !="")return;var xmlHttp=new IWXMLHttpRequest();if(xmlHttp==null){alert("Browser does not support HTTP Request")
return;}
var url=iwconst.LOCAL_APP_URL + 'servlet/FrontController'
+ '?cmd=getPOITypes&app=ms'
+	'&VNR=' + IWAccessFilter.getCNR()
+ '&PNR=' + IWAccessFilter.getPNR()
+ '&poiGroup=' + groupName
+ szExtraUrlParm;try{xmlHttp.open("GET",url,true);xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){if(xmlHttp.status==200){var xml=xmlHttp.responseXML;var	poiEntries=xml.getElementsByTagName("poi-entry");for(var i=0;i<poiEntries.length;i++){var entry=poiEntries[i];if(entry.nodeName !="poi-entry")continue;var name="";var defaultSymbol="";var visibility="";var zoomLevel="";for(var j=0;j<entry.childNodes.length;j++){if(entry.childNodes[j].nodeName=="name"&&entry.childNodes[j].firstChild)name=entry.childNodes[j].firstChild.nodeValue;if(entry.childNodes[j].nodeName=="default-symbol"&&entry.childNodes[j].firstChild)defaultSymbol=entry.childNodes[j].firstChild.nodeValue;if(entry.childNodes[j].nodeName=="visibility"&&entry.childNodes[j].firstChild)visibility=entry.childNodes[j].firstChild.nodeValue;if(entry.childNodes[j].nodeName=="zoom-level"&&entry.childNodes[j].firstChild)zoomLevel=entry.childNodes[j].firstChild.nodeValue;}
var poiEntry=new POIEntry(name,defaultSymbol,visibility,zoomLevel);entryArray.push(poiEntry);}
flags="";for(var i=0;i<entryArray.length;i++){var entry=entryArray[i];if(entry.isVisible())flags=flags + "1";else
flags=flags + "0";}
callback();}
else
{alert("Unable to read POIs from Server");}
}
}.iwclosure(this);xmlHttp.send(null);}
catch(exception){alert("Exception:" + exception);}
}
this.getFlag=function getFlag(){var url="";var sep="|";for(var i=0;i<entryArray.length;i++){var entry=entryArray[i];url=url + sep + entry.getName()+ "+" + flags.charAt(i);}
return url;}
this.getEntries=function getEntries(){return entryArray;}
this.setVisibleAll=function setVisibleAll(){flags="";for(var i=0;i<entryArray.length;i++){flags=flags + "1";}
}
this.setHiddenAll=function setHiddenAll(){flags="";for(var i=0;i<entryArray.length;i++){flags=flags + "0";}
}
this.setVisible=function setVisible(poiName){var flagsnew="";for(var i=0;i<entryArray.length;i++){var entry=entryArray[i];if(entry.getName()==poiName){flagsnew=flagsnew + "1";}
else{flagsnew=flagsnew + flags.charAt(i);}
}
flags=flagsnew;}
this.setHidden=function setHidden(poiName){var flagsnew="";for(var i=0;i<entryArray.length;i++){var entry=entryArray[i];if(entry.getName()==poiName){flagsnew=flagsnew + "0";}
else{flagsnew=flagsnew + flags.charAt(i);}
}
flags=flagsnew;}
}var POPUPS=new Array();POPUPS["Fenster"]=1;POPUPS["Tooltip"]=2;POPUPS["Link"]=3;POPUPS["Sprechblase"]=4;POPUPS["Sprechblase_Schatten"]=5;POPUPS["Fenster_MSH"]=6;POPUPS["Fenster_GS"]=7;POPUPS["Sprechblase_GS"]=8;POPUPS["Webcam"]=9;POPUPS["Sprechblase_IFrame"]=10;POPUPS["TBLink"]=11;var resizePopup=null;var resizeArea=null;var resizeStep=40;var resizeWidth;var resizeHeight;var resizeTop;var resizeLeft;var resizeable=false;function iwAbstractPopup(){IWOverlayOld.call(this);this.oTimeoutShow;this.oTimeoutHide;this.bPopupLocked=false;this.iwPlacePopup=iwPlacePopup;this.iwShowPopup=iwShowPopup;this.iwDelayShowPopup=iwDelayShowPopup;this.iwHidePopup=iwHidePopup;this.iwDelayHidePopup=iwDelayHidePopup;this.iwStopPopupTimeouts=iwStopPopupTimeouts;this.iwFadeIn=iwFadeIn;this.iwReleasePopup=iwReleasePopup;this.iwGrapPopup=iwGrapPopup;this.iwDragPopup=iwDragPopup;this.iwLockPopup=iwLockPopup;this.iwReleasePopup=iwReleasePopup;this.maximize=iwMaximize;this.minimize=iwMinimize;this.setResizeable=iwSetResizeable;this.isResizeable=iwIsResizeable;this.setMinWidth=function(nMinWidth){alert("iwAbstractPopup.setMinWidth:not implemented");}
this.setMinHeight=function(nMinHeight){alert("iwAbstractPopup.setMinHeight:not implemented");}
this.setMaxWidth=function(nMaxWidth){alert("iwAbstractPopup.setMaxWidth:not implemented");}
this.setMaxHeight=function(nMaxHeight){alert("iwAbstractPopup.setMaxHeight:not implemented");}
this.beforeMaximize=function(){}
this.afterMaximize=function(){}
this.beforeMinimize=function(){}
this.afterMinimize=function(){}
this.getMaxHeight=function(){alert("iwAbstractPopup.getMaxHeight:not implemented");}
this.getMaxWidth=function(){alert("iwAbstractPopup.getMaxWidth:not implemented");}
this.getMinHeight=function(){alert("iwAbstractPopup.getMinHeight:not implemented");}
this.getMinWidth=function(){alert("iwAbstractPopup.getMinWidth:not implemented");}
this.getResizeArea=function(){alert("iwAbstractPopup.getResizeArea:not implemented");}
this.isTooltip=function(){return false;};this.iwSlideMapAndShowPopup=iwSlideMapAndShowPopup;this.activateMapSlide=false;this.setContent=function(content){alert("iwAbstractPopup.setContent:not implemented");}
this.show=function(x,y,c){alert("iwAbstractPopup.show:not implemented");}
this.hide=function(){alert("iwAbstractPopup.hide:not implemented");}
this.getAnchorX=function(){alert("iwAbstractPopup.getAnchorX:not implemented");}
this.getAnchorY=function(){alert("iwAbstractPopup.getAnchorY:not implemented");}
}
function iwPopupFactory(){this.create=function(sTemplateName,poiEntries){var oPopup=null;nTemplate=POPUPS[sTemplateName];switch(nTemplate){case 1:oPopup=new Fenster();oPopup.setContent(new iwPOIContent(poiEntries));oPopup.activateMapSlide=true;break;case 2:oPopup=new Tooltip();oPopup.setContent(new iwTooltipContent(poiEntries));break;case 3:oPopup=new Link();oPopup.setContent(new iwLinkContent(poiEntries));break;case 4:oPopup=new Sprechblase();oPopup.setContent(new iwPOIContent(poiEntries));oPopup.activateMapSlide=true;break;case 5:oPopup=new Sprechblase_Schatten();oPopup.setContent(new iwBubbleContent(poiEntries));oPopup.activateMapSlide=true;break;case 6:oPopup=new Fenster_MSH();oPopup.setContent(new mshPOIContent(poiEntries));oPopup.activateMapSlide=true;break;case 7:oPopup=new Fenster_GS();oPopup.setContent(new gsPOIContent(poiEntries));oPopup.activateMapSlide=true;break;case 8:oPopup=new Sprechblase_GS();oPopup.activateMapSlide=true;if(!poiEntries)return oPopup;var obj=poiEntries.getEntry(0);var sDescription=obj["description"];if(sDescription.indexOf("IFRAME")==0){var nWidth=parseInt(sDescription.substring(sDescription.indexOf("W=")+ 2));var nHeight=parseInt(sDescription.substring(sDescription.indexOf("H=")+ 2));if(isNaN(nWidth))nWidth=400;if(isNaN(nHeight))nHeight=300;oPopup.setMinWidth(nWidth);oPopup.setMinHeight(nHeight);oPopup.setContent(new IFrameContent(poiEntries));oPopup.setResizeable(true);}
else
{oPopup.setContent(new Content_Sprechblase_GS(poiEntries));oPopup.setResizeable(true);}
break;case 9:oPopup=new Webcam();oPopup.setContent(new iwTooltipContent(poiEntries));oPopup.activateMapSlide=true;break;case 10:oPopup=new Sprechblase_GS();oPopup.setContent(new IFrameContent(poiEntries));oPopup.activateMapSlide=true;break;case 11:oPopup=new TBLink();oPopup.setContent(new TBLinkContent(poiEntries));oPopup.activateMapSlide=true;break;default:alert("iwPopupFactory.create:Unknown popup class '" + sTemplateName + "'");}
return oPopup;}
}
function iwShowPopup(nPosX,nPosY){this.iwStopPopupTimeouts();var node=this.getContainer();if(!this.isTooltip()){var coord=map.fromPixelToCoordinate(new IWPoint(nPosX,nPosY));oTileset.SetAnchor(node.id,coord.getX(),coord.getY());}
if(node.addEventListener){if(!this.isTooltip()){node.addEventListener("click",noPropagation,false);}
}
else if(node.attachEvent){if(!this.isTooltip()){node.attachEvent("onclick",noPropagation);}
}
var aInputElements=node.getElementsByTagName('input');for(var nIndex=0;nIndex<aInputElements.length;nIndex++){if(aInputElements[nIndex].name=='S'){aInputElements[nIndex].value='';}
}
var parentDiv=this.getParent();node.style.visibility="hidden";parentDiv.appendChild(node);if(this.activateMapSlide){node.style.display="none";this.iwSlideMapAndShowPopup(parentDiv,nPosX,nPosY);}
else
{this.iwPlacePopup(parentDiv,nPosX,nPosY);this.iwFadeIn();}
return false;}
function iwSlideMapAndShowPopup(parentDiv,nPosX,nPosY){var node=this.getContainer();nPosX=nPosX - this.getAnchorX();nPosY=nPosY - this.getAnchorY();var nPopupWidth=parseInt(node.style.width);var nPopupHeight=parseInt(node.style.height);if(isNaN(nPopupWidth)||isNaN(nPopupHeight))return false;var difHorizontal=0;var difVertical=0;if(nPosX<0){difHorizontal=- nPosX + 10;}
else if(nPosX + nPopupWidth>parseInt(parentDiv.style.width)){difHorizontal=-(nPosX + nPopupWidth - parseInt(parentDiv.style.width)+ 10);}
if(nPosY<0){difVertical=- nPosY + 10;}
else if(nPosY + nPopupHeight>parseInt(parentDiv.style.height)){difVertical=-(nPosY + nPopupHeight - parseInt(parentDiv.style.height)+ 10);}
node.style.left=nPosX + 'px';node.style.top=nPosY + 'px';this.iwFadeIn();node.style.display="block";if(Math.abs(difHorizontal)>=10||Math.abs(difVertical)>=10){oTileset.panBy(new IWPoint(difHorizontal,difVertical));}
node.style.visibility="visible";}
function iwMaximize(){this.beforeMaximize();if(window.minimizeIt){clearInterval(minimizeIt)
}
resizePopup=this;resizeArea=this.getResizeArea();resizeHeight=this.getMaxHeight();resizeWidth=this.getMaxWidth();resizeTop=parseInt(resizeArea.style.top);resizeLeft=parseInt(resizeArea.style.left);maximizeIt=setInterval("maximizeEngine()",20)
}
function maximizeEngine(){var h=parseInt(resizeArea.style.height);var w=parseInt(resizeArea.style.width);if(h<resizeHeight){if(h + resizeStep<=resizeHeight){resizeTop=resizeTop - resizeStep;resizeArea.style.top=resizeTop + "px";resizeArea.style.height=(h + resizeStep)+ "px";}
else
{resizeTop=resizeTop -(resizeHeight - h);resizeArea.style.top=resizeTop + "px";resizeArea.style.height=resizeHeight + "px";}
}
if(w<resizeWidth){if(w + resizeStep<=resizeWidth){resizeLeft=resizeLeft -(resizeStep/2);resizeArea.style.width=(w + resizeStep)+ "px";resizeArea.style.left=resizeLeft + "px";}
else
{resizeLeft=resizeLeft -((resizeWidth - w)/2);resizeArea.style.width=resizeWidth + "px";resizeArea.style.left=resizeLeft + "px";}
}
if(h>=resizeHeight&&w>=resizeWidth){clearInterval(maximizeIt);resizePopup.afterMaximize()
}
}
function iwMinimize(){this.beforeMinimize();if(window.maximizeIt){clearInterval(maximizeIt)
}
resizePopup=this;resizeArea=this.getResizeArea();resizeHeight=this.getMinHeight();resizeWidth=this.getMinWidth();resizeTop=parseInt(resizeArea.style.top);resizeLeft=parseInt(resizeArea.style.left);minimizeIt=setInterval("minimizeEngine()",10)
}
function minimizeEngine(){var h=parseInt(resizeArea.style.height);var w=parseInt(resizeArea.style.width);if(h>resizeHeight){if(h - resizeStep>=resizeHeight){resizeTop=resizeTop + resizeStep;resizeArea.style.top=resizeTop + "px";resizeArea.style.height=(h - resizeStep)+ "px";}
else
{resizeTop=resizeTop +(h - resizeHeight);resizeArea.style.top=resizeTop + "px";resizeArea.style.height=resizeHeight + "px";}
}
if(w>resizeWidth){if(w - resizeStep>=resizeWidth){resizeLeft=resizeLeft +(resizeStep/2);resizeArea.style.width=(w - resizeStep)+ "px";resizeArea.style.left=resizeLeft + "px";}
else
{resizeLeft=resizeLeft +((w - resizeWidth)/2);resizeArea.style.width=resizeWidth + "px";resizeArea.style.left=resizeLeft + "px";}
}
if(h<=resizeHeight&&w<=resizeWidth){clearInterval(minimizeIt);resizePopup.afterMinimize()
}
}
function iwDelayShowPopup(nPosX,nPosY,iTime){this.iwStopPopupTimeouts();this.oTimeoutShow=window.setTimeout(function(){this.iwShowPopup(nPosX,nPosY);}.iwclosure(this),iTime);}
function iwPlacePopup(parentDiv,nPosX,nPosY){var node=this.getContainer();var nVisibleWidth=parseInt(parentDiv.style.width);var nVisibleHeight=parseInt(parentDiv.style.height);var nRemainingX=nVisibleWidth - nPosX;var nRemainingY=nVisibleHeight - nPosY;var nPopupWidth=parseInt(node.style.width);var nPopupHeight=parseInt(node.style.height);if(isNaN(nPopupWidth)||isNaN(nPopupHeight))return false;if(nPopupWidth>=(nVisibleWidth - 10)){node.style.width=(nVisibleWidth - 10)+ 'px';node.style.left='5px';}
else if(nPopupWidth>nRemainingX){node.style.left=(nVisibleWidth - nPopupWidth - 5)+ 'px';}
else
node.style.left=nPosX + 'px';if(nPopupHeight>=(nVisibleHeight - 10)){node.style.height=(nVisibleHeight - 10)+ 'px';node.style.top='5px';node.style.overflow='scroll';if(navigator.appName=="Microsoft Internet Explorer"){node.style.width=(parseInt(node.style.width)+ 20)+ 'px';node.style.left=(parseInt(node.style.left)- 20)+ 'px';}
}
else if(nPopupHeight>nRemainingY){node.style.overflow='hidden';node.style.top=(nVisibleHeight - nPopupHeight - 5)+ 'px';}
else
{node.style.overflow='hidden';node.style.top=nPosY + 'px';}
node.style.visibility="visible";}
function iwHidePopup(self){var node=this.getContainer();if(!this.isTooltip())oTileset.RemoveAnchor(node.id);if(node.parentNode){node.parentNode.removeChild(node);this.iwReleasePopup();globalPOIList.removePOI(this.getContent().getEntries()[0]["ovlID"]+ "_" + this.getContent().getEntries()[0]["windowtype"]);}
}
function iwDelayHidePopup(t){this.iwStopPopupTimeouts();if(!this.bPopupLocked){var _this=this;this.oTimeoutHide=window.setTimeout(function(){_this.iwHidePopup(_this);},t);}
}
function iwStopPopupTimeouts(){if(this.oTimeoutHide)window.clearTimeout(this.oTimeoutHide);if(this.oTimeoutShow)window.clearTimeout(this.oTimeoutShow);}
function iwGrapPopup(node,event){var self=this;var refMouseMove=null;var refMouseUp=null;if(!event){event=window.event;}
noPropagation(event);var handlerMouseUp=function(){IWEventManager.removeListener(refMouseMove);IWEventManager.removeListener(refMouseUp);};var refMouseMove=IWEventManager.addListener(node,"onmousemove",function(event){noPropagation(event);iwDragPopup(self,event);});var refMouseUp=IWEventManager.addListener(node,"onmouseup",function(event){noPropagation(event);handlerMouseUp();});return false;}
function iwDragPopup(self,event){if(!event){event=window.event;}
var _mouseAdapter=new IWMouseAdapter();var mouseEvent=_mouseAdapter.toMouseEvent(event,self.getParent());var node=self.getContainer();var newPositionX=parseInt(node.style.left)+ mouseEvent.offset.getX();var newPositionY=parseInt(node.style.top)+ mouseEvent.offset.getY();node.style.left=newPositionX + 'px';node.style.top=newPositionY + 'px';noPropagation(event);return true;}
function iwLockPopup(){this.bPopupLocked=true;}
function iwReleasePopup(){this.bPopupLocked=false;}
function iwFadeIn(nOpacity){var node=this.getContainer();if(typeof nOpacity=='undefined')nOpacity=-0.05;if(nOpacity<this.getOpacity()){nOpacity +=0.1;nOpacity=Math.min(nOpacity,this.getOpacity());node.style.opacity=nOpacity;node.style.MozOpacity=nOpacity;node.style.filter="alpha(opacity=" +(nOpacity*100)+ ")";window.setTimeout(function(){this.iwFadeIn(nOpacity)}.iwclosure(this),30);}
}
function iwSetResizeable(onOff){resizeable=onOff;}
function iwIsResizeable(){return resizeable;}function StatisticsContent(coord,content){var _coord=coord;var _content=content;this.getTitle=function getTitle(){return 'Statistiken f\u00FCr Koordinate ' + _coord.toString();};this.getContent=function getContent(){return _content;};this.getEntries=function(){var entry=new Object();entry['ovlID']='1';entry['windowtype']='Window';var entries=new Array();entries.push(entry);return entries;};}function TextContent(id,type,content){var _id=id;var _type=type;var _content=content;this.getTitle=function getTitle(){return 'TMC Pro-Stauinformationen';};this.getContent=function getContent(){return _content;};this.getEntries=function(){var entry=new Object();entry['ovlID']=_id;entry['windowtype']=_type;var entries=new Array();entries.push(entry);return entries;};}function iwBubbleContent(entries){var poiEntries=entries;this.getTitle=function getTitle(){return(poiEntries.getEntries().length==1 ? "Einen Eintrag gefunden":poiEntries.getEntries().length + " Eintr\u00E4ge gefunden");}
this.getContent=function getContent(){var s="";for(var i=0;i<poiEntries.getEntries().length;i++){var z="";var obj=poiEntries.getEntry(i);var style="float:left;width:50px;";if(obj["name"].length>0)s +="<div class='spacer1'><b>" + obj["name"]+ "</b></div>";if(obj["street"].length>0){s +="<div>" + obj["street"]+ " " + obj["housenumber"]+ "</div>";z +=obj["street"]+ " " + obj["housenumber"]+ " ";}
if(obj["zipcode"].length>0){if(obj["city"].length>0){s +="<div class='spacer2'>" + obj["zipcode"]+ " " + obj["city"]+ "</div>";z +=obj["zipcode"]+ " " + obj["city"];}
else
{s +="<div class='spacer2'>" + obj["zipcode"]+ "</div>";z +=obj["zipcode"];}
}
else
{if(obj["city"].length>0){s +="<div class='spacer2'>" + obj["city"]+ "</div>";z +=obj["city"];}
}
if(obj["phone"].length>0)s +="<div style='"+style+"'>Tel.</div><div>"+obj["phone"]+"</div>";if(obj["fax"].length>0)s +="<div class='spacer2' style='"+style+"'>Fax</div><div class='spacer2'>"+obj["fax"]+"</div>";if(obj["mail"].length>0)s +="<div style='"+style+";'>E-Mail</div><div><a href='mailto:"+obj["mail"]+ "'>"+obj["mail"]+"</a></div>";if(obj["link"].length>0)s +="<div style='"+style+"'>Internet</div><div><a href='" + obj["link"]+"' target='_blank'>"+obj["link"]+"</a></div>";if(obj["zipcode"].length>0||obj["city"].length>0){var sRouteStart='setRouteStart(\'' + obj["street"]+ '\',\'' + obj["housenumber"]+ '\',\'' + obj["zipcode"]+ '\',\'' + obj["city"]+ '\',\'D\');';var sRouteDest='setRouteDestination(\'' + obj["street"]+ '\',\'' + obj["housenumber"]+ '\',\'' + obj["zipcode"]+ '\',\'' + obj["city"]+ '\',\'D\');';}
if(i<(poiEntries.getEntries().length-1))s +="<hr size='1'>";}
return s;}
this.getEntries=function(){return poiEntries.getEntries();}
}function iwTooltipContent(entries){var poiEntries=entries;this.getContent=function getContent(){var s='<div>';s+='<div>' + poiEntries.getEntry(0)["name"]+ '</div>';if(poiEntries.getEntries().length>1){if(poiEntries.getEntries().length - 1==1)s +="(ein weiterer Eintrag)";else
s +="(" +(poiEntries.getEntries().length - 1)+ " weitere Eintr\u00E4ge)";}
s +='</div>';return s;}
this.getEntries=function(){return poiEntries.getEntries();}
}function iwLinkContent(entries){var poiEntries=entries;this.getContent=function getContent(){var s="";for(var i=0;i<poiEntries.getEntries().length;i++){var obj=poiEntries.getEntry(i);if(obj["link"].length>0)s=obj["link"];}
return s;}
this.getEntries=function(){return poiEntries.getEntries();}
}function TBLinkContent(entries){var poiEntries=entries;this.getContent=function getContent(){var s="";for(var i=0;i<poiEntries.getEntries().length;i++){var obj=poiEntries.getEntry(i);if(obj["link"].length>0)s=obj["link"].substring(7);}
return s;}
this.getEntries=function(){return poiEntries.getEntries();}
}function Tooltip(){iwAbstractPopup.call(this);var	_this=this;var _container=null;var _content=null;var _moveListener=null;var _zoomListener=null;this.setContent=function(content){_content=content;};this.getContent=function(){return _content;}
this.show=function show(x,y){_container=this.newContainer();_container.id="divPopup_" + _content.getEntries()[0]["ovlID"]+ "_" + _content.getEntries()[0]["windowtype"];_container.className="popup";_container.style.position="absolute";_container.style.border="1px solid #2c91c7";_container.style.zIndex="100";var span=iw.create('span');with(span.style){display='block';whiteSpace='nowrap';verticalAlign='middle';padding='2px';}
span.innerHTML=_content.getContent();iw.append(_container,span);_container.style.left="0px";_container.style.top="0px";_container.style.visibility="hidden";this.getParent().appendChild(_container);_container.style.width=_container.offsetWidth + "px";_container.style.height=_container.offsetHeight + "px";this.getParent().removeChild(_container);var w=parseInt(_container.style.width);var h=parseInt(_container.style.height);var pw=parseInt(this.getParent().style.width);var ph=parseInt(this.getParent().style.height);var orientationOffsetX=0;var orientationOffsetY=0;var topAlignment=false;var rightAlignment=false;if(y - h>0){topAlignment=true;}
else if(y>ph/2){topAlignment=true;orientationOffsetY=-(y - h - 5 - 5);}
else if(y + h + 10<ph){}
else
{orientationOffsetY=ph -(y + h + 5 + 5);}
if(x + w + 50<pw){rightAlignment=true;}
else if(x + 5<pw/2){rightAlignment=true;orientationOffsetX=pw -(x + w + 30);}
else if(x - 10 - w>0){}
else
{orientationOffsetX=-(x - w - 15);}
var leftAlignment=!rightAlignment;var bottomAlignment=!topAlignment;if(topAlignment&&rightAlignment){x=x + 10;y=y - 5 - h;}
else if(topAlignment&&leftAlignment){x=x - 10 - w;y=y - 5 - h;}
else if(bottomAlignment&&rightAlignment){x +=10;y +=5;}
else if(bottomAlignment&&leftAlignment){x=x - 10 - w;y +=5;}
x +=orientationOffsetX;y +=orientationOffsetY;_moveListener=IWEventManager.addListener(oTileset,"onmovestart",function(){if(_container&&_container.parentNode){_container.parentNode.removeChild(_container);globalPOIList.removeTooltips();}
IWEventManager.removeListener(_moveListener);IWEventManager.removeListener(_zoomListener);}
);_zoomListener=IWEventManager.addListener(oTileset,"onzoomstart",function(){if(_container&&_container.parentNode){_container.parentNode.removeChild(_container);globalPOIList.removeTooltips();}
IWEventManager.removeListener(_moveListener);IWEventManager.removeListener(_zoomListener);}
);this.iwShowPopup(x,y);this.iwDelayHidePopup(4000);return _container;};this.hide=function hide(){this.iwDelayHidePopup(4000);};this.getContainer=function(){return _container;};this.getAnchorX=function(){return 0;}
this.getAnchorY=function(){return 0;}
this.getOpacity=function(){return 0.8;};this.isTooltip=function(){return true;};}
function Link(){iwAbstractPopup.call(this);var _content=null;this.setContent=function(content){_content=content;};this.getContent=function(){return _content;};this.show=function show(x,y){var sURL=_content.getContent();if(sURL.length>0){window.open(sURL,"_blank");}
globalPOIList.removePOI(_content.getEntries()[0]['ovlID']+ '_' + _content.getEntries()[0]['windowtype']);return null;}
this.hide=function hide(){}
this.getContainer=function(){return null;}
this.getOpacity=function(){return 1.0;}
}function Sprechblase_Schatten(){iwAbstractPopup.call(this);var _container=this.newContainer();var _content=null;var w=250;var h=190;var nAnchorX=0;var nAnchorY=0;this.setContent=function(content){_content=content;}
this.getContent=function(){return _content;}
this.show=function show(x,y){var _this=this;var pw=parseInt(this.getParent().style.width);var ph=parseInt(this.getParent().style.height);var oben=true;if(y - h>0){}
else if(y>ph/2){}
else{oben=false;}
var rechts=true;if(x + w<pw){}
else if(x<pw/2){}
else{rechts=false}
var imgEckeObenLinks=document.createElement("img");imgEckeObenLinks.onload=function(){correctPNG(this);}.iwclosure(imgEckeObenLinks);imgEckeObenLinks.style.position="absolute";var imgEckeObenRechts=document.createElement("img");imgEckeObenRechts.onload=function(){correctPNG(this);}.iwclosure(imgEckeObenRechts);imgEckeObenRechts.style.position="absolute";var imgEckeUntenRechts=document.createElement("img");imgEckeUntenRechts.onload=function(){correctPNG(this);}.iwclosure(imgEckeUntenRechts);imgEckeUntenRechts.style.position="absolute";var imgEckeUntenLinks=document.createElement("img");imgEckeUntenLinks.onload=function(){correctPNG(this);}.iwclosure(imgEckeUntenLinks);imgEckeUntenLinks.style.position="absolute";var imgRandOben=document.createElement("img");imgRandOben.onload=function(){correctPNG(this);}.iwclosure(imgRandOben);imgRandOben.style.position="absolute";imgRandOben.src=iwconst.GLOBAL_APP_URL + "img/RandOben.png";var imgRandRechts=document.createElement("img");imgRandRechts.onload=function(){correctPNG(this);}.iwclosure(imgRandRechts);imgRandRechts.style.position="absolute";imgRandRechts.src=iwconst.GLOBAL_APP_URL + "img/RandMitteRechts.png";var imgRandLinks=document.createElement("img");imgRandLinks.onload=function(){correctPNG(this);}.iwclosure(imgRandLinks);imgRandLinks.style.position="absolute";imgRandLinks.src=iwconst.GLOBAL_APP_URL + "img/RandMitteLinks.png";var imgRandUnten=document.createElement("img");imgRandUnten.onload=function(){correctPNG(this);}.iwclosure(imgRandUnten);imgRandUnten.style.position="absolute";imgRandUnten.src=iwconst.GLOBAL_APP_URL + "img/RandUnten.png";_container.id="divPopup_" + _content.getEntries()[0]["ovlID"]+ "_" + _content.getEntries()[0]["windowtype"];_container.style.position="absolute";_container.style.height=h + "px";_container.style.width=w + "px";_container.style.zIndex="100";var divContent=document.createElement('div');divContent.id="divContent";divContent.style.position="absolute";divContent.style.overflow='auto';divContent.style.zIndex="11";divContent.style.backgroundColor="white";divContent.style.opacity=0.85;divContent.style.MozOpacity=0.85;divContent.style.filter="alpha(opacity=" +(0.85*100)+ ")";divContent.innerHTML=_content.getContent();if(oben&&rechts){nAnchorX=0;nAnchorY=h;imgEckeObenLinks.style.top="0px";imgEckeObenLinks.style.left="7px";imgEckeObenLinks.style.width="31px";imgEckeObenLinks.style.height="29px";imgEckeObenLinks.src=iwconst.GLOBAL_APP_URL + "img/EckeObenLinks.png";imgRandOben.style.top="0px";imgRandOben.style.left="38px";imgRandOben.style.width=w - 38 - 36 + "px";imgRandOben.style.height="29px";imgEckeObenRechts.style.top="0px";imgEckeObenRechts.style.left=w - 36 + "px";imgEckeObenRechts.style.width="36px";imgEckeObenRechts.style.height="29px";imgEckeObenRechts.src=iwconst.GLOBAL_APP_URL + "img/EckeObenRechts.png";imgRandLinks.style.top="29px";imgRandLinks.style.left="7px";imgRandLinks.style.width="13px";imgRandLinks.style.height=h - 94 + "px";imgRandRechts.style.top="29px";imgRandRechts.style.left=w - 21 + "px";imgRandRechts.style.width="20px";imgRandRechts.style.height=h - 94 + "px";imgEckeUntenLinks.style.top=h - 65 + "px";imgEckeUntenLinks.style.left="0px";imgEckeUntenLinks.style.width="80px";imgEckeUntenLinks.style.height="65px";imgEckeUntenLinks.src=iwconst.GLOBAL_APP_URL + "img/PfeilUntenLinks.png";imgRandUnten.style.top=h - 65 + "px";imgRandUnten.style.left="80px";imgRandUnten.style.width=w - 80 - 32 + "px";imgRandUnten.style.height="32px";imgEckeUntenRechts.style.top=h - 65 + "px";imgEckeUntenRechts.style.left=w - 32 + "px";imgEckeUntenRechts.style.width="32px";imgEckeUntenRechts.style.height="32px";imgEckeUntenRechts.src=iwconst.GLOBAL_APP_URL + "img/EckeUntenRechts.png";divContent.style.top="29px";divContent.style.left="20px";divContent.style.width=w - 40 + "px";divContent.style.height=h - 94 + "px";}
else if(oben&&!rechts){nAnchorX=w;nAnchorY=h;imgEckeObenLinks.style.top="0px";imgEckeObenLinks.style.left="0px";imgEckeObenLinks.style.width="31px";imgEckeObenLinks.style.height="29px";imgEckeObenLinks.src=iwconst.GLOBAL_APP_URL + "img/EckeObenLinks.png";imgRandOben.style.top="0px";imgRandOben.style.left="31px";imgRandOben.style.width=w - 38 - 36 + "px";imgRandOben.style.height="29px";imgEckeObenRechts.style.top="0px";imgEckeObenRechts.style.left=w - 43 + "px";imgEckeObenRechts.style.width="36px";imgEckeObenRechts.style.height="29px";imgEckeObenRechts.src=iwconst.GLOBAL_APP_URL + "img/EckeObenRechts.png";imgRandLinks.style.top="29px";imgRandLinks.style.left="0px";imgRandLinks.style.width="13px";imgRandLinks.style.height=h - 94 + "px";imgRandRechts.style.top="29px";imgRandRechts.style.left=w - 28 + "px";imgRandRechts.style.width="20px";imgRandRechts.style.height=h - 94 + "px";imgEckeUntenLinks.style.top=h - 65 + "px";imgEckeUntenLinks.style.left="0px";imgEckeUntenLinks.style.width="32px";imgEckeUntenLinks.style.height="32px";imgEckeUntenLinks.src=iwconst.GLOBAL_APP_URL + "img/EckeUntenLinks.png";imgRandUnten.style.top=h - 65 + "px";imgRandUnten.style.left="32px";imgRandUnten.style.width=w - 32 - 80 + "px";imgRandUnten.style.height="32px";imgEckeUntenRechts.style.top=h - 65 + "px";imgEckeUntenRechts.style.left=w - 80 + "px";imgEckeUntenRechts.style.width="80px";imgEckeUntenRechts.style.height="65px";imgEckeUntenRechts.src=iwconst.GLOBAL_APP_URL + "img/PfeilUntenRechts.png";divContent.style.top="29px";divContent.style.left="13px";divContent.style.width=w - 40 + "px";divContent.style.height=h - 94 + "px";}
else if(!oben&&rechts){nAnchorX=0;nAnchorY=0;imgEckeObenLinks.style.top="0px";imgEckeObenLinks.style.left="0px";imgEckeObenLinks.style.width="65px";imgEckeObenLinks.style.height="63px";imgEckeObenLinks.src=iwconst.GLOBAL_APP_URL + "img/PfeilObenLinks.png";imgRandOben.style.top="34px";imgRandOben.style.left="65px";imgRandOben.style.width=w - 65 - 36 + "px";imgRandOben.style.height="29px";imgEckeObenRechts.style.top="35px";imgEckeObenRechts.style.left=w - 36 + "px";imgEckeObenRechts.style.width="36px";imgEckeObenRechts.style.height="29px";imgEckeObenRechts.src=iwconst.GLOBAL_APP_URL + "img/EckeObenRechts.png";imgRandLinks.style.top="63px";imgRandLinks.style.left="7px";imgRandLinks.style.width="13px";imgRandLinks.style.height=h - 85 + "px";imgRandRechts.style.top="63px";imgRandRechts.style.left=w - 21 + "px";imgRandRechts.style.width="20px";imgRandRechts.style.height=h - 85 + "px";imgEckeUntenLinks.style.top=h - 32 + "px";imgEckeUntenLinks.style.left="7px";imgEckeUntenLinks.style.width="32px";imgEckeUntenLinks.style.height="32px";imgEckeUntenLinks.src=iwconst.GLOBAL_APP_URL + "img/EckeUntenLinks.png";imgRandUnten.style.top=h - 32 + "px";imgRandUnten.style.left="32px";imgRandUnten.style.width=w - 64 + "px";imgRandUnten.style.height="32px";imgEckeUntenRechts.style.top=h - 32 + "px";imgEckeUntenRechts.style.left=w - 32 + "px";imgEckeUntenRechts.style.width="32px";imgEckeUntenRechts.style.height="32px";imgEckeUntenRechts.src=iwconst.GLOBAL_APP_URL + "img/EckeUntenRechts.png";divContent.style.top="63px";divContent.style.left="20px";divContent.style.width=w - 40 + "px";divContent.style.height=h - 63 - 32 + "px";}
else{nAnchorX=w;nAnchorY=0;imgEckeObenLinks.style.top="34px";imgEckeObenLinks.style.left="0px";imgEckeObenLinks.style.width="31px";imgEckeObenLinks.style.height="29px";imgEckeObenLinks.src=iwconst.GLOBAL_APP_URL + "img/EckeObenLinks.png";imgRandOben.style.top="34px";imgRandOben.style.left="31px";imgRandOben.style.width=w - 31 - 78 + "px";imgRandOben.style.height="29px";imgEckeObenRechts.style.top="0px";imgEckeObenRechts.style.left=w - 78 + "px";imgEckeObenRechts.style.width="80px";imgEckeObenRechts.style.height="65px";imgEckeObenRechts.src=iwconst.GLOBAL_APP_URL + "img/PfeilObenRechts.png";imgRandLinks.style.top="63px";imgRandLinks.style.left="0px";imgRandLinks.style.width="13px";imgRandLinks.style.height=h - 65 - 32 + "px";imgRandRechts.style.top="63px";imgRandRechts.style.left=w - 26 + "px";imgRandRechts.style.width="20px";imgRandRechts.style.height=h - 65 - 32 + "px";imgEckeUntenLinks.style.top=h - 34 + "px";imgEckeUntenLinks.style.left="0px";imgEckeUntenLinks.style.width="32px";imgEckeUntenLinks.style.height="32px";imgEckeUntenLinks.src=iwconst.GLOBAL_APP_URL + "img/EckeUntenLinks.png";imgRandUnten.style.top=h - 34 + "px";imgRandUnten.style.left="32px";imgRandUnten.style.width=w - 32 - 32 + "px";imgRandUnten.style.height="32px";imgEckeUntenRechts.style.top=h - 34 + "px";imgEckeUntenRechts.style.left=w - 38 + "px";imgEckeUntenRechts.style.width="32px";imgEckeUntenRechts.style.height="32px";imgEckeUntenRechts.src=iwconst.GLOBAL_APP_URL + "img/EckeUntenRechts.png";divContent.style.top="63px";divContent.style.left="13px";divContent.style.width=w - 40 + "px";divContent.style.height=h - 65 - 30 + "px";}
_container.appendChild(imgEckeObenLinks);_container.appendChild(imgRandOben);_container.appendChild(imgEckeObenRechts);_container.appendChild(imgRandLinks);_container.appendChild(divContent);_container.appendChild(imgRandRechts);_container.appendChild(imgEckeUntenLinks);_container.appendChild(imgRandUnten);_container.appendChild(imgEckeUntenRechts);var imgClose=document.createElement('img');imgClose.src=iwconst.GLOBAL_APP_URL + 'img/close.gif';imgClose.style.position='absolute';imgClose.style.left=parseInt(imgRandRechts.style.left)- 20 + 'px';imgClose.style.top=parseInt(imgRandOben.style.top)+ 10 + 'px';imgClose.style.zIndex='15';imgClose.style.cursor='pointer';imgClose.style.filter='alpha(opacity=100)';IWEventManager.addListener(imgClose,"onclick",function(event){if(!event){event=window.event;}
noPropagation(event);_this.iwDelayHidePopup(0);});_container.appendChild(imgClose);this.iwDelayShowPopup(x,y,0);return _container;}
this.hide=function hide(){}
this.getContainer=function(){return _container;}
this.getAnchorX=function(){return nAnchorX;}
this.getAnchorY=function(){return nAnchorY;}
this.getOpacity=function(){return 1.0;}
}
function Webcam(){var div=null;var _content=null;var frameContent=null;this.setContent=function(content){_content=content;};this.getContent=function(){return _content;};this.show=function show(x,y){var pFirstEntry=_content.getEntries()[0];if(pFirstEntry['link'].indexOf('.jpg')>+1||pFirstEntry['link'].indexOf('.jpeg')>-1){return this.showPopup(x,y);}
else
{return this.showBrowserWindow(x,y);}
};this.showBrowserWindow=function showBrowserWindow(x,y){var pFirstEntry=_content.getEntries()[0];var winPopup=window.open(pFirstEntry['link'],'Webcam','location=no,menubar=no,scrollbars=yes,status=no,toolbar=no');if(winPopup==null){alert('Es konnte kein neues Fenster zum Anzeigen des Links ' + pFirstEntry['link']+ ' ge\u00F6ffnet werden.');}
globalPOIList.removePOI(_content.getEntries()[0]['ovlID']+ '_' + _content.getEntries()[0]['windowtype']);return null;};this.showPopup=function showPopup(x,y){var pThis=this;var pFirstEntry=_content.getEntries()[0];div=document.createElement('div');div.id='divPopup_' + pFirstEntry['ovlID']+ '_' + pFirstEntry['windowtype'];div.style.position='absolute';div.style.width='260px';div.style.height='250px';div.style.zIndex='100';var imgClose=document.createElement('img');imgClose.src='img/close.gif';imgClose.style.cursor='pointer';imgClose.style.position='absolute';imgClose.style.top='3px';imgClose.style.right='3px';imgClose.style.opacity='1.0';imgClose.style.filter='alpha(opacity=100)';imgClose.onclick=function(event){this.iwDelayHidePopup(0);}.iwclosure(this);div.appendChild(imgClose);var divTitle=document.createElement('div');divTitle.className='title';divTitle.style.height='15px';divTitle.style.opacity='0.85';divTitle.style.filter='alpha(opacity=85)';divTitle.onmousedown=function(event){if(!event)event=window.event;this.iwGrapPopup(event);}.iwclosure(this);divTitle.appendChild(document.createTextNode(pFirstEntry['name']));div.appendChild(divTitle);var imgContent=document.createElement('img');imgContent.onload=function(){if(this.width + 20>parseInt(this.getParent().style.width)||this.height + 20>parseInt(this.getParent().style.height)){return this.showBrowserWindow(x,y);}
else
{div.style.width=this.width;div.style.height=this.height + 15;div.appendChild(imgContent);this.iwDelayShowPopup(x,y,0);}
}.iwclosure(this);imgContent.src=pFirstEntry['link'];return div;};this.hide=function hide(){};this.getContainer=function(){return div;};this.getAnchorX=function(){return 0;};this.getAnchorY=function(){return 0;};this.getOpacity=function(){return 1.0;};}function TBLink(){iwAbstractPopup.call(this);var _content=null;this.setContent=function(content){_content=content;};this.getContent=function(){return _content;};this.show=function show(x,y){var sURL=_content.getContent();if(sURL.length>0){if(eval(sURL)!="undefined"&&eval(sURL)!=null)eval(sURL);}
globalPOIList.removePOI(_content.getEntries()[0]['ovlID']+ '_' + _content.getEntries()[0]['windowtype']);return null;}
this.hide=function hide(){}
this.getContainer=function(){return null;}
this.getOpacity=function(){return 1.0;}
}
function IWTileset(map){var self=this;var _map=map;var _visibleSectionCounter=Number.MAX_VALUE;var TILES_OUTSIDE=1;var N_MAX_REQUESTS=5;var N_MAX_LOADING_TILES=5;var _logger=log4javascript.getLogger("js.tileset");var _center=null;var _oldCenter=null;var _bFirstLoad=true;var _bIsZooming=false;var _nMovedX=0;var _nMovedY=0;var _nRemainderX=0;var _nRemainderY=0;var _iLoadingTiles=0;var _mapType=null;var _aQueueTiles=new Array();var _aQueueRequests=new Array();var _aQueueSection=new Array();var _bIsCorrectLabel=false;var _lastMousePosition=null;var _bMousePressed=false;var _bMovementNeedsReload=false;var _imgLabelsName="imgLabels2";var _slideSteps=[0.10,0.25,0.30,0.25,0.10];var _slideTimeout=null;var _boundsConstraintManager=null;var _divTileMap=null;var _divLabels=iw.search(map.getContainer(),'divLabels');var _divLabels2=iw.search(map.getContainer(),'divLabels2');var _imgCountClicks=null;var _tilesAxis=null;this.nTilesizeMeter=2000;this.bCompletelyVisible=false;this.oAsynchroneTransferObject=null;this.oZoomObject=null;var _tiles=null;this.fChangeToMap=null;IWEventManager.addListener(this,'afterVisibleSectionLoaded',function(event){self.showLabels(true);if(map.isZooming()){if(self.oZoomObject.hasZoomContainer()){self.oZoomObject.removeZoomContainer();}
self.zooming=false;_bIsZooming=false;_map.triggerAfterZoom();}
}
);function slide(offset){var moveEvent=new IWMoveEvent();moveEvent.position=null;moveEvent.lastPosition=null;moveEvent.offset=offset;_map.triggerBeforeMove(moveEvent);window.clearTimeout(_slideTimeout);slideStep(offset,0,0,0);}
function slideStep(offset,nStep,nRestX,nRestY){_bIsCorrectLabel=false;if(nStep<_slideSteps.length){var nStepMovementX=_slideSteps[nStep]*offset.getX();var nStepMovementY=_slideSteps[nStep]*offset.getY();nStepMovementX +=nRestX;nRestX=nStepMovementX - Math.floor(nStepMovementX);nStepMovementX=Math.floor(nStepMovementX);nStepMovementY +=nRestY;nRestY=nStepMovementY - Math.floor(nStepMovementY);nStepMovementY=Math.floor(nStepMovementY);self.move(new IWPoint(nStepMovementX,nStepMovementY));_slideTimeout=window.setTimeout(function(){slideStep(offset,++nStep,nRestX,nRestY);},40);}
else
{self.showLabels(true);var moveEvent=new IWMoveEvent();moveEvent.position=null;moveEvent.lastPosition=null;moveEvent.offset=offset;_map.triggerAfterMove(moveEvent);if(_bMovementNeedsReload){_logger.debug('No more tiles left in this view,reload needed');self.setCenter(_center,true);_bMovementNeedsReload=false;}
iwChangeZoomLevelInControl(self);}
}
this.getMap=function(){return _map;};this.getTilesContainer=function(){return _divTileMap;};this.getSize=function(){return _map.getOptions().getSize();};this.getCenter=function(){return _center;};this.setCenter=function(center,bRefresh){_center=center;_logger.debug('The new map center is ' + _center.toString());if(bRefresh){this.Hide();this.PlaceTiles();this.LoadWholeMap();}
};this.panTo=function(coord){if(this.oZoomObject.hasZoomContainer()){return false;}
var northEast=map.fromPixelToCoordinate(new IWPoint(0,0));if(coord.distanceFrom(_center)<northEast.distanceFrom(_center)){var pointCenter=map.fromCoordinateToPixel(_center);var pointCoord=map.fromCoordinateToPixel(coord);var offsetX=pointCenter.getX()- pointCoord.getX();var offsetY=pointCenter.getY()- pointCoord.getY();var point=new IWPoint(offsetX,offsetY);slide(point);}
else
{var event=new IWMapCenteredEvent();event.coordinate=coord;event.lastCoordinate=_center;var offsetX=event.coordinate.getX()- event.lastCoordinate.getX();var offsetY=event.coordinate.getY()- event.lastCoordinate.getY();event.offset=new IWCoordinate(offsetX,offsetY);this.setCenter(coord,true);event.zoom=this.FindBestScalingLevel();event.lastZoom=event.zoom;map.triggerAfterCentered(event);}
};this.panBy=function(offset){if(this.oZoomObject.hasZoomContainer()){return false;}
var iMapCenterX=_map.getOptions().getSize().getWidth()/2;var iMapCenterY=_map.getOptions().getSize().getHeight()/2;if(Math.abs(offset.getX())<=iMapCenterX&&Math.abs(offset.getY())<=iMapCenterY){slide(offset);}
else
{this.move(offset);this.showLabels(true);}
};this.getCurrentMapType=function(){return _mapType;};this.setMapType=function(mapType,bRefresh){var oldMapType=_mapType;_mapType=mapType;var iCurrentZoom=this.FindBestScalingLevel();if(iCurrentZoom>mapType.getMinLevel()){this.setZoomLevel(mapType.getPreferredLevel(),false);}
else if(iCurrentZoom<mapType.getMaxLevel()){this.setZoomLevel(mapType.getPreferredLevel(),false);}
if(bRefresh){this.Hide();this.PlaceTiles();this.LoadWholeMap();}
var event=new IWMapTypeChangedEvent();event.newMapType=mapType;event.oldMapType=oldMapType;_map.triggerAfterMapTypeChanged(event);};this.loadZoomMap=function(){if(!this.oZoomObject.isPrepareZoom()){return false;}
if(IWLockManager.lock(this.oZoomObject)){this.oZoomObject.resetPrepareZoom();this.oAsynchroneTransferObject.AbortAllRequests();var tileSizeInMeter=null;var newZoomLevel=null;if(_boundsConstraintManager.isZoomOutOfBounds(this.oZoomObject.getZoomFactor())){newZoomLevel=_boundsConstraintManager.getMinimumZoomLevel();tileSizeInMeter=iwconst.A_TILESIZE_METER[newZoomLevel];}
else
{tileSizeInMeter=this.nTilesizeMeter/this.oZoomObject.getZoomFactor();newZoomLevel=this.FindBestScalingLevel(tileSizeInMeter);}
var center=map.fromPixelToCoordinate(this.oZoomObject.getZoomCentral());var newCenter=_boundsConstraintManager.calculateNewCenter(tileSizeInMeter,center);var zoomEvent=new IWZoomEvent();zoomEvent.newZoomLevel=newZoomLevel;zoomEvent.newCenter=newCenter;_map.triggerOnZoom(zoomEvent);this.setCenter(newCenter,false);this.nTilesizeMeter=tileSizeInMeter;this.createTiles();this.PlaceTiles();this.LoadWholeMap();}
}
this.endOpticalZoom=function(nScalingLevel){this.oZoomObject.resetPrepareZoom();if(IWLockManager.lock(this.oZoomObject)){var newCenter=_center;var maxZoom=_boundsConstraintManager.getMinimumZoomLevel();if(maxZoom<nScalingLevel){nScalingLevel=maxZoom;newCenter=_map.getBoundsConstraint().getCenter();}
else
{var tileSizeInMeter=iwconst.A_TILESIZE_METER[nScalingLevel];newCenter=_boundsConstraintManager.calculateNewCenter(tileSizeInMeter);}
var zoomEvent=new IWZoomEvent();zoomEvent.newZoomLevel=nScalingLevel;zoomEvent.newCenter=newCenter;_map.triggerOnZoom(zoomEvent);if(newCenter !=this.getCenter()){this.setCenter(newCenter,false);}
this.nTilesizeMeter=iwconst.A_TILESIZE_METER[nScalingLevel];this.oAsynchroneTransferObject.AbortAllRequests();this.showLabels(false);_aQueueTiles.length=0;this.createTiles();this.PlaceTiles();this.LoadWholeMap();}
return nScalingLevel;}
this.getZoomObject=function(){return this.oZoomObject;};this.createTiles=function(){var tilesX=Math.ceil(_map.getOptions().getSize().getWidth()/IWTile.SIZE)+ 2*TILES_OUTSIDE;var tilesY=Math.ceil(_map.getOptions().getSize().getHeight()/IWTile.SIZE)+ 2*TILES_OUTSIDE;_logger.info("creating tiles:" + _map.getOptions().getSize());_tilesAxis=new IWSize(tilesX,tilesY);if(_divTileMap==null){_divTileMap=iw.create('div');iw.append(map.getClippingContainer(),_divTileMap);_divTileMap.id="divTileMap";with(_divTileMap.style){zIndex='1';position="absolute";left="0px";top="0px";}
}
_divTileMap.style.width=_map.getOptions().getSize().getWidth()+ "px";_divTileMap.style.height=_map.getOptions().getSize().getHeight()+ "px";if(_imgCountClicks==null){_imgCountClicks=iw.create('img');_imgCountClicks.id="imgCountClicks";iw.append(map.getClippingContainer(),_imgCountClicks);}
if(_tiles !=null){for(var i=_tiles.length;i>0;i--){_tiles[(i-1)].destroy();}
}
_tiles=new Array(_tilesAxis.getWidth()*_tilesAxis.getHeight());for(var row=0;row<_tilesAxis.getHeight();row++){for(var column=0;column<_tilesAxis.getWidth();column++){var cellIndex=row*_tilesAxis.getWidth()+ column;var tile=new IWTile(this,new IWPoint(column,row));_tiles[cellIndex]=tile;tile.onloadListener=IWEventManager.addListener(tile,'onload',function(event){try{if(_iLoadingTiles>0)_iLoadingTiles--;var cellIndex=event.row*_tilesAxis.getWidth()+ event.column;var tile=_tiles[cellIndex];_logger.warn("tile:" + "," + _tiles[cellIndex]+ " cellIndex:" + cellIndex + " event:" + event + "," + event.row + "," + event.column);var nLeft=tile.getPosition().getX();var nRight=nLeft + IWTile.SIZE;var nTop=tile.getPosition().getY();var nBottom=nTop + IWTile.SIZE;var nMapWidth=self.getSize().getWidth();var nMapHeight=self.getSize().getHeight();}
catch(e){_logger.fatal("Tile onload:" + e);}
self.LoadNext();});}
}
};this.PlaceTiles=function(){var aTopLeftBorderMeter=new Array(2);aTopLeftBorderMeter[0]=_center.getX()- _tilesAxis.getWidth()/2*this.nTilesizeMeter;aTopLeftBorderMeter[1]=_center.getY()+ _tilesAxis.getHeight()/2*this.nTilesizeMeter;this.FindBestTilePosition(aTopLeftBorderMeter);var nMeterOffsetX=aTopLeftBorderMeter[0]
-(_center.getX()- _tilesAxis.getWidth()/2*this.nTilesizeMeter);var nTilesetStartX=(_map.getOptions().getSize().getWidth()/2)
-(_tilesAxis.getWidth()*IWTile.SIZE/2)
+ nMeterOffsetX/this.nTilesizeMeter*IWTile.SIZE;_logger.debug("nTilesetStartX:" + nTilesetStartX +" "+ nMeterOffsetX +"/"+ this.nTilesizeMeter +"*"+ IWTile.SIZE);var nMeterOffsetY=aTopLeftBorderMeter[1]
-(_center.getY()+ _tilesAxis.getHeight()/2*this.nTilesizeMeter);var nTilesetStartY=(_map.getOptions().getSize().getHeight()/2)
-(_tilesAxis.getHeight()*IWTile.SIZE/2)
- nMeterOffsetY/this.nTilesizeMeter*IWTile.SIZE;var nBorderTilesX=(_tilesAxis.getWidth()-(_map.getOptions().getSize().getWidth()/IWTile.SIZE))/2;var nBorderTilesY=(_tilesAxis.getHeight()-(_map.getOptions().getSize().getHeight()/IWTile.SIZE))/2;_nMovedX=nTilesetStartX + nBorderTilesX*IWTile.SIZE;_nMovedY=nTilesetStartY + nBorderTilesY*IWTile.SIZE;for(var row=0;row<_tilesAxis.getHeight();row++){for(var column=0;column<_tilesAxis.getWidth();column++){var nIndex=row*_tilesAxis.getWidth()+ column;var nPositionX=Math.floor(nTilesetStartX + column*IWTile.SIZE);var nPositionY=Math.floor(nTilesetStartY + row*IWTile.SIZE);var nTileCenterMeterX=aTopLeftBorderMeter[0]
+ column*this.nTilesizeMeter
+	0.5*this.nTilesizeMeter;var nTileCenterMeterY=aTopLeftBorderMeter[1]
- row*this.nTilesizeMeter
-	0.5*this.nTilesizeMeter;_tiles[nIndex].moveTo(new IWPoint(nPositionX,nPositionY));}
}
};this.SendPrepareTilesRequest=function(nTimestamp,sSectionURL,bounds){var oRequest=new Object();oRequest.sURL=sSectionURL;oRequest.nTimestamp=nTimestamp;oRequest.oSectionExtent=bounds;_aQueueRequests.push(oRequest);this.RequestNext();};var _t=null;this.RequestNext=function(){while(_aQueueRequests.length>0){var request=self.oAsynchroneTransferObject.getFreeRequest()
_logger.warn("Requesting next...");if(request !=null){_logger.warn("Free Request");var data=_aQueueRequests.pop();self.oAsynchroneTransferObject.PrepareTilesAsynchrone(request,data);}
else
{_logger.warn("no request object available");break;}
}
};this.LoadWholeMap=function(){this.oAsynchroneTransferObject.AbortAllRequests();_oldCenter=_center;var xmlHttp=new IWXMLHttpRequest();if(xmlHttp==null){alert("Browser does not support HTTP Request")
return;}
var upperLeft=_tiles[this.FindTopRow()*_tilesAxis.getWidth()+ this.FindLeftCol()];var url=iwconst.LOCAL_APP_URL +'servlet/FrontController' +'?cmd=getMapTypes' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&app=ms' +'&mapcx='	+ _center.getX()+'&mapcy='	+ _center.getY()+'&mapdx='	+ _tilesAxis.getWidth()*this.nTilesizeMeter +'&mapdy='	+ _tilesAxis.getHeight()*this.nTilesizeMeter +'&width=' + _tilesAxis.getWidth()*IWTile.SIZE +'&height=' + _tilesAxis.getHeight()*IWTile.SIZE +'&visibleOffsetX=' +(-upperLeft.getPosition().getX())+'&visibleOffsetY=' +(-upperLeft.getPosition().getY())+'&maptype=' + _mapType.getType()+_mapType.getRequestParameters();try{xmlHttp.open('GET',url,true);_logger.info("requesting maptypes");xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){if(xmlHttp.status==200){var projection=_mapType.getProjection();projection.initialize(xmlHttp.responseXML);this.LoadWholeMap2();}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
else
{alert('Unable to request projections from server.');}
}
}.iwclosure(this);xmlHttp.send(null);}
catch(exception){alert('Exception:' + exception);}
};this.LoadWholeMap2=function(){this.showLabels(false);this.bCompletelyVisible=false;_aQueueTiles.length=0;_aQueueRequests.length=0;_aQueueSection.length=0;_iLoadingTiles=0;for(var row=0;row<_tilesAxis.getHeight();row++){for(var column=0;column<_tilesAxis.getWidth();column++){_tiles[column + row*_tilesAxis.getWidth()].setState(IWTile.STATE_INACTIVE);}
}
_logger.info("tileset loadWholeMap tilesizemeter:" + this.nTilesizeMeter + " " + map.getMapWidthInMeter());var nLeft=-1;var nMiddleX=-1;var nRight=-1;var nMinLeft=10000;var nMinMiddleX=10000;var nMinRight=10000;for(var nTileX=0;nTileX<_tilesAxis.getWidth();nTileX++){var nTilePosition=_tiles[nTileX].getPosition().getX();_logger.debug('tile Position:'+nTileX+":" + _tiles[nTileX].getPosition());if(nTilePosition + IWTile.SIZE<=0){if(nTilePosition<nMinLeft){nMinLeft=nTilePosition;nLeft=nTileX;}
}
else if(nTilePosition<_map.getOptions().getSize().getWidth()){if(nTilePosition<nMinMiddleX){nMinMiddleX=nTilePosition;nMiddleX=nTileX;}
}
else if(nTilePosition<nMinRight){nMinRight=nTilePosition;nRight=nTileX;}
}
var nTop=-1;var nMiddleY=-1;var nBottom=-1;var nMinTop=10000;var nMinMiddleY=10000;var nMinBottom=10000;for(var nTileY=0;nTileY<_tilesAxis.getHeight();nTileY++){var nTilePosition=_tiles[nTileY*_tilesAxis.getWidth()].getPosition().getY();if(nTilePosition + IWTile.SIZE<=0){if(nTilePosition<nMinTop){nMinTop=nTilePosition;nTop=nTileY;}
}
else if(nTilePosition<_map.getOptions().getSize().getHeight()){if(nTilePosition<nMinMiddleY){nMinMiddleY=nTilePosition;nMiddleY=nTileY;}
}
else if(nTilePosition<nMinBottom){nMinBottom=nTilePosition;nBottom=nTileY;}
}
if(nLeft==-1)nLeft=nMiddleX;if(nRight==-1)nRight=nLeft;if(nTop==-1)nTop=nMiddleY;if(nBottom==-1)nBottom=nTop;_logger.debug("Section starts X:" + nLeft + '/' + nMiddleX + '/' + nRight);_logger.debug("Section starts Y:" + nTop + '/' + nMiddleY + '/' + nBottom);var oSection=new Object();oSection.nTimestamp=new Date().getTime()+ Math.random();oSection.nLeft=nMiddleX;oSection.nTop=nMiddleY;_logger.debug("calculateIndexDistance(nRight,nMiddleX,_tilesAxis.getWidth()" + nRight + "," + nMiddleX + "," + _tilesAxis.getWidth());oSection.nTilesX=calculateIndexDistance(nRight,nMiddleX,_tilesAxis.getWidth());oSection.nTilesY=calculateIndexDistance(nBottom,nMiddleY,_tilesAxis.getHeight());oSection.sURL=createSectionURL(oSection.nLeft,oSection.nTop,oSection.nTilesX,oSection.nTilesY,oSection.nTimestamp,'c',true);_logger.debug('Visible section:' + oSection.nTilesX + ' x ' + oSection.nTilesY + ' tiles');this.LoadSection(oSection.nLeft,oSection.nTop,oSection.nTilesX,oSection.nTilesY,oSection.sURL,oSection.nTimestamp,oSection.nTilesX*oSection.nTilesY);if(_divTileMap){if(IWBrowserDetect.browser=="Safari"||IWBrowserDetect.browser=="Konqueror"){_divTileMap.style.visibility="visible";}
}
oSection=new Object();oSection.nTimestamp=new Date().getTime()+ Math.random();oSection.nLeft=nLeft;oSection.nTop=nTop;oSection.nTilesX=calculateIndexDistance(nMiddleX,nLeft,_tilesAxis.getWidth());oSection.nTilesY=_tilesAxis.getHeight();oSection.sURL=createSectionURL(oSection.nLeft,oSection.nTop,oSection.nTilesX,oSection.nTilesY,oSection.nTimestamp,'l',true);if(oSection.nTilesX>0&&oSection.nTilesY>0){_aQueueSection.push(oSection);}
oSection=new Object();oSection.nTimestamp=new Date().getTime()+ Math.random();oSection.nLeft=nRight;oSection.nTop=nTop;oSection.nTilesX=calculateIndexDistance(nLeft,nRight,_tilesAxis.getWidth());oSection.nTilesY=_tilesAxis.getHeight();oSection.sURL=createSectionURL(oSection.nLeft,oSection.nTop,oSection.nTilesX,oSection.nTilesY,oSection.nTimestamp,'r',true);if(oSection.nTilesX>0&&oSection.nTilesY>0){_aQueueSection.push(oSection);}
oSection=new Object();oSection.nTimestamp=new Date().getTime()+ Math.random();oSection.nLeft=nMiddleX;oSection.nTop=nTop;oSection.nTilesX=calculateIndexDistance(nRight,nMiddleX,_tilesAxis.getWidth());oSection.nTilesY=calculateIndexDistance(nMiddleY,nTop,_tilesAxis.getHeight());oSection.sURL=createSectionURL(oSection.nLeft,oSection.nTop,oSection.nTilesX,oSection.nTilesY,oSection.nTimestamp,'t',true);if(oSection.nTilesX>0&&oSection.nTilesY>0){_aQueueSection.push(oSection);}
oSection=new Object();oSection.nTimestamp=new Date().getTime()+ Math.random();oSection.nLeft=nMiddleX;oSection.nTop=nBottom;oSection.nTilesX=calculateIndexDistance(nRight,nMiddleX,_tilesAxis.getWidth());oSection.nTilesY=calculateIndexDistance(nTop,nBottom,_tilesAxis.getHeight());oSection.sURL=createSectionURL(oSection.nLeft,oSection.nTop,oSection.nTilesX,oSection.nTilesY,oSection.nTimestamp,'b',true);if(oSection.nTilesX>0&&oSection.nTilesY>0){_aQueueSection.push(oSection);}
};this.getTilesAxis=function(){return _tilesAxis;};this.getTiles=function(){return _tiles;};this.LoadSection=function(nLeft,nTop,nTilesX,nTilesY,sURL,nTimestamp,numOfVisibleTiles){var nLeftBorder=_tiles[nLeft].getPosition().getX();var nUpperBorder=_tiles[nTop*_tilesAxis.getWidth()].getPosition().getY();var nRightBorder=nLeftBorder + nTilesX*IWTile.SIZE;var nLowerBorder=nUpperBorder + nTilesY*IWTile.SIZE;var upperLeft=_mapType.getProjection().pixelToMeter(new IWPoint(nLeftBorder,nUpperBorder));var lowerRight=_mapType.getProjection().pixelToMeter(new IWPoint(nRightBorder,nLowerBorder));if(numOfVisibleTiles){_visibleSectionCounter=numOfVisibleTiles;}
for(var row=0;row<nTilesY;row++){for(var column=0;column<nTilesX;column++){var nTileRow=(row + nTop)% _tilesAxis.getHeight();var nTileCol=(column + nLeft)% _tilesAxis.getWidth();var cellIndex=nTileRow*_tilesAxis.getWidth()+ nTileCol;var sTilename=this.GetTileImageName(nTimestamp,row + 1,column + 1);var tile=_tiles[cellIndex];if(tile.getState()==IWTile.STATE_INACTIVE){tile.setSource(sTilename,nTimestamp);if(numOfVisibleTiles){tile.onloadListener=IWEventManager.addListener(tile,'onload',function(e){_visibleSectionCounter--;if(_visibleSectionCounter==0){IWEventManager.trigger(self,'afterVisibleSectionLoaded');}
IWEventManager.removeListener(this.onloadListener);}.iwclosure(tile)
);}
}
else
{_logger.error('tile state:' + tile.getState()+ ',should be INACTIVE');}
}
}
this.SendPrepareTilesRequest(nTimestamp,sURL,new IWBounds(upperLeft,lowerRight));};this.isVisibleSectionLoaded=function(){return(_visibleSectionCounter==0);};this.GetTileImageName=function(nTimestamp,nRow,nCol){return "Tile_" + _map.getSessionId()+ "_" + nTimestamp + "_" + nRow + "_" + nCol + '.' + _mapType.getImageFormat();};this.move=function(offset){if(this.oZoomObject.hasZoomContainer()||!_boundsConstraintManager.isMoveAllowed(offset)){return false;}
var offsetX=offset.getX();var offsetY=offset.getY();var projection=_map.getCurrentMapType().getProjection();_nRemainderX +=offsetX - Math.floor(offsetX);_nRemainderY +=offsetY - Math.floor(offsetY);offsetX=Math.floor(offsetX);offsetY=Math.floor(offsetY);if(_nRemainderX>=1){_nRemainderX -=1;offsetX +=1;}
if(_nRemainderY>=1){_nRemainderY -=1;offsetY +=1;}
var size=_map.getOptions().getSize();var centerPixel=new IWPoint(size.getWidth()/2 - offsetX,size.getHeight()/2 - offsetY);_center=projection.pixelToMeter(centerPixel);_nMovedX +=offsetX;_nMovedY +=offsetY;var nLeft=parseInt(_divLabels.style.left)+ offsetX;var nTop=parseInt(_divLabels.style.top)+ offsetY;var vis=_divLabels.style.display;if(IWBrowserDetect.browser !='Explorer'||IWBrowserDetect.version>=7){_divLabels.style.display='none';}
_divLabels.style.left=nLeft	+ 'px';_divLabels.style.top=nTop	+ 'px';_divLabels.style.display=vis;var nLeft2=parseInt(_divLabels2.style.left)+ offsetX;var nTop2=parseInt(_divLabels2.style.top)+ offsetY;vis=_divLabels2.style.display;if(IWBrowserDetect.browser !='Explorer'||IWBrowserDetect.version>=7){_divLabels2.style.display='none';}
_divLabels2.style.left=nLeft2	+ 'px';_divLabels2.style.top=nTop2 + 'px';_divLabels2.style.display=vis;vis=_divTileMap.style.display;if(IWBrowserDetect.browser !='Explorer'||IWBrowserDetect.version>=7){_divTileMap.style.display='none';}
var offset=new IWPoint(offsetX,offsetY);for(var nTile=0;nTile<_tilesAxis.getWidth()*_tilesAxis.getHeight();nTile++){_tiles[nTile].move(offset);}
_divTileMap.style.display=vis;var moveEvent=new IWMoveEvent();moveEvent.position=null;moveEvent.lastPosition=null;moveEvent.offset=new IWPoint(offsetX,offsetY);_map.triggerOnMove(moveEvent);var bDiscarded=false;if(_nMovedX>IWTile.SIZE){var nDiscard=Math.floor(_nMovedX/IWTile.SIZE);var nLeftBorder=_tiles[this.FindLeftCol()].getPosition().getX();var nUpperBorder=_tiles[this.FindTopRow()*_tilesAxis.getWidth()].getPosition().getY();var nRightBorder=nLeftBorder + nDiscard*IWTile.SIZE;var nLowerBorder=nUpperBorder + nDiscard*IWTile.SIZE;var upperLeft=_mapType.getProjection().pixelToMeter(new IWPoint(nLeftBorder,nUpperBorder));var lowerRight=_mapType.getProjection().pixelToMeter(new IWPoint(nRightBorder,nLowerBorder));var nSectionCenterX=nLeftBorder + nDiscard*IWTile.SIZE + nDiscard*IWTile.SIZE/2;var nSectionCenterY=nUpperBorder + _tilesAxis.getHeight()*IWTile.SIZE/2;var sectionCenter=_mapType.getProjection().pixelToMeter(new IWPoint(nSectionCenterX,nSectionCenterY));var sectionSize=new IWSize(nDiscard*this.nTilesizeMeter,_tilesAxis.getHeight()*this.nTilesizeMeter);if(projection.needsReload(sectionCenter,sectionSize)){_bMovementNeedsReload=true;}
else
{_bMovementNeedsReload=false;_logger.debug('Discarding ' + nDiscard + ' tiles on the right border');this.DiscardRightBorder(nDiscard,sectionCenter,new IWBounds(upperLeft,lowerRight));_nMovedX -=(IWTile.SIZE*nDiscard);bDiscarded=true;}
}
else if(_nMovedX<- IWTile.SIZE){var nDiscard=- Math.floor(_nMovedX/IWTile.SIZE);var nRightCol=(this.FindLeftCol()+ _tilesAxis.getWidth()- 1)% _tilesAxis.getWidth();var nRightBorder=_tiles[nRightCol].getPosition().getX()+ IWTile.SIZE;var nUpperBorder=_tiles[this.FindTopRow()*_tilesAxis.getWidth()].getPosition().getY();var nLeftBorder=nRightBorder - nDiscard*IWTile.SIZE;var nLowerBorder=nUpperBorder + nDiscard*IWTile.SIZE;var upperLeft=_mapType.getProjection().pixelToMeter(new IWPoint(nLeftBorder,nUpperBorder));var lowerRight=_mapType.getProjection().pixelToMeter(new IWPoint(nRightBorder,nLowerBorder));var nSectionCenterX=nRightBorder - nDiscard*IWTile.SIZE/2;var nSectionCenterY=nUpperBorder + _tilesAxis.getHeight()*IWTile.SIZE/2;var sectionCenter=_mapType.getProjection().pixelToMeter(new IWPoint(nSectionCenterX,nSectionCenterY));var sectionSize=new IWSize(nDiscard*this.nTilesizeMeter,_tilesAxis.getHeight()*this.nTilesizeMeter);if(projection.needsReload(sectionCenter,sectionSize)){_bMovementNeedsReload=true;}
else
{_bMovementNeedsReload=false;_logger.debug('Discarding ' + nDiscard + ' tiles on the left border');this.DiscardLeftBorder(nDiscard,sectionCenter,new IWBounds(upperLeft,lowerRight));_nMovedX +=(IWTile.SIZE*nDiscard);bDiscarded=true;}
}
else if(_nMovedY>IWTile.SIZE){var nDiscard=Math.floor(_nMovedY/IWTile.SIZE);var nLeftBorder=_tiles[this.FindLeftCol()].getPosition().getX();var nUpperBorder=_tiles[this.FindTopRow()*_tilesAxis.getWidth()].getPosition().getY();var nRightBorder=nLeftBorder + nDiscard*IWTile.SIZE;var nLowerBorder=nUpperBorder + nDiscard*IWTile.SIZE;var upperLeft=_mapType.getProjection().pixelToMeter(new IWPoint(nLeftBorder,nUpperBorder));var lowerRight=_mapType.getProjection().pixelToMeter(new IWPoint(nRightBorder,nLowerBorder));var nSectionCenterX=nLeftBorder + _tilesAxis.getWidth()*IWTile.SIZE/2;var nSectionCenterY=nUpperBorder + nDiscard*IWTile.SIZE/2;var sectionCenter=_mapType.getProjection().pixelToMeter(new IWPoint(nSectionCenterX,nSectionCenterY));var sectionSize=new IWSize(_tilesAxis.getWidth()*this.nTilesizeMeter,nDiscard*this.nTilesizeMeter);if(projection.needsReload(sectionCenter,sectionSize)){_bMovementNeedsReload=true;}
else
{_bMovementNeedsReload=false;_logger.debug('Discarding ' + nDiscard + ' tiles on the lower border');this.DiscardLowerBorder(nDiscard,sectionCenter,new IWBounds(upperLeft,lowerRight));_nMovedY -=(IWTile.SIZE*nDiscard);bDiscarded=true;}
}
else if(_nMovedY<- IWTile.SIZE){var nDiscard=- Math.floor(_nMovedY/IWTile.SIZE);var nBottomRow=(this.FindTopRow()+ _tilesAxis.getHeight()- 1)% _tilesAxis.getHeight();var nLeftBorder=_tiles[this.FindLeftCol()].getPosition().getX();var nLowerBorder=_tiles[nBottomRow*_tilesAxis.getWidth()].getPosition().getY()+ IWTile.SIZE;var nRightBorder=nLeftBorder + nDiscard*IWTile.SIZE;var nUpperBorder=nLowerBorder - nDiscard*IWTile.SIZE;var upperLeft=_mapType.getProjection().pixelToMeter(new IWPoint(nLeftBorder,nUpperBorder));var lowerRight=_mapType.getProjection().pixelToMeter(new IWPoint(nRightBorder,nLowerBorder));var nSectionCenterX=nLeftBorder + _tilesAxis.getWidth()*IWTile.SIZE/2;var nSectionCenterY=nLowerBorder - nDiscard*IWTile.SIZE/2;var sectionCenter=_mapType.getProjection().pixelToMeter(new IWPoint(nSectionCenterX,nSectionCenterY));var sectionSize=new IWSize(_tilesAxis.getWidth()*this.nTilesizeMeter,nDiscard*this.nTilesizeMeter);if(projection.needsReload(sectionCenter,sectionSize)){_bMovementNeedsReload=true;}
else
{_bMovementNeedsReload=false;_logger.debug('Discarding ' + nDiscard + ' tiles on the upper border');this.DiscardUpperBorder(nDiscard,sectionCenter,new IWBounds(upperLeft,lowerRight));_nMovedY +=(IWTile.SIZE*nDiscard);bDiscarded=true;}
}
if(bDiscarded){_aQueueTiles.length=0;this.BuildQueue();this.move(new IWPoint(0,0));}
};this.needsReload=function(){return _bMovementNeedsReload;};this.reload=function(){this.setCenter(_center,true);_bMovementNeedsReload=false;};this.DiscardLeftBorder=function(nBorderNum,sectionCenter,bounds){var nTimestamp=new Date().getTime()+ Math.random();for(var nBorder=1;nBorder<=nBorderNum;nBorder++){var nLeftCol=this.FindLeftCol();var nRightCol=(nLeftCol + _tilesAxis.getWidth()- 1)% _tilesAxis.getWidth();var nTopRow=this.FindTopRow();for(var nRow=0;nRow<_tilesAxis.getHeight();nRow++){var nTile=(nRow + nTopRow)% _tilesAxis.getHeight()*_tilesAxis.getWidth()+ nLeftCol;_tiles[nTile].setSource(this.GetTileImageName(nTimestamp,nRow + 1,nBorder),nTimestamp);_tiles[nTile].moveTo(new IWPoint(_tiles[nRightCol].getPosition().getX()+ IWTile.SIZE,_tiles[nTile].getPosition().getY()));}
}
var nRightCol=(this.FindLeftCol()+ _tilesAxis.getWidth()- 1)% _tilesAxis.getWidth();var nSectionLeftCol=(nRightCol - nBorderNum + 1)% _tilesAxis.getWidth();if(nSectionLeftCol<0)nSectionLeftCol +=_tilesAxis.getWidth();var sURL=createSectionURL(nSectionLeftCol,this.FindTopRow(),nBorderNum,_tilesAxis.getHeight(),nTimestamp,'r',false);this.SendPrepareTilesRequest(nTimestamp,sURL,bounds);};this.DiscardRightBorder=function(nBorderNum,sectionCenter,bounds){var nTimestamp=new Date().getTime()+ Math.random()+ 1;for(var nBorder=nBorderNum;nBorder>0;nBorder--){var nLeftCol=this.FindLeftCol();var nRightCol=(nLeftCol + _tilesAxis.getWidth()- 1)% _tilesAxis.getWidth();var nTopRow=this.FindTopRow();for(var nRow=0;nRow<_tilesAxis.getHeight();nRow++){var nTile=(nRow + nTopRow)% _tilesAxis.getHeight()*_tilesAxis.getWidth()+ nRightCol;_tiles[nTile].setSource(this.GetTileImageName(nTimestamp,nRow + 1,nBorder),nTimestamp);_tiles[nTile].moveTo(new IWPoint(_tiles[nLeftCol].getPosition().getX()- IWTile.SIZE,_tiles[nTile].getPosition().getY()));}
}
var url=createSectionURL(this.FindLeftCol(),this.FindTopRow(),nBorderNum,_tilesAxis.getHeight(),nTimestamp,'l',false);this.SendPrepareTilesRequest(nTimestamp,url,bounds);};this.DiscardLowerBorder=function(nBorderNum,sectionCenter,bounds){var nTimestamp=new Date().getTime()+ Math.random();for(var nBorder=nBorderNum;nBorder>0;nBorder--){var nLeftCol=this.FindLeftCol();var nTopRow=this.FindTopRow();var nBottomRow=(nTopRow + _tilesAxis.getHeight()- 1)% _tilesAxis.getHeight();for(var nCol=0;nCol<_tilesAxis.getWidth();nCol++){var nTile=nBottomRow*_tilesAxis.getWidth()+(nLeftCol + nCol)% _tilesAxis.getWidth();_tiles[nTile].setSource(this.GetTileImageName(nTimestamp,nBorder,nCol + 1),nTimestamp);_tiles[nTile].moveTo(new IWPoint(_tiles[nTile].getPosition().getX(),_tiles[nTopRow*_tilesAxis.getWidth()].getPosition().getY()- IWTile.SIZE));}
}
var url=createSectionURL(this.FindLeftCol(),this.FindTopRow(),_tilesAxis.getWidth(),nBorderNum,nTimestamp,'t',false);this.SendPrepareTilesRequest(nTimestamp,url,bounds);};this.DiscardUpperBorder=function(nBorderNum,sectionCenter,bounds){var nTimestamp=new Date().getTime()+ Math.random();for(var nBorder=1;nBorder<=nBorderNum;nBorder++){var nLeftCol=this.FindLeftCol();var nTopRow=this.FindTopRow();var nBottomRow=(nTopRow + _tilesAxis.getHeight()- 1)% _tilesAxis.getHeight();for(var nCol=0;nCol<_tilesAxis.getWidth();nCol++){var nTile=nTopRow*_tilesAxis.getWidth()+(nLeftCol + nCol)% _tilesAxis.getWidth();_tiles[nTile].setSource(this.GetTileImageName(nTimestamp,nBorder,nCol + 1),nTimestamp);_tiles[nTile].moveTo(new IWPoint(_tiles[nTile].getPosition().getX(),_tiles[nBottomRow*_tilesAxis.getWidth()].getPosition().getY()+ IWTile.SIZE));}
}
var nBottomRow=(this.FindTopRow()+ _tilesAxis.getHeight()- 1)% _tilesAxis.getHeight();var nSectionTopRow=(nBottomRow - nBorderNum + 1)% _tilesAxis.getHeight();if(nSectionTopRow<0)nSectionTopRow +=_tilesAxis.getHeight();var url=createSectionURL(this.FindLeftCol(),nSectionTopRow,_tilesAxis.getWidth(),nBorderNum,nTimestamp,'b',false);this.SendPrepareTilesRequest(nTimestamp,url,bounds);};this.FindTopRow=function(){var nMinRow=0;var nMinRowValue=_tiles[0].getPosition().getY();for(var nRow=0;nRow<_tilesAxis.getHeight();nRow++){var nIndex=nRow*_tilesAxis.getWidth();if(_tiles[nIndex].getPosition().getY()<nMinRowValue){nMinRow=nRow;nMinRowValue=_tiles[nIndex].getPosition().getY();}
}
return nMinRow;};this.FindLeftCol=function(){var nMinCol=0;var nMinColValue=_tiles[0].getPosition().getX();for(var nCol=0;nCol<_tilesAxis.getWidth();nCol++){var nIndex=nCol;if(_tiles[nIndex].getPosition().getX()<nMinColValue){nMinCol=nCol;nMinColValue=_tiles[nIndex].getPosition().getX();}
}
return nMinCol;};this.BuildQueue=function(nCenterX,nCenterY){_aQueueTiles.length=0;for(var nTile=0;nTile<_tiles.length;nTile++){if(_tiles[nTile].getState()==IWTile.STATE_QUEUED){_aQueueTiles.push(_tiles[nTile]);}
}
_aQueueTiles.sort(_tiles[0].compare);};this.LoadNextSection=function(){if(_aQueueSection.length>0){var oSection=_aQueueSection.pop();this.LoadSection(oSection.nLeft,oSection.nTop,oSection.nTilesX,oSection.nTilesY,oSection.sURL,oSection.nTimestamp);}
};this.LoadNext=function(){while(_aQueueTiles.length>0&&_iLoadingTiles<N_MAX_LOADING_TILES){var oTile=_aQueueTiles.pop();_logger.info('Loading tile ' + oTile.toString());oTile.load();_iLoadingTiles++;}
if(!this.bCompletelyVisible){var size=_map.getOptions().getSize();var mapBounds=new IWBounds(new IWPoint(0,0),new IWPoint(size.getWidth(),size.getHeight()));this.bCompletelyVisible=true;for(var nRow=0;nRow<_tilesAxis.getHeight();nRow++){for(var nCol=0;nCol<_tilesAxis.getWidth();nCol++){var tile=_tiles[nRow*_tilesAxis.getWidth()+ nCol];if(tile.getState()!=IWTile.STATE_COMPLETE){if(mapBounds.intersects(tile.getBounds())){this.bCompletelyVisible=false;break;}
}
}
}
}
if(this.bCompletelyVisible){if(_bFirstLoad){_bFirstLoad=false;var event=new IWMapInitializedEvent();_map.triggerAfterInitialized(event);}
}
};this.AddTilesToQueue=function(nTimestamp){_logger.info('Adding tiles with timestamp ' + nTimestamp + ' to the queue;total tiles:' + _tiles.length);var nCounter=0;for(var nTile=0;nTile<_tiles.length;nTile++){if(_tiles[nTile].getState()==IWTile.STATE_WAITING){if(_tiles[nTile].getTimestamp()==nTimestamp){_tiles[nTile].setState(IWTile.STATE_QUEUED);nCounter++;}
}
}
_logger.debug('Added ' + nCounter + ' tiles to the queue');this.BuildQueue();this.LoadNext();};this.FindBestTilePosition=function(aPosition){var nPosX1=Math.floor(aPosition[0]/this.nTilesizeMeter)*this.nTilesizeMeter;var nPosX2=Math.ceil(aPosition[0]/this.nTilesizeMeter)*this.nTilesizeMeter;if(aPosition[0]- nPosX1<nPosX2 - aPosition[0])aPosition[0]=nPosX1;else
aPosition[0]=nPosX2;var nPosY1=Math.floor(aPosition[1]/this.nTilesizeMeter)*this.nTilesizeMeter;var nPosY2=Math.ceil(aPosition[1]/this.nTilesizeMeter)*this.nTilesizeMeter;if(aPosition[1]- nPosY1<nPosY2 - aPosition[1])aPosition[1]=nPosY1;else
aPosition[1]=nPosY2;};this.fromCoordinateToPixel=function(coord){if(_center==null){return new IWPoint(0,0);}
else
{var iLeftMeter=_center.getX()-(_map.getOptions().getSize().getWidth()/2)*(this.nTilesizeMeter/IWTile.SIZE);var iTopMeter=_center.getY()+(_map.getOptions().getSize().getHeight()/2)*(this.nTilesizeMeter/IWTile.SIZE);var iPixelX=(coord.getX()- iLeftMeter)/this.nTilesizeMeter*IWTile.SIZE;var iPixelY=(iTopMeter - coord.getY())/this.nTilesizeMeter*IWTile.SIZE;return new IWPoint(iPixelX,iPixelY);}
};this.fromPixelToCoordinate=function(point){if(_center==null){return new IWCoordinate(0,0);}
else
{var iLeftMeter=_center.getX()-(_map.getOptions().getSize().getWidth()/2)*(this.nTilesizeMeter/IWTile.SIZE);var iTopMeter=_center.getY()+(_map.getOptions().getSize().getHeight()/2)*(this.nTilesizeMeter/IWTile.SIZE);var iMeterX=iLeftMeter + point.getX()/IWTile.SIZE*this.nTilesizeMeter;var iMeterY=iTopMeter - point.getY()/IWTile.SIZE*this.nTilesizeMeter;return new IWCoordinate(iMeterX,iMeterY);}
};this.Hide=function(){for(var nTile=0;nTile<_tiles.length;nTile++){_tiles[nTile].hide();}
this.showLabels(false);};this.getBoundsZoomlevel=function(bounds){var zoomlevel=null;var n=iwconst.A_TILESIZE_METER.length-1;var width=bounds.getSouthEast().getX()- bounds.getNorthWest().getX();var height=bounds.getNorthWest().getY()- bounds.getSouthEast().getY();var tilesX=_map.getOptions().getSize().getWidth()/IWTile.SIZE;var tilesY=_map.getOptions().getSize().getHeight()/IWTile.SIZE;var meterPerTile=Math.max(width/tilesX,height/tilesY);if(meterPerTile<=iwconst.A_TILESIZE_METER[0]){zoomlevel=0;}
else if(meterPerTile>=iwconst.A_TILESIZE_METER[n]){zoomlevel=n;}
else
{for(var i=0;i<n;i++){if(meterPerTile>=iwconst.A_TILESIZE_METER[i]&&meterPerTile<=iwconst.A_TILESIZE_METER[i+1]){zoomlevel=i+1;break;}
}
}
_logger.info('getBoundsZoomlevel(' + bounds + ')meterPerTile:' + meterPerTile + ' returning zoomlevel ' + zoomlevel);return zoomlevel;};this.FindBestScalingLevel=function(tileSize){if(typeof tileSize=='undefined'){tileSize=this.nTilesizeMeter;}
var minZoomLevel=this.getCurrentMapType().getMaxLevel();var maxZoomLevel=this.getCurrentMapType().getMinLevel();var nBestFit=minZoomLevel;var nBestFitValue=Math.abs(iwconst.A_TILESIZE_METER[minZoomLevel]- tileSize);for(var i=minZoomLevel+1;i<maxZoomLevel+1;i++){var nDifference=Math.abs(iwconst.A_TILESIZE_METER[i]- tileSize);if(nDifference<nBestFitValue){nBestFit=i;nBestFitValue=nDifference;}
}
return nBestFit;};this.zoomIn=function(){var nScalingLevel=this.FindBestScalingLevel();return this.setZoomLevel(--nScalingLevel,true);};this.isZooming=function(){return IWLockManager.isLocked(this.oZoomObject);};this.zoomOut=function(){var nScalingLevel=this.FindBestScalingLevel();return this.setZoomLevel(++nScalingLevel,true);};this.setZoomLevel=function(zoomlevel,bRefresh){if(_boundsConstraintManager.getMinimumZoomLevel()>=zoomlevel&&zoomlevel>=_mapType.getMaxLevel()&&zoomlevel<=_mapType.getMinLevel())
{var nOldTilesizeMeter=this.nTilesizeMeter;this.nTilesizeMeter=iwconst.A_TILESIZE_METER[zoomlevel];if(bRefresh){if(IWLockManager.lock(this.oZoomObject)){_map.triggerBeforeZoom();this.oAsynchroneTransferObject.AbortAllRequests();this.showLabels(false);_aQueueTiles.length=0;var factor=nOldTilesizeMeter/iwconst.A_TILESIZE_METER[zoomlevel];var newCenter=_boundsConstraintManager.calculateNewCenter(iwconst.A_TILESIZE_METER[zoomlevel]);var event=new IWZoomEvent();event.newZoomLevel=zoomlevel;event.newCenter=newCenter;_map.triggerOnZoom(event);this.oZoomObject.zoom(this.fromCoordinateToPixel(newCenter),factor);this.setCenter(newCenter,false);this.createTiles();this.PlaceTiles();this.LoadWholeMap();return true;}
}
}
return false;};this.getMeterExtent=function(){var nLeftBorder=_tiles[this.FindLeftCol()].getPosition().getX();var nUpperBorder=_tiles[this.FindTopRow()*_tilesAxis.getWidth()].getPosition().getY();var nRightBorder=nLeftBorder + _tilesAxis.getWidth()*IWTile.SIZE;var nLowerBorder=nUpperBorder + _tilesAxis.getHeight()*IWTile.SIZE;var upperLeft=_mapType.getProjection().pixelToMeter(new IWPoint(nLeftBorder,nUpperBorder));var lowerRight=_mapType.getProjection().pixelToMeter(new IWPoint(nRightBorder,nLowerBorder));return new IWBounds(upperLeft,lowerRight);};this.getMapWidthForTile=function(tileSize){return tileSize*(_map.getOptions().getSize().getWidth()/IWTile.SIZE);};this.getMapHeightForTile=function(tileSize){return tileSize*(_map.getOptions().getSize().getHeight()/IWTile.SIZE);};this.GetMeterWidth=function(){return this.nTilesizeMeter*(_map.getOptions().getSize().getWidth()/IWTile.SIZE);};this.GetMeterHeight=function(){return this.nTilesizeMeter*(_map.getOptions().getSize().getHeight()/IWTile.SIZE);};this.getBoundsConstraintManager=function(){return _boundsConstraintManager;}
this.SetChangeToMap=function(fCallback){this.fChangeToMap=fCallback;};function calculateIndexDistance(index1,index2,total){var distance=index1 - index2;if(distance<0){distance +=total;}
return distance;};function createSectionURL(nLeft,nTop,nTilesX,nTilesY,nTimestamp,sSectionCode,isWholeMap){var nLeftBorder=_tiles[nLeft].getPosition().getX();var nUpperBorder=_tiles[nTop*_tilesAxis.getWidth()].getPosition().getY();var nSectionCenterX=nLeftBorder + nTilesX*IWTile.SIZE/2;var nSectionCenterY=nUpperBorder + nTilesY*IWTile.SIZE/2;var centerSection=_mapType.getProjection().pixelToMeter(new IWPoint(nSectionCenterX,nSectionCenterY));var upperLeft=_tiles[self.FindTopRow()*_tilesAxis.getWidth()+ self.FindLeftCol()];var url=iwconst.LOCAL_APP_URL +'servlet/FrontController' +'?cmd=prepareTiles' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&code=' + sSectionCode +'&mapcx=' + centerSection.getX()+'&mapcy=' + centerSection.getY()+'&oldcx='	+ _oldCenter.getX()+'&oldcy='	+ _oldCenter.getY()+'&mapdx='	+ nTilesX*self.nTilesizeMeter +'&mapdy='	+ nTilesY*self.nTilesizeMeter +'&width='	+ nTilesX*IWTile.SIZE +'&height=' + nTilesY*IWTile.SIZE +'&tilex='	+ IWTile.SIZE +'&tiley='	+ IWTile.SIZE +'&tilenx=' + nTilesX +'&tileny=' + nTilesY +'&visibleOffsetX=' +(-upperLeft.getPosition().getX())+'&visibleOffsetY=' +(-upperLeft.getPosition().getY())+'&tileprefix=Tile_' + _map.getSessionId()+ '_' + nTimestamp +IWRequestFormatter.getLayerParameter(_map.getZoom(),_map.getLayers())+'&pictureformat=' + _mapType.getImageFormat()+'&maptype=' + _mapType.getType()+_mapType.getRequestParameters()+szExtraUrlParm +'&load=' +(isWholeMap ? 'map':'strip');return url;};this.mouseZoom=function(startMousePosition,endMousePosition){if(IWLockManager.lock(this.oZoomObject)){var x1=startMousePosition.getX();var y1=startMousePosition.getY();var x2=endMousePosition.getX();var y2=endMousePosition.getY();if(Math.abs(x1 - x2)<5&&Math.abs(y1 - y2)<5){IWLockManager.unlock(this.oZoomObject)
return false;}
var myImgName="";if(_imgLabelsName=="imgLabels2")myImgName="imgLabels";else
myImgName="imgLabels2";var myImg=iw.search(map.getContainer(),myImgName);myImg.style.visibility="hidden";this.oAsynchroneTransferObject.AbortAllRequests();this.showLabels(false);_map.triggerBeforeZoom();var zoomArea=new ZoomArea(startMousePosition,endMousePosition);var zoomFactor=1;if(zoomArea.getSize().getWidth()>zoomArea.getSize().getHeight()){if(startMousePosition.getX()<endMousePosition.getX()){zoomFactor=this.getSize().getWidth()/zoomArea.getSize().getWidth();}
else
{zoomFactor=zoomArea.getSize().getWidth()/this.getSize().getWidth();}
}
else
{if(startMousePosition.getX()<endMousePosition.getX()){zoomFactor=this.getSize().getHeight()/zoomArea.getSize().getHeight();}
else
{zoomFactor=zoomArea.getSize().getHeight()/this.getSize().getHeight();}
}
var oldTilesizeMeter=this.nTilesizeMeter;this.nTilesizeMeter=this.nTilesizeMeter/zoomFactor;var newZoomLevel=this.FindBestScalingLevel();var maxZoom=_boundsConstraintManager.getMinimumZoomLevel();if(newZoomLevel>=maxZoom){newZoomLevel=maxZoom;}
this.nTilesizeMeter=iwconst.A_TILESIZE_METER[newZoomLevel];zoomFactor=oldTilesizeMeter/this.nTilesizeMeter;var center=_mapType.getProjection().pixelToMeter(zoomArea.getCenter());center=_boundsConstraintManager.calculateNewCenter(this.nTilesizeMeter,center);centerPixel=_mapType.getProjection().meterToPixel(center);var zoomEvent=new IWZoomEvent()
zoomEvent.newZoomLevel=newZoomLevel;zoomEvent.newCenter=center;_map.triggerOnZoom(zoomEvent);this.oZoomObject.zoom(centerPixel,zoomFactor);this.createTiles();this.setCenter(center,true);}
}
var labelSelect=0;var myDivLabels="divLabels2";var switchLabelLock=false;var anotherEntry=0;var onloadSet=false;var bLoadingLabels=false;var forceHideLabels=false;var oTimeoutLabels=null;function switchLabelLayer(){if(switchLabelLock)return;if(labelSelect==0){labelSelect=1;_imgLabelsName="imgLabels2";myDivLabels="divLabels2";}
else{labelSelect=0;_imgLabelsName="imgLabels";myDivLabels="divLabels";}
}
function getFrontLabelDiv(){if(labelSelect==0){return _divLabels;}
return _divLabels2;}
function getBackLabelDiv(){if(labelSelect==0){return _divLabels2;}
return _divLabels;}
function showBackLabelLayer(){var back=getBackLabelDiv();var front=getFrontLabelDiv();front.style.display="none";back.style.display="block";}
function showFrontLabelLayer(){var back=getBackLabelDiv();var front=getFrontLabelDiv();back.style.display="none";front.style.display="block";}
function hideLabelLayer(){var back=getBackLabelDiv();var front=getFrontLabelDiv();back.style.display="none";front.style.display="none";}
this.createZoomDIV=function(nX,nY){this.showLabels(false);}
this.showLabels=function(bVisible){if(forceHideLabels)bVisible=false;if(IWBrowserDetect.browser=="Safari"||IWBrowserDetect.browser=="Konqueror"){var img=iw.search(map.getContainer(),_imgLabelsName);img.onload=null;img.src=iwconst.GLOBAL_APP_URL + "img/blank.gif";}
if(bVisible){if(switchLabelLock)anotherEntry++;switchLabelLayer();switchLabelLock=true;showBackLabelLayer();var nMapWidthMeter=self.nTilesizeMeter*_map.getOptions().getSize().getWidth()/IWTile.SIZE;var nMapHeightMeter=self.nTilesizeMeter*_map.getOptions().getSize().getHeight()/IWTile.SIZE;countClick();var img=iw.search(map.getContainer(),_imgLabelsName);img.onload=iwRenderLabelsVisible;if(switchLabelLock&&onloadSet)anotherEntry--;onloadSet=true;if(IWBrowserDetect.browser=="Safari"||IWBrowserDetect.browser=="Konqueror"){iwRenderDivLabelsVisible();}
if(_mapType.hasLabels()){_bIsCorrectLabel=true;var url=iwconst.GLOBAL_APP_URL +'servlet/FrontController' +'?cmd=getLabel' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&app=ms' +'&mapcx=' + _center.getX()+'&mapcy=' + _center.getY()+'&mapdx=' + nMapWidthMeter +'&mapdy=' + nMapHeightMeter +'&width=' + _map.getOptions().getSize().getWidth()+'&height=' + _map.getOptions().getSize().getHeight()+'&projc=lcc_europe' +IWRequestFormatter.getLayerParameter(_map.getZoom(),_map.getLayers())+'&maptype=' + _mapType.getType()+'&randomKey=' + iw.random(0,1000000000);szExtraUrlParm;var img=iw.search(map.getContainer(),_imgLabelsName);img.src=url;bLoadingLabels=true;}
else
{var img=iw.search(map.getContainer(),_imgLabelsName);img.onload=null;img.style.visibility="hidden";}
}
else
{if(oTimeoutLabels){window.clearTimeout(oTimeoutLabels);oTimeoutLabels=null;}
var img=iw.search(map.getContainer(),_imgLabelsName);img.onload=null;img.style.visibility="hidden";hideLabelLayer();}
};function iwRenderLabelsVisible(){onloadSet=false;if(anotherEntry>0){anotherEntry--;switchLabelLock=false;return;}
var imgLabels=iw.search(map.getContainer(),_imgLabelsName);if(_bIsCorrectLabel){imgLabels.style.visibility='visible';bLoadingLabels=false;self.RequestNext();self.LoadNextSection();var divLabels=iw.search(map.getContainer(),myDivLabels);divLabels.style.left='0px';divLabels.style.top='0px';showFrontLabelLayer();switchLabelLock=false;}
}
function iwRenderDivLabelsVisible(){var divLabels=iw.search(map.getContainer(),myDivLabels);if(divLabels)divLabels.style.visibility="visible";divLabels.style.left='0px';divLabels.style.top='0px';if(anotherEntry>0){anotherEntry=0;switchLabelLock=false;return;}
showFrontLabelLayer();switchLabelLock=false;self.RequestNext();self.LoadNextSection();var imgLabels=iw.search(map.getContainer(),_imgLabelsName);imgLabels.style.visibility="visible";}
this.Print=function(){var nPaperWidthA4=0;var nPrintableWidth=0;var nPrintableHeight=0;if(navigator.appName=="Microsoft Internet Explorer"){nPaperWidthA4=610;}
else
{nPaperWidthA4=1000;}
if(_map.getOptions().getSize().getWidth()>nPaperWidthA4){nPrintableWidth=nPaperWidthA4;nPrintableHeight=_map.getOptions().getSize().getHeight()/_map.getOptions().getSize().getWidth()*nPrintableWidth;}
else
{nPrintableWidth=_map.getOptions().getSize().getWidth();nPrintableHeight=_map.getOptions().getSize().getHeight();}
var printWinWidth=nPrintableWidth + 30;var sStyle="left=100,top=50,width=" + printWinWidth + ",height=750,resizable=yes,status=yes,scrollbars=yes";var PrintWindow=window.open("PrintMap.htm","iwPrintWindow",sStyle);var oThis=this;window.setTimeout(function(){oThis.PrintInit(PrintWindow,nPrintableWidth,nPrintableHeight);},500);return false;};this.PrintInit=function(PrintWindow,PrintableWidth,PrintableHeight){var nPrintableWidth=PrintableWidth;var nPrintableHeight=PrintableHeight;var PointList=new Array();for(var nIndex=0;nIndex<nShowAddress;nIndex++){var divAddress=document.getElementById('Address' + nIndex);if(divAddress)PointList.push(divAddress.cloneNode(true));}
for(var nIndex=0;nIndex<nPOIMax;nIndex++){var divPOI=document.getElementById('divPOI' + nIndex);if(divPOI)PointList.push(divPOI.cloneNode(true));}
var divScalar=document.getElementById('divScalar');if(divScalar)PointList.push(divScalar.cloneNode(true));var divMapArea=PrintWindow.document.getElementById('divMapArea');var divContentArea=PrintWindow.document.getElementById('divContentArea');var divCopyrightArea=PrintWindow.document.getElementById('divCopyrightArea');if(divMapArea&&divContentArea){countClick();divMapArea.style.width=nPrintableWidth;divMapArea.style.height=nPrintableHeight;var sURL=iwconst.GLOBAL_APP_URL
+	'servlet/FrontController?cmd=getPrintMap'
+ '&app=ms'
+ "&VNR=" + IWAccessFilter.getCNR()
+ "&PNR=" + IWAccessFilter.getPNR()
+	'&layermaske=maske_gs'
+ '&mapcx=' + _center.getX()
+ '&mapcy=' + _center.getY()
+ "&oldcx="	+ _oldCenter.getX()
+ "&oldcy="	+ _oldCenter.getY()
+ '&mapdx=' + this.GetMeterWidth()
+ '&mapdy=' + this.GetMeterHeight()
+ '&width=' + nPrintableWidth
+ '&height=' + nPrintableHeight
+ '&projc=lcc_europe'
+ IWRequestFormatter.getLayerParameter(_map.getZoom(),_map.getLayers())
+ '&maptype=' + _mapType.getType()
+ szExtraUrlParm
+ _mapType.getRequestParameters();divMapArea.innerHTML +='<img width=' +nPrintableWidth+ ' height=' +nPrintableHeight+ ' onload="window.print()" src="' + sURL + '"/>';if(navigator.appName=="Microsoft Internet Explorer"){var sDiv='';for(var nIndex=0;nIndex<PointList.length;nIndex++){var oDivPoint=PointList[nIndex];var sDivPointID=oDivPoint.id;if(sDivPointID=="divScalar"){sDiv +='<div id=' + sDivPointID
+ ' style="'
+ ' position:' + oDivPoint.style.position +';'
+ ' left:' + parseInt(oDivPoint.style.left)+'px;'
+ ' top:' +(nPrintableHeight - 34)+'px;'
+ ' z-index:' + oDivPoint.style.zIndex +';'
+ ' width:' + oDivPoint.style.width +';'
+ ' height:' + oDivPoint.style.height +';'
+ '"'
+ '>'
+ oDivPoint.innerHTML
+ '</div>';}
else
{sDiv +='<div id=' + sDivPointID
+ ' style="'
+ ' overflow:' + oDivPoint.style.overflow +';'
+ ' font-size:' + oDivPoint.style.fontSize +';'
+ ' position:' + oDivPoint.style.position +';'
+ ' left:' + parseInt(oDivPoint.style.left)*nPrintableWidth/_map.getOptions().getSize().getWidth()+'px;'
+ ' top:' + parseInt(oDivPoint.style.top)*nPrintableWidth/_map.getOptions().getSize().getWidth()+'px;'
+ ' z-index:' + oDivPoint.style.zIndex +';'
+ ' visibility:' + oDivPoint.style.visibility +';'
+ '"'
+ '>'
+ oDivPoint.innerHTML
+ '</div>';}
}
divMapArea.innerHTML +=sDiv;}
else
{for(var nIndex=0;nIndex<PointList.length;nIndex++){var oDivPoint=PointList[nIndex];oDivPoint.style.left=parseInt(oDivPoint.style.left)*nPrintableWidth/_map.getOptions().getSize().getWidth();oDivPoint.style.top=parseInt(oDivPoint.style.top)*nPrintableWidth/_map.getOptions().getSize().getWidth();divMapArea.appendChild(oDivPoint);}
}
var divSpecialContent=document.getElementById('divSpecialContent');if(routingControl.getRouteSegments()){var routeTable=document.getElementById("routeTable");var sRouteTable="";sRouteTable +='<table id=' + routeTable.id
+ ' style="'
+ ' border:' + routeTable.style.border +';'
+ '"'
+ '>'
+ routeTable.innerHTML
+ '</table>';divContentArea.innerHTML=sRouteTable;}
else
{if(divSpecialContent){divContentArea.innerHTML=divSpecialContent.innerHTML;}
}
if(divCopyrightArea){var copyrightControl=document.getElementById("IWCopyrightControl");var divCopyright=copyrightControl.lastChild;if(divCopyright)divCopyrightArea.innerHTML=divCopyright.innerHTML;}
}
else
{var oThis=this;window.setTimeout(function(){oThis.PrintInit(PrintWindow,nPrintableWidth,nPrintableHeight);},500);}
};this.resize=function(){var newSize=_map.getOptions().getSize();var newWidth=newSize.getWidth();var newHeight=newSize.getHeight();this.Hide();this.showLabels(false);this.oAsynchroneTransferObject.AbortAllRequests();with(_divCSS.style){width=newWidth + 'px';height=newHeight + 'px';}
with(_divClipping.style){clip="rect(0px," + newWidth + "px," + newHeight + "px,0px)";width=newWidth + 'px';height=newHeight + 'px';}
with(_divLabels.style){width=newWidth + 'px';height=newHeight + 'px';}
with(_divLabels2.style){width=newWidth + 'px';height=newHeight + 'px';}
with(_imgLabels.style){width=newWidth + 'px';height=newHeight + 'px';}
with(_imgLabels2.style){width=newWidth + 'px';height=newHeight + 'px';}
with(_divZoomingAndDragging.style){width=newWidth + 'px';height=newHeight + 'px';}
with(_divOverlaysAndControls.style){width=newWidth + 'px';height=newHeight + 'px';}
with(_imgZoomingAndDragging.style){width=newWidth + 'px';height=newHeight + 'px';}
this.createTiles();this.PlaceTiles();this.LoadWholeMap();}
this.toString=function(){return 'IWTileset';};function countClick(){if(_imgCountClicks){var sURL=iwconst.GLOBAL_APP_URL
+ "servlet/FrontController"
+ "?cmd=writeAccessStatistics"
+ "&VNR=" + IWAccessFilter.getCNR()
+ "&PNR=" + IWAccessFilter.getPNR()
+ "&app=ms"
+ "&mapcx=" + _center.getX()
+ "&mapcy=" + _center.getY()
+ "&mapdx=" + self.GetMeterWidth()
+ "&mapdy=" + self.GetMeterHeight()
+ "&width=" + _map.getOptions().getSize().getWidth()
+ "&height=" + _map.getOptions().getSize().getHeight()
+ "&projc=lcc_europe"
+ "&type=" + _mapType.getType()
+ "&overview=0"
+ "&session=" + map.getSessionId()
+ szExtraUrlParm
+ _mapType.getRequestParameters();_imgCountClicks.src=sURL;}
}
_boundsConstraintManager=new IWBoundsConstraintManager(this);var mapType=_map.getOptions().getMapTypes()[0];this.setMapType(mapType,false);this.oAsynchroneTransferObject=new IWAsynchroneTransferObject(this,N_MAX_REQUESTS);IWEventManager.addListener(this.oAsynchroneTransferObject,'aftermaptypeavailabilitychanged',function(e){_map.triggerAfterMapTypeAvailabilityChanged(e);}
);this.createTiles();this.oZoomObject=new IWZoom(this);IWEventManager.addListener(map,'afterzoom',function(e){IWLockManager.unlock(self.oZoomObject);}
);}
var linkPopupCSS=document.createElement('link');document.getElementsByTagName('head')[0].appendChild(linkPopupCSS);linkPopupCSS.type='text/css';linkPopupCSS.rel='stylesheet';linkPopupCSS.href=iwconst.GLOBAL_APP_URL + 'css/popups.css';var commonCSS=document.createElement('link');document.getElementsByTagName('head')[0].appendChild(commonCSS);commonCSS.title='standard';commonCSS.type='text/css';commonCSS.rel='stylesheet';commonCSS.href=iwconst.GLOBAL_APP_URL + 'css/common.css';var screenCSS=document.createElement('link');document.getElementsByTagName('head')[0].appendChild(screenCSS);screenCSS.title='standard';screenCSS.media='screen';screenCSS.type='text/css';screenCSS.rel='stylesheet';screenCSS.href=iwconst.GLOBAL_APP_URL + 'css/screen.css';var printCSS=document.createElement('link');document.getElementsByTagName('head')[0].appendChild(printCSS);printCSS.title='standard';printCSS.media='print';printCSS.type='text/css';printCSS.rel='stylesheet';printCSS.href=iwconst.GLOBAL_APP_URL + 'css/print.css';function correctPNG(img){/*@cc_on @*//*@if(@_jscript_version>=5)if(navigator.appVersion.indexOf("MSIE 7.0")==-1){var imgName=img.src.toUpperCase();if(imgName.substring(imgName.length - 3,imgName.length)=="PNG"){img.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + img.src + ",sizingmethod=scale)";img.src=iwconst.GLOBAL_APP_URL + 'img/blank.gif';}
}
@end @*/}
var aLockElements=["divControl","divTileMap","imgNaviCross","imgSliderPlus","imgSliderMinus"];function ignorePOIRequest(event){if(!oTileset.getCurrentMapType().hasLabels())return true;if(oTileset.zooming)return true;if(!oTileset.getSize().containsPoint(event.position))return true;if(!oTileset.bCompletelyVisible)return true;return false;}
var nShowAddress=0;var nAddressXMeter=new Array();var nAddressYMeter=new Array();var bControlsBlocked=false;var szExtraUrlParm="";var szOverlayGroups="";var mapSlider=null;function noPropagation(event){if(!event)event=window.event;event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;}
function SetExtraUrlParam(szParm){szExtraUrlParm=szParm;}
var MAX_ZOOMLEVEL=0;var MIN_ZOOMLEVEL=iwconst.A_TILESIZE_METER.length - 1;var MAX_AIRZOOMLEVEL=0;var MIN_AIRZOOMLEVEL=iwconst.A_TILESIZE_METER.length - 1;var MAX_MAPZOOMLEVEL=0;var MIN_MAPZOOMLEVEL=iwconst.A_TILESIZE_METER.length - 1;var CHANGETOMAP=0;var CHANGETOHYBRID=1;var CHECKMODE_LOADMAP=1;var CHECKMODE_GETINFO=0;var nMinZoomLevel=iwconst.MIN_ZOOMLEVEL;var nMaxZoomLevel=MAX_ZOOMLEVEL;var nMaxZoomValue=iwconst.A_TILESIZE_METER[nMaxZoomLevel];var nCurrentLevel=nMaxZoomLevel;var bOutOfAir=false;var nChangeMapMode=CHANGETOMAP;var aLuftbildInfo=new Array();var	sFirmaName="";var	sResolution="";var	sZustand="";var _tileset=null;function iwResolutionToLevel(nResolution){var nZoomLevel=0;switch(nResolution){case 10:nZoomLevel=6;bOutOfAir=false;break;case 0.5:nZoomLevel=2;bOutOfAir=false;break;case 0.2:nZoomLevel=0;bOutOfAir=false;break;case 0.25:nZoomLevel=1;bOutOfAir=false;break;case -1:nZoomLevel=MAX_MAPZOOMLEVEL;bOutOfAir=true;break;default:nZoomLevel=0;bOutOfAir=false;}
return nZoomLevel;}
function iwChangeResolution(nResolution,CheckMode){nMaxZoomLevel=iwResolutionToLevel(nResolution);iwChangeZoomLevel(nMaxZoomLevel,CheckMode);}
function iwSetCurrentLevel(nResolution){nCurrentLevel=iwResolutionToLevel(nResolution);}
function iwChangeSlider(CheckMode){if(CheckMode==CHECKMODE_GETINFO)return true;if(CheckMode==CHECKMODE_LOADMAP){if(mapSlider){mapSlider.leftValue=0;mapSlider.rightValue=nMinZoomLevel - nMaxZoomLevel -1;}
if(iwChangeMapMode()){iwCheckAirZoomLevel();_tileset.Hide();_tileset.PlaceTiles();_tileset.LoadWholeMap();iwChangeCopyRightWithLevel(sFirmaName,sResolution,sZustand);if(_tileset.fChangeToMap)_tileset.fChangeToMap();return true;}
else
{if(iwCheckAirZoomLevel()){_tileset.Hide();_tileset.PlaceTiles();_tileset.LoadWholeMap();iwChangeCopyRightWithLevel(sFirmaName,sResolution,sZustand);if(_tileset.fChangeToMap)_tileset.fChangeToMap();return true;}
if(_tileset.nTilesizeMeter<nMaxZoomValue){_tileset.nTilesizeMeter=nMaxZoomValue;_tileset.Hide();_tileset.PlaceTiles();_tileset.LoadWholeMap();return true;}
else
{return false;}
}
}
}
function iwGetZoomLevelString(nLevel){var sLevel=iwconst.A_TILESIZE_METER[nMaxZoomLevel + nLevel];if(sLevel<1000){sLevel=Math.round(sLevel)+ ' m';}
else
{sLevel=Math.round(sLevel/1000)+ ' km';}
return sLevel;}
function iwChangeCopyRightWithLevel(FirmaName,Resolution,Zustand){sFirmaName=FirmaName;sResolution=Resolution;sZustand=Zustand;var sResTmp="";if(sResolution !="-1")sResTmp=sResolution*100 + "cm";var divCopyright=document.getElementById("copyright");}
function iwChangeMapMode(){if(nChangeMapMode !=-1){if(nChangeMapMode==CHANGETOMAP){if(bOutOfAir&&_tileset.getCurrentMapType().getType()!=new IWMapTypeNormal().getType()){_tileset.setMapType(new IWMapTypeNormal());return true;}
else
return false;}
else if(nChangeMapMode==CHANGETOHYBRID){if(!bOutOfAir&&_tileset.getCurrentMapType().getType()!=new IWMapTypeHybrid().getType()){_tileset.setMapType(new IWMapTypeHybrid());return true;}
else
return false;}
else
return false;}
else
return false;}
function iwCheckAirZoomLevel(){if(_tileset.getCurrentMapType().getType()!=new IWMapTypeNormal().getType()){if((_tileset.nTilesizeMeter>iwconst.A_TILESIZE_METER[MIN_AIRZOOMLEVEL])||(_tileset.nTilesizeMeter<iwconst.A_TILESIZE_METER[MAX_AIRZOOMLEVEL])){_tileset.setMapType(new IWMapTypeNormal());return true;}
else
return false;}
else
false;}
function iwSetAirZoomLevel(AirZoomLevelMin,AirZoomLevelMax){if(AirZoomLevelMin>=0&&AirZoomLevelMin<=iwconst.A_TILESIZE_METER.length - 1)MAX_AIRZOOMLEVEL=AirZoomLevelMin;else
MAX_AIRZOOMLEVEL=0;if(AirZoomLevelMax>0&&AirZoomLevelMax>=AirZoomLevelMin&&AirZoomLevelMax<=iwconst.A_TILESIZE_METER.length - 1)MIN_AIRZOOMLEVEL=AirZoomLevelMax;else
MIN_AIRZOOMLEVEL=iwconst.A_TILESIZE_METER.length - 1;}
function iwGetMapInfo(CheckMode){var nMapWidthMeter=_tileset.nTilesizeMeter*_tileset.getSize().getWidth()/IWTile.SIZE;var nMapHeightMeter=_tileset.nTilesizeMeter*_tileset.getSize().getHeight()/IWTile.SIZE;var sURL=iwconst.GLOBAL_APP_URL
+ "servlet/FrontController"
+ "?cmd=getAerialInfo"
+ "&VNR=" + IWAccessFilter.getCNR()
+ "&PNR=" + IWAccessFilter.getPNR()
+ "&app=ms"
+ "&mapcx=" + _tileset.getCenter().getX();+ "&mapcy=" + _tileset.getCenter().getY();+ "&mapdx=" + nMapWidthMeter
+ "&mapdy=" + nMapHeightMeter
+ "&width=" + _tileset.getSize().getWidth()
+ "&height=" + _tileset.getSize().getHeight()
+ "&projc=lcc_europe"
+ szExtraUrlParm
+ "&layerMAPINFO=katalog&idflayer1=luftbild"
+ "&checkmode=" + CheckMode;var RandomStr=new Date().getTime()+ Math.random();var oGetInfoScript=document.createElement("script");oGetInfoScript.type="text/javascript";oGetInfoScript.id="PoiIdentifyScript" + RandomStr;oGetInfoScript.src=sURL + "&callerID=" + oGetInfoScript.id;var divScript=document.getElementById("dynamicScripts");if(divScript !=null)divScript.appendChild(oGetInfoScript);}
function iwChangeZoomLevelInControl(tileset){_tileset=tileset;if(tileset.getCurrentMapType().getType()==new IWMapTypeNormal().getType()){if(nMaxZoomLevel !=MAX_MAPZOOMLEVEL){iwChangeZoomLevel(MAX_MAPZOOMLEVEL,CHECKMODE_LOADMAP);}
}
else
{iwGetMapInfo(CHECKMODE_LOADMAP);}
}
function iwChangeZoomLevelInLoadMap(tileset){_tileset=tileset;if(tileset.getCurrentMapType().getType()==new IWMapTypeNormal().getType()){iwChangeZoomLevel(MAX_MAPZOOMLEVEL,CHECKMODE_LOADMAP);}
else
{if(tileset.nTilesizeMeter<iwconst.A_TILESIZE_METER[nCurrentLevel]){iwChangeZoomLevel(nCurrentLevel,CHECKMODE_GETINFO);tileset.nTilesizeMeter=iwconst.A_TILESIZE_METER[nCurrentLevel];tileset.PlaceTiles();}
else
{iwGetMapInfo(CHECKMODE_LOADMAP);}
}
}
