var ternDrag=function(D){var E=this,B=_terndrag.instances,A=B.length,C;if(window==E){if(D){D=_ternStyle.getNode(D);C=_ternStyle.inArray(B,D,"node");if(C!==false){return B[C]["object"]}B[A]=new Array();B[A]["node"]=D;B[A]["object"]=new ternDrag(D);return B[A]["object"]}return new ternDrag()}_ternStyle.getBrowserType.apply(this);E.tern=_ternStyle.getNode(D);E.area=[,,,];E.amuf=E.ammf=[]};ternDrag.prototype=_terndrag={instances:[],dragee:null,mp:false,init:function(A){for(k in A){this[k]=A[k]}},ff:function(){return false},makeDraggable:function(a){var th=this;th.init(a);var l=th.type=="list"?th.tern.childNodes:th.tern;var l=_ternStyle.isArray(l)?l:[l];for(var i=0;i<l.length;i++){var h=ternStyle(l[i]).getElementsByClass(th.handle,false,1);h[0].onmousedown=th.ff;eval("ternEvents.addEvent(h,function (e) { th.item = l["+i+"];th.drag(e); },'mousedown',false);")}return th},drag:function(D){var B=this,A=ternEvents.eventSource(D),C=A;while(C.parentNode!=B.item){C=C.parentNode}B.dragee=B.type=="item"?C.parentNode:C;B.data=ternStyle(B.dragee).getData();if(B.clone){B.dragee=B.dragee.cloneNode(true);document.body.appendChild(B.dragee);ternStyle(B.dragee).setStyle({top:B.data[3],left:B.data[2]}).setOpacity(50)}ternStyle(B.dragee).setStyle({position:"absolute"});B.mp=ternEvents.mousePosition(D);B.initEvents();B.setClear();B.dragit=function(E){B.trackDrag(E)};ternEvents.addEvent(document,B.dragit,"mousemove",false)},initEvents:function(){var th=this;if(th.mdfunc){for(var b=0;b<th.mdfunc.length;b++){eval("var amdf = function (e) { th.mdfunc["+b+"](e,th.mp); }");amdf()}}if(th.mufunc){th.amuf=[];for(var b=0;b<th.mufunc.length;b++){if(th.mufunc[b]){eval("th.amuf[b] = function (e) { th.mufunc["+b+"](e,th.dragee); }");ternEvents.addEvent(document,th.amuf[b],"mouseup",false)}}}if(th.mmfunc){for(var b=0;b<th.mmfunc.length;b++){eval("th.ammf[b] = th.pass ? function (e) { th.mmfunc["+b+"](e,th.mp); } : th.mmfunc["+b+"];");ternEvents.addEvent(document,th.ammf[b],"mousemove",false)}}},closeEvents:function(){var B=this;if(B.mufunc){for(var A=0;A<B.amuf.length;A++){ternEvents.removeEvent(document,B.amuf[A],"mouseup",false)}}if(B.mmfunc){for(var A=0;A<B.ammf.length;A++){ternEvents.removeEvent(document,B.ammf[A],"mousemove",false)}}},trackDrag:function(D){var A=this,F=_ternStyle.getWindowSize(),J=_ternStyle.getScroll()[1],G=parseInt(_ternStyle.getScroll()[1]+F[1]);var B=ternEvents.mousePosition(D),I=B[0]-A.mp[0],E=A.data[2]+I,C=B[1]-A.mp[1],H=A.data[3]+C;if(((A.area[3]&&E>A.area[3])||!A.area[3]&&E>0)&&((A.area[1]&&parseInt(E+A.data[0])<A.area[1])||!A.area[1]&&parseInt(E+A.data[0])<F[0])&&A.axis.indexOf("x")!=-1){ternStyle(A.dragee).setStyle({left:E})}if(((A.area[0]&&H>parseInt(J+A.area[0]))||!A.area[0]&&H>J)&&((A.area[2]&&parseInt(H+A.data[1])<parseInt(J+A.area[2]))||!A.area[2]&&parseInt(H+A.data[1])<parseInt(J+F[1]))&&A.axis.indexOf("y")!=-1){ternStyle(A.dragee).setStyle({top:H})}},setClear:function(){var A=this;A.clear=function(){A.clearDragCommand()};ternEvents.addEvent(document,A.clear,"mouseup",false);if(this.msie){ternEvents.addEvent(document,A.ff,"selectstart",false);ternEvents.addEvent(document,A.ff,"startdrag",false)}},clearDragCommand:function(){var A=this;A.closeEvents();if(A.remove){A.dragee.parentNode.removeChild(A.dragee)}ternEvents.removeEvent(document,A.clear,"mouseup",false);ternEvents.removeEvent(document,A.dragit,"mousemove",false);ternEvents.removeEvent(document,A.sizeit,"mousemove",false);if(A.msie){ternEvents.removeEvent(document,A.ff,"selectstart",false);ternEvents.removeEvent(document,A.ff,"startdrag",false)}},killDrag:function(){var A=this.type=="list"?this.tern.childNodes:[this.tern],C;for(var B=0;B<A.length;B++){var C=ternStyle(A[B]).getElementsByClass(this.handle,false,1);C.onmousedown=null;ternEvents.removeAllItemEvents(C)}}};ternDrag.prototype.extend=function(A){for(k in A){this[k]=_terndrag[k]=A[k]}};ternDrag.prototype.extend({makeResizable:function(A){var B=this;B.init(A);B.tern.onmousedown=B.ff;ternEvents.addEvent(B.tern,function(C){B.setResize(C)},"mousedown",false)},setResize:function(C){var B=this;B.mp=ternEvents.mousePosition(C);B.d=[];for(var A=0;A<B.nodes.length;A++){B.d[A]=ternStyle(B.nodes[A]).getData()}B.initEvents();B.setClear();B.sizeit=function(D){B.resize(D)};ternEvents.addEvent(document,B.sizeit,"mousemove",false)},resize:function(E){var C=this,B=ternEvents.mousePosition(E),F=B[1]-C.mp[1],D=B[0]-C.mp[0];for(var A=0;A<C.nodes.length;A++){if(parseInt(C.d[A][2]+D)>0&&B[0]<parseInt(C.d[A][2]+C.d[A][0])&&C.axis.indexOf("xsize")!=-1){ternStyle(C.nodes[A]).setStyle({left:parseInt(C.d[A][0]+D)});ternStyle(C.nodes[A]).setStyle({width:parseInt(C.d[A][0]-D)})}else{if(parseInt(C.d[A][3]-F)>0&&B[1]<parseInt(C.d[A][3]+C.d[A][1])&&parseInt(ternStyle(C.nodes[A]).getCoords()[1]+(C.d[A][1]-F))<=parseInt(C.d[A][3]+C.d[A][1])&&C.axis.indexOf("ysize")!=-1){ternStyle(C.nodes[A]).setStyle({height:parseInt(C.d[A][1]-F)})}else{if(B[1]>C.d[A][3]&&B[1]>0&&parseInt(C.d[A][1]+F)>=0&&C.axis.indexOf("y")!=-1&&(!C.area||(C.area[1]&&parseInt(C.d[A][1]+F)>=C.area[1]))){ternStyle(C.nodes[A]).setStyle({height:parseInt(C.d[A][1]+F)})}else{if((C.area&&C.area[1]&&parseInt(C.d[A][1]+F)<=C.area[1])&&C.axis.indexOf("y")!=-1){ternStyle(C.nodes[A]).setStyle({height:C.area[1]})}}if(B[0]>C.d[A][2]&&B[0]>0&&parseInt(C.d[A][0]+D)>=0&&C.axis.indexOf("x")!=-1&&(!C.area||(C.area[0]&&parseInt(C.d[A][0]+D)>=C.area[0]))){ternStyle(C.nodes[A]).setStyle({width:parseInt(C.d[A][0]+D)})}else{if((C.area&&C.area[0]&&parseInt(C.d[A][0]+D)<=C.area[0])&&C.axis.indexOf("x")!=-1){ternStyle(C.nodes[A]).setStyle({width:C.area[0]})}}}}}},killSize:function(){ternEvents.removeAllItemEvents(this.tern)}});ternDrag.prototype.extend({makeTrackable:function(A){var B=this;B.init(A);B.dm=ternStyle(B.tern).getData();B.tern.onmousedown=B.ff;ternEvents.addEvent(B.tern,function(C){B.setTrack(C)},"mousedown",false);return B},setTrack:function(C){var B=this,A=ternEvents.eventSource(C);B.mp=ternEvents.mousePosition(C);B.dm=ternStyle(A).getData();B.mp=B.mp.concat([B.mp[0]-B.dm[2],B.mp[1]-B.dm[3]]);B.initEvents();B.setClear();B.dragit=function(D){B.trackMouse(D,A)};ternEvents.addEvent(document,B.dragit,"mousemove",false)},trackMouse:function(C,A){var B=this;B.mp=ternEvents.mousePosition(C);B.dm=ternStyle(A).getData();B.mp=B.mp.concat([B.mp[0]-B.dm[2],B.mp[1]-B.dm[3]])}});