This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2011-07-31 17:32:10 +02:00

1 line
2.7 KiB
JavaScript
Executable File

var pre,proxyId="sb-drag-proxy",dragData,dragProxy,dragTarget;function resetDrag(){dragData={x:0,y:0,startX:null,startY:null}}function updateProxy(){var a=S.dimensions;apply(dragProxy.style,{height:a.innerHeight+"px",width:a.innerWidth+"px"})}function enableDrag(){resetDrag();var a=["position:absolute","cursor:"+(S.isGecko?"-moz-grab":"move"),"background-color:"+(S.isIE?"#fff;filter:alpha(opacity=0)":"transparent")].join(";");S.appendHTML(S.skin.body,'<div id="'+proxyId+'" style="'+a+'"></div>');dragProxy=get(proxyId);updateProxy();addEvent(dragProxy,"mousedown",startDrag)}function disableDrag(){if(dragProxy){removeEvent(dragProxy,"mousedown",startDrag);remove(dragProxy);dragProxy=null}dragTarget=null}function startDrag(b){preventDefault(b);var a=getPageXY(b);dragData.startX=a[0];dragData.startY=a[1];dragTarget=get(S.player.id);addEvent(document,"mousemove",positionDrag);addEvent(document,"mouseup",endDrag);if(S.isGecko){dragProxy.style.cursor="-moz-grabbing"}}function positionDrag(f){var a=S.player,g=S.dimensions,d=getPageXY(f);var c=d[0]-dragData.startX;dragData.startX+=c;dragData.x=Math.max(Math.min(0,dragData.x+c),g.innerWidth-a.width);var b=d[1]-dragData.startY;dragData.startY+=b;dragData.y=Math.max(Math.min(0,dragData.y+b),g.innerHeight-a.height);apply(dragTarget.style,{left:dragData.x+"px",top:dragData.y+"px"})}function endDrag(){removeEvent(document,"mousemove",positionDrag);removeEvent(document,"mouseup",endDrag);if(S.isGecko){dragProxy.style.cursor="-moz-grab"}}S.img=function(b,c){this.obj=b;this.id=c;this.ready=false;var a=this;pre=new Image();pre.onload=function(){a.height=b.height?parseInt(b.height,10):pre.height;a.width=b.width?parseInt(b.width,10):pre.width;a.ready=true;pre.onload=null;pre=null};pre.src=b.content};S.img.ext=["bmp","gif","jpg","jpeg","png"];S.img.prototype={append:function(b,e){var c=document.createElement("img");c.id=this.id;c.src=this.obj.content;c.style.position="absolute";var a,d;if(e.oversized&&S.options.handleOversize=="resize"){a=e.innerHeight;d=e.innerWidth}else{a=this.height;d=this.width}c.setAttribute("height",a);c.setAttribute("width",d);b.appendChild(c)},remove:function(){var a=get(this.id);if(a){remove(a)}disableDrag();if(pre){pre.onload=null;pre=null}},onLoad:function(){var a=S.dimensions;if(a.oversized&&S.options.handleOversize=="drag"){enableDrag()}},onWindowResize:function(){var d=S.dimensions;switch(S.options.handleOversize){case"resize":var a=get(this.id);a.height=d.innerHeight;a.width=d.innerWidth;break;case"drag":if(dragTarget){var c=parseInt(S.getStyle(dragTarget,"top")),b=parseInt(S.getStyle(dragTarget,"left"));if(c+this.height<d.innerHeight){dragTarget.style.top=d.innerHeight-this.height+"px"}if(b+this.width<d.innerWidth){dragTarget.style.left=d.innerWidth-this.width+"px"}updateProxy()}break}}};