var iwconst = {MAPTYPES:[{NAME:'roadmap',MAXLEVEL:0,PREFERREDLEVEL:3,MINLEVEL:16,COPYRIGHT:'Tele\u0020Atlas',PROXYURL:'http://maps.firmeninformation.de/XMLHttpRequestProxy', PROJECTIONTYPE:'parallel',TILESSERVER:{BASE_DIR:'',ALIAS: ['http://maps.firmeninformation.de/'],URL:'172.16.14.21',PORTLIST:[5430,5431,5432,5433],IMAGETYPE:'gif'},LABELSSERVER:{BASE_DIR:'',ALIAS: ['http://maps.firmeninformation.de/'],URL:'172.16.14.21',PORTLIST:[5631,5632,5633,5634],IMAGETYPE:'gif'}}],SESSION_ID: '76DE93735EB781662AC5BBE648710B34', LOCAL_APP_URL: 'http://localhost/MapAPI-0.73/',GLOBAL_APP_URL: 'http://maps.firmeninformation.de/',GLOBAL_PROXY_URL: 'http://maps.firmeninformation.de/XMLHttpRequestProxy',GLOBAL_GETMAPTYPES_URL: 'http://maps.firmeninformation.de/XMLHttpRequestProxy',CACHE_CLIENT_URL: '/cache/MapAPI/',CACHE_GROUP_SIZE: '10',CACHE_GROUP_LEVEL: '4',CACHE_BLOCK_SIZE: '10',CACHE_URL_USE: 'true',CACHE_MAPSERVER_GROUP: '',KEEPALIVE_INTERVAL: '120',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 _cache=false;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);};var method='GET';if(data.sURL.length>2000){method='POST';}
request.open(method,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){var url=unescape(oRequest.url);if(url.indexOf('load=strip')>-1||url.indexOf('code=c')>-1){var cache=oRequest.responseXML.getElementsByTagName('cache');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||!_cache||_cache !=cache[0].getAttribute('available')){var event=new IWMapTypeAvailabilityChangedEvent();event.type=sTypeName;event.available=(sAvailable=='true');event.cache=(cache[0].getAttribute('available')=='true');IWEventManager.trigger(self,'aftermaptypeavailabilitychanged',event);}
_types[sTypeName]=sAvailable;_cache=cache[0].getAttribute('available');}
}
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'){}
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 m=this;var k=log4javascript.getLogger("IWXMLHttpRequest");var g="";var d=null;var i=null;var f=null;var j=null;this.isActive=false;this.url=null;this.onreadystatechange=null;this.readyState=0;this.status=null;this.statusText=null;this.responseText=null;var c=function(){if(d){m.readyState=4;m.responseText=d.loadedText;m.status=d.statusCode;m.statusText=d.statusText;if(m.onreadystatechange!=null){m.onreadystatechange()}m.isActive=false}};this.open=function(q,o,n){k.info("Calling open with "+q+", "+o+", "+n);this.readyState=1;if(n==false){throw"IWXMLHttpRequest: synchronious calls are not supported yet"}if(q!="GET"&&q!="POST"){throw"IWXMLHttpRequest: unsupported method. Use GET or POST."}f=q;this.url=o};this.send=function(o){k.info("Calling send with "+o);if(this.url==null||this.readyState!=1){throw"IWXMLHttpRequest: Call open before send"}if(g==""){var n=new Date();g="IWXMLHttpRequest_"+n.getTime()+"_"+iw.random(1,10000000)}j=iw.id("iw-ajax");if(!j){j=iw.create("div");iw.append(document.body,j);j.id="iw-ajax"}if(f=="GET"){h()}else{if(f=="POST"){e()}else{this.abort()}}j=null};this.abort=function(){k.info("Calling abort");this.onreadystatechange=function(){};this.isActive=false;if(d){iw.remove(d);d=null}};function h(){k.debug("Calling sendGet");if(m.url.substr(0,7)!="http://"){m.url=iwconst.LOCAL_APP_URL+m.url}if(d){iw.remove(d)}d=iw.create("script");iw.append(j,d);d.type="text/javascript";d.id=g;d.loadedText="";d.callback=c;if(m.url.indexOf("?")>-1){d.src=m.url+"&callerID="+d.id}else{d.src=m.url+"?callerID="+d.id}}function e(){k.debug("Calling sendPost");if(d){iw.remove(d)}try{d=iw.create('<iframe name="'+g+'">');d.attachEvent("onload",b)}catch(t){d=iw.create("iframe");d.name=g;d.onload=b}d.id=g;d.style.display="none";d.style.visibility="hidden";d.style.width="1px";d.style.height="1px";iw.append(j,d);m.url=unescape(m.url);var o=m.url.split("?");m.url=o[0]+";jsessionid="+iwconst.SESSION_ID;i=iw.create("form");iw.append(j,i);i.method="post";i.target=g;i.action=m.url;for(var q=1;q<o.length;q++){var n=o[q].split("&");for(var r=0;r<n.length;r++){var u=n[r].split("=");a(i,u[0],u[1])}}a(i,"callerID",g);i.submit()}function b(){k.debug("Calling fetchPostResults");if(!IWBrowser.isInternetExplorer()){d.src=""}iw.destroy(d);iw.destroy(i);i=null;d=null;f="GET";m.url+="?fetchPostResults=1";m.send()}function a(q,o,r){k.debug("Calling createHiddenInput");var n=iw.create("input");n.type="hidden";n.name=o;n.value=r;iw.append(q,n);return n}}
*/




function IWXMLHttpRequest(){var self=this;var _logger=log4javascript.getLogger("shapeservice.IWLayerInfoManager");var _currentRequestID='';var _request=null;var _form=null;var _method=null;var _ajaxRequests=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(_request){self.readyState=4;self.responseText=_request.loadedText;self.responseXML=IWXMLHelper.parse(_request.loadedText);self.status=_request.statusCode;self.statusText=_request.statusText;if(self.onreadystatechange !=null){self.onreadystatechange();}
self.isActive=false;
//iw.remove(_request);
}
//_request=null;
}
this.open=function(method,url,asyncFlag){this.readyState=1;if(asyncFlag==false){throw 'IWXMLHttpRequest:synchronious calls are not supported yet';}
if(method !='GET'&&method !='POST'){throw 'IWXMLHttpRequest:unsupported method. Use GET or POST.';}
_method=method;this.url=url;};this.send=function(content){if(this.url==null||this.readyState !=1){throw 'IWXMLHttpRequest:Call open before send';}
if(_currentRequestID==''){var date=new Date();_currentRequestID="IWXMLHttpRequest_" + date.getTime()+ "_" + iw.random(1,10000000);}
_ajaxRequests=iw.id('iw-ajax');if(!_ajaxRequests){_ajaxRequests=iw.create('div');_ajaxRequests.id='iw-ajax';iw.append(document.body,_ajaxRequests);}
if(_method=='GET'){sendGet();}
else if(_method=='POST'){sendPost();}
else
{this.abort();}
_ajaxRequests=null;};this.abort=function(){this.onreadystatechange=function(){};this.isActive=false;if(_request){iw.remove(_request);_request=null;}
};function sendGet(){if(self.url.substr(0,7)!='http://'){self.url=iwconst.LOCAL_APP_URL + self.url;}

		if (_request)
		{
			iw.remove(_request);
		}

_request=iw.create('script');iw.append(_ajaxRequests,_request);_request.type='text/javascript';_request.id=_currentRequestID;_request.loadedText='';_request.callback=_callbackClosure;_request.src=self.url + '&callerID=' + _request.id;}
function sendPost(){try{

		if (_request)
		{
			iw.remove(_request);
		}

_request=iw.create('<iframe name="' + _currentRequestID + '">');_request.attachEvent('onload',fetchPostResults);}
catch(e){_request=iw.create('iframe');_request.name=_currentRequestID;}
_request.id=_currentRequestID;_request.style.visibility='hidden';_request.style.width='1px';_request.style.height='1px';iw.append(_ajaxRequests,_request);self.url=unescape(self.url);var temp=self.url.split('?');self.url=temp[0]+ ';jsessionid='+iwconst.SESSION_ID;_form=iw.create('form');iw.append(_ajaxRequests,_form);_form.method='post';_form.target=_currentRequestID;_form.action=self.url;for(var j=1;j<temp.length;j++){var attributes=temp[j].split('&');for(var i=0;i<attributes.length;i++){var keyValuePair=attributes[i].split('=');createHiddenInput(_form,keyValuePair[0],keyValuePair[1]);}
}
createHiddenInput(_form,'callerID',_currentRequestID);_form.submit();_request.onload=fetchPostResults;}
function fetchPostResults(){_request.src='';iw.destroy(_request);iw.destroy(_form);_form=null;_request=null;_method='GET';self.url +='?fetchPostResults=1';self.send();}
function createHiddenInput(form,name,value){var input=iw.create('input');input.type='hidden';input.name=name;input.value=value;iw.append(form,input);return input;}
}







