if(typeof Effect=="undefined"){throw ("dragdrop.js requires including script.aculo.us' effects.js library");}var Droppables={drops:[],remove:function(_1){this.drops=this.drops.reject(function(d){return d.element==$(_1);});},add:function(_3){_3=$(_3);var _4=Object.extend({greedy:true,hoverclass:null,tree:false},arguments[1]||{});if(_4.containment){_4._containers=[];var _5=_4.containment;if((typeof _5=="object")&&(_5.constructor==Array)){_5.each(function(c){_4._containers.push($(c));});}else{_4._containers.push($(_5));}}if(_4.accept){_4.accept=[_4.accept].flatten();}Element.makePositioned(_3);_4.element=_3;this.drops.push(_4);},findDeepestChild:function(_7){deepest=_7[0];for(i=1;i<_7.length;++i){if(Element.isParent(_7[i].element,deepest.element)){deepest=_7[i];}}return deepest;},isContained:function(_8,_9){var _a;if(_9.tree){_a=_8.treeNode;}else{_a=_8.parentNode;}return _9._containers.detect(function(c){return _a==c;});},isAffected:function(_c,_d,_e){return ((_e.element!=_d)&&((!_e._containers)||this.isContained(_d,_e))&&((!_e.accept)||(Element.classNames(_d).detect(function(v){return _e.accept.include(v);})))&&Position.within(_e.element,_c[0],_c[1]));},deactivate:function(_10){if(_10.hoverclass){Element.removeClassName(_10.element,_10.hoverclass);}this.last_active=null;},activate:function(_11){if(_11.hoverclass){Element.addClassName(_11.element,_11.hoverclass);}this.last_active=_11;},show:function(_12,_13){if(!this.drops.length){return;}var _14=[];if(this.last_active){this.deactivate(this.last_active);}this.drops.each(function(_15){if(Droppables.isAffected(_12,_13,_15)){_14.push(_15);}});if(_14.length>0){drop=Droppables.findDeepestChild(_14);Position.within(drop.element,_12[0],_12[1]);if(drop.onHover){drop.onHover(_13,drop.element,Position.overlap(drop.overlap,drop.element));}Droppables.activate(drop);}},fire:function(_16,_17){if(!this.last_active){return;}Position.prepare();if(this.isAffected([Event.pointerX(_16),Event.pointerY(_16)],_17,this.last_active)){if(this.last_active.onDrop){this.last_active.onDrop(_17,this.last_active.element,_16);return true;}}},reset:function(){if(this.last_active){this.deactivate(this.last_active);}}};var Draggables={drags:[],observers:[],register:function(_18){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(_18);},unregister:function(_19){this.drags=this.drags.reject(function(d){return d==_19;});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(_1b){if(_1b.options.delay){this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=_1b;}.bind(this),_1b.options.delay);}else{window.focus();this.activeDraggable=_1b;}},deactivate:function(){this.activeDraggable=null;},updateDrag:function(_1c){if(!this.activeDraggable){return;}var _1d=[Event.pointerX(_1c),Event.pointerY(_1c)];if(this._lastPointer&&(this._lastPointer.inspect()==_1d.inspect())){return;}this._lastPointer=_1d;this.activeDraggable.updateDrag(_1c,_1d);},endDrag:function(_1e){if(this._timeout){clearTimeout(this._timeout);this._timeout=null;}if(!this.activeDraggable){return;}this._lastPointer=null;this.activeDraggable.endDrag(_1e);this.activeDraggable=null;},keyPress:function(_1f){if(this.activeDraggable){this.activeDraggable.keyPress(_1f);}},addObserver:function(_20){this.observers.push(_20);this._cacheObserverCallbacks();},removeObserver:function(_21){this.observers=this.observers.reject(function(o){return o.element==_21;});this._cacheObserverCallbacks();},notify:function(_23,_24,_25){if(this[_23+"Count"]>0){this.observers.each(function(o){if(o[_23]){o[_23](_23,_24,_25);}});}if(_24.options[_23]){_24.options[_23](_24,_25);}},_cacheObserverCallbacks:function(){["onStart","onEnd","onDrag"].each(function(_27){Draggables[_27+"Count"]=Draggables.observers.select(function(o){return o[_27];}).length;});}};var Draggable=Class.create();Draggable._dragging={};Draggable.prototype={initialize:function(_29){var _2a={handle:false,reverteffect:function(_2b,_2c,_2d){var dur=Math.sqrt(Math.abs(_2c^2)+Math.abs(_2d^2))*0.02;new Effect.Move(_2b,{x:-_2d,y:-_2c,duration:dur,queue:{scope:"_draggable",position:"end"}});},endeffect:function(_2f){var _30=typeof _2f._opacity=="number"?_2f._opacity:1;new Effect.Opacity(_2f,{duration:0.2,from:0.7,to:_30,queue:{scope:"_draggable",position:"end"},afterFinish:function(){Draggable._dragging[_2f]=false;}});},zindex:1000,revert:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false,delay:0};if(!arguments[1]||typeof arguments[1].endeffect=="undefined"){Object.extend(_2a,{starteffect:function(_31){_31._opacity=Element.getOpacity(_31);Draggable._dragging[_31]=true;new Effect.Opacity(_31,{duration:0.2,from:_31._opacity,to:0.7});}});}var _32=Object.extend(_2a,arguments[1]||{});this.element=$(_29);if(_32.handle&&(typeof _32.handle=="string")){this.handle=this.element.down("."+_32.handle,0);}if(!this.handle){this.handle=$(_32.handle);}if(!this.handle){this.handle=this.element;}if(_32.scroll&&!_32.scroll.scrollTo&&!_32.scroll.outerHTML){_32.scroll=$(_32.scroll);this._isScrollChild=Element.childOf(this.element,_32.scroll);}Element.makePositioned(this.element);this.delta=this.currentDelta();this.options=_32;this.dragging=false;mig_drag_activ=false;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this);},destroy:function(){Event.stopObserving(this.handle,"mousedown",this.eventMouseDown);Draggables.unregister(this);},currentDelta:function(){return ([parseInt(Element.getStyle(this.element,"left")||"0"),parseInt(Element.getStyle(this.element,"top")||"0")]);},initDrag:function(_33){if(typeof Draggable._dragging[this.element]!="undefined"&&Draggable._dragging[this.element]){return;}if(Event.isLeftClick(_33)){var src=Event.element(_33);if((tag_name=src.tagName.toUpperCase())&&(tag_name=="INPUT"||tag_name=="SELECT"||tag_name=="OPTION"||tag_name=="BUTTON"||tag_name=="TEXTAREA")){return;}var _35=[Event.pointerX(_33),Event.pointerY(_33)];var pos=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(i){return (_35[i]-pos[i]);});Draggables.activate(this);Event.stop(_33);}},startDrag:function(_38){this.dragging=true;mig_drag_activ=true;if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,"z-index")||0);this.element.style.zIndex=this.options.zindex;}if(this.options.ghosting){this._clone=this.element.cloneNode(true);Position.absolutize(this.element);this.element.parentNode.insertBefore(this._clone,this.element);}if(this.options.scroll){if(this.options.scroll==window){var _39=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=_39.left;this.originalScrollTop=_39.top;}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop;}}Draggables.notify("onStart",this,_38);if(this.options.starteffect){this.options.starteffect(this.element);}},updateDrag:function(_3a,_3b){if(!this.dragging){this.startDrag(_3a);}if(!this.options.quiet){Position.prepare();Droppables.show(_3b,this.element);}Draggables.notify("onDrag",this,_3a);this.draw(_3b);if(this.options.change){this.options.change(this);}if(this.options.scroll){this.stopScrolling();var p;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){p=[left,top,left+width,top+height];}}else{p=Position.page(this.options.scroll);p[0]+=this.options.scroll.scrollLeft+Position.deltaX;p[1]+=this.options.scroll.scrollTop+Position.deltaY;p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight);}var _3d=[0,0];if(_3b[0]<(p[0]+this.options.scrollSensitivity)){_3d[0]=_3b[0]-(p[0]+this.options.scrollSensitivity);}if(_3b[1]<(p[1]+this.options.scrollSensitivity)){_3d[1]=_3b[1]-(p[1]+this.options.scrollSensitivity);}if(_3b[0]>(p[2]-this.options.scrollSensitivity)){_3d[0]=_3b[0]-(p[2]-this.options.scrollSensitivity);}if(_3b[1]>(p[3]-this.options.scrollSensitivity)){_3d[1]=_3b[1]-(p[3]-this.options.scrollSensitivity);}this.startScrolling(_3d);}if(Prototype.Browser.WebKit){window.scrollBy(0,0);}Event.stop(_3a);},finishDrag:function(_3e,_3f){this.dragging=false;mig_drag_activ=false;if(this.options.quiet){Position.prepare();var _40=[Event.pointerX(_3e),Event.pointerY(_3e)];Droppables.show(_40,this.element);}if(this.options.ghosting){Position.relativize(this.element);Element.remove(this._clone);this._clone=null;}var _41=false;if(_3f){_41=Droppables.fire(_3e,this.element);if(!_41){_41=false;}}if(_41&&this.options.onDropped){this.options.onDropped(this.element);}Draggables.notify("onEnd",this,_3e);var _42=this.options.revert;if(_42&&typeof _42=="function"){_42=_42(this.element);}var d=this.currentDelta();if(_42&&this.options.reverteffect){if(_41==0||_42!="failure"){this.options.reverteffect(this.element,d[1]-this.delta[1],d[0]-this.delta[0]);}}else{this.delta=d;}if(this.options.zindex){this.element.style.zIndex=this.originalZ;}if(this.options.endeffect){this.options.endeffect(this.element);}Draggables.deactivate(this);Droppables.reset();},keyPress:function(_44){if(_44.keyCode!=Event.KEY_ESC){return;}this.finishDrag(_44,false);Event.stop(_44);},endDrag:function(_45){if(!this.dragging){return;}this.stopScrolling();this.finishDrag(_45,true);Event.stop(_45);},draw:function(_46){var pos=Position.cumulativeOffset(this.element);if(this.options.ghosting){var r=Position.realOffset(this.element);pos[0]+=r[0]-Position.deltaX;pos[1]+=r[1]-Position.deltaY;}var d=this.currentDelta();pos[0]-=d[0];pos[1]-=d[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){pos[0]-=this.options.scroll.scrollLeft-this.originalScrollLeft;pos[1]-=this.options.scroll.scrollTop-this.originalScrollTop;}var p=[0,1].map(function(i){return (_46[i]-pos[i]-this.offset[i]);}.bind(this));if(this.options.snap){if(typeof this.options.snap=="function"){p=this.options.snap(p[0],p[1],this);}else{if(this.options.snap instanceof Array){p=p.map(function(v,i){return Math.round(v/this.options.snap[i])*this.options.snap[i];}.bind(this));}else{p=p.map(function(v){return Math.round(v/this.options.snap)*this.options.snap;}.bind(this));}}}var _4f=this.element.style;if((!this.options.constraint)||(this.options.constraint=="horizontal")){_4f.left=p[0]+"px";}if((!this.options.constraint)||(this.options.constraint=="vertical")){_4f.top=p[1]+"px";}if(_4f.visibility=="hidden"){_4f.visibility="";}},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null;}},startScrolling:function(_50){if(!(_50[0]||_50[1])){return;}this.scrollSpeed=[_50[0]*this.options.scrollSpeed,_50[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10);},scroll:function(){var _51=new Date();var _52=_51-this.lastScrolled;this.lastScrolled=_51;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){var d=_52/1000;this.options.scroll.scrollTo(left+d*this.scrollSpeed[0],top+d*this.scrollSpeed[1]);}}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*_52/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*_52/1000;}Position.prepare();Droppables.show(Draggables._lastPointer,this.element);Draggables.notify("onDrag",this);if(this._isScrollChild){Draggables._lastScrollPointer=Draggables._lastScrollPointer||$A(Draggables._lastPointer);Draggables._lastScrollPointer[0]+=this.scrollSpeed[0]*_52/1000;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*_52/1000;if(Draggables._lastScrollPointer[0]<0){Draggables._lastScrollPointer[0]=0;}if(Draggables._lastScrollPointer[1]<0){Draggables._lastScrollPointer[1]=0;}this.draw(Draggables._lastScrollPointer);}if(this.options.change){this.options.change(this);}},_getWindowScroll:function(w){var T,L,W,H;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft;}else{if(w.document.body){T=body.scrollTop;L=body.scrollLeft;}}if(w.innerWidth){W=w.innerWidth;H=w.innerHeight;}else{if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight;}else{W=body.offsetWidth;H=body.offsetHeight;}}}return {top:T,left:L,width:W,height:H};}};var SortableObserver=Class.create();SortableObserver.prototype={initialize:function(_56,_57){this.element=$(_56);this.observer=_57;this.lastValue=Sortable.serialize(this.element);},onStart:function(){this.lastValue=Sortable.serialize(this.element);},onEnd:function(){Sortable.unmark();if(this.lastValue!=Sortable.serialize(this.element)){this.observer(this.element);}mig_something_changed=true;}};var Sortable={SERIALIZE_RULE:/^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,sortables:{},_findRootElement:function(_58){if(_58){while(_58.tagName.toUpperCase()!="BODY"){if(_58.id&&Sortable.sortables[_58.id]){return _58;}_58=_58.parentNode;}}},options:function(_59){_59=Sortable._findRootElement($(_59));if(!_59){return;}return Sortable.sortables[_59.id];},destroy:function(_5a){var s=Sortable.options(_5a);if(s){Draggables.removeObserver(s.element);s.droppables.each(function(d){Droppables.remove(d);});s.draggables.invoke("destroy");delete Sortable.sortables[s.element.id];}},create:function(_5d){_5d=$(_5d);if(!_5d){return;}var _5e=Object.extend({element:_5d,tag:"li",dropOnEmpty:false,tree:false,treeTag:"ul",overlap:"vertical",constraint:"vertical",containment:_5d,handle:false,only:false,delay:0,hoverclass:null,ghosting:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(_5d);var _5f={revert:true,quiet:_5e.quiet,scroll:_5e.scroll,scrollSpeed:_5e.scrollSpeed,scrollSensitivity:_5e.scrollSensitivity,delay:_5e.delay,ghosting:_5e.ghosting,constraint:_5e.constraint,handle:_5e.handle};if(_5e.starteffect){_5f.starteffect=_5e.starteffect;}if(_5e.reverteffect){_5f.reverteffect=_5e.reverteffect;}else{if(_5e.ghosting){_5f.reverteffect=function(_60){_60.style.top=0;_60.style.left=0;};}}if(_5e.endeffect){_5f.endeffect=_5e.endeffect;}if(_5e.zindex){_5f.zindex=_5e.zindex;}var _61={overlap:_5e.overlap,containment:_5e.containment,tree:_5e.tree,hoverclass:_5e.hoverclass,onHover:Sortable.onHover};var _62={onHover:Sortable.onEmptyHover,overlap:_5e.overlap,containment:_5e.containment,hoverclass:_5e.hoverclass};Element.cleanWhitespace(_5d);_5e.draggables=[];_5e.droppables=[];if(_5e.dropOnEmpty||_5e.tree){Droppables.add(_5d,_62);_5e.droppables.push(_5d);}(this.findElements(_5d,_5e)||[]).each(function(e){var _64=_5e.handle?$(e).down("."+_5e.handle,0):e;_5e.draggables.push(new Draggable(e,Object.extend(_5f,{handle:_64})));Droppables.add(e,_61);if(_5e.tree){e.treeNode=_5d;}_5e.droppables.push(e);});if(_5e.tree){(Sortable.findTreeElements(_5d,_5e)||[]).each(function(e){Droppables.add(e,_62);e.treeNode=_5d;_5e.droppables.push(e);});}this.sortables[_5d.id]=_5e;Draggables.addObserver(new SortableObserver(_5d,_5e.onUpdate));},findElements:function(_66,_67){return Element.findChildren(_66,_67.only,_67.tree?true:false,_67.tag);},findTreeElements:function(_68,_69){return Element.findChildren(_68,_69.only,_69.tree?true:false,_69.treeTag);},onHover:function(_6a,_6b,_6c){if(Element.isParent(_6b,_6a)){return;}if(_6c>0.33&&_6c<0.66&&Sortable.options(_6b).tree){return;}else{if(_6c>0.5){Sortable.mark(_6b,"before");if(_6b.previousSibling!=_6a){var _6d=_6a.parentNode;_6a.style.visibility="hidden";_6b.parentNode.insertBefore(_6a,_6b);if(_6b.parentNode!=_6d){Sortable.options(_6d).onChange(_6a);}Sortable.options(_6b.parentNode).onChange(_6a);}}else{Sortable.mark(_6b,"after");var _6e=_6b.nextSibling||null;if(_6e!=_6a){var _6f=_6a.parentNode;_6a.style.visibility="hidden";_6b.parentNode.insertBefore(_6a,_6e);if(_6b.parentNode!=_6f){Sortable.options(_6f).onChange(_6a);}Sortable.options(_6b.parentNode).onChange(_6a);}}}},onEmptyHover:function(_70,_71,_72){var _73=_70.parentNode;var _74=Sortable.options(_71);if(!Element.isParent(_71,_70)){var _75;var _76=Sortable.findElements(_71,{tag:_74.tag,only:_74.only});var _77=null;if(_76){var _78=Element.offsetSize(_71,_74.overlap)*(1-_72);for(_75=0;_75<_76.length;_75+=1){if(_78-Element.offsetSize(_76[_75],_74.overlap)>=0){_78-=Element.offsetSize(_76[_75],_74.overlap);}else{if(_78-(Element.offsetSize(_76[_75],_74.overlap)/2)>=0){_77=_75+1<_76.length?_76[_75+1]:null;break;}else{_77=_76[_75];break;}}}}_71.insertBefore(_70,_77);Sortable.options(_73).onChange(_70);_74.onChange(_70);}},unmark:function(){if(Sortable._marker){Sortable._marker.hide();}},mark:function(_79,_7a){var _7b=Sortable.options(_79.parentNode);if(_7b&&!_7b.ghosting){return;}if(!Sortable._marker){Sortable._marker=($("dropmarker")||Element.extend(document.createElement("DIV"))).hide().addClassName("dropmarker").setStyle({position:"absolute"});document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);}var _7c=Position.cumulativeOffset(_79);Sortable._marker.setStyle({left:_7c[0]+"px",top:_7c[1]+"px"});if(_7a=="after"){if(_7b.overlap=="horizontal"){Sortable._marker.setStyle({left:(_7c[0]+_79.clientWidth)+"px"});}else{Sortable._marker.setStyle({top:(_7c[1]+_79.clientHeight)+"px"});}}Sortable._marker.show();},_tree:function(_7d,_7e,_7f){var _80=Sortable.findElements(_7d,_7e)||[];for(var i=0;i<_80.length;++i){var _82=_80[i].id.match(_7e.format);if(!_82){continue;}var _83={id:encodeURIComponent(_82?_82[1]:null),element:_7d,parent:_7f,children:[],position:_7f.children.length,container:$(_80[i]).down(_7e.treeTag)};if(_83.container){this._tree(_83.container,_7e,_83);}_7f.children.push(_83);}return _7f;},tree:function(_84){_84=$(_84);var _85=this.options(_84);var _86=Object.extend({tag:_85.tag,treeTag:_85.treeTag,only:_85.only,name:_84.id,format:_85.format},arguments[1]||{});var _87={id:null,parent:null,children:[],container:_84,position:0};return Sortable._tree(_84,_86,_87);},_constructIndex:function(_88){var _89="";do{if(_88.id){_89="["+_88.position+"]"+_89;}}while((_88=_88.parent)!=null);return _89;},sequence:function(_8a){_8a=$(_8a);var _8b=Object.extend(this.options(_8a),arguments[1]||{});return $(this.findElements(_8a,_8b)||[]).map(function(_8c){return _8c.id.match(_8b.format)?_8c.id.match(_8b.format)[1]:"";});},setSequence:function(_8d,_8e){_8d=$(_8d);var _8f=Object.extend(this.options(_8d),arguments[2]||{});var _90={};this.findElements(_8d,_8f).each(function(n){if(n.id.match(_8f.format)){_90[n.id.match(_8f.format)[1]]=[n,n.parentNode];}n.parentNode.removeChild(n);});_8e.each(function(_92){var n=_90[_92];if(n){n[1].appendChild(n[0]);delete _90[_92];}});},serialize:function(_94){_94=$(_94);var _95=Object.extend(Sortable.options(_94),arguments[1]||{});var _96=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:_94.id);if(_95.tree){return Sortable.tree(_94,arguments[1]).children.map(function(_97){return [_96+Sortable._constructIndex(_97)+"[id]="+encodeURIComponent(_97.id)].concat(_97.children.map(arguments.callee));}).flatten().join("&");}else{return Sortable.sequence(_94,arguments[1]).map(function(_98){return _96+"[]="+encodeURIComponent(_98);}).join("&");}}};Element.isParent=function(_99,_9a){if(!_99.parentNode||_99==_9a){return false;}if(_99.parentNode==_9a){return true;}return Element.isParent(_99.parentNode,_9a);};Element.findChildren=function(_9b,_9c,_9d,_9e){if(!_9b){return null;}if(!_9b.hasChildNodes()){return null;}_9e=_9e.toUpperCase();if(_9c){_9c=[_9c].flatten();}var _9f=[];$A(_9b.childNodes).each(function(e){if(e.tagName&&e.tagName.toUpperCase()==_9e&&(!_9c||(Element.classNames(e).detect(function(v){return _9c.include(v);})))){_9f.push(e);}if(_9d){var _a2=Element.findChildren(e,_9c,_9d,_9e);if(_a2){_9f.push(_a2);}}});return (_9f.length>0?_9f.flatten():[]);};Element.offsetSize=function(_a3,_a4){return _a3["offset"+((_a4=="vertical"||_a4=="height")?"Height":"Width")];};