You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
128 KiB

{"version":3,"sources":["clipboard.js","jquery.blockUI.js","jquery.cookie.js","toastr.js","global.js","member.js","board.js","mobile.js"],"names":["root","factory","exports","module","define","amd","this","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_select","obj","_select2","default","_typeof","Symbol","iterator","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","Constructor","protoProps","staticProps","ClipboardAction","options","instance","TypeError","_classCallCheck","resolveOptions","initSelection","arguments","undefined","action","container","emitter","text","trigger","selectedText","selectFake","selectTarget","_this","isRTL","document","documentElement","getAttribute","removeFake","fakeHandlerCallback","fakeHandler","addEventListener","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","window","pageYOffset","scrollTop","top","setAttribute","appendChild","copyText","removeEventListener","removeChild","succeeded","execCommand","err","handleResult","emit","clearSelection","bind","focus","getSelection","removeAllRanges","set","_action","Error","nodeType","hasAttribute","_target","apply","is","delegate","type","callback","string","fn","node","destroy","listenNode","nodeList","Array","forEach","listenNodeList","selector","body","listenSelector","E","on","ctx","e","push","once","self","listener","off","_","data","slice","evtArr","len","evts","liveEvents","_clipboardAction","_tinyEmitter","_goodListener","_clipboardAction2","_interopRequireDefault","_tinyEmitter2","_goodListener2","Clipboard","_Emitter","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","listenClick","subClass","superClass","create","setPrototypeOf","_inherits","defaultAction","defaultTarget","defaultText","_this2","onClick","delegateTarget","currentTarget","clipboardAction","getAttributeValue","querySelector","actions","support","queryCommandSupported","suffix","element","attribute","DOCUMENT_NODE_TYPE","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","closest","_delegate","useCapture","listenerFn","elements","querySelectorAll","map","HTMLElement","toString","String","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","setup","$","_fadeIn","fadeIn","noOp","noop","msie","test","navigator","userAgent","ie6","setExpr","documentMode","isFunction","setExpression","blockUI","opts","install","unblockUI","remove","growlUI","title","message","timeout","onClose","$m","append","callBlock","fadeOut","centerY","showOverlay","onUnblock","css","defaults","growlCSS","mouseover","displayBlock","stop","fadeTo","mouseout","block","fullOpts","extend","each","$el","ignoreIfBlocked","unblock","zoom","version","draggable","theme","width","left","textAlign","color","backgroundColor","cursor","themedCSS","overlayCSS","opacity","cursorReset","right","-webkit-border-radius","-moz-border-radius","border-radius","iframeSrc","location","href","forceIframe","baseZ","centerX","allowBodyStretch","bindEvents","constrainTabKey","focusInput","focusableElements","onBlock","onOverlayClick","quirksmodeOffsetHack","blockMsgClass","pageBlock","pageBlockEls","el","full","msg","jquery","parent","display","lyr1","lyr2","lyr3","z","addClass","layers","$par","appendTo","handle","cancel","expr","boxModel","t","sz","fixT","fixL","marginTop","expression","parseInt","find","show","cb","cb1","cb2","setTimeout","x","y","offsetWidth","offsetHeight","center","to","count","els","clearTimeout","removeData","children","filter","add","reset","w","cssW","b","events","handler","unbind","keyCode","fwd","shiftKey","back","hasClass","parents","jQuery","require","pluses","encode","config","raw","encodeURIComponent","read","converter","indexOf","replace","decodeURIComponent","json","JSON","parse","parseCookieValue","cookie","expires","days","Date","setMilliseconds","getMilliseconds","stringify","stringifyCookieValue","toUTCString","path","domain","secure","join","result","cookies","split","parts","shift","removeCookie","$container","previousToast","toastId","toastType","error","info","success","warning","toastr","clear","$toastElement","clearOptions","getOptions","getContainer","clearToast","toastsToClear","clearContainer","removeToast","optionsOverride","notify","iconClass","iconClasses","subscribe","containerId","attr","positionClass","createContainer","force","hideMethod","duration","hideDuration","easing","hideEasing","complete","publish","args","preventDuplicates","shouldExit","intervalId","$titleElement","$messageElement","$progressElement","$closeElement","closeHtml","progressBar","hideEta","maxHideTime","response","state","startTime","toastClass","escapeHtml","titleClass","messageClass","closeButton","prepend","newestOnTop","hide","showMethod","showDuration","showEasing","onShown","timeOut","hideToast","parseFloat","getTime","setInterval","updateProgress","hover","stickAround","delayedHideToast","onclick","tapToDismiss","click","event","stopPropagation","cancelBubble","handleEvents","debug","console","log","source","override","method","closeMethod","closeDuration","closeEasing","onHidden","endTime","extendedTimeOut","percentage","deps","ajaxError","request","settings","responseJSON","status","ajaxStart","ajaxComplete","APP","POPUP","REGEX","uniqueID","option","height","url","cw","screen","availWidth","ch","availHeight","sw","sh","ml","mt","win","open","outerWidth","outerHeight","alert","SET_LANG","lang","reload","idx","close","not","preventDefault","sns_type","loc","img","ClipboardJS","MEMBER","init","InitLoginForm","initCheckExist","InitRegisterForm","InitMemberModifyForm","submit","$form","ajax","serialize","base_url","res","LANG","member_join_success","elementLoginID","elementLoginPass","val","trim","member_login_userid_required","member_login_password_required","reurl","$btn","$target","member_join_user_id_required","wordCheck","denyWordCheck","member_join_no_valid_email_address","getInfo","member_join_user_id_already_exists","member_join_user_id_available","member_join_user_id_contains_deny_word","async","cache","POP_CHANGE_PHOTO","ready","BOARD","CATEGORY","EXTRA","COMMENT","bca_idx","postCount","modify","cmt_idx","reply","cmt_num","$form_post"],"mappings":"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","sourcesContent":["/*!\n * clipboard.js v2.0.1\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(7)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('select'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.select);\n global.clipboardAction = mod.exports;\n }\n})(this, function (module, _select) {\n 'use strict';\n\n var _select2 = _interopRequireDefault(_select);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var ClipboardAction = function () {\n /**\n * @param {Object} options\n */\n function ClipboardAction(options) {\n _classCallCheck(this, ClipboardAction);\n\n this.resolveOptions(options);\n this.initSelection();\n }\n\n /**\n * Defines base properties passed from constructor.\n * @param {Object} options\n */\n\n\n _createClass(ClipboardAction, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = options.action;\n this.container = options.container;\n this.emitter = options.emitter;\n this.target = options.target;\n this.text = options.text;\n this.trigger = options.trigger;\n\n this.selectedText = '';\n }\n }, {\n key: 'initSelection',\n value: function initSelection() {\n if (this.text) {\n this.selectFake();\n } else if (this.target) {\n this.selectTarget();\n }\n }\n }, {\n key: 'selectFake',\n value: function selectFake() {\n var _this = this;\n\n var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n this.removeFake();\n\n this.fakeHandlerCallback = function () {\n return _this.removeFake();\n };\n this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n this.fakeElem = document.createElement('textarea');\n // Prevent zooming on iOS\n this.fakeElem.style.fontSize = '12pt';\n // Reset box model\n this.fakeElem.style.border = '0';\n this.fakeElem.style.padding = '0';\n this.fakeElem.style.margin = '0';\n // Move element out of screen horizontally\n this.fakeElem.style.position = 'absolute';\n this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n // Move element to the same position vertically\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n this.fakeElem.style.top = yPosition + 'px';\n\n this.fakeElem.setAttribute('readonly', '');\n this.fakeElem.value = this.text;\n\n this.container.appendChild(this.fakeElem);\n\n this.selectedText = (0, _select2.default)(this.fakeElem);\n this.copyText();\n }\n }, {\n key: 'removeFake',\n value: function removeFake() {\n if (this.fakeHandler) {\n this.container.removeEventListener('click', this.fakeHandlerCallback);\n this.fakeHandler = null;\n this.fakeHandlerCallback = null;\n }\n\n if (this.fakeElem) {\n this.container.removeChild(this.fakeElem);\n this.fakeElem = null;\n }\n }\n }, {\n key: 'selectTarget',\n value: function selectTarget() {\n this.selectedText = (0, _select2.default)(this.target);\n this.copyText();\n }\n }, {\n key: 'copyText',\n value: function copyText() {\n var succeeded = void 0;\n\n try {\n succeeded = document.execCommand(this.action);\n } catch (err) {\n succeeded = false;\n }\n\n this.handleResult(succeeded);\n }\n }, {\n key: 'handleResult',\n value: function handleResult(succeeded) {\n this.emitter.emit(succeeded ? 'success' : 'error', {\n action: this.action,\n text: this.selectedText,\n trigger: this.trigger,\n clearSelection: this.clearSelection.bind(this)\n });\n }\n }, {\n key: 'clearSelection',\n value: function clearSelection() {\n if (this.trigger) {\n this.trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.removeFake();\n }\n }, {\n key: 'action',\n set: function set() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n this._action = action;\n\n if (this._action !== 'copy' && this._action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n }\n },\n get: function get() {\n return this._action;\n }\n }, {\n key: 'target',\n set: function set(target) {\n if (target !== undefined) {\n if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n if (this.action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n\n this._target = target;\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n }\n },\n get: function get() {\n return this._target;\n }\n }]);\n\n return ClipboardAction;\n }();\n\n module.exports = ClipboardAction;\n});\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(6);\nvar delegate = __webpack_require__(5);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(0), __webpack_require__(2), __webpack_require__(1)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof exports !== \"undefined\") {\n factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);\n global.clipboard = mod.exports;\n }\n})(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {\n 'use strict';\n\n var _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\n var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\n var _goodListener2 = _interopRequireDefault(_goodListener);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var Clipboard = function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n _this.resolveOptions(options);\n _this.listenClick(trigger);\n return _this;\n }\n\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: 'resolveOptions',\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n }\n }, {\n key: 'listenClick',\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n }, {\n key: 'onClick',\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n\n if (this.clipboardAction) {\n this.clipboardAction = null;\n }\n\n this.clipboardAction = new _clipboardAction2.default({\n action: this.action(trigger),\n target: this.target(trigger),\n text: this.text(trigger),\n container: this.container,\n trigger: trigger,\n emitter: this\n });\n }\n }, {\n key: 'defaultAction',\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n }, {\n key: 'defaultTarget',\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n }, {\n key: 'defaultText',\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.listener.destroy();\n\n if (this.clipboardAction) {\n this.clipboardAction.destroy();\n this.clipboardAction = null;\n }\n }\n }], [{\n key: 'isSupported',\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n\n return support;\n }\n }]);\n\n return Clipboard;\n }(_tinyEmitter2.default);\n\n /**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n function getAttributeValue(suffix, element) {\n var attribute = 'data-clipboard-' + suffix;\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n }\n\n module.exports = Clipboard;\n});\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(4);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ })\n/******/ ]);\n});","/*!\r\n * jQuery blockUI plugin\r\n * Version 2.70.0-2014.11.23\r\n * Requires jQuery v1.7 or later\r\n *\r\n * Examples at: http://malsup.com/jquery/block/\r\n * Copyright (c) 2007-2013 M. Alsup\r\n * Dual licensed under the MIT and GPL licenses:\r\n * http://www.opensource.org/licenses/mit-license.php\r\n * http://www.gnu.org/licenses/gpl.html\r\n *\r\n * Thanks to Amir-Hossein Sobhi for some excellent contributions!\r\n */\r\n\r\n;(function() {\r\n /*jshint eqeqeq:false curly:false latedef:false */\r\n \"use strict\";\r\n\r\n function setup($) {\r\n $.fn._fadeIn = $.fn.fadeIn;\r\n\r\n var noOp = $.noop || function() {};\r\n\r\n // this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle\r\n // confusing userAgent strings on Vista)\r\n var msie = /MSIE/.test(navigator.userAgent);\r\n var ie6 = /MSIE 6.0/.test(navigator.userAgent) && ! /MSIE 8.0/.test(navigator.userAgent);\r\n var mode = document.documentMode || 0;\r\n var setExpr = $.isFunction( document.createElement('div').style.setExpression );\r\n\r\n // global $ methods for blocking/unblocking the entire page\r\n $.blockUI = function(opts) { install(window, opts); };\r\n $.unblockUI = function(opts) { remove(window, opts); };\r\n\r\n // convenience method for quick growl-like notifications (http://www.google.com/search?q=growl)\r\n $.growlUI = function(title, message, timeout, onClose) {\r\n var $m = $('<div class=\"growlUI\"></div>');\r\n if (title) $m.append('<h1>'+title+'</h1>');\r\n if (message) $m.append('<h2>'+message+'</h2>');\r\n if (timeout === undefined) timeout = 3000;\r\n\r\n // Added by konapun: Set timeout to 30 seconds if this growl is moused over, like normal toast notifications\r\n var callBlock = function(opts) {\r\n opts = opts || {};\r\n\r\n $.blockUI({\r\n message: $m,\r\n fadeIn : typeof opts.fadeIn !== 'undefined' ? opts.fadeIn : 700,\r\n fadeOut: typeof opts.fadeOut !== 'undefined' ? opts.fadeOut : 1000,\r\n timeout: typeof opts.timeout !== 'undefined' ? opts.timeout : timeout,\r\n centerY: false,\r\n showOverlay: false,\r\n onUnblock: onClose,\r\n css: $.blockUI.defaults.growlCSS\r\n });\r\n };\r\n\r\n callBlock();\r\n var nonmousedOpacity = $m.css('opacity');\r\n $m.mouseover(function() {\r\n callBlock({\r\n fadeIn: 0,\r\n timeout: 30000\r\n });\r\n\r\n var displayBlock = $('.blockMsg');\r\n displayBlock.stop(); // cancel fadeout if it has started\r\n displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency\r\n }).mouseout(function() {\r\n $('.blockMsg').fadeOut(1000);\r\n });\r\n // End konapun additions\r\n };\r\n\r\n // plugin method for blocking element content\r\n $.fn.block = function(opts) {\r\n if ( this[0] === window ) {\r\n $.blockUI( opts );\r\n return this;\r\n }\r\n var fullOpts = $.extend({}, $.blockUI.defaults, opts || {});\r\n this.each(function() {\r\n var $el = $(this);\r\n if (fullOpts.ignoreIfBlocked && $el.data('blockUI.isBlocked'))\r\n return;\r\n $el.unblock({ fadeOut: 0 });\r\n });\r\n\r\n return this.each(function() {\r\n if ($.css(this,'position') == 'static') {\r\n this.style.position = 'relative';\r\n $(this).data('blockUI.static', true);\r\n }\r\n this.style.zoom = 1; // force 'hasLayout' in ie\r\n install(this, opts);\r\n });\r\n };\r\n\r\n // plugin method for unblocking element content\r\n $.fn.unblock = function(opts) {\r\n if ( this[0] === window ) {\r\n $.unblockUI( opts );\r\n return this;\r\n }\r\n return this.each(function() {\r\n remove(this, opts);\r\n });\r\n };\r\n\r\n $.blockUI.version = 2.70; // 2nd generation blocking at no extra cost!\r\n\r\n // override these in your code to change the default behavior and style\r\n $.blockUI.defaults = {\r\n // message displayed when blocking (use null for no message)\r\n message: '<h1>Please wait...</h1>',\r\n\r\n title: null,\t\t// title string; only used when theme == true\r\n draggable: true,\t// only used when theme == true (requires jquery-ui.js to be loaded)\r\n\r\n theme: false, // set to true to use with jQuery UI themes\r\n\r\n // styles for the message when blocking; if you wish to disable\r\n // these and use an external stylesheet then do this in your code:\r\n // $.blockUI.defaults.css = {};\r\n css: {\r\n padding:\t0,\r\n margin:\t\t0,\r\n width:\t\t'30%',\r\n top:\t\t'40%',\r\n left:\t\t'35%',\r\n textAlign:\t'center',\r\n color:\t\t'#000',\r\n border:\t\t'3px solid #aaa',\r\n backgroundColor:'#fff',\r\n cursor:\t\t'wait'\r\n },\r\n\r\n // minimal style set used when themes are used\r\n themedCSS: {\r\n width:\t'30%',\r\n top:\t'40%',\r\n left:\t'35%'\r\n },\r\n\r\n // styles for the overlay\r\n overlayCSS: {\r\n backgroundColor:\t'#000',\r\n opacity:\t\t\t0.6,\r\n cursor:\t\t\t\t'wait'\r\n },\r\n\r\n // style to replace wait cursor before unblocking to correct issue\r\n // of lingering wait cursor\r\n cursorReset: 'default',\r\n\r\n // styles applied when using $.growlUI\r\n growlCSS: {\r\n width:\t\t'350px',\r\n top:\t\t'10px',\r\n left:\t\t'',\r\n right:\t\t'10px',\r\n border:\t\t'none',\r\n padding:\t'5px',\r\n opacity:\t0.6,\r\n cursor:\t\t'default',\r\n color:\t\t'#fff',\r\n backgroundColor: '#000',\r\n '-webkit-border-radius':'10px',\r\n '-moz-border-radius':\t'10px',\r\n 'border-radius':\t\t'10px'\r\n },\r\n\r\n // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w\r\n // (hat tip to Jorge H. N. de Vasconcelos)\r\n /*jshint scripturl:true */\r\n iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',\r\n\r\n // force usage of iframe in non-IE browsers (handy for blocking applets)\r\n forceIframe: false,\r\n\r\n // z-index for the blocking overlay\r\n baseZ: 1000,\r\n\r\n // set these to true to have the message automatically centered\r\n centerX: true, // <-- only effects element blocking (page block controlled via css above)\r\n centerY: true,\r\n\r\n // allow body element to be stetched in ie6; this makes blocking look better\r\n // on \"short\" pages. disable if you wish to prevent changes to the body height\r\n allowBodyStretch: true,\r\n\r\n // enable if you want key and mouse events to be disabled for content that is blocked\r\n bindEvents: true,\r\n\r\n // be default blockUI will supress tab navigation from leaving blocking content\r\n // (if bindEvents is true)\r\n constrainTabKey: true,\r\n\r\n // fadeIn time in millis; set to 0 to disable fadeIn on block\r\n fadeIn: 200,\r\n\r\n // fadeOut time in millis; set to 0 to disable fadeOut on unblock\r\n fadeOut: 400,\r\n\r\n // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock\r\n timeout: 0,\r\n\r\n // disable if you don't want to show the overlay\r\n showOverlay: true,\r\n\r\n // if true, focus will be placed in the first available input field when\r\n // page blocking\r\n focusInput: true,\r\n\r\n // elements that can receive focus\r\n focusableElements: ':input:enabled:visible',\r\n\r\n // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)\r\n // no longer needed in 2012\r\n // applyPlatformOpacityRules: true,\r\n\r\n // callback method invoked when fadeIn has completed and blocking message is visible\r\n onBlock: null,\r\n\r\n // callback method invoked when unblocking has completed; the callback is\r\n // passed the element that has been unblocked (which is the window object for page\r\n // blocks) and the options that were passed to the unblock call:\r\n //\tonUnblock(element, options)\r\n onUnblock: null,\r\n\r\n // callback method invoked when the overlay area is clicked.\r\n // setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used.\r\n onOverlayClick: null,\r\n\r\n // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493\r\n quirksmodeOffsetHack: 4,\r\n\r\n // class name of the message block\r\n blockMsgClass: 'blockMsg',\r\n\r\n // if it is already blocked, then ignore it (don't unblock and reblock)\r\n ignoreIfBlocked: false\r\n };\r\n\r\n // private data and functions follow...\r\n\r\n var pageBlock = null;\r\n var pageBlockEls = [];\r\n\r\n function install(el, opts) {\r\n var css, themedCSS;\r\n var full = (el == window);\r\n var msg = (opts && opts.message !== undefined ? opts.message : undefined);\r\n opts = $.extend({}, $.blockUI.defaults, opts || {});\r\n\r\n if (opts.ignoreIfBlocked && $(el).data('blockUI.isBlocked'))\r\n return;\r\n\r\n opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});\r\n css = $.extend({}, $.blockUI.defaults.css, opts.css || {});\r\n if (opts.onOverlayClick)\r\n opts.overlayCSS.cursor = 'pointer';\r\n\r\n themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});\r\n msg = msg === undefined ? opts.message : msg;\r\n\r\n // remove the current block (if there is one)\r\n if (full && pageBlock)\r\n remove(window, {fadeOut:0});\r\n\r\n // if an existing element is being used as the blocking content then we capture\r\n // its current place in the DOM (and current display style) so we can restore\r\n // it when we unblock\r\n if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {\r\n var node = msg.jquery ? msg[0] : msg;\r\n var data = {};\r\n $(el).data('blockUI.history', data);\r\n data.el = node;\r\n data.parent = node.parentNode;\r\n data.display = node.style.display;\r\n data.position = node.style.position;\r\n if (data.parent)\r\n data.parent.removeChild(node);\r\n }\r\n\r\n $(el).data('blockUI.onUnblock', opts.onUnblock);\r\n var z = opts.baseZ;\r\n\r\n // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;\r\n // layer1 is the iframe layer which is used to supress bleed through of underlying content\r\n // layer2 is the overlay layer which has opacity and a wait cursor (by default)\r\n // layer3 is the message content that is displayed while blocking\r\n var lyr1, lyr2, lyr3, s;\r\n if (msie || opts.forceIframe)\r\n lyr1 = $('<iframe class=\"blockUI\" style=\"z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0\" src=\"'+opts.iframeSrc+'\"></iframe>');\r\n else\r\n lyr1 = $('<div class=\"blockUI\" style=\"display:none\"></div>');\r\n\r\n if (opts.theme)\r\n lyr2 = $('<div class=\"blockUI blockOverlay ui-widget-overlay\" style=\"z-index:'+ (z++) +';display:none\"></div>');\r\n else\r\n lyr2 = $('<div class=\"blockUI blockOverlay\" style=\"z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0\"></div>');\r\n\r\n if (opts.theme && full) {\r\n s = '<div class=\"blockUI ' + opts.blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all\" style=\"z-index:'+(z+10)+';display:none;position:fixed\">';\r\n if ( opts.title ) {\r\n s += '<div class=\"ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle\">'+(opts.title || '&nbsp;')+'</div>';\r\n }\r\n s += '<div class=\"ui-widget-content ui-dialog-content\"></div>';\r\n s += '</div>';\r\n }\r\n else if (opts.theme) {\r\n s = '<div class=\"blockUI ' + opts.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all\" style=\"z-index:'+(z+10)+';display:none;position:absolute\">';\r\n if ( opts.title ) {\r\n s += '<div class=\"ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle\">'+(opts.title || '&nbsp;')+'</div>';\r\n }\r\n s += '<div class=\"ui-widget-content ui-dialog-content\"></div>';\r\n s += '</div>';\r\n }\r\n else if (full) {\r\n s = '<div class=\"blockUI ' + opts.blockMsgClass + ' blockPage\" style=\"z-index:'+(z+10)+';display:none;position:fixed\"></div>';\r\n }\r\n else {\r\n s = '<div class=\"blockUI ' + opts.blockMsgClass + ' blockElement\" style=\"z-index:'+(z+10)+';display:none;position:absolute\"></div>';\r\n }\r\n lyr3 = $(s);\r\n\r\n // if we have a message, style it\r\n if (msg) {\r\n if (opts.theme) {\r\n lyr3.css(themedCSS);\r\n lyr3.addClass('ui-widget-content');\r\n }\r\n else\r\n lyr3.css(css);\r\n }\r\n\r\n // style the overlay\r\n if (!opts.theme /*&& (!opts.applyPlatformOpacityRules)*/)\r\n lyr2.css(opts.overlayCSS);\r\n lyr2.css('position', full ? 'fixed' : 'absolute');\r\n\r\n // make iframe layer transparent in IE\r\n if (msie || opts.forceIframe)\r\n lyr1.css('opacity',0.0);\r\n\r\n //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);\r\n var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el);\r\n $.each(layers, function() {\r\n this.appendTo($par);\r\n });\r\n\r\n if (opts.theme && opts.draggable && $.fn.draggable) {\r\n lyr3.draggable({\r\n handle: '.ui-dialog-titlebar',\r\n cancel: 'li'\r\n });\r\n }\r\n\r\n // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)\r\n var expr = setExpr && (!$.support.boxModel || $('object,embed', full ? null : el).length > 0);\r\n if (ie6 || expr) {\r\n // give body 100% height\r\n if (full && opts.allowBodyStretch && $.support.boxModel)\r\n $('html,body').css('height','100%');\r\n\r\n // fix ie6 issue when blocked element has a border width\r\n if ((ie6 || !$.support.boxModel) && !full) {\r\n var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth');\r\n var fixT = t ? '(0 - '+t+')' : 0;\r\n var fixL = l ? '(0 - '+l+')' : 0;\r\n }\r\n\r\n // simulate fixed position\r\n $.each(layers, function(i,o) {\r\n var s = o[0].style;\r\n s.position = 'absolute';\r\n if (i < 2) {\r\n if (full)\r\n s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + \"px\"');\r\n else\r\n s.setExpression('height','this.parentNode.offsetHeight + \"px\"');\r\n if (full)\r\n s.setExpression('width','jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + \"px\"');\r\n else\r\n s.setExpression('width','this.parentNode.offsetWidth + \"px\"');\r\n if (fixL) s.setExpression('left', fixL);\r\n if (fixT) s.setExpression('top', fixT);\r\n }\r\n else if (opts.centerY) {\r\n if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + \"px\"');\r\n s.marginTop = 0;\r\n }\r\n else if (!opts.centerY && full) {\r\n var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0;\r\n var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + \"px\"';\r\n s.setExpression('top',expression);\r\n }\r\n });\r\n }\r\n\r\n // show the message\r\n if (msg) {\r\n if (opts.theme)\r\n lyr3.find('.ui-widget-content').append(msg);\r\n else\r\n lyr3.append(msg);\r\n if (msg.jquery || msg.nodeType)\r\n $(msg).show();\r\n }\r\n\r\n if ((msie || opts.forceIframe) && opts.showOverlay)\r\n lyr1.show(); // opacity is zero\r\n if (opts.fadeIn) {\r\n var cb = opts.onBlock ? opts.onBlock : noOp;\r\n var cb1 = (opts.showOverlay && !msg) ? cb : noOp;\r\n var cb2 = msg ? cb : noOp;\r\n if (opts.showOverlay)\r\n lyr2._fadeIn(opts.fadeIn, cb1);\r\n if (msg)\r\n lyr3._fadeIn(opts.fadeIn, cb2);\r\n }\r\n else {\r\n if (opts.showOverlay)\r\n lyr2.show();\r\n if (msg)\r\n lyr3.show();\r\n if (opts.onBlock)\r\n opts.onBlock.bind(lyr3)();\r\n }\r\n\r\n // bind key and mouse events\r\n bind(1, el, opts);\r\n\r\n if (full) {\r\n pageBlock = lyr3[0];\r\n pageBlockEls = $(opts.focusableElements,pageBlock);\r\n if (opts.focusInput)\r\n setTimeout(focus, 20);\r\n }\r\n else\r\n center(lyr3[0], opts.centerX, opts.centerY);\r\n\r\n if (opts.timeout) {\r\n // auto-unblock\r\n var to = setTimeout(function() {\r\n if (full)\r\n $.unblockUI(opts);\r\n else\r\n $(el).unblock(opts);\r\n }, opts.timeout);\r\n $(el).data('blockUI.timeout', to);\r\n }\r\n }\r\n\r\n // remove the block\r\n function remove(el, opts) {\r\n var count;\r\n var full = (el == window);\r\n var $el = $(el);\r\n var data = $el.data('blockUI.history');\r\n var to = $el.data('blockUI.timeout');\r\n if (to) {\r\n clearTimeout(to);\r\n $el.removeData('blockUI.timeout');\r\n }\r\n opts = $.extend({}, $.blockUI.defaults, opts || {});\r\n bind(0, el, opts); // unbind events\r\n\r\n if (opts.onUnblock === null) {\r\n opts.onUnblock = $el.data('blockUI.onUnblock');\r\n $el.removeData('blockUI.onUnblock');\r\n }\r\n\r\n var els;\r\n if (full) // crazy selector to handle odd field errors in ie6/7\r\n els = $('body').children().filter('.blockUI').add('body > .blockUI');\r\n else\r\n els = $el.find('>.blockUI');\r\n\r\n // fix cursor issue\r\n if ( opts.cursorReset ) {\r\n if ( els.length > 1 )\r\n els[1].style.cursor = opts.cursorReset;\r\n if ( els.length > 2 )\r\n els[2].style.cursor = opts.cursorReset;\r\n }\r\n\r\n if (full)\r\n pageBlock = pageBlockEls = null;\r\n\r\n if (opts.fadeOut) {\r\n count = els.length;\r\n els.stop().fadeOut(opts.fadeOut, function() {\r\n if ( --count === 0)\r\n reset(els,data,opts,el);\r\n });\r\n }\r\n else\r\n reset(els, data, opts, el);\r\n }\r\n\r\n // move blocking element back into the DOM where it started\r\n function reset(els,data,opts,el) {\r\n var $el = $(el);\r\n if ( $el.data('blockUI.isBlocked') )\r\n return;\r\n\r\n els.each(function(i,o) {\r\n // remove via DOM calls so we don't lose event handlers\r\n if (this.parentNode)\r\n this.parentNode.removeChild(this);\r\n });\r\n\r\n if (data && data.el) {\r\n data.el.style.display = data.display;\r\n data.el.style.position = data.position;\r\n data.el.style.cursor = 'default'; // #59\r\n if (data.parent)\r\n data.parent.appendChild(data.el);\r\n $el.removeData('blockUI.history');\r\n }\r\n\r\n if ($el.data('blockUI.static')) {\r\n $el.css('position', 'static'); // #22\r\n }\r\n\r\n if (typeof opts.onUnblock == 'function')\r\n opts.onUnblock(el,opts);\r\n\r\n // fix issue in Safari 6 where block artifacts remain until reflow\r\n var body = $(document.body), w = body.width(), cssW = body[0].style.width;\r\n body.width(w-1).width(w);\r\n body[0].style.width = cssW;\r\n }\r\n\r\n // bind/unbind the handler\r\n function bind(b, el, opts) {\r\n var full = el == window, $el = $(el);\r\n\r\n // don't bother unbinding if there is nothing to unbind\r\n if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))\r\n return;\r\n\r\n $el.data('blockUI.isBlocked', b);\r\n\r\n // don't bind events when overlay is not in use or if bindEvents is false\r\n if (!full || !opts.bindEvents || (b && !opts.showOverlay))\r\n return;\r\n\r\n // bind anchors and inputs for mouse and key events\r\n var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove';\r\n if (b)\r\n $(document).bind(events, opts, handler);\r\n else\r\n $(document).unbind(events, handler);\r\n\r\n // former impl...\r\n //\t\tvar $e = $('a,:input');\r\n //\t\tb ? $e.bind(events, opts, handler) : $e.unbind(events, handler);\r\n }\r\n\r\n // event handler to suppress keyboard/mouse events when blocking\r\n function handler(e) {\r\n // allow tab navigation (conditionally)\r\n if (e.type === 'keydown' && e.keyCode && e.keyCode == 9) {\r\n if (pageBlock && e.data.constrainTabKey) {\r\n var els = pageBlockEls;\r\n var fwd = !e.shiftKey && e.target === els[els.length-1];\r\n var back = e.shiftKey && e.target === els[0];\r\n if (fwd || back) {\r\n setTimeout(function(){focus(back);},10);\r\n return false;\r\n }\r\n }\r\n }\r\n var opts = e.data;\r\n var target = $(e.target);\r\n if (target.hasClass('blockOverlay') && opts.onOverlayClick)\r\n opts.onOverlayClick(e);\r\n\r\n // allow events within the message content\r\n if (target.parents('div.' + opts.blockMsgClass).length > 0)\r\n return true;\r\n\r\n // allow events for content that is not being blocked\r\n return target.parents().children().filter('div.blockUI').length === 0;\r\n }\r\n\r\n function focus(back) {\r\n if (!pageBlockEls)\r\n return;\r\n var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0];\r\n if (e)\r\n e.focus();\r\n }\r\n\r\n function center(el, x, y) {\r\n var p = el.parentNode, s = el.style;\r\n var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth');\r\n var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth');\r\n if (x) s.left = l > 0 ? (l+'px') : '0';\r\n if (y) s.top = t > 0 ? (t+'px') : '0';\r\n }\r\n\r\n function sz(el, p) {\r\n return parseInt($.css(el,p),10)||0;\r\n }\r\n\r\n }\r\n\r\n\r\n /*global define:true */\r\n if (typeof define === 'function' && define.amd && define.amd.jQuery) {\r\n define(['jquery'], setup);\r\n } else {\r\n setup(jQuery);\r\n }\r\n\r\n})();","/*!\r\n * jQuery Cookie Plugin v1.4.1\r\n * https://github.com/carhartl/jquery-cookie\r\n *\r\n * Copyright 2006, 2014 Klaus Hartl\r\n * Released under the MIT license\r\n */\r\n(function (factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD (Register as an anonymous module)\r\n define(['jquery'], factory);\r\n } else if (typeof exports === 'object') {\r\n // Node/CommonJS\r\n module.exports = factory(require('jquery'));\r\n } else {\r\n // Browser globals\r\n factory(jQuery);\r\n }\r\n}(function ($) {\r\n\r\n var pluses = /\\+/g;\r\n\r\n function encode(s) {\r\n return config.raw ? s : encodeURIComponent(s);\r\n }\r\n\r\n function decode(s) {\r\n return config.raw ? s : decodeURIComponent(s);\r\n }\r\n\r\n function stringifyCookieValue(value) {\r\n return encode(config.json ? JSON.stringify(value) : String(value));\r\n }\r\n\r\n function parseCookieValue(s) {\r\n if (s.indexOf('\"') === 0) {\r\n // This is a quoted cookie as according to RFC2068, unescape...\r\n s = s.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\');\r\n }\r\n\r\n try {\r\n // Replace server-side written pluses with spaces.\r\n // If we can't decode the cookie, ignore it, it's unusable.\r\n // If we can't parse the cookie, ignore it, it's unusable.\r\n s = decodeURIComponent(s.replace(pluses, ' '));\r\n return config.json ? JSON.parse(s) : s;\r\n } catch(e) {}\r\n }\r\n\r\n function read(s, converter) {\r\n var value = config.raw ? s : parseCookieValue(s);\r\n return $.isFunction(converter) ? converter(value) : value;\r\n }\r\n\r\n var config = $.cookie = function (key, value, options) {\r\n\r\n // Write\r\n\r\n if (arguments.length > 1 && !$.isFunction(value)) {\r\n options = $.extend({}, config.defaults, options);\r\n\r\n if (typeof options.expires === 'number') {\r\n var days = options.expires, t = options.expires = new Date();\r\n t.setMilliseconds(t.getMilliseconds() + days * 864e+5);\r\n }\r\n\r\n return (document.cookie = [\r\n encode(key), '=', stringifyCookieValue(value),\r\n options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE\r\n options.path ? '; path=' + options.path : '',\r\n options.domain ? '; domain=' + options.domain : '',\r\n options.secure ? '; secure' : ''\r\n ].join(''));\r\n }\r\n\r\n // Read\r\n\r\n var result = key ? undefined : {},\r\n // To prevent the for loop in the first place assign an empty array\r\n // in case there are no cookies at all. Also prevents odd result when\r\n // calling $.cookie().\r\n cookies = document.cookie ? document.cookie.split('; ') : [],\r\n i = 0,\r\n l = cookies.length;\r\n\r\n for (; i < l; i++) {\r\n var parts = cookies[i].split('='),\r\n name = decode(parts.shift()),\r\n cookie = parts.join('=');\r\n\r\n if (key === name) {\r\n // If second argument (value) is a function it's a converter...\r\n result = read(cookie, value);\r\n break;\r\n }\r\n\r\n // Prevent storing a cookie that we couldn't decode.\r\n if (!key && (cookie = read(cookie)) !== undefined) {\r\n result[name] = cookie;\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n config.defaults = {};\r\n\r\n $.removeCookie = function (key, options) {\r\n // Must not alter options, thus extending a fresh object...\r\n $.cookie(key, '', $.extend({}, options, { expires: -1 }));\r\n return !$.cookie(key);\r\n };\r\n\r\n}));","/*\r\n * Toastr\r\n * Copyright 2012-2015\r\n * Authors: John Papa, Hans Fjällemark, and Tim Ferrell.\r\n * All Rights Reserved.\r\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\r\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\r\n *\r\n * ARIA Support: Greta Krafsig\r\n *\r\n * Project: https://github.com/CodeSeven/toastr\r\n */\r\n/* global define */\r\n; (function (define) {\r\n define(['jquery'], function ($) {\r\n return (function () {\r\n var $container;\r\n var listener;\r\n var toastId = 0;\r\n var toastType = {\r\n error: 'error',\r\n info: 'info',\r\n success: 'success',\r\n warning: 'warning'\r\n };\r\n\r\n var toastr = {\r\n clear: clear,\r\n remove: remove,\r\n error: error,\r\n getContainer: getContainer,\r\n info: info,\r\n options: {},\r\n subscribe: subscribe,\r\n success: success,\r\n version: '2.1.2',\r\n warning: warning\r\n };\r\n\r\n var previousToast;\r\n\r\n return toastr;\r\n\r\n ////////////////\r\n\r\n function error(message, title, optionsOverride) {\r\n return notify({\r\n type: toastType.error,\r\n iconClass: getOptions().iconClasses.error,\r\n message: message,\r\n optionsOverride: optionsOverride,\r\n title: title\r\n });\r\n }\r\n\r\n function getContainer(options, create) {\r\n if (!options) { options = getOptions(); }\r\n $container = $('#' + options.containerId);\r\n if ($container.length) {\r\n return $container;\r\n }\r\n if (create) {\r\n $container = createContainer(options);\r\n }\r\n return $container;\r\n }\r\n\r\n function info(message, title, optionsOverride) {\r\n return notify({\r\n type: toastType.info,\r\n iconClass: getOptions().iconClasses.info,\r\n message: message,\r\n optionsOverride: optionsOverride,\r\n title: title\r\n });\r\n }\r\n\r\n function subscribe(callback) {\r\n listener = callback;\r\n }\r\n\r\n function success(message, title, optionsOverride) {\r\n return notify({\r\n type: toastType.success,\r\n iconClass: getOptions().iconClasses.success,\r\n message: message,\r\n optionsOverride: optionsOverride,\r\n title: title\r\n });\r\n }\r\n\r\n function warning(message, title, optionsOverride) {\r\n return notify({\r\n type: toastType.warning,\r\n iconClass: getOptions().iconClasses.warning,\r\n message: message,\r\n optionsOverride: optionsOverride,\r\n title: title\r\n });\r\n }\r\n\r\n function clear($toastElement, clearOptions) {\r\n var options = getOptions();\r\n if (!$container) { getContainer(options); }\r\n if (!clearToast($toastElement, options, clearOptions)) {\r\n clearContainer(options);\r\n }\r\n }\r\n\r\n function remove($toastElement) {\r\n var options = getOptions();\r\n if (!$container) { getContainer(options); }\r\n if ($toastElement && $(':focus', $toastElement).length === 0) {\r\n removeToast($toastElement);\r\n return;\r\n }\r\n if ($container.children().length) {\r\n $container.remove();\r\n }\r\n }\r\n\r\n // internal functions\r\n\r\n function clearContainer (options) {\r\n var toastsToClear = $container.children();\r\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\r\n clearToast($(toastsToClear[i]), options);\r\n }\r\n }\r\n\r\n function clearToast ($toastElement, options, clearOptions) {\r\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\r\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\r\n $toastElement[options.hideMethod]({\r\n duration: options.hideDuration,\r\n easing: options.hideEasing,\r\n complete: function () { removeToast($toastElement); }\r\n });\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function createContainer(options) {\r\n $container = $('<div/>')\r\n .attr('id', options.containerId)\r\n .addClass(options.positionClass)\r\n .attr('aria-live', 'polite')\r\n .attr('role', 'alert');\r\n\r\n $container.appendTo($(options.target));\r\n return $container;\r\n }\r\n\r\n function getDefaults() {\r\n return {\r\n tapToDismiss: true,\r\n toastClass: 'toast',\r\n containerId: 'toast-container',\r\n debug: false,\r\n\r\n showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\r\n showDuration: 300,\r\n showEasing: 'swing', //swing and linear are built into jQuery\r\n onShown: undefined,\r\n hideMethod: 'fadeOut',\r\n hideDuration: 1000,\r\n hideEasing: 'swing',\r\n onHidden: undefined,\r\n closeMethod: false,\r\n closeDuration: false,\r\n closeEasing: false,\r\n\r\n extendedTimeOut: 1000,\r\n iconClasses: {\r\n error: 'toast-error',\r\n info: 'toast-info',\r\n success: 'toast-success',\r\n warning: 'toast-warning'\r\n },\r\n iconClass: 'toast-info',\r\n positionClass: 'toast-top-right',\r\n timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\r\n titleClass: 'toast-title',\r\n messageClass: 'toast-message',\r\n escapeHtml: false,\r\n target: 'body',\r\n closeHtml: '<button type=\"button\">&times;</button>',\r\n newestOnTop: true,\r\n preventDuplicates: false,\r\n progressBar: false\r\n };\r\n }\r\n\r\n function publish(args) {\r\n if (!listener) { return; }\r\n listener(args);\r\n }\r\n\r\n function notify(map) {\r\n var options = getOptions();\r\n var iconClass = map.iconClass || options.iconClass;\r\n\r\n if (typeof (map.optionsOverride) !== 'undefined') {\r\n options = $.extend(options, map.optionsOverride);\r\n iconClass = map.optionsOverride.iconClass || iconClass;\r\n }\r\n\r\n if (shouldExit(options, map)) { return; }\r\n\r\n toastId++;\r\n\r\n $container = getContainer(options, true);\r\n\r\n var intervalId = null;\r\n var $toastElement = $('<div/>');\r\n var $titleElement = $('<div/>');\r\n var $messageElement = $('<div/>');\r\n var $progressElement = $('<div/>');\r\n var $closeElement = $(options.closeHtml);\r\n var progressBar = {\r\n intervalId: null,\r\n hideEta: null,\r\n maxHideTime: null\r\n };\r\n var response = {\r\n toastId: toastId,\r\n state: 'visible',\r\n startTime: new Date(),\r\n options: options,\r\n map: map\r\n };\r\n\r\n personalizeToast();\r\n\r\n displayToast();\r\n\r\n handleEvents();\r\n\r\n publish(response);\r\n\r\n if (options.debug && console) {\r\n console.log(response);\r\n }\r\n\r\n return $toastElement;\r\n\r\n function escapeHtml(source) {\r\n if (source == null)\r\n source = \"\";\r\n\r\n return new String(source)\r\n .replace(/&/g, '&amp;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&#39;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;');\r\n }\r\n\r\n function personalizeToast() {\r\n setIcon();\r\n setTitle();\r\n setMessage();\r\n setCloseButton();\r\n setProgressBar();\r\n setSequence();\r\n }\r\n\r\n function handleEvents() {\r\n $toastElement.hover(stickAround, delayedHideToast);\r\n if (!options.onclick && options.tapToDismiss) {\r\n $toastElement.click(hideToast);\r\n }\r\n\r\n if (options.closeButton && $closeElement) {\r\n $closeElement.click(function (event) {\r\n if (event.stopPropagation) {\r\n event.stopPropagation();\r\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\r\n event.cancelBubble = true;\r\n }\r\n hideToast(true);\r\n });\r\n }\r\n\r\n if (options.onclick) {\r\n $toastElement.click(function (event) {\r\n options.onclick(event);\r\n hideToast();\r\n });\r\n }\r\n }\r\n\r\n function displayToast() {\r\n $toastElement.hide();\r\n\r\n $toastElement[options.showMethod](\r\n {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\r\n );\r\n\r\n if (options.timeOut > 0) {\r\n intervalId = setTimeout(hideToast, options.timeOut);\r\n progressBar.maxHideTime = parseFloat(options.timeOut);\r\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\r\n if (options.progressBar) {\r\n progressBar.intervalId = setInterval(updateProgress, 10);\r\n }\r\n }\r\n }\r\n\r\n function setIcon() {\r\n if (map.iconClass) {\r\n $toastElement.addClass(options.toastClass).addClass(iconClass);\r\n }\r\n }\r\n\r\n function setSequence() {\r\n if (options.newestOnTop) {\r\n $container.prepend($toastElement);\r\n } else {\r\n $container.append($toastElement);\r\n }\r\n }\r\n\r\n function setTitle() {\r\n if (map.title) {\r\n $titleElement.append(!options.escapeHtml ? map.title : escapeHtml(map.title)).addClass(options.titleClass);\r\n $toastElement.append($titleElement);\r\n }\r\n }\r\n\r\n function setMessage() {\r\n if (map.message) {\r\n $messageElement.append(!options.escapeHtml ? map.message : escapeHtml(map.message)).addClass(options.messageClass);\r\n $toastElement.append($messageElement);\r\n }\r\n }\r\n\r\n function setCloseButton() {\r\n if (options.closeButton) {\r\n $closeElement.addClass('toast-close-button').attr('role', 'button');\r\n $toastElement.prepend($closeElement);\r\n }\r\n }\r\n\r\n function setProgressBar() {\r\n if (options.progressBar) {\r\n $progressElement.addClass('toast-progress');\r\n $toastElement.prepend($progressElement);\r\n }\r\n }\r\n\r\n function shouldExit(options, map) {\r\n if (options.preventDuplicates) {\r\n if (map.message === previousToast) {\r\n return true;\r\n } else {\r\n previousToast = map.message;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function hideToast(override) {\r\n var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\r\n var duration = override && options.closeDuration !== false ?\r\n options.closeDuration : options.hideDuration;\r\n var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\r\n if ($(':focus', $toastElement).length && !override) {\r\n return;\r\n }\r\n clearTimeout(progressBar.intervalId);\r\n return $toastElement[method]({\r\n duration: duration,\r\n easing: easing,\r\n complete: function () {\r\n removeToast($toastElement);\r\n if (options.onHidden && response.state !== 'hidden') {\r\n options.onHidden();\r\n }\r\n response.state = 'hidden';\r\n response.endTime = new Date();\r\n publish(response);\r\n }\r\n });\r\n }\r\n\r\n function delayedHideToast() {\r\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\r\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\r\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\r\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\r\n }\r\n }\r\n\r\n function stickAround() {\r\n clearTimeout(intervalId);\r\n progressBar.hideEta = 0;\r\n $toastElement.stop(true, true)[options.showMethod](\r\n {duration: options.showDuration, easing: options.showEasing}\r\n );\r\n }\r\n\r\n function updateProgress() {\r\n var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\r\n $progressElement.width(percentage + '%');\r\n }\r\n }\r\n\r\n function getOptions() {\r\n return $.extend({}, getDefaults(), toastr.options);\r\n }\r\n\r\n function removeToast($toastElement) {\r\n if (!$container) { $container = getContainer(); }\r\n if ($toastElement.is(':visible')) {\r\n return;\r\n }\r\n $toastElement.remove();\r\n $toastElement = null;\r\n if ($container.children().length === 0) {\r\n $container.remove();\r\n previousToast = undefined;\r\n }\r\n }\r\n\r\n })();\r\n });\r\n}(typeof define === 'function' && define.amd ? define : function (deps, factory) {\r\n if (typeof module !== 'undefined' && module.exports) { //Node\r\n module.exports = factory(require('jquery'));\r\n } else {\r\n window.toastr = factory(window.jQuery);\r\n }\r\n}));\r\n","/***********************************************************************************\r\n * IE 8 이하 브라우져 console.log 에러처리\r\n ***********************************************************************************/\r\nif(!window.console || !window.console.log) {window.console = {log : function(){}};}\r\n\r\n\r\n/***********************************************************************************\r\n * AJAX Error 및 BlockUI 처리\r\n ***********************************************************************************/\r\n$(function(){\r\n $(document).ajaxError(function(event, request, settings){\r\n var message = '알수없는 오류가 발생하였습니다.';\r\n if( typeof request.responseJSON != 'undefined' && typeof request.responseJSON.message != 'undefined' ) {\r\n message = request.responseJSON.message;\r\n }\r\n else {\r\n if( request.status == 500 ) message = '서버 코드 오류가 발생하였습니다.\\n관리자에게 문의하세요';\r\n else if ( request.status == 401 ) message = '해당 명령을 실행할 권한이 없습니다.';\r\n }\r\n toastr.error(message, '오류 발생');\r\n }).ajaxStart(function(){\r\n $.blockUI({\r\n css: {width:'25px',top:'49%',left:'49%',border:'0px none',backgroundColor:'transparent',cursor:'wait'},\r\n message : '<img src=\"/assets/images/common/ajax-loader.gif\" alt=\"로딩중\">',\r\n baseZ : 10000,\r\n overlayCSS : {opacity : 0}\r\n });\r\n }).ajaxComplete(function(){\r\n $.unblockUI();\r\n });\r\n});\r\nvar APP = {};\r\nAPP.POPUP = null;\r\nAPP.REGEX = {};\r\nAPP.REGEX.uniqueID = /^[a-z][a-z0-9_]{2,19}$/g;\r\n(function($) {\r\n APP.POPUP = function(option) {\r\n var defaults={\r\n title : '_blank',\r\n width : 800,\r\n height : 600,\r\n url : ''\r\n };\r\n\r\n var options = $.extend({}, defaults, option);\r\n\r\n cw = screen.availWidth;\r\n ch = screen.availHeight;\r\n sw = options.width;\r\n sh = options.height;\r\n\r\n ml = (cw - sw) / 2;\r\n mt = (ch - sh) / 2;\r\n var option = 'width='+sw+',height='+sh+',top='+mt+',left='+ml+',scrollbars=yes,resizable=no';\r\n var win = window.open(options.url, options.title, option);\r\n if (win == null || typeof(win) == \"undefined\" || (win == null && win.outerWidth == 0) || (win != null && win.outerHeight == 0))\r\n {\r\n alert(\"팝업 차단 기능이 설정되어있습니다\\n\\n차단 기능을 해제(팝업허용) 한 후 다시 이용해 주십시오.\");\r\n return;\r\n }\r\n };\r\n})(jQuery);\r\n\r\n/**\r\n * 언어셋 변경\r\n * @param lang\r\n * @constructor\r\n */\r\nAPP.SET_LANG = function(lang)\r\n{\r\n $.cookie('site_lang', lang, {expires:30, path:'/'});\r\n location.reload();\r\n};\r\n\r\n/**\r\n * 팝업창 닫기버튼 init\r\n */\r\n$('[data-toggle=\"btn-popup-close\"]').click(function(e){\r\n var type = $(this).data('type');\r\n var idx = $(this).data('idx');\r\n var cookie = $(this).data('cookie');\r\n\r\n if( type == 'Y')\r\n {\r\n window.close();\r\n }\r\n else if( type == 'N' )\r\n {\r\n $(\"#popup-\" + idx ).remove();\r\n }\r\n\r\n if( cookie == 1 )\r\n {\r\n $.cookie('popup_'+idx, 1, {expires:1, path:'/'});\r\n }\r\n});\r\n\r\n/**\r\n * SNS 공유\r\n */\r\n$(\"a[data-toggle='sns-share']\").not('[data-service=\"link\"]').click(function(e){\r\n e.preventDefault();\r\n\r\n var _this = $(this);\r\n var sns_type = _this.data('service');\r\n var href = _this.data('url');\r\n var title = _this.data('title');\r\n var loc = \"\";\r\n var img = $(\"meta[name='og:image']\").attr('content');\r\n\r\n if( ! sns_type || !href || !title) return;\r\n\r\n if( sns_type == 'facebook' ) {\r\n loc = '//www.facebook.com/sharer/sharer.php?u='+encodeURIComponent(href);\r\n }\r\n else if ( sns_type == 'twitter' ) {\r\n loc = '//twitter.com/home?status='+encodeURIComponent(title)+' '+href;\r\n }\r\n else if ( sns_type == 'google' ) {\r\n loc = '//plus.google.com/share?url='+href;\r\n }\r\n else if ( sns_type == 'pinterest' ) {\r\n\r\n loc = '//www.pinterest.com/pin/create/button/?url='+href+'&media='+img+'&description='+encodeURIComponent(title);\r\n }\r\n else if ( sns_type == 'kakaostory') {\r\n loc = 'https://story.kakao.com/share?url='+encodeURIComponent(href);\r\n }\r\n else if ( sns_type == 'band' ) {\r\n loc = 'http://www.band.us/plugin/share?body='+encodeURIComponent(title)+'%0A'+encodeURIComponent(href);\r\n }\r\n else if ( sns_type == 'naver' ) {\r\n loc = \"http://share.naver.com/web/shareView.nhn?url=\"+encodeURIComponent(href)+\"&title=\"+encodeURIComponent(title);\r\n }\r\n else if ( sns_type == 'line') {\r\n loc = \"http://line.me/R/msg/text/?\" + encodeURIComponent(title + \"\\n\" + href);\r\n }\r\n else {\r\n return false;\r\n }\r\n APP.POPUP({ url : loc});\r\n return false;\r\n});\r\n\r\n$(function(){\r\n var clipboard = new ClipboardJS('a[data-toggle=\"sns-share\"][data-service=\"link\"]', {\r\n text: function(trigger) {\r\n return trigger.getAttribute('data-url');\r\n }\r\n });\r\n clipboard.on('success', function(){\r\n alert('현재 URL이 복사되었습니다.');\r\n });\r\n});","APP.MEMBER = {};\r\n\r\n/**\r\n * 회원 관련 자바스크립트 초기화\r\n */\r\nAPP.MEMBER.init = function() {\r\n APP.MEMBER.InitLoginForm(); // 로그인폼 init\r\n APP.MEMBER.initCheckExist();\r\n APP.MEMBER.InitRegisterForm();\r\n APP.MEMBER.InitMemberModifyForm();\r\n};\r\n\r\nAPP.MEMBER.InitRegisterForm = function() {\r\n $('[data-form=\"form-register\"]').submit(function(e) {\r\n e.preventDefault();\r\n var $form = $(this);\r\n $.ajax({\r\n type : 'PUT',\r\n data : $form.serialize(),\r\n url : base_url + '/ajax/members/info',\r\n success:function(res){\r\n if(res.result == true) {\r\n alert(LANG.member_join_success);\r\n location.href = base_url + \"/members/login\";\r\n }\r\n }\r\n });\r\n });\r\n};\r\n\r\nAPP.MEMBER.InitMemberModifyForm = function() {\r\n $('[data-form=\"form-member-modify\"]').submit(function(e) {\r\n e.preventDefault();\r\n var $form = $(this);\r\n $.ajax({\r\n type : 'POST',\r\n data : $form.serialize(),\r\n url : base_url + '/ajax/members/info',\r\n success:function(res){\r\n if(res.result == true) {\r\n alert(res.message);\r\n location.reload();\r\n }\r\n }\r\n });\r\n });\r\n};\r\n\r\n/**\r\n * 로그인 폼 초기화\r\n * @constructor\r\n */\r\nAPP.MEMBER.InitLoginForm = function() {\r\n $('[data-role=\"form-login\"]').submit(function (e) {\r\n e.preventDefault();\r\n var $form = $(this);\r\n var elementLoginID = $form.find('[name=\"login_id\"]');\r\n var elementLoginPass = $form.find('[name=\"login_pass\"]');\r\n\r\n if(elementLoginID.val().trim() == '')\r\n {\r\n alert(LANG.member_login_userid_required);\r\n elementLoginID.focus();\r\n return false;\r\n }\r\n\r\n if(elementLoginPass.val().trim() == '')\r\n {\r\n alert(LANG.member_login_password_required);\r\n elementLoginPass.focus();\r\n return false;\r\n }\r\n\r\n $.ajax({\r\n url : base_url + 'ajax/members/login',\r\n type : \"POST\",\r\n data : $form.serialize(),\r\n success:function(res) {\r\n if (res.result == true) {\r\n location.href = res.reurl ? res.reurl : base_url;\r\n }\r\n },\r\n error : function(e){\r\n elementLoginPass.val('');\r\n }\r\n })\r\n });\r\n};\r\n\r\n/**\r\n * 중복확인 버튼 이벤트 연결\r\n */\r\nAPP.MEMBER.initCheckExist = function() {\r\n $('[data-toggle=\"check-member-exist\"]').each(function(){\r\n var $btn = $(this);\r\n\r\n $btn.on('click', function(){\r\n var $target = $(\"#\" + $btn.data('target'));\r\n var key = $btn.data('check');\r\n var value = $target.val();\r\n\r\n if( typeof value == 'undefined' || ! value || ! value.trim() )\r\n {\r\n alert(LANG.member_join_user_id_required );\r\n $target.focus();\r\n return false;\r\n }\r\n\r\n var wordCheck = APP.MEMBER.denyWordCheck(key,value);\r\n if( wordCheck == 'VALID_EMAIL' )\r\n {\r\n alert(LANG.member_join_no_valid_email_address );\r\n $target.focus();\r\n return false;\r\n }\r\n else if(! wordCheck)\r\n {\r\n alert(LANG.member_join_user_id_contains_deny_word );\r\n $target.focus();\r\n return false;\r\n }\r\n\r\n if( APP.MEMBER.getInfo(key, value) )\r\n {\r\n alert(LANG.member_join_user_id_already_exists );\r\n $target.focus();\r\n return false;\r\n }\r\n\r\n alert(LANG.member_join_user_id_available );\r\n return true;\r\n });\r\n });\r\n\r\n};\r\n\r\n/**\r\n * 사용자의 정보 가져오기\r\n * @param key 가져올 기준 키\r\n * @param value 키 값\r\n * @returns {*}\r\n */\r\nAPP.MEMBER.getInfo = function(key, value) {\r\n var info = null;\r\n $.ajax({\r\n url : base_url + '/ajax/members/info',\r\n type : 'get',\r\n async : false,\r\n cache : false,\r\n data : {\r\n key : key,\r\n value : value\r\n },\r\n success:function(res){\r\n info = res.result;\r\n }\r\n });\r\n return info;\r\n};\r\n\r\n/**\r\n * 아이디와 닉네임 금지단어 사용여부 체크\r\n * @param key 아이디/닉네임\r\n * @param value 체크할 값\r\n * @returns {*}\r\n */\r\nAPP.MEMBER.denyWordCheck = function(key,value) {\r\n var result = null;\r\n $.ajax({\r\n url : base_url + '/ajax/members/word_check',\r\n type : 'get',\r\n async : false,\r\n cache : false,\r\n data : {\r\n key:key,\r\n value : value\r\n },\r\n success:function(res) {\r\n result = res.result;\r\n }\r\n });\r\n return result;\r\n};\r\n\r\n\r\nAPP.MEMBER.POP_CHANGE_PHOTO = function() {\r\n APP.POPUP({\r\n url : '/members/photo_change',\r\n width : 600,\r\n height :150\r\n });\r\n};\r\n\r\n$(document).ready(APP.MEMBER.init);","APP.BOARD = {};\r\nAPP.BOARD.CATEGORY = {};\r\nAPP.BOARD.EXTRA = {};\r\nAPP.BOARD.COMMENT = {};\r\n\r\n/**\r\n * 특정 카테고리의 하위 카테고리가 몇개인지 가져온다.\r\n * @param bca_idx\r\n */\r\nAPP.BOARD.CATEGORY.count = function(bca_idx)\r\n{\r\n if (typeof bca_idx == 'undefined' || ! bca_idx) return 0;\r\n\r\n var count = 0;\r\n $.ajax({\r\n url : base_url + \"/ajax/board/category_count\",\r\n type : 'get',\r\n cache : false,\r\n async : false,\r\n data : {\r\n bca_idx: bca_idx\r\n },\r\n success:function(res)\r\n {\r\n count = res.result;\r\n }\r\n })\r\n\r\n return count;\r\n};\r\n\r\nAPP.BOARD.CATEGORY.postCount = function(bca_idx)\r\n{\r\n if (typeof bca_idx == 'undefined' || ! bca_idx) return 0;\r\n\r\n var count = 0;\r\n $.ajax({\r\n url : base_url + \"/ajax/board/category_post_count\",\r\n type : 'get',\r\n cache : false,\r\n async : false,\r\n data : {\r\n bca_idx: bca_idx\r\n },\r\n success:function(res)\r\n {\r\n count = res.result;\r\n }\r\n });\r\n\r\n return count;\r\n};\r\n\r\nAPP.BOARD.COMMENT.modify= function( cmt_idx )\r\n{\r\n APP.POPUP({\r\n title : '_blank',\r\n width : 800,\r\n height : 600,\r\n url : base_url + '/board/comment/modify/' + cmt_idx\r\n });\r\n};\r\n\r\nAPP.BOARD.COMMENT.reply= function( cmt_idx, cmt_num )\r\n{\r\n APP.POPUP({\r\n title : '_blank',\r\n width : 800,\r\n height : 600,\r\n url : base_url + '/board/comment/reply/' + cmt_idx + '/' + cmt_num\r\n });\r\n};\r\n\r\n$(function(){\r\n var $form_post = $('[data-form=\"post\"]');\r\n if( $form_post.length > 0 )\r\n {\r\n $form_post.on('submit', function(){\r\n $.blockUI({\r\n css: {width:'25px',top:'49%',left:'49%',border:'0px none',backgroundColor:'transparent',cursor:'wait'},\r\n message : '<img src=\"/assets/images/common/ajax-loader.gif\" alt=\"로딩중\">',\r\n baseZ : 10000,\r\n overlayCSS : {opacity : 0}\r\n });\r\n });\r\n }\r\n});\r\n",""],"file":"mobile.min.js"}