function sprymap(param){function movemap(x,y){var newx=x,newy=y;if(m.lockedges){var rightedge=-m.map.offsetwidth+m.viewingbox.offsetwidth,topedge=-m.map.offsetheight+m.viewingbox.offsetheight;newx=newx0?0:newx;newy=newy>0?0:newy;} m.map.style.left=newx+"px";m.map.style.top=newy+"px";} function addlistener(element,event,f){if(element.attachevent){element["e"+event+f]=f;element[event+f]=function(){element["e"+event+f](window.event)};element.attachevent("on"+event,element[event+f])}else element.addeventlistener(event,f,false)} function coordinate(startx,starty){this.x=startx;this.y=starty;} var m=this;m.map=document.getelementbyid(param.id);m.width=typeof param.width=="undefined"?800:param.width;m.height=typeof param.height=="undefined"?800:param.height;m.scrolling=typeof param.scrolling=="undefined"?true:param.scrolling;m.scrolltime=typeof param.scrolltime=="undefined"?300:param.scrolltime;m.lockedges=typeof param.lockedges=="undefined"?true:param.lockedges;m.viewingbox=document.createelement("div");if(typeof param.cssclass!="undefined")m.viewingbox.classname=param.cssclass;m.mouseposition=new coordinate;m.mouselocations=[];m.velocity=new coordinate;m.mousedown=false;m.timerid=-1;m.timercount=0;m.map.parentnode.replacechild(m.viewingbox,m.map);m.viewingbox.appendchild(m.map);m.viewingbox.style.overflow="hidden";m.viewingbox.style.width=m.width+"px";m.viewingbox.style.height=m.height+"px";m.viewingbox.style.position="relative";m.map.style.position="absolute";movemap(typeof param.startx=="undefined"?0:-param.startx,typeof param.starty=="undefined"?0:-param.starty);var mousemove=function(b){var e=b.clientx-m.mouseposition.x+parseint(m.map.style.left),d=b.clienty-m.mouseposition.y+parseint(m.map.style.top);movemap(e,d);m.mouseposition.x=b.clientx;m.mouseposition.y=b.clienty};var onscrolltimer=function(){if(m.mousedown){m.mouselocations.unshift(new coordinate(m.mouseposition.x,m.mouseposition.y));if(m.mouselocations.length>10) m.mouselocations.pop();}else{var totaltics=m.scrolltime/20;var fractionremaining=(totaltics-m.timercount)/totaltics;var xvelocity=m.velocity.x*fractionremaining;var yvelocity=m.velocity.y*fractionremaining;movemap(-xvelocity+parseint(m.map.style.left),-yvelocity+parseint(m.map.style.top));if(m.timercount==totaltics){clearinterval(m.timerid);m.timerid=-1} ++m.timercount;}};addlistener(m.viewingbox,"mousedown",function(e){m.viewingbox.style.cursor="url(data:image/x-win-bitmap;base64,aaacaaeaicacaacabqawaqaafgaaacgaaaagaaaaqaaaaaeaaqaaaaaaaaeaaaaaaaaaaaaaagaaaaaaaaaaaaaa////aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad8aaaa/aaaafwaaap+aaah/gaab/8aaah/aaab/waaa/0aaansaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa//////////////////////////////////////////////////////////////////////////////////////gh///4b///8af//+ad///aa///wah//+ab///waf//4ah//+ad///yt/////////////////////////////8=), default";m.mouseposition.x=e.clientx;m.mouseposition.y=e.clienty;addlistener(document,"mousemove",mousemove);m.mousedown=true;if(m.scrolling){m.timercount=0;if(m.timerid!=0) {clearinterval(m.timerid);m.timerid=0;} m.timerid=setinterval(onscrolltimer,20);} e.preventdefault();});addlistener(document,"mouseup",function(){if(m.mousedown){var handler=mousemove;if(document.detachevent){document.detachevent("onmousemove",document["mousemove"+handler]);document["mousemove"+handler]=null;}else{document.removeeventlistener("mousemove",handler,false);} m.mousedown=false;if(m.mouselocations.length>0){var clickcount=m.mouselocations.length;m.velocity.x=(m.mouselocations[clickcount-1].x-m.mouselocations[0].x)/clickcount;m.velocity.y=(m.mouselocations[clickcount-1].y-m.mouselocations[0].y)/clickcount;m.mouselocations.length=0;}} m.viewingbox.style.cursor="auto";});};