Fx.Overlay=new Class({options:{'styles':{'position':'absolute','top':0,'left':0}},initialize:function(element,props,tag){this.element=$(element);this.setOptions(props);if([window,$(document.body)].contains(this.element)){this.padding=Fx.Overlay.windowPadding;this.container=$(document.body);this.element=window;}else{this.padding={x:0,y:0};this.container=this.element;}
this.overlay=new Element($pick(tag,'div'),{'styles':{'display':'none'}}).inject(this.container);this.update();},show:function(){this.overlay.setStyle('display','block');return this;},update:function(props){this.overlay.set($merge(this.options,{'styles':{width:this.element.getScrollWidth()-this.padding.x,height:this.element.getScrollHeight()-this.padding.y}},props));return this;},hide:function(){this.overlay.setStyle('display','none');return this;},destroy:function(){this.overlay.remove(true);return this;}});Fx.Overlay.implement(new Options);Fx.Overlay.windowPadding=(window.ie6)?{x:21,y:4}:{x:0,y:0};Element.$overlay=function(hide,deltaZ){deltaZ=$pick(deltaZ,1);if(!this.fixOverlayElement)this.fixOverlayElement=new Element('iframe',{'properties':{'frameborder':'0','scrolling':'no','src':'javascript:void(0);'},'styles':{'position':this.getStyle('position'),'border':'none','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'}}).injectBefore(this);if(hide)return this.fixOverlayElement.setStyle('display','none');var z=this.getStyle('z-index').toInt()||0;if(z<deltaZ)this.setStyle('z-index',''+(z=deltaZ+1));var pos=this.getCoordinates();return this.fixOverlayElement.setStyles({'display':'','z-index':''+(z-deltaZ),'left':pos.left+'px','top':pos.top+'px','width':pos.width+'px','height':pos.height+'px'});};Element.extend({fixOverlay:window.ie6?Element.$overlay:function(){return false;},remove:function(trash){if(this.fixOverlayElement){this.fixOverlayElement.remove();if(trash){Garbage.trash([this.fixOverlayElement]);}}
this.parentNode.removeChild(this);if(trash){Garbage.trash([this.empty()]);return false;}
return this;}});Drag.Transition={linear:{step:function(start,current,direction){return direction*current-start;},inverse:function(start,current,direction){return(start+current)/direction;}}};Drag.Multi=Drag.Base.extend({options:{handle:false,onStart:Class.empty,onBeforeStart:Class.empty,onComplete:Class.empty,onDrag:Class.empty,snap:6},elementOptions:{unit:'px',direction:1,limit:false,grid:false,bind:false,fn:Drag.Transition.linear},initialize:function(options){this.setOptions(options);this.handle=$(this.options.handle);this.element=[];this.mouse={'start':{},'now':{}};this.modifiers={};this.bound={'start':this.start.bindWithEvent(this),'check':this.check.bindWithEvent(this),'drag':this.drag.bindWithEvent(this),'stop':this.stop.bind(this)};this.attach();if(this.options.initialize)this.options.initialize.call(this);},add:function(el,options,bind){el=$(el);if(!$defined(bind))bind={};var result={};for(var z in options){if($type(options[z])!='object'||!$defined(options[z].style))continue;if(!$defined(this.modifiers[z]))this.modifiers[z]=[];var mod=$merge(this.elementOptions,options[z],{modifier:z,element:el,bind:false,binded:false});if(bind[z]){mod.bind=bind[z];mod.bind.binded=true;}
var sign=mod.style.slice(0,1);if(sign=='-'||sign=='+'){mod.direction=(sign+1).toInt();mod.style=mod.style.slice(1);}
this.modifiers[z].push(mod);result[z]=mod;}
if(!this.element.contains(el))this.element.push(el);return result;},remove:function(el){el=$(el);for(var z in this.modifiers)this.modifiers[z]=this.modifiers[z].filter(function(e){return el!=e.element;});this.element.remove(el);return this;},detach:function(mod){for(var z in mod)if($type(mod[z])=='object'&&!mod[z].binded)this.modifiers[z].remove(mod[z]);return this;},start:function(event){this.fireEvent('onBeforeStart',this.element);this.mouse.start=event.page;for(var z in this.modifiers){var mouse=this.mouse.start[z];this.modifiers[z].each(function(mod){mod.now=mod.element.getStyle(mod.style).toInt();mod.start=mod.fn.step(mod.now,mouse,mod.direction,true);mod.$limit=[];var limit=mod.limit;if(limit)for(var i=0;i<2;i++){if($chk(limit[i]))mod.$limit[i]=($type(limit[i])=='function')?limit[i](mod):limit[i];}},this);}
document.addListener('mousemove',this.bound.check);document.addListener('mouseup',this.bound.stop);this.fireEvent('onStart',this.element);event.stop();},modifierUpdate:function(mod){var z=mod.modifier,mouse=this.mouse.now[z];mod.out=false;mod.now=mod.fn.step(mod.start,mod.bind?mod.bind.inverse:mouse,mod.direction);if(mod.$limit&&$chk(mod.$limit[1])&&(mod.now>mod.$limit[1])){mod.now=mod.$limit[1];mod.out=true;}else if(mod.$limit&&$chk(mod.$limit[0])&&(mod.now<mod.$limit[0])){mod.now=mod.$limit[0];mod.out=true;}
if(mod.grid)mod.now-=((mod.now+mod.grid/2)%mod.grid)-mod.grid/2;if(mod.binded)mod.inverse=mod.fn.inverse(mod.start,mod.now,mod.direction);mod.element.setStyle(mod.style,mod.now+mod.unit);},drag:function(event){this.mouse.now=event.page;for(var z in this.modifiers)this.modifiers[z].each(this.modifierUpdate,this);this.fireEvent('onDrag',this.element);event.stop();}});Drag.Multi.$direction={east:{'x':1},west:{'x':-1},north:{'y':-1},south:{'y':1},nw:{'x':-1,'y':-1},ne:{'x':1,'y':-1},sw:{'x':-1,'y':1},se:{'x':1,'y':1}};Drag.Resize=new Class({options:{zIndex:10000,moveLimit:false,resizeLimit:{'x':[0],'y':[0]},grid:false,modifiers:{'x':'left','y':'top','width':'width','height':'height'},container:null,preserveRatio:false,ghost:false,snap:6,direction:Drag.Multi.$direction,limiter:{'x':{'-1':['left','right'],'1':['right','left']},'y':{'-1':['top','bottom'],'1':['bottom','top']}},moveLimiter:{'x':['left','right'],'y':['top','bottom']},ghostClass:'ghost-sizer sizer-visible',classPrefix:'sizer sizer-',hoverClass:'sizer-visible',onBuild:Class.empty,onBeforeStart:Class.empty,onStart:Class.empty,onSnap:Class.empty,onResize:Class.empty,onComplete:Class.empty},initialize:function(el,options){var self=this;this.element=this.el=$(el);this.fx={};this.binds={};this.bound={};this.setOptions(options);this.options.container=this.options.container===null?this.el.getParent():$(this.options.container);if($type(this.options.direction)=='string'){if(dir=='all'){this.options.direction=Drag.Multi.$direction;}else{var dir=this.options.direction.split(/\s+/);this.options.direction={};dir.each(function(d){this[d]=Drag.Multi.$direction[d];},this.options.direction);}}
var ce=this.el.getCoordinates(),positionStyle=this.el.getStyle('position');this.el.setStyles({'width':ce.width,'height':ce.height});if(this.options.container){if(!(['relative','fixed'].contains(positionStyle))){var cc=this.options.container.getCoordinates();this.el.setStyles({'left':ce.left-cc.left,'top':ce.top-cc.top});}
this.options.moveLimit=$merge({'x':[0],'y':[0]},this.options.moveLimit);}
if(this.options.preserveRatio){var R=ce.width/ce.height;var rlim=self.options.resizeLimit;var fix=function(z1,z2,op,no,coeff){if(rlim&&rlim[z1]&&rlim[z2]&&rlim[z1][no]&&rlim[z2][no])
rlim[z1][no]=Math[op](rlim[z1][no],coeff*rlim[z2][no]);};fix('x','y','max',0,R);fix('y','x','max',0,1/R);fix('x','y','min',1,R);fix('y','x','min',1,1/R);this.aspectStep={x:{step:function(s,c,d){return d*c/R-s;}},y:{step:function(s,c,d){return d*c*R-s;}}};this.options.direction=$merge(this.options.direction);['nw','ne','sw','se'].each(function(z){delete this[z];},this.options.direction);}
if(this.options.ghost){this.ghost=new Element('div',{'class':this.options.ghostClass,'styles':{'display':'none'}}).injectAfter(this.el);for(var d in this.options.direction)this.ghost.adopt(new Element('div',{'class':this.options.classPrefix+d}));}
var rOpts={snap:this.options.snap,onBeforeStart:function(){self.fireEvent('onBeforeStart',this);self.started=true;this.shade=new Fx.Overlay(window,{'styles':{'position':positionStyle,'cursor':this.options.handle.getStyle('cursor'),'background':self.options.shadeBackground,'z-index':self.options.zIndex+1}}).show();if(self.ghost){var ce=self.el.getCoordinates();self.ghost.setStyles({'display':'block','z-index':self.options.zIndex,'left':self.el.getStyle('left'),'top':self.el.getStyle('top'),'width':ce.width,'height':ce.height});for(var z in this.modifiers)
this.modifiers[z].each(function(mod){if(mod.element===self.ghost)
mod.element.setStyle(mod.style,self.el.getStyle(mod.style));});if(self.options.hoverClass)self.el.removeClass(self.options.hoverClass);}},onSnap:function(){self.fireEvent('onSnap',this);},onStart:function(){self.fireEvent('onStart',this);},onDrag:function(){self.fireEvent('onResize',this);},onComplete:function(){self.started=false;if(self.options.hoverClass)self.el.removeClass(self.options.hoverClass);this.shade.destroy();if(self.ghost){for(var z in this.modifiers){this.modifiers[z].each(function(mod){if(mod.element===self.ghost)self.el.setStyle(mod.style,mod.now+mod.unit);});}
self.ghost.setStyle('display','none');}
self.fireEvent('onComplete',this);}};var rlimitFcn=function(sign,props,limit){if(!self.options.container)return limit;if(!limit)limit=[0];var generator=function(lim){return function(mod){var cc=self.options.container.getCoordinates(),ec=mod.element.getCoordinates();var value=sign*(cc[props[0]]-ec[props[1]]);switch($type(lim)){case'number':return Math.min(value,lim);case'function':return Math.min(value,lim(mod));default:return value;}};};return[limit[0],generator(limit[1])];};var mlimitFcn=function(props,limit,rlimit){var container=self.options.container;var generator=function(lim,rlim,op,rdef){if(!$type(rlim))rlim=rdef;var lim_type=$type(lim);if(rlim===null)return lim_type=='function'?lim:function(){return lim;};return function(mod){var cc=container.getCoordinates(),ec=mod.element.getCoordinates();var value=ec[props[1]]-cc[props[0]]-rlim;switch(lim_type){case'number':return Math[op](value,lim);case'function':return Math[op](value,lim(mod));default:return value;}};};if(!container){if(!limit)limit=false;container=self.el.getParent();}else if(!limit)limit=[0];return[generator(limit[0],rlimit[1],'max',null),generator(limit[1],rlimit[0],'min',limit[1])];};var opt=this.options,el=this.ghost?this.ghost:this.el;if($type(opt.grid)=='number')opt.grid={'x':opt.grid,'y':opt.grid};for(var d in opt.direction){var mod=opt.direction[d];rOpts.handle=new Element('div',{'class':opt.classPrefix+d});var drag=this.fx[d]=new Drag.Multi(rOpts);var resizeLimit={'x':rlimitFcn(mod.x,opt.limiter.x[''+mod.x],opt.resizeLimit.x),'y':rlimitFcn(mod.y,opt.limiter.y[''+mod.y],opt.resizeLimit.y)};var moveOpts={};for(var z in mod){if(mod[z]<0){moveOpts[z]={limit:mlimitFcn(opt.moveLimiter[z],opt.moveLimit[z],opt.resizeLimit[z]),style:opt.modifiers[z],grid:opt.grid.x};}}
var binds={move:drag.add(el,moveOpts)},resize={opts:{},bind:{}};this.binds[d]=binds;if($defined(mod.x)){resize.opts.x={limit:mod.x<0?false:resizeLimit.x,grid:mod.x<0?false:opt.grid.x,style:opt.modifiers.width,direction:mod.x};if(mod.x<0)resize.bind.x=binds.move.x;}
if($defined(mod.y)){resize.opts.y={limit:mod.y<0?false:resizeLimit.y,grid:mod.y<0?false:opt.grid.y,style:opt.modifiers.height,direction:mod.y};if(mod.y<0)resize.bind.y=binds.move.y;}
binds.resize=drag.add(el,resize.opts,resize.bind);if(opt.preserveRatio){var aspect={'x':{fn:this.aspectStep.x,style:($defined(mod.x))?opt.modifiers.height:null,direction:mod.x},'y':{fn:this.aspectStep.y,style:($defined(mod.y))?opt.modifiers.width:null,direction:mod.y}};binds.aspect=drag.add(el,aspect,binds.resize);}
this.fireEvent('onBuild',[d,binds]);}
this.bound=(!this.options.hoverClass)?{}:{'mouseenter':function(ev){this.addClass(self.options.hoverClass);},'mouseleave':function(ev){if(!self.started)this.removeClass(self.options.hoverClass);}};this.attach();if(this.options.initialize)this.options.initialize();},add:function(callback){for(var d in this.options.direction)
callback.call(this,d,this.binds[d]);},attach:function(){$each(this.bound,function(fn,ev){this.addEvent(ev,fn)},this.el);for(var z in this.fx)this.element.adopt(this.fx[z].handle);return this;},detach:function(){$each(this.bound,function(fn,ev){this.removeEvent(ev,fn)},this.el);for(var z in this.fx)this.fx[z].handle.remove();return this;},stop:function(){this.detach();var garbage=[this.ghost];for(var z in this.fx)garbage.push(this.fx[z].handle);Garbage.trash(garbage);this.fx=this.bound=this.binds={};}});Drag.Resize.implement(new Events,new Options);Element.extend({makeResizable:function(options){options=options||{};if(options.handle)
return new Drag.Base(this,$merge({modifiers:{'x':'width','y':'height'}},options));return new Drag.Resize(this,options);}});var Windoo=new Class({options:{type:'dom',url:false,title:'',width:300,height:200,position:'center',top:0,left:0,resizable:true,draggable:true,positionStyle:'absolute',resizeLimit:{'x':[100],'y':[10]},padding:{'top':0,'right':0,'bottom':0,'left':0},ghost:{'resize':false,'move':false},snap:{'resize':6,'move':6},destroyOnClose:false,container:null,restrict:true,theme:'alphacube',shadow:false,modal:false,buttons:{menu:false,close:true,minimize:true,roll:true,maximize:true},'class':'',wm:false,effects:{show:{options:{'duration':600},styles:{'opacity':[0,1]}},close:{options:{'duration':600},styles:{'opacity':[1,0]}},hide:{options:{'duration':600},styles:{'opacity':[1,0]}}},onFocus:Class.empty,onBlur:Class.empty,onClose:Class.empty,onDestroy:Class.empty,onHide:Class.empty,onShow:Class.empty,onMaximize:Class.empty,onMinimize:Class.empty,onRestore:Class.empty,onBeforeDrag:Class.empty,onStartDrag:Class.empty,onDrag:Class.empty,onDragComplete:Class.empty,onBeforeResize:Class.empty,onStartResize:Class.empty,onResize:Class.empty,onResizeComplete:Class.empty},makeResizable:Class.empty,makeDraggable:Class.empty,initialize:function(options){var self=this;this.fx={};this.bound={};this.padding={};this.panels=[];this.zIndex=0;this.visible=false;this.options.id='windoo-'+(new Date().getTime());this.setOptions(options);var theme=this.theme=$type(this.options.theme)=='string'?Windoo.Themes[this.options.theme]:this.options.theme;this.options.container=$(this.options.container||document.body);for(var side in theme.padding)this.padding[side]=theme.padding[side]+this.options.padding[side];['x','y'].each(function(z){var lim=this.options.resizeLimit;if($type(lim[z][0])=='number')lim[z][0]=Math.max(lim[z][0],theme.resizeLimit[z][0])},this);this.buildDOM().setSize(this.options.width,this.options.height).setTitle(this.options.title).fix();if(this.options.position=='center')this.positionAtCenter();else this.setPosition(this.options.position);this.minimized=false;if(this.options.draggable)this.makeDraggable();if(this.options.resizable)this.makeResizable();this.wm=this.options.wm||Windoo.$wm;this.wm.register(this);if(this.options.initialize)this.options.initialize.call(this);},buildDOM:function(){var theme=this.theme,_p=theme.classPrefix;this.el=new Element('div',{'id':this.options.id,'class':theme.className,'styles':{'position':this.options.positionStyle,'overflow':'hidden','visibility':'hidden','top':this.options.top,'left':this.options.left},'events':{'mousedown':this.focus.bind(this)}});if(this.options['class'])this.el.addClass(this.options['class']);var $row=function(prefix,contentClass){return'<div class="'+prefix+'-left '+_p+'-drag"><div class="'+prefix+'-right"><div class="'+contentClass+'"></div></div></div>';};var iefix=window.ie&&this.options.type!='iframe',innerContent='<div class="'+_p+'-frame">'+$row("top","title")+$row("bot","strut")+'</div><div class="'+_p+'-body"></div>';this.el.setHTML(innerContent).inject(this.options.container);if(window.ie)this.el.addClass(_p+'-'+theme.name+'-ie');var frame=this.el.getFirst(),body=this.el.getLast(),titleBody=frame.getElement('div.title'),titleText=new Element('div',{'class':'title-text'}).inject(titleBody);this.dom={frame:frame,body:body,title:titleText,titleBody:titleBody,strut:frame.getElement('div.strut').setHTML('&nbsp;'),content:body};if(this.options.type=='iframe'){this.dom.iframe=new Element('iframe',{'frameborder':'0','class':_p+'-body','styles':{'width':'100%','height':'100%'}});this.dom.body.setStyle('overflow','hidden');this.adopt(this.dom.iframe).setURL(this.options.url);}
return this.buildShadow().buildButtons();},buildButtons:function(){var self=this,buttons=this.options.buttons,_p=this.theme.classPrefix;var action=function(name,bind){return function(ev){new Event(ev).stop();(bind[name])();};};this.bound.noaction=function(ev){new Event(ev).stop();};var makeButton=function(opt,name,title,action){self.bound[name]=action;if(opt){var klass=_p+'-button '+_p+'-'+name+(opt=='disabled'?' '+_p+'-'+name+'-disabled':'');self.dom[name]=new Element('a',{'class':klass,'href':'#','title':title}).setHTML('x').inject(self.el);self.dom[name].addEvent('click',opt=='disabled'?self.bound.noaction:action);}};makeButton(buttons.close,'close','Close',action('close',this));makeButton(buttons.maximize,'maximize','Maximize',action('maximize',this));if(buttons.maximize==true)this.dom.titleBody.addEvent('dblclick',this.maximize.bind(this));makeButton(buttons.minimize,'minimize','Minimize',action(buttons.roll?'roll':'minimize',this));makeButton(buttons.minimize,'restore','Restore',action('minimize',this));makeButton(buttons.menu,'menu','Menu',action('openmenu',this));return this;},buildShadow:function(){var theme=this.theme;if(this.options.modal)this.modalOverlay=new Fx.Overlay(this.el.getParent(),{'class':this.classPrefix('modal-overlay')});if(!theme.shadow||!this.options.shadow)return this;this.shadow=new Element('div',{'styles':{'position':this.options.positionStyle,'display':'none'},'class':theme.classPrefix+'-shadow-'+theme.shadow}).injectAfter(this.el);if(theme.complexShadow){var $row=function(name){var els=['l','r','m'].map(function(e){return new Element('div',{'class':e});});var el=new Element('div',{'class':name});return el.adopt.apply(el,els);};this.shadow.adopt($row('top'),this.dom.shm=$row('mid'),$row('bot'));}else{this.shadow.adopt(new Element('div',{'class':'c'}));}
return this;},setHTML:function(content){if(!this.dom.iframe)this.dom.content.empty().setHTML(content);return this;},adopt:function(){this.dom.content.empty().adopt.apply(this.dom.content,arguments);return this;},wrap:function(el,options){var styles={'margin':'0','position':'static'};el=$(el);options=options||{};var size=el.getSize(),pos=el.getPosition(),coeff=options.ignorePadding?0:1,pad=this.padding;this.setSize(size.x+coeff*(pad.right+pad.left),size.y+coeff*(pad.top+pad.bottom));if(options.resetWidth)styles.width='auto';if(options.position)this.setPosition(pos.x-coeff*pad.left,pos.y-coeff*pad.top);this.dom.content.empty().adopt(el.remove().setStyles(styles));return this;},empty:function(){if(this.dom.iframe)this.dom.iframe.src='about:blank';else this.dom.content.empty();return this;},setURL:function(url){if(this.dom.iframe)this.dom.iframe.src=url||'about:blank';return this;},getContent:function(){return this.dom.content;},setTitle:function(title){this.dom.title.setHTML(title||'&nbsp;');return this;},effect:function(name,noeffect,onComplete){opts={onComplete:onComplete};if(noeffect)opts.duration=0;var fx=this.options.effects[name];new Fx.Styles(fx.el||this.el,$merge(fx.options,opts)).start(fx.styles);if(this.shadow)new Fx.Styles(this.shadow,fx.options).start(fx.styles);return this;},hide:function(noeffect){if(!this.visible)return this;this.visible=false;return this.effect('hide',noeffect,function(){this.el.setStyle('display','none');if(this.modalOverlay)this.modalOverlay.hide();this.fix(true).fireEvent('onHide');}.bind(this));},show:function(noeffect){if(this.visible)return this;this.visible=true;if(this.modalOverlay)this.modalOverlay.show();this.el.setStyle('display','');this.bringTop().fix();if(this.shadow)this.shadow.setStyle('visibility','hidden');return this.effect('show',noeffect,function(){this.el.setStyle('visibility','visible');this.fireEvent('onShow').fix();}.bind(this));},fix:function(hide){this.el.fixOverlay(hide||!this.visible);return this.fixShadow(hide);},fixShadow:function(hide){if(this.shadow){this.shadow[(this.maximized?'add':'remove')+'Class']('windoo-shadow-'+this.theme.name+'-maximized');if(hide||!this.visible){this.shadow.setStyle('display','none');}else{var pos=this.el.getCoordinates(),pad=this.theme.shadowDisplace;this.shadow.setStyles({'display':'','zIndex':this.zIndex-1,'left':this.el.offsetLeft+pad.left,'top':this.el.offsetTop+pad.top,'width':pos.width+pad.width,'height':pos.height+pad.height});if(this.dom.shm)this.dom.shm.setStyle('height',pos.height-pad.delta);}}
return this;},getState:function(){var outer=this.el.getCoordinates(),container=this.options.container,cont=container===$(document.body)?{'top':0,'left':0}:container.getCoordinates();outer.top-=cont.top;outer.right-=cont.left;outer.bottom-=cont.top;outer.left-=cont.left;return{outer:outer,inner:this.dom.content.getSize()};},setSize:function(width,height){var pad=this.padding;this.el.setStyles({'width':width,'height':height});this.dom.strut.setStyle('height',Math.max(0,height-pad.top));this.dom.body.setStyle('height',Math.max(0,height-pad.top-pad.bottom));return this.fix().fireEvent('onResizeComplete',this.fx.resize);},setSizeInner:function(width,height){var pad=this.padding;this.el.setStyles({'width':width+pad.left+pad.right,'height':height+pad.top+pad.bottom});this.dom.strut.setStyle('height',height+pad.bottom);this.dom.body.setStyle('height',height);return this.fix().fireEvent('onResizeComplete',this.fx.resize);},positionAtCenter:function(offset){this.setPosition({offset:$merge({'x':0,'y':0},offset),position:{x:'center',y:'center'}});return this.fix();},setPosition:function(x,y){if($type(x)=='object'){this.el.setPosition(x);}else{this.el.setStyles({'left':x,'top':y});}
return this.fix();},preventClose:function(prevent){this.$preventClose=$defined(prevent)?prevent:true;return this;},close:function(noeffect){this.$preventClose=false;this.fireEvent('onBeforeClose');if(this.$preventClose)return this;if(!this.visible)return this;this.visible=false;return this.effect('close',noeffect,function(){this.el.setStyle('display','none');if(this.modalOverlay)this.modalOverlay.hide();this.fix(true).fireEvent('onClose');if(this.options.destroyOnClose)this.destroy();}.bind(this));},destroy:function(){this.fireEvent('onDestroy');this.wm.unregister(this);if(this.modalOverlay)this.modalOverlay.destroy();if(this.shadow)this.shadow.remove(true);this.el.remove(true);for(var z in this)this[z]=null;this.destroyed=true;},classPrefix:function(klass){return[this.theme.classPrefix,this.theme.name,klass+' '+this.theme.classPrefix,klass].join('-');},maximize:function(noeffect){if(this.minimized)return this.minimize();if(this.rolled)this.roll(true);var bound=function(value,limit){if(!limit)return value;if(value<limit[0])return limit[0];if(limit.length>1&&value>limit[1])return limit[1];return value;};var klass=this.classPrefix('maximized');this.maximized=!this.maximized;this.minimized=false;if(this.maximized){this.$restoreMaxi=this.getState();var container=this.options.container;if(container===document.body)container=window;var s=container.getSize(),limit=this.options.resizeLimit;if(limit)for(var z in limit)s.size[z]=bound(s.size[z],limit[z]);this.el.addClass(klass);this.setSize(s.size.x,s.size.y).setPosition(s.scroll.x,s.scroll.y).fireEvent('onMaximize');}else{this.el.removeClass(klass);this.restoreState(this.$restoreMaxi).fireEvent('onRestore','maximize');}
return this.fix();},minimize:function(noeffect){var klass=this.classPrefix('minimized');this.minimized=!this.minimized;if(this.minimized){this.$restoreMini=this.getState();var container=this.options.container;if(container===document.body)container=window;var s=container.getSize(),height=this.theme.padding.top+this.theme.padding.bottom;this.el.addClass(klass);this.setSize('auto',height).setPosition(s.scroll.x+10,s.scroll.y+s.size.y-height-10).fireEvent('onMinimize');}else{this.el.removeClass(klass);this.restoreState(this.$restoreMini).fireEvent('onRestore','minimize');}
return this.fix();},restoreState:function(state){state=state.outer;return this.setSize(state.width,state.height).setPosition(state.left,state.top);},roll:function(noeffect){var klass=this.classPrefix('rolled');this.rolled=!this.rolled;if(this.rolled){this.$restoreRoll=this.getState().outer;var pad=this.theme.padding;this.setSize(this.$restoreRoll.width,pad.top+pad.bottom);this.el.addClass(klass);this.fireEvent('onRoll');}else{this.el.removeClass(klass);var state=this.$restoreRoll;this.setSize(state.width,state.height).fireEvent('onRestore','roll');}
return this.fix();},openmenu:function(){this.fireEvent('onMenu');return this;},setZIndex:function(z){this.zIndex=z;this.el.setStyle('zIndex',z);if(this.el.fixOverlayElement)this.el.fixOverlayElement.setStyle('zIndex',z-1);if(this.shadow)this.shadow.setStyle('zIndex',z-1);if(this.fx.resize)this.fx.resize.options.zIndex=z+1;if(this.modalOverlay)this.modalOverlay.overlay.setStyle('zIndex',z-2);return this;},focus:function(){this.el.removeClass(this.theme.classPrefix+'-blur');this.wm.focus(this);return this;},blur:function(){this.el.addClass(this.theme.classPrefix+'-blur');if(this.wm.blur(this))this.fireEvent('onBlur');return this;},bringTop:function(){return this.setZIndex(this.wm.maxZIndex());}});Windoo.implement(new Events,new Options);Windoo.ieTableCell='<table style="position:absolute;top:0;left:0;border:none;border-collapse:collapse;padding:0;"><tr><td style="border:none;overflow:auto;position:relative;padding:0;"></td></tr></table>';Windoo.Themes={cssFirefoxMac:'.windoo-blur * {overflow: hidden !important;}',alphacube:{name:'alphacube',padding:{'top':22,'right':5,'bottom':5,'left':5},resizeLimit:{'x':[200],'y':[37]},className:'windoo windoo-alphacube',sizerClass:'sizer',classPrefix:'windoo',ghostClass:'windoo-ghost windoo-alphacube-ghost windoo-hover',hoverClass:'windoo-hover',shadeBackground:'transparent',shadow:'aqua',complexShadow:true,shadowDisplace:{'left':-13,'top':-8,'width':26,'height':31,'delta':23}}};if(window.gecko&&navigator.appVersion.indexOf('acintosh')>=0)window.addEvent('domready',function(){new Element('style',{'type':'text/css','media':'all'}).inject(document.head).appendText(Windoo.Themes.cssFirefoxMac);});Windoo.Manager=new Class({focused:false,options:{zIndex:100,onRegister:Class.empty,onUnregister:Class.empty,onFocus:Class.empty,onBlur:Class.empty},initialize:function(options){this.hash=[];this.setOptions(options);},maxZIndex:function(){var windows=this.hash;if(!windows.length)return this.options.zIndex;var zindex=[];windows.each(function(item){this.push(item.zIndex);},zindex);zindex.sort(function(a,b){return a-b;});return zindex.getLast()+3;},register:function(win){win.setZIndex(this.maxZIndex());this.hash.push(win);return this.fireEvent('onRegister',win);},unregister:function(win){this.hash.remove(win);if(this.focused===win)this.focused=false;return this.fireEvent('onUnregister',win);},focus:function(win){var idx=this.hash.indexOf(win);if(idx===this.focused)return this;if(this.focused)this.focused.blur();this.focused=win;win.bringTop(this.maxZIndex());return this.fireEvent('onFocus',win);},blur:function(win){if(this.focused===win){this.focused=false;this.fireEvent('onBlur',win);return true;}
return false;}});Windoo.Manager.implement(new Events,new Options);Windoo.$wm=new Windoo.Manager();Windoo.implement({makeResizable:function(){var self=this,theme=this.theme,opt=this.options,inbody=opt.container===$(document.body);this.fx.resize=this.el.makeResizable({ghostClass:theme.ghostClass,hoverClass:theme.hoverClass,classPrefix:theme.classPrefix+'-sizer '+theme.classPrefix+'-',shadeBackground:theme.shadeBackground,container:(opt.restrict&&!inbody)?opt.container:false,resizeLimit:opt.resizeLimit,ghost:opt.ghost.resize,snap:opt.snap.resize,onBeforeStart:function(){self.fireEvent('onBeforeResize',this).focus();},onStart:function(fx){if(self.maximized){fx.stop();}else{self.fireEvent('onStartResize',this);}},onResize:function(){self.fireEvent('onResize',this);},onComplete:function(){if(this.ghost){var size=self.getState().outer;self.setSize(size.width,size.height);}else{self.fix().fireEvent('onResizeComplete',this);}},onBuild:function(dir,binds){if(!this.ghost){var fx=this.fx[dir],nolimit={'x':{'limit':false},'y':{'limit':false}};if(binds.resize.y)['strut','body','shm'].each(function(name){if(this[name])fx.add(this[name],{'y':{direction:binds.resize.y.direction,style:'height'}},binds.resize);},self.dom);[self.shadow,self.el.fixOverlayElement].each(function(el){if(el){fx.add(el,$merge(binds.resize,nolimit),binds.resize);if(binds.move)fx.add(el,$merge(binds.move,nolimit),binds.move);}},self);}}});},makeDraggable:function(){var self=this,fx=this.fx.drag=[],inbody=this.options.container===$(document.body);var xLimit=function(){return 2-self.el.offsetWidth;};var opts={container:(this.options.restrict&&!inbody?this.options.container:null),limit:(inbody?{'x':[xLimit],'y':[0]}:{}),snap:this.options.snap.move,onBeforeStart:function(){self.focus();this.shade=new Fx.Overlay(window,{'styles':{'cursor':this.options.handle.getStyle('cursor'),'background':self.theme.shadeBackground,'zIndex':self.zIndex+3}}).show();if(self.ghost){var ce=self.el.getSize();this.element.setStyles({'zIndex':self.zIndex+3,'left':self.el.getStyle('left'),'top':self.el.getStyle('top'),'width':ce.x,'height':ce.y});}
self.fireEvent('onBeforeDrag',this);},onStart:function(){if(self.maximized&&!self.minimized)this.stop();else self.fireEvent('onStartDrag',this);},onSnap:function(){if(self.ghost)this.element.setStyle('display','block');},onDrag:function(){self.fix().fireEvent('onDrag',this);},onComplete:function(){this.shade.destroy();if(self.ghost){for(var z in this.options.modifiers){var style=this.options.modifiers[z];self.el.setStyle(style,this.element.getStyle(style));}
this.element.setStyle('display','none');}
self.fix().fireEvent('onDragComplete',this);}};if(this.options.ghost.move)this.ghost=new Element('div',{'class':this.theme.ghostClass,'styles':{'display':'none'}}).injectAfter(this.el);this.el.getElements('div.'+this.theme.classPrefix+'-drag').each(function(d){opts.handle=d;d.setStyle('cursor','move');fx.push((this.ghost||this.el).makeDraggable(opts));},this);}});Windoo.Dialog=Windoo.extend({initialize:function(message,options){var self=this,dialog=this.dialog={dom:{},buttons:{},options:$merge(Windoo.Dialog.options,options),message:message};this.parent($merge({'onShow':function(){if(dialog.buttons.ok)dialog.buttons.ok.focus();}},dialog.options.window));dialog.bound=function(ev){ev=new Event(ev);if(['enter','esc'].contains(ev.key)){dialog.result=(ev.key=='enter')?!dialog.cancelFocused:false;self.close();ev.stop();}};document.addEvent('keydown',dialog.bound);this.addEvent('onClose',function(){document.removeEvent('keydown',dialog.bound);dialog.options[(dialog.result)?'onConfirm':'onCancel'].call(this);});},buildDialog:function(klass,buttons){var self=this,dialog=this.dialog;if('ok'in buttons)dialog.buttons.ok=new Element('input',$merge({'events':{'click':function(){dialog.result=true;self.close();}}},dialog.options.buttons.ok));if('cancel'in buttons)dialog.buttons.cancel=new Element('input',$merge({'events':{'click':function(){dialog.result=false;self.close();}}},dialog.options.buttons.cancel)).addEvents({'focus':function(){dialog.cancelFocused=true;},'blur':function(){dialog.cancelFocused=false;}});dialog.dom.panel=new Element('div',$merge({'class':this.classPrefix(klass+'-pane')},dialog.options.panel));for(var btn in buttons)if(buttons[btn])dialog.dom.panel.adopt(dialog.buttons[btn]);dialog.dom.message=new Element('div',$merge({'class':this.classPrefix(klass+'-message')},dialog.options.message));return this.addPanel(dialog.dom.panel).adopt(dialog.dom.message.setHTML(dialog.message));}});Windoo.Dialog.options={'window':{'modal':true,'resizable':false,'buttons':{'minimize':false,'maximize':false}},'buttons':{'ok':{'properties':{'type':'button','value':'OK'}},'cancel':{'properties':{'type':'button','value':'Cancel'}}},'panel':null,'message':null,'onConfirm':Class.empty,'onCancel':Class.empty};Windoo.Alert=Windoo.Dialog.extend({initialize:function(message,options){this.parent(message,options);this.buildDialog('alert',{'ok':true}).show();}});Windoo.Confirm=Windoo.Dialog.extend({initialize:function(message,options){this.parent(message,options);this.buildDialog('confirm',{'ok':true,'cancel':true}).show();}});Class.create=function(){return function(){this.initialize.apply(this,arguments);}};var Abstract=new Object();var Ptype={ScriptFragment:'(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',emptyFunction:function(){},K:function(x){return x}}
Object.extend(Object,{inspect:function(object){try{if(object===undefined)return'undefined';if(object===null)return'null';return object.inspect?object.inspect():object.toString();}catch(e){if(e instanceof RangeError)return'...';throw e;}},keys:function(object){var keys=[];for(var property in object)
keys.push(property);return keys;},values:function(object){var values=[];for(var property in object)
values.push(object[property]);return values;},clone:function(object){return Object.extend({},object);}});Function.prototype.pbind=function(){var __method=this,args=$A(arguments),object=args.shift();return function(){return __method.apply(object,args.concat($A(arguments)));}}
Function.prototype.pbindAsEventListener=function(object){var __method=this,args=$A(arguments),object=args.shift();return function(event){return __method.apply(object,[(event||window.event)].concat(args).concat($A(arguments)));}}
var Try={these:function(){var returnValue;for(var i=0,length=arguments.length;i<length;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;}}
var $break=new Object();var $continue=new Object();var Enumerable={each:function(iterator){var index=0;try{this._each(function(value){try{iterator(value,index++);}catch(e){if(e!=$continue)throw e;}});}catch(e){if(e!=$break)throw e;}
return this;},eachSlice:function(number,iterator){var index=-number,slices=[],array=this.toArray();while((index+=number)<array.length)
slices.push(array.slice(index,index+number));return slices.map(iterator);},all:function(iterator){var result=true;this.each(function(value,index){result=result&&!!(iterator||Ptype.K)(value,index);if(!result)throw $break;});return result;},any:function(iterator){var result=false;this.each(function(value,index){if(result=!!(iterator||Ptype.K)(value,index))
throw $break;});return result;},collect:function(iterator){var results=[];this.each(function(value,index){results.push((iterator||Ptype.K)(value,index));});return results;},detect:function(iterator){var result;this.each(function(value,index){if(iterator(value,index)){result=value;throw $break;}});return result;},findAll:function(iterator){var results=[];this.each(function(value,index){if(iterator(value,index))
results.push(value);});return results;},grep:function(pattern,iterator){var results=[];this.each(function(value,index){var stringValue=value.toString();if(stringValue.match(pattern))
results.push((iterator||Ptype.K)(value,index));})
return results;},include:function(object){var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;},inGroupsOf:function(number,fillWith){fillWith=fillWith===undefined?null:fillWith;return this.eachSlice(number,function(slice){while(slice.length<number)slice.push(fillWith);return slice;});},inject:function(memo,iterator){this.each(function(value,index){memo=iterator(memo,value,index);});return memo;},invoke:function(method){var args=$A(arguments).slice(1);return this.map(function(value){return value[method].apply(value,args);});},max:function(iterator){var result;this.each(function(value,index){value=(iterator||Ptype.K)(value,index);if(result==undefined||value>=result)
result=value;});return result;},min:function(iterator){var result;this.each(function(value,index){value=(iterator||Ptype.K)(value,index);if(result==undefined||value<result)
result=value;});return result;},partition:function(iterator){var trues=[],falses=[];this.each(function(value,index){((iterator||Ptype.K)(value,index)?trues:falses).push(value);});return[trues,falses];},pluck:function(property){var results=[];this.each(function(value,index){results.push(value[property]);});return results;},reject:function(iterator){var results=[];this.each(function(value,index){if(!iterator(value,index))
results.push(value);});return results;},sortBy:function(iterator){return this.map(function(value,index){return{value:value,criteria:iterator(value,index)};}).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0;}).pluck('value');},toArray:function(){return this.map();},zip:function(){var iterator=Ptype.K,args=$A(arguments);if(typeof args.last()=='function')
iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){return iterator(collections.pluck(index));});},size:function(){return this.toArray().length;},inspect:function(){return'#<Enumerable:'+this.toArray().inspect()+'>';}}
Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll});Array.extend({map:Enumerable.collect,toArray:Enumerable.toArray,inspect:Enumerable.inspect});var pHash=function(obj){Object.extend(this,obj||{});};Object.extend(pHash,{toQueryString:function(obj){var parts=[];this.prototype._each.call(obj,function(pair){if(!pair.key)return;if(pair.value&&pair.value.constructor==Array){var values=pair.value.compact();if(values.length<2)pair.value=values.reduce();else{key=encodeURIComponent(pair.key);values.each(function(value){value=value!=undefined?encodeURIComponent(value):'';parts.push(key+'='+encodeURIComponent(value));});return;}}
if(pair.value==undefined)pair[1]='';parts.push(pair.map(encodeURIComponent).join('='));});return parts.join('&');}});Object.extend(pHash.prototype,Enumerable);Object.extend(pHash.prototype,{_each:function(iterator){for(var key in this){var value=this[key];if(value&&value==pHash.prototype[key])continue;var pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}},keys:function(){return this.pluck('key');},values:function(){return this.pluck('value');},merge:function(pHash){return $H(pHash).inject(this,function(mergedpHash,pair){mergedpHash[pair.key]=pair.value;return mergedpHash;});},remove:function(){var result;for(var i=0,length=arguments.length;i<length;i++){var value=this[arguments[i]];if(value!==undefined){if(result===undefined)result=value;else{if(result.constructor!=Array)result=[result];result.push(value)}}
delete this[arguments[i]];}
return result;},toQueryString:function(){return pHash.toQueryString(this);},inspect:function(){return'#<pHash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';}});Element.extend.cache={findOrStore:function(value){return this[value]=this[value]||function(){return value.apply(null,[this].concat($A(arguments)));}}};Element.Methods={visible:function(element){return $(element).style.display!='none';},toggle:function(element){element=$(element);Element[Element.visible(element)?'hide':'show'](element);return element;},hide:function(element){$(element).style.display='none';return element;},show:function(element){$(element).style.display='';return element;},remove:function(element){element=$(element);element.parentNode.removeChild(element);return element;},update:function(element,html){html=typeof html=='undefined'?'':html.toString();$(element).innerHTML=html.stripScripts();setTimeout(function(){html.evalScripts()},10);return element;},replace:function(element,html){element=$(element);html=typeof html=='undefined'?'':html.toString();if(element.outerHTML){element.outerHTML=html.stripScripts();}else{var range=element.ownerDocument.createRange();range.selectNodeContents(element);element.parentNode.replaceChild(range.createContextualFragment(html.stripScripts()),element);}
setTimeout(function(){html.evalScripts()},10);return element;},inspect:function(element){element=$(element);var result='<'+element.tagName.toLowerCase();$H({'id':'id','className':'class'}).each(function(pair){var property=pair.first(),attribute=pair.last();var value=(element[property]||'').toString();if(value)result+=' '+attribute+'='+value.inspect(true);});return result+'>';},recursivelyCollect:function(element,property){element=$(element);var elements=[];while(element=element[property])
if(element.nodeType==1)
elements.push(Element.extend(element));return elements;},ancestors:function(element){return $(element).recursivelyCollect('parentNode');},descendants:function(element){return $A($(element).getElementsByTagName('*'));},immediateDescendants:function(element){if(!(element=$(element).firstChild))return[];while(element&&element.nodeType!=1)element=element.nextSibling;if(element)return[element].concat($(element).nextSiblings());return[];},previousSiblings:function(element){return $(element).recursivelyCollect('previousSibling');},nextSiblings:function(element){return $(element).recursivelyCollect('nextSibling');},siblings:function(element){element=$(element);return element.previousSiblings().reverse().concat(element.nextSiblings());},match:function(element,selector){if(typeof selector=='string')
selector=new Selector(selector);return selector.match($(element));},up:function(element,expression,index){return Selector.findElement($(element).ancestors(),expression,index);},down:function(element,expression,index){return Selector.findElement($(element).descendants(),expression,index);},previous:function(element,expression,index){return Selector.findElement($(element).previousSiblings(),expression,index);},next:function(element,expression,index){return Selector.findElement($(element).nextSiblings(),expression,index);},getElementsByClassName:function(element,className){return document.getElementsByClassName(className,element);},readAttribute:function(element,name){element=$(element);if(document.all&&!window.opera){var t=Element._attributeTranslations;if(t.values[name])return t.values[name](element,name);if(t.names[name])name=t.names[name];var attribute=element.attributes[name];if(attribute)return attribute.nodeValue;}
return element.getAttribute(name);},getHeight:function(element){return $(element).getDimensions().height;},getWidth:function(element){return $(element).getDimensions().width;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;var elementClassName=element.className;if(elementClassName.length==0)return false;if(elementClassName==className||elementClassName.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))
return true;return false;},addClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element).add(className);return element;},removeClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element).remove(className);return element;},toggleClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element)[element.hasClassName(className)?'remove':'add'](className);return element;},observe:function(){Event.observe.apply(Event,arguments);return $A(arguments).first();},stopObserving:function(){Event.stopObserving.apply(Event,arguments);return $A(arguments).first();},cleanWhitespace:function(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType==3&&!/\S/.test(node.nodeValue))
element.removeChild(node);node=nextNode;}
return element;},empty:function(element){return $(element).innerHTML.match(/^\s*$/);},descendantOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);while(element=element.parentNode)
if(element==ancestor)return true;return false;},scrollTo2:function(element){element=$(element);var pos=Position.cumulativeOffset(element);window.scrollTo(pos[0],pos[1]);return element;},getDimensions2:function(element){element=$(element);var display=$(element).getStyle('display');if(display!='none'&&display!=null)
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(window.opera){element.style.top=0;element.style.left=0;}}
return element;},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}
return element;},makeClipping:function(element){element=$(element);if(element._overflow)return element;element._overflow=element.style.overflow||'auto';if((Element.getStyle(element,'overflow')||'visible')!='hidden')
element.style.overflow='hidden';return element;},undoClipping:function(element){element=$(element);if(!element._overflow)return element;element.style.overflow=element._overflow=='auto'?'':element._overflow;element._overflow=null;return element;}};Object.extend(Element.Methods,{childOf:Element.Methods.descendantOf});Element._attributeTranslations={};Element._attributeTranslations.names={colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",datetime:"dateTime",accesskey:"accessKey",tabindex:"tabIndex",enctype:"encType",maxlength:"maxLength",readonly:"readOnly",longdesc:"longDesc"};Element._attributeTranslations.values={_getAttr:function(element,attribute){return element.getAttribute(attribute,2);},_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){var node=element.getAttributeNode('title');return node.specified?node.nodeValue:null;}};Object.extend(Element._attributeTranslations.values,{href:Element._attributeTranslations.values._getAttr,src:Element._attributeTranslations.values._getAttr,disabled:Element._attributeTranslations.values._flag,checked:Element._attributeTranslations.values._flag,readonly:Element._attributeTranslations.values._flag,multiple:Element._attributeTranslations.values._flag});Element.Methods.Simulated={hasAttribute:function(element,attribute){var t=Element._attributeTranslations;attribute=t.names[attribute]||attribute;return $(element).getAttributeNode(attribute).specified;}};if(document.all&&!window.opera){Element.Methods.update=function(element,html){element=$(element);html=typeof html=='undefined'?'':html.toString();var tagName=element.tagName.toUpperCase();if(['THEAD','TBODY','TR','TD'].include(tagName)){var div=document.createElement('div');switch(tagName){case'THEAD':case'TBODY':div.innerHTML='<table><tbody>'+html.stripScripts()+'</tbody></table>';depth=2;break;case'TR':div.innerHTML='<table><tbody><tr>'+html.stripScripts()+'</tr></tbody></table>';depth=3;break;case'TD':div.innerHTML='<table><tbody><tr><td>'+html.stripScripts()+'</td></tr></tbody></table>';depth=4;}
$A(element.childNodes).each(function(node){element.removeChild(node)});depth.times(function(){div=div.firstChild});$A(div.childNodes).each(function(node){element.appendChild(node)});}else{element.innerHTML=html.stripScripts();}
setTimeout(function(){html.evalScripts()},10);return element;}};Object.extend(Element,Element.Methods);var _nativeExtensions=false;if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))
['','Form','Input','TextArea','Select'].each(function(tag){var className='HTML'+tag+'Element';if(window[className])return;var klass=window[className]={};klass.prototype=document.createElement(tag?tag.toLowerCase():'div').__proto__;});Element.addMethods=function(methods){Object.extend(Element.Methods,methods||{});Object.extend(Element,methods||{});function copy(methods,destination,onlyIfAbsent){onlyIfAbsent=onlyIfAbsent||false;var cache=Element.extend.cache;for(var property in methods){var value=methods[property];if(!onlyIfAbsent||!(property in destination))
destination[property]=cache.findOrStore(value);}}
if(typeof HTMLElement!='undefined'){copy(Element.Methods,HTMLElement.prototype);copy(Element.Methods.Simulated,HTMLElement.prototype,true);_nativeExtensions=true;}}
Abstract.Insertion=function(adjacency){this.adjacency=adjacency;}
Abstract.Insertion.prototype={initialize:function(element,content){this.element=$(element);this.content=content.stripScripts();if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content);}catch(e){var tagName=this.element.tagName.toUpperCase();if(['TBODY','TR'].include(tagName)){this.insertContent(this.contentFromAnonymousTable());}else{throw e;}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange)this.initializeRange();this.insertContent([this.range.createContextualFragment(this.content)]);}
setTimeout(function(){content.evalScripts()},10);},contentFromAnonymousTable:function(){var div=document.createElement('div');div.innerHTML='<table><tbody>'+this.content+'</tbody></table>';return $A(div.childNodes[0].childNodes[0].childNodes);}}
var Insertion=new Object();Insertion.Before=Class.create();Insertion.Before.prototype=Object.extend(new Abstract.Insertion('beforeBegin'),{initializeRange:function(){this.range.setStartBefore(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element);}).bind(this));}});Insertion.Top=Class.create();Insertion.Top.prototype=Object.extend(new Abstract.Insertion('afterBegin'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true);},insertContent:function(fragments){fragments.reverse(false).each((function(fragment){this.element.insertBefore(fragment,this.element.firstChild);}).bind(this));}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion('beforeEnd'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.appendChild(fragment);}).bind(this));}});Insertion.After=Class.create();Insertion.After.prototype=Object.extend(new Abstract.Insertion('afterEnd'),{initializeRange:function(){this.range.setStartAfter(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element.nextSibling);}).bind(this));}});Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element);},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set($A(this).concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set($A(this).without(classNameToRemove).join(' '));},toString:function(){return $A(this).join(' ');}};if(!window.Event){var Event=new Object();}
Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},pointerX:function(event){return event.pageX||(event.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft));},pointerY:function(event){return event.pageY||(event.clientY+
(document.documentElement.scrollTop||document.body.scrollTop));},stop:function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}},findElement:function(event,tagName){var element=Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))
element=element.parentNode;return element;},observers:false,_observeAndCache:function(element,name,observer,useCapture){if(!this.observers)this.observers=[];if(element.addEventListener){this.observers.push([element,name,observer,useCapture]);element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){this.observers.push([element,name,observer,useCapture]);element.attachEvent('on'+name,observer);}},unloadCache:function(){if(!Event.observers)return;for(var i=0,length=Event.observers.length;i<length;i++){Event.stopObserving.apply(this,Event.observers[i]);Event.observers[i][0]=null;}
Event.observers=false;},observe:function(element,name,observer,useCapture){element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
name='keydown';Event._observeAndCache(element,name,observer,useCapture);},stopObserving:function(element,name,observer,useCapture){element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent))
name='keydown';if(element.removeEventListener){element.removeEventListener(name,observer,useCapture);}else if(element.detachEvent){try{element.detachEvent('on'+name,observer);}catch(e){}}}});if(navigator.appVersion.match(/\bMSIE\b/))
Event.observe(window,'unload',Event.unloadCache,false);var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},realOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return[valueL,valueT];},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return[valueL,valueT];},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){if(element.tagName=='BODY')break;var p=Element.getStyle(element,'position');if(p=='relative'||p=='absolute')break;}}while(element);return[valueL,valueT];},offsetParent:function(element){if(element.offsetParent)return element.offsetParent;if(element==document.body)return element;while((element=element.parentNode)&&element!=document.body)
if(Element.getStyle(element,'position')!='static')
return element;return document.body;},within:function(element,x,y){if(this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=this.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=this.realOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=this.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth);},overlap:function(mode,element){if(!mode)return 0;if(mode=='vertical')
return((this.offset[1]+element.offsetHeight)-this.ycomp)/element.offsetHeight;if(mode=='horizontal')
return((this.offset[0]+element.offsetWidth)-this.xcomp)/element.offsetWidth;},page:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{if(!window.opera||element.tagName=='BODY'){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}}while(element=element.parentNode);return[valueL,valueT];},clone:function(source,target){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{})
source=$(source);var p=Position.page(source);target=$(target);var delta=[0,0];var parent=null;if(Element.getStyle(target,'position')=='absolute'){parent=Position.offsetParent(target);delta=Position.page(parent);}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)target.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)target.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)target.style.width=source.offsetWidth+'px';if(options.setHeight)target.style.height=source.offsetHeight+'px';},absolutize:function(element){element=$(element);if(element.style.position=='absolute')return;Position.prepare();var offsets=Position.positionedOffset(element);var top=offsets[1];var left=offsets[0];var width=element.clientWidth;var height=element.clientHeight;element._originalLeft=left-parseFloat(element.style.left||0);element._originalTop=top-parseFloat(element.style.top||0);element._originalWidth=element.style.width;element._originalHeight=element.style.height;element.style.position='absolute';element.style.top=top+'px';element.style.left=left+'px';element.style.width=width+'px';element.style.height=height+'px';},relativize:function(element){element=$(element);if(element.style.position=='relative')return;Position.prepare();element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;}}
Element.extend({getSize:function(){return{'x':this.offsetWidth,'y':this.offsetHeight,'scroll':{'x':this.scrollLeft,'y':this.scrollTop},'size':{'x':this.offsetWidth,'y':this.offsetHeight},'scrollSize':{'x':this.scrollWidth,'y':this.scrollHeight}};},getSizeArray:function(){return[this.offsetWidth,this.offsetHeight];},getSizePair:function(){return new Pair(this.offsetWidth,this.offsetHeight);},getSizeKomma:function(){return this.offsetWidth+','+this.offsetHeight;},getSizeAll:function(){return{'scroll':{'x':this.scrollLeft,'y':this.scrollTop},'size':{'x':this.offsetWidth,'y':this.offsetHeight},'scrollSize':{'x':this.scrollWidth,'y':this.scrollHeight}};},getPosScroll:function(){return{'x':this.scrollLeft,'y':this.scrollTop};},getSizeScroll:function(){return{'x':this.scrollWidth,'y':this.scrollHeight};},activateSize:function(){w=this.getStyle('width').toInt();h=this.getStyle('height').toInt();this.setSize(w,h);return[w,h];},setSize:function(w,h){this.style.width=w+'px';this.style.height=h+'px';return this;},setSizeA:function(a){this.style.width=a[0]+'px';this.style.height=a[1]+'px';return this;},setHeight:function(v){return this.style.height=v+'px';},setWidth:function(v){return this.style.width=v+'px';},getHeight:function(){return this.offsetHeight;},getWidth:function(){return this.offsetWidth;},setPos:function(x,y){this.style.left=x+'px';this.style.top=y+'px';return this;},setPosA:function(a){this.style.left=a[0]+'px';this.style.top=a[1]+'px';return this;},setTop:function(v){this.style.top=v+'px';return this;},setLeft:function(v){this.style.left=v+'px';return this;},getX:function(){return this.style.left.toInt();},getY:function(){return this.style.top.toInt();}});var Pair=new Class({jsClassName:'Pair',initialize:function(x,y){if(!x){this.x=0;this.y=0;}
else this.sXY(x,y);},X:function(){return this.x;},Y:function(){return this.y;},X2:function(){return Math.round(this.x/2);},Y2:function(){return Math.round(this.y/2);},N:function(n){return n?this.y:this.x;},gXY:function(){return[this.x,this.y];},gXY2:function(){return[this.X2(),this.Y2()];},sXY:function(x,y){if(typeof x=='object'){if(x.jsClassName=='Pair'){this.x=x.x;this.y=x.y;}
else if(x.x){this.x=x.x;this.y=x.y;}
else{this.x=x[0].toInt();this.y=x[1].toInt();}}
else{this.x=x.toInt()||0;this.y=y.toInt()||0;}
return this;},map:function(iterator){this.x=iterator(0);this.y=iterator(1);return[this.x,this.y];},mapX:function(iterator){return[iterator(0),iterator(1)];},destroy:function(){},print:function(){return this.x+','+this.y;},toString:function(){return this.inspect();},getWGSdms:function(){return xy2wgsDMS(this.x,this.y).full;},getWGSdm:function(){return xy2wgsDM(this.x,this.y).full;},getWGSd:function(){wgs=xy2wgsD(this.x,this.y);return'N'+wgs[0].round(5)+'° E'+wgs[1].round(5)+'°';},inspect:function(){return"[Object:'"+this.jsClassName+"', x:"+this.x+',y:'+this.y+']';}});$Coord=function(x,y){if($type(x)=='Pair'&&!y){return x;}
else if($type(x)=='array'&&!y){return new Pair(x);}
else if($type(x)=='string'&&!y){p=x.split('|');if(!p[1])p=x.split(',');return new Pair(p);}
return new Pair(x,y);};var Observer=new Class({jsClassName:'observer',initialize:function(){this.list=new Object();return this;},add:function(o,e,f){if(el=$(o)){this.list[e]?this.list[e].push(o):this.list[e]=[o];el.addEvent(e,f);}
else dbug.log('Error: Observer.add = '+o);return this;},adds:function(all){all.each(function(o){if($type(o[0])=='array'){o[0].each(function(ob){this.add(ob,o[1],o[2]);}.bind(this));}
else if($type(o[1])=='array'){o[1].each(function(e){this.add(o[0],e,o[2]);}.bind(this));}
else this.add(o[0],o[1],o[2]);}.bind(this));return this;},remove:function(object,event){this.list[event].remove(object);return this;},removes:function(object,events){events.each(function(e){this.list[e].remove(object);});return this;},notify:function(event,options){if(this.list[event]){this.list[event].each(function(o){$(o).fireEvent(event,options);});}
return this;},notifys:function(events,options){events.each(function(e){this.notify(event,options);});return this;}});var MapModel=new Class({initialize:function(){this.karte='';this.ovMSize=new Pair();this.options=arguments[0]||{};},get:function(v){return this.options[v];},set:function(o){this.options=Object.extend(this.options,o||{});},parseAddress:function(adresse){if($type(adresse)=='string'){url=decode(adresse);delete(this.Adresse);this.Adresse=new Object();if(url=url.match(/(?:adresse|address)\/(.*).html/)){if(url=url[1].match(/([\w]+\/[^\/]+)/g)){for(i=0;i<url.length;){p=url[i++].split('/');this.Adresse[p[0].toLowerCase()]=p[1];}
if(this.Adresse.wgs)this.Adresse.pos=wgs2pos(wgs);return true;}}}
return false;},setAddress:function(adresse){if($type(adresse)=='string'){this.parseAddress(adresse);}
else if($type(adresse)=='object')this.Adresse=adresse;this.makeAddressbox();document.title='Dein Plan - '+this.Adresse.strasse.replace(/<br>/g,' ');this.setMap(this.Adresse.karte);this.setZoom(this.Adresse.zoom);this.Position=$Coord(this.Adresse.pos)
E.notify('mapRedraw');return this;},makeAddressbox:function(){if(!this.Adresse.strasse)this.Adresse.strasse='';if(this.Adresse.strasse&&this.Adresse.nr)this.Adresse.strasse=this.Adresse.strasse+' '+this.Adresse.nr;if(this.Adresse.plz&&this.Adresse.stadt)this.Adresse.stadt=this.Adresse.plz+' '+this.Adresse.stadt;else if(this.Adresse.plz)this.Adresse.stadt='Plz: '+this.Adresse.plz;if(this.Adresse.message){if(this.Adresse.strasse)
this.Adresse.strasse=this.Adresse.message+'<br>'+this.Adresse.strasse;else
this.Adresse.strasse=this.Adresse.message;}
if(this.Adresse.strasse&&this.Adresse.stadt)this.Adresse.strasse+='<br>'+this.Adresse.stadt;else if(this.Adresse.stadt)this.Adresse.strasse=this.Adresse.stadt;if(!this.Adresse.zoom&&this.Karten[this.Adresse.karte])this.Adresse.zoom=this.Karten[this.Adresse.karte].zoom;delete(this.Adresse.message);delete(this.Adresse.plz);delete(this.Adresse.stadt);delete(this.Adresse.nr);},setMap:function(karte){if(karte=='potsdam'||karte=='teltow')karte='berlin';if(this.karte!=karte){this.karte=karte;if(this.Karten[this.Adresse.karte].ovFactor){this.ovFactor=this.Karten[this.Adresse.karte].ovFactor;this.ovOffset=this.Karten[this.Adresse.karte].ovOffset;}
return true;}
return false;},setZoom:function(zoom){this.zoom=zoom;this.zFactor=zoom/100;return this;},setPos:function(x,y){this.Position=$Coord(x,y);return this;},getOvSize:function(){var t=this;return this.ovMSize.map(function(i){return Math.round((t.viewsize[i]/t.ovFactor)/t.zFactor)});},getOvPos:function(bs){var t=this;return this.ovMSize.mapX(function(i){return Math.round(((t.Position.N(i)-t.ovOffset.N(i))/t.ovFactor)-t.ovMSize.N(i)/2)-bs;});},getAddressLink:function(){return'/adresse/karte/'+this.karte+'/pos/'+this.Position.print()+((this.cleanAddress)?'':'/strasse/'+encode(decode(this.Adresse.strasse)))+'.html';},setGPS:function(xy){p=xy.split('|');if(!p[1])p=xy.split(',');this.Position=new Pair(p[0].toInt(),p[1].toInt());return this.Position;},convert:{}});var MapController=new Class({initialize:function(){$extend(this,arguments[0]||{});},newCity:function(city){var city;if(f.value)
city=this.model.Karten[f.value];else
city=this.model.Karten[f];this.model.Adresse.zoom=city.zoom;this.model.setPos(city.pos);this.model.Adresse.karte=city.karte;this.model.Adresse.strasse=city.strasse;},selectMap:function(v){this.model.setAddress(this.model.Karten[v]);this.eye.notify('changeMap');},selectZoom:function(v){v=v.toInt();if(this.model.zoom!=v){this.model.setZoom(v);this.model.zFactor=v/100;this.eye.notify('changeZoom');}},setAddress:function(adresse){if(this.model.setAddress(adresse))E.notify('changeMap');},changeMap:function(karte){this.model.Adresse=this.model.Karten[karte];if(this.model.setAddress())E.notify('changeMap');;},checkInitAddress:function(address){if(!M.parseAddress(address)){this.model.Adresse=this.model.Karten[this.model.hoststadt];}
if(!this.model.Adresse.karte)this.model.Adresse.karte=this.model.hoststadt;this.model.karte=this.model.Adresse.karte;if(!this.model.Adresse.zoom)this.model.Adresse.zoom=this.model.Karten[this.model.Adresse.karte].zoom;this.model.zoom=this.model.Adresse.zoom;this.model.zFactor=this.model.Adresse.zoom/100;this.model.Position=$Coord(this.model.Adresse.pos);this.model.ovFactor=this.model.Karten[this.model.Adresse.karte].ovFactor;this.model.ovOffset=this.model.Karten[this.model.Adresse.karte].ovOffset;},showAddressBox:function(show){if(!M.cleanAddress&&!show){M.cleanAddress=true;['message','strasse','plz','stadt'].each(function(e){$('mapAB'+e).setHTML('');});}
else if(show){M.cleanAddress=false;['message','strasse','plz','stadt'].each(function(e){$('mapAB'+e).setHTML(M.Adresse[e]);});}},setPos:function(x,y){this.model.setPos(x,y);this.eye.notify('mapRedraw');this.eye.notify('changePos');this.eye.notify('cleanAddress');},viewResize:function(s){M.viewsize=[s.x,s.y];ini.set('vs',s.x+'_'+s.y);E.notify('changeViewSize',s);mapView.viewResize();},setGPS:function(xy){p=xy.split('|');if(!p[1])p=xy.split(',');this.Position=new Pair(p[0].toInt(),p[1].toInt());return this.Position;},convert:{},destroy:{}});var Switcher=new Class({initialize:function(options){this.containers=$$('div.switcher');this.containers.each(function(el){el.id='switcher'+ID.newID();$$('#'+el.id+' div.wt')[0].addEvent('click',function(e){el.toggleClass('off');});});return this;}});var IDGen=new Class({id:1,initialize:function(){return this;},newID:function(){return this.id++;},get:function(){return this.id;},set:function(a){this.id=a;}});var ID=new IDGen();function dpWinHTMLx(caption,body,options){this.options=$merge({width:'400px',css:"div.DefaultStickyWin{width:%width%}div.DefaultStickyWin div.top_ul{background:url(%baseHref%full.png) top left no-repeat !important; background:url(%baseHref%full.gif) top left no-repeat; height:30px; width:15px; float:left}div.DefaultStickyWin div.top_ur{position:relative; left:0px !important; left:-4px; background:url(%baseHref%full.png) top right !important; background:url(%baseHref%full.gif) top right; height:30px; margin:0px 0px 0px 15px !important; margin-right:-4px; padding:0px}div.DefaultStickyWin h1.caption{margin:0; padding:0; font-weight:bold; color:#555; font-size:14px; position:relative; top:8px; left:5px; width:%h1Width%}div.DefaultStickyWin div.middle{background:url(%baseHref%body.png) top left repeat-y!important; background:url(%baseHref%body.gif) top left repeat-y; margin-right:20px}div.DefaultStickyWin div.body{background:url(%baseHref%body.png) top right repeat-y !important; background:url(%baseHref%body.gif) top right repeat-y; padding:8px 30px 8px 0px; margin-left:5px; position:relative; right:-20px}div.DefaultStickyWin div.bottom_ll{background:url(%baseHref%full.png) bottom left no-repeat!important; background:url(%baseHref%full.gif) bottom left no-repeat; width:15px; height:15px; float:left}div.DefaultStickyWin div.bottom_lr{background:url(%baseHref%full.png) bottom right !important; background:url(%baseHref%full.gif) bottom right; position:relative; left:0px !important; left:-4px; margin:0px 0px 0px 15px !important; margin-right:-4px; height:15px}div.DefaultStickyWin div.closeButton{width:13px; height:13px; background:url(%baseHref%closebtn.gif); float:right; margin:10px 15px 0px 0px; cursor:pointer}div.DefaultStickyWin div.closeButton:hover{background:url(%baseHref%closebtn_over.gif)}",baseHref:'/img/'},options);window.onDomReady(function(){try{if(!$('defaultStickyWinStyle')){this.options.h1Width=(this.options.width.toInt()-50)+'px';var css=simpleTemplateParser.parseTemplate(this.options.css,this.options);new Element('style').setProperty('id','defaultStickyWinStyle').injectInside($$('head')[0]).appendText(css);}}catch(e){dbug.log('error: %s',e);}}.bind(this));caption=$pick(caption,'%caption%');body=$pick(body,'%body');var container=new Element('div').setProperty('class','DefaultStickyWin');var h1Caption=new Element('h1').addClass('caption')
if($(caption))h1Caption.adopt(caption);else h1Caption.setHTML(caption);var bodyDiv=new Element('div').addClass('body')
if($(body))bodyDiv.adopt(body);else bodyDiv.setHTML(body);container.adopt(new Element('div').addClass('top').adopt(new Element('div').addClass('top_ul')).adopt(new Element('div').addClass('top_ur').adopt(new Element('div').addClass('closeButton').addClass('closeSticky')).adopt(h1Caption)));container.adopt(new Element('div').addClass('middle').adopt(new Element('div').addClass('body_left')).adopt(bodyDiv));container.adopt(new Element('div').addClass('bottom').adopt(new Element('div').addClass('bottom_ll')).adopt(new Element('div').addClass('bottom_lr')));return container;};function dpSearchWinHTML(title,body,style){content='<div class=wb id=winSR style="'+style+'">'+'<div class=wt id=searchResultTitle style="">Suchergebnis: Mehrere Objekte gefunden</div>'+'<div class=wc id=searchResultContent style="overflow:auto;max-height:500px;">'+
body+'</div>'+'<img class=btnClose src="/img/close.png" alt=X title=Schliessen />'+'</div>';return content;}
function dpWinHTML(title,body,style){content='<div class=wb style="'+style+'">'+'<div class=wc>'+'<div class=wt style="cursor: move;">'+title+'</div>'+
body+'</div><img class=btnClose src="/img/close.png" alt="" title=Schliessen />'+'</div>';return content;}
function dpBallonHTML(title,body,style){content='<div class=dp_ballon style="top: 300px; left: 300px;" id=dp_ballon>'+'<div class=dp_ballon_txt>'+title+'</div>'+'<div class=dp_ballon_con>'+body+'</div>'+'</div><div class=dp_ballon_cls><a href="/" title=Schliessen><img src="/img/close.png" alt="" /></a></div></div>';return content;}
function dpInfoHTML(body){content='<div style="position: absolute; visibility: hidden; z-index: 2000; width: 100px; background: #ffe" id=infoTip>'+body+'</div>';return content;}
Window=Class.create();Window.prototype={initialize:function(v){content='<div class=wb id=searchResultWindow style="'+style+'">'+'<div class=wt id=searchResultTitle style="cursor: move;">Suchergebnis: Mehrere Straßen gefunden</div>'+'<div class=wc id=searchResultContent>'+
body+'</div><img class=btnClose src="/img/close.png" alt="" title=Schliessen /></div>';return this;},getArrayData:function(key){return this.a[key];},getthis:function(){return this.test;},destroy:function(){}};function wgsConvert(c){if(c=new Coord(c)){$('wgsDMS').value=c.printDMS();$('wgsDM').value=c.printDM();$('wgsD').value=c.printD();}}
function icoMC(e){var b;e=e?e:((window.event)?window.event:0);e=$((e.target)?e.target:e.srcElement);if(!(b=e.getProperty('name')))
b=e.getParent().getProperty('name');if(b=="drucken")
window.open('/print.php?gps='+M.Position.print()+'&map='+M.karte,'Druckausgabe');else if(b=="druck_lic")
window.open('/print_lic.php?gps='+M.Position.print()+'&map='+M.karte,'Druckausgabe');else if(b=="fehler")
window.open('/contact.php?thema=Fehler/Hinweis&pos='+M.Position.print()+'&karte='+M.karte,'Kontakt');else if(b=="visitenkarte")
wizardBusiness();else if(b=="legende")
winLegende('Kartenlegende');else{$('ico'+rasterActive).removeClass('active');rasterActive=e.id.charAt(3);e.addClass('active');s=(b.split('_')[1]).split(',');C.viewResize({x:s[0].toInt(),y:s[1].toInt()});}}
function wizardBusiness(f,a){var t,d;if($type(f)=='string'){if(f=='newlogin'){t="Neuanmeldung starten.";d='mod='+f;}else if(f=='step2'){$(a).href='/visitenkarten/?mod=wizard&step=new&pos='+M.Position.print();return true;}}
else if(f){t="Anmeldung gesendet, warte auf Bestätigung";d=$(f).toQueryString();}
else{t="Sie müssen eingeloggt sein: Prüfe Status...";d='mod=logstatus';}
wizardBusiness_Win(t);new Ajax('/ajax.php',{method:'post',data:d,onComplete:function(res){wizardBusiness_Win(res.text);},onFailure:function(){wizardBusiness_Win('Anfrage abgebrochen.');},evalJSON:true}).request();return false;}
function wizardBusiness_Win(text){if(M.wizardBusinessWin&&!M.wizardBusinessWin.destroyed){M.wizardBusinessWin.el.getElement('#body_compact').setHTML(text);M.wizardBusinessWin.show();}
else{M.wizardBusinessWin=new Windoo({title:'Visitenkarte erstellen',position:{relativeTo:$('mapAddressBox'),position:{x:'left',y:'top'}}}).setHTML('<fieldset id=body_compact class=inline5>'+text+'</fieldset>').show();}
s=M.wizardBusinessWin.el.getElement('#body_compact').getSize();M.wizardBusinessWin.setSizeInner(s.x,s.y);}
function searchBusiness(f){f.pos.value=M.Position.print();$('search1').addClass('searching');$(f).send({onComplete:searchBusiness_onComplete,onFailure:function(){$('search1').removeClass('searching');$('searchError').setHTML('Anfrage abgebrochen.');}.bind(this),evalJSON:true});return false;}
function searchBusinessLink(e){Event.stop(e);el=new Event(e).target;$query=el.href.split("?");M.resultBusinessWin.setHTML('<div class="showWhileSearch show" ><div></div></div>');new Ajax($query[0],{method:'post',data:$query[1],onComplete:searchBusiness_onComplete,onFailure:function(){$('search1').removeClass('searching');$('searchError').setHTML('Anfrage abgebrochen.');},evalJSON:true}).request();return false;}
function searchBusiness_onComplete(response){$('search1').removeClass('searching');$('searchBusinessError').setHTML();if(json=response.json){if(json.result>0){searchBusiness_Win(response.text);}
else{$('searchBusinessError').setHTML(response.text);if(M.resultBusinessWin)M.resultBusinessWin.hide();}}
else{$('searchBusinessError').setHTML(response.text);if(M.resultBusinessWin)M.resultBusinessWin.hide();}}
function searchBusiness_Win(text){if(M.resultBusinessWin&&!M.resultBusinessWin.destroyed){M.resultBusinessWin.setHTML(text);M.resultBusinessWin.show();}
else{M.resultBusinessWin=new Windoo({title:'Umkreissuche Unternehmen und Branchen',width:500,height:500}).setHTML(text).show();}
M.resultBusinessWin.el.getElements('a[coords]').each(function(e){e.addEvents({click:function(e){Event.stop(e);C.setAddress(new Event(e).target.href);},mouseover:function(e){el=$(new Event(e).target);if(c=el.getAttribute('coords'))mapView.marker.show(c);else if(c=el.getParent().getAttribute('coords'))mapView.marker.show(c);},mouseout:function(e){mapView.marker.hide();}});});M.resultBusinessWin.el.getElements('div.pagenavi a[href]').each(function(e){e.addEvents({click:searchBusinessLink});});}
function refreshRegio(){cats=(M.regioCats)?'&cats='+M.regioCats:'';new Ajax('/search_regio.php',{method:'post',data:'x='+M.Position.x+'&y='+M.Position.y+'&karte='+M.karte+'&radius='+M.radius+'&zoom='+M.zoom+cats,autoCancel:true,onComplete:poiAddEvents,update:'regioObj',evalJSON:true}).request();return false;}
function poiAddEvents(response){$$('div.business div').each(function(e){e.addEvents({mouseover:function(e){el=$(new Event(e).target);while(!(c=el.getAttribute('coords'))){if(!(el=el.getParent()))break;}
if(c)mapView.marker.show(c);},mouseout:function(e){mapView.marker.hide();}});});$$('div.streetRegister').each(function(e){e.addEvents({click:function(e){Event.stop(e);el=new Event(e).target;if(ext=el.getAttribute('ext')){mapView.showBubble(el.parentNode.getText(),'',ext,el.parentNode.getAttribute('coords'));return;}
else if(ext=el.getAttribute('lnk')){window.open('/poi/?id='+ext);return;}
if(el.tagName=="A"){C.setAddress(el.href);mapView.showLoci(M.Adresse.strasse,el.getAttribute('coords'));}},mouseover:function(e){el=$(new Event(e).target);if(c=el.getAttribute('coords'))mapView.marker.show(c);else if(c=el.getParent().getAttribute('coords'))mapView.marker.show(c);},mouseout:function(e){mapView.marker.hide();}});});}
function searchStreet(f){$('search0').addClass('searching');this.request=$('smStreet').send({onComplete:searchStreet_onComplete.bind(this),onFailure:function(){$('search0').removeClass('searching');$('searchError').setHTML('Anfrage abgebrochen.');}.bind(this),evalJSON:true});return false;}
function searchStreetId(id){new Ajax('search.php',{method:'post',data:'strasse_id='+id,onComplete:searchStreet_onComplete.bind(this),onFailure:searchStreet_onComplete.bind(this),evalJSON:true}).request();return false;}
function searchStreet_onComplete(response){$('search0').removeClass('searching');var se=$('searchError');se.setHTML();if(json=response.json){if(json.result==1){if(M.searchResultWin)M.searchResultWin.hide();C.setAddress(json.adresse);}
else if(json.result>1){searchResultWin(response.text);}
else{se.setHTML(response.text);if(M.searchResultWin)M.searchResultWin.hide();}}
else{se.setHTML(response.text);if(M.searchResultWin)M.searchResultWin.hide();}}
function searchResultWin(text){text='<div style="margin:0px 20px;"><input type=checkbox id=btnHoldOpen><span style="vertical-align:middle"> Fenster geöffnet halten</span></div>'+text;if(M.searchResultWin&&!M.searchResultWin.destroyed){M.searchResultWin.setHTML(text);M.searchResultWin.show();}
else{M.searchResultWin=new Windoo({title:'Suchergebnis: Mehrere Objekte gefunden',position:{relativeTo:$('mapContainer'),position:'righttop',edge:'righttop'},width:500,height:500}).setHTML(text).show();}
$$('tr.searchResult').each(function(e){$(e).addEvent('click',function(e){C.setAddress($(this).getElement('a').href);if(!$('btnHoldOpen').checked)
M.searchResultWin.hide();Event.stop(e);});});}
function winLegende(text){if(M.winLegende&&!M.winLegende.destroyed){M.winLegende.show();}
else{M.winLegende=new Windoo({title:'Kartenlegende',buttons:{maximize:'disabled'},resizeLimit:{'x':[100,527],'y':[100,700]},width:527,height:591}).setHTML('<img src="http://c.deinplan.de/leg/'+(M.Adresse.karte)+'.png" title=Kartenlegende />').show();}}
function winTipOfDay(){if(M.winTipOfDay&&!M.winTipOfDay.destroyed){M.winTipOfDay.show();}
else{M.winTipOfDay=new Windoo({title:'Tip des Tages',buttons:{maximize:'disabled'},width:600,height:500}).setHTML("Lade 'Tipp des Tages'").show();new Windoo.Ajax('/tipofday.php',{method:'post',evalJSON:false,window:M.winTipOfDay}).request();}}
Windoo.Ajax=Ajax.extend({onComplete:function(){if(this.options.window)this.options.window.setHTML(this.response.text);this.parent();}});function showCard(e,id){window.open('visitenkarten/?id='+id,'Visitenkarte','width:450px');Event.stop(this);}
function wgs2pos(wgs){return new Coord(wgs).printXY();}
function wgsv2pos(xw,yw){if(!yw){p=/([\d]+\.[\d]+)_([\d]+\.[\d]+)/.exec(xw);if(!p)return'[wgsv2pos]Formatfehler';xw=p[2];yw=p[1];}
xr=(xw-15.68)*390.9401+2293;yr=0-(yw-34.15)*636.1111+3553;return[Math.round(xr),Math.round(yr)];}
function xy2wgsDMS(x,y){var dms={};dms.xm=Math.round((-(1630+663-x)/390.9401+15.68)*100)/100;dms.ym=Math.round(((3540+13-y)/636.1111+34.15)*100)/100;fullx=13;fully=52;while(dms.xm>60){fullx++;dms.xm=dms.xm-60;}
while(dms.xm<0){fullx--;dms.xm=dms.xm+60;}
while(dms.ym>0){fully++;dms.ym=dms.ym-60;}
while(dms.ym<0){fully--;dms.ym=dms.ym+60;}
dms.xs=dms.xm-(dms.xm=Math.floor(dms.xm));dms.ys=dms.ym-(dms.ym=Math.floor(dms.ym));dms.xs=(dms.xs*60).round(4);dms.ys=(dms.ys*60).round(6);dms.x="E"+fullx+"°"+dms.xm+"'"+dms.xs;dms.y="N"+fully+"°"+dms.ym+"'"+dms.ys;dms.full=dms.y+' '+dms.x;return dms;}
function xy2wgsDM(x,y){var dms={};dms.xm=Math.round((-(1630+663-x)/390.9401+15.68)*100)/100;dms.ym=Math.round(((3540+13-y)/636.1111+34.15)*100)/100;fullx=13;fully=52;while(dms.xm>60){fullx++;dms.xm=dms.xm-60;}
while(dms.xm<0){fullx--;dms.xm=dms.xm+60;}
while(dms.ym>0){fully++;dms.ym=dms.ym-60;}
while(dms.ym<0){fully--;dms.ym=dms.ym+60;}
dms.x="E"+fullx+"°"+dms.xm.round(4)+"'";dms.y="N"+fully+"°"+dms.ym.round(4)+"'";dms.full=dms.y+' '+dms.x;return dms;}
function xy2wgsD(x,y){xr=(x+308770)/23456.4;yr=(2009945-y)/38166.7;return new Array(yr,xr);}
function deg2rad(deg){deg=deg%360;if(deg<0)deg+=360;rad=(2*Math.PI*deg)/360;if(rad<0)rad+=(2*Math.PI);return rad;}
function rad2deg(rad){while(rad>(2*Math.PI))
rad-=(2*Math.PI);return(rad/(2*Math.PI))*360;}
Coord=Class.create();Coord.prototype={jsClassName:'Coord',initialize:function(x,y){if(y)return this.setXY(x,y);else if(x)return this.setWGS(x);},setXY:function(x,y){if(isNaN(x)||isNaN(y))return false;this.pos={'x':x,'y':y};this._fromDEG('y',this.y2wgs(y));this._fromDEG('x',this.x2wgs(x));return this;},x2wgs:function(x){return(x+308770)/23456.4},y2wgs:function(y){return(2009945-y)/38166.7},setWGS:function(wgs){var p,r,a='x',b='y';wgs=wgs.toUpperCase();if(p=/^ *([NEO]?)([\d]{1,2})[_°] *([\d\.]+[_']?|[\d]{1,2}[_'] *[\d\.]+)["_\s]*([NEO])[_\s]*([\d]{1,2})[_°] *([\d]{1,2}[_'] *[\d\.]+|[\d\.]+[_']?)["_\s]*([NEO]?) *$/.exec(wgs)){if((p[1]&&p[1]=='N')||(p[7]&&p[4]=='N')){a=b;b='x';}
if(!(this._fromDMS(a,p[2],p[3])&&this._fromDMS(b,p[5],p[6])))return false;}
else if(p=/^ *([NEO]?)([\d\.]+)[_°\s]*([NEO])[_\s]*([\d\.]+)[_°\s]*([NEO]?) *$/.exec(wgs)){if((p[1]&&p[1]=='N')||(p[5]&&p[3]=='N')){a=b;b='x';}
this._fromDEG(a,p[2]);this._fromDEG(b,p[4]);}
else{return false;}
this.pos={'x':Math.round(this.x.DEG*23456.4-308770),'y':Math.round(2009945-this.y.DEG*38166.7)};return this;},_fromDMS:function(a,b,c){var d,e,f,g=b.toInt();if(b=/([\d\.]+)[_']?$|([\d]+)[_']{1,1}([\d\.]+)[_"]?/.exec(c)){if(b[1]){d=b[1].toFloat();e=d.toInt();this[a]={'iDEG':g,'MIN':d,'iMIN':e,'SEC':(d-e)*60,'DEG':g+d/60};return true;}
else if(b[2]&&b[3]){d=b[2].toInt();e=b[3].toFloat();f=d+e/60;this[a]={'iDEG':g,'iMIN':d,'SEC':e,'MIN':f,'DEG':g+f/60};return true;}}
return false;},_fromDEG:function(a,b){var c=b.slice(0,8).toFloat(),d=b.toInt(),e=(c-d)*60,f=e.toInt();this[a]={'DEG':c,'iDEG':d,'MIN':e,'iMIN':f,'SEC':(e-f)*60};},printXY:function(){return this.pos.x+','+this.pos.y;},printDMS:function(){return this.y.iDEG+'°'+this.y.iMIN+"'"+this.y.SEC.round(3)+'"N '+this.x.iDEG+'°'+this.x.iMIN+"'"+this.x.SEC.round(3)+'"E';},printDM:function(){return this.y.iDEG+'°'+this.y.MIN.round(4)+"'N "+this.x.iDEG+'°'+this.x.MIN.round(4)+"'E";},printD:function(){return this.y.DEG.round(6)+'°N '+this.x.DEG.round(6)+'°E';},destroy:function(){delete(this.pos,this.x,this.y);}};var BigView=new Class({jsClassName:'BigView',initialize:function(element){var t=this,defaults={handle:false};t.options=Object.extend(defaults,arguments[1]||{});t.func('init',t.options);t.grid=new BigView.Grid(this);t.winSize=new Pair();t.winCenter=new Pair();t.gridDim=new Pair();t.gridOffset=new Pair();t.viewOffset=new Pair();t.mapPos=new Pair();t.viewCenter=new Pair();t.viewPos=new Pair();t.gridSize=new Pair();t.gridSize2=new Pair();t.posInnerCell=new Pair();t.gridStartPosOnMap=new Pair();t.dragOffset=new Pair();t.mapPointerCenter=new Pair();t.offsetLayer=new Pair();t.posZ=new Pair();t.tileSize=t.options.tileSize;t.tileSize2=t.tileSize/2;t.zoom=1;t.mapReady=false;t.marker='';},observeStart:function(){this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.hObserve,"mousedown",this.eventMouseDown);Event.observe($('mapCross'),"mousedown",this.eventMouseDown);Draggables.register(this);},observeStop:function(){Event.stopObserving(this.hObserve,"mousedown",this.eventMouseDown);Event.stopObserving($('mapCross'),"mousedown",this.eventMouseDown);Draggables.unregister(this);},destroy:function(){this.observeStop();},viewInit:function(){var t=this;this.options=Object.extend(this.options,arguments[1]||{});this.mapView=$('mapView');this.mapViewport=$('mapViewport');this.mapLayers=$('mapLayers');this.map=this.insertLayer(0);this.mapPOI=this.insertLayer(1);t.winSize=new Pair(this.mapViewport.getSize());E.adds([['mapLayers',['mapRedraw','changeMap','changeZoom'],function(ev){this.newPosition();}.bind(this)],['mapViewport','changeViewSize',function(s){this.setSize(s.x,s.y);}]]);this.hDrag=this.mapLayers;this.hObserve=this.map;this.delta=this.currentDelta();this.dragging=false;this.func('viewInit',this.options);this.observeStart();this.eventStatus=this.status.bindAsEventListener(this);Event.observe(this.map,"mousemove",this.eventStatus);Draggables.register(this);this.markerInit();this.mapRecalcVars();this.grid.resize();if($('mapViewport').style.cursor){this.changeCursor=function(a){$('mapCross').style.cursor='url(http://c.deinplan.de/hand'+(a?'closed':'open')+'.cur),move';$('mapViewport').style.cursor='url(http://c.deinplan.de/hand'+(a?'closed':'open')+'.cur),move';}}else{$('mapViewport').style.cursor='';}},changeCursor:function(a){},mapDraw:function(){this.mapRecalcVars();this.grid.repaint();},mapRedraw:function(x,y,karte){this.mapRecalcVars();this.grid.repaint();},mapRecalcVars:function(){var t=this;t.zFactor=M.zoom/100;t.posZ.map(function(i){return(Math.ceil(M.Position.N(i)*t.zFactor))});t.viewCenter.map(function(i){return(Math.ceil(t.winSize.N(i)/2))});t.gridSize2.map(function(i){return(Math.ceil(t.viewCenter.N(i)/t.tileSize))});t.gridSize.map(function(i){return(t.gridSize2.N(i)*2+1)});t.posInnerCell.map(function(i){return((t.posZ.N(i))%t.tileSize)});if(t.posInnerCell.x<0)t.posInnerCell.x+=t.tileSize;if(t.posInnerCell.y<0)t.posInnerCell.y+=t.tileSize;t.gridStartPosOnMap.map(function(i){return(t.posZ.N(i)-t.posInnerCell.N(i)-(t.gridSize2.N(i))*t.tileSize)});t.viewPos.map(function(i){return(t.viewCenter.N(i)-t.posInnerCell.N(i))});t.gridDim.map(function(i){return(t.gridSize.N(i)*t.tileSize)});t.gridOffset.map(function(i){return(t.gridSize2.N(i)*t.tileSize)});t.offsetLayer.map(function(i){return(t.posZ.N(i)+t.viewPos.N(i)-t.viewCenter.N(i))});t.viewOffset.sXY(t.gridOffset);M.radius=Math.ceil(this.viewCenter.x/this.zFactor)+'x'+Math.ceil(this.viewCenter.y/this.zFactor);pos=this.mapLayers.getPosition();t.mapPointerCenter.x=pos.x*-1+t.viewCenter.x;t.mapPointerCenter.y=pos.y*-1+t.viewCenter.y;if(t.bubble)t.bubble.resetPos();if(t.mapLoci)t.mapLoci.resetPos();this.mapLayers.setPos(this.viewPos.x,this.viewPos.y);},mapRecalcPosition:function(){var t=this;t.posZ.map(function(i){return(t.gridStartPosOnMap.N(i)+t.gridOffset.N(i)+t.posInnerCell.N(i))});M.Position.map(function(i){return(Math.ceil(t.posZ.N(i)/t.zFactor))});E.notify('changePos');},initDrag:function(event){if(typeof BigView._dragging[this.hDrag]!='undefined'&&BigView._dragging[this.hDrag])return;if(Event.isLeftClick(event)){var pointer=[Event.pointerX(event),Event.pointerY(event)];this.pointLast=pointer;Draggables.activate(this);if(window.addEventListener)this.eventWinMouseOut=this.winMouseOut.bindAsEventListener(this);Event.stop(event);}},startDrag:function(event){this.dragging=true;E.notify('cleanAddress');this.changeCursor(1);this.dragStart=true;this.xDrag=event.clientX;this.yDrag=event.clientY;},updateDrag:function(event,pointer){if(event.clientX==0&&event.clientY==0)Event.stop(event);if(!this.dragging)this.startDrag(event);this.draw(pointer);if(navigator.appVersion.indexOf('AppleWebKit')>0)window.scrollBy(0,0);Event.stop(event);},finishDrag:function(event,success){var t=this;this.dragging=false;this.mapRecalcPosition();this.printStatus(1,'BigView.finishDrag:');if(this.options.zindex)
this.hDrag.style.zIndex=this.originalZ;if(window.addEventListener){Event.stopObserving(window,"mouseout",this.eventWinMouseOut);delete this.eventWinMouseOut;}
Draggables.deactivate(this);this.changeCursor(0);},winMouseOut:function(event){if(!event.relatedTarget)this.eventMouseUp(event);},permalink:function(){$('permalink').href='/adresse/karte/'+M.Adresse.karte+'/pos/'+M.Position.x+','+M.Position.y+((M.Adresse.strasse=='')?'':'/strasse/'+encode(M.Adresse.strasse))+'.html';},currentDelta:function(){return([parseInt(this.hDrag.getStyle('left')||'0'),parseInt(this.hDrag.getStyle('top')||'0')]);},keyPress:function(event){if(event.keyCode!=Event.KEY_ESC)return;this.finishDrag(event,false);Event.stop(event);},endDrag:function(event){if(!this.dragging)return;this.finishDrag(event,true);Event.stop(event);},draw:function(point){var t=this;var d=[0,1].map(function(i){return(point[i]-this.pointLast[i])}.bind(this));this.pointLast=point;t.posInnerCell.map(function(i){return(this.posInnerCell.N(i)-d[i])}.bind(this));if(t.posInnerCell.x<0){t.gridStartPosOnMap.x-=t.tileSize;t.viewOffset.x+=t.tileSize;t.posInnerCell.x+=t.tileSize;}
else if(t.posInnerCell.x>t.tileSize){t.gridStartPosOnMap.x+=t.tileSize;t.viewOffset.x-=t.tileSize;t.posInnerCell.x-=t.tileSize;}
if(t.posInnerCell.y<0){t.gridStartPosOnMap.y-=t.tileSize;t.viewOffset.y+=t.tileSize;t.posInnerCell.y+=t.tileSize;}
else if(t.posInnerCell.y>t.tileSize){t.gridStartPosOnMap.y+=t.tileSize;t.viewOffset.y-=t.tileSize;t.posInnerCell.y-=t.tileSize;}
this.grid.posNew();var c=this.currentDelta();with(this.hDrag){setLeft(c[0]+d[0]);setTop(c[1]+d[1]);}},insertLayer:function(z){new Element('div',{'styles':{'z-index':z,'position':'absolute','background':'transparent'},'id':'layer'+z}).injectInside(this.mapLayers);return $('layer'+z);},viewResize:function(s){this.winSize=this.mapViewport.getSizePair();this.mapRecalcVars();this.grid.resize();},viewResizeRaster:function(raster){var t=this;if(raster.size)t.winSize=new Pair(raster.size.split('x'));if(raster.x)t.winSize=new Pair(raster.x,raster.y);if(raster.raster)t.winSize=o.winSizes[raster.raster];if($type(raster)=='string')t.winSize=new Pair(raster.split(','));this.viewResize();},newAddressLink:function(link){p=link.split('|');M.Adresse.strasse=decode(p[0]);M.Adresse.karte=p[1];M.setPos(p[2],p[3]);},newPosition:function(x,y,karte){this.mapRecalcVars();this.grid.repaint();},printStatus:function(){},status:function(){},func:function(func){this.options=Object.extend(this.options,arguments[1]||{});if(typeof this.options[func]=='function')
this.options[func](this.options);},tileCheck:function(x,y,a){if(e=this.grid2[x+'x'+y]){}
else{this.tileCheck()}},markerInit:function(){this.marker=new BigView.Object({layer:'mapLayers',map:this,content:'/t.gif',offset:new Pair(-20,-20)});},markerSet:function(coords){if(this.markerShow){if(!this.marker){this.marker=new BigView.Object({layer:this.mapView,content:'/t.gif',position:new Pair(x,y),offset:new Pair(-20,-20),offsetLayer:this.offsetLayer});}
else{this.marker.setPos(x,y);}}
else return false;return true;},markerOn:function(){this.markerShow=true;},markerShow:function(coords){this.marker.show(coords);},markerShowNext:function(){this.marker.showNext();},markerHide:function(){this.marker.hide();},makeUnselectable:function(obj){if(window.ie){obj.unselectable="on";obj.onselectstart=this.falseFunction;}
else if(window.gecko){obj.style.MozUserSelect="none";obj.oncontextmenu=function(event){Event.stop(event);};}},tileUrl:function(x,y){return'http://m.deinplan.de/map/?tile='+Math.ceil(x/this.zFactor)+','+Math.ceil(y/this.zFactor)+'&base='+M.karte+'&zoom='+M.zoom;},showBubble:function(title,body,ext,coords){if(!this.bubble)
this.bubble=new BigView.Bubble(this);this.bubble.show(title,body,ext,coords);},showLoci:function(title,coords){if(!this.mapLoci)
this.mapLoci=new BigView.Street(this);this.mapLoci.show(title,coords);},selectbox:function(x,y,xg,yg){'<div class=selectbox style="top: 100px; left: 100px; width: 100px; height: 100px;"/>';return;}});BigView._dragging={};BigView.Bubble=new Class({jsClassName:'BigView.Object',initialize:function(map){this.map=map;this.poiInfo=new Element('div',{'id':'mapBubble'}).setHTML(('<div class=wrapper>'+
('<div class=wrapper2'+((window.ie6)?'_ie6':'')+'>'+
('<div class=wrapper3>'+
('<div class=wb>'+
('<div class=wt><span class=title></span><div class="winbtnbar-alphacube"><a class="winbtn winbtn-close" title=Schliessen>.</a></div></div>')+
('<div class=body>'+'</div>')+'</div>')+'</div>')+'</div>')+
('<div style="overflow:hidden" >'+'<img src="http://c.deinplan.de/mbs'+((window.ie6)?'_ie6':'')+'.png" /></div>')+'</div>')+' ').injectInside('layer1');this.title=this.poiInfo.getElement('span.title');this.body=this.poiInfo.getElement('div.body');this.setPos(M.Position.x,M.Position.y);this.poiInfo.getElement('a.winbtn-close').addEvent('click',function(){this.hide();}.bind(this))
return this;},setPos:function(x,y){this.x=x;this.y=y;return this.resetPos();},resetPos:function(){this.poiInfo.setPos((this.x*this.map.zFactor-this.map.offsetLayer.x),(this.y*this.map.zFactor-this.map.offsetLayer.y));return this;},setTitle:function(text){this.title.setHTML(text);return this;},setBody:function(text){this.body.setHTML(text);return this;},show:function(title,body,ext,coords){coords=eval('['+coords+']');this.setPos(coords[0],coords[1]).setTitle(title).setBody('<div style="margin:10px 50%;left:-33px;width:66px;height:66px;vertical-align:middle;text-align:center;line-height:66px;background:url(http://c.deinplan.de/ax3.gif)"/>Loading</div>');this.poiInfo.show();new Ajax('/poi/info.php',{method:'post',data:'id='+ext,autoCancel:true,onComplete:function(){},update:$('mapBubble').getElement('div.body')}).request();return this;},hide:function(){this.poiInfo.hide();this.setTitle('').setBody('');return this;},destroy:function(){this.poiInfo.remove();}});BigView.Street=new Class({jsClassName:'BigView.Street',initialize:function(map){this.map=map;this.body=new Element('div',{'id':'mapLoci'}).setHTML(' ').injectInside('layer1');this.setPos(M.Position.x,M.Position.y);this.body.addEvent('click',function(){this.hide();}.bind(this))
return this;},setPos:function(x,y){this.x=x;this.y=y;return this.resetPos();},resetPos:function(){this.body.setPos((this.x*this.map.zFactor-this.map.offsetLayer.x),(this.y*this.map.zFactor-this.map.offsetLayer.y));return this;},setBody:function(text){this.body.setHTML(text);return this;},show:function(title,coords){coords=eval('['+coords+']');this.setPos(coords[0],coords[1]).setBody(title);this.body.show();return this;},hide:function(){this.body.hide();this.setBody('');return this;},destroy:function(){this.body.remove();}});BigView.Grid=new Class({jsClassName:'BigView.Grid',initialize:function(f){this.f=f;this.a=new pHash();this.full=true;return this;},resize:function(x,y){var f=this.f,oldSize=this.a.keys().length,newSize=f.gridSize.x*f.gridSize.y;if(oldSize>newSize){var b=this.a.keys();for(i=newSize;i<oldSize;i++){this.a[b[i]].destroy();this.a.remove(b[i]);}}
else if(oldSize<newSize){for(i=oldSize;i<newSize;i++){this.a[i]=new BigView.Tile(f);}}
this.posNew();},posNew:function(){var f=this.f;var x=f.gridStartPosOnMap.x,y=f.gridStartPosOnMap.y;var s=f.tileSize;var e,xi,yj,js,is,id;var a=this.a;var b=new Array();var c=new pHash();for(j=0;j<f.gridDim.y;j+=s){yj=y+j;for(i=0;i<f.gridDim.x;i+=s){xi=x+i;id=xi+'x'+yj;if(this.a[id]){c[id]=a.remove(id).posNew(xi,yj,i-f.viewOffset.x,j-f.viewOffset.y);}
else{b.push([xi,yj,i,j]);}};};a.each(function(p){i=b.pop();c[i[0]+'x'+i[1]]=p.value.posNew(i[0],i[1],i[2]-f.viewOffset.x,i[3]-f.viewOffset.y);});this.a=c;this.full=false;return;},repaint:function(){return this.resize();},destroy:function(){}});BigView.Tile=new Class({jsClassName:'BigView.Tile',initialize:function(f){this.f=f;this.oldurl='';this.e=new Element('img',{'events':{'load':function(){this.setStyle('display','block');}},'class':'tile'}).injectInside(f.map);return this;},posNew:function(x,y,xg,yg){var newurl=this.f.tileUrl(x,y);if(this.oldurl==newurl){this.e.setPos(xg,yg);return this;}
this.e.setStyles({display:'none',id:x+'x'+y,left:xg+'px',top:yg+'px'});this.e.setAttribute('src',this.oldurl=newurl);return this;},zoom:function(){var e=this.e;e.setWidth(e.getWidth()+100);e.setHeight(e.getHeight()+100);},destroy:function(){this.e.remove();}});BigView.Object=new Class({jsClassName:'BigView.Object',initialize:function(o){$extend(this,o);if(!this.position)this.position=new Pair(0,0);this.img=new Element('img',{'id':'point','styles':{'z-index':2,'position':'absolute','opacity':'.8','visibility':'hidden'},'src':this.content}).injectInside($(this.layer));this.playing=false;},setPos:function(x,y){this.img.setPos((x*this.map.zFactor-this.map.offsetLayer.x+this.offset.x),(y*this.map.zFactor-this.map.offsetLayer.y+this.offset.y));},show:function(coords){this.coords=eval('['+coords+']');this.counter=0;this.img.style.visibility='visible';this.playing=true;this.time=$time()-5000;this.showNext();return this;},showNext:function(){if(this.playing){if($time()-this.time<1000){window.setTimeout("mapView.markerShowNext()",500);return;}
if(this.counter>=this.coords.length)this.counter=0;this.setPos(this.coords[this.counter++],this.coords[this.counter++]);this
this.time=$time();window.setTimeout("mapView.markerShowNext()",1000);}},visible:function(){this.visible=true;this.img.style.visibility='hidden';},hide:function(){this.playing=false;this.img.style.visibility='hidden';},zoom:function(){var e=this.layer;e.setWidth(e.getWidth()+100);e.setHeight(e.getHeight()+100);},destroy:function(){this.layer.remove();}});var Draggables={drags:[],observers:[],register:function(draggable){if(this.drags.length==0){this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.eventKeypress=this.keyPress.bindAsEventListener(this);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);Event.observe(document,"keypress",this.eventKeypress);}
this.drags.push(draggable);},unregister:function(draggable){this.drags=this.drags.reject(function(d){return d==draggable});if(this.drags.length==0){Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);Event.stopObserving(document,"keypress",this.eventKeypress);}},activate:function(draggable){if(draggable.options.delay){this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=draggable;}.bind(this),draggable.options.delay);}else{window.focus();this.activeDraggable=draggable;}},deactivate:function(){this.activeDraggable=null;},updateDrag:function(event){if(!this.activeDraggable)return;var pointer=[Event.pointerX(event),Event.pointerY(event)];this._lastPointer=pointer;this.activeDraggable.updateDrag(event,pointer);},endDrag:function(event){if(this._timeout){clearTimeout(this._timeout);this._timeout=null;}
if(!this.activeDraggable)return;this._lastPointer=null;this.activeDraggable.endDrag(event);this.activeDraggable=null;},keyPress:function(event){if(this.activeDraggable)
this.activeDraggable.keyPress(event);},addObserver:function(observer){this.observers.push(observer);this._cacheObserverCallbacks();},removeObserver:function(element){this.observers=this.observers.reject(function(o){return o.element==element});this._cacheObserverCallbacks();},notify:function(eventName,draggable,event){if(this[eventName+'Count']>0)
this.observers.each(function(o){if(o[eventName])o[eventName](eventName,draggable,event);});if(draggable.options[eventName])draggable.options[eventName](draggable,event);},_cacheObserverCallbacks:function(){['onStart','onEnd','onDrag'].each(function(eventName){Draggables[eventName+'Count']=Draggables.observers.select(function(o){return o[eventName];}).length;});}}
var mapView=new BigView('mapView',{tileSize:512,viewInit:function(options){html='<div class="mapCross" id="mapCross" style="left: 248px; top: 231px;"/>';new Insertion.Before('mapViewport',html);E.adds([['mapCross','changeViewSize',function(size){this.setPos(size.x/2-19,size.y/2-19);}]]);}});var Splitter=new Class({options:{classTop:'div.top',classMiddle:'div.middle',classBottom:'div.bottom',classSouth:'span.south',data:{}},initialize:function(container,options){var o=this.setOptions(options).options;o.eWrap=$(container);if(!o.eWrap.id){o.eWrap.id='Splitter'+ID.newID();}
o.eWrapID='#'+o.eWrap.id+' ';o.eTop=$$(o.eWrapID+o.classTop)[0];o.eMiddle=$$(o.eWrapID+o.classMiddle)[0];o.eBottom=$$(o.eWrapID+o.classBottom)[0];o.eSouth=$$(o.eWrapID+o.classSouth)[0];if($type(o.state)=='number'){o.stateTopFactor=o.topFactor=o.topHeight/(o.topHeight+o.bottomHeight);o.stateBottomFactor=o.bottomFactor=o.bottomHeight/(o.topHeight+o.bottomHeight);if(o.state==1){o.eWrap.addClass('min');o.topFactor=1;o.bottomFactor=0;o.eTop.setHeight(o.topHeight+o.bottomHeight);o.eBottom.setHeight(0);}
else if(o.state==2){o.eWrap.addClass('max')
o.topFactor=0;o.bottomFactor=1;o.eTop.setHeight(o.topHeight+o.bottomHeight);o.eBottom.setHeight(0);}
else{o.eTop.setHeight(o.topHeight);o.eBottom.setHeight(o.bottomHeight);}}else{o.topHeight=o.eTop.getHeight();o.bottomHeight=o.eBottom.getHeight();o.topFactor=o.topHeight/(o.topHeight+o.bottomHeight);o.bottomFactor=o.bottomHeight/(o.topHeight+o.bottomHeight);}
o.middleHeight=o.eMiddle.getHeight();o.wrapHeight=o.eWrap.getHeight()-o.eMiddle.getHeight()-o.eSouth.getHeight();o.eTop.makeResizable({o:o,modifiers:{x:false,y:'height'},limit:{y:[1]},onStart:function(el){var o=this.options.o;o.eWrap.removeClass('min').removeClass('max');o.topHeight=o.eTop.getHeight();o.middleHeight=o.eMiddle.getHeight();o.bottomHeight=o.eBottom.getHeight();},onComplete:function(){var o=this.options.o;o.topHeight=o.eTop.getHeight();o.middleHeight=o.eMiddle.getHeight();o.bottomHeight=o.eBottom.getHeight();o.wrapHeight=o.eWrap.getHeight()-o.eMiddle.getHeight()-o.eSouth.getHeight();o.topFactor=o.topHeight/(o.topHeight+o.bottomHeight);o.bottomFactor=o.bottomHeight/(o.topHeight+o.bottomHeight);o.save();},onDrag:function(){var o=this.options.o;if((h=o.bottomHeight+(this.mouse.start.y-this.mouse.now.y))>0)
o.eBottom.setHeight(h);},handle:$$(o.eWrapID+'span.vSizer')[0]});o.eWrap.makeResizable({modifiers:{x:false,y:false},o:o,onStart:function(){var o=this.options.o;o.topHeight=o.eTop.getHeight();o.middleHeight=o.eMiddle.getHeight();o.bottomHeight=o.eBottom.getHeight();o.wrapHeight=o.eWrap.getHeight()-o.eMiddle.getHeight()-o.eSouth.getHeight();o.topFactor=o.eWrap.hasClass('max')?0:o.topHeight/(o.topHeight+o.bottomHeight);o.bottomFactor=o.eWrap.hasClass('min')?0:o.bottomHeight/(o.topHeight+o.bottomHeight);},onComplete:function(){var o=this.options.o;o.wrapHeight=o.eWrap.getHeight()-o.eMiddle.getHeight()-o.eSouth.getHeight();o.topFactor=o.topHeight/(o.topHeight+o.bottomHeight);o.bottomFactor=o.bottomHeight/(o.topHeight+o.bottomHeight);o.save();},onDrag:function(){var o=this.options.o;if(o.topFactor>0&&(tH=(o.topHeight-(this.mouse.start.y-this.mouse.now.y)*o.topFactor).round())>0)o.eTop.setHeight(tH);if(o.bottomFactor>0&&(bH=(o.bottomHeight-(this.mouse.start.y-this.mouse.now.y)*o.bottomFactor).round())>0)o.eBottom.setHeight(bH);},handle:o.eSouth});$$(o.eWrapID+'a.winbtn-minimize')[0].addEvent('click',function(ev){if(this.eWrap.hasClass('min')){this.eWrap.removeClass('min');this.sFac();this.topHeight=this.eTop.getHeight()*this.topFactor;this.bottomHeight=this.eTop.getHeight()-this.topHeight;this.eTop.setHeight(this.topHeight);this.eBottom.setHeight(this.bottomHeight);this.save();}else{if(!this.eWrap.hasClass('max')){this.stateTopFactor=this.topFactor;this.stateBottomFactor=this.bottomFactor;}
this.eWrap.addClass('min').removeClass('max');this.topFactor=1;this.bottomFactor=0;this.eTop.setHeight(this.eTop.getHeight()+this.eBottom.getHeight()-1);this.eBottom.setHeight(1);ini.set('rs','1_'+parseInt(this.eTop.getHeight()*this.stateTopFactor)+'_'+parseInt(this.eTop.getHeight()*this.stateBottomFactor));}}.bind(o));$$(o.eWrapID+'a.winbtn-maximize')[0].addEvent('click',function(ev){if(this.eWrap.hasClass('max')){this.eWrap.removeClass('max');this.sFac();this.bottomHeight=this.eBottom.getHeight()*this.bottomFactor;this.topHeight=this.eBottom.getHeight()-this.bottomHeight;this.eTop.setHeight(this.topHeight);this.eBottom.setHeight(this.bottomHeight);this.save();}else{if(!(this.eWrap.hasClass('min'))){this.stateTopFactor=this.topFactor;this.stateBottomFactor=this.bottomFactor;}
this.eWrap.addClass('max').removeClass('min');this.topFactor=0;this.bottomFactor=1;this.eBottom.setHeight(this.eTop.getHeight()+this.eBottom.getHeight()-1);this.eTop.setHeight(1);ini.set('rs','2_'+parseInt(this.eBottom.getHeight()*this.stateTopFactor)+'_'+parseInt(this.eBottom.getHeight()*this.stateBottomFactor));}}.bind(o));o.sFac=function(){this.topFactor=this.stateTopFactor;this.bottomFactor=this.stateBottomFactor;if(this.topFactor<0.01||this.bottomFactor<0.01){this.topFactor=this.stateTopFactor=this.bottomFactor=this.stateBottomFactor=0.5;}};o.save=function(){ini.set('rs','0_'+this.eTop.getHeight()+'_'+this.eBottom.getHeight());};return this;},setHeight:function(height){var top=(height-this.options.middleHeight)*this.options.topFactor;var bot=(height-this.options.middleHeight)*this.options.bottomFactor;this.options.eTop.setHeight(top?top:1);this.options.eBottom.setHeight(bot?bot:1);}});Splitter.implement(new Options,new Events);function encode(text){if(text)return escape(text.replace(/ /g,'+'));return'';}
function decode(text){return unescape(text).replace(/\+/g,' ');};function info(){};function infoadd(){};
location.queryValues=new Object();if(location.search.length>0){(decode(location.search)).substr(1).split("&").each(function(x){a=x.split('=');location.queryValues[a[0]]=a[1];});}
var M=new MapModel();var E=new Observer();var C=new MapController({model:M,eye:E});M.Karten={berlin:{karte:'berlin',domain:'berliner-stadtplan.com',strasse:'Fernsehturm<br>10178 Berlin-Mitte',pos:new Pair(5783,5404),zoom:100,zoomranges:[100,75,50,25],ovFactor:136,ovOffset:new Pair(-9513,-5295)},dresden:{karte:'dresden',domain:'dresdener-stadtplan.com',strasse:'Frauenkirche<br>Dresden',pos:new Pair(13546,61449),zoom:125,zoomranges:[150,125,100,75,50],ovFactor:13.75,ovOffset:new Pair(12930,60516)},frankfurt:{karte:'berlin',domain:'dein-plan.de',strasse:'Frankfurt-Karte noch nicht freigeschaltet',pos:new Pair(4825,5229),zoom:100,zoomranges:[100,75,50,25]},hamburg:{karte:'hamburg',domain:'hamburger-stadtplan.com',strasse:'Rathausmarkt<br>Hamburg',pos:new Pair(-74368,-33927),zoom:125,zoomranges:[150,125,100,75,50],ovFactor:32.25,ovOffset:new Pair(-77174,-36664)},hannover:{karte:'hannover',domain:'hannover-stadtplan.com',strasse:'Opernplatz<br>Hannover',pos:new Pair(-80305,11014),zoom:125,zoomranges:[150,125,100,75,50],ovFactor:12.3,ovOffset:new Pair(-81634,9870)},koeln:{karte:'berlin',domain:'dein-plan.de',strasse:'Köln-Karte noch nicht freigeschaltet',pos:new Pair(4825,5229),zoom:100,zoomranges:[100,75,50,25]},potsdam:{karte:'berlin',domain:'potsdamer-stadtplan.com',strasse:'Potsdam+Hauptbahnhof',pos:new Pair(-2326,10314),zoom:100,zoomranges:[100,75,50],ovFactor:138,ovOffset:new Pair(-9513,-5295)},spreewald:{karte:'spreewald',domain:'spreewaldkarte.de',strasse:'Kirchstraße<br>Spreewald - Lübben',pos:new Pair(17214,27496),zoom:50,zoomranges:[100,75,50],ovFactor:54.375,ovOffset:new Pair(13720,19820)},teltow:{karte:'berlin',domain:'teltower-stadtplan.com',strasse:'Ruhlsdorfer Platz<br>14513 Teltow',pos:new Pair(2383,9987),zoom:100,zoomranges:[100,75,50],ovFactor:138,ovOffset:new Pair(-9513,-5295)},fuerstenwalde:{karte:'fuerstenwalde',domain:'dein-plan.de',strasse:'Bhf. Fürstenwalde<br>15517 Fürstenwalde(Spree)',pos:new Pair(21023,11277),zoom:125,zoomranges:[150,125,100,75,50],ovFactor:19.425,ovOffset:new Pair(19592,10349)},eberswalde:{karte:'eberswalde',domain:'dein-plan.de',strasse:'Bhf. Eberswalde',pos:new Pair(14878,-6570),zoom:100,zoomranges:[150,125,100,75,50],ovFactor:29.5,ovOffset:new Pair(11752,-9049)},leipzig:{karte:'leipzig',domain:'leipziger-stadtplan.com',strasse:'Hauptbahnhof Leipzig',pos:new Pair(-18346,50300),zoom:125,zoomranges:[150,125,100,75,50],ovFactor:21.495,ovOffset:new Pair(-19456,48505)},bremen:{karte:'bremen',domain:'bremer-stadtplan.com',strasse:'Hauptbahnhof Bremen',pos:new Pair(-102032,-16078),zoom:125,zoomranges:[150,125,100,75,50],ovFactor:11.53,ovOffset:new Pair(-103085,-16558)},burg:{karte:'burg',domain:'spreewaldkarte.de',strasse:'Spreewald - Burg',pos:new Pair(23114,31674),zoom:100,zoomranges:[150,125,100,75,50],ovFactor:22.5,ovOffset:new Pair(20101,29738)},binz:{karte:'binz',domain:'dein-plan.de',strasse:'Hans-Beimler-Straße',pos:new Pair(10279,-66527),zoom:200,zoomranges:[200,150,100,75,50],ovFactor:14.7,ovOffset:new Pair(9310,-70130)},brandenburg:{karte:'brandenburg',domain:'dein-plan.de',strasse:'Sankt-Annen-Straße',pos:new Pair(-14083,9680),zoom:125,zoomranges:[150,125,100,75,50],ovFactor:29.32,ovOffset:new Pair(-17560,8143)},cottbus:{karte:'cottbus',domain:'dein-plan.de',strasse:'Cottbus Hbf.',pos:new Pair(27252,34803),zoom:125,zoomranges:[150,125,100,75,50],ovFactor:16.2,ovOffset:new Pair(25718,32970)},nikosia:{karte:'nikosia',domain:'dein-plan.de',strasse:'Achaion',pos:new Pair(71246,70672),zoom:100,zoomranges:[200,150,100,75,50],ovFactor:17.375,ovOffset:new Pair(70000,70000)},
muenchen:{karte:'muenchen',domain:'dein-plan.de',strasse:'Hauptbahnhof München',pos:new Pair(-37615,172575),zoom:100,zoomranges:[100,75,50],ovFactor:19.025,ovOffset:new Pair(-39007,170425)},kreuznach:{karte:'kreuznach',domain:'dein-plan.de',strasse:'Bad Kreuznach',pos:new Pair(-124260,107613),zoom:150,zoomranges:[150,125,100,75,50],ovFactor:24.93,ovOffset:new Pair(-125783,106087)}};var rasterActive=0;var hoststadt=location.hostname.toLowerCase();p=/(local|dein-plan|berlin|breme|dresd|frankfurt|hamburg|hannover|koeln|leipzig|spreewald|teltow|potsdam)/.exec(hoststadt);if(p){hoststadt=p[0];if(hoststadt=='dresd')hoststadt='dresden';if(hoststadt=='breme')hoststadt='bremen';if(hoststadt=='dein-plan')hoststadt='berlin';if(hoststadt=='local')hoststadt='berlin';}
else hoststadt='berlin';M.hoststadt=hoststadt;M.Adresse=new Object();window.addEvent('load',function(){C.Premium=!!$('dpPremium');es=$$('img.ico');for(i=0;i<es.length;i++){e=es[i]
e.onclick=icoMC;}
poiAddEvents();if(location.queryValues.from=='form'||location.queryValues.strasse){if(location.queryValues['suche[stadt]']){location.queryValues.stadt=location.queryValues['suche[stadt]'];}
new Ajax('search.php',{method:'post',data:'strasse='+location.queryValues.strasse+'&plz='+location.queryValues.plz+'&stadt='+location.queryValues.stadt+'&nr='+location.queryValues.hausnummer,onComplete:searchStreet_onComplete.bind(this),evalJSON:true}).request();}
E.adds([['selectMap','change',function(){if(this.value=='brandenburg'){document.location='/brandenburg/';return}
if(C.Premium){C.selectMap(this.value);return;}
karte=M.Karten[this.value];pos=karte.pos;document.location='http://www.'+karte.domain+'/new.php?pos='+Math.round(pos.x-500+Math.random()*1000)+','+Math.round(pos.y-500+Math.random()*1000)+'&zoom='+M.zoom;}],['selectZoom','change',function(){C[this.id](this.value);}],['selectZoom','changeZoom',function(){this.value=M.zoom;}],['selectZoom',['changeMap'],function(){this.options.length=0;M.Karten[M.Adresse.karte].zoomranges.each(function(z,i){$('selectZoom').options[i]=new Option(z+'%',z);});this.value=M.Adresse.zoom;}],['selectMap',['changeMap'],function(){this.value=M.karte;}],['mapAddressBox',['changeMap'],function(){C.showAddressBox(true);this.show();}],['mapAddressBox',['cleanAddress'],function(){this.hide();C.showAddressBox(false);}],['regioObj',['changeMap','changePos','changeRegioCats'],refreshRegio],['permalink',['changeMap','changePos'],function(){this.href=M.getAddressLink();}]]);if($('wgsShow')){E.adds([['wgsShow',['changeMap','changePos','changeGPS'],function(){this.wgs=new Coord(M.Position.getWGSd());$('wgsDMS').value=this.wgs.printDMS();$('wgsDM').value=this.wgs.printDM();$('wgsD').value=this.wgs.printD();$('wgsPOS').value=this.wgs.printXY();wgs=this.wgs;}],[['wgsDMS','wgsDM','wgsD'],'change',function(){var c=new Coord();if(this.wgs=c.setWGS(this.value)){C.setPos(this.wgs.pos);this.removeClass('error');}
else{this.addClass('error');}}],['wgsPOS',['change'],function(){C.setPos(this.value.split(','));}]]);}
E.adds([['main','changeViewSize',function(s){$('main').setWidth(s.x+448);$('mainLM').setWidth(s.x+205);$('col3').setWidth(s.x+2);$$('div.wc3').each(function(e){$(e).setWidth(s.x-10);});mapView.regio.setHeight(s.y-65);$('mapView').setHeight(s.y);}]]);$('mapViewport').makeResizable({handle:$('mapBtnResize'),limit:{x:[200],y:[200]},onStart:function(a){},onComplete:function(e){E.notify('changeViewSize',{x:e.getWidth(),y:e.getHeight()});},onDrag:function(e){C.viewResize({x:e.getWidth(),y:e.getHeight()});}});ini=new Cookie.Ini();if(t=ini.get('rs',3))mapView.regio=new Splitter($('Splitter'),{state:t[0],topHeight:t[1],bottomHeight:t[2]});else mapView.regio=new Splitter($('Splitter'));E.adds([['selViewsize','changeViewSize',function(s){if(e=this.getElement('img.active'))e.removeClass('active');if(e=this.getElement("img[name='size_"+s.x+','+s.y+"']"))e.addClass('active');}],['ovMarker',['changeMap','changeZoom','changePos','changeViewSize'],function(size){if(!size)
M.viewsize=$('mapViewport').getSizeArray();s=M.getOvSize();bs=1;if(s[0]<9)bs=10-s[0];if(s[1]<10-bs)bs=10-s[1];bs=Math.round(bs/2);this.setSizeA(s).setStyle('border-width',bs+'px').setPosA(M.getOvPos(bs));}],['ovCon','click',function(ev){var e=new Mouse(ev);ovFactor=M.Karten[M.karte].ovFactor||0;ovOffset=M.Karten[M.karte].ovOffset||{x:0,y:0};e.Layer();if(e.target.id!='ovMap'){p=$(e.target);e.layer.x=p.getX()+e.layer.x;e.layer.y=p.getY()+e.layer.y;}
if(C.Premium)
C.setPos(Math.round(e.layer.x*ovFactor+ovOffset.x),Math.round(e.layer.y*ovFactor+ovOffset.y));else
document.location='/new.php?pos='+Math.round(e.layer.x*ovFactor+ovOffset.x)+','+Math.round(e.layer.y*ovFactor+ovOffset.y)+'&map='+M.karte+'&zoom='+M.zoom;}],['ovMap','changeMap',function(ev){this.src="http://c.deinplan.de/ov/"+M.karte+".png";}]]);M.partnertime=new Date().getTime()+10000;M.adstime=M.partnertime+10000;M.adstyp=false;M.ads=0;if($('adsTN').getHeight()>0){z=$$('#adsBF iframe');if(z.length==2&&$('adsBF').getHeight()==400){$('adsBF').setHeight(400);if(z[0].getParent().id!='adsBF')z[0]=z[0].getParent();if(z[1].getParent().id!='adsBF')z[1]=z[1].getParent();z[0].setProperty('id','adsB1').setStyle('position','absolute').setPos(0,0);z[1].setProperty('id','adsB2').setStyle('position','absolute').setPos(0,200);}
E.adds([['adsTN',['changeMap','changeZoom','changePos','changeViewSize'],function(){time=new Date().getTime();if(M.adstime<time){partner.rotate();M.adstime=time+10000;try{if($('adsTN').getHeight()<9)return;if(M.adstyp=(M.adstyp?false:true)){$('adsTN').setLeft(733).src='/ads.php?nr='+(M.ads++)+'&top='+time;$('adsTG').setLeft(0);$('adsB1').setTop(200);$('adsB2').setTop(0);}else{$('adsTN').setLeft(0);$('adsTG').setLeft(733);$('adsB1').setTop(0);$('adsB2').setTop(200);$('adsSN').src='/ads.php?nr='+(M.ads)+'&sky='+time;}}catch(e){}}}]]);}
new Switcher();$$('#regioCats li.branch').each(function(e){if(!e.hasClass('leaf')){e.getElement('a').addEvent('click',function(ev){el=new Event(ev);el.target.parentNode.toggleClass('collapsed');});}
e.getElements('ul input').addEvent('click',function(ev){e=new Event(ev).target;p=e.parentNode.parentNode;i='';$(p).getElements('input').each(function(el){i+=((el.checked)?'x':'');});p.getPrevious().checked=(i=='')?false:true;cids=$('regioCats').toObject().cids;if(cids){M.regioCats=($type(cids)=='string')?cids:cids.join(',');}else{M.regioCats='0';}
Cookie.set('cats',M.regioCats);E.notify('changeRegioCats');});e.getElement('input').addEvent('click',function(ev){e=new Event(ev).target;val=e.checked;e.getNext().getElements('input').each(function(el){el.checked=val;});cids=$('regioCats').toObject().cids;if(cids){M.regioCats=($type(cids)=='string')?cids:cids.join(',');}else{M.regioCats='0';}
E.notify('changeRegioCats');Cookie.set('cats',M.regioCats);});});C.checkInitAddress($('permalink').href);mapView.viewInit();if($('wgsShow'))$('wgsShow').fireEvent('changePos',{});if(location.hostname=='localhost'){Cookie.options={path:'/',duration:7};}
else{Cookie.options={domain:location.hostname.toLowerCase().replace('www',''),path:'/',duration:7,secure:false};}
M.userPrefs=new Hash.Cookie('prefs');if(s=ini.get('vs',2)){if(s[0]<200||s[1]<200)s=[535,500];}
else s=M.viewsize=$('mapViewport').getSizeArray();C.viewResize({x:s[0],y:s[1]});s=M.getOvSize();bs=1;if(s[0]<10)bs=10-s[0];if(s[1]<10-bs)bs=10-s[1];$('ovMarker').setSizeA(s).setStyle('border-width',bs+'px').setPosA(M.getOvPos(bs));if(window.ie6){$('main').addClass('ie6');$$('div.wt a').each(function(e){e.href='#';});}
tabMouseOvers('on','off','#mapTaskbar img','',0);var partner=new CNETcarousel('wc_ads1',{rotateAction:'click',slideInterval:8000,transitionDuration:1000,rotateActionDuration:500,buttonsSelector:'#partner div.buttons img',slidesSelector:'#partner div.slides div',autoplay:false});});