(function(){function a(e,c,d){this.image=e;this.container=c;this.document=d;this.controls={};this.geometry={width:0,height:0};this.position={left:0,top:0};this.div=$('<DIV class="mark" style="background: url('+this.image.attr("src")+') 0 0 no-repeat;"></DIV>');this.controlContainer=$('<DIV class="controls"></DIV>').appendTo(this.div);this.div.bind("mousedown",{scope:this},this.onMouseDown);$.each(a.RESIZE_TYPES,(function(f){return function(g,h){f.controls[h]=$('<DIV class="c '+h+'"></DIV>').appendTo(f.controlContainer).bind("mousedown",{scope:f,mode:h},f.onControlMouseDown)}})(this))}a.prototype={setGeometry:function(c,d){this.geometry={width:c,height:d};this.div.css({width:c+"px",height:d+"px"})},setPosition:function(d,c){this.position={left:d,top:c};this.div.css({left:d+"px",top:c+"px",backgroundPosition:(-d)+"px "+(-c)+"px"})},onControlMouseDown:function(d){var e=d.data.scope;var c=e.container.offset();e.mode=d.data.mode;e.extent={top:c.top+e.position.top,right:c.left+e.position.left+e.geometry.width,bottom:c.top+e.position.top+e.geometry.height,left:c.left+e.position.left};e.containerExtent={top:c.top,right:c.left+e.container.width(),bottom:c.top+e.container.height(),left:c.left};e.document.bind("mouseup",{scope:e},e.onControlMouseUp);e.document.bind("mousemove",{scope:e},e.onControlMouseMove);d.stopPropagation();d.preventDefault();document.body.setCapture&&document.body.setCapture();$(e).triggerHandler("start_mark_resize",e)},onControlMouseMove:function(c){var d=c.data.scope;var g=d.position.left,f=d.position.top,e=d.geometry.width,h=d.geometry.height;if(d.mode==a.RESIZE_E){if(c.pageX>d.containerExtent.right){e=d.containerExtent.right-d.extent.left}else{if(c.pageX-d.extent.left<a.MIN_WIDTH){e=a.MIN_WIDTH}else{e=c.pageX-d.extent.left}}}else{if(d.mode==a.RESIZE_S){if(c.pageY>d.containerExtent.bottom){h=d.containerExtent.bottom-d.extent.top}else{if(c.pageY-d.extent.top<a.MIN_HEIGHT){h=a.MIN_HEIGHT}else{h=c.pageY-d.extent.top}}}else{if(d.mode==a.RESIZE_SE){if(c.pageX>d.containerExtent.right){e=d.containerExtent.right-d.extent.left}else{if(c.pageX-d.extent.left<a.MIN_WIDTH){e=a.MIN_WIDTH}else{e=c.pageX-d.extent.left}}if(c.pageY>d.containerExtent.bottom){h=d.containerExtent.bottom-d.extent.top}else{if(c.pageY-d.extent.top<a.MIN_HEIGHT){h=a.MIN_HEIGHT}else{h=c.pageY-d.extent.top}}}else{if(d.mode==a.RESIZE_W){if(c.pageX<d.containerExtent.left){e=d.extent.right-d.containerExtent.left}else{if(d.extent.right-c.pageX<a.MIN_WIDTH){e=a.MIN_WIDTH}else{e=d.extent.right-c.pageX}}g=d.extent.right-d.containerExtent.left-e}else{if(d.mode==a.RESIZE_N){if(c.pageY<d.containerExtent.top){h=d.extent.bottom-d.containerExtent.top}else{if(d.extent.bottom-c.pageY<a.MIN_HEIGHT){h=a.MIN_HEIGHT}else{h=d.extent.bottom-c.pageY}}f=d.extent.bottom-d.containerExtent.top-h}else{if(d.mode==a.RESIZE_SW){if(c.pageX<d.containerExtent.left){e=d.extent.right-d.containerExtent.left}else{if(d.extent.right-c.pageX<a.MIN_WIDTH){e=a.MIN_WIDTH}else{e=d.extent.right-c.pageX}}g=d.extent.right-d.containerExtent.left-e;if(c.pageY>d.containerExtent.bottom){h=d.containerExtent.bottom-d.extent.top}else{if(c.pageY-d.extent.top<a.MIN_HEIGHT){h=a.MIN_HEIGHT}else{h=c.pageY-d.extent.top}}}else{if(d.mode==a.RESIZE_NW){if(c.pageX<d.containerExtent.left){e=d.extent.right-d.containerExtent.left}else{if(d.extent.right-c.pageX<a.MIN_WIDTH){e=a.MIN_WIDTH}else{e=d.extent.right-c.pageX}}g=d.extent.right-d.containerExtent.left-e;if(c.pageY<d.containerExtent.top){h=d.extent.bottom-d.containerExtent.top}else{if(d.extent.bottom-c.pageY<a.MIN_HEIGHT){h=a.MIN_HEIGHT}else{h=d.extent.bottom-c.pageY}}f=d.extent.bottom-d.containerExtent.top-h}else{if(d.mode==a.RESIZE_NE){if(c.pageY<d.containerExtent.top){h=d.extent.bottom-d.containerExtent.top}else{if(d.extent.bottom-c.pageY<a.MIN_HEIGHT){h=a.MIN_HEIGHT}else{h=d.extent.bottom-c.pageY}}f=d.extent.bottom-d.containerExtent.top-h;if(c.pageX>d.containerExtent.right){e=d.containerExtent.right-d.extent.left}else{if(c.pageX-d.extent.left<a.MIN_WIDTH){e=a.MIN_WIDTH}else{e=c.pageX-d.extent.left}}}}}}}}}}d.setGeometry(e,h);d.setPosition(g,f)},onControlMouseUp:function(c){var d=c.data.scope;document.body.releaseCapture&&document.body.releaseCapture();d.document.unbind("mouseup",d.onControlMouseUp);d.document.unbind("mousemove",d.onControlMouseMove);c.stopPropagation();c.preventDefault();$(d).triggerHandler("mark_resize",d)},onMouseDown:function(c){var d=c.data.scope;d.cursorOffset={left:c.pageX-d.position.left,top:c.pageY-d.position.top};d.document.bind("mouseup",{scope:d},d.onMouseUp);d.document.bind("mousemove",{scope:d},d.onMouseMove);c.stopPropagation();c.preventDefault()},onMouseMove:function(c){var d=c.data.scope;if(!d.isMove){document.body.setCapture&&document.body.setCapture();$(d).triggerHandler("start_mark_move",d);d.isMove=true}var g=c.pageX-d.cursorOffset.left,f=c.pageY-d.cursorOffset.top;var e=d.geometry.width,h=d.geometry.height;g=Math.min(Math.max(g,0),d.container.width()-e);f=Math.min(Math.max(f,0),d.container.height()-h);d.setPosition(g,f)},onMouseUp:function(c){var d=c.data.scope;d.document.unbind("mouseup",d.onMouseUp);d.document.unbind("mousemove",d.onMouseMove);c.stopPropagation();c.preventDefault();if(d.isMove){document.body.releaseCapture&&document.body.releaseCapture();d.isMove=false;$(d).triggerHandler("mark_move",d)}}};a.MIN_WIDTH=40;a.MIN_HEIGHT=40;a.DEFAULT_WIDTH=100;a.DEFAULT_HEIGHT=100;a.RESIZE_NW="nw";a.RESIZE_N="n";a.RESIZE_NE="ne";a.RESIZE_E="e";a.RESIZE_SE="se";a.RESIZE_S="s";a.RESIZE_SW="sw";a.RESIZE_W="w";a.RESIZE_TYPES=[a.RESIZE_NW,a.RESIZE_N,a.RESIZE_NE,a.RESIZE_E,a.RESIZE_SE,a.RESIZE_S,a.RESIZE_SW,a.RESIZE_W];var b=window.iMarkImage=function(c,d){this.image=d;this.container=c;this.document=$(document);this.shadow=$('<DIV class="fade"></DIV>').appendTo(this.container);this.mark=new a(this.image,this.container,this.document);$(this.mark).bind("start_mark_resize",(function(e){return function(){$(e).triggerHandler("start_mark_resize",e.mark)}})(this));$(this.mark).bind("mark_resize",(function(e){return function(){$(e).triggerHandler("mark_resize",e.mark)}})(this));$(this.mark).bind("start_mark_move",(function(e){return function(){$(e).triggerHandler("start_mark_move",e.mark)}})(this));$(this.mark).bind("mark_move",(function(e){return function(){$(e).triggerHandler("mark_move",e.mark)}})(this));this.container.append(this.mark.div);this.active=false};b.prototype={onContainerClick:function(c){var d=c.data.scope;d.containerOffset=d.container.offset();var e=Math.min(a.DEFAULT_WIDTH,d.container.width()),h=Math.min(a.DEFAULT_HEIGHT,d.container.height()),g=c.pageX-d.containerOffset.left-(e/2),f=c.pageY-d.containerOffset.top-(h/2);g=Math.min(Math.max(g,0),d.container.width()-e);f=Math.min(Math.max(f,0),d.container.height()-h);d.mark.setGeometry(e,h);d.mark.setPosition(g,f);d.shadow.show();d.mark.div.show();d.mark.controlContainer.show();c.stopPropagation();c.preventDefault()},onContainerMouseDown:function(c){var d=c.data.scope;d.containerOffset=d.container.offset();d.startPx={x:c.pageX,y:c.pageY};d.mark.setGeometry(0,0);d.mark.setPosition(0,0);d.mark.controlContainer.hide();d.document.bind("mouseup",{scope:d},d.onContainerMouseUp);d.document.bind("mousemove",{scope:d},d.onContainerMouseMove);c.stopPropagation();c.preventDefault();$(d).triggerHandler("start_mark_resize",d.mark)},onContainerMouseMove:function(d){var e=d.data.scope;if(!e.isMove){document.body.setCapture&&document.body.setCapture();e.shadow.show();e.mark.div.show();e.isMove=true}var g=d.pageX-e.startPx.x,j=d.pageY-e.startPx.y,i=e.startPx.x-e.containerOffset.left,h=e.startPx.y-e.containerOffset.top,c=0,f=0;if(g<0){i+=g;g=Math.abs(g);c=e.startPx.x-e.containerOffset.left}else{c=(e.containerOffset.left+e.container.width())-e.startPx.x}if(j<0){h+=j;j=Math.abs(j);f=e.startPx.y-e.containerOffset.top}else{f=(e.containerOffset.top+e.container.height())-e.startPx.y}if(g>c){g=c}if(j>f){j=f}i=Math.min(Math.max(i,0),e.container.width()-g);h=Math.min(Math.max(h,0),e.container.height()-j);e.mark.setGeometry(g,j);e.mark.setPosition(i,h)},onContainerMouseUp:function(c){var d=c.data.scope;if(!d.isMove){d.onContainerClick(c)}else{document.body.releaseCapture&&document.body.releaseCapture();var e=Math.max(d.mark.geometry.width,a.MIN_WIDTH),h=Math.max(d.mark.geometry.height,a.MIN_HEIGHT),g=Math.min(Math.max(d.mark.position.left,0),d.container.width()-e),f=Math.min(Math.max(d.mark.position.top,0),d.container.height()-h);d.mark.setGeometry(e,h);d.mark.setPosition(g,f);d.mark.controlContainer.show();d.isMove=false}d.document.unbind("mouseup",d.onContainerMouseUp);d.document.unbind("mousemove",d.onContainerMouseMove);c.stopPropagation();c.preventDefault();$(d).triggerHandler("mark_resize",d.mark)},setMark:function(c){this.mark.setGeometry(c.width,c.height);this.mark.setPosition(c.left,c.top);this.shadow.show();this.mark.div.show();if(c.resize!==false){this.mark.controlContainer.show()}$(this).triggerHandler("mark_resize",this.mark)},activate:function(){if(this.active){return false}this.container.css("cursor","crosshair");this.container.bind("mousedown",{scope:this},this.onContainerMouseDown);this.container.show();this.active=true},deactivate:function(){if(!this.active){return false}this.shadow.hide();this.mark.div.hide();this.mark.controlContainer.hide();this.mark.setGeometry(0,0);this.mark.setPosition(0,0);this.container.css("cursor","");this.container.unbind("mousedown",this.onContainerMouseDown);this.container.hide();this.active=false}}})();