/**
*	Copyright (C)2009 Mapsolute GmbH
*	All rights reserved
*	Filesize: 361685 byte
*/
function Callable(obj,method,arg_defaults,arg_names){
this.__constructor=function(obj,method,arg_defaults,arg_names){
if(typeof obj=="undefined")obj=null;if((obj!=null)&&!(obj instanceof Object))throw new Map24.Exceptions.InvalidArgument("The given parameter 'obj' is no object and not null!",obj,"Callable","__constructor");if(typeof method!="function")throw new Map24.Exceptions.InvalidArgument("The given parameter 'method' is no function!",method,"Callable","__constructor");if((typeof arg_defaults=="undefined")||(arg_defaults==null))
arg_defaults=new Array();if(!(arg_defaults instanceof Array)){
if((arg_defaults instanceof Object)&&((typeof arg_names=="undefined")||(arg_names==null)))
{
arg_names=Map24.arrayKeys(arg_defaults);arg_defaults=Map24.arrayValues(arg_defaults);}else
throw new Map24.Exceptions.InvalidArgument("The given parameter 'arg_defaults' is no array and not null!",arg_defaults,"Callable","__constructor");}
if((typeof arg_names=="undefined")||(arg_names==null))
arg_names=new Array();if(!(arg_names instanceof Array))throw new Map24.Exceptions.InvalidArgument("The given parameter 'arg_names' is no array and not null!",arg_names,"Callable","__constructor");if(arg_defaults.length<arg_names.length)
for(var i=arg_defaults.length;i<arg_names.length;i++)
arg_defaults.push(null);this.Instance=obj;this.Method=method;this.ArgumentNames=arg_names;this.ArgumentDefaults=arg_defaults;}
this.invokeEx=function(args){
if((typeof args=="undefined")||(args==null))args={};if(!(args instanceof Object))throw new Map24.Exceptions.InvalidArgument("The given parameter 'args' is no hashtable and not null!",args,"Callable","invoke");var argList=Map24.clone(this.ArgumentDefaults);if(args instanceof Array){
for(var i=0;i<args.length;i++){
if(i<argList.length)
argList[i]=args[i];else
argList.push(args[i]);}
}else{
var argsSet={};var argName="";for(var i=0;i<this.ArgumentNames.length;i++){
argName=this.ArgumentNames[i];if(typeof args[argName]!="undefined"){
argList[i]=args[argName];argsSet[argName]=true;}
}
for(argName in args){
if(typeof argsSet[argName]=="undefined")
argList.push(args[argName]);}
}
if(this.Instance==null)
return Map24.invokeEx(this.Method,argList);else
return Map24.invokeEx(new Array(this.Instance,this.Method),argList);}
this.invoke=function(){
var args=new Array();for(var i=0;i<arguments.length;i++)args.push(arguments[i]);return this.invokeEx(args);}
this.forkEx=function(args){
if((typeof args=="undefined")||(args==null))args={};if(!(args instanceof Object))throw new Map24.Exceptions.InvalidArgument("The given parameter 'args' is no hashtable and not null!",args,"Callable","invoke");var argList=Map24.clone(this.ArgumentDefaults);if(args instanceof Array){
for(var i=0;i<args.length;i++){
if(i<argList.length)
argList[i]=args[i];else
argList.push(args[i]);}
}else{
var argsSet={};var argName="";for(var i=0;i<this.ArgumentNames.length;i++){
argName=this.ArgumentNames[i];if(typeof args[argName]!="undefined"){
argList[i]=args[argName];argsSet[argName]=true;}
}
for(argName in args){
if(typeof argsSet[argName]=="undefined")argList.push(args[argName]);}
}
if(this.Instance==null)
return Map24.forkEx(this.Method,argList);else
return Map24.forkEx(new Array(this.Instance,this.Method),argList);}
this.fork=function(){
var args=new Array();for(var i=0;i<arguments.length;i++)args.push(arguments[i]);return this.forkEx(args);}
this.__constructor(obj,method,arg_defaults,arg_names);this.setTimeoutEx=function(timeout,args){
if((typeof args=="undefined")||(args==null))args=new Array();if(!(args instanceof Array))throw new Map24.Exceptions.InvalidArgument("The given parameter 'args' is invalid, no array and not null",args,"Callable","setTimeoutEx");if(typeof timeout=="undefined")timeout=1;if(typeof timeout=="string")timeout=parseInt(timeout);if(!Map24.isNumeric(timeout)||timeout<=0)throw new Map24.Exceptions.InvalidArgument("The given timeout is invalid, no number or less then 1",timeout,"Callable","setTimeoutEx");var id=Map24.makeUniqueId();Callable._TimeoutList[id]=this;Callable._TimeoutArgs[id]=args;setTimeout("Callable._timeoutHandler(\""+id+"\")",timeout);return true;}
this.setTimeout=function(timeout){
var args=new Array();for(var i=1;i<arguments.length;i++)args.push(arguments[i]);return this.setTimeoutEx(timeout,args);}
}
Callable._TimeoutList=new Hashtable();Callable._TimeoutArgs=new Hashtable();Callable._timeoutHandler=function(item_id){
if(typeof item_id!="string")return;var callable=Callable._TimeoutList[item_id];if(callable instanceof Callable){
var callable_args=Callable._TimeoutArgs[item_id];delete Callable._TimeoutList[item_id];delete Callable._TimeoutArgs[item_id];callable.invokeEx(callable_args);}
}
function Hashtable(){}
function md5(msg)
{
var l,s,k,ka,kb,kc,kd;md5_init();for(k=0;k<msg.length;k++){
l=msg.charAt(k);md5_update(md5_ascii.lastIndexOf(l));}
md5_finish();ka=kb=kc=kd=0;for(i=0;i<4;i++)ka+=md5_shl(md5_digestBits[15-i],(i*8));for(i=4;i<8;i++)kb+=md5_shl(md5_digestBits[15-i],((i-4)*8));for(i=8;i<12;i++)kc+=md5_shl(md5_digestBits[15-i],((i-8)*8));for(i=12;i<16;i++)kd+=md5_shl(md5_digestBits[15-i],((i-12)*8));s=md5_hexa(kd)+md5_hexa(kc)+md5_hexa(kb)+md5_hexa(ka);return s;}
function md5_array(n){
for(i=0;i<n;i++)this[i]=0;this.length=n;}
function md5_integer(n){return n%(0xffffffff+1);}
function md5_shr(a,b){
a=md5_integer(a);b=md5_integer(b);if(a-0x80000000>=0){
a=a%0x80000000;a>>=b;a+=0x40000000>>(b-1);}else
a>>=b;return a;}
function md5_shl1(a){
a=a%0x80000000;if(a&0x40000000==0x40000000)
{
a-=0x40000000;a*=2;a+=0x80000000;}else
a*=2;return a;}
function md5_shl(a,b){
a=md5_integer(a);b=md5_integer(b);for(var i=0;i<b;i++)a=md5_shl1(a);return a;}
function md5_and(a,b){
a=md5_integer(a);b=md5_integer(b);var t1=(a-0x80000000);var t2=(b-0x80000000);if(t1>=0)
if(t2>=0)
return((t1&t2)+0x80000000);else
return(t1&b);else
if(t2>=0)
return(a&t2);else
return(a&b);}
function md5_or(a,b){
a=md5_integer(a);b=md5_integer(b);var t1=(a-0x80000000);var t2=(b-0x80000000);if(t1>=0)
if(t2>=0)
return((t1|t2)+0x80000000);else
return((t1|b)+0x80000000);else
if(t2>=0)
return((a|t2)+0x80000000);else
return(a|b);}
function md5_xor(a,b){
a=md5_integer(a);b=md5_integer(b);var t1=(a-0x80000000);var t2=(b-0x80000000);if(t1>=0)
if(t2>=0)
return(t1^t2);else
return((t1^b)+0x80000000);else
if(t2>=0)
return((a^t2)+0x80000000);else
return(a^b);}
function md5_not(a){
a=md5_integer(a);return(0xffffffff-a);}
var md5_state=new md5_array(4);var md5_count=new md5_array(2);md5_count[0]=0;md5_count[1]=0;var md5_buffer=new md5_array(64);var md5_transformBuffer=new md5_array(16);var md5_digestBits=new md5_array(16);var md5_S11=7;var md5_S12=12;var md5_S13=17;var md5_S14=22;var md5_S21=5;var md5_S22=9;var md5_S23=14;var md5_S24=20;var md5_S31=4;var md5_S32=11;var md5_S33=16;var md5_S34=23;var md5_S41=6;var md5_S42=10;var md5_S43=15;var md5_S44=21;function md5_F(x,y,z){
return md5_or(md5_and(x,y),md5_and(md5_not(x),z));}
function md5_G(x,y,z){
return md5_or(md5_and(x,z),md5_and(y,md5_not(z)));}
function md5_H(x,y,z){
return md5_xor(md5_xor(x,y),z);}
function md5_I(x,y,z){
return md5_xor(y,md5_or(x,md5_not(z)));}
function md5_rotateLeft(a,n){
return md5_or(md5_shl(a,n),(md5_shr(a,(32 - n))));}
function md5_FF(a,b,c,d,x,s,ac){
a=a+md5_F(b,c,d)+ x + ac;a=md5_rotateLeft(a,s);a=a+b;return a;}
function md5_GG(a,b,c,d,x,s,ac){
a=a+md5_G(b,c,d)+x + ac;a=md5_rotateLeft(a,s);a=a+b;return a;}
function md5_HH(a,b,c,d,x,s,ac){
a=a+md5_H(b,c,d)+ x + ac;a=md5_rotateLeft(a,s);a=a+b;return a;}
function md5_II(a,b,c,d,x,s,ac){
a=a+md5_I(b,c,d)+ x + ac;a=md5_rotateLeft(a,s);a=a+b;return a;}
function md5_transform(buf,offset){
var a=0,b=0,c=0,d=0;var x=md5_transformBuffer;a=md5_state[0];b=md5_state[1];c=md5_state[2];d=md5_state[3];for(i=0;i<16;i++){
x[i]=md5_and(buf[i*4+offset],0xff);for(j=1;j<4;j++){
x[i]+=md5_shl(md5_and(buf[i*4+j+offset],0xff),j * 8);}
}
a=md5_FF(a,b,c,d,x[ 0],md5_S11,0xd76aa478);d=md5_FF(d,a,b,c,x[ 1],md5_S12,0xe8c7b756);c=md5_FF(c,d,a,b,x[ 2],md5_S13,0x242070db);b=md5_FF(b,c,d,a,x[ 3],md5_S14,0xc1bdceee);a=md5_FF(a,b,c,d,x[ 4],md5_S11,0xf57c0faf);d=md5_FF(d,a,b,c,x[ 5],md5_S12,0x4787c62a);c=md5_FF(c,d,a,b,x[ 6],md5_S13,0xa8304613);b=md5_FF(b,c,d,a,x[ 7],md5_S14,0xfd469501);a=md5_FF(a,b,c,d,x[ 8],md5_S11,0x698098d8);d=md5_FF(d,a,b,c,x[ 9],md5_S12,0x8b44f7af);c=md5_FF(c,d,a,b,x[10],md5_S13,0xffff5bb1);b=md5_FF(b,c,d,a,x[11],md5_S14,0x895cd7be);a=md5_FF(a,b,c,d,x[12],md5_S11,0x6b901122);d=md5_FF(d,a,b,c,x[13],md5_S12,0xfd987193);c=md5_FF(c,d,a,b,x[14],md5_S13,0xa679438e);b=md5_FF(b,c,d,a,x[15],md5_S14,0x49b40821);a=md5_GG(a,b,c,d,x[ 1],md5_S21,0xf61e2562);d=md5_GG(d,a,b,c,x[ 6],md5_S22,0xc040b340);c=md5_GG(c,d,a,b,x[11],md5_S23,0x265e5a51);b=md5_GG(b,c,d,a,x[ 0],md5_S24,0xe9b6c7aa);a=md5_GG(a,b,c,d,x[ 5],md5_S21,0xd62f105d);d=md5_GG(d,a,b,c,x[10],md5_S22,0x2441453);c=md5_GG(c,d,a,b,x[15],md5_S23,0xd8a1e681);b=md5_GG(b,c,d,a,x[ 4],md5_S24,0xe7d3fbc8);a=md5_GG(a,b,c,d,x[ 9],md5_S21,0x21e1cde6);d=md5_GG(d,a,b,c,x[14],md5_S22,0xc33707d6);c=md5_GG(c,d,a,b,x[ 3],md5_S23,0xf4d50d87);b=md5_GG(b,c,d,a,x[ 8],md5_S24,0x455a14ed);a=md5_GG(a,b,c,d,x[13],md5_S21,0xa9e3e905);d=md5_GG(d,a,b,c,x[ 2],md5_S22,0xfcefa3f8);c=md5_GG(c,d,a,b,x[ 7],md5_S23,0x676f02d9);b=md5_GG(b,c,d,a,x[12],md5_S24,0x8d2a4c8a);a=md5_HH(a,b,c,d,x[ 5],md5_S31,0xfffa3942);d=md5_HH(d,a,b,c,x[ 8],md5_S32,0x8771f681);c=md5_HH(c,d,a,b,x[11],md5_S33,0x6d9d6122);b=md5_HH(b,c,d,a,x[14],md5_S34,0xfde5380c);a=md5_HH(a,b,c,d,x[ 1],md5_S31,0xa4beea44);d=md5_HH(d,a,b,c,x[ 4],md5_S32,0x4bdecfa9);c=md5_HH(c,d,a,b,x[ 7],md5_S33,0xf6bb4b60);b=md5_HH(b,c,d,a,x[10],md5_S34,0xbebfbc70);a=md5_HH(a,b,c,d,x[13],md5_S31,0x289b7ec6);d=md5_HH(d,a,b,c,x[ 0],md5_S32,0xeaa127fa);c=md5_HH(c,d,a,b,x[ 3],md5_S33,0xd4ef3085);b=md5_HH(b,c,d,a,x[ 6],md5_S34,0x4881d05);a=md5_HH(a,b,c,d,x[ 9],md5_S31,0xd9d4d039);d=md5_HH(d,a,b,c,x[12],md5_S32,0xe6db99e5);c=md5_HH(c,d,a,b,x[15],md5_S33,0x1fa27cf8);b=md5_HH(b,c,d,a,x[ 2],md5_S34,0xc4ac5665);a=md5_II(a,b,c,d,x[ 0],md5_S41,0xf4292244);d=md5_II(d,a,b,c,x[ 7],md5_S42,0x432aff97);c=md5_II(c,d,a,b,x[14],md5_S43,0xab9423a7);b=md5_II(b,c,d,a,x[ 5],md5_S44,0xfc93a039);a=md5_II(a,b,c,d,x[12],md5_S41,0x655b59c3);d=md5_II(d,a,b,c,x[ 3],md5_S42,0x8f0ccc92);c=md5_II(c,d,a,b,x[10],md5_S43,0xffeff47d);b=md5_II(b,c,d,a,x[ 1],md5_S44,0x85845dd1);a=md5_II(a,b,c,d,x[ 8],md5_S41,0x6fa87e4f);d=md5_II(d,a,b,c,x[15],md5_S42,0xfe2ce6e0);c=md5_II(c,d,a,b,x[ 6],md5_S43,0xa3014314);b=md5_II(b,c,d,a,x[13],md5_S44,0x4e0811a1);a=md5_II(a,b,c,d,x[ 4],md5_S41,0xf7537e82);d=md5_II(d,a,b,c,x[11],md5_S42,0xbd3af235);c=md5_II(c,d,a,b,x[ 2],md5_S43,0x2ad7d2bb);b=md5_II(b,c,d,a,x[ 9],md5_S44,0xeb86d391);md5_state[0] +=a;md5_state[1] +=b;md5_state[2] +=c;md5_state[3] +=d;}
function md5_init(){
md5_count[0]=md5_count[1]=0;md5_state[0]=0x67452301;md5_state[1]=0xefcdab89;md5_state[2]=0x98badcfe;md5_state[3]=0x10325476;for(i=0;i<md5_digestBits.length;i++)
md5_digestBits[i]=0;}
function md5_update(b){
var index,i;index=md5_and(md5_shr(md5_count[0],3),0x3f);if(md5_count[0]<0xffffffff-7)
md5_count[0] +=8;else{
md5_count[1]++;md5_count[0]-=0xffffffff+1;md5_count[0]+=8;}
md5_buffer[index]=md5_and(b,0xff);if(index>=63){
md5_transform(md5_buffer,0);}
}
function md5_finish(){
var bits=new md5_array(8);var padding;var i=0,index=0,padLen=0;for(i=0;i<4;i++){
bits[i]=md5_and(md5_shr(md5_count[0],(i * 8)),0xff);}
for(i=0;i<4;i++){
bits[i+4]=md5_and(md5_shr(md5_count[1],(i * 8)),0xff);}
index=md5_and(md5_shr(md5_count[0],3),0x3f);padLen=(index<56)?(56 - index):(120 - index);padding=new md5_array(64);padding[0]=0x80;for(i=0;i<padLen;i++)
md5_update(padding[i]);for(i=0;i<8;i++)
md5_update(bits[i]);for(i=0;i<4;i++){
for(j=0;j<4;j++){
md5_digestBits[i*4+j]=md5_and(md5_shr(md5_state[i],(j * 8)),0xff);}
}
}
function md5_hexa(n){
var hexa_h="0123456789abcdef";var hexa_c="";var hexa_m=n;for(hexa_i=0;hexa_i<8;hexa_i++){
hexa_c=hexa_h.charAt(Math.abs(hexa_m)%16)+hexa_c;hexa_m=Math.floor(hexa_m/16);}
return hexa_c;}
var md5_ascii="01234567890123456789012345678901" +
" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+
"[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";function Map24(){}
Map24.onUserAction=null;Map24.AllowAPIUsageOnArbitraryUrl=false;Map24.VERSION="1.2.11.2827";Map24.CAPTURE_CLICK=false;Map24.DOCTYPE="QuirksMode";if((typeof document.compatMode=="undefined")||(document.compatMode==null)){
Map24.DOCTYPE="QuirksMode";}else
if((document.compatMode=="BackCompat")||(document.compatMode=="QuirksMode")){
Map24.DOCTYPE="QuirksMode";}else
{
Map24.DOCTYPE="CSS1Compat";}
Map24._Initialized=false;Map24._Mutex=0;Map24.Ready=false;Map24._Compress=false;Map24._HtmlEntitiesToCharacter=new Hashtable();Map24._HtmlEntitiesToCharacter["&nbsp;"]=" ";Map24._HtmlEntitiesToCharacter["&iexcl;"]="??";Map24._HtmlEntitiesToCharacter["&cent;"]="??";Map24._HtmlEntitiesToCharacter["&pound;"]="??";Map24._HtmlEntitiesToCharacter["&curren;"]="??";Map24._HtmlEntitiesToCharacter["&yen;"]="??";Map24._HtmlEntitiesToCharacter["&brvbar;"]="??";Map24._HtmlEntitiesToCharacter["&sect;"]="??";Map24._HtmlEntitiesToCharacter["&uml;"]="??";Map24._HtmlEntitiesToCharacter["&copy;"]="??";Map24._HtmlEntitiesToCharacter["&ordf;"]="??";Map24._HtmlEntitiesToCharacter["&laquo;"]="??";Map24._HtmlEntitiesToCharacter["&not;"]="??";Map24._HtmlEntitiesToCharacter["&shy;"]="??";Map24._HtmlEntitiesToCharacter["&reg;"]="??";Map24._HtmlEntitiesToCharacter["&macr;"]="??";Map24._HtmlEntitiesToCharacter["&deg;"]="??";Map24._HtmlEntitiesToCharacter["&plusmn;"]="??";Map24._HtmlEntitiesToCharacter["&sup2;"]="??";Map24._HtmlEntitiesToCharacter["&sup3;"]="??";Map24._HtmlEntitiesToCharacter["&acute;"]="??";Map24._HtmlEntitiesToCharacter["&micro;"]="??";Map24._HtmlEntitiesToCharacter["&para;"]="??";Map24._HtmlEntitiesToCharacter["&middot;"]="??";Map24._HtmlEntitiesToCharacter["&cedil;"]="??";Map24._HtmlEntitiesToCharacter["&sup1;"]="??";Map24._HtmlEntitiesToCharacter["&ordm;"]="??";Map24._HtmlEntitiesToCharacter["&raquo;"]="??";Map24._HtmlEntitiesToCharacter["&frac14;"]="??";Map24._HtmlEntitiesToCharacter["&frac12;"]="??";Map24._HtmlEntitiesToCharacter["&frac34;"]="??";Map24._HtmlEntitiesToCharacter["&iquest;"]="??";Map24._HtmlEntitiesToCharacter["&Agrave;"]="??";Map24._HtmlEntitiesToCharacter["&Aacute;"]="??";Map24._HtmlEntitiesToCharacter["&Acirc;"]="??";Map24._HtmlEntitiesToCharacter["&Atilde;"]="??";Map24._HtmlEntitiesToCharacter["&Auml;"]="??";Map24._HtmlEntitiesToCharacter["&Aring;"]="??";Map24._HtmlEntitiesToCharacter["&AElig;"]="??";Map24._HtmlEntitiesToCharacter["&Ccedil;"]="??";Map24._HtmlEntitiesToCharacter["&Egrave;"]="??";Map24._HtmlEntitiesToCharacter["&Eacute;"]="??";Map24._HtmlEntitiesToCharacter["&Ecirc;"]="??";Map24._HtmlEntitiesToCharacter["&Euml;"]="??";Map24._HtmlEntitiesToCharacter["&Igrave;"]="??";Map24._HtmlEntitiesToCharacter["&Iacute;"]="??";Map24._HtmlEntitiesToCharacter["&Icirc;"]="??";Map24._HtmlEntitiesToCharacter["&Iuml;"]="??";Map24._HtmlEntitiesToCharacter["&ETH;"]="??";Map24._HtmlEntitiesToCharacter["&Ntilde;"]="??";Map24._HtmlEntitiesToCharacter["&Ograve;"]="??";Map24._HtmlEntitiesToCharacter["&Oacute;"]="??";Map24._HtmlEntitiesToCharacter["&Ocirc;"]="??";Map24._HtmlEntitiesToCharacter["&Otilde;"]="??";Map24._HtmlEntitiesToCharacter["&Ouml;"]="??";Map24._HtmlEntitiesToCharacter["&times;"]="??";Map24._HtmlEntitiesToCharacter["&Oslash;"]="??";Map24._HtmlEntitiesToCharacter["&Ugrave;"]="??";Map24._HtmlEntitiesToCharacter["&Uacute;"]="??";Map24._HtmlEntitiesToCharacter["&Ucirc;"]="??";Map24._HtmlEntitiesToCharacter["&Uuml;"]="??";Map24._HtmlEntitiesToCharacter["&Yacute;"]="??";Map24._HtmlEntitiesToCharacter["&THORN;"]="??";Map24._HtmlEntitiesToCharacter["&szlig;"]="??";Map24._HtmlEntitiesToCharacter["&agrave;"]="??";Map24._HtmlEntitiesToCharacter["&aacute;"]="??";Map24._HtmlEntitiesToCharacter["&acirc;"]="??";Map24._HtmlEntitiesToCharacter["&atilde;"]="??";Map24._HtmlEntitiesToCharacter["&auml;"]="??";Map24._HtmlEntitiesToCharacter["&aring;"]="??";Map24._HtmlEntitiesToCharacter["&aelig;"]="??";Map24._HtmlEntitiesToCharacter["&ccedil;"]="??";Map24._HtmlEntitiesToCharacter["&egrave;"]="??";Map24._HtmlEntitiesToCharacter["&eacute;"]="??";Map24._HtmlEntitiesToCharacter["&ecirc;"]="??";Map24._HtmlEntitiesToCharacter["&euml;"]="??";Map24._HtmlEntitiesToCharacter["&igrave;"]="??";Map24._HtmlEntitiesToCharacter["&iacute;"]="??";Map24._HtmlEntitiesToCharacter["&icirc;"]="??";Map24._HtmlEntitiesToCharacter["&iuml;"]="??";Map24._HtmlEntitiesToCharacter["&eth;"]="??";Map24._HtmlEntitiesToCharacter["&ntilde;"]="??";Map24._HtmlEntitiesToCharacter["&ograve;"]="??";Map24._HtmlEntitiesToCharacter["&oacute;"]="??";Map24._HtmlEntitiesToCharacter["&ocirc;"]="??";Map24._HtmlEntitiesToCharacter["&otilde;"]="??";Map24._HtmlEntitiesToCharacter["&ouml;"]="??";Map24._HtmlEntitiesToCharacter["&divide;"]="??";Map24._HtmlEntitiesToCharacter["&oslash;"]="??";Map24._HtmlEntitiesToCharacter["&ugrave;"]="??";Map24._HtmlEntitiesToCharacter["&uacute;"]="??";Map24._HtmlEntitiesToCharacter["&ucirc;"]="??";Map24._HtmlEntitiesToCharacter["&uuml;"]="??";Map24._HtmlEntitiesToCharacter["&yacute;"]="??";Map24._HtmlEntitiesToCharacter["&thorn;"]="??";Map24._HtmlEntitiesToCharacter["&yuml;"]="??";Map24._HtmlEntitiesToCharacter["&quot;"]="\"";Map24._HtmlEntitiesToCharacter["&lt;"]="<";Map24._HtmlEntitiesToCharacter["&gt;"]=">";Map24._HtmlEntitiesToCharacter["&amp;"]="&";Map24._CharacterToHtmlEntities=new Hashtable();Map24._CharacterToHtmlEntities[" "]="&nbsp;";Map24._CharacterToHtmlEntities["??"]="&iexcl;";Map24._CharacterToHtmlEntities["??"]="&cent;";Map24._CharacterToHtmlEntities["??"]="&pound;";Map24._CharacterToHtmlEntities["??"]="&curren;";Map24._CharacterToHtmlEntities["??"]="&yen;";Map24._CharacterToHtmlEntities["??"]="&brvbar;";Map24._CharacterToHtmlEntities["??"]="&sect;";Map24._CharacterToHtmlEntities["??"]="&uml;";Map24._CharacterToHtmlEntities["??"]="&copy;";Map24._CharacterToHtmlEntities["??"]="&ordf;";Map24._CharacterToHtmlEntities["??"]="&laquo;";Map24._CharacterToHtmlEntities["??"]="&not;";Map24._CharacterToHtmlEntities["??"]="&shy;";Map24._CharacterToHtmlEntities["??"]="&reg;";Map24._CharacterToHtmlEntities["??"]="&macr;";Map24._CharacterToHtmlEntities["??"]="&deg;";Map24._CharacterToHtmlEntities["??"]="&plusmn;";Map24._CharacterToHtmlEntities["??"]="&sup2;";Map24._CharacterToHtmlEntities["??"]="&sup3;";Map24._CharacterToHtmlEntities["??"]="&acute;";Map24._CharacterToHtmlEntities["??"]="&micro;";Map24._CharacterToHtmlEntities["??"]="&para;";Map24._CharacterToHtmlEntities["??"]="&middot;";Map24._CharacterToHtmlEntities["??"]="&cedil;";Map24._CharacterToHtmlEntities["??"]="&sup1;";Map24._CharacterToHtmlEntities["??"]="&ordm;";Map24._CharacterToHtmlEntities["??"]="&raquo;";Map24._CharacterToHtmlEntities["??"]="&frac14;";Map24._CharacterToHtmlEntities["??"]="&frac12;";Map24._CharacterToHtmlEntities["??"]="&frac34;";Map24._CharacterToHtmlEntities["??"]="&iquest;";Map24._CharacterToHtmlEntities['??']="&Agrave;";Map24._CharacterToHtmlEntities["??"]="&Aacute;";Map24._CharacterToHtmlEntities["??"]="&Acirc;";Map24._CharacterToHtmlEntities["??"]="&Atilde;";Map24._CharacterToHtmlEntities["??"]="&Auml;";Map24._CharacterToHtmlEntities["??"]="&Aring;";Map24._CharacterToHtmlEntities["??"]="&AElig;";Map24._CharacterToHtmlEntities["??"]="&Ccedil;";Map24._CharacterToHtmlEntities["??"]="&Egrave;";Map24._CharacterToHtmlEntities["??"]="&Eacute;";Map24._CharacterToHtmlEntities["??"]="&Ecirc;";Map24._CharacterToHtmlEntities["??"]="&Euml;";Map24._CharacterToHtmlEntities["??"]="&Igrave;";Map24._CharacterToHtmlEntities["??"]="&Iacute;";Map24._CharacterToHtmlEntities["??"]="&Icirc;";Map24._CharacterToHtmlEntities["??"]="&Iuml;";Map24._CharacterToHtmlEntities["??"]="&ETH;";Map24._CharacterToHtmlEntities["??"]="&Ntilde;";Map24._CharacterToHtmlEntities["??"]="&Ograve;";Map24._CharacterToHtmlEntities["??"]="&Oacute;";Map24._CharacterToHtmlEntities["??"]="&Ocirc;";Map24._CharacterToHtmlEntities["??"]="&Otilde;";Map24._CharacterToHtmlEntities["??"]="&Ouml;";Map24._CharacterToHtmlEntities["??"]="&times;";Map24._CharacterToHtmlEntities["??"]="&Oslash;";Map24._CharacterToHtmlEntities["??"]="&Ugrave;";Map24._CharacterToHtmlEntities["??"]="&Uacute;";Map24._CharacterToHtmlEntities["??"]="&Ucirc;";Map24._CharacterToHtmlEntities["??"]="&Uuml;";Map24._CharacterToHtmlEntities["??"]="&Yacute;";Map24._CharacterToHtmlEntities["??"]="&THORN;";Map24._CharacterToHtmlEntities["??"]="&szlig;";Map24._CharacterToHtmlEntities["??"]="&agrave;";Map24._CharacterToHtmlEntities["??"]="&aacute;";Map24._CharacterToHtmlEntities["??"]="&acirc;";Map24._CharacterToHtmlEntities["??"]="&atilde;";Map24._CharacterToHtmlEntities["??"]="&auml;";Map24._CharacterToHtmlEntities["??"]="&aring;";Map24._CharacterToHtmlEntities["??"]="&aelig;";Map24._CharacterToHtmlEntities["??"]="&ccedil;";Map24._CharacterToHtmlEntities["??"]="&egrave;";Map24._CharacterToHtmlEntities["??"]="&eacute;";Map24._CharacterToHtmlEntities["??"]="&ecirc;";Map24._CharacterToHtmlEntities["??"]="&euml;";Map24._CharacterToHtmlEntities["??"]="&igrave;";Map24._CharacterToHtmlEntities["??"]="&iacute;";Map24._CharacterToHtmlEntities["??"]="&icirc;";Map24._CharacterToHtmlEntities["??"]="&iuml;";Map24._CharacterToHtmlEntities["??"]="&eth;";Map24._CharacterToHtmlEntities["??"]="&ntilde;";Map24._CharacterToHtmlEntities["??"]="&ograve;";Map24._CharacterToHtmlEntities["??"]="&oacute;";Map24._CharacterToHtmlEntities["??"]="&ocirc;";Map24._CharacterToHtmlEntities["??"]="&otilde;";Map24._CharacterToHtmlEntities["??"]="&ouml;";Map24._CharacterToHtmlEntities["??"]="&divide;";Map24._CharacterToHtmlEntities["??"]="&oslash;";Map24._CharacterToHtmlEntities["??"]="&ugrave;";Map24._CharacterToHtmlEntities["??"]="&uacute;";Map24._CharacterToHtmlEntities["??"]="&ucirc;";Map24._CharacterToHtmlEntities["??"]="&uuml;";Map24._CharacterToHtmlEntities["??"]="&yacute;";Map24._CharacterToHtmlEntities["??"]="&thorn;";Map24._CharacterToHtmlEntities["??"]="&yuml;";Map24._CharacterToHtmlEntities["\""]="&quot;";Map24._CharacterToHtmlEntities["<"]="&lt;";Map24._CharacterToHtmlEntities[">"]="&gt;";Map24._CharacterToHtmlEntities["&"]="&amp;";Map24._ClassesShared={
"Map24.Object":true,"Map24.Map":true
};Map24._ClassesSharedURL=new Hashtable();Map24._ScriptsShared=new Hashtable();Map24._ScriptsSharedURL=new Hashtable();Map24._WaitFor=new Array();Map24.waitFor=function(className,scriptName,listener){
var waitObject={};if(!(listener instanceof Callable))throw new Map24.Exceptions.InvalidArgument("Invalid argument 'listener' given, no instance of Callable!",listener,"Map24","waitFor");waitObject.Listener=listener;if(typeof className=="string")className=new Array(className);if(className==null)className=new Array();if(!(className instanceof Array))throw new Map24.Exceptions.InvalidArgument("Invalid argument 'className' given, no string or array and not null!",className,"Map24","waitFor");waitObject.Classes=className;if(typeof scriptName=="string")scriptName=new Array(scriptName);if(scriptName==null)scriptName=new Array();if(!(scriptName instanceof Array))throw new Map24.Exceptions.InvalidArgument("Invalid argument 'scriptName' given, no string or array and not null!",scriptName,"Map24","waitFor");waitObject.Scripts=scriptName;Map24._WaitFor.push(waitObject);Map24._triggerListener();}
Map24._triggerListener=function(){
while(Map24._Mutex>0){};Map24._Mutex++;var newWaitFor=new Array();var trigger=new Array();var currentWaitFor=null;for(var i=0;i<Map24._WaitFor.length;i++){
currentWaitFor=Map24._WaitFor[i];var allClassesReady=true;for(var j=0;j<currentWaitFor.Classes.length;j++){
if(typeof Map24._ClassesShared[currentWaitFor.Classes[j]]!="boolean"||Map24._ClassesShared[currentWaitFor.Classes[j]]==false)
{
allClassesReady=false;break;}
}
if(!allClassesReady){
newWaitFor.push(currentWaitFor);continue;}
var allScriptsReady=true;for(var j=0;j<currentWaitFor.Scripts.length;j++){
if(typeof Map24._ScriptsShared[currentWaitFor.Scripts[j]]!="boolean"||Map24._ScriptsShared[currentWaitFor.Scripts[j]]==false)
{
allScriptsReady=false;break;}
}
if(!allScriptsReady){
newWaitFor.push(currentWaitFor);continue;}
trigger.push(currentWaitFor);}
Map24._Mutex--;var result=null;for(var i=0;i<trigger.length;i++){
try{
var e=new Map24.Event.ShareReady(trigger[i].Classes,trigger[i].Scripts);trigger[i].Listener.invokeEx({event:e});}catch(e){
Map24.dump(e,null,2);}
}
}
Map24.Arguments=new Hashtable();Map24.findScriptByName=function(name)
{
var url="";var test=document.getElementsByTagName("script");for(var i=0;i<test.length;i++){
try{
var src=test[i].getAttribute("src");if(src)
if(src.indexOf(name)!=-1){
if(src.substr(0,7)=="http://"){
url=src;}else{
url=document.URL.substr(0,document.URL.lastIndexOf("/"))+ "/" + src;}
return url;}
}catch(e){
}
}
return url;}
Map24.splitUrl=function(url)
{
var result=new Array();var tmp=url.split("?",2);result.push(tmp[0]);var url_args={};if(tmp.length>1){
var args=tmp[1].split("&");var arg=null;for(var i=0;i<args.length;i++){
arg=args[i].split("=",2);if(arg.length==1){
url_args[arg[0]]=null;}else
if(arg.length==2){
url_args[arg[0]]=arg[1];}
arg=null;}
}
result.push(url_args);return result;}
Map24.dirname=function(url)
{
if(typeof url!="string")return "";var lastIndex=url.lastIndexOf("/");if(lastIndex==-1)return url+"/";return url.substr(0,lastIndex+1);}
Map24.htmlentities=function(string){
var result="";var entity=null;for(i=0;i<string.length;i++){
entity=Map24._CharacterToHtmlEntities[ string.charAt(i)];if(entity!=null)
result +=entity;else
result +=string.charAt(i);}
return result;}
Map24.html_entity_decode=function(string){
var result="";var entity="";for(i=0;i<string.length;i++){
if(string.charAt(i)=="&"){
entity +=string.charAt(i);}else
if(entity.length==0){
result +=string.charAt(i);}else
if(string.charAt(i)==";"){
entity +=';';var translated=Map24._HtmlEntitiesToCharacter[ entity ];if(translated!=null)
result +=translated;else
result +=entity;entity="";}else
entity +=string.charAt(i);}
if(entity.length>0)result+=entity;return result;}
Map24.isApplicationKey=function(key)
{
if(typeof key!="string")return false;if(key.length!=35)return false;if(key.substring(1,3)!="JX")return false;return true;}
Map24._include=function(url){
var script=document.createElement('script');script.defer=true;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._declude=function(url){
var head_array=document.getElementsByTagName('head');var scripts=null;if((head_array instanceof Array)&&(head_array.length==1)){
scripts=head_array[0].childNodes;}else
scripts=document.getElementsByTagName('script');var script=null;if(scripts instanceof Array)
for(var i=0;i<scripts.length;i++){
try{
script=scripts[i];if(script.src==url){
try{
scripts.parentNode.removeChild(script);}catch(e){
e.METHOD="Map24._declude";e.Msg=["Failed to remove script with URL '",url,"'"].join("");Map24.e(e);}
break;}
}catch(e){
e.METHOD="Map24._declude";e.Msg="Unexpected exception while iterating though embedded scripts!";Map24.e(e);}
}
}
Map24.shares=function(name,listener){
if((typeof name!="string")||(name.length<=0))throw new Map24.Exceptions.InvalidArgument("The given classname is no string or an empty string!",name,"Map24","shares");if(typeof Map24._ClassesShared[name]!="boolean"){
Map24._ClassesShared[name]=false;Map24._ClassesSharedURL[name]=Map24.CONST["HTTP_ROOT"]+"?file="+Map24.urlencode(name.replace(new RegExp("[.]","g"),"/")+".js")+"&version="+Map24.VERSION+(Map24._Compress?"":"&viewsource");Map24.Ready=false;if(Map24._Initialized)Map24._include(Map24._ClassesSharedURL[name]);}
if(listener instanceof Callable)Map24.waitFor(name,null,listener);}
Map24.sharesByURL=function(url,listener){
if((typeof url!="string")||(url.length<=0))throw new Map24.Exceptions.InvalidArgument("The given URL is no string or an empty string!",url,"Map24","sharesByURL");if(typeof Map24._ClassesShared[url]!="boolean")
{
if(url.indexOf("http://")<0){
var baseURL=Map24.splitUrl(document.URL);url=Map24.dirname(baseURL[0])+ url;}
var name=Map24.splitUrl(url)[0];Map24._ClassesShared[name]=false;Map24._ClassesSharedURL[name]=url;Map24.Ready=false;if(Map24._Initialized)Map24._include(Map24._ClassesSharesURL[name]);}
if(listener instanceof Callable)Map24.waitFor(name,null,listener);}
Map24.sharesScript=function(url,listener){
if((typeof url!="string")||(url.length<=0))throw new Map24.Exceptions.InvalidArgument("The given URL is no string or an empty string!",url,"Map24","sharesScript");if(url.indexOf("http://")<0){
var baseURL=Map24.splitUrl(document.URL);url=Map24.dirname(baseURL[0])+ url;}
var name=Map24.splitUrl(url)[0];Map24._ScriptsShared[name]=false;Map24._ClassesSharedURL[name]=url;if(Map24._Initialized)Map24._include(url);if(listener instanceof Callable)Map24.waitFor(null,name,listener);}
Map24.sharesScriptOnce=function(url,listener){
if((typeof url!="string")||(url.length<=0))throw new Map24.Exceptions.InvalidArgument("The given URL is no string or an empty string!",url,"Map24","sharesScriptOnce");if(url.indexOf("http://")<0){
var baseURL=Map24.splitUrl(document.URL);url=Map24.dirname(baseURL[0])+ url;}
var name=Map24.splitUrl(url)[0];if(typeof Map24._ScriptsShared[name]!="boolean")Map24.sharesScript(url);if(listener instanceof Callable)Map24.waitFor(null,url,listener);}
Map24.isShared=function(name){
if((typeof name!="string")||(name.length<=0))throw new Map24.Exceptions.InvalidArgument("The given classname is invalid (no string or empty string)!",name,"Map24","isShared");return(typeof Map24._ClassesShared[name]=="boolean");}
Map24.notifyClassReady=function(name){
if((typeof name!="string")||(name.lenght<=0))throw new Map24.Exceptions.InvalidArgument("The given name is no string or an empty string!",name,"Map24","notifyClassReady");Map24._ClassesShared[name]=true;Map24._triggerListener();}
Map24.notifyScriptReady=function(url){
if((typeof url!="string")||(url.lenght<=0))throw new Map24.Exceptions.InvalidArgument("The given URL is no string or an empty string!",url,"Map24","notifyScriptReady");if(url.indexOf("http://")<0){
var baseURL=Map24.splitUrl(document.URL);url=Map24.dirname(baseURL[0])+ url;}
var name=Map24.splitUrl(url)[0];Map24._ScriptsShared[name]=true;Map24._triggerListener();}
Map24.listShares=function(){
return Map24.clone(Map24._ClassesShared);}
Map24.makeUniqueId=function(len){
if(typeof len=="undefined")len=32;if((typeof len!="number")||(len<=0)||(len>256))throw new Map24.Exceptions.InvalidArgument("The given parameter 'len' is no number, less then 1 or greater then 256!",len,"Map24","makeUniqueId");var unique_id="";while(unique_id.length<len)
unique_id +=md5(""+((new Date()).getTime())+""+Math.random());if(unique_id.length==len)return unique_id;return unique_id.substr(0,len);}
Map24.isObject=function(obj,interfacename){
if(typeof interfacename=="undefined")interfacename=null;if((obj==null)||((!(obj instanceof Object))&&((typeof obj).substr(0,6)!="object")))return false;if(interfacename==null)return true;if(typeof interfacename!="string")interfacename="IUnknown";return((obj.Interfaces instanceof Object)&&(typeof obj.Interfaces[interfacename]!="undefined")&&((obj.Interfaces[interfacename] instanceof Callable)||obj.Interfaces[interfacename]==null));}
Map24.isDocument=function(doc){
if(!Map24.isObject(doc))return false;if(Map24.Browser.OPERA)
return((typeof doc.nodeName=="string")&&(doc.nodeName=="#document"));else
if(Map24.Browser.IE)
return(typeof doc.createElement=="object");else
return(typeof doc.createElement=="function");}
Map24.isImage=function(img){
if(!Map24.isObject(img))return false;if(Map24.Browser.IE){
if(typeof img.tagName!="string")return false;return(img.tagName=="IMG");}else
return(img instanceof Image);}
Map24.isNumeric=function(value){
try{
if(typeof value=="number")return true;if(typeof value=="string"){
var rexp=new RegExp("^([+-]{0,1}[0-9]+)([.]{0,1}[0-9]{0,})$");var s=rexp.exec(value);if(!(s instanceof Object))return false;return(s[0]==value);}
}catch(e){}
return false;}
Map24.isNumber=function(value){return Map24.isNumeric(value);}
Map24.isNull=function(value){
if(value==null)return true;switch(typeof value){
case "undefined":case "null":return true;}
return false;}
Map24.empty=function(value){
if(value==null)return true;switch(typeof value){
case "undefined":case "null":return true;case "number":return(value==0);case "boolean":return(value==false);case "string":value=Map24.trim(value);if(value.length<=0)return true;if(value=="0")return true;if(value=="+0")return true;if(value=="-0")return true;return false;}
return false;}
Map24.arrayKeyExists=function(key,array){
if(typeof key!="string")return false;if(!(array instanceof Object))return false;if(typeof array[key]=="undefined")return false;return true;}
Map24.arrayKeys=function(hashtable){
if(!(hashtable instanceof Object))throw new Map24.Exceptions.InvalidArgument("The given hashtable is no object!",hashtable,"Map24","arrayKeys");var result=new Array();for(key in hashtable){result.push(key);}
return result;}
Map24.arrayValues=function(hashtable){
if(!(hashtable instanceof Object))throw new Map24.Exceptions.InvalidArgument("The given hashtable is no object!",hashtable,"Map24","arrayKeys");var result=new Array();for(key in hashtable){result.push(hashtable[key]);}
return result;}
Map24.arraySearch=function(value,array){
if(!(array instanceof Object))return null;if(array instanceof Array){
for(var i=0;i<array.length;i++){
if(array[i]==value)return i;}
}else{
for(var key in array){
if(array[key]==value)return key;}
}
return null;}
Map24.arrayMerge=function(array1,array2){
var type=null;var result=null;if(array1 instanceof Array){
type="Array";result=new Array();}else
if(array1 instanceof Object){
type="Hashtable";result={};}else
throw new Map24.Exceptions.InvalidArgument("The first argument is neither Array nor Hashtable!",array1,"Map24","arrayMerge");for(var i=0;i<arguments.length;i++){
if(!(arguments[i] instanceof Object))throw new Map24.Exceptions.InvalidArgument("The "+i+". argument is neither Array nor Hashtable!",argument[i],"Map24","arrayMerge");if(type=="Array"&&!(arguments[i] instanceof Array))throw new Map24.Exceptions.InvalidArgument("The "+i+". argument is no Array where array is required!",argument[i],"Map24","arrayMerge");if(type=="Hashtable"&&(arguments[i] instanceof Array))throw new Map24.Exceptions.InvalidArgument("The "+i+". argument is an Array where a Hashtable is required!",argument[i],"Map24","arrayMerge");if(type=="Array"){
for(var j=0;j<arguments[i].length;j++)result.push(arguments[i][j]);}else{
for(var key in arguments[i])result[key]=arguments[i][key];}
}
return result;}
Map24.hashtableToQueryString=function(hashtable){
var result="";if(hashtable instanceof Object)
for(var key in hashtable){
if(hashtable[key] instanceof Array)
{
for(var i=0;i<hashtable[key].length;i++){
var value=hashtable[key][i];if(value==null)
result +="&"+key+"=";else
switch(typeof value){
case "number":case "string":result +="&"+key+i+"="+Map24.rawurlencode(value);break;case "boolean":result +="&"+key+i+"="+(value?'true':'false');break;case "undefined":result +="&"+key+i+"=";break;default:result +="&"+key+i+"="+(typeof value);break;}
}
}else{
if(hashtable[key]==null)
result +="&"+key+"=";else
switch(typeof hashtable[key]){
case "number":case "string":result +="&"+key+"="+Map24.rawurlencode(hashtable[key]);break;case "boolean":result +="&"+key+"="+(hashtable[key]?'true':'false');break;case "undefined":result +="&"+key+"=";break;default:result +="&"+key+"="+typeof hashtable[key];break;}
}
}
return result;}
Map24.count=function(obj){
if(!(obj instanceof Object))return 0;if(obj instanceof Array)return obj.length;var count=0;for(var name in obj)count++;return count;}
Map24.urlencode=function(string){
if(typeof string!="string")return string;return escape(string);}
Map24.hexValues=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");Map24.dec2hex=function(dec){
if(typeof dec=="string"){
try{dec=parseInt(dec);}catch(e){}
}
if(typeof dec!="number")throw new Map24.Exceptions.InvalidArgument("The given decimal number if invalid (no number)!",dec,"Map24","dec2hex");var result="";if(dec==0)return "0";while(dec>=1){
result=Map24.hexValues[dec % 16] + result;dec=dec>>4;}
return result;}
Map24.rawurlencode=function(string){
if(typeof string!="string")return string;var newString="";var i;for(i=0;i<string.length;i++)
{
if(string.charCodeAt(i)==32){
newString +="%20";}else
if(string.charCodeAt(i)==43){
newString +="%2B";}else
if(string.charCodeAt(i)==124){
newString +="|";}else
if(string.charCodeAt(i)<128){
newString +=escape(string.charAt(i));}else
if(string.charCodeAt(i)<256){
newString +="%";newString +=hexValues[(string.charCodeAt(i)>>4)];newString +=hexValues[(string.charCodeAt(i)&15)];}else
newString +=escape(string.charAt(i));}
return newString;}
Map24.trim=function(text){
if(typeof text!="string")return text;return text.replace(/\n/ig,"").replace(/\r/ig,"").replace(/^ /i,"").replace(/ $/i,"");}
Map24.millitime=function(){
return new Date().getTime();}
Map24.time=function(){
return Math.round((new Date().getTime())/1000);}
Map24.DEBUG=false;Map24.DumpDefaultMaximalRecursions=1;Map24.DumpFunctions=false;Map24._DebugConsole={
hWin:null,History:new Array(),HistoryBufferSize:50,Left:0,Top:0,Width:500,Height:500,OldOldKeyDownHandler:null
}
Map24.dump=function(obj,maxrecursions,tabchar){
if((maxrecursions==null)&&Map24.isNumber(tabchar)){
maxrecursions=tabchar;if(arguments.length>=4)tabchar=arguments[3];}
if(!Map24.DEBUG)return;if(typeof tabchar!="string")tabchar="\t";if(typeof maxrecursions!="number")
maxrecursions=Map24.DumpDefaultMaximalRecursions;var s=Map24.dump_type(obj,"",maxrecursions,tabchar);if(Map24._DebugConsole.History.length>(Map24._DebugConsole.HistoryBufferSize+10)){
Map24._DebugConsole.History.splice(0,10);}
Map24._DebugConsole.History.push(s);Map24.writeToDebugConsole(s,false);}
Map24.e=function(excpt,force){
if(typeof force!="boolean")force=false;if(Map24.DEBUG_MODE==2||force){
Map24.dump(excpt);}
}
Map24.writeToDebugConsole=function(s,setFocus){
if(typeof setFocus!="boolean")setFocus=false;if((typeof s!="string")&&(typeof s!="number"))return;if(Map24._DebugConsole.hWin!=null)
{
try{
var myXMP=document.createElement("xmp");var myText=document.createTextNode(s);myXMP.appendChild(myText);if(navigator.userAgent.search(/Opera/)>=0||navigator.appName=="Microsoft Internet Explorer"){
var tmp=Map24._DebugConsole.hWin.document.getElementById("debug");if(navigator.userAgent.search(/Opera/)){
tmp.innerHTML=tmp.innerHTML + "<xmp>"+s+"</xmp>";}else
tmp.innerHTML=Map24.html_entity_decode(tmp.innerHTML)+ "<xmp>"+s+"</xmp>";}else{
Map24._DebugConsole.hWin.document.getElementById("debug").appendChild(myXMP);}
if(setFocus)Map24._DebugConsole.hWin.focus();}catch(e){}
}
}
Map24.clearDebugConsoleHistory=function(){
Map24._DebugConsole.History=new Array();}
Map24.openDebugConsole=function(){
if(Map24.DEBUG==false)Map24.DEBUG=true;if(Map24._DebugConsole.hWin==null){
try{
Map24._DebugConsole.hWin=window.open("","Map24AJAXAPIDebug","left="+Map24._DebugConsole.Left+",top="+Map24._DebugConsole.Top+",width="+Map24._DebugConsole.Width+",height="+Map24._DebugConsole.Height+",toolbar=no,status=no,menubar=no,location=no,resizable=yes,scrollbars=yes");Map24._DebugConsole.hWin.document.open("text/html");Map24._DebugConsole.hWin.document.writeln("<html><head><title>Dump page</title></head><body><div id=\"debug\"></div></body></html>");Map24._DebugConsole.hWin.document.close();for(var i=0;i<Map24._DebugConsole.History.length;i++)
Map24.writeToDebugConsole(Map24._DebugConsole.History[i],false);Map24._DebugConsole.hWin.focus();}catch(e){}
}
}
Map24.closeDebugConsole=function(){
if(Map24._DebugConsole.hWin!=null){
try{
var hWin=Map24._DebugConsole.hWin;Map24._DebugConsole.Left=(typeof hWin.screenX=="number"?hWin.screenX:hWin.left);Map24._DebugConsole.Top=(typeof hWin.screenY=="number"?hWin.screenY:hWin.top);Map24._DebugConsole.Width=(typeof hWin.outerWidth=="number"?hWin.outerWidth:hWin.width);Map24._DebugConsole.Height=(typeof hWin.outerHeight=="number"?hWin.outerHeight:hWin.height);Map24._DebugConsole.hWin.close();}catch(e){}
Map24._DebugConsole.hWin=null;}
}
Map24.isDebugConsoleOpen=function(){
return(Map24._DebugConsole.hWin!=null);}
Map24.dump_type=function(obj,tabs,maxrecursions,tabchar){
var s="";switch(typeof obj){
case "function":if(Map24.DumpFunctions)s="function()\r\n";break;case "undefined":s="undefined\r\n";break;case "null":s="null\r\n";break;case "number":s="number("+obj+")\r\n";break;case "boolean":s=(obj?"true":"false")+"\r\n";break;case "string":s="\""+obj+"\"\r\n";break;case "object":s=Map24.dump_object(obj,tabs,maxrecursions,tabchar,1);break;default:s="native object\r\n";}
return s;}
Map24.dump_object=function(obj,tabs,maxrecursions,tabchar,recursion_deepth){
var members=0;tabs +=tabchar;var s="";var objectname="object";for(var key in obj)
{
if(key=="Class"){
objectname=obj.Package + "." + obj.Class;continue;}
if(key=="Package")continue;if(key.substr(0,6)=="DOM_VK")continue;members++;switch(typeof obj[key]){
case "function":if(Map24.DumpFunctions)s +=tabs+"[\""+key+"\"] => function()\r\n";break;case "undefined":s +=tabs+"[\""+key+"\"] => undefined\r\n";break;case "null":s +=tabs+"[\""+key+"\"] => null\r\n";break;case "number":s +=tabs+"[\""+key+"\"] => number("+obj[key]+")\r\n";break;case "boolean":s +=tabs+"[\""+key+"\"] => "+(obj[key]?"true":"false")+"\r\n";break;case "string":s +=tabs+"[\""+key+"\"] => \""+obj[key]+"\"\r\n";break;case "object":if(obj[key]==null){
s +=tabs+"[\""+key+"\"] => null\r\n";break;}else
switch(key){
case "Parent":case "parent":s +=tabs+"[\""+key+"\"] => {... skiped, reference to parent object ...}\r\n";break;case "ownerElement":s +=tabs+"[\""+key+"\"] => {... skiped, high possibility of beeing already displayed ...}\r\n";break;case "previousSibling":case "nextSibling":s +=tabs+"[\""+key+"\"] => {... same as childNodes of parent, therefore skiped ...}\r\n";break;case "parentNode":case "parentBox":case "offsetParent":s +=tabs+"[\""+key+"\"] => {... parent already displayed or not interessting ...}\r\n";break;case "firstChild":case "lastChild":s +=tabs+"[\""+key+"\"] => {... see childNodes ...}\r\n";break;default:try{
if(recursion_deepth<=maxrecursions)
s +=tabs+"[\""+key+"\"] => "+Map24.dump_object(obj[key],tabs,maxrecursions,tabchar,(recursion_deepth+1));else
s +=tabs+"[\""+key+"\"] => object(?)\r\n";break;}catch(e){
s +=tabs+"[\""+key+"\"] => native object\r\n";}
}
break;default:s +=tabs+"[\""+key+"\"] => native object\r\n";}
}
if(tabs.length>0)tabs=tabs.substr(0,tabs.length-tabchar.length);return objectname+"("+members+") {\n"+s+tabs+"}\r\n";}
Map24.appendUrl=function(url,args,url_encode){
if(typeof url!="string")return url;if(typeof url_encode!="boolean")url_encode=true;if(typeof args!="string"){
var s="";for(var key in args){
if(url_encode==true)
s +="&"+key+"="+Map24.urlencode(args[key]);else
s +="&"+key+"="+args[key];}
args=s.substr(1);}
if(args.length<=0)return url;while(args.length>0&&(args.charAt(0)=="?"||args.charAt(0)=="&"))args=args.substr(1);var hasQuestionMark=(url.indexOf("?")>=0);if(hasQuestionMark)
url +="&"+args;else
url +="?"+args;return url;}
Map24.sleep=function(waittime){
if(typeof Map24.SLEEP_SCRIPT!="string")throw new Map24.Exceptions.Exception("No sleep script defined, set the constant Map24.SLEEP_SCRIPT!",0,null,"Map24","sleep");if((typeof waittime!="number"))throw new Map24.Exceptions.InvalidArgument("The given waittime is no number!",waittime,"Map24","sleep");}
Map24.clone=function(obj,deep){
if(typeof deep!="boolean")deep=true;if(obj instanceof Array){
var clone=new Array();for(var i=0;i<obj.length;i++){
if(deep)
clone.push(Map24.clone(obj[i]));else
clone.push(obj[i]);}
return clone;}
if(!(obj instanceof Object))return obj;var objectClone=new obj.constructor();for(var property in obj)
{
if(!deep)
objectClone[property]=obj[property];else
if(typeof obj[property]=="object")
objectClone[property]=Map24.clone(obj[property]);else
objectClone[property]=obj[property];}
return objectClone;}
Map24.enableDebug=function(capture){
if(typeof capture!="boolean")capture=false;if(capture==true)
try{
window.onerror=function(errormsg,filename,line){
if(Map24.DEBUG)Map24.dump("'"+errormsg+'" in "'+filename+'", line '+line);return true;}
}catch(e){
}
Map24.DEBUG=true;}
Map24.suppressErrors=function(){
try{
window.onerror=function(errormsg,filename,line){
if(Map24.DEBUG)Map24.dump('"'+errormsg+'" in "'+filename+'", line '+line);return true;}
Map24.DEBUG=false;}catch(e){
}
}
Map24.isCallable=function(func){
if(typeof func=="function")return true;if(func instanceof Callable)return true;return((func instanceof Array)&&(func.length==2)&&(func[0] instanceof Object)&&(typeof func[1]=="function"));}
Map24.invokeEx=function(func,args){
if(func instanceof Callable)return func.invokeEx(args);if(!Map24.isCallable(func))throw new Map24.Exceptions.InvalidArgument("The given parameter func is no callable!",url,"Map24","invoke");if(!(args instanceof Array))args=new Array();var result=null;var args_text="";for(var i=0;i<args.length;i++){
if((i+1)<args.length)
args_text +="args["+i+"],";else
args_text +="args["+i+"]";}
if(typeof func=="function"){
eval("result = func("+args_text+");");}else{
eval("result = func[1].call(func[0]"+(args.length>0?", ":"")+args_text+");");}
return result;}
Map24.invoke=function(func){
var args=new Array();for(var i=1;i<arguments.length;i++){
args[i-1]=arguments[i];}
if(func instanceof Callable)
return func.invokeEx(args);else
return Map24.invokeEx(func,args);}
Map24._Fork=new Array();Map24._forkNext=function(){
var next=Map24._Fork.shift();if(next){
Map24.invoke(next.Func,next.Args);if(Map24._Fork.length>0)setTimeout(Map24._forkNext,1);}
}
Map24.forkEx=function(func,args){
if(func instanceof Callable)return func.forkEx(args);Map24._Fork.push({Func:func,Args:args});setTimeout(Map24._forkNext,1);return true;}
Map24.fork=function(func){
var args=new Array();for(var i=1;i<arguments.length;i++)args.push(arguments[i]);if(func instanceof Callable)
return func.forkEx(args);else
return Map24.forkEx(func,args);}
Map24.getNodePos=function(node){
var pos=new Map24.Pixel(0,0);try{
do{
if(Map24.isNumber(node.offsetLeft)&&Map24.isNumber(node.offsetTop))
{
pos.X +=node.offsetLeft;pos.Y +=node.offsetTop;}
;}while(node=node.offsetParent);}catch(e){
return null;}
return pos;}
Map24.OBJECT_TYPE_SYMBOL_ID=new Hashtable();Map24.OBJECT_TYPE=new Hashtable();Map24.OBJECT_TYPE["Generic"]=0;Map24.OBJECT_TYPE["Rest Area"]=1;Map24.OBJECT_TYPE["Border Crossing"]=2;Map24.OBJECT_TYPE["Toll Booth"]=118;Map24.OBJECT_TYPE["Park"]=4;Map24.OBJECT_TYPE["Beach"]=5;Map24.OBJECT_TYPE["Zoo"]=6;Map24.OBJECT_TYPE["Camping"]=7;Map24.OBJECT_TYPE["Leisure"]=8;Map24.OBJECT_TYPE["Mobile Home Area"]=95;Map24.OBJECT_TYPE["Car Service"]=9;Map24.OBJECT_TYPE["Petrol Station"]=10;Map24.OBJECT_TYPE["Automobile Club"]=11;Map24.OBJECT_TYPE["Car Rental"]=12;Map24.OBJECT_TYPE["Car Rental Parking"]=106;Map24.OBJECT_TYPE["Car Dealer"]=13;Map24.OBJECT_TYPE["Parking Lot"]=15;Map24.OBJECT_TYPE["Parking Hous"]=16;Map24.OBJECT_TYPE["Park & Ride"]=17;Map24.OBJECT_TYPE["Hotels"]=18;Map24.OBJECT_TYPE["Restaurant"]=19;Map24.OBJECT_TYPE["Museum"]=20;Map24.OBJECT_TYPE["Cinema"]=21;Map24.OBJECT_TYPE["Performing"]=22;Map24.OBJECT_TYPE["Casino"]=23;Map24.OBJECT_TYPE["Nightlife"]=24;Map24.OBJECT_TYPE["Exhibition"]=25;Map24.OBJECT_TYPE["Music Concert"]=26;Map24.OBJECT_TYPE["Art"]=97;Map24.OBJECT_TYPE["Convention Center"]=103;Map24.OBJECT_TYPE["Natives Reservation"]=119;Map24.OBJECT_TYPE["Tourist Info"]=27;Map24.OBJECT_TYPE["Sightseeing"]=28;Map24.OBJECT_TYPE["Monument"]=29;Map24.OBJECT_TYPE["View"]=30;Map24.OBJECT_TYPE["Church"]=31;Map24.OBJECT_TYPE["Mountain"]=96;Map24.OBJECT_TYPE["Mosque"]=107;Map24.OBJECT_TYPE["Synagoge"]=108;Map24.OBJECT_TYPE["Sport Stadium"]=32;Map24.OBJECT_TYPE["Sport Centre"]=33;Map24.OBJECT_TYPE["Bowling Centre"]=34;Map24.OBJECT_TYPE["Swimming Pool"]=35;Map24.OBJECT_TYPE["Ice Skating"]=36;Map24.OBJECT_TYPE["Ski Resort"]=37;Map24.OBJECT_TYPE["Tennis"]=38;Map24.OBJECT_TYPE["Watersport"]=39;Map24.OBJECT_TYPE["Golf"]=40;Map24.OBJECT_TYPE["Racetrack"]=94;Map24.OBJECT_TYPE["Hospital"]=41;Map24.OBJECT_TYPE["Doctor"]=42;Map24.OBJECT_TYPE["Dentist"]=43;Map24.OBJECT_TYPE["Veterinarian"]=44;Map24.OBJECT_TYPE["Pharmacy"]=45;Map24.OBJECT_TYPE["Nursing Home"]=104;Map24.OBJECT_TYPE["Embassy"]=46;Map24.OBJECT_TYPE["City Hall"]=47;Map24.OBJECT_TYPE["Government Building"]=48;Map24.OBJECT_TYPE["School"]=49;Map24.OBJECT_TYPE["University"]=50;Map24.OBJECT_TYPE["Court house"]=51;Map24.OBJECT_TYPE["Library"]=52;Map24.OBJECT_TYPE["Police"]=53;Map24.OBJECT_TYPE["Post"]=54;Map24.OBJECT_TYPE["Fire Station"]=98;Map24.OBJECT_TYPE["Prision"]=99;Map24.OBJECT_TYPE["Cemetery"]=100;Map24.OBJECT_TYPE["Military Intallation"]=120;Map24.OBJECT_TYPE["Winery"]=55;Map24.OBJECT_TYPE["Shopping Centre"]=56;Map24.OBJECT_TYPE["Shop"]=57;Map24.OBJECT_TYPE["Bank"]=58;Map24.OBJECT_TYPE["ATM"]=59;Map24.OBJECT_TYPE["Company"]=60;Map24.OBJECT_TYPE["Land Use"]=105;Map24.OBJECT_TYPE["Airport"]=61;Map24.OBJECT_TYPE["Ferry"]=62;Map24.OBJECT_TYPE["Harbour"]=63;Map24.OBJECT_TYPE["Railway"]=64;Map24.OBJECT_TYPE["Car Loading Facility"]=110;Map24.OBJECT_TYPE["Airport Arrival"]=65;Map24.OBJECT_TYPE["Airport Depature"]=66;Map24.OBJECT_TYPE["Sport Airport"]=67;Map24.OBJECT_TYPE["Marina"]=68;Map24.OBJECT_TYPE["Subway"]=69;Map24.OBJECT_TYPE["Commuter rail"]=70;Map24.OBJECT_TYPE["Bus Station"]=71;Map24.OBJECT_TYPE["Military Airport"]=93;Map24.OBJECT_TYPE["Taxi"]=121;Map24.OBJECT_TYPE["Light Rail"]=122;Map24.OBJECT_TYPE["Heliport"]=123;Map24.LAYER=new Hashtable();Map24.LAYER["Automobile/Traffic"]="map24(3001:1,2,118)";Map24.LAYER["Recreation"]="map24(3002:4,5,6,7,8,95)";Map24.LAYER["Car Service"]="map24(3003:9,10,11,12,13,106)";Map24.LAYER["Parking"]="map24(3004:15,16,17)";Map24.LAYER["Hotels"]="map24(3005:18)";Map24.LAYER["Restaurant"]="map24(3006:19)";Map24.LAYER["Culture"]="map24(3007:20,21,22,23,24,25,26,97,103,119)";Map24.LAYER["Sights"]="map24(3008:27,28,29,30,31,96,107,108)";Map24.LAYER["Sport"]="map24(3009:32,33,34,35,36,37,38,39,40,94)";Map24.LAYER["Healthcare"]="map24(3010:41,42,43,44,45,104)";Map24.LAYER["Public Buildings"]="map24(3011:46,47,48,49,50,51,52,53,54,98,99,100,120)";Map24.LAYER["Commercial"]="map24(3012:55,56,57,58,59,60,105)";Map24.LAYER["Transport"]="map24(3013:61,62,63,64,110)";Map24.LAYER["Transport 2"]="map24(3014:65,66,67,68,69,70,71,93,121,122,123)";Map24.getObjectTypeNameById=function(object_type){
if(typeof object_type=="string")object_type=parseInt(object_type);if(typeof object_type!="number")throw new Map24.Exceptions.Exception("Invalid object type given (no number)!",0,object_type,"map24sdk","getObjectTypeNameById");for(var key in Map24.OBJECT_TYPE){
if(Map24.OBJECT_TYPE[key]==object_type)return key;}
throw new Map24.Exceptions.Exception("No object type with the given id exists!",0,object_type,"map24sdk","getObjectTypeNameById");}
Map24._parseLayerIds=function(ids,service){
if(typeof ids=="undefined"||ids==null)return{customer_ids:"",map24_ids:""};if(typeof ids=="object"&&ids.length>0)ids=ids.join("|");if(typeof ids!="string")throw new Map24.Exceptions.Exception("The given ids are no string!",0,ids,"map24sdk","_parseLayerIds");var id=ids.split('|');var map24_ids="";var customer_ids="";for(var i=0;i<id.length;i++){
if(id[i].substr(0,5)=="map24")
{
try{
var a=id[i].substr(6,id[i].length-7);var b=a.split(':');if(service=="WEBSERVICES"){
map24_ids +="|"+b[0];}else{
map24_ids +="|"+b[1].replace(/,/g,"|");}
}catch(e){}
}else{
customer_ids +="|"+id[i];}
}
if(map24_ids.length>0)map24_ids=map24_ids.substr(1);if(customer_ids.length>0)customer_ids=customer_ids.substr(1);return{customer_ids:customer_ids,map24_ids:map24_ids};}
Map24.getCurrentLayerDefinition=function(){
var result=new Hashtable();for(var layername in Map24.LAYER)
{
try{
var layerids=Map24._parseLayerIds(Map24.LAYER[layername],"PROXIMITYSEARCH")["map24_ids"].split("|");var object_types=new Array();for(var i=0;i<layerids.length;i++)object_types.push(Map24.getObjectTypeNameById(layerids[i]));result[layername]=object_types;}catch(e){
Map24.dump(e);}
}
return result;}
Map24.toXml=function(prefix,value,classname){
if(typeof prefix!="string")prefix="";var result="";if((value instanceof Map24.Object)||(value instanceof Map24.Webservices.CoordinatesArray)||(value instanceof Map24.Webservices.CommandsArray)){
return value.toXml(prefix,classname);}else
if(value instanceof Array){
if(typeof classname!="string"||classname.length<=0)
classname=null;if(classname!=null)result=prefix+"<"+classname+">\n";for(var i=0;i<value.length;i++){
switch(typeof value[i]){
case "function":case "undefined":break;case "null":result +=prefix+"<item>null</item>\n";break;case "number":result +=prefix+"<item>"+value[i]+"</item>\n";break;case "boolean":result +=prefix+"<item>"+(value[i]?'true':'false')+"</item>\n";break;case "string":result +=prefix+"<item><![CDATA["+value[i]+"]]></item>\n";break;case "object":if(value[i] instanceof Map24.Object)
result +=value[i].toXml(prefix,"item");else
result +=Map24.toXml(prefix+(classname==null?"":"\t"),value[i]);break;default:}
}
if(classname!=null)result +=prefix+"</"+classname+">\n";return result;}else
if(value instanceof Object){
if(typeof classname!="string"||classname.length<=0)
classname='item';result=prefix+"<"+classname+">\n";for(key in value){
result +=Map24.toXml(prefix+"\t",value[key],key);}
return result+prefix+"</"+classname+">\n";}
if(typeof classname!="string"||classname.length<=0)
classname=(typeof value);switch(typeof value){
case "function":case "undefined":break;case "null":result=prefix+"<"+classname+">null</"+classname+">\n";break;case "number":result=prefix+"<"+classname+">"+value+"</"+classname+">\n";break;case "boolean":result=prefix+"<"+classname+">"+(value?'true':'false')+"</"+classname+">\n";break;case "string":result=prefix+"<"+classname+"><![CDATA["+value+"]]></"+classname+">\n";break;default:break;}
return result;}
Map24.YahooLib=function(){};Map24.YahooLib.Doc=document;Map24.YahooLib.Win=window;Map24.escapeRegExpPattern=function(pattern,delimiter){
if((typeof delimiter!="string")||(delimiter.length!=1))
delimiter='/';pattern=pattern.replace(/\\/g,"\\\\");pattern=pattern.replace(/\*/g,"\\*");pattern=pattern.replace(/\./g,"\\.");pattern=pattern.replace(/\[/g,"\\[");pattern=pattern.replace(/\]/g,"\\]");pattern=pattern.replace(/\(/g,"\\(");pattern=pattern.replace(/\)/g,"\\)");pattern=pattern.replace(/\{/g,"\\{");pattern=pattern.replace(/\}/g,"\\}");pattern=pattern.replace(/\+/g,"\\+");pattern=pattern.replace(new RegExp("\\"+delimiter,"g"),"\\"+delimiter);return pattern;}
Map24.dispatchEvent=function(instance_id,ev,event_id,form_id){
try{
var map=Map24.Map.getInstanceById(instance_id);var e=new Map24.Browser.Event(ev);if(Map24.arrayKeyExists(event_id,map.Session.MapObjects))
{
var obj=map.Session.MapObjects[event_id];if(obj.Properties["Events"] instanceof Array)
{
for(var i=0;i<obj.Properties.Events.length;i++)
{
var event=obj.Properties.Events[i];if(event instanceof Map24.Webservices.MapObjectEvent)
{
if(event.ID.toLowerCase()==e.Type)
{
if(event.Commands instanceof Array)
{
var mrc=new Map24.Webservices.Request.MapletRemoteControl();mrc.Commands=event.Commands;map.Webservices.sendRequest(mrc);}
}
}
}
}
}
}catch(e){
}
}
Map24.SLEEP_SCRIPT=null;Map24.CLASSLOADER_URL=null;Map24.XSLT_BASE_URL="xslt/ajax/1.2.11/";Map24.init=function(info)
{
if(Map24._Initialized==true)return;Map24._Initialized=true;var debug=false;var api_url=null;var service_url=null;if(typeof info.Debug=="boolean"&&info.Debug==true)debug=true;if(typeof info.ClassLoaderUrl=="string"&&info.ClassLoaderUrl.length>0)
api_url=info.ClassLoaderUrl
if(typeof api_url!="string"){
api_url=Map24.findScriptByName("/ajax/1");}
if(typeof api_url!="string"||api_url.length<=0)throw new Map24.Exceptions.Exception("Invalid class loader URL given!",0,info,"Map24","init");var tmp=api_url.split("?",2);api_url=Map24.dirname(tmp[0]);if(tmp.length>1){
var args=tmp[1].split("&");var arg=null;for(var i=0;i<args.length;i++){
arg=args[i].split("=",2);if(arg.length==1){
Map24.Arguments[arg[0]]=null;}else
if(arg.length==2){
Map24.Arguments[arg[0]]=arg[1];}
arg=null;}
}
if(debug)Map24.enableDebug();Map24.CLASSLOADER_URL=api_url;try{
Map24.Network.ConnectJSPXML.DefaultIFrameUrl=Map24.CLASSLOADER_URL+"proxyit.php?wait_idl=5";}catch(e){}
for(key in Map24._ClassesShared){
if(!Map24._ClassesShared[key])Map24._include(Map24._ClassesSharedURL[key]);}
for(key in Map24._ScriptsShared){
if(!Map24._ScriptsShared[key])Map24._include(Map24._ScriptsSharedURL[key]);}
if(Map24.DEBUG){
Map24._DebugConsole.OldOldKeyDownHandler=document.onkeydown;document.onkeydown=function(event){
if(typeof Map24._DebugConsole.OldOldKeyDownHandler=="function"){
Map24._DebugConsole.OldOldKeyDownHandler(event);}
if(Map24.isNull(event))event=window.event;if(event.altKey&&event.shiftKey){
if(parseInt(event.which)==67||parseInt(event.keyCode)==67){
if(Map24.isDebugConsoleOpen())
Map24.closeDebugConsole();else
Map24.openDebugConsole();}else
if(parseInt(event.which)==86||parseInt(event.keyCode)==86){
Map24.clearDebugConsoleHistory();if(Map24.isDebugConsoleOpen())
Map24.closeDebugConsole();Map24.openDebugConsole();}
}
}
}
}
Map24.Object=function(){
this.__constructor=function(){
this.Interfaces=new Hashtable();this.Interfaces["Object"]=null;this.Interfaces["Map24.Object"]=null;this.Interfaces["IUnknown"]=null;this.Interfaces["Map24.Interfaces.IUnknown"]=null;this.Interfaces["IListener"]=null;this.Interfaces["Map24.Interfaces.IListener"]=null;this.Class="Object";this.Package="";this.Listener=new Array();this.Parent=null;this.IgnoreForSerialization={
IgnoreForSerialization:1,Class:1,Package:1,Listener:1,Parent:1,Interfaces:1
};this.addListener(new Callable(this,this.dispatch));}
this.clone=function(deep){
if(typeof deep!="boolean")deep=true;var objectClone=new this.constructor();for(var property in this)
{
if(!deep){
objectClone[property]=this[property];}else
if(this[property] instanceof Object){
if(typeof this[property]=="object")
objectClone[property]=this[property].clone(deep);else
objectClone[property]=this[property];}else
objectClone[property]=this[property];}
return objectClone;}
this.instanceOf=function(interfacename){
if(typeof interfacename!="string")return false;return(typeof this.Interfaces[interfacename]!="undefined");}
this.getClass=function(){
return this.Class;}
this.has=function(property){
if(typeof property!="string")return false;return(typeof this[property]!="undefined");}
this.isEmpty=function(property){
return Map24.empty(this.get(property));}
this.get=function(property){
if(typeof property!="string")return undefined;return this[property];}
this.set=function(property,value){
if(typeof property=="string")this[property]=value;}
this.toString=function(){
return this.Class;}
this.dispatch=function(event){
if(!Map24.isObject(event)||(typeof event.Class!="string"))return true;var fname="on"+event.Class;var result=true;if(typeof this[fname]=="function")eval("result = this."+fname+"(event);");return result;}
this.toXml=function(prefix,classname){
if(typeof prefix!="string")prefix="";var result="";if(typeof classname!="string"||classname.length<=0)
classname=this.Class;result +=prefix+"<"+classname+">\n";for(var key in this){
if(this.IgnoreForSerialization[key]==1)continue;if(key.charAt(0)=='_')continue;switch(typeof this[key]){
case "function":case "undefined":break;case "null":result +=prefix+"\t<"+key+">null</"+key+">\n";break;case "number":result +=prefix+"\t<"+key+">"+this[key]+"</"+key+">\n";break;case "boolean":result +=prefix+"\t<"+key+">"+(this[key]?'true':'false')+"</"+key+">\n";break;case "string":result +=prefix+"\t<"+key+"><![CDATA["+this[key]+"]]></"+key+">\n";break;case "object":if((this[key] instanceof Map24.Object)||(this[key] instanceof Map24.Array))
result +=this[key].toXml(prefix+"\t",key);else
if(this[key] instanceof Array){
if(this[key].length<=0)break;result +=prefix+"\t<"+key+">\n";result +=Map24.toXml(prefix+"\t\t",this[key]);result +=prefix+"\t</"+key+">\n";}else
result +=Map24.toXml(prefix+"\t",this[key],key);break;default:break;}
}
return result + prefix + "</"+classname+">\n";}
this.addListener=function(listener){
if(!(listener instanceof Callable))throw new Map24.Exceptions.InvalidArgument("Invalid listener given!",listener,"Map24.Object","addListener");this.Listener.push(listener);}
this.removeListener=function(listener){
if(!(listener instanceof Callable))throw new Map24.Exceptions.InvalidArgument("Invalid listener given!",listener,"Map24.Object","removeListener");for(var i=0;i<this.Listener.length;i++){
if(this.Listener[i]==listener){
this.Listener.splice(i,1);}
}
}
this.removeAllListener=function(){
this.Listener=new Array();}
this.trigger=function(event,blocking,ttl){
if(!Map24.isNumeric(ttl))ttl=7;else ttl=parseInt(ttl);if(ttl<0)return;if(!(event instanceof Map24.Events.Event))throw new Map24.Exceptions.InvalidArgument("The given event is no Map24.Events.Event object!",event,"Map24.Object","trigger");if(typeof blocking!="boolean")blocking=true;if(!blocking){
Map24.fork(new Callable(this,this.trigger),event,true);return;}
var isFinished=new Array();var result=null;if(!event._IsDelivered){
event.beforeDelivery();event._IsDelivered=true;}
for(var i=this.Listener.length-1;i>=0;i--){
try{
event.TopDown=true;result=this.Listener[i].invokeEx({event:event});}catch(e){
Map24.dump(e);}
if(typeof result!="boolean")result=true;isFinished.unshift(result);if(event.Cancel)break;}
if(!event.Cancel){
for(var i=0;i<this.Listener.length;i++){
try{
if(!isFinished[i]){
event.TopDown=false;this.Listener[i].invokeEx({event:event});}
}catch(e){
Map24.dump(e);}
if(event.Canel)break;}
}
event.Cancel=false;if(!event.CancelPropagation&&Map24.isObject(this.Parent,"IListener")&&ttl>=1)
{
this.Parent.trigger(event,true,ttl-1);}
}
this.setParent=function(parent){
if(!(parent instanceof Object))throw new Map24.Exceptions.InvalidArgument("The given parent is no object!",parent,"Map24.Object","setParent");var prevParent=this.Parent;this.Parent=parent;return prevParent;}
this.getParent=function(){
return this.Parent;}
this.queryInterface=function(name){
if(typeof name!="string")throw new Map24.Exceptions.InvalidArgument("The given interface name is no string!",name,"Map24.Object","queryInterface");if(typeof this.Interfaces[name]=="undefined")throw new Map24.Exceptions.InterfaceNotSupported("The requested interface '"+name+"' is not supported!",name,"Map24.Object","queryInterface");if(this.Interfaces[name]==null)return this;if(this.Interfaces[name] instanceof Callable)return this.Interfaces[name].invokeEx({parent:this});if(this.Interfaces[name] instanceof Object)return this.Interfaces[name];throw new Map24.Exceptions.InterfaceNotSupported("The requested interface '"+name+"' is not supported!",name,"Map24.Object","queryInterface");}
this.__constructor();}
Map24.Array=function(){
this.__constructor=function(){
Map24.Array.prototype.__constructor.call(this);this.Class="Array";this.Package="Map24";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;this.length=0;for(var i=0;i<arguments.length;i++){
this[this.length++]=arguments[i];}
}
this.push=function(){
for(var i=0;i<arguments.length;i++){
this[this.length++]=arguments[i];}
}
this.pop=function(){
if(this.length<=0)return null;var tmp=this[this.length-1];this.length--;delete this[this.length];return tmp;}
this.toXml=function(prefix,classname){
if(typeof prefix!="string")prefix="";if(typeof classname!="string"||classname.length<=0)
classname=this.Class;var result="";result +=prefix+"<"+classname+">\n";for(var i=0;i<this.length;i++){
result +=prefix+"\t<item>\n";result +=Map24.toXml(prefix+"\t\t",this[i]);result +=prefix+"\t</item>\n";}
return result + prefix + "</"+classname+">\n";}
this.length=0;for(var i=0;i<arguments.length;i++){
this[this.length++]=arguments[i];}
}
Map24.Array.prototype=new Map24.Object;Map24.notifyClassReady("Map24.Array");Map24.Map=function(settings){
this.__constructor=function(settings){
Map24.Map.prototype.__constructor.call(this);this.Class="Map";this.Package="Map24";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;this._ToMGISwitchFlag=false;if(!(settings instanceof Object))settings={};this.SuppressInitialMrc=false;if(typeof settings["SuppressInitialMrc"]=="boolean"&&settings.SuppressInitialMrc){
this.SuppressInitialMrc=true;}
this.InstanceId=Map24.makeUniqueId();var i=0;while(Map24.arrayKeyExists(this.InstanceId,Map24.Map._Instances)){
this.InstanceId=Map24.makeUniqueId();if(i++>=1000)throw new Map24.Exceptions.Exception("Creating of a unique ID seems to be failed!",0,null,"Map24.Map","__constructor");}
Map24.Map._Instances[this.InstanceId]=this;this.Skin=null;if((typeof settings.Skin!="undefined")&&settings.Skin!=null){
if(!Map24.isObject(settings.Skin,"ISkin"))throw new Map24.Exceptions.InvalidArgument("The parameter 'Skin' doesn't implement the interface ISkin!",settings,"Map24.Map","__constructor");this.Skin=settings.Skin;}
settings.Map=this;if(this.Skin==null)this.Skin=new Map24.Skins.Map24Portal(settings);this.MapWin=null;this.AppletDisabled=false;if(typeof settings["DisableJava"]=="boolean")
this.AppletDisabled=settings.DisableJava;this.MapDoc=null;this.MapArea=null;this.MapWidth=0;this.CurrentMapView=null;this.MapHeight=0;try{
this.MapWidth=parseInt(settings.MapWidth,10)
this.MapHeight=parseInt(settings.MapHeight,10);}catch(e){}
if((typeof this.MapWidth!="number")||(this.MapWidth<=0))throw new Map24.Exceptions.InvalidArgument("The parameter 'MapWidth' is invalid!",settings,"Map24.Map","__constructor");if((typeof this.MapHeight!="number")||(this.MapHeight<=0))throw new Map24.Exceptions.InvalidArgument("The parameter 'MapHeight' is invalid!",settings,"Map24.Map","__constructor");if(!(settings.AppletParameter instanceof Object))
settings.AppletParameter={};if(typeof settings.AppletParameter["DYNURL_PRINT"]!="string"){
settings.AppletParameter["DYNURL_PRINT"]="javascript:Map24.onPrintButton('"+this.InstanceId+"');";settings.AppletParameter["TITLE_PRINT"]="_self";}
settings.AppletParameter["hiddenwidth"]=this.MapWidth;settings.AppletParameter["hiddenheight"]=this.MapHeight;for(var key in settings.AppletParameter){
if(settings.AppletParameter[key]==null){
try{
delete this.Skin._HiddenAppletParameter[key];}catch(e){}
}else
if((typeof settings.AppletParameter[key]=="string")||(typeof settings.AppletParameter[key]=="number"))
this.Skin._HiddenAppletParameter[key]=settings.AppletParameter[key];}
this.HiddenWin=window;if(Map24.isObject(settings.HiddenWin))this.HiddenWin=settings.HiddenWin;this.HiddenDoc=this.HiddenWin.document;this.HiddenArea=null;if(typeof settings.HiddenArea=="string"){
this.HiddenArea=this.HiddenDoc.getElementById(settings.HiddenArea);}else
if(Map24.isObject(settings.HiddenArea))
this.HiddenArea=settings.HiddenArea;if(this.HiddenArea==null){
this.HiddenArea=this.HiddenDoc.createElement("DIV");this.HiddenArea.style.position="absolute";this.HiddenArea.style.left="0px";this.HiddenArea.style.top="0px";this.HiddenArea.style.width="0px";this.HiddenArea.style.height="0px";this.HiddenArea.style.border="0px none";var bodyNode=this.HiddenDoc.getElementsByTagName("BODY")[0];bodyNode.appendChild(this.HiddenArea);}
this.Maptype="JAVA";if((typeof settings.Maptype=="string")){
if(settings.Maptype=="AUTO")settings.Maptype="JAVA";if(settings.Maptype!="JAVA"&&settings.Maptype!="MGI"&&settings.Maptype!="NONE")throw new Map24.Exceptions.InvalidArgument("The parameter 'Maptype' is invalid, not 'AUTO', 'JAVA', 'MGI' or 'NONE'!",settings,"Map24.Map","__constructor");this.Maptype=settings.Maptype;}else
if(!Map24.isNull(settings.Maptype))throw new Map24.Exceptions.InvalidArgument("The given parameter 'Maptype' is invalid, no string!",settings,"Map24.Map","__constructor");this.CurrentMaptype="NONE";this.addListener(new Callable(this,this._defaultEventHandler));this.Session=null;this.Webservices=new Map24.Webservices.Webservices(this);if(settings.MRC instanceof Map24.Webservices.Request.MapletRemoteControl)
this.Webservices.sendRequest(settings.MRC);this.Visible=false;if(typeof settings.MapWin!="undefined"||typeof settings.MapArea!="undefined")
{
if(typeof settings.MapWin=="undefined")settings.MapWin=null;this.setMapArea(settings.MapArea,settings.MapWin);this.Visible=true;}
}
this._defaultEventHandler=function(event){
if((event instanceof Map24.Events.SessionError)){
Map24.dump("Session error, Message: "+event.Message);}else
if((event instanceof Map24.Webservices.Response.GetMap24Application)){
if(Map24.Browser.IE&&Map24.Browser.MajorVersion==5&&this.Session!=null){
}else{
Map24.dump("Session ready!");Map24.dump(event.Session);this.Session=event.Session;this.Session.setParent(this);this.Skin.initialize(this);if(this.Visible){
this.Visible=false;this.show();}
if(!this.SuppressInitialMrc&&(this.Session.Config.Map=="NTGCET_EUROPE"||this.Session.Config.Map=="TAAND_EUROPE"))
{
var mrc=new Map24.Webservices.Request.MapletRemoteControl();mrc.push(
new Map24.Webservices.MRC.ControlLayer({
Control:"DISABLE",LayerIDs:["3005"],Map24Layer:true
})
);this.Webservices.sendRequest(mrc);}
this.Webservices.trigger(new Map24.Events.SessionReady(this));}
}else
if((event instanceof Map24.Webservices.Response.GetMapletSession))
{
try{
if(event.Request.IdxInMap24MRCs<this.Session.MrcHistory.length){
i=this.Session.MrcHistory.length - event.Request.IdxInMap24MRCs;}else
if(event.Request.IdxInMap24MRCs>this.Session.MrcHistory.length){
throw new Exception();}
for(;i<event.Commands.length;i++){
this.Session.MrcHistory.push(event.Commands[i]);}
this.Session.checkMrcHistoryChange();}catch(e){}
}
return true;}
this.setMaptype=function(maptype){
if(typeof maptype!="string"||(maptype!="JAVA"&&maptype!="MGI"))
throw new Map24.Exceptions.InvalidArgument("The given argument 'maptype' is not valid, not JAVA or MGI!",maptype,"Map24.Map","maptype");if(this.Maptype==maptype)return;this.Maptype=maptype;if(maptype=='MGI'){this._ToMGISwitchFlag=true;}
if(this.Visible)this.Skin.paint();}
this.getPrintMapURL=function(width,height){
if(typeof width=="undefined")width=500;if(typeof height=="undefined")height=400;var uri="?cgi=Map24RenderEngine";uri +="&action=renderMapImage";uri +="&mid=***";uri +="&sid="+this.Session.SessionId;uri +="&iw="+width;uri +="&ih="+height;if(this.Maptype=='JAVA'){
uri +="&view=Map24Applet";}
uri +="&t="+Math.random(10000000000);return "http://"+this.Session.Config.Host+"/"+this.Session.Config.ServiceInterface+uri;}
this.setMapArea=function(map_area,map_win){
Map24.dump("setMapArea called");if(Map24.isObject(map_win)){
if(!Map24.isDocument(map_win.document))throw new Map24.Exceptions.InvalidArgument("The parameter 'map_win' is no valid window!",map_win,"Map24.Map","setMapArea");this.MapWin=map_win;}else
this.MapWin=window;this.MapDoc=this.MapWin.document;Map24.YahooLib.Doc=this.MapDoc;Map24.YahooLib.Win=this.MapWin;if(map_area=="string")
this.MapArea=this.MapDoc.getElementById(map_area);else
if(Map24.isObject(map_area))
this.MapArea=map_area;this.MapArea.style.position="relative";this.MapArea.style.width=this.MapWidth+"px";this.MapArea.style.height=this.MapHeight+"px";this.MapArea.innerHTML="";}
this.resizeTo=function(width,height){
Map24.dump("Map24.Map.resizeTo("+width+","+height+") called, maparea: "+(this.MapArea!=null)+", visible: "+this.Visible+", displayer: "+(this.Skin?(this.Skin.Displayer?true:false):false)+", mapsize: "+this.MapWidth+"x"+this.MapHeight);this.MapWidth=width;this.MapHeight=height;if(this.Visible){
if((this.CurrentMaptype=="JAVA")&&this["Skin"]&&this.Skin["Displayer"])
try{
var canvas=this.Skin.Canvas;canvas.MapImages=[];canvas.clearBackground();canvas.clearViewportObjects();canvas.clearForeground();this.MapArea.style.width=width+"px";this.MapArea.style.height=height+"px";canvas.ViewportWidth=width;canvas.ViewportHeight=height;canvas.Width=width;canvas.Height=height;this.Skin.Displayer.style.width=width+"px";this.Skin.Displayer.style.height=height+"px";canvas.BackgroundNode.style.width=width+"px";canvas.BackgroundNode.style.height=height+"px";canvas.ForegroundNode.style.width=width+"px";canvas.ForegroundNode.style.height=height+"px";canvas.CanvasNode.style.width=width+"px";canvas.CanvasNode.style.height=height+"px";canvas.Overlay.style.width=width+"px";canvas.Overlay.style.height=height+"px";canvas.Viewport.style.width=width+"px";canvas.Viewport.style.height=height+"px";return;}catch(e){
Map24.dump(e);Map24.dump("Failed to resize applet, going to repaint it now!");}
this.hide();this.MapArea.style.width=width+"px";this.MapArea.style.height=height+"px";this.show();}
}
this.show=function(){
Map24.dump("Map24.Map.show() called, maparea: "+(this.MapArea!=null)+", visible: "+(this.Visible)+", displayer: "+(this.Skin?(this.Skin.Displayer?true:false):false)+", mapsize: "+this.MapWidth+"x"+this.MapHeight);if(!this.Visible){
this.Visible=true;if((this.Skin!=null)&&(this.Skin.Parent!=null))
this.Skin.show();}
}
this.hide=function(){
Map24.dump("Map24.Map.hide() called, maparea: "+(this.MapArea!=null)+", visible: "+(this.Visible)+", displayer: "+(this.Skin?(this.Skin.Displayer?true:false):false)+", mapsize: "+this.MapWidth+"x"+this.MapHeight);if(this.Visible){
this.Visible=false;if((this.Skin!=null)&&(this.Skin.Parent!=null))
this.Skin.hide();}
}
this.__constructor(settings);}
Map24.Map.prototype=new Map24.Object;Map24.Map.prototype.onUserAction=function(action,is_user_action,pos){}
Map24.Map.prototype.onMapViewChanged=function(action,is_user_action,view_change,new_view){}
Map24.onPrintButton=function(map_instance_id){
var map=Map24.Map._Instances[map_instance_id];if(map instanceof Map24.Map){
map.onUserAction("PRINT",true,null);}
}
Map24.onUserAction=function(action,is_user_action,map,pos){
if(map instanceof Map24.Map){
map.onUserAction(action,is_user_action,pos);}
}
Map24.onMapViewChanged=function(action,is_user_action,map,view_change,new_view){
if(map instanceof Map24.Map){
map.onMapViewChanged(action,is_user_action,view_change,new_view);}
}
Map24.Map._Instances={};Map24.Map.getInstanceById=function(instance_id){
if(typeof instance_id!="string")throw new Map24.Exceptions.InvalidArgument("The given parameter 'instance_id' is no string!",instance_id,"Map24.Map","getByInstanceId");if(!Map24.arrayKeyExists(instance_id,Map24.Map._Instances))throw new Map24.Exceptions.InvalidArgument("The given parameter 'instance_id' is invalid!",instance_id,"Map24.Map","getByInstanceId");return Map24.Map._Instances[instance_id];}
Map24.Session=function(app_key,session_id,config){
this.__constructor=function(app_key,session_id,config){
Map24.Session.prototype.__constructor.call(this);this.Class="Session";this.Package="Map24";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;if(!Map24.Session.isApplicationKey(app_key))throw new Map24.Exceptions.InvalidArgument("The given application key is invalid!",app_key,"Map24.Session","__constructor");if((typeof session_id!="string")||(session_id.length<=0))throw new Map24.Exceptions.InvalidArgument("Invalid session ID given!",session_id,"Map24.Session","__constructor");if(!(config instanceof Object))throw new Map24.Exceptions.InvalidArgument("Invalid config object given!",session_id,"Map24.Session","__constructor");this.ApplicationKey=app_key;this.SessionId=session_id;this.Config=config;this.MrcHistory=new Array();this.NextMrcIndex=0;this.MapObjects=new Hashtable();this.Groups=new Hashtable();}
this.serialize=function(){
}
this.restore=function(data){
}
this.rebuildSession=function(){
this.MapObjects=new Hashtable();this.Groups=new Hashtable();this.checkMrcHistoryChange();}
this.checkMrcHistoryChange=function(){
var cmd=null;var obj=null;var mobid=null;for(;this.NextMrcIndex<this.MrcHistory.length;this.NextMrcIndex++)
{
cmd=this.MrcHistory[this.NextMrcIndex];if(cmd instanceof Map24.Webservices.MRC.DeclareMap24Location){
mobid=cmd.MapObjectID;obj=new Map24.MapObjects.Location({
ObjectId:cmd.MapObjectID,Address:cmd.Address,Coordinate:cmd.Coordinate,Properties:{
LogoURL:cmd.LogoURL,Description:cmd.Description,URL:cmd.URL,TargetFrame:cmd.TargetFrame,CanvasReferencePoint:cmd.CanvasReferencePoint,LogoURLOnMouseOver:cmd.LogoURLOnMouseOver,SymbolIDOnMouseOver:cmd.SymbolIDOnMouseOver,Events:cmd.Events
}
});this.MapObjects[mobid]=obj;}else
if(cmd instanceof Map24.Webservices.MRC.DeclareMap24HTMLObject){
mobid=cmd.MapObjectID;obj=new Map24.MapObjects.HTMLObject({
ObjectId:cmd.MapObjectID,Coordinate:cmd.Coordinate,Properties:{
Orientation:cmd.Orientation,HTML:cmd.HTML
}
});this.MapObjects[mobid]=obj;}else
if(cmd instanceof Map24.Webservices.MRC.ControlMapObject){
var map_obj_ids=new Array();if((cmd.MapObjectIDs instanceof Array))
{
var value=null;for(var i=0;i<cmd.MapObjectIDs.length;i++)
{
value=cmd.MapObjectIDs[i];if(typeof value!="string")continue;var ids=value.split("|");if(!(ids instanceof Array))continue;for(var j=0;j<ids.length;j++){
if(typeof ids[j]!="string")continue;value=Map24.trim(ids[j]);if(value.length<=0)continue;map_obj_ids.push(value);}
}
if(cmd.Control=="ENABLE"){
for(var i=0;i<map_obj_ids.length;i++){
if(this.MapObjects[map_obj_ids[i]] instanceof Map24.MapObjects.MapObject){
this.MapObjects[map_obj_ids[i]].Visible=true;}
}
}else
if(cmd.Control=="DISABLE"){
for(var i=0;i<map_obj_ids.length;i++){
if(this.MapObjects[map_obj_ids[i]] instanceof Map24.MapObjects.MapObject){
this.MapObjects[map_obj_ids[i]].Visible=false;}
}
}else
if(cmd.Control=="SHOW"){
for(mobid in this.MapObjects){
this.MapObjects[mobid].Visible=false;}
for(var i=0;i<map_obj_ids.length;i++){
if(this.MapObjects[map_obj_ids[i]] instanceof Map24.MapObjects.MapObject){
this.MapObjects[map_obj_ids[i]].Visible=true;}
}
}else
if(cmd.Control=="HIDE"){
for(mobid in this.MapObjects){
this.MapObjects[mobid].Visible=true;}
for(var i=0;i<map_obj_ids.length;i++){
if(this.MapObjects[map_obj_ids[i]] instanceof Map24.MapObjects.MapObject){
this.MapObjects[map_obj_ids[i]].Visible=false;}
}
}
}
}
}
}
this.__constructor(app_key,session_id,config);}
Map24.Session.prototype=new Map24.Object;Map24.Session.isApplicationKey=Map24.isApplicationKey;Map24.notifyClassReady("Map24.Session");Map24.Size=function(width,height){
this.__constructor=function(width,height){
Map24.Size.prototype.__constructor.call(this);this.Class="Point";this.Package="Map24";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;if(typeof width=="string")width=parseFloat(width);if(!Map24.isNumeric(width))throw new Map24.Exceptions.InvalidArgument("The parameter 'width' in no valid number!",width,"Map24.Size","__constructor");if(typeof height=="string")height=parseFloat(height);if(!Map24.isNumeric(height))throw new Map24.Exceptions.InvalidArgument("The parameter 'height' in no valid number!",height,"Map24.Size","__constructor");this.Width=width;this.Height=height;}
this.__constructor(width,height);}
Map24.Size.prototype=new Map24.Object;Map24.notifyClassReady("Map24.Size");Map24.Address=function(default_args){
this.__constructor=function(default_args){
Map24.Address.prototype.__constructor.call(this,default_args);this.Class="Address";this.Package="Map24";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;if(typeof default_args.Street!="string")default_args.Street="";if(typeof default_args.Postcode!="string")default_args.Postcode="";if(typeof default_args.City!="string")default_args.City="";if(typeof default_args.Country!="string")default_args.Country="";if(typeof default_args.State!="string")default_args.State="";if(typeof default_args.County!="string")default_args.County="";if(typeof default_args.District!="string")default_args.District="";if(typeof default_args.Housenumber=="number")default_args.Housenumber=""+default_args.Housenumber;else
if(typeof default_args.Housenumber!="string")default_args.Housenumber="";if(typeof default_args.Streetnumber=="number")default_args.Streetnumber=""+default_args.Streetnumber;else
if(typeof default_args.Streetnumber!="string")default_args.Streetnumber="";this.Street=default_args.Street;this.StreetNumber=default_args.Streetnumber;this.Housenumber=default_args.Housenumber;this.Postcode=default_args.Postcode;this.City=default_args.City;this.District=default_args.District;this.Country=default_args.Country;this.State=default_args.State;this.County=default_args.County;}
this.isValid=function(){
if(Map24.empty(this.Country))return false;return!(Map24.empty(this.City)&&Map24.empty(this.Postcode));}
this.toString=function(){
var s="";if(this.Street.length>0)s+=this.Street+"\r\n";if(this.Postcode.length>0)s+=this.Postcode;if(this.City.length>0){
if(this.Postcode.length>0)
s+=" "+this.City;else
s+=this.City;}
if(this.Postcode.length>0||this.City.length>0)s+="\r\n";if(this.District.length>0)s+="("+this.District+")\r\n";if(this.Country.length>0)s+="["+this.Country+"]\r\n";if(this.State.length>0)s+="{"+this.State+"}\r\n";if(this.County.length>0)s+="-"+this.County+"-\r\n";return s;}
this.toXml=function(prefix,classname){
if(typeof prefix!="string")prefix="";if(typeof classname!="string"||classname.length<=0)
classname=this.Class;return Map24.toXml(prefix,{
ID:null,HouseNo:this.Housenumber,Street:this.Street,ZIP:this.Postcode,City:this.City,District:this.District,County:this.County,State:this.State,Country:this.Country
},classname);}
this.__constructor(default_args);}
Map24.Address.prototype=new Map24.Object;Map24.notifyClassReady("Map24.Address");Map24.Point=function(x,y){
this.__constructor=function(x,y){
Map24.Point.prototype.__constructor.call(this);this.Class="Point";this.Package="Map24";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;if(!Map24.isNull(x)){
if(typeof x=="string")x=parseFloat(x);if(typeof x!="number")throw new Map24.Exceptions.InvalidArgument("The given parameter 'x' is no number!",x,"Map24.Point","__constructor");}else
x=0;if(!Map24.isNull(y)){
if(typeof y=="string")y=parseFloat(y);if(typeof y!="number")throw new Map24.Exceptions.InvalidArgument("The given parameter 'y' is no number!",y,"Map24.Point","__constructor");}else
y=0;this.X=x;this.Y=y;}
this.__constructor(x,y);}
Map24.Point.prototype=new Map24.Object;Map24.notifyClassReady("Map24.Point");Map24.Pixel=function(x,y){
this.__constructor=function(x,y){
Map24.Pixel.prototype.__constructor.call(this,x,y);this.Class="Pixel";this.Package="Map24";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;this.X=Math.round(this.X);this.Y=Math.round(this.Y);}
this.__constructor(x,y);}
Map24.Pixel.prototype=new Map24.Point;Map24.notifyClassReady("Map24.Pixel");Map24.Coordinate=function(longitude,latitude){
this.__constructor=function(longitude,latitude){
if(Map24.isNull(latitude)&&(longitude instanceof Object)){
latitude=longitude.Latitude;longitude=longitude.Longitude;}
if(!Map24.isNull(longitude)){
if(typeof longitude=="undefined")longitude=0;if(typeof longitude=="string")longitude=parseFloat(longitude);if(!Map24.isNumeric(longitude))throw new Map24.Exceptions.InvalidArgument("The given parameter 'longitude' is invalid!",longitude,"Map24.Coordinate","__constructor");}else
longitude=0;if(!Map24.isNull(longitude)){
if(typeof latitude=="undefined")latitude=0;if(typeof latitude=="string")latitude=parseFloat(latitude);if(!Map24.isNumeric(latitude))throw new Map24.Exceptions.InvalidArgument("The given parameter 'latitude' is invalid!",latitude,"Map24.Coordinate","__constructor");}else
latitude=0;Map24.Coordinate.prototype.__constructor.call(this,longitude,latitude);this.IgnoreForSerialization.X=1;this.IgnoreForSerialization.Y=1;this.Class="Coordinate";this.Package="Map24";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;this.Longitude=longitude;this.Latitude=latitude;this.distanceTo=function(p){
if(!(p instanceof Map24.Coordinate))return null;try{
var long1=Math.min(this.Longitude,p.Longitude)/ 60;var lat1=Math.min(this.Latitude,p.Latitude)/ 60;var long2=Math.max(this.Longitude,p.Longitude)/60;var lat2=Math.max(this.Latitude,p.Latitude)/ 60;lat1=(lat1*Math.PI)/ 180;long1=(long1*Math.PI)/ 180;lat2=(lat2*Math.PI)/ 180;long2=(long2*Math.PI)/ 180;var a=6378137.0;var b=6356752.3142;var f=(a-b)/ a;var e=2.0*f - f*f;var beta=(a / Math.sqrt(1.0 - e * Math.sin(lat1)* Math.sin(lat1)));var cos=Math.cos(lat1);var x=beta * cos * Math.cos(long1);var y=beta * cos * Math.sin(long1);var z=beta *(1 - e)* Math.sin(lat1);beta=(a / Math.sqrt(1.0 - e * Math.sin(lat2)* Math.sin(lat2)));cos=Math.cos(lat2);x -=(beta * cos * Math.cos(long2));y -=(beta * cos * Math.sin(long2));z -=(beta *(1 - e)* Math.sin(lat2));return Math.sqrt((x*x)+(y*y)+(z*z));}catch(ex){
Map24.e(ex);return null;}
}
}
this.__constructor(longitude,latitude);this.toString=function(){
return "longitude= "+this.Longitude+" | latitude= "+this.Latitude+"\r\n";}
}
Map24.Coordinate.prototype=new Map24.Point;Map24.Coordinate.isValidCoordinate=function(longitude,latitude){
if(typeof longitude=="string")longitude=parseFloat(longitude);if(typeof longitude!="number")return false;if(typeof latitude=="string")latitude=parseFloat(latitude);if(typeof latitude!="number")return false;return true;}
Map24.Coordinate.LONGITUDE_MAX=180*60;Map24.Coordinate.LONGITUDE_MIN=180*60*-1;Map24.Coordinate.LATITUDE_MAX=90*60;Map24.Coordinate.LATITUDE_MIN=90*60*-1;Map24.notifyClassReady("Map24.Coordinate");Map24.Color=function(red,green,blue,alpha){
this.__constructor=function(red,green,blue,alpha){
var default_args=null;if((red instanceof Object))
default_args=red;else
default_args={Red:red,Green:green,Blue:blue,Alpha:alpha};Map24.Color.prototype.__constructor.call(this,default_args);this.Class="Color";this.Package="Map24";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;if(typeof default_args.R!="undefined")
default_args.Red=default_args.R;if(typeof default_args.r!="undefined")
default_args.Red=default_args.r;if(typeof default_args.red!="undefined")
default_args.Red=default_args.red;if(typeof default_args.Red=="string")
default_args.Red=parseInt(default_args.Red);if(!Map24.isNumeric(default_args.Red)||(default_args.Red<0)||(default_args.Red>255))throw new Map24.Exceptions.InvalidArgument("The color 'Red' is invalid (not numeric, less then zero or greater 255!",default_args.Red,"Map24.Color","__constructor");if(typeof default_args.G!="undefined")
default_args.Green=default_args.G;if(typeof default_args.g!="undefined")
default_args.Green=default_args.g;if(typeof default_args.green!="undefined")
default_args.Green=default_args.green;if(typeof default_args.Green=="string")
default_args.Green=parseInt(default_args.Green);if(!Map24.isNumeric(default_args.Green)||(default_args.Green<0)||(default_args.Green>255))throw new Map24.Exceptions.InvalidArgument("The color 'Green' is invalid (not numeric, less then zero or greater 255!",default_args.Green,"Map24.Color","__constructor");if(typeof default_args.B!="undefined")
default_args.Blue=default_args.B;if(typeof default_args.b!="undefined")
default_args.Blue=default_args.b;if(typeof default_args.blue!="undefined")
default_args.Blue=default_args.blue;if(typeof default_args.Blue=="string")
default_args.Blue=parseInt(default_args.Blue);if(!Map24.isNumeric(default_args.Blue)||(default_args.Blue<0)||(default_args.Blue>255))throw new Map24.Exceptions.InvalidArgument("The color 'Blue' is invalid (not numeric, less then zero or greater 255!",default_args.Blue,"Map24.Color","__constructor");if(typeof default_args.A!="undefined")
default_args.Alpha=default_args.A;if(typeof default_args.a!="undefined")
default_args.Alpha=default_args.a;if(typeof default_args.alpha!="undefined")
default_args.Alpha=default_args.alpha;if(typeof default_args.Alpha=="string")
default_args.Alpha=parseInt(default_args.Alpha);if(!Map24.isNumeric(default_args.Alpha)||(default_args.Alpha<0)||(default_args.Alpha>255))throw new Map24.Exceptions.InvalidArgument("The color 'Alpha' is invalid (not numeric, less then zero or greater 255!",default_args.Alpha,"Map24.Color","__constructor");this.red=default_args.Red;this.green=default_args.Green;this.blue=default_args.Blue;this.alpha=default_args.Alpha;}
this.toHex=function(add_alpha){
if(typeof add_alpha!="boolean")add_alpha=true;var r=Map24.dec2hex(this.red);if(r.length<=1)r="0"+r;var g=Map24.dec2hex(this.green);if(g.length<=1)g="0"+g;var b=Map24.dec2hex(this.blue);if(b.length<=1)b="0"+b;var a="";if(add_alpha){
a=Map24.dec2hex(this.alpha);if(a.length<=1)a="0"+a;}
return ""+r+g+b+a;}
this.toString=function(){
var s="Color{"+
"\nRed: "+this.red+
"\nGreen: "+this.green+
"\nBlue: "+this.blue+
"\nAlpha: "+this.alpha+
"}";return s;}
this.__constructor(red,green,blue,alpha);}
Map24.Color.prototype=new Map24.Object;Map24.notifyClassReady("Map24.Color");Map24.Rectangle=function(top_left,lower_right){
this.__constructor=function(top_left,lower_right){
Map24.Rectangle.prototype.__constructor.call(this);this.Class="Rectangle";this.Package="Map24";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;if(!Map24.isObject(top_left,"Map24.Point")||!Map24.isObject(lower_right,"Map24.Point"))throw new Map24.Exceptions.InvalidArgument("The parameter 'top_left' or 'lower_right' is no valid Map24.Point object!",[top_left,lower_right],"Map24.Rectangle","__constructor");if(top_left.Class!=top_left.Class)throw new Map24.Exceptions.InvalidArgument("The parameter 'top_left' is not of the same type as 'lower_right'!",[top_left,lower_right],"Map24.Rectangle","__constructor");this._HasCoordinates=(top_left instanceof Map24.Coordinate?true:false);this._HasPixel=(top_left instanceof Map24.Pixel?true:false);this._HasPoints=(top_left instanceof Map24.Point?true:false);this.TopLeft=top_left;this.LowerRight=lower_right;}
this.isMathematical=function(){
return!this._HasCoordinates;}
this.isGeographic=function(){
return this._HasCoordinates;}
this.getCenter=function(){
if(this._HasCoordinates){
var long_center=this.TopLeft.Longitude + 
(Math.abs(this.TopLeft.Longitude - 
this.LowerRight.Longitude)/2);var lat_center=this.TopLeft.Latitude - 
(Math.abs(this.TopLeft.Latitude - 
this.LowerRight.Latitude)/2);return new Map24.Coordinate(long_center,lat_center);}else{
var cx=this.TopLeft.X+(Math.abs(this.TopLeft.X-this.LowerRight.X)/2);var cy=this.TopLeft.Y+(Math.abs(this.TopLeft.Y-this.LowerRight.Y)/2);if(this._HasPixel)
return new Map24.Pixel(cx,cy);return new Map24.Point(cx,cy);}
}
this.getWidth=function(geo){
if(typeof geo!="boolean")geo=false;if(this._HasCoordinates&&geo){
var mid_lat=Math.min(this.LowerRight.Longitude,this.TopLeft.Longitude)+
(Math.abs(this.LowerRight.Longitude - this.TopLeft.Longitude)/2);var p0=new Map24.Coordinate(this.TopLeft.Longitude,mid_lat);var p1=new Map24.Coordinate(this.LowerRight.Longitude,mid_lat);return p0.distanceTo(p1);}else{
if(this._HasCoordinates)
return Math.abs(this.LowerRight.Longitude - this.TopLeft.Longitude);else
if(this._HasPixel)
return Math.abs(this.LowerRight.X - this.TopLeft.X)+1;else
return Math.abs(this.LowerRight.X - this.TopLeft.X);}
}
this.getHeight=function(geo){
if(typeof geo!="boolean")geo=false;if(this._HasCoordinates&&geo){
var p0=new Map24.Coordinate(0,this.LowerRight.Latitude);var p1=new Map24.Coordinate(0,this.TopLeft.Latitude);return p0.distanceTo(p1);}else{
if(this._HasCoordinates)
return Math.abs(this.LowerRight.Latitude - this.TopLeft.Latitude);else
if(this._HasPixel)
return Math.abs(this.LowerRight.Y - this.TopLeft.Y)+1;else
return Math.abs(this.LowerRight.Y - this.TopLeft.Y);}
}
this.containsPoint=function(p){
if(this._HasCoordinates){
if(p instanceof Map24.Coordinate){
return((p.Longitude>=this.TopLeft.Longitude)&&(p.Longitude<=this.LowerRight.Longitude)&&(p.Latitude>=this.LowerRight.Latitude)&&(p.Latitude<=this.TopLeft.Latitude));}
}else{
if(p instanceof Map24.Point){
return((p.X>=this.TopLeft.X)&&(p.X<=this.LowerRight.X)&&(p.Y>=this.TopLeft.Y)&&(p.Y<=this.LowerRight.Y));}
}
return false;}
this.calcPerDiffTo=function(rect){
if(!(rect instanceof Map24.Rectangle))return 1;var ox1=this.TopLeft.X/60;var oy1=180 - this.TopLeft.Y/60;var ox2=this.LowerRight.X/60;var oy2=180 - this.LowerRight.Y/60;var nx1=rect.TopLeft.X/60;var ny1=180 - rect.TopLeft.Y/60;var nx2=rect.LowerRight.X/60;var ny2=180 - rect.LowerRight.Y/60;if((nx1>ox2)||(nx2<ox1)||(ny1>oy2)||(ny2<oy1))return 1;var dx=(ox2<nx2?ox2:nx2)-(ox1>nx1?ox1:nx1);var dy=(oy2<ny2?oy2:ny2)-(oy1>ny1?oy1:ny1);var ab=dx*dy;var ao=(ox2-ox1)*(oy2-oy1);var an=(nx2-nx1)*(ny2-ny1);return 1 -(ao>an?ab/ao:ab/an);}
this.toString=function(){
return"X1:"+this.TopLeft.X+", Y1:"+this.TopLeft.Y+", "+
"X2:"+this.LowerRight.X+", Y2:"+this.LowerRight.Y;}
this.__constructor(top_left,lower_right);}
Map24.Rectangle.prototype=new Map24.Object;Map24.notifyClassReady("Map24.Rectangle");Map24.Browser=function(){}
Map24.Browser.Name=null;Map24.Browser.IE=false;Map24.Browser.OPERA=false;Map24.Browser.SAFARI=false;Map24.Browser.MOZILLA=false;Map24.Browser.KONQUEROR=false;Map24.Browser.FIREFOX=false;Map24.Browser.CAMINO=false;Map24.Browser.NAVIGATOR=false;Map24.Browser.MAC=false;Map24.Browser.LINUX=false;Map24.Browser.WINDOWS=false;Map24.Browser.MajorVersion=0;Map24.Browser.MinorVersion=0;Map24.Browser.Revision=0;Map24.Browser.LEFT_BUTTON=1;Map24.Browser.RIGHT_BUTTON=2;Map24.Browser.MIDDLE_BUTTON=4;Map24.Browser.isQuirksMode=function(doc){
if(typeof doc=="undefined"||doc==null)doc=document;if(typeof doc["compatMode"]!="string")return true;return(doc.compatMode=="BackCompat"||doc.compatMode=="QuirksMode");}
Map24.Browser.leftButton=function(button_flags){
return((button_flags&Map24.Browser.LEFT_BUTTON)==Map24.Browser.LEFT_BUTTON);}
Map24.Browser.rightButton=function(button_flags){
return((button_flags&Map24.Browser.RIGHT_BUTTON)==Map24.Browser.RIGHT_BUTTON);}
Map24.Browser.middleButton=function(button_flags){
return((button_flags&Map24.Browser.MIDDLE_BUTTON)==Map24.Browser.MIDDLE_BUTTON);}
Map24.Browser.getWindowSize=function(win){
if(typeof win=="undefined")win=window;if(!Map24.isWindow(win))throw new Map24.Exception.InvalidArgument("The parameter 'win' is no valid window!",win,"Map24.Browser","getWindowSize");var LayoutIsIE6CSS;if(document.images){
LayoutIsIE6CSS=(document.compatMode&&document.compatMode.indexOf("CSS1")>=0)? true:false;}
var width=0;var height=0;if(window.innerWidth){
width=window.innerWidth;}else if(LayoutIsIE6CSS){
width=document.body.parentElement.clientWidth;}else if(document.body&&document.body.clientWidth){
width=document.body.clientWidth;}
if(window.innerHeight){
height=window.innerHeight;}else if(LayoutIsIE6CSS){
height=document.body.parentElement.clientHeight;}else if(document.body&&document.body.clientHeight){
height=document.body.clientHeight;}
return new Map24.Size(
width,height
);}
Map24.Browser.initialize=function(){
try{
Map24.Browser.MAC=navigator.userAgent.indexOf("Macintosh")>=0;Map24.Browser.WINDOWS=navigator.userAgent.indexOf("Windows")>=0;Map24.Browser.LINUX=navigator.userAgent.indexOf("Linux")>=0;if(navigator.userAgent.match(new RegExp("Camino"))){
Map24.Browser.CAMINO=true;Map24.Browser.Name="Camino";var rexp=new RegExp("Camino[ /]*([\d])\.([\d]{1,2})");var res=rexp.exec(navigator.userAgent);Map24.Browser.MajorVersion=parseInt(res[1]);Map24.Browser.MinorVersion=parseInt(res[2]);Map24.Browser.Revision=0;}else
if(navigator.userAgent.match(new RegExp("Navigator"))){
Map24.Browser.NAVIGATOR=true;Map24.Browser.Name="Netscape Navigator";var rexp=new RegExp("Navigator[ /]*([\d])\.([\d]{1,2})");var res=rexp.exec(navigator.userAgent);Map24.Browser.MajorVersion=parseInt(res[1]);Map24.Browser.MinorVersion=parseInt(res[2]);Map24.Browser.Revision=0;}else
if(navigator.userAgent.match(new RegExp("Opera"))){
Map24.Browser.OPERA=true;Map24.Browser.Name="Opera";var rexp=new RegExp("Opera[ /]+([0-9])\\.([0-9]{1,2})");var res=rexp.exec(navigator.userAgent);Map24.Browser.MajorVersion=parseInt(res[1]);Map24.Browser.MinorVersion=parseInt(res[2]);Map24.Browser.Revision=0;}else
if(navigator.userAgent.match(new RegExp("MSIE"))){
Map24.Browser.IE=true;Map24.Browser.Name="Microsoft Internet Explorer";var rexp=new RegExp("MSIE ([0-9])\\.([0-9])([0-9]{0,1})");var res=rexp.exec(navigator.userAgent);Map24.Browser.MajorVersion=parseInt(res[1]);Map24.Browser.MinorVersion=parseInt(res[2]);try{
Map24.Browser.Revision=parseInt(res[3]);}catch(e){}
if(isNaN(Map24.Browser.Revision))Map24.Browser.Revision=0;if(Map24.Browser.MajorVersion==6&&Map24.Browser.MinorVersion==0){
try{
var ie_rexp=new RegExp("(SV1)");var ie_res=rexp.exec(navigator.userAgent);if((ie_res instanceof Array)&&(ie_res.length>=2)&&(ie_res[1]=="SV1"))
{
Map24.Browser.Revision=1;}
}catch(e){}
}
}else
if(navigator.userAgent.match(new RegExp("Safari"))){
Map24.Browser.SAFARI=true;Map24.Browser.Name="Safari";try{
var rexp=new RegExp("Version\\/([0-9]+)\\.([0-9]+)\\.([0-9]+)");var res=rexp.exec(navigator.userAgent);Map24.Browser.MajorVersion=parseInt(res[1]);Map24.Browser.MinorVersion=parseInt(res[2]);Map24.Browser.Revision=parseInt(res[3]);}catch(e){}
}else
if(navigator.userAgent.match(new RegExp("Firefox"))){
Map24.Browser.FIREFOX=true;Map24.Browser.Name="Firefox";var rexp=new RegExp("Firefox\\/([0-9])\\.([0-9])\\.?([0-9]{0,1})");var res=rexp.exec(navigator.userAgent);Map24.Browser.MajorVersion=parseInt(res[1]);Map24.Browser.MinorVersion=parseInt(res[2]);try{
Map24.Browser.Revision=parseInt(res[3]);}catch(e){}
if(!Map24.isNumeric(Map24.Browser.Revision))
Map24.Browser.Revision=0;}else
if(navigator.userAgent.match(new RegExp("Konqueror\\/"))){
Map24.Browser.KONQUEROR=true;Map24.Browser.Name="Konqueror";var rexp=new RegExp("Konqueror\\/([0-9])\\.([0-9])\\.{0,1}([0-9]{0,1})");var res=rexp.exec(navigator.userAgent);Map24.Browser.MajorVersion=parseInt(res[1]);Map24.Browser.MinorVersion=parseInt(res[2]);try{
Map24.Browser.Revision=parseInt(res[3]);}catch(e){}
if(!Map24.isNumeric(Map24.Browser.Revision))
Map24.Browser.Revision=0;}else
if(navigator.userAgent.match(new RegExp("Mozilla\\/"))){
Map24.Browser.MOZILLA=true;Map24.Browser.Name="Mozilla";var rexp=new RegExp("rv:([0-9])\\.([0-9]{1,2})\\.?([0-9]{0,})");var res=rexp.exec(navigator.userAgent);Map24.Browser.MajorVersion=parseInt(res[1]);Map24.Browser.MinorVersion=parseInt(res[2]);try{
Map24.Browser.Revision=parseInt(res[3]);}catch(e){}
if(!Map24.isNumeric(Map24.Browser.Revision))
Map24.Browser.Revision=0;}else{
Map24.Browser.Name="Unknown";}
}catch(e){
Map24.Browser.Name="Unknown";}
}
Map24.Browser.JavaEnabled=null;Map24.Browser.JavaInstalled=null;Map24.Browser.JavaVendor=null;Map24.Browser.JavaMajorVersion=null;Map24.Browser.JavaMinorVersion=null;Map24.Browser.JavaUpdate=null;Map24.Browser.javaAvailable=function(){
if(Map24.Browser.JavaEnabled==null){
if(Map24.Browser.IE){
Map24.Browser.JavaEnabled=window.clientInformation.javaEnabled();if(Map24.Browser.JavaEnabled){
document.getElementsByTagName("head")[0].insertBefore(document.createElement("object"),document.getElementsByTagName("head")[0].firstChild);document.getElementsByTagName("head")[0].firstChild.outerHTML='<object id="Map24_Browser_JavaVM_Test" width="1" height="1" style="display:none;" codebase="#version=1,0,0,0"><param name="code" value="Map24BrowserJavaVMTest.class" /></object>';document.getElementById('Map24_Browser_JavaVM_Test').setAttribute('classid','clsid:8AD9C840-044E-11D1-B3E9-00805F499D93');if(document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('object')&&document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('readyState')==4){
Map24.Browser.JavaInstalled=true;Map24.Browser.JavaVendor="Sun Microsystems Inc.";}
else{
document.getElementsByTagName("head")[0].firstChild.outerHTML='<object id="Map24_Browser_JavaVM_Test" width="1" height="1" style="display:none;"><param name="code" value="Map24BrowserJavaVMTest.class" /></object>';document.getElementById('Map24_Browser_JavaVM_Test').setAttribute('classid','clsid:08B0E5C0-4FCB-11CF-AAA5-00401C608500');if(document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('readyState')==4){
Map24.Browser.JavaInstalled=true;Map24.Browser.JavaVendor="Microsoft Inc.";}
else
Map24.Browser.JavaInstalled=false;}
document.getElementsByTagName("head")[0].removeChild(document.getElementById('Map24_Browser_JavaVM_Test'));}
}
else{
this.JavaEnabled=navigator.javaEnabled();if(Map24.Browser.OPERA){
var javaVer;if(javaVer=(window.java.lang.System.getProperty("java.version")+ "").match(/1\.([\d])\.([\d]+)\_([\d]+)/)){
Map24.Browser.JavaInstalled=true;Map24.Browser.JavaVendor=(Map24.Browser.MAC)? "Apple Inc.":"Sun Microsystems Inc.";Map24.Browser.JavaMajorVersion=parseInt(javaVer[1]);Map24.Browser.JavaMinorVersion=parseInt(javaVer[2]);Map24.Browser.JavaUpdate=parseInt(javaVer[3]);}
else if(javaVer=(window.java.lang.System.getProperty("java.version")+ "").match(/1\.([\d])\.([\d]+)/)){
Map24.Browser.JavaInstalled=true;Map24.Browser.JavaVendor=(Map24.Browser.MAC)? "Apple Inc.":"Sun Microsystems Inc.";Map24.Browser.JavaMajorVersion=parseInt(javaVer[1]);Map24.Browser.JavaMinorVersion=parseInt(javaVer[2]);}
else
Map24.Browser.JavaInstalled=false;}
else 
Map24.Browser.JavaInstalled=(typeof navigator.mimeTypes["application/x-java-applet"]!='undefined'&&typeof navigator.mimeTypes["application/x-java-applet"].enabledPlugin!='undefined');}
}
return(Map24.Browser.JavaInstalled&&Map24.Browser.JavaEnabled);}
Map24.Browser.getJavaVendor=function(){
if(!Map24.Browser.javaAvailable()&&!Map24.Browser.JavaEnabled)
return null;if(Map24.Browser.JavaVendor==null)
Map24.Browser.JavaVendor=(Map24.Browser.MAC)? "Apple Inc.":"Sun Microsystems Inc.";return Map24.Browser.JavaVendor;}
Map24.Browser.getJavaMajorVersion=function(){
if(Map24.Browser.SAFARI||Map24.Browser.KONQUEROR)
return null;if(!Map24.Browser.javaAvailable()&&!Map24.Browser.JavaInstalled)
return null;if(Map24.Browser.JavaMajorVersion==null){
if(Map24.Browser.IE){
document.getElementsByTagName("head")[0].insertBefore(document.createElement("object"),document.getElementsByTagName("head")[0].firstChild);if(Map24.Browser.JavaVendor=="Sun Microsystems Inc."){
for(var i=7;Map24.Browser.JavaMajorVersion==null;i--){
var codebaseVersion=(i>4)? i+',0,0,0':'1,'+i+',0,0';document.getElementsByTagName("head")[0].firstChild.outerHTML='<object id="Map24_Browser_JavaVM_Test" width="1" height="1" style="display:none;" codebase="#version='+codebaseVersion+'"><param name="code" value="Map24BrowserJavaVMTest.class" /></object>';document.getElementById('Map24_Browser_JavaVM_Test').setAttribute('classid','clsid:8AD9C840-044E-11D1-B3E9-00805F499D93');if(document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('object')&&document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('readyState')==4){
Map24.Browser.JavaMajorVersion=i;break;}
}
}
else{
for(var i=5;Map24.Browser.JavaMajorVersion==null;i--){
var codebaseVersion=i+',0,0,0';document.getElementsByTagName("head")[0].firstChild.outerHTML='<object id="Map24_Browser_JavaVM_Test" width="1" height="1" style="display:none;" codebase="#version='+codebaseVersion+'"><param name="code" value="Map24BrowserJavaVMTest.class" /></object>';document.getElementById('Map24_Browser_JavaVM_Test').setAttribute('classid','clsid:08B0E5C0-4FCB-11CF-AAA5-00401C608500');if(document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('readyState')==4){
Map24.Browser.JavaMajorVersion=i;break;}
}
}
document.getElementsByTagName("head")[0].removeChild(document.getElementsByTagName("head")[0].firstChild);}
else{
if((Map24.Browser.FIREFOX||Map24.Browser.MOZILLA||Map24.Browser.NAVIGATOR)&&!Map24.Browser.MAC)
var versionString=navigator.mimeTypes["application/x-java-applet"].enabledPlugin.description;else if((Map24.Browser.FIREFOX||Map24.Browser.CAMINO)&&Map24.Browser.MAC)
var versionString=navigator.mimeTypes["application/x-java-applet"].enabledPlugin[ navigator.mimeTypes["application/x-java-applet"].enabledPlugin.length-1 ].type;else if((Map24.Browser.MOZILLA||Map24.Browser.NAVIGATOR)&&Map24.Browser.MAC){
var versionString=navigator.mimeTypes["application/x-java-applet"].enabledPlugin[ navigator.mimeTypes["application/x-java-applet"].enabledPlugin.length-1 ].suffixes;}
var regExG;if((Map24.Browser.FIREFOX||Map24.Browser.CAMINO)&&Map24.Browser.MAC){
var regExG=versionString.match(/1\.([\d])/);Map24.Browser.JavaMajorVersion=regExG[1];}
else{
if(regExG=versionString.match(/1\.([\d])\.([\d]+)_([\d]+)/)){
Map24.Browser.JavaMajorVersion=parseInt(regExG[1]);Map24.Browser.JavaMinorVersion=parseInt(regExG[2]);Map24.Browser.JavaUpdate=parseInt(regExG[3]);}
else if(regExG=versionString.match(/1\.([\d])\.([\d]+)/)){
Map24.Browser.JavaMajorVersion=parseInt(regExG[1]);Map24.Browser.JavaMinorVersion=parseInt(regExG[2]);}
}
}
}
return Map24.Browser.JavaMajorVersion;}
Map24.Browser.getJavaMinorVersion=function(){
if(Map24.Browser.SAFARI||Map24.Browser.KONQUEROR)
return null;if(!Map24.Browser.javaAvailable()&&!Map24.Browser.JavaInstalled)
return null;if(Map24.Browser.JavaMinorVersion==null){
Map24.Browser.getJavaMajorVersion();if(Map24.Browser.IE){
document.getElementsByTagName("head")[0].insertBefore(document.createElement("object"),document.getElementsByTagName("head")[0].firstChild);if(Map24.Browser.JavaVendor=="Sun Microsystems Inc."){
for(var i=1;Map24.Browser.JavaMinorVersion==null;i++){
var codebaseVersion=(Map24.Browser.JavaMajorVersion>4)? Map24.Browser.JavaMajorVersion + ','+i+',0,0':'1,'+Map24.Browser.JavaMajorVersion+','+i+',0';document.getElementsByTagName("head")[0].firstChild.outerHTML='<object id="Map24_Browser_JavaVM_Test" width="1" height="1" style="display:none;" codebase="#version='+codebaseVersion+'"><param name="code" value="Map24BrowserJavaVMTest.class" /></object>';document.getElementById('Map24_Browser_JavaVM_Test').setAttribute('classid','clsid:8AD9C840-044E-11D1-B3E9-00805F499D93');if(!document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('object')||document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('readyState')<4){
Map24.Browser.JavaMinorVersion=i - 1;break;}
}
}
else{
for(var i=1;Map24.Browser.JavaMinorVersion==null;i++){
var codebaseVersion=Map24.Browser.JavaMajorVersion+','+i+',0,0';document.getElementsByTagName("head")[0].firstChild.outerHTML='<object id="Map24_Browser_JavaVM_Test" width="1" height="1" style="display:none;" codebase="#version='+codebaseVersion+'"><param name="code" value="Map24BrowserJavaVMTest.class" /></object>';document.getElementById('Map24_Browser_JavaVM_Test').setAttribute('classid','clsid:08B0E5C0-4FCB-11CF-AAA5-00401C608500');if(document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('readyState')<4){
Map24.Browser.JavaMinorVersion=i - 1;break;}
}
}
document.getElementsByTagName("head")[0].removeChild(document.getElementsByTagName("head")[0].firstChild);}
}
return Map24.Browser.JavaMinorVersion;}
Map24.Browser.getJavaUpdate=function(){
if(Map24.Browser.SAFARI||Map24.Browser.KONQUEROR)
return null;if(!Map24.Browser.javaAvailable()&&!Map24.Browser.JavaInstalled)
return null;if(Map24.Browser.JavaUpdate==null){
Map24.Browser.getJavaMajorVersion();if(Map24.Browser.IE){
document.getElementsByTagName("head")[0].insertBefore(document.createElement("object"),document.getElementsByTagName("head")[0].firstChild);if(Map24.Browser.JavaVendor=="Sun Microsystems Inc."){
for(var i=1;Map24.Browser.JavaUpdate==null;i++){
var codebaseVersion=(Map24.Browser.JavaMajorVersion>4)? Map24.Browser.JavaMajorVersion + ','+Map24.Browser.JavaMinorVersion+','+i+'0,0':'1,'+Map24.Browser.JavaMajorVersion+','+Map24.Browser.JavaMinorVersion+','+i+'0';document.getElementsByTagName("head")[0].firstChild.outerHTML='<object id="Map24_Browser_JavaVM_Test" width="1" height="1" style="display:none;" codebase="#version='+codebaseVersion+'"><param name="code" value="Map24BrowserJavaVMTest.class" /></object>';document.getElementById('Map24_Browser_JavaVM_Test').setAttribute('classid','clsid:8AD9C840-044E-11D1-B3E9-00805F499D93');if(!document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('object')||document.getElementById('Map24_Browser_JavaVM_Test').getAttribute('readyState')<4){
Map24.Browser.JavaUpdate=i - 1;break;}
}
}
}
}
return Map24.Browser.JavaUpdate;}
Map24.Browser.initialize();Map24.Browser.Event=function(e,win){
this.__constructor=function(e,win){
Map24.Browser.Event.prototype.__constructor.call(this);this.Class="Event";this.Package="Map24.Browser";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;this.Time=(new Date()).getTime();this.Event=e;if(Map24.isNull(win))win=window;if(Map24.isNull(this.Event))this.Event=win.event;if(Map24.isNull(this.Event))this.Event={};this.Source=null;if(!Map24.isNull(this.Event.srcElement)&&Map24.isObject(this.Event.srcElement))
this.Source=this.Event.srcElement;else
if(!Map24.isNull(this.Event.originalTarget)&&Map24.isObject(this.Event.originalTarget))
this.Source=this.Event.originalTarget;if((this.Event.type=="mouseover")||(this.Event.type=="mouseenter")){
if(Map24.Browser.IE)
this.FromElement=this.Event.fromElement;else
this.FromElement=this.Event.relatedTarget;}else
if((this.Event.type=="mouseout")||(this.Event.type=="mouseleave")){
this.FromElement=this.Source;}
if((this.Event.type=="mouseover")||(this.Event.type=="mouseenter")){
this.ToElement=this.Source;}else
if((this.Event.type=="mouseout")||(this.Event.type=="mouseleave")){
if(Map24.Browser.IE)
this.ToElement=this.Event.toElement;else
this.ToElement=this.Event.relatedTarget;}
this.X=0;this.Y=0;if(Map24.Browser.OPERA){
this.X=this.Event["offsetX"];this.Y=this.Event["offsetY"];}else
if(Map24.Browser.IE){
this.X=this.Event.x;if(this.Event["srcElement"]&&Map24.isNumber(this.Event.srcElement["scrollLeft"]))
this.X +=this.Event.srcElement.scrollLeft;this.Y=this.Event.y;if(this.Event["srcElement"]&&Map24.isNumber(this.Event.srcElement["scrollTop"]))
this.Y +=this.Event.srcElement.scrollTop;}else
if(typeof this.Event.layerY=="number"){
this.X=this.Event.layerX - this.Event.currentTarget.offsetLeft;this.Y=this.Event.layerY - this.Event.currentTarget.offsetTop;}
this.ClientX=null;this.ClientY=null;if(Map24.Browser.IE||Map24.Browser.OPERA){
this.ClientX=this.Event.clientX;this.ClientY=this.Event.clientY;}else{
this.ClientX=this.Event.pageX;this.ClientY=this.Event.pageY;}
this.AltKey=false;if(this.Event.altKey)this.AltKey=true;this.CtrlKey=false;if(this.Event.ctrlKey)this.CtrlKey=true;this.ShiftKey=false;if(this.Event.shiftKey)this.ShiftKey=true;this.KeyCode=null;if(typeof this.Event.keyCode=="number")
this.KeyCode=this.Event.keyCode;this.Type="unknown";if(typeof this.Event.type=="string"){
if(this.Event.type.substr(0,2)!="on")
this.Type="on"+this.Event.type;else
this.Type=this.Event.type;}
this.Button=0;if(typeof this.Event.button=="number")
{
if(Map24.Browser.IE||Map24.Browser.SAFARI){
this.Button=this.Event.button;}else
if(Map24.Browser.OPERA&&Map24.Browser.MajorVersion<8){
switch(this.Event.button){
case 1:this.Button=Map24.Browser.LEFT_BUTTON;break;case 2:this.Button=Map24.Browser.RIGHT_BUTTON;break;case 3:this.Button=Map24.Browser.MIDDLE_BUTTON;break;}
}else
{
switch(this.Event.button){
case 0:this.Button=Map24.Browser.LEFT_BUTTON;break;case 1:this.Button=Map24.Browser.MIDDLE_BUTTON;break;case 2:this.Button=Map24.Browser.RIGHT_BUTTON;break;}
}
}
this._cancel=false;}
this.leftButton=function(){
return Map24.Browser.leftButton(this.Button);}
this.rightButton=function(){
return Map24.Browser.rightButton(this.Button);}
this.middleButton=function(){
return Map24.Browser.middleButton(this.Button);}
this.stop=function(){
this.cancel();this.stopPropagation();}
this.stopEvent=function(){
this.cancel();this.stopPropagation();}
this.cancel=function(){
if(this.Event.preventDefault){
this.Event.preventDefault();}else{
this.Event.returnValue=false;}
}
this.stopPropagation=function(){
if(this.Event.stopPropagation){
this.Event.stopPropagation();}else{
this.Event.cancelBubble=true;}
}
this.__constructor(e,win);}
Map24.Browser.Event.prototype=new Map24.Object;Map24.notifyClassReady("Map24.Browser.Event");Map24.Browser.LEFT_BUTTON=1;Map24.Browser.RIGHT_BUTTON=2;Map24.Browser.MIDDLE_BUTTON=4;Map24.Browser.leftButton=function(button_flags){
return((button_flags&Map24.Browser.LEFT_BUTTON)==Map24.Browser.LEFT_BUTTON);}
Map24.Browser.rightButton=function(button_flags){
return((button_flags&Map24.Browser.RIGHT_BUTTON)==Map24.Browser.RIGHT_BUTTON);}
Map24.Browser.middleButton=function(button_flags){
return((button_flags&Map24.Browser.MIDDLE_BUTTON)==Map24.Browser.MIDDLE_BUTTON);}
Map24.GUI=function(){}
Map24.GUI.Object=function(default_args){
this.__constructor=function(default_args){
Map24.GUI.Object.prototype.__constructor.call(this);this.Class="Object";this.Package="Map24.GUI";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;if(typeof default_args=="boolean"&&(default_args==false))return;if(!(default_args instanceof Object))default_args={};this.Win=null;if(typeof default_args["Win"]!="undefined")
this.Win=default_args.Win;else
this.Win=window;this.Doc=null;if(typeof default_args["Doc"]!="undefined")
this.Doc=default_args.Doc;else
this.Doc=this.Win.document;this.Node=null;if(typeof default_args["Node"]!="undefined")
this.Node=default_args.Node;else
this.Node=this.Doc.createElement("DIV");this.ButtonStatus=0;this.ReleaseButtonOnMouseOut=true;if(typeof default_args["ReleaseButtonOnMouseOut"]!="undefined")
this.ReleaseButtonOnMouseOut=default_args.ReleaseButtonOnMouseOut;this.IgnoreImpossibleEvents=true;if(typeof default_args["IgnoreImpossibleEvents"]!="undefined")
this.IgnoreImpossibleEvents=default_args.IgnoreImpossibleEvents;this.OptimizeMouseMove=true;if(typeof default_args["OptimizeMouseMove"]!="undefined")
this.OptimizeMouseMove=default_args.OptimizeMouseMove;this.InstanceId=null;if(typeof default_args["InstanceId"]!="undefined")
this.InstanceId=default_args.InstanceId;else
this.InstanceId=Map24.makeUniqueId(10);this.Node.InstanceId=this.InstanceId;Map24.GUI.Object._Instances[ this.InstanceId ]=this;}
this.destroy=function(){
try{
delete Map24.GUI.Object._Instances[ this.InstanceId ];}catch(e){
e.Method="Map24.GUI.Object.destroy";Map24.e(e);}
}
this.disableContextMenu=function(){
this.Node.oncontextmenu=Map24.GUI.Object.MouseEventHandlerKiller;this.Node.ondragstart=Map24.GUI.Object.MouseEventHandlerKiller;this.Node.ondrag=Map24.GUI.Object.MouseEventHandlerKiller;}
this.addEventListener=function(event_type,listener){
if(typeof event_type!="string")return false;if(typeof listener=="undefined")return false;if((typeof listener!="function")&&!(listener instanceof Callable))return false;event_type=event_type.toLowerCase();if(!(this._EventQueue[event_type] instanceof Array))return false;var event_queue=this._EventQueue[event_type];if((event_type=="onmousedown"||event_type=="onmouseup")&&!this._OnMouseOutRelease)
{
this._OnMouseOutRelease=true;this.addEventListener("onmouseleave",Map24.GUI.Object._checkARMBOMO);}
event_queue[event_queue.length++]=listener;if(event_type=="onmouseenter")event_type="onmouseover";if(event_type=="onmouseleave")event_type="onmouseout";if(this.Node[event_type]!=Map24.GUI.Object.MouseEventHandler)
this.Node[event_type]=Map24.GUI.Object.MouseEventHandler;return true;}
this.removeEventListener=function(listener){
if(typeof event_type!="string")return 0;if(typeof listener=="undefined")return 0;if((typeof listener!="function")&&!(listener instanceof Callable))return 0;var cn=0;var event_queue=null;for(var key in this._EventQueue){
event_queue=this._EventQueue[key];for(var i=0,n=event_queue.length;i<n;i++){
if(event_queue[i]==listener){
event_queue[i]=null;cn++;}
}
}
return cn;}
this.clearEventListener=function(){
for(var key in this._EventQueue){
this._EventQueue[key].length=0;}
this._OnMouseOutRelease=false;this.Node.onclick=null;this.Node.ondblclick=null;this.Node.onmouseup=null;this.Node.onmousedown=null;this.Node.onmousemove=null;this.Node.onmouseover=null;this.Node.onmouseout=null;}
this.getOffset=function(){
return Map24.getNodePos(this.Node);}
this._EventQueue={
"onclick":[],"ondblclick":[],"onmouseover":[],"onmouseenter":[],"onmouseout":[],"onmouseleave":[],"onmousemove":[],"onmouseup":[],"onmousedown":[]
};this._MouseMoveMutex=false;this._NextMouseMove=0;this._MouseMoveCooldown=10;this._MouseIsAbove=false;this._OnMouseOutRelease=false;this.__constructor(default_args);}
Map24.GUI.Object.prototype=new Map24.Object;Map24.GUI.Object._Instances={};Map24.GUI.Object.getInstanceById=function(id){
if(typeof id!="string")return null;if(Map24.GUI.Object._Instances[id])
return Map24.GUI.Object._Instances[id];return null;}
Map24.GUI.Object.MouseEventHandler=function(event){
var METHOD="Map24.GUI.Object.onMouseEventHandler";if(typeof this.InstanceId!="undefined"){
var layer=Map24.GUI.Object._Instances[ this.InstanceId ];if(layer){
var e=new Map24.Browser.Event(event,layer.Win);Map24.GUI.Object.TriggerMouseEvent(e,layer);}
}
}
Map24.GUI.Object.MouseEventHandlerKiller=function(event){return false;}
Map24.GUI.Object.TriggerMouseEvent=function(e,layer){
var METHOD="Map24.GUI.Object.TriggerMouseEvent";var id=e.Type;var id2=null;switch(id){
case "onmousedown":if(layer.IgnoreImpossibleEvents&&(layer.ButtonStatus&e.Button))return;layer.ButtonStatus=layer.ButtonStatus|e.Button;break;case "onmouseup":if(layer.IgnoreImpossibleEvents&&!(layer.ButtonStatus&e.Button))return;layer.ButtonStatus=layer.ButtonStatus&(~e.Button);break;case "onmousemove":var now=(new Date()).getTime();if(layer._MouseMoveMutex){
layer._NextMouseMove=now + layer._MouseMoveCooldown;return;}
if(now<layer._NextMouseMove)return;layer._MouseMoveMutex=true;layer._NextMouseMove=now + layer._MouseMoveCooldown;break;case "onmouseover":if(!layer._MouseIsAbove){
id2="onmouseenter";layer._MouseIsAbove=true;}
break;case "onmouseout":if(layer._MouseIsAbove){
var top_left=Map24.getNodePos(layer.Node);var lower_right=new Map24.Pixel(
top_left.X + layer.Node.offsetWidth - 1,top_left.Y + layer.Node.offsetHeight - 1
);if((e.ClientX<=top_left.X)||(e.ClientX>=lower_right.X)||(e.ClientY<=top_left.Y)||(e.ClientY>=lower_right.Y))
{
id2="onmouseleave";layer._MouseIsAbove=false;}
}
break;}
var eventqueue=layer._EventQueue[id];try{
if(eventqueue instanceof Array)
for(var i=(eventqueue.length-1);i>=0;i--){
try{
if(eventqueue[i] instanceof Callable){
eventqueue[i].invokeEx([e,layer]);}else{
eventqueue[i](e,layer);}
}catch(e){
e.Method=METHOD;Map24.e(e);}
}
if(id2!=null){
eventqueue=layer._EventQueue[id2];if(eventqueue instanceof Array)
for(var i=(eventqueue.length-1);i>=0;i--){
try{
if(eventqueue[i] instanceof Callable){
eventqueue[i].invokeEx([e,layer]);}else{
eventqueue[i](e,layer);}
}catch(e){
e.Method=METHOD;Map24.e(e);}
}
}
}catch(e){
e.Method=METHOD;Map24.e(e);}
if(id=="onmousemove")layer._MouseMoveMutex=false;}
Map24.GUI.Object._checkARMBOMO=function(event,layer){
if(layer.ReleaseButtonOnMouseOut){
var top_left=Map24.getNodePos(layer.Node);var lower_right=new Map24.Pixel(
top_left.X + layer.Node.offsetWidth,top_left.Y + layer.Node.offsetHeight
);if((event.ClientX<=top_left.X)||(event.ClientX>=lower_right.X)||(event.ClientY<=top_left.Y)||(event.ClientY>=lower_right.Y))
{
if(layer.ButtonStatus&Map24.Browser.LEFT_BUTTON){
event.Type="onmouseup";event.Button=Map24.Browser.LEFT_BUTTON;Map24.GUI.Object.TriggerMouseEvent(event,layer);}
if(layer.ButtonStatus&Map24.Browser.RIGHT_BUTTON){
event.Type="onmouseup";event.Button=Map24.Browser.RIGHT_BUTTON;Map24.GUI.Object.TriggerMouseEvent(event,layer);}
if(layer.ButtonStatus&Map24.Browser.MIDDLE_BUTTON){
event.Type="onmouseup";event.Button=Map24.Browser.MIDDLE_BUTTON;Map24.GUI.Object.TriggerMouseEvent(event,layer);}
}
}
}
Map24.notifyClassReady("Map24.GUI.Object");Map24.GUI.Slider=function(default_args){
this.__constructor=function(default_args){
Map24.GUI.Slider.prototype.__constructor.call(this,default_args);this.Class="Slider";this.Package="Map24.GUI";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;if(!(default_args instanceof Object))default_args={};if(!Map24.isNumber(default_args["Width"]))default_args.Width=0;if(!Map24.isNumber(default_args["Height"]))default_args.Height=0;if(!(default_args["KnobSize"] instanceof Map24.Size))
default_args.KnobSize=new Map24.Size(0,0);this.Node.style.position="absolute";this.Node.style.overflow="visible";this.Node.style.left="0px";this.Node.style.top="0px";this.Width=default_args.Width;this.Node.style.width=this.Width+"px";this.Height=default_args.Height;this.Node.style.height=this.Height+"px";this.Background=new Map24.GUI.Object({Win:this.Whin,Doc:this.Doc});this.Background.disableContextMenu();this.Background.Node.style.position="absolute";this.Background.Node.style.overflow="hidden";this.Background.Node.style.zIndex=1;this.Background.Node.style.left="0px";this.Background.Node.style.top="0px";this.Background.Node.style.width=this.Width+"px";this.Background.Node.style.height=this.Height+"px";this.Node.appendChild(this.Background.Node);this.Knob=new Map24.GUI.Object({Win:this.Whin,Doc:this.Doc});this.Knob.disableContextMenu();this.Knob.Node.style.position="absolute";this.Knob.Node.style.overflow="hidden";this.Knob.Node.style.zIndex=50;this.Knob.Node.style.left="0px";this.Knob.Node.style.top="0px";this.KnobSize=default_args.KnobSize;this.Knob.Node.style.width=this.KnobSize.Width+"px";this.Knob.Node.style.height=this.KnobSize.Height+"px";this.Node.appendChild(this.Knob.Node);this.KnobHotspot=null;if(default_args["KnobHotspot"] instanceof Map24.Point)
this.KnobHotspot=default_args["KnobHotspot"];else
this.KnobHotspot=new Map24.Pixel(
this.KnobSize.Width/2,this.KnobSize.Height/2
);this.InnerBounds=null;if(default_args["InnerBounds"] instanceof Map24.Rectangle){
this.InnerBounds=default_args["InnerBounds"];}else
if(this.Width>this.Height){
alert('horizontal');var tmp_mid=this.Height>>1;this.InnerBounds=new Map24.Rectangle(
new Map24.Pixel(0,tmp_mid),new Map24.Pixel(this.Width-1,tmp_mid)
);}else
{
var tmp_mid=this.Width>>1;this.InnerBounds=new Map24.Rectangle(
new Map24.Pixel(tmp_mid,0),new Map24.Pixel(tmp_mid,this.Height-1)
);}
this.Pos=null;if(default_args["Pos"] instanceof Map24.Pixel)
this.Pos=default_args["Pos"];else
this.Pos=new Map24.Pixel(0,0);this.addEventListener("onmousedown",this.onMouseDown);this.addEventListener("onmousemove",this.onMouseMove);this.addEventListener("onmouseup",this.onMouseUp);this.disableContextMenu();this.setKnobTo(this.Pos.X,this.Pos.Y);this._DragStatus=null;}
this.getXPercentage=function(){
return this.Pos.X /(this.InnerBounds.getWidth()-1);}
this.getYPercentage=function(){
return this.Pos.Y /(this.InnerBounds.getHeight()-1);}
this.setXPercentage=function(per,sim_user){
if(typeof sim_user!="boolean")sim_user=false;if(Map24.isNumber(per)){
if(sim_user){
this.trigger(new Map24.Events.MapEvent(this,{
ID:"DRAG_START",ButtonState:this.ButtonStatus,Button:Map24.Browser.LEFT_BUTTON,Position:new Map24.Pixel(this.Pos.X,this.Pos.Y)
}),0);}
this.setKnobTo(per*(this.InnerBounds.getWidth()-1),this.Pos.Y);if(sim_user){
this.trigger(new Map24.Events.MapEvent(this,{
ID:"DRAG_UPDATE",ButtonState:this.ButtonStatus,Button:Map24.Browser.LEFT_BUTTON,Position:new Map24.Pixel(this.Pos.X,this.Pos.Y)
}),0);this.trigger(new Map24.Events.MapEvent(this,{
ID:"DRAG_STOP",ButtonState:this.ButtonStatus,Button:Map24.Browser.LEFT_BUTTON,Position:new Map24.Pixel(this.Pos.X,this.Pos.Y)
}),0);}
}
}
this.setYPercentage=function(per,sim_user){
if(typeof sim_user!="boolean")sim_user=false;if(Map24.isNumber(per)){
if(sim_user){
this.trigger(new Map24.Events.MapEvent(this,{
ID:"DRAG_START",ButtonState:this.ButtonStatus,Button:Map24.Browser.LEFT_BUTTON,Position:new Map24.Pixel(this.Pos.X,this.Pos.Y)
}),0);}
this.setKnobTo(this.Pos.X,per*(this.InnerBounds.getHeight()-1));if(sim_user){
this.trigger(new Map24.Events.MapEvent(this,{
ID:"DRAG_UPDATE",ButtonState:this.ButtonStatus,Button:Map24.Browser.LEFT_BUTTON,Position:new Map24.Pixel(this.Pos.X,this.Pos.Y)
}),0);this.trigger(new Map24.Events.MapEvent(this,{
ID:"DRAG_STOP",ButtonState:this.ButtonStatus,Button:Map24.Browser.LEFT_BUTTON,Position:new Map24.Pixel(this.Pos.X,this.Pos.Y)
}),0);}
}
}
this.setKnobTo=function(x,y){
if(!Map24.isNumber(x)||!Map24.isNumber(y))return;if(x<0)x=0;if(y<0)y=0;if(x>=this.InnerBounds.getWidth())
x=this.InnerBounds.getWidth()-1;if(y>=this.InnerBounds.getHeight())
y=this.InnerBounds.getHeight()-1;this.Pos.X=x;this.Pos.Y=y;this.Knob.Node.style.left=this.Pos.X - 
this.KnobHotspot.X + 
this.InnerBounds.TopLeft.X;this.Knob.Node.style.top=this.Pos.Y - 
this.KnobHotspot.Y + 
this.InnerBounds.TopLeft.Y;}
this.onMouseDown=function(e,slider){
try{
if(Map24.Browser.leftButton(e.Button)){
if(slider._DragStatus==null){
var now=(new Date().getTime());var slider_pos=Map24.getNodePos(slider.Node);var x_pos=(e.ClientX - slider_pos.X)- slider.InnerBounds.TopLeft.X;var y_pos=(e.ClientY - slider_pos.Y)- slider.InnerBounds.TopLeft.Y;slider._DragStatus={
X:x_pos,Y:y_pos,SliderPos:slider_pos,SkipMoveTill:now
};slider.setKnobTo(x_pos,y_pos);if(Map24.Browser.IE){
slider.Node.style.cursor="hand";}else{
slider.Node.style.cursor="pointer";slider.trigger(new Map24.Events.MapEvent(slider,{
ID:"DRAG_START",ButtonState:slider.ButtonStatus,Button:Map24.Browser.LEFT_BUTTON,Position:new Map24.Pixel(slider.Pos.X,slider.Pos.Y)
}),0);}
}
}
e.stop();}
catch(e){
Map24.dump(e);}
}
this.onMouseUp=function(e,slider){
try{
if(Map24.Browser.leftButton(e.Button)){
if(slider._DragStatus!=null){
var slider_pos=slider._DragStatus.SliderPos;var x_pos=(e.ClientX - slider_pos.X)- slider.InnerBounds.TopLeft.X;var y_pos=(e.ClientY - slider_pos.Y)- slider.InnerBounds.TopLeft.Y;slider._DragStatus=null;slider.setKnobTo(x_pos,y_pos);if(Map24.Browser.IE)
slider.Node.style.cursor="pointer";else
slider.Node.style.cursor="default";slider.trigger(new Map24.Events.MapEvent(slider,{
ID:"DRAG_STOP",ButtonState:slider.ButtonStatus,Button:Map24.Browser.LEFT_BUTTON,Position:new Map24.Pixel(slider.Pos.X,slider.Pos.Y)
}),0);}
}
e.stop();}
catch(e){
Map24.dump(e);}
}
this.onMouseMove=function(e,slider){
try{
if(slider._DragStatus){
var now=(new Date().getTime());if(now>=slider._DragStatus.SkipMoveTill){
var slider_pos=slider._DragStatus.SliderPos;var x_pos=(e.ClientX - slider_pos.X)- slider.InnerBounds.TopLeft.X;var y_pos=(e.ClientY - slider_pos.Y)- slider.InnerBounds.TopLeft.Y;slider._DragStatus={
X:x_pos,Y:y_pos,SliderPos:slider_pos,SkipMoveTill:(now+30)
};slider.setKnobTo(x_pos,y_pos);slider.trigger(new Map24.Events.MapEvent(slider,{
ID:"DRAG_UPDATE",ButtonState:slider.ButtonStatus,Button:Map24.Browser.LEFT_BUTTON,Position:new Map24.Pixel(slider.Pos.X,slider.Pos.Y)
}),0);}
}
e.stop();}
catch(e){
Map24.dump(e);}
}
this.__constructor(default_args);}
Map24.GUI.Slider.prototype=new Map24.GUI.Object(false);Map24.notifyClassReady("Map24.GUI.Slider");Map24.MapObjects=function(){}
Map24.MapObjects.MapObject=function(default_args)
{
this.__constructor=function(default_args){
Map24.MapObjects.MapObject.prototype.__constructor.call(this);if(!Map24.isNull(default_args)){
if(!(default_args instanceof Object))throw new Map24.Exceptions.InvalidArgument("Invalid parameter 'default_args' given (no hashtable)!",default_args,"Map24.MapObjects.MapObject","__constructor");}else
default_args={};this.Class="MapObject";this.Package="Map24.MapObjects";this.Interfaces[this.Class]=null;this.Interfaces[this.Package+'.'+this.Class]=null;this.Interfaces["IGeometry"]=null;this.Interfaces["Map24.Interfaces.IGeometry"]=null;this.LocationId=null;if(!Map24.isNull(default_args.LocationId)){
if(!Map24.isNumber(default_args.LocationId))throw new Map24.Exceptions.InvalidArgument("Invalid default value for 'LocationId' given!",default_args.LocationId,"Map24.MapObjects.MapObject","__constructor");this.LocationId=parseInt(default_args.LocationId);}
this.ObjectId=null;if(!Map24.isNull(default_args.ObjectId)){
if(typeof default_args.ObjectId!="number"&&typeof default_args.ObjectId!="string")throw new Map24.Exceptions.InvalidArgument("Invalid default value for 'ObjectId' given!",default_args.ObjectId,"Map24.MapObjects.MapObject","__constructor");this.ObjectId=default_args.ObjectId;}
this.Position=null;if(Map24.isObject(default_args.Position,"Position"))this.Position=default_args.Position;this.Address=null;if(Map24.isObject(default_args.Address,"Map24.Address"))this.Address=default_args.Address;this.Properties=new Hashtable();if(Map24.isObject(default_args.Properties,null))this.Properties=default_args.Properties;this.Visible=false;this.ZIndex=0;this.Dirty=0;if(Map24.isNumber(default_args.Dirty)){
this.Dirty=parseInt(default_args.Dirty);}
this.ObjectType=Map24.OBJECT_TYPE["Generic"];if(Map24.isNumber(default_args.ObjectType)){
this.ObjectType=parseInt(default_args.ObjectType);}
}
this.getObjectId=function(){
if(Map24.empty(this.ObjectId))this.ObjectId=this.LocationId;if(Map24.empty(this.ObjectId))this.ObjectId=Map24.makeUniqueId().substr(0,8);return this.ObjectId;}
this.hasGeometry=function(){
if(Map24.empty(this.Geometry))return false;return(this.Geometry.isValid());}
this.hasPosition=function(){
if(Map24.empty(this.Position))return false;return(this.Position.isValid());}
this.getPosition=function(){
return this.Position;}
this.setPosition=function(loc){
if(!Map24.isObject(loc,"IGeometry"))throw new Map24.Exceptions.InvalidArgument("The given parameter 'loc' is no valid IGeometry object!",loc,"Map24.MapObjects.MapObject","setGeometry");var old=this.Position;this.Position=loc;return old;}
this.hasAddress=function(){
if(Map24.empty(this.Address))return false;return(this.Address.isValid());}
this.getAddress=function(){
return this.Address;}
this.setAddress=function(addr){
if(!Map24.isObject(addr,"Map24.Address"))throw new Map24.Exceptions.InvalidArgument("The given parameter 'addr' is no valid Map24.Address object!",addr,"Map24.MapObjects.MapObject","setAddress");var old=this.Address;this.Address=addr;return old;}
this.get=function(property){
switch(property){
case "ObjectId":case "ObjectID":case "CustLocId":case "CustLocID":return this.getObjectId();break;case "Street":case "Postcode":case "Zip":case "City":case "Country":case "State":case "County":case "District":case "Housenumber":if(this.Address==null)return null;if(property=="Zip")property="Postcode";return this.Address.get(property);case "Longitude":case "Long":try{
var p=this.getHotspot();return p.Longitude;}catch(e){
return null;}
case "Latitude":case "Lat":try{
var p=this.getHotspot();return p.Latitude;}catch(e){
return null;}
case "x":case "X":if(this.Position==null)return null;try{
var p=this.Position.getHotspot();return p.X;}catch(e){
return null;}
case "y":case "Y":if(this.Position==null)return null;try{
var p=this.Position.getHotspot();return p.Y;}catch(e){
return null;}
case "LogoURL":case "LogoUrl":case "SymbolUrl":case "SymbolURL":return this.LogoUrl;default:return this[property];}
}
this.set=function(property,value){
switch(property){
case "ObjectId":case "ObjectID":case 