{"version":3,"file":"utility.min.js","sources":["../../js/scriptaculous/effects.js","../../js/scriptaculous/builder.js","../../js/modalbox.js","../../js/platform/platform.min.js","../../js/contentPreview.js","../../js/jquery.tmpl.min.js","../../js/jquery.klass-0.2a.js","../../js/modernizr-2.6.3-custom.js","../../js/jquery.confirm-1.3.js","../../js/socialsharing.js","../../js/globalization.js","../../js/accessibility.js","../../js/chosen/chosen.jquery.min.js"],"sourcesContent":["// script.aculo.us effects.js v1.8.1, Thu Jan 03 22:07:12 -0500 2008\r\n\r\n// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r\n// Contributors:\r\n// Justin Palmer (http://encytemedia.com/)\r\n// Mark Pilgrim (http://diveintomark.org/)\r\n// Martin Bialasinki\r\n// \r\n// script.aculo.us is freely distributable under the terms of an MIT-style license.\r\n// For details, see the script.aculo.us web site: http://script.aculo.us/ \r\n\r\n// converts rgb() and #xxx to #xxxxxx format, \r\n// returns self (or first argument) if not convertable \r\nString.prototype.parseColor = function() { \r\n var color = '#';\r\n if (this.slice(0,4) == 'rgb(') { \r\n var cols = this.slice(4,this.length-1).split(','); \r\n var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); \r\n } else { \r\n if (this.slice(0,1) == '#') { \r\n if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); \r\n if (this.length==7) color = this.toLowerCase(); \r\n } \r\n } \r\n return (color.length==7 ? color : (arguments[0] || this)); \r\n};\r\n\r\n/*--------------------------------------------------------------------------*/\r\n\r\nElement.collectTextNodes = function(element) { \r\n return $A($(element).childNodes).collect( function(node) {\r\n return (node.nodeType==3 ? node.nodeValue : \r\n (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));\r\n }).flatten().join('');\r\n};\r\n\r\nElement.collectTextNodesIgnoreClass = function(element, className) { \r\n return $A($(element).childNodes).collect( function(node) {\r\n return (node.nodeType==3 ? node.nodeValue : \r\n ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? \r\n Element.collectTextNodesIgnoreClass(node, className) : ''));\r\n }).flatten().join('');\r\n};\r\n\r\nElement.setContentZoom = function(element, percent) {\r\n element = $(element); \r\n element.setStyle({fontSize: (percent/100) + 'em'}); \r\n if (Prototype.Browser.WebKit) window.scrollBy(0,0);\r\n return element;\r\n};\r\n\r\nElement.getInlineOpacity = function(element){\r\n return $(element).style.opacity || '';\r\n};\r\n\r\nElement.forceRerendering = function(element) {\r\n try {\r\n element = $(element);\r\n var n = document.createTextNode(' ');\r\n element.appendChild(n);\r\n element.removeChild(n);\r\n } catch(e) { }\r\n};\r\n\r\n/*--------------------------------------------------------------------------*/\r\n\r\nvar Effect = {\r\n _elementDoesNotExistError: {\r\n name: 'ElementDoesNotExistError',\r\n message: 'The specified DOM element does not exist, but is required for this effect to operate'\r\n },\r\n Transitions: {\r\n linear: Prototype.K,\r\n sinoidal: function(pos) {\r\n return (-Math.cos(pos*Math.PI)/2) + 0.5;\r\n },\r\n reverse: function(pos) {\r\n return 1-pos;\r\n },\r\n flicker: function(pos) {\r\n var pos = ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;\r\n return pos > 1 ? 1 : pos;\r\n },\r\n wobble: function(pos) {\r\n return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;\r\n },\r\n pulse: function(pos, pulses) { \r\n pulses = pulses || 5; \r\n return (\r\n ((pos % (1/pulses)) * pulses).round() == 0 ? \r\n ((pos * pulses * 2) - (pos * pulses * 2).floor()) : \r\n 1 - ((pos * pulses * 2) - (pos * pulses * 2).floor())\r\n );\r\n },\r\n spring: function(pos) { \r\n return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); \r\n },\r\n none: function(pos) {\r\n return 0;\r\n },\r\n full: function(pos) {\r\n return 1;\r\n }\r\n },\r\n DefaultOptions: {\r\n duration: 1.0, // seconds\r\n fps: 100, // 100= assume 66fps max.\r\n sync: false, // true for combining\r\n from: 0.0,\r\n to: 1.0,\r\n delay: 0.0,\r\n queue: 'parallel'\r\n },\r\n tagifyText: function(element) {\r\n var tagifyStyle = 'position:relative';\r\n if (Prototype.Browser.IE) tagifyStyle += ';zoom:1';\r\n \r\n element = $(element);\r\n $A(element.childNodes).each( function(child) {\r\n if (child.nodeType==3) {\r\n child.nodeValue.toArray().each( function(character) {\r\n element.insertBefore(\r\n new Element('span', {style: tagifyStyle}).update(\r\n character == ' ' ? String.fromCharCode(160) : character), \r\n child);\r\n });\r\n Element.remove(child);\r\n }\r\n });\r\n },\r\n multiple: function(element, effect) {\r\n var elements;\r\n if (((typeof element == 'object') || \r\n Object.isFunction(element)) && \r\n (element.length))\r\n elements = element;\r\n else\r\n elements = $(element).childNodes;\r\n \r\n var options = Object.extend({\r\n speed: 0.1,\r\n delay: 0.0\r\n }, arguments[2] || { });\r\n var masterDelay = options.delay;\r\n\r\n $A(elements).each( function(element, index) {\r\n new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay }));\r\n });\r\n },\r\n PAIRS: {\r\n 'slide': ['SlideDown','SlideUp'],\r\n 'blind': ['BlindDown','BlindUp'],\r\n 'appear': ['Appear','Fade']\r\n },\r\n toggle: function(element, effect) {\r\n element = $(element);\r\n effect = (effect || 'appear').toLowerCase();\r\n var options = Object.extend({\r\n queue: { position:'end', scope:(element.id || 'global'), limit: 1 }\r\n }, arguments[2] || { });\r\n Effect[element.visible() ? \r\n Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options);\r\n }\r\n};\r\n\r\nEffect.DefaultOptions.transition = Effect.Transitions.sinoidal;\r\n\r\n/* ------------- core effects ------------- */\r\n\r\nEffect.ScopedQueue = Class.create(Enumerable, {\r\n initialize: function() {\r\n this.effects = [];\r\n this.interval = null; \r\n },\r\n _each: function(iterator) {\r\n this.effects._each(iterator);\r\n },\r\n add: function(effect) {\r\n var timestamp = new Date().getTime();\r\n \r\n var position = Object.isString(effect.options.queue) ? \r\n effect.options.queue : effect.options.queue.position;\r\n \r\n switch(position) {\r\n case 'front':\r\n // move unstarted effects after this effect \r\n this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {\r\n e.startOn += effect.finishOn;\r\n e.finishOn += effect.finishOn;\r\n });\r\n break;\r\n case 'with-last':\r\n timestamp = this.effects.pluck('startOn').max() || timestamp;\r\n break;\r\n case 'end':\r\n // start effect after last queued effect has finished\r\n timestamp = this.effects.pluck('finishOn').max() || timestamp;\r\n break;\r\n }\r\n \r\n effect.startOn += timestamp;\r\n effect.finishOn += timestamp;\r\n\r\n if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit))\r\n this.effects.push(effect);\r\n \r\n if (!this.interval)\r\n this.interval = setInterval(this.loop.bind(this), 15);\r\n },\r\n remove: function(effect) {\r\n this.effects = this.effects.reject(function(e) { return e==effect });\r\n if (this.effects.length == 0) {\r\n clearInterval(this.interval);\r\n this.interval = null;\r\n }\r\n },\r\n loop: function() {\r\n var timePos = new Date().getTime();\r\n for(var i=0, len=this.effects.length;i= this.startOn) {\r\n if (timePos >= this.finishOn) {\r\n this.render(1.0);\r\n this.cancel();\r\n this.event('beforeFinish');\r\n if (this.finish) this.finish(); \r\n this.event('afterFinish');\r\n return; \r\n }\r\n var pos = (timePos - this.startOn) / this.totalTime,\r\n frame = (pos * this.totalFrames).round();\r\n if (frame > this.currentFrame) {\r\n this.render(pos);\r\n this.currentFrame = frame;\r\n }\r\n }\r\n },\r\n cancel: function() {\r\n if (!this.options.sync)\r\n Effect.Queues.get(Object.isString(this.options.queue) ? \r\n 'global' : this.options.queue.scope).remove(this);\r\n this.state = 'finished';\r\n },\r\n event: function(eventName) {\r\n if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this);\r\n if (this.options[eventName]) this.options[eventName](this);\r\n },\r\n inspect: function() {\r\n var data = $H();\r\n for(property in this)\r\n if (!Object.isFunction(this[property])) data.set(property, this[property]);\r\n return '#';\r\n }\r\n});\r\n\r\nEffect.Parallel = Class.create(Effect.Base, {\r\n initialize: function(effects) {\r\n this.effects = effects || [];\r\n this.start(arguments[1]);\r\n },\r\n update: function(position) {\r\n this.effects.invoke('render', position);\r\n },\r\n finish: function(position) {\r\n this.effects.each( function(effect) {\r\n effect.render(1.0);\r\n effect.cancel();\r\n effect.event('beforeFinish');\r\n if (effect.finish) effect.finish(position);\r\n effect.event('afterFinish');\r\n });\r\n }\r\n});\r\n\r\nEffect.Tween = Class.create(Effect.Base, {\r\n initialize: function(object, from, to) {\r\n object = Object.isString(object) ? $(object) : object;\r\n var args = $A(arguments), method = args.last(), \r\n options = args.length == 5 ? args[3] : null;\r\n this.method = Object.isFunction(method) ? method.bind(object) :\r\n Object.isFunction(object[method]) ? object[method].bind(object) : \r\n function(value) { object[method] = value };\r\n this.start(Object.extend({ from: from, to: to }, options || { }));\r\n },\r\n update: function(position) {\r\n this.method(position);\r\n }\r\n});\r\n\r\nEffect.Event = Class.create(Effect.Base, {\r\n initialize: function() {\r\n this.start(Object.extend({ duration: 0 }, arguments[0] || { }));\r\n },\r\n update: Prototype.emptyFunction\r\n});\r\n\r\nEffect.Opacity = Class.create(Effect.Base, {\r\n initialize: function(element) {\r\n this.element = $(element);\r\n if (!this.element) throw(Effect._elementDoesNotExistError);\r\n // make this work on IE on elements without 'layout'\r\n if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))\r\n this.element.setStyle({zoom: 1});\r\n var options = Object.extend({\r\n from: this.element.getOpacity() || 0.0,\r\n to: 1.0\r\n }, arguments[1] || { });\r\n this.start(options);\r\n },\r\n update: function(position) {\r\n this.element.setOpacity(position);\r\n }\r\n});\r\n\r\nEffect.Move = Class.create(Effect.Base, {\r\n initialize: function(element) {\r\n this.element = $(element);\r\n if (!this.element) throw(Effect._elementDoesNotExistError);\r\n var options = Object.extend({\r\n x: 0,\r\n y: 0,\r\n mode: 'relative'\r\n }, arguments[1] || { });\r\n this.start(options);\r\n },\r\n setup: function() {\r\n this.element.makePositioned();\r\n this.originalLeft = parseFloat(this.element.getStyle('left') || '0');\r\n this.originalTop = parseFloat(this.element.getStyle('top') || '0');\r\n if (this.options.mode == 'absolute') {\r\n this.options.x = this.options.x - this.originalLeft;\r\n this.options.y = this.options.y - this.originalTop;\r\n }\r\n },\r\n update: function(position) {\r\n this.element.setStyle({\r\n left: (this.options.x * position + this.originalLeft).round() + 'px',\r\n top: (this.options.y * position + this.originalTop).round() + 'px'\r\n });\r\n }\r\n});\r\n\r\n// for backwards compatibility\r\nEffect.MoveBy = function(element, toTop, toLeft) {\r\n return new Effect.Move(element, \r\n Object.extend({ x: toLeft, y: toTop }, arguments[3] || { }));\r\n};\r\n\r\nEffect.Scale = Class.create(Effect.Base, {\r\n initialize: function(element, percent) {\r\n this.element = $(element);\r\n if (!this.element) throw(Effect._elementDoesNotExistError);\r\n var options = Object.extend({\r\n scaleX: true,\r\n scaleY: true,\r\n scaleContent: true,\r\n scaleFromCenter: false,\r\n scaleMode: 'box', // 'box' or 'contents' or { } with provided values\r\n scaleFrom: 100.0,\r\n scaleTo: percent\r\n }, arguments[2] || { });\r\n this.start(options);\r\n },\r\n setup: function() {\r\n this.restoreAfterFinish = this.options.restoreAfterFinish || false;\r\n this.elementPositioning = this.element.getStyle('position');\r\n \r\n this.originalStyle = { };\r\n ['top','left','width','height','fontSize'].each( function(k) {\r\n this.originalStyle[k] = this.element.style[k];\r\n }.bind(this));\r\n \r\n this.originalTop = this.element.offsetTop;\r\n this.originalLeft = this.element.offsetLeft;\r\n \r\n var fontSize = this.element.getStyle('font-size') || '100%';\r\n ['em','px','%','pt'].each( function(fontSizeType) {\r\n if (fontSize.indexOf(fontSizeType)>0) {\r\n this.fontSize = parseFloat(fontSize);\r\n this.fontSizeType = fontSizeType;\r\n }\r\n }.bind(this));\r\n \r\n this.factor = (this.options.scaleTo - this.options.scaleFrom)/100;\r\n \r\n this.dims = null;\r\n if (this.options.scaleMode=='box')\r\n this.dims = [this.element.offsetHeight, this.element.offsetWidth];\r\n if (/^content/.test(this.options.scaleMode))\r\n this.dims = [this.element.scrollHeight, this.element.scrollWidth];\r\n if (!this.dims)\r\n this.dims = [this.options.scaleMode.originalHeight,\r\n this.options.scaleMode.originalWidth];\r\n },\r\n update: function(position) {\r\n var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position);\r\n if (this.options.scaleContent && this.fontSize)\r\n this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType });\r\n this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale);\r\n },\r\n finish: function(position) {\r\n if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle);\r\n },\r\n setDimensions: function(height, width) {\r\n var d = { };\r\n if (this.options.scaleX) d.width = width.round() + 'px';\r\n if (this.options.scaleY) d.height = height.round() + 'px';\r\n if (this.options.scaleFromCenter) {\r\n var topd = (height - this.dims[0])/2;\r\n var leftd = (width - this.dims[1])/2;\r\n if (this.elementPositioning == 'absolute') {\r\n if (this.options.scaleY) d.top = this.originalTop-topd + 'px';\r\n if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px';\r\n } else {\r\n if (this.options.scaleY) d.top = -topd + 'px';\r\n if (this.options.scaleX) d.left = -leftd + 'px';\r\n }\r\n }\r\n this.element.setStyle(d);\r\n }\r\n});\r\n\r\nEffect.Highlight = Class.create(Effect.Base, {\r\n initialize: function(element) {\r\n this.element = $(element);\r\n if (!this.element) throw(Effect._elementDoesNotExistError);\r\n var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { });\r\n this.start(options);\r\n },\r\n setup: function() {\r\n // Prevent executing on elements not in the layout flow\r\n if (this.element.getStyle('display')=='none') { this.cancel(); return; }\r\n // Disable background image during the effect\r\n this.oldStyle = { };\r\n if (!this.options.keepBackgroundImage) {\r\n this.oldStyle.backgroundImage = this.element.getStyle('background-image');\r\n this.element.setStyle({backgroundImage: 'none'});\r\n }\r\n if (!this.options.endcolor)\r\n this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');\r\n if (!this.options.restorecolor)\r\n this.options.restorecolor = this.element.getStyle('background-color');\r\n // init color calculations\r\n this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));\r\n this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));\r\n },\r\n update: function(position) {\r\n this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){\r\n return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) });\r\n },\r\n finish: function() {\r\n this.element.setStyle(Object.extend(this.oldStyle, {\r\n backgroundColor: this.options.restorecolor\r\n }));\r\n }\r\n});\r\n\r\nEffect.ScrollTo = function(element) {\r\n var options = arguments[1] || { },\r\n scrollOffsets = document.viewport.getScrollOffsets(),\r\n elementOffsets = $(element).cumulativeOffset(),\r\n max = (window.height || document.body.scrollHeight) - document.viewport.getHeight(); \r\n\r\n if (options.offset) elementOffsets[1] += options.offset;\r\n\r\n return new Effect.Tween(null,\r\n scrollOffsets.top,\r\n elementOffsets[1] > max ? max : elementOffsets[1],\r\n options,\r\n function(p){ scrollTo(scrollOffsets.left, p.round()) }\r\n );\r\n};\r\n\r\n/* ------------- combination effects ------------- */\r\n\r\nEffect.Fade = function(element) {\r\n element = $(element);\r\n var oldOpacity = element.getInlineOpacity();\r\n var options = Object.extend({\r\n from: element.getOpacity() || 1.0,\r\n to: 0.0,\r\n afterFinishInternal: function(effect) { \r\n if (effect.options.to!=0) return;\r\n effect.element.hide().setStyle({opacity: oldOpacity}); \r\n }\r\n }, arguments[1] || { });\r\n return new Effect.Opacity(element,options);\r\n};\r\n\r\nEffect.Appear = function(element) {\r\n element = $(element);\r\n var options = Object.extend({\r\n from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0),\r\n to: 1.0,\r\n // force Safari to render floated elements properly\r\n afterFinishInternal: function(effect) {\r\n effect.element.forceRerendering();\r\n },\r\n beforeSetup: function(effect) {\r\n effect.element.setOpacity(effect.options.from).show(); \r\n }}, arguments[1] || { });\r\n return new Effect.Opacity(element,options);\r\n};\r\n\r\nEffect.Puff = function(element) {\r\n element = $(element);\r\n var oldStyle = { \r\n opacity: element.getInlineOpacity(), \r\n position: element.getStyle('position'),\r\n top: element.style.top,\r\n left: element.style.left,\r\n width: element.style.width,\r\n height: element.style.height\r\n };\r\n return new Effect.Parallel(\r\n [ new Effect.Scale(element, 200, \r\n { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), \r\n new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], \r\n Object.extend({ duration: 1.0, \r\n beforeSetupInternal: function(effect) {\r\n Position.absolutize(effect.effects[0].element)\r\n },\r\n afterFinishInternal: function(effect) {\r\n effect.effects[0].element.hide().setStyle(oldStyle); }\r\n }, arguments[1] || { })\r\n );\r\n};\r\n\r\nEffect.BlindUp = function(element) {\r\n element = $(element);\r\n element.makeClipping();\r\n return new Effect.Scale(element, 0,\r\n Object.extend({ scaleContent: false, \r\n scaleX: false, \r\n restoreAfterFinish: true,\r\n afterFinishInternal: function(effect) {\r\n effect.element.hide().undoClipping();\r\n } \r\n }, arguments[1] || { })\r\n );\r\n};\r\n\r\nEffect.BlindDown = function(element) {\r\n element = $(element);\r\n var elementDimensions = element.getDimensions();\r\n return new Effect.Scale(element, 100, Object.extend({ \r\n scaleContent: false, \r\n scaleX: false,\r\n scaleFrom: 0,\r\n scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},\r\n restoreAfterFinish: true,\r\n afterSetup: function(effect) {\r\n effect.element.makeClipping().setStyle({height: '0px'}).show(); \r\n }, \r\n afterFinishInternal: function(effect) {\r\n effect.element.undoClipping();\r\n }\r\n }, arguments[1] || { }));\r\n};\r\n\r\nEffect.SwitchOff = function(element) {\r\n element = $(element);\r\n var oldOpacity = element.getInlineOpacity();\r\n return new Effect.Appear(element, Object.extend({\r\n duration: 0.4,\r\n from: 0,\r\n transition: Effect.Transitions.flicker,\r\n afterFinishInternal: function(effect) {\r\n new Effect.Scale(effect.element, 1, { \r\n duration: 0.3, scaleFromCenter: true,\r\n scaleX: false, scaleContent: false, restoreAfterFinish: true,\r\n beforeSetup: function(effect) { \r\n effect.element.makePositioned().makeClipping();\r\n },\r\n afterFinishInternal: function(effect) {\r\n effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity});\r\n }\r\n })\r\n }\r\n }, arguments[1] || { }));\r\n};\r\n\r\nEffect.DropOut = function(element) {\r\n element = $(element);\r\n var oldStyle = {\r\n top: element.getStyle('top'),\r\n left: element.getStyle('left'),\r\n opacity: element.getInlineOpacity() };\r\n return new Effect.Parallel(\r\n [ new Effect.Move(element, {x: 0, y: 100, sync: true }), \r\n new Effect.Opacity(element, { sync: true, to: 0.0 }) ],\r\n Object.extend(\r\n { duration: 0.5,\r\n beforeSetup: function(effect) {\r\n effect.effects[0].element.makePositioned(); \r\n },\r\n afterFinishInternal: function(effect) {\r\n effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);\r\n } \r\n }, arguments[1] || { }));\r\n};\r\n\r\nEffect.Shake = function(element) {\r\n element = $(element);\r\n var options = Object.extend({\r\n distance: 20,\r\n duration: 0.5\r\n }, arguments[1] || {});\r\n var distance = parseFloat(options.distance);\r\n var split = parseFloat(options.duration) / 10.0;\r\n var oldStyle = {\r\n top: element.getStyle('top'),\r\n left: element.getStyle('left') };\r\n return new Effect.Move(element,\r\n { x: distance, y: 0, duration: split, afterFinishInternal: function(effect) {\r\n new Effect.Move(effect.element,\r\n { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) {\r\n new Effect.Move(effect.element,\r\n { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) {\r\n new Effect.Move(effect.element,\r\n { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) {\r\n new Effect.Move(effect.element,\r\n { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) {\r\n new Effect.Move(effect.element,\r\n { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) {\r\n effect.element.undoPositioned().setStyle(oldStyle);\r\n }}) }}) }}) }}) }}) }});\r\n};\r\n\r\nEffect.SlideDown = function(element) {\r\n element = $(element).cleanWhitespace();\r\n // SlideDown need to have the content of the element wrapped in a container element with fixed height!\r\n var oldInnerBottom = element.down().getStyle('bottom');\r\n var elementDimensions = element.getDimensions();\r\n return new Effect.Scale(element, 100, Object.extend({ \r\n scaleContent: false, \r\n scaleX: false, \r\n scaleFrom: window.opera ? 0 : 1,\r\n scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},\r\n restoreAfterFinish: true,\r\n afterSetup: function(effect) {\r\n effect.element.makePositioned();\r\n effect.element.down().makePositioned();\r\n if (window.opera) effect.element.setStyle({top: ''});\r\n effect.element.makeClipping().setStyle({height: '0px'}).show(); \r\n },\r\n afterUpdateInternal: function(effect) {\r\n effect.element.down().setStyle({bottom:\r\n (effect.dims[0] - effect.element.clientHeight) + 'px' }); \r\n },\r\n afterFinishInternal: function(effect) {\r\n effect.element.undoClipping().undoPositioned();\r\n effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); }\r\n }, arguments[1] || { })\r\n );\r\n};\r\n\r\nEffect.SlideUp = function(element) {\r\n element = $(element).cleanWhitespace();\r\n var oldInnerBottom = element.down().getStyle('bottom');\r\n var elementDimensions = element.getDimensions();\r\n return new Effect.Scale(element, window.opera ? 0 : 1,\r\n Object.extend({ scaleContent: false, \r\n scaleX: false, \r\n scaleMode: 'box',\r\n scaleFrom: 100,\r\n scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},\r\n restoreAfterFinish: true,\r\n afterSetup: function(effect) {\r\n effect.element.makePositioned();\r\n effect.element.down().makePositioned();\r\n if (window.opera) effect.element.setStyle({top: ''});\r\n effect.element.makeClipping().show();\r\n }, \r\n afterUpdateInternal: function(effect) {\r\n effect.element.down().setStyle({bottom:\r\n (effect.dims[0] - effect.element.clientHeight) + 'px' });\r\n },\r\n afterFinishInternal: function(effect) {\r\n effect.element.hide().undoClipping().undoPositioned();\r\n effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom});\r\n }\r\n }, arguments[1] || { })\r\n );\r\n};\r\n\r\n// Bug in opera makes the TD containing this element expand for a instance after finish \r\nEffect.Squish = function(element) {\r\n return new Effect.Scale(element, window.opera ? 1 : 0, { \r\n restoreAfterFinish: true,\r\n beforeSetup: function(effect) {\r\n effect.element.makeClipping(); \r\n }, \r\n afterFinishInternal: function(effect) {\r\n effect.element.hide().undoClipping(); \r\n }\r\n });\r\n};\r\n\r\nEffect.Grow = function(element) {\r\n element = $(element);\r\n var options = Object.extend({\r\n direction: 'center',\r\n moveTransition: Effect.Transitions.sinoidal,\r\n scaleTransition: Effect.Transitions.sinoidal,\r\n opacityTransition: Effect.Transitions.full\r\n }, arguments[1] || { });\r\n var oldStyle = {\r\n top: element.style.top,\r\n left: element.style.left,\r\n height: element.style.height,\r\n width: element.style.width,\r\n opacity: element.getInlineOpacity() };\r\n\r\n var dims = element.getDimensions(); \r\n var initialMoveX, initialMoveY;\r\n var moveX, moveY;\r\n \r\n switch (options.direction) {\r\n case 'top-left':\r\n initialMoveX = initialMoveY = moveX = moveY = 0; \r\n break;\r\n case 'top-right':\r\n initialMoveX = dims.width;\r\n initialMoveY = moveY = 0;\r\n moveX = -dims.width;\r\n break;\r\n case 'bottom-left':\r\n initialMoveX = moveX = 0;\r\n initialMoveY = dims.height;\r\n moveY = -dims.height;\r\n break;\r\n case 'bottom-right':\r\n initialMoveX = dims.width;\r\n initialMoveY = dims.height;\r\n moveX = -dims.width;\r\n moveY = -dims.height;\r\n break;\r\n case 'center':\r\n initialMoveX = dims.width / 2;\r\n initialMoveY = dims.height / 2;\r\n moveX = -dims.width / 2;\r\n moveY = -dims.height / 2;\r\n break;\r\n }\r\n \r\n return new Effect.Move(element, {\r\n x: initialMoveX,\r\n y: initialMoveY,\r\n duration: 0.01, \r\n beforeSetup: function(effect) {\r\n effect.element.hide().makeClipping().makePositioned();\r\n },\r\n afterFinishInternal: function(effect) {\r\n new Effect.Parallel(\r\n [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),\r\n new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),\r\n new Effect.Scale(effect.element, 100, {\r\n scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, \r\n sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})\r\n ], Object.extend({\r\n beforeSetup: function(effect) {\r\n effect.effects[0].element.setStyle({height: '0px'}).show(); \r\n },\r\n afterFinishInternal: function(effect) {\r\n effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); \r\n }\r\n }, options)\r\n )\r\n }\r\n });\r\n};\r\n\r\nEffect.Shrink = function(element) {\r\n element = $(element);\r\n var options = Object.extend({\r\n direction: 'center',\r\n moveTransition: Effect.Transitions.sinoidal,\r\n scaleTransition: Effect.Transitions.sinoidal,\r\n opacityTransition: Effect.Transitions.none\r\n }, arguments[1] || { });\r\n var oldStyle = {\r\n top: element.style.top,\r\n left: element.style.left,\r\n height: element.style.height,\r\n width: element.style.width,\r\n opacity: element.getInlineOpacity() };\r\n\r\n var dims = element.getDimensions();\r\n var moveX, moveY;\r\n \r\n switch (options.direction) {\r\n case 'top-left':\r\n moveX = moveY = 0;\r\n break;\r\n case 'top-right':\r\n moveX = dims.width;\r\n moveY = 0;\r\n break;\r\n case 'bottom-left':\r\n moveX = 0;\r\n moveY = dims.height;\r\n break;\r\n case 'bottom-right':\r\n moveX = dims.width;\r\n moveY = dims.height;\r\n break;\r\n case 'center': \r\n moveX = dims.width / 2;\r\n moveY = dims.height / 2;\r\n break;\r\n }\r\n \r\n return new Effect.Parallel(\r\n [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),\r\n new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),\r\n new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })\r\n ], Object.extend({ \r\n beforeStartInternal: function(effect) {\r\n effect.effects[0].element.makePositioned().makeClipping(); \r\n },\r\n afterFinishInternal: function(effect) {\r\n effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); }\r\n }, options)\r\n );\r\n};\r\n\r\nEffect.Pulsate = function(element) {\r\n element = $(element);\r\n var options = arguments[1] || { };\r\n var oldOpacity = element.getInlineOpacity();\r\n var transition = options.transition || Effect.Transitions.sinoidal;\r\n var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) };\r\n reverser.bind(transition);\r\n return new Effect.Opacity(element, \r\n Object.extend(Object.extend({ duration: 2.0, from: 0,\r\n afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }\r\n }, options), {transition: reverser}));\r\n};\r\n\r\nEffect.Fold = function(element) {\r\n element = $(element);\r\n var oldStyle = {\r\n top: element.style.top,\r\n left: element.style.left,\r\n width: element.style.width,\r\n height: element.style.height };\r\n element.makeClipping();\r\n return new Effect.Scale(element, 5, Object.extend({ \r\n scaleContent: false,\r\n scaleX: false,\r\n afterFinishInternal: function(effect) {\r\n new Effect.Scale(element, 1, { \r\n scaleContent: false, \r\n scaleY: false,\r\n afterFinishInternal: function(effect) {\r\n effect.element.hide().undoClipping().setStyle(oldStyle);\r\n } });\r\n }}, arguments[1] || { }));\r\n};\r\n\r\nEffect.Morph = Class.create(Effect.Base, {\r\n initialize: function(element) {\r\n this.element = $(element);\r\n if (!this.element) throw(Effect._elementDoesNotExistError);\r\n var options = Object.extend({\r\n style: { }\r\n }, arguments[1] || { });\r\n \r\n if (!Object.isString(options.style)) this.style = $H(options.style);\r\n else {\r\n if (options.style.include(':'))\r\n this.style = options.style.parseStyle();\r\n else {\r\n this.element.addClassName(options.style);\r\n this.style = $H(this.element.getStyles());\r\n this.element.removeClassName(options.style);\r\n var css = this.element.getStyles();\r\n this.style = this.style.reject(function(style) {\r\n return style.value == css[style.key];\r\n });\r\n options.afterFinishInternal = function(effect) {\r\n effect.element.addClassName(effect.options.style);\r\n effect.transforms.each(function(transform) {\r\n effect.element.style[transform.style] = '';\r\n });\r\n }\r\n }\r\n }\r\n this.start(options);\r\n },\r\n \r\n setup: function(){\r\n function parseColor(color){\r\n if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff';\r\n color = color.parseColor();\r\n return $R(0,2).map(function(i){\r\n return parseInt( color.slice(i*2+1,i*2+3), 16 ) \r\n });\r\n }\r\n this.transforms = this.style.map(function(pair){\r\n var property = pair[0], value = pair[1], unit = null;\r\n\r\n if (value.parseColor('#zzzzzz') != '#zzzzzz') {\r\n value = value.parseColor();\r\n unit = 'color';\r\n } else if (property == 'opacity') {\r\n value = parseFloat(value);\r\n if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))\r\n this.element.setStyle({zoom: 1});\r\n } else if (Element.CSS_LENGTH.test(value)) {\r\n var components = value.match(/^([\\+\\-]?[0-9\\.]+)(.*)$/);\r\n value = parseFloat(components[1]);\r\n unit = (components.length == 3) ? components[2] : null;\r\n }\r\n\r\n var originalValue = this.element.getStyle(property);\r\n return { \r\n style: property.camelize(), \r\n originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), \r\n targetValue: unit=='color' ? parseColor(value) : value,\r\n unit: unit\r\n };\r\n }.bind(this)).reject(function(transform){\r\n return (\r\n (transform.originalValue == transform.targetValue) ||\r\n (\r\n transform.unit != 'color' &&\r\n (isNaN(transform.originalValue) || isNaN(transform.targetValue))\r\n )\r\n )\r\n });\r\n },\r\n update: function(position) {\r\n var style = { }, transform, i = this.transforms.length;\r\n while(i--)\r\n style[(transform = this.transforms[i]).style] = \r\n transform.unit=='color' ? '#'+\r\n (Math.round(transform.originalValue[0]+\r\n (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() +\r\n (Math.round(transform.originalValue[1]+\r\n (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() +\r\n (Math.round(transform.originalValue[2]+\r\n (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() :\r\n (transform.originalValue +\r\n (transform.targetValue - transform.originalValue) * position).toFixed(3) + \r\n (transform.unit === null ? '' : transform.unit);\r\n this.element.setStyle(style, true);\r\n }\r\n});\r\n\r\nEffect.Transform = Class.create({\r\n initialize: function(tracks){\r\n this.tracks = [];\r\n this.options = arguments[1] || { };\r\n this.addTracks(tracks);\r\n },\r\n addTracks: function(tracks){\r\n tracks.each(function(track){\r\n track = $H(track);\r\n var data = track.values().first();\r\n this.tracks.push($H({\r\n ids: track.keys().first(),\r\n effect: Effect.Morph,\r\n options: { style: data }\r\n }));\r\n }.bind(this));\r\n return this;\r\n },\r\n play: function(){\r\n return new Effect.Parallel(\r\n this.tracks.map(function(track){\r\n var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options');\r\n var elements = [$(ids) || $$(ids)].flatten();\r\n return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) });\r\n }).flatten(),\r\n this.options\r\n );\r\n }\r\n});\r\n\r\nElement.CSS_PROPERTIES = $w(\r\n 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + \r\n 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +\r\n 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +\r\n 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +\r\n 'fontSize fontWeight height left letterSpacing lineHeight ' +\r\n 'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+\r\n 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +\r\n 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +\r\n 'right textIndent top width wordSpacing zIndex');\r\n \r\nElement.CSS_LENGTH = /^(([\\+\\-]?[0-9\\.]+)(em|ex|px|in|cm|mm|pt|pc|\\%))|0$/;\r\n\r\nString.__parseStyleElement = document.createElement('div');\r\nString.prototype.parseStyle = function(){\r\n var style, styleRules = $H();\r\n if (Prototype.Browser.WebKit)\r\n style = new Element('div',{style:this}).style;\r\n else {\r\n String.__parseStyleElement.innerHTML = '
';\r\n style = String.__parseStyleElement.childNodes[0].style;\r\n }\r\n \r\n Element.CSS_PROPERTIES.each(function(property){\r\n if (style[property]) styleRules.set(property, style[property]); \r\n });\r\n \r\n if (Prototype.Browser.IE && this.include('opacity'))\r\n styleRules.set('opacity', this.match(/opacity:\\s*((?:0|1)?(?:\\.\\d*)?)/)[1]);\r\n\r\n return styleRules;\r\n};\r\n\r\nif (document.defaultView && document.defaultView.getComputedStyle) {\r\n Element.getStyles = function(element) {\r\n var css = document.defaultView.getComputedStyle($(element), null);\r\n return Element.CSS_PROPERTIES.inject({ }, function(styles, property) {\r\n styles[property] = css[property];\r\n return styles;\r\n });\r\n };\r\n} else {\r\n Element.getStyles = function(element) {\r\n element = $(element);\r\n var css = element.currentStyle, styles;\r\n styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) {\r\n results[property] = css[property];\r\n return results;\r\n });\r\n if (!styles.opacity) styles.opacity = element.getOpacity();\r\n return styles;\r\n };\r\n};\r\n\r\nEffect.Methods = {\r\n morph: function(element, style) {\r\n element = $(element);\r\n new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { }));\r\n return element;\r\n },\r\n visualEffect: function(element, effect, options) {\r\n element = $(element)\r\n var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1);\r\n new Effect[klass](element, options);\r\n return element;\r\n },\r\n highlight: function(element, options) {\r\n element = $(element);\r\n new Effect.Highlight(element, options);\r\n return element;\r\n }\r\n};\r\n\r\n$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+\r\n 'pulsate shake puff squish switchOff dropOut').each(\r\n function(effect) { \r\n Effect.Methods[effect] = function(element, options){\r\n element = $(element);\r\n Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options);\r\n return element;\r\n }\r\n }\r\n);\r\n\r\n$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( \r\n function(f) { Effect.Methods[f] = Element[f]; }\r\n);\r\n\r\nElement.addMethods(Effect.Methods);\r\n","// script.aculo.us builder.js v1.8.1, Thu Jan 03 22:07:12 -0500 2008\r\n\r\n// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)\r\n//\r\n// script.aculo.us is freely distributable under the terms of an MIT-style license.\r\n// For details, see the script.aculo.us web site: http://script.aculo.us/\r\n\r\nvar Builder = {\r\n NODEMAP: {\r\n AREA: 'map',\r\n CAPTION: 'table',\r\n COL: 'table',\r\n COLGROUP: 'table',\r\n LEGEND: 'fieldset',\r\n OPTGROUP: 'select',\r\n OPTION: 'select',\r\n PARAM: 'object',\r\n TBODY: 'table',\r\n TD: 'table',\r\n TFOOT: 'table',\r\n TH: 'table',\r\n THEAD: 'table',\r\n TR: 'table'\r\n },\r\n // note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken,\r\n // due to a Firefox bug\r\n node: function(elementName) {\r\n elementName = elementName.toUpperCase();\r\n \r\n // try innerHTML approach\r\n var parentTag = this.NODEMAP[elementName] || 'div';\r\n var parentElement = document.createElement(parentTag);\r\n try { // prevent IE \"feature\": http://dev.rubyonrails.org/ticket/2707\r\n parentElement.innerHTML = \"<\" + elementName + \">\";\r\n } catch(e) {}\r\n var element = parentElement.firstChild || null;\r\n \r\n // see if browser added wrapping tags\r\n if(element && (element.tagName.toUpperCase() != elementName))\r\n element = element.getElementsByTagName(elementName)[0];\r\n \r\n // fallback to createElement approach\r\n if(!element) element = document.createElement(elementName);\r\n \r\n // abort if nothing could be created\r\n if(!element) return;\r\n\r\n // attributes (or text)\r\n if(arguments[1])\r\n if(this._isStringOrNumber(arguments[1]) ||\r\n (arguments[1] instanceof Array) ||\r\n arguments[1].tagName) {\r\n this._children(element, arguments[1]);\r\n } else {\r\n var attrs = this._attributes(arguments[1]);\r\n if(attrs.length) {\r\n try { // prevent IE \"feature\": http://dev.rubyonrails.org/ticket/2707\r\n parentElement.innerHTML = \"<\" +elementName + \" \" +\r\n attrs + \">\";\r\n } catch(e) {}\r\n element = parentElement.firstChild || null;\r\n // workaround firefox 1.0.X bug\r\n if(!element) {\r\n element = document.createElement(elementName);\r\n for(attr in arguments[1]) \r\n element[attr == 'class' ? 'className' : attr] = arguments[1][attr];\r\n }\r\n if(element.tagName.toUpperCase() != elementName)\r\n element = parentElement.getElementsByTagName(elementName)[0];\r\n }\r\n } \r\n\r\n // text, or array of children\r\n if(arguments[2])\r\n this._children(element, arguments[2]);\r\n\r\n return element;\r\n },\r\n _text: function(text) {\r\n return document.createTextNode(text);\r\n },\r\n\r\n ATTR_MAP: {\r\n 'className': 'class',\r\n 'htmlFor': 'for'\r\n },\r\n\r\n _attributes: function(attributes) {\r\n var attrs = [];\r\n for(attribute in attributes)\r\n attrs.push((attribute in this.ATTR_MAP ? this.ATTR_MAP[attribute] : attribute) +\r\n '=\"' + attributes[attribute].toString().escapeHTML().gsub(/\"/,'"') + '\"');\r\n return attrs.join(\" \");\r\n },\r\n _children: function(element, children) {\r\n if(children.tagName) {\r\n element.appendChild(children);\r\n return;\r\n }\r\n if(typeof children=='object') { // array can hold nodes and text\r\n children.flatten().each( function(e) {\r\n if(typeof e=='object')\r\n element.appendChild(e)\r\n else\r\n if(Builder._isStringOrNumber(e))\r\n element.appendChild(Builder._text(e));\r\n });\r\n } else\r\n if(Builder._isStringOrNumber(children))\r\n element.appendChild(Builder._text(children));\r\n },\r\n _isStringOrNumber: function(param) {\r\n return(typeof param=='string' || typeof param=='number');\r\n },\r\n build: function(html) {\r\n var element = this.node('div');\r\n $(element).update(html.strip());\r\n return element.down();\r\n },\r\n dump: function(scope) { \r\n if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope \r\n \r\n var tags = (\"A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY \" +\r\n \"BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET \" +\r\n \"FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX \"+\r\n \"KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P \"+\r\n \"PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD \"+\r\n \"TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR\").split(/\\s+/);\r\n \r\n tags.each( function(tag){ \r\n scope[tag] = function() { \r\n return Builder.node.apply(Builder, [tag].concat($A(arguments))); \r\n } \r\n });\r\n }\r\n}\r\n","if (!window.Modalbox) var Modalbox = new Object();\r\n\r\nModalbox.Methods = {\r\n\toverrideAlert: false, // Override standard browser alert message with ModalBox\r\n\tfocusableElements: new Array,\r\n\tcurrFocused: 0,\r\n\tinitialized: false,\r\n\tactive: true,\r\n\toptions: {\r\n\t\ttitle: \"ModalBox Window\", // Title of the ModalBox window\r\n\t\toverlayClose: true, // Close modal box by clicking on overlay\r\n\t\twidth: 500, // Default width in px\r\n\t\theight: 90, // Default height in px\r\n\t\toverlayOpacity: .65, // Default overlay opacity\r\n\t\toverlayDuration: .25, // Default overlay fade in/out duration in seconds\r\n\t\tslideDownDuration: .2, // Default Modalbox appear slide down effect in seconds\r\n\t\tslideUpDuration: .2, // Default Modalbox hiding slide up effect in seconds\r\n\t\tresizeDuration: .25, // Default resize duration seconds\r\n\t\tinactiveFade: true, // Fades MB window on inactive state\r\n\t\ttransitions: true, // Toggles transition effects. Transitions are enabled by default\r\n loadingString: \"Please wait. Loading...\", // Default loading string message\r\n\t\tcloseString: \"Close Window\", // Default title attribute for close window link\r\n\t\tcloseValue: \"×\", // Default string for close link in the header\r\n\t\tparams: {},\r\n\t\tmethod: 'get', // Default Ajax request method\r\n\t\tautoFocusing: true, // Toggles auto-focusing for form elements. Disable for long text pages.\r\n\t\tiFrame: false,\r\n\t\taspnet: false // Should be use then using with ASP.NET costrols. Then true Modalbox window will be injected into the first form element.\r\n\t},\r\n\t_options: new Object,\r\n\t\r\n\tsetOptions: function(options) {\r\n\t\tObject.extend(this.options, options || {});\r\n\t},\r\n\t\r\n\t_init: function(options) {\r\n\t\t// Setting up original options with default options\r\n\t\tObject.extend(this._options, this.options);\r\n\t\tthis.setOptions(options);\r\n\t\t\r\n\t\t//Create the overlay\r\n\t\tthis.MBoverlay = new Element(\"div\", { id: \"MB_overlay\", opacity: \"0\" });\r\n\t \r\n // Create DOM for the window\r\n\t\tthis.MBwindow = new Element(\"div\", {id: \"MB_window\", style: \"display: none\"}).update(\r\n\t\t\tthis.MBframe = new Element(\"div\", {id: \"MB_frame\"}).update(\r\n\t\t\t\tthis.MBheader = new Element(\"div\", {id: \"MB_header\"}).update(\r\n\t\t\t\t\tthis.MBcaption = new Element(\"div\", {id: \"MB_caption\"})\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t);\r\n\t \r\n\t\tthis.MBclose = new Element(\"a\", {id: \"MB_close\", title: this.options.closeString, href: \"#\"}).update(\"\" + this.options.closeValue + \"\");\r\n\t\tthis.MBheader.insert({'bottom': this.MBclose});\r\n\t\t\r\n if (!this.options.iFrame) {\r\n this.MBcontent = new Element(\"div\", { id: \"MB_content\" }).update(\r\n this.MBloading = new Element(\"div\", { id: \"MB_loading\" }).update(this.options.loadingString)\r\n );\r\n }\r\n\t else {\r\n this.MBcontent = new Element(\"iframe\", { id: 'MB_content', 'frameborder': '0' });\r\n }\r\n\r\n\t this.MBframe.insert({'bottom':this.MBcontent});\r\n\t\t\r\n\t\t// Inserting into DOM. If parameter set and form element have been found will inject into it. Otherwise will inject into body as topmost element.\r\n\t\t// Be sure to set padding and marging to null via CSS for both body and (in case of asp.net) form elements. \r\n\t\tvar injectToEl = this.options.aspnet ? $(document.body).down('form') : $(document.body);\r\n\t\tinjectToEl.insert({'top':this.MBwindow});\r\n\t\tinjectToEl.insert({'top':this.MBoverlay});\r\n\t\t\r\n\t\t// Initial scrolling position of the window. To be used for remove scrolling effect during ModalBox appearing\r\n\t\tthis.initScrollX = window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft;\r\n\t\tthis.initScrollY = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\r\n\t\t\r\n\t\t//Adding event observers\r\n\t\tthis.hideObserver = this._hide.bindAsEventListener(this);\r\n\t\tthis.kbdObserver = this._kbdHandler.bindAsEventListener(this);\r\n\t\tthis._initObservers();\r\n\r\n\t\tthis.initialized = true; // Mark as initialized\r\n\t},\r\n\t\r\n\tshow: function(content, options) {\r\n\t\tif(!this.initialized) this._init(options); // Check for is already initialized\r\n\r\n\t\tthis.content = content;\r\n\t\tthis.setOptions(options);\r\n\t\t\r\n\t\tif(this.options.title) // Updating title of the MB\r\n\t\t\t$(this.MBcaption).update(this.options.title);\r\n\t\telse {\r\n\t\t // If title isn't given, the header will not displayed\r\n\t\t\t$(this.MBheader).hide();\r\n\t\t\t$(this.MBcaption).hide();\r\n\t\t}\r\n\r\n\t\tif(this.MBwindow.style.display == \"none\") { // First modal box appearing\r\n\t\t\tthis._appear();\r\n\t\t\tthis.event(\"onShow\"); // Passing onShow callback\r\n\t\t}\r\n\t\telse { // If MB already on the screen, update it\r\n\t\t\tthis._update();\r\n\t\t\tthis.event(\"onUpdate\"); // Passing onUpdate callback\r\n\t\t} \r\n\t},\r\n\t\r\n\thide: function(options) { // External hide method to use from external HTML and JS\r\n\t\tif(this.initialized) {\r\n\t\t\t// Reading for options/callbacks except if event given as a pararmeter\r\n\t\t\tif(options && typeof options.element != 'function') Object.extend(this.options, options); \r\n\t\t\t\r\n // Passing beforeHide callback\r\n\t\t\tthis.event(\"beforeHide\");\r\n\t\t \r\n\t\t\tif(this.options.transitions)\r\n\t\t\t\tEffect.SlideUp(this.MBwindow, { duration: this.options.slideUpDuration, transition: Effect.Transitions.sinoidal, afterFinish: this._deinit.bind(this) } );\r\n\t\t\telse {\r\n\t\t\t\t$(this.MBwindow).hide();\r\n\t\t\t\tthis._deinit();\r\n\t\t\t}\r\n\t\t} else throw(\"Modalbox is not initialized.\");\r\n\t},\r\n\t\r\n\t_hide: function(event) { // Internal hide method to use with overlay and close link\r\n\t\tevent.stop(); // Stop event propaganation for link elements\r\n\t\t/* Then clicked on overlay we'll check the option and in case of overlayClose == false we'll break hiding execution [Fix for #139] */\r\n\t\tif(event.element().id == 'MB_overlay' && !this.options.overlayClose) return false;\r\n\t\tthis.hide();\r\n\t},\r\n\t\r\n\talert: function(message){\r\n\t\tvar html = '

' + message + '

';\r\n\t\tModalbox.show(html, {title: 'Alert: ' + document.title, width: 300});\r\n\t},\r\n\r\n\t_appear: function() { // First appearing of MB\r\n\t\tif(Prototype.Browser.IE && !navigator.appVersion.match(/\\b7.0\\b/)) { // Preparing IE 6 for showing modalbox\r\n\t\t\twindow.scrollTo(0,0);\r\n\t\t\tthis._prepareIE(\"100%\", \"hidden\"); \r\n\t\t}\r\n\t\t\r\n this._setWidth();\r\n\t\tthis._setPosition();\r\n\t \r\n\t\tif(this.options.transitions) {\r\n\t\t\t$(this.MBoverlay).setStyle({opacity: 0});\r\n\t\t \r\n\t\t\tvar fadeEffect = new Effect.Fade(this.MBoverlay, {\r\n\t\t\t from: 0, \r\n\t\t\t\tto: this.options.overlayOpacity, \r\n\t\t\t\tduration: this.options.overlayDuration, \r\n\t\t\t\tafterFinish: function() {\r\n\t\t\t\t\tvar slideEffect = new Effect.SlideDown(this.MBwindow, {\r\n\t\t\t\t\t\tduration: this.options.slideDownDuration, \r\n\t\t\t\t\t\ttransition: Effect.Transitions.sinoidal, \r\n\t\t\t\t\t\tafterFinish: function(){ \r\n\t\t\t\t\t\t\tthis._setPosition(); \r\n\t\t\t\t\t\t\tthis.loadContent();\r\n\t\t\t\t\t\t}.bind(this)\r\n\t\t\t\t\t});\r\n\t\t\t\t}.bind(this)\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$(this.MBoverlay).setStyle({opacity: this.options.overlayOpacity});\r\n\t\t\t$(this.MBwindow).show();\r\n\t\t \r\n\t\t\tthis._setPosition(); \r\n\t\t\tthis.loadContent();\r\n\t\t}\r\n\r\n\t\tthis._setWidthAndPosition = this._setWidthAndPosition.bindAsEventListener(this);\r\n\t\tEvent.observe(window, \"resize\", this._setWidthAndPosition);\r\n\t},\r\n\t\r\n\tresize: function(byWidth, byHeight, options) { // Change size of MB without loading content\r\n\t\tvar wHeight = $(this.MBwindow).getHeight();\r\n\t\tvar wWidth = $(this.MBwindow).getWidth();\r\n\t\tvar hHeight = $(this.MBheader).getHeight();\r\n\t\tvar cHeight = $(this.MBcontent).getHeight();\r\n\t\tvar newHeight = ((wHeight - hHeight + byHeight) < cHeight) ? (cHeight + hHeight - wHeight) : byHeight;\r\n\r\n\t\tif(options) this.setOptions(options); // Passing callbacks\r\n\r\n\t\tif(this.options.transitions) {\r\n\t\t\tvar scaleByEffect = new Effect.ScaleBy(this.MBwindow, byWidth, newHeight, {\r\n\t\t\t duration: this.options.resizeDuration, \r\n\t\t\t\tafterFinish: function() { \r\n\t\t\t\t\tthis.event(\"_afterResize\"); // Passing internal callback\r\n\t\t\t\t\tthis.event(\"afterResize\"); // Passing callback\r\n\t\t\t\t}.bind(this)\r\n });\r\n\t\t} else {\r\n\t\t\tthis.MBwindow.setStyle({width: wWidth + byWidth + \"px\", height: wHeight + newHeight + \"px\"});\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\tthis.event(\"_afterResize\"); // Passing internal callback\r\n\t\t\t\tthis.event(\"afterResize\"); // Passing callback\r\n\t\t\t}.bind(this), 1);\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t},\r\n\t\r\n\tresizeToContent: function(options){\r\n\t\t// Resizes the modalbox window to the actual content height.\r\n\t\t// This might be useful to resize modalbox after some content modifications which were changed ccontent height.\r\n\t\tvar byHeight = this.options.height - this.MBwindow.offsetHeight;\r\n\t \r\n\t\tif(byHeight != 0) {\r\n\t\t\tif(options) this.setOptions(options); // Passing callbacks\r\n\t\t\tModalbox.resize(0, byHeight);\r\n\t\t}\r\n\t},\r\n\t\r\n\tresizeToInclude: function(element, options){\r\n\t\t// Resizes the modalbox window to the camulative height of element. Calculations are using CSS properties for margins and border.\r\n\t\t// This method might be useful to resize modalbox before including or updating content.\r\n\t\t\r\n\t\tvar el = $(element);\r\n\t\tvar elHeight = el.getHeight() + parseInt(el.getStyle('margin-top')) + parseInt(el.getStyle('margin-bottom')) + parseInt(el.getStyle('border-top-width')) + parseInt(el.getStyle('border-bottom-width'));\r\n\t\tif(elHeight > 0) {\r\n\t\t\tif(options) this.setOptions(options); // Passing callbacks\r\n\t\t\tModalbox.resize(0, elHeight);\r\n\t\t}\r\n\t},\r\n\t\r\n\t_update: function() { // Updating MB in case of wizards\r\n\t\t$(this.MBcontent).update('');\r\n\t\t\r\n this.MBcontent.appendChild(this.MBloading);\r\n\t\t\r\n $(this.MBloading).update(this.options.loadingString);\r\n\t\t\r\n this.currentDims = [this.MBwindow.offsetWidth, this.MBwindow.offsetHeight];\r\n\t\t\r\n Modalbox.resize((this.options.width - this.currentDims[0]), (this.options.height - this.currentDims[1]), {_afterResize: this._loadAfterResize.bind(this) });\r\n\t},\r\n\t\r\n\tloadContent: function () {\r\n\t\tif(this.event(\"beforeLoad\") != false) { // If callback passed false, skip loading of the content\r\n\t\t\tif(typeof this.content == 'string') {\r\n\t\t\t\tvar htmlRegExp = new RegExp(/<\\/?[^>]+>/gi);\r\n\r\n\t\t\t\tif(htmlRegExp.test(this.content)) { // Plain HTML given as a parameter\r\n\t\t\t\t\tthis._insertContent(this.content.stripScripts());\r\n\t\t\t\t\tthis._putContent(function(){\r\n\t\t\t\t\t\tthis.content.extractScripts().map(function(script) { \r\n\t\t\t\t\t\t\treturn eval(script.replace(\"\", \"\"));\r\n\t\t\t\t\t\t}.bind(window));\r\n\t\t\t\t\t}.bind(this));\r\n\t\t\t\t} else // URL given as a parameter. We'll request it via Ajax\r\n\t\t\t\t if(this.options.iFrame) {\r\n\t\t\t\t this.MBcontent.src = this.content;\r\n\t\t\t\t this.MBcontent.frameboder = 0;\r\n\t\t\t\t this.MBcontent.setStyle({'border': 0, 'width': (this.options.width - 20) + \"px\", 'height': (this.options.height - 50) + \"px\"});\r\n\t\t\t\t }\r\n\t\t\t\t else {\r\n\t\t\t var request = new Ajax.Request(this.content, {\r\n\t\t\t method: this.options.method.toLowerCase(),\r\n\t\t\t parameters: this.options.params,\r\n\t\t\t onSuccess: function(transport) {\r\n\t\t\t var response = new String(transport.responseText);\r\n\t\t\t this.response = response;\r\n\t\t\t this._insertContent(transport.responseText.stripScripts());\r\n\t\t\t this._putContent(function() {\r\n\t\t\t response.extractScripts().map(function(script) {\r\n\t\t\t return eval(script.replace(\"\", \"\"));\r\n\t\t\t }.bind(window));\r\n\t\t\t });\r\n\t\t\t }.bind(this),\r\n\t\t\t onException: function(instance, exception) {\r\n\t\t\t Modalbox.hide();\r\n\t\t\t throw ('Modalbox Loading Error: ' + exception);\r\n\t\t\t }\r\n\t\t\t }); \r\n\t\t\t }\r\n\t\t } else if (typeof this.content == 'object') {// HTML Object is given\r\n\t\t\t\tthis._insertContent(this.content);\r\n\t\t\t\tthis._putContent();\r\n\t\t\t} else {\r\n\t\t\t\tModalbox.hide();\r\n\t\t\t\tthrow('Modalbox Parameters Error: Please specify correct URL or HTML element (plain HTML or object)');\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t\r\n\t_insertContent: function(content){\r\n\t\t$(this.MBcontent).hide().update(\"\");\r\n\t\tif(typeof content == 'string') {\r\n\t\t\tsetTimeout(function() { // Hack to disable content flickering in Firefox\r\n\t\t\t\tthis.MBcontent.update(content);\r\n\t\t\t}.bind(this), 1);\r\n\t\t} else if (typeof content == 'object') { // HTML Object is given\r\n\t\t\tvar _htmlObj = content.cloneNode(true); // If node already a part of DOM we'll clone it\r\n\t\t\t// If clonable element has ID attribute defined, modifying it to prevent duplicates\r\n\t\t\tif(content.id) content.id = \"MB_\" + content.id;\r\n\t\t\t/* Add prefix for IDs on all elements inside the DOM node */\r\n\t\t\t$(content).select('*[id]').each(function(el){ el.id = \"MB_\" + el.id; });\r\n\t\t\tthis.MBcontent.appendChild(_htmlObj);\r\n\t\t\tthis.MBcontent.down().show(); // Toggle visibility for hidden nodes\r\n\t\t\tif(Prototype.Browser.IE) // Toggling back visibility for hidden selects in IE\r\n\t\t\t\t$$(\"#MB_content select\").invoke('setStyle', {'visibility': ''});\r\n\t\t}\r\n\t},\r\n\t\r\n\t_putContent: function(callback){\r\n\t\t// Prepare and resize modal box for content\r\n\t\tif(this.options.height == this._options.height) {\r\n\t\t\tsetTimeout(function() { // MSIE sometimes doesn't display content correctly\r\n\t\t\t\tModalbox.resize(0, $(this.MBcontent).getHeight() - $(this.MBwindow).getHeight() + $(this.MBheader).getHeight(), {\r\n\t\t\t\t\tafterResize: function(){\r\n\t\t\t\t\t\tthis.MBcontent.show().makePositioned();\r\n\t\t\t\t\t\tthis.focusableElements = this._findFocusableElements();\r\n\t\t\t\t\t \r\n\t\t\t\t\t\tthis._setFocus(); // Setting focus on first 'focusable' element in content (input, select, textarea, link or button)\r\n\t\t\t\t\t\t\r\n setTimeout(function(){ // MSIE fix\r\n\t\t\t\t\t\t\tif(callback != undefined)\r\n\t\t\t\t\t\t\t\tcallback(); // Executing internal JS from loaded content\r\n\t\t\t\t\t\t\tthis.event(\"afterLoad\"); // Passing callback\r\n\t\t\t\t\t\t}.bind(this),1);\r\n\t\t\t\t\t}.bind(this)\r\n\t\t\t\t});\r\n\t\t\t}.bind(this), 1);\r\n\t\t} else { // Height is defined. Creating a scrollable window\r\n\t\t\tthis._setWidth();\r\n\t\t\tthis.MBcontent.setStyle({overflow: 'auto', height: $(this.MBwindow).getHeight() - $(this.MBheader).getHeight() - 13 + 'px'});\r\n\t\t\tthis.MBcontent.show();\r\n\t\t\tthis.focusableElements = this._findFocusableElements();\r\n\t\t\tthis._setFocus(); // Setting focus on first 'focusable' element in content (input, select, textarea, link or button)\r\n\t\t\tsetTimeout(function(){ // MSIE fix\r\n\t\t\t\tif(callback != undefined)\r\n\t\t\t\t\tcallback(); // Executing internal JS from loaded content\r\n\t\t\t\tthis.event(\"afterLoad\"); // Passing callback\r\n\t\t\t}.bind(this),1);\r\n\t\t}\r\n\t},\r\n\t\r\n\tactivate: function(options){\r\n\t\tthis.setOptions(options);\r\n\t\tthis.active = true;\r\n\t \r\n\t\t$(this.MBclose).observe(\"click\", this.hideObserver);\r\n\t\t\r\n if(this.options.overlayClose)\r\n\t\t\t$(this.MBoverlay).observe(\"click\", this.hideObserver);\r\n\t\t\r\n $(this.MBclose).show();\r\n\t\t\r\n if(this.options.transitions && this.options.inactiveFade)\r\n\t\t\tnew Effect.Appear(this.MBwindow, {duration: this.options.slideUpDuration});\r\n\t},\r\n\t\r\n\tdeactivate: function(options) {\r\n\t\tthis.setOptions(options);\r\n\t\tthis.active = false;\r\n\t\t\r\n $(this.MBclose).stopObserving(\"click\", this.hideObserver);\r\n\t\t\r\n if(this.options.overlayClose)\r\n\t\t\t$(this.MBoverlay).stopObserving(\"click\", this.hideObserver);\r\n\t\t\r\n $(this.MBclose).hide();\r\n\t \r\n\t\tif(this.options.transitions && this.options.inactiveFade)\r\n\t\t\tnew Effect.Fade(this.MBwindow, {duration: this.options.slideUpDuration, to: .75});\r\n\t},\r\n\t\r\n\t_initObservers: function(){\r\n\t\t$(this.MBclose).observe(\"click\", this.hideObserver);\r\n\t \r\n\t\tif(this.options.overlayClose)\r\n\t\t\t$(this.MBoverlay).observe(\"click\", this.hideObserver);\r\n\t \r\n\t\tif(Prototype.Browser.IE)\r\n\t\t\tEvent.observe(document, \"keydown\", this.kbdObserver);\r\n\t\telse\r\n\t\t\tEvent.observe(document, \"keypress\", this.kbdObserver);\r\n\t},\r\n\t\r\n\t_removeObservers: function(){\r\n\t\t$(this.MBclose).stopObserving(\"click\", this.hideObserver);\r\n\t \r\n\t\tif(this.options.overlayClose)\r\n\t\t\t$(this.MBoverlay).stopObserving(\"click\", this.hideObserver);\r\n\t \r\n\t\tif(Prototype.Browser.IE)\r\n\t\t\tEvent.stopObserving(document, \"keydown\", this.kbdObserver);\r\n\t\telse\r\n\t\t\tEvent.stopObserving(document, \"keypress\", this.kbdObserver);\r\n\t},\r\n\t\r\n\t_loadAfterResize: function() {\r\n\t\tthis._setWidth();\r\n\t\tthis._setPosition();\r\n\t\tthis.loadContent();\r\n\t},\r\n\t\r\n\t_setFocus: function() { \r\n\t\t/* Setting focus to the first 'focusable' element which is one with tabindex = 1 or the first in the form loaded. */\r\n\t\tif(this.focusableElements.length > 0 && this.options.autoFocusing == true) {\r\n\t\t\tvar firstEl = this.focusableElements.find(function (el){\r\n\t\t\t\treturn el.tabIndex == 1;\r\n\t\t\t}) || this.focusableElements.first();\r\n\t\t \r\n\t\t\tthis.currFocused = this.focusableElements.toArray().indexOf(firstEl);\r\n\t\t\t\r\n firstEl.focus(); // Focus on first focusable element except close button\r\n\t\t} else if($(this.MBclose).visible())\r\n\t\t\t$(this.MBclose).focus(); // If no focusable elements exist focus on close button\r\n\t},\r\n\r\n\t_findFocusableElements: function() { // Collect form elements or links from MB content\r\n\t if (this.options.autoFocusing == true)\r\n\t this.MBcontent.select('input:not([type~=hidden]), select, textarea, button, a[href]').invoke('addClassName', 'MB_focusable');\r\n\r\n\t\treturn this.MBcontent.select('.MB_focusable');\r\n\t},\r\n\t\r\n\t_kbdHandler: function(event) {\r\n\t\tvar node = event.element();\r\n\t\tswitch(event.keyCode) {\r\n\t\t\tcase Event.KEY_TAB:\r\n\t\t\t\tevent.stop();\r\n\t\t\t\t\r\n\t\t\t\t/* Switching currFocused to the element which was focused by mouse instead of TAB-key. Fix for #134 */ \r\n\t\t\t\tif(node != this.focusableElements[this.currFocused])\r\n\t\t\t\t\tthis.currFocused = this.focusableElements.toArray().indexOf(node);\r\n\t\t\t\t\r\n\t\t\t\tif(!event.shiftKey) { //Focusing in direct order\r\n\t\t\t\t\tif(this.currFocused == this.focusableElements.length - 1) {\r\n\t\t\t\t\t\tthis.focusableElements.first().focus();\r\n\t\t\t\t\t\tthis.currFocused = 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.currFocused++;\r\n\t\t\t\t\t\tthis.focusableElements[this.currFocused].focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t} else { // Shift key is pressed. Focusing in reverse order\r\n\t\t\t\t\tif(this.currFocused == 0) {\r\n\t\t\t\t\t\tthis.focusableElements.last().focus();\r\n\t\t\t\t\t\tthis.currFocused = this.focusableElements.length - 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.currFocused--;\r\n\t\t\t\t\t\tthis.focusableElements[this.currFocused].focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\t\t\t\r\n\t\t\tcase Event.KEY_ESC:\r\n\t\t\t\tif(this.active) this._hide(event);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 32:\r\n\t\t\t\tthis._preventScroll(event);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 0: // For Gecko browsers compatibility\r\n\t\t\t\tif(event.which == 32) this._preventScroll(event);\r\n\t\t\t\tbreak;\r\n\t\t\tcase Event.KEY_UP:\r\n\t\t\tcase Event.KEY_DOWN:\r\n\t\t\tcase Event.KEY_PAGEDOWN:\r\n\t\t\tcase Event.KEY_PAGEUP:\r\n\t\t\tcase Event.KEY_HOME:\r\n\t\t\tcase Event.KEY_END:\r\n\t\t\t\t// Safari operates in slightly different way. This realization is still buggy in Safari.\r\n\t\t\t\tif(Prototype.Browser.WebKit && ![\"textarea\", \"select\"].include(node.tagName.toLowerCase()))\r\n\t\t\t\t\tevent.stop();\r\n\t\t\t\telse if( (node.tagName.toLowerCase() == \"input\" && [\"submit\", \"button\"].include(node.type)) || (node.tagName.toLowerCase() == \"a\") )\r\n\t\t\t\t\tevent.stop();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t},\r\n\t\r\n\t_preventScroll: function(event) { // Disabling scrolling by \"space\" key\r\n\t\tif(![\"input\", \"textarea\", \"select\", \"button\"].include(event.element().tagName.toLowerCase())) \r\n\t\t\tevent.stop();\r\n\t},\r\n\t\r\n\t_deinit: function()\r\n\t{\t\r\n\t\tthis._removeObservers();\r\n\t \r\n\t\tEvent.stopObserving(window, \"resize\", this._setWidthAndPosition );\r\n\t \r\n\t\tif(this.options.transitions) {\r\n\t\t\tEffect.toggle(this.MBoverlay, 'appear', {duration: this.options.overlayDuration, afterFinish: this._removeElements.bind(this) });\r\n\t\t} else {\r\n\t\t\tthis.MBoverlay.hide();\r\n\t\t\tthis._removeElements();\r\n\t\t}\r\n\t \r\n\t\t$(this.MBcontent).setStyle({overflow: '', height: ''});\r\n\t},\r\n\t\r\n\t_removeElements: function () {\r\n\t\t$(this.MBoverlay).remove();\r\n\t\t$(this.MBwindow).remove();\r\n\t \r\n\t\tif(Prototype.Browser.IE && !navigator.appVersion.match(/\\b7.0\\b/)) {\r\n\t\t\tthis._prepareIE(\"\", \"\"); // If set to auto MSIE will show horizontal scrolling\r\n\t\t\twindow.scrollTo(this.initScrollX, this.initScrollY);\r\n\t\t}\r\n\t\t\r\n\t\t/* Replacing prefixes 'MB_' in IDs for the original content */\r\n\t\tif(typeof this.content == 'object') {\r\n\t\t\tif(this.content.id && this.content.id.match(/MB_/)) {\r\n\t\t\t\tthis.content.id = this.content.id.replace(/MB_/, \"\");\r\n\t\t\t}\r\n\t\t \r\n\t\t\tthis.content.select('*[id]').each(function(el){ el.id = el.id.replace(/MB_/, \"\"); });\r\n\t\t}\r\n\t \r\n\t\t/* Initialized will be set to false */\r\n\t\tthis.initialized = false;\r\n\t\tthis.event(\"afterHide\"); // Passing afterHide callback\r\n\t\tthis.setOptions(this._options); //Settings options object into intial state\r\n\t},\r\n\t\r\n\t_setWidth: function () { //Set size\r\n\t\t$(this.MBwindow).setStyle({width: this.options.width + \"px\", height: this.options.height + \"px\"});\r\n\t},\r\n\t\r\n\t_setPosition: function () {\r\n\t\t$(this.MBwindow).setStyle({left: Math.round((Element.getWidth(document.body) - Element.getWidth(this.MBwindow)) / 2 ) + \"px\"});\r\n\t},\r\n\t\r\n\t_setWidthAndPosition: function () {\r\n\t\t$(this.MBwindow).setStyle({width: this.options.width + \"px\"});\r\n\t\tthis._setPosition();\r\n\t},\r\n\t\r\n\t_getScrollTop: function () { //From: http://www.quirksmode.org/js/doctypes.html\r\n\t\tvar theTop;\r\n\t\tif (document.documentElement && document.documentElement.scrollTop)\r\n\t\t\ttheTop = document.documentElement.scrollTop;\r\n\t\telse if (document.body)\r\n\t\t\ttheTop = document.body.scrollTop;\r\n\t\treturn theTop;\r\n\t},\r\n\t_prepareIE: function(height, overflow){\r\n\t\t$$('html, body').invoke('setStyle', {width: height, height: height, overflow: overflow}); // IE requires width and height set to 100% and overflow hidden\r\n\t\t$$(\"select\").invoke('setStyle', {'visibility': overflow}); // Toggle visibility for all selects in the common document\r\n\t},\r\n\tevent: function(eventName) {\r\n\t\tif(this.options[eventName]) {\r\n\t\t\tvar returnValue = this.options[eventName](); // Executing callback\r\n\t\t\tthis.options[eventName] = null; // Removing callback after execution\r\n\t\t\tif(returnValue != undefined) \r\n\t\t\t\treturn returnValue;\r\n\t\t\telse \r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n};\r\n\r\nObject.extend(Modalbox, Modalbox.Methods);\r\n\r\nif(Modalbox.overrideAlert) window.alert = Modalbox.alert;\r\n\r\nEffect.ScaleBy = Class.create();\r\nObject.extend(Object.extend(Effect.ScaleBy.prototype, Effect.Base.prototype), {\r\n initialize: function(element, byWidth, byHeight, options) {\r\n this.element = $(element)\r\n var options = Object.extend({\r\n\t scaleFromTop: true,\r\n scaleMode: 'box', // 'box' or 'contents' or {} with provided values\r\n scaleByWidth: byWidth,\r\n\t scaleByHeight: byHeight\r\n }, arguments[3] || {});\r\n this.start(options);\r\n },\r\n setup: function() {\r\n this.elementPositioning = this.element.getStyle('position');\r\n \r\n this.originalTop = this.element.offsetTop;\r\n this.originalLeft = this.element.offsetLeft;\r\n\t\r\n this.dims = null;\r\n\r\n if(this.options.scaleMode=='box')\r\n this.dims = [this.element.offsetHeight, this.element.offsetWidth];\r\n\r\n if(/^content/.test(this.options.scaleMode))\r\n this.dims = [this.element.scrollHeight, this.element.scrollWidth];\r\n\r\n if(!this.dims)\r\n this.dims = [this.options.scaleMode.originalHeight, this.options.scaleMode.originalWidth];\r\n\t \r\n\tthis.deltaY = this.options.scaleByHeight;\r\n\tthis.deltaX = this.options.scaleByWidth;\r\n },\r\n update: function(position) {\r\n var currentHeight = this.dims[0] + (this.deltaY * position);\r\n\tvar currentWidth = this.dims[1] + (this.deltaX * position);\r\n\t\r\n\tcurrentHeight = (currentHeight > 0) ? currentHeight : 0;\r\n\tcurrentWidth = (currentWidth > 0) ? currentWidth : 0;\r\n\t\r\n this.setDimensions(currentHeight, currentWidth);\r\n },\r\n\r\n setDimensions: function(height, width) {\r\n var d = {};\r\n d.width = width + 'px';\r\n d.height = height + 'px';\r\n \r\n\tvar topd = Math.round((height - this.dims[0])/2);\r\n\tvar leftd = Math.round((width - this.dims[1])/2);\r\n\r\n\tif(this.elementPositioning == 'absolute' || this.elementPositioning == 'fixed') {\r\n\t\tif(!this.options.scaleFromTop) d.top = this.originalTop-topd + 'px';\r\n\t\td.left = this.originalLeft-leftd + 'px';\r\n\t} else {\r\n\t\tif(!this.options.scaleFromTop) d.top = -topd + 'px';\r\n\t\td.left = -leftd + 'px';\r\n\t}\r\n this.element.setStyle(d);\r\n }\r\n});","var EnsembleVideo=EnsembleVideo||{};EnsembleVideo.Platform=function(){this.initCompleted=!1;this.isWebkit=!1;this.isMobilePhone=!1;this.isIphone=!1;this.isAndroid=!1;this.isIos=!1;this.isAndroidPhone=!1;this.isTierTablet=!1;this.isTierIphone=!1;this.isTierRichCss=!1;this.isTierGenericMobile=!1;this.engineWebKit=\"webkit\";this.deviceIphone=\"iphone\";this.deviceIpod=\"ipod\";this.deviceIpad=\"ipad\";this.deviceMacPpc=\"macintosh\";this.deviceAndroid=\"android\";this.deviceGoogleTV=\"googletv\";this.deviceHtcFlyer=\"htc_flyer\";this.deviceWinPhone7=\"windows phone os 7\";this.deviceWinPhone8=\"windows phone 8\";this.deviceWinMob=\"windows ce\";this.deviceWindows=\"windows\";this.deviceIeMob=\"iemobile\";this.devicePpc=\"ppc\";this.enginePie=\"wm5 pie\";this.deviceBB=\"blackberry\";this.deviceBB10=\"bb10\";this.vndRIM=\"vnd.rim\";this.deviceBBStorm=\"blackberry95\";this.deviceBBBold=\"blackberry97\";this.deviceBBBoldTouch=\"blackberry 99\";this.deviceBBTour=\"blackberry96\";this.deviceBBCurve=\"blackberry89\";this.deviceBBCurveTouch=\"blackberry 938\";this.deviceBBTorch=\"blackberry 98\";this.deviceBBPlaybook=\"playbook\";this.deviceSymbian=\"symbian\";this.deviceSymbos=\"symbos\";this.deviceS60=\"series60\";this.deviceS70=\"series70\";this.deviceS80=\"series80\";this.deviceS90=\"series90\";this.devicePalm=\"palm\";this.deviceWebOS=\"webos\";this.deviceWebOShp=\"hpwos\";this.engineBlazer=\"blazer\";this.engineXiino=\"xiino\";this.deviceNuvifone=\"nuvifone\";this.deviceBada=\"bada\";this.deviceTizen=\"tizen\";this.deviceMeego=\"meego\";this.deviceKindle=\"kindle\";this.engineSilk=\"silk-accelerated\";this.vndwap=\"vnd.wap\";this.wml=\"wml\";this.deviceTablet=\"tablet\";this.deviceBrew=\"brew\";this.deviceDanger=\"danger\";this.deviceHiptop=\"hiptop\";this.devicePlaystation=\"playstation\";this.devicePlaystationVita=\"vita\";this.deviceNintendoDs=\"nitro\";this.deviceNintendo=\"nintendo\";this.deviceWii=\"wii\";this.deviceXbox=\"xbox\";this.deviceArchos=\"archos\";this.engineChrome=\"chrome\";this.engineOpera=\"opera\";this.engineNetfront=\"netfront\";this.engineUpBrowser=\"up.browser\";this.engineOpenWeb=\"openweb\";this.deviceMidp=\"midp\";this.uplink=\"up.link\";this.engineTelecaQ=\"teleca q\";this.engineObigo=\"obigo\";this.devicePda=\"pda\";this.mini=\"mini\";this.mobile=\"mobile\";this.mobi=\"mobi\";this.maemo=\"maemo\";this.linux=\"linux\";this.mylocom2=\"sony/com\";this.manuSonyEricsson=\"sonyericsson\";this.manuericsson=\"ericsson\";this.manuSamsung1=\"sec-sgh\";this.manuSony=\"sony\";this.manuHtc=\"htc\";this.svcDocomo=\"docomo\";this.svcKddi=\"kddi\";this.svcVodafone=\"vodafone\";this.disUpdate=\"update\";this.uagent=\"\";this.isChromeBrowser=!1;this.androidVersion=0};EnsembleVideo.Platform.prototype={InitDeviceScan:function(){this.initCompleted=!1;navigator&&navigator.userAgent&&(this.uagent=navigator.userAgent.toLowerCase());this.isWebkit=this.DetectWebkit();this.isIphone=this.DetectIphone();this.isAndroid=this.DetectAndroid();this.isAndroidPhone=this.DetectAndroidPhone();this.isIos=this.DetectIos();this.isTierIphone=this.DetectTierIphone();this.isTierTablet=this.DetectTierTablet();this.isMobilePhone=this.DetectMobileQuick();this.isTierRichCss=this.DetectTierRichCss();this.isTierGenericMobile=this.DetectTierOtherPhones();this.isChromeBrowser=this.DetectChromeBrowser();this.initCompleted=!0},DetectIphone:function(){return this.initCompleted||this.isIphone?this.isIphone:this.uagent.search(this.deviceIphone)>-1?this.DetectIpad()||this.DetectIpod()?!1:!0:!1},DetectIpod:function(){return this.uagent.search(this.deviceIpod)>-1?!0:!1},DetectIphoneOrIpod:function(){return this.DetectIphone()||this.DetectIpod()?!0:!1},DetectIpad:function(){return this.uagent.search(this.deviceIpad)>-1&&this.DetectWebkit()?!0:!1},DetectIos:function(){return this.DetectIphoneOrIpod()||this.DetectIpad()?!0:!1},DetectAndroid:function(){return this.initCompleted||this.isAndroid?this.isAndroid:this.uagent.search(this.deviceAndroid)>-1?(this.androidVersion=this.DetectAndroidVersion(),!0):this.DetectGoogleTV()?!0:this.uagent.search(this.deviceHtcFlyer)>-1?!0:!1},DetectAndroidPhone:function(){return this.initCompleted||this.isAndroidPhone?this.isAndroidPhone:this.DetectAndroid()&&this.uagent.search(this.mobile)>-1?!0:this.DetectOperaAndroidPhone()?!0:this.uagent.search(this.deviceHtcFlyer)>-1?!0:!1},DetectAndroidTablet:function(){return this.DetectAndroid()?this.DetectOperaMobile()?!1:this.uagent.search(this.deviceHtcFlyer)>-1?!1:this.uagent.search(this.mobile)>-1?!1:!0:!1},DetectAndroidWebKit:function(){return this.DetectAndroid()&&this.DetectWebkit()?!0:!1},DetectGoogleTV:function(){return this.uagent.search(this.deviceGoogleTV)>-1?!0:!1},DetectWebkit:function(){return this.initCompleted||this.isWebkit?this.isWebkit:this.uagent.search(this.engineWebKit)>-1?!0:!1},DetectWindowsPhone:function(){return this.DetectWindowsPhone7()||this.DetectWindowsPhone8()?!0:!1},DetectWindowsPhone7:function(){return this.uagent.search(this.deviceWinPhone7)>-1?!0:!1},DetectWindowsPhone8:function(){return this.uagent.search(this.deviceWinPhone8)>-1?!0:!1},DetectWindowsMobile:function(){return this.DetectWindowsPhone()?!1:this.uagent.search(this.deviceWinMob)>-1||this.uagent.search(this.deviceIeMob)>-1||this.uagent.search(this.enginePie)>-1?!0:this.uagent.search(this.devicePpc)>-1&&!(this.uagent.search(this.deviceMacPpc)>-1)?!0:this.uagent.search(this.manuHtc)>-1&&this.uagent.search(this.deviceWindows)>-1?!0:!1},DetectBlackBerry:function(){return this.uagent.search(this.deviceBB)>-1||this.uagent.search(this.vndRIM)>-1?!0:this.DetectBlackBerry10Phone()?!0:!1},DetectBlackBerry10Phone:function(){return this.uagent.search(this.deviceBB10)>-1&&this.uagent.search(this.mobile)>-1?!0:!1},DetectBlackBerryTablet:function(){return this.uagent.search(this.deviceBBPlaybook)>-1?!0:!1},DetectBlackBerryWebKit:function(){return this.DetectBlackBerry()&&this.uagent.search(this.engineWebKit)>-1?!0:!1},DetectBlackBerryTouch:function(){return this.DetectBlackBerry()&&(this.uagent.search(this.deviceBBStorm)>-1||this.uagent.search(this.deviceBBTorch)>-1||this.uagent.search(this.deviceBBBoldTouch)>-1||this.uagent.search(this.deviceBBCurveTouch)>-1)?!0:!1},DetectBlackBerryHigh:function(){return this.DetectBlackBerryWebKit()?!1:this.DetectBlackBerry()&&(this.DetectBlackBerryTouch()||this.uagent.search(this.deviceBBBold)>-1||this.uagent.search(this.deviceBBTour)>-1||this.uagent.search(this.deviceBBCurve)>-1)?!0:!1},DetectBlackBerryLow:function(){return this.DetectBlackBerry()?this.DetectBlackBerryHigh()||this.DetectBlackBerryWebKit()?!1:!0:!1},DetectS60OssBrowser:function(){return this.DetectWebkit()?this.uagent.search(this.deviceS60)>-1||this.uagent.search(this.deviceSymbian)>-1?!0:!1:!1},DetectSymbianOS:function(){return this.uagent.search(this.deviceSymbian)>-1||this.uagent.search(this.deviceS60)>-1||this.uagent.search(this.deviceSymbos)>-1&&this.DetectOperaMobile||this.uagent.search(this.deviceS70)>-1||this.uagent.search(this.deviceS80)>-1||this.uagent.search(this.deviceS90)>-1?!0:!1},DetectPalmOS:function(){return this.DetectPalmWebOS()?!1:this.uagent.search(this.devicePalm)>-1||this.uagent.search(this.engineBlazer)>-1||this.uagent.search(this.engineXiino)>-1?!0:!1},DetectPalmWebOS:function(){return this.uagent.search(this.deviceWebOS)>-1?!0:!1},DetectWebOSTablet:function(){return this.uagent.search(this.deviceWebOShp)>-1&&this.uagent.search(this.deviceTablet)>-1?!0:!1},DetectChromeBrowser:function(){return this.uagent.search(this.engineChrome)>-1?!0:!1},DetectOperaMobile:function(){return this.uagent.search(this.engineOpera)>-1&&(this.uagent.search(this.mini)>-1||this.uagent.search(this.mobi)>-1)?!0:!1},DetectOperaAndroidPhone:function(){return this.uagent.search(this.engineOpera)>-1&&this.uagent.search(this.deviceAndroid)>-1&&this.uagent.search(this.mobi)>-1?!0:!1},DetectOperaAndroidTablet:function(){return this.uagent.search(this.engineOpera)>-1&&this.uagent.search(this.deviceAndroid)>-1&&this.uagent.search(this.deviceTablet)>-1?!0:!1},DetectKindle:function(){return this.uagent.search(this.deviceKindle)>-1&&!this.DetectAndroid()?!0:!1},DetectAmazonSilk:function(){return this.uagent.search(this.engineSilk)>-1?!0:!1},DetectGarminNuvifone:function(){return this.uagent.search(this.deviceNuvifone)>-1?!0:!1},DetectBada:function(){return this.uagent.search(this.deviceBada)>-1?!0:!1},DetectTizen:function(){return this.uagent.search(this.deviceTizen)>-1?!0:!1},DetectMeego:function(){return this.uagent.search(this.deviceMeego)>-1?!0:!1},DetectDangerHiptop:function(){return this.uagent.search(this.deviceDanger)>-1||this.uagent.search(this.deviceHiptop)>-1?!0:!1},DetectSonyMylo:function(){return this.uagent.search(this.manuSony)>-1&&(this.uagent.search(this.qtembedded)>-1||this.uagent.search(this.mylocom2)>-1)?!0:!1},DetectMaemoTablet:function(){return this.uagent.search(this.maemo)>-1?!0:this.uagent.search(this.linux)>-1&&this.uagent.search(this.deviceTablet)>-1&&!this.DetectWebOSTablet()&&!this.DetectAndroid()?!0:!1},DetectArchos:function(){return this.uagent.search(this.deviceArchos)>-1?!0:!1},DetectGameConsole:function(){return this.DetectSonyPlaystation()||this.DetectNintendo()||this.DetectXbox()?!0:!1},DetectSonyPlaystation:function(){return this.uagent.search(this.devicePlaystation)>-1?!0:!1},DetectGamingHandheld:function(){return this.uagent.search(this.devicePlaystation)>-1&&this.uagent.search(this.devicePlaystationVita)>-1?!0:!1},DetectNintendo:function(){return this.uagent.search(this.deviceNintendo)>-1||this.uagent.search(this.deviceWii)>-1||this.uagent.search(this.deviceNintendoDs)>-1?!0:!1},DetectXbox:function(){return this.uagent.search(this.deviceXbox)>-1?!0:!1},DetectBrewDevice:function(){return this.uagent.search(this.deviceBrew)>-1?!0:!1},DetectSmartphone:function(){return this.DetectTierIphone()||this.DetectS60OssBrowser()||this.DetectSymbianOS()||this.DetectWindowsMobile()||this.DetectBlackBerry()||this.DetectPalmOS()?!0:!1},DetectMobileQuick:function(){return this.DetectTierTablet()?!1:this.initCompleted||this.isMobilePhone?this.isMobilePhone:this.DetectSmartphone()?!0:this.uagent.search(this.mobile)>-1?!0:this.DetectKindle()||this.DetectAmazonSilk()?!0:this.uagent.search(this.deviceMidp)>-1||this.DetectBrewDevice()?!0:this.DetectOperaMobile()||this.DetectArchos()?!0:this.uagent.search(this.engineObigo)>-1||this.uagent.search(this.engineNetfront)>-1||this.uagent.search(this.engineUpBrowser)>-1||this.uagent.search(this.engineOpenWeb)>-1?!0:!1},DetectMobileLong:function(){return this.DetectMobileQuick()?!0:this.DetectGameConsole()?!0:this.DetectDangerHiptop()||this.DetectMaemoTablet()||this.DetectSonyMylo()||this.DetectGarminNuvifone()?!0:this.uagent.search(this.devicePda)>-1&&!(this.uagent.search(this.disUpdate)>-1)?!0:this.uagent.search(this.manuSamsung1)>-1||this.uagent.search(this.manuSonyEricsson)>-1||this.uagent.search(this.manuericsson)>-1?!0:this.uagent.search(this.svcDocomo)>-1||this.uagent.search(this.svcKddi)>-1||this.uagent.search(this.svcVodafone)>-1?!0:!1},DetectTierTablet:function(){return this.initCompleted||this.isTierTablet?this.isTierTablet:this.DetectIpad()||this.DetectAndroidTablet()||this.DetectBlackBerryTablet()||this.DetectWebOSTablet()?!0:!1},DetectTierIphone:function(){return this.initCompleted||this.isTierIphone?this.isTierIphone:this.DetectIphoneOrIpod()||this.DetectAndroidPhone()||this.DetectWindowsPhone()||this.DetectBlackBerry10Phone()||this.DetectPalmWebOS()||this.DetectBada()||this.DetectTizen()||this.DetectGamingHandheld()?!0:this.DetectBlackBerryWebKit()&&this.DetectBlackBerryTouch()?!0:!1},DetectTierRichCss:function(){return this.initCompleted||this.isTierRichCss?this.isTierRichCss:this.DetectTierIphone()||this.DetectKindle()||this.DetectTierTablet()?!1:this.DetectMobileQuick()?this.DetectWebkit()?!0:this.DetectS60OssBrowser()||this.DetectBlackBerryHigh()||this.DetectWindowsMobile()||this.uagent.search(this.engineTelecaQ)>-1?!0:!1:!1},DetectTierOtherPhones:function(){return this.initCompleted||this.isTierGenericMobile?this.isTierGenericMobile:this.DetectTierIphone()||this.DetectTierRichCss()||this.DetectTierTablet()?!1:this.DetectMobileLong()?!0:!1},DetectAndroidVersion:function(){var n=0;try{n=parseFloat(this.uagent.slice(this.uagent.indexOf(this.deviceAndroid)+8))}catch(t){console.log(t.message)}return n}};","var platform = new EnsembleVideo.Platform();\r\nplatform.InitDeviceScan();\r\n\r\nvar contentPreview = Class.create({\r\n debugMode: false,\r\n // Define the name of the css class that the scsript will look for\r\n // and add a modal video preview window for\r\n previewContentSelector: '[class=\"previewContent\"],.previewContent',\r\n previewUrl: 'sites/index.aspx',\r\n refereshTimer: '',\r\n timeOut: '',\r\n initialize: function() {\r\n try {\r\n\r\n // For each element that has the 'previewContentSelector' defined,\r\n // add a function to the click event\r\n jQuery('.previewContent').on('click', function() {\r\n contentPreviewInstance.preparePreview(this);\r\n });\r\n // Get the ID of the refreshTimer control from the URL of the included .aspx script tag\r\n //var id = this.getQueryStringValue('refreshTimerID', callerUrl);\r\n if ($('refreshTimer')) {\r\n this.refereshTimer = $('refreshTimer').down().readAttribute('id');\r\n }\r\n } catch (e) {\r\n\r\n }\r\n },\r\n preparePreview: function(e) {\r\n // Get the element that caused the event\r\n var element = e;\r\n\r\n if ($(element)) {\r\n // If the element that triggered the action is an image, set the element to it's parent\r\n if ($(element).readAttribute(\"src\") != null) element = $(element).up();\r\n\r\n var contentID = $(element).readAttribute('rel');\r\n var windowTitle = $(element).readAttribute('title');\r\n windowTitle = this.htmlDecode(windowTitle.unescapeHTML());\r\n\r\n // If the timer control is defined\r\n if (!this.refereshTimer.empty()) {\r\n // Stop the page refresh timer\r\n $find(this.refereshTimer)._stopTimer();\r\n }\r\n\r\n // Get a token from the server and open the quick publish site\r\n // with that token and the plugin code\r\n app.Old_App_Code.DataAccess.Token((function (previewToken) {\r\n var queryString = '?ContentID=' + contentID + '&Token=' + previewToken + \"&isResponsive=true\"+\r\n \"&displayCaptionSearch=true&displayNotes=true&isSharedLibraryContentPreview=\" + this.isSharedLibraryContentPreview();\r\n app.Old_App_Code.DataAccess.CanEmbedAndShareContent(contentID, (function (hasPermission) {\r\n if (!hasPermission) {\r\n queryString += '&displaySharing=false&displayEmbedCode=false';\r\n }\r\n this.showPreview(queryString, windowTitle);\r\n }).bind(this));\r\n }).bind(this));\r\n }\r\n },\r\n //Decode html to clear text\r\n htmlDecode: function (html) {\r\n if (html == null) return '';\r\n var a = document.createElement('a');\r\n a.innerHTML = html;\r\n return a.textContent;\r\n },\r\n showPreview: function(contentQueryString, windowTitle) {\r\n setModalConfig(windowTitle, this.previewUrl + contentQueryString);\r\n\r\n this.hackForiPadScroller();\r\n },\r\n\r\n getQueryStringValue: function(key, queryString, defaultValue) {\r\n var hash = $H(queryString.parseQuery());\r\n var returnValue = '';\r\n\r\n // Convert the query string keys to lower case\r\n hash.keys().each(function(e) {\r\n hash.set(e.toLowerCase(), hash.get(e));\r\n });\r\n\r\n if (typeof (hash.get(key.toLowerCase())) != 'undefined') returnValue = hash.get(key.toLowerCase());\r\n else if (typeof (defaultValue) != 'undefined') returnValue = defaultValue;\r\n\r\n returnValue = (returnValue == 'false') ? new Boolean(false) : (returnValue == 'true') ? new Boolean(true) : returnValue;\r\n\r\n return returnValue;\r\n },\r\n log: function(message) {\r\n if (this.debugMode == true) {\r\n try {\r\n console.log(message);\r\n } catch (e) {\r\n }\r\n }\r\n },\r\n hackForiPadScroller: function() {\r\n if (!platform.isIos)\r\n return;\r\n\r\n if ($('MB_frame')) {\r\n $('MB_frame').addClassName('MB_frame_fix_for_iPad');\r\n\r\n clearTimeout(this.timeOut);\r\n } else {\r\n this.timeOut = setTimeout(this.hackForiPadScroller, 1000);\r\n }\r\n },\r\n isSharedLibraryContentPreview: function () {\r\n return location.href.toLowerCase().indexOf('sharedlibrary.aspx') > -1;\r\n }\r\n});\r\n\r\n// Create an instance of the object after the page has loaded\r\ndocument.observe('dom:loaded', function () {\r\n contentPreviewInstance = new contentPreview();\r\n\r\n // Clear modal iframe settings on modal close event\r\n jQuery('#myModal').on('hide.bs.modal', function(e) {\r\n jQuery(\".modal-title\").text('');\r\n jQuery(\"#modalIframe\").attr(\"src\", '');\r\n jQuery(\"#modalIframe\").css(\"height\", '150px');\r\n });\r\n});\r\n\r\nfunction setModalConfig(modalTitle, iFrameSrc) {\r\n jQuery(\"#modalLabel\").text(modalTitle);\r\n jQuery(\"#modalIframe\").attr(\"src\", iFrameSrc);\r\n jQuery(\"#myModal\").modal();\r\n}","(function(a){var r=a.fn.domManip,d=\"_tmplitem\",q=/^[^<]*(<[\\w\\W]+>)[^>]*$|\\{\\{\\! /,b={},f={},e,p={key:0,data:{}},h=0,c=0,l=[];function g(e,d,g,i){var c={data:i||(d?d.data:{}),_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};e&&a.extend(c,e,{nodes:[],parent:d});if(g){c.tmpl=g;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++h;(l.length?f:b)[h]=c}return c}a.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h0?this.clone(true):this).get();a.fn[d].apply(a(i[h]),k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,l,j){if(d[0]&&d[0].nodeType){var f=a.makeArray(arguments),g=d.length,i=0,h;while(i1)f[0]=[a.makeArray(d)];if(h&&c)f[2]=function(b){a.tmpl.afterManip(this,b,j)};r.apply(this,f)}else r.apply(this,arguments);c=0;!e&&a.tmpl.complete(b);return this}});a.extend({tmpl:function(d,h,e,c){var j,k=!c;if(k){c=p;d=a.template[d]||a.template(null,d);f={}}else if(!d){d=c.tmpl;b[c.key]=c;c.nodes=[];c.wrapped&&n(c,c.wrapped);return a(i(c,null,c.tmpl(a,c)))}if(!d)return[];if(typeof h===\"function\")h=h.call(c||{});e&&e.wrapped&&n(e,e.wrapped);j=a.isArray(h)?a.map(h,function(a){return a?g(e,c,d,a):null}):[g(e,c,d,h)];return k?a(i(c,null,j)):j},tmplItem:function(b){var c;if(b instanceof a)b=b[0];while(b&&b.nodeType===1&&!(c=a.data(b,\"tmplItem\"))&&(b=b.parentNode));return c||p},template:function(c,b){if(b){if(typeof b===\"string\")b=o(b);else if(b instanceof a)b=b[0]||{};if(b.nodeType)b=a.data(b,\"tmpl\")||a.data(b,\"tmpl\",o(b.innerHTML));return typeof c===\"string\"?(a.template[c]=b):b}return c?typeof c!==\"string\"?a.template(null,c):a.template[c]||a.template(null,q.test(c)?c:a(c)):null},encode:function(a){return(\"\"+a).split(\"<\").join(\"<\").split(\">\").join(\">\").split('\"').join(\""\").split(\"'\").join(\"'\")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:\"null\"},open:\"if($notnull_1){_=_.concat($item.nest($1,$2));}\"},wrap:{_default:{$2:\"null\"},open:\"$item.calls(_,$1,$2);_=[];\",close:\"call=$item.calls();_=call._.concat($item.wrap(call,_));\"},each:{_default:{$2:\"$index, $value\"},open:\"if($notnull_1){$.each($1a,function($2){with(this){\",close:\"}});}\"},\"if\":{open:\"if(($notnull_1) && $1a){\",close:\"}\"},\"else\":{_default:{$1:\"true\"},open:\"}else if(($notnull_1) && $1a){\"},html:{open:\"if($notnull_1){_.push($1a);}\"},\"=\":{_default:{$1:\"$data\"},open:\"if($notnull_1){_.push($.encode($1a));}\"},\"!\":{open:\"\"}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function i(e,g,f){var b,c=f?a.map(f,function(a){return typeof a===\"string\"?e.key?a.replace(/(<\\w+)(?=[\\s>])(?![^>]*_tmplitem)([^>]*)/g,\"$1 \"+d+'=\"'+e.key+'\" $2'):a:i(a,e,a._ctnt)}):e;if(g)return c;c=c.join(\"\");c.replace(/^\\s*([^<\\s][^<]*)?(<[\\w\\W]+>)([^>]*[^>\\s])?\\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=j(c).concat(b);if(d)b=b.concat(j(d))});return b?b:j(c)}function j(c){var b=document.createElement(\"div\");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function(\"jQuery\",\"$item\",\"var $=jQuery,call,_=[],$data=$item.data;with($data){_.push('\"+a.trim(b).replace(/([\\\\'])/g,\"\\\\$1\").replace(/[\\r\\t\\n]/g,\" \").replace(/\\$\\{([^\\}]*)\\}/g,\"{{= $1}}\").replace(/\\{\\{(\\/?)(\\w+|.)(?:\\(((?:[^\\}]|\\}(?!\\}))*?)?\\))?(?:\\s+(.*?)?)?(\\(((?:[^\\}]|\\}(?!\\}))*?)\\))?\\s*\\}\\}/g,function(m,l,j,d,b,c,e){var i=a.tmpl.tag[j],h,f,g;if(!i)throw\"Template command not found: \"+j;h=i._default||[];if(c&&!/\\w$/.test(b)){b+=c;c=\"\"}if(b){b=k(b);e=e?\",\"+k(e)+\")\":c?\")\":\"\";f=c?b.indexOf(\".\")>-1?b+c:\"(\"+b+\").call($item\"+e:b;g=c?f:\"(typeof(\"+b+\")==='function'?(\"+b+\").call($item):(\"+b+\"))\"}else g=f=h.$1||\"null\";d=k(d);return\"');\"+i[l?\"close\":\"open\"].split(\"$notnull_1\").join(b?\"typeof(\"+b+\")!=='undefined' && (\"+b+\")!=null\":\"true\").split(\"$1a\").join(g).split(\"$1\").join(f).split(\"$2\").join(d?d.replace(/\\s*([^\\(]+)\\s*(\\((.*?)\\))?/g,function(d,c,b,a){a=a?\",\"+a+\")\":b?\")\":\"\";return a?\"(\"+c+\").call($item\"+a:d}):h.$2||\"\")+\"_.push('\"})+\"');}return _;\")}function n(c,b){c._wrap=i(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join(\"\")}function k(a){return a?a.replace(/\\\\'/g,\"'\").replace(/\\\\\\\\/g,\"\\\\\"):null}function s(b){var a=document.createElement(\"div\");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n=\"_\"+c,k,j,l={},e,p,i;for(e=0,p=o.length;e=0;i--)m(j[i]);m(k)}function m(j){var p,i=j,k,e,m;if(m=j.getAttribute(d)){while(i.parentNode&&(i=i.parentNode).nodeType===1&&!(p=i.getAttribute(d)));if(p!==m){i=i.parentNode?i.nodeType===11?0:i.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[i]||f[i],null,true);e.key=++h;b[h]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,\"tmplItem\"))){o(e.key);b[e.key]=e;i=a.data(j.parentNode,\"tmplItem\");i=i?i.key:0}if(e){k=e;while(k&&k.key!=i){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,\"tmplItem\",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent,null,true)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(\"\"):b).filter(d||\"*\"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);","/*! jQuery klass v0.2a - Jean-Louis Grall - MIT license - http://code.google.com/p/jquery-klass-plugin */\r\n\r\n( function( $, undefined ) {\r\n\r\n\r\n// Function: $.klass( [SuperKlass,] props )\r\n// Creates and returns a new class.\r\n// Usages: MyKlass = $.klass( { init: function() { ... } } )\r\n// \t\t\tMyKlass = $.klass( SuperKlass, { } )\r\n// Arguments:\r\n// \t\tSuperKlass\t(optional) The super class that the new class will extend.\r\n// \t\tprops\t\tSet of methods and other class properties.\r\n// Special props names:\r\n// \t\tinit\t\tThe constructor. If omitted, an implicit init will be created.\r\n// \t\t\t\t\tThus all classes have an init method.\r\n// \t\t_klass\t\tSet of class methods (static methods). They will be added directly to the class.\r\n// Notes:\r\n// \t- $.klass is the implicit super class, not Object\r\nvar $klass = $.klass = function( _super, fields ) {\t// The class factory. It is also the invisible \"super class\" of all classes. Methods added to its prototype will be available to all classes.\r\n\t\r\n\t\t// If no _super:\r\n\t\tif ( !fields ) {\r\n\t\t\tfields = _super;\r\n\t\t\t_super = undefined;\r\n\t\t}\r\n\t\t\r\n\t\tvar\r\n\t\t\t// init is our future class and constructor\r\n\t\t\t// If no init is provided, make one (Implicit constructor)\r\n\t\t\tklass = fields.init || ( fields.init = function() {\r\n\t\t\t\t// Automatically calls the superconstructor if there is one.\r\n\t\t\t\t_super && _super.prototype.init.apply( this, arguments );\r\n\t\t\t} ),\r\n\t\t\t\r\n\t\t\t// Used to make the new klass extends its super class\r\n\t\t\tprotoChainingProxy = function() { },\r\n\t\t\t\r\n\t\t\t// klass.prototype\r\n\t\t\tproto,\r\n\t\t\t\r\n\t\t\t// index in loop\r\n\t\t\tname;\r\n\t\t\r\n\t\t// Prepare prototype chaining to the super class\r\n\t\t// If no super class, use $.klass as implicit super class\r\n\t\tprotoChainingProxy.prototype = (_super || $klass).prototype;\r\n\t\t// Make the [[prototype]]'s chain from klass to it's super class\r\n\t\tproto = klass.prototype = new protoChainingProxy;\t// At the end we have: klass.prototype.[[prototype]] = protoChainingProxy.prototype = _super.prototype. Here the \"new\" operator creates the new object with the right prototype chain, but doesn't call the constructor because there is no \"()\". See also: http://brokenliving.blogspot.com/2009/09/simple-javascript-inheritance.html\r\n\t\t// Now we have: klass.prototype.[[prototype]] = protoChainingProxy.prototype = _super.prototype\r\n\t\t\r\n\t\t// Accessor for super klass ( can be undefined )\r\n\t\tklass._super = _super;\r\n\t\t\r\n\t\t// Add each function to the prototype of the new class (they are our new class methods):\r\n\t\tfor ( name in fields ) {\r\n\t\t\t// Add the static variables to the new class:\r\n\t\t\tif ( name === \"_klass\" ) $.extend( klass, fields[name] );\r\n\t\t\t// Each new method keeps a reference to its name and its class, allowing us to find its super method dynamically at runtime:\r\n\t\t\telse $.isFunction( proto[ name ] = fields[name] ) && ( fields[name]._klass = { klass: klass, name: name } );\r\n\t\t}\r\n\t\t\r\n\t\t// Sets the constructor for instanciated objects\r\n\t\tproto.constructor = klass;\r\n\t\t\r\n\t\treturn klass;\r\n\t},\r\n\tArray_slice = [].slice;\r\n\r\n\r\n/* $.klass.prototype */\r\n// Properties assigned to it are available from any instance of a class made by $.klass\r\n\r\n// Function: this._super( [ methodName,] arguments, args... )\r\n// Calls a super method. Finds the super method dynamically.\r\n// Usages: this._super( arguments, arg1, arg2, arg3, ... )\r\n// \t\t\tthis._super( \"methodName\", arguments, arg1, arg2, arg3, ... )\r\n// Arguments:\r\n// \t\tmethodName\t(optional) Name of the super method.\r\n// \t\t\t\t\tBy default, use the name of the calling method.\r\n// \t\targuments\tYou must give the arguments object here.\r\n// \t\targs...\t\tList of arguments for the super method.\r\n// Note:\r\n// \t- Super methods are found dynamically by the function in the super class using the method's name.\r\n$klass.prototype._super = function( arg0, arg1 ) {\r\n\tvar arg0IsArguments = arg0.callee,\r\n\t\t_klass = ( arg0IsArguments ? arg0 : arg1 ).callee._klass,\r\n\t\tname = arg0IsArguments ? _klass.name : arg0,\r\n\t\tsuperMethod = _klass.klass._super.prototype[ name ];\r\n\treturn superMethod.apply( this, Array_slice.call( arguments, 1 + ( !arg0IsArguments ) ) );\r\n};\r\n\r\n})( jQuery );","; window.Modernizr = function (a, b, c) { function v(a) { j.cssText = a } function w(a, b) { return v(prefixes.join(a + \";\") + (b || \"\")) } function x(a, b) { return typeof a === b } function y(a, b) { return !!~(\"\" + a).indexOf(b) } function z(a, b, d) { for (var e in a) { var f = b[a[e]]; if (f !== c) return d === !1 ? a[e] : x(f, \"function\") ? f.bind(d || b) : f } return !1 } var d = \"2.6.3\", e = {}, f = !0, g = b.documentElement, h = \"modernizr\", i = b.createElement(h), j = i.style, k, l = {}.toString, m = { svg: \"http://www.w3.org/2000/svg\" }, n = {}, o = {}, p = {}, q = [], r = q.slice, s, t = {}.hasOwnProperty, u; !x(t, \"undefined\") && !x(t.call, \"undefined\") ? u = function (a, b) { return t.call(a, b) } : u = function (a, b) { return b in a && x(a.constructor.prototype[b], \"undefined\") }, Function.prototype.bind || (Function.prototype.bind = function (b) { var c = this; if (typeof c != \"function\") throw new TypeError; var d = r.call(arguments, 1), e = function () { if (this instanceof e) { var a = function () { }; a.prototype = c.prototype; var f = new a, g = c.apply(f, d.concat(r.call(arguments))); return Object(g) === g ? g : f } return c.apply(b, d.concat(r.call(arguments))) }; return e }), n.svg = function () { return !!b.createElementNS && !!b.createElementNS(m.svg, \"svg\").createSVGRect }; for (var A in n) u(n, A) && (s = A.toLowerCase(), e[s] = n[A](), q.push((e[s] ? \"\" : \"no-\") + s)); return e.addTest = function (a, b) { if (typeof a == \"object\") for (var d in a) u(a, d) && e.addTest(d, a[d]); else { a = a.toLowerCase(); if (e[a] !== c) return e; b = typeof b == \"function\" ? b() : b, typeof f != \"undefined\" && f && (g.className += \" \" + (b ? \"\" : \"no-\") + a), e[a] = b } return e }, v(\"\"), i = k = null, function (a, b) { function k(a, b) { var c = a.createElement(\"p\"), d = a.getElementsByTagName(\"head\")[0] || a.documentElement; return c.innerHTML = \"x\", d.insertBefore(c.lastChild, d.firstChild) } function l() { var a = r.elements; return typeof a == \"string\" ? a.split(\" \") : a } function m(a) { var b = i[a[g]]; return b || (b = {}, h++, a[g] = h, i[h] = b), b } function n(a, c, f) { c || (c = b); if (j) return c.createElement(a); f || (f = m(c)); var g; return f.cache[a] ? g = f.cache[a].cloneNode() : e.test(a) ? g = (f.cache[a] = f.createElem(a)).cloneNode() : g = f.createElem(a), g.canHaveChildren && !d.test(a) ? f.frag.appendChild(g) : g } function o(a, c) { a || (a = b); if (j) return a.createDocumentFragment(); c = c || m(a); var d = c.frag.cloneNode(), e = 0, f = l(), g = f.length; for (; e < g; e++) d.createElement(f[e]); return d } function p(a, b) { b.cache || (b.cache = {}, b.createElem = a.createElement, b.createFrag = a.createDocumentFragment, b.frag = b.createFrag()), a.createElement = function (c) { return r.shivMethods ? n(c, a, b) : b.createElem(c) }, a.createDocumentFragment = Function(\"h,f\", \"return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(\" + l().join().replace(/\\w+/g, function (a) { return b.createElem(a), b.frag.createElement(a), 'c(\"' + a + '\")' }) + \");return n}\")(r, b.frag) } function q(a) { a || (a = b); var c = m(a); return r.shivCSS && !f && !c.hasCSS && (c.hasCSS = !!k(a, \"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}\")), j || p(a, c), a } var c = a.html5 || {}, d = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, e = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, f, g = \"_html5shiv\", h = 0, i = {}, j; (function () { try { var a = b.createElement(\"a\"); a.innerHTML = \"\", f = \"hidden\" in a, j = a.childNodes.length == 1 || function () { b.createElement(\"a\"); var a = b.createDocumentFragment(); return typeof a.cloneNode == \"undefined\" || typeof a.createDocumentFragment == \"undefined\" || typeof a.createElement == \"undefined\" }() } catch (c) { f = !0, j = !0 } })(); var r = { elements: c.elements || \"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video\", shivCSS: c.shivCSS !== !1, supportsUnknownElements: j, shivMethods: c.shivMethods !== !1, type: \"default\", shivDocument: q, createElement: n, createDocumentFragment: o }; a.html5 = r, q(b) }(this, b), e._version = d, g.className = g.className.replace(/(^|\\s)no-js(\\s|$)/, \"$1$2\") + (f ? \" js \" + q.join(\" \") : \"\"), e }(this, this.document), function (a, b, c) { function d(a) { return \"[object Function]\" == o.call(a) } function e(a) { return \"string\" == typeof a } function f() { } function g(a) { return !a || \"loaded\" == a || \"complete\" == a || \"uninitialized\" == a } function h() { var a = p.shift(); q = 1, a ? a.t ? m(function () { (\"c\" == a.t ? B.injectCss : B.injectJs)(a.s, 0, a.a, a.x, a.e, 1) }, 0) : (a(), h()) : q = 0 } function i(a, c, d, e, f, i, j) { function k(b) { if (!o && g(l.readyState) && (u.r = o = 1, !q && h(), l.onload = l.onreadystatechange = null, b)) { \"img\" != a && m(function () { t.removeChild(l) }, 50); for (var d in y[c]) y[c].hasOwnProperty(d) && y[c][d].onload() } } var j = j || B.errorTimeout, l = b.createElement(a), o = 0, r = 0, u = { t: d, s: c, e: f, a: i, x: j }; 1 === y[c] && (r = 1, y[c] = []), \"object\" == a ? l.data = c : (l.src = c, l.type = a), l.width = l.height = \"0\", l.onerror = l.onload = l.onreadystatechange = function () { k.call(this, r) }, p.splice(e, 0, u), \"img\" != a && (r || 2 === y[c] ? (t.insertBefore(l, s ? null : n), m(k, j)) : y[c].push(l)) } function j(a, b, c, d, f) { return q = 0, b = b || \"j\", e(a) ? i(\"c\" == b ? v : u, a, b, this.i++, c, d, f) : (p.splice(this.i++, 0, a), 1 == p.length && h()), this } function k() { var a = B; return a.loader = { load: j, i: 0 }, a } var l = b.documentElement, m = a.setTimeout, n = b.getElementsByTagName(\"script\")[0], o = {}.toString, p = [], q = 0, r = \"MozAppearance\" in l.style, s = r && !!b.createRange().compareNode, t = s ? l : n.parentNode, l = a.opera && \"[object Opera]\" == o.call(a.opera), l = !!b.attachEvent && !l, u = r ? \"object\" : l ? \"script\" : \"img\", v = l ? \"script\" : u, w = Array.isArray || function (a) { return \"[object Array]\" == o.call(a) }, x = [], y = {}, z = { timeout: function (a, b) { return b.length && (a.timeout = b[0]), a } }, A, B; B = function (a) { function b(a) { var a = a.split(\"!\"), b = x.length, c = a.pop(), d = a.length, c = { url: c, origUrl: c, prefixes: a }, e, f, g; for (f = 0; f < d; f++) g = a[f].split(\"=\"), (e = z[g.shift()]) && (c = e(c, g)); for (f = 0; f < b; f++) c = x[f](c); return c } function g(a, e, f, g, h) { var i = b(a), j = i.autoCallback; i.url.split(\".\").pop().split(\"?\").shift(), i.bypass || (e && (e = d(e) ? e : e[a] || e[g] || e[a.split(\"/\").pop().split(\"?\")[0]]), i.instead ? i.instead(a, e, f, g, h) : (y[i.url] ? i.noexec = !0 : y[i.url] = 1, f.load(i.url, i.forceCSS || !i.forceJS && \"css\" == i.url.split(\".\").pop().split(\"?\").shift() ? \"c\" : c, i.noexec, i.attrs, i.timeout), (d(e) || d(j)) && f.load(function () { k(), e && e(i.origUrl, h, g), j && j(i.origUrl, h, g), y[i.url] = 2 }))) } function h(a, b) { function c(a, c) { if (a) { if (e(a)) c || (j = function () { var a = [].slice.call(arguments); k.apply(this, a), l() }), g(a, j, b, 0, h); else if (Object(a) === a) for (n in m = function () { var b = 0, c; for (c in a) a.hasOwnProperty(c) && b++; return b }(), a) a.hasOwnProperty(n) && (!c && !--m && (d(j) ? j = function () { var a = [].slice.call(arguments); k.apply(this, a), l() } : j[n] = function (a) { return function () { var b = [].slice.call(arguments); a && a.apply(this, b), l() } }(k[n])), g(a[n], j, b, n, h)) } else !c && l() } var h = !!a.test, i = a.load || a.both, j = a.callback || f, k = j, l = a.complete || f, m, n; c(h ? a.yep : a.nope, !!i), i && c(i) } var i, j, l = this.yepnope.loader; if (e(a)) g(a, 0, l, 0); else if (w(a)) for (i = 0; i < a.length; i++) j = a[i], e(j) ? g(j, 0, l, 0) : w(j) ? B(j) : Object(j) === j && h(j, l); else Object(a) === a && h(a, l) }, B.addPrefix = function (a, b) { z[a] = b }, B.addFilter = function (a) { x.push(a) }, B.errorTimeout = 1e4, null == b.readyState && b.addEventListener && (b.readyState = \"loading\", b.addEventListener(\"DOMContentLoaded\", A = function () { b.removeEventListener(\"DOMContentLoaded\", A, 0), b.readyState = \"complete\" }, 0)), a.yepnope = k(), a.yepnope.executeStack = h, a.yepnope.injectJs = function (a, c, d, e, i, j) { var k = b.createElement(\"script\"), l, o, e = e || B.errorTimeout; k.src = a; for (o in d) k.setAttribute(o, d[o]); c = j ? h : c || f, k.onreadystatechange = k.onload = function () { !l && g(k.readyState) && (l = 1, c(), k.onload = k.onreadystatechange = null) }, m(function () { l || (l = 1, c(1)) }, e), i ? k.onload() : n.parentNode.insertBefore(k, n) }, a.yepnope.injectCss = function (a, c, d, e, g, i) { var e = b.createElement(\"link\"), j, c = i ? h : c || f; e.href = a, e.rel = \"stylesheet\", e.type = \"text/css\"; for (j in d) e.setAttribute(j, d[j]); g || (n.parentNode.insertBefore(e, n), m(c, 0)) } }(this, document), Modernizr.load = function () { yepnope.apply(window, [].slice.call(arguments, 0)) };","/**\r\n * For more docs and examples visit:\r\n * http://nadiana.com/jquery-confirm-plugin\r\n * For comments, suggestions or bug reporting,\r\n * email me at: http://nadiana.com/contact/\r\n */\r\n\r\njQuery.fn.confirm = function(options) {\r\n options = jQuery.extend({\r\n msg: 'Are you sure?',\r\n stopAfter: 'never',\r\n wrapper: '',\r\n eventType: 'click',\r\n dialogShow: 'show',\r\n dialogSpeed: '',\r\n timeout: 0\r\n }, options);\r\n options.stopAfter = options.stopAfter.toLowerCase();\r\n if (!options.stopAfter in ['never', 'once', 'ok', 'cancel']) {\r\n options.stopAfter = 'never';\r\n }\r\n options.buttons = jQuery.extend({\r\n ok: 'Yes',\r\n cancel: 'No',\r\n wrapper:'',\r\n separator: '/'\r\n }, options.buttons);\r\n\r\n // Shortcut to eventType.\r\n var type = options.eventType;\r\n\r\n return this.each(function() {\r\n var target = this;\r\n var $target = jQuery(target);\r\n var timer;\r\n var saveHandlers = function() {\r\n var events = jQuery._data(target, 'events');\r\n if (!events && target.href) {\r\n // No handlers but we have href\r\n $target.bind('click', function() {document.location = target.href});\r\n events = jQuery._data(target, 'events');\r\n } else if (!events) {\r\n // There are no handlers to save.\r\n return;\r\n }\r\n target._handlers = new Array();\r\n for (var i in events[type]) {\r\n target._handlers.push(events[type][i]);\r\n }\r\n }\r\n \r\n // Create ok button, and bind in to a click handler.\r\n var $ok = jQuery(options.buttons.wrapper)\r\n .append(options.buttons.ok)\r\n .click(function() {\r\n // Check if timeout is set.\r\n if (options.timeout != 0) {\r\n clearTimeout(timer);\r\n }\r\n $target.unbind(type, handler);\r\n $target.show();\r\n $dialog.hide();\r\n // Rebind the saved handlers.\r\n if (target._handlers != undefined) {\r\n jQuery.each(target._handlers, function() {\r\n $target.click(this.handler);\r\n });\r\n }\r\n // Trigger click event.\r\n $target.click();\r\n if (options.stopAfter != 'ok' && options.stopAfter != 'once') {\r\n $target.unbind(type);\r\n // Rebind the confirmation handler.\r\n $target.one(type, handler);\r\n }\r\n return false;\r\n })\r\n\r\n var $cancel = jQuery(options.buttons.wrapper).append(options.buttons.cancel).click(function() {\r\n // Check if timeout is set.\r\n if (options.timeout != 0) {\r\n clearTimeout(timer);\r\n }\r\n if (options.stopAfter != 'cancel' && options.stopAfter != 'once') {\r\n $target.one(type, handler);\r\n }\r\n $target.show();\r\n $dialog.hide();\r\n return false;\r\n });\r\n\r\n if (options.buttons.cls) {\r\n $ok.addClass(options.buttons.cls);\r\n $cancel.addClass(options.buttons.cls);\r\n }\r\n\r\n var $dialog = jQuery(options.wrapper)\r\n .append(options.msg)\r\n .append($ok)\r\n .append(options.buttons.separator)\r\n .append($cancel);\r\n\r\n var handler = function() {\r\n jQuery(this).hide();\r\n\r\n // Do this check because of a jQuery bug\r\n if (options.dialogShow != 'show') {\r\n $dialog.hide();\r\n }\r\n\r\n $dialog.insertBefore(this);\r\n // Display the dialog.\r\n $dialog[options.dialogShow](options.dialogSpeed);\r\n if (options.timeout != 0) {\r\n // Set timeout\r\n clearTimeout(timer);\r\n timer = setTimeout(function() {$cancel.click(); $target.one(type, handler);}, options.timeout);\r\n }\r\n return false;\r\n };\r\n\r\n saveHandlers();\r\n $target.unbind(type);\r\n target._confirm = handler\r\n target._confirmEvent = type;\r\n $target.one(type, handler);\r\n });\r\n}","'use strict';\r\n\r\nvar EnsembleVideo = EnsembleVideo || {};\r\n\r\nEnsembleVideo.SocialSharing = function (containerId, settings) {\r\n this.id = Math.floor(Math.random() * (100 - 1 + 1)) + 1;\r\n this.container = document.getElementById(containerId);\r\n this.listClass = \"ensembleVideoShare soc\";\r\n this.settings = {\r\n url: encodeURIComponent(settings.url != null ? settings.url : ''),\r\n title: encodeURIComponent(settings.title != null ? settings.title : ''),\r\n summary: encodeURIComponent(settings.summary != null ? settings.summary : ''),\r\n imageUrl: encodeURIComponent(settings.imageUrl != null ? settings.imageUrl : ''),\r\n security: JSON.parse(settings.security)\r\n };\r\n};\r\n\r\nEnsembleVideo.SocialSharing.prototype = function () {\r\n var templates = [\r\n {\r\n name: 'evMail',\r\n url: 'mailto:?subject={TITLE}&body={URL}%0D%0A%0D%0A{SUMMARY}',\r\n cssclass: 'soc-email1',\r\n sameWindow: true,\r\n title: 'Mail',\r\n security: 'Email'\r\n },\r\n {\r\n name: 'evCopyLink',\r\n url: '',\r\n cssclass: 'soc-link1',\r\n height: 420,\r\n width: 550,\r\n isCopyLink: true,\r\n title: 'Copy Link',\r\n security: 'CopyUrl'\r\n },\r\n {\r\n name: 'evFacebook',\r\n url: '//www.facebook.com/sharer/sharer.php?u={URL}',\r\n cssclass: 'soc-facebook',\r\n height: 306,\r\n width: 650,\r\n title: 'Facebook',\r\n security: 'Facebook'\r\n },\r\n {\r\n name: 'evTwitter',\r\n url: '//twitter.com/intent/tweet?text={TITLE}&url={URL}',\r\n cssclass: 'soc-twitter',\r\n height: 420,\r\n width: 550,\r\n title: 'Twitter',\r\n security: 'Twitter'\r\n }, \r\n {\r\n name: 'evLinkedIn',\r\n url: '//www.linkedin.com/shareArticle?mini=true&url={URL}&title={TITLE}&summary={SUMMARY}&source={URL}',\r\n cssclass: 'soc-linkedin',\r\n height: 570,\r\n width: 520,\r\n title: 'LinkedIn',\r\n security: 'LinkedIn'\r\n },\r\n {\r\n name: 'evPinterest',\r\n url: '//pinterest.com/pin/create/button/?url={URL}&description={SUMMARY}&media={IMAGE_URL}',\r\n cssclass: 'soc-pinterest',\r\n height: 650,\r\n width: 1024,\r\n title: 'Pinterest',\r\n security: 'Pinterest'\r\n },\r\n {\r\n name: 'evWhatsApp',\r\n url: 'whatsapp://send?text={URL}',\r\n cssclass: 'soc-whatsapp1',\r\n height: 420,\r\n width: 550,\r\n title: 'WhatsApp',\r\n security: 'WhatsApp'\r\n }, \r\n {\r\n name: 'evGoogleClassroom',\r\n url: '',\r\n cssclass: 'g-sharetoclassroom soc-icon-last',\r\n isGoogleClassroom: true,\r\n title: 'Google Classroom',\r\n security: 'GoogleClassroom'\r\n }\r\n ],\r\n getEmbedUrl = function () {\r\n var isInIframe = (parent !== window),\r\n parentUrl = window.location;\r\n\r\n if (isInIframe) {\r\n parentUrl = document.referrer;\r\n }\r\n\r\n return encodeURIComponent(parentUrl);\r\n },\r\n loadGoogleClassroomResources = function () {\r\n jQuery.ajax({\r\n url: \"https://apis.google.com/js/platform.js\",\r\n dataType: \"script\",\r\n cache: true\r\n });\r\n },\r\n getSecurity = function (arr, prop) {\r\n return arr[prop];\r\n },\r\n create = function () { \r\n if (this.container == null)\r\n return;\r\n\r\n loadGoogleClassroomResources(); \r\n\r\n try {\r\n var socialShareIconsList = document.createElement('ul');\r\n socialShareIconsList.className = this.listClass;\r\n socialShareIconsList.style.listStyleType = \"none\";\r\n socialShareIconsList.id = \"shareButtonsList\" + this.id;\r\n if (this.settings.url == '')\r\n this.settings.url = getEmbedUrl();\r\n\r\n for (var i = 0, len = templates.length; i < len; i++) {\r\n var template = templates[i];\r\n var shouldShowIcon = getSecurity(this.settings.security, template.security);\r\n if (!shouldShowIcon) {\r\n continue;\r\n }\r\n var shareListElement = document.createElement('li');\r\n var shareLink = document.createElement('a');\r\n shareLink.id = template.name + this.id;\r\n shareLink.className = template.cssclass; \r\n shareLink.href = template.url.replace(/{URL}/g, this.settings.url)\r\n .replace(/{TITLE}/g, this.settings.title)\r\n .replace(/{SUMMARY}/g, this.settings.summary)\r\n .replace(/{IMAGE_URL}/g, this.settings.imageUrl);\r\n shareLink.setAttribute('template', i);\r\n shareLink.setAttribute('data-toggle', 'tooltip');\r\n shareLink.setAttribute('title', template.title);\r\n\r\n\r\n if ((template.sameWindow == null || template.sameWindow == false) && !template.isCopyLink) {\r\n shareLink.onclick = function () {\r\n var id = this.getAttribute(\"template\");\r\n var left = (screen.width / 2) - (templates[id].width / 2);\r\n var top = (screen.height / 2) - (templates[id].height / 2);\r\n window.open(this.href, 'Share', 'width=' + templates[id].width + ',height=' + templates[id].height + ',scrollbars=yes,top=' + top + ', left=' + left);\r\n return false;\r\n };\r\n }\r\n \r\n if (template.isCopyLink != null && template.isCopyLink) {\r\n shareLink.href = 'javascript:void(0)';\r\n shareLink.setAttribute('copy-url-target', decodeURIComponent(this.settings.url));\r\n shareLink.setAttribute('data-copytext', 'Copy Link');\r\n shareLink.setAttribute('data-copiedtext', 'Link Copied'); \r\n }\r\n\r\n if (template.isGoogleClassroom != null && template.isGoogleClassroom) {\r\n shareLink.setAttribute('data-url', decodeURIComponent(this.settings.url));\r\n }\r\n\r\n shareListElement.appendChild(shareLink);\r\n socialShareIconsList.appendChild(shareListElement);\r\n }\r\n this.container.appendChild(socialShareIconsList);\r\n setupTooltip();\r\n resizeSocialSharingIFrame();\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n };\r\n\r\n return {\r\n Create: create\r\n };\r\n}();\r\n\r\n// Method resizes iframe for share within modal on load and window resize\r\nfunction resizeSocialSharingIFrame() {\r\n var iFrameConfig;\r\n var intervalId = setInterval(function () {\r\n\r\n // if Share content or Share tool icons are not loaded do not set iframe height\r\n if (jQuery('#ThumbnailImage').height() == 0)\r\n return;\r\n\r\n clearInterval(intervalId);\r\n\r\n iFrameConfig = setIFrameConfig(jQuery('html').height(), \"modalIframe\");\r\n window.parent.postMessage(iFrameConfig, \"*\");\r\n\r\n }, 250);\r\n\r\n window.onresize = function () {\r\n iFrameConfig = setIFrameConfig(jQuery('html').height(), \"modalIframe\");\r\n window.parent.postMessage(iFrameConfig, \"*\");\r\n };\r\n}\r\n\r\n// Method creates iFrame config that will be sent to parent window for iFrame responsivness\r\nfunction setIFrameConfig(iFrameHeight, iFrameId) {\r\n var iFrameConfig = JSON.stringify({\r\n iFrameWidth: '100%',\r\n iFrameHeight: iFrameHeight + 'px',\r\n iFrameId: iFrameId\r\n });\r\n\r\n return iFrameConfig;\r\n}\r\n\r\nfunction setupTooltip() {\r\n jQuery('[data-toggle=\"tooltip\"]').tooltip();\r\n\r\n // On mouse leave set default tooltip\r\n jQuery(document).on('mouseleave', '.soc-link1', function () {\r\n var $currentTooltip = jQuery(this);\r\n $currentTooltip.attr(\"data-original-title\", $currentTooltip.data(\"copytext\"));\r\n });\r\n\r\n // On click copy link to clipboard and show 'Copied' tooltip\r\n jQuery(document).on('click', '.soc-link1', function (e) {\r\n\r\n var $currentTooltip = jQuery(this);\r\n $currentTooltip.attr(\"data-original-title\", $currentTooltip.data(\"copiedtext\"));\r\n\r\n copyToClipboard($currentTooltip);\r\n\r\n $currentTooltip.tooltip('enable').tooltip('show');\r\n setTimeout(function () {\r\n $currentTooltip.tooltip('hide').tooltip('disable');\r\n }, 1000);\r\n\r\n });\r\n\r\n // Copy link to clipboard\r\n function copyToClipboard($currentTooltip) {\r\n var $temp = jQuery(\"\");\r\n\r\n $currentTooltip.parent().append($temp);\r\n\r\n $temp.val($currentTooltip.attr('copy-url-target')).select();\r\n document.execCommand('copy');\r\n $temp.remove();\r\n }\r\n}","function GetLanguage(useParent) {\r\n var userLanguage = \"en-US\";\r\n\r\n var cookie = getCookie(\"layout\");\r\n var cookies = cookie.split(\"&\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var dateIndex = cookies[i].indexOf(\"userLanguage=\");\r\n if (dateIndex > -1) {\r\n userLanguage = cookies[i].substring(13);\r\n break;\r\n }\r\n }\r\n\r\n if (useParent) {\r\n var indexOfDash = userLanguage.indexOf('-');\r\n if (indexOfDash > -1) {\r\n userLanguage = userLanguage.substring(0, indexOfDash);\r\n }\r\n }\r\n\r\n return userLanguage;\r\n}\r\n\r\nfunction GetUserDateFormat(originalCase) {\r\n var userDateFormat = \"MM/DD/YYYY\";\r\n\r\n var cookie = getCookie(\"layout\");\r\n var cookies = cookie.split(\"&\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var dateIndex = cookies[i].indexOf(\"userDateFormat=\");\r\n if (dateIndex > -1) {\r\n if (originalCase)\r\n userDateFormat = cookies[i].substring(15);\r\n else\r\n userDateFormat = cookies[i].substring(15).toUpperCase();\r\n break;\r\n }\r\n }\r\n\r\n return userDateFormat;\r\n}\r\n\r\nfunction GetUserDateTimeFormat () {\r\n var userDateFormat = \"MM/DD/YYYY\";\r\n var userTimeFormat = \"hh:mm A\";\r\n\r\n var cookie = getCookie(\"layout\");\r\n var cookies = cookie.split(\"&\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var dateIndex = cookies[i].indexOf(\"userDateFormat=\");\r\n var timeIndex = cookies[i].indexOf(\"userTimeFormat=\");\r\n\r\n if (dateIndex > -1) {\r\n userDateFormat = cookies[i].substring(15).toUpperCase();\r\n }\r\n\r\n if (timeIndex > -1) {\r\n userTimeFormat = cookies[i].substring(15);\r\n userTimeFormat = userTimeFormat.replace(\"tt\", \"A\");\r\n }\r\n }\r\n\r\n return userDateFormat + \" \" + userTimeFormat;\r\n}\r\n\r\nfunction GetUserTimeZone() {\r\n var userTimeZone = \"America/New_York\";\r\n\r\n var cookie = getCookie(\"layout\");\r\n var cookies = cookie.split(\"&\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var dateIndex = cookies[i].indexOf(\"userTimeZone=\");\r\n if (dateIndex > -1) {\r\n userTimeZone = cookies[i].substring(13);\r\n break;\r\n }\r\n }\r\n\r\n return userTimeZone;\r\n}\r\n\r\nfunction GetTimeFormat() {\r\n return Show24Hours() ? \"HH:mm\" : \"hh:mm A\";\r\n}\r\n\r\nfunction Show24Hours() {\r\n var show24Hours = true;\r\n var cookie = getCookie(\"layout\");\r\n var cookies = cookie.split(\"&\");\r\n\r\n for (var i = 0; i < cookies.length; i++) {\r\n var timeIndex = cookies[i].indexOf(\"userTimeFormat=\");\r\n \r\n if (timeIndex > -1) {\r\n var userTimeFormat = cookies[i].substring(15);\r\n if (userTimeFormat.indexOf(\"tt\") > -1)\r\n show24Hours = false;\r\n }\r\n }\r\n\r\n return show24Hours;\r\n}\r\n\r\nfunction getCookie(cname) {\r\n var name = cname + \"=\";\r\n var decodedCookie = decodeURIComponent(document.cookie);\r\n var ca = decodedCookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n}\r\n\r\nfunction ConvertFromUtcToLocalDateTimeFromNow(utcDateTime) {\r\n try {\r\n var justNow = \"Just Now\";\r\n\r\n var userTimeZone = GetUserTimeZone();\r\n var localDateTimeFromNow = moment.utc(utcDateTime).tz(userTimeZone).fromNow();\r\n\r\n if (localDateTimeFromNow.indexOf(justNow) > -1)\r\n localDateTimeFromNow = moment.utc(utcDateTime).tz(userTimeZone).fromNow(true);\r\n\r\n return localDateTimeFromNow;\r\n } catch (e) {\r\n console.log(e);\r\n\r\n return utcDateTime;\r\n }\r\n}\r\n\r\nfunction ConvertFromUtcToLocalDateWithUserFormat(utcDateTime) {\r\n try {\r\n var userTimeZone = GetUserTimeZone();\r\n var localDate = moment.utc(utcDateTime).tz(userTimeZone).toDate();\r\n var userdateFormat = GetUserDateFormat();\r\n\r\n return formatDateTime(localDate, userdateFormat);\r\n } catch (e) {\r\n console.log(e);\r\n\r\n return utcDateTime;\r\n }\r\n}\r\n\r\nfunction formatDateTime(dateTime, dateTimeFormat) {\r\n return moment(dateTime).format(dateTimeFormat);\r\n}","(function ($) {\r\n 'use strict';\r\n $(document).ready(function () {\r\n var accessibility = new window.Accessibility();\r\n });\r\n window.Accessibility = jQuery.klass({\r\n init: function () {\r\n // Accessibility\r\n this.tabbedControlsSelector = this.playerSelector + ', .tabbed-control, .jw-settings-content-item, .jw-button-color, .jw-logo';\r\n this.handleCustomAccessibility();\r\n },\r\n handleCustomAccessibility: function () {\r\n var context = this;\r\n $(document).on('keyup', function (e) {\r\n var keycode = (e.keyCode ? e.keyCode : e.which);\r\n // Tab or Escape key pressed\r\n if (keycode === 9 || keycode === 27) {\r\n context.setFocusOnActiveElement($(document.activeElement));\r\n }\r\n // Enter key pressed\r\n if (keycode === 13) {\r\n var activeElement = $(document.activeElement);\r\n if (context.isActiveElementEnterChangeFocusControl(activeElement)) {\r\n context.setFocusOnActiveElement(activeElement);\r\n }\r\n }\r\n });\r\n\r\n // Required in order to handle fullscreen exit using 'Esc' key\r\n if (document.addEventListener) {\r\n document.addEventListener('webkitfullscreenchange', function () { context.setFocusOnActiveElement($(document.activeElement)) }, false);\r\n document.addEventListener('mozfullscreenchange', function () { context.setFocusOnActiveElement($(document.activeElement)) }, false);\r\n document.addEventListener('fullscreenchange', function () { context.setFocusOnActiveElement($(document.activeElement)) }, false);\r\n document.addEventListener('MSFullscreenChange', function () { context.setFocusOnActiveElement($(document.activeElement)) }, false);\r\n }\r\n\r\n $(this.tabbedControlsSelector).on('blur', function () {\r\n if (context.isActiveElementTabbedControl($(document.activeElement)))\r\n return;\r\n\r\n // If active element is outside plugin remove outline\r\n $(context.tabbedControlsSelector).removeClass('focus-outline');\r\n });\r\n },\r\n setFocusOnActiveElement: function (activeElement) {\r\n $(this.tabbedControlsSelector).removeClass('focus-outline');\r\n if (this.isActiveElementTabbedControl(activeElement)) {\r\n activeElement.addClass('focus-outline');\r\n }\r\n },\r\n isActiveElementTabbedControl: function (activeElement) {\r\n return activeElement.hasClass('tabbed-control') ||\r\n activeElement.hasClass('jwplayer') ||\r\n activeElement.hasClass('jw-settings-content-item') ||\r\n activeElement.hasClass('jw-button-color') ||\r\n activeElement.hasClass('jw-logo');\r\n },\r\n isActiveElementEnterChangeFocusControl: function (activeElement) {\r\n return activeElement.hasClass('jw-settings-playbackRates') ||\r\n activeElement.hasClass('jw-icon-settings') ||\r\n activeElement.hasClass('jw-settings-quality') ||\r\n activeElement.hasClass('jw-settings-content-item');\r\n }\r\n });\r\n\r\n})(jQuery);","(function () { var t, e, s, i, r = {}.hasOwnProperty; (i = function () { function t() { this.options_index = 0, this.parsed = [] } return t.prototype.add_node = function (t) { return \"OPTGROUP\" === t.nodeName.toUpperCase() ? this.add_group(t) : this.add_option(t) }, t.prototype.add_group = function (t) { var e, s, i, r, l, o; for (e = this.parsed.length, this.parsed.push({ array_index: e, group: !0, label: this.escapeExpression(t.label), children: 0, disabled: t.disabled }), o = [], i = 0, r = (l = t.childNodes).length; i < r; i++)s = l[i], o.push(this.add_option(s, e, t.disabled)); return o }, t.prototype.add_option = function (t, e, s) { if (\"OPTION\" === t.nodeName.toUpperCase()) return \"\" !== t.text ? (null != e && (this.parsed[e].children += 1), this.parsed.push({ array_index: this.parsed.length, options_index: this.options_index, value: t.value, text: t.text, html: t.innerHTML, selected: t.selected, disabled: !0 === s ? s : t.disabled, group_array_index: e, classes: t.className, style: t.style.cssText })) : this.parsed.push({ array_index: this.parsed.length, options_index: this.options_index, empty: !0 }), this.options_index += 1 }, t.prototype.escapeExpression = function (t) { var e, s; return null == t || !1 === t ? \"\" : /[\\&\\<\\>\\\"\\'\\`]/.test(t) ? (e = { \"<\": \"<\", \">\": \">\", '\"': \""\", \"'\": \"'\", \"`\": \"`\" }, s = /&(?!\\w+;)|[\\<\\>\\\"\\'\\`]/g, t.replace(s, function (t) { return e[t] || \"&\" })) : t }, t }()).select_to_array = function (t) { var e, s, r, l, o; for (s = new i, r = 0, l = (o = t.childNodes).length; r < l; r++)e = o[r], s.add_node(e); return s.parsed }, e = function () { function t(e, s) { this.form_field = e, this.options = null != s ? s : {}, t.browser_is_supported() && (this.is_multiple = this.form_field.multiple, this.set_default_text(), this.set_default_values(), this.setup(), this.set_up_html(), this.register_observers()) } return t.prototype.set_default_values = function () { var t = this; return this.click_test_action = function (e) { return t.test_active_click(e) }, this.activate_action = function (e) { return t.activate_field(e) }, this.active_field = !1, this.mouse_on_container = !1, this.results_showing = !1, this.result_highlighted = null, this.result_single_selected = null, this.allow_single_deselect = null != this.options.allow_single_deselect && null != this.form_field.options[0] && \"\" === this.form_field.options[0].text && this.options.allow_single_deselect, this.disable_search_threshold = this.options.disable_search_threshold || 0, this.disable_search = this.options.disable_search || !1, this.enable_split_word_search = null == this.options.enable_split_word_search || this.options.enable_split_word_search, this.group_search = null == this.options.group_search || this.options.group_search, this.search_contains = this.options.search_contains || !1, this.single_backstroke_delete = null == this.options.single_backstroke_delete || this.options.single_backstroke_delete, this.max_selected_options = this.options.max_selected_options || 1 / 0, this.inherit_select_classes = this.options.inherit_select_classes || !1, this.display_selected_options = null == this.options.display_selected_options || this.options.display_selected_options, this.display_disabled_options = null == this.options.display_disabled_options || this.options.display_disabled_options }, t.prototype.set_default_text = function () { return this.form_field.getAttribute(\"data-placeholder\") ? this.default_text = this.form_field.getAttribute(\"data-placeholder\") : this.is_multiple ? this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || t.default_multiple_text : this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || t.default_single_text, this.results_none_found = this.form_field.getAttribute(\"data-no_results_text\") || this.options.no_results_text || t.default_no_result_text }, t.prototype.mouse_enter = function () { return this.mouse_on_container = !0 }, t.prototype.mouse_leave = function () { return this.mouse_on_container = !1 }, t.prototype.input_focus = function (t) { var e = this; if (this.is_multiple) { if (!this.active_field) return setTimeout(function () { return e.container_mousedown() }, 50) } else if (!this.active_field) return this.activate_field() }, t.prototype.input_blur = function (t) { var e = this; if (!this.mouse_on_container) return this.active_field = !1, setTimeout(function () { return e.blur_test() }, 100) }, t.prototype.results_option_build = function (t) { var e, s, i, r, l; for (e = \"\", i = 0, r = (l = this.results_data).length; i < r; i++)(s = l[i]).group ? e += this.result_add_group(s) : e += this.result_add_option(s), (null != t ? t.first : void 0) && (s.selected && this.is_multiple ? this.choice_build(s) : s.selected && !this.is_multiple && this.single_set_selected_text(s.text)); return e }, t.prototype.result_add_option = function (t) { var e, s; return t.search_match && this.include_option_in_results(t) ? (e = [], t.disabled || t.selected && this.is_multiple || e.push(\"active-result\"), !t.disabled || t.selected && this.is_multiple || e.push(\"disabled-result\"), t.selected && e.push(\"result-selected\"), null != t.group_array_index && e.push(\"group-option\"), \"\" !== t.classes && e.push(t.classes), s = \"\" !== t.style.cssText ? ' style=\"' + t.style + '\"' : \"\", '
  • ' + t.search_text + \"
  • \") : \"\" }, t.prototype.result_add_group = function (t) { return (t.search_match || t.group_match) && t.active_options > 0 ? '
  • ' + t.search_text + \"
  • \" : \"\" }, t.prototype.results_update_field = function () { if (this.set_default_text(), this.is_multiple || this.results_reset_cleanup(), this.result_clear_highlight(), this.result_single_selected = null, this.results_build(), this.results_showing) return this.winnow_results() }, t.prototype.results_toggle = function () { return this.results_showing ? this.results_hide() : this.results_show() }, t.prototype.results_search = function (t) { return this.results_showing ? this.winnow_results() : this.results_show() }, t.prototype.winnow_results = function () { var t, e, s, i, r, l, o, n, h, c, a, _, u; for (this.no_results_clear(), r = 0, t = (o = this.get_search_text()).replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\"), i = this.search_contains ? \"\" : \"^\", s = new RegExp(i + t, \"i\"), c = new RegExp(t, \"i\"), a = 0, _ = (u = this.results_data).length; a < _; a++)(e = u[a]).search_match = !1, l = null, this.include_option_in_results(e) && (e.group && (e.group_match = !1, e.active_options = 0), null != e.group_array_index && this.results_data[e.group_array_index] && (0 === (l = this.results_data[e.group_array_index]).active_options && l.search_match && (r += 1), l.active_options += 1), e.group && !this.group_search || (e.search_text = e.group ? e.label : e.html, e.search_match = this.search_string_match(e.search_text, s), e.search_match && !e.group && (r += 1), e.search_match ? (o.length && (n = e.search_text.search(c), h = e.search_text.substr(0, n + o.length) + \"\" + e.search_text.substr(n + o.length), e.search_text = h.substr(0, n) + \"\" + h.substr(n)), null != l && (l.group_match = !0)) : null != e.group_array_index && this.results_data[e.group_array_index].search_match && (e.search_match = !0))); return this.result_clear_highlight(), r < 1 && o.length ? (this.update_results_content(\"\"), this.no_results(o)) : (this.update_results_content(this.results_option_build()), this.winnow_results_set_highlight()) }, t.prototype.search_string_match = function (t, e) { var s, i, r, l; if (e.test(t)) return !0; if (this.enable_split_word_search && (t.indexOf(\" \") >= 0 || 0 === t.indexOf(\"[\")) && (i = t.replace(/\\[|\\]/g, \"\").split(\" \")).length) for (r = 0, l = i.length; r < l; r++)if (s = i[r], e.test(s)) return !0 }, t.prototype.choices_count = function () { var t, e, s; if (null != this.selected_option_count) return this.selected_option_count; for (this.selected_option_count = 0, t = 0, e = (s = this.form_field.options).length; t < e; t++)s[t].selected && (this.selected_option_count += 1); return this.selected_option_count }, t.prototype.choices_click = function (t) { if (t.preventDefault(), !this.results_showing && !this.is_disabled) return this.results_show() }, t.prototype.keyup_checker = function (t) { var e, s; switch (e = null != (s = t.which) ? s : t.keyCode, this.search_field_scale(), e) { case 8: if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) return this.keydown_backstroke(); if (!this.pending_backstroke) return this.result_clear_highlight(), this.results_search(); break; case 13: if (t.preventDefault(), this.results_showing) return this.result_select(t); break; case 27: return this.results_showing && this.results_hide(), !0; case 9: case 38: case 40: case 16: case 91: case 17: break; default: return this.results_search() } }, t.prototype.container_width = function () { return null != this.options.width ? this.options.width : this.form_field.offsetWidth + \"px\" }, t.prototype.include_option_in_results = function (t) { return !(this.is_multiple && !this.display_selected_options && t.selected) && (!(!this.display_disabled_options && t.disabled) && !t.empty) }, t.browser_is_supported = function () { return \"Microsoft Internet Explorer\" !== window.navigator.appName || document.documentMode >= 8 }, t.default_multiple_text = \"Select Some Options\", t.default_single_text = \"Select an Option\", t.default_no_result_text = \"No results match\", t }(), (t = jQuery).fn.extend({ chosen: function (i) { return e.browser_is_supported() ? this.each(function (e) { var r, l; l = (r = t(this)).data(\"chosen\"), \"destroy\" === i && l ? l.destroy() : l || r.data(\"chosen\", new s(this, i)) }) : this } }), s = function (s) { function l() { return l.__super__.constructor.apply(this, arguments) } return function (t, e) { for (var s in e) r.call(e, s) && (t[s] = e[s]); function i() { this.constructor = t } i.prototype = e.prototype, t.prototype = new i, t.__super__ = e.prototype }(l, e), l.prototype.setup = function () { return this.form_field_jq = t(this.form_field), this.current_selectedIndex = this.form_field.selectedIndex, this.is_rtl = this.form_field_jq.hasClass(\"chosen-rtl\") }, l.prototype.set_up_html = function () { var e, s; return (e = [\"chosen-container\"]).push(\"chosen-container-\" + (this.is_multiple ? \"multi\" : \"single\")), this.inherit_select_classes && this.form_field.className && e.push(this.form_field.className), this.is_rtl && e.push(\"chosen-rtl\"), s = { class: e.join(\" \"), style: \"width: \" + this.container_width() + \";\", title: this.form_field.title }, this.form_field.id.length && (s.id = this.form_field.id.replace(/[^\\w]/g, \"_\") + \"_chosen\"), this.container = t(\"
    \", s), this.is_multiple ? this.container.html('
      ') : this.container.html('' + this.default_text + '
        '), this.form_field_jq.hide().after(this.container), this.dropdown = this.container.find(\"div.chosen-drop\").first(), this.search_field = this.container.find(\"input\").first(), this.search_results = this.container.find(\"ul.chosen-results\").first(), this.search_field_scale(), this.search_no_results = this.container.find(\"li.no-results\").first(), this.is_multiple ? (this.search_choices = this.container.find(\"ul.chosen-choices\").first(), this.search_container = this.container.find(\"li.search-field\").first()) : (this.search_container = this.container.find(\"div.chosen-search\").first(), this.selected_item = this.container.find(\".chosen-single\").first()), this.results_build(), this.set_tab_index(), this.set_label_behavior(), this.form_field_jq.trigger(\"chosen:ready\", { chosen: this }) }, l.prototype.register_observers = function () { var t = this; return this.container.bind(\"mousedown.chosen\", function (e) { t.container_mousedown(e) }), this.container.bind(\"mouseup.chosen\", function (e) { t.container_mouseup(e) }), this.container.bind(\"mouseenter.chosen\", function (e) { t.mouse_enter(e) }), this.container.bind(\"mouseleave.chosen\", function (e) { t.mouse_leave(e) }), this.search_results.bind(\"mouseup.chosen\", function (e) { t.search_results_mouseup(e) }), this.search_results.bind(\"mouseover.chosen\", function (e) { t.search_results_mouseover(e) }), this.search_results.bind(\"mouseout.chosen\", function (e) { t.search_results_mouseout(e) }), this.search_results.bind(\"mousewheel.chosen DOMMouseScroll.chosen\", function (e) { t.search_results_mousewheel(e) }), this.form_field_jq.bind(\"chosen:updated.chosen\", function (e) { t.results_update_field(e) }), this.form_field_jq.bind(\"chosen:activate.chosen\", function (e) { t.activate_field(e) }), this.form_field_jq.bind(\"chosen:open.chosen\", function (e) { t.container_mousedown(e) }), this.search_field.bind(\"blur.chosen\", function (e) { t.input_blur(e) }), this.search_field.bind(\"keyup.chosen\", function (e) { t.keyup_checker(e) }), this.search_field.bind(\"keydown.chosen\", function (e) { t.keydown_checker(e) }), this.search_field.bind(\"focus.chosen\", function (e) { t.input_focus(e) }), this.is_multiple ? this.search_choices.bind(\"click.chosen\", function (e) { t.choices_click(e) }) : this.container.bind(\"click.chosen\", function (t) { t.preventDefault() }) }, l.prototype.destroy = function () { return t(document).unbind(\"click.chosen\", this.click_test_action), this.search_field[0].tabIndex && (this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex), this.container.remove(), this.form_field_jq.removeData(\"chosen\"), this.form_field_jq.show() }, l.prototype.search_field_disabled = function () { return this.is_disabled = this.form_field_jq[0].disabled, this.is_disabled ? (this.container.addClass(\"chosen-disabled\"), this.search_field[0].disabled = !0, this.is_multiple || this.selected_item.unbind(\"focus.chosen\", this.activate_action), this.close_field()) : (this.container.removeClass(\"chosen-disabled\"), this.search_field[0].disabled = !1, this.is_multiple ? void 0 : this.selected_item.bind(\"focus.chosen\", this.activate_action)) }, l.prototype.container_mousedown = function (e) { if (!this.is_disabled && (e && \"mousedown\" === e.type && !this.results_showing && e.preventDefault(), null == e || !t(e.target).hasClass(\"search-choice-close\"))) return this.active_field ? this.is_multiple || !e || t(e.target)[0] !== this.selected_item[0] && !t(e.target).parents(\"a.chosen-single\").length || (e.preventDefault(), this.results_toggle()) : (this.is_multiple && this.search_field.val(\"\"), t(document).bind(\"click.chosen\", this.click_test_action), this.results_show()), this.activate_field() }, l.prototype.container_mouseup = function (t) { if (\"ABBR\" === t.target.nodeName && !this.is_disabled) return this.results_reset(t) }, l.prototype.search_results_mousewheel = function (t) { var e, s, i; if (null != (e = -(null != (s = t.originalEvent) ? s.wheelDelta : void 0) || (null != (i = t.originialEvent) ? i.detail : void 0))) return t.preventDefault(), \"DOMMouseScroll\" === t.type && (e *= 40), this.search_results.scrollTop(e + this.search_results.scrollTop()) }, l.prototype.blur_test = function (t) { if (!this.active_field && this.container.hasClass(\"chosen-container-active\")) return this.close_field() }, l.prototype.close_field = function () { return t(document).unbind(\"click.chosen\", this.click_test_action), this.active_field = !1, this.results_hide(), this.container.removeClass(\"chosen-container-active\"), this.clear_backstroke(), this.show_search_field_default(), this.search_field_scale() }, l.prototype.activate_field = function () { return this.container.addClass(\"chosen-container-active\"), this.active_field = !0, this.search_field.val(this.search_field.val()), this.search_field.focus() }, l.prototype.test_active_click = function (e) { return this.container.is(t(e.target).closest(\".chosen-container\")) ? this.active_field = !0 : this.close_field() }, l.prototype.results_build = function () { return this.parsing = !0, this.selected_option_count = null, this.results_data = i.select_to_array(this.form_field), this.is_multiple ? this.search_choices.find(\"li.search-choice\").remove() : this.is_multiple || (this.single_set_selected_text(), this.disable_search || this.form_field.options.length <= this.disable_search_threshold ? (this.search_field[0].readOnly = !0, this.container.addClass(\"chosen-container-single-nosearch\")) : (this.search_field[0].readOnly = !1, this.container.removeClass(\"chosen-container-single-nosearch\"))), this.update_results_content(this.results_option_build({ first: !0 })), this.search_field_disabled(), this.show_search_field_default(), this.search_field_scale(), this.parsing = !1 }, l.prototype.result_do_highlight = function (t) { var e, s, i, r, l; if (t.length) { if (this.result_clear_highlight(), this.result_highlight = t, this.result_highlight.addClass(\"highlighted\"), r = (i = parseInt(this.search_results.css(\"maxHeight\"), 10)) + (l = this.search_results.scrollTop()), (e = (s = this.result_highlight.position().top + this.search_results.scrollTop()) + this.result_highlight.outerHeight()) >= r) return this.search_results.scrollTop(e - i > 0 ? e - i : 0); if (s < l) return this.search_results.scrollTop(s) } }, l.prototype.result_clear_highlight = function () { return this.result_highlight && this.result_highlight.removeClass(\"highlighted\"), this.result_highlight = null }, l.prototype.results_show = function () { return this.is_multiple && this.max_selected_options <= this.choices_count() ? (this.form_field_jq.trigger(\"chosen:maxselected\", { chosen: this }), !1) : (this.container.hasClass(\"chosen-disabled\") || this.container.addClass(\"chosen-with-drop\"), this.form_field_jq.trigger(\"chosen:showing_dropdown\", { chosen: this }), this.results_showing = !0, this.search_field.focus(), this.search_field.val(this.search_field.val()), this.winnow_results()) }, l.prototype.update_results_content = function (t) { return this.search_results.html(t) }, l.prototype.results_hide = function () { return this.results_showing && (this.result_clear_highlight(), this.container.removeClass(\"chosen-with-drop\"), this.form_field_jq.trigger(\"chosen:hiding_dropdown\", { chosen: this })), this.results_showing = !1 }, l.prototype.set_tab_index = function (t) { var e; if (this.form_field.tabIndex) return e = this.form_field.tabIndex, this.form_field.tabIndex = -1, this.search_field[0].tabIndex = e }, l.prototype.set_label_behavior = function () { var e = this; if (this.form_field_label = this.form_field_jq.parents(\"label\"), !this.form_field_label.length && this.form_field.id.length && (this.form_field_label = t(\"label[for='\" + this.form_field.id + \"']\")), this.form_field_label.length > 0) return this.form_field_label.bind(\"click.chosen\", function (t) { return e.is_multiple ? e.container_mousedown(t) : e.activate_field() }) }, l.prototype.show_search_field_default = function () { return this.is_multiple && this.choices_count() < 1 && !this.active_field ? (this.search_field.val(this.default_text), this.search_field.addClass(\"default\")) : (this.search_field.val(\"\"), this.search_field.removeClass(\"default\")) }, l.prototype.search_results_mouseup = function (e) { var s; if ((s = t(e.target).hasClass(\"active-result\") ? t(e.target) : t(e.target).parents(\".active-result\").first()).length) return this.result_highlight = s, this.result_select(e), this.search_field.focus() }, l.prototype.search_results_mouseover = function (e) { var s; if (s = t(e.target).hasClass(\"active-result\") ? t(e.target) : t(e.target).parents(\".active-result\").first()) return this.result_do_highlight(s) }, l.prototype.search_results_mouseout = function (e) { if (t(e.target).hasClass(\"active-result\")) return this.result_clear_highlight() }, l.prototype.choice_build = function (e) { var s, i, r = this; return s = t(\"
      • \", { class: \"search-choice\" }).html(\"\" + e.html + \"\"), e.disabled ? s.addClass(\"search-choice-disabled\") : ((i = t(\"\", { class: \"search-choice-close\", \"data-option-array-index\": e.array_index })).bind(\"click.chosen\", function (t) { return r.choice_destroy_link_click(t) }), s.append(i)), this.search_container.before(s) }, l.prototype.choice_destroy_link_click = function (e) { if (e.preventDefault(), e.stopPropagation(), !this.is_disabled) return this.choice_destroy(t(e.target)) }, l.prototype.choice_destroy = function (t) { if (this.result_deselect(t[0].getAttribute(\"data-option-array-index\"))) return this.show_search_field_default(), this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1 && this.results_hide(), t.parents(\"li\").first().remove(), this.search_field_scale() }, l.prototype.results_reset = function () { if (this.form_field.options[0].selected = !0, this.selected_option_count = null, this.single_set_selected_text(), this.show_search_field_default(), this.results_reset_cleanup(), this.form_field_jq.trigger(\"change\"), this.active_field) return this.results_hide() }, l.prototype.results_reset_cleanup = function () { return this.current_selectedIndex = this.form_field.selectedIndex, this.selected_item.find(\"abbr\").remove() }, l.prototype.result_select = function (t) { var e, s, i; if (this.result_highlight) return e = this.result_highlight, this.result_clear_highlight(), this.is_multiple && this.max_selected_options <= this.choices_count() ? (this.form_field_jq.trigger(\"chosen:maxselected\", { chosen: this }), !1) : (this.is_multiple ? e.removeClass(\"active-result\") : (this.result_single_selected && (this.result_single_selected.removeClass(\"result-selected\"), i = this.result_single_selected[0].getAttribute(\"data-option-array-index\"), this.results_data[i].selected = !1), this.result_single_selected = e), e.addClass(\"result-selected\"), (s = this.results_data[e[0].getAttribute(\"data-option-array-index\")]).selected = !0, this.form_field.options[s.options_index].selected = !0, this.selected_option_count = null, this.is_multiple ? this.choice_build(s) : this.single_set_selected_text(s.text), (t.metaKey || t.ctrlKey) && this.is_multiple || this.results_hide(), this.search_field.val(\"\"), (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) && this.form_field_jq.trigger(\"change\", { selected: this.form_field.options[s.options_index].value }), this.current_selectedIndex = this.form_field.selectedIndex, this.search_field_scale()) }, l.prototype.single_set_selected_text = function (t) { return null == t && (t = this.default_text), t === this.default_text ? this.selected_item.addClass(\"chosen-default\") : (this.single_deselect_control_build(), this.selected_item.removeClass(\"chosen-default\")), this.selected_item.find(\"span\").text(t) }, l.prototype.result_deselect = function (t) { var e; return e = this.results_data[t], !this.form_field.options[e.options_index].disabled && (e.selected = !1, this.form_field.options[e.options_index].selected = !1, this.selected_option_count = null, this.result_clear_highlight(), this.results_showing && this.winnow_results(), this.form_field_jq.trigger(\"change\", { deselected: this.form_field.options[e.options_index].value }), this.search_field_scale(), !0) }, l.prototype.single_deselect_control_build = function () { if (this.allow_single_deselect) return this.selected_item.find(\"abbr\").length || this.selected_item.find(\"span\").first().after(''), this.selected_item.addClass(\"chosen-single-with-deselect\") }, l.prototype.get_search_text = function () { return this.search_field.val() === this.default_text ? \"\" : t(\"
        \").text(t.trim(this.search_field.val())).html() }, l.prototype.winnow_results_set_highlight = function () { var t, e; if (null != (t = (e = this.is_multiple ? [] : this.search_results.find(\".result-selected.active-result\")).length ? e.first() : this.search_results.find(\".active-result\").first())) return this.result_do_highlight(t) }, l.prototype.no_results = function (e) { var s; return (s = t('
      • ' + this.results_none_found + ' \"\"
      • ')).find(\"span\").first().html(e), this.search_results.append(s) }, l.prototype.no_results_clear = function () { return this.search_results.find(\".no-results\").remove() }, l.prototype.keydown_arrow = function () { var t; return this.results_showing && this.result_highlight ? (t = this.result_highlight.nextAll(\"li.active-result\").first()) ? this.result_do_highlight(t) : void 0 : this.results_show() }, l.prototype.keyup_arrow = function () { var t; return this.results_showing || this.is_multiple ? this.result_highlight ? (t = this.result_highlight.prevAll(\"li.active-result\")).length ? this.result_do_highlight(t.first()) : (this.choices_count() > 0 && this.results_hide(), this.result_clear_highlight()) : void 0 : this.results_show() }, l.prototype.keydown_backstroke = function () { var t; return this.pending_backstroke ? (this.choice_destroy(this.pending_backstroke.find(\"a\").first()), this.clear_backstroke()) : (t = this.search_container.siblings(\"li.search-choice\").last()).length && !t.hasClass(\"search-choice-disabled\") ? (this.pending_backstroke = t, this.single_backstroke_delete ? this.keydown_backstroke() : this.pending_backstroke.addClass(\"search-choice-focus\")) : void 0 }, l.prototype.clear_backstroke = function () { return this.pending_backstroke && this.pending_backstroke.removeClass(\"search-choice-focus\"), this.pending_backstroke = null }, l.prototype.keydown_checker = function (t) { var e, s; switch (e = null != (s = t.which) ? s : t.keyCode, this.search_field_scale(), 8 !== e && this.pending_backstroke && this.clear_backstroke(), e) { case 8: this.backstroke_length = this.search_field.val().length; break; case 9: this.results_showing && !this.is_multiple && this.result_select(t), this.mouse_on_container = !1; break; case 13: t.preventDefault(); break; case 38: t.preventDefault(), this.keyup_arrow(); break; case 40: t.preventDefault(), this.keydown_arrow() } }, l.prototype.search_field_scale = function () { var e, s, i, r, l, o, n, h; if (this.is_multiple) { for (0, o = 0, r = \"position:absolute; left: -1000px; top: -1000px; display:none;\", n = 0, h = (l = [\"font-size\", \"font-style\", \"font-weight\", \"font-family\", \"line-height\", \"text-transform\", \"letter-spacing\"]).length; n < h; n++)r += (i = l[n]) + \":\" + this.search_field.css(i) + \";\"; return (e = t(\"
        \", { style: r })).text(this.search_field.val()), t(\"body\").append(e), o = e.width() + 25, e.remove(), o > (s = this.container.outerWidth()) - 10 && (o = s - 10), this.search_field.css({ width: o + \"px\" }) } }, l }() }).call(this);"],"names":["String","prototype","parseColor","color","this","slice","cols","length","split","i","parseInt","toColorPart","charAt","toLowerCase","arguments","Element","collectTextNodes","element","$A","$","childNodes","collect","node","nodeType","nodeValue","hasChildNodes","flatten","join","collectTextNodesIgnoreClass","className","hasClassName","setContentZoom","percent","setStyle","fontSize","Prototype","Browser","WebKit","window","scrollBy","getInlineOpacity","style","opacity","forceRerendering","n","document","createTextNode","appendChild","removeChild","e","Effect","_elementDoesNotExistError","name","message","Transitions","linear","K","sinoidal","pos","Math","cos","PI","reverse","flicker","random","wobble","pulse","pulses","round","floor","spring","exp","none","full","DefaultOptions","duration","fps","sync","from","to","delay","queue","tagifyText","tagifyStyle","IE","each","child","toArray","character","insertBefore","update","fromCharCode","remove","multiple","effect","elements","Object","isFunction","options","extend","speed","masterDelay","index","PAIRS","slide","blind","appear","toggle","position","scope","id","limit","visible","transition","ScopedQueue","Class","create","Enumerable","initialize","effects","interval","_each","iterator","add","timestamp","Date","getTime","isString","findAll","state","startOn","finishOn","pluck","max","push","setInterval","loop","bind","reject","clearInterval","timePos","len","Queues","instances","$H","get","queueName","set","Queue","Base","start","codeForEvent","eventName","currentFrame","fromToDelta","totalTime","totalFrames","eval","setup","event","render","cancel","finish","frame","inspect","data","property","Parallel","invoke","Tween","object","args","method","last","value","Event","emptyFunction","Opacity","currentStyle","hasLayout","zoom","getOpacity","setOpacity","Move","x","y","mode","makePositioned","originalLeft","parseFloat","getStyle","originalTop","left","top","MoveBy","toTop","toLeft","Scale","scaleX","scaleY","scaleContent","scaleFromCenter","scaleMode","scaleFrom","scaleTo","restoreAfterFinish","elementPositioning","originalStyle","k","offsetTop","offsetLeft","fontSizeType","indexOf","factor","dims","offsetHeight","offsetWidth","test","scrollHeight","scrollWidth","originalHeight","originalWidth","currentScale","setDimensions","height","width","d","topd","leftd","Highlight","startcolor","oldStyle","keepBackgroundImage","backgroundImage","endcolor","restorecolor","_base","$R","map","_delta","backgroundColor","inject","m","v","ScrollTo","scrollOffsets","viewport","getScrollOffsets","elementOffsets","cumulativeOffset","body","getHeight","offset","p","scrollTo","Fade","oldOpacity","afterFinishInternal","hide","Appear","beforeSetup","show","Puff","beforeSetupInternal","Position","absolutize","BlindUp","makeClipping","undoClipping","BlindDown","elementDimensions","getDimensions","afterSetup","SwitchOff","undoPositioned","DropOut","Shake","distance","SlideDown","cleanWhitespace","oldInnerBottom","down","opera","afterUpdateInternal","bottom","clientHeight","SlideUp","Squish","Grow","direction","moveTransition","scaleTransition","opacityTransition","initialMoveX","initialMoveY","moveX","moveY","Shrink","beforeStartInternal","Pulsate","reverser","Fold","Morph","include","parseStyle","addClassName","getStyles","removeClassName","css","key","transforms","transform","pair","unit","CSS_LENGTH","components","match","originalValue","camelize","targetValue","isNaN","toFixed","Transform","tracks","addTracks","track","values","first","ids","keys","play","$$","CSS_PROPERTIES","$w","__parseStyleElement","createElement","styleRules","innerHTML","defaultView","getComputedStyle","styles","results","Methods","morph","visualEffect","s","dasherize","klass","toUpperCase","substring","highlight","f","addMethods","Builder","NODEMAP","AREA","CAPTION","COL","COLGROUP","LEGEND","OPTGROUP","OPTION","PARAM","TBODY","TD","TFOOT","TH","THEAD","TR","elementName","parentTag","parentElement","firstChild","tagName","getElementsByTagName","_isStringOrNumber","Array","_children","attrs","_attributes","attr","_text","text","ATTR_MAP","htmlFor","attributes","attribute","toString","escapeHTML","gsub","children","param","build","html","strip","dump","tags","tag","apply","concat","Modalbox","overrideAlert","focusableElements","currFocused","initialized","active","title","overlayClose","overlayOpacity","overlayDuration","slideDownDuration","slideUpDuration","resizeDuration","inactiveFade","transitions","loadingString","closeString","closeValue","params","autoFocusing","iFrame","aspnet","_options","setOptions","_init","MBoverlay","MBwindow","MBframe","MBheader","MBcaption","MBclose","href","insert","MBcontent","MBloading","frameborder","injectToEl","initScrollX","pageXOffset","scrollLeft","documentElement","initScrollY","pageYOffset","scrollTop","hideObserver","_hide","bindAsEventListener","kbdObserver","_kbdHandler","_initObservers","content","display","_appear","_update","afterFinish","_deinit","stop","alert","navigator","appVersion","_prepareIE","_setWidth","_setPosition","fadeEffect","slideEffect","loadContent","_setWidthAndPosition","observe","resize","byWidth","byHeight","wHeight","wWidth","getWidth","hHeight","cHeight","newHeight","scaleByEffect","ScaleBy","setTimeout","resizeToContent","resizeToInclude","el","elHeight","currentDims","_afterResize","_loadAfterResize","htmlRegExp","RegExp","_insertContent","stripScripts","_putContent","extractScripts","script","replace","src","frameboder","border","request","Ajax","Request","parameters","onSuccess","transport","response","responseText","onException","instance","exception","_htmlObj","cloneNode","select","visibility","callback","afterResize","_findFocusableElements","_setFocus","undefined","overflow","activate","deactivate","stopObserving","_removeObservers","firstEl","find","tabIndex","focus","keyCode","KEY_TAB","shiftKey","KEY_ESC","_preventScroll","which","KEY_UP","KEY_DOWN","KEY_PAGEDOWN","KEY_PAGEUP","KEY_HOME","KEY_END","type","_removeElements","_getScrollTop","theTop","returnValue","scaleFromTop","scaleByWidth","scaleByHeight","deltaY","deltaX","currentHeight","currentWidth","EnsembleVideo","Platform","initCompleted","isWebkit","isMobilePhone","isIphone","isAndroid","isIos","isAndroidPhone","isTierTablet","isTierIphone","isTierRichCss","isTierGenericMobile","engineWebKit","deviceIphone","deviceIpod","deviceIpad","deviceMacPpc","deviceAndroid","deviceGoogleTV","deviceHtcFlyer","deviceWinPhone7","deviceWinPhone8","deviceWinMob","deviceWindows","deviceIeMob","devicePpc","enginePie","deviceBB","deviceBB10","vndRIM","deviceBBStorm","deviceBBBold","deviceBBBoldTouch","deviceBBTour","deviceBBCurve","deviceBBCurveTouch","deviceBBTorch","deviceBBPlaybook","deviceSymbian","deviceSymbos","deviceS60","deviceS70","deviceS80","deviceS90","devicePalm","deviceWebOS","deviceWebOShp","engineBlazer","engineXiino","deviceNuvifone","deviceBada","deviceTizen","deviceMeego","deviceKindle","engineSilk","vndwap","wml","deviceTablet","deviceBrew","deviceDanger","deviceHiptop","devicePlaystation","devicePlaystationVita","deviceNintendoDs","deviceNintendo","deviceWii","deviceXbox","deviceArchos","engineChrome","engineOpera","engineNetfront","engineUpBrowser","engineOpenWeb","deviceMidp","uplink","engineTelecaQ","engineObigo","devicePda","mini","mobile","mobi","maemo","linux","mylocom2","manuSonyEricsson","manuericsson","manuSamsung1","manuSony","manuHtc","svcDocomo","svcKddi","svcVodafone","disUpdate","uagent","isChromeBrowser","androidVersion","InitDeviceScan","userAgent","DetectWebkit","DetectIphone","DetectAndroid","DetectAndroidPhone","DetectIos","DetectTierIphone","DetectTierTablet","DetectMobileQuick","DetectTierRichCss","DetectTierOtherPhones","DetectChromeBrowser","search","DetectIpad","DetectIpod","DetectIphoneOrIpod","DetectAndroidVersion","DetectGoogleTV","DetectOperaAndroidPhone","DetectAndroidTablet","DetectOperaMobile","DetectAndroidWebKit","DetectWindowsPhone","DetectWindowsPhone7","DetectWindowsPhone8","DetectWindowsMobile","DetectBlackBerry","DetectBlackBerry10Phone","DetectBlackBerryTablet","DetectBlackBerryWebKit","DetectBlackBerryTouch","DetectBlackBerryHigh","DetectBlackBerryLow","DetectS60OssBrowser","DetectSymbianOS","DetectPalmOS","DetectPalmWebOS","DetectWebOSTablet","DetectOperaAndroidTablet","DetectKindle","DetectAmazonSilk","DetectGarminNuvifone","DetectBada","DetectTizen","DetectMeego","DetectDangerHiptop","DetectSonyMylo","qtembedded","DetectMaemoTablet","DetectArchos","DetectGameConsole","DetectSonyPlaystation","DetectNintendo","DetectXbox","DetectGamingHandheld","DetectBrewDevice","DetectSmartphone","DetectMobileLong","t","console","log","platform","contentPreview","debugMode","previewContentSelector","previewUrl","refereshTimer","timeOut","jQuery","on","contentPreviewInstance","preparePreview","readAttribute","up","contentID","windowTitle","htmlDecode","unescapeHTML","empty","$find","_stopTimer","app","Old_App_Code","DataAccess","Token","previewToken","queryString","isSharedLibraryContentPreview","CanEmbedAndShareContent","hasPermission","showPreview","a","textContent","contentQueryString","setModalConfig","hackForiPadScroller","getQueryStringValue","defaultValue","hash","parseQuery","Boolean","clearTimeout","location","modalTitle","iFrameSrc","modal","r","fn","domManip","q","b","h","c","l","g","_wrap","tmpl","parent","nodes","calls","u","nest","w","wrap","_ctnt","appendTo","prependTo","insertAfter","replaceAll","j","parentNode","clone","pushStack","selector","complete","tmplItem","template","makeArray","afterManip","wrapped","call","isArray","o","encode","_default","$2","open","close","if","else","$1","=","!","Function","trim","getAttribute","removeAttribute","pop","_","item","filter","innerText","outerHTML","$klass","_super","fields","init","protoChainingProxy","proto","_klass","constructor","Array_slice","arg0","arg1","arg0IsArguments","callee","superMethod","Modernizr","cssText","prefixes","z","svg","hasOwnProperty","TypeError","createElementNS","createSVGRect","A","addTest","lastChild","cache","createElem","canHaveChildren","frag","createDocumentFragment","createFrag","shivMethods","shivCSS","hasCSS","html5","supportsUnknownElements","shivDocument","_version","shift","B","injectCss","injectJs","readyState","onload","onreadystatechange","errorTimeout","onerror","splice","loader","load","createRange","compareNode","attachEvent","timeout","url","origUrl","autoCallback","bypass","instead","noexec","forceCSS","forceJS","both","yep","nope","yepnope","addPrefix","addFilter","addEventListener","removeEventListener","executeStack","setAttribute","rel","confirm","msg","stopAfter","wrapper","eventType","dialogShow","dialogSpeed","buttons","ok","separator","target","$target","timer","saveHandlers","events","_data","_handlers","$ok","append","click","unbind","handler","$dialog","one","$cancel","cls","addClass","_confirm","_confirmEvent","SocialSharing","containerId","settings","container","getElementById","listClass","encodeURIComponent","summary","imageUrl","security","JSON","parse","templates","cssclass","sameWindow","isCopyLink","isGoogleClassroom","getEmbedUrl","isInIframe","parentUrl","referrer","loadGoogleClassroomResources","ajax","dataType","getSecurity","arr","prop","socialShareIconsList","listStyleType","shouldShowIcon","shareListElement","shareLink","onclick","screen","decodeURIComponent","setupTooltip","resizeSocialSharingIFrame","Create","iFrameConfig","intervalId","setIFrameConfig","postMessage","onresize","iFrameHeight","iFrameId","stringify","iFrameWidth","tooltip","$currentTooltip","copyToClipboard","$temp","val","execCommand","GetLanguage","useParent","userLanguage","cookie","getCookie","cookies","dateIndex","indexOfDash","GetUserDateFormat","originalCase","userDateFormat","GetUserDateTimeFormat","userTimeFormat","timeIndex","GetUserTimeZone","userTimeZone","GetTimeFormat","Show24Hours","show24Hours","cname","decodedCookie","ca","ConvertFromUtcToLocalDateTimeFromNow","utcDateTime","justNow","localDateTimeFromNow","moment","utc","tz","fromNow","ConvertFromUtcToLocalDateWithUserFormat","localDate","toDate","userdateFormat","formatDateTime","dateTime","dateTimeFormat","format","ready","accessibility","Accessibility","tabbedControlsSelector","playerSelector","handleCustomAccessibility","context","keycode","setFocusOnActiveElement","activeElement","isActiveElementEnterChangeFocusControl","isActiveElementTabbedControl","removeClass","hasClass","options_index","parsed","add_node","nodeName","add_group","add_option","array_index","group","label","escapeExpression","disabled","selected","group_array_index","classes","<",">","\"","'","`","select_to_array","form_field","browser_is_supported","is_multiple","set_default_text","set_default_values","set_up_html","register_observers","click_test_action","test_active_click","activate_action","activate_field","active_field","mouse_on_container","results_showing","result_highlighted","result_single_selected","allow_single_deselect","disable_search_threshold","disable_search","enable_split_word_search","group_search","search_contains","single_backstroke_delete","max_selected_options","inherit_select_classes","display_selected_options","display_disabled_options","default_text","placeholder_text_multiple","placeholder_text","default_multiple_text","placeholder_text_single","default_single_text","results_none_found","no_results_text","default_no_result_text","mouse_enter","mouse_leave","input_focus","container_mousedown","input_blur","blur_test","results_option_build","results_data","result_add_group","result_add_option","choice_build","single_set_selected_text","search_match","include_option_in_results","search_text","group_match","active_options","results_update_field","results_reset_cleanup","result_clear_highlight","results_build","winnow_results","results_toggle","results_hide","results_show","results_search","no_results_clear","get_search_text","search_string_match","substr","update_results_content","no_results","winnow_results_set_highlight","choices_count","selected_option_count","choices_click","preventDefault","is_disabled","keyup_checker","search_field_scale","backstroke_length","keydown_backstroke","pending_backstroke","result_select","container_width","appName","documentMode","chosen","destroy","__super__","form_field_jq","current_selectedIndex","selectedIndex","is_rtl","class","after","dropdown","search_field","search_results","search_no_results","search_choices","search_container","selected_item","set_tab_index","set_label_behavior","trigger","container_mouseup","search_results_mouseup","search_results_mouseover","search_results_mouseout","search_results_mousewheel","keydown_checker","removeData","search_field_disabled","close_field","parents","results_reset","originalEvent","wheelDelta","originialEvent","detail","clear_backstroke","show_search_field_default","is","closest","parsing","readOnly","result_do_highlight","result_highlight","outerHeight","form_field_label","data-option-array-index","choice_destroy_link_click","before","stopPropagation","choice_destroy","result_deselect","metaKey","ctrlKey","single_deselect_control_build","deselected","keydown_arrow","nextAll","keyup_arrow","prevAll","siblings","outerWidth"],"mappings":"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"}