Updating minified JavaScript files
authorwoltlab.com <woltlab@woltlab.com>
Sun, 17 Jul 2016 09:02:47 +0000 (11:02 +0200)
committerwoltlab.com <woltlab@woltlab.com>
Sun, 17 Jul 2016 09:02:47 +0000 (11:02 +0200)
wcfsetup/install/files/js/WCF.Combined.min.js

index c1a19aa299d7fad3a4f68858acf18d02621a08e4..6f125b97b2aab6ecc67eed26e6fd42d8087d8b45 100755 (executable)
 }},$.datepicker._setTimeDatepicker=function(e,t,i){var s=this._getInst(e);if(s){var a=this._get(s,"timepicker");if(a){this._setDateFromField(s);var n;t&&("string"==typeof t?(a._parseTime(t,i),n=new Date,n.setHours(a.hour,a.minute,a.second,a.millisec),n.setMicroseconds(a.microsec)):(n=new Date(t.getTime()),n.setMicroseconds(t.getMicroseconds())),"Invalid Date"==""+n&&(n=void 0),this._setTime(s,n))}}},$.datepicker._base_setDateDatepicker=$.datepicker._setDateDatepicker,$.datepicker._setDateDatepicker=function(e,t){var i=this._getInst(e),s=t;if(i){"string"==typeof t&&(s=new Date(t),s.getTime()||(this._base_setDateDatepicker.apply(this,arguments),s=$(e).datepicker("getDate")));var a,n=this._get(i,"timepicker");s instanceof Date?(a=new Date(s.getTime()),a.setMicroseconds(s.getMicroseconds())):a=s,n&&a&&(n.support.timezone||null!==n._defaults.timezone||(n.timezone=-1*a.getTimezoneOffset()),s=$.timepicker.timezoneAdjust(s,n.timezone),a=$.timepicker.timezoneAdjust(a,n.timezone)),this._updateDatepicker(i),this._base_setDateDatepicker.apply(this,arguments),this._setTimeDatepicker(e,a,!0)}},$.datepicker._base_getDateDatepicker=$.datepicker._getDateDatepicker,$.datepicker._getDateDatepicker=function(e,t){var i=this._getInst(e);if(i){var s=this._get(i,"timepicker");if(s){void 0===i.lastVal&&this._setDateFromField(i,t);var a=this._getDate(i);return a&&s._parseTime($(e).val(),s.timeOnly)&&(a.setHours(s.hour,s.minute,s.second,s.millisec),a.setMicroseconds(s.microsec),null!=s.timezone&&(s.support.timezone||null!==s._defaults.timezone||(s.timezone=-1*a.getTimezoneOffset()),a=$.timepicker.timezoneAdjust(a,s.timezone))),a}return this._base_getDateDatepicker(e,t)}},$.datepicker._base_parseDate=$.datepicker.parseDate,$.datepicker.parseDate=function(e,t,i){var s;try{s=this._base_parseDate(e,t,i)}catch(a){if(!(a.indexOf(":")>=0))throw a;s=this._base_parseDate(e,t.substring(0,t.length-(a.length-a.indexOf(":")-2)),i),$.timepicker.log("Error parsing the date string: "+a+"\ndate string = "+t+"\ndate format = "+e)}return s},$.datepicker._base_formatDate=$.datepicker._formatDate,$.datepicker._formatDate=function(e){var t=this._get(e,"timepicker");return t?(t._updateDateTime(e),t.$input.val()):this._base_formatDate(e)},$.datepicker._base_optionDatepicker=$.datepicker._optionDatepicker,$.datepicker._optionDatepicker=function(e,t,i){var s,a=this._getInst(e);if(!a)return null;var n=this._get(a,"timepicker");if(n){var r,l=null,o=null,c=null,u=n._defaults.evnts,m={};if("string"==typeof t){if("minDate"===t||"minDateTime"===t)l=i;else if("maxDate"===t||"maxDateTime"===t)o=i;else if("onSelect"===t)c=i;else if(u.hasOwnProperty(t)){if(i===void 0)return u[t];m[t]=i,s={}}}else if("object"==typeof t){t.minDate?l=t.minDate:t.minDateTime?l=t.minDateTime:t.maxDate?o=t.maxDate:t.maxDateTime&&(o=t.maxDateTime);for(r in u)u.hasOwnProperty(r)&&t[r]&&(m[r]=t[r])}for(r in m)m.hasOwnProperty(r)&&(u[r]=m[r],s||(s=$.extend({},t)),delete s[r]);if(s&&isEmptyObject(s))return;l?(l=0===l?new Date:new Date(l),n._defaults.minDate=l,n._defaults.minDateTime=l):o?(o=0===o?new Date:new Date(o),n._defaults.maxDate=o,n._defaults.maxDateTime=o):c&&(n._defaults.onSelect=c)}return void 0===i?this._base_optionDatepicker.call($.datepicker,e,t):this._base_optionDatepicker.call($.datepicker,e,s||t,i)};var isEmptyObject=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0},extendRemove=function(e,t){$.extend(e,t);for(var i in t)(null===t[i]||void 0===t[i])&&(e[i]=t[i]);return e},detectSupport=function(e){var t=e.replace(/'.*?'/g,"").toLowerCase(),i=function(e,t){return-1!==e.indexOf(t)?!0:!1};return{hour:i(t,"h"),minute:i(t,"m"),second:i(t,"s"),millisec:i(t,"l"),microsec:i(t,"c"),timezone:i(t,"z"),ampm:i(t,"t")&&i(e,"h"),iso8601:i(e,"Z")}},convert24to12=function(e){return e%=12,0===e&&(e=12),e+""},computeEffectiveSetting=function(e,t){return e&&e[t]?e[t]:$.timepicker._defaults[t]},splitDateTime=function(e,t){var i=computeEffectiveSetting(t,"separator"),s=computeEffectiveSetting(t,"timeFormat"),a=s.split(i),n=a.length,r=e.split(i),l=r.length;return l>1?{dateString:r.splice(0,l-n).join(i),timeString:r.splice(0,n).join(i)}:{dateString:e,timeString:""}},parseDateTimeInternal=function(e,t,i,s,a){var n,r,l;if(r=splitDateTime(i,a),n=$.datepicker._base_parseDate(e,r.dateString,s),""===r.timeString)return{date:n};if(l=$.datepicker.parseTime(t,r.timeString,a),!l)throw"Wrong time format";return{date:n,timeObj:l}},selectLocalTimezone=function(e,t){if(e&&e.timezone_select){var i=t||new Date;e.timezone_select.val(-i.getTimezoneOffset())}};$.timepicker=new Timepicker,$.timepicker.timezoneOffsetString=function(e,t){if(isNaN(e)||e>840||-720>e)return e;var i=e,s=i%60,a=(i-s)/60,n=t?":":"",r=(i>=0?"+":"-")+("0"+Math.abs(a)).slice(-2)+n+("0"+Math.abs(s)).slice(-2);return"+00:00"===r?"Z":r},$.timepicker.timezoneOffsetNumber=function(e){var t=(""+e).replace(":","");return"Z"===t.toUpperCase()?0:/^(\-|\+)\d{4}$/.test(t)?("-"===t.substr(0,1)?-1:1)*(60*parseInt(t.substr(1,2),10)+parseInt(t.substr(3,2),10)):e},$.timepicker.timezoneAdjust=function(e,t){var i=$.timepicker.timezoneOffsetNumber(t);return isNaN(i)||e.setMinutes(e.getMinutes()+-e.getTimezoneOffset()-i),e},$.timepicker.timeRange=function(e,t,i){return $.timepicker.handleRange("timepicker",e,t,i)},$.timepicker.datetimeRange=function(e,t,i){$.timepicker.handleRange("datetimepicker",e,t,i)},$.timepicker.dateRange=function(e,t,i){$.timepicker.handleRange("datepicker",e,t,i)},$.timepicker.handleRange=function(e,t,i,s){function a(a,n){var r=t[e]("getDate"),l=i[e]("getDate"),o=a[e]("getDate");if(null!==r){var c=new Date(r.getTime()),u=new Date(r.getTime());c.setMilliseconds(c.getMilliseconds()+s.minInterval),u.setMilliseconds(u.getMilliseconds()+s.maxInterval),s.minInterval>0&&c>l?i[e]("setDate",c):s.maxInterval>0&&l>u?i[e]("setDate",u):r>l&&n[e]("setDate",o)}}function n(t,i,a){if(t.val()){var n=t[e].call(t,"getDate");null!==n&&s.minInterval>0&&("minDate"===a&&n.setMilliseconds(n.getMilliseconds()+s.minInterval),"maxDate"===a&&n.setMilliseconds(n.getMilliseconds()-s.minInterval)),n.getTime&&i[e].call(i,"option",a,n)}}s=$.extend({},{minInterval:0,maxInterval:0,start:{},end:{}},s);var r=!1;return"timepicker"===e&&(r=!0,e="datetimepicker"),$.fn[e].call(t,$.extend({timeOnly:r,onClose:function(){a($(this),i)},onSelect:function(){n($(this),i,"minDate")}},s,s.start)),$.fn[e].call(i,$.extend({timeOnly:r,onClose:function(){a($(this),t)},onSelect:function(){n($(this),t,"maxDate")}},s,s.end)),a(t,i),n(t,i,"minDate"),n(i,t,"maxDate"),$([t.get(0),i.get(0)])},$.timepicker.log=function(e){window.console&&window.console.log(e)},$.timepicker._util={_extendRemove:extendRemove,_isEmptyObject:isEmptyObject,_convert24to12:convert24to12,_detectSupport:detectSupport,_selectLocalTimezone:selectLocalTimezone,_computeEffectiveSetting:computeEffectiveSetting,_splitDateTime:splitDateTime,_parseDateTimeInternal:parseDateTimeInternal},Date.prototype.getMicroseconds||(Date.prototype.microseconds=0,Date.prototype.getMicroseconds=function(){return this.microseconds},Date.prototype.setMicroseconds=function(e){return this.setMilliseconds(this.getMilliseconds()+Math.floor(e/1e3)),this.microseconds=e%1e3,this}),$.timepicker.version="1.4.5"}})(jQuery); })(this);
 
 // WCF.Assets.js
-(function (window, undefined) { })(this);
+(function (window, undefined) {!function(){var e=!1,t=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;this.Class=function(){},Class.extend=function(n){function o(){!e&&this.init&&this.init.apply(this,arguments)}var i=this.prototype;e=!0;var r=new this;e=!1;for(var a in n)r[a]="function"==typeof n[a]&&"function"==typeof i[a]&&t.test(n[a])?function(e,t){return function(){var n=this._super;this._super=i[e];var o=t.apply(this,arguments);return this._super=n,o}}(a,n[a]):n[a];return o.prototype=r,o.prototype.constructor=o,o.extend=arguments.callee,o}}(),window.matchMedia||(window.matchMedia=function(){"use strict";var e=window.styleMedia||window.media;if(!e){var t=document.createElement("style"),n=document.getElementsByTagName("script")[0],o=null;t.type="text/css",t.id="matchmediajs-test",n.parentNode.insertBefore(t,n),o="getComputedStyle"in window&&window.getComputedStyle(t,null)||t.currentStyle,e={matchMedium:function(e){var n="@media "+e+"{ #matchmediajs-test { width: 1px; } }";return t.styleSheet?t.styleSheet.cssText=n:t.textContent=n,"1px"===o.width}}}return function(t){return{matches:e.matchMedium(t||"all"),media:t||"all"}}}()),function(){if(window.matchMedia&&window.matchMedia("all").addListener)return!1;var e=window.matchMedia,t=e("only all").matches,n=!1,o=0,i=[],r=function(){clearTimeout(o),o=setTimeout(function(){for(var t=0,n=i.length;n>t;t++){var o=i[t].mql,r=i[t].listeners||[],a=e(o.media).matches;if(a!==o.matches){o.matches=a;for(var l=0,s=r.length;s>l;l++)r[l].call(window,o)}}},30)};window.matchMedia=function(o){var a=e(o),l=[],s=0;return a.addListener=function(e){t&&(n||(n=!0,window.addEventListener("resize",r,!0)),0===s&&(s=i.push({mql:a,listeners:l})),l.push(e))},a.removeListener=function(e){for(var t=0,n=l.length;n>t;t++)l[t]===e&&l.splice(t,1)},a}}(),function(e,t,n){var o=t.matchMedia;"undefined"!=typeof module&&module.exports?module.exports=n(o):"function"==typeof define&&define.amd?define(function(){return t[e]=n(o)}):t[e]=n(o)}("enquire",this,function(e){"use strict";function t(e,t){var n,o=0,i=e.length;for(o;i>o&&(n=t(e[o],o),n!==!1);o++);}function n(e){return"[object Array]"===Object.prototype.toString.apply(e)}function o(e){return"function"==typeof e}function i(e){this.options=e,!e.deferSetup&&this.setup()}function r(t,n){this.query=t,this.isUnconditional=n,this.handlers=[],this.mql=e(t);var o=this;this.listener=function(e){o.mql=e,o.assess()},this.mql.addListener(this.listener)}function a(){if(!e)throw Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!e("only all").matches}return i.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}},r.prototype={addHandler:function(e){var t=new i(e);this.handlers.push(t),this.matches()&&t.on()},removeHandler:function(e){var n=this.handlers;t(n,function(t,o){return t.equals(e)?(t.destroy(),!n.splice(o,1)):void 0})},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){t(this.handlers,function(e){e.destroy()}),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var e=this.matches()?"on":"off";t(this.handlers,function(t){t[e]()})}},a.prototype={register:function(e,i,a){var l=this.queries,s=a&&this.browserIsIncapable;return l[e]||(l[e]=new r(e,s)),o(i)&&(i={match:i}),n(i)||(i=[i]),t(i,function(t){l[e].addHandler(t)}),this},unregister:function(e,t){var n=this.queries[e];return n&&(t?n.removeHandler(t):(n.clear(),delete this.queries[e])),this}},new a}),function(e,t){"use strict";function n(){}function o(e,t){if(e){"object"==typeof e&&(e=[].slice.call(e));for(var n=0,o=e.length;o>n;n++)t.call(e,e[n],n)}}function i(e,n){var o=Object.prototype.toString.call(n).slice(8,-1);return n!==t&&null!==n&&o===e}function r(e){return i("Function",e)}function a(e){return i("Array",e)}function l(e){var t=e.split("/"),n=t[t.length-1],o=n.indexOf("?");return-1!==o?n.substring(0,o):n}function s(e){e=e||n,e._done||(e(),e._done=1)}function c(e,t,o,i){var r="object"==typeof e?e:{test:e,success:t?a(t)?t:[t]:!1,failure:o?a(o)?o:[o]:!1,callback:i||n},l=!!r.test;return l&&r.success?(r.success.push(r.callback),O.load.apply(null,r.success)):l||!r.failure?i():(r.failure.push(r.callback),O.load.apply(null,r.failure)),O}function u(e){var t,n,o={};if("object"==typeof e)for(t in e)!e[t]||(o={name:t,url:e[t]});else o={name:l(e),url:e};return n=C[o.name],n&&n.url===o.url?n:(C[o.name]=o,o)}function d(e){e=e||C;for(var t in e)if(e.hasOwnProperty(t)&&e[t].state!==j)return!1;return!0}function f(e){e.state=D,o(e.onpreload,function(e){e.call()})}function p(e){e.state===t&&(e.state=A,e.onpreload=[],v({url:e.url,type:"cache"},function(){f(e)}))}function h(){var e=arguments,t=e[e.length-1],n=[].slice.call(e,1),i=n[0];return r(t)||(t=null),a(e[0])?(e[0].push(t),O.load.apply(null,e[0]),O):(i?(o(n,function(e){r(e)||!e||p(u(e))}),m(u(e[0]),r(i)?i:function(){O.load.apply(null,n)})):m(u(e[0])),O)}function g(){var e=arguments,t=e[e.length-1],n={};return r(t)||(t=null),a(e[0])?(e[0].push(t),O.load.apply(null,e[0]),O):(o(e,function(e){e!==t&&(e=u(e),n[e.name]=e)}),o(e,function(e){e!==t&&(e=u(e),m(e,function(){d(n)&&s(t)}))}),O)}function m(e,t){return t=t||n,e.state===j?void t():e.state===R?void O.ready(e.name,t):e.state===A?void e.onpreload.push(function(){m(e,t)}):(e.state=R,void v(e,function(){e.state=j,t(),o(k[e.name],function(e){s(e)}),E&&d()&&o(k.ALL,function(e){s(e)})}))}function w(e){e=e||"";var t=e.split("?")[0].split(".");return t[t.length-1].toLowerCase()}function v(t,o){function i(t){t=t||e.event,l.onload=l.onreadystatechange=l.onerror=null,o()}function r(n){n=n||e.event,("load"===n.type||/loaded|complete/.test(l.readyState)&&(!M.documentMode||M.documentMode<9))&&(e.clearTimeout(t.errorTimeout),e.clearTimeout(t.cssTimeout),l.onload=l.onreadystatechange=l.onerror=null,o())}function a(){if(t.state!==j&&t.cssRetries<=20){for(var n=0,o=M.styleSheets.length;o>n;n++)if(M.styleSheets[n].href===l.href)return void r({type:"load"});t.cssRetries++,t.cssTimeout=e.setTimeout(a,250)}}var l,s,c;o=o||n,s=w(t.url),"css"===s?(l=M.createElement("link"),l.type="text/"+(t.type||"css"),l.rel="stylesheet",l.href=t.url,t.cssRetries=0,t.cssTimeout=e.setTimeout(a,500)):(l=M.createElement("script"),l.type="text/"+(t.type||"javascript"),l.src=t.url),l.onload=l.onreadystatechange=r,l.onerror=i,l.async=!1,l.defer=!1,t.errorTimeout=e.setTimeout(function(){i({type:"timeout"})},7e3),c=M.head||M.getElementsByTagName("head")[0],c.insertBefore(l,c.lastChild)}function y(){for(var e,t=M.getElementsByTagName("script"),n=0,o=t.length;o>n;n++)if(e=t[n].getAttribute("data-headjs-load"),!!e)return void O.load(e)}function b(e,t){var n,i,l;return e===M?(E?s(t):L.push(t),O):(r(e)&&(t=e,e="ALL"),a(e)?(n={},o(e,function(e){n[e]=C[e],O.ready(e,function(){d(n)&&s(t)})}),O):"string"==typeof e&&r(t)?(i=C[e],i&&i.state===j||"ALL"===e&&d()&&E?(s(t),O):(l=k[e],l?l.push(t):l=k[e]=[t],O)):O)}function x(){return M.body?void(E||(E=!0,y(),o(L,function(e){s(e)}))):(e.clearTimeout(O.readyTimeout),void(O.readyTimeout=e.setTimeout(x,50)))}function T(){M.addEventListener?(M.removeEventListener("DOMContentLoaded",T,!1),x()):"complete"===M.readyState&&(M.detachEvent("onreadystatechange",T),x())}var E,S,M=e.document,L=[],k={},C={},I="async"in M.createElement("script")||"MozAppearance"in M.documentElement.style||e.opera,P=e.head_conf&&e.head_conf.head||"head",O=e[P]=e[P]||function(){O.ready.apply(null,arguments)},A=1,D=2,R=3,j=4;if("complete"===M.readyState)x();else if(M.addEventListener)M.addEventListener("DOMContentLoaded",T,!1),e.addEventListener("load",x,!1);else{M.attachEvent("onreadystatechange",T),e.attachEvent("onload",x),S=!1;try{S=!e.frameElement&&M.documentElement}catch(e){}S&&S.doScroll&&function t(){if(!E){try{S.doScroll("left")}catch(n){return e.clearTimeout(O.readyTimeout),void(O.readyTimeout=e.setTimeout(t,50))}x()}}()}O.load=O.js=I?g:h,O.test=c,O.ready=b,O.ready(M,function(){d()&&o(k.ALL,function(e){s(e)}),O.feature&&O.feature("domloaded",!0)})}(window),!function(){var e=function(e){"use strict";function t(e){if(e.paused||e.ended||m)return!1;try{u.clearRect(0,0,s,l),u.drawImage(e,0,0,s,l)}catch(e){}y=setTimeout(t,O.duration,e),P.setIcon(c)}function n(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(t,function(e,t,n,o){return t+t+n+n+o+o});var n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:!1}function o(e,t){var n,o={};for(n in e)o[n]=e[n];for(n in t)o[n]=t[n];return o}function i(){return document.hidden||document.msHidden||document.webkitHidden||document.mozHidden}e=e?e:{};var r,a,l,s,c,u,d,f,p,h,g,m,w,v,y,b={bgColor:"#d00",textColor:"#fff",fontFamily:"sans-serif",fontStyle:"bold",type:"circle",position:"down",animation:"slide",elementId:!1};w={},w.ff="undefined"!=typeof InstallTrigger,w.chrome=!!window.chrome,w.opera=!!window.opera||navigator.userAgent.indexOf("Opera")>=0,w.ie=!1,w.safari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,w.supported=w.chrome||w.ff||w.opera;var x=[];g=function(){},f=m=!1;var T=function(){r=o(b,e),r.bgColor=n(r.bgColor),r.textColor=n(r.textColor),r.position=r.position.toLowerCase(),r.animation=O.types[""+r.animation]?r.animation:b.animation;var t=r.position.indexOf("up")>-1,i=r.position.indexOf("left")>-1;if(t||i)for(var f=0;f<O.types[""+r.animation].length;f++){var p=O.types[""+r.animation][f];t&&(p.y=p.y<.6?p.y-.4:p.y-2*p.y+(1-p.w)),i&&(p.x=p.x<.6?p.x-.4:p.x-2*p.x+(1-p.h)),O.types[""+r.animation][f]=p}r.type=S[""+r.type]?r.type:b.type;try{a=P.getIcon(),c=document.createElement("canvas"),d=document.createElement("img"),a.hasAttribute("href")?(d.setAttribute("src",a.getAttribute("href")),d.onload=function(){l=d.height>0?d.height:32,s=d.width>0?d.width:32,c.height=l,c.width=s,u=c.getContext("2d"),E.ready()}):(d.setAttribute("src",""),l=32,s=32,d.height=l,d.width=s,c.height=l,c.width=s,u=c.getContext("2d"),E.ready())}catch(e){throw"Error initializing favico. Message: "+e.message}},E={};E.ready=function(){f=!0,E.reset(),g()},E.reset=function(){f&&(x=[],p=!1,u.clearRect(0,0,s,l),u.drawImage(d,0,0,s,l),P.setIcon(c),window.clearTimeout(v),window.clearTimeout(y))},E.start=function(){if(f&&!h){var e=function(){p=x[0],h=!1,x.length>0&&(x.shift(),E.start())};if(x.length>0){h=!0;var t=function(){["type","animation","bgColor","textColor","fontFamily","fontStyle"].forEach(function(e){e in x[0].options&&(r[e]=x[0].options[e])}),O.run(x[0].options,function(){e()},!1)};p?O.run(p.options,function(){t()},!0):t()}}};var S={},M=function(e){return e.n="number"==typeof e.n?Math.abs(0|e.n):e.n,e.x=s*e.x,e.y=l*e.y,e.w=s*e.w,e.h=l*e.h,e.len=(""+e.n).length,e};S.circle=function(e){e=M(e);var t=!1;2===e.len?(e.x=e.x-.4*e.w,e.w=1.4*e.w,t=!0):e.len>=3&&(e.x=e.x-.65*e.w,e.w=1.65*e.w,t=!0),u.clearRect(0,0,s,l),u.drawImage(d,0,0,s,l),u.beginPath(),u.font=r.fontStyle+" "+Math.floor(e.h*(e.n>99?.85:1))+"px "+r.fontFamily,u.textAlign="center",t?(u.moveTo(e.x+e.w/2,e.y),u.lineTo(e.x+e.w-e.h/2,e.y),u.quadraticCurveTo(e.x+e.w,e.y,e.x+e.w,e.y+e.h/2),u.lineTo(e.x+e.w,e.y+e.h-e.h/2),u.quadraticCurveTo(e.x+e.w,e.y+e.h,e.x+e.w-e.h/2,e.y+e.h),u.lineTo(e.x+e.h/2,e.y+e.h),u.quadraticCurveTo(e.x,e.y+e.h,e.x,e.y+e.h-e.h/2),u.lineTo(e.x,e.y+e.h/2),u.quadraticCurveTo(e.x,e.y,e.x+e.h/2,e.y)):u.arc(e.x+e.w/2,e.y+e.h/2,e.h/2,0,2*Math.PI),u.fillStyle="rgba("+r.bgColor.r+","+r.bgColor.g+","+r.bgColor.b+","+e.o+")",u.fill(),u.closePath(),u.beginPath(),u.stroke(),u.fillStyle="rgba("+r.textColor.r+","+r.textColor.g+","+r.textColor.b+","+e.o+")","number"==typeof e.n&&e.n>999?u.fillText((e.n>9999?9:Math.floor(e.n/1e3))+"k+",Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.2*e.h)):u.fillText(e.n,Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.15*e.h)),u.closePath()},S.rectangle=function(e){e=M(e);var t=!1;2===e.len?(e.x=e.x-.4*e.w,e.w=1.4*e.w,t=!0):e.len>=3&&(e.x=e.x-.65*e.w,e.w=1.65*e.w,t=!0),u.clearRect(0,0,s,l),u.drawImage(d,0,0,s,l),u.beginPath(),u.font=r.fontStyle+" "+Math.floor(e.h*(e.n>99?.9:1))+"px "+r.fontFamily,u.textAlign="center",u.fillStyle="rgba("+r.bgColor.r+","+r.bgColor.g+","+r.bgColor.b+","+e.o+")",u.fillRect(e.x,e.y,e.w,e.h),u.fillStyle="rgba("+r.textColor.r+","+r.textColor.g+","+r.textColor.b+","+e.o+")","number"==typeof e.n&&e.n>999?u.fillText((e.n>9999?9:Math.floor(e.n/1e3))+"k+",Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.2*e.h)):u.fillText(e.n,Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.15*e.h)),u.closePath()};var L=function(e,t){t=("string"==typeof t?{animation:t}:t)||{},g=function(){try{if("number"==typeof e?e>0:""!==e){var o={type:"badge",options:{n:e}};if("animation"in t&&O.types[""+t.animation]&&(o.options.animation=""+t.animation),"type"in t&&S[""+t.type]&&(o.options.type=""+t.type),["bgColor","textColor"].forEach(function(e){e in t&&(o.options[e]=n(t[e]))}),["fontStyle","fontFamily"].forEach(function(e){e in t&&(o.options[e]=t[e])}),x.push(o),x.length>100)throw"Too many badges requests in queue.";E.start()}else E.reset()}catch(e){throw"Error setting badge. Message: "+e.message}},f&&g()},k=function(e){g=function(){try{var t=e.width,n=e.height,o=document.createElement("img"),i=n/l>t/s?t/s:n/l;o.setAttribute("src",e.getAttribute("src")),o.height=n/i,o.width=t/i,u.clearRect(0,0,s,l),u.drawImage(o,0,0,s,l),P.setIcon(c)}catch(e){throw"Error setting image. Message: "+e.message}},f&&g()},C=function(e){g=function(){try{if("stop"===e)return m=!0,E.reset(),void(m=!1);e.addEventListener("play",function(){t(this)},!1)}catch(e){throw"Error setting video. Message: "+e.message}},f&&g()},I=function(e){if(window.URL&&window.URL.createObjectURL||(window.URL=window.URL||{},window.URL.createObjectURL=function(e){return e}),w.supported){var n=!1;navigator.getUserMedia=navigator.getUserMedia||navigator.oGetUserMedia||navigator.msGetUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia,g=function(){try{if("stop"===e)return m=!0,E.reset(),void(m=!1);n=document.createElement("video"),n.width=s,n.height=l,navigator.getUserMedia({video:!0,audio:!1},function(e){n.src=URL.createObjectURL(e),n.play(),t(n)},function(){})}catch(e){throw"Error setting webcam. Message: "+e.message}},f&&g()}},P={};P.getIcon=function(){var e=!1,t="",n=function(){for(var e=document.getElementsByTagName("head")[0].getElementsByTagName("link"),t=e.length,n=t-1;n>=0;n--)if(/(^|\s)icon(\s|$)/i.test(e[n].getAttribute("rel")))return e[n];return!1};if(r.elementId?(e=document.getElementById(r.elementId),e.setAttribute("href",e.getAttribute("src"))):(e=n(),e===!1&&(e=document.createElement("link"),e.setAttribute("rel","icon"),document.getElementsByTagName("head")[0].appendChild(e))),t=r.elementId?e.src:e.href,"data:"!==t.substr(0,5)&&-1===t.indexOf(document.location.hostname))throw new Error("Error setting favicon. Favicon image is on different domain (Icon: "+t+", Domain: "+document.location.hostname+")");return e.setAttribute("type","image/png"),e},P.setIcon=function(e){var t=e.toDataURL("image/png");if(r.elementId)document.getElementById(r.elementId).setAttribute("src",t);else if(w.ff||w.opera){var n=a;a=document.createElement("link"),w.opera&&a.setAttribute("rel","icon"),a.setAttribute("rel","icon"),a.setAttribute("type","image/png"),document.getElementsByTagName("head")[0].appendChild(a),a.setAttribute("href",t),n.parentNode&&n.parentNode.removeChild(n)}else a.setAttribute("href",t)};var O={};return O.duration=40,O.types={},O.types.fade=[{x:.4,y:.4,w:.6,h:.6,o:0},{x:.4,y:.4,w:.6,h:.6,o:.1},{x:.4,y:.4,w:.6,h:.6,o:.2},{x:.4,y:.4,w:.6,h:.6,o:.3},{x:.4,y:.4,w:.6,h:.6,o:.4},{x:.4,y:.4,w:.6,h:.6,o:.5},{x:.4,y:.4,w:.6,h:.6,o:.6},{x:.4,y:.4,w:.6,h:.6,o:.7},{x:.4,y:.4,w:.6,h:.6,o:.8},{x:.4,y:.4,w:.6,h:.6,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],O.types.none=[{x:.4,y:.4,w:.6,h:.6,o:1}],O.types.pop=[{x:1,y:1,w:0,h:0,o:1},{x:.9,y:.9,w:.1,h:.1,o:1},{x:.8,y:.8,w:.2,h:.2,o:1},{x:.7,y:.7,w:.3,h:.3,o:1},{x:.6,y:.6,w:.4,h:.4,o:1},{x:.5,y:.5,w:.5,h:.5,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],O.types.popFade=[{x:.75,y:.75,w:0,h:0,o:0},{x:.65,y:.65,w:.1,h:.1,o:.2},{x:.6,y:.6,w:.2,h:.2,o:.4},{x:.55,y:.55,w:.3,h:.3,o:.6},{x:.5,y:.5,w:.4,h:.4,o:.8},{x:.45,y:.45,w:.5,h:.5,o:.9},{x:.4,y:.4,w:.6,h:.6,o:1}],O.types.slide=[{x:.4,y:1,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.9,w:.6,h:.6,o:1},{x:.4,y:.8,w:.6,h:.6,o:1},{x:.4,y:.7,w:.6,h:.6,o:1},{x:.4,y:.6,w:.6,h:.6,o:1},{x:.4,y:.5,w:.6,h:.6,o:1},{x:.4,y:.4,w:.6,h:.6,o:1}],O.run=function(e,t,n,a){var l=O.types[i()?"none":r.animation];return a=n===!0?"undefined"!=typeof a?a:l.length-1:"undefined"!=typeof a?a:0,t=t?t:function(){},a<l.length&&a>=0?(S[r.type](o(e,l[a])),v=setTimeout(function(){n?a-=1:a+=1,O.run(e,t,n,a)},O.duration),void P.setIcon(c)):void t()},T(),{badge:L,video:C,image:k,webcam:I,reset:E.reset,browser:{supported:w.supported}}};"undefined"!=typeof define&&define.amd?define([],function(){return e}):"undefined"!=typeof module&&module.exports?module.exports=e:this.Favico=e}(),function(e){"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],e):e(jQuery)}(function(e){function t(t){return!t||void 0!==t.allowPageScroll||void 0===t.swipe&&void 0===t.swipeStatus||(t.allowPageScroll=c),void 0!==t.click&&void 0===t.tap&&(t.tap=t.click),t||(t={}),t=e.extend({},e.fn.swipe.defaults,t),this.each(function(){var o=e(this),i=o.data(k);i||(i=new n(this,t),o.data(k,i))})}function n(t,n){function C(t){if(!(ce()||e(t.target).closest(n.excludedElements,Be).length>0)){var o,i=t.originalEvent?t.originalEvent:t,r=S?i.touches[0]:i;return We=b,S?Fe=i.touches.length:t.preventDefault(),je=0,qe=null,Ye=null,Ue=0,ze=0,Ne=0,He=1,Xe=0,Qe=he(),_e=we(),le(),!S||Fe===n.fingers||n.fingers===v||_()?(de(0,r),Ge=Le(),2==Fe&&(de(1,i.touches[1]),ze=Ne=be(Qe[0].start,Qe[1].start)),(n.swipeStatus||n.pinchStatus)&&(o=j(i,We))):o=!1,o===!1?(We=E,j(i,We),o):(n.hold&&(et=setTimeout(e.proxy(function(){Be.trigger("hold",[i.target]),n.hold&&(o=n.hold.call(Be,i,i.target))},this),n.longTapThreshold)),ue(!0),null)}}function I(e){var t=e.originalEvent?e.originalEvent:e;if(We!==T&&We!==E&&!se()){var o,i=S?t.touches[0]:t,r=fe(i);if(Ke=Le(),S&&(Fe=t.touches.length),n.hold&&clearTimeout(et),We=x,2==Fe&&(0==ze?(de(1,t.touches[1]),ze=Ne=be(Qe[0].start,Qe[1].start)):(fe(t.touches[1]),Ne=be(Qe[0].end,Qe[1].end),Ye=Te(Qe[0].end,Qe[1].end)),He=xe(ze,Ne),Xe=Math.abs(ze-Ne)),Fe===n.fingers||n.fingers===v||!S||_()){if(qe=Me(r.start,r.end),X(e,qe),je=Ee(r.start,r.end),Ue=ye(),ge(qe,je),(n.swipeStatus||n.pinchStatus)&&(o=j(t,We)),!n.triggerOnTouchEnd||n.triggerOnTouchLeave){var a=!0;if(n.triggerOnTouchLeave){var l=ke(this);a=Ce(r.end,l)}!n.triggerOnTouchEnd&&a?We=R(x):n.triggerOnTouchLeave&&!a&&(We=R(T)),(We==E||We==T)&&j(t,We)}}else We=E,j(t,We);o===!1&&(We=E,j(t,We))}}function P(e){var t=e.originalEvent;return S&&t.touches.length>0?(ae(),!0):(se()&&(Fe=$e),Ke=Le(),Ue=ye(),z()||!U()?(We=E,j(t,We)):n.triggerOnTouchEnd||0==n.triggerOnTouchEnd&&We===x?(e.preventDefault(),We=T,j(t,We)):!n.triggerOnTouchEnd&&V()?(We=T,q(t,We,p)):We===x&&(We=E,j(t,We)),ue(!1),null)}function O(){Fe=0,Ke=0,Ge=0,ze=0,Ne=0,He=1,le(),ue(!1)}function A(e){var t=e.originalEvent;n.triggerOnTouchLeave&&(We=R(T),j(t,We))}function D(){Be.unbind(Pe,C),Be.unbind(Re,O),Be.unbind(Oe,I),Be.unbind(Ae,P),De&&Be.unbind(De,A),ue(!1)}function R(e){var t=e,o=H(),i=U(),r=z();return!o||r?t=E:!i||e!=x||n.triggerOnTouchEnd&&!n.triggerOnTouchLeave?!i&&e==T&&n.triggerOnTouchLeave&&(t=E):t=T,t}function j(e,t){var n=void 0;return Q()||F()?n=q(e,t,d):(B()||_())&&n!==!1&&(n=q(e,t,f)),ie()&&n!==!1?n=q(e,t,h):re()&&n!==!1?n=q(e,t,g):oe()&&n!==!1&&(n=q(e,t,p)),t===E&&O(e),t===T&&(S?0==e.touches.length&&O(e):O(e)),n}function q(t,c,u){var m=void 0;if(u==d){if(Be.trigger("swipeStatus",[c,qe||null,je||0,Ue||0,Fe,Qe]),n.swipeStatus&&(m=n.swipeStatus.call(Be,t,c,qe||null,je||0,Ue||0,Fe,Qe),m===!1))return!1;if(c==T&&W()){if(Be.trigger("swipe",[qe,je,Ue,Fe,Qe]),n.swipe&&(m=n.swipe.call(Be,t,qe,je,Ue,Fe,Qe),m===!1))return!1;switch(qe){case o:Be.trigger("swipeLeft",[qe,je,Ue,Fe,Qe]),n.swipeLeft&&(m=n.swipeLeft.call(Be,t,qe,je,Ue,Fe,Qe));break;case i:Be.trigger("swipeRight",[qe,je,Ue,Fe,Qe]),n.swipeRight&&(m=n.swipeRight.call(Be,t,qe,je,Ue,Fe,Qe));break;case r:Be.trigger("swipeUp",[qe,je,Ue,Fe,Qe]),n.swipeUp&&(m=n.swipeUp.call(Be,t,qe,je,Ue,Fe,Qe));break;case a:Be.trigger("swipeDown",[qe,je,Ue,Fe,Qe]),n.swipeDown&&(m=n.swipeDown.call(Be,t,qe,je,Ue,Fe,Qe))}}}if(u==f){if(Be.trigger("pinchStatus",[c,Ye||null,Xe||0,Ue||0,Fe,He,Qe]),n.pinchStatus&&(m=n.pinchStatus.call(Be,t,c,Ye||null,Xe||0,Ue||0,Fe,He,Qe),m===!1))return!1;if(c==T&&Y())switch(Ye){case l:Be.trigger("pinchIn",[Ye||null,Xe||0,Ue||0,Fe,He,Qe]),n.pinchIn&&(m=n.pinchIn.call(Be,t,Ye||null,Xe||0,Ue||0,Fe,He,Qe));break;case s:Be.trigger("pinchOut",[Ye||null,Xe||0,Ue||0,Fe,He,Qe]),n.pinchOut&&(m=n.pinchOut.call(Be,t,Ye||null,Xe||0,Ue||0,Fe,He,Qe))}}return u==p?(c===E||c===T)&&(clearTimeout(Je),clearTimeout(et),$()&&!ee()?(Ze=Le(),Je=setTimeout(e.proxy(function(){Ze=null,Be.trigger("tap",[t.target]),n.tap&&(m=n.tap.call(Be,t,t.target))},this),n.doubleTapThreshold)):(Ze=null,Be.trigger("tap",[t.target]),n.tap&&(m=n.tap.call(Be,t,t.target)))):u==h?(c===E||c===T)&&(clearTimeout(Je),Ze=null,Be.trigger("doubletap",[t.target]),n.doubleTap&&(m=n.doubleTap.call(Be,t,t.target))):u==g&&(c===E||c===T)&&(clearTimeout(Je),Ze=null,Be.trigger("longtap",[t.target]),n.longTap&&(m=n.longTap.call(Be,t,t.target))),m}function U(){var e=!0;return null!==n.threshold&&(e=je>=n.threshold),e}function z(){var e=!1;return null!==n.cancelThreshold&&null!==qe&&(e=me(qe)-je>=n.cancelThreshold),e}function N(){return null!==n.pinchThreshold?Xe>=n.pinchThreshold:!0}function H(){var e;return e=n.maxTimeThreshold&&Ue>=n.maxTimeThreshold?!1:!0}function X(e,t){if(n.allowPageScroll===c||_())e.preventDefault();else{var l=n.allowPageScroll===u;switch(t){case o:(n.swipeLeft&&l||!l&&n.allowPageScroll!=m)&&e.preventDefault();break;case i:(n.swipeRight&&l||!l&&n.allowPageScroll!=m)&&e.preventDefault();break;case r:(n.swipeUp&&l||!l&&n.allowPageScroll!=w)&&e.preventDefault();break;case a:(n.swipeDown&&l||!l&&n.allowPageScroll!=w)&&e.preventDefault()}}}function Y(){var e=G(),t=K(),n=N();return e&&t&&n}function _(){return!!(n.pinchStatus||n.pinchIn||n.pinchOut)}function B(){return!(!Y()||!_())}function W(){var e=H(),t=U(),n=G(),o=K(),i=z(),r=!i&&o&&n&&t&&e;return r}function F(){return!!(n.swipe||n.swipeStatus||n.swipeLeft||n.swipeRight||n.swipeUp||n.swipeDown)}function Q(){return!(!W()||!F())}function G(){return Fe===n.fingers||n.fingers===v||!S}function K(){return 0!==Qe[0].end.x}function V(){return!!n.tap}function $(){return!!n.doubleTap}function Z(){return!!n.longTap}function J(){if(null==Ze)return!1;var e=Le();return $()&&e-Ze<=n.doubleTapThreshold}function ee(){return J()}function te(){return(1===Fe||!S)&&(isNaN(je)||je<n.threshold)}function ne(){return Ue>n.longTapThreshold&&y>je}function oe(){return!(!te()||!V())}function ie(){return!(!J()||!$())}function re(){return!(!ne()||!Z())}function ae(){Ve=Le(),$e=event.touches.length+1}function le(){Ve=0,$e=0}function se(){var e=!1;if(Ve){var t=Le()-Ve;t<=n.fingerReleaseThreshold&&(e=!0)}return e}function ce(){return!(Be.data(k+"_intouch")!==!0)}function ue(e){e===!0?(Be.bind(Oe,I),Be.bind(Ae,P),De&&Be.bind(De,A)):(Be.unbind(Oe,I,!1),Be.unbind(Ae,P,!1),De&&Be.unbind(De,A,!1)),Be.data(k+"_intouch",e===!0)}function de(e,t){var n=void 0!==t.identifier?t.identifier:0;return Qe[e].identifier=n,Qe[e].start.x=Qe[e].end.x=t.pageX||t.clientX,Qe[e].start.y=Qe[e].end.y=t.pageY||t.clientY,Qe[e]}function fe(e){var t=void 0!==e.identifier?e.identifier:0,n=pe(t);return n.end.x=e.pageX||e.clientX,n.end.y=e.pageY||e.clientY,n}function pe(e){for(var t=0;t<Qe.length;t++)if(Qe[t].identifier==e)return Qe[t]}function he(){for(var e=[],t=0;5>=t;t++)e.push({start:{x:0,y:0},end:{x:0,y:0},identifier:0});return e}function ge(e,t){t=Math.max(t,me(e)),_e[e].distance=t}function me(e){return _e[e]?_e[e].distance:void 0}function we(){var e={};return e[o]=ve(o),e[i]=ve(i),e[r]=ve(r),e[a]=ve(a),e}function ve(e){return{direction:e,distance:0}}function ye(){return Ke-Ge}function be(e,t){var n=Math.abs(e.x-t.x),o=Math.abs(e.y-t.y);return Math.round(Math.sqrt(n*n+o*o))}function xe(e,t){var n=t/e*1;return n.toFixed(2)}function Te(){return 1>He?s:l}function Ee(e,t){return Math.round(Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)))}function Se(e,t){var n=e.x-t.x,o=t.y-e.y,i=Math.atan2(o,n),r=Math.round(180*i/Math.PI);return 0>r&&(r=360-Math.abs(r)),r}function Me(e,t){var n=Se(e,t);return 45>=n&&n>=0?o:360>=n&&n>=315?o:n>=135&&225>=n?i:n>45&&135>n?a:r}function Le(){var e=new Date;return e.getTime()}function ke(t){t=e(t);var n=t.offset(),o={left:n.left,right:n.left+t.outerWidth(),top:n.top,bottom:n.top+t.outerHeight()};return o}function Ce(e,t){return e.x>t.left&&e.x<t.right&&e.y>t.top&&e.y<t.bottom}var Ie=S||L||!n.fallbackToMouseEvents,Pe=Ie?L?M?"MSPointerDown":"pointerdown":"touchstart":"mousedown",Oe=Ie?L?M?"MSPointerMove":"pointermove":"touchmove":"mousemove",Ae=Ie?L?M?"MSPointerUp":"pointerup":"touchend":"mouseup",De=Ie?null:"mouseleave",Re=L?M?"MSPointerCancel":"pointercancel":"touchcancel",je=0,qe=null,Ue=0,ze=0,Ne=0,He=1,Xe=0,Ye=0,_e=null,Be=e(t),We="start",Fe=0,Qe=null,Ge=0,Ke=0,Ve=0,$e=0,Ze=0,Je=null,et=null;try{Be.bind(Pe,C),Be.bind(Re,O)}catch(t){e.error("events not supported "+Pe+","+Re+" on jQuery.swipe")}this.enable=function(){return Be.bind(Pe,C),Be.bind(Re,O),Be},this.disable=function(){return D(),Be},this.destroy=function(){return D(),Be.data(k,null),Be},this.option=function(t,o){if(void 0!==n[t]){if(void 0===o)return n[t];n[t]=o}else e.error("Option "+t+" does not exist on jQuery.swipe.options");return null}}var o="left",i="right",r="up",a="down",l="in",s="out",c="none",u="auto",d="swipe",f="pinch",p="tap",h="doubletap",g="longtap",m="horizontal",w="vertical",v="all",y=10,b="start",x="move",T="end",E="cancel",S="ontouchstart"in window,M=window.navigator.msPointerEnabled&&!window.navigator.pointerEnabled,L=window.navigator.pointerEnabled||window.navigator.msPointerEnabled,k="TouchSwipe",C={fingers:1,threshold:75,cancelThreshold:null,pinchThreshold:20,maxTimeThreshold:null,fingerReleaseThreshold:250,longTapThreshold:500,doubleTapThreshold:200,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,pinchIn:null,pinchOut:null,pinchStatus:null,click:null,tap:null,doubleTap:null,longTap:null,hold:null,triggerOnTouchEnd:!0,triggerOnTouchLeave:!1,allowPageScroll:"auto",fallbackToMouseEvents:!0,excludedElements:"label, button, input, select, textarea, a, .noSwipe"};e.fn.swipe=function(n){var o=e(this),i=o.data(k);if(i&&"string"==typeof n){if(i[n])return i[n].apply(this,Array.prototype.slice.call(arguments,1));e.error("Method "+n+" does not exist on jQuery.swipe")}else if(!(i||"object"!=typeof n&&n))return t.apply(this,arguments);return o},e.fn.swipe.defaults=C,e.fn.swipe.phases={PHASE_START:b,PHASE_MOVE:x,PHASE_END:T,PHASE_CANCEL:E},e.fn.swipe.directions={LEFT:o,RIGHT:i,UP:r,DOWN:a,IN:l,OUT:s},e.fn.swipe.pageScroll={NONE:c,HORIZONTAL:m,VERTICAL:w,AUTO:u},e.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,ALL:v}}),function(e){(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(e)||/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(e.substr(0,4))}(navigator.userAgent||navigator.vendor||window.opera),function(e){var t={init:function(){var t=["paddingTop","paddingRight","paddingBottom","paddingLeft","fontSize","lineHeight","fontFamily","width","fontWeight","border-top-width","border-right-width","border-bottom-width","border-left-width","-moz-box-sizing","-webkit-box-sizing","box-sizing"];return this.each(function(){function n(){for(var e=0;e<t.length;e++)a.css(t[e],r.css(t[e]))}function o(){var e=r.val().replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/&/g,"&").replace(/\n/g,"<br/>");a.html(e+"&nbsp;"),i()}function i(){var e=a.height(),t="hidden",n=l?e+u+s:e+u;n>f?(n=f,t="auto"):d>n&&(n=d),r.height()!==n&&r.css({overflow:t,height:n+"px"})}if("textarea"!==this.type)return!1;var r=e(this).css({resize:"none",overflow:"hidden"}),a=e("<div></div>").css({position:"absolute",display:"none","word-wrap":"break-word","white-space":"pre-wrap","border-style":"solid"}).appendTo(document.body);n();var l="border-box"==r.css("box-sizing")||"border-box"==r.css("-moz-box-sizing")||"border-box"==r.css("-webkit-box-sizing"),s=parseInt(r.css("border-top-width"))+parseInt(r.css("padding-top"))+parseInt(r.css("padding-bottom"))+parseInt(r.css("border-bottom-width")),c=parseInt(r.css("height"),10),u=parseInt(r.css("line-height"),10)||parseInt(r.css("font-size"),10),d=2*u>c?2*u:c,f=parseInt(r.css("max-height"),10)>-1?parseInt(r.css("max-height"),10):Number.MAX_VALUE;r.bind("keyup change cut paste",function(){o()}),e(window).bind("resize",function(){var e=parseInt(r.width(),10);a.width()!==e&&(a.css({width:e+"px"}),o())}),r.bind("blur",function(){i()}),r.bind("updateHeight",function(){n(),o()}),e(function(){o()})})}};e.fn.flexible=function(n){return t[n]?t[n].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof n&&n?void e.error("Method "+n+" does not exist on jQuery.flexible"):t.init.apply(this,arguments)}}(jQuery),function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof exports?require("jquery"):jQuery)}(function(e){"use strict";function t(e){return"string"==typeof e?parseInt(e,10):~~e}var n={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,includePadding:!1},o=0,i=function(){var e=o++;return function(t){var n=".perfect-scrollbar-"+e;return void 0===t?n:t+n}},r="WebkitAppearance"in document.documentElement.style;e.fn.perfectScrollbar=function(o,a){return this.each(function(){function l(e,n){var o=e+n,i=C-q;U=0>o?0:o>i?i:o;var r=t(U*(P-C)/(C-q));M.scrollTop(r)}function s(e,n){var o=e+n,i=k-A;
+
+D=0>o?0:o>i?i:o;var r=t(D*(I-k)/(k-A));M.scrollLeft(r)}function c(e){return S.minScrollbarLength&&(e=Math.max(e,S.minScrollbarLength)),S.maxScrollbarLength&&(e=Math.min(e,S.maxScrollbarLength)),e}function u(){var e={width:R};e.left=N?M.scrollLeft()+k-I:M.scrollLeft(),W?e.bottom=B-M.scrollTop():e.top=F+M.scrollTop(),Y.css(e);var t={top:M.scrollTop(),height:z};Z?t.right=N?I-M.scrollLeft()-$-V.outerWidth():$-M.scrollLeft():t.left=N?M.scrollLeft()+2*k-I-J-V.outerWidth():J+M.scrollLeft(),K.css(t),_.css({left:D,width:A-Q}),V.css({top:U,height:q-ee})}function d(){M.removeClass("ps-active-x"),M.removeClass("ps-active-y"),k=S.includePadding?M.innerWidth():M.width(),C=S.includePadding?M.innerHeight():M.height(),I=M.prop("scrollWidth"),P=M.prop("scrollHeight"),!S.suppressScrollX&&I>k+S.scrollXMarginOffset?(O=!0,R=k-G,A=c(t(R*k/I)),D=t(M.scrollLeft()*(R-A)/(I-k))):(O=!1,A=0,D=0,M.scrollLeft(0)),!S.suppressScrollY&&P>C+S.scrollYMarginOffset?(j=!0,z=C-te,q=c(t(z*C/P)),U=t(M.scrollTop()*(z-q)/(P-C))):(j=!1,q=0,U=0,M.scrollTop(0)),D>=R-A&&(D=R-A),U>=z-q&&(U=z-q),u(),O&&M.addClass("ps-active-x"),j&&M.addClass("ps-active-y")}function f(){var t,n,o=function(e){s(t,e.pageX-n),d(),e.stopPropagation(),e.preventDefault()},i=function(){Y.removeClass("in-scrolling"),e(X).unbind(H("mousemove"),o)};_.bind(H("mousedown"),function(r){n=r.pageX,t=_.position().left,Y.addClass("in-scrolling"),e(X).bind(H("mousemove"),o),e(X).one(H("mouseup"),i),r.stopPropagation(),r.preventDefault()}),t=n=null}function p(){var t,n,o=function(e){l(t,e.pageY-n),d(),e.stopPropagation(),e.preventDefault()},i=function(){K.removeClass("in-scrolling"),e(X).unbind(H("mousemove"),o)};V.bind(H("mousedown"),function(r){n=r.pageY,t=V.position().top,K.addClass("in-scrolling"),e(X).bind(H("mousemove"),o),e(X).one(H("mouseup"),i),r.stopPropagation(),r.preventDefault()}),t=n=null}function h(e,t){var n=M.scrollTop();if(0===e){if(!j)return!1;if(0===n&&t>0||n>=P-C&&0>t)return!S.wheelPropagation}var o=M.scrollLeft();if(0===t){if(!O)return!1;if(0===o&&0>e||o>=I-k&&e>0)return!S.wheelPropagation}return!0}function g(e,t){var n=M.scrollTop(),o=M.scrollLeft(),i=Math.abs(e),r=Math.abs(t);if(r>i){if(0>t&&n===P-C||t>0&&0===n)return!S.swipePropagation}else if(i>r&&(0>e&&o===I-k||e>0&&0===o))return!S.swipePropagation;return!0}function m(){function e(e){var t=e.originalEvent.deltaX,n=-1*e.originalEvent.deltaY;return(void 0===t||void 0===n)&&(t=-1*e.originalEvent.wheelDeltaX/6,n=e.originalEvent.wheelDeltaY/6),e.originalEvent.deltaMode&&1===e.originalEvent.deltaMode&&(t*=10,n*=10),t!==t&&n!==n&&(t=0,n=e.originalEvent.wheelDelta),[t,n]}function t(t){if(r||!(M.find("select:focus").length>0)){var o=e(t),i=o[0],a=o[1];n=!1,S.useBothWheelAxes?j&&!O?(M.scrollTop(a?M.scrollTop()-a*S.wheelSpeed:M.scrollTop()+i*S.wheelSpeed),n=!0):O&&!j&&(M.scrollLeft(i?M.scrollLeft()+i*S.wheelSpeed:M.scrollLeft()-a*S.wheelSpeed),n=!0):(M.scrollTop(M.scrollTop()-a*S.wheelSpeed),M.scrollLeft(M.scrollLeft()+i*S.wheelSpeed)),d(),n=n||h(i,a),n&&(t.stopPropagation(),t.preventDefault())}}var n=!1;void 0!==window.onwheel?M.bind(H("wheel"),t):void 0!==window.onmousewheel&&M.bind(H("mousewheel"),t)}function w(){var t=!1;M.bind(H("mouseenter"),function(){t=!0}),M.bind(H("mouseleave"),function(){t=!1});var n=!1;e(X).bind(H("keydown"),function(o){if((!o.isDefaultPrevented||!o.isDefaultPrevented())&&t){for(var i=document.activeElement?document.activeElement:X.activeElement;i.shadowRoot;)i=i.shadowRoot.activeElement;if(!e(i).is(":input,[contenteditable]")){var r=0,a=0;switch(o.which){case 37:r=-30;break;case 38:a=30;break;case 39:r=30;break;case 40:a=-30;break;case 33:a=90;break;case 32:case 34:a=-90;break;case 35:a=o.ctrlKey?-P:-C;break;case 36:a=o.ctrlKey?M.scrollTop():C;break;default:return}M.scrollTop(M.scrollTop()-a),M.scrollLeft(M.scrollLeft()+r),n=h(r,a),n&&o.preventDefault()}}})}function v(){function e(e){e.stopPropagation()}V.bind(H("click"),e),K.bind(H("click"),function(e){var n=t(q/2),o=e.pageY-K.offset().top-n,i=C-q,r=o/i;0>r?r=0:r>1&&(r=1),M.scrollTop((P-C)*r)}),_.bind(H("click"),e),Y.bind(H("click"),function(e){var n=t(A/2),o=e.pageX-Y.offset().left-n,i=k-A,r=o/i;0>r?r=0:r>1&&(r=1),M.scrollLeft((I-k)*r)})}function y(){function t(){var e=window.getSelection?window.getSelection():document.getSlection?document.getSlection():{rangeCount:0};return 0===e.rangeCount?null:e.getRangeAt(0).commonAncestorContainer}function n(){i||(i=setInterval(function(){return L()?(M.scrollTop(M.scrollTop()+r.top),M.scrollLeft(M.scrollLeft()+r.left),void d()):void clearInterval(i)},50))}function o(){i&&(clearInterval(i),i=null),Y.removeClass("in-scrolling"),K.removeClass("in-scrolling")}var i=null,r={top:0,left:0},a=!1;e(X).bind(H("selectionchange"),function(){e.contains(M[0],t())?a=!0:(a=!1,o())}),e(window).bind(H("mouseup"),function(){a&&(a=!1,o())}),e(window).bind(H("mousemove"),function(e){if(a){var t={x:e.pageX,y:e.pageY},i=M.offset(),l={left:i.left,right:i.left+M.outerWidth(),top:i.top,bottom:i.top+M.outerHeight()};t.x<l.left+3?(r.left=-5,Y.addClass("in-scrolling")):t.x>l.right-3?(r.left=5,Y.addClass("in-scrolling")):r.left=0,t.y<l.top+3?(r.top=5>l.top+3-t.y?-5:-20,K.addClass("in-scrolling")):t.y>l.bottom-3?(r.top=5>t.y-l.bottom+3?5:20,K.addClass("in-scrolling")):r.top=0,0===r.top&&0===r.left?o():n()}})}function b(t,n){function o(e,t){M.scrollTop(M.scrollTop()-t),M.scrollLeft(M.scrollLeft()-e),d()}function i(){w=!0}function r(){w=!1}function a(e){return e.originalEvent.targetTouches?e.originalEvent.targetTouches[0]:e.originalEvent}function l(e){var t=e.originalEvent;return t.targetTouches&&1===t.targetTouches.length?!0:t.pointerType&&"mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE?!0:!1}function s(e){if(l(e)){v=!0;var t=a(e);f.pageX=t.pageX,f.pageY=t.pageY,p=(new Date).getTime(),null!==m&&clearInterval(m),e.stopPropagation()}}function c(e){if(!w&&v&&l(e)){var t=a(e),n={pageX:t.pageX,pageY:t.pageY},i=n.pageX-f.pageX,r=n.pageY-f.pageY;o(i,r),f=n;var s=(new Date).getTime(),c=s-p;c>0&&(h.x=i/c,h.y=r/c,p=s),g(i,r)&&(e.stopPropagation(),e.preventDefault())}}function u(){!w&&v&&(v=!1,clearInterval(m),m=setInterval(function(){return L()?.01>Math.abs(h.x)&&.01>Math.abs(h.y)?void clearInterval(m):(o(30*h.x,30*h.y),h.x*=.8,void(h.y*=.8)):void clearInterval(m)},10))}var f={},p=0,h={},m=null,w=!1,v=!1;t&&(e(window).bind(H("touchstart"),i),e(window).bind(H("touchend"),r),M.bind(H("touchstart"),s),M.bind(H("touchmove"),c),M.bind(H("touchend"),u)),n&&(window.PointerEvent?(e(window).bind(H("pointerdown"),i),e(window).bind(H("pointerup"),r),M.bind(H("pointerdown"),s),M.bind(H("pointermove"),c),M.bind(H("pointerup"),u)):window.MSPointerEvent&&(e(window).bind(H("MSPointerDown"),i),e(window).bind(H("MSPointerUp"),r),M.bind(H("MSPointerDown"),s),M.bind(H("MSPointerMove"),c),M.bind(H("MSPointerUp"),u)))}function x(){M.bind(H("scroll"),function(){d()})}function T(){M.unbind(H()),e(window).unbind(H()),e(X).unbind(H()),M.data("perfect-scrollbar",null),M.data("perfect-scrollbar-update",null),M.data("perfect-scrollbar-destroy",null),_.remove(),V.remove(),Y.remove(),K.remove(),M=Y=K=_=V=O=j=k=C=I=P=A=D=B=W=F=q=U=$=Z=J=N=H=null}function E(){d(),x(),f(),p(),v(),y(),m(),(ne||oe)&&b(ne,oe),S.useKeyboard&&w(),M.data("perfect-scrollbar",M),M.data("perfect-scrollbar-update",d),M.data("perfect-scrollbar-destroy",T)}var S=e.extend(!0,{},n),M=e(this),L=function(){return!!M};if("object"==typeof o?e.extend(!0,S,o):a=o,"update"===a)return M.data("perfect-scrollbar-update")&&M.data("perfect-scrollbar-update")(),M;if("destroy"===a)return M.data("perfect-scrollbar-destroy")&&M.data("perfect-scrollbar-destroy")(),M;if(M.data("perfect-scrollbar"))return M.data("perfect-scrollbar");M.addClass("ps-container");var k,C,I,P,O,A,D,R,j,q,U,z,N="rtl"===M.css("direction"),H=i(),X=this.ownerDocument||document,Y=e("<div class='ps-scrollbar-x-rail'>").appendTo(M),_=e("<div class='ps-scrollbar-x'>").appendTo(Y),B=t(Y.css("bottom")),W=B===B,F=W?null:t(Y.css("top")),Q=t(Y.css("borderLeftWidth"))+t(Y.css("borderRightWidth")),G=t(Y.css("marginLeft"))+t(Y.css("marginRight")),K=e("<div class='ps-scrollbar-y-rail'>").appendTo(M),V=e("<div class='ps-scrollbar-y'>").appendTo(K),$=t(K.css("right")),Z=$===$,J=Z?null:t(K.css("left")),ee=t(K.css("borderTopWidth"))+t(K.css("borderBottomWidth")),te=t(K.css("marginTop"))+t(K.css("marginBottom")),ne="ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch,oe=null!==window.navigator.msMaxTouchPoints;return E(),M})}}); })(this);
 
 // WCF.js
-(function (window, undefined) { })(this);
+(function (window, undefined) {"use strict";function wcfEval(expression){return eval(expression)}!function(){var t=jQuery.fn.data;jQuery.fn.data=function(e){if(e)switch(typeof e){case"object":for(var i in e)if(i.match(/ID$/)){var n=e[i];delete e[i],i=i.replace(/ID$/,"-id"),e[i]=n}arguments[0]=e;break;case"string":e.match(/ID$/)&&(arguments[0]=e.replace(/ID$/,"-id"))}var s=t.apply(this,arguments);if(void 0===e)for(var i in s)i.match(/Id$/)&&(s[i.replace(/Id$/,"ID")]=s[i],delete s[i]);return s},window.console||(window.console={});for(var e=["log","info","warn","exception","assert","dir","dirxml","trace","group","groupEnd","groupCollapsed","profile","profileEnd","count","clear","time","timeEnd","timeStamp","table","error"],i=0;i<e.length;i++)"undefined"==typeof console[e[i]]&&(console[e[i]]=function(){});"undefined"==typeof console.debug&&(console.debug=function(t){console.log(t)})}(),String.prototype.hashCode=function(){var t,e=0;if(this.length)for(var i=0,n=this.length;n>i;i++)t=this.charCodeAt(i),e=(e<<5)-e+t,e&=e;return e},window.shuffle=function(t){for(var e,i,n=t.length;0!==n;)i=Math.floor(Math.random()*n),n-=1,e=t[n],t[n]=t[i],t[i]=e;return this},function(t){var e=navigator.userAgent.toLowerCase(),i=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[],n={browser:i[1]||"",version:i[2]||"0"},s={};n.browser&&(s[n.browser]=!0,s.version=n.version),s.chrome?s.webkit=!0:s.webkit&&(s.safari=!0),t.browser=t.browser||{},t.browser=$.extend(t.browser,s),t.browser.touch=!!("ontouchstart"in window)||!!("msMaxTouchPoints"in window.navigator)&&window.navigator.msMaxTouchPoints>0,t.browser.smartphone="bottom"==$("html").css("caption-side"),t.browser.mozilla&&e.match(/trident/)&&(t.browser.mozilla=!1,t.browser.msie=!0),t.browser.iOS=/\((ipad|iphone|ipod);/.test(e),t.browser.iOS&&$("html").addClass("iOS"),t.browser.android=-1!==e.indexOf("android"),t.browser.editor="redactor",t.browser.ckeditor=!1,t.browser.redactor=!0,t.browser.iOS&&(t.fn.focus=function(t,e){return arguments.length>0?this.on("focus",null,t,e):this.trigger("focus")})}(jQuery),window.WCF={},$.extend(!0,{removeArrayValue:function(t,e){return $.grep(t,function(t){return e!==t})},wcfEscapeID:function(t){return t.replace(/(:|\.)/g,"\\$1")},wcfIsset:function(t){return!!$("#"+$.wcfEscapeID(t)).length},getLength:function(t){var e=0;for(var i in t)t.hasOwnProperty(i)&&e++;return e}}),$.fn.extend({getTagName:function(){return this.length?this.get(0).tagName.toLowerCase():""},getDimensions:function(t){var e={},i={},n=!1;switch(this.is(":hidden")&&(e=WCF.getInlineCSS(this),n=!0,this.css({display:"block",visibility:"hidden"})),t){case"inner":i={height:this.innerHeight(),width:this.innerWidth()};break;case"outer":i={height:this.outerHeight(),width:this.outerWidth()};break;default:i={height:this.height(),width:this.width()}}return n&&WCF.revertInlineCSS(this,e,["display","visibility"]),i},getOffsets:function(t){var e={},i={},n=!1;switch(this.is(":hidden")&&(e=WCF.getInlineCSS(this),n=!0,this.css({display:"block",visibility:"hidden"})),t){case"offset":i=this.offset();break;case"position":default:i=this.position()}return n&&WCF.revertInlineCSS(this,e,["display","visibility"]),i},makePositioned:function(t,e){"absolute"!=t&&"fixed"!=t&&(t="absolute");var i=this.getOffsets("position");return this.css({position:t,left:i.left,margin:0,top:i.top}),e&&this.remove().appentTo("body"),this},disable:function(){return this.attr("disabled","disabled")},enable:function(){return this.removeAttr("disabled")},wcfIdentify:function(){return this.attr("id")||this.attr("id",WCF.getRandomID()),this.attr("id")},getCaret:function(){if(this.is("input")){if("text"!=this.attr("type")&&"password"!=this.attr("type"))return-1}else if(!this.is("textarea"))return-1;var t=0,e=this.get(0);if(document.selection){this.focus();var i=document.selection.createRange();i.moveStart("character",-this.val().length),t=i.text.length}else(e.selectionStart||"0"==e.selectionStart)&&(t=parseInt(e.selectionStart));return t},setCaret:function(t){if(this.is("input")){if("text"!=this.attr("type")&&"password"!=this.attr("type"))return!1}else if(!this.is("textarea"))return!1;var e=this.get(0);if(this.focus(),document.selection){var i=document.selection.createRange();i.moveStart("character",t),i.moveEnd("character",0),i.select()}else(e.selectionStart||"0"==e.selectionStart)&&(e.selectionStart=t,e.selectionEnd=t);return!0},wcfDropIn:function(t,e,i){return t||(t="up"),i&&parseInt(i)||(i=200),this.show(WCF.getEffect(this,"drop"),{direction:t},i,e)},wcfDropOut:function(t,e,i){return t||(t="down"),i&&parseInt(i)||(i=200),this.hide(WCF.getEffect(this,"drop"),{direction:t},i,e)},wcfBlindIn:function(t,e,i){return t||(t="vertical"),i&&parseInt(i)||(i=200),this.show(WCF.getEffect(this,"blind"),{direction:t},i,e)},wcfBlindOut:function(t,e,i){return t||(t="vertical"),i&&parseInt(i)||(i=200),this.hide(WCF.getEffect(this,"blind"),{direction:t},i,e)},wcfHighlight:function(t,e){return this.effect("highlight",t,600,e)},wcfFadeIn:function(t,e){return e&&parseInt(e)||(e=200),this.show(WCF.getEffect(this,"fade"),{},e,t)},wcfFadeOut:function(t,e){return e&&parseInt(e)||(e=200),this.hide(WCF.getEffect(this,"fade"),{},e,t)},cssAsNumber:function(t){if(this.length){var e=this.css(t);if(void 0!==e)return parseInt(e.replace(/px$/,""))}return 0}}),$.extend(WCF,{activeDialogs:0,_idCounter:0,getRandomID:function(){var t="";do t="wcf"+this._idCounter++;while($.wcfIsset(t));return t},inArray:function(t,e){return-1!=$.inArray(t,e)},getEffect:function(t,e){return t.is("tr")?"highlight":e},getInlineCSS:function(t){var e={},i=t.attr("style");if(!i)return{};i=i.split(";");for(var n=0,s=i.length;s>n;n++){var a=$.trim(i[n]);""!=a&&(a=a.split(":"),e[$.trim(a[0])]=$.trim(a[1]))}return e},revertInlineCSS:function(t,e,i){for(var n=0,s=i.length;s>n;n++){var a=i[n];e[a]?t.css(a,e[a]):t.css(a,"")}},getUUID:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0,i="x"==t?e:3&e|8;return i.toString(16)})},base64toBlob:function(t,e,i){e=e||"",i=i||512;for(var n=atob(t),s=[],a=0;a<n.length;a+=i){for(var o=n.slice(a,a+i),r=new Array(o.length),l=0;l<o.length;l++)r[l]=o.charCodeAt(l);var c=new Uint8Array(r);s.push(c)}return new Blob(s,{type:e})},convertLegacyURL:function(t){return URL_LEGACY_MODE?t:t.replace(/^index\.php\/(.*?)\/\?/,function(t,e){for(var i=e.split(/([A-Z][a-z0-9]+)/),n="",s=0,a=i.length;a>s;s++){var o=i[s].trim();o.length&&(n.length&&(n+="-"),n+=o.toLowerCase())}return"index.php?"+n+"/&"})}}),WCF.Browser={_isChrome:null,isChrome:function(){return null===this._isChrome&&(this._isChrome=!1,/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())&&(this._isChrome=!0)),this._isChrome}},WCF.Dropdown={_callbacks:{},_didInit:!1,_dropdowns:{},_menuContainer:null,_menus:{},init:function(){null===this._menuContainer&&(this._menuContainer=$('<div id="dropdownMenuContainer" />').appendTo(document.body));var t=this;$(".dropdownToggle:not(.jsDropdownEnabled)").each(function(e,i){t.initDropdown($(i),!1)}),this._didInit||(this._didInit=!0,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(t){var e=$(t.currentTarget);e.find(".dropdown.dropdownOpen").each(function(t,i){var n=$(i),s=n.wcfIdentify(),a=n.offset(),o=e.offset(),r=$(i).height()/2;a.top+r<=o.top?WCF.Dropdown.toggleDropdown(s):a.top>=o.top+e.height()?WCF.Dropdown.toggleDropdown(s):a.left<=o.left?WCF.Dropdown.toggleDropdown(s):a.left>=o.left+e.width()?WCF.Dropdown.toggleDropdown(s):WCF.Dropdown.setAlignmentByID(n.wcfIdentify())})},_scroll:function(){for(var t in this._dropdowns){var e=this._dropdowns[t];e.data("isOverlayDropdownButton")&&e.hasClass("dropdownOpen")&&this.setAlignmentByID(t)}},initDropdown:function(t,e){if(!t.hasClass("jsDropdownEnabled")&&!t.data("target")){var i=t.parents(".dropdown");if(!i.length)return void console.debug("[WCF.Dropdown] Invalid dropdown passed, button '"+t.wcfIdentify()+"' does not have a parent with .dropdown, aborting.");var n=t.next(".dropdownMenu");if(!n.length)return void console.debug("[WCF.Dropdown] Invalid dropdown passed, dropdown '"+i.wcfIdentify()+"' does not have a dropdown menu, aborting.");n.detach().appendTo(this._menuContainer);var s=i.wcfIdentify();this._dropdowns[s]||(t.addClass("jsDropdownEnabled").click($.proxy(this._toggle,this)),this._dropdowns[s]=i,this._menus[s]=n,s.match(/^wcf\d+$/)||n.attr("data-source",s)),t.data("target",s),e&&t.trigger("click")}},removeDropdown:function(t){this._menus[t]&&($(this._menus[t]).remove(),delete this._menus[t],delete this._dropdowns[t])},initDropdownFragment:function(t,e){var i=t.wcfIdentify();return this._dropdowns[i]?void console.debug("[WCF.Dropdown] Cannot register dropdown identified by '"+i+"' as a fragement."):(this._dropdowns[i]=t,void(this._menus[i]=e.detach().appendTo(this._menuContainer)))},registerCallback:function(t,e){return $.isFunction(e)?(this._callbacks[t]||(this._callbacks[t]=[]),void this._callbacks[t].push(e)):(console.debug("[WCF.Dropdown] Callback for '"+t+"' is invalid"),!1)},_toggle:function(t,e){var i=null===t?e:$(t.currentTarget).data("target"),n=this._dropdowns[i];if(n&&void 0===n.data("isOverlayDropdownButton")){var s=n.parents(".dialogContent");n.data("isOverlayDropdownButton",s.length>0),s.length&&s.on("scroll",this._dialogScroll)}for(var a in this._dropdowns){var o=this._dropdowns[a],r=this._menus[a];o.hasClass("dropdownOpen")?(o.removeClass("dropdownOpen"),r.removeClass("dropdownOpen"),this._notifyCallbacks(a,"close")):a===i&&r[0].children.length>0&&(o.addClass("dropdownOpen"),r.addClass("dropdownOpen"),this._notifyCallbacks(a,"open"),this.setAlignment(o,r))}return WCF.Dropdown.Interactive.Handler.closeAll(),null!==t?(t.stopPropagation(),!1):void 0},toggleDropdown:function(t){this._toggle(null,t)},getDropdown:function(t){return this._dropdowns[t]?this._dropdowns[t]:null},getDropdownMenu:function(t){return this._menus[t]?this._menus[t]:null},setAlignmentByID:function(t){var e=this.getDropdown(t);null===e&&console.debug("[WCF.Dropdown] Unable to find dropdown identified by '"+t+"'");var i=this.getDropdownMenu(t);null===i&&console.debug("[WCF.Dropdown] Unable to find dropdown menu identified by '"+t+"'"),this.setAlignment(e,i)},setAlignment:function(t,e){e.data("isInitialized")||e.data("isInitialized",!0).css({left:0,top:0});var i=t.getDimensions("outer"),n=t.getOffsets("offset"),s=e.getDimensions("outer"),a=$(window).width(),o=t.find(".dropdownToggle");o.hasClass("dropdownCaptionTextarea")&&(i=o.getDimensions("outer"));var r="left";n.left+s.width>a&&(r="right");var l="auto",c="auto";if("left"===r?(e.removeClass("dropdownArrowRight"),l=n.left):(e.addClass("dropdownArrowRight"),c=a-(n.left+i.width)),"rtl"==WCF.Language.get("wcf.global.pageDirection")){var h=l,d=c;"auto"==l?e.removeClass("dropdownArrowRight"):(c=a-(n.left+i.width),l="auto",c+s.width>a&&(l=h,c=d,e.addClass("dropdownArrowRight")))}"auto"==l?c+="px":l+="px";var u=!0;e.hasClass("dropdownOpen")&&(u=!1,e.removeClass("dropdownOpen"));var p="auto",_=n.top+i.height+7;if($.browser.smartphone){var r="bottom",f=!1,g=$(window).height(),m=_+s.height;if(m>g){var v=n.top+10-s.height;if(v>=0)r="top";else{f=!0;var b=Math.abs(v),w=Math.abs(m-g);r=b>=w?"bottom":"top"}}if("top"==r)p=$(window).height()-n.top+10,_="auto",f&&(_=0,e.children("ul.scrollableDropdownMenu").css("max-height",p)),e.addClass("dropdownArrowBottom");else{if(f){p=0;var C=e.children("ul.scrollableDropdownMenu");C.css("max-height",Math.min(C.css("max-height").replace(/px$/,""),g-_))}e.removeClass("dropdownArrowBottom")}}else _+s.height>$(window).height()+$(document).scrollTop()?(p=$(window).height()-n.top+10,_="auto",e.addClass("dropdownArrowBottom")):e.removeClass("dropdownArrowBottom");u||e.addClass("dropdownOpen"),e.css({bottom:p,left:l,right:c,top:_})},_closeAll:function(){for(var t in this._dropdowns){var e=this._dropdowns[t];e.hasClass("dropdownOpen")&&(e.removeClass("dropdownOpen"),this._menus[t].removeClass("dropdownOpen"),this._notifyCallbacks(t,"close"))}},close:function(t){this._dropdowns[t]&&(this._dropdowns[t].removeClass("dropdownOpen"),this._menus[t].removeClass("dropdownOpen"))},_notifyCallbacks:function(t,e){if(this._callbacks[t])for(var i=0,n=this._callbacks[t].length;n>i;i++)this._callbacks[t][i](t,e)},destroy:function(t){return void 0===this._dropdowns[t]?!1:(this.close(t),this._menus[t].remove(),delete this._menus[t],void delete this._dropdowns[t])}},WCF.Dropdown.Interactive={},WCF.Dropdown.Interactive.Handler={_dropdownContainer:null,_dropdownMenus:{},create:function(t,e,i){null===this._dropdownContainer&&(this._dropdownContainer=$('<div class="dropdownMenuContainer" />').appendTo(document.body),WCF.CloseOverlayHandler.addCallback("WCF.Dropdown.Interactive.Handler",$.proxy(this.closeAll,this)));var n=new WCF.Dropdown.Interactive.Instance(this._dropdownContainer,t,e,i);return this._dropdownMenus[e]=n,n},open:function(t){return this._dropdownMenus[t]?(this._dropdownMenus[t].open(),!0):!1},close:function(t){return this._dropdownMenus[t]?(this._dropdownMenus[t].close(),!0):!1},closeAll:function(){$.each(this._dropdownMenus,function(t,e){e.close()})}},WCF.Dropdown.Interactive.Instance=Class.extend({_container:null,_itemList:null,_linkList:null,_options:{},_pointer:null,_triggerElement:null,init:function(t,e,i,n){this._options=n||{},this._triggerElement=e;var s=null;if(n.staticDropdown===!0)this._container=this._triggerElement.find(".interactiveDropdownStatic:eq(0)").data("source",i).click(function(t){t.stopPropagation()});else{this._container=$('<div class="interactiveDropdown" data-source="'+i+'" />').click(function(t){t.stopPropagation()});var a=$('<div class="interactiveDropdownHeader" />').appendTo(this._container);$('<span class="interactiveDropdownTitle">'+n.title+"</span>").appendTo(a),this._linkList=$('<ul class="interactiveDropdownLinks"></ul>').appendTo(a),s=$('<div class="interactiveDropdownItemsContainer" />').appendTo(this._container),this._itemList=$('<ul class="interactiveDropdownItems" />').appendTo(s),$('<a href="'+n.showAllLink+'" class="interactiveDropdownShowAll">'+WCF.Language.get("wcf.user.panel.showAll")+"</a>").appendTo(this._container)}this._pointer=$('<span class="pointer"><span /></span>').appendTo(this._container),$.browser.mobile||null===s||s.perfectScrollbar({suppressScrollX:!0}),this._container.appendTo(t)},getContainer:function(){return this._container},getItemList:function(){return this._itemList},getLinkList:function(){return this._linkList},open:function(){WCF.Dropdown._closeAll(),this._container.addClass("open"),this.render()},close:function(){this._container.removeClass("open")},toggle:function(){return this._container.hasClass("open")?(this.close(),!1):(WCF.Dropdown.Interactive.Handler.closeAll(),this.open(),!0)},resetItems:function(){this._itemList.empty(),this.close()},render:function(){var t=WCF.Language.get("wcf.global.pageDirection");"bottom"===$("html").css("caption-side")?this._renderMobile(t):this._renderDesktop(t)},rebuildScrollbar:function(){if(!$.browser.mobile){var t=this._itemList.parent();t.perfectScrollbar("destroy"),t.perfectScrollbar({suppressScrollX:!0})}},_renderMobile:function(){var t=this._triggerElement.getDimensions("outer"),e=Math.floor(t.width/2),i=this._triggerElement.getOffsets("offset"),n=Math.floor(this._pointer.outerWidth()/2);this._container.css({top:i.top+t.height+"px"}),this._pointer.css({left:i.left+e-n+"px"})},_renderDesktop:function(t){var e=this._triggerElement.getDimensions("outer"),i=this._triggerElement.getOffsets("offset"),n=this._container.getDimensions(),s=$(window).width(),a=null,o=null;"ltr"===t?(a=this._getPositionLeft(i,n,s),a.result||(o=this._getPositionRight(i,n,e,s),o.result?a=null:o=null)):(o=this._getPositionRight(i,n,e,s),o.result||(a=this._getPositionLeft(i,n,s),a.result?o=null:a=null)),null===o?(this._container.css({left:a.left+"px",top:i.top+e.height+"px"}),this._pointer.css({left:this._options.pointerOffset?this._options.pointerOffset:"4px"})):(this._container.css({right:o.right+"px",top:i.top+e.height+"px"}),this._pointer.css({right:this._options.pointerOffset?this._options.pointerOffset:"4px"}))},_getPositionLeft:function(t,e,i){var n=t.left,s=t.left+e.width;return{left:n,result:i>s}},_getPositionRight:function(t,e,i,n){var s=t.left+i.width-e.width,a=n-(t.left+i.width);return{result:s>0,right:a}}}),WCF.Clipboard={_actionProxy:null,_actionObjects:{},_containers:null,_containerData:{},_hasMarkedItems:!1,_markedObjectIDs:{},_page:"",_pageObjectID:0,_proxy:null,_trackedElements:{},init:function(t,e,i,n){this._page=t,this._actionObjects=i||{},this._hasMarkedItems=e>0,this._pageObjectID=parseInt(n)||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(t,e){this._initContainer(e)},this)),this._hasMarkedItems&&this._containers.length&&this._loadMarkedItems();var s=this;WCF.DOMNodeInsertedHandler.addCallback("WCF.Clipboard",function(){s._containers=$(".jsClipboardContainer").each($.proxy(function(t,e){s._initContainer(e)},s))})},_loadMarkedItems:function(){new WCF.Action.Proxy({autoSend:!0,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(){null!==this._containers&&this._loadMarkedItems()},_loadMarkedItemsSuccess:function(t,e,i){this._resetMarkings();for(var n in t.markedItems){this._markedObjectIDs[n]||(this._markedObjectIDs[n]=[]);var s=t.markedItems[n];for(var a in s)this._markedObjectIDs[n].push(s[a]);this._containers.each($.proxy(function(t,e){var i=$(e);return i.data("type")!=n?!0:(i.find("input.jsClipboardItem").each($.proxy(function(t,e){var i=$(e);WCF.inArray(i.data("objectID"),this._markedObjectIDs[n])&&(i.prop("checked",!0),i.parents(".jsClipboardObject").addClass("jsMarked"))},this)),void i.find("input.jsClipboardMarkAll").each(function(t,e){var n=!0;i.find("input.jsClipboardItem").each(function(t,e){var i=$(e);i.prop("checked")||(n=!1)}),n&&$(e).prop("checked",!0)}))},this))}this._success(t,e,i)},_resetMarkings:function(){this._containers.each($.proxy(function(t,e){var i=$(e);this._markedObjectIDs[i.data("type")]=[],i.find("input.jsClipboardItem, input.jsClipboardMarkAll").prop("checked",!1),i.find(".jsClipboardObject").removeClass("jsMarked")},this))},_initContainer:function(t){var e=$(t),i=e.wcfIdentify();this._trackedElements[i]||(e.find(".jsClipboardMarkAll").data("hasContainer",i).click($.proxy(this._markAll,this)),this._markedObjectIDs[e.data("type")]=[],this._containerData[e.data("type")]={},$.each(e.data(),$.proxy(function(t,i){t.match(/^type(.+)/)&&(this._containerData[e.data("type")][WCF.String.lcfirst(t.replace(/^type/,""))]=i)},this)),this._trackedElements[i]=[]),e.find("input.jsClipboardItem").each($.proxy(function(t,e){var n=$(e),s=n.wcfIdentify();WCF.inArray(s,this._trackedElements[i])||(this._trackedElements[i].push(s),n.data("hasContainer",i).click($.proxy(this._click,this)))},this))},_click:function(t){var e=$(t.target),i=e.data("objectID"),n=e.prop("checked")?!0:!1,s=[i];if(e.data("hasContainer"))var a=$("#"+e.data("hasContainer")),o=a.data("type");else var o=e.data("type");if(n?(this._markedObjectIDs[o].push(i),e.parents(".jsClipboardObject").addClass("jsMarked")):(this._markedObjectIDs[o]=$.removeArrayValue(this._markedObjectIDs[o],i),e.parents(".jsClipboardObject").removeClass("jsMarked")),e.data("hasContainer")){var r=!0;a.find("input.jsClipboardItem").each(function(t,e){var i=$(e);i.prop("checked")||(r=!1)}),a.find(".jsClipboardMarkAll").each(function(t,e){r?$(e).prop("checked",!0):$(e).prop("checked",!1)})}this._saveState(o,s,n)},_markAll:function(t){var e=$(t.target),i=[],n=!0;if(e.is("input")&&(n=e.prop("checked")),e.data("hasContainer"))var s=$("#"+e.data("hasContainer")),a=s.data("type");else var a=e.data("type");e.data("hasContainer")&&(s.find("input.jsClipboardItem").each($.proxy(function(t,e){var s=$(e),o=s.data("objectID");n?s.prop("checked")||(s.prop("checked",!0),this._markedObjectIDs[a].push(o),i.push(o)):s.prop("checked")&&(s.prop("checked",!1),this._markedObjectIDs[a]=$.removeArrayValue(this._markedObjectIDs[a],o),i.push(o))},this)),n?s.find(".jsClipboardObject").addClass("jsMarked"):s.find(".jsClipboardObject").removeClass("jsMarked")),this._saveState(a,i,n)},_saveState:function(t,e,i){this._proxy.setOption("data",{action:i?"mark":"unmark",containerData:this._containerData,objectIDs:e,pageClassName:this._page,pageObjectID:this._pageObjectID,type:t}),this._proxy.sendRequest()},_success:function(data,textStatus,jqXHR){var $containers={};if($(".jsClipboardEditor").each(function(index,container){for(var $container=$(container),$types=eval($container.data("types")),$i=0,$length=$types.length;$length>$i;$i++){var $typeName=$types[$i];$containers[$typeName]=$container}var $containerID=$container.wcfIdentify();WCF.CloseOverlayHandler.removeCallback($containerID),$container.empty()}),data.items)for(var $typeName in data.items)if($containers[$typeName]){var $container=$containers[$typeName],$list=$container.children("ul");0==$list.length&&($list=$("<ul />").appendTo($container));var $editor=data.items[$typeName],$label=$('<li class="dropdown"><span class="dropdownToggle button">'+$editor.label+"</span></li>").appendTo($list),$itemList=$('<ol class="dropdownMenu"></ol>').appendTo($label);for(var $itemIndex in $editor.items){var $item=$editor.items[$itemIndex],$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(t){var e=$(t.currentTarget).data("typeName");this._proxy.setOption("data",{action:"unmarkAll",type:e}),this._proxy.setOption("success",$.proxy(function(t,i,n){this._containers.each($.proxy(function(t,i){var n=$(i);return n.data("type")==e?(n.find(".jsClipboardMarkAll, .jsClipboardItem").prop("checked",!1),n.find(".jsClipboardObject").removeClass("jsMarked"),!1):void 0},this)),this._success(t,i,n),this._proxy.setOption("success",$.proxy(this._success,this)),this._loadMarkedItems()},this)),this._proxy.sendRequest()},this)),WCF.Dropdown.initDropdown($label.children(".dropdownToggle"),!1)}},_closeLists:function(){$(".jsClipboardEditor ul").removeClass("dropdownOpen")},_executeAction:function(t){var e=$(t.currentTarget),i=e.data("url");i&&(window.location.href=i);var n=!0;if(e.data("parameters").className&&e.data("parameters").actionName){if("unmarkAll"===e.data("parameters").actionName||e.data("parameters").objectIDs){var s=e.data("internalData").confirmMessage;if(s){var a=e.data("internalData").template;a&&(a=$(a)),WCF.System.Confirmation.show(s,$.proxy(function(t){if("confirm"===t){var i={};a&&a.length&&$("#wcfSystemConfirmationContent").find("input, select, textarea").each(function(t,e){var n=$(e);i[n.prop("name")]=n.val()}),this._executeAJAXActions(e,i)}},this),"",a)}else this._executeAJAXActions(e,{})}}else{var s=e.data("internalData").confirmMessage;s&&(n=!1,WCF.System.Confirmation.show(s,function(t){"confirm"===t&&e.data("container").trigger("clipboardAction",[e.data("type"),e.data("actionName"),e.data("parameters")])}))}n&&e.data("container").trigger("clipboardAction",[e.data("type"),e.data("actionName"),e.data("parameters")])},_executeAJAXActions:function(t,e){e=e||{};var i=[];"unmarkAll"!==t.data("parameters").actionName&&$.each(t.data("parameters").objectIDs,function(t,e){i.push(parseInt(e))});var n={data:e,containerData:this._containerData[t.data("type")]},s=t.data("internalData").parameters;if(void 0!==s)for(var a in s)n[a]=s[a];new WCF.Action.Proxy({autoSend:!0,data:{actionName:t.data("parameters").actionName,className:t.data("parameters").className,objectIDs:i,parameters:n},success:$.proxy(function(e){"unmarkAll"!==t.data("parameters").actionName&&t.data("container").trigger("clipboardActionResponse",[e,t.data("type"),t.data("actionName"),t.data("parameters")]),this._loadMarkedItems()},this)}),this._actionObjects[t.data("objectType")]&&this._actionObjects[t.data("objectType")][t.data("parameters").actionName]&&this._actionObjects[t.data("objectType")][t.data("parameters").actionName].triggerEffect(i)},sendRequest:function(t){var e=$(t);this._actionProxy.setOption("data",{parameters:e.data("parameters"),typeName:e.data("type")}),this._actionProxy.sendRequest()}},WCF.PeriodicalExecuter=Class.extend({_callback:null,_delay:0,_intervalID:null,_isExecuting:!1,init:function(t,e){return $.isFunction(t)?(this._callback=t,this._interval=e,void this.resume()):void console.debug("[WCF.PeriodicalExecuter] Given callback is invalid, aborting.")},_execute:function(){if(!this._isExecuting)try{this._isExecuting=!0,this._callback(this),this._isExecuting=!1}catch(t){throw this._isExecuting=!1,t}},stop:function(){this._intervalID&&clearInterval(this._intervalID)},resume:function(){this.restart()},restart:function(){this._intervalID&&this.stop(),this._intervalID=setInterval($.proxy(this._execute,this),this._interval)},setInterval:function(t){this._interval=t,this.restart()}}),WCF.LoadingOverlayHandler={_activeRequests:0,_loadingOverlay:null,_pending:null,show:function(){if(null===this._loadingOverlay){this._loadingOverlay=$('<div class="spinner"><span class="icon icon48 icon-spinner" /> <span>'+WCF.Language.get("wcf.global.loading")+"</span></div>").appendTo($("body"));var t=this._loadingOverlay.outerWidth();70>t&&(t=70),this._loadingOverlay.css({marginLeft:Math.ceil(-1*t/2),width:t}).hide()}if(this._activeRequests++,1==this._activeRequests&&null===this._pending){var e=this;this._pending=new WCF.PeriodicalExecuter(function(t){e._activeRequests&&e._loadingOverlay.stop(!0,!0).fadeIn(100),t.stop(),e._pending=null},250)}},hide:function(){this._activeRequests--,0==this._activeRequests&&(null!==this._pending&&(this._pending.stop(),this._pending=null),this._loadingOverlay.stop(!0,!0).fadeOut(100))},updateIcon:function(t,e){var i=void 0===e||e?"addClass":"removeClass";t.find(".icon")[i]("icon-spinner"),t.hasClass("icon")&&t[i]("icon-spinner")}},WCF.Action={},WCF.Action.Proxy=Class.extend({_showLoadingOverlayOnce:!1,_suppressErrors:!1,_lastRequest:null,init:function(t){this.options=$.extend(!0,{autoSend:!1,data:{},dataType:"json",after:null,init:null,jsonp:"callback",async:!0,failure:null,showLoadingOverlay:!0,success:null,suppressErrors:!1,type:"POST",url:"index.php/AJAXProxy/?t="+SECURITY_TOKEN+SID_ARG_2ND,aborted:null,autoAbortPrevious:!1},t),this.options.url=WCF.convertLegacyURL(this.options.url),this.confirmationDialog=null,this.loading=null,this._showLoadingOverlayOnce=!1,this._suppressErrors=this.options.suppressErrors===!0,this.options.autoSend&&this.sendRequest();var e=this;$(window).on("beforeunload",function(){e._suppressErrors=!0})},sendRequest:function(t){return this._init(),(t||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)}),this._lastRequest},abortPrevious:function(){null!==this._lastRequest&&(this._lastRequest.abort(),this._lastRequest=null,(this.options.showLoadingOverlay||this._showLoadingOverlayOnce)&&WCF.LoadingOverlayHandler.hide())},showLoadingOverlayOnce:function(){this._showLoadingOverlayOnce=!0},suppressErrors:function(){this._suppressErrors=!0},_init:function(){$.isFunction(this.options.init)&&this.options.init(this),(this.options.showLoadingOverlay||this._showLoadingOverlayOnce)&&WCF.LoadingOverlayHandler.show()},_failure:function(t,e,i){if("abort"==e)return void($.isFunction(this.options.aborted)&&this.options.aborted(t));try{var n=$.parseJSON(t.responseText),s=!0;if($.isFunction(this.options.failure)&&(s=this.options.failure(n,t,e,i)),!this._suppressErrors&&s!==!1){var a="";n.stacktrace?a="<br /><p>Stacktrace:</p><p>"+n.stacktrace+"</p>":n.exceptionID&&(a="<br /><p>Exception ID: <code>"+n.exceptionID+"</code></p>"),$('<div class="ajaxDebugMessage"><p>'+n.message+"</p>"+a+"</div>").wcfDialog({title:WCF.Language.get("wcf.global.error.title")})}}catch(n){var s=!0;if($.isFunction(this.options.failure)&&(s=this.options.failure(null,t,e,i)),!this._suppressErrors&&s!==!1){var o="timeout"===e?WCF.Language.get("wcf.global.error.timeout"):t.responseText;o&&"undefined"!=o&&$('<div class="ajaxDebugMessage"><p>'+o+"</p></div>").wcfDialog({title:WCF.Language.get("wcf.global.error.title")})}}this._after()},_success:function(t,e,i){$.isFunction(this.options.success)&&(t&&t.returnValues&&void 0!==t.returnValues.template&&(t.returnValues.template=$.trim(t.returnValues.template)),this.options.success(t,e,i)),this._after()},_after:function(){this._lastRequest=null,$.isFunction(this.options.after)&&this.options.after(),(this.options.showLoadingOverlay||this._showLoadingOverlayOnce)&&(WCF.LoadingOverlayHandler.hide(),this._showLoadingOverlayOnce&&(this._showLoadingOverlayOnce=!1)),WCF.DOMNodeInsertedHandler.execute(),$("a[href*=#]").each(function(t,e){var i=$(e);if(-1!=i.prop("href").indexOf("AJAXProxy")){var n=i.prop("href").substr(i.prop("href").indexOf("#")),s=document.location.toString().replace(/#.*/,"");i.prop("href",s+n)}})},setOption:function(t,e){this.options[t]=e}}),WCF.Action.SimpleProxy=Class.extend({init:function(t,e){this.options=$.extend(!0,{action:"",className:"",elements:null,eventName:"click"},t),this.callbacks=$.extend(!0,{after:null,failure:null,init:null,success:null},e),this.options.elements&&(this.proxy=new WCF.Action.Proxy(this.callbacks),this.options.elements.each($.proxy(function(t,e){$(e).bind(this.options.eventName,$.proxy(this._handleEvent,this))},this)))},_handleEvent:function(t){this.proxy.setOption("data",{actionName:this.options.action,className:this.options.className,objectIDs:[$(t.target).data("objectID")]}),this.proxy.sendRequest()}}),WCF.Action.Delete=Class.extend({_buttonSelector:"",_className:"",_containerSelector:"",_containers:[],init:function(t,e,i){this._containerSelector=e,this._className=t,this._buttonSelector=i?i:".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(){$(this._containerSelector).each(function(t,e){var i=$(e),n=i.wcfIdentify();if(!WCF.inArray(n,this._containers)){var s=i.find(this._buttonSelector);s.length&&(this._containers.push(n),s.click($.proxy(this._click,this)))}}.bind(this))},_click:function(t){var e=$(t.currentTarget);t.preventDefault(),e.data("confirmMessage")?WCF.System.Confirmation.show(e.data("confirmMessage"),$.proxy(this._execute,this),{target:e}):(WCF.LoadingOverlayHandler.updateIcon(e),this._sendRequest(e))},_didTriggerEffect:function(){},_execute:function(t,e){"cancel"!==t&&(WCF.LoadingOverlayHandler.updateIcon(e.target),this._sendRequest(e.target))},_sendRequest:function(t){this.proxy.setOption("data",{actionName:"delete",className:this._className,
+interfaceName:"wcf\\data\\IDeleteAction",objectIDs:[$(t).data("objectID")]}),this.proxy.sendRequest()},_success:function(t){this.triggerEffect(t.objectIDs)},triggerEffect:function(t){for(var e in this._containers){var i=$("#"+this._containers[e]),n=i.find(this._buttonSelector);if(WCF.inArray(n.data("objectID"),t)){var s=this;i.wcfBlindOut("up",function(){var t=$(this).remove();s._containers.splice(s._containers.indexOf(t.wcfIdentify()),1),s._didTriggerEffect(t),n.data("eventName")&&WCF.System.Event.fireEvent("com.woltlab.wcf.action.delete",n.data("eventName"),{button:n,container:t})})}}}}),WCF.Action.NestedDelete=WCF.Action.Delete.extend({triggerEffect:function(t){for(var e in this._containers){var i=$("#"+this._containers[e]);if(WCF.inArray(i.find(this._buttonSelector).data("objectID"),t))if(i.has("ol").has("li").length)i.is(":only-child")?i.parent().replaceWith(i.find("> ol")):i.replaceWith(i.find("> ol > li")),this._containers.splice(this._containers.indexOf(i.wcfIdentify()),1),this._didTriggerEffect(i);else{var n=this;i.wcfBlindOut("up",function(){$(this).remove(),n._containers.splice(n._containers.indexOf($(this).wcfIdentify()),1),n._didTriggerEffect($(this))})}}}}),WCF.Action.Toggle=Class.extend({_buttonSelector:".jsToggleButton",_className:"",_containerSelector:"",_containers:[],init:function(t,e,i){this._containerSelector=e,this._className=t,this._buttonSelector=i?i:".jsToggleButton",this._containers=[];var n={success:$.proxy(this._success,this)};this.proxy=new WCF.Action.Proxy(n),this._initElements(),WCF.DOMNodeInsertedHandler.addCallback("WCF.Action.Toggle"+this._className.hashCode(),$.proxy(this._initElements,this))},_initElements:function(){$(this._containerSelector).each($.proxy(function(t,e){var i=$(e),n=i.wcfIdentify();WCF.inArray(n,this._containers)||(this._containers.push(n),i.find(this._buttonSelector).click($.proxy(this._click,this)))},this))},_click:function(t){var e=$(t.currentTarget);t.preventDefault(),e.data("confirmMessage")?WCF.System.Confirmation.show(e.data("confirmMessage"),$.proxy(this._execute,this),{target:e}):(WCF.LoadingOverlayHandler.updateIcon(e),this._sendRequest(e))},_execute:function(t,e){"cancel"!==t&&(WCF.LoadingOverlayHandler.updateIcon(e.target),this._sendRequest(e.target))},_sendRequest:function(t){this.proxy.setOption("data",{actionName:"toggle",className:this._className,interfaceName:"wcf\\data\\IToggleAction",objectIDs:[$(t).data("objectID")]}),this.proxy.sendRequest()},_success:function(t){this.triggerEffect(t.objectIDs)},triggerEffect:function(t){for(var e in this._containers){var i=$("#"+this._containers[e]),n=i.find(this._buttonSelector);WCF.inArray(n.data("objectID"),t)&&(i.wcfHighlight(),this._toggleButton(i,n))}},_toggleButton:function(t,e){var i="";WCF.LoadingOverlayHandler.updateIcon(e,!1),e.hasClass("icon-check-empty")?(e.removeClass("icon-check-empty").addClass("icon-check"),i=e.data("disableTitle")?e.data("disableTitle"):WCF.Language.get("wcf.global.button.disable"),e.attr("title",i)):(e.removeClass("icon-check").addClass("icon-check-empty"),i=e.data("enableTitle")?e.data("enableTitle"):WCF.Language.get("wcf.global.button.enable"),e.attr("title",i)),t.toggleClass("disabled")}}),WCF.Action.Scroll=Class.extend({_callback:null,_reference:null,_target:null,_threshold:0,init:function(t,e,i,n){return this._threshold=parseInt(t),0===this._threshold?void console.debug("[WCF.Action.Scroll] Given threshold is invalid, aborting."):($.isFunction(e)&&(this._callback=e),null===this._callback?void console.debug("[WCF.Action.Scroll] Given callback is invalid, aborting."):(this._reference=$(i?i:window),this._target=$(n?n:document),this.start(),void this._scroll()))},_scroll:function(){var t=this._target.height(),e=this._reference.scrollTop(),i=this._reference.height();t-(i+e)<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 t=$.timepicker.log;$.timepicker.log=function(e){-1==e.indexOf("Error parsing the date/time string: Unexpected literal at position")&&-1==e.indexOf("Error parsing the date/time string: Unknown name at position")&&t(e)},this._convertDateFormat(),this._initDatePicker(),WCF.DOMNodeInsertedHandler.addCallback("WCF.Date.Picker",$.proxy(this._initDatePicker,this))},_convertDateFormat:function(){var t={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(e,i,n){for(var s in t)n==s&&(n=t[s]);return i+n}),this._timeFormat=WCF.Language.get("wcf.date.timeFormat").replace(/([^aAgGhHisu\\]*(?:\\.[^aAgGhHisu\\]*)*)([aAgGhHisu])/g,function(e,i,n){for(var s in t)n==s&&(n=t[s]);return i+n})},_initDatePicker:function(){$("input[type=date]:not(.jsDatePicker), input[type=datetime]:not(.jsDatePicker)").each($.proxy(function(t,e){var i=$(e),n=i.prop("name"),s=i.val(),a="datetime"==i.attr("type");i.prop("type","text").addClass("jsDatePicker"),i.data("placeholder")&&i.attr("placeholder",i.data("placeholder")),i.removeAttr("name"),i.before('<input type="hidden" id="'+i.wcfIdentify()+'DatePicker" name="'+n+'" value="'+s+'" />');var o=i.attr("max")?new Date(i.attr("max").replace(" ","T")):null,r=i.attr("min")?new Date(i.attr("min").replace(" ","T")):null,l={altField:"#"+i.wcfIdentify()+"DatePicker",altFormat:"yy-mm-dd",beforeShow:function(t,e){setTimeout(function(){e.dpDiv.position({my:"left top",at:"left bottom",collision:"none",of:t})},1)},changeMonth:!0,changeYear:!0,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:"rtl"==WCF.Language.get("wcf.global.pageDirection"),maxDate:o,minDate:r,monthNames:WCF.Language.get("__months"),monthNamesShort:WCF.Language.get("__monthsShort"),showButtonPanel:!1,onClose:function(t,e){""==t&&$(e.settings.altField).val(t)},showOtherMonths:!0,yearRange:i.hasClass("birthday")?"-100:+0":"1900:2038"};if(a){if(/[0-9]{2}:[0-9]{2}:[0-9]{2}$/.test(s)&&(s=s.replace(/:[0-9]{2}$/,""),i.val(s)),s=s.replace(" ","T"),i.data("timeOnly")){var c=s.split(":"),h=new Date;h.setHours(c[0]),h.setMinutes(c[1]),h.setSeconds(0),s=h.toString()}if(i.data("ignoreTimezone")){var d=new Date(s).getTimezoneOffset(),u=d>0?"-":"+";d=Math.abs(d);var p=Math.floor(d/60).toString(),_=(d%60).toString();u+=2==p.length?p:"0"+p,u+=":",u+=2==_.length?_:"0"+_,s=s.replace(/[+-][0-9]{2}:[0-9]{2}$/,u)}l=$.extend(l,{altFieldTimeOnly:!1,altTimeFormat:"HH:mm",controlType:"select",hourText:WCF.Language.get("wcf.date.hour"),minuteText:WCF.Language.get("wcf.date.minute"),showTime:!1,timeFormat:this._timeFormat,timeOnly:i.data("timeOnly")?!0:!1,yearRange:i.hasClass("birthday")?"-100:+0":"1900:2038"})}a?i.datetimepicker(l):i.datepicker(l),s&&(s=new Date(s),a||s.setMinutes(s.getMinutes()+s.getTimezoneOffset()),i.datepicker("setDate",s)),i.datepicker("widget").hide(),i.data("timeOnly")&&i.datepicker("widget").addClass("timeOnlyPicker")},this))}},WCF.Date.Util={gmdate:function(t){var e=t?t:new Date;return Math.round(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDay(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds())/1e3)},getTimezoneDate:function(t,e){var i=new Date(t),n=6e4*i.getTimezoneOffset();return new Date(t+n+e)}},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),6e4),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())/1e3,null===this._offset&&(this._offset=this._timestamp-TIME_NOW),this._elements.each($.proxy(this._refreshElement,this))},_refreshElement:function(t,e){var i=$(e);i.attr("title")||i.attr("title",i.text());var n=i.data("timestamp")+this._offset,s=i.data("date"),a=i.data("time"),o=i.data("offset");if(!i.data("isFutureDate"))if(n>=this._timestamp||this._timestamp<n+60)i.text(WCF.Language.get("wcf.date.relative.now"));else if(this._timestamp<n+3540){var r=Math.max(Math.round((this._timestamp-n)/60),1);i.text(WCF.Language.get("wcf.date.relative.minutes",{minutes:r}))}else if(this._timestamp<n+86400){var l=Math.round((this._timestamp-n)/3600);i.text(WCF.Language.get("wcf.date.relative.hours",{hours:l}))}else if(this._timestamp<n+518400){var c=new Date(this._date.getFullYear(),this._date.getMonth(),this._date.getDate()),h=Math.ceil((c/1e3-n)/86400),d=WCF.Date.Util.getTimezoneDate(1e3*n,1e3*o),u=d.getDay(),p=WCF.Language.get("__days")[u];i.text(WCF.Language.get("wcf.date.relative.pastDays",{days:h,day:p,time:a}))}else{var _=WCF.Language.get("wcf.date.shortDateTimeFormat");i.text(_.replace(/\%date\%/,s).replace(/\%time\%/,a))}}}),WCF.Dictionary=Class.extend({_variables:{},init:function(){this._variables={}},add:function(t,e){this._variables[t]=e},addObject:function(t){for(var e in t)this.add(e,t[e])},addDictionary:function(t){t.each($.proxy(function(t){this.add(t.key,t.value)},this))},get:function(t){return this.isset(t)?this._variables[t]:null},isset:function(t){return this._variables.hasOwnProperty(t)},remove:function(t){delete this._variables[t]},each:function(t){if($.isFunction(t))for(var e in this._variables){var i=this._variables[e],n={key:e,value:i};t(n)}},count:function(){return $.getLength(this._variables)},isEmpty:function(){return!this.count()}}),WCF.Language={_variables:new WCF.Dictionary,add:function(t,e){this._variables.add(t,e)},addObject:function(t){this._variables.addObject(t)},get:function(t,e){if(null==e)var e={};var i=this._variables.get(t);return null===i?t:"string"==typeof i?(this.add(t,new WCF.Template(i)),this.get(t,e)):("function"==typeof i.fetch&&(i=i.fetch(e)),i)}},WCF.MultipleLanguageInput=Class.extend({_availableLanguages:{},_button:null,_didInit:!1,_element:null,_insertedDataAfterInit:!1,_isEnabled:!1,_forceSelection:!1,_languageID:0,_list:null,_values:null,init:function(t,e,i,n){if(this._button=null,this._element=$("#"+$.wcfEscapeID(t)),this._forceSelection=e,this._values=i,this._availableLanguages=n,$.getLength(this._values))for(var s in this._values)this._values[s]=WCF.String.unescapeHTML(this._values[s]);if(this._languageID=LANGUAGE_ID,0==this._element.length)return void console.debug("[WCF.MultipleLanguageInput] element id '"+t+"' is unknown");var a=$.getLength(this._values)>0?!0:!1;this._insertedDataAfterInit=a,this._prepareElement(a),this._element.parents("form").submit($.proxy(this._submit,this)),this._didInit=!0},_prepareElement:function(t){this._element.wrap('<div class="dropdown preInput" />');var e=this._element.parent();this._button=$('<p class="button dropdownToggle"><span>'+WCF.Language.get("wcf.global.button.disabledI18n")+"</span></p>").prependTo(e),this._list=$('<ul class="dropdownMenu"></ul>').insertAfter(this._button),this._button.addClass(this._button.nextAll("textarea").length?"dropdownCaptionTextarea":"dropdownCaption");for(var i in this._availableLanguages)$("<li><span>"+this._availableLanguages[i]+"</span></li>").data("languageID",i).click($.proxy(this._changeLanguage,this)).appendTo(this._list);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,t),(t||this._forceSelection)&&(this._isEnabled=!0,this._list.children("li").each($.proxy(function(t,e){var i=$(e);i.data("languageID")==this._languageID&&i.trigger("click")},this))),WCF.Dropdown.registerCallback(e.wcfIdentify(),$.proxy(this._handleAction,this))},_handleAction:function(t,e){"open"===e?this._enable():this._closeSelection()},_enable:function(){if(!this._isEnabled){var t=this._button.is("p")?this._button.children("span:eq(0)"):this._button;t.addClass("active"),this._isEnabled=!0}this._list.is(":visible")&&this._showSelection()},_showSelection:function(){this._isEnabled&&this._list.children("li").each($.proxy(function(t,e){var i=$(e),n=i.data("languageID");n&&(this._values[n]&&""!=this._values[n]?i.removeClass("missingValue"):i.addClass("missingValue"))},this))},_closeSelection:function(){this._disable()},_changeLanguage:function(t){var e=$(t.currentTarget);this._insertedDataAfterInit=!0,this._didInit&&(this._values[this._languageID]=this._element.val()),this._languageID=e.data("languageID"),this._element.val(this._values[this._languageID]?this._values[this._languageID]:""),this._list.children("li").removeClass("active"),e.addClass("active"),this._button.children("span").addClass("active").text(this._availableLanguages[this._languageID]),this._didInit&&this._element.blur().focus()},_disable:function(t){void 0===t&&this._insertedDataAfterInit&&(t=null),!this._forceSelection&&this._list&&null!==t&&(this._button.children("span").removeClass("active").text(WCF.Language.get("wcf.global.button.disabledI18n")),this._values[LANGUAGE_ID]?this._element.val(this._values[LANGUAGE_ID]):this._element.val(),t&&(this._list.children("li").removeClass("active"),$(t.currentTarget).addClass("active")),this._element.blur().focus(),this._insertedDataAfterInit=!1,this._isEnabled=!1,this._values={})},_submit:function(){if(!this._isEnabled)return 3735928559;this._languageID&&(this._values[this._languageID]=this._element.val());var t=$(this._element.parents("form")[0]),e=this._element.wcfIdentify();for(var i in this._availableLanguages)void 0===this._values[i]&&(this._values[i]=""),$('<input type="hidden" name="'+e+"_i18n["+i+']" value="'+WCF.String.escapeHTML(this._values[i])+'" />').appendTo(t);this._element.removeAttr("name")}}),WCF.Number={round:function(t,e){return e=Math.pow(10,e||0),Math.round(t*e)/e}},WCF.String={addThousandsSeparator:function(t){return String(t).replace(/(^-?\d{1,3}|\d{3})(?=(?:\d{3})+(?:$|\.))/g,"$1"+WCF.Language.get("wcf.global.thousandsSeparator"))},escapeHTML:function(t){return String(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},escapeRegExp:function(t){return String(t).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")},formatNumeric:function(t,e){t=String(WCF.Number.round(t,e||2));var i=t.split(".");return t=this.addThousandsSeparator(i[0]),i.length>1&&(t+=WCF.Language.get("wcf.global.decimalPoint")+i[1]),t=t.replace("-","−")},lcfirst:function(t){return String(t).substring(0,1).toLowerCase()+t.substring(1)},ucfirst:function(t){return String(t).substring(0,1).toUpperCase()+t.substring(1)},unescapeHTML:function(t){return String(t).replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&lt;/g,"<").replace(/&gt;/g,">")}},WCF.TabMenu={_containers:{},_didInit:!1,init:function(){var t=$(".tabMenuContainer:not(.staticTabMenuContainer)"),e=this;if(t.each(function(t,i){var n=$(i),s=n.wcfIdentify();return e._containers[s]?!0:(n.data("store")&&!$("#"+n.data("store")).length&&$('<input type="hidden" name="'+n.data("store")+'" value="" id="'+n.data("store")+'" />').appendTo(n.parents("form").find(".formSubmit")),e._containers[s]=n,n.wcfTabs({active:!1,activate:function(t,e){for(var i=$(e.newPanel),n=i.closest(".tabMenuContainer"),s=n;;){if(void 0===s.data("isParent"))break;if(s.data("isParent")){s.data("store")&&$("#"+s.data("store")).val(i.attr("id"));break}s=s.data("parent")}WCF.TabMenu._didInit&&(void 0==i.data("inTabMenu")&&i.data("inTabMenu",i.parents(".dialogContainer").length),i.data("inTabMenu")||(window.history?window.history.pushState(null,document.title,window.location.toString().replace(/#.+$/,"")+"#"+i.attr("id")):location.hash="#"+i.attr("id")))}}),n.data("isParent",n.children(".tabMenuContainer, .tabMenuContent").length>0).data("parent",!1),void(n.data("isParent")||n.parent().hasClass("tabMenuContainer")&&n.data("parent",n.parent())))}),!this._didInit&&(this._selectActiveTab(),$(window).bind("hashchange",$.proxy(this.selectTabs,this)),this._selectErroneousTab()||this.selectTabs(),$.browser.mozilla&&location.hash)){var i=$(location.hash);if(i.length&&i.hasClass("tabMenuContent")){var n=i.offset();window.scrollTo(n.left,n.top)}}this._didInit=!0},reload:function(){this._containers={},this.init()},_selectErroneousTab:function(){var t=!1;for(var e in this._containers){var i=this._containers[e];if(i.find(".formError").length&&(t=!0,!i.data("isParent"))){for(;;){if(i.data("parent")===!1)break;i=i.data("parent").wcfTabs("selectTab",i.wcfIdentify())}return!0}}if(t)for(var e in this._containers){var i=this._containers[e],n=i.find(".formError:eq(0)");if(n.length){for(i.wcfTabs("selectTab",n.parents(".tabMenuContent").wcfIdentify());;){if(i.data("parent")===!1)break;i=i.data("parent").wcfTabs("selectTab",i.wcfIdentify())}return!0}}return!1},_selectActiveTab:function(){for(var t in this._containers){var e=this._containers[t];if(e.data("active")){var i=e.data("active"),n=null;if(/-/.test(i)){var s=i.split("-");i=s[0],n=s[1]}e.find(".tabMenuContent").each(function(t,s){var a=$(s);return a.wcfIdentify()==i?(e.wcfTabs("select",t),null!==n&&(a.hasClass("tabMenuContainer")?a.wcfTabs("selectTab",e.data("active")):e.wcfTabs("selectTab",e.data("active"))),!1):void 0})}}},selectTabs:function(){if(location.hash){var t=location.hash.substr(1),e=$("#"+$.wcfEscapeID(t));if(1===e.length&&e.hasClass("ui-tabs-panel")&&(e=e.parent(".ui-tabs"),e.length))return e.wcfTabs("selectTab",t),e.hasClass("ui-tabs-panel")&&(t=e.wcfIdentify(),e=e.parent(".ui-tabs"),e.length&&e.wcfTabs("selectTab",t)),!0}return!1}},WCF.Template=Class.extend({init:function(t){var e=new WCF.Dictionary,i=0;t=t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\r\n|\n|\r)/g,"\\n"),t=t.replace(/\{literal\}(.*?)\{\/literal\}/g,$.proxy(function(t){var i="@@@@@@@@@@@"+Math.random()+"@@@@@@@@@@@";return e.add(i,t.replace(/\{\/?literal\}/g,"")),i},this)),t=t.replace(/\{\*.*?\*\}/g,"");var n=function(t){for(var e=t.split(""),i={},n=!0,s="",a="",o=!1,r=!1,l=!1,c=0,h=e.length;h>c;c++){var d=e[c];n&&"="!=d&&" "!=d?s+=d:n&&"="==d?(n=!1,r=!1,o=!1,l=!1):n||r||o||" "!=d?n||!r||l||"'"!=d?n||r||o||"'"!=d?n||!o||l||'"'!=d?n||r||o||'"'!=d?n||!o&&!r||l||"\\"!=d?n||(l=!1,a+=d):(l=!0,a+=d):(o=!0,a+=d):(o=!1,a+=d):(r=!0,a+=d):(r=!1,a+=d):(n=!0,i[s]=a,a=s="")}if(i[s]=a,o||r||l)throw new Error('Syntax error in parameterList: "'+t+'"');return i},s=function(t){return t.replace(/\\n/g,"\n").replace(/\\\\/g,"\\").replace(/\\'/g,"'")};t=t.replace(/\{(\$[^\}]+?)\}/g,function(t,e){return e=s(e.replace(/\$([^.\[\(\)\]\s]+)/g,"(v['$1'])")),"' + WCF.String.escapeHTML("+e+") + '"}).replace(/\{#(\$[^\}]+?)\}/g,function(t,e){return e=s(e.replace(/\$([^.\[\(\)\]\s]+)/g,"(v['$1'])")),"' + WCF.String.formatNumeric("+e+") + '"}).replace(/\{@(\$[^\}]+?)\}/g,function(t,e){return e=s(e.replace(/\$([^.\[\(\)\]\s]+)/g,"(v['$1'])")),"' + "+e+" + '"}).replace(/\{lang\}(.+?)\{\/lang\}/g,function(t,e){return"' + WCF.Language.get('"+e+"', v) + '"}).replace(/\{include (.+?)\}/g,function(t,e){e=e.replace(/\\\\/g,"\\").replace(/\\'/g,"'");var i=n(e);if("undefined"==typeof i.file)throw new Error("Missing file attribute in include-tag");return i.file=i.file.replace(/\$([^.\[\(\)\]\s]+)/g,"(v.$1)"),"' + "+i.file+".fetch(v) + '"}).replace(/\{if (.+?)\}/g,function(t,e){return e=s(e.replace(/\$([^.\[\(\)\]\s]+)/g,"(v['$1'])")),"';\nif ("+e+") {\n        $output += '"}).replace(/\{else ?if (.+?)\}/g,function(t,e){return e=s(e.replace(/\$([^.\[\(\)\]\s]+)/g,"(v['$1'])")),"';\n}\nelse if ("+e+") {\n       $output += '"}).replace(/\{implode (.+?)\}/g,function(t,e){i++,e=e.replace(/\\\\/g,"\\").replace(/\\'/g,"'");var s=n(e);if("undefined"==typeof s.from)throw new Error("Missing from attribute in implode-tag");if("undefined"==typeof s.item)throw new Error("Missing item attribute in implode-tag");return"undefined"==typeof s.glue&&(s.glue="', '"),s.from=s.from.replace(/\$([^.\[\(\)\]\s]+)/g,"(v.$1)"),"';\nvar $implode_"+i+" = false;\nfor ($implodeKey_"+i+" in "+s.from+") {\n      v["+s.item+"] = "+s.from+"[$implodeKey_"+i+"];\n"+("undefined"!=typeof s.key?"          v["+s.key+"] = $implodeKey_"+i+";\n":"")+"      if ($implode_"+i+") $output += "+s.glue+";\n    $implode_"+i+" = true;\n        $output += '"}).replace(/\{foreach (.+?)\}/g,function(t,e){i++,e=e.replace(/\\\\/g,"\\").replace(/\\'/g,"'");var s=n(e);if("undefined"==typeof s.from)throw new Error("Missing from attribute in foreach-tag");if("undefined"==typeof s.item)throw new Error("Missing item attribute in foreach-tag");return s.from=s.from.replace(/\$([^.\[\(\)\]\s]+)/g,"(v.$1)"),"';\n$foreach_"+i+" = false;\nfor ($foreachKey_"+i+" in "+s.from+") {\n     $foreach_"+i+" = true;\n        break;\n}\nif ($foreach_"+i+") {\n      for ($foreachKey_"+i+" in "+s.from+") {\n               v["+s.item+"] = "+s.from+"[$foreachKey_"+i+"];\n"+("undefined"!=typeof s.key?"          v["+s.key+"] = $foreachKey_"+i+";\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 a in WCF.Template.callbacks)t=WCF.Template.callbacks[a](t);t=t.replace("{ldelim}","{").replace("{rdelim}","}"),e.each(function(e){t=t.replace(e.key,e.value)}),t="$output += '"+t+"';";try{this.fetch=new Function("v","v = window.$.extend({}, v, { __wcf: window.WCF, __window: window }); var $output = ''; "+t+" return $output;")}catch(e){throw console.debug("var $output = ''; "+t+" return $output;"),e}},fetch:function(){}}),WCF.Template.callbacks=[],WCF.ToggleOptions=Class.extend({_element:null,_showItems:[],_hideItems:[],_callback:null,init:function(t,e,i,n){this._element=$("#"+t),this._showItems=e,this._hideItems=i,void 0!==n&&(this._callback=n),this._element.click($.proxy(this._toggle,this)),this._toggle()},_toggle:function(){if(this._element.prop("checked")){for(var t=0,e=this._showItems.length;e>t;t++){var i=this._showItems[t];$("#"+i).show()}for(var t=0,e=this._hideItems.length;e>t;t++){var i=this._hideItems[t];$("#"+i).hide()}null!==this._callback&&this._callback()}}}),WCF.Collapsible={},WCF.Collapsible.Simple={init:function(){$(".jsCollapsible").each($.proxy(function(t,e){this._initButton(e)},this))},_initButton:function(t){var e=$(t),i=e.data("isOpen");i||$("#"+e.data("collapsibleContainer")).hide(),e.click($.proxy(this._toggle,this))},_toggle:function(t){var e=$(t.currentTarget),i=e.data("isOpen"),n=$("#"+$.wcfEscapeID(e.data("collapsibleContainer")));return i?(n.stop().wcfBlindOut("vertical",$.proxy(function(){this._toggleImage(e)},this)),i=!1):(n.stop().wcfBlindIn("vertical",$.proxy(function(){this._toggleImage(e)},this)),i=!0),e.data("isOpen",i),t.stopPropagation(),!1},_toggleImage:function(t){var e=t.find("span.icon");t.data("isOpen")?e.removeClass("icon-chevron-right").addClass("icon-chevron-down"):e.removeClass("icon-chevron-down").addClass("icon-chevron-right")}},WCF.Collapsible.Remote=Class.extend({_className:"",_containers:{},_containerData:{},_proxy:null,init:function(t){this._className=t,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(){this._getContainers().each($.proxy(function(t,e){var i=$(e),n=i.wcfIdentify();void 0===this._containers[n]&&(this._containers[n]=i,this._initContainer(n))},this))},_initContainer:function(t){var e=this._getTarget(t),i=this._getButtonContainer(t),n=this._createButton(t,i);this._containerData[t]={button:n,buttonContainer:i,isOpen:this._containers[t].data("isOpen"),target:e},this._containers[t].data("isOpen")||$("#"+t).addClass("jsCollapsed")},_getContainers:function(){},_getTarget:function(){},_getButtonContainer:function(){},_createButton:function(t,e){var i=this._containers[t].data("isOpen"),n=$('<span class="collapsibleButton jsTooltip pointer icon icon16 icon-'+(i?"chevron-down":"chevron-right")+'" title="'+WCF.Language.get("wcf.global.button.collapsible")+'">').prependTo(e);return n.data("containerID",t).click($.proxy(this._toggleContainer,this)),n},_toggleContainer:function(t){var e=$(t.currentTarget),i=e.data("containerID"),n=this._containerData[i].isOpen,s=n?"open":"close",a=n?"close":"open";this._proxy.setOption("data",{actionName:"loadContainer",className:this._className,interfaceName:"wcf\\data\\ILoadableContainerAction",objectIDs:[this._getObjectID(i)],parameters:$.extend(!0,{containerID:i,currentState:s,newState:a},this._getAdditionalParameters(i))}),this._proxy.sendRequest(),$("#"+i).toggleClass("jsCollapsed")},_exchangeIcon:function(t,e){e=e||"spinner",t.removeClass("icon-chevron-down icon-chevron-right icon-spinner").addClass("icon-"+e)},_getObjectID:function(t){return $("#"+t).data("objectID")},_getAdditionalParameters:function(){return{}},_updateContent:function(t,e){this._containerData[t].target.html(e)},_success:function(t){if(t.returnValues.containerID){var e=t.returnValues.containerID;if(this._containers[e]){this._containerData[e].isOpen=t.returnValues.isOpen?!0:!1;var i=t.returnValues.isOpen?"open":"close";this._updateContent(e,$.trim(t.returnValues.content),i),this._exchangeIcon(this._containerData[e].button,t.returnValues.isOpen?"chevron-down":"chevron-right")}}}}),WCF.Collapsible.SimpleRemote=WCF.Collapsible.Remote.extend({init:function(t){this._super(t),this._proxy=new WCF.Action.Proxy({showLoadingOverlay:!1})},_initContainer:function(t){this._super(t),this._containerData[t].isOpen||(this._containerData[t].target.hide(),this._exchangeIcon(this._containerData[t].button,"chevron-right"))},_toggleContainer:function(t){var e=$(t.currentTarget),i=e.data("containerID"),n=this._containerData[i].isOpen,s=n?"open":"close",a=n?"close":"open";this._proxy.setOption("data",{actionName:"toggleContainer",className:this._className,interfaceName:"wcf\\data\\IToggleContainerAction",objectIDs:[this._getObjectID(i)],parameters:$.extend(!0,{containerID:i,currentState:s,newState:a},this._getAdditionalParameters(i))}),this._proxy.sendRequest(),this._exchangeIcon(this._containerData[i].button,"open"===a?"chevron-down":"chevron-right"),"open"===a?this._containerData[i].target.show():this._containerData[i].target.hide(),$("#"+i).toggleClass("jsCollapsed"),this._containerData[i].isOpen="open"===a?!0:!1}}),WCF.Collapsible.Sidebar=Class.extend({_button:null,_buttonHeight:0,_isOpen:!1,_mainContainer:null,_proxy:null,_sidebar:null,_sidebarHeight:0,_sidebarName:"",_sidebarOffset:0,_userPanelHeight:0,init:function(){if(this._sidebar=$(".sidebar:eq(0)"),!this._sidebar.length)return void console.debug("[WCF.Collapsible.Sidebar] Could not find sidebar, aborting.");this._isOpen=this._sidebar.data("isOpen")?!0:!1,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:!1,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 t=$(window);this._sidebar.on("webkitTransitionEnd transitionend msTransitionEnd oTransitionEnd",function(){t.trigger("resize")})},_click:function(){this._isOpen=this._isOpen?!1:!0,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 t=$(window),e=t.scrollTop(),i=Math.max(e-this._sidebarOffset,0),n=Math.min(this._mainContainer.height(),t.height()+e-this._sidebarOffset),s=0;if(n===i)s=this._sidebarOffset+this._sidebarHeight;else{s=i+(n-i)/2;var a=Math.max(Math.min(i-this._userPanelHeight,this._userPanelHeight),0);a>0&&(s+=a/2)}n-i-this._userPanelHeight<this._buttonHeight?s-=this._buttonHeight:s=Math.max(s-this._buttonHeight/2,0),this._button.css({top:s+"px"})},_renderSidebar:function(){this._isOpen?$(".sidebarOrientationLeft, .sidebarOrientationRight").removeClass("sidebarCollapsed"):$(".sidebarOrientationLeft, .sidebarOrientationRight").addClass("sidebarCollapsed"),this._scroll(),$.browser.msie&&0===$.browser.version.indexOf("9")&&$(window).trigger("resize")}}),WCF.User={userID:0,username:"",init:function(t,e){this.userID=t,this.username=e}},WCF.Effect={},WCF.Effect.Scroll=Class.extend({scrollTo:function(t,e,i){if(!t.length)return!0;var n=t.getOffsets("offset").top,s=$(document).height(),a=$(window).height();return n>s-a&&(n=s-a,0>n&&(n=0)),i===!0?$("html,body").scrollTop(n):$("html,body").animate({scrollTop:n},400,function(t,e,i,n,s){return-n*((e=e/s-1)*e*e*e-1)+i}),!1}}),WCF.Effect.SmoothScroll=WCF.Effect.Scroll.extend({init:function(){var t=this;$(document).on("click","a[href$=#top],a[href$=#bottom]",function(){var e=$(this.hash);return t.scrollTo(e,!0),!1})}}),WCF.Effect.BalloonTooltip=Class.extend({_didInit:!1,_tooltip:null,_viewportDimensions:{},init:function(){jQuery.browser.mobile||(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=!0),$(".jsTooltip").each($.proxy(this._initTooltip,this)))},_updateViewportDimensions:function(){this._viewportDimensions=$(document).getDimensions()},_initTooltip:function(t,e){var i=$(e);if(i.hasClass("jsTooltip")){i.removeClass("jsTooltip");var n=i.attr("title");""!==n&&(i.data("tooltip",n),i.removeAttr("title"),i.hover($.proxy(this._mouseEnterHandler,this),$.proxy(this._mouseLeaveHandler,this)),i.click($.proxy(this._mouseLeaveHandler,this)))}},_mouseEnterHandler:function(t){var e,i,n=$(t.currentTarget),s=n.attr("title");if(s&&""!==s&&(n.data("tooltip",s),n.removeAttr("title")),this._tooltip.css({top:"0px",left:"0px"}),!n.data("tooltip"))return void this._tooltip.hide();this._tooltip.children("span:eq(0)").text(n.data("tooltip"));var a=this._tooltip.find(".pointer");this._tooltip.show();var o=a.outerWidth();this._tooltip.hide();var r=n.getOffsets("offset"),l=n.getDimensions("outer"),c=this._tooltip.getDimensions("outer"),h=this._tooltip.getDimensions("inner"),d=r.left+Math.ceil(l.width/2),u=Math.ceil(c.width/2),p="center";5>d-u?p="left":this._viewportDimensions.width-5<d+u&&(p="right"),r.top+l.height+c.height-$(document).scrollTop()<$(window).height()?(e=r.top+l.height+7,this._tooltip.removeClass("inverse"),a.css("top",-5)):(e=r.top-c.height-7,this._tooltip.addClass("inverse"),a.css("top",c.height));var _="rtl"==WCF.Language.get("wcf.global.pageDirection")?"right":"left";switch(p){case"center":i=Math.round(r.left-u+l.width/2),a.css(_,h.width/2-o/2+"px");break;case"left":i=r.left,"right"===_?a.css(_,h.width-o-5+"px"):a.css(_,"5px");break;case"right":i=r.left+l.width-c.width,"right"===_?a.css(_,"5px"):a.css(_,h.width-o-5+"px")}this._tooltip.css({top:e+"px",left:i+"px"}),this._tooltip.wcfFadeIn()},_mouseLeaveHandler:function(){this._tooltip.stop().hide().css({opacity:1})}}),WCF.CloseOverlayHandler={_callbacks:new WCF.Dictionary,_isListening:!1,
+addCallback:function(t,e){return this._bindListener(),this._callbacks.isset(t)?(console.debug("[WCF.CloseOverlayHandler] identifier '"+t+"' is already bound to a callback"),!1):void this._callbacks.add(t,e)},removeCallback:function(t){this._callbacks.isset(t)&&this._callbacks.remove(t)},forceExecution:function(){this._executeCallbacks()},_bindListener:function(){this._isListening||($(document.body).click($.proxy(this._executeCallbacks,this)),this._isListening=!0)},_executeCallbacks:function(){this._callbacks.each(function(t){t.value()})}},WCF.DOMNodeInsertedHandler={_callbacks:[],_isExecuting:!1,addCallback:function(t,e){this._callbacks.push(e)},_executeCallbacks:function(){if(!this._isExecuting){this._isExecuting=!0;for(var t=0,e=this._callbacks.length;e>t;t++)this._callbacks[t]();this._isExecuting=!1}},execute:function(){this._executeCallbacks()}},WCF.DOMNodeRemovedHandler={_callbacks:new WCF.Dictionary,_isExecuting:!1,_isListening:!1,addCallback:function(t,e){return this._bindListener(),this._callbacks.isset(t)?(console.debug("[WCF.DOMNodeRemovedHandler] identifier '"+t+"' is already bound to a callback"),!1):void this._callbacks.add(t,e)},removeCallback:function(t){this._callbacks.isset(t)&&this._callbacks.remove(t)},_bindListener:function(){if(!this._isListening){if(window.MutationObserver){var t=new MutationObserver(function(t){var e=!1;t.forEach(function(t){t.removedNodes.length&&(e=!0)}.bind(this)),e&&this._executeCallbacks({})}.bind(this));t.observe(document.body,{childList:!0,subtree:!0})}else $(document).bind("DOMNodeRemoved",$.proxy(this._executeCallbacks,this));this._isListening=!0}},_executeCallbacks:function(t){this._isExecuting||(this._isExecuting=!0,this._callbacks.each(function(e){e.value(t)}),this._isExecuting=!1)}},WCF.Option={},WCF.Option.Handler=Class.extend({init:function(){this._initOptions(),WCF.DOMNodeInsertedHandler.addCallback("WCF.Option.Handler",$.proxy(this._initOptions,this))},_initOptions:function(){$(".jsEnablesOptions").each($.proxy(this._initOption,this))},_initOption:function(t,e){this._change(e),$(e).change($.proxy(this._handleChange,this))},_handleChange:function(t){this._change($(t.target))},_change:function(option){option=$(option);var $disableOptions=eval(option.data("disableOptions")),$enableOptions=eval(option.data("enableOptions"));switch(option.getTagName()){case"input":switch(option.attr("type")){case"checkbox":this._execute(option.prop("checked"),$disableOptions,$enableOptions);break;case"radio":option.prop("checked")&&this._execute(!0,$disableOptions,$enableOptions)}break;case"select":var $value=option.val(),$disableOptions=$enableOptions=[];if(option.data("disableOptions").length>0)for(var $index in option.data("disableOptions")){var $item=option.data("disableOptions")[$index];$item.value==$value&&$disableOptions.push($item.option)}if(option.data("enableOptions").length>0)for(var $index in option.data("enableOptions")){var $item=option.data("enableOptions")[$index];$item.value==$value&&$enableOptions.push($item.option)}this._execute(!0,$disableOptions,$enableOptions)}},_execute:function(t,e,i){if(e.length>0)for(var n=0,s=e.length;s>n;n++){var a=e[n];if($.wcfIsset(a))this._enableOption(a,!t);else{var o=$("."+a+"Input");o.length&&this._enableOptions(o.children("dd").find("input, select, textarea"),!t)}}if(i.length>0)for(var n=0,s=i.length;s>n;n++){var a=i[n];if($.wcfIsset(a))this._enableOption(a,t);else{var o=$("."+a+"Input");o.length&&this._enableOptions(o.children("dd").find("input, select, textarea"),t)}}},_enableOption:function(t,e){this._enableOptionElement($("#"+$.wcfEscapeID(t)),e)},_enableOptionElement:function(t,e){t=$(t);var i=t.getTagName();"select"==i||"input"==i&&("checkbox"==t.attr("type")||"file"==t.attr("type")||"radio"==t.attr("type"))?e?t.enable():t.disable():e?t.removeAttr("readonly"):t.attr("readonly",!0),e?t.closest("dl").removeClass("disabled"):t.closest("dl").addClass("disabled")},_enableOptions:function(t,e){for(var i=0,n=t.length;n>i;i++)this._enableOptionElement(t[i],e)}}),WCF.PageVisibilityHandler={_callbacks:new WCF.Dictionary,_isListening:!1,_hiddenFieldName:"",addCallback:function(t,e){return this._bindListener(),this._callbacks.isset(t)?(console.debug("[WCF.PageVisibilityHandler] identifier '"+t+"' is already bound to a callback"),!1):void this._callbacks.add(t,e)},removeCallback:function(t){this._callbacks.isset(t)&&this._callbacks.remove(t)},_bindListener:function(){if(!this._isListening){var t=null;"undefined"!=typeof document.hidden?(this._hiddenFieldName="hidden",t="visibilitychange"):"undefined"!=typeof document.mozHidden?(this._hiddenFieldName="mozHidden",t="mozvisibilitychange"):"undefined"!=typeof document.msHidden?(this._hiddenFieldName="msHidden",t="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(this._hiddenFieldName="webkitHidden",t="webkitvisibilitychange"),null===t?console.debug("[WCF.PageVisibilityHandler] This browser does not support the page visibility API."):$(document).on(t,$.proxy(this._executeCallbacks,this)),this._isListening=!0}},_executeCallbacks:function(){if(!this._isExecuting){this._isExecuting=!0;var t=document[this._hiddenFieldName];this._callbacks.each(function(e){e.value(t)}),this._isExecuting=!1}}},WCF.Table={},WCF.Table.EmptyTableHandler=Class.extend({_options:{},_rowClassName:"",init:function(t,e,i){this._rowClassName=e,this._tableContainer=t,this._options=$.extend(!0,{emptyMessage:null,messageType:"info",refreshPage:!1,updatePageNumber:!1},i||{}),WCF.DOMNodeRemovedHandler.addCallback("WCF.Table.EmptyTableHandler."+e,$.proxy(this._remove,this))},_getRowCount:function(){return this._tableContainer.find("table tr."+this._rowClassName).length},_handleEmptyTable:function(){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 t=window.location.href.match(/(\?|&)pageNo=(\d+)/g);if(t){var e=t[t.length-1].match(/\d+/g);this._options.updatePageNumber>0?e++:e--,window.location=window.location.href.replace(t[t.length-1],t[t.length-1][0]+"pageNo="+e)}}else window.location.reload();else this._tableContainer.remove()},_remove:function(t){if($.getLength(t)){var e=$(t.target);if(e.hasClass(this._rowClassName)){var i=e.parents("tbody:eq(0)");1==i.children("tr").length&&this._handleEmptyTable()}}else this._getRowCount()||this._handleEmptyTable()}}),WCF.Search={},WCF.Search.Base=Class.extend({_callback:null,_caretAt:-1,_className:"",_commaSeperated:!1,_delay:0,_excludedSearchValues:[],_itemCount:0,_itemIndex:-1,_list:null,_oldSearchString:[],_proxy:null,_searchInput:null,_triggerLength:3,_timer:null,init:function(t,e,i,n,s){return null===e||void 0===e||$.isFunction(e)?(this._callback=e?e:null,this._caretAt=-1,this._delay=0,this._excludedSearchValues=[],i&&(this._excludedSearchValues=i),this._searchInput=$(t),this._searchInput.length?(this._searchInput.keydown($.proxy(this._keyDown,this)).keyup($.proxy(this._keyUp,this)).wrap('<span class="dropdown" />'),$.browser.mozilla&&$.browser.touch&&this._searchInput.on("input",$.proxy(this._keyUp,this)),this._list=$('<ul class="dropdownMenu" />').insertAfter(this._searchInput),this._commaSeperated=n?!0:!1,this._oldSearchString=[],this._itemCount=0,this._itemIndex=-1,this._proxy=new WCF.Action.Proxy({showLoadingOverlay:s!==!0?!1:!0,success:$.proxy(this._success,this),autoAbortPrevious:!0}),this._searchInput.is("input")&&this._searchInput.attr("autocomplete","off"),this._searchInput.blur($.proxy(this._blur,this)),void WCF.Dropdown.initDropdownFragment(this._searchInput.parent(),this._list)):void console.debug("[WCF.Search.Base] Selector '"+t+"' for search input is invalid, aborting.")):void console.debug("[WCF.Search.Base] The given callback is invalid, aborting.")},_blur:function(){var t=this;new WCF.PeriodicalExecuter(function(e){t._list.is(":visible")&&t._clearList(!1),e.stop()},250)},_keyDown:function(t){if(t.which===$.ui.keyCode.ENTER){var e=this._searchInput.parents(".dropdown");e.data("disableAutoFocus")?-1!==this._itemIndex&&t.preventDefault():(e.data("preventSubmit")||-1!==this._itemIndex)&&t.preventDefault()}},_keyUp:function(t){switch(t.which){case 37:case 39:return;case 38:return void this._selectPreviousItem();case 40:return void this._selectNextItem();case 13:return this._selectElement(t)}var e=this._getSearchString(t);if(""===e)this._clearList(!1);else if(e.length>=this._triggerLength){var i={data:{excludedSearchValues:this._excludedSearchValues,searchString:e}};if(this._delay){null!==this._timer&&this._timer.stop();var n=this;this._timer=new WCF.PeriodicalExecuter(function(){n._queryServer(i),n._timer.stop(),n._timer=null},this._delay)}else this._queryServer(i)}else this._clearList(!1)},_queryServer:function(t){this._searchInput.parents(".searchBar").addClass("loading"),this._proxy.setOption("data",{actionName:"getSearchResultList",className:this._className,interfaceName:"wcf\\data\\ISearchAction",parameters:this._getParameters(t)}),this._proxy.sendRequest()},setDelay:function(t){this._delay=t},_selectNextItem:function(){0!==this._itemCount&&(this._itemIndex++,this._itemIndex===this._itemCount&&(this._itemIndex=0),this._highlightSelectedElement())},_selectPreviousItem:function(){0!==this._itemCount&&(this._itemIndex--,-1===this._itemIndex&&(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(){return 0===this._itemCount?!0:(this._list.find("li.dropdownNavigationItem").trigger("click"),!1)},_getSearchString:function(t){var e=$.trim(this._searchInput.val());if(this._commaSeperated){var i=t.keyCode||t.which;if(i==$.ui.keyCode.COMMA)return"";for(var n=e.split(","),s=n.length,a=0;s>a;a++)n[a]=$.trim(n[a]);for(var a=0;s>a;a++){var o=n[a];if(!this._oldSearchString[a]){e=o;break}if(o!=this._oldSearchString[a]){e=o,this._caretAt=a;break}}this._oldSearchString=n}return e},_getParameters:function(t){return t},_success:function(t){if(this._clearList(!1),this._searchInput.parents(".searchBar").removeClass("loading"),$.getLength(t.returnValues))for(var e in t.returnValues){var i=t.returnValues[e];this._createListItem(i)}else if(!this._handleEmptyResult())return;WCF.CloseOverlayHandler.addCallback("WCF.Search.Base",$.proxy(function(){this._clearList()},this));var n=this._searchInput.parents(".dropdown").wcfIdentify();WCF.Dropdown.getDropdownMenu(n).hasClass("dropdownOpen")||WCF.Dropdown.toggleDropdown(n),this._itemIndex=-1,WCF.Dropdown.getDropdown(n).data("disableAutoFocus")||this._selectNextItem()},_handleEmptyResult:function(){return!1},_createListItem:function(t){var e=$("<li><span>"+WCF.String.escapeHTML(t.label)+"</span></li>").appendTo(this._list);return e.data("objectID",t.objectID).data("label",t.label).click($.proxy(this._executeCallback,this)),this._itemCount++,e},_executeCallback:function(t){var e=!1,i=$(t.currentTarget);if(this._commaSeperated){var n=i.data("label");this._oldSearchString[this._caretAt]=n,this._searchInput.val(this._oldSearchString.join(", ")),$.browser.webkit&&this._searchInput.css({display:"block"});var s=this._searchInput.val().toLowerCase().indexOf(n.toLowerCase())+n.length;this._searchInput.focus().setCaret(s)}else null===this._callback?this._searchInput.val(i.data("label")):e=this._callback(i.data())===!0?!0:!1;this._clearList(e)},_clearList:function(t){t&&!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(t){WCF.inArray(t,this._excludedSearchValues)||this._excludedSearchValues.push(t)},removeExcludedSearchValue:function(t){var e=$.inArray(t,this._excludedSearchValues);-1!=e&&this._excludedSearchValues.splice(e,1)}}),WCF.Search.User=WCF.Search.Base.extend({_className:"wcf\\data\\user\\UserAction",_includeUserGroups:!1,init:function(t,e,i,n,s){this._includeUserGroups=i,this._super(t,e,n,s)},_getParameters:function(t){return t.data.includeUserGroups=this._includeUserGroups?1:0,t},_createListItem:function(t){var e=this._super(t),i=null;if(t.icon?i=$(t.icon):this._includeUserGroups&&"group"===t.type&&(i=$('<span class="icon icon16 icon-group" />')),i){var n=e.find("span").detach(),s=$("<div />").addClass("box16").appendTo(e);s.append(i),s.append($("<div />").append(n))}return e.data("type",t.type),e}}),WCF.System={},WCF.System.Dependency={},WCF.System.Dependency.Manager={_callbacks:{},_loaded:[],_setupCallbacks:{},register:function(t,e){return $.isFunction(e)?void(WCF.inArray(t,this._loaded)?setTimeout(function(){e()},1):(this._callbacks[t]||(this._callbacks[t]=[]),this._callbacks[t].push(e))):void console.debug("[WCF.System.Dependency.Manager] Callback for identifier '"+t+"' is invalid, aborting.")},setup:function(t,e){return $.isFunction(e)?(this._setupCallbacks[t]||(this._setupCallbacks[t]=[]),void this._setupCallbacks[t].push(e)):void console.debug("[WCF.System.Dependency.Manager] Setup callback for identifier '"+t+"' is invalid, aborting.")},invoke:function(t){if(this._setupCallbacks[t]){for(var e=0,i=this._setupCallbacks[t].length;i>e;e++)this._setupCallbacks[t][e]();delete this._setupCallbacks[t]}if(this._loaded.push(t),this._callbacks[t]){for(var e=0,i=this._callbacks[t].length;i>e;e++)this._callbacks[t][e]();delete this._callbacks[t]}}},WCF.System.FlexibleMenu={_containers:{},_containerIDs:[],_dropdowns:{},_dropdownMenus:{},_hasHiddenItems:{},_isWorking:!1,_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), .messageTabMenu:not(.jsFlexibleMenuEnabled)").each(function(t,e){var i=$(e).addClass("jsFlexibleMenuEnabled").children("nav");i.length&&i.find("> ul:eq(0) > li").length&&WCF.System.FlexibleMenu.registerMenu(i.wcfIdentify())})},registerMenu:function(t){var e=$("#"+t);return e.length?(this._containerIDs.push(t),this._containers[t]=e,this._menuItems[t]=e.find("> ul:eq(0) > li"),this._dropdowns[t]=$('<li class="dropdown jsFlexibleMenuDropdown"><a class="icon icon16 icon-list" /></li>').data("containerID",t).click($.proxy(this._click,this)),this._dropdownMenus[t]=$('<ul class="dropdownMenu" />').appendTo(this._dropdowns[t]),this._hasHiddenItems[t]=!1,this.rebuild(t),void WCF.Dropdown.initDropdown(this._dropdowns[t].children("a"))):void console.debug("[WCF.System.FlexibleMenu] Unable to find container identified by '"+t+"', aborting.")},rebuildAll:function(){if(!this._isWorking){this._isWorking=!0;for(var t=0,e=this._containerIDs.length;e>t;t++)this.rebuild(this._containerIDs[t]);this._isWorking=!1}},rebuild:function(t){if(!this._containers[t])return void console.debug("[WCF.System.FlexibleMenu] Cannot rebuild unknown container identified by '"+t+"'");var e=this._containers[t],i=this._menuItems[t].hide(),n=i.filter(".active, .ui-state-active").show();this._hasHiddenItems[t]||this._dropdowns[t].appendTo(e.children("ul:eq(0)"));var s=this._dropdowns[t].outerWidth(!0),a=e.parent(),o=a.innerWidth();o-=a.cssAsNumber("padding-left")+a.cssAsNumber("padding-right"),o-=e.cssAsNumber("margin-left")+e.cssAsNumber("margin-right"),o-=e.cssAsNumber("padding-left")+e.cssAsNumber("padding-right"),o-=e.children("ul:eq(0)").cssAsNumber("padding-left")+e.children("ul:eq(0)").cssAsNumber("padding-right"),o-=n.outerWidth(!0),this._hasHiddenItems[t]=!1;for(var r=0;r<i.length;r++){var l=$(i[r]);if(!l.hasClass("active")&&!l.hasClass("ui-state-active")){var c=l.outerWidth(!0);if(!(o-c>0)){if(s>o){var h=l.prev();h.hasClass("active")||h.hasClass("ui-state-active")?h.prev().hide():h.hide()}this._hasHiddenItems[t]=!0;break}o-=c,l.show()}}if(this._hasHiddenItems[t]){this._dropdownMenus[t].empty();var d=this;i.each($.proxy(function(e,n){return $(n).is(":visible")?!0:void $("<li>"+$(n).html()+"</li>").data("index",e).appendTo(this._dropdownMenus[t]).click(function(e){var n=$(i[$(e.currentTarget).data("index")]);"A"===n[0].tagName?n.trigger("click"):"LI"===n[0].tagName&&n.find("a").trigger("click"),n.parent().hasClass("ui-tabs-nav")&&e.preventDefault(),setTimeout(function(){d.rebuild(t)},50)})},this))}else this._dropdowns[t].detach()}},WCF.System.Mobile={},WCF.System.Mobile.UX={_enabled:!1,_main:null,_sidebar:null,init:function(){this._enabled=!1,this._main=$("#main"),this._sidebar=this._main.find("> div > div > .sidebar"),$.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:!0}),$.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=!0,$.browser.msie&&this._sidebar.css("display","none").css("display","")},_disable:function(){this._enabled=!1,$.browser.msie&&this._sidebar.css("display","none").css("display","")},_initSidebarToggleButtons:function(){var t=this._main.hasClass("sidebarOrientationLeft"),e=this._main.hasClass("sidebarOrientationRight");if(t||e){var i="wcf.global.sidebar.show"+(t?"Left":"Right")+"Sidebar";(i===WCF.Language.get(i)||""===WCF.Language.get(i))&&(i='<span class="icon icon16 icon-double-angle-'+(t?"left":"right")+'" />');var n="wcf.global.sidebar.hide"+(t?"Left":"Right")+"Sidebar";(n===WCF.Language.get(n)||""===WCF.Language.get(n))&&(n='<span class="icon icon16 icon-double-angle-'+(t?"right":"left")+'" />');var s=this;$('<span class="button small mobileSidebarToggleButton">'+i+"</span>").appendTo($(".content")).click(function(){s._main.addClass("mobileShowSidebar")}),$('<span class="button small mobileSidebarToggleButton">'+n+"</span>").appendTo($(".sidebar")).click(function(){s._main.removeClass("mobileShowSidebar")})}},_initSearchBar:function(){var t=$(".searchBar:eq(0)"),e=this;t.click(function(){e._enabled&&t.addClass("searchBarOpen")}),this._main.click(function(){t.removeClass("searchBarOpen")})},_initButtonGroupNavigation:function(){$(".buttonGroupNavigation:not(.jsMobileButtonGroupNavigation)").each(function(t,e){var i=$(e).addClass("jsMobileButtonGroupNavigation"),n=$('<a class="dropdownLabel"><span class="icon icon24 icon-list" /></a>').prependTo(i);n.click(function(){return n.next().toggleClass("open"),!1})})},_closeMenus:function(){$(".jsMobileButtonGroupNavigation > ul.open").removeClass("open")}},WCF.System.ObjectStore={_objects:{},add:function(t,e){void 0===this._objects[t]&&(this._objects[t]=[]),this._objects[t].push(e)},invoke:function(t,e){if(this._objects[t])for(var i=0;i<this._objects[t].length;i++)e(this._objects[t][i])}},WCF.System.Captcha={_captchas:{},addCallback:function(t,e){return $.isFunction(e)?void(this._captchas[t]=e):void console.debug("[WCF.System.Captcha] Given callback is no function")},getData:function(t){return void 0===this._captchas[t]?void console.debug('[WCF.System.Captcha] Unknow captcha id "'+t+'"'):this._captchas[t]()},removeCallback:function(t){delete this._captchas[t]}},WCF.System.Page={},WCF.System.Page.Multiple=Class.extend({_cache:{},_options:{},_pageNo:1,_pages:0,_previousPageNo:0,init:function(t){this._options=$.extend({container:null,pagination:null,loadItems:null},t),this._cache={},this._pageNo=1,this._pages=0,this._previousPageNo=0,this._pagination.data("pages")&&this._pagination.wcfPages({maxPage:this._pagination.data("pages")}).on("wcfpagesswitched",$.proxy(this._showPage,this))},_showPage:function(t,e){e&&e.activePage&&(e.template||(this._previousPageNo=this._pageNo),this._pageNo=e.activePage),this._cache[this._pageNo]||e&&e.template?(this._cache[this._previousPageNo]=this._list.children().detach(),e&&e.template?this._list.html(e.template):this._list.append(this._cache[this._pageNo])):this._options.loadItems()},showPage:function(t,e){this._showPage(null,{activePage:t,template:e})},getPageNo:function(){return this._pageNo}}),WCF.System.Notification=Class.extend({_callback:null,_cssClassNames:"",_message:"",_overlay:null,_timer:null,init:function(t,e){this._cssClassNames=e||"success",this._message=t||WCF.Language.get("wcf.global.success"),this._overlay=$("#systemNotification"),this._timer=null,this._overlay.length||(this._overlay=$('<div id="systemNotification"><p></p></div>').hide().appendTo(document.body),this._overlay.children("p").click(function(){this._hide()}.bind(this)))},show:function(t,e,i,n){e=parseInt(e),e||(e=2e3),t&&$.isFunction(t)&&(this._callback=t),this._overlay.children("p").html(i||this._message),this._overlay.children("p").removeClass().addClass(n||this._cssClassNames),this._timer=new WCF.PeriodicalExecuter($.proxy(this._hide,this),e),this._overlay.wcfFadeIn(void 0,300)},_hide:function(t){t=t?t:this._timer,null!==this._callback&&this._callback(),this._overlay.wcfFadeOut(void 0,300),t.stop(),t=null}}),WCF.System.Confirmation={_callback:null,_dialog:null,_parameters:null,_visible:!1,_confirmationButton:null,show:function(t,e,i,n){if(this._visible)return void console.debug("[WCF.System.Confirmation] Confirmation dialog is already open, refusing action.");if(!$.isFunction(e))return void console.debug("[WCF.System.Confirmation] Given callback is invalid, aborting.");this._callback=e,this._parameters=i;var s=!0;null===this._dialog&&(this._createDialog(),s=!1),this._dialog.find("#wcfSystemConfirmationContent").empty().hide(),n&&n.length&&n.appendTo(this._dialog.find("#wcfSystemConfirmationContent").show()),this._dialog.find("p").text(t),this._dialog.wcfDialog({onClose:$.proxy(this._close,this),onShow:$.proxy(this._show,this),title:WCF.Language.get("wcf.global.confirmation.title")}),s&&this._dialog.wcfDialog("render"),this._confirmationButton.focus(),this._visible=!0},_createDialog:function(){this._dialog=$('<div id="wcfSystemConfirmation" class="systemConfirmation"><p /><div id="wcfSystemConfirmationContent" /></div>').hide().appendTo(document.body);var t=$('<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(t),$("<button>"+WCF.Language.get("wcf.global.confirmation.cancel")+"</button>").data("action","cancel").click($.proxy(this._click,this)).appendTo(t)},_click:function(t){this._notify($(t.currentTarget).data("action"))},_close:function(){this._visible&&this._notify("cancel")},_notify:function(t){this._visible=!1,this._dialog.wcfDialog("close"),this._confirmationButton.blur(),this._callback(t,this._parameters)},_show:function(){this._dialog.find("button.buttonPrimary").blur().focus()}},WCF.System.DisableScrolling={_depth:0,_oldOverflow:null,disable:function(){$.browser.touch||(0===this._depth&&(this._oldOverflow=$(document.body).css("overflow"),$(document.body).css("overflow","hidden")),this._depth++)},enable:function(){0!==this._depth&&(this._depth--,0===this._depth&&$(document.body).css("overflow",this._oldOverflow))}},WCF.System.DisableZoom={_depth:0,_oldViewportSettings:null,disable:function(){if(0===this._depth){var t=$("meta[name=viewport]");this._oldViewportSettings=t.attr("content"),t.attr("content",this._oldViewportSettings+",maximum-scale=1")}this._depth++},enable:function(){0!==this._depth&&(this._depth--,0===this._depth&&$("meta[name=viewport]").attr("content",this._oldViewportSettings))}},WCF.System.Fullscreen={enterFullscreen:function(t){t.requestFullscreen?t.requestFullscreen():t.msRequestFullscreen?t.msRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)},toggleFullscreen:function(t){null===this.getFullscreenElement()?this.enterFullscreen(t):this.exitFullscreen()},getFullscreenElement:function(){return document.fullscreenElement?document.fullscreenElement:document.mozFullScreenElement?document.mozFullScreenElement:document.webkitFullscreenElement?document.webkitFullscreenElement:document.msFullscreenElement?document.msFullscreenElement:null},exitFullscreen:function(){document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()},isSupported:function(){return document.documentElement.requestFullscreen||document.documentElement.msRequestFullscreen||document.documentElement.mozRequestFullScreen||document.documentElement.webkitRequestFullscreen?!0:!1}},WCF.System.PageNavigation={_button:null,_description:null,_dialog:null,_elementID:"",_elements:{},_pageNo:null,init:function(t,e){var i=$(t);if(i.length)return e=e||null,null===e||$.isFunction(e)?void this._initElements(i,e):void console.debug("[WCF.System.PageNavigation] Callback for selector '"+t+"' is invalid, aborting.")},_initElements:function(t,e){var i=this;t.each(function(t,e){var n=$(e),s=n.wcfIdentify();void 0===i._elements[s]&&(i._elements[s]=n,n.find("li.jumpTo").data("elementID",s).click($.proxy(i._click,i)))}).data("callback",e)},_click:function(t){if(this._elementID=$(t.currentTarget).data("elementID"),null===this._dialog){this._dialog=$('<div id="pageNavigationOverlay" />').hide().appendTo(document.body);var e=$("<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(e),this._pageNo=$('<input type="number" id="jsPageNavigationPageNo" value="1" min="1" max="1" class="tiny" />').keyup($.proxy(this._keyUp,this)).appendTo(e.find("dd")),this._description=$("<small></small>").insertAfter(this._pageNo);var i=$('<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(i)}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(t){if(t.which==$.ui.keyCode.ENTER&&!this._button.prop("disabled"))return void this._submit();var e=parseInt(this._pageNo.val())||0;1>e||e>this._pageNo.attr("max")?this._button.disable():this._button.enable()},_submit:function(){var t=this._elements[this._elementID];if(null===t.data("callback")){var e=t.data("link").replace(/pageNo=%d/,"pageNo="+this._pageNo.val());window.location=e}else t.data("callback")(this._pageNo.val()),this._dialog.wcfDialog("close")}},WCF.System.KeepAlive=Class.extend({init:function(t){new WCF.PeriodicalExecuter(function(t){new WCF.Action.Proxy({autoSend:!0,data:{actionName:"keepAlive",className:"wcf\\data\\session\\SessionAction"},failure:function(){t.stop()},showLoadingOverlay:!1,success:function(t){WCF.System.PushNotification.executeCallbacks(t)},suppressErrors:!0})},1e3*t)}}),WCF.System.PushNotification={_callbacks:{},addCallback:function(t,e){void 0===this._callbacks[t]&&(this._callbacks[t]=[]),this._callbacks[t].push(e)},executeCallbacks:function(t){for(var e in t.returnValues)if(void 0!==this._callbacks[e])for(var i=0;i<this._callbacks[e].length;i++)this._callbacks[e][i](t.returnValues[e])}},WCF.System.Event={_listeners:{},addListener:function(t,e,i){"undefined"==typeof this._listeners[t]&&(this._listeners[t]={}),"undefined"==typeof this._listeners[t][e]&&(this._listeners[t][e]=[]);var n=WCF.getUUID();return this._listeners[t][e].push({callback:i,uuid:n}),n},removeListener:function(t,e,i){if(this._listeners[t]&&this._listeners[t][e])for(var n=0;n<this._listeners[t][e].length;n++)if(this._listeners[t][e][n].uuid==i)return this._listeners[t][e].splice(n,1),!0;return!1},removeAllListeners:function(t,e){return this._listeners[t]&&this._listeners[t][e]?(delete this._listeners[t][e],!0):!1},fireEvent:function(t,e,i){if(i=i||{},this._listeners[t]&&this._listeners[t][e])for(var n=0;n<this._listeners[t][e].length;n++)this._listeners[t][e][n].callback(i)}},WCF.System.Worker=Class.extend({_aborted:!1,_actionName:"",_callback:null,_className:"",_dialog:null,_proxy:null,_title:"",init:function(t,e,i,n,s){this._aborted=!1,this._actionName=t,this._callback=s||null,this._className=e,this._dialog=null,this._proxy=new WCF.Action.Proxy({autoSend:!0,data:{actionName:this._actionName,className:this._className,parameters:n||{}},showLoadingOverlay:!1,success:$.proxy(this._success,this)}),this._title=i},_success:function(t){if(null===this._dialog&&(this._dialog=$("<div />").hide().appendTo(document.body),this._dialog.wcfDialog({closeConfirmMessage:WCF.Language.get("wcf.worker.abort.confirmMessage"),closeViaModal:!1,onClose:$.proxy(function(){this._aborted=!0,this._proxy.abortPrevious(),window.location.reload()},this),title:this._title})),!this._aborted)if(t.returnValues.template&&this._dialog.html(t.returnValues.template),this._dialog.find("progress").attr("value",t.returnValues.progress).text(t.returnValues.progress+"%").next("span").text(t.returnValues.progress+"%"),t.returnValues.progress<100){var e=t.returnValues.parameters||{};e.loopCount=t.returnValues.loopCount,this._proxy.setOption("data",{actionName:this._actionName,className:this._className,parameters:e}),this._proxy.sendRequest()}else if(null!==this._callback)this._callback(this,t);else{this._dialog.find(".fa-spinner").removeClass("fa-spinner").addClass("fa-check green"),this._dialog.find(".boxHeadline h1").text(WCF.Language.get("wcf.global.worker.completed"));var i=$('<div class="formSubmit" />').appendTo(this._dialog);$('<button class="buttonPrimary">'+WCF.Language.get("wcf.global.button.next")+"</button>").appendTo(i).focus().click(function(){t.returnValues.redirectURL?window.location=t.returnValues.redirectURL:window.location.reload()}),this._dialog.wcfDialog("render")}}}),WCF.InlineEditor=Class.extend({_callbacks:[],_dropdowns:{},_elements:{},_notification:null,_options:[],_proxy:null,_triggerElements:{},_updateData:[],init:function(t){var e=$(t);if(e.length){this._setOptions();for(var i="",n=0,s=this._options.length;s>n;n++)if(this._options[n].isQuickOption){i=this._options[n].optionName;break}var a=this;e.each(function(t,e){var n=$(e),s=n.wcfIdentify(),o=a._getTriggerElement(n);null!==o&&1===o.length&&(o.click($.proxy(a._show,a)).data("elementID",s),i&&o.disableSelection().data("optionName",i).dblclick($.proxy(a._click,a)),a._elements[s]=n)}),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 t in this._elements)this._hide(t)},_setOptions:function(){this._options=[]},registerCallback:function(t){$.isFunction(t)&&this._callbacks.push(t)},_getTriggerElement:function(){return null},_show:function(t){t.preventDefault();var e=$(t.currentTarget).data("elementID"),i=null;
+
+this._dropdowns[e]||(this._triggerElements[e]=i=this._getTriggerElement(this._elements[e]).addClass("dropdownToggle").wrap('<span class="dropdown" />'),this._dropdowns[e]=$('<ul class="dropdownMenu" />').insertAfter(i)),this._dropdowns[e].empty();for(var n=!1,s="",a=0,o=this._options.length;o>a;a++){var r=this._options[a];if("divider"===r.optionName)""!==s&&"divider"!==s&&($('<li class="dropdownDivider" />').appendTo(this._dropdowns[e]),s=r.optionName);else if(this._validate(e,r.optionName)||this._validateCallbacks(e,r.optionName)){var l=$("<li><span>"+r.label+"</span></li>").appendTo(this._dropdowns[e]);l.data("elementID",e).data("optionName",r.optionName).data("isQuickOption",r.isQuickOption?!0:!1).click($.proxy(this._click,this)),n=!0,s=r.optionName}}if(n){var c=this._dropdowns[e].children().last();c.hasClass("dropdownDivider")&&c.remove();var h=null,d=0;if(this._dropdowns[e].children().each(function(t,e){var i=$(e);i.hasClass("dropdownDivider")||(i.data("isQuickOption")?h=i:d++)}),!d)return h.trigger("click"),this._triggerElements[e]&&WCF.Dropdown.close(this._triggerElements[e].parents(".dropdown").wcfIdentify()),!1}return null!==i&&WCF.Dropdown.initDropdown(i,!0),!1},_validate:function(){return!1},_validateCallbacks:function(t,e){var i=this._callbacks.length;if(i)for(var n=0;i>n;n++)if(this._callbacks[n].validate(this._elements[t],e))return!0;return!1},_success:function(t){var e=this._updateData.length;e&&(this._updateState(t),this._updateData=[])},_updateState:function(){},_click:function(t){var e=$(t.currentTarget),i=e.data("elementID"),n=e.data("optionName");this._execute(i,n)||this._executeCallback(i,n),this._hide(i)},_execute:function(){return!1},_executeCallback:function(t,e){var i=this._callbacks.length;if(i)for(var n=0;i>n;n++)if(this._callbacks[n].execute(this._elements[t],e))return!0;return!1},_hide:function(t){this._dropdowns[t]&&this._dropdowns[t].empty().removeClass("dropdownOpen")}}),WCF.Upload=Class.extend({_name:"__files[]",_buttonSelector:null,_fileListSelector:null,_fileUpload:null,_className:"",_iframe:null,_internalFileID:0,_options:{},_uploadMatrix:[],_supportsAJAXUpload:!0,_overlay:null,init:function(t,e,i,n){this._buttonSelector=t,this._fileListSelector=e,this._className=i,this._internalFileID=0,this._options=$.extend(!0,{action:"upload",multiple:!1,url:"index.php/AJAXUpload/?t="+SECURITY_TOKEN+SID_ARG_2ND},n||{}),this._options.url=WCF.convertLegacyURL(this._options.url);var s=new XMLHttpRequest;this._supportsAJAXUpload=s&&"upload"in s&&"onprogress"in s.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 t=$('<p class="button uploadButton"><span>'+WCF.Language.get("wcf.global.button.upload")+"</span></p>");t.prepend(this._fileUpload)}else{var t=$('<p class="button uploadFallbackButton"><span>'+WCF.Language.get("wcf.global.button.upload")+"</span></p>");t.click($.proxy(this._showOverlay,this))}this._insertButton(t)},_insertButton:function(t){this._buttonSelector.prepend(t)},_removeButton:function(){var t=".uploadButton";this._supportsAJAXUpload||(t=".uploadFallbackButton"),this._buttonSelector.find(t).remove()},_upload:function(t,e,i){var n=null,s=[];if(e)s.push(e);else if(i){var a="";switch(i.type){case"image/png":a=".png";break;case"image/jpeg":a=".jpg";break;case"image/gif":a=".gif"}s.push({name:"pasted-from-clipboard"+a})}else s=this._fileUpload.prop("files");if(s.length){var o=new FormData;if(n=this._createUploadMatrix(s),!this._uploadMatrix[n].length)return null;for(var r=0,l=s.length;l>r;r++)if(this._uploadMatrix[n][r]){var c=this._uploadMatrix[n][r].data("internalFileID");i?o.append("__files["+c+"]",i,s[r].name):o.append("__files["+c+"]",s[r])}o.append("actionName",this._options.action),o.append("className",this._className);var h=this._getParameters();for(var d in h)o.append("parameters["+d+"]",h[d]);var u=this;$.ajax({type:"POST",url:this._options.url,enctype:"multipart/form-data",data:o,contentType:!1,processData:!1,success:function(t){u._success(n,t)},error:$.proxy(this._error,this),xhr:function(){var t=$.ajaxSettings.xhr();return t&&t.upload.addEventListener("progress",function(t){u._progress(n,t)},!1),t}})}return n},_createUploadMatrix:function(t){if(t.length){var e=this._uploadMatrix.length;this._uploadMatrix[e]=[];for(var i=0,n=t.length;n>i;i++){var s=t[i],a=this._initFile(s);a.hasClass("uploadFailed")||(a.data("filename",s.name).data("internalFileID",this._internalFileID++),this._uploadMatrix[e][i]=a)}return e}return null},_success:function(){},_error:function(){},_progress:function(t,e){var i=Math.round(100*e.loaded/e.total);for(var n in this._uploadMatrix[t])this._uploadMatrix[t][n].find("progress").attr("value",i)},_getParameters:function(){return{}},_initFile:function(t){return $("<li>"+t.name+" ("+t.size+')<progress max="100" /></li>').appendTo(this._fileListSelector)},_showOverlay:function(){if(null===this._iframe&&(this._iframe=$('<iframe name="__fileUploadIFrame" />').hide().appendTo(document.body)),!this._overlay){this._overlay=$('<div><form enctype="multipart/form-data" method="post" action="'+this._options.url+'" target="__fileUploadIFrame" /></div>').hide().appendTo(document.body);var t=this._overlay.find("form");$('<dl class="wide"><dd><input type="file" id="__fileUpload" name="'+this._name+'" '+(this._options.multiple?'multiple="true" ':"")+"/></dd></dl>").appendTo(t),$('<div class="formSubmit"><input type="submit" value="Upload" accesskey="s" /></div></form>').appendTo(t),$('<input type="hidden" name="isFallback" value="1" />').appendTo(t),$('<input type="hidden" name="actionName" value="'+this._options.action+'" />').appendTo(t),$('<input type="hidden" name="className" value="'+this._className+'" />').appendTo(t);var e=this._getParameters();for(var i in e)$('<input type="hidden" name="'+i+'" value="'+e[i]+'" />').appendTo(t);t.submit($.proxy(function(){var t={name:this._getFilename(),size:""},e=this._createUploadMatrix([t]),i=this;this._iframe.data("loading",!0).off("load").load(function(){i._evaluateResponse(e)}),this._overlay.wcfDialog("close")},this))}this._overlay.wcfDialog({title:WCF.Language.get("wcf.global.button.upload")})},_evaluateResponse:function(t){var e=$.parseJSON(this._iframe.contents().find("pre").html());this._success(t,e)},_getFilename:function(){return $("#__fileUpload").val().split("\\").pop()}}),WCF.Upload.Parallel=WCF.Upload.extend({init:function(t,e,i,n){n=$.extend(!0,n||{},{multiple:!0}),this._super(t,e,i,n)},_upload:function(){for(var t=this._fileUpload.prop("files"),e=0,i=t.length;i>e;e++){var n=t[e],s=new FormData,a=this._createUploadMatrix(n);if(this._uploadMatrix[a].length){s.append("__files["+a+"]",n),s.append("actionName",this._options.action),s.append("className",this._className);var o=this._getParameters();for(var r in o)s.append("parameters["+r+"]",o[r]);this._sendRequest(a,s)}}},_sendRequest:function(t,e){var i=this;$.ajax({type:"POST",url:this._options.url,enctype:"multipart/form-data",data:e,contentType:!1,processData:!1,success:function(e){i._success(t,e)},error:$.proxy(this._error,this),xhr:function(){var e=$.ajaxSettings.xhr();return e&&e.upload.addEventListener("progress",function(e){i._progress(t,e)},!1),e}})},_createUploadMatrix:function(t){var e=this._initFile(t);return e.hasClass("uploadFailed")?null:(e.data("filename",t.name).data("internalFileID",this._internalFileID),this._uploadMatrix[this._internalFileID++]=e,this._internalFileID-1)},_success:function(){},_progress:function(t,e){var i=Math.round(100*e.loaded/e.total);this._uploadMatrix[t].find("progress").attr("value",i)},_showOverlay:function(){if(null===this._iframe&&(this._iframe=$('<iframe name="__fileUploadIFrame" />').hide().appendTo(document.body)),!this._overlay){this._overlay=$('<div><form enctype="multipart/form-data" method="post" action="'+this._options.url+'" target="__fileUploadIFrame" /></div>').hide().appendTo(document.body);var t=this._overlay.find("form");$('<dl class="wide"><dd><input type="file" id="__fileUpload" name="'+this._name+'" '+(this._options.multiple?'multiple="true" ':"")+"/></dd></dl>").appendTo(t),$('<div class="formSubmit"><input type="submit" value="Upload" accesskey="s" /></div></form>').appendTo(t),$('<input type="hidden" name="isFallback" value="1" />').appendTo(t),$('<input type="hidden" name="actionName" value="'+this._options.action+'" />').appendTo(t),$('<input type="hidden" name="className" value="'+this._className+'" />').appendTo(t);var e=this._getParameters();for(var i in e)$('<input type="hidden" name="'+i+'" value="'+e[i]+'" />').appendTo(t);t.submit($.proxy(function(){var t={name:this._getFilename(),size:""},e=this._createUploadMatrix(t),i=this;this._iframe.data("loading",!0).off("load").load(function(){i._evaluateResponse(e)}),this._overlay.wcfDialog("close")},this))}this._overlay.wcfDialog({title:WCF.Language.get("wcf.global.button.upload")})},_evaluateResponse:function(t){var e=$.parseJSON(this._iframe.contents().find("pre").html());this._success(t,e)}}),WCF.Sortable={},WCF.Sortable.List=Class.extend({_additionalParameters:{},_className:"",_containerID:"",_container:null,_notification:null,_offset:0,_options:{},_proxy:null,_structure:{},init:function(t,e,i,n,s,a){if(this._additionalParameters=a||{},this._containerID=$.wcfEscapeID(t),this._container=$("#"+this._containerID),this._className=e,this._offset=i?i:0,this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)}),this._structure={},this._options=$.extend(!0,{axis:"y",connectWith:"#"+this._containerID+" .sortableList",disableNesting:"sortableNoNesting",doNotClear:!0,errorClass:"sortableInvalidTarget",forcePlaceholderSize:!0,helper:"clone",items:"li:not(.sortableNoSorting)",opacity:.6,placeholder:"sortablePlaceholder",tolerance:"pointer",toleranceElement:"> span"},n||{}),s?$("#"+this._containerID+" .sortableList").sortable(this._options):$("#"+this._containerID+" > .sortableList").nestedSortable(this._options),this._className){var o=this._container.find(".formSubmit");if(!o.length&&(o=this._container.next(".formSubmit"),!o.length))return void console.debug("[WCF.Sortable.Simple] Unable to find form submit for saving, aborting.");o.children('button[data-type="submit"]').click($.proxy(this._submit,this))}},_submit:function(){this._structure={},this._container.find(".sortableList").each($.proxy(function(t,e){var i=$(e),n=i.data("objectID");void 0!==n&&i.children(this._options.items).each($.proxy(function(t,e){var i=$(e).data("objectID");this._structure[n]||(this._structure[n]=[]),this._structure[n].push(i)},this))},this));var t=$.extend(!0,{data:{offset:this._offset,structure:this._structure}},this._additionalParameters);this._proxy.setOption("data",{actionName:"updatePosition",className:this._className,interfaceName:"wcf\\data\\ISortableAction",parameters:t}),this._proxy.sendRequest()},_success:function(){null===this._notification&&(this._notification=new WCF.System.Notification(WCF.Language.get("wcf.global.success.edit"))),this._notification.show()}}),WCF.Popover=Class.extend({_activeElementID:"",_cancelPopover:!1,_data:{},_defaultDimensions:{height:150,width:450},_defaultOrientation:{x:"right",y:"top"},_delay:{show:800,hide:500},_hoverElement:!1,_hoverElementID:"",_hoverPopover:!1,_margin:20,_peOut:null,_peOverElement:null,_popover:null,_popoverContent:null,_popoverOffset:10,_selector:"",init:function(t){$.browser.mobile||(this._activeElementID="",this._cancelPopover=!1,this._data={},this._defaultDimensions={height:150,width:450},this._defaultOrientation={x:"rtl"===WCF.Language.get("wcf.global.pageDirection")?"left":"right",y:"top"},this._delay={show:800,hide:500},this._hoverElement=!1,this._hoverElementID="",this._hoverPopover=!1,this._margin=20,this._peOut=null,this._peOverElement=null,this._popoverOffset=10,this._selector=t,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."+t,$.proxy(this._initContainers,this)),$(window).on("beforeunload",function(){this._cancelPopover=!0,this._hide(!0)}.bind(this)))},_initContainers:function(){if(!$.browser.mobile){var t=$(this._selector);t.length&&t.each($.proxy(function(t,e){var i=$(e),n=i.wcfIdentify();this._data[n]||(this._data[n]={content:null,isLoading:!1},i.hover($.proxy(this._overElement,this),$.proxy(this._out,this)),i.is("a")&&i.attr("href")&&i.click(function(){this._hide(!0)}.bind(this)))},this))}},_overElement:function(t){if(!this._cancelPopover){null!==this._peOverElement&&this._peOverElement.stop();var e=$(t.currentTarget).wcfIdentify();this._hoverElementID=e,this._peOverElement=new WCF.PeriodicalExecuter($.proxy(function(t){t.stop(),this._hoverElementID===e&&(this._activeElementID=e,this._prepare())},this),this._delay.show),this._hoverElement=!0,this._hoverPopover=!1}},_prepare:function(){if(!this._cancelPopover){null!==this._peOut&&this._peOut.stop(),this._popover.is(":visible")&&this._hide(!0),!this._data[this._activeElementID].loading&&this._data[this._activeElementID].content?(this._popoverContent.html(this._data[this._activeElementID].content),WCF.DOMNodeInsertedHandler.execute()):this._data[this._activeElementID].loading=!0;var t=this._popover.show().getDimensions();t=this._data[this._activeElementID].loading?{height:Math.max(t.height,this._defaultDimensions.height),width:Math.max(t.width,this._defaultDimensions.width)}:this._fixElementDimensions(this._popover,t),this._popover.hide();var e=this._getOrientation(t.height,t.width);this._popover.css(this._getCSS(e.x,e.y)),this._popover.removeClass("bottom left right top").addClass(e.x).addClass(e.y),this._show()}},_show:function(){this._cancelPopover||(this._popover.stop().show().css({opacity:1}).wcfFadeIn(),this._data[this._activeElementID].loading?(this._popover.children("span").show(),this._loadContent()):(this._popover.children("span").hide(),this._popoverContent.css({opacity:1})))},_loadContent:function(){},_insertContent:function(t,e,i){if(this._data[t]={content:e,loading:!1},this._activeElementID===t)if(i){var n=this._popoverContent.getDimensions();this._popoverContent.css({height:"auto",width:"auto"}),this._popoverContent.html(this._data[t].content);var s=this._popoverContent.getDimensions();this._popoverContent.html("").css({height:n.height+"px",width:n.width+"px"});var a=this;this._popoverContent.animate({height:s.height+"px",width:s.width+"px"},300,function(){a._popover.children("span").hide(),a._popoverContent.html(a._data[t].content).css({opacity:0}).animate({opacity:1},200),WCF.DOMNodeInsertedHandler.execute()})}else this._popover.children("span").hide(),this._popoverContent.html(this._data[t].content),WCF.DOMNodeInsertedHandler.execute()},_hide:function(t){var e=this;this._popoverContent.stop(),this._popover.stop(),t?(e._popover.css({opacity:0}).hide(),e._popoverContent.empty().css({height:"auto",opacity:0,width:"auto"})):this._popover.wcfFadeOut(function(){e._popoverContent.empty().css({height:"auto",opacity:0,width:"auto"}),e._popover.hide()})},_overPopover:function(){null!==this._peOut&&this._peOut.stop(),this._hoverElement=!1,this._hoverPopover=!0},_out:function(){this._cancelPopover||(this._hoverElementID="",this._hoverElement=!1,this._hoverPopover=!1,this._peOut=new WCF.PeriodicalExecuter($.proxy(function(t){t.stop(),this._hoverElement||this._hoverPopover||this._hide(!1)},this),this._delay.hide))},_getOrientation:function(t,e){var i=$("#"+this._activeElementID),n=i.getOffsets("offset"),s=i.getDimensions(),a=$(document).getDimensions(),o="left"===this._defaultOrientation.x?"left":"right",r="bottom"===this._defaultOrientation.y?"bottom":"top",l=this._evaluateOrientation(o,r,n,s,a,t,e);return l.flawed&&(o="left"===o?"right":"left",l=this._evaluateOrientation(o,r,n,s,a,t,e),l.flawed&&(o="right"===o?"left":"right",r="bottom"===r?"top":"bottom",l=this._evaluateOrientation(o,r,n,s,a,t,e),l.flawed&&(o="left"===o?"right":"left",l=this._evaluateOrientation(o,r,n,s,a,t,e),l.flawed&&(o="left"===this._defaultOrientationX?"left":"right",r="bottom"===this._defaultOrientationY?"bottom":"top")))),{x:o,y:r}},_evaluateOrientation:function(t,e,i,n,s,a,o){var r=0,l=0;switch(t){case"left":l=i.left-o;break;case"right":l=s.width-(i.left+o)}switch(e){case"bottom":r=s.height-(i.top+n.height+this._popoverOffset+a);break;case"top":r=i.top-(a-this._popoverOffset)}var c=!1;return(r<this._margin||l<this._margin)&&(c=!0),{flawed:c,x:l,y:r}},_getCSS:function(t,e){var i={bottom:"auto",left:"auto",right:"auto",top:"auto"},n=$("#"+this._activeElementID),s=n.getOffsets("offset"),a=this._fixElementDimensions(n,n.getDimensions()),o=$(window).getDimensions();switch(t){case"left":i.right=o.width-(s.left+a.width);break;case"right":i.left=s.left}switch(e){case"bottom":i.top=s.top+(a.height+this._popoverOffset);break;case"top":i.bottom=o.height-(s.top-this._popoverOffset)}return i},_fixElementDimensions:function(t,e){var i=t.parent().getDimensions();return i.height<e.height&&(e.height=i.height),i.width<e.width&&(e.width=i.width),e}}),WCF.EditableItemList=Class.extend({_allowCustomInput:!1,_className:"",_data:{},_form:null,_itemList:null,_objectID:0,_objectTypeID:0,_search:null,_searchInput:null,init:function(t,e){if(this._itemList=$(t),this._searchInput=$(e),this._data={},!this._itemList.length||!this._searchInput.length)return void console.debug("[WCF.EditableItemList] Item list and/or search input do not exist, aborting.");if(this._objectID=this._getObjectID(),this._objectTypeID=this._getObjectTypeID(),this._itemList.find(".jsEditableItem").click($.proxy(this._click,this)),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)),this._allowCustomInput){var i=this;this._searchInput.keydown($.proxy(this._keyDown,this)).keypress($.proxy(this._keyPress,this)).on("paste",function(){setTimeout(function(){i._onPaste()},100)})}this._searchInput.parents(".dropdown").data("preventSubmit",!0)},_keyDown:function(t){return null===t?this._keyPress(null):!0},_keyPress:function(t){if(null===t||44===t.charCode||t.charCode===$.ui.keyCode.ENTER||$.browser.mozilla&&t.keyCode===$.ui.keyCode.ENTER){if(null!==t&&t.charCode===$.ui.keyCode.ENTER&&this._search&&-1!==this._search._itemIndex)return!1;var e=$.trim(this._searchInput.val());return t&&44===t.charCode&&(e=e.substring(0,this._searchInput.getCaret())),""===e?!0:(this.addItem({objectID:0,label:e}),this._searchInput.val(t&&44===t.charCode?$.trim(this._searchInput.val().substr(this._searchInput.getCaret())):""),null!==t&&t.stopPropagation(),!1)}return!0},_onPaste:function(){var t=$.trim(this._searchInput.val());t=t.split(",");for(var e=0,i=t.length;i>e;e++){var n=$.trim(t[e]);""!==n&&this.addItem({objectID:0,label:n})}this._searchInput.val("")},load:function(){},_click:function(t){var e=$(t.currentTarget),i=e.data("objectID"),n=e.data("label");return this._search&&this._search.removeExcludedSearchValue(n),this._removeItem(i,n),e.remove(),t.stopPropagation(),!1},_getObjectID:function(){return 0},_getObjectTypeID:function(){return 0},addItem:function(t){if(this._data[t.objectID]&&(0!==t.objectID||!this._allowCustomInput))return!0;var e=$('<li class="badge">'+WCF.String.escapeHTML(t.label)+"</li>").data("objectID",t.objectID).data("label",t.label).appendTo(this._itemList);return e.click($.proxy(this._click,this)),this._search&&this._search.addExcludedSearchValue(t.label),this._addItem(t.objectID,t.label),!0},clearList:function(){this._itemList.children("li").each($.proxy(function(t,e){var i=$(e);this._search&&this._search.removeExcludedSearchValue(i.data("label")),i.remove(),this._removeItem(i.data("objectID"),i.data("label"))},this))},_submit:function(){this._keyDown(null)},_addItem:function(t,e){this._data[t]=e},_removeItem:function(t){delete this._data[t]},getSearchInput:function(){return this._searchInput}}),WCF.Sitemap=Class.extend({_cache:[],_dialog:null,_didInit:!1,_proxy:null,init:function(){$("#sitemap").click($.proxy(this._click,this)),this._cache=[],this._dialog=null,this._didInit=!1,this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)})},_click:function(t){t.preventDefault(),null===this._dialog?(this._dialog=$('<div id="sitemapDialog" />').appendTo(document.body),this._proxy.setOption("data",{actionName:"getSitemap",className:"wcf\\data\\sitemap\\SitemapAction"}),this._proxy.sendRequest()):(this._dialog.wcfDialog("open"),$(document).trigger("resize"))},_success:function(t){this._didInit?(this._cache.push(t.returnValues.sitemapName),this._dialog.find("#sitemap_"+t.returnValues.sitemapName).html(t.returnValues.template),this._dialog.wcfDialog("render")):(this._cache.push(t.returnValues.sitemapName),this._dialog.html(t.returnValues.template),this._dialog.find(".sitemapNavigation").click($.proxy(this._navigate,this)),this._dialog.find(".tabMenuContainer").wcfTabs("select","sitemap_"+t.returnValues.sitemapName),this._dialog.wcfDialog({title:WCF.Language.get("wcf.page.sitemap")}),this._didInit=!0),$(document).trigger("resize")},_navigate:function(t){var e=$(t.currentTarget).data("sitemapName");WCF.inArray(e,this._cache)?(this._dialog.find(".tabMenuContainer").wcfTabs("select","sitemap_"+e),this._dialog.wcfDialog("render")):(this._proxy.setOption("data",{actionName:"getSitemap",className:"wcf\\data\\sitemap\\SitemapAction",parameters:{sitemapName:e}}),this._proxy.sendRequest())}}),WCF.Language.Chooser=Class.extend({_callback:null,_dropdown:null,_input:null,init:function(t,e,i,n,s,a){var o=$("#"+t);if(1!=o.length)return void console.debug("[WCF.Language.Chooser] Invalid container id '"+t+"' given");if(this._input=$("#"+e),this._input.length||(this._input=$('<input type="hidden" name="'+e+'" value="'+i+'" />').appendTo(o)),void 0!==s){if(!$.isFunction(s))return void console.debug("[WCF.Language.Chooser] Given callback is invalid");this._callback=s}this._dropdown=$('<div class="dropdown" id="'+t+'-languageChooser" />').appendTo(o),$('<div class="dropdownToggle boxFlag box24" data-toggle="'+t+'-languageChooser"></div>').appendTo(this._dropdown);var r=$('<ul class="dropdownMenu" />').appendTo(this._dropdown);for(var l in n){var c=n[l],h=$('<li class="boxFlag"><a class="box24"><div class="framed"><img src="'+c.iconPath+'" alt="" class="iconFlag" /></div> <div><h3>'+c.languageName+"</h3></div></a></li>").appendTo(r);if(h.data("languageID",l).click($.proxy(this._click,this)),l==i){var d=$(""+h.html()),u=d.children().detach();this._dropdown.children(".dropdownToggle").empty().append(u)}}if(a){$('<li class="dropdownDivider" />').appendTo(r);var h=$("<li><a>"+WCF.Language.get("wcf.global.language.noSelection")+"</a></li>").data("languageID",0).click($.proxy(this._click,this)).appendTo(r);0===i&&this._dropdown.children(".dropdownToggle").empty().append(h.html())}else if(0===i){var p=$('<div><span class="icon icon24 fa-question" /></div> <div><h3>'+WCF.Language.get("wcf.global.language.noSelection")+"</h3></div>");this._dropdown.children(".dropdownToggle").empty().append(p)}WCF.Dropdown.destroy(t+"-languageChooser"),WCF.Dropdown.init()},_click:function(t){var e=$(t.currentTarget),i=e.data("languageID");this._input.val(i);var n=$(""+e.html()),s=0===i?n:n.children().detach();this._dropdown.children(".dropdownToggle").empty().append(s),null!==this._callback&&this._callback(e)}}),WCF.Style={},WCF.Style.Chooser=Class.extend({_dialog:null,_proxy:null,init:function(){$('<li class="styleChooser"><a href="#">'+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(t){null!==t&&t.preventDefault(),null===this._dialog?(this._dialog=$('<div id="styleChooser" />').hide().appendTo(document.body),this._loadDialog()):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(t){return"changeStyle"===t.actionName?void window.location.reload():(this._dialog.html(t.returnValues.template),this._dialog.find("li").addClass("pointer").click($.proxy(this._click,this)),void this._showDialog(null))},_click:function(t){this._proxy.setOption("data",{actionName:"changeStyle",className:"wcf\\data\\style\\StyleAction",objectIDs:[$(t.currentTarget).data("styleID")]}),this._proxy.sendRequest()}}),WCF.UserPanel=Class.extend({_container:null,_didLoad:!1,_link:null,_noItems:"",_revertOnEmpty:!0,init:function(t){return this._container=$("#"+t),this._didLoad=!1,this._revertOnEmpty=!0,1!=this._container.length?void console.debug("[WCF.UserPanel] Unable to find container identfied by '"+t+"', aborting."):void this._convert()},_convert:function(){this._container.addClass("dropdown"),this._link=this._container.children("a").remove();var t=$('<a href="'+this._link.attr("href")+'" class="dropdownToggle">'+this._link.html()+"</a>").appendTo(this._container).click($.proxy(this._click,this)),e=$('<ul class="dropdownMenu" />').appendTo(this._container);$('<li class="jsDropdownPlaceholder"><span>'+WCF.Language.get("wcf.global.loading")+"</span></li>").appendTo(e),this._addDefaultItems(e),this._container.dblclick($.proxy(function(){return window.location=this._link.attr("href"),!1},this)),WCF.Dropdown.initDropdown(t,!1)},_addDefaultItems:function(){},_addDivider:function(t){$('<li class="dropdownDivider" />').appendTo(t)},_click:function(t){t.preventDefault(),this._didLoad||(new WCF.Action.Proxy({autoSend:!0,data:this._getParameters(),success:$.proxy(this._success,this)}),this._didLoad=!0)},_getParameters:function(){return{}},_success:function(t){var e=WCF.Dropdown.getDropdownMenu(this._container.wcfIdentify());e.children(".jsDropdownPlaceholder").remove(),t.returnValues&&t.returnValues.template?($(""+t.returnValues.template).prependTo(e),this._updateBadge(t.returnValues.totalCount),this._after(e)):($("<li><span>"+WCF.Language.get(this._noItems)+"</span></li>").prependTo(e),this._updateBadge(0))},_updateBadge:function(t){if(t=parseInt(t)||0){var e=this._container.find(".badge");e.length||(e=$('<span class="badge badgeInverse" />').appendTo(this._container.children(".dropdownToggle")),e.before(" ")),e.html(t)}else this._container.find(".badge").remove()},_after:function(){}}),$.widget("ui.wcfDialog",{_closeButton:null,_container:null,_content:null,_overlay:null,_title:null,_titlebar:null,_isOpen:!1,options:{autoOpen:!0,closable:!0,closeButtonLabel:null,closeConfirmMessage:null,closeViaModal:!0,hideTitle:!1,modal:!0,title:"",zIndex:400,onClose:null,onShow:null},_createWidget:function(t,e){return"script"===$(e).getTagName()?(console.debug("[ui.wcfDialog] Ignored script tag"),this.element=!1,null):void $.Widget.prototype._createWidget.apply(this,arguments)},_init:function(){this.options.autoOpen&&this.open(),$(window).resize($.proxy(this._resize,this))},_create:function(){null===this.options.closeButtonLabel&&(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 t=this.element.detach();this._content.html(t),this.options.modal&&(this._overlay=$("#jsWcfDialogOverlay"),this._overlay.length||(this._overlay=$('<div id="jsWcfDialogOverlay" class="dialogOverlay" />').css({height:"100%",zIndex:399}).hide().appendTo(document.body)),this.options.closable&&this.options.closeViaModal&&(this._overlay.click($.proxy(this.close,this)),$(document).keyup($.proxy(function(t){t.keyCode&&t.keyCode===$.ui.keyCode.ESCAPE&&(this.close(),t.preventDefault())},this)))),WCF.DOMNodeInsertedHandler.execute()},_setOption:function(t,e){return this.options[t]=e,"hideTitle"==t||"title"==t?this.options.hideTitle||""==this.options.title?this._title.html(""):this._title.html(this.options.title).show():("closable"==t||"closeButtonLabel"==t)&&(this.options.closable?(this._closeButton.attr("title",this.options.closeButtonLabel).show().find("span").html(this.options.closeButtonLabel),WCF.DOMNodeInsertedHandler.execute()):this._closeButton.hide()),!this.options.hideTitle&&""!=this.options.title||this.options.closable?this._titlebar.show():this._titlebar.hide(),this},open:function(){this.element!==!1&&(this.isOpen()||(null!==this._overlay&&(WCF.activeDialogs++,1===WCF.activeDialogs&&this._overlay.show()),this.render(),this._isOpen=!0,this._content.find(".jsDialogAutoFocus:visible:first").focus()))},isOpen:function(){return this._isOpen},close:function(t){this.isOpen()&&(this.options.closeConfirmMessage?WCF.System.Confirmation.show(this.options.closeConfirmMessage,$.proxy(function(t){"confirm"===t&&this._close()},this)):this._close(),void 0!==t&&t.preventDefault())},_close:function(){this._isOpen=!1,this._container.wcfFadeOut(),this._container.data("wcfDialogScrollOffset")&&window.scrollTo(0,this._container.data("wcfDialogScrollOffset")),null!==this._overlay&&(WCF.activeDialogs--,0===WCF.activeDialogs&&this._overlay.hide()),null!==this.options.onClose&&this.options.onClose()},_resize:function(){this.isOpen()&&this.render()},render:function(){this._container.is(":visible")||"0px"!==this._container.css("top")||(this._container.data("wcfDialogScrollOffset",$(window).scrollTop()),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 t=0;this._content.find(".formSubmit:visible").length?(t=this._content.find(".formSubmit").outerHeight(),this._content.addClass("dialogForm").css({marginBottom:t+"px"})):this._content.removeClass("dialogForm").css({marginBottom:"0px"});var e=$(window).getDimensions();.9*e.width>800&&this._container.css("maxWidth","800px");var i=this._container.getDimensions("outer"),n=this._content.getDimensions(),t=i.height-n.height,s=e.height-t-120;this._content.css({maxHeight:s+"px"}),this._determineOverflow(),i=this._container.getDimensions("outer");var a=Math.round((e.width-i.width)/2),o=Math.round((e.height-i.height)/2),r=Math.round(e.height/100*20);o>r&&(o=r),this._container.css({left:a+"px",top:o+"px"}),this._content.css({height:"auto",width:"auto"}),this.isOpen()||(this._container.hide(),this._container.wcfFadeIn($.proxy(function(){null!==this.options.onShow&&this.options.onShow()},this)))},_determineOverflow:function(){var t=$(window).getDimensions(),e=this._content.css("maxHeight");this._content.css("maxHeight","none");var i=this._container.getDimensions("outer"),n="visible";if((.8*t.height<i.height||.8*t.width<i.width)&&(n="auto"),this._content.css("overflow",n),this._content.css("maxHeight",e),"visible"===n){var s=0;this._content.children().each(function(t,e){s+=$(e).outerHeight()}),this._content.height()<s&&(n="auto",this._content.css("overflow","auto"))}$.browser.mozilla&&!$.browser.mobile&&("auto"===n?this._content.children("div").css("margin-bottom",this._content.css("padding-bottom")):this._content.children("div").css("margin-bottom",!1));
+
+},_getContentDimensions:function(t){var e=this._content.getDimensions();return t&&e.height>t&&(e.height=t),e}}),$.widget("ui.wcfSlideshow",{_buttonList:null,_count:0,_index:0,_itemList:null,_items:null,_timer:null,_width:0,options:{cycle:!0,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,this._count>1&&this._initSlideshow()},_initSlideshow:function(){var t=$(this._items.get(0)).outerHeight();this._items.addClass("slideshowItem"),this._width=this.element.css("height",t).innerWidth(),this._itemList.addClass("slideshowItemList").css("left",0),this._items.each($.proxy(function(e,i){$(i).show().css({height:t,left:(this._width+this.options.itemGap)*e,width:this._width})},this)),this.element.css({height:t,width:this._width}).hover($.proxy(this._hoverIn,this),$.proxy(this._hoverOut,this)),this._buttonList=$('<ul class="slideshowButtonList" />').appendTo(this.element);for(var e=0;e<this._count;e++){var i=$('<li><a><span class="icon icon16 icon-circle" /></a></li>').data("index",e).click($.proxy(this._click,this)).appendTo(this._buttonList);0==e&&i.find(".icon").addClass("active")}this._resetTimer(),$(window).resize($.proxy(this._resize,this))},rebuildHeight:function(){var t=$(this._items.get(0)).css("height","auto"),e=t.outerHeight();this._items.css("height",e+"px"),this.element.css("height",e+"px")},_resize:function(){this._width=this.element.css("width","auto").innerWidth(),this._items.each($.proxy(function(t,e){$(e).css({left:(this._width+this.options.itemGap)*t,width:this._width})},this)),this._index--,this.moveTo(null)},_hoverIn:function(){null!==this._timer&&this._timer.stop()},_hoverOut:function(){this._resetTimer()},_resetTimer:function(){if(this.options.cycle){null!==this._timer&&this._timer.stop();var t=this;this._timer=new WCF.PeriodicalExecuter(function(){t.moveTo(null)},1e3*this.options.cycleInterval)}},_click:function(t){this.moveTo($(t.currentTarget).data("index")),this._resetTimer()},moveTo:function(t){this._index=null===t?this._index+1:t,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(t){return this._items[t]?this._items[t]:null}}),$.widget("ui.wcfTabs",$.ui.tabs,{_sanitizeSelector:function(t){return t.replace(/([:\.])/g,"\\$1")},select:function(t){return $.isNumeric(t)||(this.panels.each(function(e,i){return $(i).wcfIdentify()===t?(t=e,!1):void 0}),$.isNumeric(t))?void this._setOption("active",t):void console.debug("[ui.wcfTabs] Unable to find panel identified by '"+t+"', aborting.")},selectTab:function(t){t="#"+t,this.anchors.each(function(e,i){var n=$(i);return n.prop("hash")===t?(n.trigger("click"),!1):void 0})},getCurrentIndex:function(){return this.lis.index(this.lis.filter(".ui-tabs-selected"))},hasAnchor:function(t,e){var i=!1;return this.anchors.each(function(n,s){var a=$(s).attr("href");if(/#.+/.test(a)){var o=a.split("#",2);if(e&&(o=o[1].split("-",2)),o[1]===t)return i=!0,!1}}),i},revertToDefault:function(){var t=this.element.data("active");t&&""!==t||(t=0),this.select(t)},_processTabs:function(){var t=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(e,i){var n,s,a=$(i).uniqueId().attr("id"),o=$(i).closest("li"),r=o.attr("aria-controls");n=i.hash,s=t.element.find(t._sanitizeSelector(n)),s.length&&(t.panels=t.panels.add(s)),r&&o.data("ui-tabs-aria-controls",r),o.attr({"aria-controls":n.substring(1),"aria-labelledby":a}),s.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},load:function(){}}),$.widget("ui.wcfPages",{SHOW_LINKS:11,SHOW_SUB_LINKS:20,options:{activePage:1,maxPage:1,nextPage:null,previousPage:null},_create:function(){null===this.options.nextPage&&(this.options.nextPage=WCF.Language.get("wcf.global.page.next")),null===this.options.previousPage&&(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 t=!1;this.element.hasClass("hidden")&&this.element.removeClass("hidden"),this.element.show(),this.element.children().remove();var e=$("<ul />");this.element.append(e);var i=$('<li class="button skip" />');if(e.append(i),this.options.activePage>1){var n=$("<a"+(null!=this.options.previousPage?' title="'+this.options.previousPage+'"':"")+"></a>");i.append(n),this._bindSwitchPage(n,this.options.activePage-1);var s=$('<span class="icon icon16 icon-double-angle-left" />');n.append(s)}else{var s=$('<span class="icon icon16 icon-double-angle-left" />');i.append(s),i.addClass("disabled").removeClass("button"),s.addClass("disabled")}e.append(this._renderLink(1));var a=this.SHOW_LINKS-4,o=this.options.activePage-2;0>o&&(o=0);var r=this.options.maxPage-(this.options.activePage+1);0>r&&(r=0),this.options.activePage>1&&this.options.activePage<this.options.maxPage&&a--;var l=a/2,c=this.options.activePage,h=this.options.activePage;1>c&&(c=1),1>h&&(h=1),h>this.options.maxPage-1&&(h=this.options.maxPage-1),o>=l?c-=l:(c-=o,h+=l-o),r>=l?h+=l:(h+=r,c-=l-r),h=Math.ceil(h),c=Math.ceil(c),1>c&&(c=1),h>this.options.maxPage&&(h=this.options.maxPage),c>1&&(2>c-1?e.append(this._renderLink(2)):($('<li class="button jumpTo"><a title="'+WCF.Language.get("wcf.global.page.jumpTo")+'" class="jsTooltip">...</a></li>').appendTo(e),t=!0));for(var d=c+1;h>d;d++)e.append(this._renderLink(d));h<this.options.maxPage&&(this.options.maxPage-h<2?e.append(this._renderLink(this.options.maxPage-1)):($('<li class="button jumpTo"><a title="'+WCF.Language.get("wcf.global.page.jumpTo")+'" class="jsTooltip">...</a></li>').appendTo(e),t=!0)),e.append(this._renderLink(this.options.maxPage));var u=$('<li class="button skip" />');if(e.append(u),this.options.activePage<this.options.maxPage){var p=$("<a"+(null!=this.options.nextPage?' title="'+this.options.nextPage+'"':"")+"></a>");u.append(p),this._bindSwitchPage(p,this.options.activePage+1);var _=$('<span class="icon icon16 icon-double-angle-right" />');p.append(_)}else{var _=$('<span class="icon icon16 icon-double-angle-right" />');u.append(_),u.addClass("disabled").removeClass("button"),_.addClass("disabled")}t&&(e.data("pages",this.options.maxPage),WCF.System.PageNavigation.init("#"+e.wcfIdentify(),$.proxy(function(t){this.switchPage(t)},this)))}else this.element.hide()},_renderLink:function(t,e){var i=$('<li class="button"></li>');if(void 0!=e&&e&&i.addClass("break"),t!=this.options.activePage){var n=$("<a>"+WCF.String.addThousandsSeparator(t)+"</a>");i.append(n),this._bindSwitchPage(n,t)}else{i.addClass("active");var s=$("<span>"+WCF.String.addThousandsSeparator(t)+'</span><span class="invisible">'+WCF.Language.get("wcf.page.pagePosition",{pageNo:t,pages:this.options.maxPage})+"</span>");i.append(s)}return i},_bindSwitchPage:function(t,e){var i=this;t.click(function(){i.switchPage(e)})},switchPage:function(t){this._setOption("activePage",t)},_setOption:function(t,e){if("activePage"==t){if(e!=this.options[t]&&e>0&&e<=this.options.maxPage){var i=this._trigger("shouldSwitch",void 0,{nextPage:e});i||void 0!==i?(this.options[t]=e,this._render(),this._trigger("switched",void 0,{activePage:e})):this._trigger("notSwitched",void 0,{activePage:e})}}else this.options[t]=e,"disabled"==t?e?this.element.children().remove():this._render():"maxPage"==t&&this._render();return this},_startInput:function(t){var e=$(t.currentTarget);e.is("a")||(e=e.parent("a")),e.hide();var i=e.parent("li").children("input").css("display","block").val("");i.focus()},_stopInput:function(t){var e=$(t.currentTarget);e.css("display","none");var i=e.parent("li");void 0!=i&&null!=i&&i.children("a").show()},_handleInput:function(t){var e=$.browser.msie&&"7.0"==$.browser.version;("keyup"!=t.type||e)&&(e&&(13!=t.which&&27!=t.which||"keyup"!=t.type)||(13==t.which&&this.switchPage(parseInt($(t.currentTarget).val())),(13==t.which||27==t.which)&&(this._stopInput(t),t.stopPropagation())))}}),WCF.Category={},WCF.Category.NestedList=Class.extend({_categories:{},init:function(){var t=this;$(".jsCategory").each(function(e,i){var n=$(i).data("parentCategoryID",null).change($.proxy(t._updateSelection,t));t._categories[n.val()]=n;var s=[];n.parents("li").find(".jsChildCategory").each(function(e,i){var a=$(i).data("parentCategoryID",n.val()).change($.proxy(t._updateSelection,t));t._categories[a.val()]=a,s.push(a.val()),a.is(":checked")&&n.prop("checked","checked")}),n.data("childCategoryIDs",s)})},_updateSelection:function(t){var e=$(t.currentTarget),i=e.data("parentCategoryID");if(e.is(":checked"))null!==i&&this._categories[i].prop("checked","checked");else if(null===i)for(var n=e.data("childCategoryIDs"),s=0,a=n.length;a>s;s++)this._categories[n[s]].prop("checked",!1)}}),WCF.Category.FlexibleCategoryList=Class.extend({_list:null,_categories:{},init:function(t){return this._list=$("#"+t),this._buildStructure(),this._list.find("input:checked").each(function(){$(this).trigger("change")}),this._list.children("li").length<2?void this._list.addClass("flexibleCategoryListDisabled"):void 0},_buildStructure:function(){var t=this;this._list.find(".jsCategory").each(function(e,i){var n=$(i).change(t._updateSelection.bind(t)),s=parseInt(n.val()),a=[];n.parents("li:eq(0)").find(".jsChildCategory").each(function(e,i){var s=$(i);s.data("parentCategory",n).change(t._updateSelection.bind(t));var o=parseInt(s.val());a.push(s);var r=[];s.parents("li:eq(0)").find(".jsSubChildCategory").each(function(e,i){var n=$(i);n.data("parentCategory",s).change(t._updateSelection.bind(t)),r.push(n)}),t._categories[o]=r}),t._categories[s]=a})},_updateSelection:function(t){var e=$(t.currentTarget),i=parseInt(e.val()),n=e.data("parentCategory");if(e.is(":checked"))n&&(n.prop("checked","checked"),n=n.data("parentCategory"),n&&n.prop("checked","checked"));else{if(this._categories[i])for(var s=0,a=this._categories[i].length;a>s;s++){var o=this._categories[i][s];o.prop("checked",!1);var r=parseInt(o.val());if(this._categories[r])for(var l=0,c=this._categories[r].length;c>l;l++)this._categories[r][l].prop("checked",!1)}if(n){for(var h=parseInt(n.val()),s=0,a=this._categories[h].length;a>s;s++)if(this._categories[h][s].prop("checked"))return;if(n=n.data("parentCategory")){h=parseInt(n.val());for(var s=0,a=this._categories[h].length;a>s;s++)if(this._categories[h][s].prop("checked"))return}}}}}),WCF.Condition={},WCF.Condition.PageControllerDependence=Class.extend({_pageControllerSelection:null,_supportedPageObjectTypeIDs:[],init:function(t,e){this._supportedPageObjectTypeIDs=e,this._pageControllerSelection=$("#pageControllers").change($.proxy(this._checkVisibility,this)),this._pageControllerContainer=this._pageControllerSelection.parents("dl:eq(0)"),this._fieldset=this._pageControllerContainer.parent("fieldset"),this._nextFieldset=this._fieldset.next("fieldset"),this._nextFieldset&&this._nextFieldset.data("margin-top",this._nextFieldset.css("margin-top")),this._input=$("#"+t),this._inputContainer=this._input.parents("dl:eq(0)"),this._checkVisibility()},_checkVisibility:function(){var t=this._pageControllerSelection.val()||[],e=!0;if(t.length){for(var i=0,n=t.length;n>i;i++)if(-1==this._supportedPageObjectTypeIDs.indexOf(parseInt(t[i]))){e=!1;break}}else e=!1;e?(this._inputContainer.show(),this._input.enable(),this._fieldset.show(),this._nextFieldset&&this._nextFieldset.css("margin-top",this._nextFieldset.data("margin-top"))):(this._inputContainer.hide(),this._input.disable(),this._fieldset.children("dl:visible").length||(this._fieldset.hide(),this._nextFieldset&&this._nextFieldset.css("margin-top",0)))}}),WCF.Notice={},WCF.Notice.Dismiss=Class.extend({_notices:{},_proxy:null,init:function(){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});var t=$(".jsDismissNoticeButton").click($.proxy(this._click,this));t.each($.proxy(function(t,e){this._notices[$(e).data("objectID")]=$(e).parent()},this))},_click:function(t){this._proxy.setOption("data",{actionName:"dismiss",className:"wcf\\data\\notice\\NoticeAction",objectIDs:[$(t.currentTarget).data("objectID")]}),this._proxy.sendRequest()},_success:function(t){this._notices[t.returnValues.noticeID].wcfFadeOut()}}); })(this);
 
 // WCF.Like.js
-(function (window, undefined) { })(this);
+(function (window, undefined) {"use strict";WCF.Like=Class.extend({_allowForOwnContent:!1,_canLike:!1,_containers:{},_containerData:{},_enableDislikes:!0,_isBusy:!1,_likeDetails:{},_proxy:null,_showSummary:!0,init:function(t,e,i,a){this._canLike=t,this._enableDislikes=e,this._isBusy=!1,this._likeDetails={},this._showSummary=i,this._allowForOwnContent=a;var s=this._getContainers();this._initContainers(s),this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)});var n=new Date,o=n.toString().hashCode+n.getUTCMilliseconds();WCF.DOMNodeInsertedHandler.addCallback("WCF.Like"+o,$.proxy(this._domNodeInserted,this))},_domNodeInserted:function(){var t=this._getContainers();this._initContainers(t)},_initContainers:function(containers){var $createdWidgets=!1;containers.each($.proxy(function(index,container){var $container=$(container),$containerID=$container.wcfIdentify();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=!0)},this)),$createdWidgets&&new WCF.PeriodicalExecuter(function(t){t.stop(),WCF.DOMNodeInsertedHandler.execute()},250)},_getContainers:function(){},_getWidgetContainer:function(){},_getObjectID:function(){},_addWidget:function(t,e){var i=this._getWidgetContainer(t);e.appendTo(i)},_buildWidget:function(t,e,i,a){var s=$('<aside class="likesWidget"><ul></ul></aside>');this._canLike&&(e.appendTo(s.find("ul")),i.appendTo(s.find("ul"))),a.appendTo(s),this._addWidget(t,s)},_createWidget:function(t){var e=$('<li class="wcfLikeButton"><a href="#" 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>"),i=$('<li class="wcfDislikeButton"><a href="#" 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>");this._enableDislikes||i.hide(),this._allowForOwnContent||WCF.User.userID!=this._containers[t].data("userID")||(e=$(""),i=$(""));var a=$('<a class="badge jsTooltip likesBadge" />').data("containerID",t).click($.proxy(this._showLikeDetails,this)),s=null;this._showSummary&&(s=$('<p class="likesSummary"><span class="pointer" /></p>'),s.children("span").data("containerID",t).click($.proxy(this._showLikeDetails,this))),this._buildWidget(t,e,i,a,s),this._containerData[t].likeButton=e,this._containerData[t].dislikeButton=i,this._containerData[t].badge=a,this._containerData[t].summary=s,e.data("containerID",t).data("type","like").click($.proxy(this._click,this)),i.data("containerID",t).data("type","dislike").click($.proxy(this._click,this)),this._setActiveState(e,i,this._containerData[t].liked),this._updateBadge(t),this._showSummary&&this._updateSummary(t)},_showLikeDetails:function(t,e){var i=null===t?e:$(t.currentTarget).data("containerID");void 0===this._likeDetails[i]&&(this._likeDetails[i]=new WCF.User.List("wcf\\data\\like\\LikeAction",WCF.Language.get("wcf.like.details"),{data:{containerID:i,objectID:this._containerData[i].objectID,objectType:this._containerData[i].objectType}})),this._likeDetails[i].open()},_click:function(t){t.preventDefault();var e=$(t.currentTarget);return null===e?void console.debug("[WCF.Like] Unable to find target button, aborting."):void this._sendRequest(e.data("containerID"),e.data("type"))},_sendRequest:function(t,e){this._isBusy||(this._isBusy=!0,this._proxy.setOption("data",{actionName:e,className:"wcf\\data\\like\\LikeAction",parameters:{data:{containerID:t,objectID:this._containerData[t].objectID,objectType:this._containerData[t].objectType}}}),this._proxy.sendRequest())},_success:function(t){var e=t.returnValues.containerID;if(this._containers[e])switch(t.actionName){case"dislike":case"like":this._containerData[e].likes=parseInt(t.returnValues.likes),this._containerData[e].dislikes=parseInt(t.returnValues.dislikes),this._containerData[e].users=t.returnValues.users,$.each(this._containerData[e].users,function(t,e){e.username=WCF.String.escapeHTML(e.username)}),this._updateBadge(e),this._showSummary&&this._updateSummary(e);var i=this._containerData[e].likeButton,a=this._containerData[e].dislikeButton,s=0;t.returnValues.isLiked?s=1:t.returnValues.isDisliked&&(s=-1),this._setActiveState(i,a,s),void 0!==this._likeDetails[e]&&delete this._likeDetails[e],this._isBusy=!1}},_updateBadge:function(t){if(this._containerData[t].likes||this._containerData[t].dislikes){this._containerData[t].badge.show();var e=this._containerData[t].likes-this._containerData[t].dislikes,i=this._containerData[t].badge;i.removeClass("green red"),e>0?(i.text("+"+WCF.String.formatNumeric(e)),i.addClass("green")):0>e?(i.text(WCF.String.formatNumeric(e)),i.addClass("red")):i.text("±0");var a=this._containerData[t].likes,s=this._containerData[t].dislikes;i.data("tooltip",WCF.Language.get("wcf.like.tooltip",{likes:a,dislikes:s}))}else this._containerData[t].badge.hide()},_updateSummary:function(t){if(this._containerData[t].likes){this._containerData[t].summary.show();var e=this._containerData[t].users,i=[];for(var a in e)i.push(e[a].username);var s=this._containerData[t].likes-i.length;this._containerData[t].summary.children("span").html(WCF.Language.get("wcf.like.summary",{users:i,others:s}))}else this._containerData[t].summary.hide()},_setActiveState:function(t,e,i){t.removeClass("active"),e.removeClass("active"),1==i?t.addClass("active"):-1==i&&e.addClass("active")}}); })(this);
 
 // WCF.ACL.js
-(function (window, undefined) { })(this);
+(function (window, undefined) {"use strict";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(e,t,n,i,a,s){this._objectID=i||0,this._objectTypeID=t,this._categoryName=n,void 0===a&&(a=!0),this._values={group:{},user:{}},this._proxy=new WCF.Action.Proxy({showLoadingOverlay:!1,success:$.proxy(this._success,this)}),this._container=$(e).hide().addClass("aclContainer");var r=this._container.children("dd"),c=$('<ul class="aclList container" />').appendTo(r),l=$('<input type="text" class="long" placeholder="'+WCF.Language.get("wcf.acl.search."+(a?"":"user.")+"description")+'" />').appendTo(r),o=$('<ul class="aclPermissionList container" />').hide().appendTo(r);this._containerElements={aclList:c,denyAll:null,grantAll:null,permissionList:o,searchInput:l},this._search=new WCF.Search.User(l,$.proxy(this.addObject,this),a);var h=this._container.parents("form:eq(0)");h.submit($.proxy(this.submit,this));var p=h.find("input[type=reset]:eq(0)");p.length&&p.click($.proxy(this._reset,this)),s?this._success(s):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",!1)},_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(e){var t=this._createListItem(e.objectID,e.label,e.type);this._savePermissions(),this._containerElements.aclList.children("li").removeClass("active"),t.addClass("active"),this._search.addExcludedSearchValue(e.label),this._containerElements.permissionList.find("input[type=checkbox]").prop("checked",!1),this._containerElements.searchInput.val(""),this._containerElements.permissionList.show(),WCF.DOMNodeInsertedHandler.execute()},_createListItem:function(e,t,n){var i=$('<li><span class="icon icon16 icon-'+("group"===n?"group":"user")+'" /> <span>'+t+"</span></li>").appendTo(this._containerElements.aclList);return i.data("objectID",e).data("type",n).data("label",t).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(i),i},_removeItem:function(e){var t=$(e.currentTarget).parent(),n=t.data("type"),i=t.data("objectID");this._search.removeExcludedSearchValue(t.data("label")),t.remove(),this._values[n][i]&&delete this._values[n][i],this._selectFirstEntry()},_selectFirstEntry:function(){var e=this._containerElements.aclList.children("li:eq(0)");e.length?this._select(e,!1):this._reset()},_success:function(e){if($.getLength(e.returnValues.options)){var t=0,n={};for(var i in e.returnValues.options){var a=e.returnValues.options[i],s=$("<li><span>"+a.label+"</span></li>").data("optionID",i).data("optionName",a.optionName),r=$('<input type="checkbox" id="grant'+i+'" />').appendTo(s).wrap('<label for="grant'+i+'" class="jsTooltip" title="'+WCF.Language.get("wcf.acl.option.grant")+'" />'),c=$('<input type="checkbox" id="deny'+i+'" />').appendTo(s).wrap('<label for="deny'+i+'" class="jsTooltip" title="'+WCF.Language.get("wcf.acl.option.deny")+'" />');r.data("type","grant").data("optionID",i).change($.proxy(this._change,this)),c.data("type","deny").data("optionID",i).change($.proxy(this._change,this)),n[a.categoryName]||(n[a.categoryName]=[]),""===a.categoryName?s.appendTo(this._containerElements.permissionList):n[a.categoryName].push(s),t++}if(t>1){var s=$('<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_'+this._container.attr("id")+'" />').appendTo(s).wrap('<label class="jsTooltip" title="'+WCF.Language.get("wcf.acl.option.grant")+'" />'),this._containerElements.denyAll=$('<input type="checkbox" id="denyAll_'+this._container.attr("id")+'" />').appendTo(s).wrap('<label 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 l in n){var o=n[l];e.returnValues.categories[l]&&$('<li class="aclCategory">'+e.returnValues.categories[l]+"</li>").appendTo(this._containerElements.permissionList);for(var h=0,p=o.length;p>h;h++)o[h].appendTo(this._containerElements.permissionList)}this._parseData(e,"group"),this._parseData(e,"user"),this._container.show(),this._selectFirstEntry()}},_parseData:function(e,t){if($.getLength(e.returnValues[t].option)){for(var n in e.returnValues[t].label)this._createListItem(n,e.returnValues[t].label[n],t),this._search.addExcludedSearchValue(e.returnValues[t].label[n]);this._values[t]=e.returnValues[t].option,WCF.DOMNodeInsertedHandler.execute()}},_click:function(e){var t=$(e.currentTarget);t.hasClass("active")||this._select(t,!0)},_select:function(e,t){t&&this._savePermissions(),this._containerElements.aclList.children("li").removeClass("active"),e.addClass("active"),this._setupPermissions(e.data("type"),e.data("objectID"))},_change:function(e){var t=$(e.currentTarget),n=t.data("optionID"),i=t.data("type");t.is(":checked")?"deny"===i?($("#grant"+n).prop("checked",!1),null!==this._containerElements.grantAll&&this._containerElements.grantAll.prop("checked",!1)):($("#deny"+n).prop("checked",!1),null!==this._containerElements.denyAll&&this._containerElements.denyAll.prop("checked",!1)):"deny"===i&&null!==this._containerElements.denyAll?this._containerElements.denyAll.prop("checked",!1):"grant"===i&&null!==this._containerElements.grantAll&&this._containerElements.grantAll.prop("checked",!1);var a=!0;this._containerElements.permissionList.find("input[type=checkbox]").each($.proxy(function(e,t){var n=$(t);return n.data("type")!==i||n.attr("id")===i+"All_"+this._container.attr("id")||n.is(":checked")?void 0:(a=!1,!1)},this)),"deny"==i?null!==this._containerElements.denyAll&&(a?this._containerElements.denyAll.prop("checked",!0):this._containerElements.denyAll.prop("checked",!1)):null!==this._containerElements.grantAll&&(a?this._containerElements.grantAll.prop("checked",!0):this._containerElements.grantAll.prop("checked",!1))},_changeAll:function(e){var t=$(e.currentTarget),n=t.data("type");t.is(":checked")?"deny"===n?(this._containerElements.grantAll.prop("checked",!1),this._containerElements.permissionList.find("input[type=checkbox]").each($.proxy(function(e,t){var n=$(t);"deny"===n.data("type")&&n.attr("id")!=="denyAll_"+this._container.attr("id")&&n.prop("checked",!0).trigger("change")},this))):(this._containerElements.denyAll.prop("checked",!1),this._containerElements.permissionList.find("input[type=checkbox]").each($.proxy(function(e,t){var n=$(t);"grant"===n.data("type")&&n.attr("id")!=="grantAll_"+this._container.attr("id")&&n.prop("checked",!0).trigger("change")},this))):"deny"===n?(this._containerElements.grantAll.prop("checked",!1),this._containerElements.permissionList.find("input[type=checkbox]").each($.proxy(function(e,t){var n=$(t);"deny"===n.data("type")&&n.attr("id")!=="denyAll_"+this._container.attr("id")&&n.prop("checked",!1).trigger("change")},this))):(this._containerElements.denyAll.prop("checked",!1),this._containerElements.permissionList.find("input[type=checkbox]").each($.proxy(function(e,t){var n=$(t);"grant"===n.data("type")&&n.attr("id")!=="grantAll_"+this._container.attr("id")&&n.prop("checked",!1).trigger("change")},this)))},_setupPermissions:function(e,t){if(this._containerElements.permissionList.find("input[type='checkbox']").prop("checked",!1),this._values[e]&&this._values[e][t])for(var n in this._values[e][t])1==this._values[e][t][n]?$("#grant"+n).prop("checked",!0).trigger("change"):$("#deny"+n).prop("checked",!0).trigger("change");this._containerElements.permissionList.show()},_savePermissions:function(){var e=this._containerElements.aclList.find("li.active");if(e.length){var t=e.data("objectID"),n=e.data("type");this._values[n][t]={},this._containerElements.permissionList.find("input[type='checkbox']").each(function(e,i){var a=$(i);if(a.attr("id")!="grantAll_"+this._container.attr("id")&&a.attr("id")!="denyAll_"+this._container.attr("id")){var s="deny"===a.data("type")?0:1,r=a.data("optionID");a.is(":checked")?(this._values[n][t][r]=s,a.prop("checked",!1)):this._values[n]&&this._values[n][t]&&this._values[n][t][r]&&this._values[n][t][r]==s&&delete this._values[n][t][r]}}.bind(this))}},submit:function(){this._savePermissions(),this._save("group"),this._save("user")},_save:function(e){if($.getLength(this._values[e])){var t=this._container.parents("form:eq(0)");for(var n in this._values[e]){var i=this._values[e][n];for(var a in i)$('<input type="hidden" name="aclValues['+e+"]["+n+"]["+a+']" value="'+i[a]+'" />').appendTo(t)}}}}); })(this);
 
 // WCF.Attachment.js
-(function (window, undefined) { })(this);
+(function (window, undefined) {"use strict";WCF.Attachment={},WCF.Attachment.Upload=WCF.Upload.extend({_autoInsert:[],_insertAllButton:null,_objectType:"",_objectID:0,_tmpHash:"",_parentObjectID:0,_wysiwygContainerID:"",init:function(t,e,a,i,n,s,r,l){this._super(t,e,"wcf\\data\\attachment\\AttachmentAction",{multiple:!0,maxUploads:r}),this._autoInsert=[],this._objectType=a,this._objectID=parseInt(i),this._tmpHash=n,this._parentObjectID=parseInt(s),this._wysiwygContainerID=l,this._buttonSelector.children("p.button").click($.proxy(this._validateLimit,this)),this._fileListSelector.find(".jsButtonInsertAttachment").click($.proxy(this._insert,this)),this._fileListSelector.find(".jsButtonAttachmentInsertThumbnail").click($.proxy(this._insert,this)),this._fileListSelector.find(".jsButtonAttachmentInsertFull").click($.proxy(this._insert,this)),WCF.System.Event.addListener("com.woltlab.wcf.action.delete","attachment_"+this._wysiwygContainerID,$.proxy(this._removeLimitError,this)),this._makeSortable(),this._insertAllButton=$('<p class="button jsButtonAttachmentInsertAll">'+WCF.Language.get("wcf.attachment.insertAll")+"</p>").hide().appendTo(this._buttonSelector),this._insertAllButton.click($.proxy(this._insertAll,this)),this._fileListSelector.children("li:not(.uploadFailed)").length&&this._insertAllButton.show(),this._wysiwygContainerID&&(WCF.System.Event.addListener("com.woltlab.wcf.messageOptionsInline","submit_"+this._wysiwygContainerID,$.proxy(this._submitInline,this)),WCF.System.Event.addListener("com.woltlab.wcf.messageOptionsInline","prepareExtended_"+this._wysiwygContainerID,$.proxy(this._prepareExtended,this)),WCF.System.Event.addListener("com.woltlab.wcf.redactor","reset",$.proxy(this._reset,this)),WCF.System.Event.addListener("com.woltlab.wcf.redactor","upload_"+this._wysiwygContainerID,$.proxy(this._editorUpload,this)),WCF.System.Event.addListener("com.woltlab.wcf.redactor","getImageAttachments_"+this._wysiwygContainerID,$.proxy(this._getImageAttachments,this)))},_editorUpload:function(t){var e;this._fileListSelector.closest(".messageTabMenu").messageTabMenu("showTab","attachments",!0),e=t.file?this._upload(void 0,t.file):this._upload(void 0,void 0,t.blob),this._autoInsert.push(e),t.uploadID=e},_getImageAttachments:function(t){this._fileListSelector.children("li").each(function(e,a){var i=$(a);i.children("img.attachmentTinyThumbnail").length&&(t.imageAttachments[parseInt(i.data("objectID"))]={height:parseInt(i.data("height")),width:parseInt(i.data("width"))})})},_submitInline:function(t){this._tmpHash&&(t.tmpHash=this._tmpHash)},_prepareExtended:function(t){!this._objectID&&this._tmpHash&&this._fileListSelector.children("li:not(.uploadFailed)").length&&(t.tmpHash=this._tmpHash)},_reset:function(){this._fileListSelector.hide().empty(),this._insertAllButton.hide(),this._validateLimit()},_validateLimit:function(){var t=this._buttonSelector.next("small.innerError"),e=this._options.maxUploads-this._fileListSelector.children("li:not(.uploadFailed)").length,a=this._fileUpload?this._fileUpload.prop("files").length:0;if(0>=e||a>e){var i=0>=e?WCF.Language.get("wcf.attachment.upload.error.reachedLimit"):WCF.Language.get("wcf.attachment.upload.error.reachedRemainingLimit").replace(/#remaining#/,e);return t.length||(t=$('<small class="innerError" />').insertAfter(this._buttonSelector)),t.html(i),!1}return t.remove(),!0},_removeLimitError:function(t){var e=this._fileListSelector.children("li");e.filter(":not(.uploadFailed)").length||this._insertAllButton.hide(),e.length||setTimeout(function(){this._fileListSelector.wcfBlindOut()}.bind(this),250),this._wysiwygContainerID&&$("#"+this._wysiwygContainerID).redactor("wbbcode.removeAttachment",t.button.data("objectID"))},_upload:function(t,e,a){var i=void 0;return this._validateLimit()&&(i=this._super(t,e,a)),this._fileUpload&&(this._removeButton(),this._createButton()),i},_createUploadMatrix:function(t){return this._fileListSelector.children("li.uploadFailed").remove(),this._super(t)},_getParameters:function(){return{objectType:this._objectType,objectID:this._objectID,tmpHash:this._tmpHash,parentObjectID:this._parentObjectID}},_initFile:function(t){var e=$('<li class="box64"><span class="icon icon48 icon-spinner" /><div><div><p>'+t.name+'</p><small><progress max="100"></progress></small></div><ul></ul></div></li>').data("filename",t.name);return this._fileListSelector.append(e),this._fileListSelector.show(),this._buttonSelector.data("maxSize")<t.size&&(e.find("progress").remove(),e.children(".icon-spinner").removeClass("icon-spinner").addClass("icon-ban-circle"),e.find("div > div").append($('<small class="innerError">'+WCF.Language.get("wcf.attachment.upload.error.tooLarge")+"</small>")),e.addClass("uploadFailed")),e},_success:function(t,e){for(var a in this._uploadMatrix[t]){var i=this._uploadMatrix[t][a];i.find("progress").remove();var n=i.data("filename"),s=i.data("internalFileID");if(e.returnValues&&e.returnValues.attachments[s]){e.returnValues.attachments[s].tinyURL?(i.children(".icon-spinner").replaceWith($('<img src="'+e.returnValues.attachments[s].tinyURL+'" alt="" class="attachmentTinyThumbnail" />')),i.data("height",e.returnValues.attachments[s].height),i.data("width",e.returnValues.attachments[s].width)):i.children(".icon-spinner").removeClass("icon-spinner").addClass("icon-paper-clip");var r=$('<a href=""></a>');r.text(n).attr("href",e.returnValues.attachments[s].url),0!=e.returnValues.attachments[s].isImage&&r.addClass("jsImageViewer").attr("title",n),i.find("p").empty().append(r),i.find("small").append(e.returnValues.attachments[s].formattedFilesize);var l=i.find("ul").addClass("buttonGroup"),o=$('<li><span class="button small jsDeleteButton" data-object-id="'+e.returnValues.attachments[s].attachmentID+'" data-confirm-message="'+WCF.Language.get("wcf.attachment.delete.sure")+'" data-event-name="attachment_'+this._wysiwygContainerID+'">'+WCF.Language.get("wcf.global.button.delete")+"</span></li>");if(l.append(o),i.data("objectID",e.returnValues.attachments[s].attachmentID),this._wysiwygContainerID)if(e.returnValues.attachments[s].tinyURL){var c=$('<li><span class="button small jsButtonAttachmentInsertThumbnail" data-object-id="'+e.returnValues.attachments[s].attachmentID+'">'+WCF.Language.get("wcf.attachment.insertThumbnail")+"</span></li>").appendTo(l),h=$('<li><span class="button small jsButtonAttachmentInsertFull" data-object-id="'+e.returnValues.attachments[s].attachmentID+'">'+WCF.Language.get("wcf.attachment.insertFull")+"</span></li>").appendTo(l);c.children("span.button").click($.proxy(this._insert,this)),h.children("span.button").click($.proxy(this._insert,this))}else{var d=$('<li><span class="button small jsButtonAttachmentInsertPlain" data-object-id="'+e.returnValues.attachments[s].attachmentID+'">'+WCF.Language.get("wcf.attachment.insert")+"</span></li>");d.appendTo(l).children("span.button").click($.proxy(this._insert,this))}}else{i.children(".icon-spinner").removeClass("icon-spinner").addClass("icon-ban-circle");var u="";u=e.returnValues&&e.returnValues.errors[s]?e.returnValues.errors[s].errorType:"uploadFailed",i.find("div > div").append($('<small class="innerError">'+WCF.Language.get("wcf.attachment.upload.error."+u)+"</small>")),i.addClass("uploadFailed")}i.css("display","block"),WCF.inArray(t,this._autoInsert)&&(this._autoInsert.splice(this._autoInsert.indexOf(t),1),i.hasClass("uploadFailed")||WCF.System.Event.fireEvent("com.woltlab.wcf.attachment","autoInsert_"+this._wysiwygContainerID,{attachment:"[attach="+e.returnValues.attachments[s].attachmentID+"][/attach]",uploadID:t}))}this._makeSortable(),this._fileListSelector.children("li:not(.uploadFailed)").length?this._insertAllButton.show():this._insertAllButton.hide(),WCF.DOMNodeInsertedHandler.execute()},_insert:function(t,e){var a=null===t?e:$(t.currentTarget).data("objectID"),i=null!==t?$(t.currentTarget).hasClass("jsButtonAttachmentInsertFull"):!1;$.browser.redactor&&$("#"+this._wysiwygContainerID).redactor("wbbcode.insertAttachment",a,i)},_insertAll:function(){this._fileListSelector.children("li:not(.uploadFailed)").each($.proxy(function(t,e){this._insert(null,$(e).data("objectID"))},this))},_error:function(t){this._fileListSelector.find("li").each(function(e,a){var i=$(a);i.children(".icon-spinner").length&&(i.addClass("uploadFailed").children(".icon-spinner").removeClass("icon-spinner").addClass("icon-ban-circle"),i.find("div > div").append($('<small class="innerError">'+(t.responseJSON&&t.responseJSON.message?t.responseJSON.message:WCF.Language.get("wcf.attachment.upload.error.uploadFailed"))+"</small>")))})},_makeSortable:function(){var t=this._fileListSelector.children("li:not(.uploadFailed)");if(t.length&&(t.addClass("sortableAttachment").children("img").addClass("sortableNode"),!this._fileListSelector.hasClass("sortableList"))){this._fileListSelector.addClass("sortableList");var e=this;new WCF.Sortable.List(this._fileListSelector.parent().wcfIdentify(),"",0,{axis:!1,items:"li.sortableAttachment",toleranceElement:null,update:function(){var t=[];e._fileListSelector.children("li:not(.uploadFailed)").each(function(e,a){t.push($(a).data("objectID"))}),t.length&&new WCF.Action.Proxy({autoSend:!0,data:{actionName:"updatePosition",className:"wcf\\data\\attachment\\AttachmentAction",parameters:{attachmentIDs:t,objectID:e._objectID,objectType:e._objectType,tmpHash:e._tmpHash}}})}},!0)}}}); })(this);
 
 // WCF.ColorPicker.js
-(function (window, undefined) { })(this);
+(function (window, undefined) {"use strict";WCF.ColorPicker=Class.extend({_bar:null,_barActive:!1,_barSelector:null,_dialog:null,_didInit:!1,_elementID:"",_gradient:null,_gradientActive:!1,_gradientSelector:null,_hex:null,_hsv:{},_newColor:null,_oldColor:null,_rgba:{},_rgbaRegExp:null,init:function(t){this._elementID="",this._hsv={h:0,s:100,v:100},this._position={};var a=$(t);return a.length?void a.click($.proxy(this._open,this)):void console.debug("[WCF.ColorPicker] Selector does not match any element, aborting.")},_open:function(t){this._didInit||(this._initColorPicker(),this._didInit=!0);var a=$(t.currentTarget);this._elementID=a.wcfIdentify(),this._parseColor(a);var s=this.hsvToRgb(this._hsv.h,this._hsv.s,this._hsv.v);this._oldColor.css({backgroundColor:"rgba("+s.r+", "+s.g+", "+s.b+", "+this._rgba.a.val()/100+")"}),this._dialog.wcfDialog({title:WCF.Language.get("wcf.style.colorPicker")}),this._hex.focus()},_parseColor:function(t){if(t.data("hsv")&&t.data("rgb")){var a=t.data("hsv");for(var s in a)this._hsv[s]=a[s];this._updateValues(t.data("rgb"),!0,!0),this._rgba.a.val(parseInt(t.data("alpha")))}else{null===this._rgbaRegExp&&(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(t.data("color"));var i=RegExp.$4;0===i.indexOf(".")&&(i="0"+i),i*=100,this._updateValues({r:RegExp.$1,g:RegExp.$2,b:RegExp.$3,a:Math.round(i)},!0,!0)}},_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 t=this;$(document).mouseup(function(a){t._barActive?(t._barActive=!1,t._mouseBar(a)):t._gradientActive&&(t._gradientActive=!1,t._mouseGradient(a))}).mousemove(function(a){t._barActive?t._mouseBar(a):t._gradientActive&&t._mouseGradient(a)}),this._initColorPickerForm()},_initColorPickerForm:function(){var t=$('<div id="colorPickerForm" />').appendTo(this._dialog);$("<small>"+WCF.Language.get("wcf.style.colorPicker.new")+"</small>").appendTo(t);var a=$('<ul class="colors" />').appendTo(t);this._newColor=$('<li class="new"><span /></li>').appendTo(a).children("span"),this._oldColor=$('<li class="old"><span /></li>').appendTo(a).children("span"),$("<small>"+WCF.Language.get("wcf.style.colorPicker.current")+"</small>").appendTo(t);var s=$('<ul class="rgba" />').appendTo(t);this._createInputElement("r","R",0,255).appendTo(s),this._createInputElement("g","G",0,255).appendTo(s),this._createInputElement("b","B",0,255).appendTo(s),this._createInputElement("a","a",0,100).appendTo(s);var i=$('<ul class="hex"><li><label><span>#</span></label></li></ul>').appendTo(t);this._hex=$('<input type="text" maxlength="6" />').appendTo(i.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 e=$('<div class="formSubmit" />').appendTo(this._dialog);$('<button class="buttonPrimary">'+WCF.Language.get("wcf.style.colorPicker.button.apply")+"</button>").appendTo(e).click($.proxy(this._submit,this));var r=this;this._hex.on("paste",function(){r._hex.attr("maxlength","7"),setTimeout(function(){var t=r._hex.val();"#"==t.substring(0,1)&&(t=t.substr(1)),t.length>6&&(t=t.substring(0,6)),r._hex.attr("maxlength","6").val(t)},50)}),t.find("input").focus(function(){this.select()})},_keyUpRGBA:function(t){13==t.which&&(this._blurRgba(),this._submit())},_keyUpHex:function(t){13==t.which&&(this._blurHex(),this._submit())},_submit:function(){var t=this.hsvToRgb(this._hsv.h,this._hsv.s,this._hsv.v),a={};for(var s in this._hsv)a[s]=this._hsv[s];var i=$("#"+this._elementID);i.data("hsv",a).css({backgroundColor:"rgba("+t.r+", "+t.g+", "+t.b+", "+this._rgba.a.val()/100+")"}).data("alpha",parseInt(this._rgba.a.val())),i.data("rgb",{r:this._rgba.r.val(),g:this._rgba.g.val(),b:this._rgba.b.val()}),$("#"+i.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(t,a,s,i){var e=$('<li class="'+t+'" />'),r=$("<label />").appendTo(e);return $("<span>"+a+"</span>").appendTo(r),this._rgba[t]=$('<input type="number" value="0" min="'+s+'" max="'+i+'" step="1" />').appendTo(r),e},_mouseDownGradient:function(t){this._gradientActive=!0,this._mouseGradient(t)},_mouseGradient:function(t){var a=this._gradient.getOffsets("offset"),s=Math.max(Math.min(t.pageX-a.left,255),0),i=Math.max(Math.min(t.pageY-a.top,255),0);this._hsv.s=100*Math.max(0,Math.min(1,s/255)),this._hsv.v=100*Math.max(0,Math.min(1,(255-i)/255)),this._updateValues(null)},_mouseDownBar:function(t){this._barActive=!0,this._mouseBar(t)},_mouseBar:function(t){var a=this._bar.getOffsets("offset"),s=Math.max(Math.min(t.pageY-a.top,255),0);this._barSelector.css({top:s+"px"}),this._hsv.h=Math.max(0,Math.min(359,Math.round((255-s)/255*360))),this._updateValues(null)},_blurRgba:function(){for(var t in this._rgba){var a=parseInt(this._rgba[t].val())||0;this._rgba[t].val("a"===t?Math.max(0,Math.min(100,a)):Math.max(0,Math.min(255,a)))}this._updateValues({r:this._rgba.r.val(),g:this._rgba.g.val(),b:this._rgba.b.val()},!0,!0)},_blurHex:function(){var t=this.hexToRgb(this._hex.val());t!==Number.NaN&&this._updateValues(t,!0,!0)},_updateValues:function(t,a,s){a=a===!0?!0:!1,s=s===!0?!0:!1,null===t&&(t=this.hsvToRgb(this._hsv.h,this._hsv.s,this._hsv.v),0==this._rgba.a.val()&&(t.a=100)),void 0===t.a&&(t.a=this._rgba.a.val());for(var i in t)this._rgba[i].val(t[i]);if(this._hex.val(this.rgbToHex(t.r,t.g,t.b)),a||s){var e=this.rgbToHsv(t.r,t.g,t.b);a&&(this._hsv.h=e.h),s&&(this._hsv.s=e.s,this._hsv.v=e.v)}var r=Math.max(0,Math.min(255,255-this._hsv.h/360*255));this._barSelector.css({top:r+"px"});var h=Math.max(0,Math.min(255,this._hsv.s/100*255)),r=Math.max(0,Math.min(255,255-this._hsv.v/100*255));this._gradientSelector.css({left:h-6+"px",top:r-6+"px"}),this._newColor.css({backgroundColor:"rgba("+t.r+", "+t.g+", "+t.b+", "+t.a/100+")"});var n=this.hsvToRgb(this._hsv.h,100,100);this._gradient.css({backgroundColor:"rgb("+n.r+", "+n.g+", "+n.b+")"})},hsvToRgb:function(t,a,s){var i,e,r,h,n,o={r:0,g:0,b:0};if(i=Math.floor(t/60),e=t/60-i,a/=100,s/=100,r=s*(1-a),h=s*(1-a*e),n=s*(1-a*(1-e)),0==a)o.r=o.g=o.b=s;else switch(i){case 1:o.r=h,o.g=s,o.b=r;break;case 2:o.r=r,o.g=s,o.b=n;break;case 3:o.r=r,o.g=h,o.b=s;break;case 4:o.r=n,o.g=r,o.b=s;break;case 5:o.r=s,o.g=r,o.b=h;break;case 0:case 6:o.r=s,o.g=n,o.b=r}return{r:Math.round(255*o.r),g:Math.round(255*o.g),b:Math.round(255*o.b)}},rgbToHsv:function(t,a,s){var i,e,r,h,n,o;if(t/=255,a/=255,s/=255,h=Math.max(Math.max(t,a),s),n=Math.min(Math.min(t,a),s),o=h-n,i=0,h!==n){switch(h){case t:i=60*(0+(a-s)/o);break;case a:i=60*(2+(s-t)/o);break;case s:i=60*(4+(t-a)/o)}0>i&&(i+=360)}return e=0===h?0:o/h,r=h,{h:Math.round(i),s:Math.round(100*e),v:Math.round(100*r)}},hexToRgb:function(t){return/^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(t)?(t=t.split(""),"#"===t[0]&&t.shift(),3===t.length?{r:parseInt(t[0]+""+t[0],16),g:parseInt(t[1]+""+t[1],16),b:parseInt(t[2]+""+t[2],16)}:{r:parseInt(t[0]+""+t[1],16),g:parseInt(t[2]+""+t[3],16),b:parseInt(t[4]+""+t[5],16)}):Number.NaN},rgbToHex:function(t,a,s){return"0123456789ABCDEF".charAt((t-t%16)/16)+""+"0123456789ABCDEF".charAt(t%16)+("0123456789ABCDEF".charAt((a-a%16)/16)+""+"0123456789ABCDEF".charAt(a%16))+("0123456789ABCDEF".charAt((s-s%16)/16)+""+"0123456789ABCDEF".charAt(s%16))}}); })(this);
 
 // WCF.Comment.js
-(function (window, undefined) { })(this);
+(function (window, undefined) {"use strict";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,init:function(e,t){this._commentAdd=null,this._commentButtonList={},this._comments={},this._containerID=e,this._displayedComments=0,this._loadNextComments=null,this._loadNextResponses={},this._responses={},this._userAvatar=t,this._container=$("#"+$.wcfEscapeID(this._containerID)),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(),this._container.data("canAdd")&&this._initAddComment(),WCF.DOMNodeInsertedHandler.execute(),WCF.DOMNodeInsertedHandler.addCallback("WCF.Comment.Handler",$.proxy(this._domNodeInserted,this)),WCF.System.ObjectStore.add("WCF.Comment.Handler",this)},_handleLoadNextComments:function(){this._displayedComments<this._container.data("comments")?(null===this._loadNextComments&&(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()):null!==this._loadNextComments&&this._loadNextComments.remove()},_handleLoadNextResponses:function(e){var t=this._comments[e];if(t.data("displayedResponses",t.find("ul.commentResponseList > li").length),t.data("displayedResponses")<t.data("responses")){if(void 0===this._loadNextResponses[e]){var n=t.data("responses")-t.data("displayedResponses");this._loadNextResponses[e]=$('<li class="jsCommentLoadNextResponses"><a>'+WCF.Language.get("wcf.comment.response.more",{count:n})+"</a></li>").appendTo(this._commentButtonList[e]),this._loadNextResponses[e].children("a").data("commentID",e).click($.proxy(this._loadResponses,this)),this._commentButtonList[e].parent().show()}}else if(void 0!==this._loadNextResponses[e]){var s=this._loadNextResponses[e].next();this._loadNextResponses[e].remove(),s.length&&s.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(e){this._loadResponsesExecute($(e.currentTarget).disable().data("commentID"),!1)},_loadResponsesExecute:function(e,t){this._proxy.setOption("data",{actionName:"loadResponses",className:"wcf\\data\\comment\\response\\CommentResponseAction",parameters:{data:{commentID:e,lastResponseTime:this._comments[e].data("lastResponseTime"),loadAllResponses:t?1:0}}}),this._proxy.sendRequest()},_domNodeInserted:function(){this._initComments(),this._initResponses()},_initComments:function(){var e=this,t=!1;this._container.find(".jsComment").each(function(n,s){var a=$(s).removeClass("jsComment"),o=a.data("commentID");e._comments[o]=a;var i=a.find("ul.commentResponseList");i.length||(i=a.find(".commentContent"));var r=$('<div class="commentOptionContainer" />').hide().insertAfter(i);e._commentButtonList[o]=$("<ul />").appendTo(r),e._handleLoadNextResponses(o),e._initComment(o,a),e._displayedComments++,t=!0}),t&&this._handleLoadNextComments()},_initComment:function(e,t){if(this._container.data("canAdd")&&this._initAddResponse(e,t),t.data("canEdit")){var n=$('<li><a href="#" 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>");n.data("commentID",e).appendTo(t.find("ul.commentOptions:eq(0)")).click($.proxy(this._prepareEdit,this))}if(t.data("canDelete")){var s=$('<li><a href="#" 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>");s.data("commentID",e).appendTo(t.find("ul.commentOptions:eq(0)")).click($.proxy(this._delete,this))}},_initResponses:function(){var e=this;this._container.find(".jsCommentResponse").each(function(t,n){var s=$(n).removeClass("jsCommentResponse"),a=s.data("responseID");e._responses[a]=s,e._initResponse(a,s)})},_initResponse:function(e,t){if(t.data("canEdit")){var n=$('<li><a href="#" 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>"),s=this;n.data("responseID",e).appendTo(t.find("ul.commentOptions:eq(0)")).click(function(e){s._prepareEdit(e,!0)})}if(t.data("canDelete")){var a=$('<li><a href="#" 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>"),s=this;a.data("responseID",e).appendTo(t.find("ul.commentOptions:eq(0)")).click(function(e){s._delete(e,!0)})}},_initAddComment:function(){this._commentAdd=$('<li class="box32 jsCommentAdd"><span class="framed">'+this._userAvatar+"</span><div /></li>").prependTo(this._container);var e=this._commentAdd.children("div"),t=$('<textarea placeholder="'+WCF.Language.get("wcf.comment.add")+'" maxlength="65535" class="long" />').appendTo(e).flexible();$('<button class="small">'+WCF.Language.get("wcf.global.button.submit")+"</button>").click($.proxy(this._save,this)).appendTo(e),t.keyup($.proxy(this._keyUp,this))},_initAddResponse:function(e,t){var n=$('<li class="jsCommentShowAddResponse"><a>'+WCF.Language.get("wcf.comment.button.response.add")+"</a></li>").data("commentID",e).click($.proxy(this._showAddResponse,this)).appendTo(this._commentButtonList[e]),s=$('<div class="box32 commentResponseAdd jsCommentResponseAdd"><span class="framed">'+this._userAvatar+"</span><div /></div>").hide();s.appendTo(this._commentButtonList[e].parent().show());var a=s.children("div"),o=$('<textarea placeholder="'+WCF.Language.get("wcf.comment.response.add")+'" maxlength="65535" class="long" />').data("commentID",e).appendTo(a).flexible();$('<button class="small">'+WCF.Language.get("wcf.global.button.submit")+"</button>").click($.proxy(function(e){this._save(e,!0)},this)).appendTo(a);var i=this;o.keyup(function(e){i._keyUp(e,!0)}),t.data("responsePlaceholder",n).data("responseInput",s)},_prepareEdit:function(e,t){e.preventDefault();var n=$(e.currentTarget),s={objectID:this._container.data("objectID"),objectTypeID:this._container.data("objectTypeID")};t===!0?s.responseID=n.data("responseID"):s.commentID=n.data("commentID"),this._proxy.setOption("data",{actionName:"prepareEdit",className:"wcf\\data\\comment\\CommentAction",parameters:{data:s}}),this._proxy.sendRequest()},_showAddResponse:function(e){var t=$(e.currentTarget),n=t.data("commentID");t.prev().hasClass("jsCommentLoadNextResponses")&&(this._loadResponsesExecute(n,!0),t.parent().children(".button").disable()),t.remove();var s=this._comments[n].data("responseInput").show();s.find("textarea").focus(),s.parents(".commentOptionContainer").addClass("jsAddResponseActive")},_keyUp:function(e,t){return e.which===$.ui.keyCode.ESCAPE?void $(e.currentTarget).val("").trigger("blur",e).trigger("updateHeight"):e.which===$.ui.keyCode.ENTER&&e.ctrlKey?(this._save(null,t,$(e.currentTarget)),!1):void 0},_save:function(e,t,n){var s=null===e?n:$(e.currentTarget).parent().children("textarea");s.next("small.innerError").remove();var a=$.trim(s.val());if(""!=a){var o="addComment",i={message:a,objectID:this._container.data("objectID"),objectTypeID:this._container.data("objectTypeID")};t===!0&&(o="addResponse",i.commentID=s.data("commentID")),WCF.User.userID?new WCF.Action.Proxy({autoSend:!0,data:{actionName:o,className:"wcf\\data\\comment\\CommentAction",parameters:{data:i}},success:$.proxy(this._success,this),failure:function(e,t,n,a){return e.returnValues&&e.returnValues.fieldName&&"text"===e.returnValues.fieldName&&e.returnValues.errorType?($('<small class="innerError">'+e.returnValues.errorType+"</small>").insertAfter(s),!1):void this._failure(e,t,n,a)}.bind(this)}):(this._commentData=i,this._proxy.setOption("data",{actionName:"getGuestDialog",className:"wcf\\data\\comment\\CommentAction",parameters:{data:{message:a,objectID:this._container.data("objectID"),objectTypeID:this._container.data("objectTypeID")}}}),this._proxy.sendRequest())}},_delete:function(e,t){e.preventDefault(),WCF.System.Confirmation.show(WCF.Language.get("wcf.comment.delete.confirmMessage"),$.proxy(function(n){if("confirm"===n){var s={objectID:this._container.data("objectID"),objectTypeID:this._container.data("objectTypeID")};t!==!0?s.commentID=$(e.currentTarget).data("commentID"):s.responseID=$(e.currentTarget).data("responseID"),this._proxy.setOption("data",{actionName:"remove",className:"wcf\\data\\comment\\CommentAction",parameters:{data:s}}),this._proxy.sendRequest()}},this))},_failure:function(){return!WCF.User.userID&&this._guestDialog&&this._guestDialog.find('input[type="submit"]').enable(),!0},_success:function(e){switch(e.actionName){case"addComment":e.returnValues.guestDialog?this._createGuestDialog(e.returnValues.guestDialog,e.returnValues.useCaptcha):(this._commentAdd.find("textarea").val("").blur().trigger("updateHeight"),$(e.returnValues.template).insertAfter(this._commentAdd).wcfFadeIn(),WCF.User.userID||this._guestDialog.wcfDialog("close"));break;case"addResponse":if(e.returnValues.guestDialog)this._createGuestDialog(e.returnValues.guestDialog,e.returnValues.useCaptcha);else{var t=this._comments[e.returnValues.commentID];t.find(".jsCommentResponseAdd textarea").val("").blur().trigger("updateHeight");var n=t.find("ul.commentResponseList");n.length||(n=$('<ul class="commentResponseList" />').insertBefore(t.find(".commentOptionContainer"))),$(e.returnValues.template).appendTo(n).wcfFadeIn(),WCF.User.userID||this._guestDialog.wcfDialog("close")}break;case"edit":this._update(e);break;case"loadComments":this._insertComments(e);break;case"loadResponses":this._insertResponses(e);break;case"prepareEdit":this._edit(e);break;case"remove":this._remove(e);break;case"getGuestDialog":this._createGuestDialog(e.returnValues.template,e.returnValues.useCaptcha)}WCF.DOMNodeInsertedHandler.execute()},_insertComments:function(e){$(e.returnValues.template).insertBefore(this._loadNextComments),this._container.data("lastCommentTime",e.returnValues.lastCommentTime)},_insertResponses:function(e){var t=this._comments[e.returnValues.commentID];$(e.returnValues.template).appendTo(t.find("ul.commentResponseList")),t.data("lastResponseTime",e.returnValues.lastResponseTime),this._handleLoadNextResponses(e.returnValues.commentID)},_remove:function(e){if(e.returnValues.commentID)this._comments[e.returnValues.commentID].remove(),delete this._comments[e.returnValues.commentID];else{var t=this._responses[e.returnValues.responseID],n=this._comments[t.parents("li.comment:eq(0)").data("commentID")];n.data("responses",parseInt(n.data("responses"))-1);var s=t.parent();t.remove(),s.children().length||s.empty(),delete this._responses[e.returnValues.responseID]}},_edit:function(e){var t;t=e.returnValues.commentID?this._comments[e.returnValues.commentID].find(".commentContent:eq(0) .userMessage:eq(0)"):this._responses[e.returnValues.responseID].find(".commentContent:eq(0) .userMessage:eq(0)"),t.html($.proxy(function(t,n){var s=$('<textarea class="long" maxlength="65535" />').val(e.returnValues.message);return s.data("__html",n).keyup($.proxy(this._keyUpEdit,this)),e.returnValues.commentID?s.data("commentID",e.returnValues.commentID):s.data("responseID",e.returnValues.responseID),s},this));var n=t.children("textarea");$('<button class="small">'+WCF.Language.get("wcf.global.button.submit")+"</button>").insertAfter(n).click($.proxy(this._saveEdit,this)),n.focus().flexible(),t.parent().find(".containerHeadline:eq(0)").hide(),t.parent().find(".buttonGroupNavigation:eq(0)").hide()},_update:function(e){var t;t=e.returnValues.commentID?this._comments[e.returnValues.commentID].find(".commentContent:eq(0) .userMessage:eq(0) > textarea"):this._responses[e.returnValues.responseID].find(".commentContent:eq(0) .userMessage:eq(0) > textarea"),t.data("__html",e.returnValues.message),this._cancelEdit(t)},_createGuestDialog:function(e,t){!!this._guestDialog;this._guestDialog||(this._guestDialog=$('<div id="commentAddGuestDialog" />').hide().appendTo(document.body)),this._guestDialog.html(e),this._guestDialog.data("useCaptcha",t),this._guestDialog.find('input[type="submit"]').click($.proxy(this._submit,this)),this._guestDialog.find('input[type="text"]').keydown($.proxy(this._keyDown,this)),this._guestDialog.wcfDialog({title:WCF.Language.get("wcf.comment.guestDialog.title")})},_keyDown:function(e){e.which===$.ui.keyCode.ENTER&&this._submit()},_submit:function(){var e={actionName:this._commentData.commentID?"addResponse":"addComment",className:"wcf\\data\\comment\\CommentAction"},t=this._commentData;t.username=this._guestDialog.find('input[name="username"]').val(),e.parameters={data:t},e=$.extend(WCF.System.Captcha.getData("commentAdd"),e),this._proxy.setOption("data",e),this._proxy.sendRequest()},_keyUpEdit:function(e){return e.which===$.ui.keyCode.ESCAPE?void this._cancelEdit($(e.currentTarget)):e.which===$.ui.keyCode.ENTER&&e.ctrlKey?(this._saveEdit(e),!1):void 0},_saveEdit:function(e){var t=$(e.currentTarget);t.is("button")&&(t.prev("small.innerError").remove(),t=t.prev("textarea"));var n=$.trim(t.val());if(""!==n){var s={message:n,objectID:this._container.data("objectID"),objectTypeID:this._container.data("objectTypeID")};t.data("commentID")?s.commentID=t.data("commentID"):s.responseID=t.data("responseID"),new WCF.Action.Proxy({autoSend:!0,data:{actionName:"edit",className:"wcf\\data\\comment\\CommentAction",parameters:{data:s}},success:$.proxy(this._success,this),failure:function(e,n,s,a){return e.returnValues&&e.returnValues.fieldName&&"text"===e.returnValues.fieldName&&e.returnValues.errorType?($('<small class="innerError">'+e.returnValues.errorType+"</small>").insertAfter(t),!1):void this._failure(e,n,s,a)}.bind(this)})}},_cancelEdit:function(e){e.parent().prev(".containerHeadline:eq(0)").show(),e.parent().next(".buttonGroupNavigation:eq(0)").show(),e.parent().html(e.data("__html"))}}),WCF.Comment.Like=WCF.Like.extend({_getContainers:function(){return $(".commentList > li.comment")},_getObjectID:function(e){return this._containers[e].data("commentID")},_buildWidget:function(e,t,n,s){this._containers[e].find(".containerHeadline:eq(0) > h3").append(s),this._canLike&&(t.appendTo(this._containers[e].find(".commentOptions:eq(0)")),n.appendTo(this._containers[e].find(".commentOptions:eq(0)")))},_getWidgetContainer:function(){},_addWidget:function(){}}),WCF.Comment.Response={},WCF.Comment.Response.Like=WCF.Like.extend({_addWidget:function(){},_buildWidget:function(e,t,n,s){this._containers[e].find(".containerHeadline:eq(0) > h3").append(s),this._canLike&&(t.appendTo(this._containers[e].find(".commentOptions:eq(0)")),n.appendTo(this._containers[e].find(".commentOptions:eq(0)")))},_getContainers:function(){return $(".commentResponseList > li.commentResponse")},_getObjectID:function(e){return this._containers[e].data("responseID")},_getWidgetContainer:function(){}}); })(this);
 
 // WCF.ImageViewer.js
-(function (window, undefined) { })(this);
+(function (window, undefined) {"use strict";WCF.ImageViewer=Class.extend({_triggerElement:null,init:function(){this._triggerElement=$('<span class="wcfImageViewerTriggerElement" />').data("disableSlideshow",!0).hide().appendTo(document.body),this._triggerElement.wcfImageViewer({enableSlideshow:0,imageSelector:".jsImageViewerEnabled",staticViewer:!0}),WCF.DOMNodeInsertedHandler.addCallback("WCF.ImageViewer",$.proxy(this._domNodeInserted,this)),WCF.DOMNodeInsertedHandler.execute()},_domNodeInserted:function(){this._initImageSizeCheck(),this._rebuildImageViewer()},_rebuildImageViewer:function(){var i=$("a.jsImageViewer");i.length&&i.removeClass("jsImageViewer").addClass("jsImageViewerEnabled").click($.proxy(this._click,this))},_click:function(i){i.preventDefault(),i.stopPropagation(),this._triggerElement.wcfImageViewer("open",null,$(i.currentTarget).wcfIdentify())},_initImageSizeCheck:function(){$(".jsResizeImage").each($.proxy(function(i,e){e.complete&&this._checkImageSize({currentTarget:e})},this)),$(".jsResizeImage").on("load",$.proxy(this._checkImageSize,this))},_checkImageSize:function(i){var e=$(i.currentTarget);if(!e.is(":visible"))return void e.off("load");if(e.removeClass("jsResizeImage"),!e.closest(".messageSignature").length){var t=new Image;t.src=e.attr("src");var s=e.closest("div.messageText, div.messageTextPreview").width();s<t.width?e.parents("a").length||(e.wrap('<a href="'+e.attr("src")+'" class="jsImageViewerEnabled embeddedImageLink" />'),e.parent().click($.proxy(this._click,this)),"right"==e.css("float")?e.parent().addClass("messageFloatObjectRight"):"left"==e.css("float")&&e.parent().addClass("messageFloatObjectLeft"),e[0].style.removeProperty("float"),e[0].style.removeProperty("margin")):e.removeClass("embeddedAttachmentLink")}}}),$.widget("ui.wcfImageViewer",{_active:-1,_activeImage:null,_container:null,_didInit:!1,_disableSlideshow:!1,_eventNamespace:"",_images:[],_isMobile:!1,_isOpen:!1,_items:-1,_maxDimensions:{height:0,width:0},_proxy:null,_slideshowEnabled:!1,_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:"",imageSelector:"",staticViewer:!1},_create:function(){this._active=-1,this._activeImage=null,this._container=null,this._didInit=!1,this._disableSlideshow=this.element.data("disableSlideshow"),this._eventNamespace=this.element.wcfIdentify(),this._images=[],this._isMobile=!1,this._isOpen=!1,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=!1,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(i,e){if(i&&i.preventDefault(),this._isOpen)return!1;if(this.options.staticViewer){var t=this._getStaticImages();this._initUI(),this._createThumbnails(t,!0),this._render(!0,void 0,e),this._isOpen=!0,WCF.System.DisableScrolling.disable(),WCF.System.DisableZoom.disable(),$.browser.touch&&setTimeout($.proxy(function(){this._isMobile&&!this._container.hasClass("maximized")&&this._toggleView()},this),500)}else 0===this._images.length?this._loadNextImages(!0):(this._render(!1,this.element.data("targetImageID")),this._items>1&&this._slideshowEnabled&&this.startSlideshow(),this._isOpen=!0,WCF.System.DisableScrolling.disable(),WCF.System.DisableZoom.disable());return this._bindListener(),!0},close:function(i){return i&&i.preventDefault(),this._isOpen?(this._container.removeClass("open"),null!==this._timer&&this._timer.stop(),this._unbindListener(),this._isOpen=!1,WCF.System.DisableScrolling.enable(),WCF.System.DisableZoom.enable(),!0):!1},startSlideshow:function(){return this._disableSlideshow||this._slideshowEnabled?!1:(null===this._timer?this._timer=new WCF.PeriodicalExecuter($.proxy(function(){var i=this._active+1;i==this._items&&(i=0),this.showImage(i)},this),1e3*this.options.speed):this._timer.resume(),this._slideshowEnabled=!0,this._ui.slideshow.toggle.children("span").removeClass("icon-play").addClass("icon-pause"),!0)},stopSlideshow:function(i){return this._slideshowEnabled?(this._timer.stop(),i&&this._ui.slideshow.toggle.children("span").removeClass("icon-pause").addClass("icon-play"),this._slideshowEnabled=!1,!0):!1},_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(i){switch(i.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:this._container.hasClass("maximized")||this._toggleView();break;case $.ui.keyCode.DOWN:this._container.hasClass("maximized")&&this._toggleView();break;case $.ui.keyCode.ENTER:var e=this._ui.header.find("> div > h1 > a");1==e.length?window.location=e.prop("href"):this._ui.slideshow.full.trigger("click");break;case 80:this._ui.slideshow.toggle.trigger("click");break;default:return!0}return!1},_render:function(i,e,t){this._container.addClass("open");var s=null;if(i&&(s=this._ui.imageList.children("li:eq(0)"),this._thumbnailMarginRight=parseInt(s.css("marginRight").replace(/px$/,""))||0,this._thumbnailWidth=s.outerWidth(!0),this._thumbnailContainerWidth=this._ui.imageList.parent().innerWidth(),this._items>1&&this.options.enableSlideshow&&!e&&!t&&this.startSlideshow()),e)this._ui.imageList.children("li").each($.proxy(function(i,t){var s=$(t);return s.data("objectID")==e?(s.trigger("click"),this.moveToImage(s.data("index")),!1):void 0},this));else if(t){var a=0;$(this.options.imageSelector).each(function(i,e){return $(e).wcfIdentify()==t?(a=i,!1):void 0});var n=this._ui.imageList.children("li:eq("+a+")");if(-1!==this._active){var h=!1;this._active!=n.data("index")&&(h=!0),this._ui.images[this._activeImage].prop("src")!=this._images[this._active].image.url&&(h=!0),h&&(this._active=-1)}n.trigger("click"),this.moveToImage(n.data("index"))}else null!==s&&s.trigger("click");this._toggleButtons(),this._preload()},_preload:function(){if(this._images.length<this._items){var i=this._images.length*this._thumbnailWidth;i-this._thumbnailOffset<this._thumbnailContainerWidth&&this._loadNextImages(!1)}},_showImage:function(i){this.showImage($(i.currentTarget).data("index"),!0)},showImage:function(i,e){if(this._active==i)return!1;this.stopSlideshow(e||!1),-1!=this._active&&this._images[this._active].listItem.removeClass("active"),this._active=i;var t=this._images[i];this._ui.imageList.children("li").removeClass("active"),t.listItem.addClass("active");var s=this._ui.imageContainer.getDimensions("inner"),a=this._activeImage?0:1;null!==this._activeImage&&this._ui.images[this._activeImage].removeClass("active"),this._activeImage=a;var n=this._active;if(this._ui.imageContainer.addClass("loading"),this._ui.images[a].off("load").prop("src","data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="),this._ui.images[a].on("load",$.proxy(function(){this._imageOnLoad(n,a)},this)),this._renderImage(a,t,s),!this.options.staticViewer){var h=this._ui.header.find("> div > a").prop("href",t.user.link).prop("title",t.user.username);h.children("img").prop("src",t.user.avatarURL)}var o=WCF.String.escapeHTML(t.image.title);if(t.image.link&&(o='<a href="'+t.image.link+'">'+o+"</a>"),this._ui.header.find("> div > h1").html(o),!this.options.staticViewer){var l=t.series&&t.series.title?WCF.String.escapeHTML(t.series.title):"";t.series.link&&(l='<a href="'+t.series.link+'">'+l+"</a>"),this._ui.header.find("> div > h2").html(l)}return this._ui.header.find("> div > h3").text(WCF.Language.get("wcf.imageViewer.seriesIndex").replace(/{x}/,t.listItem.data("index")+1).replace(/{y}/,this._items)),this._ui.slideshow.full.data("link",t.image.fullURL?t.image.fullURL:t.image.url),this.moveToImage(t.listItem.data("index")),this._toggleButtons(),!0},_imageOnLoad:function(i,e){i==this._active&&(this._ui.imageContainer.removeClass("loading"),this._ui.images[e].addClass("active"),this.options.staticViewer&&this._renderImage(e,null),this.startSlideshow())},_renderImage:function(i,e,t){var s=!0;e||(i=this._activeImage,e=this._images[this._active],t={height:$(window).height()-(this._container.hasClass("maximized")||this._container.hasClass("wcfImageViewerMobile")?0:200),width:this._ui.imageContainer.innerWidth()},s=!1),t.height-=22,t.width-=20;var a=this._ui.images[i];if(a.prop("src")!==e.image.url&&a.prop("src",e.image.url),s&&a[0].complete&&a.trigger("load"),this.options.staticViewer&&!e.image.height&&a[0].complete)if($.browser.mozilla||$.browser.safari){var n=new Image;n.src=e.image.url,e.image.height=n.height,e.image.width=n.width}else a.css({height:"auto",width:"auto"}),e.image.height=a[0].height,e.image.width=a[0].width;var h=e.image.height,o=e.image.width,l=0;h>t.height&&(l=t.height/h,h=t.height,o=Math.floor(o*l)),o>t.width&&(l=t.width/o,o=t.width,h=Math.floor(h*l));var r=Math.floor((t.width-o)/2);this._ui.images[i].css({height:h+"px",left:r+10+"px",marginTop:-1*Math.round(h/2)+"px",width:o+"px"})},_initUI:function(){if(this._didInit)return!1;this._didInit=!0,this._container=$('<div class="wcfImageViewer'+(this.options.staticViewer?" wcfImageViewerStatic":"")+'" />').appendTo(document.body);var i=$("<div><img /><img /></div>").appendTo(this._container),e=$('<footer><span class="wcfImageViewerButtonPrevious icon icon-double-angle-left" /><div><ul /></div><span class="wcfImageViewerButtonNext icon icon-double-angle-right" /></footer>').appendTo(this._container),t=$("<ul />").appendTo(i),s=$('<li class="wcfImageViewerSlideshowButtonPrevious"><span class="icon icon48 icon-angle-left" /></li>').appendTo(t),a=$('<li class="wcfImageViewerSlideshowButtonToggle pointer"><span class="icon icon48 icon-play" /></li>').appendTo(t),n=$('<li class="wcfImageViewerSlideshowButtonNext"><span class="icon icon48 icon-angle-right" /></li>').appendTo(t),h=$('<li class="wcfImageViewerSlideshowButtonEnlarge pointer jsTooltip" title="'+WCF.Language.get("wcf.imageViewer.button.enlarge")+'"><span class="icon icon48 icon-resize-full" /></li>').appendTo(t),o=$('<li class="wcfImageViewerSlideshowButtonFull pointer jsTooltip" title="'+WCF.Language.get("wcf.imageViewer.button.full")+'"><span class="icon icon48 icon-external-link" /></li>').appendTo(t);return this._ui={buttonNext:e.children("span.wcfImageViewerButtonNext"),buttonPrevious:e.children("span.wcfImageViewerButtonPrevious"),header:$("<header><div"+(this.options.staticViewer?">":' class="box64"><a class="framed jsTooltip"><img /></a>')+"<h1 /><h2 /><h3 /></div></header>").appendTo(this._container),imageContainer:i,images:[i.children("img:eq(0)").on("webkitTransitionEnd transitionend msTransitionEnd oTransitionEnd",function(){$(this).removeClass("animateTransformation")}),i.children("img:eq(1)").on("webkitTransitionEnd transitionend msTransitionEnd oTransitionEnd",function(){$(this).removeClass("animateTransformation")})],imageList:e.find("> div > ul"),slideshow:{container:t,enlarge:h,full:o,next:n,previous:s,toggle:a}},this._ui.buttonNext.click($.proxy(this._next,this)),this._ui.buttonPrevious.click($.proxy(this._previous,this)),n.click($.proxy(this._nextImage,this)),s.click($.proxy(this._previousImage,this)),h.click($.proxy(this._toggleView,this)),a.click($.proxy(function(){this._items<2||(this._slideshowEnabled?this.stopSlideshow(!0):(this._disableSlideshow=!1,this.startSlideshow()))},this)),o.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)),$.browser.mobile||i.click(function(e){e.target===i[0]&&this.close()}.bind(this)),WCF.DOMNodeInsertedHandler.execute(),enquire.register("screen and (max-width: 800px)",{match:$.proxy(this._enableMobileView,this),unmatch:$.proxy(this._disableMobileView,this)}),!0},_enableMobileView:function(){this._container.addClass("wcfImageViewerMobile");var i=this;this._ui.imageContainer.swipe({swipeLeft:function(e){i._container.hasClass("maximized")&&i._nextImage(e)},swipeRight:function(e){i._container.hasClass("maximized")&&i._previousImage(e)},tap:function(e,t){switch(t.tagName){case"DIV":case"IMG":i._toggleView()}}}),this._isMobile=!0},_disableMobileView:function(){this._container.removeClass("wcfImageViewerMobile"),this._ui.imageContainer.swipe("destroy"),this._isMobile=!1},_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,void 0,null)},_next:function(i,e){if(this._ui.buttonNext.hasClass("pointer")){void 0==e&&this.stopSlideshow(!0);var t=Math.max(this._items*this._thumbnailWidth-this._thumbnailContainerWidth-this._thumbnailMarginRight,0);this._thumbnailOffset=Math.min(this._thumbnailOffset+this._thumbnailWidth*(e?e:this.options.shiftBy),t),this._ui.imageList.css("marginLeft",-1*this._thumbnailOffset)}this._preload(),this._toggleButtons()},_previous:function(i,e){this._ui.buttonPrevious.hasClass("pointer")&&(void 0==e&&this.stopSlideshow(!0),this._thumbnailOffset=Math.max(this._thumbnailOffset-this._thumbnailWidth*(e?e:this.options.shiftBy),0),this._ui.imageList.css("marginLeft",-1*this._thumbnailOffset)),this._toggleButtons()},_nextImage:function(i){this._ui.slideshow.next.hasClass("pointer")&&(this._disableSlideshow=!0,this.stopSlideshow(!0),this.showImage(this._active+1),i&&(i.preventDefault(),i.stopPropagation()))},_previousImage:function(i){this._ui.slideshow.previous.hasClass("pointer")&&(this._disableSlideshow=!0,this.stopSlideshow(!0),this.showImage(this._active-1),i&&(i.preventDefault(),i.stopPropagation()))},moveToImage:function(i){var e=(i-3)*this._thumbnailWidth,t=e+5*this._thumbnailWidth,s=this._thumbnailOffset,a=this._thumbnailOffset+this._thumbnailContainerWidth,n=!1;if((s>e||t>a)&&(n=!0),n){var h=0;if(s>e){for(;s>e;)h++,s-=this._thumbnailWidth;this._previous(null,h)}else{for(;t>a;)h++,a+=this._thumbnailWidth;this._next(null,h)}}},_toggleButtons:function(){this._thumbnailOffset>0?this._ui.buttonPrevious.addClass("pointer"):this._ui.buttonPrevious.removeClass("pointer");var i=this._images.length*this._thumbnailWidth-this._thumbnailContainerWidth-this._thumbnailMarginRight;this._thumbnailOffset>=i?this._ui.buttonNext.removeClass("pointer"):this._ui.buttonNext.addClass("pointer"),this._active>0?this._ui.slideshow.previous.addClass("pointer"):this._ui.slideshow.previous.removeClass("pointer"),this._active+1<this._images.length?this._ui.slideshow.next.addClass("pointer"):this._ui.slideshow.next.removeClass("pointer"),this._items<2?this._ui.slideshow.toggle.removeClass("pointer"):this._ui.slideshow.toggle.addClass("pointer")},_createThumbnails:function(i){this.options.staticViewer&&(this._images=[],this._ui.imageList.empty());for(var e=0,t=i.length;t>e;e++){var s=i[e],a=$('<li class="loading pointer"><img src="'+s.thumbnail.url+'" /></li>').appendTo(this._ui.imageList);a.data("index",this._images.length).data("objectID",s.objectID).click($.proxy(this._showImage,this));var n=a.children("img");if(n.get(0).complete)a.removeClass("loading"),this.options.staticViewer&&this._fixThumbnailDimensions(n);else{var h=this;n.on("load",function(){var i=$(this);i.parent().removeClass("loading"),h.options.staticViewer&&h._fixThumbnailDimensions(i)})}s.listItem=a,this._images.push(s)}},_fixThumbnailDimensions:function(i){var e=new Image;e.src=i.prop("src");var t=e.height,s=e.width;if(t==s)t=s=80;else if(s>t){var a=80/s;s=80,t*=a}else{var a=80/t;t=80,s*=a}i.css({height:t+"px",width:s+"px"})},_loadNextImages:function(i){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:i&&this.element.data("targetImageID")?this.element.data("targetImageID"):0}}),this._proxy.setOption("showLoadingOverlay",!1),this._proxy.sendRequest()},_getStaticImages:function(){var i=[];return $(this.options.imageSelector).each(function(e,t){var s=$(t),a=s.children("img");a.length||(a=s.parentsUntil(".formAttachmentList").last().find(".attachmentTinyThumbnail")),i.push({image:{fullURL:s.prop("href"),link:"",title:s.prop("title"),url:s.prop("href")},series:null,thumbnail:{url:a.prop("src")},user:null})}),this._items=i.length,i},_success:function(i){i.returnValues.items&&(this._items=i.returnValues.items);var e=this._initUI();this._createThumbnails(i.returnValues.images);var t=i.returnValues.targetImageID?i.returnValues.targetImageID:0;this._render(e,t),this._isOpen||(this._isOpen=!0,WCF.System.DisableScrolling.disable(),WCF.System.DisableZoom.disable())}}); })(this);
 
 // WCF.Label.js
-(function (window, undefined) { })(this);
+(function (window, undefined) {"use strict";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)),$.browser.mozilla&&$.browser.touch&&this._labelInput.on("input",$.proxy(this._keyPressed,this)),$("#labelList").find('input[type="radio"]').each($.proxy(function(t,e){var i=$(e);"custom"!==i.prop("value")&&this._labelList.push($(i.next("span")))},this))},_keyPressed:function(){var t=this._labelInput.prop("value");""===t&&(t=WCF.Language.get("wcf.acp.label.defaultValue"));for(var e=0,i=this._labelList.length;i>e;e++)this._labelList[e].text(t)}}),WCF.Label.ACPList.Connect=Class.extend({init:function(){var t=$("#connect .structuredList li");t.length&&t.each($.proxy(function(t,e){$(e).find('input[type="checkbox"]').click($.proxy(this._click,this))},this))},_click:function(t){var e=$(t.currentTarget);if(e.is(":checked")){e=e.parents("li");for(var i=e.data("depth");;){if(e=e.next(),!e.length)return!0;if(e.data("depth")<=i)return!0;e.find('input[type="checkbox"]').prop("checked","checked")}}}}),WCF.Label.Chooser=Class.extend({_container:null,_groups:{},_showWithoutSelection:!1,init:function(t,e,i,a){if(this._container=null,this._groups={},this._showWithoutSelection=a===!0,this._initContainers(e),$.getLength(t))for(var n in t){var l=this._groups[n];l&&WCF.Dropdown.getDropdownMenu(l.wcfIdentify()).find("> ul > li:not(.dropdownDivider)").each($.proxy(function(e,i){var a=$(i),l=a.data("labelID")||0;l&&t[n]==l&&this._selectLabel(a,!0)},this))}for(var o in this._containers){var s=this._containers[o];void 0===s.data("labelID")&&s.data("labelID",0)}this._container=$(e),i?$(i).click($.proxy(this._submit,this)):this._container.is("form")&&this._container.submit($.proxy(this._submit,this))},_initContainers:function(t){$(t).find(".labelChooser").each($.proxy(function(t,e){var i=$(e),a=i.data("groupID");if(!this._groups[a]){var n=i.wcfIdentify(),l=WCF.Dropdown.getDropdownMenu(n);null===l&&(WCF.Dropdown.initDropdown(i.find(".dropdownToggle")),l=WCF.Dropdown.getDropdownMenu(n));var o=l;if("div"==l.getTagName()&&l.children(".scrollableDropdownMenu").length&&(o=$("<ul />").appendTo(l),l=l.children(".scrollableDropdownMenu")),this._groups[a]=i,l.children("li").data("groupID",a).click($.proxy(this._click,this)),(!i.data("forceSelection")||this._showWithoutSelection)&&$('<li class="dropdownDivider" />').appendTo(o),this._showWithoutSelection&&$('<li data-label-id="-1"><span><span class="badge label">'+WCF.Language.get("wcf.label.withoutSelection")+"</span></span></li>").data("groupID",a).appendTo(o).click($.proxy(this._click,this)),!i.data("forceSelection")){var s=$('<li data-label-id="0"><span><span class="badge label">'+WCF.Language.get("wcf.label.none")+"</span></span></li>").data("groupID",a).appendTo(o);s.click($.proxy(this._click,this))}}},this))},_click:function(t){this._selectLabel($(t.currentTarget),!1)},_selectLabel:function(t,e){var i=this._groups[t.data("groupID")];e&&void 0!==i.data("labelID")||(t.data("labelID")?i.data("labelID",t.data("labelID")):i.data("labelID",0),t=t.find("span > span"),i.find(".dropdownToggle > span").removeClass().addClass(t.attr("class")).text(t.text()))},_submit:function(){var t=this._container.find(".formSubmit");t.find('input[type="hidden"]').each(function(t,e){var i=$(e);0===i.attr("name").indexOf("labelIDs[")&&i.remove()});for(var e in this._groups){var i=this._groups[e];i.data("labelID")&&$('<input type="hidden" name="labelIDs['+e+']" value="'+i.data("labelID")+'" />').appendTo(t)}}}); })(this);
 
 // WCF.Location.js
-(function (window, undefined) { })(this);
+(function (window, undefined) {"use strict";WCF.Location={},WCF.Location.Util={getLocation:function(t,e){var o=WCF.Location.GoogleMaps.Settings.get("accessUserLocation");navigator.geolocation&&null!==o&&o?navigator.geolocation.getCurrentPosition(function(e){t(e.coords.latitude,e.coords.longitude)},function(){t(void 0,void 0)},{timeout:e||5e3}):t(void 0,void 0)}},WCF.Location.GoogleMaps={},WCF.Location.GoogleMaps.Settings={_settings:{},get:function(t){return void 0===t?this._settings:void 0!==this._settings[t]?this._settings[t]:null},set:function(t,e){if($.isPlainObject(t))for(var o in t)this._settings[o]=t[o];else this._settings[t]=e}},WCF.Location.GoogleMaps.Map=Class.extend({_map:null,_markers:[],init:function(t,e){this._mapContainer=$("#"+t),this._mapOptions=$.extend(!0,this._getDefaultMapOptions(),e),this._map=new google.maps.Map(this._mapContainer[0],this._mapOptions),this._markers=[],this._mapContainer.parents(".sidebar").length&&enquire.register("screen and (max-width: 800px)",{setup:$.proxy(this._addSidebarMapListener,this),deferSetup:!0}),this.refresh()},_addInfoWindowEventListener:function(t,e){google.maps.event.addListener(t,"click",$.proxy(function(){e.open(this._map,t)},this))},_addSidebarMapListener:function(){$(".content > .mobileSidebarToggleButton").click($.proxy(this.refresh,this))},_getDefaultMapOptions:function(){var t={};switch(t.center=new google.maps.LatLng(WCF.Location.GoogleMaps.Settings.get("defaultLatitude"),WCF.Location.GoogleMaps.Settings.get("defaultLongitude")),t.disableDoubleClickZoom=WCF.Location.GoogleMaps.Settings.get("disableDoubleClickZoom"),t.draggable=WCF.Location.GoogleMaps.Settings.get("draggable"),WCF.Location.GoogleMaps.Settings.get("mapType")){case"map":t.mapTypeId=google.maps.MapTypeId.ROADMAP;break;case"satellite":t.mapTypeId=google.maps.MapTypeId.SATELLITE;break;case"physical":t.mapTypeId=google.maps.MapTypeId.TERRAIN;break;case"hybrid":default:t.mapTypeId=google.maps.MapTypeId.HYBRID}if(t.mapTypeControl="off"!=WCF.Location.GoogleMaps.Settings.get("mapTypeControl"),t.mapTypeControl)switch(WCF.Location.GoogleMaps.Settings.get("mapTypeControl")){case"dropdown":t.mapTypeControlOptions={style:google.maps.MapTypeControlStyle.DROPDOWN_MENU};break;case"horizontalBar":t.mapTypeControlOptions={style:google.maps.MapTypeControlStyle.HORIZONTAL_BAR};break;default:t.mapTypeControlOptions={style:google.maps.MapTypeControlStyle.DEFAULT}}return t.scaleControl=WCF.Location.GoogleMaps.Settings.get("scaleControl"),t.scrollwheel=WCF.Location.GoogleMaps.Settings.get("scrollwheel"),t.zoom=WCF.Location.GoogleMaps.Settings.get("zoom"),t},addDraggableMarker:function(t,e){var o=new google.maps.Marker({clickable:!1,draggable:!0,map:this._map,position:new google.maps.LatLng(t,e),zIndex:1});return this._markers.push(o),o},addMarker:function(t,e,o,s,i){var a=new google.maps.Marker({map:this._map,position:new google.maps.LatLng(t,e),title:o});if(s&&a.setIcon(s),i){var n=new google.maps.InfoWindow({content:i});this._addInfoWindowEventListener(a,n),a.infoWindow=n}return this._markers.push(a),a},getMarkers:function(){return this._markers},getMap:function(){return this._map},refresh:function(){var t=this._map.getCenter();google.maps.event.trigger(this._map,"resize"),this._map.setCenter(t)},refreshBounds:function(){var t=null,e=null,o=null,s=null;for(var i in this._markers){var a=this._markers[i],n=a.getPosition().lat(),r=a.getPosition().lng();null===t?(t=e=n,o=s=r):(t>n?t=n:n>e&&(e=n),o>n?o=n:r>s&&(s=r))}this._map.fitBounds(new google.maps.LatLngBounds(new google.maps.LatLng(t,o),new google.maps.LatLng(e,s)))},removeMarkers:function(){for(var t in this._markers)this._markers[t].setMap(null);this._markers=[]},setBounds:function(t,e){this._map.fitBounds(new google.maps.LatLngBounds(new google.maps.LatLng(e.latitude,e.longitude),new google.maps.LatLng(t.latitude,t.longitude)))},setCenter:function(t,e){this._map.setCenter(new google.maps.LatLng(t,e))}}),WCF.Location.GoogleMaps.LargeMap=WCF.Location.GoogleMaps.Map.extend({_actionClassName:null,_additionalParameters:{},_locationSearch:null,_locationSearchInputSelector:null,_markerClusterer:null,_objectIDs:[],_previousNorthEast:null,_previousSouthWest:null,init:function(t,e,o,s,i){this._super(t,e),this._actionClassName=o,this._locationSearchInputSelector=s||"",this._additionalParameters=i||{},this._objectIDs=[],this._locationSearchInputSelector&&(this._locationSearch=new WCF.Location.GoogleMaps.LocationSearch(s,$.proxy(this._centerMap,this))),this._markerClusterer=new MarkerClusterer(this._map,this._markers,{maxZoom:17,imagePath:WCF.Location.GoogleMaps.Settings.get("markerClustererImagePath")+"m"}),this._markerSpiderfier=new OverlappingMarkerSpiderfier(this._map,{keepSpiderfied:!0,markersWontHide:!0,markersWontMove:!0}),this._markerSpiderfier.addListener("click",$.proxy(function(t){t.infoWindow&&t.infoWindow.open(this._map,t)},this)),this._proxy=new WCF.Action.Proxy({showLoadingOverlay:!1,success:$.proxy(this._success,this)}),this._previousNorthEast=null,this._previousSouthWest=null,google.maps.event.addListener(this._map,"idle",$.proxy(this._loadMarkers,this))},_addInfoWindowEventListener:function(){},_centerMap:function(t){this.setCenter(t.location.lat(),t.location.lng()),$(this._locationSearchInputSelector).val(t.label)},_loadMarkers:function(){var t=this._map.getBounds().getNorthEast(),e=this._map.getBounds().getSouthWest();return this._previousNorthEast&&this._previousNorthEast.lat()>=t.lat()&&this._previousNorthEast.lng()>=t.lng()&&this._previousSouthWest.lat()<=e.lat()&&this._previousSouthWest.lng()<=e.lng()?!1:(this._previousNorthEast=t,this._previousSouthWest=e,this._proxy.setOption("data",{actionName:"getMapMarkers",className:this._actionClassName,parameters:$.extend(this._additionalParameters,{excludedObjectIDs:this._objectIDs,eastLongitude:t.lng(),northLatitude:t.lat(),southLatitude:e.lat(),westLongitude:e.lng()})}),this._proxy.sendRequest(),!0)},_success:function(t){if(t.returnValues&&t.returnValues.markers)for(var e in t.returnValues.markers){var o=t.returnValues.markers[e];this.addMarker(o.latitude,o.longitude,o.title,null,o.infoWindow),o.objectID?this._objectIDs.push(o.objectID):o.objectIDs&&(this._objectIDs=this._objectIDs.concat(o.objectIDs))}},addMarker:function(t,e,o,s,i){var a=this._super(t,e,o,s,i);return this._markerClusterer.addMarker(a),this._markerSpiderfier.addMarker(a),a}}),WCF.Location.GoogleMaps.SuggestionMap=WCF.Location.GoogleMaps.LargeMap.extend({_locationSuggestionsButton:null,_suggestionSelectionCallback:null,init:function(t,e,o,s,i){this._super(t,e,o,s,i);var a=$('<div class="gmnoprint googleMapsCustomControlContainer"><div class="gm-style-mtc"><div class="googleMapsCustomControl">'+WCF.Language.get("wcf.map.showLocationSuggestions")+"</div></div></div>");this._locationSuggestionsButton=a.find(".googleMapsCustomControl").click($.proxy(this._toggleLocationSuggestions,this)),this._map.controls[google.maps.ControlPosition.TOP_RIGHT].push(a.get(0))},_loadMarkers:function(){this._locationSuggestionsButton.hasClass("active")&&(this._super()||(this._loadSuggestions=!1))},_success:function(t,e,o){var s=this._markers.length;this._super(t,e,o),this._loadSuggestions&&s==this._markers.length&&(this._loadSuggestions=!1,new WCF.System.Notification(WCF.Language.get("wcf.map.noLocationSuggestions"),"info").show())},_toggleLocationSuggestions:function(){var t=!this._locationSuggestionsButton.hasClass("active");t&&(this._loadSuggestions=!0),this.showSuggestions(t)},addMarker:function(t,e,o,s,i){var a=$(i),n=$('<a class="googleMapsUseLocationSuggestionLink" />').text(WCF.Language.get("wcf.map.useLocationSuggestion")).click(this._suggestionSelectionCallback);a.append($('<p class="marginTopTiny" />').append(n));var r=this._super(t,e,o,"//mt.google.com/vt/icon/name=icons/spotlight/spotlight-waypoint-a.png",a.get(0));return n.data("marker",r),r},setSuggestionSelectionCallback:function(t){this._suggestionSelectionCallback=t},showSuggestions:function(t){void 0===t&&(t=!0),this._locationSuggestionsButton.toggleClass("active",t);for(var e=[],o=0,s=this._markers.length;s>o;o++){var i=this._markers[o];i.draggable||(i.setVisible(t),t&&e.push(i))}this._markerClusterer.clearMarkers(),t&&this._markerClusterer.addMarkers(e),this._loadMarkers()}}),WCF.Location.GoogleMaps.LocationSearch=WCF.Search.Base.extend({_geocoder:null,init:function(t,e,o,s,i){this._super(t,e,o,s,i),this.setDelay(500),this._geocoder=new google.maps.Geocoder},_createListItem:function(t){var e=$("<li><span>"+WCF.String.escapeHTML(t.formatted_address)+"</span></li>").appendTo(this._list);return e.data("location",t.geometry.location).data("label",t.formatted_address).click($.proxy(this._executeCallback,this)),this._itemCount++,e},_keyUp:function(t){switch(t.which){case $.ui.keyCode.LEFT:case $.ui.keyCode.RIGHT:return;case $.ui.keyCode.UP:return void this._selectPreviousItem();case $.ui.keyCode.DOWN:return void this._selectNextItem();case $.ui.keyCode.ENTER:return this._selectElement(t)}var e=this._getSearchString(t);""===e?this._clearList(!0):e.length>=this._triggerLength?this._delay?(null!==this._timer&&this._timer.stop(),this._timer=new WCF.PeriodicalExecuter($.proxy(function(){this._geocoder.geocode({address:e},$.proxy(this._success,this)),this._timer.stop(),this._timer=null},this),this._delay)):this._geocoder.geocode({address:e},$.proxy(this._success,this)):this._clearList(!1)},_success:function(t,e){if(this._clearList(!1),e==google.maps.GeocoderStatus.OK){if($.getLength(t)){var o=0;for(var s in t)if(this._createListItem(t[s]),10==++o)break}else if(!this._handleEmptyResult())return;WCF.CloseOverlayHandler.addCallback("WCF.Search.Base",$.proxy(function(){this._clearList()},this));var i=this._searchInput.parents(".dropdown").wcfIdentify();WCF.Dropdown.getDropdownMenu(i).hasClass("dropdownOpen")||WCF.Dropdown.toggleDropdown(i),this._itemIndex=-1,WCF.Dropdown.getDropdown(i).data("disableAutoFocus")||this._selectNextItem()}}}),WCF.Location.GoogleMaps.LocationInput=Class.extend({_locationSearch:null,_map:null,_marker:null,init:function(t,e,o,s,i,a){this._searchInput=o,a?(this._map=new WCF.Location.GoogleMaps.SuggestionMap(t,e,a),this._map.setSuggestionSelectionCallback($.proxy(this._useSuggestion,this))):this._map=new WCF.Location.GoogleMaps.Map(t,e),this._locationSearch=new WCF.Location.GoogleMaps.LocationSearch(o,$.proxy(this._setMarkerByLocation,this)),s&&i?this._marker=this._map.addDraggableMarker(s,i):(this._marker=this._map.addDraggableMarker(WCF.Location.GoogleMaps.Settings.get("defaultLatitude"),WCF.Location.GoogleMaps.Settings.get("defaultLongitude")),WCF.Location.Util.getLocation($.proxy(function(t,e){void 0!==t&&void 0!==e&&(WCF.Location.GoogleMaps.Util.moveMarker(this._marker,t,e),WCF.Location.GoogleMaps.Util.focusMarker(this._marker))},this))),this._marker.addListener("dragend",$.proxy(this._updateLocation,this))},_useSuggestion:function(t){var e=$(t.currentTarget).data("marker");this._marker.setPosition(e.getPosition()),this._updateLocation(),this._map.showSuggestions(!1)},_updateLocation:function(){WCF.Location.GoogleMaps.Util.reverseGeocoding($.proxy(function(t){null!==t&&$(this._searchInput).val(t)},this),this._marker)},_setMarkerByLocation:function(t){this._marker.setPosition(t.location),WCF.Location.GoogleMaps.Util.focusMarker(this._marker),$(this._searchInput).val(t.label)},getMap:function(){return this._map},getMarker:function(){return this._marker}}),WCF.Location.GoogleMaps.Util={_geocoder:null,focusMarker:function(t){t.getMap().setCenter(t.getPosition())},getMarkerPosition:function(t){return{latitude:t.getPosition().lat(),longitude:t.getPosition().lng()}},moveMarker:function(t,e,o,s){t.setPosition(new google.maps.LatLng(e,o)),s&&google.maps.event.trigger(t,"dragend")},reverseGeocoding:function(t,e,o,s,i){e&&(o=e.getPosition().lat(),s=e.getPosition().lng()),null===this._geocoder&&(this._geocoder=new google.maps.Geocoder);var a=new google.maps.LatLng(o,s);this._geocoder.geocode({latLng:a},function(e,o){t(o==google.maps.GeocoderStatus.OK?i?e:e[0].formatted_address:null)})}}; })(this);
 
 // WCF.Message.js
 (function (window, undefined) {"use strict";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(e,t){var i=$(t).addClass("jsCodeViewer");$('<span class="icon icon16 icon-copy pointer jsTooltip" title="'+WCF.Language.get("wcf.message.bbcode.code.copy")+'" />').appendTo(i.find("div > h3")).click($.proxy(this._click,this))},this))},_click:function(e){var t="";$(e.currentTarget).parents("div").next("ol").children("li").each(function(e,i){t&&(t+="\n"),t+=$(i).text().replace(/\n+$/,"")}),null===this._dialog?(this._dialog=$('<div><textarea cols="60" rows="12" readonly="readonly" /></div>').hide().appendTo(document.body),this._dialog.children("textarea").val(t),this._dialog.wcfDialog({title:WCF.Language.get("wcf.message.bbcode.code.copy")})):(this._dialog.children("textarea").val(t),this._dialog.wcfDialog("open")),this._dialog.children("textarea").select()}}),WCF.Message.EditHistory=Class.extend({_oldIDInputs:null,_newIDInputs:null,_containerSelector:"",_buttonSelector:".jsRevertButton",init:function(e,t,i,s){this._oldIDInputs=e,this._newIDInputs=t,this._containerSelector=i,this._buttonSelector=s?s:".jsRevertButton",this.proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)}),this._initInputs(),this._initElements()},_initInputs:function(){var e=this;this._newIDInputs.change(function(){var t=parseInt($(this).val());"current"===$(this).val()&&(t=1/0),e._oldIDInputs.each(function(){var e=parseInt($(this).val());"current"===$(this).val()&&(e=1/0),e>=t?$(this).disable():$(this).enable()})}),this._oldIDInputs.change(function(){var t=parseInt($(this).val());"current"===$(this).val()&&(t=1/0),e._newIDInputs.each(function(){var e=parseInt($(this).val());"current"===$(this).val()&&(e=1/0),t>=e?$(this).disable():$(this).enable()})}),this._oldIDInputs.filter(":checked").change(),this._newIDInputs.filter(":checked").change()},_initElements:function(){var e=this;$(this._containerSelector).each(function(t,i){var s=$(i);s.find(e._buttonSelector).click($.proxy(e._click,e))})},_click:function(e){var t=$(e.currentTarget);if(e.preventDefault(),t.data("confirmMessage")){var i=this;WCF.System.Confirmation.show(t.data("confirmMessage"),function(e){"cancel"!==e&&i._sendRequest(t)})}else this._sendRequest(t)},_sendRequest:function(e){this.proxy.setOption("data",{actionName:"revert",className:"wcf\\data\\edit\\history\\entry\\EditHistoryEntryAction",objectIDs:[$(e).data("objectID")]}),this.proxy.sendRequest()},_success:function(){window.location.reload(!0)}}),WCF.Message.FormGuard=Class.extend({init:function(){var e=$("form.jsFormGuard").removeClass("jsFormGuard").submit(function(){$(this).find(".formSubmit input[type=submit]").disable()});$(window).unload(function(){e.find(".formSubmit input[type=submit]").enable()})}}),WCF.Message.Preview=Class.extend({_className:"",_messageFieldID:"",_messageField:null,_proxy:null,_previewButton:null,_previewButtonLabel:"",init:function(e,t,i){return this._className=e,this._messageFieldID=$.wcfEscapeID(t),this._messageField=$("#"+this._messageFieldID),this._messageField.length?(i=$.wcfEscapeID(i),this._previewButton=$("#"+i),this._previewButton.length?(this._previewButton.click($.proxy(this._click,this)),void(this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),success:$.proxy(this._success,this)}))):void console.debug("[WCF.Message.Preview] Unable to find preview button identified by '"+i+"'")):void console.debug("[WCF.Message.Preview] Unable to find message field identified by '"+this._messageFieldID+"'")},_click:function(e){var t=this._getMessage();return null===t?void console.debug("[WCF.Message.Preview] Unable to access Redactor instance of '"+this._messageFieldID+"'"):(this._proxy.setOption("data",{actionName:"getMessagePreview",className:this._className,parameters:this._getParameters(t)}),this._proxy.sendRequest(),this._previewButtonLabel=this._previewButton.html(),this._previewButton.html(WCF.Language.get("wcf.global.loading")).disable(),e.stopPropagation(),!1)},_getParameters:function(e){var t={};return $("#settings_"+this._messageFieldID).find("input[type=checkbox]").each(function(e,i){var s=$(i);s.is(":checked")&&(t[s.prop("name")]=s.prop("value"))}),{data:{message:e},options:t}},_getMessage:function(){return $.browser.redactor?this._messageField.data("redactor")?this._messageField.redactor("wutil.getText"):null:$.trim(this._messageField.val())},_success:function(e){this._previewButton.html(this._previewButtonLabel).enable(),this._messageField.parent().children("small.innerError").remove(),this._handleResponse(e)},_handleResponse:function(){},_failure:function(e){if(null===e||void 0===e.returnValues||void 0===e.returnValues.errorType)return!0;this._previewButton.html(this._previewButtonLabel).enable();var t=this._messageField.next("small.innerError").empty();return t.length||(t=$('<small class="innerError" />').appendTo(this._messageField.parent())),t.html(e.returnValues.errorType),!1}}),WCF.Message.DefaultPreview=WCF.Message.Preview.extend({_attachmentObjectType:null,_attachmentObjectID:null,_tmpHash:null,init:function(e,t,i){this._super("wcf\\data\\bbcode\\MessagePreviewAction","text","previewButton"),this._attachmentObjectType=e||null,this._attachmentObjectID=t||null,this._tmpHash=i||null},_handleResponse:function(e){var t=$("#previewContainer");t.length||(t=$('<div class="container containerPadding marginTop" id="previewContainer"><fieldset><legend>'+WCF.Language.get("wcf.global.preview")+'</legend><div class="messageTextPreview"></div></fieldset>').prependTo($("#messageContainer")).wcfFadeIn()),t.find("div:eq(0)").html(e.returnValues.message),(new WCF.Effect.Scroll).scrollTo(t)},_getParameters:function(e){var t=this._super(e);return null!=this._attachmentObjectType&&(t.attachmentObjectType=this._attachmentObjectType,t.attachmentObjectID=this._attachmentObjectID,t.tmpHash=this._tmpHash),t}}),WCF.Message.Multilingualism=Class.extend({_availableLanguages:{},_languageID:0,_languageInput:null,init:function(e,t,i){if(this._availableLanguages=t,this._languageID=e||0,this._languageInput=$("#languageID"),this._updateLabel(),this._languageInput.find(".dropdownMenu > li").click($.proxy(this._click,this)),!i){var s=this._languageInput.find(".dropdownMenu");$('<li class="dropdownDivider" />').appendTo(s),$('<li><span><span class="badge">'+this._availableLanguages[0]+"</span></span></li>").click($.proxy(this._disable,this)).appendTo(s)}this._languageInput.parents("form").submit($.proxy(this._submit,this))},_click:function(e){this._languageID=$(e.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,_wysiwygSelector:"",init:function(e){this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)}),this._wysiwygSelector=e,$("#smilies-"+this._wysiwygSelector).on("messagetabmenushow",$.proxy(this._click,this))},_click:function(e,t){e.preventDefault();var i=parseInt(t.activeTab.tab.data("smileyCategoryID"));if(i&&!t.activeTab.container.children("ul.smileyList").length){if(void 0!==this._cache[i])return void t.activeTab.container.html(this._cache[i]);this._proxy.setOption("data",{actionName:"getSmilies",className:"wcf\\data\\smiley\\category\\SmileyCategoryAction",objectIDs:[i]}),this._proxy.sendRequest()}},_success:function(e){var t=parseInt(e.returnValues.smileyCategoryID);this._cache[t]=e.returnValues.template,$("#smilies-"+this._wysiwygSelector+"-"+t).html(e.returnValues.template)}}),WCF.Message.Smilies=Class.extend({_redactor:null,_wysiwygSelector:"",init:function(e){this._wysiwygSelector=e,WCF.System.Dependency.Manager.register("Redactor_"+this._wysiwygSelector,$.proxy(function(){this._redactor=$("#"+this._wysiwygSelector).redactor("core.getObject"),$(".messageTabMenu[data-wysiwyg-container-id="+this._wysiwygSelector+"]").on("click",".jsSmiley",$.proxy(this._smileyClick,this))},this))},_smileyClick:function(e){e.preventDefault();var t=$(e.currentTarget),i=t.data("smileyCode"),s=t.data("smileyPath");this._redactor.wbbcode.insertSmiley(i,s,!0)}}),WCF.Message.QuickReply=Class.extend({_container:null,_messageField:null,_notification:null,_pendingSave:!1,_proxy:null,_quickReplyButtons:null,_quoteManager:null,_scrollHandler:null,_successMessageNonVisible:"",init:function(e,t){if(this._container=$("#messageQuickReply"),this._container.children(".message").addClass("jsInvalidQuoteTarget"),this._messageField=$("#text"),this._pendingSave=!1,this._container&&this._messageField){var i=this._container.find(".formSubmit"),s=i.find("button[data-type=save]").removeAttr("accesskey").click($.proxy(this._save,this));e&&i.find("button[data-type=extended]").click($.proxy(this._prepareExtended,this)),i.find("button[data-type=cancel]").click($.proxy(this._cancel,this)),t&&(this._quoteManager=t),this._quickReplyButtons=$(".jsQuickReply").data("__api",this).click($.proxy(this.click,this)),this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),showLoadingOverlay:!1,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="",WCF.System.Event.addListener("com.woltlab.wcf.redactor","submitEditor_text",function(e){e.cancel=!0,s.trigger("click")})}},click:function(e){if(this._container.toggle(),this._container.is(":visible")&&(this._quickReplyButtons.each(function(){var e=$(this);"LI"===e.parent()[0].tagName?e.parent().hide():e.hide()}),setTimeout(function(){$(document).trigger("resize"),$.browser.mobile&&$.browser.chrome||this._scroll.scrollTo(this._container,!0)}.bind(this),100),WCF.Message.Submit.registerButton("text",this._container.find(".formSubmit button[data-type=save]")),this._quoteManager)){var t=!0;$.browser.redactor?this._messageField.data("redactor")&&this._editorCallback(this._messageField.redactor("wutil.isEmptyEditor")):(t=!this._messageField.val().length,this._editorCallback(t))}return null!==e?(e.stopPropagation(),!1):void 0},_editorCallback:function(e){e&&this._quoteManager.insertQuotes(this._getClassName(),this._getObjectID(),$.proxy(this._insertQuotes,this)),$.browser.redactor?this._messageField.redactor("wutil.selectionEndOfEditor"):this._messageField.focus()},getContainer:function(){return this._container},_insertQuotes:function(e){if(e.returnValues.template)if($.browser.redactor){var t=WCF.String.unescapeHTML(e.returnValues.template);t=this._messageField.redactor("wbbcode.convertToHtml",t),t=t.replace(/<p><blockquote/,"<blockquote"),t=t.replace(/blockquote><\/p>/,"blockquote>"),this._messageField.redactor("focus.setEnd"),this._messageField.redactor("wutil.insertDynamic",t,e.returnValues.template),this._messageField.redactor("wutil.selectionEndOfEditor"),this._messageField.redactor("wbbcode.observeQuotes")}else this._messageField.val(e.returnValues.template)},_save:function(){if(!this._pendingSave){var e="";e=$.browser.redactor?this._messageField.redactor("wutil.getText"):$.trim(this._messageField.val());var t=this._messageField.parent().find("small.innerError");if(""===e||"0"===e)return t.length||(t=$('<small class="innerError" />').appendTo(this._messageField.parent())),void t.html(WCF.Language.get("wcf.global.form.error.empty"));t.remove(),this._pendingSave=!0,this._proxy.setOption("data",{actionName:"quickReply",className:this._getClassName(),interfaceName:"wcf\\data\\IMessageQuickReplyAction",parameters:this._getParameters(e)}),this._proxy.sendRequest();var i=this._container.find(".messageQuickReplyContent .messageBody");$('<span class="icon icon48 icon-spinner" />').appendTo(i);var s=i.children(".redactor-box").hide();s.next().hide(),i.next().hide()}},_getParameters:function(e){var t={objectID:this._getObjectID(),data:{message:e},lastPostTime:this._container.data("lastPostTime"),pageNo:this._container.data("pageNo"),removeQuoteIDs:null===this._quoteManager?[]:this._quoteManager.getQuotesMarkedForRemoval()};return this._container.data("anchor")&&(t.anchor=this._container.data("anchor")),WCF.System.Event.fireEvent("com.woltlab.wcf.messageOptionsInline","submit_"+this._messageField.wcfIdentify(),t.data),t},_cancel:function(){this._revertQuickReply(!0),$.browser.redactor?this._messageField.redactor("wutil.reset"):this._messageField.val("")},_revertQuickReply:function(e){var t=this._container.find(".messageQuickReplyContent .messageBody");e&&(this._container.hide(),t.children("small.innerError").remove()),t.children(".icon-spinner").remove(),t.children(".redactor-box").show().next().show(),t.next().show(),this._quickReplyButtons.each(function(){var e=$(this);"LI"===e.parent()[0].tagName?e.parent().show():e.show()})},_prepareExtended:function(){this._pendingSave=!0,null!==this._quoteManager&&this._quoteManager.markQuotesForRemoval();var e="";$.browser.redactor?(e=this._messageField.redactor("wutil.getText"),e.length?this._messageField.redactor("wutil.saveTextToStorage",!0):this._messageField.redactor("wutil.autosavePurge")):e=$.trim(this._messageField.val());var t={containerID:this._getObjectID(),message:e};WCF.System.Event.fireEvent("com.woltlab.wcf.messageOptionsInline","prepareExtended_"+this._messageField.wcfIdentify(),t),new WCF.Action.Proxy({autoSend:!0,data:{actionName:"jumpToExtended",className:this._getClassName(),interfaceName:"wcf\\data\\IExtendedMessageQuickReplyAction",parameters:t},success:function(e){this._messageField.redactor("wutil.saveTextToStorage"),window.location=e.returnValues.url}.bind(this)})},_success:function(e){if($.browser.redactor&&(this._messageField.redactor("wutil.autosavePause"),this._messageField.redactor("wutil.autosavePurge")),e.returnValues.url)window.location=e.returnValues.url;else{if(e.returnValues.template){var t=$(""+e.returnValues.template);"DESC"==this._container.data("sortOrder")?t.insertAfter(this._container):t.insertBefore(this._container),this._container.data("lastPostTime",e.returnValues.lastPostTime),this._notification.show(void 0,void 0,WCF.Language.get("wcf.global.success.add")),this._updateHistory(t.wcfIdentify())}else{var t=this._successMessageNonVisible?this._successMessageNonVisible:"wcf.global.success.add";this._notification.show(void 0,5e3,WCF.Language.get(t))}$.browser.redactor?(this._messageField.redactor("wutil.reset"),this._messageField.redactor("wutil.autosaveResume")):this._messageField.val(""),this._revertQuickReply(!0),null!==this._quoteManager&&this._quoteManager.countQuotes(),this._pendingSave=!1}},_failure:function(e){if(this._pendingSave=!1,this._revertQuickReply(!1),null===e||void 0===e.returnValues||void 0===e.returnValues.errorType)return!0;var t=this._container.find(".messageQuickReplyContent .messageBody"),i=t.children("small.innerError").empty();return i.length||(i=$('<small class="innerError" />').appendTo(t)),i.html(e.returnValues.errorType),!1},_getClassName:function(){return""},_getObjectID:function(){return 0},_updateHistory:function(e){window.location.hash=e}}),WCF.Message.InlineEditor=Class.extend({_activeElementID:"",_container:{},_containerID:0,_dropdowns:{},_messageContainerSelector:".jsMessage",_messageEditorIDPrefix:"messageEditor",_notification:null,_proxy:null,_quoteManager:null,_supportExtendedForm:!1,init:function(e,t,i){this._activeElementID="",this._container={},this._containerID=parseInt(e),this._dropdowns={},this._quoteManager=i||null,this._supportExtendedForm=t?!0:!1,this._proxy=new WCF.Action.Proxy({failure:$.proxy(this._failure,this),showLoadingOverlay:!1,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(e,t){var i=$(t),s=i.wcfIdentify();if(!this._container[s])if(this._container[s]=i,i.data("canEditInline")){var n=i.find(".jsMessageEditButton:eq(0)").data("containerID",s).click($.proxy(this._clickInline,this));i.data("canEdit")&&n.dblclick($.proxy(this._click,this))}else i.data("canEdit")&&i.find(".jsMessageEditButton:eq(0)").data("containerID",s).click($.proxy(this._click,this))},this))},_click:function(e,t){var i=null===e?t:$(e.currentTarget).data("containerID");if(""===this._activeElementID)this._activeElementID=i,this._prepare(),this._proxy.setOption("data",{actionName:"beginEdit",className:this._getClassName(),interfaceName:"wcf\\data\\IMessageInlineEditorAction",parameters:{containerID:this._containerID,objectID:this._container[i].data("objectID")}}),this._proxy.setOption("failure",$.proxy(function(){this._cancel()},this)),this._proxy.sendRequest();else{var s=new WCF.System.Notification(WCF.Language.get("wcf.message.error.editorAlreadyInUse"),"warning");s.show()}return this._dropdowns[this._container[i].data("objectID")]&&this._dropdowns[this._container[i].data("objectID")].removeClass("dropdownOpen"),null!==e?(e.stopPropagation(),!1):void 0},_clickInline:function(e){var t=$(e.currentTarget);if(!t.hasClass("dropdownToggle")){var i=t.data("containerID");t.addClass("dropdownToggle").parent().addClass("dropdown");var s=$('<ul class="dropdownMenu" />').insertAfter(t);this._initDropdownMenu(i,s),WCF.DOMNodeInsertedHandler.execute(),this._dropdowns[this._container[i].data("objectID")]=s,WCF.Dropdown.registerCallback(t.parent().wcfIdentify(),$.proxy(this._toggleDropdown,this)),t.trigger("click")}return e.stopPropagation(),!1},_failure:function(e){if(this._revertEditor(),null===e||void 0===e.returnValues||void 0===e.returnValues.errorType)return!0;var t=this._container[this._activeElementID].find(".messageBody .messageInlineEditor"),i=t.children("small.innerError").empty();return i.length||(i=$('<small class="innerError" />').insertBefore(t.children(".formSubmit"))),i.html(e.returnValues.errorType),!1},_toggleDropdown:function(e){WCF.Dropdown.getDropdown(e).parents(".messageOptions").toggleClass("forceOpen")},_initDropdownMenu:function(){},_prepare:function(){var e=this._container[this._activeElementID].find(".messageBody");$('<span class="icon icon48 icon-spinner" />').appendTo(e);var t=e.find(".messageText").hide();t.parent().children(".jsInlineEditorHideContent").hide(),e.children(".attachmentThumbnailList, .attachmentFileList").hide()},_cancel:function(){var e=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget");this._destroyEditor();var t=e.find(".messageBody");t.children(".icon-spinner").remove(),t.find(".messageText").show(),t.children(".attachmentThumbnailList, .attachmentFileList").show(),t.find(".jsInlineEditorHideContent").show(),this._container[this._activeElementID].find(".messageOptions").removeClass("forceHidden"),this._activeElementID="",this._quoteManager&&this._quoteManager.clearAlternativeEditor()},_success:function(e){switch(e.returnValues.actionName){case"beginEdit":this._showEditor(e);break;case"save":this._showMessage(e)}},_showEditor:function(e){this._proxy.setOption("failure",$.proxy(this._failure,this));var t=this._messageEditorIDPrefix+this._container[this._activeElementID].data("objectID"),i=this._container[this._activeElementID].addClass("jsInvalidQuoteTarget").find(".messageBody");i.children(".icon-spinner").remove();var s=i.children("div:eq(0)");$(""+e.returnValues.template).appendTo(s);var n=s.find(".formSubmit"),a=n.find("button[data-type=save]").click($.proxy(this._save,this));this._supportExtendedForm&&n.find("button[data-type=extended]").click($.proxy(this._prepareExtended,this)),n.find("button[data-type=cancel]").click($.proxy(this._cancel,this)),WCF.Message.Submit.registerButton(this._messageEditorIDPrefix+this._container[this._activeElementID].data("objectID"),a),WCF.System.Event.addListener("com.woltlab.wcf.redactor","submitEditor_"+t,function(e){e.cancel=!0,a.trigger("click")}),this._container[this._activeElementID].find(".messageOptions").addClass("forceHidden");var o=$("#"+t);$.browser.redactor?new WCF.PeriodicalExecuter($.proxy(function(e){e.stop(),this._quoteManager&&this._quoteManager.setAlternativeEditor(o),(new WCF.Effect.Scroll).scrollTo(this._container[this._activeElementID],!0)},this),250):o.focus()},_revertEditor:function(){var e=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget").find(".messageBody");e.children("span.icon-spinner").remove(),e.children("div:eq(0)").children(":not(.messageText)").show(),e.children(".attachmentThumbnailList, .attachmentFileList").show(),e.find(".jsInlineEditorHideContent").show(),this._quoteManager&&this._quoteManager.clearAlternativeEditor()},_save:function(){var e=this._container[this._activeElementID],t=e.data("objectID"),i="";i=$.browser.redactor?$("#"+this._messageEditorIDPrefix+t).redactor("wutil.getText"):$("#"+this._messageEditorIDPrefix+t).val();var s={containerID:this._containerID,data:{message:i},objectID:t,removeQuoteIDs:null===this._quoteManager?[]:this._quoteManager.getQuotesMarkedForRemoval()};WCF.System.Event.fireEvent("com.woltlab.wcf.messageOptionsInline","submit_"+this._messageEditorIDPrefix+t,s),this._proxy.setOption("data",{actionName:"save",className:this._getClassName(),interfaceName:"wcf\\data\\IMessageInlineEditorAction",parameters:s}),this._proxy.sendRequest(),this._hideEditor()},_prepareExtended:function(){var e=this._container[this._activeElementID],t=e.data("objectID"),i="";i=$.browser.redactor?$("#"+this._messageEditorIDPrefix+t).redactor("wutil.getText"):$("#"+this._messageEditorIDPrefix+t).val(),new WCF.Action.Proxy({autoSend:!0,data:{actionName:"jumpToExtended",className:this._getClassName(),parameters:{containerID:this._containerID,message:i,messageID:t}},success:function(e){window.location=e.returnValues.url}})},_hideEditor:function(){var e=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget").find(".messageBody");$('<span class="icon icon48 icon-spinner" />').appendTo(e),e.children("div:eq(0)").children().hide(),e.children(".attachmentThumbnailList, .attachmentFileList").show(),e.find(".jsInlineEditorHideContent").show(),this._quoteManager&&this._quoteManager.clearAlternativeEditor()},_showMessage:function(e){var t=this._container[this._activeElementID].removeClass("jsInvalidQuoteTarget"),i=t.find(".messageBody");i.children(".icon-spinner").remove();var s=i.children("div:eq(0)");s.parent().children(".jsInlineEditorHideContent").show(),this._container[this._activeElementID].find(".messageOptions").removeClass("forceHidden"),this._destroyEditor(),s.children(".messageText").html(e.returnValues.message).show(),void 0==e.returnValues.attachmentList?i.children(".attachmentThumbnailList, .attachmentFileList").show():(i.children(".attachmentThumbnailList, .attachmentFileList").remove(),e.returnValues.attachmentList&&$(e.returnValues.attachmentList).insertAfter(i.children("div:eq(0)"))),this._activeElementID="",this._updateHistory(this._getHash(t.data("objectID"))),this._notification.show(),this._quoteManager&&(this._quoteManager.clearAlternativeEditor(),this._quoteManager.countQuotes())},_destroyEditor:function(){var e=this._container[this._activeElementID];if($.browser.redactor){var t=$("#"+this._messageEditorIDPrefix+e.data("objectID"));t.redactor("wutil.autosavePause"),t.redactor("wutil.autosavePurge"),t.redactor("core.destroy")}e.find(".messageBody > div > .messageInlineEditor").remove(),WCF.System.Event.removeAllListeners("com.woltlab.wcf.messageOptionsInline","submit_"+this._messageEditorIDPrefix+e.data("objectID"))},_getClassName:function(){return""},_getHash:function(e){return"#message"+e},_updateHistory:function(e){window.location.hash=e}}),WCF.Message.Submit={_buttons:{},registerButton:function(e,t){WCF.Browser.isChrome()&&(this._buttons[e]=$(t))},execute:function(e){this._buttons[e]&&this._buttons[e].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,t,i,s,n,a,o){return this._className=t,""==this._className?void console.debug("[WCF.Message.QuoteManager] Empty class name given, aborting."):(this._objectType=i,""==this._objectType?void console.debug("[WCF.Message.QuoteManager] Empty object type name given, aborting."):(this._containerSelector=s,this._message="",this._messageBodySelector=n,this._messageContentSelector=a,this._objectID=0,this._proxy=new WCF.Action.Proxy({success:$.proxy(this._success,this)}),this._initContainers(),o=o&&e.supportPaste()?!0:!1,this._initCopyQuote(o),$(document).mouseup($.proxy(this._mouseUp,this)),this._quoteManager=e,this._quoteManager.register(this._objectType,this),void WCF.DOMNodeInsertedHandler.addCallback("WCF.Message.Quote.Handler"+i.hashCode(),$.proxy(this._initContainers,this))))},_initContainers:function(){var e=this;$(this._containerSelector).each(function(t,i){var s=$(i),n=s.wcfIdentify();if(!e._containers[n]){if(e._containers[n]=s,s.hasClass("jsInvalidQuoteTarget"))return!0;null!==e._messageBodySelector&&(s=s.find(e._messageBodySelector).data("containerID",n)),s.mousedown($.proxy(e._mouseDown,e)),e._containers[n].find(".jsQuoteMessage").click($.proxy(e._saveFullQuote,e))}})},_mouseDown:function(e){this._copyQuote.hide();var t=$(e.currentTarget);if(this._messageBodySelector&&(t=this._containers[t.data("containerID")]),t.hasClass("jsInvalidQuoteTarget"))return void(this._activeContainerID="");for(var i=e.target;i!==t[0];){if("BLOCKQUOTE"===i.tagName)return void(this._activeContainerID="");i=i.parentElement}this._activeContainerID=t.wcfIdentify(),$.browser.mozilla&&t.find("img").each(function(){var e=$(this);e.data("__alt",e.attr("alt")).removeAttr("alt")})},_getNodeText:function(e){var t=function(e){switch(e.tagName){case"BLOCKQUOTE":case"H3":case"SCRIPT":return NodeFilter.FILTER_REJECT;default:return NodeFilter.FILTER_ACCEPT}};t.acceptNode=t;for(var i=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,t,!0),s="";i.nextNode();){var n=i.currentNode;if(n.nodeType===Node.ELEMENT_NODE)switch(n.tagName){case"BR":case"LI":case"UL":s+="\n";break;case"TD":$.browser.msie||(s+="\n")}else s+=n.nodeValue.replace(/\n/g,"")}return s},_mouseUp:function(e){if(""==this._activeContainerID)return void this._copyQuote.hide();var t=this._containers[this._activeContainerID],i=this._getSelectedText(),s=$.trim(i);if(""==s)return void this._copyQuote.hide();for(var n=this._messageBodySelector?t.find(this._messageContentSelector)[0]:t[0],a=e.target;a!==t[0];){if(null===a||"BLOCKQUOTE"===a.tagName)return void this._copyQuote.hide();a=a.parentElement}var o=window.getSelection().getRangeAt(0);if(!this._elementInsideContainer(o.startContainer,n)||!this._elementInsideContainer(o.endContainer,n))return void this._copyQuote.hide();var r=this._getNodeText(n);if(-1!==this._normalize(r).indexOf(this._normalize(s))){this._copyQuote.show();var l=this._getBoundingRectangle(t,window.getSelection()),c=this._copyQuote.getDimensions("outer"),d=(l.right-l.left)/2-c.width/2+l.left;this._copyQuote.css({top:l.top-c.height-7+"px",left:d+"px"}),this._copyQuote.hide(),this._activeContainerID="";var h=this;new WCF.PeriodicalExecuter(function(e){e.stop();var i=$.trim(h._getSelectedText());""!=i&&(h._copyQuote.show(),h._message=i,h._objectID=t.data("objectID"),$.browser.mozilla&&t.find("img").each(function(){var e=$(this);e.attr("alt",e.data("__alt"))}))},10)}},_elementInsideContainer:function(e,t){for(e.nodeType===Node.TEXT_NODE&&(e=e.parentNode);e;){if(e===t)return!0;e=e.parentNode}return!1},_normalize:function(e){return e.replace(/\r?\n|\r/g,"\n").replace(/\s/g," ").replace(/\s{2,}/g," ")},_getOffset:function(e,t){e.collapse(t);var i=WCF.getRandomID(),s=document.createElement("span");s.innerHTML='<span id="'+i+'"></span>';for(var n,a=document.createDocumentFragment();n=s.firstChild;)a.appendChild(n);e.insertNode(a),s=$("#"+i);var o=s.offset();return o.top=o.top-$(window).scrollTop(),s.remove(),o},_getBoundingRectangle:function(e,t){var i=null;if(document.createRange&&"undefined"!=typeof document.createRange().getBoundingClientRect){if(t.rangeCount>0){var s=t.getRangeAt(0).getBoundingClientRect();i={left:s.left,right:s.right,top:s.top+$(document).scrollTop()}}}else if(document.selection&&"Control"!=document.selection.type){var n=document.selection.createRange();i={left:n.boundingLeft,right:n.boundingRight,top:n.boundingTop}}return i},_saveSelection:function(e){if(window.getSelection&&document.createRange){var t=window.getSelection().getRangeAt(0),i=t.cloneRange();i.selectNodeContents(e),i.setEnd(t.startContainer,t.startOffset);var s=i.toString().length;return{start:s,end:s+t.toString().length}}var n=document.selection.createRange(),a=document.body.createTextRange();a.moveToElementText(e),a.setEndPoint("EndToStart",n);var s=a.text.length;return{start:s,end:s+n.text.length}},_restoreSelection:function(e,t){if(window.getSelection&&document.createRange){var i=0,s=document.createRange();s.setStart(e,0),s.collapse(!0);for(var n,a=[e],o=!1,r=!1;!r&&(n=a.pop());)if(n.nodeType==Node.TEXT_NODE){var l=i+n.length;!o&&t.start>=i&&t.start<=l&&(s.setStart(n,t.start-i),o=!0),o&&t.end>=i&&t.end<=l&&(s.setEnd(n,t.end-i),r=!0),i=l}else for(var c=n.childNodes.length;c--;)a.push(n.childNodes[c]);var d=window.getSelection();d.removeAllRanges(),d.addRange(s)}else{var h=document.body.createTextRange();h.moveToElementText(e),h.collapse(!0),h.moveEnd("character",t.end),h.moveStart("character",t.start),h.select()}},_initCopyQuote:function(e){if(this._copyQuote=$("#quoteManagerCopy"),!this._copyQuote.length){this._copyQuote=$('<div id="quoteManagerCopy" class="balloonTooltip"><span class="jsQuoteManagerStore">'+WCF.Language.get("wcf.message.quote.quoteSelected")+'</span><span class="pointer"><span></span></span></div>').hide().appendTo(document.body);var t=this._copyQuote.children("span.jsQuoteManagerStore").click($.proxy(this._saveQuote,this));e&&$('<span class="jsQuoteManagerQuoteAndInsert">'+WCF.Language.get("wcf.message.quote.quoteAndReply")+"</span>").click($.proxy(this._saveAndInsertQuote,this)).insertAfter(t)}},_getSelectedText:function(){var e=window.getSelection();return e.rangeCount?this._getNodeText(e.getRangeAt(0).cloneContents()):""},_saveFullQuote:function(e){var t=$(e.currentTarget);this._proxy.setOption("data",{actionName:"saveFullQuote",className:this._className,interfaceName:"wcf\\data\\IMessageQuoteAction",objectIDs:[t.data("objectID")]}),this._proxy.sendRequest(),t.data("isQuoted")?t.data("isQuoted",!1).children("a").removeClass("active"):t.data("isQuoted",!0).children("a").addClass("active");var i=t.parents(".buttonGroupNavigation");return i.hasClass("jsMobileButtonGroupNavigation")&&i.children(".dropdownLabel").trigger("click"),e.stopPropagation(),!1},_saveQuote:function(e){e=e===!0?!0:!1,this._proxy.setOption("data",{actionName:"saveQuote",className:this._className,interfaceName:"wcf\\data\\IMessageQuoteAction",objectIDs:[this._objectID],parameters:{message:this._message,renderQuote:e}}),this._proxy.sendRequest()},_saveAndInsertQuote:function(){this._saveQuote(!0)},_success:function(e){if(void 0!==e.returnValues.count){void 0!==e.returnValues.fullQuoteMessageIDs&&(e.returnValues.fullQuoteObjectIDs=e.returnValues.fullQuoteMessageIDs);var t=void 0!==e.returnValues.fullQuoteObjectIDs?e.returnValues.fullQuoteObjectIDs:{};this._quoteManager.updateCount(e.returnValues.count,t)}switch(e.actionName){case"saveQuote":case"saveFullQuote":e.returnValues.renderedQuote&&WCF.System.Event.fireEvent("com.woltlab.wcf.message.quote","insert",{