1 // WCF.Combined.min.js -- DO NOT EDIT
7 // - WCF.Attachment.min.js
8 // - WCF.ColorPicker.min.js
9 // - WCF.Comment.min.js
10 // - WCF.ImageViewer.min.js
12 // - WCF.Location.min.js
13 // - WCF.Message.min.js
14 // - WCF.Moderation.min.js
16 // - WCF.Search.Message.min.js
17 // - WCF.Tagging.min.js
21 (function(){var c
=jQuery
.fn
.data
;jQuery
.fn
.data=function(f
,h
){if(f
){switch(typeof f
){case"object":for(var g
in f
){if(g
.match(/ID$/)){var e
=f
[g
];delete f
[g
];g
=g
.replace(/ID$/,"-id");f
[g
]=e
}}arguments
[0]=f
;break;case"string":if(f
.match(/ID$/)){arguments
[0]=f
.replace(/ID$/,"-id")}break}}var d
=c
.apply(this,arguments
);if(f
===undefined){for(var g
in d
){if(g
.match(/Id$/)){d
[g
.replace(/Id$/,"ID")]=d
[g
];delete d
[g
]}}}return d
};if(!window
.console
){window
.console
={}}var b
=["log","info","warn","exception","assert","dir","dirxml","trace","group","groupEnd","groupCollapsed","profile","profileEnd","count","clear","time","timeEnd","timeStamp","table","error"];for(var a
=0;a
<b
.length
;a
++){if(typeof(console
[b
[a
]])==="undefined"){console
[b
[a
]]=function(){}}}if(typeof(console
.debug
)==="undefined"){console
.debug=function(d
){console
.log(d
)}}})();(function(){var d
=false,c
=/xyz/.test(function(){xyz
})?/\b_super\b/:/.*/;this.Class=function(){};Class
.extend=function(j
){function a(){if(!d
&&this.init
){this.init
.apply(this,arguments
)}}var i
=this.prototype;d
=true;var h
=new this;d
=false;for(var b
in j
){h
[b
]=typeof j
[b
]=="function"&&typeof i
[b
]=="function"&&c
.test(j
[b
])?function(f
,e
){return function(){var k
=this._super
;this._super
=i
[f
];var g
=e
.apply(this,arguments
);this._super
=k
;return g
}}(b
,j
[b
]):j
[b
]}a
.prototype=h
;a
.prototype.constructor=a
;a
.extend
=arguments
.callee
;return a
}})();
22 /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
23 window
.matchMedia
||(window
.matchMedia=function(){var c
=window
.styleMedia
||window
.media
;if(!c
){var a
=document
.createElement("style"),d
=document
.getElementsByTagName("script")[0],b
=null;a
.type
="text/css";a
.id
="matchmediajs-test";d
.parentNode
.insertBefore(a
,d
);b
="getComputedStyle" in window
&&window
.getComputedStyle(a
,null)||a
.currentStyle
;c
={matchMedium:function(f
){var g
="@media "+f
+"{ #matchmediajs-test { width: 1px; } }";if(a
.styleSheet
){a
.styleSheet
.cssText
=g
}else{a
.textContent
=g
}return b
.width
==="1px"}}}return function(e
){return{matches
:c
.matchMedium(e
||"all"),media
:e
||"all"}}}());
24 /*! matchMedia() polyfill addListener/removeListener extension. Author & copyright (c) 2012: Scott Jehl. Dual MIT/BSD license */
25 (function(){if(window
.matchMedia
&&window
.matchMedia("all").addListener
){return false}var f
=window
.matchMedia
,b
=f("only all").matches
,g
=false,d
=0,a
=[],c=function(e
){clearTimeout(d
);d
=setTimeout(function(){for(var j
=0,p
=a
.length
;j
<p
;j
++){var l
=a
[j
].mql
,k
=a
[j
].listeners
||[],m
=f(l
.media
).matches
;if(m
!==l
.matches
){l
.matches
=m
;for(var i
=0,h
=k
.length
;i
<h
;i
++){k
[i
].call(window
,l
)}}}},30)};window
.matchMedia=function(i
){var j
=f(i
),h
=[],e
=0;j
.addListener=function(k
){if(!b
){return}if(!g
){g
=true;window
.addEventListener("resize",c
,true)}if(e
===0){e
=a
.push({mql
:j
,listeners
:h
})}h
.push(k
)};j
.removeListener=function(l
){for(var k
=0,m
=h
.length
;k
<m
;k
++){if(h
[k
]===l
){h
.splice(k
,1)}}};return j
}})();
27 * enquire.js v2.1.0 - Awesome Media Queries in JavaScript
28 * Copyright (c) 2013 Nick Williams - http://wicky.nillia.ms/enquire.js
29 * License: MIT (http://www.opensource.org/licenses/mit-license.php)
31 (function(b
,a
,d
){var c
=a
.matchMedia
;"undefined"!=typeof module
&&module
.exports
?module
.exports
=d(c
):"function"==typeof define
&&define
.amd
?define(function(){return a
[b
]=d(c
)}):a
[b
]=d(c
)})("enquire",this,function(b
){function a(k
,j
){var o
,m
=0,l
=k
.length
;for(m
;l
>m
&&(o
=j(k
[m
],m
),o
!==!1);m
++){}}function h(e
){return"[object Array]"===Object
.prototype.toString
.apply(e
)}function f(e
){return"function"==typeof e
}function c(e
){this.options
=e
,!e
.deferSetup
&&this.setup()}function g(j
,l
){this.query
=j
,this.isUnconditional
=l
,this.handlers
=[],this.mql
=b(j
);var k
=this;this.listener=function(e
){k
.mql
=e
,k
.assess()},this.mql
.addListener(this.listener
)}function d(){if(!b
){throw Error("matchMedia not present, legacy browsers require a polyfill")}this.queries
={},this.browserIsIncapable
=!b("only all").matches
}return c
.prototype={setup:function(){this.options
.setup
&&this.options
.setup(),this.initialised
=!0},on:function(){!this.initialised
&&this.setup(),this.options
.match
&&this.options
.match()},off:function(){this.options
.unmatch
&&this.options
.unmatch()},destroy:function(){this.options
.destroy
?this.options
.destroy():this.off()},equals:function(e
){return this.options
===e
||this.options
.match
===e
}},g
.prototype={addHandler:function(j
){var e
=new c(j
);this.handlers
.push(e
),this.matches()&&e
.on()},removeHandler:function(e
){var i
=this.handlers
;a(i
,function(j
,k
){return j
.equals(e
)?(j
.destroy(),!i
.splice(k
,1)):void 0})},matches:function(){return this.mql
.matches
||this.isUnconditional
},clear:function(){a(this.handlers
,function(e
){e
.destroy()}),this.mql
.removeListener(this.listener
),this.handlers
.length
=0},assess:function(){var e
=this.matches()?"on":"off";a(this.handlers
,function(j
){j
[e
]()})}},d
.prototype={register:function(i
,k
,l
){var j
=this.queries
,e
=l
&&this.browserIsIncapable
;return j
[i
]||(j
[i
]=new g(i
,e
)),f(k
)&&(k
={match
:k
}),h(k
)||(k
=[k
]),a(k
,function(m
){j
[i
].addHandler(m
)}),this},unregister:function(j
,e
){var k
=this.queries
[j
];return k
&&(e
?k
.removeHandler(e
):(k
.clear(),delete this.queries
[j
])),this}},new d
});
32 /*! head.load - v1.0.3 */
33 (function(S
,L
){function I(){}function K(d
,b
){if(d
){typeof d
=="object"&&(d
=[].slice
.call(d
));for(var a
=0,c
=d
.length
;a
<c
;a
++){b
.call(d
,d
[a
],a
)}}}function C(c
,a
){var b
=Object
.prototype.toString
.call(a
).slice(8,-1);return a
!==L
&&a
!==null&&b
===c
}function M(a
){return C("Function",a
)}function ag(a
){return C("Array",a
)}function P(d
){var b
=d
.split("/"),a
=b
[b
.length
-1],c
=a
.indexOf("?");return c
!==-1?a
.substring(0,c
):a
}function Z(a
){(a
=a
||I
,a
._done
)||(a(),a
._done
=1)}function E(h
,b
,c
,a
){var d
=typeof h
=="object"?h
:{test
:h
,success
:!b
?!1:ag(b
)?b
:[b
],failure
:!c
?!1:ag(c
)?c
:[c
],callback
:a
||I
},g
=!!d
.test
;return g
&&!!d
.success
?(d
.success
.push(d
.callback
),W
.load
.apply(null,d
.success
)):g
||!d
.failure
?a():(d
.failure
.push(d
.callback
),W
.load
.apply(null,d
.failure
)),W
}function J(d
){var b
={},a
,c
;if(typeof d
=="object"){for(a
in d
){!d
[a
]||(b
={name
:a
,url
:d
[a
]})}}else{b
={name
:P(d
),url
:d
}}return(c
=ae
[b
.name
],c
&&c
.url
===b
.url
)?c
:(ae
[b
.name
]=b
,b
)}function H(b
){b
=b
||ae
;for(var a
in b
){if(b
.hasOwnProperty(a
)&&b
[a
].state
!==T
){return !1}}return !0}function q(a
){a
.state
=B
;K(a
.onpreload
,function(b
){b
.call()})}function R(a
){a
.state
===L
&&(a
.state
=V
,a
.onpreload
=[],F({url
:a
.url
,type
:"cache"},function(){q(a
)}))}function A(){var d
=arguments
,a
=d
[d
.length
-1],b
=[].slice
.call(d
,1),c
=b
[0];return(M(a
)||(a
=null),ag(d
[0]))?(d
[0].push(a
),W
.load
.apply(null,d
[0]),W
):(c
?(K(b
,function(e
){M(e
)||!e
||R(J(e
))}),af(J(d
[0]),M(c
)?c:function(){W
.load
.apply(null,b
)})):af(J(d
[0])),W
)}function D(){var c
=arguments
,a
=c
[c
.length
-1],b
={};return(M(a
)||(a
=null),ag(c
[0]))?(c
[0].push(a
),W
.load
.apply(null,c
[0]),W
):(K(c
,function(d
){d
!==a
&&(d
=J(d
),b
[d
.name
]=d
)}),K(c
,function(d
){d
!==a
&&(d
=J(d
),af(d
,function(){H(b
)&&Z(a
)}))}),W
)}function af(b
,a
){if(a
=a
||I
,b
.state
===T
){a();return}if(b
.state
===aa
){W
.ready(b
.name
,a
);return}if(b
.state
===V
){b
.onpreload
.push(function(){af(b
,a
)});return}b
.state
=aa
;F(b
,function(){b
.state
=T
;a();K(X
[b
.name
],function(c
){Z(c
)});Q
&&H()&&K(X
.ALL
,function(c
){Z(c
)})})}function j(b
){b
=b
||"";var a
=b
.split("?")[0].split(".");return a
[a
.length
-1].toLowerCase()}function F(c
,b
){function l(e
){e
=e
||S
.event
;a
.onload
=a
.onreadystatechange
=a
.onerror
=null;b()}function n(e
){e
=e
||S
.event
;(e
.type
==="load"||/loaded
|complete
/.test(a.readyState)&&(!N.documentMode||N.documentMode<9))&&(S.clearTimeout(c.errorTimeout),S.clearTimeout(c.cssTimeout),a.onload=a.onreadystatechange=a.onerror=null,b())}function g(){if(c.state!==T&&c.cssRetries<=20){for(var e=0,h=N.styleSheets.length;e<h;e++){if(N.styleSheets[e].href===a.href){n({type:"load"});return}}c.cssRetries++;c.cssTimeout=S.setTimeout(g,250)}}var a,d,k;b=b||I;d=j(c.url);d==="css"?(a=N.createElement("link"),a.type="text/"+(c.type||"css
"),a.rel="stylesheet
",a.href=c.url,c.cssRetries=0,c.cssTimeout=S.setTimeout(g,500)):(a=N.createElement("script
"),a.type="text
/"+(c.type||"javascript"),a.src=c.url);a.onload=a.onreadystatechange=n;a.onerror=l;a.async=!1;a.defer=!1;c.errorTimeout=S.setTimeout(function(){l({type:"timeout"})},7000);k=N.head||N.getElementsByTagName("head")[0];k.insertBefore(a,k.lastChild)}function x(){for(var b,a=N.getElementsByTagName("script"),d=0,c=a.length;d<c;d++){if(b=a[d].getAttribute("data-headjs-load"),!!b){W.load(b);return}}}function z(f,b){var a,d,c;return f===N?(Q?Z(b):ad.push(b),W):(M(f)&&(b=f,f="ALL"),ag(f))?(a={},K(f,function(e){a[e]=ae[e];W.ready(e,function(){H(a)&&Z(b)})}),W):typeof f!="string"||!M(b)?W:(d=ae[f],d&&d.state===T||f==="ALL"&&H()&&Q)?(Z(b),W):(c=X[f],c?c.push(b):c=X[f]=[b],W)}function ab(){if(!N.body){S.clearTimeout(W.readyTimeout);W.readyTimeout=S.setTimeout(ab,50);return}Q||(Q=!0,x(),K(ad,function(a){Z(a)}))}function U(){N.addEventListener?(N.removeEventListener("DOMContentLoaded",U,!1),ab()):N.readyState==="complete"&&(N.detachEvent("onreadystatechange",U),ab())}var N=S.document,ad=[],X={},ae={},G="async" in N.createElement("script")||"MozAppearance" in N.documentElement.style||S.opera,Q,Y=S.head_conf&&S.head_conf.head||"head",W=S[Y]=S[Y]||function(){W.ready.apply(null,arguments)},V=1,B=2,aa=3,T=4,O;if(N.readyState==="complete"){ab()}else{if(N.addEventListener){N.addEventListener("DOMContentLoaded",U,!1),S.addEventListener("load",ab,!1)}else{N.attachEvent("onreadystatechange",U);S.attachEvent("onload",ab);O=!1;try{O=!S.frameElement&&N.documentElement}catch(ac){}O&&O.doScroll&&function m(){if(!Q){try{O.doScroll("left")}catch(a){S.clearTimeout(W.readyTimeout);W.readyTimeout=S.setTimeout(m,50);return}ab()}}()}}W.load=W.js=G?D:A;W.test=E;W.ready=z;W.ready(N,function(){H()&&K(X.ALL,function(a){Z(a)});W.feature&&W.feature("domloaded",!0)})})(window);String.prototype.hashCode=function(){var a;var b=0;if(this.length){for(var d=0,c=this.length;d<c;d++){a=this.charCodeAt(d);b=((b<<5)-b)+a;b=b&b}}return b};function shuffle(d){var c=d.length,b,a;while(0!==c){a=Math.floor(Math.random()*c);c-=1;b=d[c];d[c]=d[a];d[a]=b}return this}(function(){var c=navigator.userAgent.toLowerCase();var b=/(chrome
)[ \/]([\w.]+)/.exec(c
)||/(webkit)[ \/]([\w.]+)/.exec(c
)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(c
)||/(msie) ([\w.]+)/.exec(c
)||c
.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(c
)||[];var a
={browser
:b
[1]||"",version
:b
[2]||"0"};browser
={};if(a
.browser
){browser
[a
.browser
]=true;browser
.version
=a
.version
}if(browser
.chrome
){browser
.webkit
=true}else{if(browser
.webkit
){browser
.safari
=true}}jQuery
.browser
=browser
;jQuery
.browser
.touch
=(!!("ontouchstart" in window
)||(!!("msMaxTouchPoints" in window
.navigator
)&&window
.navigator
.msMaxTouchPoints
>0));jQuery
.browser
.smartphone
=($("html").css("caption-side")=="bottom");jQuery
.browser
.editor
="redactor";jQuery
.browser
.ckeditor
=false;jQuery
.browser
.redactor
=true;if(jQuery
.browser
.mozilla
&&c
.match(/trident/)){jQuery
.browser
.mozilla
=false;jQuery
.browser
.msie
=true}})();(function(b
){(jQuery
.browser
=jQuery
.browser
||{}).mobile
=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(b
)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(b
.substr(0,4))})(navigator
.userAgent
||navigator
.vendor
||window
.opera
);var WCF
={};$.extend(true,{removeArrayValue:function(b
,a
){return $.grep(b
,function(d
,c
){return a
!==d
})},wcfEscapeID:function(a
){return a
.replace(/(:|\.)/g,"\\$1")},wcfIsset:function(a
){return !!$("#"+$.wcfEscapeID(a
)).length
},getLength:function(a
){var c
=0;for(var b
in a
){if(a
.hasOwnProperty(b
)){c
++}}return c
}});$.fn
.extend({getTagName:function(){return(this.length
)?this.get(0).tagName
.toLowerCase():""},getDimensions:function(b
){var c
=css
={};var a
=false;if(this.is(":hidden")){css
=WCF
.getInlineCSS(this);a
=true;this.css({display
:"block",visibility
:"hidden"})}switch(b
){case"inner":c
={height
:this.innerHeight(),width
:this.innerWidth()};break;case"outer":c
={height
:this.outerHeight(),width
:this.outerWidth()};break;default:c
={height
:this.height(),width
:this.width()};break}if(a
){WCF
.revertInlineCSS(this,css
,["display","visibility"])}return c
},getOffsets:function(b
){var c
=css
={};var a
=false;if(this.is(":hidden")){css
=WCF
.getInlineCSS(this);a
=true;this.css({display
:"block",visibility
:"hidden"})}switch(b
){case"offset":c
=this.offset();break;case"position":default:c
=this.position();break}if(a
){WCF
.revertInlineCSS(this,css
,["display","visibility"])}return c
},makePositioned:function(a
,b
){if(a
!="absolute"&&a
!="fixed"){a
="absolute"}var c
=this.getOffsets("position");this.css({position
:a
,left
:c
.left
,margin
:0,top
:c
.top
});if(b
){this.remove().appentTo("body")}return this},disable:function(){return this.attr("disabled","disabled")},enable:function(){return this.removeAttr("disabled")},wcfIdentify:function(){if(!this.attr("id")){this.attr("id",WCF
.getRandomID())}return this.attr("id")},getCaret:function(){if(this.is("input")){if(this.attr("type")!="text"&&this.attr("type")!="password"){return -1}}else{if(!this.is("textarea")){return -1}}var c
=0;var b
=this.get(0);if(document
.selection
){this.focus();var a
=document
.selection
.createRange();a
.moveStart("character",-this.val().length
);c
=a
.text
.length
}else{if(b
.selectionStart
||b
.selectionStart
=="0"){c
=parseInt(b
.selectionStart
)}}return c
},setCaret:function(b
){if(this.is("input")){if(this.attr("type")!="text"&&this.attr("type")!="password"){return false}}else{if(!this.is("textarea")){return false}}var c
=this.get(0);this.focus();if(document
.selection
){var a
=document
.selection
.createRange();a
.moveStart("character",b
);a
.moveEnd("character",0);a
.select()}else{if(c
.selectionStart
||c
.selectionStart
=="0"){c
.selectionStart
=b
;c
.selectionEnd
=b
}}return true},wcfDropIn:function(b
,c
,a
){if(!b
){b
="up"}if(!a
||!parseInt(a
)){a
=200}return this.show(WCF
.getEffect(this,"drop"),{direction
:b
},a
,c
)},wcfDropOut:function(b
,c
,a
){if(!b
){b
="down"}if(!a
||!parseInt(a
)){a
=200}return this.hide(WCF
.getEffect(this,"drop"),{direction
:b
},a
,c
)},wcfBlindIn:function(b
,c
,a
){if(!b
){b
="vertical"}if(!a
||!parseInt(a
)){a
=200}return this.show(WCF
.getEffect(this,"blind"),{direction
:b
},a
,c
)},wcfBlindOut:function(b
,c
,a
){if(!b
){b
="vertical"}if(!a
||!parseInt(a
)){a
=200}return this.hide(WCF
.getEffect(this,"blind"),{direction
:b
},a
,c
)},wcfHighlight:function(a
,b
){return this.effect("highlight",a
,600,b
)},wcfFadeIn:function(b
,a
){if(!a
||!parseInt(a
)){a
=200}return this.show(WCF
.getEffect(this,"fade"),{},a
,b
)},wcfFadeOut:function(b
,a
){if(!a
||!parseInt(a
)){a
=200}return this.hide(WCF
.getEffect(this,"fade"),{},a
,b
)}});$.extend(WCF
,{activeDialogs
:0,_idCounter
:0,getRandomID:function(){var a
="";do{a
="wcf"+this._idCounter
++}while($.wcfIsset(a
));return a
},inArray:function(b
,a
){return($.inArray(b
,a
)!=-1)},getEffect:function(a
,b
){if(a
.is("tr")){return"highlight"}return b
},getInlineCSS:function(b
){var c
={};var a
=b
.attr("style");if(!a
){return{}}a
=a
.split(";");for(var f
=0,d
=a
.length
;f
<d
;f
++){var e
=$.trim(a
[f
]);if(e
==""){continue}e
=e
.split(":");c
[$.trim(e
[0])]=$.trim(e
[1])}return c
},revertInlineCSS:function(a
,c
,e
){for(var f
=0,d
=e
.length
;f
<d
;f
++){var b
=e
[f
];if(c
[b
]){a
.css(b
,c
[b
])}else{a
.css(b
,"")}}}});WCF
.Browser
={_isChrome
:null,isChrome:function(){if(this._isChrome
===null){this._isChrome
=false;if(/chrom(e|ium)/.test(navigator
.userAgent
.toLowerCase())){this._isChrome
=true}}return this._isChrome
}};WCF
.Dropdown
={_callbacks
:{},_didInit
:false,_dropdowns
:{},_menuContainer
:null,_menus
:{},init:function(){if(this._menuContainer
===null){this._menuContainer
=$('<div id="dropdownMenuContainer" />').appendTo(document
.body
)}var a
=this;$(".dropdownToggle:not(.jsDropdownEnabled)").each(function(b
,c
){a
.initDropdown($(c
),false)});if(!this._didInit
){this._didInit
=true;WCF
.CloseOverlayHandler
.addCallback("WCF.Dropdown",$.proxy(this._closeAll
,this));WCF
.DOMNodeInsertedHandler
.addCallback("WCF.Dropdown",$.proxy(this.init
,this));$(document
).on("scroll",$.proxy(this._scroll
,this))}},_dialogScroll:function(b
){var a
=$(b
.currentTarget
);a
.find(".dropdown.dropdownOpen").each(function(d
,f
){var i
=$(f
);var e
=i
.wcfIdentify();var g
=i
.offset();var c
=a
.offset();var h
=$(f
).height()/2;if(g
.top
+h
<=c
.top
){WCF
.Dropdown
.toggleDropdown(e
)}else{if(g
.top
>=c
.top
+a
.height()){WCF
.Dropdown
.toggleDropdown(e
)}else{if(g
.left
<=c
.left
){WCF
.Dropdown
.toggleDropdown(e
)}else{if(g
.left
>=c
.left
+a
.width()){WCF
.Dropdown
.toggleDropdown(e
)}else{WCF
.Dropdown
.setAlignmentByID(i
.wcfIdentify())}}}}})},_scroll:function(b
){for(var a
in this._dropdowns
){var c
=this._dropdowns
[a
];if(c
.data("isOverlayDropdownButton")&&c
.hasClass("dropdownOpen")){this.setAlignmentByID(a
)}}},initDropdown:function(b
,d
){if(b
.hasClass("jsDropdownEnabled")||b
.data("target")){return}var e
=b
.parents(".dropdown");if(!e
.length
){console
.debug("[WCF.Dropdown] Invalid dropdown passed, button '"+b
.wcfIdentify()+"' does not have a parent with .dropdown, aborting.");return}var a
=b
.next(".dropdownMenu");if(!a
.length
){console
.debug("[WCF.Dropdown] Invalid dropdown passed, dropdown '"+e
.wcfIdentify()+"' does not have a dropdown menu, aborting.");return}a
.detach().appendTo(this._menuContainer
);var c
=e
.wcfIdentify();if(!this._dropdowns
[c
]){b
.addClass("jsDropdownEnabled").click($.proxy(this._toggle
,this));this._dropdowns
[c
]=e
;this._menus
[c
]=a
}b
.data("target",c
);if(d
){b
.trigger("click")}},removeDropdown:function(a
){if(this._menus
[a
]){$(this._menus
[a
]).remove();delete this._menus
[a
];delete this._dropdowns
[a
]}},initDropdownFragment:function(c
,a
){var b
=c
.wcfIdentify();if(this._dropdowns
[b
]){console
.debug("[WCF.Dropdown] Cannot register dropdown identified by '"+b
+"' as a fragement.");return}this._dropdowns
[b
]=c
;this._menus
[b
]=a
.detach().appendTo(this._menuContainer
)},registerCallback:function(a
,b
){if(!$.isFunction(b
)){console
.debug("[WCF.Dropdown] Callback for '"+a
+"' is invalid");return false}if(!this._callbacks
[a
]){this._callbacks
[a
]=[]}this._callbacks
[a
].push(b
)},_toggle:function(g
,e
){var b
=(g
===null)?e
:$(g
.currentTarget
).data("target");var a
=this._dropdowns
[b
];if(a
&&a
.data("isOverlayDropdownButton")===undefined){var d
=a
.parents(".dialogContent");a
.data("isOverlayDropdownButton",d
.length
>0);if(d
.length
){d
.on("scroll",this._dialogScroll
)}}for(var f
in this._dropdowns
){var h
=this._dropdowns
[f
];var c
=this._menus
[f
];if(h
.hasClass("dropdownOpen")){h
.removeClass("dropdownOpen");c
.removeClass("dropdownOpen");this._notifyCallbacks(f
,"close")}else{if(f
===b
){h
.addClass("dropdownOpen");c
.addClass("dropdownOpen");this._notifyCallbacks(f
,"open");this.setAlignment(h
,c
)}}}if(g
!==null){g
.stopPropagation();return false}},toggleDropdown:function(a
){this._toggle(null,a
)},getDropdown:function(a
){if(this._dropdowns
[a
]){return this._dropdowns
[a
]}return null},getDropdownMenu:function(a
){if(this._menus
[a
]){return this._menus
[a
]}return null},setAlignmentByID:function(a
){var c
=this.getDropdown(a
);if(c
===null){console
.debug("[WCF.Dropdown] Unable to find dropdown identified by '"+a
+"'")}var b
=this.getDropdownMenu(a
);if(b
===null){console
.debug("[WCF.Dropdown] Unable to find dropdown menu identified by '"+a
+"'")}this.setAlignment(c
,b
)},setAlignment:function(o
,f
){if(!f
.data("isInitialized")){f
.data("isInitialized",true).css({left
:0,top
:0})}var c
=o
.getDimensions("outer");var j
=o
.getOffsets("offset");var k
=f
.getDimensions("outer");var d
=$(window
).width();var a
=o
.find(".dropdownToggle");if(a
.hasClass("dropdownCaptionTextarea")){c
=a
.getDimensions("outer")}var h
="left";if((j
.left
+k
.width
)>d
){h
="right"}var b
="auto";var n
="auto";if(h
==="left"){f
.removeClass("dropdownArrowRight");b
=j
.left
}else{f
.addClass("dropdownArrowRight");n
=(d
-(j
.left
+c
.width
))}if(WCF
.Language
.get("wcf.global.pageDirection")=="rtl"){var l
=b
;var g
=n
;if(b
=="auto"){f
.removeClass("dropdownArrowRight")}else{n
=d
-(j
.left
+c
.width
);b
="auto";if(n
+k
.width
>d
){b
=l
;n
=g
;f
.addClass("dropdownArrowRight")}}}if(b
=="auto"){n
+="px"}else{b
+="px"}var m
=true;if(f
.hasClass("dropdownOpen")){m
=false;f
.removeClass("dropdownOpen")}var i
="auto";var e
=j
.top
+c
.height
+7;if(e
+k
.height
>$(window
).height()+$(document
).scrollTop()){i
=$(window
).height()-j
.top
+10;e
="auto";f
.addClass("dropdownArrowBottom")}else{f
.removeClass("dropdownArrowBottom")}if(!m
){f
.addClass("dropdownOpen")}f
.css({bottom
:i
,left
:b
,right
:n
,top
:e
})},_closeAll:function(){for(var a
in this._dropdowns
){var b
=this._dropdowns
[a
];if(b
.hasClass("dropdownOpen")){b
.removeClass("dropdownOpen");this._menus
[a
].removeClass("dropdownOpen");this._notifyCallbacks(a
,"close")}}},close:function(a
){if(!this._dropdowns
[a
]){return}this._dropdowns
[a
].removeClass("dropdownMenu");this._menus
[a
].removeClass("dropdownMenu")},_notifyCallbacks:function(a
,b
){if(!this._callbacks
[a
]){return}for(var d
=0,c
=this._callbacks
[a
].length
;d
<c
;d
++){this._callbacks
[a
][d
](a
,b
)}}};WCF
.Clipboard
={_actionProxy
:null,_actionObjects
:{},_containers
:null,_containerData
:{},_hasMarkedItems
:false,_markedObjectIDs
:{},_page
:"",_pageObjectID
:0,_proxy
:null,_trackedElements
:{},init:function(d
,b
,e
,c
){this._page
=d
;this._actionObjects
=e
||{};this._hasMarkedItems
=(b
>0);this._pageObjectID
=parseInt(c
)||0;this._actionProxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._actionSuccess
,this),url
:"index.php/ClipboardProxy/?t="+SECURITY_TOKEN
+SID_ARG_2ND
});this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this),url
:"index.php/Clipboard/?t="+SECURITY_TOKEN
+SID_ARG_2ND
});this._containers
=$(".jsClipboardContainer").each($.proxy(function(g
,f
){this._initContainer(f
)},this));if(this._hasMarkedItems
&&this._containers
.length
){this._loadMarkedItems()}var a
=this;WCF
.DOMNodeInsertedHandler
.addCallback("WCF.Clipboard",function(){a
._containers
=$(".jsClipboardContainer").each($.proxy(function(g
,f
){a
._initContainer(f
)},a
))})},_loadMarkedItems:function(){new WCF
.Action
.Proxy({autoSend
:true,data
:{containerData
:this._containerData
,pageClassName
:this._page
,pageObjectID
:this._pageObjectID
},success
:$.proxy(this._loadMarkedItemsSuccess
,this),url
:"index.php/ClipboardLoadMarkedItems/?t="+SECURITY_TOKEN
+SID_ARG_2ND
})},reload:function(){if(this._containers
===null){return}this._loadMarkedItems()},_loadMarkedItemsSuccess:function(d
,f
,c
){this._resetMarkings();for(var a
in d
.markedItems
){if(!this._markedObjectIDs
[a
]){this._markedObjectIDs
[a
]=[]}var b
=d
.markedItems
[a
];for(var e
in b
){this._markedObjectIDs
[a
].push(b
[e
])}this._containers
.each($.proxy(function(h
,g
){var i
=$(g
);if(i
.data("type")!=a
){return true}i
.find("input.jsClipboardItem").each($.proxy(function(l
,k
){var j
=$(k
);if(WCF
.inArray(j
.data("objectID"),this._markedObjectIDs
[a
])){j
.prop("checked",true);j
.parents(".jsClipboardObject").addClass("jsMarked")}},this));i
.find("input.jsClipboardMarkAll").each(function(l
,k
){var j
=true;i
.find("input.jsClipboardItem").each(function(n
,o
){var m
=$(o
);if(!m
.prop("checked")){j
=false}});if(j
){$(k
).prop("checked",true)}})},this))}this._success(d
,f
,c
)},_resetMarkings:function(){this._containers
.each($.proxy(function(b
,a
){var c
=$(a
);this._markedObjectIDs
[c
.data("type")]=[];c
.find("input.jsClipboardItem, input.jsClipboardMarkAll").prop("checked",false);c
.find(".jsClipboardObject").removeClass("jsMarked")},this))},_initContainer:function(a
){var c
=$(a
);var b
=c
.wcfIdentify();if(!this._trackedElements
[b
]){c
.find(".jsClipboardMarkAll").data("hasContainer",b
).click($.proxy(this._markAll
,this));this._markedObjectIDs
[c
.data("type")]=[];this._containerData
[c
.data("type")]={};$.each(c
.data(),$.proxy(function(d
,e
){if(d
.match(/^type(.+)/)){this._containerData
[c
.data("type")][WCF
.String
.lcfirst(d
.replace(/^type/,""))]=e
}},this));this._trackedElements
[b
]=[]}c
.find("input.jsClipboardItem").each($.proxy(function(f
,e
){var g
=$(e
);var d
=g
.wcfIdentify();if(!WCF
.inArray(d
,this._trackedElements
[b
])){this._trackedElements
[b
].push(d
);g
.data("hasContainer",b
).click($.proxy(this._click
,this))}},this))},_click:function(f
){var b
=$(f
.target
);var e
=b
.data("objectID");var h
=(b
.prop("checked"))?true:false;var d
=[e
];if(b
.data("hasContainer")){var g
=$("#"+b
.data("hasContainer"));var a
=g
.data("type")}else{var a
=b
.data("type")}if(h
){this._markedObjectIDs
[a
].push(e
);b
.parents(".jsClipboardObject").addClass("jsMarked")}else{this._markedObjectIDs
[a
]=$.removeArrayValue(this._markedObjectIDs
[a
],e
);b
.parents(".jsClipboardObject").removeClass("jsMarked")}if(b
.data("hasContainer")){var c
=true;g
.find("input.jsClipboardItem").each(function(j
,i
){var k
=$(i
);if(!k
.prop("checked")){c
=false}});g
.find(".jsClipboardMarkAll").each(function(i
,j
){if(c
){$(j
).prop("checked",true)}else{$(j
).prop("checked",false)}})}this._saveState(a
,d
,h
)},_markAll:function(d
){var b
=$(d
.target
);var c
=[];var f
=true;if(b
.is("input")){f
=b
.prop("checked")}if(b
.data("hasContainer")){var e
=$("#"+b
.data("hasContainer"));var a
=e
.data("type")}else{var a
=b
.data("type")}if(b
.data("hasContainer")){e
.find("input.jsClipboardItem").each($.proxy(function(h
,g
){var j
=$(g
);var i
=j
.data("objectID");if(f
){if(!j
.prop("checked")){j
.prop("checked",true);this._markedObjectIDs
[a
].push(i
);c
.push(i
)}}else{if(j
.prop("checked")){j
.prop("checked",false);this._markedObjectIDs
[a
]=$.removeArrayValue(this._markedObjectIDs
[a
],i
);c
.push(i
)}}},this));if(f
){e
.find(".jsClipboardObject").addClass("jsMarked")}else{e
.find(".jsClipboardObject").removeClass("jsMarked")}}this._saveState(a
,c
,f
)},_saveState:function(b
,c
,a
){this._proxy
.setOption("data",{action
:(a
)?"mark":"unmark",containerData
:this._containerData
,objectIDs
:c
,pageClassName
:this._page
,pageObjectID
:this._pageObjectID
,type
:b
});this._proxy
.sendRequest()},_success:function(data
,textStatus
,jqXHR
){var $containers
={};$(".jsClipboardEditor").each(function(index
,container
){var $container
=$(container
);var $types
=eval($container
.data("types"));for(var $i
=0,$length
=$types
.length
;$i
<$length
;$i
++){var $typeName
=$types
[$i
];$containers
[$typeName
]=$container
}var $containerID
=$container
.wcfIdentify();WCF
.CloseOverlayHandler
.removeCallback($containerID
);$container
.empty()});if(!data
.items
){return}for(var $typeName
in data
.items
){if(!$containers
[$typeName
]){continue}var $container
=$containers
[$typeName
];var $list
=$container
.children("ul");if($list
.length
==0){$list
=$("<ul />").appendTo($container
)}var $editor
=data
.items
[$typeName
];var $label
=$('<li class="dropdown"><span class="dropdownToggle button">'+$editor
.label
+"</span></li>").appendTo($list
);var $itemList
=$('<ol class="dropdownMenu"></ol>').appendTo($label
);for(var $itemIndex
in $editor
.items
){var $item
=$editor
.items
[$itemIndex
];var $listItem
=$("<li><span>"+$item
.label
+"</span></li>").appendTo($itemList
);$listItem
.data("container",$container
);$listItem
.data("objectType",$typeName
);$listItem
.data("actionName",$item
.actionName
).data("parameters",$item
.parameters
);$listItem
.data("internalData",$item
.internalData
).data("url",$item
.url
).data("type",$typeName
);$listItem
.click($.proxy(this._executeAction
,this))}$('<li class="dropdownDivider" />').appendTo($itemList
);var $foo
=$typeName
;$("<li><span>"+WCF
.Language
.get("wcf.clipboard.item.unmarkAll")+"</span></li>").data("typeName",$typeName
).appendTo($itemList
).click($.proxy(function(event
){var $typeName
=$(event
.currentTarget
).data("typeName");this._proxy
.setOption("data",{action
:"unmarkAll",type
:$typeName
});this._proxy
.setOption("success",$.proxy(function(data
,textStatus
,jqXHR
){this._containers
.each($.proxy(function(index
,container
){var $container
=$(container
);if($container
.data("type")==$typeName
){$container
.find(".jsClipboardMarkAll, .jsClipboardItem").prop("checked",false);$container
.find(".jsClipboardObject").removeClass("jsMarked");return false}},this));this._success(data
,textStatus
,jqXHR
);this._proxy
.setOption("success",$.proxy(this._success
,this));this._loadMarkedItems()},this));this._proxy
.sendRequest()},this));WCF
.Dropdown
.initDropdown($label
.children(".dropdownToggle"),false)}},_closeLists:function(){$(".jsClipboardEditor ul").removeClass("dropdownOpen")},_executeAction:function(e
){var c
=$(e
.currentTarget
);var d
=c
.data("url");if(d
){window
.location
.href
=d
}if(c
.data("parameters").className
&&c
.data("parameters").actionName
){if(c
.data("parameters").actionName
==="unmarkAll"||c
.data("parameters").objectIDs
){var b
=c
.data("internalData")["confirmMessage"];if(b
){var a
=c
.data("internalData")["template"];if(a
){a
=$(a
)}WCF
.System
.Confirmation
.show(b
,$.proxy(function(g
){if(g
==="confirm"){var f
={};if(a
&&a
.length
){$("#wcfSystemConfirmationContent").find("input, select, textarea").each(function(i
,j
){var h
=$(j
);f
[h
.prop("name")]=h
.val()})}this._executeAJAXActions(c
,f
)}},this),"",a
)}else{this._executeAJAXActions(c
,{})}}}c
.data("container").trigger("clipboardAction",[c
.data("type"),c
.data("actionName"),c
.data("parameters")])},_executeAJAXActions:function(d
,e
){e
=e
||{};var a
=[];if(d
.data("parameters").actionName
!=="unmarkAll"){$.each(d
.data("parameters").objectIDs
,function(g
,h
){a
.push(parseInt(h
))})}var b
={data
:e
,containerData
:this._containerData
[d
.data("type")]};var f
=d
.data("internalData")["parameters"];if(f
!==undefined){for(var c
in f
){b
[c
]=f
[c
]}}new WCF
.Action
.Proxy({autoSend
:true,data
:{actionName
:d
.data("parameters").actionName
,className
:d
.data("parameters").className
,objectIDs
:a
,parameters
:b
},success
:$.proxy(function(g
){if(d
.data("parameters").actionName
!=="unmarkAll"){d
.data("container").trigger("clipboardActionResponse",[g
,d
.data("type"),d
.data("actionName"),d
.data("parameters")])}this._loadMarkedItems()},this)});if(this._actionObjects
[d
.data("objectType")]&&this._actionObjects
[d
.data("objectType")][d
.data("parameters").actionName
]){this._actionObjects
[d
.data("objectType")][d
.data("parameters").actionName
].triggerEffect(a
)}},sendRequest:function(b
){var a
=$(b
);this._actionProxy
.setOption("data",{parameters
:a
.data("parameters"),typeName
:a
.data("type")});this._actionProxy
.sendRequest()}};WCF
.PeriodicalExecuter
=Class
.extend({_callback
:null,_delay
:0,_intervalID
:null,_isExecuting
:false,init:function(b
,a
){if(!$.isFunction(b
)){console
.debug("[WCF.PeriodicalExecuter] Given callback is invalid, aborting.");return}this._callback
=b
;this._interval
=a
;this.resume()},_execute:function(){if(!this._isExecuting
){try{this._isExecuting
=true;this._callback(this);this._isExecuting
=false}catch(a
){this._isExecuting
=false;throw a
}}},stop:function(){if(!this._intervalID
){return}clearInterval(this._intervalID
)},resume:function(){if(this._intervalID
){this.stop()}this._intervalID
=setInterval($.proxy(this._execute
,this),this._interval
)}});WCF
.LoadingOverlayHandler
={_activeRequests
:0,_loadingOverlay
:null,_pending
:null,show:function(){if(this._loadingOverlay
===null){this._loadingOverlay
=$('<div class="spinner"><span class="icon icon48 icon-spinner" /> <span>'+WCF
.Language
.get("wcf.global.loading")+"</span></div>").appendTo($("body"));var b
=this._loadingOverlay
.outerWidth();if(b
<70){b
=70}this._loadingOverlay
.css({marginLeft
:Math
.ceil(-1*b
/2),width:b}).hide()}this._activeRequests++;if(this._activeRequests==1){if(this._pending===null){var a=this;this._pending=new WCF.PeriodicalExecuter(function(c){if(a._activeRequests){a._loadingOverlay.stop(true,true).fadeIn(100)}c.stop();a._pending=null},250)}}},hide:function(){this._activeRequests--;if(this._activeRequests==0){if(this._pending!==null){this._pending.stop();this._pending=null}this._loadingOverlay.stop(true,true).fadeOut(100)}},updateIcon:function(b,c){var a=(c===undefined||c?"addClass":"removeClass");b.find(".icon")[a]("icon-spinner");if(b.hasClass("icon")){b[a]("icon-spinner")}}};WCF.Action={};WCF.Action.Proxy=Class.extend({_showLoadingOverlayOnce:false,_suppressErrors:false,_lastRequest:null,init:function(b){this.options=$.extend(true,{autoSend:false,data:{},dataType:"json",after:null,init:null,jsonp:"callback",async:true,failure:null,showLoadingOverlay:true,success:null,suppressErrors:false,type:"POST",url:"index.php/AJAXProxy
/?t="+SECURITY_TOKEN+SID_ARG_2ND,aborted:null,autoAbortPrevious:false},b);this.confirmationDialog=null;this.loading=null;this._showLoadingOverlayOnce=false;this._suppressErrors=(this.options.suppressErrors===true);if(this.options.autoSend){this.sendRequest()}var a=this;$(window).on("beforeunload",function(){a._suppressErrors=true})},sendRequest:function(a){this._init();if(a||this.options.autoAbortPrevious){this.abortPrevious()}this._lastRequest=$.ajax({data:this.options.data,dataType:this.options.dataType,jsonp:this.options.jsonp,async:this.options.async,type:this.options.type,url:this.options.url,success:$.proxy(this._success,this),error:$.proxy(this._failure,this)});return this._lastRequest},abortPrevious:function(){if(this._lastRequest!==null){this._lastRequest.abort();this._lastRequest=null}},showLoadingOverlayOnce:function(){this._showLoadingOverlayOnce=true},suppressErrors:function(){this._suppressErrors=true},_init:function(){if($.isFunction(this.options.init)){this.options.init(this)}if(this.options.showLoadingOverlay||this._showLoadingOverlayOnce){WCF.LoadingOverlayHandler.show()}},_failure:function(d,i,h){if(i=="abort"){if($.isFunction(this.options.aborted)){this.options.aborted(d)}return}try{var c=$.parseJSON(d.responseText);var f=true;if($.isFunction(this.options.failure)){f=this.options.failure(c,d,i,h)}if(!this._suppressErrors&&f!==false){var a="";if(c.stacktrace){a="<br /><p
>Stacktrace
:</p><p>"+c.stacktrace+"</p>"}else{if(c.exceptionID){a="<br
/><p>Exception ID: <code>"+c.exceptionID+"</code></p>"}}$('<div class="ajaxDebugMessage"><p>'+c.message+"</p>"+a+"</div>").wcfDialog({title:WCF.Language.get("wcf.global.error.title")})}}catch(g){var f=true;if($.isFunction(this.options.failure)){f=this.options.failure(null,d,i,h)}if(!this._suppressErrors&&f!==false){var b=(i==="timeout")?WCF.Language.get("wcf.global.error.timeout"):d.responseText;if(b&&b!="undefined"){$('<div class="ajaxDebugMessage"><p>'+b+"</p></div>").wcfDialog({title:WCF.Language.get("wcf.global.error.title")})}}}this._after()},_success:function(b,c,a){if($.isFunction(this.options.success)){if(b&&b.returnValues&&b.returnValues.template!==undefined){b.returnValues.template=$.trim(b.returnValues.template)}this.options.success(b,c,a)}this._after()},_after:function(){this._lastRequest=null;if($.isFunction(this.options.after)){this.options.after()}if(this.options.showLoadingOverlay||this._showLoadingOverlayOnce){WCF.LoadingOverlayHandler.hide();if(this._showLoadingOverlayOnce){this._showLoadingOverlayOnce=false}}WCF.DOMNodeInsertedHandler.execute();$("a[href*=#]").each(function(c,e){var b=$(e);if(b.prop("href").indexOf("AJAXProxy")!=-1){var d=b.prop("href").substr(b.prop("href").indexOf("#"));var a=document.location.toString().replace(/#.*/
,"");b
.prop("href",a
+d
)}})},setOption:function(a
,b
){this.options
[a
]=b
}});WCF
.Action
.SimpleProxy
=Class
.extend({init:function(a
,b
){this.options
=$.extend(true,{action
:"",className
:"",elements
:null,eventName
:"click"},a
);this.callbacks
=$.extend(true,{after
:null,failure
:null,init
:null,success
:null},b
);if(!this.options
.elements
){return}this.proxy
=new WCF
.Action
.Proxy(this.callbacks
);this.options
.elements
.each($.proxy(function(c
,d
){$(d
).bind(this.options
.eventName
,$.proxy(this._handleEvent
,this))},this))},_handleEvent:function(a
){this.proxy
.setOption("data",{actionName
:this.options
.action
,className
:this.options
.className
,objectIDs
:[$(a
.target
).data("objectID")]});this.proxy
.sendRequest()}});WCF
.Action
.Delete
=Class
.extend({_buttonSelector
:"",_className
:"",_containerSelector
:"",_containers
:[],init:function(c
,a
,b
){this._containerSelector
=a
;this._className
=c
;this._buttonSelector
=(b
)?b
:".jsDeleteButton";this.proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)});this._initElements();WCF
.DOMNodeInsertedHandler
.addCallback("WCF.Action.Delete"+this._className
.hashCode(),$.proxy(this._initElements
,this))},_initElements:function(){var a
=this;$(this._containerSelector
).each(function(c
,b
){var e
=$(b
);var d
=e
.wcfIdentify();if(!WCF
.inArray(d
,a
._containers
)){a
._containers
.push(d
);e
.find(a
._buttonSelector
).click($.proxy(a
._click
,a
))}})},_click:function(b
){var a
=$(b
.currentTarget
);b
.preventDefault();if(a
.data("confirmMessage")){WCF
.System
.Confirmation
.show(a
.data("confirmMessage"),$.proxy(this._execute
,this),{target
:a
})}else{WCF
.LoadingOverlayHandler
.updateIcon(a
);this._sendRequest(a
)}},_didTriggerEffect:function(a
){},_execute:function(b
,a
){if(b
==="cancel"){return}WCF
.LoadingOverlayHandler
.updateIcon(a
.target
);this._sendRequest(a
.target
)},_sendRequest:function(a
){this.proxy
.setOption("data",{actionName
:"delete",className
:this._className
,interfaceName
:"wcf\\data\\IDeleteAction",objectIDs
:[$(a
).data("objectID")]});this.proxy
.sendRequest()},_success:function(b
,c
,a
){this.triggerEffect(b
.objectIDs
)},triggerEffect:function(c
){for(var a
in this._containers
){var d
=$("#"+this._containers
[a
]);if(WCF
.inArray(d
.find(this._buttonSelector
).data("objectID"),c
)){var b
=this;d
.wcfBlindOut("up",function(){$(this).remove();b
._containers
.splice(b
._containers
.indexOf($(this).wcfIdentify()),1);b
._didTriggerEffect($(this))})}}}});WCF
.Action
.NestedDelete
=WCF
.Action
.Delete
.extend({triggerEffect:function(c
){for(var a
in this._containers
){var d
=$("#"+this._containers
[a
]);if(WCF
.inArray(d
.find(this._buttonSelector
).data("objectID"),c
)){if(d
.has("ol").has("li").length
){if(d
.is(":only-child")){d
.parent().replaceWith(d
.find("> ol"))}else{d
.replaceWith(d
.find("> ol > li"))}this._containers
.splice(this._containers
.indexOf(d
.wcfIdentify()),1);this._didTriggerEffect(d
)}else{var b
=this;d
.wcfBlindOut("up",function(){$(this).remove();b
._containers
.splice(b
._containers
.indexOf($(this).wcfIdentify()),1);b
._didTriggerEffect($(this))})}}}}});WCF
.Action
.Toggle
=Class
.extend({_buttonSelector
:".jsToggleButton",_className
:"",_containerSelector
:"",_containers
:[],init:function(d
,a
,c
){this._containerSelector
=a
;this._className
=d
;this._buttonSelector
=(c
)?c
:".jsToggleButton";this._containers
=[];var b
={success
:$.proxy(this._success
,this)};this.proxy
=new WCF
.Action
.Proxy(b
);this._initElements();WCF
.DOMNodeInsertedHandler
.addCallback("WCF.Action.Toggle"+this._className
.hashCode(),$.proxy(this._initElements
,this))},_initElements:function(){$(this._containerSelector
).each($.proxy(function(b
,a
){var d
=$(a
);var c
=d
.wcfIdentify();if(!WCF
.inArray(c
,this._containers
)){this._containers
.push(c
);d
.find(this._buttonSelector
).click($.proxy(this._click
,this))}},this))},_click:function(b
){var a
=$(b
.currentTarget
);b
.preventDefault();if(a
.data("confirmMessage")){WCF
.System
.Confirmation
.show(a
.data("confirmMessage"),$.proxy(this._execute
,this),{target
:a
})}else{WCF
.LoadingOverlayHandler
.updateIcon(a
);this._sendRequest(a
)}},_execute:function(b
,a
){if(b
==="cancel"){return}WCF
.LoadingOverlayHandler
.updateIcon(a
.target
);this._sendRequest(a
.target
)},_sendRequest:function(a
){this.proxy
.setOption("data",{actionName
:"toggle",className
:this._className
,interfaceName
:"wcf\\data\\IToggleAction",objectIDs
:[$(a
).data("objectID")]});this.proxy
.sendRequest()},_success:function(b
,c
,a
){this.triggerEffect(b
.objectIDs
)},triggerEffect:function(b
){for(var a
in this._containers
){var d
=$("#"+this._containers
[a
]);var c
=d
.find(this._buttonSelector
);if(WCF
.inArray(c
.data("objectID"),b
)){d
.wcfHighlight();this._toggleButton(d
,c
)}}},_toggleButton:function(b
,a
){WCF
.LoadingOverlayHandler
.updateIcon(a
,false);if(a
.hasClass("icon-check-empty")){a
.removeClass("icon-check-empty").addClass("icon-check");$newTitle
=(a
.data("disableTitle")?a
.data("disableTitle"):WCF
.Language
.get("wcf.global.button.disable"));a
.attr("title",$newTitle
)}else{a
.removeClass("icon-check").addClass("icon-check-empty");$newTitle
=(a
.data("enableTitle")?a
.data("enableTitle"):WCF
.Language
.get("wcf.global.button.enable"));a
.attr("title",$newTitle
)}b
.toggleClass("disabled")}});WCF
.Action
.Scroll
=Class
.extend({_callback
:null,_reference
:null,_target
:null,_threshold
:0,init:function(b
,d
,a
,c
){this._threshold
=parseInt(b
);if(this._threshold
===0){console
.debug("[WCF.Action.Scroll] Given threshold is invalid, aborting.");return}if($.isFunction(d
)){this._callback
=d
}if(this._callback
===null){console
.debug("[WCF.Action.Scroll] Given callback is invalid, aborting.");return}this._reference
=$((a
)?a
:window
);this._target
=$((c
)?c
:document
);this.start();this._scroll()},_scroll:function(){var a
=this._target
.height();var b
=this._reference
.scrollTop();var c
=this._reference
.height();if((a
-(c
+b
))<this._threshold
){this._callback(this)}},start:function(){this._reference
.on("scroll",$.proxy(this._scroll
,this))},stop:function(){this._reference
.off("scroll")}});WCF
.Date
={};WCF
.Date
.Picker
={_dateFormat
:"yy-mm-dd",_timeFormat
:"g:ia",init:function(){var a
=$.timepicker
.log
;$.timepicker
.log=function(b
){if(b
.indexOf("Error parsing the date/time string: Unexpected literal at position")==-1&&b
.indexOf("Error parsing the date/time string: Unknown name at position")==-1){a(b
)}};this._convertDateFormat();this._initDatePicker();WCF
.DOMNodeInsertedHandler
.addCallback("WCF.Date.Picker",$.proxy(this._initDatePicker
,this))},_convertDateFormat:function(){var a
={a
:"tt",A
:"TT",g
:"h",G
:"H",h
:"hh",H
:"HH",i
:"mm",s
:"ss",u
:"l",d
:"dd",D
:"D",j
:"d",l
:"DD",z
:"o",S
:"",F
:"MM",m
:"mm",M
:"M",n
:"m",o
:"yy",Y
:"yy",y
:"y",U
:"@"};this._dateFormat
=WCF
.Language
.get("wcf.date.dateFormat").replace(/([^dDjlzSFmMnoYyU
\\]*(?:\\.[^dDjlzSFmMnoYyU
\\]*)*)([dDjlzSFmMnoYyU
])/g,function(c,f,e,g,b){for(var d in a){if(e==d){e=a[d]}}return f+e});this._timeFormat=WCF.Language.get("wcf.date.timeFormat").replace(/([^aAgGhHisu
\\]*(?:\\.[^aAgGhHisu
\\]*)*)([aAgGhHisu
])/g,function(c,f,e,g,b){for(var d in a){if(e==d){e=a[d]}}return f+e})},_initDatePicker:function(){$("input[type=date]:not(.jsDatePicker), input[type=datetime]:not(.jsDatePicker)").each($.proxy(function(d,g){var f=$(g);var b=f.prop("name");var j=f.val();var a=f.attr("type")=="datetime";f.prop("type","text").addClass("jsDatePicker");if(f.data("placeholder")){f.attr("placeholder",f.data("placeholder"))}f.removeAttr("name");f.before('<input type="hidden" id="'+f.wcfIdentify()+'DatePicker" name="'+b+'" value="'+j+'" />');var c=f.attr("max")?new Date(f.attr("max").replace(" ","T")):null;var k=f.attr("min")?new Date(f.attr("min").replace(" ","T")):null;$options={altField:"#"+f.wcfIdentify()+"DatePicker",altFormat:"yy-mm-dd",beforeShow:function(n,m){setTimeout(function(){m.dpDiv.position({my:"left top",at:"left bottom",collision:"none",of:n})},1)},changeMonth:true,changeYear:true,dateFormat:this._dateFormat,dayNames:WCF.Language.get("__days"),dayNamesMin:WCF.Language.get("__daysShort"),dayNamesShort:WCF.Language.get("__daysShort"),firstDay:parseInt(WCF.Language.get("wcf.date.firstDayOfTheWeek"))||0,isRTL:WCF.Language.get("wcf.global.pageDirection")=="rtl",maxDate:c,minDate:k,monthNames:WCF.Language.get("__months"),monthNamesShort:WCF.Language.get("__monthsShort"),showButtonPanel:false,onClose:function(n,m){if(n==""){$(m.settings.altField).val(n)}},showOtherMonths:true,yearRange:(f.hasClass("birthday")?"-100:+0":"1900:2038")};if(a){if(/[0-9]{2}:[0-9]{2}:[0-9]{2}$/.test(j)){j=j.replace(/:[0-9]{2}$/,"");f.val(j)}j=j.replace(" ","T");if(f.data("ignoreTimezone")){var i=new Date().getTimezoneOffset();var l=(i>0)?"-":"+";i=Math.abs(i);var e=(Math.floor(i/60)).toString();var h=(i%60).toString();l+=(e.length==2)?e:"0"+e;l+=":";l+=(h.length==2)?h:"0"+h;j=j.replace(/[+-][0-9]{2}:[0-9]{2}$/,l)}$options=$.extend($options,{altFieldTimeOnly:false,altTimeFormat:"HH:mm",controlType:"select",hourText:WCF.Language.get("wcf.date.hour"),minuteText:WCF.Language.get("wcf.date.minute"),showTime:false,timeFormat:this._timeFormat,yearRange:(f.hasClass("birthday")?"-100:+0":"1900:2038")})}if(a){f.datetimepicker($options)}else{f.datepicker($options)}if(j){if(!a){j=new Date(j);j.setMinutes(j.getMinutes()+j.getTimezoneOffset())}f.datepicker("setDate",j)}f.datepicker("widget").hide()},this))}};WCF.Date.Util={gmdate:function(a){var b=(a)?a:new Date();return Math.round(Date.UTC(b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDay(),b.getUTCHours(),b.getUTCMinutes(),b.getUTCSeconds())/1000)},getTimezoneDate:function(b,c){var d=new Date(b);var a=d.getTimezoneOffset()*60000;return new Date((b+a+c))}};WCF.Date.Time=Class.extend({_date:0,_elements:null,_offset:null,_timestamp:0,init:function(){this._elements=$("time.datetime");this._offset=null;this._timestamp=0;this._refresh();new WCF.PeriodicalExecuter($.proxy(this._refresh,this),60000);WCF.DOMNodeInsertedHandler.addCallback("WCF.Date.Time",$.proxy(this._domNodeInserted,this))},_domNodeInserted:function(){this._elements=$("time.datetime");this._refresh()},_refresh:function(){this._date=new Date();this._timestamp=(this._date.getTime()-this._date.getMilliseconds())/1000;if(this._offset===null){this._offset=this._timestamp-TIME_NOW}this._elements.each($.proxy(this._refreshElement,this))},_refreshElement:function(i,f){var n=$(f);if(!n.attr("title")){n.attr("title",n.text())}var d=n.data("timestamp")+this._offset;var b=n.data("date");var c=n.data("time");var o=n.data("offset");if(n.data("isFutureDate")){return}if(d>=this._timestamp||this._timestamp<(d+60)){n.text(WCF.Language.get("wcf.date.relative.now"))}else{if(this._timestamp<(d+3540)){var m=Math.max(Math.round((this._timestamp-d)/60),1);n.text(WCF.Language.get("wcf.date.relative.minutes",{minutes:m}))}else{if(this._timestamp<(d+86400)){var k=Math.round((this._timestamp-d)/3600);n.text(WCF.Language.get("wcf.date.relative.hours",{hours:k}))}else{if(this._timestamp<(d+518400)){var j=new Date(this._date.getFullYear(),this._date.getMonth(),this._date.getDate());var l=Math.ceil((j/1000-d)/86400);var g=WCF.Date.Util.getTimezoneDate((d*1000),o*1000);var h=g.getDay();var e=WCF.Language.get("__days")[h];n.text(WCF.Language.get("wcf.date.relative.pastDays",{days:l,day:e,time:c}))}else{var a=WCF.Language.get("wcf.date.shortDateTimeFormat");n.text(a.replace(/\%date\%/,b).replace(/\%time\%/,c))}}}}}});WCF.Dictionary=Class.extend({_variables:{},init:function(){this._variables={}},add:function(a,b){this._variables[a]=b},addObject:function(a){for(var b in a){this.add(b,a[b])}},addDictionary:function(a){a.each($.proxy(function(b){this.add(b.key,b.value)},this))},get:function(a){if(this.isset(a)){return this._variables[a]}return null},isset:function(a){return this._variables.hasOwnProperty(a)},remove:function(a){delete this._variables[a]},each:function(d){if(!$.isFunction(d)){return}for(var c in this._variables){var a=this._variables[c];var b={key:c,value:a};d(b)}},count:function(){return $.getLength(this._variables)},isEmpty:function(){return !this.count()}});WCF.Language={_variables:new WCF.Dictionary(),add:function(a,b){this._variables.add(a,b)},addObject:function(a){this._variables.addObject(a)},get:function(a,b){if(b==null){var b={}}var c=this._variables.get(a);if(c===null){return a}else{if(typeof c==="string"){this.add(a,new WCF.Template(c));return this.get(a,b)}else{if(typeof c.fetch==="function"){c=c.fetch(b)}}}return c}};WCF.MultipleLanguageInput=Class.extend({_availableLanguages:{},_button:null,_didInit:false,_element:null,_insertedDataAfterInit:false,_isEnabled:false,_forceSelection:false,_languageID:0,_list:null,_values:null,init:function(c,b,d,f){this._button=null;this._element=$("#"+$.wcfEscapeID(c));this._forceSelection=b;this._values=d;this._availableLanguages=f;if($.getLength(this._values)){for(var e in this._values){this._values[e]=WCF.String.unescapeHTML(this._values[e])}}this._languageID=LANGUAGE_ID;if(this._element.length==0){console.debug("[WCF.MultipleLanguageInput] element id '"+c+"' is unknown");return}var a=($.getLength(this._values)>0)?true:false;this._insertedDataAfterInit=a;this._prepareElement(a);this._element.parents("form").submit($.proxy(this._submit,this));this._didInit=true},_prepareElement:function(a){this._element.wrap('<div
class="dropdown preInput" />');var c=this._element.parent();this._button=$('<p
class="button dropdownToggle"><span
>'+WCF.Language.get("wcf.global.button.disabledI18n")+"</span></p>").prependTo(c);this._list=$('<ul
class="dropdownMenu"></ul>').insertAfter(this._button);if(this._button.nextAll("textarea").length){this._button.addClass("dropdownCaptionTextarea")}else{this._button.addClass("dropdownCaption")}for(var b in this._availableLanguages){$("<li><span>"+this._availableLanguages[b]+"</span></li>").data("languageID",b).click($.proxy(this._changeLanguage,this)).appendTo(this._list)}if(!this._forceSelection){$('<li class="dropdownDivider" />').appendTo(this._list);$("<li><span>"+WCF.Language.get("wcf.global.button.disabledI18n")+"</span></li>").click($.proxy(this._disable,this)).appendTo(this._list)}WCF.Dropdown.initDropdown(this._button,a);if(a||this._forceSelection){this._isEnabled=true;this._list.children("li").each($.proxy(function(d,f){var e=$(f);if(e.data("languageID")==this._languageID){e.trigger("click")}},this))}WCF.Dropdown.registerCallback(c.wcfIdentify(),$.proxy(this._handleAction,this))},_handleAction:function(a,b){if(b==="open"){this._enable()}else{this._closeSelection()}},_enable:function(a){if(!this._isEnabled){var b=(this._button.is("p"))?this._button.children("span:eq(0)"):this._button;b.addClass("active");this._isEnabled=true}if(this._list.is(":visible")){this._showSelection()}},_showSelection:function(){if(this._isEnabled){this._list.children("li").each($.proxy(function(b,d){var c=$(d);var a=c.data("languageID");if(a){if(this._values[a]&&this._values[a]!=""){c.removeClass("missingValue")}else{c.addClass("missingValue")}}},this))}},_closeSelection:function(){this._disable()},_changeLanguage:function(a){var b=$(a.currentTarget);this._insertedDataAfterInit=true;if(this._didInit){this._values[this._languageID]=this._element.val()}this._languageID=b.data("languageID");if(this._values[this._languageID]){this._element.val(this._values[this._languageID])}else{this._element.val("")}this._list.children("li").removeClass("active");b.addClass("active");this._button.children("span").addClass("active").text(this._availableLanguages[this._languageID]);if(this._didInit){this._element.blur().focus()}},_disable:function(a){if(a===undefined&&this._insertedDataAfterInit){a=null}if(this._forceSelection||!this._list||a===null){return}this._button.children("span").removeClass("active").text(WCF.Language.get("wcf.global.button.disabledI18n"));if(this._values[LANGUAGE_ID]){this._element.val(this._values[LANGUAGE_ID])}else{this._element.val()}if(a){this._list.children("li").removeClass("active");$(a.currentTarget).addClass("active")}this._element.blur().focus();this._insertedDataAfterInit=false;this._isEnabled=false;this._values={}},_submit:function(){if(!this._isEnabled){return 3735928559}if(this._languageID){this._values[this._languageID]=this._element.val()}var b=$(this._element.parents("form")[0]);var c=this._element.wcfIdentify();for(var a in this._availableLanguages){if(this._values[a]===undefined){this._values[a]=""}$('<input type
="hidden" name
="'+c+"_i18n
["+a+']" value
="'+WCF.String.escapeHTML(this._values[a])+'" />').appendTo(b)}this._element.removeAttr("name")}});WCF.Number={round:function(b,a){a=Math.pow(10,(a||0));return Math.round(b*a)/a}};WCF
.String
={addThousandsSeparator:function(a
){return String(a
).replace(/(^-?\d{1,3}|\d{3})(?=(?:\d{3})+(?:$|\.))/g,"$1"+WCF
.Language
.get("wcf.global.thousandsSeparator"))},escapeHTML:function(a
){return String(a
).replace(/&/g,"&").replace(/"/g,""
;").replace(/</g,"<
;").replace(/>/g,">
;")},escapeRegExp:function(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")},formatNumeric:function(b,a){b=String(WCF.Number.round(b,a||2));numberParts=b.split(".");b=this.addThousandsSeparator(numberParts[0]);if(numberParts.length>1){b+=WCF.Language.get("wcf
.global
.decimalPoint
")+numberParts[1]}b=b.replace("-","\u2212");return b},lcfirst:function(a){return String(a).substring(0,1).toLowerCase()+a.substring(1)},ucfirst:function(a){return String(a).substring(0,1).toUpperCase()+a.substring(1)},unescapeHTML:function(a){return String(a).replace(/&/g,"&").replace(/"/g,'"').replace(/</g,"<").replace(/>/g,">")}};WCF.TabMenu={_containers:{},_didInit:false,init:function(){var d=$(".tabMenuContainer:not(.staticTabMenuContainer)");var c=this;d.each(function(f,e){var h=$(e);var g=h.wcfIdentify();if(c._containers[g]){return true}if(h.data("store")&&!$("#"+h.data("store")).length){$('<input type
="hidden" name
="'+h.data("store
")+'" value
="" id
="'+h.data("store
")+'" />').appendTo(h.parents("form").find(".formSubmit"))}c._containers[g]=h;h.wcfTabs({active:false,activate:function(j,i){var l=$(i.newPanel);var k=l.closest(".tabMenuContainer");var m=k;while(true){if(m.data("isParent")===undefined){break}if(m.data("isParent")){if(m.data("store")){$("#"+m.data("store")).val(l.attr("id"))}break}else{m=m.data("parent")}}if(WCF.TabMenu._didInit){if(l.data("inTabMenu")==undefined){l.data("inTabMenu",(l.parents(".dialogContainer").length))}if(!l.data("inTabMenu")){if(window.history){window.history.pushState(null,document.title,window.location.toString().replace(/#.+$/,"")+"#"+l.attr("id"))}else{location.hash="#"+l.attr("id")}}}}});h.data("isParent",(h.children(".tabMenuContainer, .tabMenuContent").length>0)).data("parent",false);if(!h.data("isParent")){if(h.parent().hasClass("tabMenuContainer")){h.data("parent",h.parent())}}});if(!this._didInit){this._selectActiveTab();$(window).bind("hashchange",$.proxy(this.selectTabs,this));if(!this._selectErroneousTab()){this.selectTabs()}if($.browser.mozilla&&location.hash){var a=$(location.hash);if(a.length&&a.hasClass("tabMenuContent")){var b=a.offset();window.scrollTo(b.left,b.top)}}}this._didInit=true},reload:function(){this._containers={};this.init()},_selectErroneousTab:function(){var d=false;for(var a in this._containers){var c=this._containers[a];if(c.find(".formError").length){d=true;if(!c.data("isParent")){while(true){if(c.data("parent")===false){break}c=c.data("parent").wcfTabs("selectTab",c.wcfIdentify())}return true}}}if(d){for(var a in this._containers){var c=this._containers[a];var b=c.find(".formError:eq(0)");if(b.length){c.wcfTabs("selectTab",b.parents(".tabMenuContent").wcfIdentify());while(true){if(c.data("parent")===false){break}c=c.data("parent").wcfTabs("selectTab",c.wcfIdentify())}return true}}}return false},_selectActiveTab:function(){for(var b in this._containers){var e=this._containers[b];if(e.data("active")){var a=e.data("active");var d=null;if(/-/.test(a)){var c=a.split("-");a=c[0];d=c[1]}e.find(".tabMenuContent").each(function(h,g){var f=$(g);if(f.wcfIdentify()==a){e.wcfTabs("select",h);if(d!==null){if(f.hasClass("tabMenuContainer")){f.wcfTabs("selectTab",e.data("active"))}else{e.wcfTabs("selectTab",e.data("active"))}}return false}})}}},selectTabs:function(){if(location.hash){var a=location.hash.substr(1);var b=$("#"+$.wcfEscapeID(a));if(b.length===1&&b.hasClass("ui-tabs-panel")){b=b.parent(".ui-tabs");if(b.length){b.wcfTabs("selectTab",a);if(b.hasClass("ui-tabs-panel")){a=b.wcfIdentify();b=b.parent(".ui-tabs");if(b.length){b.wcfTabs("selectTab",a)}}return true}}}return false}};WCF.Template=Class.extend({init:function(d){var f=new WCF.Dictionary();var a=0;d=d.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\r\n|\n|\r)/g,"\\n
");d=d.replace(/\{literal\}(.*?)\{\/literal\}/g,$.proxy(function(e){var i="@@@@@@@@@@@"+Math.random()+"@@@@@@@@@@@";f.add(i,e.replace(/\{\/?literal\}/g,""));return i},this));d=d.replace(/\{\*.*?\*\}/g,"");var c=function(q){var l=q.split("");var i={};var k=true;var s="";var o="";var m=false;var n=false;var j=false;for(var p=0,e=l.length;p<e;p++){var r=l[p];if(k&&r!="="&&r!=" "){s+=r}else{if(k&&r=="="){k=false;n=false;m=false;j=false}else{if(!k&&!n&&!m&&r==" "){k=true;i[s]=o;o=s=""}else{if(!k&&n&&!j&&r=="'"){n=false;o+=r}else{if(!k&&!n&&!m&&r=="'"){n=true;o+=r}else{if(!k&&m&&!j&&r=='"'){m=false;o+=r}else{if(!k&&!n&&!m&&r=='"'){m=true;o+=r}else{if(!k&&(m||n)&&!j&&r=="\\"){j=true;o+=r}else{if(!k){j=false;o+=r}}}}}}}}}}i[s]=o;if(m||n||j){throw new Error('Syntax error in parameterList: "'+q+'"')}return i};var h=function(e){return e.replace(/\\n/g,"\n").replace(/\\\\/g,"\\").replace(/\\'/g,"'")};d=d.replace(/\{(\$[^\}]+?)\}/g,function(e,i){i=h(i.replace(/\$([^.\[\s]+)/g,"(v['$1'])"));return"' + WCF
.String
.escapeHTML("+i+") + '"}).replace(/\{#(\$[^\}]+?)\}/g,function(e,i){i=h(i.replace(/\$([^.\[\s]+)/g,"(v['$1'])"));return"' + WCF
.String
.formatNumeric("+i+") + '"}).replace(/\{@(\$[^\}]+?)\}/g,function(e,i){i=h(i.replace(/\$([^.\[\s]+)/g,"(v['$1'])"));return"' + "+i+" + '"}).replace(/{lang}(.+?){\/lang}/g,function(e,i){return"' + WCF
.Language
.get('"+h(i)+"') + '"}).replace(/\{if (.+?)\}/g,function(e,i){i=h(i.replace(/\$([^.\[\s]+)/g,"(v['$1'])"));return"';\nif ("+i+") {\n $output
+= '"}).replace(/\{else ?if (.+?)\}/g,function(e,i){i=h(i.replace(/\$([^.\[\s]+)/g,"(v['$1'])"));return"';\n}\nelse if ("+i+") {\n $output
+= '"}).replace(/\{implode (.+?)\}/g,function(e,j){a++;j=j.replace(/\\\\/g,"\\").replace(/\\'/g,"'");var i=c(j);if(typeof i.from==="undefined"){throw new Error("Missing from attribute in implode-tag")}if(typeof i.item==="undefined"){throw new Error("Missing item attribute in implode-tag")}if(typeof i.glue==="undefined"){i.glue="', '"}i.from=i.from.replace(/\$([^.\[\s
]+)/g,"(v.$1)");return"';\nvar $implode_"+a+" = false;\nfor ($implodeKey_"+a+" in "+i.from+") {\n v["+i.item+"] = "+i.from+"[$implodeKey_"+a+"];\n"+(typeof i.key!=="undefined"?" v["+i.key+"] = $implodeKey_"+a+";\n":"")+" if ($implode_"+a+") $output += "+i.glue+";\n $implode_"+a+" = true;\n $output += '"}).replace(/\{foreach (.+?)\}/g,function(e,j){a++;j=j.replace(/\\\\/g,"\\").replace(/\\'/g,"'");var i=c(j);if(typeof i.from==="undefined"){throw new Error("Missing
from attribute
in foreach
-tag
")}if(typeof i.item==="undefined"){throw new Error("Missing item attribute
in foreach
-tag
")}i.from=i.from.replace(/\$([^.\[\s]+)/g,"(v
.$1)");return"';\n$foreach_"+a+" = false;\nfor ($foreachKey_"+a+" in "+i.from+") {\n $foreach_"+a+" = true;\n break;\n}\nif ($foreach_"+a+") {\n for ($foreachKey_"+a+" in "+i.from+") {\n v["+i.item+"] = "+i.from+"[$foreachKey_"+a+"];\n"+(typeof i.key!=="undefined"?" v["+i.key+"] = $foreachKey_"+a+";\n":"")+" $output += '"}).replace(/\{foreachelse\}/g,"';\n }\n}\nelse {\n {\n $output += '").replace(/\{\/foreach\}/g,"';\n }\n}\n$output += '").replace(/\{else\}/g,"';\n}\nelse {\n $output += '").replace(/\{\/(if|implode)\}/g,"';\n}\n$output += '");for(var b in WCF.Template.callbacks){d=WCF.Template.callbacks[b](d)}d=d.replace("{ldelim
}","{").replace("{rdelim
}","}");f.each(function(e){d=d.replace(e.key,e.value)});d="$output
+= '"+d+"';";try{this.fetch=new Function("v
","if (typeof v
!= 'object') { v
= {}; } v
.__window
= window
; v
.__wcf
= window
.WCF
; var $output
= ''; "+d+" return $output
;")}catch(g){console.debug("var $output
= ''; "+d+" return $output
;");throw g}},fetch:function(a){}});WCF.Template.callbacks=[];WCF.ToggleOptions=Class.extend({_element:null,_showItems:[],_hideItems:[],_callback:null,init:function(c,a,b,d){this._element=$("#"+c);this._showItems=a;this._hideItems=b;if(d!==undefined){this._callback=d}this._element.click($.proxy(this._toggle,this));this._toggle()},_toggle:function(){if(!this._element.prop("checked
")){return}for(var c=0,b=this._showItems.length;c<b;c++){var a=this._showItems[c];$("#"+a).show()}for(var c=0,b=this._hideItems.length;c<b;c++){var a=this._hideItems[c];$("#"+a).hide()}if(this._callback!==null){this._callback()}}});WCF.Collapsible={};WCF.Collapsible.Simple={init:function(){$(".jsCollapsible
").each($.proxy(function(a,b){this._initButton(b)},this))},_initButton:function(a){var c=$(a);var b=c.data("isOpen
");if(!b){$("#"+c.data("collapsibleContainer
")).hide()}c.click($.proxy(this._toggle,this))},_toggle:function(b){var d=$(b.currentTarget);var c=d.data("isOpen
");var a=$("#"+$.wcfEscapeID(d.data("collapsibleContainer
")));if(c){a.stop().wcfBlindOut("vertical
",$.proxy(function(){this._toggleImage(d)},this));c=false}else{a.stop().wcfBlindIn("vertical
",$.proxy(function(){this._toggleImage(d)},this));c=true}d.data("isOpen
",c);b.stopPropagation();return false},_toggleImage:function(b){var a=b.find("span
.icon
");if(b.data("isOpen
")){a.removeClass("icon
-chevron
-right
").addClass("icon
-chevron
-down
")}else{a.removeClass("icon
-chevron
-down
").addClass("icon
-chevron
-right
")}}};WCF.Collapsible.Remote=Class.extend({_className:"",_containers:{},_containerData:{},_proxy:null,init:function(a){this._className=a;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._init();WCF.DOMNodeInsertedHandler.addCallback("WCF
.Collapsible
.Remote
",$.proxy(this._init,this))},_init:function(a){this._getContainers().each($.proxy(function(c,b){var e=$(b);var d=e.wcfIdentify();if(this._containers[d]===undefined){this._containers[d]=e;this._initContainer(d)}},this))},_initContainer:function(b){var a=this._getTarget(b);var c=this._getButtonContainer(b);var d=this._createButton(b,c);this._containerData[b]={button:d,buttonContainer:c,isOpen:this._containers[b].data("isOpen
"),target:a};if(!this._containers[b].data("isOpen
")){$("#"+b).addClass("jsCollapsed
")}},_getContainers:function(){},_getTarget:function(a){},_getButtonContainer:function(a){},_createButton:function(a,b){var d=this._containers[a].data("isOpen
");var c=$('<span class="collapsibleButton jsTooltip pointer icon icon16 icon
-'+(d?"chevron-down":"chevron-right")+'" title="'+WCF.Language.get("wcf.global.button.collapsible")+'">').prependTo(b);c.data("containerID
",a).click($.proxy(this._toggleContainer,this));return c},_toggleContainer:function(d){var f=$(d.currentTarget);var b=f.data("containerID
");var e=this._containerData[b].isOpen;var a=(e)?"open
":"close
";var c=(e)?"close
":"open
";this._proxy.setOption("data
",{actionName:"loadContainer
",className:this._className,interfaceName:"wcf
\\data
\\ILoadableContainerAction
",objectIDs:[this._getObjectID(b)],parameters:$.extend(true,{containerID:b,currentState:a,newState:c},this._getAdditionalParameters(b))});this._proxy.sendRequest();$("#"+b).toggleClass("jsCollapsed
")},_exchangeIcon:function(b,a){a=a||"spinner
";b.removeClass("icon
-chevron
-down icon
-chevron
-right icon
-spinner
").addClass("icon
-"+a)},_getObjectID:function(a){return $("#"+a).data("objectID
")},_getAdditionalParameters:function(a){return{}},_updateContent:function(a,b,c){this._containerData[a].target.html(b)},_success:function(d,e,c){if(!d.returnValues.containerID){return}var a=d.returnValues.containerID;if(!this._containers[a]){return}this._containerData[a].isOpen=(d.returnValues.isOpen)?true:false;var b=(d.returnValues.isOpen)?"open
":"close
";this._updateContent(a,$.trim(d.returnValues.content),b);this._exchangeIcon(this._containerData[a].button,(d.returnValues.isOpen?"chevron
-down
":"chevron
-right
"))}});WCF.Collapsible.SimpleRemote=WCF.Collapsible.Remote.extend({init:function(a){this._super(a);this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false})},_initContainer:function(a){this._super(a);if(!this._containerData[a].isOpen){this._containerData[a].target.hide();this._exchangeIcon(this._containerData[a].button,"chevron
-right
")}},_toggleContainer:function(d){var f=$(d.currentTarget);var b=f.data("containerID
");var e=this._containerData[b].isOpen;var a=(e)?"open
":"close
";var c=(e)?"close
":"open
";this._proxy.setOption("data
",{actionName:"toggleContainer
",className:this._className,interfaceName:"wcf
\\data
\\IToggleContainerAction
",objectIDs:[this._getObjectID(b)],parameters:$.extend(true,{containerID:b,currentState:a,newState:c},this._getAdditionalParameters(b))});this._proxy.sendRequest();this._exchangeIcon(this._containerData[b].button,(c==="open
"?"chevron
-down
":"chevron
-right
"));if(c==="open
"){this._containerData[b].target.show()}else{this._containerData[b].target.hide()}$("#"+b).toggleClass("jsCollapsed
");this._containerData[b].isOpen=(c==="open
"?true:false)}});WCF.Collapsible.Sidebar=Class.extend({_button:null,_buttonHeight:0,_isOpen:false,_mainContainer:null,_proxy:null,_sidebar:null,_sidebarHeight:0,_sidebarName:"",_sidebarOffset:0,_userPanelHeight:0,init:function(){this._sidebar=$(".sidebar
:eq(0)");if(!this._sidebar.length){console.debug("[WCF
.Collapsible
.Sidebar
] Could not find sidebar
, aborting
.");return}this._isOpen=(this._sidebar.data("isOpen
"))?true:false;this._sidebarName=this._sidebar.data("sidebarName
");this._mainContainer=$("#main
");this._sidebarHeight=this._sidebar.height();this._sidebarOffset=this._sidebar.getOffsets("offset
").top;this._userPanelHeight=$("#topMenu
").outerHeight();this._button=$('<a class="collapsibleButton jsTooltip
" title="'+WCF.Language.get("wcf.global.button.collapsible")+'" />').prependTo(this._sidebar);this._button.wrap("<span
/>");this._button.click($.proxy(this._click,this));this._buttonHeight=this._button.outerHeight();WCF.DOMNodeInsertedHandler.execute();this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false,url:"index
.php
/AJAXInvoke/?t
="+SECURITY_TOKEN+SID_ARG_2ND});$(document).scroll($.proxy(this._scroll,this)).resize($.proxy(this._scroll,this));this._renderSidebar();this._scroll();var a=$(window);this._sidebar.on("webkitTransitionEnd transitionend msTransitionEnd oTransitionEnd
",function(){a.trigger("resize
")})},_click:function(){this._isOpen=(this._isOpen)?false:true;this._proxy.setOption("data
",{actionName:"toggle
",className:"wcf
\\system
\\user
\\collapsible
\\content
\\UserCollapsibleSidebarHandler
",isOpen:(this._isOpen?1:0),sidebarName:this._sidebarName});this._proxy.sendRequest();this._renderSidebar()},_scroll:function(){var e=$(window);var b=e.scrollTop();var a=Math.max(b-this._sidebarOffset,0);var c=Math.min(this._mainContainer.height(),(e.height()+b)-this._sidebarOffset);var f=0;if(c===a){f=this._sidebarOffset+this._sidebarHeight}else{f=a+((c-a)/2);var d=Math.max(Math.min(a-this._userPanelHeight,this._userPanelHeight),0);if(d>0){f+=(d/2)}}if((c-a-this._userPanelHeight)<this._buttonHeight){f=f-this._buttonHeight}else{f=Math.max(f-(this._buttonHeight/2),0)}this._button.css({top:f+"px
"})},_renderSidebar:function(){if(this._isOpen){$(".sidebarOrientationLeft
, .sidebarOrientationRight
").removeClass("sidebarCollapsed
")}else{$(".sidebarOrientationLeft
, .sidebarOrientationRight
").addClass("sidebarCollapsed
")}this._scroll();if($.browser.msie&&$.browser.version.indexOf("9")===0){$(window).trigger("resize
")}}});WCF.User={userID:0,username:"",init:function(a,b){this.userID=a;this.username=b}};WCF.Effect={};WCF.Effect.Scroll=Class.extend({scrollTo:function(c,a,b){if(!c.length){return true}var d=c.getOffsets("offset
").top;var f=$(document).height();var e=$(window).height();if(d>f-e){d=f-e;if(d<0){d=0}}if(b===true){$("html
,body
").scrollTop(d)}else{$("html
,body
").animate({scrollTop:d},400,function(h,i,g,k,j){return -k*((i=i/j-1)*i*i*i-1)+g})}return false}});WCF.Effect.SmoothScroll=WCF.Effect.Scroll.extend({init:function(){var a=this;$(document).on("click
","a
[href
$=#top
],a
[href
$=#bottom
]",function(){var b=$(this.hash);a.scrollTo(b,true);return false})}});WCF.Effect.BalloonTooltip=Class.extend({_didInit:false,_tooltip:null,_viewportDimensions:{},init:function(){if(jQuery.browser.mobile){return}if(!this._didInit){this._tooltip=$('<div id="balloonTooltip
" class="balloonTooltip
"><span id="balloonTooltipText
"></span><span class="pointer
"><span></span></span></div>').appendTo($("body
")).hide();this._updateViewportDimensions();$(window).resize($.proxy(this._updateViewportDimensions,this));WCF.DOMNodeInsertedHandler.addCallback("WCF
.Effect
.BalloonTooltip
",$.proxy(this.init,this));this._didInit=true}$(".jsTooltip
").each($.proxy(this._initTooltip,this))},_updateViewportDimensions:function(){this._viewportDimensions=$(document).getDimensions()},_initTooltip:function(b,c){var a=$(c);if(a.hasClass("jsTooltip
")){a.removeClass("jsTooltip
");var d=a.attr("title
");if(d!==""){a.data("tooltip
",d);a.removeAttr("title
");a.hover($.proxy(this._mouseEnterHandler,this),$.proxy(this._mouseLeaveHandler,this));a.click($.proxy(this._mouseLeaveHandler,this))}}},_mouseEnterHandler:function(c){var n=$(c.currentTarget);var j=n.attr("title
");if(j&&j!==""){n.data("tooltip
",j);n.removeAttr("title
")}this._tooltip.css({top:"0px
",left:"0px
"});if(!n.data("tooltip
")){this._tooltip.hide();return}this._tooltip.children("span
:eq(0)").text(n.data("tooltip
"));var l=this._tooltip.find(".pointer
");this._tooltip.show();var b=l.outerWidth();this._tooltip.hide();var f=n.getOffsets("offset
");var k=n.getDimensions("outer
");var m=this._tooltip.getDimensions("outer
");var a=this._tooltip.getDimensions("inner
");var h=f.left+Math.ceil(k.width/2);var i=Math.ceil(m.width/2);var g="center
";if((h-i)<5){g="left
"}else{if((this._viewportDimensions.width-5)<(h+i)){g="right
"}}if(f.top+k.height+m.height-$(document).scrollTop()<$(window).height()){var e=f.top+k.height+7;this._tooltip.removeClass("inverse
");l.css("top
",-5)}else{var e=f.top-m.height-7;this._tooltip.addClass("inverse
");l.css("top
",m.height)}switch(g){case"center
":var d=Math.round(f.left-i+(k.width/2));l.css({left:(a.width/2-b/2)+"px
"});break;case"left
":var d=f.left;l.css({left:"5px
"});break;case"right
":var d=f.left+k.width-m.width;l.css({left:(a.width-b-5)+"px
"});break}this._tooltip.css({top:e+"px
",left:d+"px
"});this._tooltip.wcfFadeIn()},_mouseLeaveHandler:function(a){this._tooltip.stop().hide().css({opacity:1})}});WCF.CloseOverlayHandler={_callbacks:new WCF.Dictionary(),_isListening:false,addCallback:function(a,b){this._bindListener();if(this._callbacks.isset(a)){console.debug("[WCF
.CloseOverlayHandler
] identifier
'"+a+"' is already bound to a callback
");return false}this._callbacks.add(a,b)},removeCallback:function(a){if(this._callbacks.isset(a)){this._callbacks.remove(a)}},_bindListener:function(){if(this._isListening){return}$("body
").click($.proxy(this._executeCallbacks,this));this._isListening=true},_executeCallbacks:function(a){this._callbacks.each(function(b){b.value()})}};WCF.DOMNodeInsertedHandler={_callbacks:[],_isExecuting:false,addCallback:function(a,b){this._callbacks.push(b)},_executeCallbacks:function(){if(this._isExecuting){return}this._isExecuting=true;for(var b=0,a=this._callbacks.length;b<a;b++){this._callbacks[b]()}this._isExecuting=false},execute:function(){this._executeCallbacks()}};WCF.DOMNodeRemovedHandler={_callbacks:new WCF.Dictionary(),_isExecuting:false,_isListening:false,addCallback:function(a,b){this._bindListener();if(this._callbacks.isset(a)){console.debug("[WCF
.DOMNodeRemovedHandler
] identifier
'"+a+"' is already bound to a callback
");return false}this._callbacks.add(a,b)},removeCallback:function(a){if(this._callbacks.isset(a)){this._callbacks.remove(a)}},_bindListener:function(){if(this._isListening){return}$(document).bind("DOMNodeRemoved
",$.proxy(this._executeCallbacks,this));this._isListening=true},_executeCallbacks:function(a){if(this._isExecuting){return}this._isExecuting=true;this._callbacks.each(function(b){b.value(a)});this._isExecuting=false}};WCF.PageVisibilityHandler={_callbacks:new WCF.Dictionary(),_isListening:false,_hiddenFieldName:"",addCallback:function(a,b){this._bindListener();if(this._callbacks.isset(a)){console.debug("[WCF
.PageVisibilityHandler
] identifier
'"+a+"' is already bound to a callback
");return false}this._callbacks.add(a,b)},removeCallback:function(a){if(this._callbacks.isset(a)){this._callbacks.remove(a)}},_bindListener:function(){if(this._isListening){return}var a=null;if(typeof document.hidden!=="undefined"){this._hiddenFieldName="hidden
";a="visibilitychange
"}else{if(typeof document.mozHidden!=="undefined"){this._hiddenFieldName="mozHidden
";a="mozvisibilitychange
"}else{if(typeof document.msHidden!=="undefined"){this._hiddenFieldName="msHidden
";a="msvisibilitychange
"}else{if(typeof document.webkitHidden!=="undefined"){this._hiddenFieldName="webkitHidden
";a="webkitvisibilitychange
"}}}}if(a===null){console.debug("[WCF
.PageVisibilityHandler
] This browser does not support the page visibility API
.")}else{$(document).on(a,$.proxy(this._executeCallbacks,this))}this._isListening=true},_executeCallbacks:function(b){if(this._isExecuting){return}this._isExecuting=true;var a=document[this._hiddenFieldName];this._callbacks.each(function(c){c.value(a)});this._isExecuting=false}};WCF.Table={};WCF.Table.EmptyTableHandler=Class.extend({_options:{},_rowClassName:"",init:function(b,c,a){this._rowClassName=c;this._tableContainer=b;this._options=$.extend(true,{emptyMessage:null,messageType:"info
",refreshPage:false,updatePageNumber:false},a||{});WCF.DOMNodeRemovedHandler.addCallback("WCF
.Table
.EmptyTableHandler
."+c,$.proxy(this._remove,this))},_remove:function(e){var d=$(e.target);if(d.hasClass(this._rowClassName)){var c=d.parents("tbody
:eq(0)");if(c.children("tr
").length==1){if(this._options.emptyMessage){this._tableContainer.replaceWith($("<p
/>").addClass(this._options.messageType).text(this._options.emptyMessage))}else{if(this._options.refreshPage){if(this._options.updatePageNumber){var a=window.location.href.match(/(\?|&)pageNo=(\d+)/g);if(a){var b=a[a.length-1].match(/\d+/g);if(this._options.updatePageNumber>0){b++}else{b--}window.location=window.location.href.replace(a[a.length-1],a[a.length-1][0]+"pageNo
="+b)}}else{window.location.reload()}}else{this._tableContainer.remove()}}}}}});WCF.Search={};WCF.Search.Base=Class.extend({_callback:null,_className:"",_commaSeperated:false,_delay:0,_excludedSearchValues:[],_itemCount:0,_itemIndex:-1,_list:null,_oldSearchString:[],_proxy:null,_searchInput:null,_triggerLength:3,_timer:null,init:function(b,e,a,c,d){if(e!==null&&e!==undefined&&!$.isFunction(e)){console.debug("[WCF
.Search
.Base
] The given callback is invalid
, aborting
.");return}this._callback=(e)?e:null;this._delay=0;this._excludedSearchValues=[];if(a){this._excludedSearchValues=a}this._searchInput=$(b);if(!this._searchInput.length){console.debug("[WCF
.Search
.Base
] Selector
'"+b+"' for search input is invalid
, aborting
.");return}this._searchInput.keydown($.proxy(this._keyDown,this)).keyup($.proxy(this._keyUp,this)).wrap('<span class="dropdown
" />');if($.browser.mozilla&&$.browser.touch){this._searchInput.on("input
",$.proxy(this._keyUp,this))}this._list=$('<ul class="dropdownMenu
" />').insertAfter(this._searchInput);this._commaSeperated=(c)?true:false;this._oldSearchString=[];this._itemCount=0;this._itemIndex=-1;this._proxy=new WCF.Action.Proxy({showLoadingOverlay:(d!==true?false:true),success:$.proxy(this._success,this),autoAbortPrevious:true});if(this._searchInput.is("input
")){this._searchInput.attr("autocomplete
","off
")}this._searchInput.blur($.proxy(this._blur,this));WCF.Dropdown.initDropdownFragment(this._searchInput.parent(),this._list)},_blur:function(){var a=this;new WCF.PeriodicalExecuter(function(b){if(a._list.is(":visible
")){a._clearList(false)}b.stop()},250)},_keyDown:function(a){if(a.which===$.ui.keyCode.ENTER){var b=this._searchInput.parents(".dropdown
");if(b.data("disableAutoFocus
")){if(this._itemIndex!==-1){a.preventDefault()}}else{if(b.data("preventSubmit
")||this._itemIndex!==-1){a.preventDefault()}}}},_keyUp:function(d){switch(d.which){case 37:case 39:return;break;case 38:this._selectPreviousItem();return;break;case 40:this._selectNextItem();return;break;case 13:return this._selectElement(d);break}var b=this._getSearchString(d);if(b===""){this._clearList(true)}else{if(b.length>=this._triggerLength){var c={data:{excludedSearchValues:this._excludedSearchValues,searchString:b}};if(this._delay){if(this._timer!==null){this._timer.stop()}var a=this;this._timer=new WCF.PeriodicalExecuter(function(){a._queryServer(c);a._timer.stop();a._timer=null},this._delay)}else{this._queryServer(c)}}else{this._clearList(false)}}},_queryServer:function(a){this._searchInput.parents(".searchBar
").addClass("loading
");this._proxy.setOption("data
",{actionName:"getSearchResultList
",className:this._className,interfaceName:"wcf
\\data
\\ISearchAction
",parameters:this._getParameters(a)});this._proxy.sendRequest()},setDelay:function(a){this._delay=a},_selectNextItem:function(){if(this._itemCount===0){return}this._itemIndex++;if(this._itemIndex===this._itemCount){this._itemIndex=0}this._highlightSelectedElement()},_selectPreviousItem:function(){if(this._itemCount===0){return}this._itemIndex--;if(this._itemIndex===-1){this._itemIndex=this._itemCount-1}this._highlightSelectedElement()},_highlightSelectedElement:function(){this._list.find("li
").removeClass("dropdownNavigationItem
");this._list.find("li
:eq("+this._itemIndex+")").addClass("dropdownNavigationItem
")},_selectElement:function(a){if(this._itemCount===0){return true}this._list.find("li
.dropdownNavigationItem
").trigger("click
");return false},_getSearchString:function(d){var a=$.trim(this._searchInput.val());if(this._commaSeperated){var c=d.keyCode||d.which;if(c==$.ui.keyCode.COMMA){return""}var b=a.split(",");var e=b.length;for(var g=0;g<e;g++){b[g]=$.trim(b[g])}for(var g=0;g<e;g++){var f=b[g];if(this._oldSearchString[g]){if(f!=this._oldSearchString[g]){a=f;break}}else{a=f;break}}this._oldSearchString=b}return a},_getParameters:function(a){return a},_success:function(d,f,c){this._clearList(false);this._searchInput.parents(".searchBar
").removeClass("loading
");if($.getLength(d.returnValues)){for(var e in d.returnValues){var a=d.returnValues[e];this._createListItem(a)}}else{if(!this._handleEmptyResult()){return}}WCF.CloseOverlayHandler.addCallback("WCF
.Search
.Base
",$.proxy(function(){this._clearList()},this));var b=this._searchInput.parents(".dropdown
").wcfIdentify();if(!WCF.Dropdown.getDropdownMenu(b).hasClass("dropdownOpen
")){WCF.Dropdown.toggleDropdown(b)}this._itemIndex=-1;if(!WCF.Dropdown.getDropdown(b).data("disableAutoFocus
")){this._selectNextItem()}},_handleEmptyResult:function(){return false},_createListItem:function(b){var a=$("<li
><span
>"+WCF.String.escapeHTML(b.label)+"</span></li>").appendTo(this._list);a.data("objectID
",b.objectID).data("label
",b.label).click($.proxy(this._executeCallback,this));this._itemCount++;return a},_executeCallback:function(d){var a=false;var c=$(d.currentTarget);if(this._commaSeperated){var b=c.data("label
");for(var h=0,f=this._oldSearchString.length;h<f;h++){var g=this._oldSearchString[h];if(b.toLowerCase().indexOf(g.toLowerCase())===0){this._oldSearchString[h]=b;this._searchInput.val(this._oldSearchString.join(", "));if($.browser.webkit){this._searchInput.css({display:"block
"})}var e=this._searchInput.val().toLowerCase().indexOf(b.toLowerCase())+b.length;this._searchInput.focus().setCaret(e);break}}}else{if(this._callback===null){this._searchInput.val(c.data("label
"))}else{a=(this._callback(c.data())===true)?true:false}}this._clearList(a)},_clearList:function(a){if(a&&!this._commaSeperated){this._searchInput.val("")}WCF.Dropdown.getDropdown(this._searchInput.parents(".dropdown
").wcfIdentify()).removeClass("dropdownOpen
");WCF.Dropdown.getDropdownMenu(this._searchInput.parents(".dropdown
").wcfIdentify()).removeClass("dropdownOpen
");this._list.end().empty();WCF.CloseOverlayHandler.removeCallback("WCF
.Search
.Base
");this._itemCount=0;this._itemIndex=-1},addExcludedSearchValue:function(a){if(!WCF.inArray(a,this._excludedSearchValues)){this._excludedSearchValues.push(a)}},removeExcludedSearchValue:function(b){var a=$.inArray(b,this._excludedSearchValues);if(a!=-1){this._excludedSearchValues.splice(a,1)}}});WCF.Search.User=WCF.Search.Base.extend({_className:"wcf
\\data
\\user
\\UserAction
",_includeUserGroups:false,init:function(c,e,a,b,d){this._includeUserGroups=a;this._super(c,e,b,d)},_getParameters:function(a){a.data.includeUserGroups=this._includeUserGroups?1:0;return a},_createListItem:function(e){var d=this._super(e);var b=null;if(e.icon){b=$(e.icon)}else{if(this._includeUserGroups&&e.type==="group
"){b=$('<span class="icon icon16 icon
-group
" />')}}if(b){var a=d.find("span
").detach();var c=$("<div
/>").addClass("box16
").appendTo(d);c.append(b);c.append($("<div
/>").append(a))}d.data("type",e.type);return d}});WCF.System={};WCF.System.Dependency={};WCF.System.Dependency.Manager={_callbacks:{},_loaded:[],_setupCallbacks:{},register:function(a,b){if(!$.isFunction(b)){console.debug("[WCF.System.Dependency.Manager] Callback for identifier '"+a+"' is invalid, aborting.");return}if(WCF.inArray(a,this._loaded)){setTimeout(function(){b()},1)}else{if(!this._callbacks[a]){this._callbacks[a]=[]}this._callbacks[a].push(b)}},setup:function(a,b){if(!$.isFunction(b)){console.debug("[WCF.System.Dependency.Manager] Setup callback for identifier '"+a+"' is invalid, aborting.");return}if(!this._setupCallbacks[a]){this._setupCallbacks[a]=[]}this._setupCallbacks[a].push(b)},invoke:function(a){if(this._setupCallbacks[a]){for(var c=0,b=this._setupCallbacks[a].length;c<b;c++){this._setupCallbacks[a][c]()}delete this._setupCallbacks[a]}this._loaded.push(a);if(this._callbacks[a]){for(var c=0,b=this._callbacks[a].length;c<b;c++){this._callbacks[a][c]()}delete this._callbacks[a]}}};WCF.System.FlexibleMenu={_containers:{},_containerIDs:[],_dropdowns:{},_dropdownMenus:{},_hasHiddenItems:{},_isWorking:false,_menuItems:{},init:function(){this.registerMenu("mainMenu");this.registerMenu($(".navigationHeader:eq(0)").wcfIdentify());this._registerTabMenus();$(window).resize($.proxy(this.rebuildAll,this));WCF.DOMNodeInsertedHandler.addCallback("WCF.System.FlexibleMenu",$.proxy(this._registerTabMenus,this))},_registerTabMenus:function(){$(".tabMenuContainer:not(.jsFlexibleMenuEnabled)").each(function(a,b){var c=$(b).children("nav");if(c.length&&c.find("> ul:eq(0) > li").length){WCF.System.FlexibleMenu.registerMenu(c.wcfIdentify())}})},registerMenu:function(a){var b=$("#"+a);if(!b.length){console.debug("[WCF.System.FlexibleMenu] Unable to find container identified by '"+a+"', aborting.");return}this._containerIDs.push(a);this._containers[a]=b;this._menuItems[a]=b.find("> ul:eq(0) > li");this._dropdowns[a]=$('<li class="dropdown"><a class="icon icon16 icon-list" /></li>').data("containerID",a).click($.proxy(this._click,this));this._dropdownMenus[a]=$('<ul class="dropdownMenu" />').appendTo(this._dropdowns[a]);this._hasHiddenItems[a]=false;this.rebuild(a);WCF.Dropdown.initDropdown(this._dropdowns[a].children("a"))},rebuildAll:function(){if(this._isWorking){return}this._isWorking=true;for(var b=0,a=this._containerIDs.length;b<a;b++){this.rebuild(this._containerIDs[b])}this._isWorking=false},rebuild:function(i){if(!this._containers[i]){console.debug("[WCF.System.FlexibleMenu] Cannot rebuild unknown container identified by '"+i+"'");return}var c=false;var j=this._containers[i];var b=0;var d=this._menuItems[i].filter(":visible");for(var h=0,e=d.length;h<e;h++){b+=$(d[h]).outerWidth(true)}if(!this._hasHiddenItems[i]){this._dropdowns[i].appendTo(j.children("ul:eq(0)"))}var f=this._dropdowns[i].outerWidth(true);if(!this._hasHiddenItems[i]){this._dropdowns[i].detach()}var a=j.parent().innerWidth();a-=parseInt(j.parent().css("padding-left").replace(/px$/,""))+parseInt(j.parent().css("padding-right").replace(/px$/,""));a-=parseInt(j.css("margin-left").replace(/px$/,""))+parseInt(j.css("margin-right").replace(/px$/,""));a-=parseInt(j.css("padding-left").replace(/px$/,""))+parseInt(j.css("padding-right").replace(/px$/,""));a-=parseInt(j.children("ul:eq(0)").css("padding-left").replace(/px$/,""))+parseInt(j.children("ul:eq(0)").css("padding-right").replace(/px$/,""));if(b>a||(this._hasHiddenItems[i]&&(b>a-f))){var d=d.filter(":not(.active):not(.ui-state-active):visible");a-=f;for(var h=(d.length-1);h>=0;h--){if(b>a){var g=$(d[h]);b-=g.outerWidth(true);g.hide();c=true;this._hasHiddenItems[i]=true}else{break}}if(this._hasHiddenItems[i]){this._dropdowns[i].appendTo(j.children("ul:eq(0)"))}}else{if(this._hasHiddenItems[i]&&b<a){var k=this._menuItems[i].filter(":not(:visible)");a-=f;for(var h=0,e=k.length;h<e;h++){var g=$(k[h]);b+=g.outerWidth();if(h+1==e){a+=f}if(b<a){g.css("display","");c=true}else{break}}if(c){this._hasHiddenItems[i]=(this._menuItems[i].filter(":not(:visible)").length>0);if(!this._hasHiddenItems[i]){this._dropdowns[i].detach()}}}}if(c){this._dropdownMenus[i].empty();this._menuItems[i].filter(":not(:visible)").each($.proxy(function(l,m){$("<li>"+$(m).html()+"</li>").appendTo(this._dropdownMenus[i])},this))}}};WCF.System.Mobile={};WCF.System.Mobile.UX={_enabled:false,_main:null,_sidebar:null,init:function(){this._enabled=false;this._main=$("#main");this._sidebar=this._main.find("> div > div > .sidebar");if($.browser.touch){$("html").addClass("touch")}enquire.register("screen and (max-width: 800px)",{match:$.proxy(this._enable,this),unmatch:$.proxy(this._disable,this),setup:$.proxy(this._setup,this),deferSetup:true});if($.browser.msie&&this._sidebar.width()>305){this._sidebar.css("display","none").css("display","")}},_setup:function(){this._initSidebarToggleButtons();this._initSearchBar();this._initButtonGroupNavigation();WCF.CloseOverlayHandler.addCallback("WCF.System.Mobile.UX",$.proxy(this._closeMenus,this));WCF.DOMNodeInsertedHandler.addCallback("WCF.System.Mobile.UX",$.proxy(this._initButtonGroupNavigation,this))},_enable:function(){this._enabled=true;if($.browser.msie){this._sidebar.css("display","none").css("display","")}},_disable:function(){this._enabled=false;if($.browser.msie){this._sidebar.css("display","none").css("display","")}},_initSidebarToggleButtons:function(){var c=this._main.hasClass("sidebarOrientationLeft");var b=this._main.hasClass("sidebarOrientationRight");if(c||b){var d="wcf.global.sidebar.show"+(c?"Left":"Right")+"Sidebar";if(d===WCF.Language.get(d)||WCF.Language.get(d)===""){d='<span
class="icon icon16 icon-double-angle-'+(c?"left
":"right
")+'" />'}var e="wcf.global.sidebar.hide"+(c?"Left":"Right")+"Sidebar";if(e===WCF.Language.get(e)||WCF.Language.get(e)===""){e='<span
class="icon icon16 icon-double-angle-'+(c?"right
":"left
")+'" />'}var a=this;$('<span class="button small mobileSidebarToggleButton">'+d+"</span>").appendTo($(".content
")).click(function(){a._main.addClass("mobileShowSidebar
")});$('<span class="button small mobileSidebarToggleButton
">'+e+"</span>").appendTo($(".sidebar")).click(function(){a._main.removeClass("mobileShowSidebar")})}},_initSearchBar:function(){var b=$(".searchBar:eq(0)");var a=this;b.click(function(){if(a._enabled){b.addClass("searchBarOpen")}});this._main.click(function(){b.removeClass("searchBarOpen")})},_initButtonGroupNavigation:function(){$(".buttonGroupNavigation:not(.jsMobileButtonGroupNavigation)").each(function(b,a){var d=$(a).addClass("jsMobileButtonGroupNavigation");var c=$('<a class="dropdownLabel"><span class="icon icon24 icon-list" /></a>').prependTo(d);c.click(function(){c.next().toggleClass("open");return false})})},_closeMenus:function(){$(".jsMobileButtonGroupNavigation > ul.open").removeClass("open")}};WCF.System.Page={};WCF.System.Page.Multiple=Class.extend({_cache:{},_options:{},_pageNo:1,_pages:0,_previousPageNo:0,init:function(a){this._options=$.extend({container:null,pagination:null,loadItems:null},a);this._cache={};this._pageNo=1;this._pages=0;this._previousPageNo=0;if(this._pagination.data("pages")){this._pagination.wcfPages({maxPage:this._pagination.data("pages")}).on("wcfpagesswitched",$.proxy(this._showPage,this))}},_showPage:function(a,b){if(b&&b.activePage){if(!b.template){this._previousPageNo=this._pageNo}this._pageNo=b.activePage}if(this._cache[this._pageNo]||(b&&b.template)){this._cache[this._previousPageNo]=this._list.children().detach();if(b&&b.template){this._list.html(b.template)}else{this._list.append(this._cache[this._pageNo])}}else{this._options.loadItems()}},showPage:function(a,b){this._showPage(null,{activePage:a,template:b})},getPageNo:function(){return this._pageNo}});WCF.System.Notification=Class.extend({_callback:null,_cssClassNames:"",_message:"",_overlay:null,init:function(a,b){this._cssClassNames=b||"success";this._message=a||WCF.Language.get("wcf.global.success");this._overlay=$("#systemNotification");if(!this._overlay.length){this._overlay=$('<div id="systemNotification"><p></p></div>').hide().appendTo(document.body)}},show:function(d,b,a,c){b=parseInt(b);if(!b){b=2000}if(d&&$.isFunction(d)){this._callback=d}this._overlay.children("p").html((a||this._message));this._overlay.children("p").removeClass().addClass((c||this._cssClassNames));new WCF.PeriodicalExecuter($.proxy(this._hide,this),b);this._overlay.wcfFadeIn(undefined,300)},_hide:function(a){if(this._callback!==null){this._callback()}this._overlay.wcfFadeOut(undefined,300);a.stop()}});WCF.System.Confirmation={_callback:null,_dialog:null,_parameters:null,_visible:false,_confirmationButton:null,show:function(c,e,b,a){if(this._visible){console.debug("[WCF.System.Confirmation] Confirmation dialog is already open, refusing action.");return}if(!$.isFunction(e)){console.debug("[WCF.System.Confirmation] Given callback is invalid, aborting.");return}this._callback=e;this._parameters=b;var d=true;if(this._dialog===null){this._createDialog();d=false}this._dialog.find("#wcfSystemConfirmationContent").empty().hide();if(a&&a.length){a.appendTo(this._dialog.find("#wcfSystemConfirmationContent").show())}this._dialog.find("p").text(c);this._dialog.wcfDialog({onClose:$.proxy(this._close,this),onShow:$.proxy(this._show,this),title:WCF.Language.get("wcf.global.confirmation.title")});if(d){this._dialog.wcfDialog("render")}this._confirmationButton.focus();this._visible=true},_createDialog:function(){this._dialog=$('<div id="wcfSystemConfirmation" class="systemConfirmation"><p /><div id
="wcfSystemConfirmationContent" /></div>').hide().appendTo(document.body);var a=$('<div
class="formSubmit" />').appendTo(this._dialog);this._confirmationButton=$('<button class="buttonPrimary">'+WCF.Language.get("wcf.global.confirmation.confirm")+"</button
>").data("action
","confirm
").click($.proxy(this._click,this)).appendTo(a);$("<button
>"+WCF.Language.get("wcf
.global
.confirmation
.cancel
")+"</button>").data("action","cancel").click($.proxy(this._click,this)).appendTo(a)},_click:function(a){this._notify($(a.currentTarget).data("action"))},_close:function(){if(this._visible){this._notify("cancel")}},_notify:function(a){this._visible=false;this._dialog.wcfDialog("close");this._callback(a,this._parameters)},_show:function(){this._dialog.find("button.buttonPrimary").blur().focus()}};WCF.System.DisableScrolling={_depth:0,_oldOverflow:null,disable:function(){if($.browser.touch){return}if(this._depth===0){this._oldOverflow=$(document.body).css("overflow");$(document.body).css("overflow","hidden")}this._depth++},enable:function(){if(this._depth===0){return}this._depth--;if(this._depth===0){$(document.body).css("overflow",this._oldOverflow)}}};WCF.System.PageNavigation={_button:null,_description:null,_dialog:null,_elementID:"",_elements:{},_pageNo:null,init:function(a,c){var b=$(a);if(!b.length){return}c=c||null;if(c!==null&&!$.isFunction(c)){console.debug("[WCF.System.PageNavigation] Callback for selector '"+a+"' is invalid, aborting.");return}this._initElements(b,c)},_initElements:function(b,c){var a=this;b.each(function(e,f){var d=$(f);var g=d.wcfIdentify();if(a._elements[g]===undefined){a._elements[g]=d;d.find("li.jumpTo").data("elementID",g).click($.proxy(a._click,a))}}).data("callback",c)},_click:function(b){this._elementID=$(b.currentTarget).data("elementID");if(this._dialog===null){this._dialog=$('<div id="pageNavigationOverlay" />').hide().appendTo(document.body);var c=$("<fieldset><legend>"+WCF.Language.get("wcf.global.page.jumpTo")+"</legend></fieldset>").appendTo(this._dialog);$('<dl
><dt
><label
for="jsPageNavigationPageNo">'+WCF.Language.get("wcf.global.page.jumpTo")+"</label></dt><dd></dd></dl>").appendTo(c);this._pageNo=$('<input type
="number" id
="jsPageNavigationPageNo" value
="1" min
="1" max
="1" class="tiny" />').keyup($.proxy(this._keyUp,this)).appendTo(c.find("dd"));this._description=$("<small></small>").insertAfter(this._pageNo);var a=$('<div class="formSubmit
" />').appendTo(this._dialog);this._button=$('<button class="buttonPrimary
">'+WCF.Language.get("wcf
.global
.button
.submit
")+"</button
>").click($.proxy(this._submit,this)).appendTo(a)}this._button.enable();this._description.html(WCF.Language.get("wcf
.global
.page
.jumpTo
.description
").replace(/#pages#/,this._elements[this._elementID].data("pages
")));this._pageNo.val(this._elements[this._elementID].data("pages
")).attr("max
",this._elements[this._elementID].data("pages
"));this._dialog.wcfDialog({title:WCF.Language.get("wcf
.global
.page
.pageNavigation
")})},_keyUp:function(b){if(b.which==$.ui.keyCode.ENTER&&!this._button.prop("disabled
")){this._submit();return}var a=parseInt(this._pageNo.val())||0;if(a<1||a>this._pageNo.attr("max
")){this._button.disable()}else{this._button.enable()}},_submit:function(){var b=this._elements[this._elementID];if(b.data("callback
")===null){var a=b.data("link
").replace(/pageNo=%d/,"pageNo
="+this._pageNo.val());window.location=a}else{b.data("callback
")(this._pageNo.val());this._dialog.wcfDialog("close
")}}};WCF.System.KeepAlive=Class.extend({init:function(a){new WCF.PeriodicalExecuter(function(b){new WCF.Action.Proxy({autoSend:true,data:{actionName:"keepAlive
",className:"wcf
\\data
\\session
\\SessionAction
"},failure:function(){b.stop()},showLoadingOverlay:false,suppressErrors:true})},(a*1000))}});WCF.InlineEditor=Class.extend({_callbacks:[],_dropdowns:{},_elements:{},_notification:null,_options:[],_proxy:null,_updateData:[],init:function(d){var c=$(d);if(!c.length){return}this._setOptions();var b="";for(var f=0,e=this._options.length;f<e;f++){if(this._options[f].isQuickOption){b=this._options[f].optionName;break}}var a=this;c.each(function(i,j){var h=$(j);var k=h.wcfIdentify();var g=a._getTriggerElement(h);if(g===null||g.length!==1){return}g.click($.proxy(a._show,a)).data("elementID
",k);if(b){g.disableSelection().data("optionName
",b).dblclick($.proxy(a._click,a))}a._elements[k]=h});this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});WCF.CloseOverlayHandler.addCallback("WCF
.InlineEditor
",$.proxy(this._closeAll,this));this._notification=new WCF.System.Notification(WCF.Language.get("wcf
.global
.success
"),"success
")},_closeAll:function(){for(var a in this._elements){this._hide(a)}},_setOptions:function(){this._options=[]},registerCallback:function(a){if($.isFunction(a)){this._callbacks.push(a)}},_getTriggerElement:function(a){return null},_show:function(b){var g=$(b.currentTarget).data("elementID
");var h=null;if(!this._dropdowns[g]){h=this._getTriggerElement(this._elements[g]).addClass("dropdownToggle
").wrap('<span class="dropdown
" />');this._dropdowns[g]=$('<ul class="dropdownMenu
" />').insertAfter(h)}this._dropdowns[g].empty();var c=false;var d="";for(var k=0,i=this._options.length;k<i;k++){var a=this._options[k];if(a.optionName==="divider
"){if(d!==""&&d!=="divider
"){$('<li class="dropdownDivider
" />').appendTo(this._dropdowns[g]);d=a.optionName}}else{if(this._validate(g,a.optionName)||this._validateCallbacks(g,a.optionName)){var f=$("<li
><span
>"+a.label+"</span
></li>").appendTo(this._dropdowns[g]);f.data("elementID",g).data("optionName",a.optionName).data("isQuickOption",(a.isQuickOption?true:false)).click($.proxy(this._click,this));c=true;d=a.optionName}}}if(c){var l=this._dropdowns[g].children().last();if(l.hasClass("dropdownDivider")){l.remove()}var j=null;var e=0;this._dropdowns[g].children().each(function(m,o){var n=$(o);if(!n.hasClass("dropdownDivider")){if(n.data("isQuickOption")){j=n}else{e++}}});if(!e){j.trigger("click");if(h!==null){WCF.Dropdown.close(h.parents(".dropdown").wcfIdentify())}return false}}if(h!==null){WCF.Dropdown.initDropdown(h,true)}return false},_validate:function(a,b){return false},_validateCallbacks:function(a,b){var c=this._callbacks.length;if(c){for(var d=0;d<c;d++){if(this._callbacks[d].validate(this._elements[a],b)){return true}}}return false},_success:function(b,d,a){var c=this._updateData.length;if(!c){return}this._updateState(b);this._updateData=[]},_updateState:function(a){},_click:function(c){var b=$(c.currentTarget);var d=b.data("elementID");var a=b.data("optionName");if(!this._execute(d,a)){this._executeCallback(d,a)}this._hide(d)},_execute:function(a,b){return false},_executeCallback:function(a,b){var c=this._callbacks.length;if(c){for(var d=0;d<c;d++){if(this._callbacks[d].execute(this._elements[a],b)){return true}}}return false},_hide:function(a){if(this._dropdowns[a]){this._dropdowns[a].empty().removeClass("dropdownOpen")}}});WCF.Upload=Class.extend({_name:"__files[]",_buttonSelector:null,_fileListSelector:null,_fileUpload:null,_className:"",_iframe:null,_internalFileID:0,_options:{},_uploadMatrix:[],_supportsAJAXUpload:true,_overlay:null,init:function(c,e,d,b){this._buttonSelector=c;this._fileListSelector=e;this._className=d;this._internalFileID=0;this._options=$.extend(true,{action:"upload",multiple:false,url:"index.php/AJAXUpload
/?t="+SECURITY_TOKEN+SID_ARG_2ND},b||{});var a=new XMLHttpRequest();this._supportsAJAXUpload=(a&&("upload" in a)&&("onprogress" in a.upload));this._createButton()},_createButton:function(){if(this._supportsAJAXUpload){this._fileUpload=$('<input type="file" name="'+this._name+'" '+(this._options.multiple?'multiple="true" ':"")+"/>");this._fileUpload.change($.proxy(this._upload,this));var a=$('<p class="button uploadButton
"><span>'+WCF.Language.get("wcf
.global
.button
.upload
")+"</span></p>");a.prepend(this._fileUpload)}else{var a=$('<p class="button uploadFallbackButton
"><span>'+WCF.Language.get("wcf
.global
.button
.upload
")+"</span></p>");a.click($.proxy(this._showOverlay,this))}this._insertButton(a)},_insertButton:function(a){this._buttonSelector.append(a)},_removeButton:function(){var a=".uploadButton
";if(!this._supportsAJAXUpload){a=".uploadFallbackButton
"}this._buttonSelector.find(a).remove()},_upload:function(){var a=this._fileUpload.prop("files
");if(a.length){var i=new FormData();var f=this._createUploadMatrix(a);if(!this._uploadMatrix[f].length){return}for(var d=0,c=a.length;d<c;d++){if(this._uploadMatrix[f][d]){var e=this._uploadMatrix[f][d].data("internalFileID
");i.append("__files
["+e+"]",a[d])}}i.append("actionName
",this._options.action);i.append("className
",this._className);var b=this._getParameters();for(var h in b){i.append("parameters
["+h+"]",b[h])}var g=this;$.ajax({type:"POST
",url:this._options.url,enctype:"multipart
/form-data",data:i,contentType:false,processData:false,success:function(k,l,j){g._success(f,k)},error:$.proxy(this._error,this),xhr:function(){var j=$.ajaxSettings.xhr();if(j){j.upload.addEventListener("progress",function(k){g._progress(f,k)},false)}return j}})}},_createUploadMatrix:function(b){if(b.length){var c=this._uploadMatrix.length;this._uploadMatrix[c]=[];for(var f=0,d=b.length;f<d;f++){var a=b[f];var e=this._initFile(a);if(!e.hasClass("uploadFailed")){e.data("filename",a.name).data("internalFileID",this._internalFileID++);this._uploadMatrix[c][f]=e}}return c}return null},_success:function(b,a){},_error:function(a,c,b){},_progress:function(c,a){var b=Math.round(a.loaded*100/a.total
);for(var d
in this._uploadMatrix
[c
]){this._uploadMatrix
[c
][d
].find("progress").attr("value",b
)}},_getParameters:function(){return{}},_initFile:function(a
){return $("<li>"+a
.name
+" ("+a
.size
+')<progress max="100" /></li>').appendTo(this._fileListSelector
)},_showOverlay:function(){if(this._iframe
===null){this._iframe
=$('<iframe name="__fileUploadIFrame" />').hide().appendTo(document
.body
)}if(!this._overlay
){this._overlay
=$('<div><form enctype="multipart/form-data" method="post" action="'+this._options
.url
+'" target="__fileUploadIFrame" /></div>').hide().appendTo(document
.body
);var a
=this._overlay
.find("form");$('<dl class="wide"><dd><input type="file" id="__fileUpload" name="'+this._name
+'" '+(this._options
.multiple
?'multiple="true" ':"")+"/></dd></dl>").appendTo(a
);$('<div class="formSubmit"><input type="submit" value="Upload" accesskey="s" /></div></form>').appendTo(a
);$('<input type="hidden" name="isFallback" value="1" />').appendTo(a
);$('<input type="hidden" name="actionName" value="'+this._options
.action
+'" />').appendTo(a
);$('<input type="hidden" name="className" value="'+this._className
+'" />').appendTo(a
);var b
=this._getParameters();for(var c
in b
){$('<input type="hidden" name="'+c
+'" value="'+b
[c
]+'" />').appendTo(a
)}a
.submit($.proxy(function(){var d
={name
:this._getFilename(),size
:""};var f
=this._createUploadMatrix([d
]);var e
=this;this._iframe
.data("loading",true).off("load").load(function(){e
._evaluateResponse(f
)});this._overlay
.wcfDialog("close")},this))}this._overlay
.wcfDialog({title
:WCF
.Language
.get("wcf.global.button.upload")})},_evaluateResponse:function(b
){var a
=$.parseJSON(this._iframe
.contents().find("pre").html());this._success(b
,a
)},_getFilename:function(){return $("#__fileUpload").val().split("\\").pop()}});WCF
.Upload
.Parallel
=WCF
.Upload
.extend({init:function(b
,d
,c
,a
){a
=$.extend(true,a
||{},{multiple
:true});this._super(b
,d
,c
,a
)},_upload:function(){var b
=this._fileUpload
.prop("files");for(var h
=0,e
=b
.length
;h
<e
;h
++){var a
=b
[h
];var c
=new FormData();var g
=this._createUploadMatrix(a
);if(!this._uploadMatrix
[g
].length
){continue}c
.append("__files["+g
+"]",a
);c
.append("actionName",this._options
.action
);c
.append("className",this._className
);var d
=this._getParameters();for(var f
in d
){c
.append("parameters["+f
+"]",d
[f
])}this._sendRequest(g
,c
)}},_sendRequest:function(c
,b
){var a
=this;$.ajax({type
:"POST",url
:this._options
.url
,enctype
:"multipart/form-data",data
:b
,contentType
:false,processData
:false,success:function(e
,f
,d
){a
._success(c
,e
)},error
:$.proxy(this._error
,this),xhr:function(){var d
=$.ajaxSettings
.xhr();if(d
){d
.upload
.addEventListener("progress",function(e
){a
._progress(c
,e
)},false)}return d
}})},_createUploadMatrix:function(a
){var b
=this._initFile(a
);if(!b
.hasClass("uploadFailed")){b
.data("filename",a
.name
).data("internalFileID",this._internalFileID
);this._uploadMatrix
[this._internalFileID
++]=b
;return this._internalFileID
-1}return null},_success:function(b
,a
){},_progress:function(b
,a
){var c
=Math
.round(a
.loaded
*100/a
.total
);this._uploadMatrix
[b
].find("progress").attr("value",c
)},_showOverlay:function(){if(this._iframe
===null){this._iframe
=$('<iframe name="__fileUploadIFrame" />').hide().appendTo(document
.body
)}if(!this._overlay
){this._overlay
=$('<div><form enctype="multipart/form-data" method="post" action="'+this._options
.url
+'" target="__fileUploadIFrame" /></div>').hide().appendTo(document
.body
);var a
=this._overlay
.find("form");$('<dl class="wide"><dd><input type="file" id="__fileUpload" name="'+this._name
+'" '+(this._options
.multiple
?'multiple="true" ':"")+"/></dd></dl>").appendTo(a
);$('<div class="formSubmit"><input type="submit" value="Upload" accesskey="s" /></div></form>').appendTo(a
);$('<input type="hidden" name="isFallback" value="1" />').appendTo(a
);$('<input type="hidden" name="actionName" value="'+this._options
.action
+'" />').appendTo(a
);$('<input type="hidden" name="className" value="'+this._className
+'" />').appendTo(a
);var b
=this._getParameters();for(var c
in b
){$('<input type="hidden" name="'+c
+'" value="'+b
[c
]+'" />').appendTo(a
)}a
.submit($.proxy(function(){var d
={name
:this._getFilename(),size
:""};var f
=this._createUploadMatrix(d
);var e
=this;this._iframe
.data("loading",true).off("load").load(function(){e
._evaluateResponse(f
)});this._overlay
.wcfDialog("close")},this))}this._overlay
.wcfDialog({title
:WCF
.Language
.get("wcf.global.button.upload")})},_evaluateResponse:function(b
){var a
=$.parseJSON(this._iframe
.contents().find("pre").html());this._success(b
,a
)}});WCF
.Sortable
={};WCF
.Sortable
.List
=Class
.extend({_additionalParameters
:{},_className
:"",_containerID
:"",_container
:null,_notification
:null,_offset
:0,_options
:{},_proxy
:null,_structure
:{},init:function(a
,f
,g
,d
,e
,c
){this._additionalParameters
=c
||{};this._containerID
=$.wcfEscapeID(a
);this._container
=$("#"+this._containerID
);this._className
=f
;this._offset
=(g
)?g
:0;this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)});this._structure
={};this._options
=$.extend(true,{axis
:"y",connectWith
:"#"+this._containerID
+" .sortableList",disableNesting
:"sortableNoNesting",doNotClear
:true,errorClass
:"sortableInvalidTarget",forcePlaceholderSize
:true,helper
:"clone",items
:"li:not(.sortableNoSorting)",opacity
:0.6,placeholder
:"sortablePlaceholder",tolerance
:"pointer",toleranceElement
:"> span"},d
||{});if(e
){$("#"+this._containerID
+" .sortableList").sortable(this._options
)}else{$("#"+this._containerID
+" > .sortableList").nestedSortable(this._options
)}if(this._className
){var b
=this._container
.find(".formSubmit");if(!b
.length
){b
=this._container
.next(".formSubmit");if(!b
.length
){console
.debug("[WCF.Sortable.Simple] Unable to find form submit for saving, aborting.");return}}b
.children('button[data-type="submit"]').click($.proxy(this._submit
,this))}},_submit:function(){this._structure
={};this._container
.find(".sortableList").each($.proxy(function(c
,e
){var b
=$(e
);var d
=b
.data("objectID");if(d
!==undefined){b
.children(this._options
.items
).each($.proxy(function(f
,h
){var g
=$(h
).data("objectID");if(!this._structure
[d
]){this._structure
[d
]=[]}this._structure
[d
].push(g
)},this))}},this));var a
=$.extend(true,{data
:{offset
:this._offset
,structure
:this._structure
}},this._additionalParameters
);this._proxy
.setOption("data",{actionName
:"updatePosition",className
:this._className
,interfaceName
:"wcf\\data\\ISortableAction",parameters
:a
});this._proxy
.sendRequest()},_success:function(b
,c
,a
){if(this._notification
===null){this._notification
=new WCF
.System
.Notification(WCF
.Language
.get("wcf.global.success.edit"))}this._notification
.show()}});WCF
.Popover
=Class
.extend({_activeElementID
:"",_cancelPopover
:false,_data
:{},_defaultDimensions
:{height
:150,width
:450},_defaultOrientation
:{x
:"right",y
:"top"},_delay
:{show
:800,hide
:500},_hoverElement
:false,_hoverElementID
:"",_hoverPopover
:false,_margin
:20,_peOut
:null,_peOverElement
:null,_popover
:null,_popoverContent
:null,_popoverOffset
:10,_selector
:"",init:function(a
){if($.browser
.mobile
){return}this._activeElementID
="";this._cancelPopover
=false;this._data
={};this._defaultDimensions
={height
:150,width
:450};this._defaultOrientation
={x
:"right",y
:"top"};this._delay
={show
:800,hide
:500};this._hoverElement
=false;this._hoverElementID
="";this._hoverPopover
=false;this._margin
=20;this._peOut
=null;this._peOverElement
=null;this._popoverOffset
=10;this._selector
=a
;this._popover
=$('<div class="popover"><span class="icon icon48 icon-spinner"></span><div class="popoverContent"></div></div>').hide().appendTo(document
.body
);this._popoverContent
=this._popover
.children(".popoverContent:eq(0)");this._popover
.hover($.proxy(this._overPopover
,this),$.proxy(this._out
,this));this._initContainers();WCF
.DOMNodeInsertedHandler
.addCallback("WCF.Popover."+a
,$.proxy(this._initContainers
,this))},_initContainers:function(){if($.browser
.mobile
){return}var a
=$(this._selector
);if(!a
.length
){return}a
.each($.proxy(function(c
,d
){var b
=$(d
);var e
=b
.wcfIdentify();if(!this._data
[e
]){this._data
[e
]={content
:null,isLoading
:false};b
.hover($.proxy(this._overElement
,this),$.proxy(this._out
,this));if(b
.is("a")&&b
.attr("href")){b
.click($.proxy(this._cancel
,this))}}},this))},_cancel:function(a
){this._cancelPopover
=true;this._hide(true)},_overElement:function(a
){if(this._cancelPopover
){return}if(this._peOverElement
!==null){this._peOverElement
.stop()}var b
=$(a
.currentTarget
).wcfIdentify();this._hoverElementID
=b
;this._peOverElement
=new WCF
.PeriodicalExecuter($.proxy(function(c
){c
.stop();if(this._hoverElementID
===b
){this._activeElementID
=b
;this._prepare()}},this),this._delay
.show
);this._hoverElement
=true;this._hoverPopover
=false},_prepare:function(){if(this._cancelPopover
){return}if(this._peOut
!==null){this._peOut
.stop()}if(this._popover
.is(":visible")){this._hide(true)}if(!this._data
[this._activeElementID
].loading
&&this._data
[this._activeElementID
].content
){this._popoverContent
.html(this._data
[this._activeElementID
].content
);WCF
.DOMNodeInsertedHandler
.execute()}else{this._data
[this._activeElementID
].loading
=true}var a
=this._popover
.show().getDimensions();if(this._data
[this._activeElementID
].loading
){a
={height
:Math
.max(a
.height
,this._defaultDimensions
.height
),width
:Math
.max(a
.width
,this._defaultDimensions
.width
)}}else{a
=this._fixElementDimensions(this._popover
,a
)}this._popover
.hide();var b
=this._getOrientation(a
.height
,a
.width
);this._popover
.css(this._getCSS(b
.x
,b
.y
));this._popover
.removeClass("bottom left right top").addClass(b
.x
).addClass(b
.y
);this._show()},_show:function(){if(this._cancelPopover
){return}this._popover
.stop().show().css({opacity
:1}).wcfFadeIn();if(this._data
[this._activeElementID
].loading
){this._popover
.children("span").show();this._loadContent()}else{this._popover
.children("span").hide();this._popoverContent
.css({opacity
:1})}},_loadContent:function(){},_insertContent:function(a
,e
,c
){this._data
[a
]={content
:e
,loading
:false};if(this._activeElementID
===a
){if(c
){var d
=this._popoverContent
.getDimensions();this._popoverContent
.css({height
:"auto",width
:"auto"});this._popoverContent
.html(this._data
[a
].content
);var f
=this._popoverContent
.getDimensions();this._popoverContent
.html("").css({height
:d
.height
+"px",width
:d
.width
+"px"});var b
=this;this._popoverContent
.animate({height
:f
.height
+"px",width
:f
.width
+"px"},300,function(){b
._popover
.children("span").hide();b
._popoverContent
.html(b
._data
[a
].content
).css({opacity
:0}).animate({opacity
:1},200);WCF
.DOMNodeInsertedHandler
.execute()})}else{this._popover
.children("span").hide();this._popoverContent
.html(this._data
[a
].content
);WCF
.DOMNodeInsertedHandler
.execute()}}},_hide:function(b
){var a
=this;this._popoverContent
.stop();this._popover
.stop();if(b
){a
._popover
.css({opacity
:0}).hide();a
._popoverContent
.empty().css({height
:"auto",opacity
:0,width
:"auto"})}else{this._popover
.wcfFadeOut(function(){a
._popoverContent
.empty().css({height
:"auto",opacity
:0,width
:"auto"});a
._popover
.hide()})}},_overPopover:function(){if(this._peOut
!==null){this._peOut
.stop()}this._hoverElement
=false;this._hoverPopover
=true},_out:function(a
){if(this._cancelPopover
){return}this._hoverElementID
="";this._hoverElement
=false;this._hoverPopover
=false;this._peOut
=new WCF
.PeriodicalExecuter($.proxy(function(b
){b
.stop();if(!this._hoverElement
&&!this._hoverPopover
){this._hide(false)}},this),this._delay
.hide
)},_getOrientation:function(i
,a
){var h
=$("#"+this._activeElementID
);var g
=h
.getOffsets("offset");var f
=h
.getDimensions();var b
=$(document
).getDimensions();var e
=(this._defaultOrientation
.x
==="left")?"left":"right";var d
=(this._defaultOrientation
.y
==="bottom")?"bottom":"top";var c
=this._evaluateOrientation(e
,d
,g
,f
,b
,i
,a
);if(c
.flawed
){e
=(e
==="left")?"right":"left";c
=this._evaluateOrientation(e
,d
,g
,f
,b
,i
,a
);if(c
.flawed
){e
=(e
==="right")?"left":"right";d
=(d
==="bottom")?"top":"bottom";c
=this._evaluateOrientation(e
,d
,g
,f
,b
,i
,a
);if(c
.flawed
){e
=(e
==="left")?"right":"left";c
=this._evaluateOrientation(e
,d
,g
,f
,b
,i
,a
);if(c
.flawed
){e
=(this._defaultOrientationX
==="left")?"left":"right";d
=(this._defaultOrientationY
==="bottom")?"bottom":"top"}}}}return{x
:e
,y
:d
}},_evaluateOrientation:function(g
,f
,b
,h
,j
,i
,a
){var d
=0,e
=0;switch(g
){case"left":e
=b
.left
-a
;break;case"right":e
=j
.width
-(b
.left
+a
);break}switch(f
){case"bottom":d
=j
.height
-(b
.top
+h
.height
+this._popoverOffset
+i
);break;case"top":d
=b
.top
-(i
-this._popoverOffset
);break}var c
=false;if(d
<this._margin
||e
<this._margin
){c
=true}return{flawed
:c
,x
:e
,y
:d
}},_getCSS:function(d
,c
){var g
={bottom
:"auto",left
:"auto",right
:"auto",top
:"auto"};var b
=$("#"+this._activeElementID
);var e
=b
.getOffsets("offset");var f
=this._fixElementDimensions(b
,b
.getDimensions());var a
=$(window
).getDimensions();switch(d
){case"left":g
.right
=a
.width
-(e
.left
+f
.width
);break;case"right":g
.left
=e
.left
;break}switch(c
){case"bottom":g
.top
=e
.top
+(f
.height
+this._popoverOffset
);break;case"top":g
.bottom
=a
.height
-(e
.top
-this._popoverOffset
);break}return g
},_fixElementDimensions:function(a
,b
){var c
=a
.parent().getDimensions();if(c
.height
<b
.height
){b
.height
=c
.height
}if(c
.width
<b
.width
){b
.width
=c
.width
}return b
}});WCF
.EditableItemList
=Class
.extend({_allowCustomInput
:false,_className
:"",_data
:{},_form
:null,_itemList
:null,_objectID
:0,_objectTypeID
:0,_search
:null,_searchInput
:null,init:function(c
,a
){this._itemList
=$(c
);this._searchInput
=$(a
);this._data
={};if(!this._itemList
.length
||!this._searchInput
.length
){console
.debug("[WCF.EditableItemList] Item list and/or search input do not exist, aborting.");return}this._objectID
=this._getObjectID();this._objectTypeID
=this._getObjectTypeID();this._itemList
.find(".jsEditableItem").click($.proxy(this._click
,this));if(!this._itemList
.children("ul").length
){$("<ul />").appendTo(this._itemList
)}this._itemList
=this._itemList
.children("ul");this._form
=this._itemList
.parents("form").submit($.proxy(this._submit
,this));if(this._allowCustomInput
){var b
=this;this._searchInput
.keydown($.proxy(this._keyDown
,this)).on("paste",function(){setTimeout(function(){b
._onPaste()},100)})}this._searchInput
.parents(".dropdown").data("preventSubmit",true)},_keyDown:function(b
){if(b
===null||b
.which
===188||b
.which
===$.ui
.keyCode
.ENTER
){if(b
!==null&&b
.which
===$.ui
.keyCode
.ENTER
&&this._search
){if(this._search
._itemIndex
!==-1){return false}}var a
=$.trim(this._searchInput
.val());if(b
&&b
.which
===188){a
=a
.substring(0,this._searchInput
.getCaret())}if(a
===""){return true}this.addItem({objectID
:0,label
:a
});if(b
&&b
.which
===188){this._searchInput
.val($.trim(this._searchInput
.val().substr(this._searchInput
.getCaret())))}else{this._searchInput
.val("")}if(b
!==null){b
.stopPropagation()}return false}return true},_onPaste:function(){var b
=$.trim(this._searchInput
.val());b
=b
.split(",");for(var d
=0,c
=b
.length
;d
<c
;d
++){var a
=$.trim(b
[d
]);if(a
===""){continue}this.addItem({objectID
:0,label
:a
})}this._searchInput
.val("")},load:function(a
){},_click:function(d
){var b
=$(d
.currentTarget
);var c
=b
.data("objectID");var a
=b
.data("label");if(this._search
){this._search
.removeExcludedSearchValue(a
)}this._removeItem(c
,a
);b
.remove();d
.stopPropagation();return false},_getObjectID:function(){return 0},_getObjectTypeID:function(){return 0},addItem:function(b
){if(this._data
[b
.objectID
]){if(!(b
.objectID
===0&&this._allowCustomInput
)){return true}}var a
=$('<li class="badge">'+WCF
.String
.escapeHTML(b
.label
)+"</li>").data("objectID",b
.objectID
).data("label",b
.label
).appendTo(this._itemList
);a
.click($.proxy(this._click
,this));if(this._search
){this._search
.addExcludedSearchValue(b
.label
)}this._addItem(b
.objectID
,b
.label
);return true},clearList:function(){this._itemList
.children("li").each($.proxy(function(b
,c
){var a
=$(c
);if(this._search
){this._search
.removeExcludedSearchValue(a
.data("label"))}a
.remove();this._removeItem(a
.data("objectID"),a
.data("label"))},this))},_submit:function(){this._keyDown(null)},_addItem:function(b
,a
){this._data
[b
]=a
},_removeItem:function(b
,a
){delete this._data
[b
]},getSearchInput:function(){return this._searchInput
}});WCF
.Sitemap
=Class
.extend({_cache
:[],_dialog
:null,_didInit
:false,_proxy
:null,init:function(){$("#sitemap").click($.proxy(this._click
,this));this._cache
=[];this._dialog
=null;this._didInit
=false;this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)})},_click:function(){if(this._dialog
===null){this._dialog
=$('<div id="sitemapDialog" />').appendTo(document
.body
);this._proxy
.setOption("data",{actionName
:"getSitemap",className
:"wcf\\data\\sitemap\\SitemapAction"});this._proxy
.sendRequest()}else{this._dialog
.wcfDialog("open")}},_success:function(b
,c
,a
){if(this._didInit
){this._cache
.push(b
.returnValues
.sitemapName
);this._dialog
.find("#sitemap_"+b
.returnValues
.sitemapName
).html(b
.returnValues
.template
);this._dialog
.wcfDialog("render")}else{this._cache
.push(b
.returnValues
.sitemapName
);this._dialog
.html(b
.returnValues
.template
);this._dialog
.find(".sitemapNavigation").click($.proxy(this._navigate
,this));this._dialog
.find(".tabMenuContainer").wcfTabs("select","sitemap_"+b
.returnValues
.sitemapName
);this._dialog
.wcfDialog({title
:WCF
.Language
.get("wcf.page.sitemap")});this._didInit
=true}},_navigate:function(a
){var b
=$(a
.currentTarget
).data("sitemapName");if(WCF
.inArray(b
,this._cache
)){this._dialog
.find(".tabMenuContainer").wcfTabs("select","sitemap_"+b
);this._dialog
.wcfDialog("render")}else{this._proxy
.setOption("data",{actionName
:"getSitemap",className
:"wcf\\data\\sitemap\\SitemapAction",parameters
:{sitemapName
:b
}});this._proxy
.sendRequest()}}});WCF
.Language
.Chooser
=Class
.extend({_callback
:null,_dropdown
:null,_input
:null,init:function(l
,g
,f
,b
,k
,e
){var m
=$("#"+l
);if(m
.length
!=1){console
.debug("[WCF.Language.Chooser] Invalid container id '"+l
+"' given");return}this._input
=$("#"+g
);if(!this._input
.length
){this._input
=$('<input type="hidden" name="'+g
+'" value="'+f
+'" />').appendTo(m
)}if(k
!==undefined){if(!$.isFunction(k
)){console
.debug("[WCF.Language.Chooser] Given callback is invalid");return}this._callback
=k
}this._dropdown
=$('<div class="dropdown" id="'+l
+'-languageChooser" />').appendTo(m
);$('<div class="dropdownToggle boxFlag box24" data-toggle="'+l
+'-languageChooser"></div>').appendTo(this._dropdown
);var c
=$('<ul class="dropdownMenu" />').appendTo(this._dropdown
);for(var a
in b
){var i
=b
[a
];var h
=$('<li class="boxFlag"><a class="box24"><div class="framed"><img src="'+i
.iconPath
+'" alt="" class="iconFlag" /></div> <div><h3>'+i
.languageName
+"</h3></div></a></li>").appendTo(c
);h
.data("languageID",a
).click($.proxy(this._click
,this));if(a
==f
){var d
=$(""+h
.html());var j
=d
.children().detach();this._dropdown
.children(".dropdownToggle").empty().append(j
)}}if(e
){$('<li class="dropdownDivider" />').appendTo(c
);var h
=$("<li><a>"+WCF
.Language
.get("wcf.global.language.noSelection")+"</a></li>").data("languageID",0).click($.proxy(this._click
,this)).appendTo(c
);if(f
===0){this._dropdown
.children(".dropdownToggle").empty().append(h
.html())}}WCF
.Dropdown
.init()},_click:function(e
){var d
=$(e
.currentTarget
);var c
=d
.data("languageID");this._input
.val(c
);var b
=$(""+d
.html());var a
=(c
===0)?b
:b
.children().detach();this._dropdown
.children(".dropdownToggle").empty().append(a
);if(this._callback
!==null){this._callback(d
)}}});WCF
.Style
={};WCF
.Style
.Chooser
=Class
.extend({_dialog
:null,_proxy
:null,init:function(){$('<li class="styleChooser"><a>'+WCF
.Language
.get("wcf.style.changeStyle")+"</a></li>").appendTo($("#footerNavigation > ul.navigationItems")).click($.proxy(this._showDialog
,this));this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)})},_showDialog:function(){if(this._dialog
===null){this._dialog
=$('<div id="styleChooser" />').hide().appendTo(document
.body
);this._loadDialog()}else{this._dialog
.wcfDialog({title
:WCF
.Language
.get("wcf.style.changeStyle")})}},_loadDialog:function(){this._proxy
.setOption("data",{actionName
:"getStyleChooser",className
:"wcf\\data\\style\\StyleAction"});this._proxy
.sendRequest()},_success:function(b
,c
,a
){if(b
.actionName
==="changeStyle"){window
.location
.reload();return}this._dialog
.html(b
.returnValues
.template
);this._dialog
.find("li").addClass("pointer").click($.proxy(this._click
,this));this._showDialog()},_click:function(a
){this._proxy
.setOption("data",{actionName
:"changeStyle",className
:"wcf\\data\\style\\StyleAction",objectIDs
:[$(a
.currentTarget
).data("styleID")]});this._proxy
.sendRequest()}});WCF
.UserPanel
=Class
.extend({_container
:null,_didLoad
:false,_link
:null,_noItems
:"",_revertOnEmpty
:true,init:function(a
){this._container
=$("#"+a
);this._didLoad
=false;this._revertOnEmpty
=true;if(this._container
.length
!=1){console
.debug("[WCF.UserPanel] Unable to find container identfied by '"+a
+"', aborting.");return}this._convert()},_convert:function(){this._container
.addClass("dropdown");this._link
=this._container
.children("a").remove();var b
=$('<a class="dropdownToggle">'+this._link
.html()+"</a>").appendTo(this._container
).click($.proxy(this._click
,this));var a
=$('<ul class="dropdownMenu" />').appendTo(this._container
);$('<li class="jsDropdownPlaceholder"><span>'+WCF
.Language
.get("wcf.global.loading")+"</span></li>").appendTo(a
);this._addDefaultItems(a
);this._container
.dblclick($.proxy(function(){window
.location
=this._link
.attr("href");return false},this));WCF
.Dropdown
.initDropdown(b
,false)},_addDefaultItems:function(a
){},_addDivider:function(a
){$('<li class="dropdownDivider" />').appendTo(a
)},_click:function(){if(this._didLoad
){return}new WCF
.Action
.Proxy({autoSend
:true,data
:this._getParameters(),success
:$.proxy(this._success
,this)});this._didLoad
=true},_getParameters:function(){return{}},_success:function(c
,e
,b
){var a
=WCF
.Dropdown
.getDropdownMenu(this._container
.wcfIdentify());a
.children(".jsDropdownPlaceholder").remove();if(c
.returnValues
&&c
.returnValues
.template
){$(""+c
.returnValues
.template
).prependTo(a
);var d
=this._container
.find(".badge");if(!d
.length
){d
=$('<span class="badge badgeInverse" />').appendTo(this._container
.children(".dropdownToggle"));d
.before(" ")}d
.html(c
.returnValues
.totalCount
);this._after(a
)}else{$("<li><span>"+WCF
.Language
.get(this._noItems
)+"</span></li>").prependTo(a
);this._container
.find(".badge").remove()}},_after:function(a
){}});$.widget("ui.wcfDialog",{_closeButton
:null,_container
:null,_content
:null,_overlay
:null,_title
:null,_titlebar
:null,_isOpen
:false,options
:{autoOpen
:true,closable
:true,closeButtonLabel
:null,closeConfirmMessage
:null,closeViaModal
:true,hideTitle
:false,modal
:true,title
:"",zIndex
:400,onClose
:null,onShow
:null},_createWidget:function(a
,b
){if($(b
).getTagName()==="script"){console
.debug("[ui.wcfDialog] Ignored script tag");this.element
=false;return null}$.Widget
.prototype._createWidget
.apply(this,arguments
)},_init:function(){if(this.options
.autoOpen
){this.open()}$(window
).resize($.proxy(this._resize
,this))},_create:function(){if(this.options
.closeButtonLabel
===null){this.options
.closeButtonLabel
=WCF
.Language
.get("wcf.global.button.close")}this._container
=$('<div class="dialogContainer" />').hide().css({zIndex
:this.options
.zIndex
}).appendTo(document
.body
);this._titlebar
=$('<header class="dialogTitlebar" />').hide().appendTo(this._container
);this._title
=$('<span class="dialogTitle" />').hide().appendTo(this._titlebar
);this._closeButton
=$('<a class="dialogCloseButton jsTooltip" title="'+this.options
.closeButtonLabel
+'"><span /></a>').click($.proxy(this.close
,this)).hide().appendTo(this._titlebar
);this._content
=$('<div class="dialogContent" />').appendTo(this._container
);this._setOption("title",this.options
.title
);this._setOption("closable",this.options
.closable
);var a
=this.element
.detach();this._content
.html(a
);if(this.options
.modal
){this._overlay
=$("#jsWcfDialogOverlay");if(!this._overlay
.length
){this._overlay
=$('<div id="jsWcfDialogOverlay" class="dialogOverlay" />').css({height
:"100%",zIndex
:399}).hide().appendTo(document
.body
)}if(this.options
.closable
&&this.options
.closeViaModal
){this._overlay
.click($.proxy(this.close
,this));$(document
).keyup($.proxy(function(b
){if(b
.keyCode
&&b
.keyCode
===$.ui
.keyCode
.ESCAPE
){this.close();b
.preventDefault()}},this))}}WCF
.DOMNodeInsertedHandler
.execute()},_setOption:function(a
,b
){this.options
[a
]=b
;if(a
=="hideTitle"||a
=="title"){if(!this.options
.hideTitle
&&this.options
.title
!=""){this._title
.html(this.options
.title
).show()}else{this._title
.html("")}}else{if(a
=="closable"||a
=="closeButtonLabel"){if(this.options
.closable
){this._closeButton
.attr("title",this.options
.closeButtonLabel
).show().find("span").html(this.options
.closeButtonLabel
);WCF
.DOMNodeInsertedHandler
.execute()}else{this._closeButton
.hide()}}}if((!this.options
.hideTitle
&&this.options
.title
!="")||this.options
.closable
){this._titlebar
.show()}else{this._titlebar
.hide()}return this},open:function(){if(this.element
===false){return}if(this.isOpen()){return}if(this._overlay
!==null){WCF
.activeDialogs
++;if(WCF
.activeDialogs
===1){this._overlay
.show()}}this.render();this._isOpen
=true},isOpen:function(){return this._isOpen
},close:function(a
){if(!this.isOpen()){return}if(this.options
.closeConfirmMessage
){WCF
.System
.Confirmation
.show(this.options
.closeConfirmMessage
,$.proxy(function(b
){if(b
==="confirm"){this._close()}},this))}else{this._close()}if(a
!==undefined){a
.preventDefault()}},_close:function(){this._isOpen
=false;this._container
.wcfFadeOut();if(this._overlay
!==null){WCF
.activeDialogs
--;if(WCF
.activeDialogs
===0){this._overlay
.hide()}}if(this.options
.onClose
!==null){this.options
.onClose()}},_resize:function(){if(this.isOpen()){this.render()}},render:function(){if(!this._container
.is(":visible")&&this._container
.css("top")==="0px"){window
.scrollTo(0,0)}this._container
.show();this._content
.children().show();this._content
.css({height
:"auto",width
:"auto"});this._container
.stop();this._content
.stop();this._container
.show().css("opacity",1);var e
=0;if(this._content
.find(".formSubmit").length
){e
=this._content
.find(".formSubmit").outerHeight();this._content
.addClass("dialogForm").css({marginBottom
:e
+"px"})}else{this._content
.removeClass("dialogForm").css({marginBottom
:"0px"})}var b
=$(window
).getDimensions();if(b
.width
*0.9>800){this._container
.css("maxWidth","800px")}var h
=this._container
.getDimensions("outer");var d
=this._content
.getDimensions();var e
=h
.height
-d
.height
;var g
=b
.height
-e
-120;this._content
.css({maxHeight
:g
+"px"});this._determineOverflow();h
=this._container
.getDimensions("outer");var f
=Math
.round((b
.width
-h
.width
)/2);var a=Math.round((b.height-h.height)/2);var c
=Math
.round((b
.height
/100)*20);if(c<a){a=c}this._container.css({left:f+"px",top:a+"px"});this._content.css({height:"auto",width:"auto"});if(!this.isOpen()){this._container.hide();this._container.wcfFadeIn($.proxy(function(){if(this.options.onShow!==null){this.options.onShow()}},this))}},_determineOverflow:function(){var b=$(window).getDimensions();var c=this._content.css("maxHeight");this._content.css("maxHeight","none");var e=this._container.getDimensions("outer");var d="visible";if((b.height*0.8<e.height)||(b.width*0.8<e.width)){d="auto"}this._content.css("overflow",d);this._content.css("maxHeight",c);if(d==="visible"){var a=0;this._content.children().each(function(f,g){a+=$(g).outerHeight()});if(this._content.height()<a){this._content.css("overflow","auto")}}},_getContentDimensions:function(a){var b=this._content.getDimensions();if(a&&b.height>a){b.height=a}return b}});$.widget("ui.wcfSlideshow",{_buttonList:null,_count:0,_index:0,_itemList:null,_items:null,_timer:null,_width:0,options:{cycle:true,cycleInterval:5,itemGap:50,},_create:function(){this._itemList=this.element.children("ul");this._items=this._itemList.children("li");this._count=this._items.length;this._index=0;if(this._count>1){this._initSlideshow()}},_initSlideshow:function(){var b=$(this._items.get(0)).outerHeight();this._items.addClass("slideshowItem");this._width=this.element.css("height",b).innerWidth();this._itemList.addClass("slideshowItemList").css("left",0);this._items.each($.proxy(function(d,e){$(e).show().css({height:b,left:((this._width+this.options.itemGap)*d),width:this._width})},this));this.element.css({height:b,width:this._width}).hover($.proxy(this._hoverIn,this),$.proxy(this._hoverOut,this));this._buttonList=$('<ul class="slideshowButtonList" />').appendTo(this.element);for(var c=0;c<this._count;c++){var a=$('<li
><a
><span
class="icon icon16 icon-circle" /></a></li>').data("index",c).click($.proxy(this._click,this)).appendTo(this._buttonList);if(c==0){a.find(".icon").addClass("active")}}this._resetTimer();$(window).resize($.proxy(this._resize,this))},_resize:function(){this._width=this.element.css("width","auto").innerWidth();this._items.each($.proxy(function(a,b){$(b).css({left:((this._width+this.options.itemGap)*a),width:this._width})},this));this._index--;this.moveTo(null)},_hoverIn:function(){if(this._timer!==null){this._timer.stop()}},_hoverOut:function(){this._resetTimer()},_resetTimer:function(){if(!this.options.cycle){return}if(this._timer!==null){this._timer.stop()}var a=this;this._timer=new WCF.PeriodicalExecuter(function(){a.moveTo(null)},this.options.cycleInterval*1000)},_click:function(a){this.moveTo($(a.currentTarget).data("index"));this._resetTimer()},moveTo:function(a){this._index=(a===null)?this._index+1:a;if(this._index==this._count){this._index=0}$(this._buttonList.find(".icon").removeClass("active").get(this._index)).addClass("active");this._itemList.css("left",this._index*(this._width+this.options.itemGap)*-1);this._trigger("moveTo",null,{index:this._index})},getItem:function(a){if(this._items[a]){return this._items[a]}return null}});$.widget("ui.wcfTabs",$.ui.tabs,{_sanitizeSelector:function(a){return a.replace(/([:\.])/g,"\\$1")},select:function(a){if(!$.isNumeric(a)){this.panels.each(function(c,b){if($(b).wcfIdentify()===a){a=c;return false}});if(!$.isNumeric(a)){console.debug("[ui.wcfTabs] Unable to find panel identified by '"+a+"', aborting.");return}}this._setOption("active",a)},selectTab:function(a){a="#"+a;this.anchors.each(function(c,b){var d=$(b);if(d.prop("hash")===a){d.trigger("click");return false}})},getCurrentIndex:function(){return this.lis.index(this.lis.filter(".ui-tabs-selected"))},hasAnchor:function(b,a){var c=false;this.anchors.each(function(e,d){var g=$(d).attr("href");if(/#.+/.test(g)){var f=g.split("#",2);if(a){f=f[1].split("-",2)}if(f[1]===b){c=true;return false}}});return c},revertToDefault:function(){var a=this.element.data("active");if(!a||a===""){a=0}this.select(a)},_processTabs:function(){var a=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist");this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1});this.anchors=this.tabs.map(function(){return $("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1});this.panels=$();this.anchors.each(function(f,e){var b,c,d=$(e).uniqueId().attr("id"),g=$(e).closest("li"),h=g.attr("aria-controls");b=e.hash;c=a.element.find(a._sanitizeSelector(b));if(c.length){a.panels=a.panels.add(c)}if(h){g.data("ui-tabs-aria-controls",h)}g.attr({"aria-controls":b.substring(1),"aria-labelledby":d});c.attr("aria-labelledby",d)});this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},load:function(a,b){return}});$.widget("ui.wcfPages",{SHOW_LINKS:11,SHOW_SUB_LINKS:20,options:{activePage:1,maxPage:1,nextPage:null,previousPage:null},_create:function(){if(this.options.nextPage===null){this.options.nextPage=WCF.Language.get("wcf.global.page.next")}if(this.options.previousPage===null){this.options.previousPage=WCF.Language.get("wcf.global.page.previous")}this.element.addClass("pageNavigation");this._render()},destroy:function(){$.Widget.prototype.destroy.apply(this,arguments);this.element.children().remove()},_render:function(){if(!this.options.disabled&&this.options.maxPage>1){var g=false;if(this.element.hasClass("hidden")){this.element.removeClass("hidden")}this.element.show();this.element.children().remove();var o=$("<ul />");this.element.append(o);var n=$('<li class="button skip
" />');o.append(n);if(this.options.activePage>1){var d=$("<a
"+((this.options.previousPage!=null)?(' title="'+this.options.previousPage+'"'):(""))+"></a
>");n.append(d);this._bindSwitchPage(d,this.options.activePage-1);var l=$('<span class="icon icon16 icon
-double-angle
-left
" />');d.append(l)}else{var l=$('<span class="icon icon16 icon
-double-angle
-left
" />');n.append(l);n.addClass("disabled
").removeClass("button
");l.addClass("disabled
")}o.append(this._renderLink(1));var a=this.SHOW_LINKS-4;var e=this.options.activePage-2;if(e<0){e=0}var i=this.options.maxPage-(this.options.activePage+1);if(i<0){i=0}if(this.options.activePage>1&&this.options.activePage<this.options.maxPage){a--}var k=a/2;var c=this.options.activePage;var j=this.options.activePage;if(c<1){c=1}if(j<1){j=1}if(j>this.options.maxPage-1){j=this.options.maxPage-1}if(e>=k){c-=k}else{c-=e;j+=k-e}if(i>=k){j+=k}else{j+=i;c-=k-i}j=Math.ceil(j);c=Math.ceil(c);if(c<1){c=1}if(j>this.options.maxPage){j=this.options.maxPage}if(c>1){if(c-1<2){o.append(this._renderLink(2))}else{$('<li class="button jumpTo
"><a title="'+WCF.Language.get("wcf.global.page.jumpTo")+'" class="jsTooltip
">...</a></li>').appendTo(o);g=true}}for(var m=c+1;m<j;m++){o.append(this._renderLink(m))}if(j<this.options.maxPage){if(this.options.maxPage-j<2){o.append(this._renderLink(this.options.maxPage-1))}else{$('<li class="button jumpTo
"><a title="'+WCF.Language.get("wcf.global.page.jumpTo")+'" class="jsTooltip
">...</a></li>').appendTo(o);g=true}}o.append(this._renderLink(this.options.maxPage));var h=$('<li class="button skip
" />');o.append(h);if(this.options.activePage<this.options.maxPage){var f=$("<a
"+((this.options.nextPage!=null)?(' title="'+this.options.nextPage+'"'):(""))+"></a>");h.append(f);this._bindSwitchPage(f,this.options.activePage+1);var b=$('<span class="icon icon16 icon-double-angle-right" />');f.append(b)}else{var b=$('<span
class="icon icon16 icon-double-angle-right" />');h.append(b);h.addClass("disabled").removeClass("button");b.addClass("disabled")}if(g){o.data("pages",this.options.maxPage);WCF.System.PageNavigation.init("#"+o.wcfIdentify(),$.proxy(function(p){this.switchPage(p)},this))}}else{this.element.hide()}},_renderLink:function(d,a){var e=$('<li class="button"></li>');if(a!=undefined&&a){e.addClass("break")}if(d!=this.options.activePage){var b=$("<a>"+WCF.String.addThousandsSeparator(d)+"</a>");e.append(b);this._bindSwitchPage(b,d)}else{e.addClass("active");var c=$("<span>"+WCF.String.addThousandsSeparator(d)+"</span>");e.append(c)}return e},_bindSwitchPage:function(a,b){var c=this;a.click(function(){c.switchPage(b)})},switchPage:function(a){this._setOption("activePage",a)},_setOption:function(b,c){if(b=="activePage"){if(c!=this.options[b]&&c>0&&c<=this.options.maxPage){var a=this._trigger("shouldSwitch",undefined,{nextPage:c});if(a||a!==undefined){this.options[b]=c;this._render();this._trigger("switched",undefined,{activePage:c})}else{this._trigger("notSwitched",undefined,{activePage:c})}}}else{this.options[b]=c;if(b=="disabled"){if(c){this.element.children().remove()}else{this._render()}}else{if(b=="maxPage"){this._render()}}}return this},_startInput:function(b){var a=$(b.currentTarget);if(!a.is("a")){a=a.parent("a")}a.hide();var c=a.parent("li").children("input").css("display","block").val("");c.focus()},_stopInput:function(b){var c=$(b.currentTarget);c.css("display","none");var a=c.parent("li");if(a!=undefined&&a!=null){a.children("a").show()}},_handleInput:function(b){var a=($.browser.msie&&$.browser.version=="7.0");if(b.type!="keyup"||a){if(!a||((b.which==13||b.which==27)&&b.type=="keyup")){if(b.which==13){this.switchPage(parseInt($(b.currentTarget).val()))}if(b.which==13||b.which==27){this._stopInput(b);b.stopPropagation()}}}}});WCF.Category={};WCF.Category.NestedList=Class.extend({_categories:{},init:function(){var a=this;$(".jsCategory").each(function(c,d){var b=$(d).data("parentCategoryID",null).change($.proxy(a._updateSelection,a));a._categories[b.val()]=b;var e=[];b.parents("li").find(".jsChildCategory").each(function(h,g){var f=$(g).data("parentCategoryID",b.val()).change($.proxy(a._updateSelection,a));a._categories[f.val()]=f;e.push(f.val());if(f.is(":checked")){b.prop("checked","checked")}});b.data("childCategoryIDs",e)})},_updateSelection:function(b){var a=$(b.currentTarget);var f=a.data("parentCategoryID");if(a.is(":checked")){if(f!==null){this._categories[f].prop("checked","checked")}}else{if(f===null){var e=a.data("childCategoryIDs");for(var d=0,c=e.length;d<c;d++){this._categories[e[d]].prop("checked",false)}}}}});function wcfEval(expression){return eval(expression)};
36 WCF.Like=Class.extend({_allowForOwnContent:false,_canLike:false,_containers:{},_containerData:{},_enableDislikes:true,_isBusy:false,_likeDetails:{},_proxy:null,_showSummary:true,init:function(a,c,f,e){this._canLike=a;this._enableDislikes=c;this._isBusy=false;this._likeDetails={};this._showSummary=f;this._allowForOwnContent=e;var d=this._getContainers();this._initContainers(d);this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});var g=new Date();var b=g.toString().hashCode+g.getUTCMilliseconds();WCF.DOMNodeInsertedHandler.addCallback("WCF.Like"+b,$.proxy(this._domNodeInserted,this))},_domNodeInserted:function(){var a=this._getContainers();this._initContainers(a)},_initContainers:function(containers){var $createdWidgets=false;containers.each($.proxy(function(index,container){var $container=$(container);var $containerID=$container.wcfIdentify();if(!this._containers[$containerID]){this._containers[$containerID]=$container;this._containerData[$containerID]={likeButton:null,badge:null,dislikeButton:null,likes:$container.data("like-likes"),dislikes:$container.data("like-dislikes"),objectType:$container.data("objectType"),objectID:this._getObjectID($containerID),users:eval($container.data("like-users")),liked:$container.data("like-liked")};this._createWidget($containerID);$createdWidgets=true}},this));if($createdWidgets){new WCF.PeriodicalExecuter(function(pe){pe.stop();WCF.DOMNodeInsertedHandler.execute()},250)}},_getContainers:function(){},_getWidgetContainer:function(a){},_getObjectID:function(a){},_addWidget:function(a,b){var c=this._getWidgetContainer(a);b.appendTo(c)},_buildWidget:function(b,a,d,c,e){var f=$('<aside
class="likesWidget"><ul
></ul></aside>');if(this._canLike){a.appendTo(f.find("ul"));d.appendTo(f.find("ul"))}c.appendTo(f);this._addWidget(b,f)},_createWidget:function(b){var e=$('<li
class="likeButton"><a title
="'+WCF.Language.get("wcf
.like
.button
.like
")+'" class="jsTooltip"><span
class="icon icon16 icon-thumbs-up-alt" /> <span class="invisible">'+WCF.Language.get("wcf.like.button.like")+"</span></a></li>");var c=$('<li class="dislikeButton
"><a title="'+WCF.Language.get("wcf.like.button.dislike")+'" class="jsTooltip
"><span class="icon icon16 icon
-thumbs
-down
-alt
" /> <span class="invisible
">'+WCF.Language.get("wcf
.like
.button
.dislike
")+"</span
></a></li>");if(!this._enableDislikes){c.hide()}if(!this._allowForOwnContent&&(WCF.User.userID==this._containers[b].data("userID
"))){e=$("");c=$("")}var d=$('<a class="badge jsTooltip likesBadge
" />').data("containerID
",b).click($.proxy(this._showLikeDetails,this));var a=null;if(this._showSummary){a=$('<p class="likesSummary
"><span class="pointer
" /></p>');a.children("span
").data("containerID
",b).click($.proxy(this._showLikeDetails,this))}this._buildWidget(b,e,c,d,a);this._containerData[b].likeButton=e;this._containerData[b].dislikeButton=c;this._containerData[b].badge=d;this._containerData[b].summary=a;e.data("containerID
",b).data("type
","like
").click($.proxy(this._click,this));c.data("containerID
",b).data("type
","dislike
").click($.proxy(this._click,this));this._setActiveState(e,c,this._containerData[b].liked);this._updateBadge(b);if(this._showSummary){this._updateSummary(b)}},_showLikeDetails:function(c,a){var b=(c===null)?a:$(c.currentTarget).data("containerID
");if(this._likeDetails[b]===undefined){this._likeDetails[b]=new WCF.User.List("wcf
\\data
\\like
\\LikeAction
",WCF.Language.get("wcf
.like
.details
"),{data:{containerID:b,objectID:this._containerData[b].objectID,objectType:this._containerData[b].objectType}})}this._likeDetails[b].open()},_click:function(a){var b=$(a.currentTarget);if(b===null){console.debug("[WCF
.Like
] Unable to find target button
, aborting
.");return}this._sendRequest(b.data("containerID
"),b.data("type
"))},_sendRequest:function(a,b){if(this._isBusy){return}this._isBusy=true;this._proxy.setOption("data
",{actionName:b,className:"wcf
\\data
\\like
\\LikeAction
",parameters:{data:{containerID:a,objectID:this._containerData[a].objectID,objectType:this._containerData[a].objectType}}});this._proxy.sendRequest()},_success:function(d,g,b){var a=d.returnValues.containerID;if(!this._containers[a]){return}switch(d.actionName){case"dislike
":case"like
":this._containerData[a].likes=parseInt(d.returnValues.likes);this._containerData[a].dislikes=parseInt(d.returnValues.dislikes);this._containerData[a].users=d.returnValues.users;this._updateBadge(a);if(this._showSummary){this._updateSummary(a)}var f=this._containerData[a].likeButton;var e=this._containerData[a].dislikeButton;var c=0;if(d.returnValues.isLiked){c=1}else{if(d.returnValues.isDisliked){c=-1}}this._setActiveState(f,e,c);if(this._likeDetails[a]!==undefined){delete this._likeDetails[a]}this._isBusy=false;break}},_updateBadge:function(a){if(!this._containerData[a].likes&&!this._containerData[a].dislikes){this._containerData[a].badge.hide()}else{this._containerData[a].badge.show();var c=this._containerData[a].likes-this._containerData[a].dislikes;var d=this._containerData[a].badge;d.removeClass("green red
");if(c>0){d.text("+"+WCF.String.formatNumeric(c));d.addClass("green
")}else{if(c<0){d.text(WCF.String.formatNumeric(c));d.addClass("red
")}else{d.text("\u00B10")}}var e=this._containerData[a].likes;var b=this._containerData[a].dislikes;d.data("tooltip
",WCF.Language.get("wcf
.like
.tooltip
",{likes:e,dislikes:b}))}},_updateSummary:function(a){if(!this._containerData[a].likes){this._containerData[a].summary.hide()}else{this._containerData[a].summary.show();var d=this._containerData[a].users;var c=[];for(var b in d){c.push(d[b].username)}var e=this._containerData[a].likes-c.length;this._containerData[a].summary.children("span
").html(WCF.Language.get("wcf
.like
.summary
",{users:c,others:e}))}},_setActiveState:function(a,b,c){a.removeClass("active
");b.removeClass("active
");if(c==1){a.addClass("active
")}else{if(c==-1){b.addClass("active
")}}}});
39 WCF.ACL={};WCF.ACL.List=Class.extend({_categoryName:"",_container:null,_containerElements:{},_objectID:0,_objectTypeID:null,_options:{},_proxy:null,_search:null,_values:{group:{},user:{}},init:function(g,i,d,b,c,j){this._objectID=b||0;this._objectTypeID=i;this._categoryName=d;if(c===undefined){c=true}this._values={group:{},user:{}};this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false,success:$.proxy(this._success,this)});this._container=$(g).hide().addClass("aclContainer
");var f=this._container.children("dd
");var a=$('<ul class="aclList container
" />').appendTo(f);var k=$('<input type="text
" class="long" placeholder="'+WCF.Language.get("wcf.acl.search."+(!c?"user.":"")+"description")+'" />').appendTo(f);var e=$('<ul class="aclPermissionList container
" />').hide().appendTo(f);this._containerElements={aclList:a,denyAll:null,grantAll:null,permissionList:e,searchInput:k};this._search=new WCF.Search.User(k,$.proxy(this.addObject,this),c);var l=this._container.parents("form
:eq(0)");l.submit($.proxy(this.submit,this));var h=l.find("input
[type
=reset
]:eq(0)");if(h.length){h.click($.proxy(this._reset,this))}if(j){this._success(j)}else{this._loadACL()}},_reset:function(){this._values={group:{},user:{}};this._containerElements.aclList.empty();this._containerElements.searchInput.val("");this._containerElements.permissionList.hide().find("input
[type
=checkbox
]").prop("checked
",false)},_loadACL:function(){this._proxy.setOption("data
",{actionName:"loadAll
",className:"wcf
\\data
\\acl
\\option
\\ACLOptionAction
",parameters:{categoryName:this._categoryName,objectID:this._objectID,objectTypeID:this._objectTypeID}});this._proxy.sendRequest()},addObject:function(b){var a=this._createListItem(b.objectID,b.label,b.type);this._savePermissions();this._containerElements.aclList.children("li
").removeClass("active
");a.addClass("active
");this._search.addExcludedSearchValue(b.label);this._containerElements.permissionList.find("input
[type
=checkbox
]").prop("checked
",false);this._containerElements.searchInput.val("");this._containerElements.permissionList.show();WCF.DOMNodeInsertedHandler.execute()},_createListItem:function(d,a,c){var b=$('<li><span class="icon icon16 icon
-'+(c==="group"?"group":"user")+'" /> <span>'+a+"</span></li>").appendTo(this._containerElements.aclList);b.data("objectID
",d).data("type
",c).data("label
",a).click($.proxy(this._click,this));$('<span class="icon icon16 icon
-remove jsTooltip pointer
" title="'+WCF.Language.get("wcf.global.button.delete")+'" />').click($.proxy(this._removeItem,this)).appendTo(b);return b},_removeItem:function(d){var b=$(d.currentTarget).parent();var a=b.data("type
");var c=b.data("objectID
");this._search.removeExcludedSearchValue(b.data("label
"));b.remove();if(this._values[a][c]){delete this._values[a][c]}this._selectFirstEntry()},_selectFirstEntry:function(){var a=this._containerElements.aclList.children("li
:eq(0)");if(a.length){this._select(a,false)}else{this._reset()}},_success:function(g,f,l){if(!$.getLength(g.returnValues.options)){return}var i=0;var n={};for(var h in g.returnValues.options){var a=g.returnValues.options[h];var j=$("<li
><span
>"+a.label+"</span
></li>").data("optionID",h).data("optionName",a.optionName);var d=$('<input type="checkbox" id="grant'+h+'" />').appendTo(j).wrap('<label
for="grant'+h+'" class="jsTooltip" title
="'+WCF.Language.get("wcf
.acl
.option
.grant
")+'" />');var b=$('<input type="checkbox" id="deny'+h+'" />').appendTo(j).wrap('<label
for="deny'+h+'" class="jsTooltip" title
="'+WCF.Language.get("wcf
.acl
.option
.deny
")+'" />');d.data("type","grant").data("optionID",h).change($.proxy(this._change,this));b.data("type","deny").data("optionID",h).change($.proxy(this._change,this));if(!n[a.categoryName]){n[a.categoryName]=[]}if(a.categoryName===""){j.appendTo(this._containerElements.permissionList)}else{n[a.categoryName].push(j)}i++}if(i>1){var j=$('<li class="aclFullAccess"><span>'+WCF.Language.get("wcf.acl.option.fullAccess")+"</span></li>").prependTo(this._containerElements.permissionList);this._containerElements.grantAll=$('<input type="checkbox" id="grantAll" />').appendTo(j).wrap('<label
for="grantAll" class="jsTooltip" title
="'+WCF.Language.get("wcf
.acl
.option
.grant
")+'" />');this._containerElements.denyAll=$('<input type="checkbox" id="denyAll" />').appendTo(j).wrap('<label
for="denyAll" class="jsTooltip" title
="'+WCF.Language.get("wcf
.acl
.option
.deny
")+'" />');this._containerElements.grantAll.data("type","grant").change($.proxy(this._changeAll,this));this._containerElements.denyAll.data("type","deny").change($.proxy(this._changeAll,this))}if($.getLength(n)){for(var e in n){var c=n[e];if(g.returnValues.categories[e]){$('<li class="aclCategory">'+g.returnValues.categories[e]+"</li>").appendTo(this._containerElements.permissionList)}for(var m=0,k=c.length;m<k;m++){c[m].appendTo(this._containerElements.permissionList)}}}this._parseData(g,"group
");this._parseData(g,"user
");this._container.show();this._selectFirstEntry()},_parseData:function(c,a){if(!$.getLength(c.returnValues[a].option)){return}for(var b in c.returnValues[a].label){this._createListItem(b,c.returnValues[a].label[b],a);this._search.addExcludedSearchValue(c.returnValues[a].label[b])}this._values[a]=c.returnValues[a].option;WCF.DOMNodeInsertedHandler.execute()},_click:function(b){var a=$(b.currentTarget);if(a.hasClass("active
")){return}this._select(a,true)},_select:function(b,a){if(a){this._savePermissions()}this._containerElements.aclList.children("li
").removeClass("active
");b.addClass("active
");this._setupPermissions(b.data("type
"),b.data("objectID
"))},_change:function(d){var c=$(d.currentTarget);var b=c.data("optionID
");var a=c.data("type
");if(c.is(":checked
")){if(a==="deny
"){$("#grant
"+b).prop("checked
",false);if(this._containerElements.grantAll!==null){this._containerElements.grantAll.prop("checked
",false)}}else{$("#deny
"+b).prop("checked
",false);if(this._containerElements.denyAll!==null){this._containerElements.denyAll.prop("checked
",false)}}}else{if(a==="deny
"&&this._containerElements.denyAll!==null){this._containerElements.denyAll.prop("checked
",false)}else{if(a==="grant
"&&this._containerElements.grantAll!==null){this._containerElements.grantAll.prop("checked
",false)}}}var e=true;this._containerElements.permissionList.find("input
[type
=checkbox
]").each(function(g,h){var f=$(h);if(f.data("type
")===a&&f.attr("id
")!==a+"All
"){if(!f.is(":checked
")){e=false;return false}}});if(a=="deny
"){if(this._containerElements.denyAll!==null){if(e){this._containerElements.denyAll.prop("checked
",true)}else{this._containerElements.denyAll.prop("checked
",false)}}}else{if(this._containerElements.grantAll!==null){if(e){this._containerElements.grantAll.prop("checked
",true)}else{this._containerElements.grantAll.prop("checked
",false)}}}},_changeAll:function(c){var b=$(c.currentTarget);var a=b.data("type
");if(b.is(":checked
")){if(a==="deny
"){this._containerElements.grantAll.prop("checked
",false);this._containerElements.permissionList.find("input
[type
=checkbox
]").each(function(e,f){var d=$(f);if(d.data("type
")==="deny
"&&d.attr("id
")!=="denyAll
"){d.prop("checked
",true).trigger("change
")}})}else{this._containerElements.denyAll.prop("checked
",false);this._containerElements.permissionList.find("input
[type
=checkbox
]").each(function(e,f){var d=$(f);if(d.data("type
")==="grant
"&&d.attr("id
")!=="grantAll
"){d.prop("checked
",true).trigger("change
")}})}}else{if(a==="deny
"){this._containerElements.grantAll.prop("checked
",false);this._containerElements.permissionList.find("input
[type
=checkbox
]").each(function(e,f){var d=$(f);if(d.data("type
")==="deny
"&&d.attr("id
")!=="denyAll
"){d.prop("checked
",false).trigger("change
")}})}else{this._containerElements.denyAll.prop("checked
",false);this._containerElements.permissionList.find("input
[type
=checkbox
]").each(function(e,f){var d=$(f);if(d.data("type
")==="grant
"&&d.attr("id
")!=="grantAll
"){d.prop("checked
",false).trigger("change
")}})}}},_setupPermissions:function(b,c){this._containerElements.permissionList.find("input
[type
='checkbox']").prop("checked
",false);if(this._values[b]&&this._values[b][c]){for(var a in this._values[b][c]){if(this._values[b][c][a]==1){$("#grant
"+a).prop("checked
",true).trigger("change
")}else{$("#deny
"+a).prop("checked
",true).trigger("change
")}}}this._containerElements.permissionList.show()},_savePermissions:function(){var c=this._containerElements.aclList.find("li
.active
");if(!c.length){return}var d=c.data("objectID
");var a=c.data("type
");this._values[a][d]={};var b=this;this._containerElements.permissionList.find("input
[type
='checkbox']").each(function(e,i){var h=$(i);if(h.attr("id
")!="grantAll
"&&h.attr("id
")!="denyAll
"){var g=(h.data("type
")==="deny
")?0:1;var f=h.data("optionID
");if(h.is(":checked
")){b._values[a][d][f]=g;h.prop("checked
",false)}else{if(b._values[a]&&b._values[a][d]&&b._values[a][d][f]&&b._values[a][d][f]==g){delete b._values[a][d][f]}}}})},submit:function(a){this._savePermissions();this._save("group
");this._save("user
")},_save:function(a){if($.getLength(this._values[a])){var b=this._container.parents("form
:eq(0)");for(var e in this._values[a]){var d=this._values[a][e];for(var c in d){$('<input type="hidden
" name="aclValues
['+a+"]["+e+"]["+c+']" value="'+d[c]+'" />').appendTo(b)}}}}});
42 WCF.Attachment={};WCF.Attachment.Upload=WCF.Upload.extend({_objectType:"",_objectID:0,_tmpHash:"",_parentObjectID:0,_wysiwygContainerID:"",init:function(c,g,a,h,d,e,f,b){this._super(c,g,"wcf
\\data
\\attachment
\\AttachmentAction
",{multiple:true,maxUploads:f});this._objectType=a;this._objectID=h;this._tmpHash=d;this._parentObjectID=e;this._wysiwygContainerID=b;this._buttonSelector.children("p
.button
").click($.proxy(this._validateLimit,this));this._fileListSelector.find(".jsButtonInsertAttachment
").click($.proxy(this._insert,this));WCF.DOMNodeRemovedHandler.addCallback("WCF
.Attachment
.Upload
",$.proxy(this._removeLimitError,this))},_validateLimit:function(){var c=this._buttonSelector.next("small
.innerError
");var a=this._options.maxUploads-this._fileListSelector.children("li
:not(.uploadFailed
)").length;var d=(this._fileUpload)?this._fileUpload.prop("files
").length:0;if(a<=0||a<d){var b=(a<=0)?WCF.Language.get("wcf
.attachment
.upload
.error
.reachedLimit
"):WCF.Language.get("wcf
.attachment
.upload
.error
.reachedRemainingLimit
").replace(/#remaining#/,a);if(!c.length){c=$('<small class="innerError
" />').insertAfter(this._buttonSelector)}c.html(b);return false}c.remove();return true},_removeLimitError:function(b){var a=$(b.target);if(a.is("li
.box48
")&&a.parent().wcfIdentify()===this._fileListSelector.wcfIdentify()){this._buttonSelector.next("small
.innerError
").remove()}},_upload:function(){if(this._validateLimit()){this._super()}if(this._fileUpload){this._removeButton();this._createButton()}},_createUploadMatrix:function(a){this._fileListSelector.children("li
.uploadFailed
").remove();return this._super(a)},_getParameters:function(){return{objectType:this._objectType,objectID:this._objectID,tmpHash:this._tmpHash,parentObjectID:this._parentObjectID}},_initFile:function(a){var b=$('<li class="box48
"><span class="icon icon48 icon
-spinner
" /><div><div><p>'+a.name+'</p><small><progress max="100"></progress></small></div><ul></ul></div></li>').data("filename
",a.name);this._fileListSelector.append(b);this._fileListSelector.show();if(this._buttonSelector.data("maxSize
")<a.size){b.find("progress
").remove();b.children(".icon
-spinner
").removeClass("icon
-spinner
").addClass("icon
-ban
-circle
");b.find("div
> div
").append($('<small class="innerError
">'+WCF.Language.get("wcf
.attachment
.upload
.error
.tooLarge
")+"</small
>"));b.addClass("uploadFailed
")}return b},_success:function(b,c){for(var i in this._uploadMatrix[b]){var g=this._uploadMatrix[b][i];g.find("progress
").remove();var h=g.data("filename
");var j=g.data("internalFileID
");if(c.returnValues&&c.returnValues.attachments[j]){if(c.returnValues.attachments[j]["tinyURL
"]){g.children(".icon
-spinner
").replaceWith($('<img src="'+c.returnValues.attachments[j]["tinyURL"]+'" alt="" class="attachmentTinyThumbnail
" />'))}else{g.children(".icon
-spinner
").removeClass("icon
-spinner
").addClass("icon
-paper
-clip
")}var e=$('<a href=""></a>');e.text(h).attr("href
",c.returnValues.attachments[j]["url
"]);if(c.returnValues.attachments[j]["isImage
"]!=0){e.addClass("jsImageViewer
").attr("title
",h)}g.find("p
").empty().append(e);g.find("small
").append(c.returnValues.attachments[j]["formattedFilesize
"]);var f=$('<li><span class="icon icon16 icon
-remove pointer jsTooltip jsDeleteButton
" title="'+WCF.Language.get("wcf.global.button.delete")+'" data-object-id="'+c.returnValues.attachments[j]["attachmentID"]+'" data-confirm-message="'+WCF.Language.get("wcf.attachment.delete.sure")+'" /></li>');g.find("ul
").append(f);if(this._wysiwygContainerID){var a=$('<li><span class="icon icon16 icon
-paste pointer jsTooltip jsButtonInsertAttachment
" title="'+WCF.Language.get("wcf.attachment.insert")+'" data-object-id="'+c.returnValues.attachments[j]["attachmentID"]+'" /></li>');a.children(".jsButtonInsertAttachment
").click($.proxy(this._insert,this));g.find("ul
").append(a)}}else{g.children(".icon
-spinner
").removeClass("icon
-spinner
").addClass("icon
-ban
-circle
");var d="";if(c.returnValues&&c.returnValues.errors[j]){d=c.returnValues.errors[j]["errorType
"]}else{d="uploadFailed
"}g.find("div
> div
").append($('<small class="innerError
">'+WCF.Language.get("wcf
.attachment
.upload
.error
."+d)+"</small>"));g.addClass("uploadFailed")}g.css("display","block")}WCF.DOMNodeInsertedHandler.execute()},_insert:function(e){var d=$(e.currentTarget).data("objectID");var c="[attach="+d+"][/attach]";var a=($.browser.mobile)?null:$("#"+this._wysiwygContainerID).ckeditorGet();if(a!==null&&a.mode==="wysiwyg
"){a.insertText(c)}else{var g=($.browser.mobile)?$("#"+this._wysiwygContainerID):$("#"+this._wysiwygContainerID).next(".cke_editor_text
").find("textarea
");var b=g.val();if(b.length==0){g.val(c)}else{var f=g.getCaret();g.val(b.substr(0,f)+c+b.substr(f))}}},_error:function(a){this._fileListSelector.find("li
").each(function(b,d){var c=$(d);if(c.children(".icon
-spinner
").length){c.addClass("uploadFailed
").children(".icon
-spinner
").removeClass("icon
-spinner
").addClass("icon
-ban
-circle
");c.find("div
> div
").append($('<small class="innerError
">'+(a.responseJSON&&a.responseJSON.message?a.responseJSON.message:WCF.Language.get("wcf
.attachment
.upload
.error
.uploadFailed
"))+"</small
>"))}})}});
45 WCF.ColorPicker=Class.extend({_bar:null,_barActive:false,_barSelector:null,_dialog:null,_didInit:false,_elementID:"",_gradient:null,_gradientActive:false,_gradientSelector:null,_hex:null,_hsv:{},_newColor:null,_oldColor:null,_rgba:{},_rgbaRegExp:null,init:function(a){this._elementID="";this._hsv={h:0,s:100,v:100};this._position={};var b=$(a);if(!b.length){console.debug("[WCF
.ColorPicker
] Selector does not match any element
, aborting
.");return}b.click($.proxy(this._open,this))},_open:function(c){if(!this._didInit){this._initColorPicker();this._didInit=true}var a=$(c.currentTarget);this._elementID=a.wcfIdentify();this._parseColor(a);var b=this.hsvToRgb(this._hsv.h,this._hsv.s,this._hsv.v);this._oldColor.css({backgroundColor:"rgb("+b.r+", "+b.g+", "+b.b+")"});this._dialog.wcfDialog({title:WCF.Language.get("wcf
.style
.colorPicker
")})},_parseColor:function(b){if(b.data("hsv
")&&b.data("rgb
")){var d=b.data("hsv
");for(var a in d){this._hsv[a]=d[a]}this._updateValues(b.data("rgb
"),true,true);this._rgba.a.val(parseInt(b.data("alpha
")))}else{if(this._rgbaRegExp===null){this._rgbaRegExp=new RegExp("^rgba
\\((\\d
{1,3}), ?(\\d
{1,3}), ?(\\d
{1,3}), ?(1|1\\.00?|0|0?\\.[0-9]{1,2})\\)$")}this._rgbaRegExp.exec(b.data("color
"));var c=RegExp.$4;if(c.indexOf(".")===0){c="0"+c}c*=100;this._updateValues({r:RegExp.$1,g:RegExp.$2,b:RegExp.$3,a:Math.round(c)},true,true)}},_initColorPicker:function(){this._dialog=$('<div id="colorPickerContainer
" />').hide().appendTo(document.body);this._gradient=$('<div id="colorPickerGradient
" />').appendTo(this._dialog);this._gradientSelector=$('<span id="colorPickerGradientSelector
"><span></span></span>').appendTo(this._gradient);this._bar=$('<div id="colorPickerBar
" />').appendTo(this._dialog);this._barSelector=$('<span id="colorPickerBarSelector
" />').appendTo(this._bar);this._gradient.mousedown($.proxy(this._mouseDownGradient,this));this._bar.mousedown($.proxy(this._mouseDownBar,this));var a=this;$(document).mouseup(function(b){if(a._barActive){a._barActive=false;a._mouseBar(b)}else{if(a._gradientActive){a._gradientActive=false;a._mouseGradient(b)}}}).mousemove(function(b){if(a._barActive){a._mouseBar(b)}else{if(a._gradientActive){a._mouseGradient(b)}}});this._initColorPickerForm()},_initColorPickerForm:function(){var c=$('<div id="colorPickerForm
" />').appendTo(this._dialog);$("<small
>"+WCF.Language.get("wcf
.style
.colorPicker
.new")+"</small
>").appendTo(c);var d=$('<ul class="colors
" />').appendTo(c);this._newColor=$('<li class="new" />').appendTo(d);this._oldColor=$('<li class="old
" />').appendTo(d);$("<small
>"+WCF.Language.get("wcf
.style
.colorPicker
.current
")+"</small
>").appendTo(c);var a=$('<ul class="rgba
" />').appendTo(c);this._createInputElement("r
","R
",0,255).appendTo(a);this._createInputElement("g
","G
",0,255).appendTo(a);this._createInputElement("b
","B
",0,255).appendTo(a);this._createInputElement("a
","a
",0,100).appendTo(a);var e=$('<ul class="hex
"><li><label><span>#</span></label></li></ul>').appendTo(c);this._hex=$('<input type="text
" maxlength="6" />').appendTo(e.find("label
"));this._rgba.r.blur($.proxy(this._blurRgba,this)).keyup($.proxy(this._keyUpRGBA,this));this._rgba.g.blur($.proxy(this._blurRgba,this)).keyup($.proxy(this._keyUpRGBA,this));this._rgba.b.blur($.proxy(this._blurRgba,this)).keyup($.proxy(this._keyUpRGBA,this));this._rgba.a.blur($.proxy(this._blurRgba,this)).keyup($.proxy(this._keyUpRGBA,this));this._hex.blur($.proxy(this._blurHex,this)).keyup($.proxy(this._keyUpHex,this));var f=$('<div class="formSubmit
" />').appendTo(this._dialog);$('<button class="buttonPrimary
">'+WCF.Language.get("wcf
.style
.colorPicker
.button
.apply
")+"</button
>").appendTo(f).click($.proxy(this._submit,this));var b=this;this._hex.on("paste
",function(){b._hex.attr("maxlength
","7");setTimeout(function(){var g=b._hex.val();if(g.substring(0,1)=="#"){g=g.substr(1)}if(g.length>6){g=g.substring(0,6)}b._hex.attr("maxlength
","6").val(g)},50)})},_keyUpRGBA:function(a){if(a.which==13){this._blurRgba();this._submit()}},_keyUpHex:function(a){if(a.which==13){this._blurHex();this._submit()}},_submit:function(){var d=this.hsvToRgb(this._hsv.h,this._hsv.s,this._hsv.v);var c={};for(var b in this._hsv){c[b]=this._hsv[b]}var a=$("#"+this._elementID);a.data("hsv
",c).css({backgroundColor:"rgb("+d.r+", "+d.g+", "+d.b+")"}).data("alpha
",parseInt(this._rgba.a.val()));a.data("rgb
",{r:this._rgba.r.val(),g:this._rgba.g.val(),b:this._rgba.b.val()});$("#"+a.data("store
")).val("rgba("+this._rgba.r.val()+", "+this._rgba.g.val()+", "+this._rgba.b.val()+", "+(this._rgba.a.val()/100)+")").trigger("change
");this._dialog.wcfDialog("close
")},_createInputElement:function(f,c,e,b){var d=$('<li class="'+f+'" />');var a=$("<label
/>").appendTo(d);$("<span>"+c+"</span>").appendTo(a);this._rgba[f]=$('<input type="number
" value="0" min="'+e+'" max="'+b+'" step="1" />').appendTo(a);return d},_mouseDownGradient:function(a){this._gradientActive=true;this._mouseGradient(a)},_mouseGradient:function(b){var c=this._gradient.getOffsets("offset
");var a=Math.max(Math.min(b.pageX-c.left,255),0);var d=Math.max(Math.min(b.pageY-c.top,255),0);this._hsv.s=Math.max(0,Math.min(1,a/255))*100;this._hsv.v=Math.max(0,Math.min(1,(255-d)/255))*100;this._updateValues(null)},_mouseDownBar:function(a){this._barActive=true;this._mouseBar(a)},_mouseBar:function(a){var b=this._bar.getOffsets("offset
");var c=Math.max(Math.min(a.pageY-b.top,255),0);this._barSelector.css({top:c+"px
"});this._hsv.h=Math.max(0,Math.min(359,Math.round((255-c)/255*360)));this._updateValues(null)},_blurRgba:function(){for(var a in this._rgba){var b=parseInt(this._rgba[a].val())||0;if(a==="a
"){this._rgba[a].val(Math.max(0,Math.min(100,b)))}else{this._rgba[a].val(Math.max(0,Math.min(255,b)))}}this._updateValues({r:this._rgba.r.val(),g:this._rgba.g.val(),b:this._rgba.b.val()},true,true)},_blurHex:function(){var a=this.hexToRgb(this._hex.val());if(a!==Number.NaN){this._updateValues(a,true,true)}},_updateValues:function(c,e,a){e=(e===true)?true:false;a=(a===true)?true:false;if(c===null){c=this.hsvToRgb(this._hsv.h,this._hsv.s,this._hsv.v)}if(c.a===undefined){c.a=this._rgba.a.val()}for(var b in c){this._rgba[b].val(c[b])}this._hex.val(this.rgbToHex(c.r,c.g,c.b));if(e||a){var g=this.rgbToHsv(c.r,c.g,c.b);if(e){this._hsv.h=g.h}if(a){this._hsv.s=g.s;this._hsv.v=g.v}}var h=Math.max(0,Math.min(255,255-(this._hsv.h/360)*255));this._barSelector.css({top:h+"px
"});var d=Math.max(0,Math.min(255,(this._hsv.s/100)*255));var h=Math.max(0,Math.min(255,255-((this._hsv.v/100)*255)));this._gradientSelector.css({left:(d-6)+"px
",top:(h-6)+"px
"});this._newColor.css({backgroundColor:"rgb("+c.r+", "+c.g+", "+c.b+")"});var f=this.hsvToRgb(this._hsv.h,100,100);this._gradient.css({backgroundColor:"rgb("+f.r+", "+f.g+", "+f.b+")"})},hsvToRgb:function(d,j,g){var b={r:0,g:0,b:0};var i,a,f,e,c;i=Math.floor(d/60);a=d/60-i;j/=100;g/=100;f=g*(1-j);e=g*(1-j*a);c=g*(1-j*(1-a));if(j==0){b.r=b.g=b.b=g}else{switch(i){case 1:b.r=e;b.g=g;b.b=f;break;case 2:b.r=f;b.g=g;b.b=c;break;case 3:b.r=f;b.g=e;b.b=g;break;case 4:b.r=c;b.g=f;b.b=g;break;case 5:b.r=g;b.g=f;b.b=e;break;case 0:case 6:b.r=g;b.g=c;b.b=f;break}}return{r:Math.round(b.r*255),g:Math.round(b.g*255),b:Math.round(b.b*255)}},rgbToHsv:function(a,f,i){var j,e,c;var d,k,h;a/=255;f/=255;i/=255;d=Math.max(Math.max(a,f),i);k=Math.min(Math.min(a,f),i);h=d-k;j=0;if(d!==k){switch(d){case a:j=60*(0+(f-i)/h);break;case f:j=60*(2+(i-a)/h);break;case i:j=60*(4+(a-f)/h);break}if(j<0){j+=360}}if(d===0){e=0}else{e=h/d}c=d;return{h:Math.round(j),s:Math.round(e*100),v:Math.round(c*100)}},hexToRgb:function(a){if(/^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(a)){a=a.split("");if(a[0]==="#"){a.shift()}if(a.length===3){return{r:parseInt(a[0]+""+a[0],16),g:parseInt(a[1]+""+a[1],16),b:parseInt(a[2]+""+a[2],16)}}else{return{r:parseInt(a[0]+""+a[1],16),g:parseInt(a[2]+""+a[3],16),b:parseInt(a[4]+""+a[5],16)}}}return Number.NaN},rgbToHex:function(d,c,a){return("0123456789ABCDEF
".charAt((d-d%16)/16)+""+"0123456789ABCDEF
".charAt(d%16))+""+("0123456789ABCDEF
".charAt((c-c%16)/16)+""+"0123456789ABCDEF
".charAt(c%16))+""+("0123456789ABCDEF
".charAt((a-a%16)/16)+""+"0123456789ABCDEF
".charAt(a%16))}});
48 WCF.Comment={};WCF.Comment.Handler=Class.extend({_commentAdd:null,_commentButtonList:{},_comments:{},_container:null,_containerID:"",_displayedComments:0,_loadNextComments:null,_loadNextResponses:{},_proxy:null,_responses:{},_userAvatar:"",_commentData:{},_guestDialog:null,_useRecaptcha:true,init:function(a,b){this._commentAdd=null;this._commentButtonList={};this._comments={};this._containerID=a;this._displayedComments=0;this._loadNextComments=null;this._loadNextResponses={};this._responses={};this._userAvatar=b;this._container=$("#"+$.wcfEscapeID(this._containerID));if(!this._container.length){console.debug("[WCF
.Comment
.Handler
] Unable to find container identified by
'"+this._containerID+"'")}this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),success:$.proxy(this._success,this)});this._initComments();this._initResponses();if(this._container.data("canAdd
")){this._initAddComment()}WCF.DOMNodeInsertedHandler.execute();WCF.DOMNodeInsertedHandler.addCallback("WCF
.Comment
.Handler
",$.proxy(this._domNodeInserted,this))},_handleLoadNextComments:function(){if(this._displayedComments<this._container.data("comments
")){if(this._loadNextComments===null){this._loadNextComments=$('<li class="commentLoadNext
"><button class="small
">'+WCF.Language.get("wcf
.comment
.more
")+"</button></li>").appendTo(this._container);this._loadNextComments.children("button
").click($.proxy(this._loadComments,this))}this._loadNextComments.children("button
").enable()}else{if(this._loadNextComments!==null){this._loadNextComments.hide()}}},_handleLoadNextResponses:function(a){var b=this._comments[a];b.data("displayedResponses
",b.find("ul
.commentResponseList
> li
").length);if(b.data("displayedResponses
")<b.data("responses
")){if(this._loadNextResponses[a]===undefined){var d=b.data("responses
")-b.data("displayedResponses
");this._loadNextResponses[a]=$('<li class="jsCommentLoadNextResponses
"><a>'+WCF.Language.get("wcf
.comment
.response
.more
",{count:d})+"</a></li>").appendTo(this._commentButtonList[a]);this._loadNextResponses[a].children("a
").data("commentID
",a).click($.proxy(this._loadResponses,this));this._commentButtonList[a].parent().show()}}else{if(this._loadNextResponses[a]!==undefined){var c=this._loadNextResponses[a].next();this._loadNextResponses[a].remove();if(c.length){c.trigger("click
")}}}},_loadComments:function(){this._loadNextComments.children("button
").disable();this._proxy.setOption("data
",{actionName:"loadComments
",className:"wcf
\\data
\\comment
\\CommentAction
",parameters:{data:{objectID:this._container.data("objectID
"),objectTypeID:this._container.data("objectTypeID
"),lastCommentTime:this._container.data("lastCommentTime
")}}});this._proxy.sendRequest()},_loadResponses:function(a){this._loadResponsesExecute($(a.currentTarget).disable().data("commentID
"),false)},_loadResponsesExecute:function(a,b){this._proxy.setOption("data
",{actionName:"loadResponses
",className:"wcf
\\data
\\comment
\\response
\\CommentResponseAction
",parameters:{data:{commentID:a,lastResponseTime:this._comments[a].data("lastResponseTime
"),loadAllResponses:(b?1:0)}}});this._proxy.sendRequest()},_domNodeInserted:function(){this._initComments();this._initResponses()},_initComments:function(){var a=this;var b=false;this._container.find(".jsComment
").each(function(e,g){var f=$(g).removeClass("jsComment
");var c=f.data("commentID
");a._comments[c]=f;var d=f.find("ul
.commentResponseList
");if(!d.length){d=f.find(".commentContent
")}$container=$('<div class="commentOptionContainer
" />').hide().insertAfter(d);a._commentButtonList[c]=$("<ul
/>").appendTo($container);a._handleLoadNextResponses(c);a._initComment(c,f);a._displayedComments++;b=true});if(b){this._handleLoadNextComments()}},_initComment:function(a,d){if(this._container.data("canAdd
")){this._initAddResponse(a,d)}if(d.data("canEdit
")){var b=$('<li><a class="jsTooltip
" title="'+WCF.Language.get("wcf.global.button.edit")+'"><span class="icon icon16 icon
-pencil
" /> <span class="invisible
">'+WCF.Language.get("wcf
.global
.button
.edit
")+"</span
></a></li>");b.data("commentID
",a).appendTo(d.find("ul
.commentOptions
:eq(0)")).click($.proxy(this._prepareEdit,this))}if(d.data("canDelete
")){var c=$('<li><a class="jsTooltip
" title="'+WCF.Language.get("wcf.global.button.delete")+'"><span class="icon icon16 icon
-remove
" /> <span class="invisible
">'+WCF.Language.get("wcf
.global
.button
.delete")+"</span
></a></li>");c.data("commentID
",a).appendTo(d.find("ul
.commentOptions
:eq(0)")).click($.proxy(this._delete,this))}},_initResponses:function(){var a=this;this._container.find(".jsCommentResponse
").each(function(d,c){var b=$(c).removeClass("jsCommentResponse
");var e=b.data("responseID
");a._responses[e]=b;a._initResponse(e,b)})},_initResponse:function(a,c){if(c.data("canEdit
")){var d=$('<li><a class="jsTooltip
" title="'+WCF.Language.get("wcf.global.button.edit")+'"><span class="icon icon16 icon
-pencil
" /> <span class="invisible
">'+WCF.Language.get("wcf
.global
.button
.edit
")+"</span
></a></li>");var b=this;d.data("responseID
",a).appendTo(c.find("ul
.commentOptions
:eq(0)")).click(function(f){b._prepareEdit(f,true)})}if(c.data("canDelete
")){var e=$('<li><a class="jsTooltip
" title="'+WCF.Language.get("wcf.global.button.delete")+'"><span class="icon icon16 icon
-remove
" /> <span class="invisible
">'+WCF.Language.get("wcf
.global
.button
.delete")+"</span
></a></li>");var b=this;e.data("responseID
",a).appendTo(c.find("ul
.commentOptions
:eq(0)")).click(function(f){b._delete(f,true)})}},_initAddComment:function(){this._commentAdd=$('<li class="box32 jsCommentAdd
"><span class="framed
">'+this._userAvatar+"</span><div /></li>").prependTo(this._container);var a=this._commentAdd.children("div");var b=$('<input type="text" placeholder="'+WCF.Language.get("wcf.comment.add")+'" maxlength="65535" class="long" />').appendTo(a);$("<small>"+WCF.Language.get("wcf.comment.description")+"</small>").appendTo(a);b.keyup($.proxy(this._keyUp,this))},_initAddResponse:function(d,g){var c=null;if(!g.data("responses")||this._loadNextResponses[d]){c=$('<li
class="jsCommentShowAddResponse"><a
>'+WCF.Language.get("wcf.comment.button.response.add")+"</a></li>").data("commentID",d).click($.proxy(this._showAddResponse,this)).appendTo(this._commentButtonList[d])}var e=$('<div
class="box32 commentResponseAdd jsCommentResponseAdd"><span
class="framed">'+this._userAvatar+"</span><div /></div>");if(c!==null){e.hide()}else{this._commentButtonList[d].parent().addClass("jsAddResponseActive")}e.appendTo(this._commentButtonList[d].parent().show());var a=e.children("div");var f=$('<input type
="text" placeholder
="'+WCF.Language.get("wcf
.comment
.response
.add
")+'" maxlength
="65535" class="long" />').data("commentID",d).appendTo(a);$("<small>"+WCF.Language.get("wcf.comment.description")+"</small>").appendTo(a);var b=this;f.keyup(function(h){b._keyUp(h,true)});g.data("responsePlaceholder
",c).data("responseInput
",e)},_prepareEdit:function(c,a){var d=$(c.currentTarget);var b={objectID:this._container.data("objectID
"),objectTypeID:this._container.data("objectTypeID
")};if(a===true){b.responseID=d.data("responseID
")}else{b.commentID=d.data("commentID
")}this._proxy.setOption("data
",{actionName:"prepareEdit
",className:"wcf
\\data
\\comment
\\CommentAction
",parameters:{data:b}});this._proxy.sendRequest()},_showAddResponse:function(c){var b=$(c.currentTarget);var a=b.data("commentID
");if(b.prev().hasClass("jsCommentLoadNextResponses
")){this._loadResponsesExecute(a,true);b.parent().children(".button
").disable()}b.remove();var d=this._comments[a].data("responseInput
").show();d.find("input
").focus();d.parents(".commentOptionContainer
").addClass("jsAddResponseActive
")},_keyUp:function(e,b){if(e.which!==13&&e.which!==27){return}var f=$(e.currentTarget);if(e.which===27){f.val("").trigger("blur
",e);return}var d=$.trim(f.val());if(d==""){return}var a="addComment
";var c={message:d,objectID:this._container.data("objectID
"),objectTypeID:this._container.data("objectTypeID
")};if(b===true){a="addResponse
";c.commentID=f.data("commentID
")}if(!WCF.User.userID){this._commentData=c;if(this._guestDialog===null){this._proxy.setOption("data
",{actionName:"getGuestDialog
",className:"wcf
\\data
\\comment
\\CommentAction
",parameters:{data:{message:d,objectID:this._container.data("objectID
"),objectTypeID:this._container.data("objectTypeID
")}}});this._proxy.sendRequest()}else{if(this._useRecaptcha){Recaptcha.reload()}this._guestDialog.find('input[type="submit
"]').enable();this._guestDialog.wcfDialog("open
")}}else{this._proxy.setOption("data
",{actionName:a,className:"wcf
\\data
\\comment
\\CommentAction
",parameters:{data:c}});this._proxy.sendRequest()}},_delete:function(b,a){WCF.System.Confirmation.show(WCF.Language.get("wcf
.comment
.delete.confirmMessage
"),$.proxy(function(d){if(d==="confirm
"){var c={objectID:this._container.data("objectID
"),objectTypeID:this._container.data("objectTypeID
")};if(a!==true){c.commentID=$(b.currentTarget).data("commentID
")}else{c.responseID=$(b.currentTarget).data("responseID
")}this._proxy.setOption("data
",{actionName:"remove
",className:"wcf
\\data
\\comment
\\CommentAction
",parameters:{data:c}});this._proxy.sendRequest()}},this))},_failure:function(b,a,d,c){if(!WCF.User.userID&&this._guestDialog){this._guestDialog.find('input[type="submit
"]').enable()}return true},_success:function(d,e,b){switch(d.actionName){case"addComment
":if(d.returnValues.errors){this._handleGuestDialogErrors(d.returnValues.errors)}else{this._commentAdd.find("input
").val("").blur();$(d.returnValues.template).insertAfter(this._commentAdd).wcfFadeIn();if(!WCF.User.userID){this._guestDialog.wcfDialog("close
")}}break;case"addResponse
":if(d.returnValues.errors){this._handleGuestDialogErrors(d.returnValues.errors)}else{var c=this._comments[d.returnValues.commentID];c.find(".jsCommentResponseAdd input
").val("").blur();var a=c.find("ul
.commentResponseList
");if(!a.length){a=$('<ul class="commentResponseList
" />').insertBefore(c.find(".commentOptionContainer
"))}$(d.returnValues.template).appendTo(a).wcfFadeIn()}if(!WCF.User.userID){this._guestDialog.wcfDialog("close
")}break;case"edit
":this._update(d);break;case"loadComments
":this._insertComments(d);break;case"loadResponses
":this._insertResponses(d);break;case"prepareEdit
":this._edit(d);break;case"remove
":this._remove(d);break;case"getGuestDialog
":this._createGuestDialog(d);break}WCF.DOMNodeInsertedHandler.execute()},_insertComments:function(a){$(a.returnValues.template).insertBefore(this._loadNextComments);this._container.data("lastCommentTime
",a.returnValues.lastCommentTime)},_insertResponses:function(b){var a=this._comments[b.returnValues.commentID];$(b.returnValues.template).appendTo(a.find("ul
.commentResponseList
"));a.data("lastResponseTime
",b.returnValues.lastResponseTime);this._handleLoadNextResponses(b.returnValues.commentID)},_remove:function(a){if(a.returnValues.commentID){this._comments[a.returnValues.commentID].remove();delete this._comments[a.returnValues.commentID]}else{this._responses[a.returnValues.responseID].remove();delete this._responses[a.returnValues.responseID]}},_edit:function(b){if(b.returnValues.commentID){var a=this._comments[b.returnValues.commentID].find(".commentContent
:eq(0) .userMessage
:eq(0)")}else{var a=this._responses[b.returnValues.responseID].find(".commentContent
:eq(0) .userMessage
:eq(0)")}a.html($.proxy(function(d,c){var e=$('<input type="text
" class="long" maxlength="65535" /><small>'+WCF.Language.get("wcf
.comment
.description
")+"</small>").val(b.returnValues.message);e.data("__html",c).keyup($.proxy(this._saveEdit,this));if(b.returnValues.commentID){e.data("commentID",b.returnValues.commentID)}else{e.data("responseID",b.returnValues.responseID)}return e},this));a.children("input").focus();a.parent().find(".containerHeadline:eq(0)").hide();a.parent().find(".buttonGroupNavigation:eq(0)").hide()},_update:function(a){if(a.returnValues.commentID){var b=this._comments[a.returnValues.commentID].find(".commentContent:eq(0) .userMessage:eq(0) > input")}else{var b=this._responses[a.returnValues.responseID].find(".commentContent:eq(0) .userMessage:eq(0) > input")}b.data("__html",a.returnValues.message);this._cancelEdit(b)},_createGuestDialog:function(a){this._guestDialog=$('<div id="commentAddGuestDialog" />').append(a.returnValues.template).hide().appendTo(document.body);this._guestDialog.find('input
[type
="submit"]').click($.proxy(this._submit,this));this._guestDialog.find('input
[type
="text"]').keydown($.proxy(this._keyDown,this));this._useRecaptcha=this._guestDialog.find("dl.reCaptcha").length>0;this._guestDialog.wcfDialog({title:WCF.Language.get("wcf.comment.guestDialog.title")})},_keyDown:function(a){if(a.which===$.ui.keyCode.ENTER){this._submit()}},_handleGuestDialogErrors:function(d){if(d.username){var c=this._guestDialog.find('input
[name
="username"]');var b=c.next(".innerError");if(!b.length){b=$('<small
class="innerError" />').text(d.username).insertAfter(c)}else{b.text(d.username).show()}}if(d.recaptcha){Recaptcha.reload();var a=this._guestDialog.find('input[name="recaptcha_response_field"]');var b=a.next(".innerError");if(!b.length){b=$('<small class="innerError" />').text(d.recaptcha).insertAfter(a)}else{b.text(d.recaptcha).show()}}this._guestDialog.find('input
[type
="submit"]').enable()},_submit:function(b){var c=true;this._guestDialog.find('input
[type
="submit"]').enable();var j=this._guestDialog.find('input
[name
="username"]');var a=j.val();var g=j.next(".innerError");if(!a){c=false;if(!g.length){g=$('<small
class="innerError" />').text(WCF.Language.get("wcf.global.form.error.empty")).insertAfter(j)}else{g.text(WCF.Language.get("wcf.global.form.error.empty")).show()}}if(this._useRecaptcha){var e=this._guestDialog.find('input[name="recaptcha_response_field"]');var d=e.val();var i=e.next(".innerError");if(!d){c=false;if(!i.length){i=$('<small class="innerError" />').text(WCF.Language.get("wcf.global.form.error.empty")).insertAfter(e)}else{i.text(WCF.Language.get("wcf.global.form.error.empty")).show()}}}if(c){if(g.length){g.hide()}if(this._useRecaptcha&&i.length){i.hide()}var f=this._commentData;f.username=a;var h={data:f};if(this._useRecaptcha){h.recaptchaChallenge=Recaptcha.get_challenge();h.recaptchaResponse=Recaptcha.get_response()}this._proxy.setOption("data",{actionName:this._commentData.commentID?"addResponse":"addComment",className:"wcf\\data\\comment\\CommentAction",parameters:h});this._proxy.sendRequest();this._guestDialog.find('input
[type
="submit"]').disable()}},_saveEdit:function(c){var d=$(c.currentTarget);if(c.which===27){this._cancelEdit(d);return}else{if(c.which!==13){return}}var b=$.trim(d.val());if(b===""){return}var a={message:b,objectID:this._container.data("objectID"),objectTypeID:this._container.data("objectTypeID")};if(d.data("commentID")){a.commentID=d.data("commentID")}else{a.responseID=d.data("responseID")}this._proxy.setOption("data",{actionName:"edit",className:"wcf\\data\\comment\\CommentAction",parameters:{data:a}});this._proxy.sendRequest()},_cancelEdit:function(a){a.parent().prev(".containerHeadline:eq(0)").show();a.parent().next(".buttonGroupNavigation:eq(0)").show();a.parent().html(a.data("__html"))}});WCF.Comment.Like=WCF.Like.extend({_getContainers:function(){return $(".commentList > li.comment")},_getObjectID:function(a){return this._containers[a].data("commentID")},_buildWidget:function(b,a,d,c,e){this._containers[b].find(".containerHeadline:eq(0) > h3").append(c);if(this._canLike){a.appendTo(this._containers[b].find(".commentOptions:eq(0)"));d.appendTo(this._containers[b].find(".commentOptions:eq(0)"))}},_getWidgetContainer:function(a){},_addWidget:function(a,b){}});WCF.Comment.Response={};WCF.Comment.Response.Like=WCF.Like.extend({_addWidget:function(a,b){},_buildWidget:function(b,a,d,c,e){this._containers[b].find(".containerHeadline:eq(0) > h3").append(c);if(this._canLike){a.appendTo(this._containers[b].find(".commentOptions:eq(0)"));d.appendTo(this._containers[b].find(".commentOptions:eq(0)"))}},_getContainers:function(){return $(".commentResponseList > li.commentResponse")},_getObjectID:function(a){return this._containers[a].data("responseID")},_getWidgetContainer:function(a){}});
51 WCF.ImageViewer=Class.extend({init:function(){$('<span
class="icon icon16 icon-chevron-left jsTooltip" title
="'+WCF.Language.get("wcf
.imageViewer
.previous
")+'" />').appendTo($("#lbPrevLink"));$('<span class="icon icon16 icon-chevron-right jsTooltip" title="'+WCF.Language.get("wcf.imageViewer.next")+'" />').appendTo($("#lbNextLink"));$('<span
class="icon icon32 icon-remove jsTooltip" title
="'+WCF.Language.get("wcf
.imageViewer
.close
")+'" />').appendTo($("#lbCloseLink"));var a=$('<span class="icon icon32 icon-resize-full jsTooltip" title="'+WCF.Language.get("wcf.imageViewer.enlarge")+'" id="lbEnlarge" />').insertAfter($("#lbCloseLink"));a.click($.proxy(this._enlarge,this));this._initImageViewer();WCF.DOMNodeInsertedHandler.addCallback("WCF.ImageViewer",$.proxy(this._domNodeInserted,this));WCF.DOMNodeInsertedHandler.execute()},_domNodeInserted:function(){this._initImageSizeCheck();this._initImageViewer()},_initImageViewer:function(){if($.browser.touch&&/[Mm]obile/.test(navigator.userAgent)){if(!/iPad/.test(navigator.userAgent)){return}}var a=$("a.jsImageViewer");if(a.length){a.removeClass("jsImageViewer").slimbox({counterText:WCF.Language.get("wcf.imageViewer.counter"),loop:true})}},_enlarge:function(){var a=$("#lbImage").css("backgroundImage");if(a){a=a.replace(/^url\((["']?)(.*)\1\)$/,"$2");window
.location
=a
}},_initImageSizeCheck:function(){$(".jsResizeImage").each($.proxy(function(a
,b
){if(b
.complete
){this._checkImageSize({currentTarget
:b
})}},this));$(".jsResizeImage").on("load",$.proxy(this._checkImageSize
,this))},_checkImageSize:function(d
){var c
=$(d
.currentTarget
);if(!c
.is(":visible")){c
.off("load");return}c
.removeClass("jsResizeImage");var b
=c
.getDimensions();var a
=c
.parents("div").innerWidth();if(b
.width
>a
){c
.css({height
:Math
.round(b
.height
*(a
/b.width))+"px",width:a+"px"});if(!c.parents("a").length){c.wrap('<a href="'+c.attr("src")+'" />');c.parent().slimbox()}}}});$.widget("ui.wcfImageViewer",{_active:-1,_activeImage:null,_container:null,_didInit:false,_disableSlideshow:false,_eventNamespace:"",_images:[],_isOpen:false,_items:-1,_maxDimensions:{height:0,width:0},_proxy:null,_slideshowEnabled:false,_thumbnailContainerWidth:0,_thumbnailMarginRight:0,_thumbnailOffset:0,_thumbnailWidth:0,_timer:null,_ui:{buttonNext:null,buttonPrevious:null,header:null,image:null,imageContainer:null,imageList:null,slideshow:{container:null,enlarge:null,next:null,previous:null,toggle:null}},options:{shiftBy:5,enableSlideshow:1,speed:5,className:""},_create:function(){this._active=-1;this._activeImage=null;this._container=null;this._didInit=false;this._disableSlideshow=(this.element.data("disableSlideshow"));this._eventNamespace=this.element.wcfIdentify();this._images=[];this._isOpen=false;this._items=-1;this._maxDimensions={height:document.documentElement.clientHeight,width:document.documentElement.clientWidth};this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._slideshowEnabled=false;this._thumbnailContainerWidth=0;this._thumbnailMarginRight=0;this._thumbnailOffset=0;this._thumbnaiLWidth=0;this._timer=null;this._ui={};this.element.click($.proxy(this.open,this))},open:function(a){if(a){a.preventDefault()}if(this._isOpen){return false}if(this._images.length===0){this._loadNextImages(true)}else{this._render(false,this.element.data("targetImageID"));if(this._items>1&&this._slideshowEnabled){this.startSlideshow()}}this._bindListener();this._isOpen=true;WCF.System.DisableScrolling.disable();return true},close:function(a){if(a){a.preventDefault()}if(!this._isOpen){return false}this._container.removeClass("open");if(this._timer!==null){this._timer.stop()}this._unbindListener();this._isOpen=false;WCF.System.DisableScrolling.enable();return true},startSlideshow:function(){if(this._disableSlideshow||this._slideshowEnabled){return false}if(this._timer===null){this._timer=new WCF.PeriodicalExecuter($.proxy(function(){var a=this._active+1;if(a==this._items){a=0}this.showImage(a)},this),this.options.speed*1000)}else{this._timer.resume()}this._slideshowEnabled=true;this._ui.slideshow.toggle.children("span").removeClass("icon-play").addClass("icon-pause");return true},stopSlideshow:function(a){if(!this._slideshowEnabled){return false}this._timer.stop();if(a){this._ui.slideshow.toggle.children("span").removeClass("icon-pause").addClass("icon-play")}this._slideshowEnabled=false;return true},_bindListener:function(){$(document).on("keydown."+this._eventNamespace,$.proxy(this._keyDown,this));$(window).on("resize."+this._eventNamespace,$.proxy(this._renderImage,this))},_unbindListener:function(){$(document).off("keydown."+this._eventNamespace);$(window).off("resize."+this._eventNamespace)},_keyDown:function(b){switch(b.which){case $.ui.keyCode.ESCAPE:this.close();break;case $.ui.keyCode.LEFT:this._previousImage();break;case $.ui.keyCode.RIGHT:this._nextImage();break;case $.ui.keyCode.UP:if(!this._container.hasClass("maximized")){this._toggleView()}break;case $.ui.keyCode.DOWN:if(this._container.hasClass("maximized")){this._toggleView()}break;case $.ui.keyCode.ENTER:var a=this._ui.header.find("> div > h1 > a");if(a.length==1){window.location=a.prop("href")}else{this._ui.slideshow.full.trigger("click")}break;case 80:this._ui.slideshow.toggle.trigger("click");break;default:return true;break}return false},_render:function(c,a){this._container.addClass("open");var b=null;if(c){b=this._ui.imageList.children("li:eq(0)");this._thumbnailMarginRight=parseInt(b.css("marginRight").replace(/px$/,""))||0;this._thumbnailWidth=b.outerWidth(true);this._thumbnailContainerWidth=this._ui.imageList.parent().innerWidth();if(this._items>1&&this.options.enableSlideshow&&!a){this.startSlideshow()}}if(a){this._ui.imageList.children("li").each($.proxy(function(e,f){var d=$(f);if(d.data("objectID")==a){d.trigger("click");this.moveToImage(d.data("index"));return false}},this))}else{if(b!==null){b.trigger("click")}}this._toggleButtons();this._preload()},_preload:function(){if(this._images.length<this._items){var a=this._images.length*this._thumbnailWidth;if(a-this._thumbnailOffset<this._thumbnailContainerWidth){this._loadNextImages(false)}}},_showImage:function(a){this.showImage($(a.currentTarget).data("index"),true)},showImage:function(e,c){if(this._active==e){return false}this.stopSlideshow(c||false);if(this._active!=-1){this._images[this._active].listItem.removeClass("active")}this._active=e;var b=this._images[e];this._ui.imageList.children("li").removeClass("active");b.listItem.addClass("active");var g=this._ui.imageContainer.getDimensions("inner");var i=(this._activeImage?0:1);if(this._activeImage!==null){this._ui.images[this._activeImage].removeClass("active")}this._activeImage=i;var a=this._active;this._ui.imageContainer.addClass("loading");this._ui.images[i].off("load").prop("src",false).on("load",$.proxy(function(){this._imageOnLoad(a,i)},this));this._renderImage(i,b,g);var f=this._ui.header.find("> div > a").prop("href",b.user.link).prop("title",b.user.username);f.children("img").prop("src",b.user.avatarURL);var h=WCF.String.escapeHTML(b.image.title);if(b.image.link){h='<a href
="'+b.image.link+'">'+b.image.title+"</a>"}this._ui.header.find("> div > h1").html(h);var d=(b.series&&b.series.title?WCF.String.escapeHTML(b.series.title):"");if(b.series.link){d='<a href
="'+b.series.link+'">'+d+"</a>"}this._ui.header.find("> div > h2").html(d);this._ui.header.find("> div > h3").text(WCF.Language.get("wcf.imageViewer.seriesIndex").replace(/{x}/,b.listItem.data("index")+1).replace(/{y}/,this._items));this._ui.slideshow.full.data("link",(b.image.fullURL?b.image.fullURL:b.image.url));this.moveToImage(b.listItem.data("index"));this._toggleButtons();return true},_imageOnLoad:function(b,a){if(b!=this._active){return}this._ui.imageContainer.removeClass("loading");this._ui.images[a].addClass("active");this.startSlideshow()},_renderImage:function(c,g,e){if(!g){c=this._activeImage;g=this._images[this._active];e={height:$(window).height()-(this._container.hasClass("maximized")?0:200),width:this._ui.imageContainer.innerWidth()}}e.height-=22;e.width-=20;this._ui.images[c].prop("src",g.image.url);var d=g.image.height;var b=g.image.width;var a=0;if(d>e.height){a=e.height/d;d=e.height;b=Math.floor(b*a)}if(b>e.width){a=e.width/b;b=e.width;d=Math.floor(d*a)}var f=Math.floor((e.width-b)/2);this._ui.images[c].css({height:d+"px",left:(f+10)+"px",marginTop:(Math.round(d/2)*-1)+"px",width:b+"px"})},_initUI:function(){if(this._didInit){return false}this._didInit=true;this._container=$('<div
class="wcfImageViewer" />').appendTo(document.body);var c=$('<div><img class="active" /><img
/></div>').appendTo(this._container);var g=$('<footer
><span
class="wcfImageViewerButtonPrevious icon icon-double-angle-left" /><div><ul /></div><span class="wcfImageViewerButtonNext icon icon-double-angle-right" /></footer>').appendTo(this._container);var e=$("<ul />").appendTo(c);var d=$('<li class="wcfImageViewerSlideshowButtonPrevious
"><span class="icon icon48 icon
-angle
-left
" /></li>').appendTo(e);var f=$('<li class="wcfImageViewerSlideshowButtonToggle pointer
"><span class="icon icon48 icon
-play
" /></li>').appendTo(e);var b=$('<li class="wcfImageViewerSlideshowButtonNext
"><span class="icon icon48 icon
-angle
-right
" /></li>').appendTo(e);var h=$('<li class="wcfImageViewerSlideshowButtonEnlarge pointer jsTooltip
" title="'+WCF.Language.get("wcf.imageViewer.button.enlarge")+'"><span class="icon icon48 icon
-resize
-full
" /></li>').appendTo(e);var a=$('<li class="wcfImageViewerSlideshowButtonFull pointer jsTooltip
" title="'+WCF.Language.get("wcf.imageViewer.button.full")+'"><span class="icon icon48 icon
-external
-link
" /></li>').appendTo(e);this._ui={buttonNext:g.children("span
.wcfImageViewerButtonNext
"),buttonPrevious:g.children("span
.wcfImageViewerButtonPrevious
"),header:$('<header><div class="box64
"><a class="framed jsTooltip
"><img /></a><h1 /><h2 /><h3 /></div></header>').appendTo(this._container),imageContainer:c,images:[c.children("img
:eq(0)").on("webkitTransitionEnd transitionend msTransitionEnd oTransitionEnd
",function(){$(this).removeClass("animateTransformation
")}),c.children("img
:eq(1)").on("webkitTransitionEnd transitionend msTransitionEnd oTransitionEnd
",function(){$(this).removeClass("animateTransformation
")})],imageList:g.find("> div
> ul
"),slideshow:{container:e,enlarge:h,full:a,next:b,previous:d,toggle:f}};this._ui.buttonNext.click($.proxy(this._next,this));this._ui.buttonPrevious.click($.proxy(this._previous,this));b.click($.proxy(this._nextImage,this));d.click($.proxy(this._previousImage,this));h.click($.proxy(this._toggleView,this));f.click($.proxy(function(){if(this._slideshowEnabled){this.stopSlideshow(true)}else{this._disableSlideshow=false;this.startSlideshow()}},this));a.click(function(i){window.location=$(i.currentTarget).data("link
")});$('<span class="wcfImageViewerButtonClose icon icon48 icon
-remove pointer jsTooltip
" title="'+WCF.Language.get("wcf.global.button.close")+'" />').appendTo(this._ui.header).click($.proxy(this.close,this));return true},_toggleView:function(){this._ui.images[this._activeImage].addClass("animateTransformation
");this._container.toggleClass("maximized
");this._ui.slideshow.enlarge.toggleClass("active
").children("span
").toggleClass("icon
-resize
-full
").toggleClass("icon
-resize
-small
");this._renderImage(null,undefined,null)},_next:function(c,b){if(this._ui.buttonNext.hasClass("pointer
")){if(b==undefined){this.stopSlideshow(true)}var a=Math.max((this._items*this._thumbnailWidth)-this._thumbnailContainerWidth-this._thumbnailMarginRight,0);this._thumbnailOffset=Math.min(this._thumbnailOffset+(this._thumbnailWidth*(b?b:this.options.shiftBy)),a);this._ui.imageList.css("marginLeft
",(this._thumbnailOffset*-1))}this._preload();this._toggleButtons()},_previous:function(b,a){if(this._ui.buttonPrevious.hasClass("pointer
")){if(a==undefined){this.stopSlideshow(true)}this._thumbnailOffset=Math.max(this._thumbnailOffset-(this._thumbnailWidth*(a?a:this.options.shiftBy)),0);this._ui.imageList.css("marginLeft
",(this._thumbnailOffset*-1))}this._toggleButtons()},_nextImage:function(a){if(this._ui.slideshow.next.hasClass("pointer
")){this._disableSlideshow=true;this.stopSlideshow(true);this.showImage(this._active+1)}},_previousImage:function(a){if(this._ui.slideshow.previous.hasClass("pointer
")){this._disableSlideshow=true;this.stopSlideshow(true);this.showImage(this._active-1)}},moveToImage:function(b){var f=(b-3)*this._thumbnailWidth;var d=f+(this._thumbnailWidth*5);var e=this._thumbnailOffset;var a=this._thumbnailOffset+this._thumbnailContainerWidth;var g=false;if(f<e||d>a){g=true}if(g){var c=0;if(f<e){while(f<e){c++;e-=this._thumbnailWidth}this._previous(null,c)}else{while(d>a){c++;a+=this._thumbnailWidth}this._next(null,c)}}},_toggleButtons:function(){if(this._thumbnailOffset>0){this._ui.buttonPrevious.addClass("pointer
")}else{this._ui.buttonPrevious.removeClass("pointer
")}var a=(this._images.length*this._thumbnailWidth)-this._thumbnailContainerWidth-this._thumbnailMarginRight;if(this._thumbnailOffset>=a){this._ui.buttonNext.removeClass("pointer
")}else{this._ui.buttonNext.addClass("pointer
")}if(this._active>0){this._ui.slideshow.previous.addClass("pointer
")}else{this._ui.slideshow.previous.removeClass("pointer
")}if(this._active+1<this._images.length){this._ui.slideshow.next.addClass("pointer
")}else{this._ui.slideshow.next.removeClass("pointer
")}},_createThumbnails:function(a){for(var f=0,e=a.length;f<e;f++){var d=a[f];var c=$('<li class="loading pointer
"><img src="'+d.thumbnail.url+'" /></li>').appendTo(this._ui.imageList);c.data("index
",this._images.length).data("objectID
",d.objectID).click($.proxy(this._showImage,this));var b=c.children("img
");if(b.get(0).complete){c.removeClass("loading
")}else{b.on("load
",function(){$(this).parent().removeClass("loading
")})}d.listItem=c;this._images.push(d)}},_loadNextImages:function(a){this._proxy.setOption("data
",{actionName:"loadNextImages
",className:this.options.className,interfaceName:"wcf
\\data
\\IImageViewerAction
",objectIDs:[this.element.data("objectID
")],parameters:{maximumHeight:this._maxDimensions.height,maximumWidth:this._maxDimensions.width,offset:this._images.length,targetImageID:(a&&this.element.data("targetImageID
")?this.element.data("targetImageID
"):0)}});this._proxy.setOption("showLoadingOverlay
",false);this._proxy.sendRequest()},_success:function(c,e,b){if(c.returnValues.items){this._items=c.returnValues.items}var a=this._initUI();this._createThumbnails(c.returnValues.images);var d=(c.returnValues.targetImageID?c.returnValues.targetImageID:0);this._render(a,d)}});
54 WCF.Label={};WCF.Label.ACPList=Class.extend({_labelInput:null,_labelList:[],init:function(){this._labelInput=$("#label
").keydown($.proxy(this._keyPressed,this)).keyup($.proxy(this._keyPressed,this)).blur($.proxy(this._keyPressed,this));if($.browser.mozilla&&$.browser.touch){this._labelInput.on("input
",$.proxy(this._keyPressed,this))}$("#labelList
").find('input[type="radio
"]').each($.proxy(function(b,a){var c=$(a);if(c.prop("value
")!=="custom
"){this._labelList.push($(c.next("span
")))}},this))},_keyPressed:function(){var a=this._labelInput.prop("value
");if(a===""){a=WCF.Language.get("wcf
.acp
.label
.defaultValue
")}for(var c=0,b=this._labelList.length;c<b;c++){this._labelList[c].text(a)}}});WCF.Label.ACPList.Connect=Class.extend({init:function(){var a=$("#connect
.structuredList li
");if(!a.length){return}a.each($.proxy(function(b,c){$(c).find('input[type="checkbox
"]').click($.proxy(this._click,this))},this))},_click:function(c){var a=$(c.currentTarget);if(a.is(":checked
")){a=a.parents("li
");var b=a.data("depth
");while(true){a=a.next();if(!a.length){return true}if(a.data("depth
")<=b){return true}a.find('input[type="checkbox
"]').prop("checked
","checked
")}}}});WCF.Label.Chooser=Class.extend({_container:null,_groups:{},_showWithoutSelection:false,init:function(f,b,e,h){this._container=null;this._groups={};this._showWithoutSelection=(h===true);this._initContainers(b);if($.getLength(f)){for(var a in f){var d=this._groups[a];if(d){WCF.Dropdown.getDropdownMenu(d.wcfIdentify()).find("> ul
> li
:not(.dropdownDivider
)").each($.proxy(function(k,j){var i=$(j);var l=i.data("labelID
")||0;if(l&&f[a]==l){this._selectLabel(i,true)}},this))}}}for(var c in this._containers){var g=this._containers[c];if(g.data("labelID
")===undefined){g.data("labelID
",0)}}this._container=$(b);if(e){$(e).click($.proxy(this._submit,this))}else{if(this._container.is("form
")){this._container.submit($.proxy(this._submit,this))}}},_initContainers:function(a){$(a).find(".labelChooser
").each($.proxy(function(d,i){var f=$(i);var b=f.data("groupID
");if(!this._groups[b]){var e=f.wcfIdentify();var c=WCF.Dropdown.getDropdownMenu(e);if(c===null){WCF.Dropdown.initDropdown(f.find(".dropdownToggle
"));c=WCF.Dropdown.getDropdownMenu(e)}var h=c;if(c.getTagName()=="div
"&&c.children(".scrollableDropdownMenu
").length){h=$("<ul
/>").appendTo(c);c=c.children(".scrollableDropdownMenu")}this._groups[b]=f;c.children("li").data("groupID",b).click($.proxy(this._click,this));if(!f.data("forceSelection")||this._showWithoutSelection){$('<li class="dropdownDivider" />').appendTo(h)}if(this._showWithoutSelection){$('<li data
-label
-id
="-1"><span
><span
class="badge label">'+WCF.Language.get("wcf.label.withoutSelection")+"</span></span></li>").data("groupID",b).appendTo(h).click($.proxy(this._click,this))}if(!f.data("forceSelection")){var g=$('<li data
-label
-id
="0"><span
><span
class="badge label">'+WCF.Language.get("wcf.label.none")+"</span></span></li>").data("groupID",b).appendTo(h);g.click($.proxy(this._click,this))}}},this))},_click:function(a){this._selectLabel($(a.currentTarget),false)},_selectLabel:function(a,c){var b=this._groups[a.data("groupID")];if(c&&b.data("labelID")!==undefined){return}if(a.data("labelID")){b.data("labelID",a.data("labelID"))}else{b.data("labelID",0)}a=a.find("span > span");b.find(".dropdownToggle > span").removeClass().addClass(a.attr("class")).text(a.text())},_submit:function(){var b=this._container.find(".formSubmit");b.find('input
[type
="hidden"]').each(function(e,d){var f=$(d);if(f.attr("name").indexOf("labelIDs[")===0){f.remove()}});for(var a in this._groups){var c=this._groups[a];if(c.data("labelID")){$('<input type
="hidden" name
="labelIDs['+a+']" value
="'+c.data("labelID
")+'" />').appendTo(b)}}}});
57 WCF.Location={};WCF.Location.Util={getLocation:function(b,a){if(navigator.geolocation){navigator.geolocation.getCurrentPosition(function(c){b(c.coords.latitude,c.coords.longitude)},function(){b(undefined,undefined)},{timeout:a||5000})}else{b(undefined,undefined)}}};WCF.Location.GoogleMaps={};WCF.Location.GoogleMaps.Settings={_settings:{},get:function(a){if(a===undefined){return this._settings}if(this._settings[a]!==undefined){return this._settings[a]}return null},set:function(b,c){if($.isPlainObject(b)){for(var a in b){this._settings[a]=b[a]}}else{this._settings[b]=c}}};WCF.Location.GoogleMaps.Map=Class.extend({_map:null,_markers:[],init:function(b,a){this._mapContainer=$("#"+b);this._mapOptions=$.extend(true,this._getDefaultMapOptions(),a);this._map=new google.maps.Map(this._mapContainer[0],this._mapOptions);this._markers=[];if(this._mapContainer.parents(".sidebar").length){enquire.register("screen and (max-width: 800px)",{setup:$.proxy(this._addSidebarMapListener,this),deferSetup:true})}this.refresh()},_addSidebarMapListener:function(){$(".content > .mobileSidebarToggleButton").click($.proxy(this.refresh,this))},_getDefaultMapOptions:function(){var a={};a.center=new google.maps.LatLng(WCF.Location.GoogleMaps.Settings.get("defaultLatitude"),WCF.Location.GoogleMaps.Settings.get("defaultLongitude"));a.disableDoubleClickZoom=WCF.Location.GoogleMaps.Settings.get("disableDoubleClickZoom");a.draggable=WCF.Location.GoogleMaps.Settings.get("draggable");switch(WCF.Location.GoogleMaps.Settings.get("mapType")){case"map":a.mapTypeId=google.maps.MapTypeId.ROADMAP;break;case"satellite":a.mapTypeId=google.maps.MapTypeId.SATELLITE;break;case"physical":a.mapTypeId=google.maps.MapTypeId.TERRAIN;break;case"hybrid":default:a.mapTypeId=google.maps.MapTypeId.HYBRID;break}a.mapTypeControl=WCF.Location.GoogleMaps.Settings.get("mapTypeControl")!="off";if(a.mapTypeControl){switch(WCF.Location.GoogleMaps.Settings.get("mapTypeControl")){case"dropdown":a.mapTypeControlOptions={style:google.maps.MapTypeControlStyle.DROPDOWN_MENU};break;case"horizontalBar":a.mapTypeControlOptions={style:google.maps.MapTypeControlStyle.HORIZONTAL_BAR};break;default:a.mapTypeControlOptions={style:google.maps.MapTypeControlStyle.DEFAULT};break}}a.scaleControl=WCF.Location.GoogleMaps.Settings.get("scaleControl");a.scrollwheel=WCF.Location.GoogleMaps.Settings.get("scrollwheel");a.zoom=WCF.Location.GoogleMaps.Settings.get("zoom");return a},addDraggableMarker:function(c,b){var a=new google.maps.Marker({clickable:false,draggable:true,map:this._map,position:new google.maps.LatLng(c,b),zIndex:1});this._markers.push(a);return a},addMarker:function(g,e,f,d,c){var b=new google.maps.Marker({map:this._map,position:new google.maps.LatLng(g,e),title:f});if(d){b.setIcon(d)}if(c){var a=new google.maps.InfoWindow({content:c});google.maps.event.addListener(b,"click",$.proxy(function(){a.open(this._map,b)},this));b.infoWindow=a}this._markers.push(b);return b},getMarkers:function(){return this._markers},getMap:function(){return this._map},refresh:function(){var a=this._map.getCenter();google.maps.event.trigger(this._map,"resize");this._map.setCenter(a)},refreshBounds:function(){var f=null;var c=null;var d=null;var g=null;for(var a in this._markers){var e=this._markers[a];var h=e.getPosition().lat();var b=e.getPosition().lng();if(f===null){f=c=h;d=g=b}else{if(f>h){f=h}else{if(c<h){c=h}}if(d>h){d=h}else{if(g<b){g=b}}}}this._map.fitBounds(new google.maps.LatLngBounds(new google.maps.LatLng(f,d),new google.maps.LatLng(c,g)))},removeMarkers:function(){for(var a in this._markers){this._markers[a].setMap(null)}this._markers=[]},setCenter:function(b,a){this._map.setCenter(new google.maps.LatLng(b,a))}});WCF.Location.GoogleMaps.LargeMap=WCF.Location.GoogleMaps.Map.extend({_actionClassName:null,_locationSearch:null,_locationSearchInputSelector:null,_markerClusterer:null,_objectIDs:[],_previousNorthEast:null,_previousSouthWest:null,init:function(d,a,c,b){this._super(d,a);this._actionClassName=c;this._locationSearchInputSelector=b||"";this._objectIDs=[];if(this._locationSearchInputSelector){this._locationSearch=new WCF.Location.GoogleMaps.LocationSearch(b,$.proxy(this._centerMap,this))}this._markerClusterer=new MarkerClusterer(this._map,this._markers,{maxZoom:17});this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false,success:$.proxy(this._success,this)});this._previousNorthEast=null;this._previousSouthWest=null;google.maps.event.addListener(this._map,"idle",$.proxy(this._loadMarkers,this))},_centerMap:function(a){this.setCenter(a.location.lat(),a.location.lng());$(this._locationSearchInputSelector).val(a.label)},_loadMarkers:function(){var a=this._map.getBounds().getNorthEast();var b=this._map.getBounds().getSouthWest();if(this._previousNorthEast&&this._previousNorthEast.lat()>=a.lat()&&this._previousNorthEast.lng()>=a.lng()&&this._previousSouthWest.lat()<=b.lat()&&this._previousSouthWest.lng()<=b.lng()){return}this._previousNorthEast=a;this._previousSouthWest=b;this._proxy.setOption("data",{actionName:"getMapMarkers",className:this._actionClassName,parameters:{excludedObjectIDs:this._objectIDs,eastLongitude:a.lng(),northLatitude:a.lat(),southLatitude:b.lat(),westLongitude:b.lng()}});this._proxy.sendRequest()},_success:function(d,e,c){if(d.returnValues&&d.returnValues.markers){for(var a in d.returnValues.markers){var b=d.returnValues.markers[a];this.addMarker(b.latitude,b.longitude,b.title,null,b.infoWindow);if(b.objectID){this._objectIDs.push(b.objectID)}else{if(b.objectIDs){this._objectIDs=this._objectIDs.concat(b.objectIDs)}}}}},addMarker:function(f,d,e,c,b){var a=this._super(f,d,e,c,b);this._markerClusterer.addMarker(a);return a}});WCF.Location.GoogleMaps.LocationSearch=WCF.Search.Base.extend({_geocoder:null,init:function(b,e,a,c,d){this._super(b,e,a,c,d);this._geocoder=new google.maps.Geocoder()},_createListItem:function(b){var a=$("<li><span>"+WCF.String.escapeHTML(b.formatted_address)+"</span></li>").appendTo(this._list);a.data("location",b.geometry.location).data("label",b.formatted_address).click($.proxy(this._executeCallback,this));this._itemCount++;return a},_keyUp:function(b){switch(b.which){case $.ui.keyCode.LEFT:case $.ui.keyCode.RIGHT:return;break;case $.ui.keyCode.UP:this._selectPreviousItem();return;break;case $.ui.keyCode.DOWN:this._selectNextItem();return;break;case $.ui.keyCode.ENTER:return this._selectElement(b);break}var a=this._getSearchString(b);if(a===""){this._clearList(true)}else{if(a.length>=this._triggerLength){this._clearList(false);this._geocoder.geocode({address:a},$.proxy(this._success,this))}else{this._clearList(false)}}},_success:function(d,b){if(b!=google.maps.GeocoderStatus.OK){return}if($.getLength(d)){var c=0;for(var a in d){this._createListItem(d[a]);if(++c==10){break}}}else{if(!this._handleEmptyResult()){return}}WCF.CloseOverlayHandler.addCallback("WCF.Search.Base",$.proxy(function(){this._clearList()},this));var e=this._searchInput.parents(".dropdown").wcfIdentify();if(!WCF.Dropdown.getDropdownMenu(e).hasClass("dropdownOpen")){WCF.Dropdown.toggleDropdown(e)}this._itemIndex=-1;if(!WCF.Dropdown.getDropdown(e).data("disableAutoFocus")){this._selectNextItem()}}});WCF.Location.GoogleMaps.LocationInput=Class.extend({_locationSearch:null,_map:null,_marker:null,init:function(d,b,a,e,c){this._searchInput=a;this._map=new WCF.Location.GoogleMaps.Map(d,b);this._locationSearch=new WCF.Location.GoogleMaps.LocationSearch(a,$.proxy(this._setMarkerByLocation,this));if(e&&c){this._marker=this._map.addDraggableMarker(e,c)}else{this._marker=this._map.addDraggableMarker(0,0);WCF.Location.Util.getLocation($.proxy(function(g,f){if(g!==undefined&&f!==undefined){WCF.Location.GoogleMaps.Util.moveMarker(this._marker,g,f);WCF.Location.GoogleMaps.Util.focusMarker(this._marker)}},this))}this._marker.addListener("dragend",$.proxy(this._updateLocation,this))},getMap:function(){return this._map},getMarker:function(){return this._marker},_updateLocation:function(){WCF.Location.GoogleMaps.Util.reverseGeocoding($.proxy(function(a){if(a!==null){$(this._searchInput).val(a)}},this),this._marker)},_setMarkerByLocation:function(a){this._marker.setPosition(a.location);WCF.Location.GoogleMaps.Util.focusMarker(this._marker);$(this._searchInput).val(a.label)}});WCF.Location.GoogleMaps.Util={_geocoder:null,focusMarker:function(a){a.getMap().setCenter(a.getPosition())},getMarkerPosition:function(a){return{latitude:a.getPosition().lat(),longitude:a.getPosition().lng()}},moveMarker:function(a,d,b,c){a.setPosition(new google.maps.LatLng(d,b));if(c){google.maps.event.trigger(a,"dragend")}},reverseGeocoding:function(f,a,e,c,b){if(a){e=a.getPosition().lat();c=a.getPosition().lng()}if(this._geocoder===null){this._geocoder=new google.maps.Geocoder()}var d=new google.maps.LatLng(e,c);this._geocoder.geocode({latLng:d},function(h,g){if(g==google.maps.GeocoderStatus.OK){f((b?h:h[0].formatted_address))}else{f(null)}})}};
60 WCF.Message={};WCF.Message.BBCode={};WCF.Message.BBCode.CodeViewer=Class.extend({_dialog:null,init:function(){this._dialog=null;this._initCodeBoxes();WCF.DOMNodeInsertedHandler.addCallback("WCF.Message.BBCode.CodeViewer",$.proxy(this._initCodeBoxes,this));WCF.DOMNodeInsertedHandler.execute()},_initCodeBoxes:function(){$(".codeBox:not(.jsCodeViewer)").each($.proxy(function(a,c){var b=$(c).addClass("jsCodeViewer");$('<span
class="icon icon16 icon-copy pointer jsTooltip" title
="'+WCF.Language.get("wcf
.message
.bbcode
.code
.copy
")+'" />').appendTo(b.find("div > h3")).click($.proxy(this._click,this))},this))},_click:function(b){var a="";$(b.currentTarget).parents("div").next("ol").children("li").each(function(c,d){if(a){a+="\n"}a+=$(d).text().replace(/\n+$/,"")});if(this._dialog===null){this._dialog=$('<div><textarea cols="60" rows="12" readonly="readonly" /></div>').hide().appendTo(document.body);this._dialog.children("textarea").val(a);this._dialog.wcfDialog({title:WCF.Language.get("wcf.message.bbcode.code.copy")})}else{this._dialog.children("textarea").val(a);this._dialog.wcfDialog("open")}this._dialog.children("textarea").select()}});WCF.Message.FormGuard=Class.extend({init:function(){var a=$("form.jsFormGuard").removeClass("jsFormGuard").submit(function(){$(this).find(".formSubmit input[type=submit]").disable()});$(window).unload(function(){a.find(".formSubmit input[type=submit]").enable()})}});WCF.Message.Preview=Class.extend({_className:"",_messageFieldID:"",_messageField:null,_proxy:null,_previewButton:null,_previewButtonLabel:"",init:function(b,a,c){this._className=b;this._messageFieldID=$.wcfEscapeID(a);this._messageField=$("#"+this._messageFieldID);if(!this._messageField.length){console.debug("[WCF.Message.Preview] Unable to find message field identified by '"+this._messageFieldID+"'");return}c=$.wcfEscapeID(c);this._previewButton=$("#"+c);if(!this._previewButton.length){console.debug("[WCF.Message.Preview] Unable to find preview button identified by '"+c+"'");return}this._previewButton.click($.proxy(this._click,this));this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),success:$.proxy(this._success,this)})},_click:function(b){var a=this._getMessage();if(a===null){console.debug("[WCF.Message.Preview] Unable to access Redactor instance of '"+this._messageFieldID+"'");return}this._proxy.setOption("data",{actionName:"getMessagePreview",className:this._className,parameters:this._getParameters(a)});this._proxy.sendRequest();this._previewButtonLabel=this._previewButton.html();this._previewButton.html(WCF.Language.get("wcf.global.loading")).disable();b.stopPropagation();return false},_getParameters:function(b){var a={};$("#settings").find("input[type=checkbox]").each(function(c,e){var d=$(e);if(d.is(":checked")){a[d.prop("name")]=d.prop("value")}});return{data:{message:b},options:a}},_getMessage:function(){if(!$.browser.redactor){return this._messageField.val()}else{if(this._messageField.data("redactor")){return this._messageField.redactor("getText")}}return null},_success:function(b,c,a){this._previewButton.html(this._previewButtonLabel).enable();this._messageField.parent().children("small.innerError").remove();this._handleResponse(b)},_handleResponse:function(a){},_failure:function(a){if(a===null||a.returnValues===undefined||a.returnValues.errorType===undefined){return true}this._previewButton.html(this._previewButtonLabel).enable();var b=this._messageField.next("small.innerError").empty();if(!b.length){b=$('<small class="innerError" />').appendTo(this._messageField.parent())}b.html(a.returnValues.errorType);return false}});WCF.Message.DefaultPreview=WCF.Message.Preview.extend({_attachmentObjectType:null,_attachmentObjectID:null,_tmpHash:null,init:function(b,a,c){this._super("wcf\\data\\bbcode\\MessagePreviewAction","text","previewButton");this._attachmentObjectType=b||null;this._attachmentObjectID=a||null;this._tmpHash=c||null},_handleResponse:function(b){var a=$("#previewContainer");if(!a.length){a=$('<div
class="container containerPadding marginTop" id
="previewContainer"><fieldset
><legend
>'+WCF.Language.get("wcf.global.preview")+"</legend><div></div></fieldset>").prependTo($("#messageContainer")).wcfFadeIn()}a.find("div:eq(0)").html(b.returnValues.message);new WCF.Effect.Scroll().scrollTo(a)},_getParameters:function(b){var a=this._super(b);if(this._attachmentObjectType!=null){a.attachmentObjectType=this._attachmentObjectType;a.attachmentObjectID=this._attachmentObjectID;a.tmpHash=this._tmpHash}return a}});WCF.Message.Multilingualism=Class.extend({_availableLanguages:{},_languageID:0,_languageInput:null,init:function(c,d,a){this._availableLanguages=d;this._languageID=c||0;this._languageInput=$("#languageID");this._updateLabel();this._languageInput.find(".dropdownMenu > li").click($.proxy(this._click,this));if(!a){var b=this._languageInput.find(".dropdownMenu");$('<li
class="dropdownDivider" />').appendTo(b);$('<li
><span
><span
class="badge">'+this._availableLanguages[0]+"</span></span></li>").click($.proxy(this._disable,this)).appendTo(b)}this._languageInput.parents("form").submit($.proxy(this._submit,this))},_click:function(a){this._languageID=$(a.currentTarget).data("languageID");this._updateLabel()},_disable:function(){this._languageID=0;this._updateLabel()},_updateLabel:function(){this._languageInput.find(".dropdownToggle > span").text(this._availableLanguages[this._languageID])},_submit:function(){this._languageInput.next("input[name=languageID]").prop("value",this._languageID)}});WCF.Message.SmileyCategories=Class.extend({_cache:[],_proxy:null,init:function(){this._cache=[];this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$("#smilies").on("wcftabsbeforeactivate",$.proxy(this._click,this));var a=this;new WCF.PeriodicalExecuter(function(b){b.stop();a._click({},{newTab:$("#smilies > .menu li.ui-state-active")})},100)},_click:function(b,c){var a=parseInt($(c.newTab).children("a").data("smileyCategoryID"));if(a&&!WCF.inArray(a,this._cache)){this._proxy.setOption("data",{actionName:"getSmilies",className:"wcf\\data\\smiley\\category\\SmileyCategoryAction",objectIDs:[a]});this._proxy.sendRequest()}},_success:function(c,d,b){var a=parseInt(c.returnValues.smileyCategoryID);this._cache.push(a);$("#smilies-"+a).html(c.returnValues.template)}});WCF.Message.Smilies=Class.extend({_redactor:null,_wysiwygSelector:"",init:function(a){this._wysiwygSelector=a;WCF.System.Dependency.Manager.register("Redactor_"+this._wysiwygSelector,$.proxy(function(){this._redactor=$("#"+this._wysiwygSelector).redactor("getObject");$(document).on("click",".jsSmiley",$.proxy(this._smileyClick,this))},this))},_smileyClick:function(d){var b=$(d.currentTarget);var a=b.data("smileyCode");var c=b.data("smileyPath");this._redactor.insertSmiley(a,c,true)}});WCF.Message.QuickReply=Class.extend({_container:null,_messageField:null,_notification:null,_pendingSave:false,_proxy:null,_quoteManager:null,_scrollHandler:null,_successMessageNonVisible:"",init:function(c,b){this._container=$("#messageQuickReply");this._container.children(".message").addClass("jsInvalidQuoteTarget");this._messageField=$("#text");this._pendingSave=false;if(!this._container||!this._messageField){return}var a=this._container.find(".formSubmit");a.find("button[data-type=save]").click($.proxy(this._save,this));if(c){a.find("button[data-type=extended]").click($.proxy(this._prepareExtended,this))}a.find("button[data-type=cancel]").click($.proxy(this._cancel,this));if(b){this._quoteManager=b}$(".jsQuickReply").data("__api",this).click($.proxy(this.click,this));this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),showLoadingOverlay:false,success:$.proxy(this._success,this)});this._scroll=new WCF.Effect.Scroll();this._notification=new WCF.System.Notification(WCF.Language.get("wcf.global.success.add"));this._successMessageNonVisible=""},click:function(b){this._container.toggle();if(this._container.is(":visible")){this._scroll.scrollTo(this._container,true);WCF.Message.Submit.registerButton("text",this._container.find(".formSubmit button[data-type=save]"));if(this._quoteManager){var a=true;if($.browser.redactor){if(this._messageField.data("redactor")){a=(!$.trim(this._messageField.redactor("getText")));this._editorCallback(a)}}else{a=(!this._messageField.val().length);this._editorCallback(a)}}}if(b!==null){b.stopPropagation();return false}},_editorCallback:function(a){if(a){this._quoteManager.insertQuotes(this._getClassName(),this._getObjectID(),$.proxy(this._insertQuotes,this))}if($.browser.redactor){this._messageField.redactor("focus")}else{this._messageField.focus()}},getContainer:function(){return this._container},_insertQuotes:function(a){if(!a.returnValues.template){return}if($.browser.redactor){this._messageField.redactor("insertDynamic",a.returnValues.template)}else{this._messageField.val(a.returnValues.template)}},_save:function(){if(this._pendingSave){return}var a="";if($.browser.redactor){a=this._messageField.redactor("getText")}else{a=$.trim(this._messageField.val())}var c=this._messageField.parent().find("small.innerError");if(a===""||a==="0"){if(!c.length){c=$('<small
class="innerError" />').appendTo(this._messageField.parent())}c.html(WCF.Language.get("wcf.global.form.error.empty"));return}else{c.remove()}this._pendingSave=true;this._proxy.setOption("data",{actionName:"quickReply",className:this._getClassName(),interfaceName:"wcf\\data\\IMessageQuickReplyAction",parameters:this._getParameters(a)});this._proxy.sendRequest();var b=this._container.find(".messageQuickReplyContent .messageBody");$('<span
class="icon icon48 icon-spinner" />').appendTo(b);b.children(".redactor_box").hide().end().next().hide()},_getParameters:function(b){var a={objectID:this._getObjectID(),data:{message:b},lastPostTime:this._container.data("lastPostTime"),pageNo:this._container.data("pageNo"),removeQuoteIDs:(this._quoteManager===null?[]:this._quoteManager.getQuotesMarkedForRemoval()),tmpHash:this._container.data("tmpHash")||""};if(this._container.data("anchor")){a.anchor=this._container.data("anchor")}return a},_cancel:function(){this._revertQuickReply(true);if($.browser.redactor){this._messageField.redactor("reset")}else{this._messageField.val("")}},_revertQuickReply:function(b){var a=this._container.find(".messageQuickReplyContent .messageBody");if(b){this._container.hide();a.children("small.innerError").remove()}a.children(".icon-spinner").remove();a.children(".redactor_box").show();a.next().show()},_prepareExtended:function(){this._pendingSave=true;if(this._quoteManager!==null){this._quoteManager.markQuotesForRemoval()}var a="";if($.browser.redactor){a=this._messageField.redactor("getText")}else{a=this._messageField.val()}new WCF.Action.Proxy({autoSend:true,data:{actionName:"jumpToExtended",className:this._getClassName(),interfaceName:"wcf\\data\\IExtendedMessageQuickReplyAction",parameters:{containerID:this._getObjectID(),message:a}},success:function(c,d,b){window.location=c.returnValues.url}})},_success:function(c,d,b){if($.browser.redactor){this._messageField.redactor("autosavePurge")}if(c.returnValues.url){window.location=c.returnValues.url}else{if(c.returnValues.template){var a=$(""+c.returnValues.template);if(this._container.data("sortOrder")=="DESC"){a.insertAfter(this._container)}else{a.insertBefore(this._container)}this._container.data("lastPostTime",c.returnValues.lastPostTime);this._notification.show(undefined,undefined,WCF.Language.get("wcf.global.success.add"));this._updateHistory(a.wcfIdentify())}else{var a=(this._successMessageNonVisible)?this._successMessageNonVisible:"wcf.global.success.add";this._notification.show(undefined,5000,WCF.Language.get(a))}if($.browser.redactor){this._messageField.redactor("reset")}else{this._messageField.val("")}this._revertQuickReply(true);if(this._quoteManager!==null){this._quoteManager.countQuotes()}this._pendingSave=false}},_failure:function(b){this._pendingSave=false;this._revertQuickReply(false);if(b===null||b.returnValues===undefined||b.returnValues.errorType===undefined){return true}var a=this._container.find(".messageQuickReplyContent .messageBody");var c=a.children("small.innerError").empty();if(!c.length){c=$('<small class="innerError" />').appendTo(a)}c.html(b.returnValues.errorType);return false},_getClassName:function(){return""},_getObjectID:function(){return 0},_updateHistory:function(a){window.location.hash=a}});WCF.Message.InlineEditor=Class.extend({_activeElementID:"",_cache:"",_container:{},_containerID:0,_dropdowns:{},_messageContainerSelector:".jsMessage",_messageEditorIDPrefix:"messageEditor",_notification:null,_proxy:null,_quoteManager:null,_supportExtendedForm:false,init:function(a,c,b){this._activeElementID="";this._cache="";this._container={};this._containerID=parseInt(a);this._dropdowns={};this._quoteManager=b||null;this._supportExtendedForm=(c)?true:false;this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),showLoadingOverlay:false,success:$.proxy(this._success,this)});this._notification=new WCF.System.Notification(WCF.Language.get("wcf.global.success.edit"));this.initContainers();WCF.DOMNodeInsertedHandler.addCallback("WCF.Message.InlineEditor",$.proxy(this.initContainers,this))},initContainers:function(){$(this._messageContainerSelector).each($.proxy(function(b,a){var e=$(a);var c=e.wcfIdentify();if(!this._container[c]){this._container[c]=e;if(e.data("canEditInline")){var d=e.find(".jsMessageEditButton:eq(0)").data("containerID",c).click($.proxy(this._clickInline,this));if(e.data("canEdit")){d.dblclick($.proxy(this._click,this))}}else{if(e.data("canEdit")){e.find(".jsMessageEditButton:eq(0)").data("containerID",c).click($.proxy(this._click,this))}}}},this))},_click:function(c,a){var b=(c===null)?a:$(c.currentTarget).data("containerID");if(this._activeElementID===""){this._activeElementID=b;this._prepare();this._proxy.setOption("data",{actionName:"beginEdit",className:this._getClassName(),interfaceName:"wcf\\data\\IMessageInlineEditorAction",parameters:{containerID:this._containerID,objectID:this._container[b].data("objectID")}});this._proxy.setOption("failure",$.proxy(function(){this._cancel()},this));this._proxy.sendRequest()}else{var d=new WCF.System.Notification(WCF.Language.get("wcf.message.error.editorAlreadyInUse"),"warning");d.show()}if(this._dropdowns[this._container[b].data("objectID")]){this._dropdowns[this._container[b].data("objectID")].removeClass("dropdownOpen")}if(c!==null){c.stopPropagation();return false}},_clickInline:function(c){var d=$(c.currentTarget);if(!d.hasClass("dropdownToggle")){var b=d.data("containerID");d.addClass("dropdownToggle").parent().addClass("dropdown");var a=$('<ul
class="dropdownMenu" />').insertAfter(d);this._initDropdownMenu(b,a);WCF.DOMNodeInsertedHandler.execute();this._dropdowns[this._container[b].data("objectID")]=a;WCF.Dropdown.registerCallback(d.parent().wcfIdentify(),$.proxy(this._toggleDropdown,this));d.trigger("click")}c.stopPropagation();return false},_failure:function(b){this._revertEditor();if(b===null||b.returnValues===undefined||b.returnValues.errorType===undefined){return true}var a=this._container[this._activeElementID].find(".messageBody .messageInlineEditor");var c=a.children("small.innerError").empty();if(!c.length){c=$('<small class="innerError" />').insertBefore(a.children(".formSubmit"))}c.html(b.returnValues.errorType);return false},_toggleDropdown:function(a,b){WCF.Dropdown.getDropdown(a).parents(".messageOptions").toggleClass("forceOpen")},_initDropdownMenu:function(a,b){},_prepare:function(){var b=this._container[this._activeElementID].find(".messageBody");$('<span
class="icon icon48 icon-spinner" />').appendTo(b);var a=b.find(".messageText");a.parent().children(".jsInlineEditorHideContent").hide();b.children(".attachmentThumbnailList, .attachmentFileList").hide();this._cache=a.detach()},_cancel:function(){var c=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget");var a=$("#"+this._messageEditorIDPrefix+c.data("objectID"));a.redactor("autosavePurge");a.redactor("destroy");var b=c.find(".messageBody");b.children(".icon-spinner").remove();b.children("div:eq(0)").html(this._cache);b.children(".attachmentThumbnailList, .attachmentFileList").show();b.find(".jsInlineEditorHideContent").show();this._container[this._activeElementID].find(".messageOptions").removeClass("forceHidden");this._activeElementID="";if(this._quoteManager){this._quoteManager.clearAlternativeEditor()}},_success:function(b,c,a){switch(b.returnValues.actionName){case"beginEdit":this._showEditor(b);break;case"save":this._showMessage(b);break}},_showEditor:function(f){this._proxy.setOption("failure",$.proxy(this._failure,this));var d=this._container[this._activeElementID].addClass("jsInvalidQuoteTarget").find(".messageBody");d.children(".icon-spinner").remove();var c=d.children("div:eq(0)");$(""+f.returnValues.template).appendTo(c);var b=c.find(".formSubmit");var e=b.find("button[data-type=save]").click($.proxy(this._save,this));if(this._supportExtendedForm){b.find("button[data-type=extended]").click($.proxy(this._prepareExtended,this))}b.find("button[data-type=cancel]").click($.proxy(this._cancel,this));WCF.Message.Submit.registerButton(this._messageEditorIDPrefix+this._container[this._activeElementID].data("objectID"),e);this._container[this._activeElementID].find(".messageOptions").addClass("forceHidden");var a=$("#"+this._messageEditorIDPrefix+this._container[this._activeElementID].data("objectID"));if($.browser.redactor){new WCF.PeriodicalExecuter($.proxy(function(g){g.stop();if(this._quoteManager){this._quoteManager.setAlternativeEditor(a)}},this),250)}else{a.focus()}},_revertEditor:function(){var a=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget").find(".messageBody");a.children("span.icon-spinner").remove();a.children("div:eq(0)").children().show();a.children(".attachmentThumbnailList, .attachmentFileList").show();a.find(".jsInlineEditorHideContent").show();if(this._quoteManager){this._quoteManager.clearAlternativeEditor()}},_save:function(){var c=this._container[this._activeElementID];var b=c.data("objectID");var a="";if($.browser.redactor){a=$("#"+this._messageEditorIDPrefix+b).redactor("getText")}else{a=$("#"+this._messageEditorIDPrefix+b).val()}this._proxy.setOption("data",{actionName:"save",className:this._getClassName(),interfaceName:"wcf\\data\\IMessageInlineEditorAction",parameters:{containerID:this._containerID,data:{message:a},objectID:b}});this._proxy.sendRequest();this._hideEditor()},_prepareExtended:function(){var c=this._container[this._activeElementID];var b=c.data("objectID");var a="";if($.browser.redactor){a=$("#"+this._messageEditorIDPrefix+b).redactor("getText")}else{a=$("#"+this._messageEditorIDPrefix+b).val()}new WCF.Action.Proxy({autoSend:true,data:{actionName:"jumpToExtended",className:this._getClassName(),parameters:{containerID:this._containerID,message:a,messageID:b}},success:function(e,f,d){window.location=e.returnValues.url}})},_hideEditor:function(){var a=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget").find(".messageBody");$('<span class="icon icon48 icon-spinner" />').appendTo(a);a.children("div:eq(0)").children().hide();a.children(".attachmentThumbnailList, .attachmentFileList").show();a.find(".jsInlineEditorHideContent").show();if(this._quoteManager){this._quoteManager.clearAlternativeEditor()}},_showMessage:function(c){var d=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget");var b=d.find(".messageBody");b.children(".icon-spinner").remove();var a=b.children("div:eq(0)");a.parent().children(".jsInlineEditorHideContent").show();this._container[this._activeElementID].find(".messageOptions").removeClass("forceHidden");if($.browser.redactor){$("#"+this._messageEditorIDPrefix+d.data("objectID")).redactor("destroy")}a.empty();a.html('<div
class="messageText">'+c.returnValues.message+"</div>");if(c.returnValues.attachmentList==undefined){b.children(".attachmentThumbnailList, .attachmentFileList").show()}else{b.children(".attachmentThumbnailList, .attachmentFileList").remove();if(c.returnValues.attachmentList){$(c.returnValues.attachmentList).insertAfter(b.children("div:eq(0)"))}}this._activeElementID="";this._updateHistory(this._getHash(d.data("objectID")));this._notification.show();if(this._quoteManager){this._quoteManager.clearAlternativeEditor()}},_getClassName:function(){return""},_getHash:function(a){return"#message"+a},_updateHistory:function(a){window.location.hash=a}});WCF.Message.Submit={_buttons:{},registerButton:function(b,a){if(!WCF.Browser.isChrome()){return}this._buttons[b]=$(a)},execute:function(a){if(!this._buttons[a]){return}this._buttons[a].trigger("click")}};WCF.Message.Quote={};WCF.Message.Quote.Handler=Class.extend({_activeContainerID:"",_className:"",_containers:{},_containerSelector:"",_copyQuote:null,_message:"",_messageBodySelector:"",_objectID:0,_objectType:"",_proxy:null,_quoteManager:null,init:function(e,d,b,a,c,f){this._className=d;if(this._className==""){console.debug("[WCF.Message.QuoteManager] Empty class name given, aborting.");return}this._objectType=b;if(this._objectType==""){console.debug("[WCF.Message.QuoteManager] Empty object type name given, aborting.");return}this._containerSelector=a;this._message="";this._messageBodySelector=c;this._messageContentSelector=f;this._objectID=0;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._initContainers();this._initCopyQuote();$(document).mouseup($.proxy(this._mouseUp,this));this._quoteManager=e;this._quoteManager.register(this._objectType,this);WCF.DOMNodeInsertedHandler.addCallback("WCF.Message.Quote.Handler"+b.hashCode(),$.proxy(this._initContainers,this))},_initContainers:function(){var a=this;$(this._containerSelector).each(function(c,b){var e=$(b);var d=e.wcfIdentify();if(!a._containers[d]){a._containers[d]=e;if(e.hasClass("jsInvalidQuoteTarget")){return true}if(a._messageBodySelector!==null){e=e.find(a._messageBodySelector).data("containerID",d)}e.mousedown($.proxy(a._mouseDown,a));a._containers[d].find(".jsQuoteMessage").click($.proxy(a._saveFullQuote,a))}})},_mouseDown:function(a){this._copyQuote.hide();var b=$(a.currentTarget);if(this._messageBodySelector){b=this._containers[b.data("containerID")]}if(b.hasClass("jsInvalidQuoteTarget")){this._activeContainerID="";return}this._activeContainerID=b.wcfIdentify();if($.browser.mozilla){b.find("img").each(function(){var c=$(this);c.data("__alt",c.attr("alt")).removeAttr("alt")})}},_getNodeText:function(d){var c="";for(var b=0;b<d.childNodes.length;b++){if(d.childNodes[b].nodeType==3){c+=d.childNodes[b].nodeValue}else{if(!d.childNodes[b].tagName){continue}var a=d.childNodes[b].tagName.toLowerCase();if(a==="li"){c+="\r\n"}else{if(a==="td"&&!$.browser.msie){c+="\r\n"}}c+=this._getNodeText(d.childNodes[b]);if(a==="ul"){c+="\n"}}}return c},_mouseUp:function(a){if(this._activeContainerID==""){this._copyQuote.hide();return}var i=this._containers[this._activeContainerID];var c=this._getSelectedText();var f=$.trim(c);if(f==""){this._copyQuote.hide();return}var d=null;if(this._messageBodySelector){d=this._getNodeText(i.find(this._messageContentSelector).get(0))}else{d=this._getNodeText(i.get(0))}if(this._normalize(d).indexOf(this._normalize(f))===-1){return}this._copyQuote.show();var g=this._getBoundingRectangle(i,c);var e=this._copyQuote.getDimensions("outer");var b=(g.right-g.left)/2-(e.width/2)+g.left;this._copyQuote.css({top:g.top-e.height-7+"px",left:b+"px"});this._copyQuote.hide();this._activeContainerID="";var h=this;new WCF.PeriodicalExecuter(function(j){j.stop();var k=$.trim(h._getSelectedText());if(k!=""){h._copyQuote.show();h._message=k;h._objectID=i.data("objectID");if($.browser.mozilla){i.find("img").each(function(){var l=$(this);l.attr("alt",l.data("__alt"))})}}},10)},_normalize:function(a){return a.replace(/\r?\n|\r/g,"\n").replace(/\s/g," ").replace(/\s{2,}/g," ")},_getOffset:function(c,d){c.collapse(d);var f=WCF.getRandomID();var a=document.createElement("span");a.innerHTML='<span id
="'+f+'"></span
>';var g=document.createDocumentFragment(),b;while(b=a.firstChild){g.appendChild(b)}c.insertNode(g);a=$("#"+f);var e=a.offset();e.top=e.top-$(window).scrollTop();a.remove();return e},_getBoundingRectangle:function(b,e){var d=null;if(document.createRange&&typeof document.createRange().getBoundingClientRect!="undefined"){if(e.rangeCount>0){var h=e.getRangeAt(0).getClientRects();var c=e.getRangeAt(0).getBoundingClientRect();var f=$(document);var a=f.scrollTop();d={left:c.left,right:c.right,top:c.top+a}}}else{if(document.selection&&document.selection.type!="Control"){var g=document.selection.createRange();d={left:g.boundingLeft,right:g.boundingRight,top:g.boundingTop}}}return d},_saveSelection:function(d){if(window.getSelection&&document.createRange){var c=window.getSelection().getRangeAt(0);var b=c.cloneRange();b.selectNodeContents(d);b.setEnd(c.startContainer,c.startOffset);var f=b.toString().length;return{start:f,end:f+c.toString().length}}else{var a=document.selection.createRange();var e=document.body.createTextRange();e.moveToElementText(d);e.setEndPoint("EndToStart",a);var f=e.text.length;return{start:f,end:f+a.text.length}}},_restoreSelection:function(j,k){if(window.getSelection&&document.createRange){var a=0,g=document.createRange();g.setStart(j,0);g.collapse(true);var f=[j],c,d=false,l=false;while(!l&&(c=f.pop())){if(c.nodeType==3){var h=a+c.length;if(!d&&k.start>=a&&k.start<=h){g.setStart(c,k.start-a);d=true}if(d&&k.end>=a&&k.end<=h){g.setEnd(c,k.end-a);l=true}a=h}else{var e=c.childNodes.length;while(e--){f.push(c.childNodes[e])}}}var b=window.getSelection();b.removeAllRanges();b.addRange(g)}else{var m=document.body.createTextRange();m.moveToElementText(j);m.collapse(true);m.moveEnd("character",k.end);m.moveStart("character",k.start);m.select()}},_initCopyQuote:function(){this._copyQuote=$("#quoteManagerCopy");if(!this._copyQuote.length){this._copyQuote=$('<div id
="quoteManagerCopy" class="balloonTooltip"><span
>'+WCF.Language.get("wcf.message.quote.quoteSelected")+'</span><span class="pointer"><span></span></span></div>').hide().appendTo(document.body);this._copyQuote.click($.proxy(this._saveQuote,this))}},_getSelectedText:function(){if(window.getSelection){return window.getSelection()}else{if(document.getSelection){return document.getSelection()}else{if(document.selection){return document.selection.createRange().text}}}return""},_saveFullQuote:function(b){var a=$(b.currentTarget);this._proxy.setOption("data",{actionName:"saveFullQuote",className:this._className,interfaceName:"wcf\\data\\IMessageQuoteAction",objectIDs:[a.data("objectID")]});this._proxy.sendRequest();if(a.data("isQuoted")){a.data("isQuoted",false).children("a").removeClass("active")}else{a.data("isQuoted",true).children("a").addClass("active")}b.stopPropagation();return false},_saveQuote:function(){this._proxy.setOption("data",{actionName:"saveQuote",className:this._className,interfaceName:"wcf\\data\\IMessageQuoteAction",objectIDs:[this._objectID],parameters:{message:this._message}});this._proxy.sendRequest()},_success:function(c,d,b){if(c.returnValues.count!==undefined){var a=(c.fullQuoteObjectIDs!==undefined)?c.fullQuoteObjectIDs:{};this._quoteManager.updateCount(c.returnValues.count,a)}},updateFullQuoteObjectIDs:function(b){for(var a in this._containers){this._containers[a].find(".jsQuoteMessage").each(function(c,d){var e=$(d).data("isQuoted",0);e.children("a").removeClass("active");if(WCF.inArray(e.data("objectID"),b)){e.data("isQuoted",1).children("a").addClass("active")}})}}});WCF.Message.Quote.Manager=Class.extend({_buttons:{},_count:0,_dialog:null,_editorElement:null,_editorElementAlternative:null,_form:null,_handlers:{},_hasTemplate:false,_insertQuotes:true,_proxy:null,_removeOnSubmit:[],_showQuotes:null,_supportPaste:false,init:function(c,a,b,d){this._buttons={insert:null,remove:null};this._count=parseInt(c)||0;this._dialog=null;this._editorElement=null;this._editorElementAlternative=null;this._form=null;this._handlers={};this._hasTemplate=false;this._insertQuotes=true;this._removeOnSubmit=[];this._showQuotes=null;this._supportPaste=false;if(a){this._editorElement=$("#"+a);if(this._editorElement.length){this._supportPaste=true;this._form=this._editorElement.parents("form:eq(0)");if(this._form.length){this._form.submit($.proxy(this._submit,this));this._removeOnSubmit=d||[]}else{this._form=null;this._supportPaste=(b===true)?true:false}}}this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false,success:$.proxy(this._success,this),url:"index.php/MessageQuote/?t="+SECURITY_TOKEN+SID_ARG_2ND});this._toggleShowQuotes()},setAlternativeEditor:function(a){this._editorElementAlternative=a},clearAlternativeEditor:function(){this._editorElementAlternative=null},register:function(a,b){this._handlers[a]=b},updateCount:function(c,b){this._count=parseInt(c)||0;this._toggleShowQuotes();for(var a in this._handlers){if(b[a]){this._handlers[a].updateFullQuoteObjectIDs(b[a])}}},insertQuotes:function(a,b,c){if(!this._insertQuotes){this._insertQuotes=true;return}new WCF.Action.Proxy({autoSend:true,data:{actionName:"getRenderedQuotes",className:a,interfaceName:"wcf\\data\\IMessageQuoteAction",parameters:{parentObjectID:b}},success:c})},_toggleShowQuotes:function(){if(!this._count){if(this._showQuotes!==null){this._showQuotes.hide()}}else{if(this._showQuotes===null){this._showQuotes=$("#showQuotes");if(!this._showQuotes.length){this._showQuotes=$('<div id
="showQuotes" class="balloonTooltip" />').click($.proxy(this._click,this)).appendTo(document.body)}}var a=WCF.Language.get("wcf.message.quote.showQuotes").replace(/#count
#/,this._count);this._showQuotes.text(a).show()}this._hasTemplate=false},_click:function(){if(this._hasTemplate){this._dialog.wcfDialog("open")}else{this._proxy.showLoadingOverlayOnce();this._proxy.setOption("data",{actionName:"getQuotes",supportPaste:this._supportPaste});this._proxy.sendRequest()}},renderDialog:function(c){if(this._dialog===null){this._dialog=$("#messageQuoteList");if(!this._dialog.length){this._dialog=$('<div id="messageQuoteList" />').hide().appendTo(document.body)}}this._dialog.html(c);var a=$('<div
class="formSubmit" />').appendTo(this._dialog);if(this._supportPaste){this._buttons.insert=$('<button class="buttonPrimary">'+WCF.Language.get("wcf.message.quote.insertAllQuotes")+"</button
>").click($.proxy(this._insertSelected,this)).appendTo(a)}this._buttons.remove=$("<button
>"+WCF.Language.get("wcf
.message
.quote
.removeAllQuotes
")+"</button>").click($.proxy(this._removeSelected,this)).appendTo(a);this._dialog.wcfDialog({title:WCF.Language.get("wcf.message.quote.manageQuotes")});this._dialog.wcfDialog("render");this._hasTemplate=true;var d=this._dialog.find(".jsInsertQuote");if(this._supportPaste){d.click($.proxy(this._insertQuote,this))}else{d.hide()}this._dialog.find("input.jsCheckbox").change($.proxy(this._changeButtons,this));if(this._removeOnSubmit.length){var b=this;this._dialog.find("input.jsRemoveQuote").each(function(f,e){var g=$(e).change($.proxy(this._change,this));if(WCF.inArray(g.parent("li").attr("data-quote-id"),b._removeOnSubmit)){g.attr("checked","checked")}})}},_changeButtons:function(){if(this._dialog.find("input.jsCheckbox:checked").length){if(this._supportPaste){this._buttons.insert.html(WCF.Language.get("wcf.message.quote.insertSelectedQuotes"))}this._buttons.remove.html(WCF.Language.get("wcf.message.quote.removeSelectedQuotes"))}else{if(this._supportPaste){this._buttons.insert.html(WCF.Language.get("wcf.message.quote.insertAllQuotes"))}this._buttons.remove.html(WCF.Language.get("wcf.message.quote.removeAllQuotes"))}},_change:function(c){var d=$(c.currentTarget);var b=d.parent("li").attr("data-quote-id");if(d.prop("checked")){this._removeOnSubmit.push(b)}else{for(var a in this._removeOnSubmit){if(this._removeOnSubmit[a]==b){delete this._removeOnSubmit[a];break}}}},_insertSelected:function(){if(this._editorElementAlternative===null){var a=$(".jsQuickReply:eq(0)").data("__api");if(a&&!a.getContainer().is(":visible")){this._insertQuotes=false;a.click(null)}}if(!this._dialog.find("input.jsCheckbox:checked").length){this._dialog.find("input.jsCheckbox").prop("checked","checked")}this._dialog.find("input.jsCheckbox:checked").each($.proxy(function(c,b){this._insertQuote(null,b)},this));this._dialog.wcfDialog("close")},_insertQuote:function(a,h){if(a!==null&&this._editorElementAlternative===null){var c=$(".jsQuickReply:eq(0)").data("__api");if(c&&!c.getContainer().is(":visible")){this._insertQuotes=false;c.click(null)}}var f=(a===null)?$(h).parents("li"):$(a.currentTarget).parents("li");var i=$.trim(f.children("div.jsFullQuote").text());var e=f.parents("article.message");i="[quote='"+e.attr("data-username")+"','"+e.data("link")+"']"+i+"[/quote
]";if($.browser.redactor){if(this._editorElementAlternative===null){this._editorElement.redactor("insertDynamic
",i)}else{this._editorElementAlternative.redactor("insertDynamic
",i)}}else{var d=(this._editorElementAlternative===null)?this._editorElement:this._editorElementAlternative;var g=d.val();i+="\n\n";if(g.length==0){d.val(i)}else{var b=d.getCaret();d.val(g.substr(0,b)+i+g.substr(b))}}this._removeOnSubmit.push(f.attr("data
-quote
-id
"));if(a!==null){this._dialog.wcfDialog("close
")}},_removeSelected:function(){if(!this._dialog.find("input
.jsCheckbox
:checked
").length){this._dialog.find("input
.jsCheckbox
").prop("checked
","checked
")}var b=[];this._dialog.find("input
.jsCheckbox
:checked
").each(function(e,d){b.push($(d).parents("li
").attr("data
-quote
-id
"))});if(b.length){var c=[];for(var a in this._handlers){c.push(a)}this._proxy.setOption("data
",{actionName:"remove
",getFullQuoteObjectIDs:this._handlers.length>0,objectTypes:c,quoteIDs:b});this._proxy.sendRequest();this._dialog.wcfDialog("close
")}},_submit:function(){if(this._supportPaste&&this._removeOnSubmit.length>0){var a=this._form.find(".formSubmit
");for(var b in this._removeOnSubmit){$('<input type="hidden
" name="__removeQuoteIDs
[]" value="'+this._removeOnSubmit[b]+'" />').appendTo(a)}}},getQuotesMarkedForRemoval:function(){return this._removeOnSubmit},markQuotesForRemoval:function(){if(this._removeOnSubmit.length){this._proxy.setOption("data
",{actionName:"markForRemoval
",quoteIDs:this._removeOnSubmit});this._proxy.suppressErrors();this._proxy.sendRequest()}},removeMarkedQuotes:function(){if(this._removeOnSubmit.length){this._proxy.setOption("data
",{actionName:"removeMarkedQuotes
",getFullQuoteObjectIDs:this._handlers.length>0});this._proxy.sendRequest()}},countQuotes:function(){var b=[];for(var a in this._handlers){b.push(a)}this._proxy.setOption("data
",{actionName:"count
",getFullQuoteObjectIDs:this._handlers.length>0,objectTypes:b});this._proxy.sendRequest()},_success:function(c,d,b){if(c===null){return}if(c.count!==undefined){var a=(c.fullQuoteObjectIDs!==undefined)?c.fullQuoteObjectIDs:{};this.updateCount(c.count,a)}if(c.template!==undefined){if($.trim(c.template)==""){this.updateCount(0,{})}else{this.renderDialog(c.template)}}}});WCF.Message.Share={};WCF.Message.Share.Content=Class.extend({_cache:{},_dialog:null,init:function(){this._cache={};this._dialog=null;this._initLinks();WCF.DOMNodeInsertedHandler.addCallback("WCF
.Message
.Share
.Content
",$.proxy(this._initLinks,this))},_initLinks:function(){$("a
.jsButtonShare
").removeClass("jsButtonShare
").click($.proxy(this._click,this))},_click:function(e){e.preventDefault();var a=$(e.currentTarget);var b=a.prop("href
");var d=(a.data("linkTitle
")?a.data("linkTitle
"):b);var c=b.hashCode();if(this._cache[c]===undefined){var g=false;if(this._dialog===null){this._dialog=$("<div
/>").hide().appendTo(document.body);g=true}else{this._dialog.empty()}var f=$('<fieldset><legend><label for="__sharePermalink
">'+WCF.Language.get("wcf
.message
.share
.permalink
")+"</label></legend></fieldset>").appendTo(this._dialog);$('<input type="text" id="__sharePermalink" class="long" readonly="readonly" />').attr("value",b).appendTo(f);var f=$('<fieldset
><legend
><label
for="__sharePermalinkBBCode">'+WCF.Language.get("wcf.message.share.permalink.bbcode")+"</label></legend></fieldset>").appendTo(this._dialog);$('<input type
="text" id
="__sharePermalinkBBCode" class="long" readonly
="readonly" />').attr("value","[url='"+b+"']"+d+"[/url]").appendTo(f);var f=$('<fieldset
><legend
><label
for="__sharePermalinkHTML">'+WCF.Language.get("wcf.message.share.permalink.html")+"</label></legend></fieldset>").appendTo(this._dialog);$('<input type
="text" id
="__sharePermalinkHTML" class="long" readonly
="readonly" />').attr("value",'<a href="'+b+'">'+WCF.String.escapeHTML(d)+"</a>").appendTo(f);this._cache[c]=this._dialog.html();if(g){this._dialog.wcfDialog({title:WCF.Language.get("wcf
.message
.share
")})}else{this._dialog.wcfDialog("open
")}}else{this._dialog.html(this._cache[c]).wcfDialog("open
")}this._enableSelection()},_enableSelection:function(){var a=this._dialog.find("input
").click(function(){$(this).select()});if(navigator.userAgent.match(/iP(ad|hone|od)/)){a.keydown(function(){return false}).removeAttr("readonly
").click(function(){this.setSelectionRange(0,9999)})}}});WCF.Message.Share.Page=Class.extend({_ui:{},_pageDescription:"",_pageURL:"",init:function(a){this._pageDescription=encodeURIComponent($('meta[property="og
:title
"]').prop("content
"));this._pageURL=encodeURIComponent($('meta[property="og
:url
"]').prop("content
"));var b=$(".messageShareButtons
");this._ui={facebook:b.find(".jsShareFacebook
"),google:b.find(".jsShareGoogle
"),reddit:b.find(".jsShareReddit
"),twitter:b.find(".jsShareTwitter
")};this._ui.facebook.children("a
").click($.proxy(this._shareFacebook,this));this._ui.google.children("a
").click($.proxy(this._shareGoogle,this));this._ui.reddit.children("a
").click($.proxy(this._shareReddit,this));this._ui.twitter.children("a
").click($.proxy(this._shareTwitter,this));if(a===true){this._fetchFacebook();this._fetchTwitter();this._fetchReddit()}},_share:function(c,a,b){window.open(a.replace(/{pageURL}/,this._pageURL).replace(/{text}/,this._pageDescription+(b?" "+this._pageURL:"")),"height
=600,width
=600")},_shareFacebook:function(){this._share("facebook
","https
://www.facebook.com/sharer.php?u={pageURL}&t={text}",true)},_shareGoogle:function(){this._share("google","https://plus.google.com/share?url={pageURL}",true)},_shareReddit:function(){this._share("reddit","https://ssl.reddit.com/submit?url={pageURL}",true)},_shareTwitter:function(){this._share("twitter","https://twitter.com/share?url={pageURL}&text={text}",false)},_fetchCount:function(b,d,c){var a={autoSend:true,dataType:"jsonp",showLoadingOverlay:false,success:d,suppressErrors:true,type:"GET",url:b.replace(/{pageURL}/,this._pageURL)};if(c){a.jsonp=c}new WCF.Action.Proxy(a)},_fetchFacebook:function(){this._fetchCount("https://graph.facebook.com/?id={pageURL}",$.proxy(function(a){if(a.shares){this._ui.facebook.children("span.badge").show().text(a.shares)}},this))},_fetchTwitter:function(){if(window.location.protocol.match(/^https/)){return}this._fetchCount("http://urls.api.twitter.com/1/urls/count.json?url={pageURL}",$.proxy(function(a){if(a.count){this._ui.twitter.children("span.badge").show().text(a.count)}},this))},_fetchReddit:function(){if(window.location.protocol.match(/^https/)){return}this._fetchCount("http://www.reddit.com/api/info.json?url={pageURL}",$.proxy(function(a){if(a.data.children.length){this._ui.reddit.children("span.badge").show().text(a.data.children[0].data.score)}},this),"jsonp")}});WCF.Message.UserMention=Class.extend({_caretPosition:null,_className:"wcf\\data\\user\\UserAction",_dropdown:null,_dropdownMenu:null,_itemIndex:-1,_lineHeight:null,_mentionStart:"",_redactor:null,init:function(a){this._textarea=$("#"+a);this._redactor=this._textarea.redactor("getObject");this._redactor.setOption("keyupCallback",$.proxy(this._keyup,this));this._redactor.setOption("wkeydownCallback",$.proxy(this._keydown,this));this._dropdown=this._textarea.redactor("getEditor");this._dropdownMenu=$('<ul class="dropdownMenu userSuggestionList" />').appendTo(this._textarea.parent());WCF.Dropdown.initDropdownFragment(this._dropdown,this._dropdownMenu);this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)})},_clearList:function(){this._hideList();this._dropdownMenu.empty()},_click:function(a){this._redactor.replaceRangesWith(this._caretPosition);this._setUsername($(a.currentTarget).data("username"))},_createListItem:function(c){var b=$("<li />").data("username",c.label).click($.proxy(this._click,this)).appendTo(this._dropdownMenu);var a=$("<div />").addClass("box16").appendTo(b);a.append($(c.icon).addClass("framed"));a.append($("<div />").append($("<span />").text(c.label)))},_getDropdownMenuPosition:function(){var e=getSelection().getRangeAt(0).cloneRange();var a=document.createRange();a.setStart(e.startContainer,e.startOffset-(this._mentionStart.length+1));a.setEnd(e.startContainer,e.startOffset);this._redactor.replaceRangesWith(a);var f=getSelection().getRangeAt(0);var b=f.getBoundingClientRect();var d=$(window);var c={top:Math.round(b.bottom)+d.scrollTop(),left:Math.round(b.left)+d.scrollLeft()};if(this._lineHeight===null){this._lineHeight=Math.round(b.bottom-b.top)}this._redactor.replaceRangesWith(e);this._caretPosition=e;return c},_setUsername:function(e){var c=getSelection().getRangeAt(0).cloneRange();this._redactor.bufferSet();var a=document.createRange();a.setStart(c.startContainer,c.startOffset-(this._mentionStart.length+1));a.setEnd(c.startContainer,c.startOffset);this._redactor.replaceRangesWith(a);var d=getSelection().getRangeAt(0);d.deleteContents();d.collapse(true);if(e.indexOf("'")!==-1){e=e.replace(/'/g,"''");e="'"+e+"'"}else{if(e.indexOf(" ")!==-1){e="'"+e+"'"}}var b=document.createTextNode("@"+e);d.insertNode(b);var a=document.createRange();a.setStart(b,e.length+1);a.setEnd(b,e.length+1);this._redactor.replaceRangesWith(a);this._hideList()},_getParameters:function(){return{data:{includeUserGroups:false,searchString:this._mentionStart}}},_getTextLineInFrontOfCaret:function(){if(this._redactor.getSelectionHtml().length){return""}var e=this._redactor.getSelection().getRangeAt(0);var b=e.startContainer.textContent.substr(0,e.startOffset);var a=b;b="";for(var d=0;d<a.length;d++){var c=a.charCodeAt(d).toString(16);if(c!="200b"&&!/\s/.test(a[d])){if(a[d]==="@"&&d&&/\s/.test(a[d-1])){b=""}b+=a[d]}else{b=""}}return b},_hideList:function(){this._dropdown.removeClass("dropdownOpen");this._dropdownMenu.removeClass("dropdownOpen");this._itemIndex=-1},_keydown:function(a){if(this._redactor.inPlainMode()){return true}if(this._dropdownMenu.is(":visible")){switch(a.which){case $.ui.keyCode.ENTER:a.preventDefault();this._dropdownMenu.children("li").eq(this._itemIndex).trigger("click");return false;break;case $.ui.keyCode.UP:a.preventDefault();this._selectItem(this._itemIndex-1);return false;break;case $.ui.keyCode.DOWN:a.preventDefault();this._selectItem(this._itemIndex+1);return false;break}}return true},_keyup:function(c){if(this._redactor.inPlainMode()){return true}if(c.which===$.ui.keyCode.ENTER){return}if(this._dropdownMenu.is(":visible")&&c.which in {13:1,38:1,40:1}){return}var b=this._getTextLineInFrontOfCaret();if(b){var a=b.match(/@([^,]{3,})$/);if(a){if(!a.index||b[a.index-1].match(/\s/)){this._mentionStart=a[1];this._proxy.setOption("data",{actionName:"getSearchResultList",className:this._className,interfaceName:"wcf\\data\\ISearchAction",parameters:this._getParameters()});this._proxy.sendRequest()}}else{this._hideList()}}else{this._hideList()}},_selectItem:function(a){var b=this._dropdownMenu.children("li");if(a<0){a=b.length-1}else{if(a+1>b.length){a=0}}b.removeClass("dropdownNavigationItem");b.eq(a).addClass("dropdownNavigationItem");this._itemIndex=a},_showList:function(){this._dropdown.addClass("dropdownOpen");this._dropdownMenu.addClass("dropdownOpen")},_success:function(c,e,b){this._clearList(false);if($.getLength(c.returnValues)){for(var d in c.returnValues){var a=c.returnValues[d];this._createListItem(a)}this._updateSuggestionListPosition();this._showList()}},_updateSuggestionListPosition:function(){try{var b=this._getDropdownMenuPosition();b.top+=5;this._dropdownMenu.css(b);this._selectItem(0);if(b.top+this._dropdownMenu.outerHeight()+10>$(window).height()+$(document).scrollTop()){this._dropdownMenu.addClass("dropdownArrowBottom");this._dropdownMenu.css({top:b.top-this._dropdownMenu.outerHeight()-2*this._lineHeight+5})}else{this._dropdownMenu.removeClass("dropdownArrowBottom")}}catch(a){}}});
63 WCF
.Moderation
={};WCF
.Moderation
.Management
=Class
.extend({_buttonSelector
:"",_className
:"",_confirmationTemplate
:{},_languageItem
:"",_proxy
:null,_queueID
:0,_redirectURL
:"",init:function(a
,c
,b
){if(!this._buttonSelector
){console
.debug("[WCF.Moderation.Management] Missing button selector, aborting.");return}else{if(!this._className
){console
.debug("[WCF.Moderation.Management] Missing class name, aborting.");return}}this._queueID
=a
;this._redirectURL
=c
;this._languageItem
=b
;this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)});$(this._buttonSelector
).click($.proxy(this._click
,this))},_click:function(c
){var b
=$(c
.currentTarget
).wcfIdentify();var a
="";if(this._confirmationTemplate
[b
]){a
=this._confirmationTemplate
[b
]}WCF
.System
.Confirmation
.show(WCF
.Language
.get(this._languageItem
.replace(/{actionName}/,b
)),$.proxy(function(e
){if(e
==="confirm"){var d
={actionName
:b
,className
:this._className
,objectIDs
:[this._queueID
]};if(this._confirmationTemplate
[b
]){d
.parameters
={};a
.find("input, textarea").each(function(g
,i
){var f
=$(i
);var h
=f
.val();if(f
.getTagName()==="input"&&f
.attr("type")==="checkbox"){if(!f
.is(":checked")){h
=null}}if(h
!==null){d
.parameters
[f
.attr("name")]=h
}})}this._proxy
.setOption("data",d
);this._proxy
.sendRequest();$(this._buttonSelector
).disable()}},this),{},a
)},_success:function(c
,e
,b
){var d
=new WCF
.System
.Notification(WCF
.Language
.get("wcf.global.success"));var a
=this;d
.show(function(){window
.location
=a
._redirectURL
})}});WCF
.Moderation
.Activation
={};WCF
.Moderation
.Activation
.Management
=WCF
.Moderation
.Management
.extend({init:function(a
,b
){this._buttonSelector
="#enableContent, #removeContent";this._className
="wcf\\data\\moderation\\queue\\ModerationQueueActivationAction";this._super(a
,b
,"wcf.moderation.activation.{actionName}.confirmMessage")}});WCF
.Moderation
.Report
={};WCF
.Moderation
.Report
.Content
=Class
.extend({_buttons
:{},_buttonSelector
:"",_dialog
:null,_notification
:null,_objectID
:0,_objectType
:"",_proxy
:null,init:function(a
,b
){this._objectType
=a
;this._buttonSelector
=b
;this._buttons
={};this._notification
=null;this._objectID
=0;this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)});this._initButtons();WCF
.DOMNodeInsertedHandler
.addCallback("WCF.Moderation.Report"+this._objectType
.hashCode(),$.proxy(this._initButtons
,this))},_initButtons:function(){var a
=this;$(this._buttonSelector
).each(function(c
,d
){var e
=$(d
);var b
=e
.wcfIdentify();if(!a
._buttons
[b
]){a
._buttons
[b
]=e
;e
.click($.proxy(a
._click
,a
))}})},_click:function(a
){this._objectID
=$(a
.currentTarget
).data("objectID");this._proxy
.setOption("data",{actionName
:"prepareReport",className
:"wcf\\data\\moderation\\queue\\ModerationQueueReportAction",parameters
:{objectID
:this._objectID
,objectType
:this._objectType
}});this._proxy
.sendRequest()},_success:function(b
,c
,a
){if(b
.returnValues
.reported
){if(this._notification
===null){this._notification
=new WCF
.System
.Notification(WCF
.Language
.get("wcf.moderation.report.success"))}this._dialog
.wcfDialog("close");this._notification
.show()}else{if(b
.returnValues
.template
){this._showDialog(b
.returnValues
.template
);if(!b
.returnValues
.alreadyReported
){this._dialog
.find(".jsSubmitReport").click($.proxy(this._submit
,this))}}}},_showDialog:function(a
){if(this._dialog
===null){this._dialog
=$("#moderationReport");if(!this._dialog
.length
){this._dialog
=$('<div id="moderationReport" />').hide().appendTo(document
.body
)}}this._dialog
.html(a
).wcfDialog({title
:WCF
.Language
.get("wcf.moderation.report.reportContent")}).wcfDialog("render")},_submit:function(){var a
=this._dialog
.find(".jsReportMessage").val();if(a
==""){this._dialog
.find("fieldset > dl").addClass("formError");if(!this._dialog
.find(".innerError").length
){this._dialog
.find(".jsReportMessage").after($('<small class="innerError">'+WCF
.Language
.get("wcf.global.form.error.empty")+"</small>"))}return}this._proxy
.setOption("data",{actionName
:"report",className
:"wcf\\data\\moderation\\queue\\ModerationQueueReportAction",parameters
:{message
:a
,objectID
:this._objectID
,objectType
:this._objectType
}});this._proxy
.sendRequest()}});WCF
.Moderation
.Report
.Management
=WCF
.Moderation
.Management
.extend({init:function(a
,b
){this._buttonSelector
="#removeContent, #removeReport";this._className
="wcf\\data\\moderation\\queue\\ModerationQueueReportAction";this._super(a
,b
,"wcf.moderation.report.{actionName}.confirmMessage");this._confirmationTemplate
.removeContent
=$('<fieldset><dl><dt><label for="message">'+WCF
.Language
.get("wcf.moderation.report.removeContent.reason")+'</label></dt><dd><textarea name="message" id="message" cols="40" rows="3" /></dd></dl></fieldset>')}});WCF
.Moderation
.UserPanel
=WCF
.UserPanel
.extend({_showAllLink
:"",_deletedContentLink
:"",init:function(a
,b
){this._noItems
="wcf.moderation.noMoreItems";this._showAllLink
=a
;this._deletedContentLink
=b
;this._super("outstandingModeration")},_addDefaultItems:function(a
){this._addDivider(a
);$('<li><a href="'+this._showAllLink
+'">'+WCF
.Language
.get("wcf.moderation.showAll")+"</a></li>").appendTo(a
);this._addDivider(a
);$('<li><a href="'+this._deletedContentLink
+'">'+WCF
.Language
.get("wcf.moderation.showDeletedContent")+"</a></li>").appendTo(a
)},_getParameters:function(){return{actionName
:"getOutstandingQueues",className
:"wcf\\data\\moderation\\queue\\ModerationQueueAction"}}});
66 WCF
.Poll
={};WCF
.Poll
.Management
=Class
.extend({_container
:null,_count
:0,_inputSize
:0,_maxOptions
:0,init:function(a
,e
,f
){this._count
=0;this._maxOptions
=f
||-1;this._container
=$("#"+a
).children("ol:eq(0)");if(!this._container
.length
){console
.debug("[WCF.Poll.Management] Invalid container id given, aborting.");return}e
=e
||[];this._createOptionList(e
);$(window
).resize($.proxy(this._resize
,this));this._container
.parents("form").submit($.proxy(this._submit
,this));new WCF
.Sortable
.List(a
,"",undefined,undefined,true);this._resize();var d
=this._container
.parents(".tabMenuContent:eq(0)");var c
=d
.wcfIdentify();var b
=this;d
.parents(".tabMenuContainer:eq(0)").on("wcftabsactivate",function(g
,h
){if(h
.newPanel
.wcfIdentify()==c
){b
._resize()}})},_createOptionList:function(b
){for(var d
=0,c
=b
.length
;d
<c
;d
++){var a
=b
[d
];this._createOption(a
.optionValue
,a
.optionID
)}this._createOption()},_createOption:function(f
,d
,c
){f
=f
||"";d
=parseInt(d
)||0;c
=c
||null;var b
=$('<li class="sortableNode" />').data("optionID",d
);if(c
===null){b
.appendTo(this._container
)}else{b
.insertAfter(c
)}var a
=$('<span class="sortableButtonContainer" />').appendTo(b
);$('<span class="icon icon16 icon-plus jsTooltip jsAddOption pointer" title="'+WCF
.Language
.get("wcf.poll.button.addOption")+'" />').click($.proxy(this._addOption
,this)).appendTo(a
);$('<span class="icon icon16 icon-remove jsTooltip jsDeleteOption pointer" title="'+WCF
.Language
.get("wcf.poll.button.removeOption")+'" />').click($.proxy(this._removeOption
,this)).appendTo(a
);var e
=$('<input type="text" value="'+f
+'" maxlength="255" />').css({width
:this._inputSize
+"px"}).keydown($.proxy(this._keyDown
,this)).appendTo(b
);if(c
!==null){e
.focus()}WCF
.DOMNodeInsertedHandler
.execute();this._count
++;if(this._count
===this._maxOptions
){this._container
.find("span.jsAddOption").removeClass("pointer").addClass("disabled")}},_keyDown:function(a
){if(a
.which
!==13){return true}$(a
.currentTarget
).prev(".sortableButtonContainer").children(".jsAddOption").trigger("click");a
.preventDefault();a
.stopPropagation();return false},_addOption:function(b
){if(this._count
===this._maxOptions
){return false}var a
=$(b
.currentTarget
).parents("li");this._createOption(undefined,undefined,a
)},_removeOption:function(a
){$(a
.currentTarget
).parents("li").remove();this._count
--;this._container
.find("span.jsAddOption").addClass("pointer").removeClass("disabled");if(this._container
.children("li").length
==0){this._createOption()}},_resize:function(){var d
=this._container
.innerWidth();var c
=this._container
.children("li:eq(0)");var b
=c
.children(".sortableButtonContainer").outerWidth();var a
=d
-b
;if(a
!=this._inputSize
){this._inputSize
=a
;this._container
.find("li > input").css({width
:this._inputSize
+"px"})}},_submit:function(){var a
=[];this._container
.children("li").each(function(f
,i
){var h
=$(i
);var g
=$.trim(h
.children("input").val());if(g
!=""){a
.push({optionID
:h
.data("optionID"),optionValue
:g
})}});if(a
.length
){var b
=this._container
.parents("form").find(".formSubmit");for(var e
=0,d
=a
.length
;e
<d
;e
++){var c
=a
[e
];$('<input type="hidden" name="pollOptions['+e
+']" />').val(c
.optionID
+"_"+c
.optionValue
).appendTo(b
)}}}});WCF
.Poll
.Manager
=Class
.extend({_cache
:{},_canViewParticipants
:{},_canViewResult
:{},_canVote
:{},_inputElements
:{},_participants
:{},_polls
:{},_proxy
:null,init:function(a
){var c
=$(a
);if(!c
.length
){console
.debug("[WCF.Poll.Manager] Given selector '"+a
+"' does not match, aborting.");return}this._cache
={};this._canViewParticipants
={};this._canViewResult
={};this._inputElements
={};this._participants
={};this._polls
={};this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this),url
:"index.php/Poll/?t="+SECURITY_TOKEN
+SID_ARG_2ND
});var b
=this;c
.each(function(e
,g
){var f
=$(g
);var d
=f
.data("pollID");if(b
._polls
[d
]===undefined){b
._cache
[d
]={result
:"",vote
:""};b
._polls
[d
]=f
;b
._canViewParticipants
[d
]=(f
.data("canViewParticipants"))?true:false;b
._canViewResult
[d
]=(f
.data("canViewResult"))?true:false;b
._canVote
[d
]=(f
.data("canVote"))?true:false;b
._bindListeners(d
);if(f
.data("inVote")){b
._prepareVote(d
)}b
._toggleButtons(d
)}})},_bindListeners:function(a
){this._polls
[a
].find(".jsButtonPollShowParticipants").data("pollID",a
).click($.proxy(this._showParticipants
,this));this._polls
[a
].find(".jsButtonPollShowResult").data("pollID",a
).click($.proxy(this._showResult
,this));this._polls
[a
].find(".jsButtonPollShowVote").data("pollID",a
).click($.proxy(this._showVote
,this));this._polls
[a
].find(".jsButtonPollVote").data("pollID",a
).click($.proxy(this._vote
,this))},_showResult:function(b
,c
){var a
=(b
===null)?c
:$(b
.currentTarget
).data("pollID");if(!this._canViewResult
[a
]){return}if(!this._polls
[a
].data("inVote")){return}if(!this._cache
[a
].result
){this._proxy
.setOption("data",{actionName
:"getResult",pollID
:a
});this._proxy
.sendRequest()}else{this._polls
[a
].find(".pollInnerContainer").html(this._cache
[a
].result
);this._polls
[a
].data("inVote",false);this._toggleButtons(a
)}},_showParticipants:function(b
){var a
=$(b
.currentTarget
).data("pollID");if(!this._participants
[a
]){this._participants
[a
]=new WCF
.User
.List("wcf\\data\\poll\\PollAction",this._polls
[a
].data("question"),{pollID
:a
})}this._participants
[a
].open()},_showVote:function(b
,c
){var a
=(b
===null)?c
:$(b
.currentTarget
).data("pollID");if(!this._canVote
[a
]){return}if(this._polls
[a
].data("inVote")){return}if(!this._cache
[a
].vote
){this._proxy
.setOption("data",{actionName
:"getVote",pollID
:a
});this._proxy
.sendRequest()}else{this._polls
[a
].find(".pollInnerContainer").html(this._cache
[a
].vote
);this._polls
[a
].data("inVote",true);this._prepareVote(a
);this._toggleButtons(a
)}},_success:function(c
,d
,b
){if(!c
||!c
.actionName
){return}var a
=c
.pollID
;if(c
.resultTemplate
){this._cache
[a
].result
=c
.resultTemplate
}if(c
.voteTemplate
){this._cache
[a
].vote
=c
.voteTemplate
}switch(c
.actionName
){case"getResult":this._showResult(null,a
);break;case"getVote":this._showVote(null,a
);break;case"vote":this._canViewResult
[a
]=true;this._canVote
[a
]=(c
.canVote
)?true:false;this._showResult(null,a
);break}},_prepareVote:function(c
){this._polls
[c
].find(".jsButtonPollVote").disable();var d
=this._polls
[c
].find(".pollInnerContainer > .jsPollVote");var a
=this;this._inputElements
[c
]=d
.find("input").change(function(){a
._handleVoteButton(c
)});this._handleVoteButton(c
);var b
=d
.data("maxVotes");if(this._inputElements
[c
].filter("[type=checkbox]").length
){this._inputElements
[c
].change(function(){a
._enforceMaxVotes(c
,b
)});this._enforceMaxVotes(c
,b
)}},_enforceMaxVotes:function(c
,b
){var a
=this._inputElements
[c
];if(a
.filter(":checked").length
==b
){a
.filter(":not(:checked)").disable()}else{a
.enable()}},_handleVoteButton:function(b
){var a
=this._inputElements
[b
];var c
=this._polls
[b
].find(".jsButtonPollVote");if(a
.filter(":checked").length
){c
.enable()}else{c
.disable()}},_toggleButtons:function(c
){var a
=this._polls
[c
].children(".formSubmit");a
.find(".jsButtonPollShowParticipants, .jsButtonPollShowResult, .jsButtonPollShowVote, .jsButtonPollVote").hide();var b
=true;if(this._polls
[c
].data("inVote")){b
=false;a
.find(".jsButtonPollVote").show();if(this._canViewResult
[c
]){a
.find(".jsButtonPollShowResult").show()}}else{if(this._canVote
[c
]){b
=false;a
.find(".jsButtonPollShowVote").show()}if(this._canViewParticipants
[c
]){b
=false;a
.find(".jsButtonPollShowParticipants").show()}}if(b
){a
.hide()}},_vote:function(c
){var a
=$(c
.currentTarget
).data("pollID");if(!this._canVote
[a
]){return}var b
=[];this._inputElements
[a
].each(function(e
,d
){var f
=$(d
);if(f
.is(":checked")){b
.push(f
.data("optionID"))}});if(b
.length
){this._proxy
.setOption("data",{actionName
:"vote",optionIDs
:b
,pollID
:a
});this._proxy
.sendRequest()}}});
68 // WCF.Search.Message.js
69 WCF
.Search
.Message
={};WCF
.Search
.Message
.KeywordList
=WCF
.Search
.Base
.extend({_className
:"wcf\\data\\search\\keyword\\SearchKeywordAction",_divider
:null,_forceSubmit
:false,init:function(c
,e
,b
){if(!$.isFunction(e
)){console
.debug("[WCF.Search.Message.KeywordList] The given callback is invalid, aborting.");return}this._callback
=e
;this._excludedSearchValues
=[];if(b
){this._excludedSearchValues
=b
}this._searchInput
=$(c
).keyup($.proxy(this._keyUp
,this)).keydown($.proxy(function(f
){if(f
.which
===13){if(this._itemCount
&&this._itemIndex
!==-1){f
.preventDefault()}}},this));var a
=WCF
.Dropdown
.getDropdownMenu(this._searchInput
.parents(".dropdown").wcfIdentify());var d
=a
.find("li.dropdownDivider").last();this._divider
=$('<li class="dropdownDivider" />').hide().insertBefore(d
);this._list
=$('<li class="dropdownList"><ul /></li>').hide().insertBefore(d
).children("ul");a
.find("input, label").on("click",function(f
){f
.stopPropagation()});this._proxy
=new WCF
.Action
.Proxy({showLoadingOverlay
:false,success
:$.proxy(this._success
,this)})},_createListItem:function(a
){this._divider
.show();this._list
.parent().show();this._super(a
)},_clearList:function(a
){if(a
){this._searchInput
.val("")}this._divider
.hide();this._list
.empty().parent().hide();WCF
.CloseOverlayHandler
.removeCallback("WCF.Search.Base");this._itemCount
=0;this._itemIndex
=-1}});WCF
.Search
.Message
.SearchArea
=Class
.extend({_searchArea
:null,init:function(d
){this._searchArea
=d
;var a
=new WCF
.Search
.Message
.KeywordList(this._searchArea
.find("input[type=search]"),$.proxy(this._callback
,this));a
.setDelay(500);var c
=this;var f
=this._searchArea
.find("input[type=search]");this._searchArea
.click(function(g
){if(g
.target
==c
._searchArea
[0]){f
.focus().trigger("click");return false}});if(this._searchArea
.hasClass("dropdown")){var e
=this._searchArea
.wcfIdentify();var b
=this._searchArea
.find("form");b
.submit(function(){var g
=WCF
.Dropdown
.getDropdownMenu(e
);g
.find("input[type=hidden]").appendTo(b
);g
.find("input[type=checkbox]:checked").each(function(i
,h
){var j
=$(h
);$('<input type="hidden" name="'+j
.attr("name")+'" value="'+j
.attr("value")+'" />').appendTo(b
)})})}},_callback:function(a
){this._searchArea
.find("input[type=search]").val(a
.label
);this._searchArea
.find("input[type=search]").focus();return false}});
72 WCF
.Tagging
={};WCF
.Tagging
.TagList
=WCF
.EditableItemList
.extend({_className
:"wcf\\data\\tag\\TagAction",_maxLength
:0,init:function(c
,a
,b
){this._allowCustomInput
=true;this._maxLength
=b
;this._super(c
,a
);this._data
=[];this._search
=new WCF
.Tagging
.TagSearch(this._searchInput
,$.proxy(this.addItem
,this));this._itemList
.addClass("tagList");$(c
).data("__api",this)},_keyDown:function(b
){if(this._super(b
)){if(b
===null){return true}var a
=b
.which
;if(a
===8||a
===27||a
===13||a
===46){return true}else{if(a
>36&&a
<41){return true}}if(this._searchInput
.val().length
>=this._maxLength
){return false}return true}return false},_submit:function(){this._super();for(var b
=0,a
=this._data
.length
;b
<a
;b
++){if(this._data
[b
]){$('<input type="hidden" name="tags[]" />').val(this._data
[b
]).appendTo(this._form
)}}},addItem:function(b
){if(!b
.objectID
&&b
.label
.length
>this._maxLength
){b
.label
=b
.label
.substr(0,this._maxLength
)}var a
=this._super(b
);$(this._itemList
).find(".badge:not(tag)").addClass("tag");return a
},_addItem:function(b
,a
){this._data
.push(a
)},clearList:function(){this._super();this._data
=[]},getTags:function(){return this._data
},_removeItem:function(d
,a
){for(var c
=0,b
=this._data
.length
;c
<b
;c
++){if(this._data
[c
]===a
){this._data
.splice(c
,1);return}}},load:function(a
){if(a
&&a
.length
){for(var c
=0,b
=a
.length
;c
<b
;c
++){this.addItem({objectID
:0,label
:WCF
.String
.unescapeHTML(a
[c
])})}}}});WCF
.Tagging
.TagSearch
=WCF
.Search
.Base
.extend({_className
:"wcf\\data\\tag\\TagAction",init:function(b
,d
,a
,c
){this._super(b
,d
,a
,c
,false)}});
75 WCF
.User
.Login
=Class
.extend({_loginSubmitButton
:null,_password
:null,_passwordContainer
:null,_useCookies
:null,_useCookiesContainer
:null,init:function(b
){this._loginSubmitButton
=$("#loginSubmitButton");this._password
=$("#password"),this._passwordContainer
=this._password
.parents("dl");this._useCookies
=$("#useCookies");this._useCookiesContainer
=this._useCookies
.parents("dl");var a
=$("#loginForm");a
.find("input[name=action]").change($.proxy(this._change
,this));if(b
){WCF
.User
.QuickLogin
.init()}},_change:function(a
){if($(a
.currentTarget
).val()==="register"){this._setState(false,WCF
.Language
.get("wcf.user.button.register"))}else{this._setState(true,WCF
.Language
.get("wcf.user.button.login"))}},_setState:function(b
,a
){if(b
){this._password
.enable();this._passwordContainer
.removeClass("disabled");this._useCookies
.enable();this._useCookiesContainer
.removeClass("disabled")}else{this._password
.disable();this._passwordContainer
.addClass("disabled");this._useCookies
.disable();this._useCookiesContainer
.addClass("disabled")}this._loginSubmitButton
.val(a
)}});WCF
.User
.QuickLogin
={_dialog
:null,_loginMessage
:null,init:function(){$(".loginLink").click($.proxy(this._render
,this));$("#loginForm input[name=url]").val(function(a
,b
){return window
.location
.protocol
+"//"+window
.location
.host
+b
})},show:function(a
){if(a
){if(this._loginMessage
===null){this._loginMessage
=$('<p class="info" />').hide().prependTo($("#loginForm > form"))}this._loginMessage
.show().text(a
)}else{if(this._loginMessage
!==null){this._loginMessage
.hide()}}this._render()},_render:function(a
){if(a
!==undefined){a
.preventDefault()}if(this._dialog
===null){this._dialog
=$("#loginForm").wcfDialog({title
:WCF
.Language
.get("wcf.user.login")});this._dialog
.find("#username").focus()}else{this._dialog
.wcfDialog("open")}}};WCF
.User
.Profile
={};WCF
.User
.Profile
.ActivityPointList
={_cache
:{},_dialog
:null,_didInit
:false,_proxy
:null,init:function(){if(this._didInit
){return}this._cache
={};this._dialog
=null;this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)});this._init();WCF
.DOMNodeInsertedHandler
.addCallback("WCF.User.Profile.ActivityPointList",$.proxy(this._init
,this));this._didInit
=true},_init:function(){$(".activityPointsDisplay").removeClass("activityPointsDisplay").click($.proxy(this._click
,this))},_click:function(b
){var a
=$(b
.currentTarget
).data("userID");if(this._cache
[a
]===undefined){this._proxy
.setOption("data",{actionName
:"getDetailedActivityPointList",className
:"wcf\\data\\user\\UserProfileAction",objectIDs
:[a
]});this._proxy
.sendRequest()}else{this._show(a
)}},_show:function(a
){if(this._dialog
===null){this._dialog
=$("<div>"+this._cache
[a
]+"</div>").hide().appendTo(document
.body
);this._dialog
.wcfDialog({title
:WCF
.Language
.get("wcf.user.activityPoint")})}else{this._dialog
.html(this._cache
[a
]);this._dialog
.wcfDialog("open")}},_success:function(b
,c
,a
){this._cache
[b
.returnValues
.userID
]=b
.returnValues
.template
;this._show(b
.returnValues
.userID
)}};WCF
.User
.Profile
.Follow
=Class
.extend({_button
:null,_following
:false,_proxy
:null,_userID
:0,init:function(a
,b
){this._following
=b
;this._userID
=a
;this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)});this._createButton();this._showButton()},_createButton:function(){this._button
=$('<li id="followUser"><a class="button jsTooltip" title="'+WCF
.Language
.get("wcf.user.button."+(this._following
?"un":"")+"follow")+'"><span class="icon icon16 icon-plus"></span> <span class="invisible">'+WCF
.Language
.get("wcf.user.button."+(this._following
?"un":"")+"follow")+"</span></a></li>").prependTo($("#profileButtonContainer"));this._button
.click($.proxy(this._execute
,this))},_execute:function(){var a
=(this._following
)?"unfollow":"follow";this._proxy
.setOption("data",{actionName
:a
,className
:"wcf\\data\\user\\follow\\UserFollowAction",parameters
:{data
:{userID
:this._userID
}}});this._proxy
.sendRequest()},_showButton:function(){if(this._following
){this._button
.find(".button").data("tooltip",WCF
.Language
.get("wcf.user.button.unfollow")).addClass("active").children(".icon").removeClass("icon-plus").addClass("icon-minus")}else{this._button
.find(".button").data("tooltip",WCF
.Language
.get("wcf.user.button.follow")).removeClass("active").children(".icon").removeClass("icon-minus").addClass("icon-plus")}},_success:function(b
,d
,a
){this._following
=b
.returnValues
.following
;this._showButton();var c
=new WCF
.System
.Notification();c
.show()}});WCF
.User
.Profile
.IgnoreUser
=Class
.extend({_button
:null,_isIgnoredUser
:false,_proxy
:null,_userID
:0,init:function(b
,a
){this._userID
=b
;this._isIgnoredUser
=a
;this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)});this._updateButton();this._button
.click($.proxy(this._click
,this))},_click:function(){var a
=(this._isIgnoredUser
)?"unignore":"ignore";this._proxy
.setOption("data",{actionName
:a
,className
:"wcf\\data\\user\\ignore\\UserIgnoreAction",parameters
:{data
:{ignoreUserID
:this._userID
}}});this._proxy
.sendRequest()},_success:function(b
,d
,a
){this._isIgnoredUser
=b
.returnValues
.isIgnoredUser
;this._updateButton();var c
=new WCF
.System
.Notification();c
.show()},_updateButton:function(){if(this._button
===null){this._button
=$('<li id="ignoreUser"><a class="button jsTooltip" title="'+WCF
.Language
.get("wcf.user.button."+(this._isIgnoredUser
?"un":"")+"ignore")+'"><span class="icon icon16 icon-ban-circle"></span> <span class="invisible">'+WCF
.Language
.get("wcf.user.button."+(this._isIgnoredUser
?"un":"")+"ignore")+"</span></a></li>").prependTo($("#profileButtonContainer"))}this._button
.find(".button").data("tooltip",WCF
.Language
.get("wcf.user.button."+(this._isIgnoredUser
?"un":"")+"ignore"));if(this._isIgnoredUser
){this._button
.find(".button").addClass("active").children(".icon").removeClass("icon-ban-circle").addClass("icon-circle-blank")}else{this._button
.find(".button").removeClass("active").children(".icon").removeClass("icon-circle-blank").addClass("icon-ban-circle")}}});WCF
.User
.Profile
.TabMenu
=Class
.extend({_hasContent
:{},_profileContent
:null,_proxy
:null,_userID
:0,init:function(a
){this._profileContent
=$("#profileContent");this._userID
=a
;var c
=this._profileContent
.data("active");var b
=false;this._profileContent
.find("div.tabMenuContent").each($.proxy(function(e
,d
){var f
=$(d
).wcfIdentify();if(c
===f
){this._hasContent
[f
]=true}else{this._hasContent
[f
]=false;b
=true}},this));if(b
){this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)});this._profileContent
.bind("wcftabsbeforeactivate",$.proxy(this._loadContent
,this))}},_loadContent:function(b
,c
){var d
=$(c
.newPanel
);var a
=d
.attr("id");if(!this._hasContent
[a
]){this._proxy
.setOption("data",{actionName
:"getContent",className
:"wcf\\data\\user\\profile\\menu\\item\\UserProfileMenuItemAction",parameters
:{data
:{containerID
:a
,menuItem
:d
.data("menuItem"),userID
:this._userID
}}});this._proxy
.sendRequest()}},_success:function(d
,e
,c
){var b
=d
.returnValues
.containerID
;this._hasContent
[b
]=true;var a
=this._profileContent
.find("#"+b
);$("<div>"+d
.returnValues
.template
+"</div>").hide().appendTo(a
);a
.children("div").wcfBlindIn()}});WCF
.User
.Profile
.Editor
=Class
.extend({_actionName
:"",_buttons
:{},_cachedTemplate
:"",_proxy
:null,_tab
:null,_userID
:0,init:function(a
,b
){this._actionName
="";this._cachedTemplate
="";this._tab
=$("#about");this._userID
=a
;this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)});this._initButtons();if(b
){this._beginEdit()}},_initButtons:function(){var a
=$("#profileButtonContainer");this._buttons
={beginEdit
:$('<li><a class="button"><span class="icon icon16 icon-pencil" /> <span>'+WCF
.Language
.get("wcf.user.editProfile")+"</span></a></li>").click($.proxy(this._beginEdit
,this)).appendTo(a
)}},_beginEdit:function(){this._actionName
="beginEdit";this._buttons
.beginEdit
.hide();$("#profileContent").wcfTabs("select","about");this._proxy
.setOption("data",{actionName
:"beginEdit",className
:"wcf\\data\\user\\UserProfileAction",objectIDs
:[this._userID
]});this._proxy
.sendRequest()},_save:function(){this._actionName
="save";var b
=/values\[([a-zA-Z0-9._-]+)\]/;var a
={};this._tab
.find("input, textarea, select").each(function(e
,f
){var d
=$(f
);if(d
.getTagName()==="input"){var c
=d
.attr("type");if((c
==="radio"||c
==="checkbox")&&!d
.prop("checked")){return}}var g
=d
.attr("name");if(b
.test(g
)){a
[RegExp
.$1]=d
.val()}});this._proxy
.setOption("data",{actionName
:"save",className
:"wcf\\data\\user\\UserProfileAction",objectIDs
:[this._userID
],parameters
:{values
:a
}});this._proxy
.sendRequest()},_restore:function(){this._actionName
="restore";this._buttons
.beginEdit
.show();this._destroyCKEditor();this._tab
.html(this._cachedTemplate
).children().css({height
:"auto"})},_success:function(b
,c
,a
){switch(this._actionName
){case"beginEdit":this._prepareEdit(b
);break;case"save":if(b
.returnValues
.success
){this._cachedTemplate
=b
.returnValues
.template
;this._restore()}else{this._prepareEdit(b
,true)}break}},_prepareEdit:function(b
,c
){this._destroyCKEditor();var a
=this;this._tab
.html(function(e
,d
){if(c
!==true){a
._cachedTemplate
=d
}return b
.returnValues
.template
});this._tab
.find("input[type=text]").attr("autocomplete","off");this._tab
.find(".formSubmit > button[data-type=save]").click($.proxy(this._save
,this));this._tab
.find(".formSubmit > button[data-type=restore]").click($.proxy(this._restore
,this));this._tab
.find("input").keyup(function(d
){if(d
.which
===13){a
._save();d
.preventDefault();return false}})},_destroyCKEditor:function(){this._tab
.find("textarea + .cke").each(function(c
,b
){var a
=$(b
).attr("id").replace(/cke_/,"");if(CKEDITOR
.instances
[a
]){CKEDITOR
.instances
[a
].destroy()}})}});WCF
.User
.Registration
={};WCF
.User
.Registration
.Validation
=Class
.extend({_actionName
:"",_className
:"",_confirmElement
:null,_element
:null,_errorMessages
:{},_options
:{},_proxy
:null,init:function(b
,c
,a
){this._element
=b
;this._element
.blur($.proxy(this._blur
,this));this._confirmElement
=c
||null;if(this._confirmElement
!==null){this._confirmElement
.blur($.proxy(this._blurConfirm
,this))}a
=a
||{};this._setOptions(a
);this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this),showLoadingOverlay
:false});this._setErrorMessages()},_setOptions:function(a
){},_setErrorMessages:function(){this._errorMessages
={ajaxError
:"",notEqual
:""}},_blur:function(b
){var a
=this._element
.val();if(!a
){return this._showError(this._element
,WCF
.Language
.get("wcf.global.form.error.empty"))}if(this._confirmElement
!==null){var c
=this._confirmElement
.val();if(c
!=""&&a
!=c
){return this._showError(this._confirmElement
,this._errorMessages
.notEqual
)}}if(!this._validateOptions()){return}this._proxy
.setOption("data",{actionName
:this._actionName
,className
:this._className
,parameters
:this._getParameters()});this._proxy
.sendRequest()},_getParameters:function(){return{}},_validateOptions:function(){return true},_blurConfirm:function(b
){var a
=this._confirmElement
.val();if(!a
){return this._showError(this._confirmElement
,WCF
.Language
.get("wcf.global.form.error.empty"))}this._blur(b
)},_success:function(b
,c
,a
){if(b
.returnValues
.isValid
){this._showSuccess(this._element
);if(this._confirmElement
!==null&&this._confirmElement
.val()){this._showSuccess(this._confirmElement
)}}else{this._showError(this._element
,WCF
.Language
.get(this._errorMessages
.ajaxError
+b
.returnValues
.error
))}},_showError:function(a
,b
){a
.parent().parent().addClass("formError").removeClass("formSuccess");var c
=a
.parent().find("small.innerError");if(!c
.length
){c
=$("<small />").addClass("innerError").insertAfter(a
)}c
.text(b
)},_showSuccess:function(a
){a
.parent().parent().addClass("formSuccess").removeClass("formError");a
.next("small.innerError").remove()}});WCF
.User
.Registration
.Validation
.Username
=WCF
.User
.Registration
.Validation
.extend({_actionName
:"validateUsername",_className
:"wcf\\data\\user\\UserRegistrationAction",_setOptions:function(a
){this._options
=$.extend(true,{minlength
:3,maxlength
:25},a
)},_setErrorMessages:function(){this._errorMessages
={ajaxError
:"wcf.user.username.error."}},_validateOptions:function(){var a
=this._element
.val();if(a
.length
<this._options
.minlength
||a
.length
>this._options
.maxlength
){this._showError(this._element
,WCF
.Language
.get("wcf.user.username.error.notValid"));return false}return true},_getParameters:function(){return{username
:this._element
.val()}}});WCF
.User
.Registration
.Validation
.EmailAddress
=WCF
.User
.Registration
.Validation
.extend({_actionName
:"validateEmailAddress",_className
:"wcf\\data\\user\\UserRegistrationAction",_getParameters:function(){return{email
:this._element
.val()}},_setErrorMessages:function(){this._errorMessages
={ajaxError
:"wcf.user.email.error.",notEqual
:WCF
.Language
.get("wcf.user.confirmEmail.error.notEqual")}}});WCF
.User
.Registration
.Validation
.Password
=WCF
.User
.Registration
.Validation
.extend({_actionName
:"validatePassword",_className
:"wcf\\data\\user\\UserRegistrationAction",_getParameters:function(){return{password
:this._element
.val()}},_setErrorMessages:function(){this._errorMessages
={ajaxError
:"wcf.user.password.error.",notEqual
:WCF
.Language
.get("wcf.user.confirmPassword.error.notEqual")}}});WCF
.User
.Registration
.LostPassword
=Class
.extend({_email
:null,_username
:null,init:function(){this._email
=$("#emailInput");this._username
=$("#usernameInput");this._email
.keyup($.proxy(this._checkEmail
,this));this._username
.keyup($.proxy(this._checkUsername
,this));if($.browser
.mozilla
&&$.browser
.touch
){this._email
.on("input",$.proxy(this._checkEmail
,this));this._username
.on("input",$.proxy(this._checkUsername
,this))}this._checkEmail();this._checkUsername()},_checkEmail:function(){if(this._email
.val()==""){this._username
.enable();this._username
.parents("dl:eq(0)").removeClass("disabled")}else{this._username
.disable();this._username
.parents("dl:eq(0)").addClass("disabled")}},_checkUsername:function(){if(this._username
.val()==""){this._email
.enable();this._email
.parents("dl:eq(0)").removeClass("disabled")}else{this._email
.disable();this._email
.parents("dl:eq(0)").addClass("disabled")}}});WCF
.Notification
={};WCF
.Notification
.UserPanel
=WCF
.UserPanel
.extend({_proxy
:null,_showAllLink
:"",init:function(a
){this._noItems
="wcf.user.notification.noMoreNotifications";this._proxy
=new WCF
.Action
.Proxy({success
:$.proxy(this._success
,this)});this._showAllLink
=a
;this._super("userNotifications");if(this._container
.data("count")){document
.title
="("+this._container
.data("count")+") "+document
.title
}},_addDefaultItems:function(a
){this._addDivider(a
);if(this._container
.data("count")){$('<li><a href="'+this._showAllLink
+'">'+WCF
.Language
.get("wcf.user.notification.showAll")+"</a></li>").appendTo(a
);this._addDivider(a
)}$('<li id="userNotificationsMarkAllAsConfirmed"><a>'+WCF
.Language
.get("wcf.user.notification.markAllAsConfirmed")+"</a></li>").click($.proxy(this._markAllAsConfirmed
,this)).appendTo(a
)},_getParameters:function(){return{actionName
:"getOutstandingNotifications",className
:"wcf\\data\\user\\notification\\UserNotificationAction"}},_after:function(a
){WCF
.Dropdown
.getDropdownMenu(this._container
.wcfIdentify()).children("li.jsNotificationItem").click($.proxy(this._markAsConfirmed
,this))},_markAsConfirmed:function(a
){this._proxy
.setOption("data",{actionName
:"markAsConfirmed",className
:"wcf\\data\\user\\notification\\UserNotificationAction",parameters
:{notificationID
:$(a
.currentTarget
).data("notificationID")}});this._proxy
.sendRequest()},_markAllAsConfirmed:function(){WCF
.System
.Confirmation
.show(WCF
.Language
.get("wcf.user.notification.markAllAsConfirmed.confirmMessage"),$.proxy(function(a
){if(a
==="confirm"){this._proxy
.setOption("data",{actionName
:"markAllAsConfirmed",className
:"wcf\\data\\user\\notification\\UserNotificationAction"});this._proxy
.sendRequest()}},this))},_success:function(b
,c
,a
){switch(b
.actionName
){case"markAllAsConfirmed":$(".jsNotificationItem").remove();document
.title
=document
.title
.replace(/^\(([0-9]+)\) /,"");case"getOutstandingNotifications":if(!b.returnValues||!b.returnValues.template){$("#userNotificationsMarkAllAsConfirmed").prev(".dropdownDivider").remove();$("#userNotificationsMarkAllAsConfirmed").remove()}this._super(b,c,a);break;case"markAsConfirmed":WCF.Dropdown.getDropdownMenu(this._container.wcfIdentify()).children("li.jsNotificationItem").each(function(e,f){var d=$(f);if(b.returnValues.notificationID==d.data("notificationID")){window.location=d.data("link");return false}});break}}});WCF.Notification.List=Class.extend({_badge:null,_items:{},_proxy:null,init:function(){var a=$("li.jsNotificationItem");if(!a.length){return}a.each($.proxy(function(c,b){var d=$(b);this._items[d.data("notificationID")]=d;d.find(".jsMarkAsConfirmed").data("notificationID",d.data("notificationID")).click($.proxy(this._click,this));d.find("p").html(function(f,e){return"<a>"+e+"</a>"}).children("a
").data("notificationID
",d.data("notificationID
")).click($.proxy(this._clickLink,this))},this));this._badge=$(".jsNotificationsBadge
:eq(0)");this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$(".contentNavigation
.jsMarkAllAsConfirmed
").click($.proxy(this._markAllAsConfirmed,this))},_clickLink:function(a){this._items[$(a.currentTarget).data("notificationID
")].data("redirect
",true);this._click(a)},_click:function(a){this._proxy.setOption("data
",{actionName:"markAsConfirmed
",className:"wcf
\\data
\\user
\\notification
\\UserNotificationAction
",parameters:{notificationID:$(a.currentTarget).data("notificationID
")}});this._proxy.sendRequest()},_markAllAsConfirmed:function(){WCF.System.Confirmation.show(WCF.Language.get("wcf
.user
.notification
.markAllAsConfirmed
.confirmMessage
"),$.proxy(function(a){if(a==="confirm
"){this._proxy.setOption("data
",{actionName:"markAllAsConfirmed
",className:"wcf
\\data
\\user
\\notification
\\UserNotificationAction
"});this._proxy.sendRequest()}},this))},_success:function(c,d,b){switch(c.actionName){case"markAllAsConfirmed
":window.location.reload();break;case"markAsConfirmed
":var a=this._items[c.returnValues.notificationID];if(a.data("redirect
")){window.location=a.data("link
");return}this._items[c.returnValues.notificationID].remove();delete this._items[c.returnValues.notificationID];this._badge.html(c.returnValues.totalCount);document.title=document.title.replace(/^\(([0-9]+)\) /,"");if(c.returnValues.totalCount>0){document.title="("+c.returnValues.totalCount+") "+document.title}break}}});WCF.User.SignaturePreview=WCF.Message.Preview.extend({_handleResponse:function(b){var a=$("#previewContainer
");if(!a.length){a=$('<fieldset id="previewContainer
"><legend>'+WCF.Language.get("wcf
.global
.preview
")+"</legend><div></div></fieldset>").insertBefore($("#signatureContainer")).wcfFadeIn()}a.children("div").first().html(b.returnValues.message)}});WCF.User.RecentActivityLoader=Class.extend({_container:null,_filteredByFollowedUsers:false,_loadButton:null,_proxy:null,_userID:0,init:function(b,a){this._container=$("#recentActivities");this._filteredByFollowedUsers=(a===true);this._userID=b;if(this._userID!==null&&!this._userID){console.debug("[WCF.User.RecentActivityLoader] Invalid parameter 'userID' given.");return}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._loadButton=$('<li class="recentActivitiesMore"><button class="small">'+WCF.Language.get("wcf.user.recentActivity.more")+"</button
></li>").appendTo(this._container);this._loadButton=this._loadButton.children("button").click($.proxy(this._click,this))},_click:function(){this._loadButton.enable();var a={lastEventTime:this._container.data("lastEventTime")};if(this._userID){a.userID=this._userID}else{if(this._filteredByFollowedUsers){a.filteredByFollowedUsers=1}}this._proxy.setOption("data",{actionName:"load",className:"wcf\\data\\user\\activity\\event\\UserActivityEventAction",parameters:a});this._proxy.sendRequest()},_success:function(b,c,a){if(b.returnValues.template){$(b.returnValues.template).insertBefore(this._loadButton.parent());this._container.data("lastEventTime",b.returnValues.lastEventTime);this._loadButton.enable()}else{$("<small>"+WCF.Language.get("wcf.user.recentActivity.noMoreEntries")+"</small>").appendTo(this._loadButton.parent());this._loadButton.remove()}}});WCF.User.ProfilePreview=WCF.Popover.extend({_proxy:null,_userProfiles:{},init:function(){this._super(".userLink
");this._proxy=new WCF.Action.Proxy({showLoadingOverlay:false})},_loadContent:function(){var a=$("#"+this._activeElementID);var c=a.data("userID
");if(this._userProfiles[c]){this._insertContent(this._activeElementID,this._userProfiles[c],true)}else{this._proxy.setOption("data
",{actionName:"getUserProfile
",className:"wcf
\\data
\\user
\\UserProfileAction
",objectIDs:[c]});var d=this._activeElementID;var b=this;this._proxy.setOption("success
",function(f,g,e){b._userProfiles[c]=f.returnValues.template;b._insertContent(d,f.returnValues.template,true)});this._proxy.setOption("failure
",function(f,e,h,g){b._userProfiles[c]=f.message;b._insertContent(d,f.message,true);return false});this._proxy.sendRequest()}}});WCF.User.Action={};WCF.User.Action.Follow=Class.extend({_containerList:null,_followButtonSelector:".jsFollowButton
",_userID:0,init:function(b,a){if(!b.length){return}this._containerList=b;if(a){this._followButtonSelector=a}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._containerList.each($.proxy(function(d,c){$(c).find(this._followButtonSelector).click($.proxy(this._click,this))},this))},_click:function(b){var a=$(b.target);if(!a.is("a
")){a=a.closest("a
")}this._userID=a.data("objectID
");this._proxy.setOption("data
",{actionName:a.data("following
")?"unfollow
":"follow
",className:"wcf
\\data
\\user
\\follow
\\UserFollowAction
",parameters:{data:{userID:this._userID}}});this._proxy.sendRequest()},_success:function(b,d,a){this._containerList.each($.proxy(function(f,e){var g=$(e).find(this._followButtonSelector).get(0);if(g&&$(g).data("objectID
")==this._userID){g=$(g);if(b.returnValues.following){g.data("tooltip
",WCF.Language.get("wcf
.user
.button
.unfollow
")).children(".icon
").removeClass("icon
-plus
").addClass("icon
-minus
")}else{g.data("tooltip
",WCF.Language.get("wcf
.user
.button
.follow
")).children(".icon
").removeClass("icon
-minus
").addClass("icon
-plus
")}g.data("following
",b.returnValues.following);return false}},this));var c=new WCF.System.Notification();c.show()}});WCF.User.Action.Ignore=Class.extend({_containerList:null,_ignoreButtonSelector:".jsIgnoreButton
",_userID:0,init:function(a,b){if(!a.length){return}this._containerList=a;if(b){this._ignoreButtonSelector=b}this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});this._containerList.each($.proxy(function(d,c){$(c).find(this._ignoreButtonSelector).click($.proxy(this._click,this))},this))},_click:function(b){var a=$(b.target);if(!a.is("a
")){a=a.closest("a
")}this._userID=a.data("objectID
");this._proxy.setOption("data
",{actionName:a.data("ignored
")?"unignore
":"ignore
",className:"wcf
\\data
\\user
\\ignore
\\UserIgnoreAction
",parameters:{data:{ignoreUserID:this._userID}}});this._proxy.sendRequest()},_success:function(b,d,a){this._containerList.each($.proxy(function(f,e){var g=$(e).find(this._ignoreButtonSelector).get(0);if(g&&$(g).data("objectID
")==this._userID){g=$(g);if(b.returnValues.isIgnoredUser){g.data("tooltip
",WCF.Language.get("wcf
.user
.button
.unignore
")).children(".icon
").removeClass("icon
-ban
-circle
").addClass("icon
-circle
-blank
")}else{g.data("tooltip
",WCF.Language.get("wcf
.user
.button
.ignore
")).children(".icon
").removeClass("icon
-circle
-blank
").addClass("icon
-ban
-circle
")}g.data("ignored
",b.returnValues.isIgnoredUser);return false}},this));var c=new WCF.System.Notification();c.show()}});WCF.User.Avatar={};WCF.User.Avatar.Crop=Class.extend({_cropX:0,_cropY:0,_dialog:null,_proxy:null,MAX_THUMBNAIL_SIZE:128,init:function(a){this._avatarID=a;if(this._dialog){this.destroy()}this._dialog=null;if(!this._proxy){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)})}$(".userAvatarCrop
").click($.proxy(this._showCropDialog,this))},destroy:function(){this._dialog.remove()},_crop:function(a){this._proxy.setOption("data
",{actionName:"cropAvatar
",className:"wcf
\\data
\\user
\\avatar
\\UserAvatarAction
",objectIDs:[this._avatarID],parameters:{cropX:this._cropX,cropY:this._cropY}});this._proxy.sendRequest()},_getCropDialog:function(b){if(!this._dialog){this._dialog=$("<div
/>").hide().appendTo(document.body);this._dialog.wcfDialog({title:WCF.Language.get("wcf.user.avatar.type.custom.crop")})}this._dialog.html(b.returnValues.template);this._dialog.find('button[data-type="save"]').click($.proxy(this._crop,this));this._cropX=b.returnValues.cropX;this._cropY=b.returnValues.cropY;var a=$("#userAvatarCropSelection > img");$("#userAvatarCropSelection").css({height:a.height()+"px",width:a.width()+"px"});$("#userAvatarCropOverlaySelection").css({"background-image":"url("+a.attr("src")+")","background-position":-this._cropX+"px "+-this._cropY+"px",left:this._cropX+"px",top:this._cropY+"px"}).draggable({containment:"parent",drag:$.proxy(this._updateSelection,this),stop:$.proxy(this._updateSelection,this)});this._dialog.find('button[data-type="save"]').click($.proxy(this._save,this));this._dialog.wcfDialog("render")},_showCropDialog:function(){if(!this._dialog){this._proxy.setOption("data",{actionName:"getCropDialog",className:"wcf\\data\\user\\avatar\\UserAvatarAction",objectIDs:[this._avatarID]});this._proxy.sendRequest()}else{this._dialog.wcfDialog("open")}},_success:function(b,d,a){switch(b.actionName){case"getCropDialog":this._getCropDialog(b);break;case"cropAvatar":$("#avatarUpload > dt > img").replaceWith($('<img src="'+b.returnValues.url+'" alt="" class="userAvatarCrop jsTooltip" title="'+WCF.Language.get("wcf.user.avatar.type.custom.crop")+'" />').css({width:"96px",height:"96px"}).click($.proxy(this._showCropDialog,this)));WCF.DOMNodeInsertedHandler.execute();this._dialog.wcfDialog("close");var c=new WCF.System.Notification();c.show();break}},_updateSelection:function(a,b){this._cropX=b.position.left;this._cropY=b.position.top;$("#userAvatarCropOverlaySelection").css({"background-position":-b.position.left+"px "+-b.position.top+"px"})}});WCF.User.Avatar.Upload=WCF.Upload.extend({_avatarCrop:null,_userID:0,init:function(b,a){this._super($("#avatarUpload > dd > div"),undefined,"wcf\\data\\user\\avatar\\UserAvatarAction");this._userID=b||0;this._avatarCrop=a;$("#avatarForm input[type=radio]").change(function(){if($(this).val()=="custom"){$("#avatarUpload > dd > div").show()}else{$("#avatarUpload > dd > div").hide()}});if(!$("#avatarForm input[type=radio][value=custom]:checked").length){$("#avatarUpload > dd > div").hide()}},_initFile:function(a){return $("#avatarUpload > dt > img")},_success:function(c,a){if(a.returnValues.url){this._updateImage(a.returnValues.url,a.returnValues.canCrop);if(a.returnValues.canCrop){if(!this._avatarCrop){this._avatarCrop=new WCF.User.Avatar.Crop(a.returnValues.avatarID)}else{this._avatarCrop.init(a.returnValues.avatarID)}}else{if(this._avatarCrop){this._avatarCrop.destroy();this._avatarCrop=null}}$("#avatarUpload > dd > .innerError").remove();var b=new WCF.System.Notification(WCF.Language.get("wcf.user.avatar.upload.success"));b.show()}else{if(a.returnValues.errorType){this._getInnerErrorElement().text(WCF.Language.get("wcf.user.avatar.upload.error."+a.returnValues.errorType))}}},_updateImage:function(b,a){$("#avatarUpload > dt > img").remove();var c=$('<img src
="'+b+'" alt
="" />').css({height:"auto","max-height":"96px","max-width":"96px",width:"auto"});if(a){c.addClass("userAvatarCrop").addClass("jsTooltip");c.attr("title",WCF.Language.get("wcf.user.avatar.type.custom.crop"))}$("#avatarUpload > dt").prepend(c);WCF.DOMNodeInsertedHandler.execute()},_getInnerErrorElement:function(){var a=$("#avatarUpload > dd > .innerError");if(!a.length){a=$('<small class="innerError"></span>');$("#avatarUpload > dd").append(a)}return a},_getParameters:function(){return{userID:this._userID}},});WCF.User.List=Class.extend({_additionalParameters:{},_cache:{},_className:"",_dialog:null,_dialogTitle:"",_pageCount:0,_pageNo:1,_proxy:null,init:function(c,a,b){this._additionalParameters=b||{};this._cache={};this._className=c;this._dialog=null;this._dialogTitle=a;this._pageCount=0;this._pageNo=1;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)})},open:function(){this._pageNo=1;this._showPage()},_showPage:function(b,c){if(c&&c.activePage){this._pageNo=c.activePage}if(this._pageCount!=0&&(this._pageNo<1||this._pageNo>this._pageCount)){console.debug("[WCF.User.List] Cannot access page "+this._pageNo+" of "+this._pageCount);return}if(this._cache[this._pageNo]){var a=false;if(this._dialog===null){this._dialog=$('<div id
="userList'+this._className.hashCode()+'" />').hide().appendTo(document.body);a=true}this._dialog.empty();this._dialog.html(this._cache[this._pageNo]);if(this._pageCount>1){this._dialog.find(".jsPagination").wcfPages({activePage:this._pageNo,maxPage:this._pageCount}).bind("wcfpagesswitched",$.proxy(this._showPage,this))}if(a){this._dialog.wcfDialog({title:this._dialogTitle})}else{this._dialog.wcfDialog("open").wcfDialog("render")}}else{this._additionalParameters.pageNo=this._pageNo;this._proxy.setOption("data",{actionName:"getGroupedUserList",className:this._className,interfaceName:"wcf\\data\\IGroupedUserListAction",parameters:this._additionalParameters});this._proxy.sendRequest()}},_success:function(b,c,a){if(b.returnValues.pageCount){this._pageCount=b.returnValues.pageCount}this._cache[this._pageNo]=b.returnValues.template;this._showPage()}});WCF.User.ObjectWatch={};WCF.User.ObjectWatch.Subscribe=Class.extend({_buttonSelector:".jsSubscribeButton",_buttons:{},_dialog:null,_notification:null,init:function(){this._buttons={};this._notification=null;this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});$(this._buttonSelector).each($.proxy(function(a,b){var d=$(b);var c=d.data("objectID");this._buttons[c]=d.click($.proxy(this._click,this))},this))},_click:function(a){var b=$(a.currentTarget);this._proxy.setOption("data",{actionName:"manageSubscription",className:"wcf\\data\\user\\object\\watch\\UserObjectWatchAction",parameters:{objectID:b.data("objectID"),objectType:b.data("objectType")}});this._proxy.sendRequest()},_success:function(c,e,b){if(c.actionName==="manageSubscription"){if(this._dialog===null){this._dialog=$("<div>"+c.returnValues.template+"</div>").hide().appendTo(document.body);this._dialog.wcfDialog({title:WCF.Language.get("wcf
.user
.objectWatch
.manageSubscription
")})}else{this._dialog.html(c.returnValues.template);this._dialog.wcfDialog("open
")}this._dialog.find(".formSubmit
> .jsButtonSave
").data("objectID
",c.returnValues.objectID).click($.proxy(this._save,this));var a=this._dialog.find("input
[name
=enableNotification
]").disable();this._dialog.find("input
[name
=subscribe
]").change(function(f){var g=$(f.currentTarget);if(g.val()==1){a.enable()}else{a.disable()}});var d=this._dialog.find("input
[name
=subscribe
]:checked
");if(d.length&&d.val()==1){a.enable()}}else{if(c.actionName==="saveSubscription
"&&this._dialog.is(":visible
")){this._dialog.wcfDialog("close
");if(this._notification===null){this._notification=new WCF.System.Notification(WCF.Language.get("wcf
.global
.success
.edit
"))}this._notification.show()}}},_save:function(b){var d=this._buttons[$(b.currentTarget).data("objectID
")];var c=this._dialog.find("input
[name
=subscribe
]:checked
").val();var a=(this._dialog.find("input
[name
=enableNotification
]").is(":checked
"))?1:0;this._proxy.setOption("data
",{actionName:"saveSubscription
",className:"wcf
\\data
\\user
\\object
\\watch
\\UserObjectWatchAction
",parameters:{enableNotification:a,objectID:d.data("objectID
"),objectType:d.data("objectType
"),subscribe:c}});this._proxy.sendRequest()}});WCF.User.InlineEditor=WCF.InlineEditor.extend({_permissions:{},_execute:function(b,d){if(!this._validate(b,d)){return false}var c={};var a=$("#"+b);switch(d){case"unban
":case"enableAvatar
":case"enableSignature
":switch(d){case"unban
":c.banned=0;break;case"enableAvatar
":c.disableAvatar=0;break;case"enableSignature
":c.disableSignature=0;break}this._proxy.setOption("data
",{actionName:d,className:"wcf
\\data
\\user
\\UserAction
",objectIDs:[a.data("objectID
")]});this._proxy.sendRequest();break;case"ban
":case"disableAvatar
":case"disableSignature
":if(d=="ban
"){c.banned=1}else{c[d]=1}this._showReasonDialog(a.data("objectID
"),d);break;case"advanced
":window.location=this._getTriggerElement(a).attr("href
");break}if($.getLength(c)){this._updateData.push({data:c,elementID:b,})}},_executeReasonAction:function(a,b,d){var c={};c[b+WCF.String.ucfirst("reason
")]=d;this._proxy.setOption("data
",{actionName:b,className:"wcf
\\data
\\user
\\UserAction
",objectIDs:[a],parameters:c});this._proxy.sendRequest()},_getPermission:function(a){if(this._permissions[a]){return this._permissions[a]}return 0},_getTriggerElement:function(a){return a.find(".jsUserInlineEditor
")},_setOptions:function(){this._options=[{label:WCF.Language.get("wcf
.user
.ban
"),optionName:"ban
"},{label:WCF.Language.get("wcf
.user
.unban
"),optionName:"unban
"},{label:WCF.Language.get("wcf
.user
.disableAvatar
"),optionName:"disableAvatar
"},{label:WCF.Language.get("wcf
.user
.enableAvatar
"),optionName:"enableAvatar
"},{label:WCF.Language.get("wcf
.user
.disableSignature
"),optionName:"disableSignature
"},{label:WCF.Language.get("wcf
.user
.enableSignature
"),optionName:"enableSignature
"},{optionName:"divider
"},{label:WCF.Language.get("wcf
.user
.edit
"),optionName:"advanced
"}]},_show:function(c){var a=$(c.currentTarget);var d=a.data("elementID
");if(!this._dropdowns[d]){var b=a.next(".dropdownMenu
");if(b){this._dropdowns[d]=b;WCF.Dropdown.initDropdown(this._getTriggerElement(this._elements[d]),true)}}return this._super(c)},_showReasonDialog:function(b,c){var d="wcf
.user
."+c+".reason
.description
";var a=WCF.Language.get(d);WCF.System.Confirmation.show(WCF.Language.get("wcf
.user
."+c+".confirmMessage
"),$.proxy(function(e){if(e==="confirm
"){this._executeReasonAction(b,c,$("#wcfSystemConfirmationContent
").find("textarea
").val())}},this),{},$("<fieldset
><dl
><dt
>"+WCF.Language.get("wcf
.global
.reason
")+'</dt><dd><textarea cols="40" rows="4" />'+(a!=d?"<small
>"+a+"</small>":"")+"</dd></dl></fieldset
>"))},_updateState:function(d){this._notification.show();for(var f=0,e=this._updateData.length;f<e;f++){var b=this._updateData[f];var a=$("#"+b.elementID);for(var c in b.data){a.data(c,b.data[c])}}},_validate:function(a,b){var c=$("#"+a);switch(b){case"ban
":case"unban
":if(!this._getPermission("canBanUser
")){return false}if(b=="ban
"){return !c.data("banned
")}else{return c.data("banned
")}break;case"disableAvatar
":case"enableAvatar
":if(!this._getPermission("canDisableAvatar
")){return false}if(b=="disableAvatar
"){return !c.data("disableAvatar
")}else{return c.data("disableAvatar
")}break;case"disableSignature
":case"enableSignature
":if(!this._getPermission("canDisableSignature
")){return false}if(b=="disableSignature
"){return !c.data("disableSignature
")}else{return c.data("disableSignature
")}break;case"advanced
":return this._getPermission("canEditUser
");break}return false},setPermission:function(a,b){this._permissions[a]=b},setPermissions:function(a){for(var b in a){this.setPermission(b,a[b])}}});