//tipsy.js
(function($){$.fn.tipsy=function(opts){opts=$.extend({fade:false,gravity:"s",title:"title",fallback:""},opts||{});var tip=null;this.hover(function(){$.data(this,"cancel.tipsy",true);var tip=$.data(this,"active.tipsy");if(!tip){tip=$('<div class="tipsy"><div class="tipsy-inner"/></div>');tip.css({position:"absolute",zIndex:100000});$.data(this,"active.tipsy",tip)}if(this.hasAttribute("title")||!this.hasAttribute("original-title")){$(this).attr("original-title",$(this).attr("title")||"").removeAttr("title")}var title;if(typeof opts.title=="string"){title=$(this).attr(opts.title=="title"?"original-title":opts.title)}else{if(typeof opts.title=="function"){title=opts.title.call(this)}}tip.find(".tipsy-inner").text(title||opts.fallback);var pos=$.extend({},$(this).offset(),{width:this.offsetWidth,height:this.offsetHeight});tip.get(0).className="tipsy";tip.remove().css({top:0,left:0,visibility:"hidden",display:"block"}).appendTo(document.body);var actualWidth=tip[0].offsetWidth,actualHeight=tip[0].offsetHeight;var gravity=(typeof opts.gravity=="function")?opts.gravity.call(this):opts.gravity;switch(gravity.charAt(0)){case"n":tip.css({top:pos.top+pos.height,left:pos.left+pos.width/2-actualWidth/2}).addClass("tipsy-north");break;case"s":tip.css({top:pos.top-actualHeight,left:pos.left+pos.width/2-actualWidth/2}).addClass("tipsy-south");break;case"e":tip.css({top:pos.top+pos.height/2-actualHeight/2,left:pos.left-actualWidth}).addClass("tipsy-east");break;case"w":tip.css({top:pos.top+pos.height/2-actualHeight/2,left:pos.left+pos.width}).addClass("tipsy-west");break}if(opts.fade){tip.css({opacity:0,display:"block",visibility:"visible"}).animate({opacity:0.8})}else{tip.css({visibility:"visible"})}},function(){$.data(this,"cancel.tipsy",false);var self=this;setTimeout(function(){if($.data(this,"cancel.tipsy")){return}var tip=$.data(self,"active.tipsy");if(opts.fade){tip.stop().fadeOut(function(){$(this).remove()})}else{tip.remove()}},10)})};$.fn.tipsy.autoNS=function(){return $(this).offset().top>($(document).scrollTop()+$(window).height()/2)?"s":"n"}})(jQuery);
//colorpicker.js
(function($){var ColorPicker=function(){var ids={},inAction,charMin=65,visible,tpl='<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',defaults={eventName:"click",onShow:function(){},onBeforeShow:function(){},onHide:function(){},onChange:function(){},onSubmit:function(){},color:"ff0000",livePreview:true,flat:false},fillRGBFields=function(hsb,cal){var rgb=HSBToRGB(hsb);$(cal).data("colorpicker").fields.eq(1).val(rgb.r).end().eq(2).val(rgb.g).end().eq(3).val(rgb.b).end()},fillHSBFields=function(hsb,cal){$(cal).data("colorpicker").fields.eq(4).val(hsb.h).end().eq(5).val(hsb.s).end().eq(6).val(hsb.b).end()},fillHexFields=function(hsb,cal){$(cal).data("colorpicker").fields.eq(0).val(HSBToHex(hsb)).end()},setSelector=function(hsb,cal){$(cal).data("colorpicker").selector.css("backgroundColor","#"+HSBToHex({h:hsb.h,s:100,b:100}));$(cal).data("colorpicker").selectorIndic.css({left:parseInt(150*hsb.s/100,10),top:parseInt(150*(100-hsb.b)/100,10)})},setHue=function(hsb,cal){$(cal).data("colorpicker").hue.css("top",parseInt(150-150*hsb.h/360,10))},setCurrentColor=function(hsb,cal){$(cal).data("colorpicker").currentColor.css("backgroundColor","#"+HSBToHex(hsb))},setNewColor=function(hsb,cal){$(cal).data("colorpicker").newColor.css("backgroundColor","#"+HSBToHex(hsb))},keyDown=function(ev){var pressedKey=ev.charCode||ev.keyCode||-1;if((pressedKey>charMin&&pressedKey<=90)||pressedKey==32){return false}var cal=$(this).parent().parent();if(cal.data("colorpicker").livePreview===true){change.apply(this)}},change=function(ev){var cal=$(this).parent().parent(),col;if(this.parentNode.className.indexOf("_hex")>0){cal.data("colorpicker").color=col=HexToHSB(fixHex(this.value))}else{if(this.parentNode.className.indexOf("_hsb")>0){cal.data("colorpicker").color=col=fixHSB({h:parseInt(cal.data("colorpicker").fields.eq(4).val(),10),s:parseInt(cal.data("colorpicker").fields.eq(5).val(),10),b:parseInt(cal.data("colorpicker").fields.eq(6).val(),10)})}else{cal.data("colorpicker").color=col=RGBToHSB(fixRGB({r:parseInt(cal.data("colorpicker").fields.eq(1).val(),10),g:parseInt(cal.data("colorpicker").fields.eq(2).val(),10),b:parseInt(cal.data("colorpicker").fields.eq(3).val(),10)}))}}if(ev){fillRGBFields(col,cal.get(0));fillHexFields(col,cal.get(0));fillHSBFields(col,cal.get(0))}setSelector(col,cal.get(0));setHue(col,cal.get(0));setNewColor(col,cal.get(0));cal.data("colorpicker").onChange.apply(cal,[col,HSBToHex(col),HSBToRGB(col)])},blur=function(ev){var cal=$(this).parent().parent();cal.data("colorpicker").fields.parent().removeClass("colorpicker_focus")},focus=function(){charMin=this.parentNode.className.indexOf("_hex")>0?70:65;$(this).parent().parent().data("colorpicker").fields.parent().removeClass("colorpicker_focus");$(this).parent().addClass("colorpicker_focus")},downIncrement=function(ev){var field=$(this).parent().find("input").focus();var current={el:$(this).parent().addClass("colorpicker_slider"),max:this.parentNode.className.indexOf("_hsb_h")>0?360:(this.parentNode.className.indexOf("_hsb")>0?100:255),y:ev.pageY,field:field,val:parseInt(field.val(),10),preview:$(this).parent().parent().data("colorpicker").livePreview};$(document).bind("mouseup",current,upIncrement);$(document).bind("mousemove",current,moveIncrement)},moveIncrement=function(ev){ev.data.field.val(Math.max(0,Math.min(ev.data.max,parseInt(ev.data.val+ev.pageY-ev.data.y,10))));if(ev.data.preview){change.apply(ev.data.field.get(0),[true])}return false},upIncrement=function(ev){change.apply(ev.data.field.get(0),[true]);ev.data.el.removeClass("colorpicker_slider").find("input").focus();$(document).unbind("mouseup",upIncrement);$(document).unbind("mousemove",moveIncrement);return false},downHue=function(ev){var current={cal:$(this).parent(),y:$(this).offset().top};current.preview=current.cal.data("colorpicker").livePreview;$(document).bind("mouseup",current,upHue);$(document).bind("mousemove",current,moveHue)},moveHue=function(ev){change.apply(ev.data.cal.data("colorpicker").fields.eq(4).val(parseInt(360*(150-Math.max(0,Math.min(150,(ev.pageY-ev.data.y))))/150,10)).get(0),[ev.data.preview]);return false},upHue=function(ev){fillRGBFields(ev.data.cal.data("colorpicker").color,ev.data.cal.get(0));fillHexFields(ev.data.cal.data("colorpicker").color,ev.data.cal.get(0));$(document).unbind("mouseup",upHue);$(document).unbind("mousemove",moveHue);return false},downSelector=function(ev){var current={cal:$(this).parent(),pos:$(this).offset()};current.preview=current.cal.data("colorpicker").livePreview;$(document).bind("mouseup",current,upSelector);$(document).bind("mousemove",current,moveSelector)},moveSelector=function(ev){change.apply(ev.data.cal.data("colorpicker").fields.eq(6).val(parseInt(100*(150-Math.max(0,Math.min(150,(ev.pageY-ev.data.pos.top))))/150,10)).end().eq(5).val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX-ev.data.pos.left))))/150,10)).get(0),[ev.data.preview]);return false},upSelector=function(ev){fillRGBFields(ev.data.cal.data("colorpicker").color,ev.data.cal.get(0));fillHexFields(ev.data.cal.data("colorpicker").color,ev.data.cal.get(0));$(document).unbind("mouseup",upSelector);$(document).unbind("mousemove",moveSelector);return false},enterSubmit=function(ev){$(this).addClass("colorpicker_focus")},leaveSubmit=function(ev){$(this).removeClass("colorpicker_focus")},clickSubmit=function(ev){var cal=$(this).parent();var col=cal.data("colorpicker").color;cal.data("colorpicker").origColor=col;setCurrentColor(col,cal.get(0));cal.data("colorpicker").onSubmit(col,HSBToHex(col),HSBToRGB(col))},show=function(ev){var cal=$("#"+$(this).data("colorpickerId"));cal.data("colorpicker").onBeforeShow.apply(this,[cal.get(0)]);var pos=$(this).offset();var viewPort=getViewport();var top=pos.top+this.offsetHeight;var left=pos.left;if(top+176>viewPort.t+viewPort.h){top-=this.offsetHeight+176}if(left+356>viewPort.l+viewPort.w){left-=356}cal.css({left:left+"px",top:top+"px"});if(cal.data("colorpicker").onShow.apply(this,[cal.get(0)])!=false){cal.show()}$(document).bind("mousedown",{cal:cal},hide);return false},hide=function(ev){if(!isChildOf(ev.data.cal.get(0),ev.target,ev.data.cal.get(0))){if(ev.data.cal.data("colorpicker").onHide.apply(this,[ev.data.cal.get(0)])!=false){ev.data.cal.hide()}$(document).unbind("mousedown",hide)}},isChildOf=function(parentEl,el,container){if(parentEl==el){return true}if(parentEl.contains){return parentEl.contains(el)}if(parentEl.compareDocumentPosition){return !!(parentEl.compareDocumentPosition(el)&16)}var prEl=el.parentNode;while(prEl&&prEl!=container){if(prEl==parentEl){return true}prEl=prEl.parentNode}return false},getViewport=function(){var m=document.compatMode=="CSS1Compat";return{l:window.pageXOffset||(m?document.documentElement.scrollLeft:document.body.scrollLeft),t:window.pageYOffset||(m?document.documentElement.scrollTop:document.body.scrollTop),w:window.innerWidth||(m?document.documentElement.clientWidth:document.body.clientWidth),h:window.innerHeight||(m?document.documentElement.clientHeight:document.body.clientHeight)}},fixHSB=function(hsb){return{h:Math.min(360,Math.max(0,hsb.h)),s:Math.min(100,Math.max(0,hsb.s)),b:Math.min(100,Math.max(0,hsb.b))}},fixRGB=function(rgb){return{r:Math.min(255,Math.max(0,rgb.r)),g:Math.min(255,Math.max(0,rgb.g)),b:Math.min(255,Math.max(0,rgb.b))}},fixHex=function(hex){var len=6-hex.length;if(len>0){var o=[];for(var i=0;i<len;i++){o.push("0")}o.push(hex);hex=o.join("")}return hex},HexToRGB=function(hex){var hex=parseInt(((hex.indexOf("#")>-1)?hex.substring(1):hex),16);return{r:hex>>16,g:(hex&65280)>>8,b:(hex&255)}},HexToHSB=function(hex){return RGBToHSB(HexToRGB(hex))},RGBToHSB=function(rgb){var hsb={};hsb.b=Math.max(Math.max(rgb.r,rgb.g),rgb.b);hsb.s=(hsb.b<=0)?0:Math.round(100*(hsb.b-Math.min(Math.min(rgb.r,rgb.g),rgb.b))/hsb.b);hsb.b=Math.round((hsb.b/255)*100);if((rgb.r==rgb.g)&&(rgb.g==rgb.b)){hsb.h=0}else{if(rgb.r>=rgb.g&&rgb.g>=rgb.b){hsb.h=60*(rgb.g-rgb.b)/(rgb.r-rgb.b)}else{if(rgb.g>=rgb.r&&rgb.r>=rgb.b){hsb.h=60+60*(rgb.g-rgb.r)/(rgb.g-rgb.b)}else{if(rgb.g>=rgb.b&&rgb.b>=rgb.r){hsb.h=120+60*(rgb.b-rgb.r)/(rgb.g-rgb.r)}else{if(rgb.b>=rgb.g&&rgb.g>=rgb.r){hsb.h=180+60*(rgb.b-rgb.g)/(rgb.b-rgb.r)}else{if(rgb.b>=rgb.r&&rgb.r>=rgb.g){hsb.h=240+60*(rgb.r-rgb.g)/(rgb.b-rgb.g)}else{if(rgb.r>=rgb.b&&rgb.b>=rgb.g){hsb.h=300+60*(rgb.r-rgb.b)/(rgb.r-rgb.g)}else{hsb.h=0}}}}}}}hsb.h=Math.round(hsb.h);return hsb},HSBToRGB=function(hsb){var rgb={};var h=Math.round(hsb.h);var s=Math.round(hsb.s*255/100);var v=Math.round(hsb.b*255/100);if(s==0){rgb.r=rgb.g=rgb.b=v}else{var t1=v;var t2=(255-s)*v/255;var t3=(t1-t2)*(h%60)/60;if(h==360){h=0}if(h<60){rgb.r=t1;rgb.b=t2;rgb.g=t2+t3}else{if(h<120){rgb.g=t1;rgb.b=t2;rgb.r=t1-t3}else{if(h<180){rgb.g=t1;rgb.r=t2;rgb.b=t2+t3}else{if(h<240){rgb.b=t1;rgb.r=t2;rgb.g=t1-t3}else{if(h<300){rgb.b=t1;rgb.g=t2;rgb.r=t2+t3}else{if(h<360){rgb.r=t1;rgb.g=t2;rgb.b=t1-t3}else{rgb.r=0;rgb.g=0;rgb.b=0}}}}}}}return{r:Math.round(rgb.r),g:Math.round(rgb.g),b:Math.round(rgb.b)}},RGBToHex=function(rgb){var hex=[rgb.r.toString(16),rgb.g.toString(16),rgb.b.toString(16)];$.each(hex,function(nr,val){if(val.length==1){hex[nr]="0"+val}});return hex.join("")},HSBToHex=function(hsb){return RGBToHex(HSBToRGB(hsb))};return{init:function(options){options=$.extend({},defaults,options||{});if(typeof options.color=="string"){options.color=HexToHSB(options.color)}else{if(options.color.r!=undefined&&options.color.g!=undefined&&options.color.b!=undefined){options.color=RGBToHSB(options.color)}else{if(options.color.h!=undefined&&options.color.s!=undefined&&options.color.b!=undefined){options.color=fixHSB(options.color)}else{return this}}}options.origColor=options.color;return this.each(function(){if(!$(this).data("colorpickerId")){var id="collorpicker_"+parseInt(Math.random()*1000);$(this).data("colorpickerId",id);var cal=$(tpl).attr("id",id);if(options.flat){cal.appendTo(this).show()}else{cal.appendTo(document.body)}options.fields=cal.find("input").bind("keydown",keyDown).bind("change",change).bind("blur",blur).bind("focus",focus);cal.find("span").bind("mousedown",downIncrement);options.selector=cal.find("div.colorpicker_color").bind("mousedown",downSelector);options.selectorIndic=options.selector.find("div div");options.hue=cal.find("div.colorpicker_hue div");cal.find("div.colorpicker_hue").bind("mousedown",downHue);options.newColor=cal.find("div.colorpicker_new_color");options.currentColor=cal.find("div.colorpicker_current_color");cal.data("colorpicker",options);cal.find("div.colorpicker_submit").bind("mouseenter",enterSubmit).bind("mouseleave",leaveSubmit).bind("click",clickSubmit);fillRGBFields(options.color,cal.get(0));fillHSBFields(options.color,cal.get(0));fillHexFields(options.color,cal.get(0));setHue(options.color,cal.get(0));setSelector(options.color,cal.get(0));setCurrentColor(options.color,cal.get(0));setNewColor(options.color,cal.get(0));if(options.flat){cal.css({position:"relative",display:"block"})}else{$(this).bind(options.eventName,show)}}})},showPicker:function(){return this.each(function(){if($(this).data("colorpickerId")){show.apply(this)}})},hidePicker:function(){return this.each(function(){if($(this).data("colorpickerId")){$("#"+$(this).data("colorpickerId")).hide()}})},setColor:function(col){if(typeof col=="string"){col=HexToHSB(col)}else{if(col.r!=undefined&&col.g!=undefined&&col.b!=undefined){col=RGBToHSB(col)}else{if(col.h!=undefined&&col.s!=undefined&&col.b!=undefined){col=fixHSB(col)}else{return this}}}return this.each(function(){if($(this).data("colorpickerId")){var cal=$("#"+$(this).data("colorpickerId"));cal.data("colorpicker").color=col;cal.data("colorpicker").origColor=col;fillRGBFields(col,cal.get(0));fillHSBFields(col,cal.get(0));fillHexFields(col,cal.get(0));setHue(col,cal.get(0));setSelector(col,cal.get(0));setCurrentColor(col,cal.get(0));setNewColor(col,cal.get(0))}})}}}();$.fn.extend({ColorPicker:ColorPicker.init,ColorPickerHide:ColorPicker.hide,ColorPickerShow:ColorPicker.show,ColorPickerSetColor:ColorPicker.setColor})})(jQuery);
//elastic.js
(function(f){f.fn.extend({elastic:function(){var d=['paddingTop','paddingRight','paddingBottom','paddingLeft','fontSize','lineHeight','fontFamily','width','fontWeight'];return this.each(function(){if(this.type!='textarea'){return false}var $textarea=f(this),$twin=f('<div />').css({'position':'absolute','display':'none'}),lineHeight=parseInt($textarea.css('line-height'),10)||parseInt($textarea.css('font-size'),'10'),minheight=parseInt($textarea.css('height'),10)||lineHeight*3,maxheight=parseInt($textarea.css('max-height'),10)||Number.MAX_VALUE,goalheight=0,i=0;$twin.appendTo($textarea.parent());var i=d.length;while(i--){$twin.css(d[i].toString(),$textarea.css(d[i].toString()))}function setHeightAndOverflow(a,b){curratedHeight=Math.floor(parseInt(a,10));if($textarea.height()!=curratedHeight){$textarea.css({'height':curratedHeight+'px','overflow':b})}}function update(){var a=$textarea.val().replace(/<|>/g,' ').replace(/\n/g,'<br />').replace(/&/g,"&amp;");var b=$twin.html();if(a+'&nbsp;'!=b){$twin.html(a+'&nbsp;');if(Math.abs($twin.height()+lineHeight-$textarea.height())>3){var c=$twin.height()+lineHeight;if(c>=maxheight){setHeightAndOverflow(maxheight,'auto')}else if(c<=minheight){setHeightAndOverflow(minheight,'hidden')}else{setHeightAndOverflow(c,'hidden')}}}}$textarea.css({'overflow':'hidden'});$textarea.keyup(function(){update()});$textarea.live('input paste',function(e){setTimeout(update,250)});update()})}})})(jQuery);
//imgarea.js
jQuery.imgAreaSelect={onKeyPress:null};jQuery.imgAreaSelect.init=function(img,options){var $area=jQuery("<div></div>"),$border1=jQuery("<div></div>"),$border2=jQuery("<div></div>"),$outLeft=jQuery("<div></div>"),$outTop=jQuery("<div></div>"),$outRight=jQuery("<div></div>"),$outBottom=jQuery("<div></div>"),left,top,imgOfs,imgWidth,imgHeight,parent,parOfs,parScroll,adjusted,zIndex=0,fixed,$p,startX,startY,moveX,moveY,resizeMargin=10,resize=[],V=0,H=1,keyDown,d,aspectRatio,x1,x2,y1,y2,x,y,selection={x1:0,y1:0,x2:0,y2:0,width:0,height:0};var $a=$area.add($border1).add($border2);var $o=$outLeft.add($outTop).add($outRight).add($outBottom);function viewX(x){return x+imgOfs.left+parScroll.left-parOfs.left}function viewY(y){return y+imgOfs.top+parScroll.top-parOfs.top}function selX(x){return x-imgOfs.left-parScroll.left+parOfs.left}function selY(y){return y-imgOfs.top-parScroll.top+parOfs.top}function evX(event){return event.pageX+parScroll.left-parOfs.left}function evY(event){return event.pageY+parScroll.top-parOfs.top}function adjust(){imgOfs=jQuery(img).offset();imgWidth=jQuery(img).width();imgHeight=jQuery(img).height();if(jQuery(parent).is("body")){parOfs=parScroll={left:0,top:0}}else{parOfs=jQuery(parent).offset();parScroll={left:parent.scrollLeft,top:parent.scrollTop}}left=viewX(0);top=viewY(0)}function update(resetKeyPress){$a.css({left:viewX(selection.x1)+"px",top:viewY(selection.y1)+"px",width:Math.max(selection.width-options.borderWidth*2,0)+"px",height:Math.max(selection.height-options.borderWidth*2,0)+"px"});$outLeft.css({left:left+"px",top:top+"px",width:selection.x1+"px",height:imgHeight+"px"});$outTop.css({left:left+selection.x1+"px",top:top+"px",width:selection.width+"px",height:selection.y1+"px"});$outRight.css({left:left+selection.x2+"px",top:top+"px",width:imgWidth-selection.x2+"px",height:imgHeight+"px"});$outBottom.css({left:left+selection.x1+"px",top:top+selection.y2+"px",width:selection.width+"px",height:imgHeight-selection.y2+"px"});if(resetKeyPress!==false){if(jQuery.imgAreaSelect.keyPress!=docKeyPress){jQuery(document).unbind(jQuery.imgAreaSelect.keyPress,jQuery.imgAreaSelect.onKeyPress)}if(options.keys){jQuery(document).bind(jQuery.imgAreaSelect.keyPress,jQuery.imgAreaSelect.onKeyPress=docKeyPress)}}}function areaMouseMove(event){if(!adjusted){adjust();adjusted=true;$a.one("mouseout",function(){adjusted=false})}x=selX(evX(event))-selection.x1;y=selY(evY(event))-selection.y1;resize=[];if(options.resizable){if(y<=resizeMargin){resize[V]="n"}else{if(y>=selection.height-resizeMargin){resize[V]="s"}}if(x<=resizeMargin){resize[H]="w"}else{if(x>=selection.width-resizeMargin){resize[H]="e"}}}$border2.css("cursor",resize.length?resize.join("")+"-resize":options.movable?"move":"")}function areaMouseDown(event){if(event.which!=1){return false}adjust();if(options.resizable&&resize.length>0){jQuery("body").css("cursor",resize.join("")+"-resize");x1=viewX(resize[H]=="w"?selection.x2:selection.x1);y1=viewY(resize[V]=="n"?selection.y2:selection.y1);jQuery(document).mousemove(selectingMouseMove);$border2.unbind("mousemove",areaMouseMove);jQuery(document).one("mouseup",function(){resize=[];jQuery("body").css("cursor","");if(options.autoHide){$a.add($o).hide()}options.onSelectEnd(img,selection);jQuery(document).unbind("mousemove",selectingMouseMove);$border2.mousemove(areaMouseMove)})}else{if(options.movable){moveX=selection.x1+left;moveY=selection.y1+top;startX=evX(event);startY=evY(event);jQuery(document).mousemove(movingMouseMove).one("mouseup",function(){options.onSelectEnd(img,selection);jQuery(document).unbind("mousemove",movingMouseMove)})}else{jQuery(img).mousedown(event)}}return false}function aspectRatioXY(){x2=Math.max(left,Math.min(left+imgWidth,x1+Math.abs(y2-y1)*aspectRatio*(x2>=x1?1:-1)));y2=Math.round(Math.max(top,Math.min(top+imgHeight,y1+Math.abs(x2-x1)/aspectRatio*(y2>=y1?1:-1))));x2=Math.round(x2)}function aspectRatioYX(){y2=Math.max(top,Math.min(top+imgHeight,y1+Math.abs(x2-x1)/aspectRatio*(y2>=y1?1:-1)));x2=Math.round(Math.max(left,Math.min(left+imgWidth,x1+Math.abs(y2-y1)*aspectRatio*(x2>=x1?1:-1))));y2=Math.round(y2)}function doResize(newX2,newY2){x2=newX2;y2=newY2;if(options.minWidth&&Math.abs(x2-x1)<options.minWidth){x2=x1-options.minWidth*(x2<x1?1:-1);if(x2<left){x1=left+options.minWidth}else{if(x2>left+imgWidth){x1=left+imgWidth-options.minWidth}}}if(options.minHeight&&Math.abs(y2-y1)<options.minHeight){y2=y1-options.minHeight*(y2<y1?1:-1);if(y2<top){y1=top+options.minHeight}else{if(y2>top+imgHeight){y1=top+imgHeight-options.minHeight}}}x2=Math.max(left,Math.min(x2,left+imgWidth));y2=Math.max(top,Math.min(y2,top+imgHeight));if(aspectRatio){if(Math.abs(x2-x1)/aspectRatio>Math.abs(y2-y1)){aspectRatioYX()}else{aspectRatioXY()}}if(options.maxWidth&&Math.abs(x2-x1)>options.maxWidth){x2=x1-options.maxWidth*(x2<x1?1:-1);if(aspectRatio){aspectRatioYX()}}if(options.maxHeight&&Math.abs(y2-y1)>options.maxHeight){y2=y1-options.maxHeight*(y2<y1?1:-1);if(aspectRatio){aspectRatioXY()}}selection.x1=selX(Math.min(x1,x2));selection.x2=selX(Math.max(x1,x2));selection.y1=selY(Math.min(y1,y2));selection.y2=selY(Math.max(y1,y2));selection.width=Math.abs(x2-x1);selection.height=Math.abs(y2-y1);update();options.onSelectChange(img,selection)}function selectingMouseMove(event){x2=!resize.length||resize[H]||aspectRatio?evX(event):viewX(selection.x2);y2=!resize.length||resize[V]||aspectRatio?evY(event):viewY(selection.y2);doResize(x2,y2);return false}function doMove(newX1,newY1){x2=(x1=newX1)+selection.width;y2=(y1=newY1)+selection.height;selection.x1=selX(x1);selection.y1=selY(y1);selection.x2=selX(x2);selection.y2=selY(y2);update();options.onSelectChange(img,selection)}function movingMouseMove(event){var newX1=Math.max(left,Math.min(moveX+evX(event)-startX,left+imgWidth-selection.width));var newY1=Math.max(top,Math.min(moveY+evY(event)-startY,top+imgHeight-selection.height));doMove(newX1,newY1);event.preventDefault();return false}function startSelection(event){adjust();selection.x1=selection.x2=selX(startX=x1=x2=evX(event));selection.y1=selection.y2=selY(startY=y1=y2=evY(event));selection.width=0;selection.height=0;resize=[];update();$a.add($o).show();jQuery(document).unbind("mouseup",cancelSelection).mousemove(selectingMouseMove);$border2.unbind("mousemove",areaMouseMove);options.onSelectStart(img,selection);jQuery(document).one("mouseup",function(){if(options.autoHide||(selection.width*selection.height==0)){$a.add($o).hide()}options.onSelectEnd(img,selection);jQuery(document).unbind("mousemove",selectingMouseMove);$border2.mousemove(areaMouseMove)})}function cancelSelection(){jQuery(document).unbind("mousemove",startSelection);$a.add($o).hide()}function imgMouseDown(event){if(event.which!=1){return false}jQuery(document).one("mousemove",startSelection).one("mouseup",cancelSelection);return false}function windowResize(){adjust();update(false);x1=viewX(selection.x1);y1=viewY(selection.y1);x2=viewX(selection.x2);y2=viewY(selection.y2)}var docKeyPress=function(event){var k=options.keys,d=10,t,key=event.keyCode||event.which;if(!isNaN(k.arrows)){d=k.arrows}if(!isNaN(k.shift)&&event.shiftKey){d=k.shift}if(!isNaN(k.ctrl)&&event.ctrlKey){d=k.ctrl}if(!isNaN(k.alt)&&(event.altKey||event.originalEvent.altKey)){d=k.alt}if(k.arrows=="resize"||(k.shift=="resize"&&event.shiftKey)||(k.ctrl=="resize"&&event.ctrlKey)||(k.alt=="resize"&&(event.altKey||event.originalEvent.altKey))){switch(key){case 37:d=-d;case 39:t=Math.max(x1,x2);x1=Math.min(x1,x2);x2=Math.max(t+d,x1);if(aspectRatio){aspectRatioYX()}break;case 38:d=-d;case 40:t=Math.max(y1,y2);y1=Math.min(y1,y2);y2=Math.max(t+d,y1);if(aspectRatio){aspectRatioXY()}break;default:return}doResize(x2,y2)}else{x1=Math.min(x1,x2);y1=Math.min(y1,y2);switch(key){case 37:doMove(Math.max(x1-d,left),y1);break;case 38:doMove(x1,Math.max(y1-d,top));break;case 39:doMove(x1+Math.min(d,imgWidth-selX(x2)),y1);break;case 40:doMove(x1,y1+Math.min(d,imgHeight-selY(y2)));break;default:return}}return false};this.setOptions=function(newOptions){options=jQuery.extend(options,newOptions);if(newOptions.x1!=null){selection.x1=newOptions.x1;selection.y1=newOptions.y1;selection.x2=newOptions.x2;selection.y2=newOptions.y2;newOptions.show=true}if(newOptions.keys){options.keys=jQuery.extend({shift:1,ctrl:"resize"},newOptions.keys===true?{}:newOptions.keys)}parent=jQuery(options.parent).get(0);adjust();$p=jQuery(img);while($p.length&&!$p.is("body")){if(!isNaN($p.css("z-index"))&&$p.css("z-index")>zIndex){zIndex=$p.css("z-index")}if($p.css("position")=="fixed"){fixed=true}$p=$p.parent()}x1=viewX(selection.x1);y1=viewY(selection.y1);x2=viewX(selection.x2);y2=viewY(selection.y2);selection.width=x2-x1;selection.height=y2-y1;update();if(newOptions.hide){$a.add($o).hide()}else{if(newOptions.show){$a.add($o).show()}}$o.addClass(options.classPrefix+"-outer");$area.addClass(options.classPrefix+"-selection");$border1.addClass(options.classPrefix+"-border1");$border2.addClass(options.classPrefix+"-border2");$a.css({borderWidth:options.borderWidth+"px"});$area.css({backgroundColor:options.selectionColor,opacity:options.selectionOpacity});$border1.css({borderStyle:"solid",borderColor:options.borderColor1});$border2.css({borderStyle:"dashed",borderColor:options.borderColor2});$o.css({opacity:options.outerOpacity,backgroundColor:options.outerColor});aspectRatio=options.aspectRatio&&(d=options.aspectRatio.split(/:/))?d[0]/d[1]:null;if(options.disable||options.enable===false){$a.unbind("mousemove",areaMouseMove).unbind("mousedown",areaMouseDown);jQuery(img).add($o).unbind("mousedown",imgMouseDown);jQuery(window).unbind("resize",windowResize)}else{if(options.enable||options.disable===false){if(options.resizable||options.movable){$a.mousemove(areaMouseMove).mousedown(areaMouseDown)}if(!options.persistent){jQuery(img).add($o).mousedown(imgMouseDown)}jQuery(window).resize(windowResize)}}jQuery(options.parent).append($o.add($a));options.enable=options.disable=undefined};if(jQuery.browser.msie){jQuery(img).attr("unselectable","on")}jQuery.imgAreaSelect.keyPress=jQuery.browser.msie||jQuery.browser.safari?"keydown":"keypress";$a.add($o).css({display:"none",position:fixed?"fixed":"absolute",overflow:"hidden",zIndex:zIndex>0?zIndex:"0"});$area.css({borderStyle:"solid"});initOptions={borderColor1:"#000",borderColor2:"#fff",borderWidth:1,classPrefix:"imgareaselect",movable:true,resizable:true,selectionColor:"#fff",selectionOpacity:0.2,outerColor:"#000",outerOpacity:0.2,parent:"body",onSelectStart:function(){},onSelectChange:function(){},onSelectEnd:function(){}};options=jQuery.extend(initOptions,options);this.setOptions(options)};jQuery.fn.imgAreaSelect=function(options){options=options||{};this.each(function(){if(jQuery(this).data("imgAreaSelect")){jQuery(this).data("imgAreaSelect").setOptions(options)}else{if(options.enable===undefined&&options.disable===undefined){options.enable=true}jQuery(this).data("imgAreaSelect",new jQuery.imgAreaSelect.init(this,options))}});return this};
//scroll.js
(function($){var m=$.scrollTo=function(b,h,f){$(window).scrollTo(b,h,f)};m.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1};m.window=function(b){return $(window).scrollable()};$.fn.scrollable=function(){return this.map(function(){var b=this,h=!b.nodeName||$.inArray(b.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!h)return b;var f=(b.contentWindow||b).document||b.ownerDocument||b;return $.browser.safari||f.compatMode=='BackCompat'?f.body:f.documentElement})};$.fn.scrollTo=function(l,j,a){if(typeof j=='object'){a=j;j=0}if(typeof a=='function')a={onAfter:a};if(l=='max')l=9e9;a=$.extend({},m.defaults,a);j=j||a.speed||a.duration;a.queue=a.queue&&a.axis.length>1;if(a.queue)j/=2;a.offset=n(a.offset);a.over=n(a.over);return this.scrollable().each(function(){var k=this,o=$(k),d=l,p,g={},q=o.is('html,body');switch(typeof d){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px)?$/.test(d)){d=n(d);break}d=$(d,this);case'object':if(d.is||d.style)p=(d=$(d)).offset()}$.each(a.axis.split(''),function(b,h){var f=h=='x'?'Left':'Top',i=f.toLowerCase(),c='scroll'+f,r=k[c],s=h=='x'?'Width':'Height';if(p){g[c]=p[i]+(q?0:r-o.offset()[i]);if(a.margin){g[c]-=parseInt(d.css('margin'+f))||0;g[c]-=parseInt(d.css('border'+f+'Width'))||0}g[c]+=a.offset[i]||0;if(a.over[i])g[c]+=d[s.toLowerCase()]()*a.over[i]}else g[c]=d[i];if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],u(s));if(!b&&a.queue){if(r!=g[c])t(a.onAfterFirst);delete g[c]}});t(a.onAfter);function t(b){o.animate(g,j,a.easing,b&&function(){b.call(this,l,a)})};function u(b){var h='scroll'+b;if(!q)return k[h];var f='client'+b,i=k.ownerDocument.documentElement,c=k.ownerDocument.body;return Math.max(i[h],c[h])-Math.min(i[f],c[f])}}).end()};function n(b){return typeof b=='object'?b:{top:b,left:b}}})(jQuery);