0\" class=\"text-left font-weight-bold text-secondary\" style=\"font-size:2rem;\">\r\n {{medicineList[0].Name}} 您好
\r\n可預約慢箋如下:
\r\n科別 | \r\n醫師 | \r\n看診日期 | \r\n可領藥日期 | \r\n可預約期限 | \r\n選擇 | \r\n
---|---|---|---|---|---|
{{item.DepName}} | \r\n{{item.DoctorName}} | \r\n{{addWeekDay(item.VisitDate)}} | \r\n{{addWeekDay(item.AllowGetDate.substr(0,10))}} - {{addWeekDay(item.AllowGetDate.substr(-10))}} | \r\n{{addWeekDay(item.lastAllowGetDate)}} | \r\n\r\n 預約 \r\n | \r\n
目前已預約慢箋如下:
\r\n科別 | \r\n醫師 | \r\n看診日期 | \r\n \r\n預定領藥日期 | \r\n領藥號碼 | \r\n領藥院區 | \r\n選擇 | \r\n
---|---|---|---|---|---|---|
{{item.DepName}} | \r\n{{item.DoctorName}} | \r\n{{addWeekDay(item.VisitDate)}} | \r\n \r\n{{addWeekDay(item.ReserveDate)}} | \r\n{{item.AllowGetNo}} | \r\n{{\"三重院區\"}} | \r\n\r\n 取消預約 \r\n | \r\n \r\n
於可領藥日截止前兩天恕不提供慢箋預約服務, 如欲領取慢箋可至現場機台報到取號
\r\n如一年內預約3次且未於預定領藥日期完成領藥者, 將在6個月內無法使用預約功能
\r\n如有問題可來電詢問: 三重院區(02)29829111-3189
\r\n科別:{{activeRefillablePrescriptions.DepName}}
\r\n醫師:{{activeRefillablePrescriptions.DoctorName}}
\r\n領藥院區: {{'三重院區'}}
\r\n領藥號:{{activeRefillablePrescriptions.AllowGetNo}}
\r\n請於{{addWeekDay(activeRefillablePrescriptions.ReserveDate)}} {{currentDayWorkTime}}前,
\r\n攜帶健保卡至現場領藥速服務機進行預約報到, 即可快速領藥
\r\n\")[0],\n\n\t\t\t// Colors = jQuery.Color.names\n\t\t\tcolors,\n\n\t\t\t// Local aliases of functions called often\n\t\t\teach = jQuery.each;\n\n\t\t// Determine rgba support immediately\n\t\tsupportElem.style.cssText = \"background-color:rgba(1,1,1,.5)\";\n\t\tsupport.rgba = supportElem.style.backgroundColor.indexOf(\"rgba\") > -1;\n\n\t\t// Define cache name and alpha properties\n\t\t// for rgba and hsla spaces\n\t\teach(spaces, function (spaceName, space) {\n\t\t\tspace.cache = \"_\" + spaceName;\n\t\t\tspace.props.alpha = {\n\t\t\t\tidx: 3,\n\t\t\t\ttype: \"percent\",\n\t\t\t\tdef: 1\n\t\t\t};\n\t\t});\n\n\t\tfunction clamp(value, prop, allowEmpty) {\n\t\t\tvar type = propTypes[prop.type] || {};\n\n\t\t\tif (value == null) {\n\t\t\t\treturn (allowEmpty || !prop.def) ? null : prop.def;\n\t\t\t}\n\n\t\t\t// ~~ is an short way of doing floor for positive numbers\n\t\t\tvalue = type.floor ? ~~value : parseFloat(value);\n\n\t\t\t// IE will pass in empty strings as value for alpha,\n\t\t\t// which will hit this case\n\t\t\tif (isNaN(value)) {\n\t\t\t\treturn prop.def;\n\t\t\t}\n\n\t\t\tif (type.mod) {\n\n\t\t\t\t// We add mod before modding to make sure that negatives values\n\t\t\t\t// get converted properly: -10 -> 350\n\t\t\t\treturn (value + type.mod) % type.mod;\n\t\t\t}\n\n\t\t\t// For now all property types without mod have min and max\n\t\t\treturn 0 > value ? 0 : type.max < value ? type.max : value;\n\t\t}\n\n\t\tfunction stringParse(string) {\n\t\t\tvar inst = color(),\n\t\t\t\trgba = inst._rgba = [];\n\n\t\t\tstring = string.toLowerCase();\n\n\t\t\teach(stringParsers, function (i, parser) {\n\t\t\t\tvar parsed,\n\t\t\t\t\tmatch = parser.re.exec(string),\n\t\t\t\t\tvalues = match && parser.parse(match),\n\t\t\t\t\tspaceName = parser.space || \"rgba\";\n\n\t\t\t\tif (values) {\n\t\t\t\t\tparsed = inst[spaceName](values);\n\n\t\t\t\t\t// If this was an rgba parse the assignment might happen twice\n\t\t\t\t\t// oh well....\n\t\t\t\t\tinst[spaces[spaceName].cache] = parsed[spaces[spaceName].cache];\n\t\t\t\t\trgba = inst._rgba = parsed._rgba;\n\n\t\t\t\t\t// Exit each( stringParsers ) here because we matched\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Found a stringParser that handled it\n\t\t\tif (rgba.length) {\n\n\t\t\t\t// If this came from a parsed string, force \"transparent\" when alpha is 0\n\t\t\t\t// chrome, (and maybe others) return \"transparent\" as rgba(0,0,0,0)\n\t\t\t\tif (rgba.join() === \"0,0,0,0\") {\n\t\t\t\t\tjQuery.extend(rgba, colors.transparent);\n\t\t\t\t}\n\t\t\t\treturn inst;\n\t\t\t}\n\n\t\t\t// Named colors\n\t\t\treturn colors[string];\n\t\t}\n\n\t\tcolor.fn = jQuery.extend(color.prototype, {\n\t\t\tparse: function (red, green, blue, alpha) {\n\t\t\t\tif (red === undefined) {\n\t\t\t\t\tthis._rgba = [null, null, null, null];\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tif (red.jquery || red.nodeType) {\n\t\t\t\t\tred = jQuery(red).css(green);\n\t\t\t\t\tgreen = undefined;\n\t\t\t\t}\n\n\t\t\t\tvar inst = this,\n\t\t\t\t\ttype = jQuery.type(red),\n\t\t\t\t\trgba = this._rgba = [];\n\n\t\t\t\t// More than 1 argument specified - assume ( red, green, blue, alpha )\n\t\t\t\tif (green !== undefined) {\n\t\t\t\t\tred = [red, green, blue, alpha];\n\t\t\t\t\ttype = \"array\";\n\t\t\t\t}\n\n\t\t\t\tif (type === \"string\") {\n\t\t\t\t\treturn this.parse(stringParse(red) || colors._default);\n\t\t\t\t}\n\n\t\t\t\tif (type === \"array\") {\n\t\t\t\t\teach(spaces.rgba.props, function (key, prop) {\n\t\t\t\t\t\trgba[prop.idx] = clamp(red[prop.idx], prop);\n\t\t\t\t\t});\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t\tif (type === \"object\") {\n\t\t\t\t\tif (red instanceof color) {\n\t\t\t\t\t\teach(spaces, function (spaceName, space) {\n\t\t\t\t\t\t\tif (red[space.cache]) {\n\t\t\t\t\t\t\t\tinst[space.cache] = red[space.cache].slice();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\teach(spaces, function (spaceName, space) {\n\t\t\t\t\t\t\tvar cache = space.cache;\n\t\t\t\t\t\t\teach(space.props, function (key, prop) {\n\n\t\t\t\t\t\t\t\t// If the cache doesn't exist, and we know how to convert\n\t\t\t\t\t\t\t\tif (!inst[cache] && space.to) {\n\n\t\t\t\t\t\t\t\t\t// If the value was null, we don't need to copy it\n\t\t\t\t\t\t\t\t\t// if the key was alpha, we don't need to copy it either\n\t\t\t\t\t\t\t\t\tif (key === \"alpha\" || red[key] == null) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tinst[cache] = space.to(inst._rgba);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// This is the only case where we allow nulls for ALL properties.\n\t\t\t\t\t\t\t\t// call clamp with alwaysAllowEmpty\n\t\t\t\t\t\t\t\tinst[cache][prop.idx] = clamp(red[key], prop, true);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t// Everything defined but alpha?\n\t\t\t\t\t\t\tif (inst[cache] &&\n\t\t\t\t\t\t\t\tjQuery.inArray(null, inst[cache].slice(0, 3)) < 0) {\n\n\t\t\t\t\t\t\t\t// Use the default of 1\n\t\t\t\t\t\t\t\tinst[cache][3] = 1;\n\t\t\t\t\t\t\t\tif (space.from) {\n\t\t\t\t\t\t\t\t\tinst._rgba = space.from(inst[cache]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t},\n\t\t\tis: function (compare) {\n\t\t\t\tvar is = color(compare),\n\t\t\t\t\tsame = true,\n\t\t\t\t\tinst = this;\n\n\t\t\t\teach(spaces, function (_, space) {\n\t\t\t\t\tvar localCache,\n\t\t\t\t\t\tisCache = is[space.cache];\n\t\t\t\t\tif (isCache) {\n\t\t\t\t\t\tlocalCache = inst[space.cache] || space.to && space.to(inst._rgba) || [];\n\t\t\t\t\t\teach(space.props, function (_, prop) {\n\t\t\t\t\t\t\tif (isCache[prop.idx] != null) {\n\t\t\t\t\t\t\t\tsame = (isCache[prop.idx] === localCache[prop.idx]);\n\t\t\t\t\t\t\t\treturn same;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn same;\n\t\t\t\t});\n\t\t\t\treturn same;\n\t\t\t},\n\t\t\t_space: function () {\n\t\t\t\tvar used = [],\n\t\t\t\t\tinst = this;\n\t\t\t\teach(spaces, function (spaceName, space) {\n\t\t\t\t\tif (inst[space.cache]) {\n\t\t\t\t\t\tused.push(spaceName);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn used.pop();\n\t\t\t},\n\t\t\ttransition: function (other, distance) {\n\t\t\t\tvar end = color(other),\n\t\t\t\t\tspaceName = end._space(),\n\t\t\t\t\tspace = spaces[spaceName],\n\t\t\t\t\tstartColor = this.alpha() === 0 ? color(\"transparent\") : this,\n\t\t\t\t\tstart = startColor[space.cache] || space.to(startColor._rgba),\n\t\t\t\t\tresult = start.slice();\n\n\t\t\t\tend = end[space.cache];\n\t\t\t\teach(space.props, function (key, prop) {\n\t\t\t\t\tvar index = prop.idx,\n\t\t\t\t\t\tstartValue = start[index],\n\t\t\t\t\t\tendValue = end[index],\n\t\t\t\t\t\ttype = propTypes[prop.type] || {};\n\n\t\t\t\t\t// If null, don't override start value\n\t\t\t\t\tif (endValue === null) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If null - use end\n\t\t\t\t\tif (startValue === null) {\n\t\t\t\t\t\tresult[index] = endValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (type.mod) {\n\t\t\t\t\t\t\tif (endValue - startValue > type.mod / 2) {\n\t\t\t\t\t\t\t\tstartValue += type.mod;\n\t\t\t\t\t\t\t} else if (startValue - endValue > type.mod / 2) {\n\t\t\t\t\t\t\t\tstartValue -= type.mod;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult[index] = clamp((endValue - startValue) * distance + startValue, prop);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn this[spaceName](result);\n\t\t\t},\n\t\t\tblend: function (opaque) {\n\n\t\t\t\t// If we are already opaque - return ourself\n\t\t\t\tif (this._rgba[3] === 1) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t\tvar rgb = this._rgba.slice(),\n\t\t\t\t\ta = rgb.pop(),\n\t\t\t\t\tblend = color(opaque)._rgba;\n\n\t\t\t\treturn color(jQuery.map(rgb, function (v, i) {\n\t\t\t\t\treturn (1 - a) * blend[i] + a * v;\n\t\t\t\t}));\n\t\t\t},\n\t\t\ttoRgbaString: function () {\n\t\t\t\tvar prefix = \"rgba(\",\n\t\t\t\t\trgba = jQuery.map(this._rgba, function (v, i) {\n\t\t\t\t\t\treturn v == null ? (i > 2 ? 1 : 0) : v;\n\t\t\t\t\t});\n\n\t\t\t\tif (rgba[3] === 1) {\n\t\t\t\t\trgba.pop();\n\t\t\t\t\tprefix = \"rgb(\";\n\t\t\t\t}\n\n\t\t\t\treturn prefix + rgba.join() + \")\";\n\t\t\t},\n\t\t\ttoHslaString: function () {\n\t\t\t\tvar prefix = \"hsla(\",\n\t\t\t\t\thsla = jQuery.map(this.hsla(), function (v, i) {\n\t\t\t\t\t\tif (v == null) {\n\t\t\t\t\t\t\tv = i > 2 ? 1 : 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Catch 1 and 2\n\t\t\t\t\t\tif (i && i < 3) {\n\t\t\t\t\t\t\tv = Math.round(v * 100) + \"%\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn v;\n\t\t\t\t\t});\n\n\t\t\t\tif (hsla[3] === 1) {\n\t\t\t\t\thsla.pop();\n\t\t\t\t\tprefix = \"hsl(\";\n\t\t\t\t}\n\t\t\t\treturn prefix + hsla.join() + \")\";\n\t\t\t},\n\t\t\ttoHexString: function (includeAlpha) {\n\t\t\t\tvar rgba = this._rgba.slice(),\n\t\t\t\t\talpha = rgba.pop();\n\n\t\t\t\tif (includeAlpha) {\n\t\t\t\t\trgba.push(~~(alpha * 255));\n\t\t\t\t}\n\n\t\t\t\treturn \"#\" + jQuery.map(rgba, function (v) {\n\n\t\t\t\t\t// Default to 0 when nulls exist\n\t\t\t\t\tv = (v || 0).toString(16);\n\t\t\t\t\treturn v.length === 1 ? \"0\" + v : v;\n\t\t\t\t}).join(\"\");\n\t\t\t},\n\t\t\ttoString: function () {\n\t\t\t\treturn this._rgba[3] === 0 ? \"transparent\" : this.toRgbaString();\n\t\t\t}\n\t\t});\n\t\tcolor.fn.parse.prototype = color.fn;\n\n\t\t// Hsla conversions adapted from:\n\t\t// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021\n\n\t\tfunction hue2rgb(p, q, h) {\n\t\t\th = (h + 1) % 1;\n\t\t\tif (h * 6 < 1) {\n\t\t\t\treturn p + (q - p) * h * 6;\n\t\t\t}\n\t\t\tif (h * 2 < 1) {\n\t\t\t\treturn q;\n\t\t\t}\n\t\t\tif (h * 3 < 2) {\n\t\t\t\treturn p + (q - p) * ((2 / 3) - h) * 6;\n\t\t\t}\n\t\t\treturn p;\n\t\t}\n\n\t\tspaces.hsla.to = function (rgba) {\n\t\t\tif (rgba[0] == null || rgba[1] == null || rgba[2] == null) {\n\t\t\t\treturn [null, null, null, rgba[3]];\n\t\t\t}\n\t\t\tvar r = rgba[0] / 255,\n\t\t\t\tg = rgba[1] / 255,\n\t\t\t\tb = rgba[2] / 255,\n\t\t\t\ta = rgba[3],\n\t\t\t\tmax = Math.max(r, g, b),\n\t\t\t\tmin = Math.min(r, g, b),\n\t\t\t\tdiff = max - min,\n\t\t\t\tadd = max + min,\n\t\t\t\tl = add * 0.5,\n\t\t\t\th, s;\n\n\t\t\tif (min === max) {\n\t\t\t\th = 0;\n\t\t\t} else if (r === max) {\n\t\t\t\th = (60 * (g - b) / diff) + 360;\n\t\t\t} else if (g === max) {\n\t\t\t\th = (60 * (b - r) / diff) + 120;\n\t\t\t} else {\n\t\t\t\th = (60 * (r - g) / diff) + 240;\n\t\t\t}\n\n\t\t\t// Chroma (diff) == 0 means greyscale which, by definition, saturation = 0%\n\t\t\t// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)\n\t\t\tif (diff === 0) {\n\t\t\t\ts = 0;\n\t\t\t} else if (l <= 0.5) {\n\t\t\t\ts = diff / add;\n\t\t\t} else {\n\t\t\t\ts = diff / (2 - add);\n\t\t\t}\n\t\t\treturn [Math.round(h) % 360, s, l, a == null ? 1 : a];\n\t\t};\n\n\t\tspaces.hsla.from = function (hsla) {\n\t\t\tif (hsla[0] == null || hsla[1] == null || hsla[2] == null) {\n\t\t\t\treturn [null, null, null, hsla[3]];\n\t\t\t}\n\t\t\tvar h = hsla[0] / 360,\n\t\t\t\ts = hsla[1],\n\t\t\t\tl = hsla[2],\n\t\t\t\ta = hsla[3],\n\t\t\t\tq = l <= 0.5 ? l * (1 + s) : l + s - l * s,\n\t\t\t\tp = 2 * l - q;\n\n\t\t\treturn [\n\t\t\t\tMath.round(hue2rgb(p, q, h + (1 / 3)) * 255),\n\t\t\t\tMath.round(hue2rgb(p, q, h) * 255),\n\t\t\t\tMath.round(hue2rgb(p, q, h - (1 / 3)) * 255),\n\t\t\t\ta\n\t\t\t];\n\t\t};\n\n\t\teach(spaces, function (spaceName, space) {\n\t\t\tvar props = space.props,\n\t\t\t\tcache = space.cache,\n\t\t\t\tto = space.to,\n\t\t\t\tfrom = space.from;\n\n\t\t\t// Makes rgba() and hsla()\n\t\t\tcolor.fn[spaceName] = function (value) {\n\n\t\t\t\t// Generate a cache for this space if it doesn't exist\n\t\t\t\tif (to && !this[cache]) {\n\t\t\t\t\tthis[cache] = to(this._rgba);\n\t\t\t\t}\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn this[cache].slice();\n\t\t\t\t}\n\n\t\t\t\tvar ret,\n\t\t\t\t\ttype = jQuery.type(value),\n\t\t\t\t\tarr = (type === \"array\" || type === \"object\") ? value : arguments,\n\t\t\t\t\tlocal = this[cache].slice();\n\n\t\t\t\teach(props, function (key, prop) {\n\t\t\t\t\tvar val = arr[type === \"object\" ? key : prop.idx];\n\t\t\t\t\tif (val == null) {\n\t\t\t\t\t\tval = local[prop.idx];\n\t\t\t\t\t}\n\t\t\t\t\tlocal[prop.idx] = clamp(val, prop);\n\t\t\t\t});\n\n\t\t\t\tif (from) {\n\t\t\t\t\tret = color(from(local));\n\t\t\t\t\tret[cache] = local;\n\t\t\t\t\treturn ret;\n\t\t\t\t} else {\n\t\t\t\t\treturn color(local);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Makes red() green() blue() alpha() hue() saturation() lightness()\n\t\t\teach(props, function (key, prop) {\n\n\t\t\t\t// Alpha is included in more than one space\n\t\t\t\tif (color.fn[key]) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcolor.fn[key] = function (value) {\n\t\t\t\t\tvar vtype = jQuery.type(value),\n\t\t\t\t\t\tfn = (key === \"alpha\" ? (this._hsla ? \"hsla\" : \"rgba\") : spaceName),\n\t\t\t\t\t\tlocal = this[fn](),\n\t\t\t\t\t\tcur = local[prop.idx],\n\t\t\t\t\t\tmatch;\n\n\t\t\t\t\tif (vtype === \"undefined\") {\n\t\t\t\t\t\treturn cur;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (vtype === \"function\") {\n\t\t\t\t\t\tvalue = value.call(this, cur);\n\t\t\t\t\t\tvtype = jQuery.type(value);\n\t\t\t\t\t}\n\t\t\t\t\tif (value == null && prop.empty) {\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\t\t\t\t\tif (vtype === \"string\") {\n\t\t\t\t\t\tmatch = rplusequals.exec(value);\n\t\t\t\t\t\tif (match) {\n\t\t\t\t\t\t\tvalue = cur + parseFloat(match[2]) * (match[1] === \"+\" ? 1 : -1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlocal[prop.idx] = value;\n\t\t\t\t\treturn this[fn](local);\n\t\t\t\t};\n\t\t\t});\n\t\t});\n\n\t\t// Add cssHook and .fx.step function for each named hook.\n\t\t// accept a space separated string of properties\n\t\tcolor.hook = function (hook) {\n\t\t\tvar hooks = hook.split(\" \");\n\t\t\teach(hooks, function (i, hook) {\n\t\t\t\tjQuery.cssHooks[hook] = {\n\t\t\t\t\tset: function (elem, value) {\n\t\t\t\t\t\tvar parsed, curElem,\n\t\t\t\t\t\t\tbackgroundColor = \"\";\n\n\t\t\t\t\t\tif (value !== \"transparent\" && (jQuery.type(value) !== \"string\" ||\n\t\t\t\t\t\t\t(parsed = stringParse(value)))) {\n\t\t\t\t\t\t\tvalue = color(parsed || value);\n\t\t\t\t\t\t\tif (!support.rgba && value._rgba[3] !== 1) {\n\t\t\t\t\t\t\t\tcurElem = hook === \"backgroundColor\" ? elem.parentNode : elem;\n\t\t\t\t\t\t\t\twhile (\n\t\t\t\t\t\t\t\t\t(backgroundColor === \"\" || backgroundColor === \"transparent\") &&\n\t\t\t\t\t\t\t\t\tcurElem && curElem.style\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tbackgroundColor = jQuery.css(curElem, \"backgroundColor\");\n\t\t\t\t\t\t\t\t\t\tcurElem = curElem.parentNode;\n\t\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tvalue = value.blend(backgroundColor && backgroundColor !== \"transparent\" ?\n\t\t\t\t\t\t\t\t\tbackgroundColor :\n\t\t\t\t\t\t\t\t\t\"_default\");\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvalue = value.toRgbaString();\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\telem.style[hook] = value;\n\t\t\t\t\t\t} catch (e) {\n\n\t\t\t\t\t\t\t// Wrapped to prevent IE from throwing errors on \"invalid\" values like\n\t\t\t\t\t\t\t// 'auto' or 'inherit'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tjQuery.fx.step[hook] = function (fx) {\n\t\t\t\t\tif (!fx.colorInit) {\n\t\t\t\t\t\tfx.start = color(fx.elem, hook);\n\t\t\t\t\t\tfx.end = color(fx.end);\n\t\t\t\t\t\tfx.colorInit = true;\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.cssHooks[hook].set(fx.elem, fx.start.transition(fx.end, fx.pos));\n\t\t\t\t};\n\t\t\t});\n\n\t\t};\n\n\t\tcolor.hook(stepHooks);\n\n\t\tjQuery.cssHooks.borderColor = {\n\t\t\texpand: function (value) {\n\t\t\t\tvar expanded = {};\n\n\t\t\t\teach([\"Top\", \"Right\", \"Bottom\", \"Left\"], function (i, part) {\n\t\t\t\t\texpanded[\"border\" + part + \"Color\"] = value;\n\t\t\t\t});\n\t\t\t\treturn expanded;\n\t\t\t}\n\t\t};\n\n\t\t// Basic color names only.\n\t\t// Usage of any of the other color names requires adding yourself or including\n\t\t// jquery.color.svg-names.js.\n\t\tcolors = jQuery.Color.names = {\n\n\t\t\t// 4.1. Basic color keywords\n\t\t\taqua: \"#00ffff\",\n\t\t\tblack: \"#000000\",\n\t\t\tblue: \"#0000ff\",\n\t\t\tfuchsia: \"#ff00ff\",\n\t\t\tgray: \"#808080\",\n\t\t\tgreen: \"#008000\",\n\t\t\tlime: \"#00ff00\",\n\t\t\tmaroon: \"#800000\",\n\t\t\tnavy: \"#000080\",\n\t\t\tolive: \"#808000\",\n\t\t\tpurple: \"#800080\",\n\t\t\tred: \"#ff0000\",\n\t\t\tsilver: \"#c0c0c0\",\n\t\t\tteal: \"#008080\",\n\t\t\twhite: \"#ffffff\",\n\t\t\tyellow: \"#ffff00\",\n\n\t\t\t// 4.2.3. \"transparent\" color keyword\n\t\t\ttransparent: [null, null, null, 0],\n\n\t\t\t_default: \"#ffffff\"\n\t\t};\n\n\t})(jQuery);\n\n\t/******************************************************************************/\n\t/****************************** CLASS ANIMATIONS ******************************/\n\t/******************************************************************************/\n\t(function () {\n\n\t\tvar classAnimationActions = [\"add\", \"remove\", \"toggle\"],\n\t\t\tshorthandStyles = {\n\t\t\t\tborder: 1,\n\t\t\t\tborderBottom: 1,\n\t\t\t\tborderColor: 1,\n\t\t\t\tborderLeft: 1,\n\t\t\t\tborderRight: 1,\n\t\t\t\tborderTop: 1,\n\t\t\t\tborderWidth: 1,\n\t\t\t\tmargin: 1,\n\t\t\t\tpadding: 1\n\t\t\t};\n\n\t\t$.each(\n\t\t\t[\"borderLeftStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderTopStyle\"],\n\t\t\tfunction (_, prop) {\n\t\t\t\t$.fx.step[prop] = function (fx) {\n\t\t\t\t\tif (fx.end !== \"none\" && !fx.setAttr || fx.pos === 1 && !fx.setAttr) {\n\t\t\t\t\t\tjQuery.style(fx.elem, prop, fx.end);\n\t\t\t\t\t\tfx.setAttr = true;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t);\n\n\t\tfunction getElementStyles(elem) {\n\t\t\tvar key, len,\n\t\t\t\tstyle = elem.ownerDocument.defaultView ?\n\t\t\t\t\telem.ownerDocument.defaultView.getComputedStyle(elem, null) :\n\t\t\t\t\telem.currentStyle,\n\t\t\t\tstyles = {};\n\n\t\t\tif (style && style.length && style[0] && style[style[0]]) {\n\t\t\t\tlen = style.length;\n\t\t\t\twhile (len--) {\n\t\t\t\t\tkey = style[len];\n\t\t\t\t\tif (typeof style[key] === \"string\") {\n\t\t\t\t\t\tstyles[$.camelCase(key)] = style[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: Opera, IE <9\n\t\t\t} else {\n\t\t\t\tfor (key in style) {\n\t\t\t\t\tif (typeof style[key] === \"string\") {\n\t\t\t\t\t\tstyles[key] = style[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn styles;\n\t\t}\n\n\t\tfunction styleDifference(oldStyle, newStyle) {\n\t\t\tvar diff = {},\n\t\t\t\tname, value;\n\n\t\t\tfor (name in newStyle) {\n\t\t\t\tvalue = newStyle[name];\n\t\t\t\tif (oldStyle[name] !== value) {\n\t\t\t\t\tif (!shorthandStyles[name]) {\n\t\t\t\t\t\tif ($.fx.step[name] || !isNaN(parseFloat(value))) {\n\t\t\t\t\t\t\tdiff[name] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn diff;\n\t\t}\n\n\t\t// Support: jQuery <1.8\n\t\tif (!$.fn.addBack) {\n\t\t\t$.fn.addBack = function (selector) {\n\t\t\t\treturn this.add(selector == null ?\n\t\t\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t\t\t);\n\t\t\t};\n\t\t}\n\n\t\t$.effects.animateClass = function (value, duration, easing, callback) {\n\t\t\tvar o = $.speed(duration, easing, callback);\n\n\t\t\treturn this.queue(function () {\n\t\t\t\tvar animated = $(this),\n\t\t\t\t\tbaseClass = animated.attr(\"class\") || \"\",\n\t\t\t\t\tapplyClassChange,\n\t\t\t\t\tallAnimations = o.children ? animated.find(\"*\").addBack() : animated;\n\n\t\t\t\t// Map the animated objects to store the original styles.\n\t\t\t\tallAnimations = allAnimations.map(function () {\n\t\t\t\t\tvar el = $(this);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tel: el,\n\t\t\t\t\t\tstart: getElementStyles(this)\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\t// Apply class change\n\t\t\t\tapplyClassChange = function () {\n\t\t\t\t\t$.each(classAnimationActions, function (i, action) {\n\t\t\t\t\t\tif (value[action]) {\n\t\t\t\t\t\t\tanimated[action + \"Class\"](value[action]);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tapplyClassChange();\n\n\t\t\t\t// Map all animated objects again - calculate new styles and diff\n\t\t\t\tallAnimations = allAnimations.map(function () {\n\t\t\t\t\tthis.end = getElementStyles(this.el[0]);\n\t\t\t\t\tthis.diff = styleDifference(this.start, this.end);\n\t\t\t\t\treturn this;\n\t\t\t\t});\n\n\t\t\t\t// Apply original class\n\t\t\t\tanimated.attr(\"class\", baseClass);\n\n\t\t\t\t// Map all animated objects again - this time collecting a promise\n\t\t\t\tallAnimations = allAnimations.map(function () {\n\t\t\t\t\tvar styleInfo = this,\n\t\t\t\t\t\tdfd = $.Deferred(),\n\t\t\t\t\t\topts = $.extend({}, o, {\n\t\t\t\t\t\t\tqueue: false,\n\t\t\t\t\t\t\tcomplete: function () {\n\t\t\t\t\t\t\t\tdfd.resolve(styleInfo);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\tthis.el.animate(this.diff, opts);\n\t\t\t\t\treturn dfd.promise();\n\t\t\t\t});\n\n\t\t\t\t// Once all animations have completed:\n\t\t\t\t$.when.apply($, allAnimations.get()).done(function () {\n\n\t\t\t\t\t// Set the final class\n\t\t\t\t\tapplyClassChange();\n\n\t\t\t\t\t// For each animated element,\n\t\t\t\t\t// clear all css properties that were animated\n\t\t\t\t\t$.each(arguments, function () {\n\t\t\t\t\t\tvar el = this.el;\n\t\t\t\t\t\t$.each(this.diff, function (key) {\n\t\t\t\t\t\t\tel.css(key, \"\");\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\t// This is guarnteed to be there if you use jQuery.speed()\n\t\t\t\t\t// it also handles dequeuing the next anim...\n\t\t\t\t\to.complete.call(animated[0]);\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\t$.fn.extend({\n\t\t\taddClass: (function (orig) {\n\t\t\t\treturn function (classNames, speed, easing, callback) {\n\t\t\t\t\treturn speed ?\n\t\t\t\t\t\t$.effects.animateClass.call(this,\n\t\t\t\t\t\t\t{ add: classNames }, speed, easing, callback) :\n\t\t\t\t\t\torig.apply(this, arguments);\n\t\t\t\t};\n\t\t\t})($.fn.addClass),\n\n\t\t\tremoveClass: (function (orig) {\n\t\t\t\treturn function (classNames, speed, easing, callback) {\n\t\t\t\t\treturn arguments.length > 1 ?\n\t\t\t\t\t\t$.effects.animateClass.call(this,\n\t\t\t\t\t\t\t{ remove: classNames }, speed, easing, callback) :\n\t\t\t\t\t\torig.apply(this, arguments);\n\t\t\t\t};\n\t\t\t})($.fn.removeClass),\n\n\t\t\ttoggleClass: (function (orig) {\n\t\t\t\treturn function (classNames, force, speed, easing, callback) {\n\t\t\t\t\tif (typeof force === \"boolean\" || force === undefined) {\n\t\t\t\t\t\tif (!speed) {\n\n\t\t\t\t\t\t\t// Without speed parameter\n\t\t\t\t\t\t\treturn orig.apply(this, arguments);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $.effects.animateClass.call(this,\n\t\t\t\t\t\t\t\t(force ? { add: classNames } : { remove: classNames }),\n\t\t\t\t\t\t\t\tspeed, easing, callback);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Without force parameter\n\t\t\t\t\t\treturn $.effects.animateClass.call(this,\n\t\t\t\t\t\t\t{ toggle: classNames }, force, speed, easing);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t})($.fn.toggleClass),\n\n\t\t\tswitchClass: function (remove, add, speed, easing, callback) {\n\t\t\t\treturn $.effects.animateClass.call(this, {\n\t\t\t\t\tadd: add,\n\t\t\t\t\tremove: remove\n\t\t\t\t}, speed, easing, callback);\n\t\t\t}\n\t\t});\n\n\t})();\n\n\t/******************************************************************************/\n\t/*********************************** EFFECTS **********************************/\n\t/******************************************************************************/\n\n\t(function () {\n\n\t\tif ($.expr && $.expr.filters && $.expr.filters.animated) {\n\t\t\t$.expr.filters.animated = (function (orig) {\n\t\t\t\treturn function (elem) {\n\t\t\t\t\treturn !!$(elem).data(dataSpaceAnimated) || orig(elem);\n\t\t\t\t};\n\t\t\t})($.expr.filters.animated);\n\t\t}\n\n\t\tif ($.uiBackCompat !== false) {\n\t\t\t$.extend($.effects, {\n\n\t\t\t\t// Saves a set of properties in a data storage\n\t\t\t\tsave: function (element, set) {\n\t\t\t\t\tvar i = 0, length = set.length;\n\t\t\t\t\tfor (; i < length; i++) {\n\t\t\t\t\t\tif (set[i] !== null) {\n\t\t\t\t\t\t\telement.data(dataSpace + set[i], element[0].style[set[i]]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t// Restores a set of previously saved properties from a data storage\n\t\t\t\trestore: function (element, set) {\n\t\t\t\t\tvar val, i = 0, length = set.length;\n\t\t\t\t\tfor (; i < length; i++) {\n\t\t\t\t\t\tif (set[i] !== null) {\n\t\t\t\t\t\t\tval = element.data(dataSpace + set[i]);\n\t\t\t\t\t\t\telement.css(set[i], val);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tsetMode: function (el, mode) {\n\t\t\t\t\tif (mode === \"toggle\") {\n\t\t\t\t\t\tmode = el.is(\":hidden\") ? \"show\" : \"hide\";\n\t\t\t\t\t}\n\t\t\t\t\treturn mode;\n\t\t\t\t},\n\n\t\t\t\t// Wraps the element around a wrapper that copies position properties\n\t\t\t\tcreateWrapper: function (element) {\n\n\t\t\t\t\t// If the element is already wrapped, return it\n\t\t\t\t\tif (element.parent().is(\".ui-effects-wrapper\")) {\n\t\t\t\t\t\treturn element.parent();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Wrap the element\n\t\t\t\t\tvar props = {\n\t\t\t\t\t\twidth: element.outerWidth(true),\n\t\t\t\t\t\theight: element.outerHeight(true),\n\t\t\t\t\t\t\"float\": element.css(\"float\")\n\t\t\t\t\t},\n\t\t\t\t\t\twrapper = $(\"
\")\n\t\t\t\t\t\t\t.addClass(\"ui-effects-wrapper\")\n\t\t\t\t\t\t\t.css({\n\t\t\t\t\t\t\t\tfontSize: \"100%\",\n\t\t\t\t\t\t\t\tbackground: \"transparent\",\n\t\t\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\t\t\tpadding: 0\n\t\t\t\t\t\t\t}),\n\n\t\t\t\t\t\t// Store the size in case width/height are defined in % - Fixes #5245\n\t\t\t\t\t\tsize = {\n\t\t\t\t\t\t\twidth: element.width(),\n\t\t\t\t\t\t\theight: element.height()\n\t\t\t\t\t\t},\n\t\t\t\t\t\tactive = document.activeElement;\n\n\t\t\t\t\t// Support: Firefox\n\t\t\t\t\t// Firefox incorrectly exposes anonymous content\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=561664\n\t\t\t\t\ttry {\n\t\t\t\t\t\tactive.id;\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tactive = document.body;\n\t\t\t\t\t}\n\n\t\t\t\t\telement.wrap(wrapper);\n\n\t\t\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\t\t\tif (element[0] === active || $.contains(element[0], active)) {\n\t\t\t\t\t\t$(active).trigger(\"focus\");\n\t\t\t\t\t}\n\n\t\t\t\t\t// Hotfix for jQuery 1.4 since some change in wrap() seems to actually\n\t\t\t\t\t// lose the reference to the wrapped element\n\t\t\t\t\twrapper = element.parent();\n\n\t\t\t\t\t// Transfer positioning properties to the wrapper\n\t\t\t\t\tif (element.css(\"position\") === \"static\") {\n\t\t\t\t\t\twrapper.css({ position: \"relative\" });\n\t\t\t\t\t\telement.css({ position: \"relative\" });\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$.extend(props, {\n\t\t\t\t\t\t\tposition: element.css(\"position\"),\n\t\t\t\t\t\t\tzIndex: element.css(\"z-index\")\n\t\t\t\t\t\t});\n\t\t\t\t\t\t$.each([\"top\", \"left\", \"bottom\", \"right\"], function (i, pos) {\n\t\t\t\t\t\t\tprops[pos] = element.css(pos);\n\t\t\t\t\t\t\tif (isNaN(parseInt(props[pos], 10))) {\n\t\t\t\t\t\t\t\tprops[pos] = \"auto\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\telement.css({\n\t\t\t\t\t\t\tposition: \"relative\",\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\tright: \"auto\",\n\t\t\t\t\t\t\tbottom: \"auto\"\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telement.css(size);\n\n\t\t\t\t\treturn wrapper.css(props).show();\n\t\t\t\t},\n\n\t\t\t\tremoveWrapper: function (element) {\n\t\t\t\t\tvar active = document.activeElement;\n\n\t\t\t\t\tif (element.parent().is(\".ui-effects-wrapper\")) {\n\t\t\t\t\t\telement.parent().replaceWith(element);\n\n\t\t\t\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\t\t\t\tif (element[0] === active || $.contains(element[0], active)) {\n\t\t\t\t\t\t\t$(active).trigger(\"focus\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t$.extend($.effects, {\n\t\t\tversion: \"1.12.1\",\n\n\t\t\tdefine: function (name, mode, effect) {\n\t\t\t\tif (!effect) {\n\t\t\t\t\teffect = mode;\n\t\t\t\t\tmode = \"effect\";\n\t\t\t\t}\n\n\t\t\t\t$.effects.effect[name] = effect;\n\t\t\t\t$.effects.effect[name].mode = mode;\n\n\t\t\t\treturn effect;\n\t\t\t},\n\n\t\t\tscaledDimensions: function (element, percent, direction) {\n\t\t\t\tif (percent === 0) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\theight: 0,\n\t\t\t\t\t\twidth: 0,\n\t\t\t\t\t\touterHeight: 0,\n\t\t\t\t\t\touterWidth: 0\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tvar x = direction !== \"horizontal\" ? ((percent || 100) / 100) : 1,\n\t\t\t\t\ty = direction !== \"vertical\" ? ((percent || 100) / 100) : 1;\n\n\t\t\t\treturn {\n\t\t\t\t\theight: element.height() * y,\n\t\t\t\t\twidth: element.width() * x,\n\t\t\t\t\touterHeight: element.outerHeight() * y,\n\t\t\t\t\touterWidth: element.outerWidth() * x\n\t\t\t\t};\n\n\t\t\t},\n\n\t\t\tclipToBox: function (animation) {\n\t\t\t\treturn {\n\t\t\t\t\twidth: animation.clip.right - animation.clip.left,\n\t\t\t\t\theight: animation.clip.bottom - animation.clip.top,\n\t\t\t\t\tleft: animation.clip.left,\n\t\t\t\t\ttop: animation.clip.top\n\t\t\t\t};\n\t\t\t},\n\n\t\t\t// Injects recently queued functions to be first in line (after \"inprogress\")\n\t\t\tunshift: function (element, queueLength, count) {\n\t\t\t\tvar queue = element.queue();\n\n\t\t\t\tif (queueLength > 1) {\n\t\t\t\t\tqueue.splice.apply(queue,\n\t\t\t\t\t\t[1, 0].concat(queue.splice(queueLength, count)));\n\t\t\t\t}\n\t\t\t\telement.dequeue();\n\t\t\t},\n\n\t\t\tsaveStyle: function (element) {\n\t\t\t\telement.data(dataSpaceStyle, element[0].style.cssText);\n\t\t\t},\n\n\t\t\trestoreStyle: function (element) {\n\t\t\t\telement[0].style.cssText = element.data(dataSpaceStyle) || \"\";\n\t\t\t\telement.removeData(dataSpaceStyle);\n\t\t\t},\n\n\t\t\tmode: function (element, mode) {\n\t\t\t\tvar hidden = element.is(\":hidden\");\n\n\t\t\t\tif (mode === \"toggle\") {\n\t\t\t\t\tmode = hidden ? \"show\" : \"hide\";\n\t\t\t\t}\n\t\t\t\tif (hidden ? mode === \"hide\" : mode === \"show\") {\n\t\t\t\t\tmode = \"none\";\n\t\t\t\t}\n\t\t\t\treturn mode;\n\t\t\t},\n\n\t\t\t// Translates a [top,left] array into a baseline value\n\t\t\tgetBaseline: function (origin, original) {\n\t\t\t\tvar y, x;\n\n\t\t\t\tswitch (origin[0]) {\n\t\t\t\t\tcase \"top\":\n\t\t\t\t\t\ty = 0;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"middle\":\n\t\t\t\t\t\ty = 0.5;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"bottom\":\n\t\t\t\t\t\ty = 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\ty = origin[0] / original.height;\n\t\t\t\t}\n\n\t\t\t\tswitch (origin[1]) {\n\t\t\t\t\tcase \"left\":\n\t\t\t\t\t\tx = 0;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"center\":\n\t\t\t\t\t\tx = 0.5;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"right\":\n\t\t\t\t\t\tx = 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tx = origin[1] / original.width;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tx: x,\n\t\t\t\t\ty: y\n\t\t\t\t};\n\t\t\t},\n\n\t\t\t// Creates a placeholder element so that the original element can be made absolute\n\t\t\tcreatePlaceholder: function (element) {\n\t\t\t\tvar placeholder,\n\t\t\t\t\tcssPosition = element.css(\"position\"),\n\t\t\t\t\tposition = element.position();\n\n\t\t\t\t// Lock in margins first to account for form elements, which\n\t\t\t\t// will change margin if you explicitly set height\n\t\t\t\t// see: http://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380\n\t\t\t\t// Support: Safari\n\t\t\t\telement.css({\n\t\t\t\t\tmarginTop: element.css(\"marginTop\"),\n\t\t\t\t\tmarginBottom: element.css(\"marginBottom\"),\n\t\t\t\t\tmarginLeft: element.css(\"marginLeft\"),\n\t\t\t\t\tmarginRight: element.css(\"marginRight\")\n\t\t\t\t})\n\t\t\t\t\t.outerWidth(element.outerWidth())\n\t\t\t\t\t.outerHeight(element.outerHeight());\n\n\t\t\t\tif (/^(static|relative)/.test(cssPosition)) {\n\t\t\t\t\tcssPosition = \"absolute\";\n\n\t\t\t\t\tplaceholder = $(\"<\" + element[0].nodeName + \">\").insertAfter(element).css({\n\n\t\t\t\t\t\t// Convert inline to inline block to account for inline elements\n\t\t\t\t\t\t// that turn to inline block based on content (like img)\n\t\t\t\t\t\tdisplay: /^(inline|ruby)/.test(element.css(\"display\")) ?\n\t\t\t\t\t\t\t\"inline-block\" :\n\t\t\t\t\t\t\t\"block\",\n\t\t\t\t\t\tvisibility: \"hidden\",\n\n\t\t\t\t\t\t// Margins need to be set to account for margin collapse\n\t\t\t\t\t\tmarginTop: element.css(\"marginTop\"),\n\t\t\t\t\t\tmarginBottom: element.css(\"marginBottom\"),\n\t\t\t\t\t\tmarginLeft: element.css(\"marginLeft\"),\n\t\t\t\t\t\tmarginRight: element.css(\"marginRight\"),\n\t\t\t\t\t\t\"float\": element.css(\"float\")\n\t\t\t\t\t})\n\t\t\t\t\t\t.outerWidth(element.outerWidth())\n\t\t\t\t\t\t.outerHeight(element.outerHeight())\n\t\t\t\t\t\t.addClass(\"ui-effects-placeholder\");\n\n\t\t\t\t\telement.data(dataSpace + \"placeholder\", placeholder);\n\t\t\t\t}\n\n\t\t\t\telement.css({\n\t\t\t\t\tposition: cssPosition,\n\t\t\t\t\tleft: position.left,\n\t\t\t\t\ttop: position.top\n\t\t\t\t});\n\n\t\t\t\treturn placeholder;\n\t\t\t},\n\n\t\t\tremovePlaceholder: function (element) {\n\t\t\t\tvar dataKey = dataSpace + \"placeholder\",\n\t\t\t\t\tplaceholder = element.data(dataKey);\n\n\t\t\t\tif (placeholder) {\n\t\t\t\t\tplaceholder.remove();\n\t\t\t\t\telement.removeData(dataKey);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Removes a placeholder if it exists and restores\n\t\t\t// properties that were modified during placeholder creation\n\t\t\tcleanUp: function (element) {\n\t\t\t\t$.effects.restoreStyle(element);\n\t\t\t\t$.effects.removePlaceholder(element);\n\t\t\t},\n\n\t\t\tsetTransition: function (element, list, factor, value) {\n\t\t\t\tvalue = value || {};\n\t\t\t\t$.each(list, function (i, x) {\n\t\t\t\t\tvar unit = element.cssUnit(x);\n\t\t\t\t\tif (unit[0] > 0) {\n\t\t\t\t\t\tvalue[x] = unit[0] * factor + unit[1];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn value;\n\t\t\t}\n\t\t});\n\n\t\t// Return an effect options object for the given parameters:\n\t\tfunction _normalizeArguments(effect, options, speed, callback) {\n\n\t\t\t// Allow passing all options as the first parameter\n\t\t\tif ($.isPlainObject(effect)) {\n\t\t\t\toptions = effect;\n\t\t\t\teffect = effect.effect;\n\t\t\t}\n\n\t\t\t// Convert to an object\n\t\t\teffect = { effect: effect };\n\n\t\t\t// Catch (effect, null, ...)\n\t\t\tif (options == null) {\n\t\t\t\toptions = {};\n\t\t\t}\n\n\t\t\t// Catch (effect, callback)\n\t\t\tif ($.isFunction(options)) {\n\t\t\t\tcallback = options;\n\t\t\t\tspeed = null;\n\t\t\t\toptions = {};\n\t\t\t}\n\n\t\t\t// Catch (effect, speed, ?)\n\t\t\tif (typeof options === \"number\" || $.fx.speeds[options]) {\n\t\t\t\tcallback = speed;\n\t\t\t\tspeed = options;\n\t\t\t\toptions = {};\n\t\t\t}\n\n\t\t\t// Catch (effect, options, callback)\n\t\t\tif ($.isFunction(speed)) {\n\t\t\t\tcallback = speed;\n\t\t\t\tspeed = null;\n\t\t\t}\n\n\t\t\t// Add options to effect\n\t\t\tif (options) {\n\t\t\t\t$.extend(effect, options);\n\t\t\t}\n\n\t\t\tspeed = speed || options.duration;\n\t\t\teffect.duration = $.fx.off ? 0 :\n\t\t\t\ttypeof speed === \"number\" ? speed :\n\t\t\t\t\tspeed in $.fx.speeds ? $.fx.speeds[speed] :\n\t\t\t\t\t\t$.fx.speeds._default;\n\n\t\t\teffect.complete = callback || options.complete;\n\n\t\t\treturn effect;\n\t\t}\n\n\t\tfunction standardAnimationOption(option) {\n\n\t\t\t// Valid standard speeds (nothing, number, named speed)\n\t\t\tif (!option || typeof option === \"number\" || $.fx.speeds[option]) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Invalid strings - treat as \"normal\" speed\n\t\t\tif (typeof option === \"string\" && !$.effects.effect[option]) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Complete callback\n\t\t\tif ($.isFunction(option)) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Options hash (but not naming an effect)\n\t\t\tif (typeof option === \"object\" && !option.effect) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Didn't match any standard API\n\t\t\treturn false;\n\t\t}\n\n\t\t$.fn.extend({\n\t\t\teffect: function ( /* effect, options, speed, callback */) {\n\t\t\t\tvar args = _normalizeArguments.apply(this, arguments),\n\t\t\t\t\teffectMethod = $.effects.effect[args.effect],\n\t\t\t\t\tdefaultMode = effectMethod.mode,\n\t\t\t\t\tqueue = args.queue,\n\t\t\t\t\tqueueName = queue || \"fx\",\n\t\t\t\t\tcomplete = args.complete,\n\t\t\t\t\tmode = args.mode,\n\t\t\t\t\tmodes = [],\n\t\t\t\t\tprefilter = function (next) {\n\t\t\t\t\t\tvar el = $(this),\n\t\t\t\t\t\t\tnormalizedMode = $.effects.mode(el, mode) || defaultMode;\n\n\t\t\t\t\t\t// Sentinel for duck-punching the :animated psuedo-selector\n\t\t\t\t\t\tel.data(dataSpaceAnimated, true);\n\n\t\t\t\t\t\t// Save effect mode for later use,\n\t\t\t\t\t\t// we can't just call $.effects.mode again later,\n\t\t\t\t\t\t// as the .show() below destroys the initial state\n\t\t\t\t\t\tmodes.push(normalizedMode);\n\n\t\t\t\t\t\t// See $.uiBackCompat inside of run() for removal of defaultMode in 1.13\n\t\t\t\t\t\tif (defaultMode && (normalizedMode === \"show\" ||\n\t\t\t\t\t\t\t(normalizedMode === defaultMode && normalizedMode === \"hide\"))) {\n\t\t\t\t\t\t\tel.show();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!defaultMode || normalizedMode !== \"none\") {\n\t\t\t\t\t\t\t$.effects.saveStyle(el);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($.isFunction(next)) {\n\t\t\t\t\t\t\tnext();\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\tif ($.fx.off || !effectMethod) {\n\n\t\t\t\t\t// Delegate to the original method (e.g., .show()) if possible\n\t\t\t\t\tif (mode) {\n\t\t\t\t\t\treturn this[mode](args.duration, complete);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn this.each(function () {\n\t\t\t\t\t\t\tif (complete) {\n\t\t\t\t\t\t\t\tcomplete.call(this);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction run(next) {\n\t\t\t\t\tvar elem = $(this);\n\n\t\t\t\t\tfunction cleanup() {\n\t\t\t\t\t\telem.removeData(dataSpaceAnimated);\n\n\t\t\t\t\t\t$.effects.cleanUp(elem);\n\n\t\t\t\t\t\tif (args.mode === \"hide\") {\n\t\t\t\t\t\t\telem.hide();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdone();\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction done() {\n\t\t\t\t\t\tif ($.isFunction(complete)) {\n\t\t\t\t\t\t\tcomplete.call(elem[0]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($.isFunction(next)) {\n\t\t\t\t\t\t\tnext();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Override mode option on a per element basis,\n\t\t\t\t\t// as toggle can be either show or hide depending on element state\n\t\t\t\t\targs.mode = modes.shift();\n\n\t\t\t\t\tif ($.uiBackCompat !== false && !defaultMode) {\n\t\t\t\t\t\tif (elem.is(\":hidden\") ? mode === \"hide\" : mode === \"show\") {\n\n\t\t\t\t\t\t\t// Call the core method to track \"olddisplay\" properly\n\t\t\t\t\t\t\telem[mode]();\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\teffectMethod.call(elem[0], args, done);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (args.mode === \"none\") {\n\n\t\t\t\t\t\t\t// Call the core method to track \"olddisplay\" properly\n\t\t\t\t\t\t\telem[mode]();\n\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\teffectMethod.call(elem[0], args, cleanup);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Run prefilter on all elements first to ensure that\n\t\t\t\t// any showing or hiding happens before placeholder creation,\n\t\t\t\t// which ensures that any layout changes are correctly captured.\n\t\t\t\treturn queue === false ?\n\t\t\t\t\tthis.each(prefilter).each(run) :\n\t\t\t\t\tthis.queue(queueName, prefilter).queue(queueName, run);\n\t\t\t},\n\n\t\t\tshow: (function (orig) {\n\t\t\t\treturn function (option) {\n\t\t\t\t\tif (standardAnimationOption(option)) {\n\t\t\t\t\t\treturn orig.apply(this, arguments);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar args = _normalizeArguments.apply(this, arguments);\n\t\t\t\t\t\targs.mode = \"show\";\n\t\t\t\t\t\treturn this.effect.call(this, args);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t})($.fn.show),\n\n\t\t\thide: (function (orig) {\n\t\t\t\treturn function (option) {\n\t\t\t\t\tif (standardAnimationOption(option)) {\n\t\t\t\t\t\treturn orig.apply(this, arguments);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar args = _normalizeArguments.apply(this, arguments);\n\t\t\t\t\t\targs.mode = \"hide\";\n\t\t\t\t\t\treturn this.effect.call(this, args);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t})($.fn.hide),\n\n\t\t\ttoggle: (function (orig) {\n\t\t\t\treturn function (option) {\n\t\t\t\t\tif (standardAnimationOption(option) || typeof option === \"boolean\") {\n\t\t\t\t\t\treturn orig.apply(this, arguments);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar args = _normalizeArguments.apply(this, arguments);\n\t\t\t\t\t\targs.mode = \"toggle\";\n\t\t\t\t\t\treturn this.effect.call(this, args);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t})($.fn.toggle),\n\n\t\t\tcssUnit: function (key) {\n\t\t\t\tvar style = this.css(key),\n\t\t\t\t\tval = [];\n\n\t\t\t\t$.each([\"em\", \"px\", \"%\", \"pt\"], function (i, unit) {\n\t\t\t\t\tif (style.indexOf(unit) > 0) {\n\t\t\t\t\t\tval = [parseFloat(style), unit];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn val;\n\t\t\t},\n\n\t\t\tcssClip: function (clipObj) {\n\t\t\t\tif (clipObj) {\n\t\t\t\t\treturn this.css(\"clip\", \"rect(\" + clipObj.top + \"px \" + clipObj.right + \"px \" +\n\t\t\t\t\t\tclipObj.bottom + \"px \" + clipObj.left + \"px)\");\n\t\t\t\t}\n\t\t\t\treturn parseClip(this.css(\"clip\"), this);\n\t\t\t},\n\n\t\t\ttransfer: function (options, done) {\n\t\t\t\tvar element = $(this),\n\t\t\t\t\ttarget = $(options.to),\n\t\t\t\t\ttargetFixed = target.css(\"position\") === \"fixed\",\n\t\t\t\t\tbody = $(\"body\"),\n\t\t\t\t\tfixTop = targetFixed ? body.scrollTop() : 0,\n\t\t\t\t\tfixLeft = targetFixed ? body.scrollLeft() : 0,\n\t\t\t\t\tendPosition = target.offset(),\n\t\t\t\t\tanimation = {\n\t\t\t\t\t\ttop: endPosition.top - fixTop,\n\t\t\t\t\t\tleft: endPosition.left - fixLeft,\n\t\t\t\t\t\theight: target.innerHeight(),\n\t\t\t\t\t\twidth: target.innerWidth()\n\t\t\t\t\t},\n\t\t\t\t\tstartPosition = element.offset(),\n\t\t\t\t\ttransfer = $(\"\")\n\t\t\t\t\t\t.appendTo(\"body\")\n\t\t\t\t\t\t.addClass(options.className)\n\t\t\t\t\t\t.css({\n\t\t\t\t\t\t\ttop: startPosition.top - fixTop,\n\t\t\t\t\t\t\tleft: startPosition.left - fixLeft,\n\t\t\t\t\t\t\theight: element.innerHeight(),\n\t\t\t\t\t\t\twidth: element.innerWidth(),\n\t\t\t\t\t\t\tposition: targetFixed ? \"fixed\" : \"absolute\"\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.animate(animation, options.duration, options.easing, function () {\n\t\t\t\t\t\t\ttransfer.remove();\n\t\t\t\t\t\t\tif ($.isFunction(done)) {\n\t\t\t\t\t\t\t\tdone();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tfunction parseClip(str, element) {\n\t\t\tvar outerWidth = element.outerWidth(),\n\t\t\t\touterHeight = element.outerHeight(),\n\t\t\t\tclipRegex = /^rect\\((-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto)\\)$/,\n\t\t\t\tvalues = clipRegex.exec(str) || [\"\", 0, outerWidth, outerHeight, 0];\n\n\t\t\treturn {\n\t\t\t\ttop: parseFloat(values[1]) || 0,\n\t\t\t\tright: values[2] === \"auto\" ? outerWidth : parseFloat(values[2]),\n\t\t\t\tbottom: values[3] === \"auto\" ? outerHeight : parseFloat(values[3]),\n\t\t\t\tleft: parseFloat(values[4]) || 0\n\t\t\t};\n\t\t}\n\n\t\t$.fx.step.clip = function (fx) {\n\t\t\tif (!fx.clipInit) {\n\t\t\t\tfx.start = $(fx.elem).cssClip();\n\t\t\t\tif (typeof fx.end === \"string\") {\n\t\t\t\t\tfx.end = parseClip(fx.end, fx.elem);\n\t\t\t\t}\n\t\t\t\tfx.clipInit = true;\n\t\t\t}\n\n\t\t\t$(fx.elem).cssClip({\n\t\t\t\ttop: fx.pos * (fx.end.top - fx.start.top) + fx.start.top,\n\t\t\t\tright: fx.pos * (fx.end.right - fx.start.right) + fx.start.right,\n\t\t\t\tbottom: fx.pos * (fx.end.bottom - fx.start.bottom) + fx.start.bottom,\n\t\t\t\tleft: fx.pos * (fx.end.left - fx.start.left) + fx.start.left\n\t\t\t});\n\t\t};\n\n\t})();\n\n\t/******************************************************************************/\n\t/*********************************** EASING ***********************************/\n\t/******************************************************************************/\n\n\t(function () {\n\n\t\t// Based on easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\n\t\tvar baseEasings = {};\n\n\t\t$.each([\"Quad\", \"Cubic\", \"Quart\", \"Quint\", \"Expo\"], function (i, name) {\n\t\t\tbaseEasings[name] = function (p) {\n\t\t\t\treturn Math.pow(p, i + 2);\n\t\t\t};\n\t\t});\n\n\t\t$.extend(baseEasings, {\n\t\t\tSine: function (p) {\n\t\t\t\treturn 1 - Math.cos(p * Math.PI / 2);\n\t\t\t},\n\t\t\tCirc: function (p) {\n\t\t\t\treturn 1 - Math.sqrt(1 - p * p);\n\t\t\t},\n\t\t\tElastic: function (p) {\n\t\t\t\treturn p === 0 || p === 1 ? p :\n\t\t\t\t\t-Math.pow(2, 8 * (p - 1)) * Math.sin(((p - 1) * 80 - 7.5) * Math.PI / 15);\n\t\t\t},\n\t\t\tBack: function (p) {\n\t\t\t\treturn p * p * (3 * p - 2);\n\t\t\t},\n\t\t\tBounce: function (p) {\n\t\t\t\tvar pow2,\n\t\t\t\t\tbounce = 4;\n\n\t\t\t\twhile (p < ((pow2 = Math.pow(2, --bounce)) - 1) / 11) { }\n\t\t\t\treturn 1 / Math.pow(4, 3 - bounce) - 7.5625 * Math.pow((pow2 * 3 - 2) / 22 - p, 2);\n\t\t\t}\n\t\t});\n\n\t\t$.each(baseEasings, function (name, easeIn) {\n\t\t\t$.easing[\"easeIn\" + name] = easeIn;\n\t\t\t$.easing[\"easeOut\" + name] = function (p) {\n\t\t\t\treturn 1 - easeIn(1 - p);\n\t\t\t};\n\t\t\t$.easing[\"easeInOut\" + name] = function (p) {\n\t\t\t\treturn p < 0.5 ?\n\t\t\t\t\teaseIn(p * 2) / 2 :\n\t\t\t\t\t1 - easeIn(p * -2 + 2) / 2;\n\t\t\t};\n\t\t});\n\n\t})();\n\n\tvar effect = $.effects;\n\n\n\t/*!\n\t * jQuery UI Effects Blind 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Blind Effect\n\t//>>group: Effects\n\t//>>description: Blinds the element.\n\t//>>docs: http://api.jqueryui.com/blind-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectBlind = $.effects.define(\"blind\", \"hide\", function (options, done) {\n\t\tvar map = {\n\t\t\tup: [\"bottom\", \"top\"],\n\t\t\tvertical: [\"bottom\", \"top\"],\n\t\t\tdown: [\"top\", \"bottom\"],\n\t\t\tleft: [\"right\", \"left\"],\n\t\t\thorizontal: [\"right\", \"left\"],\n\t\t\tright: [\"left\", \"right\"]\n\t\t},\n\t\t\telement = $(this),\n\t\t\tdirection = options.direction || \"up\",\n\t\t\tstart = element.cssClip(),\n\t\t\tanimate = { clip: $.extend({}, start) },\n\t\t\tplaceholder = $.effects.createPlaceholder(element);\n\n\t\tanimate.clip[map[direction][0]] = animate.clip[map[direction][1]];\n\n\t\tif (options.mode === \"show\") {\n\t\t\telement.cssClip(animate.clip);\n\t\t\tif (placeholder) {\n\t\t\t\tplaceholder.css($.effects.clipToBox(animate));\n\t\t\t}\n\n\t\t\tanimate.clip = start;\n\t\t}\n\n\t\tif (placeholder) {\n\t\t\tplaceholder.animate($.effects.clipToBox(animate), options.duration, options.easing);\n\t\t}\n\n\t\telement.animate(animate, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: done\n\t\t});\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Bounce 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Bounce Effect\n\t//>>group: Effects\n\t//>>description: Bounces an element horizontally or vertically n times.\n\t//>>docs: http://api.jqueryui.com/bounce-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectBounce = $.effects.define(\"bounce\", function (options, done) {\n\t\tvar upAnim, downAnim, refValue,\n\t\t\telement = $(this),\n\n\t\t\t// Defaults:\n\t\t\tmode = options.mode,\n\t\t\thide = mode === \"hide\",\n\t\t\tshow = mode === \"show\",\n\t\t\tdirection = options.direction || \"up\",\n\t\t\tdistance = options.distance,\n\t\t\ttimes = options.times || 5,\n\n\t\t\t// Number of internal animations\n\t\t\tanims = times * 2 + (show || hide ? 1 : 0),\n\t\t\tspeed = options.duration / anims,\n\t\t\teasing = options.easing,\n\n\t\t\t// Utility:\n\t\t\tref = (direction === \"up\" || direction === \"down\") ? \"top\" : \"left\",\n\t\t\tmotion = (direction === \"up\" || direction === \"left\"),\n\t\t\ti = 0,\n\n\t\t\tqueuelen = element.queue().length;\n\n\t\t$.effects.createPlaceholder(element);\n\n\t\trefValue = element.css(ref);\n\n\t\t// Default distance for the BIGGEST bounce is the outer Distance / 3\n\t\tif (!distance) {\n\t\t\tdistance = element[ref === \"top\" ? \"outerHeight\" : \"outerWidth\"]() / 3;\n\t\t}\n\n\t\tif (show) {\n\t\t\tdownAnim = { opacity: 1 };\n\t\t\tdownAnim[ref] = refValue;\n\n\t\t\t// If we are showing, force opacity 0 and set the initial position\n\t\t\t// then do the \"first\" animation\n\t\t\telement\n\t\t\t\t.css(\"opacity\", 0)\n\t\t\t\t.css(ref, motion ? -distance * 2 : distance * 2)\n\t\t\t\t.animate(downAnim, speed, easing);\n\t\t}\n\n\t\t// Start at the smallest distance if we are hiding\n\t\tif (hide) {\n\t\t\tdistance = distance / Math.pow(2, times - 1);\n\t\t}\n\n\t\tdownAnim = {};\n\t\tdownAnim[ref] = refValue;\n\n\t\t// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here\n\t\tfor (; i < times; i++) {\n\t\t\tupAnim = {};\n\t\t\tupAnim[ref] = (motion ? \"-=\" : \"+=\") + distance;\n\n\t\t\telement\n\t\t\t\t.animate(upAnim, speed, easing)\n\t\t\t\t.animate(downAnim, speed, easing);\n\n\t\t\tdistance = hide ? distance * 2 : distance / 2;\n\t\t}\n\n\t\t// Last Bounce when Hiding\n\t\tif (hide) {\n\t\t\tupAnim = { opacity: 0 };\n\t\t\tupAnim[ref] = (motion ? \"-=\" : \"+=\") + distance;\n\n\t\t\telement.animate(upAnim, speed, easing);\n\t\t}\n\n\t\telement.queue(done);\n\n\t\t$.effects.unshift(element, queuelen, anims + 1);\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Clip 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Clip Effect\n\t//>>group: Effects\n\t//>>description: Clips the element on and off like an old TV.\n\t//>>docs: http://api.jqueryui.com/clip-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectClip = $.effects.define(\"clip\", \"hide\", function (options, done) {\n\t\tvar start,\n\t\t\tanimate = {},\n\t\t\telement = $(this),\n\t\t\tdirection = options.direction || \"vertical\",\n\t\t\tboth = direction === \"both\",\n\t\t\thorizontal = both || direction === \"horizontal\",\n\t\t\tvertical = both || direction === \"vertical\";\n\n\t\tstart = element.cssClip();\n\t\tanimate.clip = {\n\t\t\ttop: vertical ? (start.bottom - start.top) / 2 : start.top,\n\t\t\tright: horizontal ? (start.right - start.left) / 2 : start.right,\n\t\t\tbottom: vertical ? (start.bottom - start.top) / 2 : start.bottom,\n\t\t\tleft: horizontal ? (start.right - start.left) / 2 : start.left\n\t\t};\n\n\t\t$.effects.createPlaceholder(element);\n\n\t\tif (options.mode === \"show\") {\n\t\t\telement.cssClip(animate.clip);\n\t\t\tanimate.clip = start;\n\t\t}\n\n\t\telement.animate(animate, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: done\n\t\t});\n\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Drop 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Drop Effect\n\t//>>group: Effects\n\t//>>description: Moves an element in one direction and hides it at the same time.\n\t//>>docs: http://api.jqueryui.com/drop-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectDrop = $.effects.define(\"drop\", \"hide\", function (options, done) {\n\n\t\tvar distance,\n\t\t\telement = $(this),\n\t\t\tmode = options.mode,\n\t\t\tshow = mode === \"show\",\n\t\t\tdirection = options.direction || \"left\",\n\t\t\tref = (direction === \"up\" || direction === \"down\") ? \"top\" : \"left\",\n\t\t\tmotion = (direction === \"up\" || direction === \"left\") ? \"-=\" : \"+=\",\n\t\t\toppositeMotion = (motion === \"+=\") ? \"-=\" : \"+=\",\n\t\t\tanimation = {\n\t\t\t\topacity: 0\n\t\t\t};\n\n\t\t$.effects.createPlaceholder(element);\n\n\t\tdistance = options.distance ||\n\t\t\telement[ref === \"top\" ? \"outerHeight\" : \"outerWidth\"](true) / 2;\n\n\t\tanimation[ref] = motion + distance;\n\n\t\tif (show) {\n\t\t\telement.css(animation);\n\n\t\t\tanimation[ref] = oppositeMotion + distance;\n\t\t\tanimation.opacity = 1;\n\t\t}\n\n\t\t// Animate\n\t\telement.animate(animation, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: done\n\t\t});\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Explode 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Explode Effect\n\t//>>group: Effects\n\t// jscs:disable maximumLineLength\n\t//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness.\n\t// jscs:enable maximumLineLength\n\t//>>docs: http://api.jqueryui.com/explode-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectExplode = $.effects.define(\"explode\", \"hide\", function (options, done) {\n\n\t\tvar i, j, left, top, mx, my,\n\t\t\trows = options.pieces ? Math.round(Math.sqrt(options.pieces)) : 3,\n\t\t\tcells = rows,\n\t\t\telement = $(this),\n\t\t\tmode = options.mode,\n\t\t\tshow = mode === \"show\",\n\n\t\t\t// Show and then visibility:hidden the element before calculating offset\n\t\t\toffset = element.show().css(\"visibility\", \"hidden\").offset(),\n\n\t\t\t// Width and height of a piece\n\t\t\twidth = Math.ceil(element.outerWidth() / cells),\n\t\t\theight = Math.ceil(element.outerHeight() / rows),\n\t\t\tpieces = [];\n\n\t\t// Children animate complete:\n\t\tfunction childComplete() {\n\t\t\tpieces.push(this);\n\t\t\tif (pieces.length === rows * cells) {\n\t\t\t\tanimComplete();\n\t\t\t}\n\t\t}\n\n\t\t// Clone the element for each row and cell.\n\t\tfor (i = 0; i < rows; i++) { // ===>\n\t\t\ttop = offset.top + i * height;\n\t\t\tmy = i - (rows - 1) / 2;\n\n\t\t\tfor (j = 0; j < cells; j++) { // |||\n\t\t\t\tleft = offset.left + j * width;\n\t\t\t\tmx = j - (cells - 1) / 2;\n\n\t\t\t\t// Create a clone of the now hidden main element that will be absolute positioned\n\t\t\t\t// within a wrapper div off the -left and -top equal to size of our pieces\n\t\t\t\telement\n\t\t\t\t\t.clone()\n\t\t\t\t\t.appendTo(\"body\")\n\t\t\t\t\t.wrap(\"\")\n\t\t\t\t\t.css({\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\tvisibility: \"visible\",\n\t\t\t\t\t\tleft: -j * width,\n\t\t\t\t\t\ttop: -i * height\n\t\t\t\t\t})\n\n\t\t\t\t\t// Select the wrapper - make it overflow: hidden and absolute positioned based on\n\t\t\t\t\t// where the original was located +left and +top equal to the size of pieces\n\t\t\t\t\t.parent()\n\t\t\t\t\t.addClass(\"ui-effects-explode\")\n\t\t\t\t\t.css({\n\t\t\t\t\t\tposition: \"absolute\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: height,\n\t\t\t\t\t\tleft: left + (show ? mx * width : 0),\n\t\t\t\t\t\ttop: top + (show ? my * height : 0),\n\t\t\t\t\t\topacity: show ? 0 : 1\n\t\t\t\t\t})\n\t\t\t\t\t.animate({\n\t\t\t\t\t\tleft: left + (show ? 0 : mx * width),\n\t\t\t\t\t\ttop: top + (show ? 0 : my * height),\n\t\t\t\t\t\topacity: show ? 1 : 0\n\t\t\t\t\t}, options.duration || 500, options.easing, childComplete);\n\t\t\t}\n\t\t}\n\n\t\tfunction animComplete() {\n\t\t\telement.css({\n\t\t\t\tvisibility: \"visible\"\n\t\t\t});\n\t\t\t$(pieces).remove();\n\t\t\tdone();\n\t\t}\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Fade 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Fade Effect\n\t//>>group: Effects\n\t//>>description: Fades the element.\n\t//>>docs: http://api.jqueryui.com/fade-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectFade = $.effects.define(\"fade\", \"toggle\", function (options, done) {\n\t\tvar show = options.mode === \"show\";\n\n\t\t$(this)\n\t\t\t.css(\"opacity\", show ? 0 : 1)\n\t\t\t.animate({\n\t\t\t\topacity: show ? 1 : 0\n\t\t\t}, {\n\t\t\t\t\tqueue: false,\n\t\t\t\t\tduration: options.duration,\n\t\t\t\t\teasing: options.easing,\n\t\t\t\t\tcomplete: done\n\t\t\t\t});\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Fold 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Fold Effect\n\t//>>group: Effects\n\t//>>description: Folds an element first horizontally and then vertically.\n\t//>>docs: http://api.jqueryui.com/fold-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectFold = $.effects.define(\"fold\", \"hide\", function (options, done) {\n\n\t\t// Create element\n\t\tvar element = $(this),\n\t\t\tmode = options.mode,\n\t\t\tshow = mode === \"show\",\n\t\t\thide = mode === \"hide\",\n\t\t\tsize = options.size || 15,\n\t\t\tpercent = /([0-9]+)%/.exec(size),\n\t\t\thorizFirst = !!options.horizFirst,\n\t\t\tref = horizFirst ? [\"right\", \"bottom\"] : [\"bottom\", \"right\"],\n\t\t\tduration = options.duration / 2,\n\n\t\t\tplaceholder = $.effects.createPlaceholder(element),\n\n\t\t\tstart = element.cssClip(),\n\t\t\tanimation1 = { clip: $.extend({}, start) },\n\t\t\tanimation2 = { clip: $.extend({}, start) },\n\n\t\t\tdistance = [start[ref[0]], start[ref[1]]],\n\n\t\t\tqueuelen = element.queue().length;\n\n\t\tif (percent) {\n\t\t\tsize = parseInt(percent[1], 10) / 100 * distance[hide ? 0 : 1];\n\t\t}\n\t\tanimation1.clip[ref[0]] = size;\n\t\tanimation2.clip[ref[0]] = size;\n\t\tanimation2.clip[ref[1]] = 0;\n\n\t\tif (show) {\n\t\t\telement.cssClip(animation2.clip);\n\t\t\tif (placeholder) {\n\t\t\t\tplaceholder.css($.effects.clipToBox(animation2));\n\t\t\t}\n\n\t\t\tanimation2.clip = start;\n\t\t}\n\n\t\t// Animate\n\t\telement\n\t\t\t.queue(function (next) {\n\t\t\t\tif (placeholder) {\n\t\t\t\t\tplaceholder\n\t\t\t\t\t\t.animate($.effects.clipToBox(animation1), duration, options.easing)\n\t\t\t\t\t\t.animate($.effects.clipToBox(animation2), duration, options.easing);\n\t\t\t\t}\n\n\t\t\t\tnext();\n\t\t\t})\n\t\t\t.animate(animation1, duration, options.easing)\n\t\t\t.animate(animation2, duration, options.easing)\n\t\t\t.queue(done);\n\n\t\t$.effects.unshift(element, queuelen, 4);\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Highlight 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Highlight Effect\n\t//>>group: Effects\n\t//>>description: Highlights the background of an element in a defined color for a custom duration.\n\t//>>docs: http://api.jqueryui.com/highlight-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectHighlight = $.effects.define(\"highlight\", \"show\", function (options, done) {\n\t\tvar element = $(this),\n\t\t\tanimation = {\n\t\t\t\tbackgroundColor: element.css(\"backgroundColor\")\n\t\t\t};\n\n\t\tif (options.mode === \"hide\") {\n\t\t\tanimation.opacity = 0;\n\t\t}\n\n\t\t$.effects.saveStyle(element);\n\n\t\telement\n\t\t\t.css({\n\t\t\t\tbackgroundImage: \"none\",\n\t\t\t\tbackgroundColor: options.color || \"#ffff99\"\n\t\t\t})\n\t\t\t.animate(animation, {\n\t\t\t\tqueue: false,\n\t\t\t\tduration: options.duration,\n\t\t\t\teasing: options.easing,\n\t\t\t\tcomplete: done\n\t\t\t});\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Size 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Size Effect\n\t//>>group: Effects\n\t//>>description: Resize an element to a specified width and height.\n\t//>>docs: http://api.jqueryui.com/size-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectSize = $.effects.define(\"size\", function (options, done) {\n\n\t\t// Create element\n\t\tvar baseline, factor, temp,\n\t\t\telement = $(this),\n\n\t\t\t// Copy for children\n\t\t\tcProps = [\"fontSize\"],\n\t\t\tvProps = [\"borderTopWidth\", \"borderBottomWidth\", \"paddingTop\", \"paddingBottom\"],\n\t\t\thProps = [\"borderLeftWidth\", \"borderRightWidth\", \"paddingLeft\", \"paddingRight\"],\n\n\t\t\t// Set options\n\t\t\tmode = options.mode,\n\t\t\trestore = mode !== \"effect\",\n\t\t\tscale = options.scale || \"both\",\n\t\t\torigin = options.origin || [\"middle\", \"center\"],\n\t\t\tposition = element.css(\"position\"),\n\t\t\tpos = element.position(),\n\t\t\toriginal = $.effects.scaledDimensions(element),\n\t\t\tfrom = options.from || original,\n\t\t\tto = options.to || $.effects.scaledDimensions(element, 0);\n\n\t\t$.effects.createPlaceholder(element);\n\n\t\tif (mode === \"show\") {\n\t\t\ttemp = from;\n\t\t\tfrom = to;\n\t\t\tto = temp;\n\t\t}\n\n\t\t// Set scaling factor\n\t\tfactor = {\n\t\t\tfrom: {\n\t\t\t\ty: from.height / original.height,\n\t\t\t\tx: from.width / original.width\n\t\t\t},\n\t\t\tto: {\n\t\t\t\ty: to.height / original.height,\n\t\t\t\tx: to.width / original.width\n\t\t\t}\n\t\t};\n\n\t\t// Scale the css box\n\t\tif (scale === \"box\" || scale === \"both\") {\n\n\t\t\t// Vertical props scaling\n\t\t\tif (factor.from.y !== factor.to.y) {\n\t\t\t\tfrom = $.effects.setTransition(element, vProps, factor.from.y, from);\n\t\t\t\tto = $.effects.setTransition(element, vProps, factor.to.y, to);\n\t\t\t}\n\n\t\t\t// Horizontal props scaling\n\t\t\tif (factor.from.x !== factor.to.x) {\n\t\t\t\tfrom = $.effects.setTransition(element, hProps, factor.from.x, from);\n\t\t\t\tto = $.effects.setTransition(element, hProps, factor.to.x, to);\n\t\t\t}\n\t\t}\n\n\t\t// Scale the content\n\t\tif (scale === \"content\" || scale === \"both\") {\n\n\t\t\t// Vertical props scaling\n\t\t\tif (factor.from.y !== factor.to.y) {\n\t\t\t\tfrom = $.effects.setTransition(element, cProps, factor.from.y, from);\n\t\t\t\tto = $.effects.setTransition(element, cProps, factor.to.y, to);\n\t\t\t}\n\t\t}\n\n\t\t// Adjust the position properties based on the provided origin points\n\t\tif (origin) {\n\t\t\tbaseline = $.effects.getBaseline(origin, original);\n\t\t\tfrom.top = (original.outerHeight - from.outerHeight) * baseline.y + pos.top;\n\t\t\tfrom.left = (original.outerWidth - from.outerWidth) * baseline.x + pos.left;\n\t\t\tto.top = (original.outerHeight - to.outerHeight) * baseline.y + pos.top;\n\t\t\tto.left = (original.outerWidth - to.outerWidth) * baseline.x + pos.left;\n\t\t}\n\t\telement.css(from);\n\n\t\t// Animate the children if desired\n\t\tif (scale === \"content\" || scale === \"both\") {\n\n\t\t\tvProps = vProps.concat([\"marginTop\", \"marginBottom\"]).concat(cProps);\n\t\t\thProps = hProps.concat([\"marginLeft\", \"marginRight\"]);\n\n\t\t\t// Only animate children with width attributes specified\n\t\t\t// TODO: is this right? should we include anything with css width specified as well\n\t\t\telement.find(\"*[width]\").each(function () {\n\t\t\t\tvar child = $(this),\n\t\t\t\t\tchildOriginal = $.effects.scaledDimensions(child),\n\t\t\t\t\tchildFrom = {\n\t\t\t\t\t\theight: childOriginal.height * factor.from.y,\n\t\t\t\t\t\twidth: childOriginal.width * factor.from.x,\n\t\t\t\t\t\touterHeight: childOriginal.outerHeight * factor.from.y,\n\t\t\t\t\t\touterWidth: childOriginal.outerWidth * factor.from.x\n\t\t\t\t\t},\n\t\t\t\t\tchildTo = {\n\t\t\t\t\t\theight: childOriginal.height * factor.to.y,\n\t\t\t\t\t\twidth: childOriginal.width * factor.to.x,\n\t\t\t\t\t\touterHeight: childOriginal.height * factor.to.y,\n\t\t\t\t\t\touterWidth: childOriginal.width * factor.to.x\n\t\t\t\t\t};\n\n\t\t\t\t// Vertical props scaling\n\t\t\t\tif (factor.from.y !== factor.to.y) {\n\t\t\t\t\tchildFrom = $.effects.setTransition(child, vProps, factor.from.y, childFrom);\n\t\t\t\t\tchildTo = $.effects.setTransition(child, vProps, factor.to.y, childTo);\n\t\t\t\t}\n\n\t\t\t\t// Horizontal props scaling\n\t\t\t\tif (factor.from.x !== factor.to.x) {\n\t\t\t\t\tchildFrom = $.effects.setTransition(child, hProps, factor.from.x, childFrom);\n\t\t\t\t\tchildTo = $.effects.setTransition(child, hProps, factor.to.x, childTo);\n\t\t\t\t}\n\n\t\t\t\tif (restore) {\n\t\t\t\t\t$.effects.saveStyle(child);\n\t\t\t\t}\n\n\t\t\t\t// Animate children\n\t\t\t\tchild.css(childFrom);\n\t\t\t\tchild.animate(childTo, options.duration, options.easing, function () {\n\n\t\t\t\t\t// Restore children\n\t\t\t\t\tif (restore) {\n\t\t\t\t\t\t$.effects.restoreStyle(child);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\t// Animate\n\t\telement.animate(to, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: function () {\n\n\t\t\t\tvar offset = element.offset();\n\n\t\t\t\tif (to.opacity === 0) {\n\t\t\t\t\telement.css(\"opacity\", from.opacity);\n\t\t\t\t}\n\n\t\t\t\tif (!restore) {\n\t\t\t\t\telement\n\t\t\t\t\t\t.css(\"position\", position === \"static\" ? \"relative\" : position)\n\t\t\t\t\t\t.offset(offset);\n\n\t\t\t\t\t// Need to save style here so that automatic style restoration\n\t\t\t\t\t// doesn't restore to the original styles from before the animation.\n\t\t\t\t\t$.effects.saveStyle(element);\n\t\t\t\t}\n\n\t\t\t\tdone();\n\t\t\t}\n\t\t});\n\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Scale 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Scale Effect\n\t//>>group: Effects\n\t//>>description: Grows or shrinks an element and its content.\n\t//>>docs: http://api.jqueryui.com/scale-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectScale = $.effects.define(\"scale\", function (options, done) {\n\n\t\t// Create element\n\t\tvar el = $(this),\n\t\t\tmode = options.mode,\n\t\t\tpercent = parseInt(options.percent, 10) ||\n\t\t\t\t(parseInt(options.percent, 10) === 0 ? 0 : (mode !== \"effect\" ? 0 : 100)),\n\n\t\t\tnewOptions = $.extend(true, {\n\t\t\t\tfrom: $.effects.scaledDimensions(el),\n\t\t\t\tto: $.effects.scaledDimensions(el, percent, options.direction || \"both\"),\n\t\t\t\torigin: options.origin || [\"middle\", \"center\"]\n\t\t\t}, options);\n\n\t\t// Fade option to support puff\n\t\tif (options.fade) {\n\t\t\tnewOptions.from.opacity = 1;\n\t\t\tnewOptions.to.opacity = 0;\n\t\t}\n\n\t\t$.effects.effect.size.call(this, newOptions, done);\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Puff 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Puff Effect\n\t//>>group: Effects\n\t//>>description: Creates a puff effect by scaling the element up and hiding it at the same time.\n\t//>>docs: http://api.jqueryui.com/puff-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectPuff = $.effects.define(\"puff\", \"hide\", function (options, done) {\n\t\tvar newOptions = $.extend(true, {}, options, {\n\t\t\tfade: true,\n\t\t\tpercent: parseInt(options.percent, 10) || 150\n\t\t});\n\n\t\t$.effects.effect.scale.call(this, newOptions, done);\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Pulsate 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Pulsate Effect\n\t//>>group: Effects\n\t//>>description: Pulsates an element n times by changing the opacity to zero and back.\n\t//>>docs: http://api.jqueryui.com/pulsate-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectPulsate = $.effects.define(\"pulsate\", \"show\", function (options, done) {\n\t\tvar element = $(this),\n\t\t\tmode = options.mode,\n\t\t\tshow = mode === \"show\",\n\t\t\thide = mode === \"hide\",\n\t\t\tshowhide = show || hide,\n\n\t\t\t// Showing or hiding leaves off the \"last\" animation\n\t\t\tanims = ((options.times || 5) * 2) + (showhide ? 1 : 0),\n\t\t\tduration = options.duration / anims,\n\t\t\tanimateTo = 0,\n\t\t\ti = 1,\n\t\t\tqueuelen = element.queue().length;\n\n\t\tif (show || !element.is(\":visible\")) {\n\t\t\telement.css(\"opacity\", 0).show();\n\t\t\tanimateTo = 1;\n\t\t}\n\n\t\t// Anims - 1 opacity \"toggles\"\n\t\tfor (; i < anims; i++) {\n\t\t\telement.animate({ opacity: animateTo }, duration, options.easing);\n\t\t\tanimateTo = 1 - animateTo;\n\t\t}\n\n\t\telement.animate({ opacity: animateTo }, duration, options.easing);\n\n\t\telement.queue(done);\n\n\t\t$.effects.unshift(element, queuelen, anims + 1);\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Shake 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Shake Effect\n\t//>>group: Effects\n\t//>>description: Shakes an element horizontally or vertically n times.\n\t//>>docs: http://api.jqueryui.com/shake-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectShake = $.effects.define(\"shake\", function (options, done) {\n\n\t\tvar i = 1,\n\t\t\telement = $(this),\n\t\t\tdirection = options.direction || \"left\",\n\t\t\tdistance = options.distance || 20,\n\t\t\ttimes = options.times || 3,\n\t\t\tanims = times * 2 + 1,\n\t\t\tspeed = Math.round(options.duration / anims),\n\t\t\tref = (direction === \"up\" || direction === \"down\") ? \"top\" : \"left\",\n\t\t\tpositiveMotion = (direction === \"up\" || direction === \"left\"),\n\t\t\tanimation = {},\n\t\t\tanimation1 = {},\n\t\t\tanimation2 = {},\n\n\t\t\tqueuelen = element.queue().length;\n\n\t\t$.effects.createPlaceholder(element);\n\n\t\t// Animation\n\t\tanimation[ref] = (positiveMotion ? \"-=\" : \"+=\") + distance;\n\t\tanimation1[ref] = (positiveMotion ? \"+=\" : \"-=\") + distance * 2;\n\t\tanimation2[ref] = (positiveMotion ? \"-=\" : \"+=\") + distance * 2;\n\n\t\t// Animate\n\t\telement.animate(animation, speed, options.easing);\n\n\t\t// Shakes\n\t\tfor (; i < times; i++) {\n\t\t\telement\n\t\t\t\t.animate(animation1, speed, options.easing)\n\t\t\t\t.animate(animation2, speed, options.easing);\n\t\t}\n\n\t\telement\n\t\t\t.animate(animation1, speed, options.easing)\n\t\t\t.animate(animation, speed / 2, options.easing)\n\t\t\t.queue(done);\n\n\t\t$.effects.unshift(element, queuelen, anims + 1);\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Slide 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Slide Effect\n\t//>>group: Effects\n\t//>>description: Slides an element in and out of the viewport.\n\t//>>docs: http://api.jqueryui.com/slide-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effectsEffectSlide = $.effects.define(\"slide\", \"show\", function (options, done) {\n\t\tvar startClip, startRef,\n\t\t\telement = $(this),\n\t\t\tmap = {\n\t\t\t\tup: [\"bottom\", \"top\"],\n\t\t\t\tdown: [\"top\", \"bottom\"],\n\t\t\t\tleft: [\"right\", \"left\"],\n\t\t\t\tright: [\"left\", \"right\"]\n\t\t\t},\n\t\t\tmode = options.mode,\n\t\t\tdirection = options.direction || \"left\",\n\t\t\tref = (direction === \"up\" || direction === \"down\") ? \"top\" : \"left\",\n\t\t\tpositiveMotion = (direction === \"up\" || direction === \"left\"),\n\t\t\tdistance = options.distance ||\n\t\t\t\telement[ref === \"top\" ? \"outerHeight\" : \"outerWidth\"](true),\n\t\t\tanimation = {};\n\n\t\t$.effects.createPlaceholder(element);\n\n\t\tstartClip = element.cssClip();\n\t\tstartRef = element.position()[ref];\n\n\t\t// Define hide animation\n\t\tanimation[ref] = (positiveMotion ? -1 : 1) * distance + startRef;\n\t\tanimation.clip = element.cssClip();\n\t\tanimation.clip[map[direction][1]] = animation.clip[map[direction][0]];\n\n\t\t// Reverse the animation if we're showing\n\t\tif (mode === \"show\") {\n\t\t\telement.cssClip(animation.clip);\n\t\t\telement.css(ref, animation[ref]);\n\t\t\tanimation.clip = startClip;\n\t\t\tanimation[ref] = startRef;\n\t\t}\n\n\t\t// Actually animate\n\t\telement.animate(animation, {\n\t\t\tqueue: false,\n\t\t\tduration: options.duration,\n\t\t\teasing: options.easing,\n\t\t\tcomplete: done\n\t\t});\n\t});\n\n\n\t/*!\n\t * jQuery UI Effects Transfer 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Transfer Effect\n\t//>>group: Effects\n\t//>>description: Displays a transfer effect from one element to another.\n\t//>>docs: http://api.jqueryui.com/transfer-effect/\n\t//>>demos: http://jqueryui.com/effect/\n\n\n\n\tvar effect;\n\tif ($.uiBackCompat !== false) {\n\t\teffect = $.effects.define(\"transfer\", function (options, done) {\n\t\t\t$(this).transfer(options, done);\n\t\t});\n\t}\n\tvar effectsEffectTransfer = effect;\n\n\n\t/*!\n\t * jQuery UI Focusable 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: :focusable Selector\n\t//>>group: Core\n\t//>>description: Selects elements which can be focused.\n\t//>>docs: http://api.jqueryui.com/focusable-selector/\n\n\n\n\t// Selectors\n\t$.ui.focusable = function (element, hasTabindex) {\n\t\tvar map, mapName, img, focusableIfVisible, fieldset,\n\t\t\tnodeName = element.nodeName.toLowerCase();\n\n\t\tif (\"area\" === nodeName) {\n\t\t\tmap = element.parentNode;\n\t\t\tmapName = map.name;\n\t\t\tif (!element.href || !mapName || map.nodeName.toLowerCase() !== \"map\") {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\timg = $(\"img[usemap='#\" + mapName + \"']\");\n\t\t\treturn img.length > 0 && img.is(\":visible\");\n\t\t}\n\n\t\tif (/^(input|select|textarea|button|object)$/.test(nodeName)) {\n\t\t\tfocusableIfVisible = !element.disabled;\n\n\t\t\tif (focusableIfVisible) {\n\n\t\t\t\t// Form controls within a disabled fieldset are disabled.\n\t\t\t\t// However, controls within the fieldset's legend do not get disabled.\n\t\t\t\t// Since controls generally aren't placed inside legends, we skip\n\t\t\t\t// this portion of the check.\n\t\t\t\tfieldset = $(element).closest(\"fieldset\")[0];\n\t\t\t\tif (fieldset) {\n\t\t\t\t\tfocusableIfVisible = !fieldset.disabled;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (\"a\" === nodeName) {\n\t\t\tfocusableIfVisible = element.href || hasTabindex;\n\t\t} else {\n\t\t\tfocusableIfVisible = hasTabindex;\n\t\t}\n\n\t\treturn focusableIfVisible && $(element).is(\":visible\") && visible($(element));\n\t};\n\n\t// Support: IE 8 only\n\t// IE 8 doesn't resolve inherit to visible/hidden for computed values\n\tfunction visible(element) {\n\t\tvar visibility = element.css(\"visibility\");\n\t\twhile (visibility === \"inherit\") {\n\t\t\telement = element.parent();\n\t\t\tvisibility = element.css(\"visibility\");\n\t\t}\n\t\treturn visibility !== \"hidden\";\n\t}\n\n\t$.extend($.expr[\":\"], {\n\t\tfocusable: function (element) {\n\t\t\treturn $.ui.focusable(element, $.attr(element, \"tabindex\") != null);\n\t\t}\n\t});\n\n\tvar focusable = $.ui.focusable;\n\n\n\n\n\t// Support: IE8 Only\n\t// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop\n\t// with a string, so we need to find the proper form.\n\tvar form = $.fn.form = function () {\n\t\treturn typeof this[0].form === \"string\" ? this.closest(\"form\") : $(this[0].form);\n\t};\n\n\n\t/*!\n\t * jQuery UI Form Reset Mixin 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Form Reset Mixin\n\t//>>group: Core\n\t//>>description: Refresh input widgets when their form is reset\n\t//>>docs: http://api.jqueryui.com/form-reset-mixin/\n\n\n\n\tvar formResetMixin = $.ui.formResetMixin = {\n\t\t_formResetHandler: function () {\n\t\t\tvar form = $(this);\n\n\t\t\t// Wait for the form reset to actually happen before refreshing\n\t\t\tsetTimeout(function () {\n\t\t\t\tvar instances = form.data(\"ui-form-reset-instances\");\n\t\t\t\t$.each(instances, function () {\n\t\t\t\t\tthis.refresh();\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\n\t\t_bindFormResetHandler: function () {\n\t\t\tthis.form = this.element.form();\n\t\t\tif (!this.form.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar instances = this.form.data(\"ui-form-reset-instances\") || [];\n\t\t\tif (!instances.length) {\n\n\t\t\t\t// We don't use _on() here because we use a single event handler per form\n\t\t\t\tthis.form.on(\"reset.ui-form-reset\", this._formResetHandler);\n\t\t\t}\n\t\t\tinstances.push(this);\n\t\t\tthis.form.data(\"ui-form-reset-instances\", instances);\n\t\t},\n\n\t\t_unbindFormResetHandler: function () {\n\t\t\tif (!this.form.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar instances = this.form.data(\"ui-form-reset-instances\");\n\t\t\tinstances.splice($.inArray(this, instances), 1);\n\t\t\tif (instances.length) {\n\t\t\t\tthis.form.data(\"ui-form-reset-instances\", instances);\n\t\t\t} else {\n\t\t\t\tthis.form\n\t\t\t\t\t.removeData(\"ui-form-reset-instances\")\n\t\t\t\t\t.off(\"reset.ui-form-reset\");\n\t\t\t}\n\t\t}\n\t};\n\n\n\t/*!\n\t * jQuery UI Support for jQuery core 1.7.x 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t *\n\t */\n\n\t//>>label: jQuery 1.7 Support\n\t//>>group: Core\n\t//>>description: Support version 1.7.x of jQuery core\n\n\n\n\t// Support: jQuery 1.7 only\n\t// Not a great way to check versions, but since we only support 1.7+ and only\n\t// need to detect <1.8, this is a simple check that should suffice. Checking\n\t// for \"1.7.\" would be a bit safer, but the version string is 1.7, not 1.7.0\n\t// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting\n\t// 1.7 anymore). See #11197 for why we're not using feature detection.\n\tif ($.fn.jquery.substring(0, 3) === \"1.7\") {\n\n\t\t// Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight()\n\t\t// Unlike jQuery Core 1.8+, these only support numeric values to set the\n\t\t// dimensions in pixels\n\t\t$.each([\"Width\", \"Height\"], function (i, name) {\n\t\t\tvar side = name === \"Width\" ? [\"Left\", \"Right\"] : [\"Top\", \"Bottom\"],\n\t\t\t\ttype = name.toLowerCase(),\n\t\t\t\torig = {\n\t\t\t\t\tinnerWidth: $.fn.innerWidth,\n\t\t\t\t\tinnerHeight: $.fn.innerHeight,\n\t\t\t\t\touterWidth: $.fn.outerWidth,\n\t\t\t\t\touterHeight: $.fn.outerHeight\n\t\t\t\t};\n\n\t\t\tfunction reduce(elem, size, border, margin) {\n\t\t\t\t$.each(side, function () {\n\t\t\t\t\tsize -= parseFloat($.css(elem, \"padding\" + this)) || 0;\n\t\t\t\t\tif (border) {\n\t\t\t\t\t\tsize -= parseFloat($.css(elem, \"border\" + this + \"Width\")) || 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (margin) {\n\t\t\t\t\t\tsize -= parseFloat($.css(elem, \"margin\" + this)) || 0;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t$.fn[\"inner\" + name] = function (size) {\n\t\t\t\tif (size === undefined) {\n\t\t\t\t\treturn orig[\"inner\" + name].call(this);\n\t\t\t\t}\n\n\t\t\t\treturn this.each(function () {\n\t\t\t\t\t$(this).css(type, reduce(this, size) + \"px\");\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$.fn[\"outer\" + name] = function (size, margin) {\n\t\t\t\tif (typeof size !== \"number\") {\n\t\t\t\t\treturn orig[\"outer\" + name].call(this, size);\n\t\t\t\t}\n\n\t\t\t\treturn this.each(function () {\n\t\t\t\t\t$(this).css(type, reduce(this, size, true, margin) + \"px\");\n\t\t\t\t});\n\t\t\t};\n\t\t});\n\n\t\t$.fn.addBack = function (selector) {\n\t\t\treturn this.add(selector == null ?\n\t\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t\t);\n\t\t};\n\t}\n\n\t;\n\t/*!\n\t * jQuery UI Keycode 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Keycode\n\t//>>group: Core\n\t//>>description: Provide keycodes as keynames\n\t//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/\n\n\n\tvar keycode = $.ui.keyCode = {\n\t\tBACKSPACE: 8,\n\t\tCOMMA: 188,\n\t\tDELETE: 46,\n\t\tDOWN: 40,\n\t\tEND: 35,\n\t\tENTER: 13,\n\t\tESCAPE: 27,\n\t\tHOME: 36,\n\t\tLEFT: 37,\n\t\tPAGE_DOWN: 34,\n\t\tPAGE_UP: 33,\n\t\tPERIOD: 190,\n\t\tRIGHT: 39,\n\t\tSPACE: 32,\n\t\tTAB: 9,\n\t\tUP: 38\n\t};\n\n\n\n\n\t// Internal use only\n\tvar escapeSelector = $.ui.escapeSelector = (function () {\n\t\tvar selectorEscape = /([!\"#$%&'()*+,./:;<=>?@[\\]^`{|}~])/g;\n\t\treturn function (selector) {\n\t\t\treturn selector.replace(selectorEscape, \"\\\\$1\");\n\t\t};\n\t})();\n\n\n\t/*!\n\t * jQuery UI Labels 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: labels\n\t//>>group: Core\n\t//>>description: Find all the labels associated with a given input\n\t//>>docs: http://api.jqueryui.com/labels/\n\n\n\n\tvar labels = $.fn.labels = function () {\n\t\tvar ancestor, selector, id, labels, ancestors;\n\n\t\t// Check control.labels first\n\t\tif (this[0].labels && this[0].labels.length) {\n\t\t\treturn this.pushStack(this[0].labels);\n\t\t}\n\n\t\t// Support: IE <= 11, FF <= 37, Android <= 2.3 only\n\t\t// Above browsers do not support control.labels. Everything below is to support them\n\t\t// as well as document fragments. control.labels does not work on document fragments\n\t\tlabels = this.eq(0).parents(\"label\");\n\n\t\t// Look for the label based on the id\n\t\tid = this.attr(\"id\");\n\t\tif (id) {\n\n\t\t\t// We don't search against the document in case the element\n\t\t\t// is disconnected from the DOM\n\t\t\tancestor = this.eq(0).parents().last();\n\n\t\t\t// Get a full set of top level ancestors\n\t\t\tancestors = ancestor.add(ancestor.length ? ancestor.siblings() : this.siblings());\n\n\t\t\t// Create a selector for the label based on the id\n\t\t\tselector = \"label[for='\" + $.ui.escapeSelector(id) + \"']\";\n\n\t\t\tlabels = labels.add(ancestors.find(selector).addBack(selector));\n\n\t\t}\n\n\t\t// Return whatever we have found for labels\n\t\treturn this.pushStack(labels);\n\t};\n\n\n\t/*!\n\t * jQuery UI Scroll Parent 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: scrollParent\n\t//>>group: Core\n\t//>>description: Get the closest ancestor element that is scrollable.\n\t//>>docs: http://api.jqueryui.com/scrollParent/\n\n\n\n\tvar scrollParent = $.fn.scrollParent = function (includeHidden) {\n\t\tvar position = this.css(\"position\"),\n\t\t\texcludeStaticParent = position === \"absolute\",\n\t\t\toverflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,\n\t\t\tscrollParent = this.parents().filter(function () {\n\t\t\t\tvar parent = $(this);\n\t\t\t\tif (excludeStaticParent && parent.css(\"position\") === \"static\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn overflowRegex.test(parent.css(\"overflow\") + parent.css(\"overflow-y\") +\n\t\t\t\t\tparent.css(\"overflow-x\"));\n\t\t\t}).eq(0);\n\n\t\treturn position === \"fixed\" || !scrollParent.length ?\n\t\t\t$(this[0].ownerDocument || document) :\n\t\t\tscrollParent;\n\t};\n\n\n\t/*!\n\t * jQuery UI Tabbable 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: :tabbable Selector\n\t//>>group: Core\n\t//>>description: Selects elements which can be tabbed to.\n\t//>>docs: http://api.jqueryui.com/tabbable-selector/\n\n\n\n\tvar tabbable = $.extend($.expr[\":\"], {\n\t\ttabbable: function (element) {\n\t\t\tvar tabIndex = $.attr(element, \"tabindex\"),\n\t\t\t\thasTabindex = tabIndex != null;\n\t\t\treturn (!hasTabindex || tabIndex >= 0) && $.ui.focusable(element, hasTabindex);\n\t\t}\n\t});\n\n\n\t/*!\n\t * jQuery UI Unique ID 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: uniqueId\n\t//>>group: Core\n\t//>>description: Functions to generate and remove uniqueId's\n\t//>>docs: http://api.jqueryui.com/uniqueId/\n\n\n\n\tvar uniqueId = $.fn.extend({\n\t\tuniqueId: (function () {\n\t\t\tvar uuid = 0;\n\n\t\t\treturn function () {\n\t\t\t\treturn this.each(function () {\n\t\t\t\t\tif (!this.id) {\n\t\t\t\t\t\tthis.id = \"ui-id-\" + (++uuid);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t})(),\n\n\t\tremoveUniqueId: function () {\n\t\t\treturn this.each(function () {\n\t\t\t\tif (/^ui-id-\\d+$/.test(this.id)) {\n\t\t\t\t\t$(this).removeAttr(\"id\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\n\t/*!\n\t * jQuery UI Accordion 1.12.1\n\t * http://jqueryui.com\n\t *\n\t * Copyright jQuery Foundation and other contributors\n\t * Released under the MIT license.\n\t * http://jquery.org/license\n\t */\n\n\t//>>label: Accordion\n\t//>>group: Widgets\n\t// jscs:disable maximumLineLength\n\t//>>description: Displays collapsible content panels for presenting information in a limited amount of space.\n\t// jscs:enable maximumLineLength\n\t//>>docs: http://api.jqueryui.com/accordion/\n\t//>>demos: http://jqueryui.com/accordion/\n\t//>>css.structure: ../../themes/base/core.css\n\t//>>css.structure: ../../themes/base/accordion.css\n\t//>>css.theme: ../../themes/base/theme.css\n\n\n\n\tvar widgetsAccordion = $.widget(\"ui.accordion\", {\n\t\tversion: \"1.12.1\",\n\t\toptions: {\n\t\t\tactive: 0,\n\t\t\tanimate: {},\n\t\t\tclasses: {\n\t\t\t\t\"ui-accordion-header\": \"ui-corner-top\",\n\t\t\t\t\"ui-accordion-header-collapsed\": \"ui-corner-all\",\n\t\t\t\t\"ui-accordion-content\": \"ui-corner-bottom\"\n\t\t\t},\n\t\t\tcollapsible: false,\n\t\t\tevent: \"click\",\n\t\t\theader: \"> li > :first-child, > :not(li):even\",\n\t\t\theightStyle: \"auto\",\n\t\t\ticons: {\n\t\t\t\tactiveHeader: \"ui-icon-triangle-1-s\",\n\t\t\t\theader: \"ui-icon-triangle-1-e\"\n\t\t\t},\n\n\t\t\t// Callbacks\n\t\t\tactivate: null,\n\t\t\tbeforeActivate: null\n\t\t},\n\n\t\thideProps: {\n\t\t\tborderTopWidth: \"hide\",\n\t\t\tborderBottomWidth: \"hide\",\n\t\t\tpaddingTop: \"hide\",\n\t\t\tpaddingBottom: \"hide\",\n\t\t\theight: \"hide\"\n\t\t},\n\n\t\tshowProps: {\n\t\t\tborderTopWidth: \"show\",\n\t\t\tborderBottomWidth: \"show\",\n\t\t\tpaddingTop: \"show\",\n\t\t\tpaddingBottom: \"show\",\n\t\t\theight: \"show\"\n\t\t},\n\n\t\t_create: function () {\n\t\t\tvar options = this.options;\n\n\t\t\tthis.prevShow = this.prevHide = $();\n\t\t\tthis._addClass(\"ui-accordion\", \"ui-widget ui-helper-reset\");\n\t\t\tthis.element.attr(\"role\", \"tablist\");\n\n\t\t\t// Don't allow collapsible: false and active: false / null\n\t\t\tif (!options.collapsible && (options.active === false || options.active == null)) {\n\t\t\t\toptions.active = 0;\n\t\t\t}\n\n\t\t\tthis._processPanels();\n\n\t\t\t// handle negative values\n\t\t\tif (options.active < 0) {\n\t\t\t\toptions.active += this.headers.length;\n\t\t\t}\n\t\t\tthis._refresh();\n\t\t},\n\n\t\t_getCreateEventData: function () {\n\t\t\treturn {\n\t\t\t\theader: this.active,\n\t\t\t\tpanel: !this.active.length ? $() : this.active.next()\n\t\t\t};\n\t\t},\n\n\t\t_createIcons: function () {\n\t\t\tvar icon, children,\n\t\t\t\ticons = this.options.icons;\n\n\t\t\tif (icons) {\n\t\t\t\ticon = $(\"\");\n\t\t\t\tthis._addClass(icon, \"ui-accordion-header-icon\", \"ui-icon \" + icons.header);\n\t\t\t\ticon.prependTo(this.headers);\n\t\t\t\tchildren = this.active.children(\".ui-accordion-header-icon\");\n\t\t\t\tthis._removeClass(children, icons.header)\n\t\t\t\t\t._addClass(children, null, icons.activeHeader)\n\t\t\t\t\t._addClass(this.headers, \"ui-accordion-icons\");\n\t\t\t}\n\t\t},\n\n\t\t_destroyIcons: function () {\n\t\t\tthis._removeClass(this.headers, \"ui-accordion-icons\");\n\t\t\tthis.headers.children(\".ui-accordion-header-icon\").remove();\n\t\t},\n\n\t\t_destroy: function () {\n\t\t\tvar contents;\n\n\t\t\t// Clean up main element\n\t\t\tthis.element.removeAttr(\"role\");\n\n\t\t\t// Clean up headers\n\t\t\tthis.headers\n\t\t\t\t.removeAttr(\"role aria-expanded aria-selected aria-controls tabIndex\")\n\t\t\t\t.removeUniqueId();\n\n\t\t\tthis._destroyIcons();\n\n\t\t\t// Clean up content panels\n\t\t\tcontents = this.headers.next()\n\t\t\t\t.css(\"display\", \"\")\n\t\t\t\t.removeAttr(\"role aria-hidden aria-labelledby\")\n\t\t\t\t.removeUniqueId();\n\n\t\t\tif (this.options.heightStyle !== \"content\") {\n\t\t\t\tcontents.css(\"height\", \"\");\n\t\t\t}\n\t\t},\n\n\t\t_setOption: function (key, value) {\n\t\t\tif (key === \"active\") {\n\n\t\t\t\t// _activate() will handle invalid values and update this.options\n\t\t\t\tthis._activate(value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (key === \"event\") {\n\t\t\t\tif (this.options.event) {\n\t\t\t\t\tthis._off(this.headers, this.options.event);\n\t\t\t\t}\n\t\t\t\tthis._setupEvents(value);\n\t\t\t}\n\n\t\t\tthis._super(key, value);\n\n\t\t\t// Setting collapsible: false while collapsed; open first panel\n\t\t\tif (key === \"collapsible\" && !value && this.options.active === false) {\n\t\t\t\tthis._activate(0);\n\t\t\t}\n\n\t\t\tif (key === \"icons\") {\n\t\t\t\tthis._destroyIcons();\n\t\t\t\tif (value) {\n\t\t\t\t\tthis._createIcons();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_setOptionDisabled: function (value) {\n\t\t\tthis._super(value);\n\n\t\t\tthis.element.attr(\"aria-disabled\", value);\n\n\t\t\t// Support: IE8 Only\n\t\t\t// #5332 / #6059 - opacity doesn't cascade to positioned elements in IE\n\t\t\t// so we need to add the disabled class to the headers and panels\n\t\t\tthis._toggleClass(null, \"ui-state-disabled\", !!value);\n\t\t\tthis._toggleClass(this.headers.add(this.headers.next()), null, \"ui-state-disabled\",\n\t\t\t\t!!value);\n\t\t},\n\n\t\t_keydown: function (event) {\n\t\t\tif (event.altKey || event.ctrlKey) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar keyCode = $.ui.keyCode,\n\t\t\t\tlength = this.headers.length,\n\t\t\t\tcurrentIndex = this.headers.index(event.target),\n\t\t\t\ttoFocus = false;\n\n\t\t\tswitch (event.keyCode) {\n\t\t\t\tcase keyCode.RIGHT:\n\t\t\t\tcase keyCode.DOWN:\n\t\t\t\t\ttoFocus = this.headers[(currentIndex + 1) % length];\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.LEFT:\n\t\t\t\tcase keyCode.UP:\n\t\t\t\t\ttoFocus = this.headers[(currentIndex - 1 + length) % length];\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.SPACE:\n\t\t\t\tcase keyCode.ENTER:\n\t\t\t\t\tthis._eventHandler(event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.HOME:\n\t\t\t\t\ttoFocus = this.headers[0];\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.END:\n\t\t\t\t\ttoFocus = this.headers[length - 1];\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (toFocus) {\n\t\t\t\t$(event.target).attr(\"tabIndex\", -1);\n\t\t\t\t$(toFocus).attr(\"tabIndex\", 0);\n\t\t\t\t$(toFocus).trigger(\"focus\");\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\n\t\t_panelKeyDown: function (event) {\n\t\t\tif (event.keyCode === $.ui.keyCode.UP && event.ctrlKey) {\n\t\t\t\t$(event.currentTarget).prev().trigger(\"focus\");\n\t\t\t}\n\t\t},\n\n\t\trefresh: function () {\n\t\t\tvar options = this.options;\n\t\t\tthis._processPanels();\n\n\t\t\t// Was collapsed or no panel\n\t\t\tif ((options.active === false && options.collapsible === true) ||\n\t\t\t\t!this.headers.length) {\n\t\t\t\toptions.active = false;\n\t\t\t\tthis.active = $();\n\n\t\t\t\t// active false only when collapsible is true\n\t\t\t} else if (options.active === false) {\n\t\t\t\tthis._activate(0);\n\n\t\t\t\t// was active, but active panel is gone\n\t\t\t} else if (this.active.length && !$.contains(this.element[0], this.active[0])) {\n\n\t\t\t\t// all remaining panel are disabled\n\t\t\t\tif (this.headers.length === this.headers.find(\".ui-state-disabled\").length) {\n\t\t\t\t\toptions.active = false;\n\t\t\t\t\tthis.active = $();\n\n\t\t\t\t\t// activate previous panel\n\t\t\t\t} else {\n\t\t\t\t\tthis._activate(Math.max(0, options.active - 1));\n\t\t\t\t}\n\n\t\t\t\t// was active, active panel still exists\n\t\t\t} else {\n\n\t\t\t\t// make sure active index is correct\n\t\t\t\toptions.active = this.headers.index(this.active);\n\t\t\t}\n\n\t\t\tthis._destroyIcons();\n\n\t\t\tthis._refresh();\n\t\t},\n\n\t\t_processPanels: function () {\n\t\t\tvar prevHeaders = this.headers,\n\t\t\t\tprevPanels = this.panels;\n\n\t\t\tthis.headers = this.element.find(this.options.header);\n\t\t\tthis._addClass(this.headers, \"ui-accordion-header ui-accordion-header-collapsed\",\n\t\t\t\t\"ui-state-default\");\n\n\t\t\tthis.panels = this.headers.next().filter(\":not(.ui-accordion-content-active)\").hide();\n\t\t\tthis._addClass(this.panels, \"ui-accordion-content\", \"ui-helper-reset ui-widget-content\");\n\n\t\t\t// Avoid memory leaks (#10056)\n\t\t\tif (prevPanels) {\n\t\t\t\tthis._off(prevHeaders.not(this.headers));\n\t\t\t\tthis._off(prevPanels.not(this.panels));\n\t\t\t}\n\t\t},\n\n\t\t_refresh: function () {\n\t\t\tvar maxHeight,\n\t\t\t\toptions = this.options,\n\t\t\t\theightStyle = options.heightStyle,\n\t\t\t\tparent = this.element.parent();\n\n\t\t\tthis.active = this._findActive(options.active);\n\t\t\tthis._addClass(this.active, \"ui-accordion-header-active\", \"ui-state-active\")\n\t\t\t\t._removeClass(this.active, \"ui-accordion-header-collapsed\");\n\t\t\tthis._addClass(this.active.next(), \"ui-accordion-content-active\");\n\t\t\tthis.active.next().show();\n\n\t\t\tthis.headers\n\t\t\t\t.attr(\"role\", \"tab\")\n\t\t\t\t.each(function () {\n\t\t\t\t\tvar header = $(this),\n\t\t\t\t\t\theaderId = header.uniqueId().attr(\"id\"),\n\t\t\t\t\t\tpanel = header.next(),\n\t\t\t\t\t\tpanelId = panel.uniqueId().attr(\"id\");\n\t\t\t\t\theader.attr(\"aria-controls\", panelId);\n\t\t\t\t\tpanel.attr(\"aria-labelledby\", headerId);\n\t\t\t\t})\n\t\t\t\t.next()\n\t\t\t\t.attr(\"role\", \"tabpanel\");\n\n\t\t\tthis.headers\n\t\t\t\t.not(this.active)\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-selected\": \"false\",\n\t\t\t\t\t\"aria-expanded\": \"false\",\n\t\t\t\t\ttabIndex: -1\n\t\t\t\t})\n\t\t\t\t.next()\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t\t})\n\t\t\t\t.hide();\n\n\t\t\t// Make sure at least one header is in the tab order\n\t\t\tif (!this.active.length) {\n\t\t\t\tthis.headers.eq(0).attr(\"tabIndex\", 0);\n\t\t\t} else {\n\t\t\t\tthis.active.attr({\n\t\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\ttabIndex: 0\n\t\t\t\t})\n\t\t\t\t\t.next()\n\t\t\t\t\t.attr({\n\t\t\t\t\t\t\"aria-hidden\": \"false\"\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._createIcons();\n\n\t\t\tthis._setupEvents(options.event);\n\n\t\t\tif (heightStyle === \"fill\") {\n\t\t\t\tmaxHeight = parent.height();\n\t\t\t\tthis.element.siblings(\":visible\").each(function () {\n\t\t\t\t\tvar elem = $(this),\n\t\t\t\t\t\tposition = elem.css(\"position\");\n\n\t\t\t\t\tif (position === \"absolute\" || position === \"fixed\") {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tmaxHeight -= elem.outerHeight(true);\n\t\t\t\t});\n\n\t\t\t\tthis.headers.each(function () {\n\t\t\t\t\tmaxHeight -= $(this).outerHeight(true);\n\t\t\t\t});\n\n\t\t\t\tthis.headers.next()\n\t\t\t\t\t.each(function () {\n\t\t\t\t\t\t$(this).height(Math.max(0, maxHeight -\n\t\t\t\t\t\t\t$(this).innerHeight() + $(this).height()));\n\t\t\t\t\t})\n\t\t\t\t\t.css(\"overflow\", \"auto\");\n\t\t\t} else if (heightStyle === \"auto\") {\n\t\t\t\tmaxHeight = 0;\n\t\t\t\tthis.headers.next()\n\t\t\t\t\t.each(function () {\n\t\t\t\t\t\tvar isVisible = $(this).is(\":visible\");\n\t\t\t\t\t\tif (!isVisible) {\n\t\t\t\t\t\t\t$(this).show();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxHeight = Math.max(maxHeight, $(this).css(\"height\", \"\").height());\n\t\t\t\t\t\tif (!isVisible) {\n\t\t\t\t\t\t\t$(this).hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.height(maxHeight);\n\t\t\t}\n\t\t},\n\n\t\t_activate: function (index) {\n\t\t\tvar active = this._findActive(index)[0];\n\n\t\t\t// Trying to activate the already active panel\n\t\t\tif (active === this.active[0]) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Trying to collapse, simulate a click on the currently active header\n\t\t\tactive = active || this.active[0];\n\n\t\t\tthis._eventHandler({\n\t\t\t\ttarget: active,\n\t\t\t\tcurrentTarget: active,\n\t\t\t\tpreventDefault: $.noop\n\t\t\t});\n\t\t},\n\n\t\t_findActive: function (selector) {\n\t\t\treturn typeof selector === \"number\" ? this.headers.eq(selector) : $();\n\t\t},\n\n\t\t_setupEvents: function (event) {\n\t\t\tvar events = {\n\t\t\t\tkeydown: \"_keydown\"\n\t\t\t};\n\t\t\tif (event) {\n\t\t\t\t$.each(event.split(\" \"), function (index, eventName) {\n\t\t\t\t\tevents[eventName] = \"_eventHandler\";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._off(this.headers.add(this.headers.next()));\n\t\t\tthis._on(this.headers, events);\n\t\t\tthis._on(this.headers.next(), { keydown: \"_panelKeyDown\" });\n\t\t\tthis._hoverable(this.headers);\n\t\t\tthis._focusable(this.headers);\n\t\t},\n\n\t\t_eventHandler: function (event) {\n\t\t\tvar activeChildren, clickedChildren,\n\t\t\t\toptions = this.options,\n\t\t\t\tactive = this.active,\n\t\t\t\tclicked = $(event.currentTarget),\n\t\t\t\tclickedIsActive = clicked[0] === active[0],\n\t\t\t\tcollapsing = clickedIsActive && options.collapsible,\n\t\t\t\ttoShow = collapsing ? $() : clicked.next(),\n\t\t\t\ttoHide = active.next(),\n\t\t\t\teventData = {\n\t\t\t\t\toldHeader: active,\n\t\t\t\t\toldPanel: toHide,\n\t\t\t\t\tnewHeader: collapsing ? $() : clicked,\n\t\t\t\t\tnewPanel: toShow\n\t\t\t\t};\n\n\t\t\tevent.preventDefault();\n\n\t\t\tif (\n\n\t\t\t\t// click on active header, but not collapsible\n\t\t\t\t(clickedIsActive && !options.collapsible) ||\n\n\t\t\t\t// allow canceling activation\n\t\t\t\t(this._trigger(\"beforeActivate\", event, eventData) === false)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\toptions.active = collapsing ? false : this.headers.index(clicked);\n\n\t\t\t// When the call to ._toggle() comes after the class changes\n\t\t\t// it causes a very odd bug in IE 8 (see #6720)\n\t\t\tthis.active = clickedIsActive ? $() : clicked;\n\t\t\tthis._toggle(eventData);\n\n\t\t\t// Switch classes\n\t\t\t// corner classes on the previously active header stay after the animation\n\t\t\tthis._removeClass(active, \"ui-accordion-header-active\", \"ui-state-active\");\n\t\t\tif (options.icons) {\n\t\t\t\tactiveChildren = active.children(\".ui-accordion-header-icon\");\n\t\t\t\tthis._removeClass(activeChildren, null, options.icons.activeHeader)\n\t\t\t\t\t._addClass(activeChildren, null, options.icons.header);\n\t\t\t}\n\n\t\t\tif (!clickedIsActive) {\n\t\t\t\tthis._removeClass(clicked, \"ui-accordion-header-collapsed\")\n\t\t\t\t\t._addClass(clicked, \"ui-accordion-header-active\", \"ui-state-active\");\n\t\t\t\tif (options.icons) {\n\t\t\t\t\tclickedChildren = clicked.children(\".ui-accordion-header-icon\");\n\t\t\t\t\tthis._removeClass(clickedChildren, null, options.icons.header)\n\t\t\t\t\t\t._addClass(clickedChildren, null, options.icons.activeHeader);\n\t\t\t\t}\n\n\t\t\t\tthis._addClass(clicked.next(), \"ui-accordion-content-active\");\n\t\t\t}\n\t\t},\n\n\t\t_toggle: function (data) {\n\t\t\tvar toShow = data.newPanel,\n\t\t\t\ttoHide = this.prevShow.length ? this.prevShow : data.oldPanel;\n\n\t\t\t// Handle activating a panel during the animation for another activation\n\t\t\tthis.prevShow.add(this.prevHide).stop(true, true);\n\t\t\tthis.prevShow = toShow;\n\t\t\tthis.prevHide = toHide;\n\n\t\t\tif (this.options.animate) {\n\t\t\t\tthis._animate(toShow, toHide, data);\n\t\t\t} else {\n\t\t\t\ttoHide.hide();\n\t\t\t\ttoShow.show();\n\t\t\t\tthis._toggleComplete(data);\n\t\t\t}\n\n\t\t\ttoHide.attr({\n\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t});\n\t\t\ttoHide.prev().attr({\n\t\t\t\t\"aria-selected\": \"false\",\n\t\t\t\t\"aria-expanded\": \"false\"\n\t\t\t});\n\n\t\t\t// if we're switching panels, remove the old header from the tab order\n\t\t\t// if we're opening from collapsed state, remove the previous header from the tab order\n\t\t\t// if we're collapsing, then keep the collapsing header in the tab order\n\t\t\tif (toShow.length && toHide.length) {\n\t\t\t\ttoHide.prev().attr({\n\t\t\t\t\t\"tabIndex\": -1,\n\t\t\t\t\t\"aria-expanded\": \"false\"\n\t\t\t\t});\n\t\t\t} else if (toShow.length) {\n\t\t\t\tthis.headers.filter(function () {\n\t\t\t\t\treturn parseInt($(this).attr(\"tabIndex\"), 10) === 0;\n\t\t\t\t})\n\t\t\t\t\t.attr(\"tabIndex\", -1);\n\t\t\t}\n\n\t\t\ttoShow\n\t\t\t\t.attr(\"aria-hidden\", \"false\")\n\t\t\t\t.prev()\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\ttabIndex: 0\n\t\t\t\t});\n\t\t},\n\n\t\t_animate: function (toShow, toHide, data) {\n\t\t\tvar total, easing, duration,\n\t\t\t\tthat = this,\n\t\t\t\tadjust = 0,\n\t\t\t\tboxSizing = toShow.css(\"box-sizing\"),\n\t\t\t\tdown = toShow.length &&\n\t\t\t\t\t(!toHide.length || (toShow.index() < toHide.index())),\n\t\t\t\tanimate = this.options.animate || {},\n\t\t\t\toptions = down && animate.down || animate,\n\t\t\t\tcomplete = function () {\n\t\t\t\t\tthat._toggleComplete(data);\n\t\t\t\t};\n\n\t\t\tif (typeof options === \"number\") {\n\t\t\t\tduration = options;\n\t\t\t}\n\t\t\tif (typeof options === \"string\") {\n\t\t\t\teasing = options;\n\t\t\t}\n\n\t\t\t// fall back from options to animation in case of partial down settings\n\t\t\teasing = easing || options.easing || animate.easing;\n\t\t\tduration = duration || options.duration || animate.duration;\n\n\t\t\tif (!toHide.length) {\n\t\t\t\treturn toShow.animate(this.showProps, duration, easing, complete);\n\t\t\t}\n\t\t\tif (!toShow.length) {\n\t\t\t\treturn toHide.animate(this.hideProps, duration, easing, complete);\n\t\t\t}\n\n\t\t\ttotal = toShow.show().outerHeight();\n\t\t\ttoHide.animate(this.hideProps, {\n\t\t\t\tduration: duration,\n\t\t\t\teasing: easing,\n\t\t\t\tstep: function (now, fx) {\n\t\t\t\t\tfx.now = Math.round(now);\n\t\t\t\t}\n\t\t\t});\n\t\t\ttoShow\n\t\t\t\t.hide()\n\t\t\t\t.animate(this.showProps, {\n\t\t\t\t\tduration: duration,\n\t\t\t\t\teasing: easing,\n\t\t\t\t\tcomplete: complete,\n\t\t\t\t\tstep: function (now, fx) {\n\t\t\t\t\t\tfx.now = Math.round(now);\n\t\t\t\t\t\tif (fx.prop !== \"height\") {\n\t\t\t\t\t\t\tif (boxSizing === \"content-box\") {\n\t\t\t\t\t\t\t\tadjust += fx.now;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (that.options.heightStyle !== \"content\") {\n\t\t\t\t\t\t\tfx.now = Math.round(total - toHide.outerHeight() - adjust);\n\t\t\t\t\t\t\tadjust = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t},\n\n\t\t_toggleComplete: function (data) {\n\t\t\tvar toHide = data.oldPanel,\n\t\t\t\tprev = toHide.prev();\n\n\t\t\tthis._removeClass(toHide, \"ui-accordion-content-active\");\n\t\t\tthis._removeClass(prev, \"ui-accordion-header-active\")\n\t\t\t\t._addClass(prev, \"ui-accordion-header-collapsed\");\n\n\t\t\t// Work around for rendering bug in IE (#5421)\n\t\t\tif (toHide.length) {\n\t\t\t\ttoHide.parent()[0].className = toHide.parent()[0].className;\n\t\t\t}\n\t\t\tthis._trigger(\"activate\", null, data);\n\t\t}\n\t});\n\n\n\n\tvar safeActiveElement = $.ui.safeActiveElement = function (document) {\n\t\tvar activeElement;\n\n\t\t// Support: IE 9 only\n\t\t// IE9 throws an \"Unspecified error\" accessing document.activeElement from an