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);}}},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,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")){var h=Element.childrenWithClassName(this.element,_32.handle,true);if(h.length>0){this.handle=h[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;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(_34){if(typeof Draggable._dragging[this.element]!="undefined"&&Draggable._dragging[this.element]){return;}if(Event.isLeftClick(_34)){var src=Event.element(_34);if(src.tagName&&(src.tagName=="INPUT"||src.tagName=="SELECT"||src.tagName=="OPTION"||src.tagName=="BUTTON"||src.tagName=="TEXTAREA")){return;}var _36=[Event.pointerX(_34),Event.pointerY(_34)];var pos=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(i){return (_36[i]-pos[i]);});Draggables.activate(this);Event.stop(_34);}},startDrag:function(_39){this.dragging=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 _3a=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=_3a.left;this.originalScrollTop=_3a.top;}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop;}}Draggables.notify("onStart",this,_39);if(this.options.starteffect){this.options.starteffect(this.element);}},updateDrag:function(_3b,_3c){if(!this.dragging){this.startDrag(_3b);}Position.prepare();Droppables.show(_3c,this.element);Draggables.notify("onDrag",this,_3b);this.draw(_3c);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;p[1]+=this.options.scroll.scrollTop;p[0]+=(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0);p[1]+=(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0);p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight);}var _3e=[0,0];if(_3c[0]<(p[0]+this.options.scrollSensitivity)){_3e[0]=_3c[0]-(p[0]+this.options.scrollSensitivity);}if(_3c[1]<(p[1]+this.options.scrollSensitivity)){_3e[1]=_3c[1]-(p[1]+this.options.scrollSensitivity);}if(_3c[0]>(p[2]-this.options.scrollSensitivity)){_3e[0]=_3c[0]-(p[2]-this.options.scrollSensitivity);}if(_3c[1]>(p[3]-this.options.scrollSensitivity)){_3e[1]=_3c[1]-(p[3]-this.options.scrollSensitivity);}this.startScrolling(_3e);}if(navigator.appVersion.indexOf("AppleWebKit")>0){window.scrollBy(0,0);}Event.stop(_3b);},finishDrag:function(_3f,_40){this.dragging=false;if(this.options.ghosting){Position.relativize(this.element);Element.remove(this._clone);this._clone=null;}if(_40){Droppables.fire(_3f,this.element);}Draggables.notify("onEnd",this,_3f);var _41=this.options.revert;if(_41&&typeof _41=="function"){_41=_41(this.element);}var d=this.currentDelta();if(_41&&this.options.reverteffect){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(_43){if(_43.keyCode!=Event.KEY_ESC){return;}this.finishDrag(_43,false);Event.stop(_43);},endDrag:function(_44){if(!this.dragging){return;}this.stopScrolling();this.finishDrag(_44,true);Event.stop(_44);},draw:function(_45){var pos=Position.cumulativeOffset(this.element);if(this.options.ghosting){var r=Position.realOffset(this.element);window.status=r.inspect();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 (_45[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 _4e=this.element.style;if((!this.options.constraint)||(this.options.constraint=="horizontal")){_4e.left=p[0]+"px";}if((!this.options.constraint)||(this.options.constraint=="vertical")){_4e.top=p[1]+"px";}if(_4e.visibility=="hidden"){_4e.visibility="";}},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null;}},startScrolling:function(_4f){if(!(_4f[0]||_4f[1])){return;}this.scrollSpeed=[_4f[0]*this.options.scrollSpeed,_4f[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10);},scroll:function(){var _50=new Date();var _51=_50-this.lastScrolled;this.lastScrolled=_50;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){var d=_51/1000;this.options.scroll.scrollTo(left+d*this.scrollSpeed[0],top+d*this.scrollSpeed[1]);}}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*_51/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*_51/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]*_51/1000;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*_51/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(_55,_56){this.element=$(_55);this.observer=_56;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);}}};var Sortable={SERIALIZE_RULE:/^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,sortables:{},_findRootElement:function(_57){while(_57.tagName!="BODY"){if(_57.id&&Sortable.sortables[_57.id]){return _57;}_57=_57.parentNode;}},options:function(_58){_58=Sortable._findRootElement($(_58));if(!_58){return;}return Sortable.sortables[_58.id];},destroy:function(_59){var s=Sortable.options(_59);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(_5c){_5c=$(_5c);var _5d=Object.extend({element:_5c,tag:"li",dropOnEmpty:false,tree:false,treeTag:"ul",overlap:"vertical",constraint:"vertical",containment:_5c,handle:false,only:false,delay:0,hoverclass:null,ghosting:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(_5c);var _5e={revert:true,scroll:_5d.scroll,scrollSpeed:_5d.scrollSpeed,scrollSensitivity:_5d.scrollSensitivity,delay:_5d.delay,ghosting:_5d.ghosting,constraint:_5d.constraint,handle:_5d.handle};if(_5d.starteffect){_5e.starteffect=_5d.starteffect;}if(_5d.reverteffect){_5e.reverteffect=_5d.reverteffect;}else{if(_5d.ghosting){_5e.reverteffect=function(_5f){_5f.style.top=0;_5f.style.left=0;};}}if(_5d.endeffect){_5e.endeffect=_5d.endeffect;}if(_5d.zindex){_5e.zindex=_5d.zindex;}var _60={overlap:_5d.overlap,containment:_5d.containment,tree:_5d.tree,hoverclass:_5d.hoverclass,onHover:Sortable.onHover};var _61={onHover:Sortable.onEmptyHover,overlap:_5d.overlap,containment:_5d.containment,hoverclass:_5d.hoverclass};Element.cleanWhitespace(_5c);_5d.draggables=[];_5d.droppables=[];if(_5d.dropOnEmpty||_5d.tree){Droppables.add(_5c,_61);_5d.droppables.push(_5c);}(this.findElements(_5c,_5d)||[]).each(function(e){var _63=_5d.handle?Element.childrenWithClassName(e,_5d.handle)[0]:e;_5d.draggables.push(new Draggable(e,Object.extend(_5e,{handle:_63})));Droppables.add(e,_60);if(_5d.tree){e.treeNode=_5c;}_5d.droppables.push(e);});if(_5d.tree){(Sortable.findTreeElements(_5c,_5d)||[]).each(function(e){Droppables.add(e,_61);e.treeNode=_5c;_5d.droppables.push(e);});}this.sortables[_5c.id]=_5d;Draggables.addObserver(new SortableObserver(_5c,_5d.onUpdate));},findElements:function(_65,_66){return Element.findChildren(_65,_66.only,_66.tree?true:false,_66.tag);},findTreeElements:function(_67,_68){return Element.findChildren(_67,_68.only,_68.tree?true:false,_68.treeTag);},onHover:function(_69,_6a,_6b){if(Element.isParent(_6a,_69)){return;}if(_6b>0.33&&_6b<0.66&&Sortable.options(_6a).tree){return;}else{if(_6b>0.5){Sortable.mark(_6a,"before");if(_6a.previousSibling!=_69){var _6c=_69.parentNode;_69.style.visibility="hidden";_6a.parentNode.insertBefore(_69,_6a);if(_6a.parentNode!=_6c){Sortable.options(_6c).onChange(_69);}Sortable.options(_6a.parentNode).onChange(_69);}}else{Sortable.mark(_6a,"after");var _6d=_6a.nextSibling||null;if(_6d!=_69){var _6c=_69.parentNode;_69.style.visibility="hidden";_6a.parentNode.insertBefore(_69,_6d);if(_6a.parentNode!=_6c){Sortable.options(_6c).onChange(_69);}Sortable.options(_6a.parentNode).onChange(_69);}}}},onEmptyHover:function(_6e,_6f,_70){var _71=_6e.parentNode;var _72=Sortable.options(_6f);if(!Element.isParent(_6f,_6e)){var _73;var _74=Sortable.findElements(_6f,{tag:_72.tag,only:_72.only});var _75=null;if(_74){var _76=Element.offsetSize(_6f,_72.overlap)*(1-_70);for(_73=0;_73<_74.length;_73+=1){if(_76-Element.offsetSize(_74[_73],_72.overlap)>=0){_76-=Element.offsetSize(_74[_73],_72.overlap);}else{if(_76-(Element.offsetSize(_74[_73],_72.overlap)/2)>=0){_75=_73+1<_74.length?_74[_73+1]:null;break;}else{_75=_74[_73];break;}}}}_6f.insertBefore(_6e,_75);Sortable.options(_71).onChange(_6e);_72.onChange(_6e);}},unmark:function(){if(Sortable._marker){Element.hide(Sortable._marker);}},mark:function(_77,_78){var _79=Sortable.options(_77.parentNode);if(_79&&!_79.ghosting){return;}if(!Sortable._marker){Sortable._marker=$("dropmarker")||document.createElement("DIV");Element.hide(Sortable._marker);Element.addClassName(Sortable._marker,"dropmarker");Sortable._marker.style.position="absolute";document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);}var _7a=Position.cumulativeOffset(_77);Sortable._marker.style.left=_7a[0]+"px";Sortable._marker.style.top=_7a[1]+"px";if(_78=="after"){if(_79.overlap=="horizontal"){Sortable._marker.style.left=(_7a[0]+_77.clientWidth)+"px";}else{Sortable._marker.style.top=(_7a[1]+_77.clientHeight)+"px";}}Element.show(Sortable._marker);},_tree:function(_7b,_7c,_7d){var _7e=Sortable.findElements(_7b,_7c)||[];for(var i=0;i<_7e.length;++i){var _80=_7e[i].id.match(_7c.format);if(!_80){continue;}var _81={id:encodeURIComponent(_80?_80[1]:null),element:_7b,parent:_7d,children:new Array,position:_7d.children.length,container:Sortable._findChildrenElement(_7e[i],_7c.treeTag.toUpperCase())};if(_81.container){this._tree(_81.container,_7c,_81);}_7d.children.push(_81);}return _7d;},_findChildrenElement:function(_82,_83){if(_82&&_82.hasChildNodes){for(var i=0;i<_82.childNodes.length;++i){if(_82.childNodes[i].tagName==_83){return _82.childNodes[i];}}}return null;},tree:function(_85){_85=$(_85);var _86=this.options(_85);var _87=Object.extend({tag:_86.tag,treeTag:_86.treeTag,only:_86.only,name:_85.id,format:_86.format},arguments[1]||{});var _88={id:null,parent:null,children:new Array,container:_85,position:0};return Sortable._tree(_85,_87,_88);},_constructIndex:function(_89){var _8a="";do{if(_89.id){_8a="["+_89.position+"]"+_8a;}}while((_89=_89.parent)!=null);return _8a;},sequence:function(_8b){_8b=$(_8b);var _8c=Object.extend(this.options(_8b),arguments[1]||{});return $(this.findElements(_8b,_8c)||[]).map(function(_8d){return _8d.id.match(_8c.format)?_8d.id.match(_8c.format)[1]:"";});},setSequence:function(_8e,_8f){_8e=$(_8e);var _90=Object.extend(this.options(_8e),arguments[2]||{});var _91={};this.findElements(_8e,_90).each(function(n){if(n.id.match(_90.format)){_91[n.id.match(_90.format)[1]]=[n,n.parentNode];}n.parentNode.removeChild(n);});_8f.each(function(_93){var n=_91[_93];if(n){n[1].appendChild(n[0]);delete _91[_93];}});},serialize:function(_95){_95=$(_95);var _96=Object.extend(Sortable.options(_95),arguments[1]||{});var _97=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:_95.id);if(_96.tree){return Sortable.tree(_95,arguments[1]).children.map(function(_98){return [_97+Sortable._constructIndex(_98)+"[id]="+encodeURIComponent(_98.id)].concat(_98.children.map(arguments.callee));}).flatten().join("&");}else{return Sortable.sequence(_95,arguments[1]).map(function(_99){return _97+"[]="+encodeURIComponent(_99);}).join("&");}}};Element.isParent=function(_9a,_9b){if(!_9a.parentNode||_9a==_9b){return false;}if(_9a.parentNode==_9b){return true;}return Element.isParent(_9a.parentNode,_9b);};Element.findChildren=function(_9c,_9d,_9e,_9f){if(!_9c.hasChildNodes()){return null;}_9f=_9f.toUpperCase();if(_9d){_9d=[_9d].flatten();}var _a0=[];$A(_9c.childNodes).each(function(e){if(e.tagName&&e.tagName.toUpperCase()==_9f&&(!_9d||(Element.classNames(e).detect(function(v){return _9d.include(v);})))){_a0.push(e);}if(_9e){var _a3=Element.findChildren(e,_9d,_9e,_9f);if(_a3){_a0.push(_a3);}}});return (_a0.length>0?_a0.flatten():[]);};Element.offsetSize=function(_a4,_a5){if(_a5=="vertical"||_a5=="height"){return _a4.offsetHeight;}else{return _a4.offsetWidth;}};