Version 3.2.3

This commit is contained in:
Neo committed 2025-12-19 00:34:03 -08:00
1 parent ae5c01cc78
commit 78706903a2
2641 files changed
+228363 -201264

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
<html>
<head><title>IP.Board - Bulletin Board System</title></head>
<body>
<h1>403: IP.Board -&gt; Forbidden</h1>
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
+271
View File
@@ -0,0 +1,271 @@
/*!
* jQuery UI 1.8.7
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI
*/
(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.7",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,
d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});
c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&
b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
;/*!
* jQuery UI Widget 1.8.7
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Widget
*/
(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
;/*!
* jQuery UI Mouse 1.8.7
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Mouse
*
* Depends:
* jquery.ui.widget.js
*/
(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(true===c.data(b.target,a.widgetName+".preventClickEvent")){c.removeData(b.target,a.widgetName+".preventClickEvent");b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=
a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);
return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&c.data(a.target,this.widgetName+".preventClickEvent",
true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
;/*
* jQuery UI Position 1.8.7
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Position
*/
(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+parseInt(c.curCSS(this,"marginRight",true))||0,w=m+q+parseInt(c.curCSS(this,"marginBottom",true))||0,i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=m/2;
i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
;/*
* jQuery UI Draggable 1.8.7
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Draggables
*
* Depends:
* jquery.ui.core.js
* jquery.ui.mouse.js
* jquery.ui.widget.js
*/
(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();
d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,
b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment==
"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?
0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),
10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==
Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;
if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/
b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-
this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=
this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.7"});
d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=
0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=
c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,
true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=
0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=
a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},
stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=
document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-
c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-
(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable",
"snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=
c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",
{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,
left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,
a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,
b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
;/*
* jQuery UI Droppable 1.8.7
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Droppables
*
* Depends:
* jquery.ui.core.js
* jquery.ui.widget.js
* jquery.ui.mouse.js
* jquery.ui.draggable.js
*/
(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.7"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
"none";if(c[f].visible){c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight};e=="mousedown"&&c[f]._activate.call(c[f],b)}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=
d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);
;/*
* jQuery UI Resizable 1.8.7
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Resizables
*
* Depends:
* jquery.ui.core.js
* jquery.ui.mouse.js
* jquery.ui.widget.js
*/
(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=
this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;
f={width:c.size.width-(f?0:c.sizeDiff.width),height:c.size.height-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",
b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=
a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,
k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),
c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=
this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+
a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,
arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,
{version:"1.8.7"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,
function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=
(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=
false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-
a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",
b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top",
"Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,
f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=
a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+
a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&
e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",
height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=
d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
;/*
* jQuery UI Selectable 1.8.7
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Selectables
*
* Depends:
* jquery.ui.core.js
* jquery.ui.mouse.js
* jquery.ui.widget.js
*/
(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.7"})})(jQuery);
;/*
* jQuery UI Sortable 1.8.7
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Sortables
*
* Depends:
* jquery.ui.core.js
* jquery.ui.mouse.js
* jquery.ui.widget.js
*/
(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,
arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=
c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,
{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();
if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",
a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");
if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+
this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+
b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+
"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,
c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==
document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",
null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):
d(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||
"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+
this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?
2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},
_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=
this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=
this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");
if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=
0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=
this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},
update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=
null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));
this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,
null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||
d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a==
"string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition==
"absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition==
"relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},
_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-
this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),
10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?
this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=
this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+
this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?
g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==
f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",
f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",
g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=
0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});
d.extend(d.ui.sortable,{version:"1.8.7"})})(jQuery);
;
+16
View File
@@ -0,0 +1,16 @@
/*!
* jQuery JavaScript Library v1.5.2
* http://jquery.com/
*
* Copyright 2011, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date: Thu Mar 31 15:28:23 2011 -0400
*/
(function(a,b){function ci(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cf(a){if(!b_[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";b_[a]=c}return b_[a]}function ce(a,b){var c={};d.each(cd.concat.apply([],cd.slice(0,b)),function(){c[this]=a});return c}function b$(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bZ(){try{return new a.XMLHttpRequest}catch(b){}}function bY(){d(a).unload(function(){for(var a in bW)bW[a](0,1)})}function bS(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bR(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bQ(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bs.test(a)?e(a,f):bQ(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bQ(a+"["+f+"]",b[f],c,e)}function bP(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bJ,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bP(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bP(a,c,d,e,"*",g));return l}function bO(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bD),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bq(a,b,c){var e=b==="width"?bk:bl,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function bc(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function bb(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function ba(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function _(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function $(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Q(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(L.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function P(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function H(a,b){return(a&&a!=="*"?a+".":"")+b.replace(t,"`").replace(u,"&")}function G(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,p=[],q=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(r,"")===a.type?q.push(g.selector):t.splice(i--,1);f=d(a.target).closest(q,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&p.push({elem:h,handleObj:g,level:m.leveLine truncated
+705
View File
@@ -0,0 +1,705 @@
var ips = (function($){
function init(){
// Hide menus
$(".acp-menu").hide();
// Set up modal
$("#modal").css( { height: ( $(window).height() - parseInt( $("#header").height() ) ) } );
$(window).resize( function(e){
$("#modal").css( { height: ( $(window).height() - parseInt( $("#header").height() ) ) } );
});
}
return {
init: init
};
})(jQuery);
jQ(document).ready(function() {
ips.init();
jQ("#app_menu").ipsMultiMenu();
sidebar.init();
livesearch.init();
});
// ************************************ //
// Extend jQuery with custom methods //
// ************************************ //
jQ.undefined = function( obj ){
return typeof obj === "undefined";
};
// ************************************ //
// Basic IPS plugins //
// ************************************ //
var livesearch = {}, sidebar = {};
(function($){
sidebar = function($){
// Properties
// Private Methods
var init = function(){
$("#toggle_sidebar").click( function(e){
e.preventDefault();
if( $("#page_body").hasClass("open_menu") )
{
$("#toggle_sidebar").fadeOut();
$("#section_navigation").fadeOut('slow', function(){
$("#main_content").animate( { marginLeft: 0 }, function(){
$("#page_body").removeClass("open_menu").addClass("close_menu");
$("#toggle_sidebar").fadeIn();
$( window ).trigger('resize'); // Some of our components use window size, so fire this now
ipb.Cookie.set("acp_sidebar", "closed", 1);
});
});
}
else
{
$("#toggle_sidebar").fadeOut();
$("#main_content").animate( { marginLeft: 195 }, function(){
$("#section_navigation").hide().fadeIn( 'slow', function(){
$("#page_body").removeClass("close_menu").addClass("open_menu");
$("#toggle_sidebar").slideDown();
$( window ).trigger('resize'); // Some of our components use window size, so fire this now
ipb.Cookie.set("acp_sidebar", "open", 1);
} );
} );
}
return false;
} );
};
// Public methods
return {
init: init
}
}($);
livesearch = function($){
// Options object
var options = {
showDelay: 400,
hideDelay: 800,
minChars: 3,
lastPress: 0
};
// Properties
var $elem = {}, $results = {}, $modal = {},
defaultText = '',
lastValue = '',
timeouts = {},
documentClickHandler = false,
cache = {},
self = this;
// Templates
var templates = {
wrap: "<ul>[items]</ul>",
item: "<li><a href='[url]'><strong>[name]</strong></a></li>",
none: "<p class='ls_none'>" + ipb.lang['livesearchnoresults'] + "</p>",
locations: {
members: "<li><a href='[url]'><img src='[img]' class='photo left' /> <strong>[name]</strong></a><br /><span class='desctext'>[extra]</span></li>",
forums: "<li><a href='[url]'><strong>[name]</strong></a><br /><span class='desctext'>[extra]</span></li>",
nexus: "<li><img src='[img]' style='height: 16px; width: 16px; border: 0px' /> <a href='[url]'><strong>[name]</strong></a></li>"
}
};
// Private methods
var init = function(){
$elem = $("#acpSearchKeyword");
$results = $("#live_search_results");
$modal = $("#modal");
defaultText = $elem.val();
$elem.focus( handleFocus ).blur( handleBlur ).attr("autocomplete", "off");
$elem.bind( 'keydown', function() { options.lastPress = new Date().getTime(); } );
// Attach live event to sections that are NOT disabled and NOT active; make Overview active
if ( ipb.vars['app_url'].substring( ipb.vars['app_url'].length - 10, ipb.vars['app_url'].length - 5 ) == 'nexus' )
{
$("#ls_sections li:not(.disabled):not(.active)", $results).live('click', switchResultsTab).siblings("#ls_nexus").addClass('active');
$("#ls_results > div", $results).hide().siblings("#ls_nexus_panel").show();
$(".count", $results).hide();
}
else
{
$("#ls_sections li:not(.disabled):not(.active)", $results).live('click', switchResultsTab).siblings("#ls_overview").addClass('active');
$("#ls_results > div", $results).hide().siblings("#ls_overview_panel").show();
$(".count", $results).hide();
}
},
runSearch = function(){
// Keep it going
timeouts['show'] = setTimeout( runSearch, options.showDelay );
var curVal = $elem.val();
var timeNow = new Date().getTime();
if ( options.lastPress && timeNow && ( ( timeNow - options.lastPress ) < 800 ) )
{
return;
}
if( curVal.length < options.minChars ){
hideResultsPanel();
documentClick(false);
return;
}
showResultsPanel(); // Display the modal and results panel
documentClick(true); // Set the document click event
if( curVal == lastValue ){ return; } // If it's the same as last time, skip
fetchResults( curVal ); // Grab the results and process
lastValue = curVal; // Update last value to be current value
},
fetchResults = function( curVal ){
Debug.write( '--' + curVal );
if( cache[ curVal ] ){
Debug.write("Loading from cache");
parseResults( cache[ curVal ] );
}
else
{
$('#acp_loading').show();
$.ajax( {
url: ipb.vars['app_url'].replace( /&amp;/g, '&' ) + "app=core&module=ajax&section=livesearch&do=search&secure_key=" + ipb.vars['md5_hash'],
type: 'POST',
data: {
'search_term': curVal
},
success: function(data){
if( data['error'] )
{
alert( data['error'] );
if( data["__session__expired__log__out__"] ){
window.location.reload();
}
}
else
{
cache[ curVal ] = data;
parseResults( data );
}
$('#acp_loading').hide();
},
error: function(){
alert( ipb.lang['session_timed_out'] );
window.location.reload();
}
});
}
},
parseResults = function( data ){
if( $.undefined( data ) ){
//Debug.error( "Invalid JSON" );
return;
}
// Disable all sections to start with
$("#ls_sections li").not("#ls_marketplace").addClass("disabled").find(".count").hide();
// If there are per-group settings, add to settings tab
if( !$.undefined( data['groupLangs'] ) && data['groupLangs'] )
{
var _langs = new Array();
_langs['name'] = ipb.lang['group_settings_match'];
_langs['url'] = ipb.vars['base_url'] + 'app=members&module=groups';
data['settings'].unshift( _langs );
}
var total = 0;
$.each( data, function( location, results ){
if( $.isArray( results ) && results.size() )
{
var size = results.size();
var html = '';
// Any special template to use?
_template = ( !$.undefined( templates.locations[ location ] ) ) ? templates.locations[ location ] : templates.item;
// Update results panel
$.each( results, function( k, v ){
html += _template.replace("[name]", v['name']).replace("[url]", v['url']).replace("[img]", v['img']).replace("[extra]", v['extra']);
total++;
});
// Build wrapper
html = templates.wrap.replace("[items]", html);
$("#ls_" + location + "_panel").html( html );
// Make members a double-column
if( location == 'members' ){
$("#ls_" + location + "_panel").find("li:even").addClass("even").end().find("li:odd").addClass("odd");
}
// Update section list count
$("#ls_" + location ).removeClass("disabled").find(".count").html( size ).fadeIn('fast');
}
else {
$("#ls_" + location + "_panel").html(''); //templates.none
}
});
if( total ){
$("#ls_no_results").hide();
} else {
$("#ls_no_results").show();
}
},
switchResultsTab = function( e ){
// Switch highlighted tab
$(e.target).addClass("active").siblings("li").not(e.target).removeClass("active");
$("#ls_results > div", $results)
.not( "#" + e.target.id + "_panel" ).fadeOut()
.siblings( "#" + e.target.id + "_panel" ).fadeIn();
},
handleDocumentClick = function(e){
if( $(e.target).closest("#live_search_results, #header").size() == 0 )
{
clearTimeout( timeouts['show'] );
documentClick( false );
hideResultsPanel();
}
},
documentClick = function( type ){
if( type == true ){
// If the user clicks elsewhere in the document, cancel search
if( !documentClickHandler ){
$("body").bind( "click.livesearch", handleDocumentClick );
documentClickHandler = true;
}
} else {
if( documentClickHandler ){
$("body").unbind( "click.livesearch" );
documentClickHandler = false;
}
}
},
showResultsPanel = function(){
$modal.not(":visible").fadeIn('fast');
$results.not(":visible").fadeIn('slow');
},
hideResultsPanel = function(){
$modal.fadeOut('slow');
$results.fadeOut('fast');
},
handleFocus = function(e){
Debug.write("focus!");
if( $elem.hasClass("inactive") ){
$elem.val('').removeClass('inactive');
}
clearTimeout( timeouts['show'] );
timeouts['show'] = setTimeout( runSearch, options.showDelay );
},
handleBlur = function(e){
if( $elem.val() == '' ){
clearTimeout( timeouts['show'] );
$elem.val( defaultText ).addClass('inactive');
}
};
// Public methods
return {
init: init
}
}(jQuery);
/****************************************/
/* Wizard bar (step by step) */
/****************************************/
$.fn.ipsWizard = function(options) {
var $$ = $(this);
var defaults = {
nextSelector: "#next",
prevSelector: "#prev",
wrapSelector: "#ipsSteps_wrapper",
finishSelector: "#finish",
allowJumping: false,
allowGoBack: false
},
options = $.extend( defaults, options );
var setJumps = function( elem ){
$$.find("li").removeClass("clickable");
if( options['allowJumping'] ){
$$.find("li").not(".steps_disabled, .steps_active").addClass("clickable");
}
if( options['allowGoBack'] ){
$$.find("li.steps_active").prevAll().not(".steps_disabled").addClass("clickable");
}
// Show/hide Next/Prev/Finish
if( $$.find("li:last").hasClass("steps_active") ){
$( options['nextSelector'] ).hide();
$( options['prevSelector'] + "," + options['finishSelector'] ).show();
} else if( $$.find("li:first").hasClass("steps_active") ) {
$( options['nextSelector'] ).show();
$( options['finishSelector'] + "," + options['prevSelector'] ).hide();
} else {
$( options['nextSelector'] + "," + options['prevSelector'] ).show()
$( options['finishSelector'] ).hide();
}
},
nextItem = function(e){
// Find active item and get next item
var next = $$.find("li.steps_active").nextAll(":not(.steps_disabled)")[0];
if( $.undefined( next ) ){ return; }
showItem( next.id );
},
prevItem = function(e){
var prev = $$.find("li.steps_active").prevAll(":not(.steps_disabled)")[0];
if( $.undefined( prev ) ){ return; }
showItem( prev.id );
},
clickStep = function(e){
showItem( $(e.target).closest('li')[0].id );
},
backToTop = function(e){
$('html,body').animate( {'scrollTop': ( $(options['wrapSelector']).offset().top - 80 ) } );
},
focusFirst = function(activeID){
try {
$('#'+activeID+'_content :input:first').focus();
} catch(err){ Debug.write( err ); }
},
showItem = function( id ){
if( id === false ){ return false; }
// Find active
var activeID = $$.find("li.steps_active:first")[0].id;
if( activeID == id ){ return; }
var oldH = $('#'+activeID+'_content').height();
var newH = $('#'+id+'_content').height();
// Set up some CSS
$( options['wrapSelector'] ).height( oldH );
$('#'+activeID+'_content').addClass("step_content_animating");
$('#'+id+'_content').addClass("step_content_animating");
// Switch item
$( "#" + activeID + '_content' ).fadeOut('slow', function(){
$( options['wrapSelector'] ).animate( { height: newH }, 'fast', function(){
$( "#" + id + '_content' ).fadeIn('slow', function(){
$( options['wrapSelector'] ).css("height", "auto");
$('#'+activeID+'_content').removeClass("step_content_animating");
$('#'+id+'_content').removeClass("step_content_animating");
});
});
});
// Update step bar
$("#"+id).siblings()
.removeClass("steps_active")
.removeClass("steps_done")
.end()
.addClass("steps_active")
.prevAll(":not(.steps_active")
.addClass("steps_done");
backToTop();
focusFirst( activeID );
setJumps();
};
return this.each(function(){
if( $.undefined( options['currentStep'] ) ){ }
if( !options['allowJumping'] && !options['allowGoBack'] ){
$( options['prevSelector'] ).remove();
}
// Set initial clickable status
setJumps();
// Set event handler
$(".clickable", this).live('click', clickStep);
$( options['nextSelector'] ).click( nextItem );
$( options['prevSelector'] ).click( prevItem );
});
};
/****************************************/
/* Multi-level drop down menu */
/****************************************/
$.fn.ipsMultiMenu = function(options) {
var defaults = {
speed: 'fast'
},
options = $.extend( defaults, options),
arrow = $("<span class='menu_arrow'>&raquo;</span>"),
timeouts = {};
var mOver = function(e){
if( $(this).data('timeout') ){
clearTimeout( this.data('timeout') );
$(this).data('timeout', false);
}
var w = ($(this).outerWidth() - 5),
children = $(this).children('ul:first'),
docSize = $(window).width();
if( !$(this).parent("ul").hasClass('root') ){
children.css('left', w).css('top', -20);
// jQuery can't get offset from hidden elements, so show, measure, then hide.
children.show();
var childW = children.outerWidth();
var realLeft = children.offset().left + childW + 5;
children.hide();
if( realLeft >= docSize ){
children.css('left', 5 - childW );
}
}
// Check if it's too far off the screen
//children.fadeIn( options.speed );
$(this).children('ul:first').show();
//var _this = this;
//setTimeout( function(){ $(_this).children('ul:first').show() }, 150 );
},
mOut = function(e){
//$(this).children('ul:first').fadeOut( options.speed );
var _this = this;
var timeout = setTimeout( function(){ $(_this).children('ul:first').hide() }, 250 );
this.data('timeout', timeout);
};
return this.each(function(){
// Hide all UL
$(this).addClass('root');
$("ul", this).hide();
$("li:has(ul)", this).hover(mOver, mOut).not('.root > li').addClass('has_sub').children("a,span").append(arrow.clone());
});
};
/****************************************/
/* Sortable */
/* Piggybacks on jQuery ui sortable, */
/* but sets up some IPS defaults for it */
/****************************************/
$.fn.ipsSortable = function(type, options) {
var defaults = {
'table': {
handle: 'td .draghandle',
items: 'tr.isDraggable',
opacity: 0.6,
axis: 'y',
revert: true,
forceHelperSize: true,
helper: 'clone',
sendType: 'get',
pluralize: true
},
'multidimensional': {
handle: '.draghandle',
items: 'div.isDraggable',
opacity: 0.6,
axis: 'y',
revert: true,
forceHelperSize: true,
helper: 'clone',
sendType: 'get',
pluralize: true
},
'list': {
// todo
},
'custom': { } //todo
};
return this.each(function(){
var x = ( $.undefined( defaults[type] ) ) ? defaults['custom'] : defaults[type];
var o = $.extend( x, options );
// If there's no function defined already, and a URL is specified, set up
// an ajax call
if( $.undefined( o['update'] ) && !$.undefined( o['url'] ) )
{
o['update'] = function( e, ui )
{
if ( ! Object.isUndefined( o['callBackUrlProcess'] ) )
{
o['url'] = o['callBackUrlProcess']( o['url'] );
}
var serial = $(this).sortable("serialize", ( o['serializeOptions'] || {} ) );
$.ajax( {
url: o['url'].replace( /&amp;/g, '&' ),
type: o['sendType'],
data: serial,
processData: false,
success: function(data){
if( data['error'] )
{
alert( data['error'] );
if( data["__session__expired__log__out__"] ){
window.location.reload();
}
}
else
{
Debug.write("Sortable update successfully posted");
}
},
error: function(){
alert( ipb.lang['session_timed_out'] );
window.location.reload();
}
});
}
}
$( this ).sortable( o );
});
};
/****************************************/
/* Tab bar */
/****************************************/
$.fn.ipsTabBar = function(options) {
var defaults = {
tabWrap: "#tabContent",
scrollStep: 130
},
options = $.extend( defaults, options ),
getTabID = function(tab){
return tab.replace("tab_", "");
},
switchTab = function(e){
var $container = $(this).parent("ul");
var curID = getTabID( $container.find("li.active")[0].id );
var newID = getTabID( this.id );
if( $(this).hasClass("active") ){
return;
}
// Switch highlighted tab
$(this).addClass("active")
.siblings("li")
.not(this)
.removeClass("active");
// Animate tab content
$("#tab_" + curID + "_content").fadeOut();
$( options['tabWrap'] ).animate();
$("#tab_" + newID + "_content").fadeIn();
},
scrollTabs = function(e){
var tar = $(e.target);
var ul = tar.siblings("ul");
// For both scrollers, check the maximum distance we can scroll
// before we get to the end of the bar. Use that distance if it's
// less than options.scrollStep.
if( $(tar).hasClass('tab_right') )
{
var l = parseInt( $(ul).css('left') ) || 0;
var w = $(ul).width();
var wrap = $(ul).parent(".ipsTabBar").width();
var diff = ( l + w ) - wrap;
var move = ( diff > options.scrollStep ) ? options.scrollStep : diff;
$( ul ).animate({ left: "-=" + move}, function(){
checkTabToggle( tar.parent(".ipsTabBar") );
});
}
else if( $(tar).hasClass('tab_left') )
{
var l = parseInt( $(ul).css('left') ) || 0;
var move = ( (l*-1) > options.scrollStep ) ? options.scrollStep : (l*-1);
$( ul ).animate({ left: "+=" + move}, function(){
checkTabToggle( tar.parent(".ipsTabBar") );
});
}
},
checkTabToggle = function( $this ){
var ul = $("ul", $this),
w = ul.outerWidth(),
left = parseInt( ul.css('left') ) || 0,
pos = parseInt( $($this).css('left') ) || 0,
wrap = $($this).width();
if( ( left + w ) > wrap ){
$($this).addClass("with_right").find(".tab_right").fadeIn('fast');
} else {
$($this).removeClass("with_right").find(".tab_right").fadeOut('fast');
}
if( left < 0 ){
$($this).addClass("with_left").find(".tab_left").fadeIn('fast');
} else {
$($this).removeClass("with_left").find(".tab_left").fadeOut('fast');
}
};
return this.each(function(){
// Hide the scrollers & set event
$(".tab_left,.tab_right", this).hide().mousedown( scrollTabs );
var tabSetup = function( tab, id ){
$(tab).addClass('active');
$( options['tabWrap'] + " > div").not("#tab_" + id + "_content").hide(); // Hide all except active
//$( options['tabWrap'] ).height( $("#tab_" + id + "_content").innerHeight() ); // Set tab wrap height to active pane height
}
// Which default tab?
if( $.undefined( options['defaultTab'] ) ){
tabSetup( $("li:first", this), getTabID( $("li:first", this).attr('id') ) );
} else {
tabSetup( "#" + options['defaultTab'], getTabID( options['defaultTab'] ) );
}
// Event for tab switching
$('li', this).click( switchTab );
var $this = this;
// Initial check for showing toggles
checkTabToggle( $this );
// Check on window resize too
$(window).resize( function(){
checkTabToggle( $this );
});
});
};
}(jQuery));
+656
View File
@@ -0,0 +1,656 @@
// ************************************ //
// Member List //
// ************************************ //
var memberlist = {};
(function($){
memberlist = function($){
//-------------------------------------
// PROPERTIES
var currentOptions = {
st: 0,
type: 'all',
string: '',
order_by: 'joined',
order_direction: 'desc'
},
coreOptions = ['st', 'type', 'string', 'order_by', 'order_direction'],
request_url = '',
table = null,
isAdvSearching = false,
searchTimeout = null,
lastVal = '',
resultsCache = {};
//-------------------------------------
// PUBLIC METHODS
var init = function( url, defaultType ){
request_url = url;
table = $("#member_list");
defaultType = defaultType ? defaultType : 'all';
// Set up events
$("#member_types a").click( toggleType ); // Toggle bar
$("#member_search").focus( focusSearch ).blur( blurSearch ); // Search box
$(".sortable", table).click( sortTable ); // Column headers
$(".member_action", table).live('click', doAction ); // Row action
$(".mass_action", table).live('click', doMassAction ); // Mass action
$("#mfooter_spam .spam_action").live('click', doSpamAction); // Spam action
$(".check_all", table).live('click', checkAll ); // "Check All"
$("#member_results input:checkbox").live("click", checkOne); // Check one
$(".pagination a").live('click', hijackPagination ); // Hijack navigation
$("#advanced_member_search").click( showAdvancedSearch ); // Advanced search
$("#memberListForm").submit( function(e){ e.preventDefault(); } ); // Stop form submission
prepareAdvancedSearch();
preparePruneAndMove();
if( window.location.hash ){
parseHash();
} else {
//loadDefaults();
}
// Default type
if( defaultType )
{
currentOptions['type'] = defaultType;
$("#member_types li").removeClass("active");
$('li[data-type|="' + defaultType + '"]').addClass("active");
if( $("#mheader_" + defaultType + ":hidden").size() )
{
$(".member_column_titles").hide();
$(".sortable", table).removeClass("active");
$("#mheader_" + defaultType )
.show()
.find('th[data-key="' + currentOptions['order_by'] + '"]')
.addClass("active")
.addClass( currentOptions['order_direction'] );
}
if( !$("#mfooter_" + defaultType + ":visible").size() )
{
$("tfoot tr", table).hide();
$("#mfooter_" + defaultType ).show();
}
}
$("#members_loading").ajaxStart( function(){
$(this).fadeIn('fast');
}).ajaxStop( function(){
$(this).fadeOut('fast');
});
},
getOption = function(option){
return currentOptions[ option ];
},
setOption = function( option, value ){
currentOptions[ option ] = value;
};
//-------------------------------------
// PRIVATE METHODS
// Toggles the type (member, validating, spammer etc.)
var toggleType = function(e)
{
e.preventDefault();
// Ignore if already active
if( $( e.target ).closest(".ipsActionButton.active").size() ){
return;
}
// Make active
$("#member_types li").removeClass("active");
var key = $( e.target ).closest("li").addClass("active").data('type');
// Send request
fetchResults( { type: key } );
},
// Handler for sorting the table by column
sortTable = function(e)
{
e.preventDefault();
var td = $( e.target ).closest('.sortable');
if( td.hasClass('active') ){
if( td.hasClass('desc') ){
td.removeClass('desc').addClass('asc');
fetchResults( { order_direction: 'asc' } );
} else {
td.removeClass('asc').addClass('desc');
fetchResults( { order_direction: 'desc' } );
}
return;
}
$(".sortable", table).removeClass("active");
var key = td.addClass("active").addClass("desc").data('key');
// Send request
fetchResults( { order_by: key, order_direction: 'desc' } );
},
// Perform an action on a member
doAction = function(e)
{
e.preventDefault();
// Get the type and action
var _do = currentOptions['type'];
var _action = $( e.target ).data("action");
if( $.undefined( _do ) || !_do || $.undefined( _action ) || !_action ){
Debug.write( "No type, or no action."); return;
}
if( _action == 'delete' ){
if( !confirm( ipb.lang['confirm_delete_single_mem'] ) ){
return false;
}
}
// Get the relevant member ID
var mid = $( e.target ).closest("tr").data("mid");
if( $.undefined( mid ) || !mid ){
Debug.write( "No member ID found."); return;
}
if( _do == 'all' ){
var url = request_url + "&do=do_" + _action + "&type=" + _do + "&mid_" + mid + "=1";
} else {
var url = request_url + "&do=do_" + _do + "&type=" + _action + "&mid_" + mid + "=1";
}
// Send the request
$.ajax( {
url: url.replace(/&amp;/g, '&'),
type: 'get',
success: function(data){
if( data['ok'] ){
if( _action == 'resend' )
{
alert( data['msg'] );
}
else
{
$( e.target ).closest(".member_controls")
.addClass("success")
.closest("tr")
.fadeOut('slow', function(){
$( this ).remove();
checkForEmptyTable();
});
}
}
else if( data['error'] ) {
alert( data['error'] );
}
else {
alert( ipb.lang['generic_ajax_error'] );
}
}
});
},
doMassAction = function(e)
{
e.preventDefault();
// Get the type and action
var _do = currentOptions['type'];
var _action = $( e.target ).data("action");
if( $.undefined( _do ) || !_do || $.undefined( _action ) || !_action ){
Debug.write( "No type, or no action."); return;
}
if( _action == 'delete' ){
if( !confirm( ipb.lang['confirm_delete_multiple_mem'] ) ){
return false;
}
}
// Get all MIDs
var mids = $("#member_results input:checked").map( function(){
return "mid_" + $(this).closest("tr").data("mid") + "=1";
}).get();
if( mids == "" ){ return; }
mids = mids.join("&");
var url = request_url + "&do=do_" + _do + "&type=" + _action + "&" + mids;
//Debug.write( url );
$.ajax( {
url: url.replace(/&amp;/g, '&'),
type: 'get',
success: function(data){
if( data['ok'] ){
$("#member_results input:checked").parents(".member_controls")
.addClass("success")
.closest("tr")
.fadeOut('slow', function(){
$( this ).remove();
checkForEmptyTable();
});
}
else if( data['error'] ) {
alert( data['error'] );
}
else {
alert( ipb.lang['generic_ajax_error'] );
}
}
});
},
doSpamAction = function(e)
{
e.preventDefault();
var action = $( e.target ).data("action");
if( action == 'unspam' )
{
$("#s_initial").hide();
$("#s_unspam_confirm").show();
$("#s_unspam_yes, #s_unspam_no").click( function(e){
doMassAction(e);
$( this ).unbind();
$("#s_unspam_confirm").hide();
$("#s_initial").show();
});
}
else if( action == 'ban' )
{
$("#s_initial").hide();
$("#s_ban_confirm").show();
$("#s_ban_yes, #s_ban_no").click( function(e){
doMassAction(e);
$( this ).unbind();
$("#s_ban_confirm").hide();
$("#s_initial").show();
});
}
else
{
doMassAction(e);
}
},
// Checks whether the table is empty after performing
// member row actions
checkForEmptyTable = function()
{
if( $("#member_results tr").size() == 0 )
{
$(".check_all").attr("checked", false);
$("tfoot tr:visible", table).addClass("disabled");
fetchResults( {}, true ); // force cache update
}
},
// Handler for checking all checkboxes in the table
checkAll = function(e)
{
$("#member_results input:checkbox").attr("checked", e.target.checked );
// Enable the mass-action bar if necessary
if( e.target.checked && $("#member_results tr").size() ){
$("tfoot tr:visible").removeClass("disabled");
}
else {
$("tfoot tr:visible").addClass("disabled");
}
},
// Handler when a checkbox is clicked. Removes 'check all' check if necessary.
checkOne = function(e)
{
if( !e.target.checked ){
$(".check_all").attr("checked", false);
}
if( !$("#member_results input:not(:checked)").size() ){
$(".check_all").attr("checked", true);
} else {
$(".check_all").attr("checked", false);
}
// Enable the mass-action bar if necessary
if( $("#member_results tr").size() && $("#member_results input:checked").size() ){
$("tfoot tr:visible").removeClass("disabled");
}
else {
$("tfoot tr:visible").addClass("disabled");
}
},
// Handler for pagination links
hijackPagination = function(e)
{
e.preventDefault();
// Find the st value
try {
var st = e.target.href.match(/\&st=([0-9]+)/)[1];
} catch(err) {
Debug.write( "No st value found" );
return;
}
fetchResults( { st: st } );
},
// if there's a url hash, parse it and load results
parseHash = function()
{
var hash = window.location.hash;
var params = $H( getHashParams( hash ) );
var options = {};
if( !params.size() ){
return;
}
params.each( function(h){
options[ h.key ] = h.value;
});
if( !options['do_results'] ){
return;
}
var o = Object.toQueryString( currentOptions );
currentOptions = $.extend( currentOptions, options );
// do stuff
$.ajax( {
url: ( request_url + "&" + o ).replace(/&amp;/g, '&'),
type: 'post',
data: options,
success: function(data){
if( data['error'] )
{
alert( data['error'] );
if( data["__session__expired__log__out__"] ){
window.location.reload();
}
}
else
{
$("#member_types").hide();
$("#m_search_info").show().find("span").html( data['count'] );
isAdvSearching = true;
buildResults( data );
Debug.write("Done");
}
}
});
},
getHashParams = function( hash )
{
var hashParams = {};
var e,
a = /\+/g, // Regex for replacing addition symbol with a space
r = /([^&;=]+)=?([^&;]*)/g,
d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
q = window.location.hash.substring(1);
while (e = r.exec(q))
hashParams[d(e[1])] = d(e[2]);
return hashParams;
},
// Fetches results from the server or cache using our params object
fetchResults = function( options, force )
{
var newOpts = {};
$.each( coreOptions, function( i, v ){
newOpts[ v ] = currentOptions[ v ];
});
currentOptions = newOpts;
var o = $.extend( {}, currentOptions, options );
var hash = Object.toQueryString( o );
//o['__update'] = 1;
// Wipe cache?
if( force ){
resultsCache = {};
}
if( resultsCache[ hash ] )
{
currentOptions = o;
buildResults( resultsCache[hash] );
}
else
{
// do stuff
$.ajax( {
url: request_url.replace(/&amp;/g, '&'),
type: 'get',
data: o,
success: function(data){
if( data['error'] )
{
alert( data['error'] );
if( data["__session__expired__log__out__"] ){
window.location.reload();
}
}
else
{
currentOptions = o;
buildResults( data );
resultsCache[ hash ] = data;
Debug.write("Done");
}
}
});
}
// Set anchor for back button functionality
window.location.hash = hash; /*.replace(/&/g, '/').replace(/\/amp;/g, '&amp;');*/
},
buildResults = function( results ){
// Show headers
if( $("#mheader_" + currentOptions['type'] + ":hidden").size() )
{
$(".member_column_titles").hide();
$(".sortable", table).removeClass("active");
$("#mheader_" + currentOptions['type'] )
.show()
.find('th[data-key="' + currentOptions['order_by'] + '"]')
.addClass("active")
.addClass( currentOptions['order_direction'] );
}
// Show footers
if( !$("#mfooter_" + currentOptions['type'] + ":visible").size() )
{
$("tfoot tr", table).hide();
$("#mfooter_" + currentOptions['type'] ).show();
}
// Build results and pagination
$("tbody#member_results", table).html( results['members'] );
$(".pagination").replaceWith( results['pages'] );
// Check prune/move
checkPruneAndMove( currentOptions['type'] );
},
focusSearch = function(e){
clearTimeout( searchTimeout );
searchTimeout = setTimeout( runSearch, 300 );
},
blurSearch = function(e){
clearTimeout( searchTimeout );
},
runSearch = function(){
searchTimeout = setTimeout( runSearch, 300 );
var curVal = $("#member_search").val();
if( curVal == lastVal || curVal.length < 3 ){
return;
}
fetchResults( { string: curVal, st: 0 } );
lastVal = curVal;
},
//-------------------------------------------
// MASS PRUNE/MOVE
//-------------------------------------------
preparePruneAndMove = function(){
$("#memberList__prune").click( {doType: 'prune'}, doPruneMove );
$("#memberList__move").click( {doType: 'move'}, doPruneMove );
},
doPruneMove = function(e){
e.preventDefault();
if( $("#memberList__" + e.data.doType).hasClass("disabled") ){
return;
}
var type = ( e.data.doType == 'prune' ) ? 'delete' : 'move';
var o = currentOptions;
delete o['type'];
delete o['st'];
delete o['order_by'];
delete o['order_direction'];
var hash = Object.toQueryString( o );
window.location = $("#memberPruneMoveForm").attr('action') + '&' + hash + '&f_search_type=' + type;
},
checkPruneAndMove = function( type ){
if( type != 'all' ){
disablePruneMove();
return;
}
// Only enable if we're doing some kind of filtering
if( currentOptions['string'] || isAdvSearching ){
enablePruneMove();
} else {
disablePruneMove();
}
},
disablePruneMove = function(){
$("#memberList__prune, #memberList__move").addClass("disabled");
},
enablePruneMove = function(){
$("#memberList__prune, #memberList__move").removeClass("disabled");
},
//-------------------------------------------
// ADVANCED SEARCH
//-------------------------------------------
prepareAdvancedSearch = function(e){
if( !$("#modal").size() ){
$("body").append( $("<div />", { id: "modal" } ).hide() );
}
$("#modal").css( { height: $(document).height() } );
// Submit event
$("#do_advanced_search").click( doAdvancedSearch );
$("#m_search_cancel").click( cancelAdvancedSearch );
$("#close_adv_search, #modal").click( hideAdvancedSearch );
// Resize event
$(window).resize( function(){
$("#modal:visible").css( { height: $(document).height() } );
});
},
showAdvancedSearch = function(e){
if(e){ e.preventDefault(); }
$("#modal").fadeIn();
$("#m_search_pane").fadeIn();
},
hideAdvancedSearch = function(e){
if(e){ e.preventDefault(); }
$("#m_search_pane").fadeOut();
$("#modal").fadeOut();
},
cancelAdvancedSearch = function(e){
if(e){ e.preventDefault(); }
// Remove advanced search fields
var newOpts = {};
$.each( coreOptions, function( i, v ){
newOpts[ v ] = currentOptions[ v ];
});
currentOptions = newOpts;
currentOptions['reset_filters'] = 1;
$("#m_search_info").hide();
$('.information-box').hide();
$("#member_types").show();
isAdvSearching = false;
fetchResults( currentOptions );
},
doAdvancedSearch = function(e){
e.preventDefault();
// Get form values
var vals = {};
$.map( $("#m_search_form").serializeArray(), function( k, i ){
vals[ k['name'] ] = k['value'];
});
vals['st'] = 0;
vals['__update'] = 1;
// Remove quick search values
$("#member_search").val('');
currentOptions['string'] = '';
var o = Object.toQueryString( currentOptions );
currentOptions = $.extend( currentOptions, vals );
// do stuff
$.ajax( {
url: ( request_url + "&" + o ).replace(/&amp;/g, '&'),
type: 'post',
data: vals,
success: function(data){
if( data['error'] )
{
alert( data['error'] );
if( data["__session__expired__log__out__"] ){
window.location.reload();
}
}
else
{
$("#member_types").hide();
$("#m_search_info").show().find("span").html( data['count'] );
isAdvSearching = true;
buildResults( data );
Debug.write("Done");
}
}
});
hideAdvancedSearch();
};
//-------------------------------------
// Make public methods public
return {
init: init,
getOption: getOption,
setOption: setOption
};
}($);
}(jQuery));
+26 -6
View File
@@ -1,4 +1,4 @@
var IPBACP = Class.create({
autocompleteWrap: new Template("<ul id='#{id}' class='ipbmenu_content' style='width: 250px;'></ul>"),
@@ -29,7 +29,13 @@ var IPBACP = Class.create({
onSuccess: function(t){
if( t.responseText == 'logout' )
{
alert( "Сессия истекла. Нажмите OK для перехода к форме входа." );
alert( ipb.lang['session_timed_out'] );
window.location.href = ipb.vars['base_url'];
}
if( t.responseJSON && t.responseJSON['__session__expired__log__out__'] )
{
alert( ipb.lang['session_timed_out'] );
window.location.href = ipb.vars['base_url'];
}
}
@@ -42,7 +48,21 @@ var IPBACP = Class.create({
$$('.ajaxWithDialogueTrigger').each( function( elem ) {
elem.identify();
elem.observe( 'click', acp.ajaxWithResultClickThrough );
})
});
/* License expired notification close */
if( $('license-close') )
{
$('license-close').observe( 'click', function( elem ) {
var cookieExpire = new Date();
cookieExpire.setDate( cookieExpire.getDate()+30 );
ipb.Cookie.set( 'ignore-license-notice', 1, cookieExpire.toUTCString() );
var effect = new Effect.Fade( $('license_notice_expired'), { duration: 0.3, afterFinish: function(){
$$('body')[0].removeClassName('expired_license');
} } );
} );
}
}.bind(this));
},
@@ -94,7 +114,7 @@ var IPBACP = Class.create({
{
if ( ! t.responseJSON )
{
acp.errorDialogue( 'Oops, something has gone wrong. Sadly I am unable to tell you what. :(' );
acp.errorDialogue( 'К сожалению, возникла проблема при обработке запроса :(' );
}
if ( t.responseJSON['error'] )
{
@@ -115,7 +135,7 @@ var IPBACP = Class.create({
*/
errorDialogue: function( text )
{
content = "<h3>Error</h3><div class='ajax-inline-error' style='height: 20px; text-align:center'><p>" + text + "</p></div>";
content = "<h3>Ошибка</h3><div class='ajax-inline-error' style='height: 20px; text-align:center'><p>" + text + "</p></div>";
new ipb.Popup( 'generic__errorDialogue', { type: 'pane',
initial: content,
@@ -134,7 +154,7 @@ var IPBACP = Class.create({
*/
okDialogue: function( text )
{
content = "<h3>Message</h3><div class='ajax-inline-message' style='height: 20px; text-align:center'><p>" + text + "</p></div>";
content = "<h3>Сообщение</h3><div class='ajax-inline-message' style='height: 20px; text-align:center'><p>" + text + "</p></div>";
new ipb.Popup( 'generic__okDialogue', { type: 'pane',
initial: content,
-200
View File
@@ -1,200 +0,0 @@
/************************************************/
/* IPB3 Javascript */
/* -------------------------------------------- */
/* ips.global.js - Global functionality */
/* (c) IPS, Inc 2008 */
/* -------------------------------------------- */
/* Author: Rikki Tissier */
/************************************************/
ACPLiveSearch = {
searchTimer: [],
searchLastQuery: '',
hasCleared: false,
ohJustFreakingStop: false,
/*------------------------------*/
/* Constructor */
init: function()
{
Debug.write("Initializing acp.livesearch.js");
document.observe("dom:loaded", function(){
ACPLiveSearch.initEvents();
});
},
initEvents: function()
{
if( !$('acpSearchKeyword') )
{
return false;
}
/*$$('.__user').each( function(elem){
ipb.namePops[ elem.identify() ] = [];
elem.observe("mouseover", ACPLiveSearch.timer_showUserPopup);
elem.observe("mouseout", ACPLiveSearch.timer_hideUserPopup);
});*/
$('acpSearchKeyword').observe("focus", ACPLiveSearch.timer_liveSearch );
$('acpSearchKeyword').observe("blur", ACPLiveSearch.timer_hideLiveSearch );
$('acpSearchKeyword').writeAttribute({autocomplete: "off"}); /* Turn off autocomplete */
},
/* ------------------------------ */
/**
* Timer for live searching
*
* @param {event} e The event
*/
timer_liveSearch: function(e)
{
if( !ACPLiveSearch.hasCleared )
{
$('acpSearchKeyword').value = '';
ACPLiveSearch.hasCleared = true;
}
ACPLiveSearch.searchTimer['show'] = setTimeout( ACPLiveSearch.liveSearch, 400 );
},
/* ------------------------------ */
/**
* TImer for hiding live search
*
* @param {event} e The event
*/
timer_hideLiveSearch: function(e)
{
ACPLiveSearch.searchTimer['hide'] = setTimeout( ACPLiveSearch.hideLiveSearch, 800 );
},
/* ------------------------------ */
/**
* Actually hides live search
*
* @param {event} e The event
*/
hideLiveSearch: function(e)
{
new Effect.Fade( $('live_search_popup'), { duration: 0.4, afterFinish: function(){
$('ajax_result').update('');
} } );
ACPLiveSearch.searchLastQuery = '';
clearTimeout( ACPLiveSearch.searchTimer['show'] );
clearTimeout( ACPLiveSearch.searchTimer['hide'] );
},
/* ------------------------------ */
/**
* Live search routine
*
* @param {event} e The event
*/
liveSearch: function(e)
{
// Keep loopy going
ACPLiveSearch.timer_liveSearch();
var val = $F('acpSearchKeyword').strip();
// If too few chars, dont do anything
if( val.length < 3 || ACPLiveSearch.ohJustFreakingStop === true ){ return; }
// Is the popup available?
if( !$('live_search_popup') )
{
Debug.write("Creating popup");
ACPLiveSearch.buildSearchPopup();
}
else if( !$('live_search_popup').visible() )
{
new Effect.Appear( $('live_search_popup'), {duration: 0.4} );
}
// Is the text the same as last time?
if( $F('acpSearchKeyword') == ACPLiveSearch.searchLastQuery ){ return; } /* continue looping */
//Get hits
new Ajax.Request(
ipb.vars['base_url'].replace( /&amp;/g, '&' ) + "app=core&module=ajax&section=livesearch&do=search&secure_key=" + ipb.vars['md5_hash'] + "&search_term=" + val ,
{
method: 'get',
onSuccess: function(t){
/* Logged out? */
if ( t.responseText.match( "__session__expired__log__out__" ) )
{
clearTimeout( ACPLiveSearch.searchTimer['show'] );
clearTimeout( ACPLiveSearch.searchTimer['hide'] );
$('acpSearchKeyword').stopObserving("focus");
$('acpSearchKeyword').stopObserving("blur");
$('live_search_popup').hide();
/* Argh!!! */
ACPLiveSearch.ohJustFreakingStop = true;
alert( ipb.lang['session_timed_out'] );
return false;
}
if ( ! t.responseText )
{
ACPLiveSearch.searchLastQuery = val;
ACPLiveSearch.hideLiveSearch();
return false;
}
else
{
$('ajax_result').update( t.responseText );
}
},
//onException: function( f,e ){ alert( "Exception: " + e ) },
onFailure: function( t ){ alert( "Failure: " + t.responseText ); }
}
);
/* Make sure we set this value so we don't run unnecessary ajax requests */
ACPLiveSearch.searchLastQuery = $F('acpSearchKeyword');
},
/* ------------------------------ */
/**
* Builds the popup for live search
*
* @param {event} e The event
*/
buildSearchPopup: function(e)
{
pos = $('acpSearchKeyword').cumulativeOffset();
finalPos = {
top: pos.top + $('acpSearchKeyword').getHeight(),
left: ( pos.left + 45 )
};
popup = new Element('div', { id: 'live_search_popup' } ).hide().setStyle('top: ' + finalPos.top + 'px; left: ' + finalPos.left + 'px');
$('ipboard_body').insert({ bottom: popup });
//Get form
new Ajax.Request( ipb.vars['base_url'].replace( /&amp;/g, '&' ) + "app=core&module=ajax&section=livesearch&do=template&secure_key=" + ipb.vars['md5_hash'],
{
method: 'get',
onSuccess: function(t){
if ( ! t.responseText.match( "__session__expired__log__out__" ) )
{
popup.update( t.responseText );
}
//ACPLiveSearch.liveSearch();
}
});
new Effect.Appear( $('live_search_popup'), {duration: 0.3} );
}
};
ACPLiveSearch.init();
+5 -230
View File
@@ -50,82 +50,6 @@ _temp.prototype.members = {
(evt) ? el.dispatchEvent(evt) : (el.click && el.click());
},
changeAvatar: function( e, url )
{
Event.stop(e);
if ( $('m_avatar_popup') )
{
$('m_avatar_popup').remove();
}
acp.members.hideActionMenu();
url = ipb.vars['base_url'] + url + '&secure_key=' + ipb.vars['md5_hash'];
url = url.replace( /&amp;/g, '&' );
var afterInit = function( popup )
{
if( $('avatar_gallery') )
{
$('avatar_gallery').observe('change', acp.members.updateAvatarGallery);
}
};
acp.members.popups['avatar'] = new ipb.Popup('m_avatar', { type: 'pane', modal: false, hideAtStart: false, w: '600px', ajaxURL: url }, { 'afterInit': afterInit } );
},
updateAvatarGallery: function( e )
{
Event.stop(e);
var selected_cat = $F('avatar_gallery');
var url = ipb.vars['base_url'] + "app=forums&amp;module=ajax&amp;section=member_editform&amp;do=get_avatar_images&amp;cat=" + selected_cat + '&secure_key=' + ipb.vars['md5_hash'];
new Ajax.Request( url.replace(/&amp;/g, '&'),
{
method: 'get',
evalJSON: 'force',
onSuccess: function(t)
{
if( Object.isUndefined( t.responseJSON ) )
{
$('avatarGalleryContainer').update( t.responseText ).show();
return;
}
if( t.responseJSON['error'] )
{
alert("Проблема с получением галереи: " + t.responseJSON['error']);
return;
}
if( t.responseJSON['html'] )
{
$('avatarGalleryContainer').update( t.responseJSON['html'] ).show();
}
}
});
},
updateAvatarPreview: function()
{
var cat = $F('avatar_gallery');
var img = $F('avatar_image');
var img_url = ipb.vars['public_avatar_url'] + cat + '/' + img;
if( !$('avatarPreview') )
{
var newimg = new Element( 'img', { 'id': 'avatarPreview', src: img_url });
$('avatarContainer').insert( newimg );
}
else
{
$('avatarPreview').src = img_url;
}
},
newPhoto: function( e, url )
{
Event.stop(e);
@@ -147,46 +71,7 @@ _temp.prototype.members = {
url = ipb.vars['base_url'] + url + '&secure_key=' + ipb.vars['md5_hash'];
url = url.replace( /&amp;/g, '&' );
acp.members.popups['photo'] = new ipb.Popup('m_ban', { type: 'pane', modal: false, hideAtStart: false, w: '600px', h: '600px', ajaxURL: url } );
},
removeAvatar: function( e, member_id )
{
Event.stop(e);
Debug.write("Calling once...");
var url = ipb.vars['base_url'] + "app=forums&amp;module=ajax&amp;section=member_editform&amp;do=remove_avatar&amp;member_id=" + member_id + '&secure_key=' + ipb.vars['md5_hash'];
new Ajax.Request( url.replace( /&amp;/g, '&' ),
{
method: 'get',
evalJSON: 'force',
onSuccess: function(t)
{
if( Object.isUndefined( t.responseJSON ) )
{
Debug.write( t.responseText );
alert("Ошибка: " + t.responseText );
return;
}
if( t.responseJSON['error'] )
{
Debug.write( t.responseJSON['error'] );
alert("Ошибка при удалении аватара: " + t.responseJSON['error']);
return;
}
else
{
try {
$('MF__avatar').remove();
$('MF__avatar_link').remove();
} catch(err) {
Debug.write( err );
}
}
}
});
acp.members.popups['photo'] = new ipb.Popup('m_ban', { type: 'pane', modal: false, hideAtStart: false, w: '600px', h: 500, ajaxURL: url } );
},
removePhoto: function( e, member_id )
@@ -205,14 +90,14 @@ _temp.prototype.members = {
if( Object.isUndefined( t.responseJSON ) )
{
Debug.write( t.responseText );
alert("Ошибка: " + t.responseText );
alert( ipb.lang['templates_servererror'] + t.responseText );
return;
}
if( t.responseJSON['error'] )
{
Debug.write( t.responseJSON['error'] );
alert("Ошибка при удалении аватара: " + t.responseJSON['error']);
alert( ipb.lang['templates_servererror'] + t.responseJSON['error']);
return;
}
else
@@ -222,6 +107,7 @@ _temp.prototype.members = {
$('MF__pp_photo').setStyle( { width: t.responseJSON['pp_main_width'] + 'px' } );
$('MF__pp_photo').setStyle( { height: t.responseJSON['pp_main_height'] + 'px' } );
$('MF__pp_photo_container').setStyle( { width: t.responseJSON['pp_main_width'] + 'px' } );
$('MF__removephoto').remove();
} catch(err) {
Debug.write( err );
}
@@ -239,118 +125,7 @@ _temp.prototype.members = {
url = ipb.vars['base_url'] + url + '&secure_key=' + ipb.vars['md5_hash'];
url = url.replace( /&amp;/g, '&' );
var afterInit = function( popup ){
$( id + '_save' ).observe('click', acp.members.saveField.bindAsEventListener( this, id ) );
//Debug.write("This is the callback");
}.bind(this);
var afterHide = function( popup ){
$( popup.getObj() ).remove();
acp.members.popups[ id ] = null;
}.bind(this);
acp.members.popups[ id ] = new ipb.Popup('m_' + id, { type: 'pane', modal: false, hideAtStart: false, w: '500px', ajaxURL: url }, { 'afterInit': afterInit, 'afterHide': afterHide } );
},
saveField: function( e, id )
{
// Allow "inline form" with normal form submission
// See member password inline form
if( acp.members.fields[ id ]['bypass'] )
{
return true;
}
Event.stop(e);
//firebug.d.console.cmd.dir( acp.members.fields );
var url = acp.members.fields[ id ]['url'];
if( !url ){ alert("Не удалось сохранить; отсутствует url"); return; }
url = ipb.vars['base_url'] + url + '&secure_key=' + ipb.vars['md5_hash'];
url = url.replace( /&amp;/g, '&' );
//-----------------
var fields = acp.members.fields[ id ]['fields'];
var _params = {};
if ( fields.length )
{
for( var i = 0 ; i <= fields.length ; i++ )
{
if( $( fields[i] ) )
{
try
{
if ( $( fields[i] ).type == 'select-multiple' )
{
_params[ fields[i] + '[]' ] = $F( fields[i] );
}
else
{
_params[ fields[i] ] = $F( fields[i] ).encodeParam();
}
}
catch( e )
{
try
{
_params[ fields[i] ] = $F( fields[i] + '_yes' );
}
catch( e ){}
}
}
else if( $( fields[i] + '_yes' ) )
{
try
{
_params[ fields[i] ] = $F( fields[i] + '_yes' );
}
catch( e ){}
}
}
}
// Send request
new Ajax.Request( url, {
method: 'post',
parameters: _params,
evalJSON: 'force',
onSuccess: function(t)
{
if( Object.isUndefined( t.responseJSON ) )
{
alert("Ошибка: " + t.responseJSON);
return;
}
if( !t.responseJSON['success'] )
{
alert("Ошибка: " + t.responseJSON['error'] );
return;
}
else
{
if( acp.members.fields[ id ]['callback'] )
{
acp.members.fields[ id ]['callback']( t, t.responseJSON );
}
acp.members.popups[ id ].hide();
}
Debug.write("Success");
},
onException: function(t){ alert("Ошибка: " + t.responseText); },
onFailure: function(t){ alert("Ошибка: " + t.responseText ); }
} );
acp.members.popups[ id ] = new ipb.Popup('m_' + id, { type: 'pane', modal: false, hideAtStart: false, w: '700px', ajaxURL: url } );
},
hideActionMenu: function()
+2 -2
View File
@@ -173,8 +173,8 @@ _menu.prototype.Menu = Class.create({
Debug.write( "manual ofset: " + this.options.offsetX + " x " + this.options.offsetY );
// Ok, if it's a relative parent, do one thing, else be normal
_a = _getOffsetParent( _source );
_b = _getOffsetParent( this.target );
_a = $(_source).getOffsetParent();
_b = $(this.target).getOffsetParent();
if( _a != _b )
{
+1 -1
View File
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// IPS JS: Permissions
// (c) 2008 Invision Power Services, Inc.
// http://www.invisionpower.com
// http://hatynka.in
// Brandon Farber - 16th December
//------------------------------------------------------------------------------
+13 -9
View File
@@ -67,10 +67,10 @@ _temp.prototype.permissions = Class.create({
// Get ID
var parts = elem.id.match(/(.*)_select_row_([0|1])_(.*)/);
if( !parts ){ return; }
if( !$( this.options.app + this.options.typekey + '_row_' + parts[3]) ){ return; }
if( !$( this.options.app + '_row_' + parts[3]) ){ return; }
$( this.options.app + '_row_' + parts[3]).select('input[type=checkbox]').each( function(check){
$( this.options.app + this.options.typekey + '_row_' + parts[3]).select('input[type=checkbox]').each( function(check){
if( parts[2] == 1 ){
check.checked = true;
} else {
@@ -135,12 +135,16 @@ _temp.prototype.permissions = Class.create({
},
submitForm: function(e)
{
if( typeof(noShowAlert) != undefined && noShowAlert )
{
return true;
}
{
try {
if( !Object.isUndefined( noShowAlert ) )
{
if( noShowAlert ){
return true;
}
}
} catch(err) { }
// Get all inputs
var test = $( this.options.form ).select('input[type=checkbox]').any( function( elem ){ return elem.checked; } );
+76
View File
@@ -0,0 +1,76 @@
/************************************************/
/* IPB3 Javascript */
/* -------------------------------------------- */
/* acp.replacements.js - Replacements functions */
/* (c) IPS, Inc 2008 */
/* -------------------------------------------- */
/* Author: Rikki Tissier */
/************************************************/
ACPSkinSets = {
/* ------------------------------ */
/**
* Setup
*/
init: function()
{
document.observe("dom:loaded", function(){
$('ipsNewSkin').on('click', this.showAddDialogue.bindAsEventListener(this) );
ipb.delegate.register(".ipsCancelEditor", ACPSkinSets.showCancelDialogue );
}.bind(this) );
},
/**
* Show cancel dialogue
*/
showCancelDialogue: function( e, elem )
{
Event.stop(e);
new ipb.Popup( 'cancel_editor', { type: 'pane',
initial: cancelEditorDialogue.evaluate( { 'url': elem.readAttribute('href') } ),
stem: false,
modal: true,
hideAtStart: false,
hideClose: false,
defer: false,
w: 400 } );
},
/**
* Fetch and show the pop-up dialogue
*/
showAddDialogue: function(e)
{
Event.stop(e);
var url = ipb.vars['base_url'] + "app=core&amp;module=ajax&amp;section=skinsets&amp;do=showAddDialogue&amp;secure_key=" + ipb.vars['md5_hash'];
// Send
new Ajax.Request( url.replace(/&amp;/g, '&'),
{
method: 'get',
onSuccess: function(t)
{
if ( t.responseText )
{
/* Load */
new ipb.Popup( 'nooSkin', { type: 'pane',
initial: t.responseText,
modal: true,
stem: true,
hideAtStart: false,
hideClose: false,
defer: false,
w: 400 } );
}
}
});
},
};
ACPSkinSets.init();
-85
View File
@@ -1,85 +0,0 @@
//------------------------------------------------------------------------------
// IPS JS: Sytlistic effects
// (c) 2008 Invision Power Services, Inc.
// http://www.invisionpower.com
// Dan Cryer - 8th September 08
//------------------------------------------------------------------------------
document.observe("dom:loaded",function()
{
doStriping();
resizeContent.defer();
});
function doStriping( )
{
var TBL_ALT_ON = 'acp-row-on';
var TBL_ALT_OFF = 'acp-row-off';
var TBL_ALT_RED = 'acp-row-red';
var TBL_ALT_AMB = 'acp-row-amber';
var ROW_ON_OFF = true;
$$('#main_content table.alternate_rows > tr, #main_content table.alternate_rows tbody > tr, .alternate_rows > li, .alternate_rows_force').each(function(tblRow)
{
$(tblRow).removeClassName(TBL_ALT_ON);
$(tblRow).removeClassName(TBL_ALT_OFF);
if(ROW_ON_OFF)
{
ROW_ON_OFF = false;
$(tblRow).addClassName(TBL_ALT_ON);
}
else
{
ROW_ON_OFF = true;
$(tblRow).addClassName(TBL_ALT_OFF);
}
if ( $(tblRow).hasClassName('_red') )
{
$(tblRow).removeClassName(TBL_ALT_AMB);
$(tblRow).removeClassName(TBL_ALT_ON);
$(tblRow).removeClassName(TBL_ALT_OFF);
$(tblRow).addClassName(TBL_ALT_RED);
}
else if ( $(tblRow).hasClassName('_amber') )
{
$(tblRow).removeClassName(TBL_ALT_RED);
$(tblRow).removeClassName(TBL_ALT_ON);
$(tblRow).removeClassName(TBL_ALT_OFF);
$(tblRow).addClassName(TBL_ALT_AMB);
}
if ( $(tblRow).hasClassName('_off') )
{
$(tblRow).removeClassName(TBL_ALT_RED);
$(tblRow).removeClassName(TBL_ALT_ON);
$(tblRow).addClassName(TBL_ALT_OFF);
}
});
}
function resizeContent()
{
if( $('section_navigation') && $('main_content') )
{
var navSize = $('section_navigation').getHeight();
var contentSize = $('main_content').getHeight();
if( navSize > contentSize )
{
var height = navSize + 50;
$('main_content').setStyle('min-height: ' + height + 'px;');
if( $('copyright') )
{
$('copyright').setStyle('bottom: 0px;');
}
}
}
}
+24 -3
View File
@@ -277,12 +277,18 @@ _tt.prototype.tabbedEditor = {
{
Event.stop( event );
Debug.write("SHOWING POPUP");
/* Create pop-up elements */
var _id = '__p_' + id;
var _data = acp.tabbedEditor.openTabs.get( id );
var _t = acp.tabbedEditor.templates['textArea'].evaluate( { 'id': _id } );
var content = acp.tabbedEditor.getContent( id );
// Have to replace <> otherwise script tags are executed and removed
// @link http://community.invisionpower.com/tracker/issue-32621-template-editor-maximise-button-deletes-script-tags
var content = acp.tabbedEditor.getContent( id ).replace( /</g, '&lt;' ).replace( />/g, '&gt;' );
var title = _data.title;
var _initial = '<div class="acp-box"><h3>' + title + '</h3>' + _t.replace( '{content}', content ) + "</div>";
var _dims = document.viewport.getDimensions();
@@ -344,7 +350,7 @@ _tt.prototype.tabbedEditor = {
/* Create wrapper */
try
{
Debug.write("htmlincoming: " + acp.tabbedEditor._HtmlIncoming( content ) );
//Debug.write("htmlincoming: " + acp.tabbedEditor._HtmlIncoming( content ) );
$( 'tbe_wrap' ).innerHTML += _t.replace( '{content}', acp.tabbedEditor._HtmlIncoming( content ) );
}
catch( e )
@@ -434,10 +440,16 @@ _tt.prototype.tabbedEditor = {
$( 'tbe_editor_textarea_' + id ).observe('keydown', acp.tabbedEditor._keyDownCheck.bindAsEventListener( this, id ) );
/* Got a scroll pos? */
if ( acp.tabbedEditor.sPos[ id ] )
if ( !Object.isUndefined( acp.tabbedEditor.sPos[ id ] ) )
{
$( 'tbe_editor_textarea_' + id ).scrollTop = acp.tabbedEditor.sPos[ id ];
}
else
{
setTimeout( function(){
$( 'tbe_editor_textarea_' + id ).scrollTop = 0;
}, 50 );
}
/* Set listener */
acp.tabbedEditor._setObserver( id );
@@ -563,6 +575,15 @@ _tt.prototype.tabbedEditor = {
acp.tabbedEditor.poId = id;
acp.tabbedEditor._po = setTimeout( acp.tabbedEditor._timeOut, 400 );
/*if ( !Object.isUndefined( acp.tabbedEditor.sPos[ id ] ) )
{
$( 'tbe_editor_textarea_' + id ).scrollTop = acp.tabbedEditor.sPos[ id ];
} else {
setTimeout( function(){
$( 'tbe_editor_textarea_' + id ).scrollTop = 0;
}, 50 );
}*/
},
/**
+1 -1
View File
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// IPS JS: Tab handler
// (c) 2008 Invision Power Services, Inc.
// http://www.invisionpower.com
// http://hatynka.in
// Dan Cryer - 8th September 08
//------------------------------------------------------------------------------
+24 -24
View File
@@ -163,8 +163,8 @@ _temp.prototype.template_editor = {
$('add_css_name').value = '';
acp.template_editor.popups['add_css'].hide();
},
onException: function( f,e ){ alert( "Exception: " + e ); },
onFailure: function( t ){ alert( "Failure: " + t.responseText ); },
onException: function( f,e ){ alert( "Исключение: " + e ); },
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ); },
onComplete: function(t){ acp.template_editor.setLoadingMsg(''); }
});
},
@@ -301,8 +301,8 @@ _temp.prototype.template_editor = {
acp.template_editor.popups['add_bit'].hide();
},
onException: function( f,e ){ alert( "Exception: " + e ); },
onFailure: function( t ){ alert( "Failure: " + t.responseText ); },
onException: function( f,e ){ alert( "Исключение: " + e ); },
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ); },
onComplete: function(t){ acp.template_editor.setLoadingMsg(''); }
});
@@ -441,8 +441,8 @@ _temp.prototype.template_editor = {
acp.template_editor.enableToolbar('css', current['id'].replace( 'css_file_', '' ) );
},
onFailure: function(t){ alert("There was an error executing this command"); Debug.error(t.responseText); return; },
onException: function(f,e){ alert("There was an exception executing this command"); Debug.error(e); return; },
onFailure: function(t){ alert("Возникла ошибка при выполнении команды"); Debug.error(t.responseText); return; },
onException: function(f,e){ alert("Возникла исключительная ситуация при выполнении команды"); Debug.error(e); return; },
onComplete: function(t){ acp.template_editor.setLoadingMsg(''); }
});
}
@@ -560,8 +560,8 @@ _temp.prototype.template_editor = {
//Debug.dir( cssfile );
acp.template_editor.openCSSfile( cssid, cssfile );
},
onFailure: function(t){ alert("There was an error executing this command"); Debug.error(t.responseText); return; },
onException: function(f,e){ alert("There was an exception executing this command"); Debug.error(e); return; },
onFailure: function(t){ alert("Возникла ошибка при выполнении команды"); Debug.error(t.responseText); return; },
onException: function(f,e){ alert("Возникла исключительная ситуация при выполнении команды"); Debug.error(e); return; },
onComplete: function(t){ acp.template_editor.setLoadingMsg(''); }
});
@@ -643,8 +643,8 @@ _temp.prototype.template_editor = {
acp.template_editor.enableToolbar('template', current['id'].replace( 'template_', '' ) );
}
},
onFailure: function(t){ alert("There was an error executing this command"); Debug.error(t.responseText); return; },
onException: function(f,e){ alert("There was an exception executing this command"); Debug.error(e); return; },
onFailure: function(t){ alert("Возникла ошибка при выполнении команды"); Debug.error(t.responseText); return; },
onException: function(f,e){ alert("Возникла исключительная ситуация при выполнении команды"); Debug.error(e); return; },
onComplete: function(t){ $('group_' + group).removeClassName('loading'); }
});
},
@@ -745,7 +745,7 @@ _temp.prototype.template_editor = {
state = 'inherit';
}
}
else if ( json['templates'][i]['template_user_edited'] == 1 && json['templates'][i]['template_user_added'] == 0 )
else if ( json['templates'][i]['template_user_edited'] == 1 ) /*&& json['templates'][i]['template_user_added'] == 0*/ /* Bug 25788 */
{
/* This is a modified row */
state = 'modified';
@@ -857,8 +857,8 @@ _temp.prototype.template_editor = {
}
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
onFailure: function( t ){ alert( "Failure: " + t.responseText ); },
onException: function( f,e ){ alert( "Исключение: " + e ); },
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ); },
onComplete: function(t){ acp.template_editor.setLoadingMsg(''); }
});
},
@@ -970,8 +970,8 @@ _temp.prototype.template_editor = {
//Debug.dir( t.responseJSON );
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
onFailure: function( t ){ alert( "Failure: " + t.responseText ); },
onException: function( f,e ){ alert( "Исключение: " + e ); },
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ); },
onComplete: function(t){ acp.template_editor.setLoadingMsg(''); }
});
},
@@ -1017,8 +1017,8 @@ _temp.prototype.template_editor = {
//Debug.dir( template );
acp.template_editor.openTemplateBit( templateid, template );
},
onException: function( f,e ){ alert( "Exception: " + e ); },
onFailure: function( t ){ alert( "Failure: " + t.responseText ); },
onException: function( f,e ){ alert( "Исключение: " + e ); },
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ); },
onComplete: function(t){ acp.template_editor.setLoadingMsg(''); }
} );
},
@@ -1331,8 +1331,8 @@ _temp.prototype.template_editor = {
acp.template_editor._buildCSS( true );
},
onException: function( f,e ){ alert( "Exception: " + e ); },
onFailure: function( t ){ alert( "Failure: " + t.responseText ); },
onException: function( f,e ){ alert( "Исключение: " + e ); },
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ); },
onComplete: function(t){ acp.template_editor.setLoadingMsg(''); }
});
},
@@ -1450,8 +1450,8 @@ _temp.prototype.template_editor = {
acp.template_editor.popups.get('variables_' + fileid).hide();
},
onException: function( f,e ){ alert( "Exception: " + e ); },
onFailure: function( t ){ alert( "Failure: " + t.responseText ); },
onException: function( f,e ){ alert( "Исключение: " + e ); },
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ); },
onComplete: function(t){ acp.template_editor.setLoadingMsg(''); }
});
@@ -1563,8 +1563,8 @@ _temp.prototype.template_editor = {
acp.template_editor._buildCSS( true );
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
onFailure: function( t ){ alert( "Failure: " + t.responseText ); },
onException: function( f,e ){ alert( "Исключение: " + e ); },
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ); },
onComplete: function(t){ acp.template_editor.setLoadingMsg(''); }
});
},
@@ -1681,7 +1681,7 @@ _temp.prototype.template_editor = {
var _dims = document.viewport.getDimensions();
popup = new ipb.Popup( 'comparison', { type: 'pane', modal: true, w: ( _dims.width - 50 ) + 'px', h: ( _dims.height - 50 ) + 'px', ajaxURL: url, hideAtStart: false, close: 'a[rel="close"]' }, { 'afterAjax': _callback } );
popup = new ipb.Popup( 'comparison', { type: 'pane', modal: true, w: ( _dims.width - 50 ) + 'px', h: ( _dims.height - 50 ), ajaxURL: url, hideAtStart: false, close: 'a[rel="close"]' }, { 'afterAjax': _callback } );
return false;
},
+13 -20
View File
@@ -36,15 +36,6 @@ _uagents.prototype.uagents = {
onSuccess: function(t)
{
Debug.write( t.responseText );
doStriping();
},
onException: function(t)
{
doStriping();
},
onFailure: function(t)
{
doStriping();
}
});
},
@@ -83,7 +74,6 @@ _uagents.prototype.uagents = {
acp.uagents.json = t.responseJSON;
$('uagent_' + id).remove();
doStriping();
}
});
},
@@ -203,12 +193,12 @@ _uagents.prototype.uagents = {
}
acp.uagents.json = t.responseJSON;
if( id == 'new' )
{
var newparams = {
'id': t.responseJSON['returnid'],
'name': params['uagent_name'],
'name': unescape(params['uagent_name']),
'type': params['uagent_type']
};
@@ -223,33 +213,36 @@ _uagents.prototype.uagents = {
$('uagent_regex_new').value = '';
$('uagent_capture_new').value = '';
$('uagent_position_new').value = 0;
doStriping();
/* Update ID */
id = newparams['id'];
}
else
{
$('agent_' + id + '_edit').stopObserving();
$('agent_' + id + '_delete').stopObserving();
/* Update contents so that the name and image are updated in place */
var newparams = {
'id': id,
'name': unescape(params['uagent_name']),
'type': params['uagent_type']
};
// Need to add it to the list
var html = ipb.templates['agent_row'].evaluate( newparams );
$('uagent_' + id ).update( html.replace( /^<li([^>]+?)>(.*)<\/li>/, "$2" ) );
acp.uagents.popups[ id ].hide();
}
/* Reset listeners */
$('agent_' + id + '_edit').observe('click', acp.uagents.editAgent.bindAsEventListener( this, id ) );
$('agent_' + id + '_delete').observe('click', acp.uagents.deleteAgent.bindAsEventListener( this, id ) );
ipb.global.showInlineNotification( ipb.lang['useragent_saved'], { showClose: true } );
/* Reset sortable */
Sortable.create( 'sortable_handle', { tag: 'li', only: 'isDraggable', revert: true, format: 'uagent_([0-9]+)', handle: 'draghandle', onUpdate: acp.uagents.updateAgents } );
}
+1 -1
View File
@@ -332,7 +332,7 @@ function ipsUpgrade()
if ( ! t.responseText.match( /^(\s+?)?\{/ ) )
{
alert( "Error:\n" + t.responseText );
alert( "Ошибка:\n" + t.responseText );
return;
}
+1 -1
View File
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>