function IWServerConfig(){var _url=null;var _baseDir='';var	_portList=null;var _aliases='';var _aliasIndex=0;var _aliases=null;var _imageType=null;var _cacheEnabled=false;this.setAliases=function(aliases){_aliases=aliases;};this.getAliases=function(){return _aliases;};this.getNextAlias=function(){var alias=_aliases[_aliasIndex];_aliasIndex=(_aliasIndex + 1)% _aliases.length;return alias;};this.setURL=function(url){_url=url;};this.getURL=function(){return _url;};this.setPortList=function(portList){_portList=portList;};this.getPortList=function(){return _portList;};this.setImageType=function(imageType){_imageType=imageType;};this.getImageType=function(){return _imageType;};this.setCacheEnabled=function(cacheEnabled){_cacheEnabeld=cacheEnabled;};this.isCacheEnabled=function(){return _cacheEnabled;};this.setBaseDir=function(baseDir){_baseDir=baseDir;};this.getBaseDir=function(){return _baseDir;};}
var IWAlignment=new function(){this.CENTER=0;this.LEFT=1;this.RIGHT=2;this.TOP=4;this.BOTTOM=8;};var IWButton=new function(){this.NONE=0;this.LEFT=1;this.RIGHT=2;this.MIDDLE=4;};function IWAddressSearchControl(map){IWWindowControl.call(this,map,'IWAddressSearchControl');var self=this;var _translations=new Object();var _geocoder=new IWGeocoderClient();var _marker=null;var _bestAddress=null;var _container=this.getContainer();var _divBody=iw.create('div');var _inputAddress=iw.create('input');var _inputStreet=iw.create('input');var _inputHouseNumber=iw.create('input');var _inputZipcode=iw.create('input');var _inputCity=iw.create('input');var _inputCountry=iw.create('select');var _buttonSearch=iw.create('button');var _imgFlag=iw.create('img');_translations['de']=new Object();_translations['en']=new Object();_translations['es']=new Object();_translations['fr']=new Object();_translations['tr']=new Object();_translations['de']['ADDRESS_SEARCH']='Adresssuche';_translations['en']['ADDRESS_SEARCH']='Address search';_translations['es']['ADDRESS_SEARCH']='Address search';_translations['fr']['ADDRESS_SEARCH']='Address search';_translations['tr']['ADDRESS_SEARCH']='Address search';_translations['de']['BUTTON_SEARCH']='suchen';_translations['en']['BUTTON_SEARCH']='search';_translations['es']['BUTTON_SEARCH']='search';_translations['fr']['BUTTON_SEARCH']='search';_translations['tr']['BUTTON_SEARCH']='search';var _lang=map.getOptions().getLanguage();if(!_translations[_lang])_lang='en';function getContent(){var	html='<b>Ihre gesuchte Adresse</b><p><table><tr><td width="35"><img src=' + iwconst.GLOBAL_APP_URL + 'img/house_blue_30.gif' + '></td>';html +='<td valign="center">';if(_bestAddress.getStreet()!=null&&_bestAddress.getStreet()!=''){html +=_bestAddress.getStreet();if(_bestAddress.hasHouseNumber()){html +=' ' + _bestAddress.getHouseNumber();}
html +='<br>';}
html +=_bestAddress.getZipCode()+ ' ' + _bestAddress.getCity()+ '</td></tr></table></p>';var content=iw.create('div');content.style.position='relative';content.style.width='210px';content.style.height='100px';content.style.overflow='auto';content.innerHTML=html;return content;};function setCenter(event){self.triggerAfterAddressFound(event);var bestResult=event.results[0];var coordinate=bestResult.getLCC();_bestAddress=bestResult.getAddress();if(_marker==null){_marker=new IWMarker(map,coordinate);IWEventManager.addListener(_marker,'onclick',function(e){map.openInfoBalloon(_marker.getCoordinate(),getContent());}
);map.getOverlayManager().getLayer(1000).addOverlay(_marker);}
else
{_marker.setCoordinate(coordinate);map.getOverlayManager().getLayer(1000).redraw();}
}
function setLanguage(event){if(_translations[event.language]){_lang=event.language;self.setTitle(_translations[_lang]['ADDRESS_SEARCH']);_buttonSearch.value(_translations[_lang]['BUTTON_SEARCH']);}
}
this.searchAddressString=function(addressString,countryCode){_geocoder.geocodeAddressString(addressString,countryCode,256);};this.searchAddress=function(address){_geocoder.geocodeAddress(address,256);};this.triggerAfterAddressFound=function(event){IWEventManager.trigger(this,'afteraddressfound',event);};_container.id='IWAddressSearchControl';iw.append(this.getContentPanel().getContainer(),_divBody);_divBody.style.position='absolute';_divBody.style.left='1px';_divBody.style.height='150px';_divBody.style.width='500px';_divBody.style.top='0px';_divBody.style.left='0px';_divBody.style.overflowX='hidden';_divBody.style.overflowY='auto';iw.append(_divBody,_imgFlag);_imgFlag.style.position='absolute';_imgFlag.style.top='5px';_imgFlag.style.left='5px';_imgFlag.src=iwconst.GLOBAL_APP_URL + 'img/flags/deutschland20.gif';iw.append(_divBody,_inputAddress);_inputAddress.size='35';_inputAddress.style.position='absolute';_inputAddress.style.top='5px';_inputAddress.style.left='78px';iw.append(_divBody,_buttonSearch);_buttonSearch.style.position='absolute';_buttonSearch.style.top='5px';_buttonSearch.style.left='415px';_buttonSearch.value=_translations[_lang]['BUTTON_SEARCH'];_buttonSearch.onclick=function(){self.searchAddressString(_inputAddress.value,'D');};this.setTitle(_translations[_lang]['ADDRESS_SEARCH']);this.setSize(new IWSize(500,150));this.setRedrawable(false);this.close();IWEventManager.addListener(map,'afterlanguagechanged',setLanguage);IWEventManager.addListener(_geocoder,'aftergeocoded',setCenter);}
function IWBirdsEyeControl(map){IWControl.call(this,map,'IWBirdsEyeControl');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.afterAppend=function(){buildGUI();changeVisibility();};this.toString=function(){return '[IWBirdsEyeControl]';};function changeDir(iDirection){var mapType=_map.getOptions().getMapTypeByName('birdsview');switch(iDirection){case IWBirdsEyeControl.EAST:mapType.setRequestParameters('&direction=E');_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_east.png';break;case IWBirdsEyeControl.WEST:mapType.setRequestParameters('&direction=W');_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_west.png';break;case IWBirdsEyeControl.NORTH:mapType.setRequestParameters('&direction=N');_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_north.png';break;case IWBirdsEyeControl.SOUTH:mapType.setRequestParameters('&direction=S');_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_south.png';break;default:_img.src=iwconst.GLOBAL_APP_URL + 'img/bv_neutral.png';break;}
_map.setMapType(mapType);}
function changeVisibility(){var mapType=map.getCurrentMapType();self.setVisible(mapType.getName()=='birdsview');}
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(){var container=self.getContainer();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(IWBirdsEyeControl.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(IWBirdsEyeControl.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(IWBirdsEyeControl.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(IWBirdsEyeControl.SOUTH);});}
IWEventManager.addListener(_map,'aftermaptypechanged',changeVisibility);IWEventManager.addListener(_map,'afterlanguagechanged',setLanguage);}
IWBirdsEyeControl.NORTH=1;IWBirdsEyeControl.WEST=2;IWBirdsEyeControl.EAST=3;IWBirdsEyeControl.SOUTH=4;function IWControl(map,name){IWMapElement.call(this,iw.search(map.getContainer(),'divControl'));this.isControl=function(){return true;};this.isRedrawable=function(){return _redrawable;};this.setRedrawable=function(bool){_redrawable=bool;};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.getName=function(){return _name;};this.toString=function(){return '[IWControl]' +'Name:' + _name + ',' +'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()+ ',' +'Printable:' + this.isPrintable()+ ',' +'Redrawable:' + this.isRedrawable();};var _name=name;var _padding=new IWSize(0,0);var _firstOrientation=IWAlignment.CENTER;var _secondOrientation=IWAlignment.CENTER;var _redrawable=true;IWDraggable.call(this,this.getContainer(),iw.search(map.getContainer(),'divZoomingAndDragging'));this.setPrintable(false);}
function IWCopyrightControl(map){IWControl.call(this,map,'IWCopyrightControl');var _map=map;var _container=this.getContainer();var _self=this;var _copyright='';var _logger=log4javascript.getLogger('mapapi');this.getCopyrightText=function(){return _copyright;};this.afterAppend=function(){buildGUI();updateCopyright();};function buildGUI(){_container.id='IWCopyrightControl';_container.className='IWCopyrightControl';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.style.left='2px';var span=iw.create('span');iw.append(div,span);span.style.whiteSpace='nowrap';span.style.verticalAlign='middle';}
function updateCopyright(){var mapType=_map.getCurrentMapType();if(mapType !=null){var newCopyright='&#169;&nbsp;' + new Date().getFullYear()+ '&nbsp;<a href="http://www.infoware.de" target="_blank">infoware</a>,&nbsp;' + mapType.getCopyright();var userCopyright=_map.getOptions().getApplicationCopyright();if(userCopyright !=null&&userCopyright.length>0){newCopyright=newCopyright + userCopyright;}
if(_copyright !=newCopyright){_logger.info('setting copyright ' + newCopyright);_copyright=newCopyright;var span=_container.lastChild.firstChild;span.innerHTML=_copyright;var width=0;if(_container.style.width){width=parseInt(_container.style.width);}
_container.style.width=span.offsetWidth + 5 + 'px';_container.style.height=span.offsetHeight + 1 + 'px';_container.style.left=(parseInt(_container.style.left)+ width - span.offsetWidth - 5)+ 'px';_map.getLayoutManager().redraw();}
}
}
this.setPrintable(true);IWEventManager.addListener(_map,'aftermaptypechanged',updateCopyright);IWEventManager.addListener(_map,'aftercopyrightchanged',updateCopyright);}
function IWLayerSelectionControl(map){IWControl.call(this,map,'IWLayerSelectionControl');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,'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,'IWMeasuringControl');var _translations=new Object();_translations['de']=new Object();_translations['en']=new Object();_translations['de']['TITLE']='Messen';_translations['de']['RESET']='Zur&uuml;cksetzen';_translations['en']['TITLE']='Measuring';_translations['en']['RESET']='Reset';var _language=map.getOptions().getLanguage();if(!_translations[_language])_language='en';this.activate=function(){if(!_isActive){var parent=_container.parentNode;parent.insertBefore(_measureDiv,parent.lastChild.nextSibling);this.writeStatistic();if(_infoPanel.getContainer().parentNode==null){_infoPanel.getContainer().style.position="absolute";_infoPanel.getContainer().style.left='20px';_infoPanel.getContainer().style.top='20px';_infoPanel.getContainer().style.zIndex='150';parent.appendChild(_infoPanel.getContainer());}
_infoPanel.open();_isActive=true;}
};this.deactivate=function(){if(_isActive){_infoPanel.close();}
};this.getRenderer=function(){return _renderer;};this.getInfoWindow=function(){return _infoPanel;};this.setLastSegment=function(segment){_lastSegment=segment;};this.writeStatistic=function(){var total;if(_lastSegment==null){total=new Object();total['distance']=0;total['unit']='m';}
else
{total=_lastSegment.getFormattedDistance();}
_statDiv.innerHTML='<br><span style="font-size:30px;font-weight:bold;">'+total['distance']+'</span><span style="font-size:16px;font-weight:bold;">'+total['unit']+'</span><br><br>';};this.reset=function(){var segment=_lastSegment;while(segment !=null){var tmp=segment;segment=segment.getPreviousSegment();tmp.destroy();}
_lastSegment=null;_this.writeStatistic();};function createNewSegment(coordinate){var segment=new IWMeasureSegment(_map,_this,coordinate);if(_lastSegment !=null){_lastSegment.setNextSegment(segment);segment.setPreviousSegment(_lastSegment);}
_lastSegment=segment;_this.writeStatistic();}
function buildGUI(){_container.style.width='0px';_container.style.height='0px';_container.id='IWMeasuringControl';_measureDiv.id='measuringDiv';_measureDiv.style.position='absolute';_measureDiv.style.top='0px';_measureDiv.style.left='0px';_captureImg.id='captureImg';_captureImg.src=iwconst.GLOBAL_APP_URL + 'img/blank.gif';_captureImg.style.position='absolute';_captureImg.style.top='0px';_captureImg.style.left='0px';_captureImg.style.cursor='crosshair';_measureDiv.appendChild(_captureImg);_drawDiv.id='drawDiv';_drawDiv.style.position='absolute';_drawDiv.style.top='0px';_drawDiv.style.left='0px';_drawDiv.style.cursor='crosshair';_measureDiv.appendChild(_drawDiv);setSize(_map.getOptions().getSize());_statDiv.style.position='absolute';_statDiv.style.top='0px';_statDiv.style.left='0px';_statDiv.style.width=_infoPanel.getSize().getWidth()-10+'px';_statDiv.align='right';iw.append(_infoPanel.getContentPanel().getContainer(),_statDiv);_reloadButton.style.position='absolute';_reloadButton.style.top=_infoPanel.getSize().getHeight()-28+'px';_reloadButton.style.left='20px';_reloadButton.style.width=_infoPanel.getSize().getWidth()-40+'px';_reloadButton.innerHTML=_translations[_language]["RESET"];iw.append(_infoPanel.getContentPanel().getContainer(),_reloadButton);IWEventManager.addDOMListener(_reloadButton,'onclick',_this.reset);}
function setSize(size){_measureDiv.style.width=size.getWidth()+ 'px';_measureDiv.style.height=size.getHeight()+ 'px';_captureImg.style.width=size.getWidth()+ 'px';_captureImg.style.height=size.getHeight()+ 'px';_drawDiv.style.width=size.getWidth()+ 'px';_drawDiv.style.height=size.getHeight()+ 'px';}
function setLanguage(event){if(_translations[event.language]){_language=event.language;_infoPanel.setTitle(_translations[_language]['TITLE']);_reloadButton.innerHTML=_translations[_language]["RESET"];_this.writeStatistic();}
}
var _map=map;var _container=this.getContainer();var _this=this;var _isActive=false;var _measureDiv=iw.create('div');var _captureImg=iw.create('img');var _drawDiv=iw.create('div');var _statDiv=iw.create('div');var _infoPanel=new IWWindowControl(_map,_translations[_language]['TITLE'],new IWSize(150,70));var _reloadButton=iw.create('button');var _renderer=new IWGraphics(_drawDiv);var _mouseAdapter=new IWMouseAdapter();var _lastSegment=null;buildGUI();_infoPanel.setRedrawable(false);_infoPanel.close();_infoPanel.beforeClose=function(){_this.reset();_measureDiv.parentNode.removeChild(_measureDiv);_isActive=false;};IWEventManager.addListener(_map,'afterlanguagechanged',setLanguage);IWEventManager.addListener(_map,'afterresized',function(e){setSize(e.newSize);});IWEventManager.addDOMListener(_measureDiv,"onmousedown",function(event){noPropagation(event);}.iwclosure(this));IWEventManager.addDOMListener(_measureDiv,"onmouseup",function(event){noPropagation(event);}.iwclosure(this));IWEventManager.addDOMListener(_measureDiv,"ondblclick",function(event){noPropagation(event);}.iwclosure(this));IWEventManager.addDOMListener(_measureDiv,"onclick",function(event){noPropagation(event);var mouseEvent=_mouseAdapter.toMouseEvent(event,_measureDiv);var coordinate=_map.getCurrentMapType().getProjection().pixelToMeter(mouseEvent.position);createNewSegment(coordinate);}.iwclosure(this));}
function IWMeasureSegment(map,measureControl,coordinate){this.getPosition=function(){return _map.getCurrentMapType().getProjection().meterToPixel(_coordinate);}
this.getPreviousSegment=function(){return _previousSegment;}
this.setPreviousSegment=function(segment){var oldSeg=_previousSegment;_previousSegment=segment;if((oldSeg !=null&&_previousSegment==null)||(oldSeg==null&&_previousSegment !=null))
{createPoint();}
if(_previousSegment !=null){if(_line==null){createLine();}
_renderer.move(_line,_previousSegment.getPosition(),_this.getPosition());}
else
{if(_line !=null){deleteLine();}
}
_this.calculateDistance();}
this.setNextSegment=function(segment){var oldSeg=_nextSegment;_nextSegment=segment;if((oldSeg !=null&&_nextSegment==null)||(oldSeg==null&&_nextSegment !=null))
{createPoint();}
if(_nextSegment==null){_measureControl.setLastSegment(this);_this.calculateDistance();}
}
this.moveTailOfLine=function(position){if(_line !=null){_renderer.move(_line,position,_this.getPosition());}
};this.destroy=function(){IWEventManager.clearInstanceListeners(_this);deletePoint();deleteLine();_point=null;_previousSegment=null;_nextSegment=null;}
this.getDistance=function(){return _distance;}
this.getFormattedDistance=function(){return formatDistance(_distance);}
this.getCoordinate=function(){return _coordinate;}
this.calculateDistance=function(){if(_previousSegment==null){_distance=0;}
else
{_distance=_previousSegment.getDistance()+ _previousSegment.getCoordinate().distanceFrom(_coordinate);}
if(_nextSegment !=null){_nextSegment.calculateDistance();}
else
{_measureControl.writeStatistic();}
}
function createLine(){_line=_renderer.drawLine(_previousSegment.getPosition(),_this.getPosition(),4,_COLOR_NORMAL);_line.style.opacity='0.75';_line.style.filter='alpha(opacity=75)';_line.style.cursor='pointer';_renderer.moveToBottom(_line);_lineOnMouseClickListener=IWEventManager.addDOMListener(_line,'onclick',function(e){noPropagation(e);var mouseEvent=_mouseAdapter.toMouseEvent(e,_parent);insertNewSegment(mouseEvent.position);});}
function deleteLine(){if(_line !=null){IWEventManager.removeListener(_lineOnClickListener);_renderer.removeElement(_line);_line=null;}
}
function createPoint(){deletePoint();if(_previousSegment==null){_point=_renderer.drawEllipse(_this.getPosition(),new IWSize(8,8),1,_COLOR_NORMAL,_COLOR_START);}
else if(_nextSegment==null){_point=_renderer.drawEllipse(_this.getPosition(),new IWSize(8,8),1,_COLOR_NORMAL,_COLOR_END);}
else
{_point=_renderer.drawEllipse(_this.getPosition(),new IWSize(6,6),1,_COLOR_NORMAL,_COLOR_NORMAL);}
_point.style.cursor='pointer';_pointOnMouseDownListener=IWEventManager.addDOMListener(_point,'onmousedown',function(e){noPropagation(e);var mouseEvent=_mouseAdapter.toMouseEvent(e,_parent);if(mouseEvent.button==IWButton.RIGHT){if(_isDragged){stopDragging();}
removeSegment();}
else
{if(_isDragged){stopDragging();}
else
{_point.style.cursor='move';startDragging();}
}
});_pointOnClickListener=IWEventManager.addDOMListener(_point,'onclick',function(e){noPropagation(e);stopDragging();});if(_previousSegment !=null&&_nextSegment !=null){_pointOnMouseOverListener=IWEventManager.addDOMListener(_point,'onmouseover',function(e){if(!_isDragged){var distance=_this.getFormattedDistance();_map.openTooltip(_coordinate,distance['distance']+' '+distance['unit']);}
});_pointOnMouseOutListener=IWEventManager.addDOMListener(_point,'onmouseout',function(e){_map.removeTooltip();});}
}
function deletePoint(){if(_point !=null){_renderer.removeElement(_point);}
IWEventManager.removeListener(_pointOnMouseDownListener);IWEventManager.removeListener(_pointOnMoveListener);IWEventManager.removeListener(_pointOnMouseUpListener);IWEventManager.removeListener(_pointOnMouseOverListener);IWEventManager.removeListener(_pointOnMouseOutListener);IWEventManager.removeListener(_pointOnClickListener);_pointOnMouseDownListener=null;_pointOnMoveListener=null;_pointOnMouseUpListener=null;_pointOnMouseOverListener=null;_pointOnMouseOutListener=null;_pointOnClickListener=null;}
function insertNewSegment(position){var coordinate=_map.getCurrentMapType().getProjection().pixelToMeter(position);var newSegment=new IWMeasureSegment(_map,_measureControl,coordinate);newSegment.setPreviousSegment(_previousSegment);newSegment.setNextSegment(_this);_previousSegment.setNextSegment(newSegment);_this.setPreviousSegment(newSegment);}
function removeSegment(){_map.removeTooltip();if(_previousSegment !=null){_previousSegment.setNextSegment(_nextSegment);}
if(_nextSegment !=null){_nextSegment.setPreviousSegment(_previousSegment);}
if(_previousSegment==null&&_nextSegment==null){_measureControl.setLastSegment(null);}
_this.destroy();}
function startDragging(){_pointOnMoveListener=IWEventManager.addDOMListener(document,'onmousemove',function(e){noPropagation(e);_map.removeTooltip();var mouseEvent=_mouseAdapter.toMouseEvent(e,_parent);_renderer.moveToTop(_point);_renderer.move(_point,mouseEvent.position);if(_previousSegment !=null){_renderer.move(_line,_previousSegment.getPosition(),mouseEvent.position);}
if(_nextSegment !=null){_nextSegment.moveTailOfLine(mouseEvent.position);}
_coordinate=_map.getCurrentMapType().getProjection().pixelToMeter(mouseEvent.position);_this.calculateDistance();_isDragged=true;});_pointOnMouseUpListener=IWEventManager.addDOMListener(_point,'onmouseup',function(e){noPropagation(e);if(_isDragged){stopDragging();}
});}
function stopDragging(){_point.style.cursor='pointer';IWEventManager.removeListener(_pointOnMouseUpListener);IWEventManager.removeListener(_pointOnMoveListener);_pointOnMouseUpListener=null;_pointOnMoveListener=null;_coordinate=_map.getCurrentMapType().getProjection().pixelToMeter(_renderer.getPosition(_point));_renderer.move(_point,_this.getPosition());_this.calculateDistance();_isDragged=false;}
function hideSegment(e){_point.style.visibility='hidden';_point.style.display='none';if(_line !=null){_line.style.visibility='hidden';_line.style.display='none';}
}
function showSegment(e){_renderer.move(_point,_this.getPosition());if(_line !=null&&_previousSegment !=null){_renderer.move(_line,_previousSegment.getPosition(),_this.getPosition());_line.style.visibility='visible';_line.style.display='';}
_point.style.visibility='visible';_point.style.display='';}
function formatDistance(meter){var format=new Object();if(meter>=1000000){format['distance']=Math.round(meter/1000);format['unit']='km';}
else if(meter>=10000){format['distance']=Math.round(meter/10)/100;format['unit']='km';}
else
{format['distance']=Math.round(meter);format['unit']='m';}
return format;}
var _COLOR_NORMAL='#0033FF';var _COLOR_START='#660000';var _COLOR_END='#FFFFFF';var _this=this;var _measureControl=measureControl;var _mouseAdapter=new IWMouseAdapter();var _map=map;var _renderer=_measureControl.getRenderer();var _coordinate=coordinate;var _parent=_renderer.getContainer();var _previousSegment=null;var _nextSegment=null;var _point=null;var _pointOnMouseDownListener=null;var _pointOnMoveListener=null;var _pointOnMouseUpListener=null;var _pointOnMouseOverListener=null;var _pointOnMouseOutListener=null;var _pointOnClickListener=null;var _line=null;var _lineOnClickListener=null;var _isDragged=false;var _distance=0;createPoint();IWEventManager.addDOMListener(_map,'beforezoom',hideSegment);IWEventManager.addDOMListener(_map,'afterzoom',showSegment);IWEventManager.addDOMListener(_map,'beforemove',hideSegment);IWEventManager.addDOMListener(_map,'aftermove',showSegment);IWEventManager.addDOMListener(_map,'aftercentered',showSegment);IWEventManager.addDOMListener(_map,'aftermaptypechanged',showSegment);IWEventManager.addDOMListener(_map,'afterresized',showSegment);}
function IWNavigationControl(map){IWControl.call(this,map,'IWNavigationControl');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';};this.afterAppend=function(){buildGUI();};function buildGUI(){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,'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'];}
}
_container.id='divNavigationControl';_container.style.width='58px';_container.style.height='55px';}
function IWOverlaySelectionControl(map){IWWindowControl.call(this,map,'IWOverlaySelectionControl');var _self=this;var _translations=new Object();var _container=this.getContainer();_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';function setLanguage(event){if(_translations[event.language]){_lang=event.language;_self.setTitle(_translations[_lang]['POI_SELECTION']);}
}
this.getTreeView=function(){return _treeview;};_container.id='divOverlaySelectionControl';_container.style.height='295px';_container.style.width='220px';var _divBody=iw.create('div');iw.append(this.getContentPanel().getContainer(),_divBody);_divBody.style.position='absolute';_divBody.style.left='1px';_divBody.style.height='270px';_divBody.style.width='218px';_divBody.style.top='0px';_divBody.style.left='0px';_divBody.style.overflowX='hidden';_divBody.style.overflowY='auto';this.setTitle(_translations[_lang]['POI_SELECTION']);this.setSize(new IWSize(220,270));this.setRedrawable(false);var	_treeview=new IWTreeView(_divBody);_treeview.addNodes(map.getLayers());this.close();IWEventManager.addListener(_treeview,'afternodeclicked',function(e){map.redraw();}
);IWEventManager.addListener(map,'afterlanguagechanged',setLanguage);}
function IWOverviewMapControl(map,mapTypeName,size){IWControl.call(this,map,'IWOverviewMapControl');var self=this;var _map=map;var _mapType=null;var _overviewMap=null;var _dragBoxControl=null;var _zoomStep=4;var _collapsible=false;var _collapsed=false;var _orientation=IWAlignment.BOTTOM + IWAlignment.RIGHT;var _size=(typeof size !='undefined' ? size:new IWSize(115,115));var _container=this.getContainer();var _buttonDiv=iw.create('div');var _img=iw.create('img');this.getSize=function(){return _size;};this.getMap=function(){return _map;};this.setZoomStep=function(zoomStep){_zoomStep=zoomStep;};this.getZoomStep=function(){return _zoomStep;};this.afterAppend=function(){buildGUI();};this.getOverviewMap=function(){return _overviewMap;};this.setCollapsible=function(collapsible){if(collapsible){_buttonDiv.style.visibility='visible';}
else
{_buttonDiv.style.visibility='hidden';}
};this.isCollapsible=function(){return(_buttonDiv.style.visibility=='visible');};this.isCollapsed=function(){return _collapsed;};this.collapse=function(){_container.style.width='11px';_container.style.height='11px';_collapsed=true;};this.expand=function(){_container.style.width=_size.getWidth()+ 'px';_container.style.height=_size.getHeight()+ 'px';_collapsed=false;};this.setCollapsibleButtonOrientation=function(orientation){_orientation=orientation;};this.getCollapsibleButtonOrientation=function(){return _orientation;};function buildGUI(){_container.id='IWOverviewMapControl';_container.className='iwoverviewmapcontrol';_container.style.overflow='hidden';_overviewMap=new IWMap(_container);iw.search(_overviewMap.getContainer(),'IWCopyrightControl').style.display='none';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);}
);iw.append(_container,_buttonDiv);_buttonDiv.className='iwoverviewmap_collapsiblebutton';_buttonDiv.style.visibility='hidden';IWEventManager.addDOMListener(_img,'onclick',changeVisibility);iw.append(_buttonDiv,_img);_img.src=iwconst.GLOBAL_APP_URL + 'img/overviewmap/north_west.gif';_img.title='collapse';_mapType=_overviewMap.getOptions().getMapTypeByName(mapTypeName);_overviewMap.setCenter(_map.getCenter(),findZoomLevel(_map.getZoom()),_mapType);}
function findZoomLevel(zoomlevel){if(zoomlevel + _zoomStep<=_mapType.getMinLevel()){return zoomlevel + _zoomStep;}
else
{return _mapType.getMinLevel();}
}
function changeVisibility(){if(self.isCollapsed()){self.expand();}
else
{self.collapse();}
}
function onZoomHandler(event){_overviewMap.setCenter(event.newCenter,findZoomLevel(event.newZoomLevel),_mapType);_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);}
}
with(_container.style){height=_size.getHeight()+ 'px';width=_size.getWidth()+ 'px';}
IWEventManager.addListener(_map,'onzoom',onZoomHandler);IWEventManager.addListener(_map,'aftercentered',afterCenteredHandler);}
function IWOverviewDragBoxControl(overviewMapControl){IWControl.call(this,overviewMapControl.getOverviewMap(),'IWOverviewDragBoxControl');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;this.afterAppend=function(){buildGUI();};function buildGUI(){_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();_overviewMap.getLayoutManager().redraw();}
function updateBoxSize(){var size=calculateVisibleMapAreaSize();if(_overviewMap.getOptions().getSize().compareTo(size)==1){_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 redraw(){updateBoxSize();_overviewMap.getLayoutManager().redraw();}
function beforeDraggedHandler(event){_mouseWheelAction=_map.getOptions().getMouseWheelAction();_map.getOptions().setMouseWheelAction(IWMapOptions.CONTROL_NONE);}
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.getCurrentMapType().getProjection().pixelToMeter(center);coordinate=_map.getBoundsConstraintManager().adjustCenter(coordinate);var newCenter=_overviewMap.getCurrentMapType().getProjection().meterToPixel(coordinate);if(newCenter !=center){div.style.top=newCenter.getY()-(height/2)+ 'px';div.style.left=newCenter.getX()-(width/2)+ 'px';}
_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);}
this.setDragButton(IWButton.LEFT + IWButton.RIGHT);this.allowDraggingOutsideParent(true);this.setDraggingBounds(_overviewMap.getOptions().getSize());this.setDraggable(true);IWEventManager.addListener(_map,'afterresized',redraw);IWEventManager.addListener(_map,'onmove',onMoveHandler);IWEventManager.addListener(_map,'afterzoom',redraw);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,'IWPanelControl');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']['SELECT_WAYPOINTS']='Routenpunkte ausw&auml;hlen';_t['en']['SELECT_WAYPOINTS']='Select addresses';_t['fr']['SELECT_WAYPOINTS']='Select addresses';_t['es']['SELECT_WAYPOINTS']='Select addresses';_t['tr']['SELECT_WAYPOINTS']='Select addresses';_t['de']['SEARCH_ROUTE']='Route planen';_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']['SPEED_CITY']='km im Stadtverkehr';_t['en']['SPEED_CITY']='km City';_t['fr']['SPEED_CITY']='km Localit\u00E9';_t['es']['SPEED_CITY']='km Poblaci\u00F3n';_t['tr']['SPEED_CITY']='km \u015Eehir';_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']='l\u00F6schen';_t['en']['DELETE_INTERSTATION']='delete';_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 Route';_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 Route';_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 Route';_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']='km auf Autobahnen';_t['en']['HIGHWAY']='km Motorway';_t['fr']['HIGHWAY']='km autoroute';_t['es']['HIGHWAY']='km Autopista';_t['tr']['HIGHWAY']='km otoyol';_t['de']['COUNTRYROAD']='km auf Landstra\u00DFen';_t['en']['COUNTRYROAD']='km country roads';_t['fr']['COUNTRYROAD']='km route r\u00F3gionale';_t['es']['COUNTRYROAD']='km Carretera';_t['tr']['COUNTRYROAD']='km 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']='Zwischenstationen';_t['en']['INTERSTATION']='Interstations';_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_ERROR']='Bitte geben Sie bei der Adresse mindestens ein PLZ oder einen Ort ein.';_t['en']['INPUT_ERROR']='You have to insert at least a city or zip code for the address';_t['fr']['INPUT_ERROR']='You have to insert at least a city or zip code for the address';_t['es']['INPUT_ERROR']='You have to insert at least a city or zip code for the address';_t['tr']['INPUT_ERROR']='You have to insert at least a city or zip code for the address';_t['de']['NUMBER']='Nr';_t['en']['NUMBER']='Nr';_t['fr']['NUMBER']='Nr';_t['es']['NUMBER']='Nr';_t['tr']['NUMBER']='Nr';_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']['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']='Route anzeigen';_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 button=iw.create('button');button.innerHTML=_t[_language]['DELETE_INTERSTATION'];addressDiv.appendChild(button);_interstationAddressDivs.push(addressDiv);var h1=iw.create('h1');h1.innerHTML=_t[_language]['INTERSTATION']+ ' ' + _interstationAddressDivs.length;var n=_interstationMenu.childNodes[1];div.appendChild(h1);div.appendChild(addressDiv);n.insertBefore(div,n.lastChild);setAddressFields(addressDiv,address);IWEventManager.trigger(_self,'onredraw',null);var onClickListener=IWEventManager.addDOMListener(button,'onclick',function(){_self.removeInterstationAddress(div);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('h1',_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.getRoute=function(){return _route;};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);if((address.getZipCode()==null||address.getZipCode().length==0)&&(address.getCity()==null||address.getCity().length==0)){alert(_t[_language]['INPUT_ERROR']);_isAlreadySearching=false;return;}
_inputAddresses.push(address);}
}
addressNodes=null;var childNodes=_routePane2.childNodes;while(childNodes.length>0){childNodes[0].parentNode.removeChild(childNodes[0]);}
var h2=iw.create('h2');h2.innerHTML=_t[_language]['SELECT_WAYPOINTS'];_routePane2.appendChild(h2);var button=iw.create('button');_routePane2.appendChild(button);button.innerHTML=_t[_language]['BACK'];button.onclick=function(){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.style.width='430px';_routePane1.className='routing';container.appendChild(_routePane1);var h2=iw.create('h2');h2.innerHTML=_t[_language]['SEARCH_ROUTE'];_routePane1.appendChild(h2);_routePane1.appendChild(createStartAddress());_routePane1.appendChild(createInterstationMenu());_routePane1.appendChild(createDestinationAddress());_routePane1.appendChild(createOptionsMenu());var searchButton=iw.create('button');_routePane1.appendChild(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='';if(_addressIndex==0){caption=_t[_language]['START'];}
else if(_addressIndex==_inputAddresses.length-1){caption=_t[_language]['DESTINATION'];}
else
{caption=_t[_language]['INTERSTATION']+ ' ' + _addressIndex;}
var div=iw.create('div');div.className='dropDownContent';div.style.display='block';div.style.visibility='visible';div.style.marginBottom='5px';div.style.marginTop='5px';var h1=iw.create('h1');h1.innerHTML=caption;_routePane2.appendChild(div);var select=iw.create('select');select.name='address';select.style.width='400px';_geocodeAddresses.push(results);for(var i=0,j=0;i<results.length;i++,j++){var address=results[i].getAddress();select.options[j]=new Option(formatAddressString(address));select.options[j].address=address;}
div.appendChild(h1);div.appendChild(select);_routePane2.appendChild(div);}
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='routing';_routePane2.style.width='430px';hide(_routePane2);var nextButton=iw.create('button');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.setType(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){var start=addressNodes[0].options[addressNodes[0].selectedIndex].address;var destination=addressNodes[addressNodes.length-1].options[addressNodes[addressNodes.length-1].selectedIndex].address;var interstations=null;if(addressNodes.length>=3){var interstations=new Array();for(var i=1;i<addressNodes.length-1;i++){var interstation=addressNodes[i].options[addressNodes[i].selectedIndex].address;;interstations.push(interstation);}
}
_routerClient.route(start,destination,interstations);}
else
{}
}
);IWEventManager.addListener(_routerClient,'afterrouted',function(event){hide(_routePane2);_route=event.route;var formatter=new IWRouteFormatter(_route);formatter.setLanguage('de');iw.id('headerRoute').innerHTML=formatter.createSummaryAsHTML();var table=iw.id('routeTable');for(var i=table.rows.length-1;i>0;i--){table.deleteRow(i);}
if(_route.getSegments()==0){alert(_t[_language]['ROUTING_ERROR']);}
else
{for(var i=0;i<_route.getSegments();i++){var tr=table.insertRow(i);tr.className=(i % 2 ? 'even':'odd');tr.style.cursor='pointer';var coordinate=_route.getEntry(i).getCoordinate();addRoutingPoint(i + 1,coordinate);IWEventManager.addDOMListener(tr,'onclick',function(event){var content=_routingMagnifierFactory.createRoutingMagnifierContent(this);_map.openInfoBalloon(this,content);}.iwclosure(coordinate)
);var td=tr.insertCell(0);td.style.verticalAlign='top';td.innerHTML=i+1;td=tr.insertCell(1);td.style.verticalAlign='top';td.innerHTML=formatter.createImageAsHTML(i);td=tr.insertCell(2);td.style.verticalAlign='top';td.innerHTML=formatter.createDescriptionAsHTML(i);td=tr.insertCell(3);td.style.verticalAlign='top';td.innerHTML=formatter.createDistanceAsHTML(i);}
}
_routeLayer=new IWLayer(map,'route','ROUTE');_routeLayer.addShape(new IWShape(_route.getShape()));map.addLayer(_routeLayer);map.setCenter(_route.getBounds().getCenter(),map.getBoundsZoomlevel(_route.getBounds()));show(_routePane3);IWEventManager.trigger(_self,'onredraw',null);return true;}.iwclosure(this));container.appendChild(_routePane3);_routePane3.id='routePane3';_routePane3.className='routing';_routePane3.style.width='430px';hide(_routePane3);var h2=iw.create('h2');iw.append(_routePane3,h2);h2.className='routing';h2.innerHTML='Ihre Routenbeschreibung';var span=iw.create('span');iw.append(_routePane3,span);span.id='headerRoute';span.className='routing';var waybackButton=iw.create('button');_routePane3.appendChild(waybackButton);waybackButton.style.width='190px';waybackButton.style.marginBottom='10px';waybackButton.innerHTML=_t[_language]['WAY_BACK'];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.style.width='190px';newRouteButton.style.marginBottom='10px';newRouteButton.innerHTML=_t[_language]['NEW_ROUTE'];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');_routePane3.appendChild(table);table.id='routeTable';}
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());_route=null;_routeBounds=null;}
function createStartAddress(){var div=iw.create('div');div.className='dropDownContent';div.style.display='block';div.style.visibility='visible';var h1=iw.create('H1');h1.innerHTML=_t[_language]['START'];div.appendChild(h1);div.appendChild(_startAddressDiv);return div;}
function createDestinationAddress(){var div=iw.create('div');div.className='dropDownContent';div.style.display='block';div.style.visibility='visible';var h1=iw.create('H1');h1.innerHTML=_t[_language]['DESTINATION'];div.appendChild(h1);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;input.onfocus=function(){if(this.value==value){this.value='';}
}.iwclosure(input);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);header.onclick=function(){dropDown(header);};var img=iw.create('img');header.appendChild(img);img.src=iwconst.GLOBAL_APP_URL + 'img/oeffnen_route.gif';img.className='img';var p=iw.create('p');header.appendChild(p);p.innerHTML=_t[_language]['ROUTING_OPTIONS'];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);header.onclick=function(){dropDown(header);};var img=iw.create('img');header.appendChild(img);img.src=iwconst.GLOBAL_APP_URL + 'img/oeffnen_route.gif';img.className='img';var p=iw.create('p');p.innerHTML=_t[_language]['INTERSTATION'];header.appendChild(p);var content=iw.create('div');content.id='routeInterstationContent';content.className='dropDownContent';var button=iw.create('button');content.appendChild(button);button.style.width='190px';button.innerHTML=_t[_language]['ADD_INTERSTATION'];button.onclick=function(){_self.addInterstationAddress(new IWAddress());};_interstationMenu.appendChild(content);return _interstationMenu;}
function createModusDIV(){var div=iw.create('div');div.id='modusDiv';var h1=iw.create('h1');h1.innerHTML=_t[_language]['ROUTING_MODE'];div.appendChild(h1);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='SPEED';radio1.checked=true;radio1.className='modus';radio2=iw.create('input');radio2.type='radio';radio2.name='routeMode';radio2.value='LENGTH';radio2.className='modus';radio3=iw.create('input');radio3.type='radio';radio3.name='routeMode';radio3.value='ECONOMY';radio3.className='modus';}
var table=iw.create('table');table.id='modusTable';var tr=table.insertRow(0);var td=tr.insertCell(0);td.style.width='65px';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 h1=iw.create('h1');h1.innerHTML=_t[_language]['SPEED_SETTINGS'];div.appendChild(h1);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=3;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=2;var table=iw.create('table');table.id='speedTable';var tr=table.insertRow(0);var td=tr.insertCell(0);td.style.width='65px';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]['SPEED_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 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){var content=_routingMagnifierFactory.createRoutingMagnifierContent(coordinate);_map.openInfoBalloon(coordinate,content);}.iwclosure(marker)
);_map.getOverlayManager().getLayer(100).addOverlay(marker);}
this.getRouteBounds=function(){return _routeBounds;};IWControl.call(this,map,'IWRoutingControl');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;var _routeLayer=null;this.setLanguage(_map.getOptions().getLanguage());var _logger=log4javascript.getLogger('IWRoutingControl');var _inputAddresses=null;var _geocoderClient=new IWGeocoderClient();var _routerClient=new IWRoutingClient();var _route=null;var _routeBounds=null;var _addressIndex=0;var _geocodeAddresses=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 _routingMagnifierFactory=new IWRoutingMagnifierFactory(_map);IWEventManager.addListener(_map,'afterlanguagechanged',function(event){_self.setLanguage(event.language);});buildGUI();_map.getOverlayManager().getLayer(100).setVisibilityRange(new IWRange(0,120));}
function IWScalarControl(map){IWControl.call(this,map,'IWScalarControl');var self=this;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(){buildGUI();redraw();};function buildGUI(){var container=self.getContainer();container.id='IWScalarControl';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;}
createSeperator();createBlueBox();createSeperator();createWhiteBox();createSeperator();createBlueBox();createSeperator();createWhiteBox();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.append(_container.lastChild,div);iw.backgroundImage(div,iwconst.GLOBAL_APP_URL + 'img/background_blue.jpg');}
function createWhiteBox(){var div=createBox();iw.append(_container.lastChild,div);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()/6);var i=0;while(meter>=_scaleUnits[i]&&i<(_scaleUnits.length-1)){i++;}
var left=5;var pixelPerMeter=map.getOptions().getSize().getWidth()/map.getMapWidthInMeter();var width=Math.round(_scaleUnits[i]*pixelPerMeter/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';}
_container.style.width='120px';_container.style.height='25px';this.setPrintable(true);IWEventManager.addListener(map,'afterzoom',function(event){redraw();});IWEventManager.addListener(map,'afterresized',function(event){redraw();});IWEventManager.addListener(map,'aftercentered',function(event){redraw();});}
function IWSlideInMenuControl(map,size,slideDirection){IWControl.call(this,map,'IWSlideInMenuControl');function _move(){var size=null;var switch_=null;if(_slideDirection==IWAlignment.LEFT){size=_size.getWidth();switch_=-1;if(!_isOpen){self.getContainer().style.width=_size.getWidth()+ 11 + 'px';self.getContainer().style.left=parseInt(self.getContainer().style.left)-_size.getWidth()+'px';_container.style.left=_size.getWidth()+ 'px';}
}
else if(_slideDirection==IWAlignment.RIGHT){size=_size.getWidth();switch_=1;if(!_isOpen){self.getContainer().style.width=_size.getWidth()+11+'px';}
}
else if(_slideDirection==IWAlignment.TOP){size=_size.getHeight();switch_=-1;if(!_isOpen){self.getContainer().style.height=_size.getHeight()+11+'px';self.getContainer().style.top=parseInt(self.getContainer().style.top)-_size.getHeight()+'px';_container.style.top=_size.getHeight()+ 'px';}
}
else if(_slideDirection==IWAlignment.BOTTOM){size=_size.getHeight();switch_=1;if(!_isOpen){self.getContainer().style.height=_size.getHeight()+11+'px';}
}
_isOpen=!_isOpen;if(!_isOpen){self.triggerBeforeClose();_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
{self.triggerBeforeOpen();_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';self.getContainer().style.width='11px';if(!self.getContainer().style.left)self.getContainer().style.left=_size.getWidth()+'px';else
self.getContainer().style.left=parseInt(self.getContainer().style.left)+_size.getWidth()+'px';}
else if(_slideDirection==IWAlignment.RIGHT){_container.style.left=- _size.getWidth()+'px';self.getContainer().style.width='11px';}
else if(_slideDirection==IWAlignment.TOP){_container.style.top='11px';self.getContainer().style.height='11px';if(!self.getContainer().style.top)self.getContainer().style.top=_size.getHeight()+'px';else
self.getContainer().style.top=parseInt(self.getContainer().style.top)+_size.getHeight()+'px';}
else if(_slideDirection==IWAlignment.BOTTOM){_container.style.top=- _size.getHeight()+'px';self.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.triggerBeforeOpen=function(){IWEventManager.trigger(this,'beforeopen',null);};this.triggerBeforeClose=function(){IWEventManager.trigger(this,'beforeclose',null);};this.setSize=function(size){_size=size;var width=_size.getWidth();var height=_size.getHeight();if(_slideDirection==IWAlignment.LEFT||_slideDirection==IWAlignment.RIGHT){_container.style.width=width + 11 + 'px';_container.style.height=height + 'px';this.getContainer().style.width=width + 11 + 'px';this.getContainer().style.height=height + 'px';_slider.style.height=height - 2 + 'px';_slider.style.width='9px';_slideArrow.style.top=(height/2 - 10)+ 'px';_slideArrow.style.left='0px';_slider.style.top='0px';}
else if(_slideDirection==IWAlignment.TOP||_slideDirection==IWAlignment.BOTTOM){_container.style.width=width + 'px';_container.style.height=height + 11 +'px';this.getContainer().style.width=width + 'px';this.getContainer().style.height=height + 11 + 'px';_slider.style.width=width - 2 + 'px';_slider.style.height='9px';_slideArrow.style.left=(width/2 - 10)+ 'px';_slideArrow.style.bottom='0px';_slider.style.left='0px';}
if(_slideDirection==IWAlignment.RIGHT){_container.style.left=-width + 'px';_slider.style.left=width + 'px';}
else if(_slideDirection==IWAlignment.LEFT){_slider.style.left='-11px';_container.style.left=width + 11 + 'px';}
else if(_slideDirection==IWAlignment.TOP){_slider.style.top='-11px';_container.style.top=height + 11 + 'px';}
else if(_slideDirection==IWAlignment.BOTTOM){_container.style.top=-height + 'px';_slider.style.top=height + '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;}
this.triggerBeforeOpen();_isOpen=true;_addArrowImg();if(_slideDirection==IWAlignment.LEFT){self.getContainer().style.width=_size.getWidth()+11+'px';self.getContainer().style.left=parseInt(self.getContainer().style.left)-_size.getWidth()+'px';_container.style.left=_size.getWidth()+ 'px';}
else if(_slideDirection==IWAlignment.RIGHT){self.getContainer().style.width=_size.getWidth()+11+'px';}
else if(_slideDirection==IWAlignment.TOP){self.getContainer().style.height=_size.getHeight()+11+'px';self.getContainer().style.top=parseInt(self.getContainer().style.top)-_size.getHeight()+'px';_container.style.top=_size.getHeight()+ 'px';}
else if(_slideDirection==IWAlignment.BOTTOM){self.getContainer().style.height=_size.getHeight()+11+'px';}
_setCorrectPosition();};this.close=function(){if(!_isOpen){return;}
this.triggerBeforeClose();_isOpen=false;_addArrowImg();_setCorrectPosition();};this.isOpen=function(){return _isOpen;};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!');}
var self=this;var _slideSteps=[0.03,0.07,0.12,0.18,0.20,0.18,0.12,0.07,0.03];this.getContainer().id='divSlideInMenu';var _slideDirection=slideDirection;var _isOpen=false;var _oflowX='inherit';var _oflowY='inherit';var _overflowSave=new Array();var _size=null;if(typeof size=='undefined'){_size=new IWSize(100,100);}
else
{_size=size;}
var _container=iw.create('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=iw.create('div');_container.appendChild(_slider);var _slideArrow=iw.create('div');var _slideWindowImg=iw.create('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',_move);}
function IWSliderControl(map){IWControl.call(this,map,'IWSliderControl');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.afterAppend=function(){buildGUI();this.setValue(_map.getZoom(),true);};this.toString=function(){return '[IWSliderControl]';};function _fromSteptoPixel(step){return parseInt(_maxSlide/_highValue)*step + _offsetY;}
function buildGUI(){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';_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';_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';_divSliderButton.style.cursor='pointer';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';}
_container.id='IWSliderControl';_container.style.width='58px';_container.style.height='218px';this.setLanguage(_map.getOptions().getLanguage());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,'IWTabbedPanelControl');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,'IWToolbarControl');var self=this;var _items=new Object();var _container=this.getContainer();var _left=0;this.addItem=function(item){_items[item.getName()]=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';this.triggerAfterAppended(event);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){if(item !=null&&_items[item.getName()]){var node=item.getNode();var width=parseInt(node.style.width);_container.style.width=parseInt(_container.style.width)- width + 'px';_left=_left - width;var neighbor=node.nextSibling;while(neighbor){neighbor.style.left=parseInt(neighbor.style.left)- width + 'px';neighbor=neighbor.nextSibling;}
_items[item.getName()]=null;iw.remove(node);var event=new IWToolbarEvent();event.item=item;this.triggerAfterRemoved(event);}
};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);};this.triggerAfterAppended=function(event){IWEventManager.trigger(this,'afterappended',event);};this.triggerAfterRemoved=function(event){IWEventManager.trigger(this,'afterremoved',event);};function buildGUI(){_container.id='IWToolbarControl';_container.style.position='absolute';_container.style.height='0px';_container.style.width='0px';}
buildGUI();}
function IWToolbarItem(name){var _name=name;var _node=null;this.getName=function(){return _name;};this.getNode=function(){return _node;};this.setNode=function(node){_node=node;};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 IWWindowControl(map,title,size){IWControl.call(this,map,'IWWindowControl');this.beforeClose=function(){};this.afterClose=function(){};this.setCloseable=function(closeable){_closeable=closeable;};this.isCloseable=function(){return _closeable;};this.close=function(){self.triggerBeforeClose();self.beforeClose();self.setVisible(false);self.afterClose();};this.open=function(){self.triggerBeforeOpen();self.setVisible(true);};this.getSize=function(){return _panel.getSize();};this.setSize=function(size){_size=size;_container.style.height=size.getHeight()+ 25 + 'px';_container.style.width=size.getWidth()+ 'px';_header.style.width=_size.getWidth()- 10 + 'px';_panel.setSize(size);};this.getContentPanel=function(){return _panel;};this.getTitle=function(){return _title.innerHTML;};this.setTitle=function(title){_title.innerHTML=title;};this.afterAppend=function(){buildGUI();};this.triggerBeforeOpen=function(){IWEventManager.trigger(this,'beforeopen',null);};this.triggerBeforeClose=function(){IWEventManager.trigger(this,'beforeclose',null);};function buildGUI(){_header.style.position='absolute';_header.style.top='0px';_header.style.font='bold 12px Arial';_header.style.color='#ffffff';_header.style.backgroundColor='#1B57B1';_header.style.padding='4px';_header.style.border='1px solid #ffffff';iw.append(_header,_title);if(_closeable){var imgClose=iw.create('img');_header.appendChild(imgClose);imgClose.style.position='absolute';imgClose.style.right='4px';imgClose.style.top='6px';imgClose.src=iwconst.GLOBAL_APP_URL + 'img/close.png';imgClose.style.cursor='pointer';IWEventManager.addDOMListener(imgClose,'onclick',self.close);}
iw.append(_container,_header);_panel.getContainer().style.position='absolute';_panel.getContainer().style.top='25px';_panel.getContainer().style.left='0px';_panel.setBackgroundColor('#FFFFFF')
_panel.setOpacity(1);iw.append(_container,_panel.getContainer())
self.setVisible(false);}
var self=this;var _container=this.getContainer();var _header=iw.create('div');var _size=null;var _title=iw.create('span');var _closeable=true;if(typeof size=='undefined'){size=new IWSize(100,100);}
if(typeof title=='undefined'){title='Info window';}
var _panel=new IWPanelControl(map,size);this.setSize(size);this.setTitle(title);this.allowDraggingOutsideParent(false);this.setDraggableContainer(_header);this.setDraggable(true);}
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;},clone:function(obj){if(obj==null||typeof(obj)!='object'){return obj;}
var temp=new obj.constructor();for(var key in obj){if(obj[key].cloneNode){temp[key]=obj[key].cloneNode(true);}
else
{temp[key]=clone(obj[key]);}
}
return temp;},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);}
iw.append(parent,img);img.src=imageURL;},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;},windowSize:function(){var width=0;var height=0;if(window.innerWidth&&window.innerHeight){width=window.innerWidth;height=window.innerHeight;}
else if(document.body.clientWidth&&document.body.clientHeight){width=document.documentElement.clientWidth;height=document.documentElement.clientHeight;}
else
{alert("Error reading window size!");return;}
return new IWSize(width,height);},replace:function(text,searchChars,replaceChars){if(text==null||searchChars==null){return null;}
if(text.length==0||searchChars.length==0){return text;}
if(replaceChars==null||replaceChars.length==0){replaceChars='';}
var lenSearchChars=searchChars.length;var lenReplaceChars=replaceChars.length;var pos=text.indexOf(searchChars,0);while(pos>=0){text=text.substring(0,pos)+ replaceChars + text.substring(pos + lenSearchChars);pos=text.indexOf(searchChars,pos + lenReplaceChars);}
return text;}
};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){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;document.body.style.cursor=_dragContainer.style.cursor='move';prepareDragging();}
}
);}
else
{if(_onMouseDownListener !=null){document.body.style.cursor=_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){var mouseEvent=_mouseAdapter.toMouseEvent(event,_parent);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';document.body.style.cursor='auto';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);};}
function IWSessionKeeper(){var _img=iw.create('img');_img.width='0px';_img.height='0px';_img.style.position='absolute';_img.style.left='0px';_img.style.top='0px';_img.style.display='none';document.body.appendChild(_img);if(iwconst.KEEPALIVE_INTERVAL>0){window.setInterval
(function(){_img.src=iwconst.GLOBAL_APP_URL +	'img/blank.gif?randomKey='+iw.random(0,1000000000);}
,iwconst.KEEPALIVE_INTERVAL*1000);}
};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=iwconst.GLOBAL_APP_URL + 'img/treeview/blank.gif';var _backgroundLineImageURL=iwconst.GLOBAL_APP_URL + 'img/treeview/background_line.gif';var _childImageURL=iwconst.GLOBAL_APP_URL + 'img/treeview/child.gif';var _lastChildImageURL=iwconst.GLOBAL_APP_URL + 'img/treeview/last_child.gif';var _parentCollapsedImageURL=iwconst.GLOBAL_APP_URL + 'img/treeview/parent_collapsed.gif';var _lastParentCollapsedImageURL=iwconst.GLOBAL_APP_URL + 'img/treeview/last_parent_collapsed.gif';var _parentExpandedImageURL=iwconst.GLOBAL_APP_URL + 'img/treeview/parent_expanded.gif';var _lastParentExpandedImageURL=iwconst.GLOBAL_APP_URL + 'img/treeview/last_parent_expanded.gif';var _nodes=new Array();var _treenodes=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.getNodes=function(){return _nodes;};this.getContainer=function(){return _container;};this.getParent=function(){return _parent;};this.getTreenodes=function(){return _treenodes;};this.build=function(){iw.empty(_parent);_container.style.visibility='hidden';iw.append(_parent,_container);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';};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');iw.append(_container,nodeContainer);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);}else{_treenodes.push(treeNode);}
var table=iw.create('table');iw.append(nodeContainer,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');iw.append(tr,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');iw.append(td,image);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';}
}
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 IWScaleDependentIcon(iconURL,hotspot,size,range){IWIcon.call(this,iconURL,hotspot,size);var _range=new IWRange(0,100);this.setRange=function(range){iw.strict([IWRange],[range]);_range=range;};this.getRange=function(){return _range;};this.toString=function(){return '[IWScaleDependentIcon]';};if(typeof range !='undefined'){this.setRange(range);}
}
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 minX=Math.min(_coordNW.getX(),_coordSE.getX());var maxX=Math.max(_coordNW.getX(),_coordSE.getX());if(minX<=coord.getX()&&maxX>=coord.getX()){var minY=Math.min(_coordNW.getY(),_coordSE.getY());var maxY=Math.max(_coordNW.getY(),_coordSE.getY());if(minY<=coord.getY()&&maxY>=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.setX=function(x){_x=x;};this.getY=function(){return _y;};this.setY=function(y){_y=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,size){var _iconURL='';var _hotspot=new IWPoint(0,0);var _size=null;this.setURL=function(iconURL){_iconURL=iconURL;};this.getURL=function(){return _iconURL;};this.setHotspot=function(hotspot){_hotspot=hotspot;};this.getHotspot=function(){return _hotspot;};this.setSize=function(size){iw.strict([IWSize],[size]);_size=size;};this.getSize=function(){return _size;};this.toString=function(){return '[IWIcon]url:' + _iconURL +',hotspot:' +(_hotspot !=null ? _hotspot.toString():'null')+',size:' +(_size !=null ? _size.toString():'null');};if(typeof iconURL !='undefined'){this.setURL(iconURL);}
if(typeof hotspot !='undefined'){this.setHotspot(hotspot);}
if(typeof size !='undefined'){this.setSize(size);}
}
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 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);if(typeof f !='undefined'){_logger.info("f:" + f + "trigger obj:" + obj + " eventName:" + eventName + " theEvent:" + theEvent);f(theEvent);}
}
catch(e){_logger.error("trigger error:" + e);}
};this.removeListener=function(eventListener){if(eventListener&&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;this.toString=function(){return '[IWMouseControlChangedEvent]' +'mouseAction:' + this.mouseAction + ',' +'controlMethod:' + this.controlMethod;};}
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 IWToolboxEvent(){this.PRINTMAP=0;this.TMC=1;this.type=null;this.toString=function(){return '[IWToolboxEvent]' +'type:' + this.type;};}
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='';var _lcc=null;var _wgs84=null;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.setLCC=function(lcc){_lcc=lcc;}
this.getLCC=function(){return _lcc;};this.setWGS84=function(wgs84){_wgs84=wgs84;};this.getWGS84=function(){return _wgs84;};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)+ ','
'lcc cooordinate:' + _lcc.toString()+ ',' +'wgs84 coordinate:' + _wgs84.toString();};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,parameterObject){var maxHits=1;if(typeof maximumHits !='undefined'){maxHits=parseInt(maximumHits);}
var url=iwconst.LOCAL_APP_URL + '/servlet/FrontController' +'?cmd=geocode' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&RTVDIR=mapapi-0.70' +'&RTVADR=' + inputAddress +'&RTVLAND=' + countryCode +'&RTVMODE=' +(maxHits==1 ? '1':'0');var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('GET',iwconst.GLOBAL_PROXY_URL + '?serverURL=' + escape(url),true);xmlHttp.onreadystatechange=function(){geocodedCallback(this,xmlHttp,inputAddress,maxHits,parameterObject);}.iwclosure(this);xmlHttp.send(null);};this.geocodeAddress=function(inputAddress,maximumHits,parameterObject){var maxHits=1;if(typeof maximumHits !='undefined'){maxHits=parseInt(maximumHits);}
var url=iwconst.LOCAL_APP_URL + '/servlet/FrontController' +'?cmd=geocode' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&RTVDIR=mapapi-0.70' +'&RTVMODE=' +(maxHits==1 ? '1':'0')+'&RTVPLZ=' + inputAddress.getZipCode()+'&RTVORT=' + inputAddress.getCity()+'&RTVSTR=' + inputAddress.getStreet()+'&RTVHNR=' + inputAddress.getHouseNumber()+'&RTVLAND=' + inputAddress.getCountryCode();var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('GET',iwconst.GLOBAL_PROXY_URL + '?serverURL=' + escape(url),true);xmlHttp.onreadystatechange=function(){geocodedCallback(this,xmlHttp,inputAddress,maxHits,parameterObject);}.iwclosure(this);xmlHttp.send(null);};this.reverseGeocode=function(projection,inputCoordinate,searchMode,searchCriteria,parameterObject){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=' + projection +'&REVMODE=' + searchMode +'&REVX=' + inputCoordinate.getX()+'&REVY=' + inputCoordinate.getY()+'&REVOPT=' + searchCriteria;var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('GET',iwconst.GLOBAL_PROXY_URL + '?serverURL=' + escape(url),true);xmlHttp.onreadystatechange=function(){reverseGeocodedCallback(this,xmlHttp,inputCoordinate,parameterObject);}.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,maxHits,parameterObject){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=0,hit=0;i<zipCodes.length&&hit<maxHits;i++,hit++){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]));address.setLCC(new IWCoordinate(IWXMLHelper.getNodeValue(lcc_x[i]),IWXMLHelper.getNodeValue(lcc_y[i])));address.setWGS84(new IWCoordinate(IWXMLHelper.getNodeValue(wgs84_long[i]),IWXMLHelper.getNodeValue(wgs84_lat[i])));var result=new IWGeocodingResult();result.setAddress(address);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;event.parameterObject=parameterObject;self.triggerAfterGeocoded(event);}
function reverseGeocodedCallback(self,xmlHttp,inputCoordinate,parameterObject){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=0;i<hits;i++){var result=new IWReverseGeocodingResult();var address=new IWAddress();address.setStreet(IWXMLHelper.getNodeValue(streets[i]));address.setZipCode(IWXMLHelper.getNodeValue(zipCodes[i]));address.setCity(IWXMLHelper.getNodeValue(cities[i]));address.setLCC(new IWCoordinate(IWXMLHelper.getNodeValue(lcc_x[i]),IWXMLHelper.getNodeValue(lcc_y[i])));address.setWGS84(new IWCoordinate(IWXMLHelper.getNodeValue(wgs84_long[i]),IWXMLHelper.getNodeValue(wgs84_lat[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;event.parameterObject=parameterObject;self.triggerAfterReverseGeocoded(event);}
}
function IWGeocodingEvent(){this.status=null;this.inputAddress=null;this.results=null;this.parameterObject=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 _hitprobability=null;var _quality=null;this.setAddress=function(address){_address=address;};this.getAddress=function(){return _address;};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()+ ',' +'hitprobability:' + _hitprobability + ',' +'quality:' + _quality;};}
function IWReverseGeocodingEvent(){this.status=null;this.inputCoordinate=null;this.results=null;this.parameterObject=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.adjustCenterForTileSize=function(tileSizeInMeter,centerCoordinate){if(_boundsConstraint !=null){var halfMapHeightInMeter=_tileset.getMapHeightForTile(tileSizeInMeter)/2;var halfMapWidthInMeter=_tileset.getMapWidthForTile(tileSizeInMeter)/2;var coordinateNorth=centerCoordinate.getY()+ halfMapHeightInMeter;var coordinateSouth=centerCoordinate.getY()- halfMapHeightInMeter;var coordinateEast=centerCoordinate.getX()+ halfMapWidthInMeter;var coordinateWest=centerCoordinate.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){centerCoordinate=new IWCoordinate(centerCoordinate.getX(),_boundsConstraint.getCenter().getY());}
else if(differenceNorth>0){centerCoordinate=new IWCoordinate(centerCoordinate.getX(),centerCoordinate.getY()- differenceNorth);}
else if(differenceSouth>0){centerCoordinate=new IWCoordinate(centerCoordinate.getX(),centerCoordinate.getY()+ differenceSouth);}
if(differenceEast>0&&differenceWest>0){centerCoordinate=new IWCoordinate(_boundsConstraint.getCenter().getX(),centerCoordinate.getY());}
else if(differenceEast>0){centerCoordinate=new IWCoordinate(centerCoordinate.getX()- differenceEast,centerCoordinate.getY());}
else if(differenceWest>0){centerCoordinate=new IWCoordinate(centerCoordinate.getX()+ differenceWest,centerCoordinate.getY());}
}
return centerCoordinate;};this.adjustCenter=function(centerCoordinate){return this.adjustCenterForTileSize(_tileset.nTilesizeMeter,centerCoordinate);};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.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);


			alert(
				"_dCameraLon " + _dCameraLon + "\n" + 
				"_dCameraLat " + _dCameraLat + "\n" + 
				"_dAlt " + _dAlt + "\n" + 
				"_dElevation " + _dElevation + "\n" + 
				"_iWidth " + _iWidth + "\n" + 
				"_iHeight " + _iHeight + "\n" + 
				"_points[0] " + _points[0] + "\n" + 
				"_points[1] " + _points[1] + "\n" + 
				"_points[2] " + _points[2] + "\n" + 
				"_points[3] " + _points[3] + "\n" +
				"_dFactor " + _dFactor + "\n" + 
				"_offset " + _offset);

		}
		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){this.setBorder=function(x,y){_mapBorder=new IWSize(x,y);this.redraw();};this.getZIndex=function(){return _zIndex;};this.getControlByName=function(name){var control=null;for(var i=0;i<_controls.length;i++){if(_controls[i].getName()==name){control=_controls[i];break;}
}
return control;};this.getControls=function(){return _controls;};this.redraw=function(){resetBorders();for(var i=0;i<_controls.length;i++){calculateControlPosition(_controls[i]);}
};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 !=IWAlignment.TOP&&firstOrientation !=IWAlignment.RIGHT&&firstOrientation !=IWAlignment.BOTTOM&&firstOrientation !=IWAlignment.LEFT&&firstOrientation !=IWAlignment.CENTER){throw('IWLayoutManager:adding control failed:first orientation not valid!');}
if(secondOrientation !=IWAlignment.TOP&&secondOrientation !=IWAlignment.RIGHT&&secondOrientation !=IWAlignment.BOTTOM&&secondOrientation !=IWAlignment.LEFT&&secondOrientation !=IWAlignment.CENTER){throw('IWLayoutManager:adding control failed:second 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());calculateControlPosition(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 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 unit=_container.style.width.replace(/\d/g,'');var width;if(unit=='px'){width=parseInt(_container.style.width);}
else
{width=_container.offsetWidth;}
return width;}
function getMainHeight(){var unit=_container.style.height.replace(/\d/g,'');var height;if(unit=='px'){height=parseInt(_container.style.height);}
else
{height=_container.offsetHeight;}
return height;}
function calculateControlPosition(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:var top=_mapBorder.getHeight()+ control.getPadding().getHeight();var left=_mapBorder.getWidth()+ _top_left.getWidth()+ control.getPadding().getWidth();setPosition(control,top,left)
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:var top=_mapBorder.getHeight()+ control.getPadding().getHeight();var left=getMainWidth()-(_mapBorder.getWidth()+ _top_right.getWidth()+ control.getPadding().getWidth()+controlWidth);setPosition(control,top,left)
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++){var top=_mapBorder.getHeight()+ _center_top[i].getPadding().getHeight();var left=pos + _center_top[i].getPadding().getWidth();setPosition(_center_top[i],top,left)
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:var top=_top_right.getHeight()+ _mapBorder.getHeight()+ control.getPadding().getHeight();var left=getMainWidth()-(_mapBorder.getWidth()+ control.getPadding().getWidth()+controlWidth);setPosition(control,top,left)
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:var top=getMainHeight()-(_bottom_right.getHeight()+_mapBorder.getHeight()+ control.getPadding().getHeight()+ controlHeight);var left=getMainWidth()-(_mapBorder.getWidth()+ control.getPadding().getWidth()+controlWidth);setPosition(control,top,left)
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++){var top=pos + _center_right[i].getPadding().getHeight();var left=getMainWidth()-(_mapBorder.getWidth()+ _center_right[i].getPadding().getWidth()+parseInt(_center_right[i].getContainer().style.width));setPosition(_center_right[i],top,left);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:var top=getMainHeight()-(_mapBorder.getHeight()+ control.getPadding().getHeight()+ controlHeight);var left=_mapBorder.getWidth()+ _bottom_left.getWidth()+ control.getPadding().getWidth();setPosition(control,top,left);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:var top=getMainHeight()-(_mapBorder.getHeight()+ control.getPadding().getHeight()+ controlHeight);var left=getMainWidth()-(_mapBorder.getWidth()+ _bottom_right.getWidth()+ control.getPadding().getWidth()+controlWidth);setPosition(control,top,left);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++){var top=getMainHeight()-(_mapBorder.getHeight()+ _center_bottom[i].getPadding().getHeight()+ parseInt(_center_bottom[i].getContainer().style.height));var left=pos + _center_bottom[i].getPadding().getWidth();setPosition(_center_bottom[i],top,left);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:var top=_top_left.getHeight()+ _mapBorder.getHeight()+ control.getPadding().getHeight();var left=_mapBorder.getWidth()+ control.getPadding().getWidth();setPosition(control,top,left);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:var top=getMainHeight()-(_bottom_left.getHeight()+_mapBorder.getHeight()+ control.getPadding().getHeight()+ controlHeight);var left=_mapBorder.getWidth()+ control.getPadding().getWidth();setPosition(control,top,left);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++){var top=pos + _center_left[i].getPadding().getHeight();var left=_mapBorder.getWidth()+ _center_left[i].getPadding().getWidth();setPosition(_center_left[i],top,left);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());var top=y_center - con_y;var left=x_center - con_x;setPosition(control,top,left);}else{switch(control.getSecondOrientation()){case IWAlignment.TOP:var top=getMainHeight()-(_center_y.getWidth()+ controlHeight + control.getPadding().getHeight());var left=x_center - Math.round(controlWidth/2.0);setPosition(control,top,left);_center_y=new IWSize(_center_y.getWidth()+ controlHeight + control.getPadding().getHeight()*2,_center_y.getHeight());break;case IWAlignment.RIGHT:case IWAlignment.CENTER:var top=y_center - Math.round(controlHeight/2.0);var left=_center_x.getHeight()+ control.getPadding().getWidth();setPosition(control,top,left);_center_x=new IWSize(_center_x.getWidth(),_center_x.getHeight()+ controlWidth + control.getPadding().getWidth()*2);break;case IWAlignment.BOTTOM:var top=_center_y.getHeight()+ control.getPadding().getHeight();var left=x_center - Math.round(controlWidth/2.0);setPosition(control,top,left);_center_y=new IWSize(_center_y.getWidth(),_center_y.getHeight()+ controlHeight + control.getPadding().getHeight()*2);break;case IWAlignment.LEFT:var top=y_center - Math.round(controlHeight/2.0);var left=getMainWidth()-(_center_x.getWidth()+ controlWidth + control.getPadding().getWidth());setPosition(control,top,left);_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!");}
};function setPosition(control,left,top){if(control.isRedrawable()||control.positionedFirstTime==null){control.getContainer().style.top=left+'px';control.getContainer().style.left=top+'px';control.positionedFirstTime=true;}
else
{size=IWDOMHelper.getSize(control.getContainer());var controlWidth=size.getWidth();var controlHeight=size.getHeight();var controlTop=parseInt(control.getContainer().style.top);var controlLeft=parseInt(control.getContainer().style.left);if(controlTop + controlHeight>getMainHeight()){var newTop=getMainHeight()- controlHeight;if(newTop<0)newTop=0;control.getContainer().style.top=newTop + 'px';}
if(controlLeft + controlWidth>getMainWidth()){var newLeft=getMainWidth()- controlWidth;if(newLeft<0)newLeft=0;control.getContainer().style.left=newLeft + 'px';}
}
}
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.getLayers=function(){return _layer;};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 _imgPrintMap=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 sessionKeeper=new IWSessionKeeper();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,_divZoomingAndDragging));}.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.createPrintMap=function(){var mapType=this.getCurrentMapType();var url=mapType.getTilesServerConfig().getNextAlias()+mapType.getTilesServerConfig().getBaseDir()+'/servlet/FrontController?cmd=getPrintMap' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&mapcx=' + this.getCenter().getX()+'&mapcy=' + this.getCenter().getY()+'&mapdx=' + this.getMapWidthInMeter()+'&mapdy=' + this.getMapHeightInMeter()+'&width=' + this.getOptions().getSize().getWidth()+'&height=' + this.getOptions().getSize().getHeight()+'&projc=lcc_europe' +'&maptype=' + mapType.getName()+IWRequestFormatter.getLayerParameter(this.getZoom(),this.getLayers());if(url.length<2000){_imgPrintMap.src=url;}
else
{var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('POST',mapType.getProxyURL()+ '?serverURL=' + escape(url),true);xmlHttp.onreadystatechange=function(){callbackGetPrintMapRequest(xmlHttp);}.iwclosure(this);xmlHttp.send(null);}
};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()
};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){if(mapType==null){_logger.debug('The specified map type is null.');}
else
{if(undoable||typeof undoable=='undefined'){var oldMapType=_tileset.getCurrentMapType();_actionStack.addAction(new IWMapActionTypeChange(oldMapType,mapType));}
_tileset.setMapType(mapType,(this.getCenter()!=null));_logger.debug('New map type is ' + mapType.toString());}
}
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.getLayerByName=function(layerName){for(var i=0;i<_layers.length;i++){if(layerName==_layers[i].getName()){return _layers[i];;}
}
return null;};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.getBoundsConstraintManager=function(){return _tileset.getBoundsConstraintManager();};this.toString=function(){return 'IWMap';};this.triggerOnMouseWheel=function(event){if(!event){event=window.event;}
var delta=0;if(event.wheelDelta){delta=parseInt(event.wheelDelta);if(delta<0){delta=-1;}
else
{delta=1;}
}
else if(event.detail){delta=parseInt(event.detail);if(delta<0){delta=1;}
else
{delta=-1;}
if(window.opera){delta=-delta;}
}
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);};function callbackGetPrintMapRequest(xmlHttp){if(xmlHttp.readyState==4){if(xmlHttp.statusText=='OK'){_imgPrintMap.src=xmlHttp.responseText;}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
}
else
{alert('GetPrintMap failed:' + xmlHttp.statusText);}
}
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)){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);}
else
{dropMap(mouseEvent);}
}
function dropMap(mouseEvent){if(_dragOnMouseMoveListener==null||_dragOnMouseUpListener==null){return;}
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=_options.getSize().getWidth()+ 'px';var newHeight=_options.getSize().getHeight()+ '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';_divLabels.className='iwnoprint';with(_divLabels.style){position='absolute';left='0px';top='0px';zIndex='2';width=newWidth;height=newHeight;}
iw.append(_divLabels,_imgLabels);_imgLabels.id='imgLabels';_imgLabels.className='iwnoprint';with(_imgLabels.style){width=newWidth;height=newHeight;}
_imgLabels.src=iwconst.GLOBAL_APP_URL + 'img/blank.gif';iw.append(_divClipping,_divLabels2);_divLabels2.id='divLabels2';_divLabels2.className='iwnoprint';with(_divLabels2.style){position='absolute';left='0px';top='0px';zIndex='2';width=newWidth;height=newHeight;}
iw.append(_divLabels2,_imgLabels2);_imgLabels2.id='imgLabels2';_imgLabels2.className='iwnoprint';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;}
_imgPrintMap.id='IWPrintMap';_imgPrintMap.className='iwnoscreen';iw.append(_divClipping,_imgPrintMap);_imgPrintMap.src=iwconst.GLOBAL_APP_URL + 'img/blank.gif';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,'onmouseover',function(e){if(_options.getMouseWheelAction()!=IWMapOptions.CONTROL_NONE){window.onmousewheel=document.onmousewheel=function(e){return false;};}
}.iwclosure(self)
);IWEventManager.addDOMListener(_divClipping,'onmouseout',function(e){if(_options.getMouseWheelAction()!=IWMapOptions.CONTROL_NONE){window.onmousewheel=document.onmousewheel=function(e){return true;};}
var mouseEvent=_mouseAdapter.toMouseEvent(e,this.getContainer());if(!_options.getSize().containsPoint(mouseEvent.position)){_dropClosure(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';var containerSize=_options.getSizeInUnit();_container.style.width=containerSize.size.getWidth()+ containerSize.unit;_container.style.height=containerSize.size.getHeight()+ containerSize.unit;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;}
if(_tileset !=null&&_tileset.getCenter()!=null){_tileset.createTiles();_tileset.oZoomObject=new IWZoom(_tileset);_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);var unit=container.style.width.replace(/\d/g,'');if(_options.getSize()==null){if(!isNaN(width)&&!isNaN(height)&&width>0&&height>0){_options.setSize(new IWSize(width,height),unit);}
else
{_options.setSize(new IWSize(600,400),'px');}
}
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("class");}
};this.isPrintable=function(){return _container.className !='iwnoprint';};this.getContainer=function(){return _container;};this.setContainer=function(container){_container=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 _unit='px';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 Array();this.getSize=function(){var retValue=null;if(_size==null){retValue=null;}
else if(_unit=='px'){retValue=_size;}
else
{retValue=calculateSizeInPixel();}
return retValue;};this.getSizeInUnit=function(){var o=new Object();o.size=_size;o.unit=_unit;return o;}
this.getLanguage=function(){return _language;};this.getApplicationCopyright=function(){return _applicationCopyright;};this.setSize=function(size,unit){if(typeof unit=='undefined'){unit='px';}
var event=new IWResizeEvent();event.oldSize=this.getSize();_size=size;_unit=unit;event.newSize=this.getSize();map.triggerAfterResized(event);};this.setMapTypes=function(mapTypes){_mapTypes=mapTypes;var event=new IWMapTypesChangedEvent(_mapTypes)
event.mapTypes=_mapTypes;map.triggerAfterMapTypesChanged(event);};this.getMapTypes=function(){return _mapTypes;};this.getMapTypeByName=function(name){var mapType=null;for(var i=0;i<_mapTypes.length;i++){if(_mapTypes[i].getName()==name){mapType=_mapTypes[i];break;}
}
return mapType;};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.controlMethod=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.controlMethod=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.controlMethod=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.controlMethod=action;map.triggerAfterMouseControlChanged(event);};function parseMapTypes(){var mapTypes=new Array();var records=iwconst.MAPTYPES;for(var i=0;i<records.length;i++){var mapType=new IWMapType(map);mapType.setName(records[i].NAME);mapType.setCopyright(records[i].COPYRIGHT);mapType.setMinLevel(records[i].MINLEVEL);mapType.setPreferredLevel(records[i].PREFERREDLEVEL);mapType.setMaxLevel(records[i].MAXLEVEL);mapType.setProxyURL(records[i].PROXYURL);if(records[i].PROJECTIONTYPE=='parallel'){mapType.setProjection(new IWParallelProjection(map));}
else if(records[i].PROJECTIONTYPE=='central'){mapType.setProjection(new IWCentralProjection(map));}
else
{alert("Projection not set or unknown:" + records[i].PROJECTIONTYPE);}
var tilesServerConfig=new IWServerConfig();tilesServerConfig.setBaseDir(records[i].TILESSERVER.BASE_DIR);tilesServerConfig.setURL(records[i].TILESSERVER.URL);tilesServerConfig.setImageType(records[i].TILESSERVER.IMAGETYPE);tilesServerConfig.setPortList(records[i].TILESSERVER.PORTLIST);tilesServerConfig.setAliases(records[i].TILESSERVER.ALIAS);tilesServerConfig.setCacheEnabled(records[i].TILESSERVER.CACHEENABELD);mapType.setTilesServerConfig(tilesServerConfig);if(records[i].LABELSSERVER){var labelsServerConfig=new IWServerConfig();labelsServerConfig.setBaseDir(records[i].LABELSSERVER.BASE_DIR);labelsServerConfig.setURL(records[i].LABELSSERVER.URL);labelsServerConfig.setImageType(records[i].LABELSSERVER.IMAGETYPE);labelsServerConfig.setPortList(records[i].LABELSSERVER.PORTLIST);labelsServerConfig.setAliases(records[i].LABELSSERVER.ALIAS);labelsServerConfig.setCacheEnabled(records[i].LABELSSERVER.CACHEENABELD);mapType.setLabelsServerConfig(labelsServerConfig);}
mapTypes.push(mapType);}
return mapTypes;}
function calculateSizeInPixel(){var y=map.getContainer().offsetHeight;var x=map.getContainer().offsetWidth;return new IWSize(x,y);}
_mapTypes=parseMapTypes();}
IWMapOptions.CONTROL_NONE=0;IWMapOptions.CONTROL_MOVE=1;IWMapOptions.CONTROL_ZOOM=2;function IWMapType(map){var _map=map;var _name='';var _copyright='';var _direction=0;var _maxLevel=0;var _preferredLevel=0;var _minLevel=0;var _available=false;var _projection=null;var _proxyURL='';var _requestParameters='';var _tilesserverConfig=null;var _labelsserverConfig=null;this.setName=function(name){_name=name;};this.getName=function(){return _name;};this.setCopyright=function(copyright){_copyright=copyright;};this.getCopyright=function(){return _copyright;};this.setMaxLevel=function(maxLevel){_maxLevel=maxLevel;};this.getMaxLevel=function(){return _maxLevel;};this.setPreferredLevel=function(preferredLevel){_preferredLevel=preferredLevel;};this.getPreferredLevel=function(){return _preferredLevel;};this.setMinLevel=function(minLevel){_minLevel=minLevel;};this.getMinLevel=function(){return _minLevel;};this.setProjection=function(projection){_projection=projection;};this.getProjection=function(){return _projection;};this.hasLabels=function(){return(_labelsserverConfig !=null);};this.setRequestParameters=function(requestParameters){_requestParameters=requestParameters;};this.getTilesServerConfig=function(){return _tilesserverConfig;};this.setTilesServerConfig=function(serverConfig){_tilesserverConfig=serverConfig;};this.setLabelsServerConfig=function(serverConfig){_labelsserverConfig=serverConfig;};this.getLabelsServerConfig=function(){return _labelsserverConfig;};this.setProxyURL=function(proxyURL){_proxyURL=proxyURL;};this.getProxyURL=function(){return _proxyURL;};this.getRequestParameters=function(){return _requestParameters;};this.toString=function(){return '[IWMapType]' +'name:' + this.getName()+ ',' +'copyright:' + this.getCopyright()+ ',' +'maxlevel:' + this.getMaxLevel()+ ',' +'preferredlevel:' + this.getPreferredLevel()+ ',' +'minlevel:' + this.getMinLevel()+ ',' +'proxy url:' + this.getProxyURL();};this.isAvailable=function(){return _available;};this.checkAvailableAt=function(coordinate){var url=iwconst.LOCAL_APP_URL +'servlet/FrontController?' +'cmd=checkAvailableAt' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&app=ms' +'&mapcx=' + coordinate.getX()+'&mapcy=' + coordinate.getY()+'maptype=' + _name;var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('GET',_proxyURL + '?serverURL=' + escape(url),true);xmlHttp.onreadystatechange=function(){callbackCheckAvailableAt(xmlHttp,eventName,coordinate);};xmlHttp.send(null);};function callbackCheckAvailableAt(xmlHttp,eventName,coordinate){}
IWEventManager.addListener(_map,'aftermaptypeavailabilitychanged',function(event){if(event.type==_name){_available=event.available;}
}
);}
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.triggerAfterPositionUpdated();};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(){IWEventManager.trigger(this,'afterpositionupdated',null);};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.getOverlayById=function(id){var overlay=null;for(var p in _references){if(_references[p].getId()==id){overlay=_references[p];break;}
}
return overlay;};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)));}
);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(_visible){var isVisibleByRange=false;if(_visibilityRange.getMin()<=_map.getZoom()&&_map.getZoom()<=_visibilityRange.getMax()){isVisibleByRange=true;}
setVisible(isVisibleByRange);}
};this.getVisibilityRange=function(){return _visibilityRange;};this.setVisible=function(visible){_visible=visible;setVisible(_visible);};this.isVisible=function(){return(_container.style.visibility !='hidden');};function setVisible(visible){if(visible==true){_container.style.visibility='inherit';}
else if(visible==false){_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;var _visibility=null;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();_overlayLayers[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 display=_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=display;}
);IWEventManager.addListener(map,'aftercentered',function(e){_visibility=_container.style.visibility;_container.style.visibility='hidden';_self.redraw();_container.style.visibility=_visibility;}
);IWEventManager.addListener(map,'beforezoom',function(){_visibility=_container.style.visibility;_container.style.visibility='hidden';}
);IWEventManager.addListener(map,'afterzoom',function(){_self.redraw();_container.style.visibility=_visibility;}
);IWEventManager.addListener(_map,'afterresized',function(){_visibility=_container.style.visibility;_container.style.visibility='hidden';_self.redraw();_container.style.visibility=_visibility;}
);}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 _iState=IWTile.STATE_WAITING;var _iTimestamp=0;var _cellIndex=cellIndex;var _img=iw.create('img');_img.id='imgTile_' + _cellIndex.getX()+ '_' + _cellIndex.getY();with(_img.style){position='absolute';zIndex='1';left='0px';top='0px';width=IWTile.SIZE;height=IWTile.SIZE;visibility='hidden';}
tileset.getTilesContainer().appendChild(_img);IWEventManager.addDOMListener(_img,'onload',function(){if(_iState==IWTile.STATE_LOADING){_img.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;};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;};this.setState=function(state){_iState=state;};this.hide=function(){if(_img)_img.style.visibility='hidden';};this.move=function(offset){_position=_position.add(offset);_img.style.left=_position.getX()+ 'px';_img.style.top=_position.getY()+ 'px';};this.moveTo=function(position){_position=position;_img.style.left=_position.getX()+ 'px';_img.style.top=_position.getY()+ 'px';};this.load=function(){_img.style.visibility='hidden';var bottomLeftPixel=new IWPoint(_position.getX()+ IWTile.SIZE/2,_position.getY()+ IWTile.SIZE/2);var bottomLeftMeter=_tileset.getCurrentMapType().getProjection().pixelToMeter(bottomLeftPixel);if(iwconst.CACHE_URL_USE=='false'||!_tileset.isCacheEnabled()){var cached=_tileset.isCacheEnabled()? '1':'0';var sCacheParam='&left=' + bottomLeftMeter.getX()+'&bottom=' + bottomLeftMeter.getY()+'&tilemeter=' + _tileset.nTilesizeMeter +'&tile=' + IWTile.SIZE +'&maptype=' + _tileset.getCurrentMapType().getName()+'&cached=' + cached;var config=tileset.getCurrentMapType().getTilesServerConfig();var url=config.getNextAlias()+config.getBaseDir()+'/servlet/FrontController' +'?cmd=getTile' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&app=ms' +'&file=' + _sSource +sCacheParam +szExtraUrlParm;_img.src=url;}
else
{var cacheURL=getTileCacheName(new IWCoordinate(bottomLeftMeter.getX(),bottomLeftMeter.getY()));_img.src=cacheURL + '?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;};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 mapType=tileset.getCurrentMapType().getName();var imageType=tileset.getCurrentMapType().getTilesServerConfig().getImageType();var sRootPath=iwconst.CACHE_CLIENT_URL + mapType + '/' + IWTile.SIZE + '/' + parseInt(dTilesizeMeter);var sCachename=sRootPath + '/' + sPathFile + '.' + imageType;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);IWEventManager.removeListener(_afterResizedListener);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);}
);var _afterResizedListener=IWEventManager.addListener(map,'afterresized',function(){self.redraw();}
);}
function IWWindowOverlayManager(map){var _infoBalloon=null;var _tooltip=null;var _map=map;this.openInfoBalloon=function(coordinate,content){var myContent=null;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());if(_map.getBounds().containsCoordinate(_coordinate)){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);}
}
else
{var pixelCoordinate=_map.fromCoordinateToPixel(_coordinate);var pixelOffsetY=this.getSize().getHeight()/2;var centerX=pixelCoordinate.getX();var centerY=pixelCoordinate.getY()- pixelOffsetY;var pixelCenter=new IWPoint(centerX,centerY);_map.setCenter(_map.fromPixelToCoordinate(pixelCenter));}
};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 _defaultIcon=new IWIcon(iwconst.GLOBAL_APP_URL + 'img/house_blue_30.gif',new IWPoint(15,13),new IWSize(30,26));var _scaleDependentIcons=new Array();var _container=this.getContainer();var _logger=log4javascript.getLogger("overlay.IWMarker");var _iconImage=iw.create('img');this.setDefaultIcon=function(icon){_defaultIcon=icon;if(this.isDisplayed()){loadScaleDependentImage();}
};this.getDefaultIcon=function(){return _defaultIcon;};this.addScaleDependentIcon=function(scaleDependentIcon){_scaleDependentIcons.push(scaleDependentIcon);};this.setScaleDependentIcons=function(scaleDependentIcons){_scaleDependentIcons=scaleDependentIcons;};this.getScaleDependentIcons=function(){return _scaleDependentIcons;};this.afterAppend=function(){iw.append(_container,_iconImage);loadScaleDependentImage();};this.beforeRemove=function(){IWEventManager.clearInstanceListeners(_iconImage);iw.remove(_iconImage);};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 scaleIcon=_scaleDependentIcons[i];if(scaleIcon.getRange().getMin()<=map.getZoom()&&map.getZoom()<=scaleIcon.getRange().getMax()){icon=scaleIcon;break;}
}
var myIcon=(icon !=null ? icon:_defaultIcon);if(_iconImage.src !=myIcon.getURL()){var imageURL=myIcon.getURL();if(myIcon.getSize()!=null){_iconImage.width=myIcon.getSize().getWidth();_iconImage.height=myIcon.getSize().getHeight();}
if(IWBrowser.isInternetExplorer()&&iw.extractFilePath(imageURL).extension=='.png'){_iconImage.onload=function(){correctPNG(_iconImage);};}
else
{_iconImage.onload=null;}
_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 IWRoutingMagnifierFactory(map){var _self=this;var _map=map;var _mapType=_map.getOptions().getMapTypeByName('roadmap');var _zoomLevel=200;this.createRoutingMagnifierContent=function(coordinate){var div=iw.create('div');with(div.style){position='relative';width='230px';height='260px';}
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.getOptions().getMapTypeByName('roadmap');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=_map.getOptions().getMapTypeByName('hybrid');loadRoutingMagnifierImage(img,coordinate,_mapType);}.iwclosure(_self);return div;};function loadRoutingMagnifierImage(img,coordinate,mapType){var config=mapType.getTilesServerConfig();img.src=config.getNextAlias()+config.getBaseDir()+'/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.getName()+IWRequestFormatter.getLayerParameter(_map.getZoom(),_map.getLayers());}
}
function IWProjectionClient(){this.project=function(coordinate,fromProjection,toProjection,parameterObject){var url=iwconst.LOCAL_APP_URL + '/servlet/FrontController' +'?cmd=project' +'&app=ms' +'&VNR=' + IWAccessFilter.getCNR()+'&PNR=' + IWAccessFilter.getPNR()+'&FROM_X=' + coordinate.getX()+'&FROM_Y=' + coordinate.getY()+'&FROM_PROJ=' + fromProjection +'&TO_PROJ=' + toProjection;var xmlHttp=new IWXMLHttpRequest();xmlHttp.open("GET",iwconst.GLOBAL_PROXY_URL + '?serverURL=' + escape(url),true);xmlHttp.onreadystatechange=function(){projectionCallback(this,xmlHttp,coordinate,fromProjection,toProjection,parameterObject);}.iwclosure(this);xmlHttp.send(null);};this.toString=function(){return '[IWProjectionClient]';};this.triggerOnProjection=function(event){IWEventManager.trigger(this,'onprojection',event);};function projectionCallback(self,xmlHttp,inputCoordinate,fromProjection,toProjection,parameterObject){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;event.fromProjection=fromProjection;event.toProjection=toProjection;event.parameterObject=parameterObject;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]);event.outputCoordinate=new IWCoordinate(x,y);}
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.fromProjection=null;this.toProjection=null;this.parameterObject=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')+ ',' +'fromProjection:' + this.fromProjection + ',' +'toProjection:' + this.toProjection;}
else
{s +='errorDescription:' + this.errorDescription;}
return s;};}
var IWProjectionType=new function(){this.WGS84='WGS84';this.LCC_EUROPE='LCC_EUROPE';};function IWRoute(){var _startAddress=null;var _destinationAddress=null;var _interstationAddresses=null;var _entries=new Array();var _drivingTime=0;var _fuelConsumption=0;var _routeLength=0;var _bounds=null;var _shape=''
this.setStartAddress=function(startAddress){_startAddress=startAddress;};this.getStartAddress=function(){return _startAddress;};this.setDestinationAddress=function(destinationAddress){_destinationAddress=destinationAddress;};this.getDestinationAddress=function(){return _destinationAddress;};this.setInterstationAddresses=function(interstationAddresses){_interstationAddresses=interstationAddresses;};this.getInterstationAddresses=function(){return _interstationAddresses;};this.setShape=function(shape){_shape=shape;};this.getShape=function(){return _shape;};this.setBounds=function(bounds){_bounds=bounds;};this.getBounds=function(){return _bounds;};this.setDrivingTime=function(drivingTime){_drivingTime=drivingTime;};this.getDrivingTime=function(){return _drivingTime;};this.setFuelConsumption=function(fuelConsumption){_fuelConsumption=fuelConsumption;};this.getFuelConsumption=function(){return _fuelConsumption;};this.setRouteLength=function(routeLength){_routeLength=routeLength;};this.getRouteLength=function(){return _routeLength;};this.getSegments=function(){return _entries.length;};this.getEntry=function(index){return _entries[index];};this.addEntry=function(entry){_entries.push(entry);};this.toString=function(){return '[IWRoute]';};}
function IWRouteEntry(){var _type='';var _streetType='';var _entryDistance=0;var _totalDistance=0;var _entryTime=0;var _totalTime=0;var _segment='';var _connector='';var _direction='';var _coordinate=null;var _orientation=0;var _roundaboutType='';var _roundaboutNumber='';var _signpost='';this.setType=function(type){_type=type;};this.getType=function(){return _type;};this.setStreetType=function(streetType){_streetType=streetType;};this.getStreetType=function(){return _streetType;};this.setEntryDistance=function(distance){_entryDistance=distance;};this.getEntryDistance=function(){return _entryDistance;};this.setTotalDistance=function(distance){_totalDistance=distance;};this.getTotalDistance=function(){return _totalDistance;};this.setEntryTime=function(time){_entryTime=time;};this.getEntryTime=function(){return _entryTime;};this.setTotalTime=function(time){_totalTime=time;};this.getTotalTime=function(){return _totalTime;};this.setSegment=function(segment){_segment=segment;};this.getSegment=function(){return _segment;};this.setConnector=function(connector){_connector=connector;};this.getConnector=function(){return _connector;};this.setDirection=function(direction){var intValue=parseInt(direction);_direction=direction;};this.getDirection=function(){return _direction;};this.setCoordinate=function(newCoordinate){_coordinate=newCoordinate;}
this.getCoordinate=function(){return _coordinate;};this.setOrientation=function(orientation){_orientation=orientation;}
this.getOrientation=function(){return _orientation;};this.setRoundaboutType=function(type){_roundaboutType=type;}
this.getRoundaboutType=function(){return _roundaboutType;};this.setRoundaboutNumber=function(number){_roundaboutNumber=number;}
this.getRoundaboutNumber=function(){return _roundaboutNumber;};this.setSignPost=function(signpost){_signpost=signpost;}
this.getSignPost=function(){return _signpost;};this.toString=function(){return '[IWRouteEntry]' +'Type:' + _type + ',' +'Street type:' + _streetType + ',' +'Entry distance:' + _entryDistance + ',' +'Total distance:' + _totalDistance + ',' +'Entry Time:' + _entryTime + ',' +'Total Time:' + _totalTime + ',' +'Segment:' + _segment + ',' +'Connector:' + _connector + ',' +'Direction:' + _direction + ',' +'Coordinate:' + _coordinate + ',' +'Orientation:' + _orientation + ',' +'Signpost:' + _signpost;};}
function IWRouteFormatter(route){this.setLanguage=function(language){_language=language;};this.getLanguage=function(){return _language;};this.createSummaryAsHTML=function(){var html='';html +='<p>von\u0020<b>' + formatAddress(_route.getStartAddress())+ '</b>\u0020nach\u0020<b>' + formatAddress(_route.getDestinationAddress())+ '</b><br>';html +=formatMeter(_route.getRouteLength())+ '\u0020-\u0020ca.&nbsp;' + formatTime(_route.getDrivingTime())+ '</p>';return html;};this.createImageAsHTML=function(index){var image='';var defaultImage='';var previousEntry=_route.getEntry(index-1);var entry=_route.getEntry(index);var nextEntry=route.getEntry(index+1);switch(entry.getDirection()){case -3:defaultImage='blue_sharp_left.gif';break;case -2:defaultImage='blue_left.gif';break;case -1:defaultImage='blue_half_left.gif';break;case 0:defaultImage='blue_straight_ahead.gif';break;case 1:defaultImage='blue_half_right.gif';break;case 2:defaultImage='blue_right.gif';break;case 3:defaultImage='blue_sharp_right.gif';break;case 10:defaultImage='blue_destination.gif';break;case 11:defaultImage='blue_roundabout.gif';break;}
if(entry.getConnector()!=''){if(previousEntry.getStreetType()=='highway'){if(entry.getStreetType()=='highway'){image='blue_highway_junction.gif';}
else
{image='blue_highway_exit.gif';}
}
else
{if(entry.getStreetType()=='highway'){image='blue_highway.gif';}
else
{image=defaultImage;}
}
}
else
{image=defaultImage;}
return '<img src="http://gis3.infoware.de/MapAPI-0.73/img/route/' + image + '">';};this.createDistanceAsHTML=function(index){var distance='';var entry=_route.getEntry(index);var nextEntry=_route.getEntry(index+1);if(typeof nextEntry !='undefined'){distance='<b>' + formatMeter(nextEntry.getEntryDistance())+ '</b>&nbsp;<font size=-2>weiter</font><br>';}
distance +='<font size=-2>gesamt&nbsp;' + formatMeter(entry.getTotalDistance())+ '</font>';return distance;};this.createDescriptionAsHTML=function(index){var desc='';var nextEntry=null;var previousEntry=_route.getEntry(index-1);var entry=_route.getEntry(index);var nextEntry=_route.getEntry(index+1);if(index==0){desc='Sie\u0020starten\u0020<b>' + formatDirection(entry)+ '</b>\u0020auf\u0020<b>' + entry.getSegment()+ '</b>\u0020Richtung\u0020';if(entry.getSignPost()!=''){desc +='<b>' + entry.getSignPost()+ '</b>';}
else
{desc +='<b>' + nextEntry.getSegment()+ '</b>';}
}
else
{switch(entry.getDirection()){case -3:if(nextEntry.getStreetType()=='other'){desc='Sharf\u0020links\u0020abbiegen';if(entry.getSegment()!=''){desc +='\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
}
else if(nextEntry.getStreetType()=='interstate'){desc='Sharf\u0020links\u0020abbiegen';if(entry.getSegment()!=''){desc +='\u0020und\u0020<b>' + entry.getSegment()+ '</b>\u0020folgen';}
}
else if(nextEntry.getStreetType()=='highway'){desc='Fahren\u0020Sie\u0020sharf\u0020links\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
break;case -2:if(nextEntry.getStreetType()=='other'){desc='Links\u0020abbiegen';if(entry.getSegment()!=''){desc +='\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
}
else if(nextEntry.getStreetType()=='interstate'){desc='Links\u0020abbiegen';if(entry.getSegment()!=''){desc +='\u0020und\u0020<b>' + entry.getSegment()+ '</b>\u0020folgen';}
}
else if(nextEntry.getStreetType()=='highway'){desc='Fahren\u0020Sie\u0020links\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
break;case -1:if(nextEntry.getStreetType()=='other'){desc='Links\u0020abbiegen';if(entry.getSegment()!=''){desc +='\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
}
else if(nextEntry.getStreetType()=='interstate'){desc='Links\u0020einbiegen';if(entry.getSegment()!=''){desc +='\u0020und\u0020<b>' + entry.getSegment()+ '</b>\u0020folgen';}
}
else if(nextEntry.getStreetType()=='highway'){desc='Fahren\u0020Sie\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
break;case 0:if(entry.getConnector()!=''){if(previousEntry.getStreetType()=='highway'&&entry.getStreetType()=='highway'){desc='Wechseln\u0020Sie\u0020bei\u0020<b>' + entry.getConnector()+ '</b>\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
else if(previousEntry.getStreetType()!='highway'&&entry.getStreetType()=='highway'){desc='Nehmen\u0020Sie\u0020die\u0020Auffahrt\u0020<b>' + entry.getConnector()+ '</b>';}
else if(previousEntry.getStreetType()!='highway'&&entry.getStreetType()!='highway'){desc='Fahren\u0020Sie\u0020weiter\u0020zu\u0020<b>' + entry.getConnector()+ '</b>';}
else
{desc='Nehmen\u0020Sie\u0020die\u0020Ausfahrt\u0020<b>' + entry.getConnector()+ '</b>';}
}
else if(nextEntry.getStreetType()=='other'){desc='Weiter\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
else if(nextEntry.getStreetType()=='interstate'){desc='Geradeaus\u0020und\u0020<b>' + entry.getSegment()+ '</b>\u0020folgen';}
else if(nextEntry.getStreetType()=='highway'){desc='Geradeaus\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
break;case 1:if(entry.getConnector()!=''){if(previousEntry.getStreetType()=='highway'&&entry.getStreetType()=='highway'){desc='Wechseln\u0020Sie\u0020bei\u0020<b>' + entry.getConnector()+ '</b>\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
else if(previousEntry.getStreetType()!='highway'&&entry.getStreetType()=='highway'){desc='Nehmen\u0020Sie\u0020die\u0020Auffahrt\u0020<b>' + entry.getConnector()+ '</b>';}
else if(previousEntry.getStreetType()!='highway'&&entry.getStreetType()!='highway'){desc='Fahren\u0020Sie\u0020weiter\u0020zu\u0020<b>' + entry.getConnector()+ '</b>';}
else
{desc='Nehmen\u0020Sie\u0020die\u0020Ausfahrt\u0020<b>' + entry.getConnector()+ '</b>';}
}
else if(nextEntry.getStreetType()=='other'){desc='Rechts\u0020abbiegen';if(entry.getSegment()!=''){desc +='\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
}
else if(nextEntry.getStreetType()=='interstate'){desc='Rechts\u0020einbiegen';if(entry.getSegment()!=''){desc +='\u0020und\u0020<b>' + entry.getSegment()+ '</b>\u0020folgen';}
}
else if(nextEntry.getStreetType()=='highway'){desc='Fahren\u0020Sie\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
break;case 2:if(entry.getConnector()!=''){if(previousEntry.getStreetType()=='highway'&&entry.getStreetType()=='highway'){desc='Wechseln\u0020Sie\u0020bei\u0020<b>' + entry.getConnector()+ '</b>\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
else if(previousEntry.getStreetType()!='highway'&&entry.getStreetType()=='highway'){desc='Nehmen\u0020Sie\u0020die\u0020Auffahrt\u0020<b>' + entry.getConnector()+ '</b>';}
else if(previousEntry.getStreetType()!='highway'&&entry.getStreetType()!='highway'){desc='Fahren\u0020Sie\u0020weiter\u0020zu\u0020<b>' + entry.getConnector()+ '</b>';}
else
{desc='Nehmen\u0020Sie\u0020die\u0020Ausfahrt\u0020<b>' + entry.getConnector()+ '</b>';}
}
else if(nextEntry.getStreetType()=='other'){desc='Rechts\u0020abbiegen';if(entry.getSegment()!=''){desc+='\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
}
else if(nextEntry.getStreetType()=='interstate'){desc='Rechts\u0020abbiegen';if(entry.getSegment()!=''){desc +='\u0020und\u0020<b>' + entry.getSegment()+ '</b>\u0020folgen';}
}
else if(nextEntry.getStreetType()=='highway'){desc='Fahren\u0020Sie\u0020rechts\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
break;case 3:if(entry.getConnector()!=''){if(previousEntry.getStreetType()=='highway'&&entry.getStreetType()=='highway'){desc='Wechseln\u0020Sie\u0020bei\u0020<b>' + entry.getConnector()+ '</b>\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
else if(previousEntry.getStreetType()!='highway'&&entry.getStreetType()=='highway'){desc='Nehmen\u0020Sie\u0020die\u0020Auffahrt\u0020<b>' + entry.getConnector()+ '</b>';}
else if(previousEntry.getStreetType()!='highway'&&entry.getStreetType()!='highway'){desc='Fahren\u0020Sie\u0020weiter\u0020zu\u0020<b>' + entry.getConnector()+ '</b>';}
else
{desc='Nehmen\u0020Sie\u0020die\u0020Ausfahrt\u0020<b>' + entry.getConnector()+ '</b>';}
}
else if(nextEntry.getStreetType()=='other'){desc='Sharf\u0020rechts\u0020abbiegen';if(entry.getSegment()!=''){desc+='\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
}
else if(nextEntry.getStreetType()=='interstate'){desc='Sharf\u0020rechts\u0020abbiegen';if(entry.getSegment()!=''){desc +='\u0020und\u0020<b>' + entry.getSegment()+ '</b>\u0020folgen';}
}
else if(nextEntry.getStreetType()=='highway'){desc='Fahren\u0020Sie\u0020sharf\u0020rechts\u0020auf\u0020<b>' + entry.getSegment()+ '</b>';}
break;case 10:var address=null;if(typeof nextEntry=='undefined'){address=route.getDestinationAddress();}
else
{var n=0;for(var i=index-1;i>=0;i--){if(route.getEntry(i).getDirection()==10){n++;}
}
address=route.getInterstationAddresses()[n];}
desc='Nach\u0020ca.\u0020' + formatMeter(entry.getEntryDistance())+ '\u0020haben\u0020Sie\u0020Ihr\u0020Ziel,\u0020<b>' + formatAddress(address)+ '</b>\u0020erreicht.';break;case 11:desc='Im\u0020Kreisverkehr\u0020<b>' + entry.getSegment()+ '</b>\u0020die\u0020<b>' + formatNumberAsString(entry.getRoundaboutNumber())+ '</b>\u0020Ausfahrt\u0020nehmen';break;}
if(entry.getDirection()!=10&&entry.getSignPost()!=''){desc +='\u0020Richtung\u0020<b>' + entry.getSignPost()+ '</b>';}
if(typeof nextEntry !='undefined'){var time=formatTime(nextEntry.getEntryTime());if(time){desc +='<br>Ca.&nbsp;' + time;}
}
}
return desc;};function formatAddress(address){var addr='';if(address.getStreet()){addr +=address.getStreet();if(address.hasHouseNumber()){addr +='&nbsp;' + address.getHouseNumber();}
addr +=',\u0020';}
if(address.getZipCode()){addr +=address.getZipCode()+ '&nbsp;';}
addr +=address.getCity();return addr;}
function getDirectionCode(entry){var g=entry.getDirection();if((g>=337.5&&g<=0)||(g>=0&&g<=22.5))return 1;else if(g>=22.5&&g<=67.5)return 2;else if(g>=67.5&&g<=112.5)return 3;else if(g>=112.5&&g<=157.5)return 4;else if(g>=157.5&&g<=202.5)return 5;else if(g>=202.5&&g<=247.5)return 6;else if(g>=247.5&&g<=292.5)return 7;else if(g>=292.5&&g<=337.5)return 8;}
function formatDirection(entry){var direction='';var code=getDirectionCode(entry);if(_language.toLowerCase()=='de'){switch(code){case 1:direction='n&ouml;rdlich';break;case 2:direction='nord&ouml;stlich';break;case 3:direction='&ouml;stlich';break;case 4:direction='s&uuml;d&ouml;stlich';break;case 5:direction='s&uuml;dlich';break;case 6:direction='s&uuml;dwestlich';break;case 7:direction='westlich';break;case 8:direction='nordwestlich';break;}
}
return direction;}
function formatTime(seconds){var time='';var minutes=Math.round(seconds/60);var hours=Math.floor(minutes/60);var minutesAfterHours=minutes -(hours*60);if(hours==1){time='1&nbsp;Stunde';}
else if(hours>1){time=hours + '&nbsp;Stunden';}
if(minutes==0){time='';}
else if(minutes==1){time='1&nbsp;Minute';}
else if(minutes<60){time=minutes + '&nbsp;Minuten';}
else
{time +=',&nbsp;' + minutesAfterHours + '&nbsp;Minuten';}
return time;}
function formatMeter(meter){var distance='';if(meter<100){distance=(Math.round(meter/10)*10)+ '&nbsp;m';}
else
{distance=(Math.round(meter/100)/10)+ '&nbsp;km';}
return distance;}
function formatNumberAsString(number){var string='';if(number==1){string='erste';}
else if(number==2){string='zweite';}
else if(number==3){string='dritte';}
else if(number==4){string='vierte';}
else
{string=number;}
return string;}
var _language='de';var _route=route;}
function IWRouteOptions(){this.TYPE_SPEED='SPEED';this.TYPE_LENGTH='LENGTH';this.TYPE_ECONOMY='ECONOMY';var _type=this.TYPE_SPEED;var _citySpeed=30;var _countryRoadSpeed=70;var _highwaySpeed=130;var _language='en';var _shapeEnabled=true;this.setShapeEnabled=function(shapeEnabled){if(shapeEnabled==true||shapeEnabled==false){_shapeEnabled=shapeEnabled;}
};this.isShapeEnabled=function(){return _shapeEnabled;};this.setType=function(type){if(type==this.TYPE_SPEED||type==this.TYPE_LENGTH||type==this.TYPE_ECONOMY){_type=type;}
else
{throw 'Unkown type:' + type + '.';}
};this.getType=function(){return _type;};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 type:' + _type + ',' +'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 IWRoutingClient(){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.getLCC().getX());params=params.concat('&Y1=').concat(start.getLCC().getY());params=params.concat('&X2=').concat(destination.getLCC().getX());params=params.concat('&Y2=').concat(destination.getLCC().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].getLCC().getX());params=params.concat('&IY').concat(n).concat('=').concat(interstations[i].getLCC().getY());}
}
if(_routeOptions !=null){params=params.concat('&LANG=').concat(_routeOptions.getLanguage());params=params.concat('&TYPE=').concat(_routeOptions.getType());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',iwconst.GLOBAL_PROXY_URL + '?serverURL=' + escape(url),true);xmlHttp.onreadystatechange=function(){routeCallback(this,xmlHttp,start,destination,interstations);}.iwclosure(this);xmlHttp.send(null);};this.toString=function(){return '[IWRoutingClient]' +(_routeOptions !=null ? _routeOptions.toString():'null');};this.triggerAfterRouted=function(event){IWEventManager.trigger(this,'afterrouted',event);};function routeCallback(self,xmlHttp,start,destination,interstations){if(xmlHttp.readyState==4){if(xmlHttp.statusText=='OK'){if(xmlHttp.responseText.length>0){var json=eval(xmlHttp.responseText);var route=new IWRoute();route.setStartAddress(start);route.setDestinationAddress(destination);route.setInterstationAddresses(interstations);route.setShape(json.route.shape);var coordNW=new IWCoordinate(json.route.boundsNW.split(";")[0],json.route.boundsNW.split(";")[1]);var coordSE=new IWCoordinate(json.route.boundsSE.split(";")[0],json.route.boundsSE.split(";")[1]);route.setBounds(new IWBounds(coordNW,coordSE));route.setDrivingTime(json.route.drivingTime);route.setFuelConsumption(json.route.fuelConsumption);route.setRouteLength(json.route.routeLength*1000);var entries=json.route.entries;for(var i=0;i<entries.length;i++){var e=entries[i];var entry=new IWRouteEntry();entry.setType(e.type);entry.setStreetType(e.streettype);entry.setEntryDistance(parseInt(e.entryDistance));entry.setTotalDistance(parseInt(e.totalDistance));entry.setEntryTime(parseInt(e.entryTime));entry.setTotalTime(parseInt(e.totalTime));entry.setSegment(e.segment);entry.setConnector(e.connector);entry.setDirection(parseInt(e.direction));entry.setCoordinate(new IWCoordinate(e.coordinateX,e.coordinateY));entry.setOrientation(parseInt(e.orientation));entry.setRoundaboutType(e.roundaboutType);entry.setRoundaboutNumber(e.roundaboutNumber);entry.setSignPost(e.signpost);route.addEntry(entry);}
}
else
{alert('Response text is empty.');}
}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
else
{alert('Sorry,routing failed!\n\nThe following error occurred:' + 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.route=route;self.triggerAfterRouted(event);}
}
function IWRoutingEvent(){this.status=null;this.bounds=null;this.shape='';this.route=null;this.parameterObject=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.getShapes=function(){return _shapes;};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 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 +=''+layer.getLayerName()+','+layer.getCurrentShapeName(_map.getZoom());if(_requestLayers[i].getMaximumHits()!=null){layernames +=','+_requestLayers[i].getMaximumHits();}
layernames +=';';idflayernames=idflayernames.concat('&idflayer' + idfIndex + '=' + layer.getIdfLayerName());}
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' +'&layers=' + layernames +idflayernames;var method='GET';if(url.length>2000){method='POST';}
var xmlHttp=new IWXMLHttpRequest();xmlHttp.open(method,iwconst.GLOBAL_PROXY_URL + '?serverURL=' + escape(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.setShapeName=function(shapeName){_shapeName=shapeName;};this.getShapeName=function(){return _shapeName;};this.setRange=function(range){_range=range;};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 IWGraphics(containerDiv){var svg_support=!!window.devicePixelRatio||(typeof SVGAngle=="object"||(document&&document.implementation&&document.implementation.hasFeature("org.w3c.dom.svg","1.0")));/*@cc_on @*//*@if(@_jscript_version>=5.5)var vml_support=true;@else @*/var vml_support=false;/*@end @*/var renderer=null;if(svg_support){renderer=new IWSVGRenderer(containerDiv);}
else if(vml_support){renderer=new IWVMLRenderer(containerDiv);}
else
{alert('Sorry,your Browser cannot show vector graphics!');}
return renderer;}
function IWGraphicsRenderer(containerDiv){this.getContainer=function(){return _container;}
this.removeElement=function(element){element.parentNode.removeChild(element);};this.moveToTop=function(element){element.parentNode.appendChild(element);};this.moveToBottom=function(element){element.parentNode.insertBefore(element,element.parentNode.firstChild);};this.clearContainer=function(){alert('IWGraphicsRenderer.clearContainer()not implemented!');};this.move=function(element,position1,position2){alert('IWGraphicsRenderer.move()not implemented!');};this.getPosition=function(element){alert('IWGraphicsRenderer.getPosition()not implemented!');}
this.drawLine=function(point1,point2,width,color){alert('IWGraphicsRenderer.drawLine()not implemented!');};this.drawEllipse=function(point,size,width,lineColor,fillColor){alert('IWGraphicsRenderer.drawEllipse()not implemented!');};this.drawRectangle=function(point,size,width,lineColor,fillColor){alert('IWGraphicsRenderer.drawRectangle()not implemented!');};var _container=containerDiv;_container.style.overflow='hidden';}
function IWSVGRenderer(containerDiv){IWGraphicsRenderer.call(this,containerDiv);this.clearContainer=function(){if(_svgContainer.hasChildNodes()){while(_svgContainer.childNodes.length>0){this.removeElement(_svgContainer.firstChild);}
}
};this.drawLine=function(point1,point2,width,lineColor){var line=_container.ownerDocument.createElementNS('http://www.w3.org/2000/svg','line');line.style.position='absolute';line.setAttributeNS(null,'x1',point1.getX()+ 'px');line.setAttributeNS(null,'y1',point1.getY()+ 'px');line.setAttributeNS(null,'x2',point2.getX()+ 'px');line.setAttributeNS(null,'y2',point2.getY()+ 'px');setLineAttributes(line,width,lineColor);_svgContainer.appendChild(line);return line;};this.drawEllipse=function(point,size,width,lineColor,fillColor){var ellipse=_container.ownerDocument.createElementNS('http://www.w3.org/2000/svg','ellipse');ellipse.style.position='absolute';ellipse.setAttributeNS(null,'cx',point.getX()+ 'px');ellipse.setAttributeNS(null,'cy',point.getY()+ 'px');ellipse.setAttributeNS(null,'rx',size.getWidth()+ 'px');ellipse.setAttributeNS(null,'ry',size.getHeight()+ 'px');setLineAttributes(ellipse,width,lineColor);setFillAttributes(ellipse,fillColor);_svgContainer.appendChild(ellipse);return ellipse;};this.drawRectangle=function(point,size,width,lineColor,fillColor){var rect=_container.ownerDocument.createElementNS('http://www.w3.org/2000/svg','rect');rect.style.position='absolute';rect.setAttributeNS(null,'x',point.getX()+ 'px');rect.setAttributeNS(null,'y',point.getY()+ 'px');rect.setAttributeNS(null,'width',size.getWidth()+ 'px');rect.setAttributeNS(null,'height',size.getHeight()+ 'px');setLineAttributes(rect,width,lineColor);setFillAttributes(rect,fillColor);_svgContainer.appendChild(rect);return rect;};this.move=function(element,position1,position2){if(element.tagName=='line'){if(typeof position2=='undefined'){return;}
element.setAttributeNS(null,'x1',position1.getX()+'px');element.setAttributeNS(null,'y1',position1.getY()+'px');element.setAttributeNS(null,'x2',position2.getX()+'px');element.setAttributeNS(null,'y2',position2.getY()+'px');}
else if(element.tagName=='ellipse'){element.setAttributeNS(null,'cx',position1.getX()+'px');element.setAttributeNS(null,'cy',position1.getY()+'px');}
else
{element.setAttributeNS(null,'x',position1.getX()+'px');element.setAttributeNS(null,'y',position1.getY()+'px');}
};this.getPosition=function(element){if(element.tagName=='line'){return;}
else if(element.tagName=='ellipse'){return new IWPoint(parseInt(element.getAttributeNS(null,'cx')),parseInt(element.getAttributeNS(null,'cy')));}
else
{return new IWPoint(parseInt(element.getAttributeNS(null,'x')),parseInt(element.getAttributeNS(null,'y')));}
};function setLineAttributes(element,width,lineColor){if(typeof lineColor=='undefined'){lineColor='none';}
element.setAttributeNS(null,'stroke',lineColor);element.setAttributeNS(null,'stroke-width',width);}
function setFillAttributes(element,fillColor){if(typeof fillColor=='undefined'){fillColor='none';}
element.setAttributeNS(null,'fill',fillColor);}
var _this=this;var _container=this.getContainer();var _svgContainer=null;_svgContainer=document.createElementNS('http://www.w3.org/2000/svg',"svg");_container.appendChild(_svgContainer);}


/*
function IWVMLRenderer(b){IWGraphicsRenderer.call(this,b);var c=log4javascript.getLogger("IWVMLRenderer");this.clearContainer=function(){c.info("Calling clearContainer");if(b.hasChildNodes()){while(b.childNodes.length>0){this.removeElement(b.firstChild)}}};this.drawLine=function(j,h,i,k){c.info("Calling drawLine with "+j+", "+h+", "+i+", "+k);if(i>=15){i-=5}else{if(i>=10){i-=4}else{if(i>=7){i-=3}else{if(i>=4){i-=2}else{if(i==3){i-=1}}}}}var g=b.ownerDocument.createElement("v:line");g.id="line";g.style.position="absolute";g.from=j.getX()+"px,"+j.getY()+"px";g.to=h.getX()+"px,"+h.getY()+"px";f(g,i,k);b.appendChild(g);e();return g};this.drawPolyline=function(i,h,j,k){c.info("Calling drawPolyline with "+i.length+" points.");var g=b.ownerDocument.createElement("v:polyline");g.id="line";g.style.position="absolute";g.points=i;d(g,k);f(g,h,j);b.appendChild(g);e();return g};this.drawCircle=function(h,g,j,k,m){c.info("Calling drawCircle with "+h+", "+g+", "+j+", "+k+", "+m);var i=b.ownerDocument.createElement("v:oval");i.style.top=h.getY()-g;i.style.left=h.getX()-g;i.style.width=g*2;i.style.height=g*2;d(i,m);f(i,j,k);b.appendChild(i);e();return i};this.drawEllipse=function(g,i,j,k,m){c.info("Calling drawEllipse with "+g+", "+i+", "+j+", "+k+", "+m);var h=b.ownerDocument.createElement("v:oval");h.id="ellipse";h.style.position="absolute";h.style.top=g.getY()-i.getHeight();h.style.left=g.getX()-i.getWidth();h.style.width=i.getWidth()*2;h.style.height=i.getHeight()*2;d(h,m);f(h,j,k);b.appendChild(h);e();return h};this.drawRectangle=function(g,i,j,k,m){c.info("Calling drawRectangle with "+g+", "+i+", "+j+", "+k+", "+m);var h=b.ownerDocument.createElement("v:rect");h.id="rect";h.style.position="absolute";h.style.top=g.getY();h.style.left=g.getX();h.style.width=i.getWidth();h.style.height=i.getHeight();d(h,m);f(h,j,k);b.appendChild(h);e();return h};this.drawRoundedRectangle=function(h,g,j,k,m,n){c.info("Calling drawRoundedRectangle with "+h+", "+g+", "+j+", "+k+", "+m+", "+n);var i=b.ownerDocument.createElement("v:roundrect");i.id="roundrect";i.style.position="absolute";i.style.top=h.getY();i.style.left=h.getX();i.style.width=j.getWidth();i.style.height=j.getHeight();i.arcsize=((g/j.getHeight())*100)+"%";d(i,n);f(i,k,m);b.appendChild(i);e();return i};this.drawPolygon=function(i,h,j,k){c.info("Calling drawPolygon with "+i.length+" points.");var g=b.ownerDocument.createElement("v:polyline");g.id="polygon";g.style.position="absolute";g.points=i+" "+i.split(" ")[0];d(g,k);f(g,h,j);b.appendChild(g);e();return g};this.move=function(i,h,g){if(i.tagName=="line"){if(typeof g=="undefined"){return}i.from=h.getX()+"px,"+h.getY()+"px";i.to=g.getX()+"px,"+g.getY()+"px"}else{if(i.tagName=="oval"){i.style.left=h.getX()-parseInt(i.style.width)/2+"px";i.style.top=h.getY()-parseInt(i.style.height)/2+"px"}else{i.style.left=h.getX()+"px";i.style.top=h.getY()+"px"}}};this.getPosition=function(g){if(g.tagName=="line"){return}else{if(g.tagName=="oval"){return new IWPoint(parseInt(g.style.left)+parseInt(g.style.width)/2,parseInt(g.style.top)+parseInt(g.style.height)/2)}else{return new IWPoint(parseInt(g.style.left),parseInt(g.style.top))}}};function f(g,h,i){if(typeof i!="undefined"){g.stroked="true";g.strokecolor=i;g.strokeweight=h+"pt"}else{g.stroked="false"}}function d(g,h){if(typeof h!="undefined"){g.filled="true";g.fillcolor=h}else{g.filled="false"}}function a(){document.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML");try{var h=document.createStyleSheet();h.addRule("v\\:shape","behavior:url(#default#VML); display:inline-block; antialias:true");h.addRule("v\\:group","behavior:url(#default#VML); display:inline-block; antialias:true");h.addRule("v\\:polyline","behavior:url(#default#VML); display:inline-block; antialias:true");h.addRule("v\\:stroke","behavior:url(#default#VML); display:inline-block; antialias:true");h.addRule("v\\:fill","behavior:url(#default#VML); display:inline-block; antialias:true");h.addRule("v\\:rect","behavior:url(#default#VML); display:inline-block; antialias:true");h.addRule("v\\:oval","behavior:url(#default#VML); display:inline-block; antialias:true");h.addRule("v\\:line","behavior:url(#default#VML); display:inline-block; antialias:true");h.addRule("v\\:roundrect","behavior:url(#default#VML); display:inline-block; antialias:true");document.namespaces.add("v","#default#VML")}catch(g){}IWVMLRenderer.isInitialized=true}
function e(){var g=new IWXMLHttpRequest();try{g.open("GET","",true);g.send(null)}catch(h){}}if(!IWVMLRenderer.isInitialized){a()}}IWVMLRenderer.isInitialized=false;
*/



function IWVMLRenderer(b){IWGraphicsRenderer.call(this,b);var c=log4javascript.getLogger("IWVMLRenderer");this.clearContainer=function(){c.info("Calling clearContainer");if(b.hasChildNodes()){while(b.childNodes.length>0){this.removeElement(b.firstChild)}}};this.drawLine=function(i,g,h,j){c.info("Calling drawLine with "+i+", "+g+", "+h+", "+j);if(h>=15){h-=5}else{if(h>=10){h-=4}else{if(h>=7){h-=3}else{if(h>=4){h-=2}else{if(h==3){h-=1}}}}}var f=b.ownerDocument.createElement("v:line");f.id="line";f.style.position="absolute";f.from=parseInt(i.getX())+"px,"+parseInt(i.getY())+"px";f.to=parseInt(g.getX())+"px,"+parseInt(g.getY())+"px";e(f,h,j);b.appendChild(f);return f};this.drawPolyline=function(h,g,i,j){c.info("Calling drawPolyline with "+h.length+" points.");var f=b.ownerDocument.createElement("v:polyline");f.id="line";f.style.position="absolute";f.points=h;d(f,j);e(f,g,i);b.appendChild(f);return f};this.drawCircle=function(g,f,i,j,k){c.info("Calling drawCircle with "+g+", "+f+", "+i+", "+j+", "+k);var h=b.ownerDocument.createElement("v:oval");h.id="circle";h.style.position="absolute";h.style.top=(g.getY()-f)+"px";h.style.left=(g.getX()-f)+"px";h.style.width=(2*f)+"px";h.style.height=(2*f)+"px";d(h,k);e(h,i,j);b.appendChild(h);return h};this.drawEllipse=function(f,h,i,j,k){c.info("Calling drawEllipse with "+f+", "+h+", "+i+", "+j+", "+k);var g=b.ownerDocument.createElement("v:oval");g.id="ellipse";g.style.position="absolute";g.style.top=(f.getY()-h.getHeight())+"px";g.style.left=(f.getX()-h.getWidth())+"px";g.style.width=(2*h.getWidth())+"px";g.style.height=(2*h.getHeight())+"px";d(g,k);e(g,i,j);b.appendChild(g);return g};this.drawRectangle=function(f,h,i,j,k){c.info("Calling drawRectangle with "+f+", "+h+", "+i+", "+j+", "+k);var g=b.ownerDocument.createElement("v:rect");g.id="rect";g.style.position="absolute";g.style.top=f.getY();g.style.left=f.getX();g.style.width=h.getWidth();g.style.height=h.getHeight();d(g,k);e(g,i,j);b.appendChild(g);return g};this.drawRoundedRectangle=function(g,f,i,j,k,m){c.info("Calling drawRoundedRectangle with "+g+", "+f+", "+i+", "+j+", "+k+", "+m);var h=b.ownerDocument.createElement("v:roundrect");h.id="roundrect";h.style.position="absolute";h.style.top=g.getY();h.style.left=g.getX();h.style.width=i.getWidth();h.style.height=i.getHeight();h.arcsize=((f/i.getHeight())*100)+"%";d(h,m);e(h,j,k);return h};this.drawPolygon=function(h,g,i,j){c.info("Calling drawPolygon with "+h.length+" points.");var f=b.ownerDocument.createElement("v:polyline");b.appendChild(f);f.id="polygon";f.style.position="absolute";f.points=h+" "+h.split(" ")[0];d(f,j);e(f,g,i);b.appendChild(f);return f};this.move=function(h,g,f){if(h.tagName=="line"){if(typeof f=="undefined"){return}h.from=g.getX()+"px,"+g.getY()+"px";h.to=f.getX()+"px,"+f.getY()+"px"}else{if(h.tagName=="oval"){h.style.left=g.getX()-parseInt(h.style.width)/2+"px";h.style.top=g.getY()-parseInt(h.style.height)/2+"px"}else{h.style.left=g.getX()+"px";h.style.top=g.getY()+"px"}}};this.getPosition=function(f){if(f.tagName=="line"){return}else{if(f.tagName=="oval"){return new IWPoint(parseInt(f.style.left)+parseInt(f.style.width)/2,parseInt(f.style.top)+parseInt(f.style.height)/2)}else{return new IWPoin(parseInt(f.style.left),parseInt(f.style.top))}}};function e(f,g,h){if(typeof h!="undefined"){f.stroked="true";f.strokecolor=h;f.strokeweight=g+"px"}else{f.stroked="false"}}function d(f,g){if(typeof g!="undefined"){f.filled="true";f.fillcolor=g}else{f.filled="false"}}function a(){try{var g=document.createStyleSheet();g.addRule("v\\:rect","behavior:url(#default#VML); display:inline-block; antialias:true");g.addRule("v\\:roundrect","behavior:url(#default#VML); display:inline-block; antialias:true");g.addRule("v\\:oval","behavior:url(#default#VML); display:inline-block; antialias:true");g.addRule("v\\:line","behavior:url(#default#VML); display:inline-block; antialias:true");g.addRule("v\\:polyline","behavior:url(#default#VML); display:inline-block; antialias:true");document.namespaces.add("v","#default#VML")}catch(f){}IWVMLRenderer.isInitialized=true}if(!IWVMLRenderer.isInitialized){a()}}IWVMLRenderer.isInitialized=false;





/*
function IWVMLRenderer(containerDiv){IWGraphicsRenderer.call(this,containerDiv);this.clearContainer=function(){if(_container.hasChildNodes()){while(_container.childNodes.length>0){this.removeElement(_container.firstChild);}
}
};this.drawLine=function(point1,point2,width,lineColor){if(width>=15)width -=5;else if(width>=10)width -=4;else if(width>=7)width -=3;else if(width>=4)width -=2;else if(width==3)width -=1;var line=_container.ownerDocument.createElement('v:line');line.style.position='absolute';line.setAttribute('from',point1.getX()+ 'px,' + point1.getY()+ 'px');line.setAttribute('to',point2.getX()+ 'px,' + point2.getY()+ 'px');setLineAttributes(line,width,lineColor);_container.appendChild(line);reload();return line;};this.drawEllipse=function(point,size,width,lineColor,fillColor){var ellipse=_container.ownerDocument.createElement('v:oval');ellipse.style.position='absolute';ellipse.style.top=point.getY()- size.getHeight();ellipse.style.left=point.getX()- size.getWidth();ellipse.style.width=size.getWidth()*2;ellipse.style.height=size.getHeight()*2;setFillAttributes(ellipse,fillColor);setLineAttributes(ellipse,width,lineColor);_container.appendChild(ellipse);reload();return ellipse;};this.drawRectangle=function(point,size,width,lineColor,fillColor){var rect=_container.ownerDocument.createElement('v:rect');rect.style.position='absolute';rect.style.top=point.getY();rect.style.left=point.getX();rect.style.width=size.getWidth();rect.style.height=size.getHeight();setFillAttributes(rect,fillColor);setLineAttributes(rect,width,lineColor);_container.appendChild(rect);reload();return rect;};this.move=function(element,position1,position2){if(element.tagName=='line'){if(typeof position2=='undefined'){return;}
element.setAttribute('from',position1.getX()+ 'px,' + position1.getY()+ 'px');element.setAttribute('to',position2.getX()+ 'px,' + position2.getY()+ 'px');}
else if(element.tagName=='oval'){element.style.left=position1.getX()- parseInt(element.style.width)/2+'px';element.style.top=position1.getY()- parseInt(element.style.height)/2+'px';}
else
{element.style.left=position1.getX()+'px';element.style.top=position1.getY()+'px';}
};this.getPosition=function(element){if(element.tagName=='line'){return;}
else if(element.tagName=='oval'){return new IWPoint(parseInt(element.style.left)+ parseInt(element.style.width)/2,parseInt(element.style.top)+ parseInt(element.style.height)/2);}
else
{return new IWPoint(parseInt(element.style.left),parseInt(element.style.top));}
};function setLineAttributes(element,width,lineColor){if(typeof lineColor !='undefined'){element.setAttribute('stroked','true');element.setAttribute('strokecolor',lineColor);element.setAttribute('strokeweight',width+'pt');}
else
{element.setAttribute('stroked','false');}
}
function setFillAttributes(element,fillColor){if(typeof fillColor !='undefined'){element.setAttribute('filled','true');element.setAttribute('fillcolor',fillColor);}
else
{element.setAttribute('filled','false');}
}
function initialize(){document.namespaces.add("v","urn:schemas-microsoft-com:vml");var style=document.createStyleSheet();style.addRule('v\\:*',"behavior:url(#default#VML);");IWVMLRenderer.isInitialized=true;}

function reload(){var xmlHttp=new IWXMLHttpRequest();try{xmlHttp.open('GET','',true);xmlHttp.send(null);}
catch(exception){}
}
var _this=this;var _container=this.getContainer();if(!IWVMLRenderer.isInitialized){initialize();}
}
IWVMLRenderer.isInitialized=false;
*/





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 imgZoomTile=_imageArea.getImageList().pop();iw.destroy(imgZoomTile);}
}
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().adjustCenterForTileSize(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 imgZoomTile=_imageArea.getImageList()[i];iw.append(_zoomImagesContainer,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 imgTile=null;var imgTileId='imgTile_'+((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==imgTileId){imgTile=tilesetContainer.childNodes[pos];break;}
}
var imgZoomTile=iw.create('img');imgZoomTile.id='z' + imgTile.id;imgZoomTile.src=imgTile.src;imgZoomTile.style.position='absolute';_imageList.push(imgZoomTile);}
}
}
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 image=getImage(i);image.style.top=zoomImageList[i].getLeftTop().getY()+ 'px';image.style.left=zoomImageList[i].getLeftTop().getX()+ 'px';image.style.width=zoomImageList[i].getSize().getWidth()+ 'px';image.style.height=zoomImageList[i].getSize().getHeight()+ 'px';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 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=8;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 _cacheEnabled=false;var _firstLoad=true;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.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();}
if(_firstLoad){_firstLoad=false;var event=new IWMapInitializedEvent();_map.triggerAfterInitialized(event);}
}
);function slide(offset,coord){var moveEvent=new IWMoveEvent();moveEvent.position=null;moveEvent.lastPosition=null;moveEvent.offset=offset;_map.triggerBeforeMove(moveEvent);window.clearTimeout(_slideTimeout);slideStep(offset,0,0,0,coord);}
function slideStep(offset,nStep,nRestX,nRestY,coord){_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,coord);},40);}
else
{if(coord !=null){self.setCenter(coord,false);}
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,self.getCurrentMapType());_bMovementNeedsReload=false;}
}
}
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,maptype){_center=center;_logger.debug('The new map center is ' + _center.toString());if(bRefresh){this.Hide();this.PlaceTiles();this.LoadWholeMap(maptype);}
};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,coord);}
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;}
var offsetX=Math.abs(offset.getX());var offsetY=Math.abs(offset.getY())
if(offsetX>3000||offsetY>3000){alert("panBy " + offset + " is not allowed. The offset must not exceed a maximum of 3000 x 3000 pixel.");return;}
var width=_map.getOptions().getSize().getWidth();var height=_map.getOptions().getSize().getHeight();if(offsetX<=width*0.5&&offsetY<=height*0.5){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.getMinLevel(),false);}
else if(iCurrentZoom<=mapType.getMaxLevel()){this.setZoomLevel(mapType.getMaxLevel(),false);}
if(bRefresh){this.Hide();this.PlaceTiles();this.LoadWholeMap(oldMapType);}
};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.adjustCenterForTileSize(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.adjustCenterForTileSize(tileSizeInMeter,this.getCenter());}
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');_divTileMap.className='iwnoprint';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';_imgCountClicks.width='0px';_imgCountClicks.height='0px';_imgCountClicks.style.position='absolute';_imgCountClicks.style.top='0px';_imgCountClicks.style.left='0px';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,sectionURL,bounds){var oRequest=new Object();oRequest.sURL=sectionURL;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(oldMapType){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.getName()+_mapType.getRequestParameters();try{xmlHttp.open('GET',iwconst.GLOBAL_GETMAPTYPES_URL + '?serverURL=' + escape(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);if(oldMapType){var event=new IWMapTypeChangedEvent();event.newMapType=_mapType;event.oldMapType=oldMapType;_map.triggerAfterMapTypeChanged(event);}
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);_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,url,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,url,new IWBounds(upperLeft,lowerRight));};this.isVisibleSectionLoaded=function(){return(_visibleSectionCounter==0);};this.GetTileImageName=function(nTimestamp,nRow,nCol){return "Tile_" + _map.getSessionId()+ "_" + nTimestamp + "_" + nRow + "_" + nCol + '.' + _mapType.getTilesServerConfig().getImageType();};this.move=function(offset){if(this.oZoomObject.hasZoomContainer()||!_boundsConstraintManager.isMoveAllowed(offset)){return false;}
var offsetX=offset.getX();var offsetY=offset.getY();_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);var projection=_map.getCurrentMapType().getProjection();_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 url=createSectionURL(nSectionLeftCol,this.FindTopRow(),nBorderNum,_tilesAxis.getHeight(),nTimestamp,'r',false);this.SendPrepareTilesRequest(nTimestamp,url,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++;}
};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.adjustCenterForTileSize(iwconst.A_TILESIZE_METER[zoomlevel],this.getCenter());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.getTilesServerConfig().getImageType()+'&maptype=' + _mapType.getName()+_mapType.getRequestParameters()+szExtraUrlParm +'&load=' +(isWholeMap ? 'map':'strip');return _mapType.getProxyURL()+ '?serverURL=' + escape(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.adjustCenter(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 config=_mapType.getLabelsServerConfig();var url=config.getNextAlias()+config.getBaseDir()+'/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.getName()+'&randomKey=' + iw.random(0,1000000000);szExtraUrlParm;var img=iw.search(map.getContainer(),_imgLabelsName);if(url.length<2000){img.src=url;}
else
{var xmlHttp=new IWXMLHttpRequest();xmlHttp.open('POST',iwconst.GLOBAL_PROXY_URL + '?serverURL=' + escape(url),true);xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){if(xmlHttp.statusText=='OK'){if(xmlHttp.responseText.length>0){img.src=xmlHttp.responseText;}
else
{alert('GetLabel post request failed:Response text is empty.');}
}
else if(xmlHttp.status==401){alert(xmlHttp.statusText);}
}
else
{alert('GetLabel post request failed:' + xmlHttp.statusText);}
};xmlHttp.send(null);}
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.getName()
+ 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.getName()
+ "&overview=0"
+ "&session=" + map.getSessionId()
+ szExtraUrlParm
+ _mapType.getRequestParameters();_imgCountClicks.src=sURL;}
}
this.isCacheEnabled=function(){return _cacheEnabled;};this.setCacheEnabled=function(enabled){_cacheEnabled=enabled;};_boundsConstraintManager=new IWBoundsConstraintManager(this);var mapType=_map.getOptions().getMapTypeByName("roadmap");this.setMapType(mapType,false);this.oAsynchroneTransferObject=new IWAsynchroneTransferObject(this,N_MAX_REQUESTS);IWEventManager.addListener(this.oAsynchroneTransferObject,'aftermaptypeavailabilitychanged',function(e){_map.triggerAfterMapTypeAvailabilityChanged(e);self.setCacheEnabled(e.cache);}
);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 @*/}
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;}
