if(!(window["Map24"] instanceof Function)){window["Map24"] =function(){};Map24.VERSION ="2.3.1";Map24.DISABLE_WORDBOOK =false;Map24._AppKeyConfig ={};Map24.DEFAULT_APPKEY =null;Map24.SPACER_URL =null;Map24.LIB_PACKAGES =[];Map24.OnLoadCallback =null;Map24.loadFailed =function(msg ){};Map24.forName ={};Map24._DebugLoading =false;Map24._DebugLoadingApiStop =false;Map24._DebugLoadVersion =null;Map24._DebugLoadingApiRecall =null;Map24.onLoad =function(){setTimeout(Map24._async_onLoad,1);}
Map24._async_onLoad =function(){var item =Map24.LIB_PACKAGES.shift();if(item ){Map24._include(item.Url );}else {Map24.preClassCreation();Map24.Xsd.Type.createClasses();Map24.Soap.Message.createClasses();Map24.postClassCreation();Map24.OnLoadCallback[1].call(Map24.OnLoadCallback[0]);}
}
Map24._Includes =[];Map24._async_include =function(){var url =Map24._Includes.shift();if(!url )return;var script =document.createElement('script');script.defer ="defer";script.src =url;script.type="text/javascript";script.charset ="utf-8";var opera =false;try {document.getElementsByTagName('HEAD')[0].appendChild(script);}catch(e){opera =true;}
if(opera ){document.appendChild(script);}
}
Map24._include =function(url ){Map24._Includes[Map24._Includes.length] =url;setTimeout(Map24._async_include,1);}
Map24.loadApi =function(lib_packages,callback,version,params ){if(Map24._DebugLoadingApiStop ){Map24._DebugLoadingApiRecall =[lib_packages,callback,version,params];return;}
if(typeof lib_packages=="string" )lib_packages =[lib_packages];if(!(lib_packages instanceof Array))throw "Map24.loadApi: Invalid 'lib_packages' parameter, should be of type string or array!";if(!(params instanceof Object))params ={};if(typeof callback=="function" )callback =[window,callback];if(!(callback instanceof Array)&&typeof callback[1]!="function" )throw "Map24.loadApi: Invalid 'callback' supplied!";Map24.OnLoadCallback =callback;var appkey =Map24._AppKeyConfig[ Map24.DEFAULT_APPKEY ];var default_appkey =appkey;if(params["AppKey"] ){appkey =Map24._AppKeyConfig[ params["AppKey"] ];if(!appkey ){appkey =new Map24.AppKeyConfig({Id:params["AppKey"]});if(default_appkey )for(var key in default_appkey )appkey[key] =default_appkey[key];appkey.Id =params["AppKey"];Map24._AppKeyConfig[ appkey.Id ] =appkey;}
}
if(typeof version=="string" )appkey.Version =version;if(typeof Map24._DebugLoadVersion=="string" )appkey.Version =Map24._DebugLoadVersion;var no_service_mode =null;var obfuscate =true;var gzip =true;var no_test_lib =false;if(params instanceof Object ){if(typeof params["gzip"]=="boolean" )gzip =params.gzip;if(typeof params["obfuscate"]=="boolean" )obfuscate =params.obfuscate;if(typeof params["NOSERVICELOAD"]=="boolean" &&params.NOSERVICELOAD )no_service_mode =true;if(typeof params["NOTESTLIB"]=="boolean" &&params.NOTESTLIB )no_test_lib =true;if(typeof params["BASE_URL"]=="string" )appkey.AjaxBaseUrl =params.BASE_URL;if(typeof params["WEBSERVICES_BASE_URL"]=="string" )appkey.WebServicesBaseUrl =params.WEBSERVICES_BASE_URL;if(typeof params["MAPTP_HOST"]=="string" )appkey.MapTpHost =params.MAPTP_HOST;if(typeof params["XSLT_BASE_URL"]=="string" )appkey.XsltUri =params.XSLT_BASE_URL;if(typeof params["IMAGES_BASE_URL"]=="string" )appkey.ImagesBaseUrl =params.IMAGES_BASE_URL;if(typeof params["PROTOCOL"]=="string" )appkey.Protocol =params.PROTOCOL;}
try {if(navigator.userAgent.match(new RegExp("MSIE"))){var ie_rexp =new RegExp("MSIE ([0-9])\\.([0-9])([0-9]{0,1})");var ie_res =ie_rexp.exec(navigator.userAgent );if((ie_res instanceof Array)&&(ie_res.length>=2)){if(ie_res[1]<6 )gzip =false;else
if(ie_res[1]==6 ){ie_rexp =new RegExp("(SV1)");ie_res =ie_rexp.exec(navigator.userAgent );if(!(ie_res instanceof Array)||(ie_res.length<2)||(ie_res[1]!="SV1")){gzip =false;}}
}
}
}catch(e){}
if(!appkey.WebServicesBaseUrl )appkey.WebServicesBaseUrl =appkey.Protocol +"://" +appkey.MapTpHost+"/map24/webservices1.5";if(!appkey.ImagesBaseUrl ){if(appkey.AjaxBaseUrl.charAt(appkey.AjaxBaseUrl.length-1)=="/" ){appkey.ImagesBaseUrl =appkey.AjaxBaseUrl+"images/";}else {appkey.ImagesBaseUrl =appkey.WebServicesBaseUrl+"?action=demo&image=../../ajax/"+appkey.Version+"/images/";}
}
if(!appkey.XsltBaseUri )appkey.XsltBaseUri ="ajax/";if(!appkey.XsltUri )appkey.XsltUri =appkey.XsltBaseUri+appkey.Version+"/";if(params["AppKey"] )Map24.setDefaultAppKey(appkey);if(!no_test_lib )try {var doc_url =decodeURIComponent(top.document.URL);var patch_lib_regexp =new RegExp("(.*?)map24:test_lib=([0-9._ystrue]*)","i");var lib_patch =patch_lib_regexp.exec(doc_url );if((lib_patch instanceof Array)&&(lib_patch.length >=2)&&(typeof lib_patch[2]=="string")&&(lib_patch[2].length>=1)){lib_packages.unshift("test_lib" );}
}catch(e){}
var lib_url =null;var service_load =null;var lib_url_regex =new RegExp("^[a-z0-9]+://","i");for(var i=0;i<lib_packages.length;i++){lib_url =lib_packages[i];if(typeof lib_url !="string")throw "Map24.loadApi: Invalid 'lib_packages' parameter!";if(lib_url.match(lib_url_regex)){}else
{if(no_service_mode==null ){if(appkey.AjaxBaseUrl.charAt(appkey.AjaxBaseUrl.length -1 )=="/" )service_load =false;else
service_load =true;}else
service_load =!no_service_mode;if(service_load ){lib_url =appkey.AjaxBaseUrl+"?action=ajax_load_part"+"&v="+appkey.Version+"&name="+lib_packages[i]+"&gzip="+(gzip?"1":"0")+"&obfuscate="+(obfuscate?"1":"0");}else
{lib_url =appkey.AjaxBaseUrl+"api/"+lib_packages[i]+(obfuscate?"_obfuscated":"")+".js";}
}
Map24.LIB_PACKAGES[Map24.LIB_PACKAGES.length++] ={Url:lib_url };}
Map24.onLoad();}
Map24.setDefaultAppKey =function(appkey ){if(!(appkey instanceof Map24.AppKeyConfig))throw "Invalid application key supplied, no instance of Map24.AppKeyConfig!";Map24.VERSION =appkey.Version;Map24.DEFAULT_APPKEY =appkey.Id;Map24.MAPTP_HOST =appkey.MapTpHost;Map24.BASE_URL =appkey.AjaxBaseUrl;Map24.WEBSERVICES_BASE_URL =appkey.WebServicesBaseUrl;Map24.IMAGES_BASE_URL =appkey.ImagesBaseUrl;Map24.SPACER_URL =Map24.IMAGES_BASE_URL +"core_api/space.gif";Map24.XSLT_BASE_URL =appkey.XsltUri;}
}
Map24.$init =function(){var default_appkey ="CJX6212ed726b45ca5fa98c87904916aX44";var version ="2.3.1.4817";var ajax_base_url ="http://maptp44.map24.com/ajax";var webservices_base_url ="http://maptp44.map24.com/map24/webservices1.5";var maptp_host ="maptp44.map24.com";var xslt_base_uri ="ajax/";var appkey =null;if(default_appkey !=("$"+"{AJAX_DEFAULT_APPKEY}")){appkey =new Map24.AppKeyConfig({Id:default_appkey,Version:version,MapTpHost:maptp_host,AjaxBaseUrl:ajax_base_url,WebServicesBaseUrl:webservices_base_url,ImagesBaseUrl:webservices_base_url+"?action=demo&image=../../ajax/"+version+"/images/",XsltBaseUri:xslt_base_uri,XsltUri:xslt_base_uri +version +"/"
});if(webservices_base_url.match("^https:")){appkey.Protocol ="https";Map24.AppKeyConfig.prototype.Protocol ="https";}
Map24._AppKeyConfig[ appkey.Id ] =appkey;}
if(appkey &&!Map24.DEFAULT_APPKEY )Map24.setDefaultAppKey(appkey );if(appkey &&!Map24._DebugLoading ){var doc_url =null;var version =null;try {doc_url =decodeURIComponent(top.document.URL);var patch_version_regexp =new RegExp("(.*?)map24:version=([a-z0-9._]*)","i");var ver_patch =patch_version_regexp.exec(doc_url );if((ver_patch instanceof Array)&&(ver_patch.length >=2)&&(typeof ver_patch[2]=="string")&&(ver_patch[2].length>=3)){version =ver_patch[2];}
}catch(e){}
if(version!=null ){Map24._DebugLoading =true;Map24._DebugLoadingApiStop =true;Map24._DebugLoadVersion =version;Map24._include(appkey.AjaxBaseUrl+"?appkey="+appkey+"&v="+version );}
}else if(Map24._DebugLoading ){Map24._DebugLoadingApiStop =false;if(Map24._DebugLoadingApiRecall!=null ){var args =Map24._DebugLoadingApiRecall;Map24._DebugLoadingApiRecall =null;Map24.loadApi(args[0],args[1],args[2],args[3] );}
}
};Map24.AppKeyConfig =function(default_args ){if(typeof default_args=="boolean" &&default_args==false )return;if(default_args!=null &&(default_args instanceof Object)){for(var key in default_args )this[key] =default_args[key];}
if(!this.Id )throw new Map24.Exception.InvalidArgument("Invalid creation of appkey, please use the static Map24.AppKeyConfig.get method!",this,"Map24.AppKeyConfig","constructor");Map24._AppKeyConfig[ this.Id ] =this;}
Map24.AppKeyConfig.prototype ={};Map24.AppKeyConfig.prototype.Super ={};Map24.AppKeyConfig.prototype.constructor =Map24.AppKeyConfig;Map24.AppKeyConfig.prototype.Class ="AppKeyConfig";Map24.AppKeyConfig.prototype.Package ="Map24";Map24.AppKeyConfig.prototype.ClassId ="Map24.AppKeyConfig";Map24.forName["Map24.AppKeyConfig"] =Map24.AppKeyConfig;Map24.AppKeyConfig.get =function(appkey,create ){if(appkey==null ){if(Map24.DEFAULT_APPKEY )return Map24._AppKeyConfig[ Map24.DEFAULT_APPKEY ];return null;}
if(Map24._AppKeyConfig[appkey] )return Map24._AppKeyConfig[appkey];if(create &&Map24.DEFAULT_APPKEY ){var default_config =Map24._AppKeyConfig[ Map24.DEFAULT_APPKEY ];if(default_config ){var new_cfg =new Map24.AppKeyConfig({Id:appkey});for(var key in default_config )new_cfg[key] =default_config[key];return new_cfg;}
}
return null;}
Map24.AppKeyConfig.prototype.Id =null;Map24.AppKeyConfig.prototype.AjaxBaseUrl =null;Map24.AppKeyConfig.prototype.ImagesBaseUrl =null;Map24.AppKeyConfig.prototype.WebServicesBaseUrl =null;Map24.AppKeyConfig.prototype.MapTpHost =null;Map24.AppKeyConfig.prototype.RandomHosts =null;Map24.AppKeyConfig.prototype.Protocol ="http";Map24.AppKeyConfig.prototype.Version =null;Map24.AppKeyConfig.prototype.XsltBaseUri =null;Map24.AppKeyConfig.prototype.XsltUri =null;Map24.AppKeyConfig.prototype.fromSaltToPrefix =function(hostname,salt ){if(typeof salt=="number" )salt =""+salt;if(typeof salt!="string" )salt =Date.now()+"_"+Math.random();return Map24.hash(salt ).toLowerCase();}
Map24.AppKeyConfig.prototype.getRandomHost =function(hostname,salt ){if(!(this.RandomHosts instanceof Array)||this.RandomHosts.length==0 )return hostname;if(typeof hostname!="string" )hostname =this.MapTpHost;for(var i=0;i <this.RandomHosts.length;i+=2 ){if(hostname.match(this.RandomHosts[i] )){var m =this.RandomHosts[i].exec(hostname );if(!(m instanceof Array)||(m.length <=0))return hostname;var key =this.RandomHosts[i+1].replace("${PREFIX}",this.fromSaltToPrefix(hostname,salt));for(var j=1;j <m.length;j++){key =key.replace("${1}",m[1].replace("$","$$"));}
return key;}
}
return hostname;}
Map24.AppKeyConfig.prototype.getRandomMapTpHost =function(salt ){if(!(this.RandomHosts instanceof Array)||this.RandomHosts.length==0 )return this.MapTpHost;return this.getRandomHost(this.MapTpHost,salt);};Map24.AppKeyConfig.prototype.getRandomWebServicesUrl =function(salt ){if(!(this.RandomHosts instanceof Array)||this.RandomHosts.length==0 )return this.WebServicesBaseUrl;var url =new Map24.Url(this.WebServicesBaseUrl );return this.WebServicesBaseUrl.replace(url.Host,this.getRandomHost(url.Host,salt));};Map24.AppKeyConfig.prototype.getRandomImageUrl =function(salt ){if(!(this.RandomHosts instanceof Array)||this.RandomHosts.length==0 )return this.ImagesBaseUrl;var url =new Map24.Url(this.ImagesBaseUrl );return this.ImagesBaseUrl.replace(url.Host,this.getRandomHost(url.Host,salt));};Map24.$init();
