﻿/*
 MIT | GPL | Apache 2.0, see LICENSE.txt
 @see https://github.com/dyve/jquery-autocomplete
*/
(function (c) {
	c.fn.autocomplete = function (a) { var d; 1 < arguments.length ? (d = a, a = arguments[1], a.url = d) : "string" === typeof a && (a = { url: a }); var b = c.extend({}, c.fn.autocomplete.defaults, a); return this.each(function () { var a = c(this); a.data("autocompleter", new c.Autocompleter(a, c.meta ? c.extend({}, b, a.data()) : b)) }) }; c.fn.autocomplete.defaults = {
		inputClass: "acInput", loadingClass: "acLoading", resultsClass: "acResults", selectClass: "acSelect", queryParamName: "q", extraParams: {}, remoteDataType: !1, lineSeparator: "\n", cellSeparator: "|",
		minChars: 2, maxItemsToShow: 10, delay: 400, useCache: !0, maxCacheLength: 10, matchSubset: !0, matchCase: !1, matchInside: !0, mustMatch: !1, selectFirst: !1, selectOnly: !1, showResult: null, preventDefaultReturn: 1, preventDefaultTab: 0, autoFill: !1, filterResults: !0, filter: !0, sortResults: !0, sortFunction: null, onItemSelect: null, onNoMatch: null, onFinish: null, matchStringConverter: null, beforeUseConverter: null, autoWidth: "min-width", useDelimiter: !1, delimiterChar: ",", delimiterKeyCode: 188, processData: null, onError: null, enabled: !0
	};
	var k = function (a, d, b) { a = parseInt(a, 10); b = b || {}; if (isNaN(a) || b.min && a < b.min) a = d; return a }, n = function (a, d) { var b = []; c.each(d, function (a, d) { b.push([a, encodeURIComponent(d)].join("=")) }); b.length && (a += -1 === a.indexOf("?") ? "?" : "&", a += b.join("&")); return a }; c.Autocompleter = function (a, d) {
		if (!(a && a instanceof c && 1 === a.length && "INPUT" === a.get(0).tagName.toUpperCase())) throw Error("Invalid parameter for jquery.Autocompleter, jQuery object with one element with INPUT tag expected."); var b = this; this.options = d;
		this.cacheData_ = {}; this.cacheLength_ = 0; this.selectClass_ = "jquery-autocomplete-selected-item"; this.lastSelectedValue_ = this.lastProcessedValue_ = this.lastKeyPressed_ = this.finishTimeout_ = this.keyTimeout_ = null; this.active_ = !1; this.finishOnBlur_ = !0; this.options.minChars = k(this.options.minChars, c.fn.autocomplete.defaults.minChars, { min: 0 }); this.options.maxItemsToShow = k(this.options.maxItemsToShow, c.fn.autocomplete.defaults.maxItemsToShow, { min: 0 }); this.options.maxCacheLength = k(this.options.maxCacheLength,
		c.fn.autocomplete.defaults.maxCacheLength, { min: 1 }); this.options.delay = k(this.options.delay, c.fn.autocomplete.defaults.delay, { min: 0 }); 2 != this.options.preventDefaultReturn && (this.options.preventDefaultReturn = this.options.preventDefaultReturn ? 1 : 0); 2 != this.options.preventDefaultTab && (this.options.preventDefaultTab = this.options.preventDefaultTab ? 1 : 0); this.dom = {}; this.dom.$elem = a; this.dom.$elem.attr("autocomplete", "off").addClass(this.options.inputClass); this.dom.$results = c("<div></div>").hide().addClass(this.options.resultsClass).css({ position: "absolute" });
		c("body").append(this.dom.$results); a.keydown(function (a) {
			b.lastKeyPressed_ = a.keyCode; switch (b.lastKeyPressed_) {
				case b.options.delimiterKeyCode: b.options.useDelimiter && b.active_ && b.selectCurrent(); break; case 35: case 36: case 16: case 17: case 18: case 37: case 39: break; case 38: return a.preventDefault(), b.active_ ? b.focusPrev() : b.activate(), !1; case 40: return a.preventDefault(), b.active_ ? b.focusNext() : b.activate(), !1; case 9: if (b.active_ && (b.selectCurrent(), b.options.preventDefaultTab) || 2 === b.options.preventDefaultTab) return a.preventDefault(),
				!1; break; case 13: if (b.active_ && (b.selectCurrent(), b.options.preventDefaultReturn) || 2 === b.options.preventDefaultReturn) return a.preventDefault(), !1; break; case 27: if (b.active_) return a.preventDefault(), b.deactivate(!0), !1; break; default: b.activate()
			}
		}); a.on("paste", function () { b.activate() }); var f = function () { b.deactivate(!0) }; a.blur(function () { b.finishOnBlur_ && (b.finishTimeout_ = setTimeout(f, 200)) }); a.parents("form").on("submit", f)
	}; c.Autocompleter.prototype.position = function () {
		var a = this.dom.$elem.offset(),
		d = this.dom.$results.outerHeight(), b = c(window).outerHeight(), f = a.top + this.dom.$elem.outerHeight(), e = { top: f, left: a.left }; f + d > b && (a = a.top - d, 0 <= a && (e.top = a)); this.dom.$results.css(e)
	}; c.Autocompleter.prototype.cacheRead = function (a) { var d, b, c, e, g; if (this.options.useCache) for (a = String(a), d = a.length, b = this.options.matchSubset ? 1 : d; b <= d;) { e = this.options.matchInside ? d - b : 0; for (g = 0; g <= e;) { c = a.substr(0, b); if (void 0 !== this.cacheData_[c]) return this.cacheData_[c]; g++ } b++ } return !1 }; c.Autocompleter.prototype.cacheWrite =
	function (a, d) { return this.options.useCache ? (this.cacheLength_ >= this.options.maxCacheLength && this.cacheFlush(), a = String(a), void 0 !== this.cacheData_[a] && this.cacheLength_++, this.cacheData_[a] = d, this.cacheData_[a]) : !1 }; c.Autocompleter.prototype.cacheFlush = function () { this.cacheData_ = {}; this.cacheLength_ = 0 }; c.Autocompleter.prototype.callHook = function (a, d) { var b = this.options[a]; return b && c.isFunction(b) ? b(d, this) : !1 }; c.Autocompleter.prototype.activate = function () {
		if (this.options.enabled) {
			var a = this; this.keyTimeout_ &&
			clearTimeout(this.keyTimeout_); this.keyTimeout_ = setTimeout(function () { a.activateNow() }, this.options.delay)
		}
	}; c.Autocompleter.prototype.activateNow = function () { var a = this.beforeUseConverter(this.dom.$elem.val()); a !== this.lastProcessedValue_ && a !== this.lastSelectedValue_ && this.fetchData(a) }; c.Autocompleter.prototype.fetchData = function (a) {
		var d = this, b = function (a, b) { d.options.processData && (a = d.options.processData(a)); d.showResults(d.filterResults(a, b), b) }; this.lastProcessedValue_ = a; a.length < this.options.minChars ?
		b([], a) : this.options.data ? b(this.options.data, a) : this.fetchRemoteData(a, function (d) { b(d, a) })
	}; c.Autocompleter.prototype.fetchRemoteData = function (a, d) {
		var b = this.cacheRead(a); if (b) d(b); else {
			var f = this, b = "json" === f.options.remoteDataType ? "json" : "text", e = function (b) { var c = !1; !1 !== b && (c = f.parseRemoteData(b), f.cacheWrite(a, c)); f.dom.$elem.removeClass(f.options.loadingClass); d(c) }; this.dom.$elem.addClass(this.options.loadingClass); c.ajax({
				url: this.makeUrl(a), success: e, error: function (a, b, d) {
					if (c.isFunction(f.options.onError)) f.options.onError(a,
					b, d); else e(!1)
				}, dataType: b
			})
		}
	}; c.Autocompleter.prototype.setExtraParam = function (a, d) { var b = c.trim(String(a)); b && (this.options.extraParams || (this.options.extraParams = {}), this.options.extraParams[b] !== d && (this.options.extraParams[b] = d, this.cacheFlush())) }; c.Autocompleter.prototype.makeUrl = function (a) { var d = this.options.url, b = c.extend({}, this.options.extraParams); !1 === this.options.queryParamName ? d += encodeURIComponent(a) : b[this.options.queryParamName] = a; return n(d, b) }; c.Autocompleter.prototype.parseRemoteData =
	function (a) { var d, b = a; if ("json" === this.options.remoteDataType) { d = typeof a; switch (d) { case "object": b = a; break; case "string": b = c.parseJSON(a); break; default: throw Error("Unexpected remote data type: " + d); } return b } var f = this.options.lineSeparator; a = this.options.cellSeparator; d = []; var e, g, h; h = String(b).replace("\r\n", "\n").split(f); for (b = 0; b < h.length; b++) { g = h[b].split(a); f = []; for (e = 0; e < g.length; e++) f.push(decodeURIComponent(g[e])); e = f.shift(); d.push({ value: e, data: f }) } return d }; c.Autocompleter.prototype.defaultFilter =
	function (a, d) { if (!a.value) return !1; if (this.options.filterResults) { var b = this.matchStringConverter(d), c = this.matchStringConverter(a.value); this.options.matchCase || (b = b.toLowerCase(), c = c.toLowerCase()); b = c.indexOf(b); return this.options.matchInside ? -1 < b : 0 === b } return !0 }; c.Autocompleter.prototype.filterResult = function (a, d) { return !1 === this.options.filter ? !0 : c.isFunction(this.options.filter) ? this.options.filter(a, d) : this.defaultFilter(a, d) }; c.Autocompleter.prototype.filterResults = function (a, d) {
		var b = [],
		f, e; for (f = 0; f < a.length; f++) { e = a[f]; var g = void 0, h = void 0, l = typeof e; "string" === l ? (g = e, h = {}) : c.isArray(e) ? (g = e[0], h = e.slice(1)) : "object" === l && (g = e.value, h = e.data); g = String(g); "object" !== typeof h && (h = {}); e = { value: g, data: h }; this.filterResult(e, d) && b.push(e) } this.options.sortResults && (b = this.sortResults(b, d)); 0 < this.options.maxItemsToShow && this.options.maxItemsToShow < b.length && (b.length = this.options.maxItemsToShow); return b
	}; c.Autocompleter.prototype.sortResults = function (a, d) {
		var b = this, f = this.options.sortFunction;
		c.isFunction(f) || (f = function (a, d, c) { a = String(a.value); d = String(d.value); b.options.matchCase || (a = a.toLowerCase(), d = d.toLowerCase()); d = a > d ? 1 : a < d ? -1 : 0; return d }); a.sort(function (a, c) { return f(a, c, d, b.options) }); return a
	}; c.Autocompleter.prototype.matchStringConverter = function (a, d, b) { var f = this.options.matchStringConverter; c.isFunction(f) && (a = f(a, d, b)); return a }; c.Autocompleter.prototype.beforeUseConverter = function (a) {
		a = this.getValue(a); var d = this.options.beforeUseConverter; c.isFunction(d) && (a = d(a));
		return a
	}; c.Autocompleter.prototype.enableFinishOnBlur = function () { this.finishOnBlur_ = !0 }; c.Autocompleter.prototype.disableFinishOnBlur = function () { this.finishOnBlur_ = !1 }; c.Autocompleter.prototype.createItemFromResult = function (a) { var d = this, b = c("<li/>"); b.html(this.showResult(a.value, a.data)); b.data({ value: a.value, data: a.data }).click(function () { d.selectItem(b) }).mousedown(d.disableFinishOnBlur).mouseup(d.enableFinishOnBlur); return b }; c.Autocompleter.prototype.getItems = function () { return c(">ul>li", this.dom.$results) };
	c.Autocompleter.prototype.showResults = function (a, d) {
		var b = a.length, f = this, e = c("<ul></ul>"), g, h, l, k = !1, m = !1; if (b) {
			for (g = 0; g < b; g++) h = a[g], l = this.createItemFromResult(h), e.append(l), !1 === k && (k = String(h.value), m = l, l.addClass(this.options.firstItemClass)), g === b - 1 && l.addClass(this.options.lastItemClass); this.dom.$results.html(e).show(); this.position(); this.options.autoWidth && (e = this.dom.$elem.outerWidth() - this.dom.$results.outerWidth() + this.dom.$results.width(), this.dom.$results.css(this.options.autoWidth,
			e)); this.getItems().hover(function () { f.focusItem(this) }, function () { }); (this.autoFill(k, d) || this.options.selectFirst || this.options.selectOnly && 1 === b) && this.focusItem(m); this.active_ = !0
		} else this.hideResults(), this.active_ = !1
	}; c.Autocompleter.prototype.showResult = function (a, d) { return c.isFunction(this.options.showResult) ? this.options.showResult(a, d) : a }; c.Autocompleter.prototype.autoFill = function (a, d) {
		var b, c, e, g; return this.options.autoFill && 8 !== this.lastKeyPressed_ && (b = String(a).toLowerCase(), c = String(d).toLowerCase(),
		e = a.length, g = d.length, b.substr(0, g) === c) ? (b = this.getDelimiterOffsets(), c = b.start ? " " : "", this.setValue(c + a), this.selectRange(g + b.start + c.length, e + b.start + c.length), !0) : !1
	}; c.Autocompleter.prototype.focusNext = function () { this.focusMove(1) }; c.Autocompleter.prototype.focusPrev = function () { this.focusMove(-1) }; c.Autocompleter.prototype.focusMove = function (a) { var d = this.getItems(); if (a = k(a, 0)) for (var b = 0; b < d.length; b++) if (c(d[b]).hasClass(this.selectClass_)) { this.focusItem(b + a); return } this.focusItem(0) }; c.Autocompleter.prototype.focusItem =
	function (a) { var d = this.getItems(); d.length && (d.removeClass(this.selectClass_).removeClass(this.options.selectClass), "number" === typeof a ? (0 > a ? a = 0 : a >= d.length && (a = d.length - 1), a = c(d[a])) : a = c(a), a && a.addClass(this.selectClass_).addClass(this.options.selectClass)) }; c.Autocompleter.prototype.selectCurrent = function () { var a = c("li." + this.selectClass_, this.dom.$results); 1 === a.length ? this.selectItem(a) : this.deactivate(!1) }; c.Autocompleter.prototype.selectItem = function (a) {
		var d = a.data("value"); a = a.data("data");
		var b = this.displayValue(d, a), c = this.beforeUseConverter(b); this.lastSelectedValue_ = this.lastProcessedValue_ = c; var c = this.getDelimiterOffsets(), e = this.options.delimiterChar, g = this.dom.$elem, h = 0; this.options.useDelimiter && (g.val().substring(c.start - 1, c.start) == e && " " != e && (b = " " + b), g.val().substring(c.end, c.end + 1) != e && this.lastKeyPressed_ != this.options.delimiterKeyCode ? b += e : h = 1); this.setValue(b); this.setCaret(c.start + b.length + h); this.callHook("onItemSelect", { value: d, data: a }); this.deactivate(!0); g.focus()
	};
	c.Autocompleter.prototype.displayValue = function (a, d) { return c.isFunction(this.options.displayValue) ? this.options.displayValue(a, d) : a }; c.Autocompleter.prototype.hideResults = function () { this.dom.$results.hide() }; c.Autocompleter.prototype.deactivate = function (a) {
		this.finishTimeout_ && clearTimeout(this.finishTimeout_); this.keyTimeout_ && clearTimeout(this.keyTimeout_); a && (this.lastProcessedValue_ !== this.lastSelectedValue_ && (this.options.mustMatch && this.setValue(""), this.callHook("onNoMatch")), this.active_ &&
		this.callHook("onFinish"), this.lastSelectedValue_ = this.lastProcessedValue_ = this.lastKeyPressed_ = null, this.active_ = !1); this.hideResults()
	}; c.Autocompleter.prototype.selectRange = function (a, d) { var b = this.dom.$elem.get(0); b.setSelectionRange ? (b.focus(), b.setSelectionRange(a, d)) : b.createTextRange && (b = b.createTextRange(), b.collapse(!0), b.moveEnd("character", d), b.moveStart("character", a), b.select()) }; c.Autocompleter.prototype.setCaret = function (a) { this.selectRange(a, a) }; c.Autocompleter.prototype.getCaret =
	function () {
		var a = this.dom.$elem, d = a[0], b, c; d.createTextRange ? (c = document.selection, "textarea" != d.tagName.toLowerCase() ? (b = a.val(), a = c.createRange().duplicate(), a.moveEnd("character", b.length), d = "" === a.text ? b.length : b.lastIndexOf(a.text), a = c.createRange().duplicate(), a.moveStart("character", -b.length), c = a.text.length) : (a = c.createRange(), c = a.duplicate(), c.moveToElementText(d), c.setEndPoint("EndToEnd", a), d = c.text.length - a.text.length, c = d + a.text.length)) : (d = a[0].selectionStart, c = a[0].selectionEnd); return {
			start: d,
			end: c
		}
	}; c.Autocompleter.prototype.setValue = function (a) { if (this.options.useDelimiter) { var c = this.dom.$elem.val(), b = this.getDelimiterOffsets(), f = c.substring(0, b.start), c = c.substring(b.end); a = f + a + c } this.dom.$elem.val(a) }; c.Autocompleter.prototype.getValue = function (a) { if (this.options.useDelimiter) { var c = this.getDelimiterOffsets(); return a.substring(c.start, c.end).trim() } return a }; c.Autocompleter.prototype.getDelimiterOffsets = function () {
		var a = this.dom.$elem.val(); if (this.options.useDelimiter) {
			var c = a.substring(0,
			this.getCaret().start).lastIndexOf(this.options.delimiterChar) + 1, b = a.substring(this.getCaret().start).indexOf(this.options.delimiterChar); -1 == b && (b = a.length); b += this.getCaret().start
		} else c = 0, b = a.length; return { start: c, end: b }
	}
})(eds3_5_jq);
;;;!function(){var eds_category_menu=function($){var $category_menue_items=$('.edn_category_menu_wrapper li, .edn_archive_menu_wrapper li');$category_menue_items.click(function(e){var $target=$(e.target),$clicked,$child_list,$expand_collapse;if($target.is('div')||$target.is('a.expand_collapse')){$clicked=$(this);$child_list=$clicked.find('> ul');$expand_collapse=$clicked.find('> div > a.expand_collapse');if($child_list.length==1){if($child_list.is(':visible')){$child_list.slideUp(200);$expand_collapse.removeClass('collapse');$clicked.removeClass('opened');}else{$child_list.slideDown(200);$expand_collapse.addClass('collapse');$clicked.addClass('opened');}}
return false;}});};if(typeof eds3_5_jq!=='undefined')
eds3_5_jq(eds_category_menu);else if(typeof jQuery!=='undefined')
jQuery(eds_category_menu);}();
;;;(function($){$.fn.rateit=function(p1,p2){var options={};var mode='init';if(this.length==0)return this;var tp1=$.type(p1);if(tp1=='object'||p1===undefined||p1==null){options=$.extend({},$.fn.rateit.defaults,p1);}
else if(tp1=='string'&&p2===undefined){return this.data('rateit-'+p1);}
else if(tp1=='string'){mode='setvalue'}
return this.each(function(){var item=$(this);var itemdata=function(k,v){k='rateit-'+k;if(arguments.length===1)
return item.data(k);item.data(k,v);return v;};if(!item.hasClass('rateit'))item.addClass('rateit');var ltr=item.css('direction')!='rtl';if(mode=='setvalue'){if(!itemdata('init'))throw'Can\'t set value before init';if(p1=='readonly'&&!itemdata('readonly')){item.find('.rateit-range').unbind();itemdata('wired',false);}
if(itemdata('backingfld')){var fld=$(itemdata('backingfld'));if(p1=='value')fld.val(p2);if(p1=='min'&&fld[0].min)fld[0].min=p2;if(p1=='max'&&fld[0].max)fld[0].max=p2;if(p1=='step'&&fld[0].step)fld[0].step=p2;}
itemdata(p1,p2);}
if(!itemdata('init')){itemdata('min',itemdata('min')||options.min);itemdata('max',itemdata('max')||options.max);itemdata('step',itemdata('step')||options.step);itemdata('readonly',itemdata('readonly')!==undefined?itemdata('readonly'):options.readonly);itemdata('resetable',itemdata('resetable')!==undefined?itemdata('resetable'):options.resetable);itemdata('backingfld',itemdata('backingfld')||options.backingfld);itemdata('starwidth',itemdata('starwidth')||options.starwidth);itemdata('starheight',itemdata('starheight')||options.starheight);itemdata('value',itemdata('value')||options.min);if(itemdata('backingfld')){var fld=$(itemdata('backingfld'));itemdata('value',fld.hide().val());if(fld[0].nodeName=='INPUT'){if(fld[0].type=='range'||fld[0].type=='text'){itemdata('min',parseInt(fld.attr('min'))||itemdata('min'));itemdata('max',parseInt(fld.attr('max'))||itemdata('max'));itemdata('step',parseInt(fld.attr('step'))||itemdata('step'));}}
if(fld[0].nodeName=='SELECT'&&fld[0].options.length>1){itemdata('min',Number(fld[0].options[0].value));itemdata('max',Number(fld[0].options[fld[0].length-1].value));itemdata('step',Number(fld[0].options[1].value)-Number(fld[0].options[0].value));}}
item.append('<div class="rateit-reset"></div><div class="rateit-range"><div class="rateit-selected" style="height:'+itemdata('starheight')+'px"></div><div class="rateit-hover" style="height:'+itemdata('starheight')+'px"></div></div>');if(!ltr){item.find('.rateit-reset').css('float','right');item.find('.rateit-selected').addClass('rateit-selected-rtl');item.find('.rateit-hover').addClass('rateit-hover-rtl');}
itemdata('init',true);}
var range=item.find('.rateit-range');range.width(itemdata('starwidth')*(itemdata('max')-itemdata('min'))).height(itemdata('starheight'));if(itemdata('value')){var score=(itemdata('value')-itemdata('min'))*itemdata('starwidth');item.find('.rateit-selected').width(score);}
var resetbtn=item.find('.rateit-reset');var calcRawScore=function(element,event){var pageX=(event.changedTouches)?event.changedTouches[0].pageX:event.pageX;var offsetx=pageX-$(element).offset().left;if(!ltr)offsetx=range.width()-offsetx;if(offsetx>range.width())offsetx=range.width();if(offsetx<0)offsetx=0;return score=Math.ceil(offsetx/itemdata('starwidth')*(1/itemdata('step')));};if(!itemdata('readonly')){if(itemdata('resetable')){resetbtn.click(function(){itemdata('value',itemdata('min'));range.find('.rateit-hover').hide().width(0);range.find('.rateit-selected').width(0).show();if(itemdata('backingfld'))$(itemdata('backingfld')).val(itemdata('min'));item.trigger('reset');});}
else{resetbtn.hide();}
if(!itemdata('wired')){range.bind('touchmove touchend',touchHandler);range.mousemove(function(e){var score=calcRawScore(this,e);var w=score*itemdata('starwidth')*itemdata('step');var h=range.find('.rateit-hover');if(h.data('width')!=w){range.find('.rateit-selected').hide();h.width(w).show().data('width',w);item.trigger('hover',[(score*itemdata('step'))+itemdata('min')]);}});range.mouseleave(function(e){range.find('.rateit-hover').hide().width(0).data('width','');item.trigger('hover',[null]);range.find('.rateit-selected').show();});range.mouseup(function(e){var score=calcRawScore(this,e);var newvalue=(score*itemdata('step'))+itemdata('min');itemdata('value',newvalue);if(itemdata('backingfld')){$(itemdata('backingfld')).val(newvalue);}
range.find('.rateit-hover').hide();range.find('.rateit-selected').width(score*itemdata('starwidth')*itemdata('step')).show();item.trigger('hover',[null]).trigger('rated',[newvalue]);});itemdata('wired',true);}
if(itemdata('resetable')){resetbtn.show();}}
else{resetbtn.hide();}});};function touchHandler(event){var touches=event.originalEvent.changedTouches,first=touches[0],type="";switch(event.type){case"touchmove":type="mousemove";break;case"touchend":type="mouseup";break;default:return;}
var simulatedEvent=document.createEvent("MouseEvent");simulatedEvent.initMouseEvent(type,true,true,window,1,first.screenX,first.screenY,first.clientX,first.clientY,false,false,false,false,0,null);first.target.dispatchEvent(simulatedEvent);event.preventDefault();};$.fn.rateit.defaults={min:0,max:5,step:0.5,starwidth:16,starheight:16,readonly:false,resetable:true};eds3_5_jq(document).ready(function($){$('div.rateit').rateit();});})(eds3_5_jq);
;;;(function(){var eds_mousewheel=function(a){function d(b){var c=b||window.event,d=[].slice.call(arguments,1),e=0,f=!0,g=0,h=0;return b=a.event.fix(c),b.type="mousewheel",c.wheelDelta&&(e=c.wheelDelta/120),c.detail&&(e=-c.detail/3),h=e,c.axis!==undefined&&c.axis===c.HORIZONTAL_AXIS&&(h=0,g=-1*e),c.wheelDeltaY!==undefined&&(h=c.wheelDeltaY/120),c.wheelDeltaX!==undefined&&(g=-1*c.wheelDeltaX/120),d.unshift(b,e,g,h),(a.event.dispatch||a.event.handle).apply(this,d)}var b=["DOMMouseScroll","mousewheel"];if(a.event.fixHooks)for(var c=b.length;c;)a.event.fixHooks[b[--c]]=a.event.mouseHooks;a.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=b.length;a;)this.addEventListener(b[--a],d,!1);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=b.length;a;)this.removeEventListener(b[--a],d,!1);else this.onmousewheel=null}},a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})};if(typeof jQuery!=='undefined')
eds_mousewheel(jQuery);if(typeof eds3_5_jq!=='undefined')
eds_mousewheel(eds3_5_jq);})();
;;;(function(document,undefined){var eds_cookie=function($){var pluses=/\+/g;function raw(s){return s;}
function decoded(s){return decodeURIComponent(s.replace(pluses,' '));}
var config=$.cookie=function(key,value,options){if(value!==undefined){options=$.extend({},config.defaults,options);if(value===null){options.expires=-1;}
if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setDate(t.getDate()+days);}
value=config.json?JSON.stringify(value):String(value);return(document.cookie=[encodeURIComponent(key),'=',config.raw?value:encodeURIComponent(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}
var decode=config.raw?raw:decoded;var cookies=document.cookie.split('; ');for(var i=0,l=cookies.length;i<l;i++){var parts=cookies[i].split('=');if(decode(parts.shift())===key){var cookie=decode(parts.join('='));return config.json?JSON.parse(cookie):cookie;}}
return null;};config.defaults={};$.removeCookie=function(key,options){if($.cookie(key)!==null){$.cookie(key,null,options);return true;}
return false;};};if(typeof jQuery!=='undefined')
eds_cookie(jQuery);if(typeof eds3_5_jq!=='undefined')
eds_cookie(eds3_5_jq);})(document);
;;;!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(eds3_5_jq)}(function(a){"use strict";function b(b,e){function f(){return o.update(),h(),o}function g(){t.css(y,o.thumbPosition),q.css(y,-o.contentPosition),r.css(x,o.trackSize),s.css(x,o.trackSize),t.css(x,o.thumbSize)}function h(){u&&(p[0].ontouchstart=function(a){1===a.touches.length&&(a.stopPropagation(),k(a.touches[0]))}),t.bind("mousedown",function(a){a.stopPropagation(),k(a)}),s.bind("mousedown",function(a){k(a,!0)}),a(window).resize(function(){o.update("relative")}),o.options.wheel&&window.addEventListener?b[0].addEventListener(v,l,!1):o.options.wheel&&(b[0].onmousewheel=l)}function i(){return o.contentPosition>0}function j(){return o.contentPosition<=o.contentSize-o.viewportSize-5}function k(b,d){o.hasContentToSroll&&(a("body").addClass("noSelect"),z=d?t.offset()[y]:w?b.pageX:b.pageY,u&&(document.ontouchmove=function(a){(o.options.touchLock||i()&&j())&&a.preventDefault(),a.touches[0][c+"Touch"]=1,m(a.touches[0])},document.ontouchend=n),a(document).bind("mousemove",m),a(document).bind("mouseup",n),t.bind("mouseup",n),s.bind("mouseup",n),m(b))}function l(c){if(o.hasContentToSroll){var d=c||window.event,e=-(d.deltaY||d.detail||-1/3*d.wheelDelta)/40,f=1===d.deltaMode?o.options.wheelSpeed:1;o.contentPosition-=e*f*o.options.wheelSpeed,o.contentPosition=Math.min(o.contentSize-o.viewportSize,Math.max(0,o.contentPosition)),o.thumbPosition=o.contentPosition/o.trackRatio,b.trigger("move"),t.css(y,o.thumbPosition),q.css(y,-o.contentPosition),(o.options.wheelLock||i()&&j())&&(d=a.event.fix(d),d.preventDefault())}c.stopPropagation()}function m(a){if(o.hasContentToSroll){var d=w?a.pageX:a.pageY,e=a[c+"Touch"]?z-d:d-z,f=Math.min(o.trackSize-o.thumbSize,Math.max(0,o.thumbPosition+e));o.contentPosition=f*o.trackRatio,b.trigger("move"),t.css(y,f),q.css(y,-o.contentPosition)}}function n(){o.thumbPosition=parseInt(t.css(y),10)||0,a("body").removeClass("noSelect"),a(document).unbind("mousemove",m),a(document).unbind("mouseup",n),t.unbind("mouseup",n),s.unbind("mouseup",n),document.ontouchmove=document.ontouchend=null}this.options=a.extend({},d,e),this._defaults=d,this._name=c;var o=this,p=b.find(".viewport"),q=b.find(".overview"),r=b.find(".scrollbar"),s=r.find(".track"),t=r.find(".thumb"),u="ontouchstart" in document.documentElement,v="onwheel" in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll",w="x"===this.options.axis,x=w?"width":"height",y=w?"left":"top",z=0;return this.contentPosition=0,this.viewportSize=0,this.contentSize=0,this.contentRatio=0,this.trackSize=0,this.trackRatio=0,this.thumbSize=0,this.thumbPosition=0,this.hasContentToSroll=!1,this.update=function(a){var b=x.charAt(0).toUpperCase()+x.slice(1).toLowerCase();switch(this.viewportSize=p[0]["offset"+b],this.contentSize=q[0]["scroll"+b],this.contentRatio=this.viewportSize/this.contentSize,this.trackSize=this.options.trackSize||this.viewportSize,this.thumbSize=Math.min(this.trackSize,Math.max(this.options.thumbSizeMin,this.options.thumbSize||this.trackSize*this.contentRatio)),this.trackRatio=(this.contentSize-this.viewportSize)/(this.trackSize-this.thumbSize),this.hasContentToSroll=this.contentRatio<1,r.toggleClass("disable",!this.hasContentToSroll),a){case"bottom":this.contentPosition=Math.max(this.contentSize-this.viewportSize,0);break;case"relative":this.contentPosition=Math.min(Math.max(this.contentSize-this.viewportSize,0),Math.max(0,this.contentPosition));break;default:this.contentPosition=parseInt(a,10)||0}return this.thumbPosition=this.contentPosition/this.trackRatio,g(),o},f()}var c="eds_tinyscrollbar",d={axis:"y",wheel:!0,wheelSpeed:40,wheelLock:!0,touchLock:!0,trackSize:!1,thumbSize:!1,thumbSizeMin:20};a.fn[c]=function(d){return this.each(function(){a.data(this,"plugin_"+c)||a.data(this,"plugin_"+c,new b(a(this),d))})}});
;;;/*! fluidvids.js v2.4.1 | (c) 2014 @toddmotto | https://github.com/toddmotto/fluidvids */
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t:e.edn_fluidvids=t()}(this,function(){"use strict";function e(e){return new RegExp("^(https?:)?//(?:"+d.players.join("|")+").*$","i").test(e)}function t(e,t){return parseInt(e,10)/parseInt(t,10)*100+"%"}function i(i){if((e(i.src)||e(i.data))&&!i.getAttribute("edn_data-fluidvids")){var n=document.createElement("div");i.parentNode.insertBefore(n,i),i.className+=(i.className?" ":"")+"edn_fluidvids-item",i.setAttribute("edn_data-fluidvids","loaded"),n.className+="edn_fluidvids",n.style.paddingTop=t(i.height,i.width),n.appendChild(i)}}function n(){var e=document.createElement("div");e.innerHTML="<p>x</p><style>"+o+"</style>",r.appendChild(e.childNodes[1])}var d={selector:["iframe","object"],players:["www.youtube.com","player.vimeo.com"]},o=[".edn_fluidvids {","width: 100%; max-width: 100%; position: relative;","}",".edn_fluidvids-item {","position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;","}"].join(""),r=document.head||document.getElementsByTagName("head")[0];return d.render=function(){for(var e=document.querySelectorAll(d.selector.join()),t=e.length;t--;)i(e[t])},d.init=function(e){for(var t in e)d[t]=e[t];d.render(),n()},d});
;;;(function ($, window, document) {
	'use strict';

	var pluginName = 'chameleonSlider_2_1',

		stringEndsWith = function (s, e) {
			return s.indexOf(e, s.length - e.length) !== -1;
		};

	$.fn[pluginName] = function (options) {
		var defaults = {
				content_source: '',
				container_dimensions: {
					width: 750,
					height: 400,
					w_as_ratio: false,
					h_as_ratio: false,
					height_references_width: false
				},
				autoplay: {
					enable: true,
					interval: 4000,
					pause_on_hover: true,
					autostart_video_playback: false,
					indicator: {
						display: true,
						position: {
							vertical: 'top',
							horizontal: 'left',
							h_offset: 0,
							v_offset: 0,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						},
						dimensions: {
							height: 2,
							width: 750,
							h_as_ratio: false,
							w_as_ratio: false
						},
						orientation: 'horizontal',
						flip_direction: false
					}
				},
				arrows: {
					display: true,
					auto_hide: true,
					hide_speed: 250,
					prev: {
						position: {
							vertical: 'top',
							horizontal: 'left',
							h_offset: 0,
							v_offset: 183,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					},
					next: {
						position: {
							vertical: 'top',
							horizontal: 'right',
							h_offset: 0,
							v_offset: 183,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					}
				},
				autoplay_toggle: {
					display: true,
					auto_hide: true,
					hide_speed: 250,
					position: {
						vertical: 'top',
						horizontal: 'left',
						h_offset: 347,
						v_offset: 130,
						h_as_ratio: false,
						v_as_ratio: false,
						v_center_point: false,
						h_center_point: false
					}
				},
				scrollable_boxes: {
					item_info: {
						display: true,
						cutThumbWidth: false,
						cutCategoryWidth: false,
						container: {
							dimensions: {
								height: 100,
								width: 750,
								h_as_ratio: false,
								w_as_ratio: false
							},
							resize_to_content: true,
							show_on_hover: false,
							position: {
								vertical: 'top',
								horizontal: 'left',
								h_offset: 0,
								v_offset: 2,
								h_as_ratio: false,
								v_as_ratio: false,
								v_center_point: false,
								h_center_point: false
							}
						}
					},
					gallery_info: {
						display: false,
						container: {
							dimensions: {
								height: 100,
								width: 750,
								h_as_ratio: false,
								w_as_ratio: false
							},
							resize_to_content: true,
							show_on_hover: false,
							position: {
								vertical: 'top',
								horizontal: 'left',
								h_offset: 0,
								v_offset: 2,
								h_as_ratio: false,
								v_as_ratio: false,
								v_center_point: false,
								h_center_point: false
							}
						}
					}
				},
				thumbs: {
					display: true,
					auto_hide: false,
					hide_speed: 250,
					width: 100,
					height: 46,
					captions: true,
					display_item_types: false,
					pagination: {
						direction: 'horizontal',
						duration: 250,
						easing: 'swing'
					},
					tooltips: {
						enabled: false,
						title: true,
						description: false,
						position: {
							my: 'bottom center',
							at: 'top center'
						},
						classes: ''
					},
					container: {
						transparent: true,
						dimensions: {
							height: 20,
							width: 679,
							h_as_ratio: false,
							w_as_ratio: false
						},
						position: {
							vertical: 'bottom',
							horizontal: 'left',
							h_offset: 35,
							v_offset: 0,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					}
				},
				categories: {
					display: false,
					auto_hide: false,
					hide_speed: 250,
					width: 100,
					height: 46,
					pagination: {
						direction: 'horizontal',
						duration: 250,
						easing: 'swing'
					},
					container: {
						dimensions: {
							height: 20,
							width: 679,
							h_as_ratio: false,
							w_as_ratio: false
						},
						position: {
							vertical: 'bottom',
							horizontal: 'left',
							h_offset: 35,
							v_offset: 0,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					}
				},
				pagination: {
					display: true,
					pages_at_once: 7,
					direction: 'horizontal',
					position: {
						vertical: 'bottom',
						horizontal: 'right',
						h_offset: 35,
						v_offset: 58,
						h_as_ratio: false,
						v_as_ratio: false,
						v_center_point: false,
						h_center_point: false
					}
				},
				title_boxes: {
					current_item: {
						display: false,
						height: 35,
						position: {
							vertical: 'bottom',
							horizontal: 'left',
							h_offset: 0,
							v_offset: 200,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					},
					current_gallery: {
						display: false,
						height: 35,
						position: {
							vertical: 'top',
							horizontal: 'left',
							h_offset: 0,
							v_offset: 0,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					}
				},
				buttons: {
					email: {
						display: false,
						position: {
							vertical: 'top',
							horizontal: 'right',
							h_offset: 35,
							v_offset: 58,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						},
						email_subject: 'Look at this link'
					},
					download: {
						display: false,
						position: {
							vertical: 'top',
							horizontal: 'left',
							h_offset: 35,
							v_offset: 58,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					},
					fullscreen: {
						display: false,
						position: {
							vertical: 'top',
							horizontal: 'left',
							h_offset: 35,
							v_offset: 58,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					},
					exit_fullscreen: {
						display: false,
						position: {
							vertical: 'bottom',
							horizontal: 'right',
							h_offset: 35,
							v_offset: 58,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					}
				},
				social_buttons: {
					display: false,
					direction: 'horizontal',
					load_after_effect: true,
					position: {
						vertical: 'bottom',
						horizontal: 'right',
						h_offset: 35,
						v_offset: 58,
						h_as_ratio: false,
						v_as_ratio: false,
						v_center_point: false,
						h_center_point: false
					},
					buttons: {
						facebook: {
							display: true,
							html: '<iframe src="//www.facebook.com/plugins/like.php?href={location_href_encoded}&amp;layout=button_count&amp;show_faces=true&amp;action=like&amp;font&amp;colorscheme=light&amp;height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:20px; width: 100px;" allowTransparency="true"></iframe>'
						},
						google: {
							display: true,
							html: '<g:plusone size="medium" href="{location_href}" annotation="bubble"></g:plusone><script type="text/javascript">gapi.plusone.go();</' + 'script>'
						},
						twitter: {
							display: true,
							html: '<a href="//twitter.com/share" class="twitter-share-button" data-url="{location_href}" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></' + 'script>'
						}
					},
					hideable: false,
					container: {
						width: 100,
						height: 100
					}
				},
				main_panel: {
					display: true,
					fill_panel: false,
					stretch_small_image: false,
					top_left_align: false,
					drag_navigation: false,
					immediately_preload_all_images: false,
					dimensions: {
						width: 750,
						height: 400,
						h_as_ratio: false,
						w_as_ratio: false
					},
					position: {
						vertical: 'top',
						horizontal: 'left',
						h_offset: 0,
						v_offset: 0,
						h_as_ratio: false,
						v_as_ratio: false,
						v_center_point: false,
						h_center_point: false
					},
					trim: {
						top: 0,
						bottom: 0,
						left: 0,
						right: 0
					},
					transition: {
						duration: 800,
						effects: []
					}
				},
				lightbox_title: false,
				lightbox_description: false,
				key_browse: true,
				redirect_on_click: false,
				redirect_on_click_target: '_self',
				lightbox_on_click: false,
				module_id: 0,
				portal_id: 0,
				article_id: 0,
				filter_values: '',
				filter_types: '',
				locale: '',
				inhouse_player: 'flowplayer',
				flowplayer_src: '',
				fullscreen_provider: 'pp',
				pretty_photo_options: {},
				smb_options: {},
				smbLight_options: {},
				cycle_current_category: true,
				open_at: null,
				modify_browser_history: false,
				videoVolume: 1
			},
			option = $.extend(true, {}, defaults, options),

			location = window.history.location || window.location;

		return this.each(function () {
			var $t = $(this),
				$slider_container,

				slider_resize_interval,

				ajax = {
					trys: 0
				},
				$loading_overlay = $('<div class="loading_slider_overlay" />'),
				$loading_indicator = $('<div class="indicator" />'),
				$loading_msg = $('<p />'),

				slider_content,
				all_items_count = 0,
				selected_categories,
				current = {
					category: {},
					item: {}
				},

				previous_item_index = 0,

				item_panels = {},

				$main_panel,
				$main_panel_items_wrapper,
				$main_panel_media_link = $(),
				$lightbox_links_container,
				$lightbox_links,

				$pagination,
				$pagination_pages_container,
				$pagination_pages,

				$social_buttons,
				$social_buttons_toggle,

				$autoplay_indicator,
				$autoplay_container,
				$autoplay_toggle,

				autoplay = {
					interval: '',
					last_started: 0,
					pause_time: 0,
					start_pause_delta: 0,
					time_remaining: 0,
					pause: false,
					user_paused: false,
					fade_in: false,
					reset: false,
					transition_in_progres: false,
					video_playing: false
				},

				$navigation_prev,
				$navigation_next,

				rendering = {
					container_dimensions: {},
					thumbs: {
						page: {
							vertical_space: 0,
							horizontal_space: 0,
							width: 0,
							height: 0,
							count: 0
						},
						container: {},
						width: 0,
						height: 0,
						per_page: 0,
						per_row: 0,
						row_count: 0,
						window_width: 0,
						window_height: 0
					},
					categories: {
						page: {
							vertical_space: 0,
							horizontal_space: 0,
							width: 0,
							height: 0,
							count: 0
						},
						container: {},
						width: 0,
						height: 0,
						per_page: 0,
						per_row: 0,
						row_count: 0,
						window_width: 0,
						window_height: 0,
						render_categories: true
					},
					autoplay: {
						indicator: {}
					},
					title_boxes: {
						current_item: {},
						current_gallery: {}
					},
					scrollable_boxes: {
						item_info: {},
						gallery_info: {}
					},
					pagination: {
						pages_at_once: 0,
						page: {
							width: 0,
							height: 0
						}
					},
					main_panel: {
						dimensions: {},
						initialized: false,
						disable_clicking: false,
						disable_clicking_interval: ''
					},
					preloaded_images: {},
					preloading_item: false,
					buttons: {
						email: {},
						download: {},
						fullscreen: {},
						exit_fullscreen: {}
					},
					html5: {
						video: false
					},
					youtube_iframe_api: {
						called: false,
						loaded: false
					},
					youtube_player_object: undefined,
					mouse_entered: false,
					item_details_shown: false
				},

				get_item_src = function (item) {
					var item_src = item.src;

					if (item.sizes) {
						var i = 0,
							l = item.sizes.length;

						for (; i < l; i++) {
							var size = item.sizes[i];

							if (size.width < rendering.main_panel.dimensions.width)
								break;

							item_src = size.src;
						}
					}

					return item_src;
				},

				is_image_item = function (item) {
					if (typeof item == 'number')
						item = current.category.items[item];

					return item.type == 'image' || ((item.type == 'video' || item.type == 'audio') && option.lightbox_on_click);
				},

			slider = {
				init: function () {
					if (option.container_dimensions.w_as_ratio || option.container_dimensions.h_as_ratio) {
						$slider_container = $t.parent();

						rendering.container_dimensions = {
							width: option.container_dimensions.w_as_ratio ? Math.round($slider_container.width() * option.container_dimensions.width) : option.container_dimensions.width,
							height: 0
						};
						rendering.container_dimensions.height = option.container_dimensions.h_as_ratio
							? Math.round(
								(option.container_dimensions.height_references_width
									? rendering.container_dimensions.width
									: $slider_container.height()
								) * option.container_dimensions.height
							)
							: option.container_dimensions.height;

						$(window).bind('resize.chameleonSlider', function () {
							clearTimeout(slider_resize_interval);
							slider_resize_interval = setTimeout(function () {
								rendering.container_dimensions = {
									width: option.container_dimensions.w_as_ratio ? Math.round($slider_container.width() * option.container_dimensions.width) : option.container_dimensions.width,
									height: 0
								};
								rendering.container_dimensions.height = option.container_dimensions.h_as_ratio
									? Math.round(
										(option.container_dimensions.height_references_width
											? rendering.container_dimensions.width
											: $slider_container.height()
										) * option.container_dimensions.height
									)
									: option.container_dimensions.height;

								$t.trigger('resize_slider');
							}, 200);
						});
					} else
						rendering.container_dimensions = {
							width: option.container_dimensions.width,
							height: option.container_dimensions.height
						};

					$t
						.width(rendering.container_dimensions.width)
						.height(rendering.container_dimensions.height)
						.append($loading_overlay)
						.bind('destroy', function () {
							clearTimeout(autoplay.interval);
						});

					$loading_overlay
						.width(rendering.container_dimensions.width)
						.height(rendering.container_dimensions.height)
						.append($loading_indicator)
						.show(0);

					try {
						rendering.html5.video = !!document.createElement('video').canPlayType;
					} catch(e) {}

					if (option.modify_browser_history)
						$(window).on('popstate', function(e) {
							slider.parse_slider_url_hash(location.hash);
							slider.show_item(current.item.index, true, undefined, true);
						});

					slider.get_content_source();
				},

				get_content_source: function () {
					if (ajax.trys > 3) {
						if ($loading_msg.is(':visible')) {
							$loading_msg.html('Unable to display the items (requesting the items failed)');
						} else {
							$loading_indicator.fadeOut(250, function () {
								$loading_msg = $('<p>Unable to display the items (requesting the items failed)</p>');
								$loading_msg
									.appendTo($loading_overlay)
									.css({
										display: 'block',
										top: Math.floor((rendering.container_dimensions.height - $loading_msg.outerHeight(true)) / 2)
									});
							});
						}

						return;
					}

					ajax.trys += 1;

					$.ajax({
						dataType: 'json',
						type: 'get',
						url: option.content_source,
						timeout: 300000,
						data: 'mid=' + option.module_id + '&portal_id=' + option.portal_id + '&locale=' + option.locale + '&article_id=' + option.article_id + '&html5_player=' + (rendering.html5.video ? '1' : '0') + (option.filter_values === '' ? '' : '&filter_values=' + option.filter_values + '&filter_types=' + option.filter_types),
						success: slider.load,
						complete: slider.ajax_callback,
						cache: false
					});
				},

				ajax_callback: function (xhr, status) {
					if (status !== 'success') {
						slider.get_content_source();
					}
				},

				parse_slider_url_hash: function (hash) {
					var url_hash = hash.substring(1),
						first_slash_position = url_hash.indexOf('/'),
						categories_to_open,
						item_to_open = undefined;

					categories_to_open = url_hash.substring(first_slash_position + 1);

					first_slash_position = categories_to_open.indexOf('/');

					if (first_slash_position !== -1) {
						item_to_open = categories_to_open.substring(first_slash_position + 1);
						first_slash_position = item_to_open.indexOf('/');

						if (first_slash_position !== -1)
							item_to_open = item_to_open.substring(0, first_slash_position);

						if (!item_to_open) {
							item_to_open = undefined;
						}

						categories_to_open = categories_to_open.substring(0, categories_to_open.indexOf('/'));
					}

					selected_categories = {
						ids: categories_to_open.split('-'),
						indexes: []
					};

					selected_categories.indexes = slider.category_indexes_from_ids($.extend([], selected_categories.ids), slider_content);
					if (selected_categories.indexes.length == 0) {
						selected_categories.indexes = [0];
						selected_categories.ids = [slider_content[0].id];
					}

					current.category = slider.get_category(selected_categories.indexes);
					current.category.item_count = current.category.items.length;

					current.item = {
						id: 0,
						index: slider.item_index_from_id(item_to_open)
					};

					current.item.id = current.category.items[current.item.index].id;
				},

				load: function(data) {
					var url_hash = location.hash.substring(1),
						first_slash_position = url_hash.indexOf('/'),
						hashStart = first_slash_position == -1 ? '' : url_hash.substring(0, first_slash_position);

					if (data.content.length == 0) {
						$loading_indicator.fadeOut(250, function () {
							$loading_msg = $('<p>' + (data.user_friendly_msg ? data.user_friendly_msg : 'There are no items to display.') + '</p>');
							$loading_msg
								.appendTo($loading_overlay)
								.css({
									display: 'block',
									top: Math.floor((rendering.container_dimensions.height - $loading_msg.outerHeight(true)) / 2)
								});
						});

						return;
					}

					slider_content = data.content;

					if (option.open_at != null) {
						selected_categories = {
							ids: option.open_at.categories,
							indexes: []
						};

						selected_categories.indexes = slider.category_indexes_from_ids($.extend([], selected_categories.ids), slider_content);
						if (selected_categories.indexes.length == 0) {
							selected_categories.indexes = [0];
							selected_categories.ids = [slider_content[0].id];
						}

						current.category = slider.get_category(selected_categories.indexes);
						current.category.item_count = current.category.items.length;

						current.item = {
							id: 0,
							index: slider.item_index_from_id(option.open_at.item)
						};

						current.item.id = current.category.items[current.item.index].id;
					} else if (hashStart == 'slider_' + option.module_id || hashStart == 'gallery_' + option.module_id) {
						slider.parse_slider_url_hash('#' + url_hash);

						if (
							option.fullscreen_provider == 'smb'
							&& hashStart == 'gallery_' + option.module_id
							&& current.category.item_count > 0
						) {
							(function () {
								var smb_items = [];

								option.smb_options.openAt = 0;

								$.each(current.category.items, function (i, item) {
									if (item.id === current.item.id) {
										option.smb_options.openAt = i;
									}

									smb_items.push(item.smb_object);
								});

								$('<div />')
									.data('socialMediaBox', smb_items)
									.socialMediaBox(option.smb_options);
							})();
						}
					} else {
						selected_categories = {
							ids: [slider_content[0].id],
							indexes: [0]
						};

						current.category = slider_content[0];
						current.category.item_count = current.category.items.length;

						current.item = {
							id: undefined,
							index: slider.item_index_from_id(undefined)
						};
					}

					if ('YT' in window && 'Player' in window.YT) {
						rendering.youtube_iframe_api.called = true;
						rendering.youtube_iframe_api.loaded = true;
					}

					if (option.buttons.exit_fullscreen.display)
						slider.exit_fullscreen.init();

					if (option.autoplay.enable)
						slider.autoplay.init();

					if (option.pagination.display)
						slider.pagination.init();

					if (option.social_buttons.display)
						slider.social_buttons.init();

					if (option.buttons.email.display)
						slider.email_button.init();

					if (option.buttons.download.display)
						slider.download_button.init();

					if (option.buttons.fullscreen.display)
						slider.fullscreen_button.init();

					if (option.autoplay_toggle.display)
						slider.autoplay_toggle.init();

					if (option.arrows.display)
						slider.arrows.init();

					if (option.categories.display)
						slider.categories.init();

					if (option.thumbs.display)
						slider.thumbnails.init();

					if (option.title_boxes.current_item.display)
						slider.item_title.init();

					if (option.title_boxes.current_gallery.display)
						slider.gallery_title.init();

					if (option.scrollable_boxes.item_info.display)
						slider.item_info.init();

					if (option.scrollable_boxes.gallery_info.display)
						slider.gallery_info.init();

					if (option.main_panel.display)
						slider.main_panel.init();
					else
						slider.triggers();
				},

				show_item: function (index, force, transition, noPushState) {
					index = parseInt(index, 10);

					force = typeof force == 'undefined' ? false : true;

					if (index === current.item.index && !force)
						return;

					if (typeof slider._on_pre_item_change == 'function') {
						slider._on_pre_item_change();
						slider._on_pre_item_change = undefined;
					}

					autoplay.video_playing = false;

					if (index < 0) {
						index = current.category.item_count - 1;
					} else if (index >= current.category.item_count) {
						index = 0;
					}

					slider.autoplay.reset();

					previous_item_index = current.item.index;

					var current_item = current.category.items[index];

					current.item.index = index;
					current.item.id = current_item.id;

					slider.pagination.select(index);
					slider.thumbnails.select(index);

					rendering.item_details_shown = false;

					if (
						option.main_panel.immediately_preload_all_images ||
						(
							is_image_item(current_item) &&
							rendering.preloaded_images[current_item.src] &&
							rendering.preloaded_images[current_item.src].loaded
						)
					) {
						rendering.item_details_shown = true;

						slider.social_buttons.display(index);
						slider.item_title.select(index);
						slider.item_info.display(index);
						slider.download_button.display(index);
						slider.email_button.display(index);
					}

					if (option.modify_browser_history && !noPushState) {
						var hash_location = location.href.indexOf('#'),
							newHref;

						if (hash_location == -1)
							newHref = location.href
						else
							newHref = location.href.substring(0, hash_location);

						newHref += '#slider_' + option.module_id + '/' + selected_categories.ids.join('-') + '/' + current.item.id;

						history.pushState(null, null, newHref);
					}

					if (option.main_panel.display) {
						if (!rendering.preloading_item)
							if (typeof transition == 'undefined')
								slider.main_panel.display(index);
							else
								slider.main_panel.display(index, transition);
					} else
						$t.trigger('slider_transition_finnished');
				},

				next: function () {
					var next_cat_index,
						num_of_categories = slider_content.length;

					if (!option.cycle_current_category && current.item.index == current.category.item_count - 1) {
						next_cat_index = selected_categories.indexes.pop() + 1;

						if (selected_categories.indexes.length != 0)
							num_of_categories = slider.get_category(selected_categories.indexes).children.length;

						if (next_cat_index < num_of_categories)
							selected_categories.indexes.push(next_cat_index);
						else
							selected_categories.indexes.push(0);

						selected_categories.ids = slider.category_ids_from_indexes(selected_categories.indexes);

						current.category = slider.get_category(selected_categories.indexes);
						current.category.item_count = current.category.items.length;

						current.item = {
							id: current.category.items[0].id,
							index: 0
						};

						rendering.categories.render_categories = false;

						slider.change_category();

						return;
					}

					slider.show_item(current.item.index + 1);
				},

				prev: function () {
					var prev_cat_index,
						num_of_categories = slider_content.length;

					if (!option.cycle_current_category && current.item.index == 0) {
						prev_cat_index = selected_categories.indexes.pop() - 1;

						if (selected_categories.indexes.length != 0)
							num_of_categories = slider.get_category(selected_categories.indexes).children.length;

						if (prev_cat_index < 0)
							selected_categories.indexes.push(num_of_categories - 1);
						else
							selected_categories.indexes.push(prev_cat_index);

						selected_categories.ids = slider.category_ids_from_indexes(selected_categories.indexes);

						current.category = slider.get_category(selected_categories.indexes);
						current.category.item_count = current.category.items.length;

						current.item = {
							id: current.category.items[current.category.items.length - 1].id,
							index: current.category.items.length - 1
						};

						rendering.categories.render_categories = false;

						slider.change_category();

						return;
					}

					slider.show_item(current.item.index - 1);
				},

				pagination: {
					init: function () {
						var $page;

						$pagination = $('<div class="pagination" />');
						$pagination_pages_container = $('<ul class="pages_container" />');

						$pagination.append($pagination_pages_container);

						$pagination.css('visibility', 'hidden');

						$t.prepend($pagination);

						slider.position_element($pagination, option.pagination.position);

						$page = $('<li><span></span></li>');
						$pagination_pages_container.append($page);

						rendering.pagination.page.width = $page.outerWidth(true);
						rendering.pagination.page.height = $page.outerHeight(true);

						$pagination.css('visibility', '');

						slider.pagination.display_category();
						slider.pagination.select(current.item.index);

						$pagination_pages_container
							.delegate('li', 'click', function () {
								slider.show_item($(this).index());

								return false;
							});
					},

					display_category: function () {
						if (!option.pagination.display)
							return;

						var i = 0,
							pages_html = '';

						$pagination.css('display', 'none');

						$pagination_pages_container.html('');

						rendering.pagination.pages_at_once = current.category.item_count < option.pagination.pages_at_once ? current.category.item_count : option.pagination.pages_at_once;

						if (option.pagination.direction === 'horizontal') {
							$pagination.addClass('horizontal');

							$pagination.width(rendering.pagination.pages_at_once * rendering.pagination.page.width);
							$pagination.height(rendering.pagination.page.height);

							$pagination_pages_container.width(current.category.item_count * rendering.pagination.page.width);
							$pagination_pages_container.height(rendering.pagination.page.height);
						} else {
							$pagination.addClass('vertical');

							$pagination.width(rendering.pagination.page.width);
							$pagination.height(rendering.pagination.pages_at_once * rendering.pagination.page.height);

							$pagination_pages_container.width(rendering.pagination.page.width);
							$pagination_pages_container.height(current.category.item_count * rendering.pagination.page.height);
						}

						for (; i < current.category.item_count; i++)
							pages_html += '<li><span></span></li>';

						$pagination_pages = $(pages_html);
						$pagination_pages_container.append($pagination_pages);

						$pagination.css('display', '');
					},

					select: function (index) {
						if (!option.pagination.display)
							return;

						var offset_pages = Math.floor(rendering.pagination.pages_at_once / 2),
							align_to_page = index - offset_pages,
							to_animate = {};

						if (align_to_page < 0) {
							align_to_page = 0;
						} else if (index >= current.category.item_count - offset_pages) {
							align_to_page = current.category.item_count - rendering.pagination.pages_at_once;
						}

						if (option.pagination.direction == 'horizontal') {
							to_animate = {
								left: - (align_to_page * rendering.pagination.page.width)
							};
						} else {
							to_animate = {
								top: - (align_to_page * rendering.pagination.page.height)
							};
						}

						$pagination_pages_container.stop().animate(to_animate, 250);

						$pagination_pages.removeClass('current');
						$pagination_pages.eq(index).addClass('current');
					}
				},

				social_buttons: {
					init: function () {
						$social_buttons = $('<div class="social_buttons ' + option.social_buttons.direction + '" />');

						if (option.social_buttons.hideable) {
							$social_buttons_toggle = $('<div class="social_buttons_toggle ' + option.social_buttons.direction + '" />');
							$t.prepend($social_buttons_toggle);
							slider.position_element($social_buttons_toggle, option.social_buttons.position);

							$social_buttons
								.fadeTo(200, 0, function () {
									$social_buttons.hide();
								})
								.data('visible', false);
							$t.prepend($social_buttons);
							slider.position_element($social_buttons, $.extend({}, option.social_buttons.position, {h_offset: option.social_buttons.position.h_offset + $social_buttons_toggle.outerWidth(true) + 5}));

							$social_buttons_toggle.click(function () {
								if ($social_buttons.data('visible')) {
									$social_buttons
										.data('visible', false)
										.stop()
										.fadeTo(200, 0, function () {
											$social_buttons
												.empty()
												.hide();
										});

									$social_buttons_toggle.removeClass('active');
								} else {
									$social_buttons
										.data('visible', true)
										.stop()
										.fadeTo(200, 1);

									slider.social_buttons.display(current.item.index);

									$social_buttons_toggle.addClass('active');
								}
							});
						} else {
							$t.prepend($social_buttons);
							slider.position_element($social_buttons, option.social_buttons.position);
						}

						slider.social_buttons.display(current.item.index);
					},

					display: function (index) {
						if (!option.social_buttons.display || (option.social_buttons.hideable && !$social_buttons.data('visible')))
							return;

						var button_html = '',
							social_button_href = '';

						$social_buttons.html('');

						if (typeof current.category.items[index].social_button_url == 'string') {
							social_button_href = current.category.items[index].social_button_url;
						} else {
							if (location.href.indexOf('#') == -1) {
								social_button_href = location.href;
							} else {
								social_button_href = location.href.substring(0, location.href.indexOf('#'));
							}

							social_button_href = slider.set_url_param(slider.set_url_param(social_button_href, 'edgpid', current.category.items[index].id), 'edgmid', option.module_id) + '#slider_' + option.module_id + '/' + selected_categories.ids.join('-') + '/' + current.category.items[index].id + '/';
						}

						var button;

						for (button in option.social_buttons.buttons) {
							if (option.social_buttons.buttons[button].display) {
								button_html += '<div class="social_button">';

								button_html += option.social_buttons.buttons[button].html
									.replace(/{location_href}/g, social_button_href)
									.replace(/{location_href_encoded}/g, encodeURIComponent(social_button_href));

								button_html += '</div>';
							}
						}

						if (autoplay.transition_in_progres && option.social_buttons.load_after_effect) {
							$t.unbind('slider_transition_finnished.social_buttons');

							$t.bind('slider_transition_finnished.social_buttons', function () {
								$social_buttons
									.html('')
									.append(button_html);
							});
						} else {
							$social_buttons.append(button_html);
						}
					}
				},

				_button: {
					init: function (params) {
						rendering.buttons[params.type] = $('<a class="standalone_button' + (params.custom_class ? ' ' + params.custom_class : '') + '" href="#">' + params.text + '</a>');

						$t.prepend(rendering.buttons[params.type]);
						slider.position_element(rendering.buttons[params.type], option.buttons[params.type].position);
					},

					display: function (params) {
						params.target = typeof params.target == 'string' ? params.target : '_self'

						rendering.buttons[params.type].attr({
							href: params.href,
							target: params.target
						});
					}
				},

				email_button: {
					init: function () {
						slider._button.init({
							type: 'email',
							custom_class: 'email',
							text: 'Email this'
						});

						slider.email_button.display(current.item.index);
					},

					display: function (index) {
						var hash_location = location.href.indexOf('#'),
							href;

						if (!option.buttons.email.display)
							return;

						if (hash_location == -1)
							href = location.href
						else
							href = location.href.substring(0, hash_location);

						href += '#slider_' + option.module_id + '/' + selected_categories.ids.join('-') + '/' + current.category.items[current.item.index].id;

						slider._button.display({
							type: 'email',
							href: 'mailto:?subject=' + escape(option.buttons.email.email_subject) + '&body=' + encodeURIComponent(href)
						});
					}
				},

				download_button: {
					init: function () {
						slider._button.init({
							type: 'download',
							custom_class: 'download',
							text: 'Download'
						});

						slider.download_button.display(current.item.index);
					},

					display: function (index) {
						var url = current.category.items[index].download_url;

						if (!option.buttons.download.display)
							return;

						url = !url ? '#' : url;

						slider._button.display({
							type: 'download',
							href: url,
							target: '_blank'
						});

						if (url == '#')
							rendering.buttons.download.stop().fadeTo(200, 0);
						else
							rendering.buttons.download.stop().fadeTo(200, 1);
					}
				},

				fullscreen_button: {
					init: function () {
						slider._button.init({
							type: 'fullscreen',
							custom_class: 'fullscreen',
							text: 'Fullscreen'
						});

						rendering.buttons.fullscreen.click(function () {
							$(this)[pluginName + '_fullscreen'](option.fullscreen_options);

							return false;
						});
					}
				},

				exit_fullscreen: {
					init: function () {
						slider._button.init({
							type: 'exit_fullscreen',
							custom_class: 'exit_fullscreen',
							text: 'Exit fullscreen'
						});
					}
				},

				main_panel: {
					init: function () {
						var touch_events_present,
							mousedown = 'mousedown',
							mousemove = 'mousemove',
							mouseup = 'mouseup';

						$main_panel = $('<div class="main_panel" />');

						slider.main_panel.size();

						$main_panel_items_wrapper = $('<div class="items_wrapper" />');

						$main_panel.append($main_panel_items_wrapper);

						$t.prepend($main_panel);

						if (option.redirect_on_click || option.lightbox_on_click) {
							$main_panel_media_link = $('<a href="#" class="media_link" />');

							if (option.redirect_on_click)
								$main_panel_media_link.attr('target', option.redirect_on_click_target);

							$main_panel.append($main_panel_media_link);
						}

						$main_panel.append('<div class="preloading_item" />');

						if (!option.redirect_on_click && option.lightbox_on_click) {
							$lightbox_links_container = $('<div class="lightbox_links_container" style="display: none;"></div>');
							$main_panel_items_wrapper.append($lightbox_links_container);
						}

						$t.bind('slider_transition_finnished.main_panel', function () {
							autoplay.transition_in_progres = false;
						});

						slider.main_panel.display_category(true);

						if (!rendering.preloading_item) {
							slider.main_panel.display(current.item.index, '');
							slider.triggers();
						}

						if (option.main_panel.drag_navigation) {
							touch_events_present = 'ontouchstart' in window;

							if (touch_events_present) {
								mousedown = 'touchstart';
								mousemove = 'touchmove';
								mouseup = 'touchend';
							}

							$main_panel
								.delegate('a', 'click', function (e) {
									if (rendering.main_panel.disable_clicking)
										e.preventDefault();
								})
								.bind(mousedown + '.chameleon_' + option.module_id, function (e) {
									if (touch_events_present)
										if (e.originalEvent.touches && e.originalEvent.touches.length)
											e = e.originalEvent.touches[0];
										else if (e.originalEvent.changedTouches && e.originalEvent.changedTouches.length)
											e = e.originalEvent.changedTouches[0];

									$main_panel.data('dragging', {
										start_position: {
											left: e.pageX,
											top: e.pageY
										}
									});

									e.preventDefault();
								});

							$(document)
								.bind(mousemove + '.chameleon_' + option.module_id, function (e) {
									var position_delta,
										start_position;

									if (typeof $main_panel.data('dragging') != 'object')
										return;

									start_position = $main_panel.data('dragging').start_position;

									rendering.main_panel.disable_clicking = true;

									if (touch_events_present)
										if (e.originalEvent.touches && e.originalEvent.touches.length)
											e = e.originalEvent.touches[0];
										else if (e.originalEvent.changedTouches && e.originalEvent.changedTouches.length)
											e = e.originalEvent.changedTouches[0];

									if (Math.abs((start_position.top - e.pageY)/(e.pageX - start_position.left)) >= 1)
										return;

									position_delta = start_position.left - e.pageX;

									if (Math.abs(position_delta) < 50)
										return false;

									$main_panel.data('dragging', false);

									if (position_delta < 0)
										slider.prev();
									else
										slider.next();
								})
								.bind(mouseup + '.chameleon_' + option.module_id, function (e) {
									$main_panel.data('dragging', false);

									rendering.main_panel.disable_clicking_interval = setTimeout(function () {
										rendering.main_panel.disable_clicking = false;
									}, 10);
								});
						}

						rendering.main_panel.initialized = true;
					},

					size: function () {
						if (!option.main_panel.display)
							return;

						rendering.main_panel.dimensions = slider.get_dimensions(option.main_panel.dimensions);

						rendering.main_panel.dimensions.height -= option.main_panel.trim.top + option.main_panel.trim.bottom;
						rendering.main_panel.dimensions.width -= option.main_panel.trim.left + option.main_panel.trim.right;

						slider.position_element($main_panel, option.main_panel.position);

						$main_panel
							.width(rendering.main_panel.dimensions.width)
							.height(rendering.main_panel.dimensions.height);
					},

					display_category: function (first_run) {
						var lightbox_links_html = '',
							i = 0,
							item,
							current_item = current.category.items[current.item.index],
							smb_items = [];

						if (!option.main_panel.display)
							return;

						if (is_image_item(current_item)) {
							rendering.preloading_item = true;

							if (first_run) {
								$('<img />')
									.load(function () {
										rendering.preloading_item = false;

										slider.main_panel.display(current.item.index, '');
										slider.triggers();
									})
									.error(function () {
										rendering.preloading_item = false;

										slider.triggers();
									})
									.attr('src', current_item.src);
							} else {
								$main_panel.addClass('loading_category');
								var loadingCallback = function () {
									rendering.preloading_item = false;

									slider.main_panel.display(current.item.index, '');
									$main_panel.removeClass('loading_category');
								};

								$('<img />')
									.load(loadingCallback)
									.error(loadingCallback)
									.attr('src', current_item.src);
							}
						}

						for (; i < current.category.item_count; i++) {
							item = current.category.items[i];

							if (option.main_panel.immediately_preload_all_images) {
								if (is_image_item(item) && !rendering.preloaded_images[item.src]) {
									rendering.preloaded_images[item.src] = {
										loading: true,
										loaded: false
									};

									$('<img />')
										.load({src: item.src}, function (e) {
											rendering.preloaded_images[e.data.src] = {
												loading: false,
												loaded: true,
												width: this.width,
												height: this.height
											};
										})
										.attr('src', item.src);
								}
							}

							if (!option.redirect_on_click && option.lightbox_on_click) {
								var item_href,
									item_download,
									item_image;

								if (item.type == 'image' || item.type == 'video' || item.type == 'audio') {
									item_href = item.lightbox_url;
									item_download = item.download_url ? item.download_url : '';
									item_image = item.src;
								} else {
									item_href = '';
									item_download = '';
									item_image = '';
								}

								if (option.fullscreen_provider == 'pp') {
									if (item_href)
										lightbox_links_html += '<a href="' + item_href +
											'" rel="prettyPhoto_M' + option.module_id +
											'" edgmid="' + option.module_id +
											'" edgpid="' + item.id +
											'" downhref="' + item_download +
											(option.lightbox_description && item.info ? '" pptitle="' + item.info.replace('"', '&quot;') : '') +
											'"><img src="' + item_image + '" alt="' +
											(option.lightbox_title && item.title ? item.title : '') + '" /></a>';
								} else if (option.fullscreen_provider == 'smb') {
									if ($.isPlainObject(item.smb_object) && !$.isEmptyObject(item.smb_object))
										smb_items.push(item.smb_object);
								} else if (option.fullscreen_provider == 'smbLight') {
									if ($.isPlainObject(item.smbLight_object) && !$.isEmptyObject(item.smbLight_object))
										smb_items.push(item.smbLight_object);
								}
							}
						}

						if (!option.redirect_on_click && option.lightbox_on_click) {
							if (option.fullscreen_provider == 'pp') {
								$lightbox_links_container.html(lightbox_links_html);
								$lightbox_links = $lightbox_links_container.find('> a');

								$lightbox_links.prettyPhoto(option.pretty_photo_options);
							} else if (option.fullscreen_provider == 'smb') {
								$lightbox_links_container.data('socialMediaBox', smb_items);
							} else if (option.fullscreen_provider == 'smbLight') {
								$lightbox_links_container.data('smbLightItems', smb_items);
							}
						}
					},

					display: function (item_index) {
						var transition_effect = '',
							effect_object = '',
							random_effect_index,
							item = current.category.items[item_index];

						if (!option.main_panel.display)
							return;

						autoplay.transition_in_progres = true;

						$main_panel_media_link.unbind('click');

						if (arguments.length == 2) {
							effect_object = transition_effect = arguments[1];
						} else if (option.main_panel.transition.effects.length == 1) {
							effect_object = transition_effect = option.main_panel.transition.effects[0];
						} else if (option.main_panel.transition.effects.length > 1) {
							random_effect_index = Math.floor(Math.random() * option.main_panel.transition.effects.length);

							effect_object = transition_effect = option.main_panel.transition.effects[random_effect_index];
						}

						if (item.type == 'image') {
							$main_panel_media_link.css('display', 'block');

							if (option.redirect_on_click)
								$main_panel_media_link.attr('href', (typeof item.on_click_url == 'string' && item.on_click_url ? item.on_click_url : '#'));
						} else if (item.type == 'video' || item.type == 'audio') {
							transition_effect = '';
							effect_object = '';

							if (option.redirect_on_click || (typeof item.html != 'undefined' && item.html != '')) {
								$main_panel_media_link.css('display', 'none');
							} else {
								$main_panel_media_link.css('display', 'block');
							}
						} else if (item.type == 'html') {
							effect_object = '';

							if (transition_effect != 'fade')
								transition_effect = 'show';
						}

						if (!option.redirect_on_click && option.lightbox_on_click) {
							$main_panel_media_link
								.attr('href', '#')
								.click(function () {
									var smbLightItems;

									if (rendering.main_panel.disable_clicking)
										return false;

									if (option.fullscreen_provider == 'pp')
										$lightbox_links.filter('a[edgpid="' + item.id + '"]').trigger('click');
									else if (option.fullscreen_provider == 'smb') {
										option.smb_options.openAt = 0;
										$.each($lightbox_links_container.data('socialMediaBox'), function (i, smb_item) {
											if (smb_item.id === item.id) {
												option.smb_options.openAt = i;
												return false;
											}
										});
										$lightbox_links_container.socialMediaBox(option.smb_options);
									} else if (option.fullscreen_provider == 'smbLight') {
										smbLightItems = $lightbox_links_container.data('smbLightItems');

										option.smbLight_options.openAt = 0;
										$.each(smbLightItems, function (i, smb_item) {
											if (smb_item.id === item.id) {
												option.smbLight_options.openAt = i;
												return false;
											}
										});

										new SmbLight_1(smbLightItems, option.smbLight_options);
									}

									return false;
								});
						}

						if (typeof effect_object == 'object')
							transition_effect = effect_object.type;
						else if (transition_effect == '')
							transition_effect = 'show';

						if (rendering.youtube_player_object != undefined) {
							rendering.youtube_player_object.getIframe().src = '';
							rendering.youtube_player_object.stopVideo();
							rendering.youtube_player_object = undefined;
						}

						var _display = function (item_src) {
							if (!option.main_panel.immediately_preload_all_images && !rendering.item_details_shown) {
								slider.social_buttons.display(current.item.index);
								slider.item_title.select(current.item.index);
								slider.item_info.display(current.item.index);
								slider.download_button.display(current.item.index);
								slider.email_button.display(current.item.index);
							}

							slider.main_panel._transitions[transition_effect]({
								item_index: item_index,
								effect_settings: effect_object,
								item_src: (item_src ? item_src : item.src)
							});

							if (option.main_panel.fill_panel && is_image_item(item))
								slider.main_panel._fit_image($main_panel_items_wrapper.find('> .item_container').filter(':last').find('> img'));

							if (option.main_panel.immediately_preload_all_images)
								return;

							var nextItem = current.category.items[current.item.index + 1];

							if (!nextItem || !is_image_item(nextItem))
								return;

							var nextItemSrc = get_item_src(nextItem);

							if (rendering.preloaded_images[nextItemSrc])
								return;

							rendering.preloaded_images[nextItemSrc] = {
								loading: true,
								loaded: false
							};

							var current_category_id = current.category.id,
								current_item_index = current.item.index + 1;

							$('<img />')
								.load(function (e) {
									rendering.preloaded_images[nextItemSrc] = {
										loading: false,
										loaded: true,
										width: this.width,
										height: this.height
									};

									if (current_category_id != current.category.id || current_item_index != current.item.index)
										return;

									_display(nextItemSrc);

									slider.main_panel.remove_loading_effect('loading_item');
								})
								.attr('src', nextItemSrc);
						};

						if (is_image_item(item)) {
							if (option.main_panel.immediately_preload_all_images) {
								_display();
							} else {
								var item_src = get_item_src(item);

								if (rendering.preloaded_images[item_src]) {
									if (rendering.preloaded_images[item_src].loaded) {
										_display(item_src);
										slider.main_panel.remove_loading_effect('loading_item');
									}
								} else {
									slider.main_panel.show_loading_effect('loading_item');

									rendering.preloaded_images[item_src] = {
										loading: true,
										loaded: false
									};

									var current_category_id = current.category.id,
										current_item_index = current.item.index;

									$('<img />')
										.load(function (e) {
											rendering.preloaded_images[item_src] = {
												loading: false,
												loaded: true,
												width: this.width,
												height: this.height
											};

											if (current_category_id != current.category.id || current_item_index != current.item.index)
												return;

											_display(item_src);

											slider.main_panel.remove_loading_effect('loading_item');
										})
										.attr('src', item_src);
								}
							}
						} else {
							_display();
						}
					},

					show_loading_effect: function (element_class) {
						clearTimeout($main_panel.data('loading_effect_timeout'));
						$main_panel.addClass(element_class + ' loading_effect show_preload');
					},

					remove_loading_effect: function (element_class) {
						$main_panel.removeClass('show_preload');
						$main_panel.data(
							'loading_effect_timeout',
							setTimeout(
								function () {
									$main_panel.removeClass(element_class + ' loading_effect');
								},
								400
							)
						);
					},

					_fit_image: function ($img) {
						var src = $img.attr('src'),
							img_preload = rendering.preloaded_images[src],
							fit_image = function ($img, img_preload) {
								var mpw = rendering.main_panel.dimensions.width,
									mph = rendering.main_panel.dimensions.height,
									resize_ratio,
									image_height,
									image_width;

								if (img_preload.width == mpw && img_preload.height == mph)
									return;

								$img.css({
									position: 'relative'
								});

								if (img_preload.width > mpw || img_preload.height > mph || option.main_panel.stretch_small_image) {
									$img.css({
										width: '100%',
										height: 'auto'
									});

									resize_ratio = mpw / img_preload.width;
									image_height = Math.floor(img_preload.height * resize_ratio);

									if (image_height < mph) {
										resize_ratio = mph / img_preload.height;
										image_width = Math.floor(img_preload.width * resize_ratio);

										$img.css({
											height: '100%',
											width: 'auto'
										});

										if (!option.main_panel.top_left_align)
											$img.css({
												left: -Math.floor((image_width - mpw) / 2)
											});
									} else if (image_height > mph && !option.main_panel.top_left_align)
										$img.css({
											top: -Math.floor((image_height - mph) / 2)
										});
								} else {
									if (!option.main_panel.top_left_align) {
										if (img_preload.width < mpw)
											$img.css({
												left: Math.floor((mpw - img_preload.width) / 2)
											});

										if (img_preload.height < mph)
											$img.css({
												top: Math.floor((mph - img_preload.height) / 2)
											});
									}
								}
							};

						if (img_preload && img_preload.loaded) {
							fit_image($img, img_preload);
						} else {
							$('<img />')
								.load({'src': src, '$img': $img}, function (e) {
									rendering.preloaded_images[e.data.src] = {
										loading: false,
										loaded: true,
										width: this.width,
										height: this.height
									};

									fit_image(e.data.$img, rendering.preloaded_images[e.data.src]);
								})
								.attr('src', src);
						}
					},

					_transitions: {
						show: function (args) {
							var next_item_html = '<div class="item_container new_item">',
								current_item = current.category.items[args.item_index],
								$next_item,
								$last_item = $main_panel_items_wrapper.find('> .item_container').eq(0),
								item_html = typeof current_item.html == 'undefined' || current_item.html == '' ? '' : current_item.html,
								video_src,
								video_provider = '',
								video_id,
								video_container_id,
								flash_autoplay_manipulation = false,
								image_alt = '';

							if ((current_item.type == 'html' || current_item.type == 'video' || current_item.type == 'audio') && item_html) {
								video_src = typeof current_item.video_src == 'undefined' || current_item.video_src == '' ? '' : current_item.video_src;

								if (video_src == '') {
									if (option.autoplay.enable) {
										video_provider = slider._video.get_provider(item_html);
										video_id = slider._video.get_video_id(video_provider, item_html);
									}
								} else {
									video_provider = option.inhouse_player;
									video_id = video_src;
								}

								if (video_provider === '') {
									next_item_html += item_html;
								} else {
									flash_autoplay_manipulation = true;
									video_container_id = 'chameleon_video_container_' + option.module_id + '_' + selected_categories.indexes.join('-') + '_' + current.item.index + '_' + Math.round(Math.random() * 100000);
									next_item_html += '<div id="' + video_container_id + '"></div>';
								}
							} else {
								image_alt = typeof current_item.thumb == 'object' && current_item.thumb.caption ? current_item.thumb.caption : '';
								next_item_html += '<img alt="' + image_alt + '" src="' + args.item_src + '" />';
							}

							next_item_html += '</div>';

							$next_item = $(next_item_html);

							$main_panel_items_wrapper.find('> .item_container.new_item').removeClass('new_item');

							$next_item
								.css({
									width: rendering.main_panel.dimensions.width,
									height: rendering.main_panel.dimensions.height
								})
								.appendTo($main_panel_items_wrapper);

							if (flash_autoplay_manipulation)
								slider._video.player_setup({
									container: video_container_id,
									provider: video_provider,
									id: video_id,
									dimensions: rendering.main_panel.dimensions
								});

							if (!$last_item.hasClass('new_item'))
								$last_item.remove();

							if (!flash_autoplay_manipulation)
								$t.trigger('slider_transition_finnished');
						},

						fade: function (args) {
							var current_item = current.category.items[args.item_index],
								image_alt = typeof current_item.thumb == 'object' && current_item.thumb.caption ? current_item.thumb.caption : '',
								item_html = typeof current_item.html == 'undefined' || current_item.html == '' ? '' : current_item.html,
								$next_item;

							if (current_item.type == 'image') {
								$next_item = $('<div class="item_container new_item"><img alt="' + image_alt + '" src="' + args.item_src + '" /></div>');
							} else if (item_html) {
								$next_item = $('<div class="item_container new_item">' + item_html + '</div>');
							}

							$main_panel_items_wrapper.find('> .item_container.new_item').removeClass('new_item');

							$next_item
								.css({
									width: rendering.main_panel.dimensions.width,
									height: rendering.main_panel.dimensions.height,
									display: 'none'
								})
								.appendTo($main_panel_items_wrapper)
								.fadeIn(option.main_panel.transition.duration, function () {
									var $last_item = $main_panel_items_wrapper.find('> .item_container').eq(0);

									if (!$last_item.hasClass('new_item')) {
										$last_item.remove();
									}

									$t.trigger('slider_transition_finnished');
								});
						},

						slide: function (args) {
							var current_item = current.category.items[args.item_index],
								image_alt = typeof current_item.thumb == 'object' && current_item.thumb.caption ? current_item.thumb.caption : '',
								$next_item = $('<div class="item_container new_item"><img alt="' + image_alt + '" src="' + args.item_src + '" /></div>'),
								$prev_item = $main_panel_items_wrapper.find('> .item_container').filter(':last'),
								slide_direction = 'left',
								slide_ended = function () {
									var $last_item = $main_panel_items_wrapper.find('> .item_container').eq(0);

									if (!$last_item.hasClass('new_item')) {
										$last_item.remove();
									}

									$t.trigger('slider_transition_finnished');
								};

							if (args.effect_settings.force_horizontal) {
								if (previous_item_index < args.item_index)
									slide_direction = 'left';
								else
									slide_direction = 'right';
							} else if (args.effect_settings.force_vertical) {
								if (previous_item_index < args.item_index)
									slide_direction = 'up';
								else
									slide_direction = 'down';
							} else {
								if (args.effect_settings.directions.length == 1) {
									slide_direction = args.effect_settings.directions[0];
								} else if (args.effect_settings.directions.length > 1) {
									slide_direction = args.effect_settings.directions[Math.floor(Math.random() * args.effect_settings.directions.length)];
								}
							}

							$main_panel_items_wrapper.find('> .item_container.new_item').removeClass('new_item');

							$next_item
								.css({
									width: rendering.main_panel.dimensions.width,
									height: rendering.main_panel.dimensions.height
								});

							switch (slide_direction) {
							case 'down':
								$next_item
									.css('top', - (rendering.main_panel.dimensions.height))
									.appendTo($main_panel_items_wrapper)
									.animate({top: 0}, option.main_panel.transition.duration, 'swing', slide_ended);

								$prev_item
									.animate({top: rendering.main_panel.dimensions.height}, option.main_panel.transition.duration, 'swing');
								break;

							case 'up':
								$next_item
									.css('top', rendering.main_panel.dimensions.height)
									.appendTo($main_panel_items_wrapper)
									.animate({top: 0}, option.main_panel.transition.duration, 'swing', slide_ended);

								$prev_item
									.animate({top: - (rendering.main_panel.dimensions.height)}, option.main_panel.transition.duration, 'swing');
								break;

							case 'right':
								$next_item
									.css('left', - (rendering.main_panel.dimensions.width))
									.appendTo($main_panel_items_wrapper)
									.animate({left: 0}, option.main_panel.transition.duration, 'swing', slide_ended);

								$prev_item
									.animate({left: rendering.main_panel.dimensions.width}, option.main_panel.transition.duration, 'swing');
								break;

							default:
								$next_item
									.css('left', rendering.main_panel.dimensions.width)
									.appendTo($main_panel_items_wrapper)
									.animate({left: 0}, option.main_panel.transition.duration, 'swing', slide_ended);

								$prev_item
									.animate({left: - (rendering.main_panel.dimensions.width)}, option.main_panel.transition.duration, 'swing');
							}
						},

						stripes: function (args) {
							var stripe_width = 0,
								stripe_height = 0,
								last_stripe_width = 0,
								last_stripe_height = 0,
								strip_top = 0,
								strip_left = 0,
								strip_background_top = 0,
								strip_background_left = 0,
								$stripe,

								image_top_offset = 0,
								image_left_offset = 0,

								item_src = args.item_src,

								effect_settings = $.extend(true, {
									orientation: 'vertical',
									num_of_stripes: 12,
									direction: 0, // 0 = bottom/right, 1 = top/left, 2 = alternating
									start_at: 0, // 0 = top/left, 1 = bottom/right, 2 = center, 3 = outer
									randomize: {
										orientation: false,
										direction: false,
										start_at: false
									}
								}, args.effect_settings),

								fx_duration = Math.floor(option.main_panel.transition.duration / effect_settings.num_of_stripes),

								$next_item = $('<div class="item_container new_item"></div>'),
								slide_ended = function () {
									var $last_item = $main_panel_items_wrapper.find('> .item_container').eq(0);

									if (!$last_item.hasClass('new_item')) {
										$last_item.remove();
									}

									$t.trigger('slider_transition_finnished');
								},

								create_stripe = function ($stripe, i) {
									var w = stripe_width,
										h = stripe_height,
										start_animation = function () {
											var props;

											if (effect_settings.orientation == 'horizontal') {
												props = {left: 0, opacity: 1};
											} else {
												props = {top: 0, opacity: 1};
											}

											$stripe.animate(props, {
												duration: option.main_panel.transition.duration,
												easing: 'swing',
												complete: function () {
													if (effect_settings.start_at == 0 || effect_settings.start_at == 2) {
														if (i + 1 == effect_settings.num_of_stripes) {
															slide_ended();
														}
													} else if (effect_settings.start_at == 1) {
														if (i == 0) {
															slide_ended();
														}
													} else {
														if (i == Math.floor(effect_settings.num_of_stripes / 2)) {
															slide_ended();
														}
													}
												}
											});
										};

									if (effect_settings.orientation == 'horizontal') {
										strip_top = i * stripe_height;

										if (effect_settings.direction === 0) {
											strip_left = - (stripe_width);
										} else if (effect_settings.direction === 1) {
											strip_left = stripe_width;
										} else {
											if (i % 2 == 0) {
												strip_left = - (stripe_width);
											} else {
												strip_left = stripe_width;
											}
										}

										strip_background_top = image_top_offset - strip_top;
										strip_background_left = image_left_offset;
									} else {
										strip_left = i * stripe_width;

										if (effect_settings.direction === 0) {
											strip_top = - (stripe_height);
										} else if (effect_settings.direction === 1) {
											strip_top = stripe_height;
										} else {
											if (i % 2 == 0) {
												strip_top = - (stripe_height);
											} else {
												strip_top = stripe_height;
											}
										}

										strip_background_top = image_top_offset;
										strip_background_left = image_left_offset - strip_left;
									}

									if (i + 1 == effect_settings.num_of_stripes) {
										w = last_stripe_width;
										h = last_stripe_height;
									}

									$stripe = $('<div class="fancy_effect_element" />');

									$stripe.css({
											width: w,
											height: h,
											top: strip_top,
											left: strip_left,
											opacity: 0,
											background: 'url(\'' + item_src + '\') no-repeat '+strip_background_left+'px '+strip_background_top+'px ' + $t.css('background-color')
										})
										.appendTo($next_item);

									if (effect_settings.start_at === 0) {
										setTimeout(start_animation, (i * fx_duration + 1));
									} else if (effect_settings.start_at == 1) {
										setTimeout(start_animation, ((effect_settings.num_of_stripes - 1 - i) * fx_duration + 1));
									} else if (effect_settings.start_at == 2 || effect_settings.start_at == 3) {
										var multiplyer = 0,
											middle;

										if (effect_settings.num_of_stripes % 2 == 0) {
											middle = effect_settings.num_of_stripes / 2;
											if (i < middle) {
												if (effect_settings.start_at == 3) {
													multiplyer = i;
												} else {
													multiplyer = Math.abs(i - middle + 1);
												}
											} else {
												multiplyer = i - middle;
												if (effect_settings.start_at == 3) {
													multiplyer = middle - 1 - multiplyer;
												}
											}
										} else {
											middle = Math.floor(effect_settings.num_of_stripes / 2);
											if (i < middle) {
												multiplyer = middle - i;
											} else {
												multiplyer = i - middle;
											}
											if (effect_settings.start_at == 3) {
												multiplyer = middle - multiplyer;
											}
										}

										setTimeout(start_animation, (multiplyer * fx_duration + 1));
									}
								};

							if (effect_settings.randomize.orientation) {
								if (Math.floor(Math.random() * 2) == 0) {
									effect_settings.orientation = 'horizontal';
								} else {
									effect_settings.orientation = 'vertical';
								}
							}

							if (effect_settings.randomize.direction) {
								effect_settings.direction = Math.floor(Math.random() * 3);
							}

							if (effect_settings.randomize.start_at) {
								effect_settings.start_at = Math.floor(Math.random() * 4);
							}

							$main_panel_items_wrapper.find('> .item_container.new_item').removeClass('new_item');

							$next_item
								.css({
									width: rendering.main_panel.dimensions.width,
									height: rendering.main_panel.dimensions.height
								})
								.appendTo($main_panel_items_wrapper);

							if (effect_settings.orientation == 'horizontal') {
								last_stripe_width = stripe_width = rendering.main_panel.dimensions.width;

								stripe_height = Math.ceil(rendering.main_panel.dimensions.height / effect_settings.num_of_stripes);
								last_stripe_height = stripe_height * effect_settings.num_of_stripes - rendering.main_panel.dimensions.height;
								if (last_stripe_height == 0) {
									last_stripe_height = stripe_height;
								} else {
									last_stripe_height = stripe_height - last_stripe_height;
								}
							} else {
								last_stripe_height = stripe_height = rendering.main_panel.dimensions.height;

								stripe_width = Math.ceil(rendering.main_panel.dimensions.width / effect_settings.num_of_stripes);
								last_stripe_width = stripe_width * effect_settings.num_of_stripes - rendering.main_panel.dimensions.width;
								if (last_stripe_width == 0) {
									last_stripe_width = stripe_width;
								} else {
									last_stripe_width = stripe_width - last_stripe_width;
								}
							}

							(function (img) {
								var mpw = rendering.main_panel.dimensions.width,
									mph = rendering.main_panel.dimensions.height;

								if (img.width == mpw && img.height == mph)
									return;

								if (img.width < mpw)
									image_left_offset = Math.floor((mpw - img.width) / 2);
								else if (img.width > mpw)
									image_left_offset = - Math.floor((img.width - mpw) / 2);

								if (img.height < mph)
									image_top_offset = Math.floor((mph - img.height) / 2);
								else if (img.height > mph)
									image_top_offset = - Math.floor((img.height - mph) / 2);
							})(rendering.preloaded_images[item_src]);

							for (var i = 0; i < effect_settings.num_of_stripes; i++) {
								create_stripe($stripe, i);
							}
						}
					}
				},

				_on_pre_item_change: undefined,

				_video: {
					get_provider: function (embed_code) {
						if (embed_code.substring(0, 7) == '<iframe')
							if (embed_code.indexOf('youtube.com/embed/', 7) !== -1)
								return 'youtube';
							else if (embed_code.indexOf('player.vimeo.com/video/', 7) !== -1)
								return 'vimeo';

						return '';
					},

					get_video_id: function (provider, embed_code) {
						var url,
							url_has_params;

						switch (provider) {
						case 'youtube':
						case 'vimeo':
							url = $('<div>' + embed_code + '</div>').find('iframe:first').attr('src');
							url_has_params = url.indexOf('?');

							if (url_has_params !== -1)
								url = url.substring(0, url_has_params);

							if (url[url.length - 1] == '/')
								url = url.substring(0, url.length - 1);

							return url.substring(url.lastIndexOf('/') + 1);

						default:
							return '';
						}
					},

					player_setup: function (param) {
						var $container = $('#' + param.container);

						$container.css(param.dimensions);

						param.container = $container;

						switch (param.provider) {
						case 'youtube':
							slider._video._youtube_player(param);
							break;

						case 'vimeo':
							slider._video._vimeo_player(param);
							break;

						case 'flowplayer':
							slider._video._flow_player(param);
							break;

						default:
						}
					},

					_youtube_player: function (param) {
						var player_id = param.container.attr('id') + '_object',
							player_html = '<iframe allowFullScreen="allowFullScreen" id="' + player_id + '" type="text/html" width="' + param.dimensions.width + '" height="' + param.dimensions.height + '" ' +
								'src="//www.youtube.com/embed/' + param.id + '?enablejsapi=1&amp;wmode=transparent&amp;origin=' + location.protocol + '//' + location.host + '" ' +
								'frameborder="0"></iframe>',

							srcipt_tag,
							first_script_tag,

							yt_player,
							setup_player = function () {
								yt_player = new YT.Player(player_id, {
									events: {
										'onReady': function () {
											rendering.youtube_player_object = yt_player;
											$t.trigger('slider_transition_finnished');

											if (option.autoplay.autostart_video_playback)
												yt_player.playVideo();
										},
										'onStateChange': function (e) {
											switch (e.data) {
											case YT.PlayerState.PLAYING:
												autoplay.video_playing = true;
												slider.autoplay.reset();
												break;

											case YT.PlayerState.ENDED:
												setTimeout(slider.next, 1000);
												break;

											default:
											}
										}
									}
								});
							};

						param.container.append(player_html);

						if (!rendering.youtube_iframe_api.called) {
							rendering.youtube_iframe_api.called = true;

							srcipt_tag = document.createElement('script');
							srcipt_tag.src = "//www.youtube.com/iframe_api";
							first_script_tag = document.getElementsByTagName('script')[0];
							first_script_tag.parentNode.insertBefore(srcipt_tag, first_script_tag);
						}

						if (rendering.youtube_iframe_api.loaded) {
							setup_player();
						} else {
							window.onYouTubeIframeAPIReady = function () {
								rendering.youtube_iframe_api.loaded = true;
								setup_player();
							};
						}
					},

					_vimeo_player: function (param) {
						var playback_initialized = false,

							post = function (action, value) {
								var data = {method: action};

								if (value) {
									data.value = value;
								}

								$player[0].contentWindow.postMessage(JSON.stringify(data), 'https://player.vimeo.com');
							},

							onPlayerEvent = function (e) {
								var data = JSON.parse(e.data);

								switch (data.event) {
								case 'ready':
									$t.trigger('slider_transition_finnished');

									post('addEventListener', 'finish');
									post('addEventListener', 'play');

									if (option.autoplay.autostart_video_playback)
										post('play');
									break;

								case 'play':
									if (playback_initialized)
										break;

									autoplay.video_playing = playback_initialized = true;
									slider.autoplay.reset();
									break;

								case 'finish':
									setTimeout(slider.next, 1000);
									break;
								}
							},

							$player = $(
								'<iframe src="//player.vimeo.com/video/' + param.id +
								'?api=1" width="' + param.dimensions.width + '" height="' + param.dimensions.height +
								'" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'
							);

						slider._on_pre_item_change = function () {
							if (window.addEventListener)
								window.removeEventListener('message', onPlayerEvent, false);
							else
								window.detachEvent('onmessage', onPlayerEvent);
						};

						if (window.addEventListener)
							window.addEventListener('message', onPlayerEvent, false);
						else
							window.attachEvent('onmessage', onPlayerEvent);

						param.container.append($player);
					},

					_flow_player: function (param) {
						var started_playing = false,
							videoType = '';

						if (stringEndsWith(param.id, '.mp4')) {
							videoType = 'video/mp4';
						} else if (stringEndsWith(param.id, '.webm')) {
							videoType = 'video/webm';
						} else if (stringEndsWith(param.id, '.ogg')) {
							videoType = 'video/ogg';
						} else if (stringEndsWith(param.id, '.flv')) {
							videoType = 'video/flash';
						}

						flowplayer(param.container[0], {
							swf: option.flowplayer_src,
							volume: option.videoVolume,
							clip: {
								sources: [
									{
										type: videoType,
										src: param.id
									}
								]
							}
						})
							.on('ready', function () {
								$t.trigger('slider_transition_finnished');

								if (option.autoplay.autostart_video_playback)
									flowplayer(param.container).play();
							})
							.on('resume', function () {
								if (!option.autoplay.enable || started_playing)
									return;

								started_playing = true;

								autoplay.video_playing = true;
								slider.autoplay.reset();
							})
							.on('finish', function () {
								if (!option.autoplay.enable)
									return;

								setTimeout(slider.next, 1000);
							});
					}
				},

				key_browse: function () {
					$(document).keyup(function(e) {
						if (e.keyCode === 37){
							slider.prev();
						}
						if (e.keyCode === 39){
							slider.next();
						}

						return false;
					});
				},

				_scrollable_boxes: {
					init: function (props) {
						var box,
							box_options = option.scrollable_boxes[props.box];

						box = rendering.scrollable_boxes[props.box] = {
							jq: {
								container: $('<div class="scrollable_box' + (props.custom_class ? ' ' + props.custom_class : '') + '" />').data('disabled', false),
								viewport: $('<div class="viewport" />'),
								content: $('<div class="overview" />'),
								scrollbar: $()
							}
						};

						box.jq.container.append(box.jq.viewport);
						box.jq.viewport.append(box.jq.content);
						$t.prepend(box.jq.container);

						slider._scrollable_boxes.size(props.box);

						if (!box_options.container.resize_to_content)
							box.jq.container.height(box.dimensions.height);

						slider._scrollable_boxes.display(props);

						if (box_options.container.show_on_hover)
							$t.hover(
								function () {
									rendering.mouse_entered = true;

									if (box.jq.container.data('disabled') == false)
										box.jq.container.stop(true).fadeTo(200, 1, function () {box.jq.container.css('display', 'block');});
								},
								function () {
									rendering.mouse_entered = false;

									if (box.jq.container.data('disabled') == false)
										box.jq.container.stop(true).fadeTo(200, 0, function () {box.jq.container.css('display', 'none');});
								}
							);
					},

					size: function (box) {
						var obj = rendering.scrollable_boxes[box],
							box_options = option.scrollable_boxes[box];

						if (!box_options.display)
							return;

						obj.jq.scrollbar.remove();

						obj.jq.scrollbar = $('<div class="scrollbar"><div class="track"><div class="thumb"><div class="end"></div></div></div></div>');

						obj.dimensions = slider.get_dimensions(box_options.container.dimensions);

						slider.position_element(obj.jq.container, box_options.container.position);

						if (obj.dimensions.height > rendering.container_dimensions.height)
							obj.dimensions.height = rendering.container_dimensions.height;

						if (obj.dimensions.width > rendering.container_dimensions.width)
							obj.dimensions.width = rendering.container_dimensions.width;

						if (option.scrollable_boxes.item_info.cutThumbWidth)
							obj.dimensions.width = obj.dimensions.width - option.thumbs.container.dimensions.width;
						
						if (option.scrollable_boxes.item_info.cutCategoryWidth)
							obj.dimensions.width = obj.dimensions.width - option.categories.container.dimensions.width;
						
						obj.jq.container
							.width(obj.dimensions.width)
							.css({
								maxHeight: obj.dimensions.height
							})
							.append(obj.jq.scrollbar)
							.eds_tinyscrollbar({
								size: obj.dimensions.height - (obj.jq.scrollbar.outerHeight(true) - obj.jq.scrollbar.height())
							})
							.hide(0);

						obj.jq.viewport.css({
							maxHeight: (obj.dimensions.height - obj.jq.viewport.outerHeight(true))
						});

						if (!box_options.container.resize_to_content)
							obj.jq.container.height(obj.dimensions.height);
					},

					display: function (props) {
						var box = rendering.scrollable_boxes[props.box],
							box_options = option.scrollable_boxes[props.box],
							show_content = function () {
								var fade_in = function () {
									box.jq.viewport.stop(true).fadeTo(200, 1, function () {box.jq.scrollbar.css('display', 'block');});

									if (!box.jq.scrollbar.hasClass('disable'))
										box.jq.scrollbar.stop(true).fadeTo(200, 1, function () {box.jq.scrollbar.css('display', 'block');});
								};

								box.jq.viewport.css({ visibility: '', display: 'none' });

								if (box_options.container.show_on_hover)
									if (rendering.mouse_entered) {
										fade_in();
									} else {
										box.jq.viewport.css({display: 'block'});

										if (!box.jq.scrollbar.hasClass('disable'))
											box.jq.scrollbar.css({display: 'block'});
									}
								else
									fade_in();
							};

						if (!box_options.display)
							return;

						if (typeof props.content == 'string' && props.content) {
							box.jq.container.data('disabled', false);

							if (box.jq.container.is(':visible')) {
								box.jq.container.css({ height: box.jq.container.height() });

								box.jq.scrollbar.stop(true).fadeTo(200, 0, function () {box.jq.scrollbar.css('display', 'none');});
								box.jq.viewport.stop(true).fadeTo(200, 0, function () {
									box.jq.content.html(props.content);
									box.jq.viewport
										.css({ visibility: 'hidden', display: 'block' })
										.removeClass('scrollable');
									box.jq.container.data('plugin_eds_tinyscrollbar').update();

									if (!box.jq.scrollbar.hasClass('disable')) {
										box.jq.viewport.addClass('scrollable');
										box.jq.container.data('plugin_eds_tinyscrollbar').update();
									}

									if (box_options.container.resize_to_content && (!box_options.container.show_on_hover || rendering.mouse_entered)) {
										box.jq.container.animate({
												height: box.jq.viewport.outerHeight(true)
											}, 200, show_content);
									} else {
										box.jq.container.height(box.dimensions.height);
										show_content();
									}
								});
							} else {
								box.jq.container.css({ visibility: 'hidden', display: 'block' });

								box.jq.viewport.removeClass('scrollable');

								box.jq.content.html(props.content);
								box.jq.container.data('plugin_eds_tinyscrollbar').update();

								if (box.jq.scrollbar.hasClass('disable')) {
									box.jq.scrollbar.css({ display: 'none' });
								} else {
									box.jq.viewport.addClass('scrollable');
									box.jq.scrollbar.css({ display: 'block', opacity: 1 });
									box.jq.container.data('plugin_eds_tinyscrollbar').update();
								}

								box.jq.container
									.css({
										visibility: '',
										display: 'none',
										height: (box_options.container.resize_to_content ? box.jq.viewport.outerHeight(true) : box.dimensions.height)
									});

								if (!box_options.container.show_on_hover || rendering.mouse_entered)
									box.jq.container.stop(true).fadeTo(200, 1, function () {box.jq.container.css('display', 'block');});
							}
						} else
							box.jq.container
								.data('disabled', true)
								.stop(true)
								.fadeTo(200, 0, function () {box.jq.container.css('display', 'none');});
					}
				},

				item_info: {
					init: function () {
						slider._scrollable_boxes.init({
							box: 'item_info',
							custom_class: 'item_info',
							content: current.category.items[current.item.index].info
						});
					},

					display: function (index) {
						slider._scrollable_boxes.display({
							box: 'item_info',
							content: current.category.items[index].info
						});
					}
				},

				gallery_info: {
					init: function () {
						slider._scrollable_boxes.init({
							box: 'gallery_info',
							custom_class: 'gallery_info',
							content: current.category.info
						});
					},

					display: function () {
						slider._scrollable_boxes.display({
							box: 'gallery_info',
							content: current.category.info
						});
					}
				},

				autoplay_toggle: {
					init: function () {
						$autoplay_toggle = $('<a href="#" class="autoplay_toggle">Play/Pause</a>');

						if (option.autoplay.enable) {
							$autoplay_toggle.addClass('pause');
						} else {
							autoplay.user_paused = true;
						}

						$autoplay_toggle
							.prependTo($t)
							.click(function () {
								if (autoplay.user_paused) {
									autoplay.user_paused = false;
									$autoplay_toggle.addClass('pause');

									if (!option.autoplay.enable) {
										autoplay.fade_in = true;
										option.autoplay.enable = true;
										slider.autoplay.init();
									}

									if (!option.autoplay.pause_on_hover) {
										slider.autoplay.start();
									}
								} else {
									$autoplay_toggle.removeClass('pause');
									autoplay.user_paused = true;
									if (!autoplay.pause) {
										slider.autoplay.pause();
									}
								}

								return false;
							});

						slider.position_element($autoplay_toggle, option.autoplay_toggle.position);

						if (current.category.item_count < 2)
							$autoplay_toggle.css('display', 'none');

						if (option.autoplay_toggle.auto_hide) {
							$autoplay_toggle.css('display', 'none');
							$t.hover(function () {
								if (current.category.item_count < 2)
									return;

								$autoplay_toggle.stop().fadeTo(option.autoplay_toggle.hide_speed, 1);
							}, function () {
								$autoplay_toggle.stop().fadeTo(option.autoplay_toggle.hide_speed, 0);
							});
						}
					},

					display_category: function () {
						var display = '';

						if (!option.autoplay_toggle.display)
							return;

						if (current.category.item_count < 2)
							display = 'none';

						$autoplay_toggle.css('display', display);
					}
				},

				autoplay: {
					init: function () {
						if (option.autoplay.indicator.display) {
							$autoplay_indicator = $('<div class="indicator" />');
							$autoplay_container = $('<div class="autoplay_container" />');

							slider.autoplay.size();

							if (option.autoplay.indicator.orientation == 'vertical' && !option.autoplay.indicator.flip_direction)
								$autoplay_indicator.css({
									top: 'auto',
									bottom: 0
								});
							else if (option.autoplay.indicator.flip_direction)
								$autoplay_indicator.css({
									left: 'auto',
									right: 0
								});

							$autoplay_container
								.append($autoplay_indicator)
								.css('display', 'none');

							if (autoplay.fade_in) {
								$t.append($autoplay_container);
								$autoplay_container.fadeIn(300);
							} else {
								$t.prepend($autoplay_container);
								$autoplay_container.css('display', '');
							}
						}

						$t.bind('slider_transition_finnished', function () {
							if (autoplay.user_paused || autoplay.pause)
								return;

							slider.autoplay.start();
						});
					},

					size: function () {
						if (!option.autoplay.enable || !option.autoplay.indicator.display)
							return;

						rendering.autoplay.indicator = slider.get_dimensions(option.autoplay.indicator.dimensions);

						slider.position_element($autoplay_container, option.autoplay.indicator.position);

						if (option.autoplay.indicator.orientation == 'vertical')
							$autoplay_indicator.width(rendering.autoplay.indicator.width);
						else
							$autoplay_indicator.height(rendering.autoplay.indicator.height);

						$autoplay_container.css(rendering.autoplay.indicator)
					},

					start: function () {
						var interval = option.autoplay.interval,
							reset_indicator = true;

						if (current.category.item_count < 2) {
							if (option.autoplay.indicator.display)
								$autoplay_container.css('display', 'none');

							return;
						}

						if (option.autoplay.enable && autoplay.interval == '') {
							autoplay.last_started = new Date().getTime();

							autoplay.reset = false;

							if (autoplay.time_remaining != 0) {
								reset_indicator = false;
								interval = autoplay.time_remaining;
							}

							if (option.autoplay.indicator.display) {
								$autoplay_container.css('display', '');

								$autoplay_indicator.stop();
								if (option.autoplay.indicator.orientation == 'vertical') {
									if (reset_indicator) {
										$autoplay_indicator.height(0);
									}

									$autoplay_indicator.animate({height: rendering.autoplay.indicator.height}, interval, 'linear');
								} else {
									if (reset_indicator) {
										$autoplay_indicator.width(0);
									}

									$autoplay_indicator.animate({width: rendering.autoplay.indicator.width}, interval, 'linear');
								}
							}

							autoplay.interval = setTimeout(slider.next, interval);
						}
					},

					pause: function () {
						if (!option.autoplay.enable || autoplay.reset)
							return;

						autoplay.pause_time = new Date().getTime();
						autoplay.start_pause_delta = autoplay.pause_time - autoplay.last_started;

						if (option.autoplay.indicator.display)
							$autoplay_indicator.stop();

						autoplay.time_remaining = (autoplay.time_remaining == 0 ? option.autoplay.interval : autoplay.time_remaining) - autoplay.start_pause_delta;

						clearTimeout(autoplay.interval);
						autoplay.interval = '';
					},

					reset: function () {
						if (!option.autoplay.enable)
							return;

						clearTimeout(autoplay.interval);
						autoplay.interval = '';
						autoplay.time_remaining = 0;

						autoplay.reset = true;

						if (option.autoplay.indicator.display) {
							$autoplay_indicator.stop();
							if (option.autoplay.indicator.orientation == 'vertical') {
								$autoplay_indicator.height(0);
							} else {
								$autoplay_indicator.width(0);
							}
						}
					},

					display_category: function () {
						if (!option.autoplay.enable)
							return;

						if (option.autoplay.indicator.display)
							if (current.category.item_count < 2)
								$autoplay_container.css('display', 'none');
							else
								$autoplay_container.css('display', '');
					}
				},

				_items_panel: {
					init: function (params) {
						params.page
							.append(params.item)
							.appendTo(item_panels[params.panel].container);

						rendering[params.panel].width = params.item.outerWidth(true);
						rendering[params.panel].height = params.item.outerHeight(true);

						rendering[params.panel].page.horizontal_space = params.page.outerWidth(true) - params.page.width();
						rendering[params.panel].page.vertical_space = params.page.outerHeight(true) - params.page.height();

						params.page.remove();

						if (!option[params.panel].container.transparent)
							item_panels[params.panel].wrapper.addClass('not_transparent');
					},

					calculate_pages: function (params) {
						var minimum_container_dimension;

						rendering[params.panel].container = slider.get_dimensions(option[params.panel].container.dimensions);

						rendering[params.panel].page.width = rendering[params.panel].width + rendering[params.panel].page.horizontal_space;
						if (rendering[params.panel].page.width > rendering[params.panel].container.width) {
							rendering[params.panel].container.width = rendering[params.panel].page.width;
						} else {
							rendering[params.panel].page.width = rendering[params.panel].container.width - rendering[params.panel].page.horizontal_space;
						}

						rendering[params.panel].page.height = rendering[params.panel].height + rendering[params.panel].page.vertical_space;
						if (rendering[params.panel].page.height > rendering[params.panel].container.height) {
							rendering[params.panel].container.height = rendering[params.panel].page.height;
						} else {
							rendering[params.panel].page.height = rendering[params.panel].container.height - rendering[params.panel].page.vertical_space;
						}

						// Calculate page dimensions
						rendering[params.panel].per_row = Math.floor(rendering[params.panel].page.width / rendering[params.panel].width);
						rendering[params.panel].page.width = rendering[params.panel].per_row * rendering[params.panel].width;

						rendering[params.panel].row_count = Math.floor(rendering[params.panel].page.height / rendering[params.panel].height);
						rendering[params.panel].page.height = rendering[params.panel].row_count * rendering[params.panel].height;

						rendering[params.panel].per_page = rendering[params.panel].per_row * rendering[params.panel].row_count;

						rendering[params.panel].page.count = Math.ceil(params.item_count / rendering[params.panel].per_page);

						// If there are multiple pages, setup the thumbnail navigation and recalculate page and container dimensions
						if (rendering[params.panel].page.count > 1) {
							if (item_panels[params.panel].pagination) {
								item_panels[params.panel].pagination.next.css('display', 'block');
								item_panels[params.panel].pagination.prev.css('display', 'block');
							} else {
								item_panels[params.panel].wrapper.append('<a href="#" class="navigation ' + option[params.panel].pagination.direction + ' prev">Previous</a><a href="#" class="navigation ' + option[params.panel].pagination.direction + ' next">Next</a>');
								item_panels[params.panel].pagination = {
									prev: item_panels[params.panel].wrapper.find('> a.navigation.prev'),
									next: item_panels[params.panel].wrapper.find('> a.navigation.next')
								};

								item_panels[params.panel].pagination.next.click(function () {
									var current_page_index = item_panels[params.panel].pages.filter('.current').index();

									slider._items_panel.move_to_page(params.panel, current_page_index + 1);

									return false;
								});

								item_panels[params.panel].pagination.prev.click(function () {
									var current_page_index = item_panels[params.panel].pages.filter('.current').index();

									slider._items_panel.move_to_page(params.panel, current_page_index - 1);

									return false;
								});
							}

							if (option[params.panel].pagination.direction == 'vertical') {
								minimum_container_dimension = rendering[params.panel].height + rendering[params.panel].page.vertical_space + 2 * item_panels[params.panel].pagination.prev.outerHeight(true);
								if (minimum_container_dimension > rendering[params.panel].container.height)
									rendering[params.panel].container.height = minimum_container_dimension;

								item_panels[params.panel].pagination.next.css({ top: (rendering[params.panel].container.height - item_panels[params.panel].pagination.next.height())});

								rendering[params.panel].row_count = Math.floor((rendering[params.panel].container.height - 2 * item_panels[params.panel].pagination.prev.outerHeight(true) - rendering[params.panel].page.vertical_space) / rendering[params.panel].height);
								rendering[params.panel].page.height = rendering[params.panel].row_count * rendering[params.panel].height;
							} else {
								minimum_container_dimension = rendering[params.panel].width + rendering[params.panel].page.horizontal_space + 2 * item_panels[params.panel].pagination.prev.outerWidth(true);
								if (minimum_container_dimension > rendering[params.panel].container.width)
									rendering[params.panel].container.width = minimum_container_dimension;

								rendering[params.panel].per_row = Math.floor((rendering[params.panel].container.width - 2 * item_panels[params.panel].pagination.prev.outerWidth(true) - rendering[params.panel].page.horizontal_space) / rendering[params.panel].width);
								rendering[params.panel].page.width = rendering[params.panel].per_row * rendering[params.panel].width;
							}

							rendering[params.panel].per_page = rendering[params.panel].per_row * rendering[params.panel].row_count;

							rendering[params.panel].page.count = Math.ceil(params.item_count / rendering[params.panel].per_page);
						} else {
							if (item_panels[params.panel].pagination) {
								item_panels[params.panel].pagination.next.css('display', 'none');
								item_panels[params.panel].pagination.prev.css('display', 'none');
							}
						}

						item_panels[params.panel].wrapper.css(rendering[params.panel].container);

						rendering[params.panel].window_width = rendering[params.panel].page.width + rendering[params.panel].page.horizontal_space;
						rendering[params.panel].window_height = rendering[params.panel].page.height + rendering[params.panel].page.vertical_space;

						item_panels[params.panel].window
							.width(rendering[params.panel].window_width)
							.height(rendering[params.panel].window_height)
							.css({ top: Math.floor((rendering[params.panel].container.height - rendering[params.panel].window_height) / 2) });

						// Set page container dimensions and position it
						if (option[params.panel].pagination.direction == 'vertical') {
							item_panels[params.panel].container
								.width(rendering[params.panel].window_width)
								.height(0);
						} else {
							item_panels[params.panel].container
								.width(0)
								.height(rendering[params.panel].window_height);
						}

						slider.position_element(item_panels[params.panel].wrapper, option[params.panel].container.position);
					},

					move_to_page: function (panel, page_index) {
						var properties,
							max_page_index = item_panels[panel].pages.length - 1,
							move_to_nonexistant_offset = 10;

						if (max_page_index < 0)
							return;

						if (item_panels[panel].pages.eq(page_index).hasClass('current'))
							return;

						if (page_index > max_page_index) {
							if (option[panel].pagination.direction == 'vertical') {
								properties = {
									top: max_page_index * -(rendering[panel].page.height + rendering[panel].page.vertical_space) - move_to_nonexistant_offset
								};
							} else {
								properties = {
									left: max_page_index * -(rendering[panel].page.width + rendering[panel].page.horizontal_space) - move_to_nonexistant_offset
								};
							}

							item_panels[panel].container.animate(properties, 40, 'swing', function () {
								if (option[panel].pagination.direction == 'vertical') {
									properties = {
										top: max_page_index * -(rendering[panel].page.height + rendering[panel].page.vertical_space)
									};
								} else {
									properties = {
										left: max_page_index * -(rendering[panel].page.width + rendering[panel].page.horizontal_space)
									};
								}

								item_panels[panel].container.animate(properties, 50, 'swing');
							});

							return;
						} else if (page_index < 0) {
							if (option[panel].pagination.direction == 'vertical') {
								properties = {
									top: move_to_nonexistant_offset
								};
							} else {
								properties = {
									left: move_to_nonexistant_offset
								};
							}

							item_panels[panel].container.animate(properties, 40, 'swing', function () {
								if (option[panel].pagination.direction == 'vertical') {
									properties = {
										top: 0
									};
								} else {
									properties = {
										left: 0
									};
								}
								item_panels[panel].container.animate(properties, 50, 'swing');
							});

							return;
						}

						item_panels[panel].pages.removeClass('current').eq(page_index).addClass('current');

						if (option[panel].pagination.direction == 'vertical') {
							properties = {
								top: page_index * -(rendering[panel].page.height + rendering[panel].page.vertical_space)
							};
						} else {
							properties = {
								left: page_index * -(rendering[panel].page.width + rendering[panel].page.horizontal_space)
							};
						}

						item_panels[panel].container.stop(true, false).animate(properties, option[panel].pagination.duration, option[panel].pagination.easing);
					}
				},

				thumbnails: {
					init: function () {
						item_panels.thumbs = {
							container: $('<div class="thumb_container" />'),
							window: $('<div class="thumb_window" />'),
							wrapper: $('<div class="thumb_wrapper" />')
						}

						item_panels.thumbs.window.append(item_panels.thumbs.container);
						item_panels.thumbs.wrapper.append(item_panels.thumbs.window);

						$t.prepend(item_panels.thumbs.wrapper);

						slider._items_panel.init({
							panel: 'thumbs',
							page: $('<ul />'),
							item: $('<li><img src="' + slider_content[0].items[0].thumb.src + '" alt="" style="width: ' + option.thumbs.width + 'px !important; height: ' + option.thumbs.height + 'px !important;" /></li>')
						});

						if (option.thumbs.auto_hide) {
							item_panels.thumbs.wrapper.css({
								display: 'none'
							});

							$t.hover(function () {
								item_panels.thumbs.wrapper.stop().fadeTo(option.thumbs.hide_speed, 1);
							}, function () {
								item_panels.thumbs.wrapper.stop().fadeTo(option.thumbs.hide_speed, 0);
							});
						}

						slider.thumbnails.display_category(false);
						slider.thumbnails.select(current.item.index);
					},

					display_category: function () {
						var $page,
							thumb_html,
							thumb_caption,
							thumb_type_html,
							i = 0,
							preload_images = arguments.length > 0 && arguments[0] === false ? false : true,
							tooltip_content,
							empty_tooltip;

						if (!option.thumbs.display)
							return;

						slider._items_panel.calculate_pages({
							panel: 'thumbs',
							item_count: current.category.item_count
						});

						item_panels.thumbs.container.html('');

						for (; i < current.category.item_count; i++) {
							if (i % rendering.thumbs.per_page === 0) {
								if (option.thumbs.pagination.direction == 'vertical')
									item_panels.thumbs.container.height(item_panels.thumbs.container.height() + rendering.thumbs.window_height);
								else
									item_panels.thumbs.container.width(item_panels.thumbs.container.width() + rendering.thumbs.window_width);

								$page = $('<ul />');
								$page
									.width(rendering.thumbs.page.width)
									.height(rendering.thumbs.page.height)
									.appendTo(item_panels.thumbs.container);
							}

							thumb_caption = option.thumbs.captions && typeof current.category.items[i].thumb.caption == 'string' && current.category.items[i].thumb.caption ? '<div class="caption_wrapper"><div class="caption">' + current.category.items[i].thumb.caption + '</div></div>' : '';
							thumb_type_html = option.thumbs.display_item_types ? '<span class="item_type_icon ' + current.category.items[i].type + '"></span>' : '';

							thumb_html = '<li><img style="width: ' + option.thumbs.width + 'px !important; height: ' + option.thumbs.height + 'px !important;" src="' + current.category.items[i].thumb.src + '" alt="" />' + thumb_type_html + thumb_caption;

							if (preload_images) {
								$('<img />')
									.load(
										{
											index: i
										}, function (e) {
											item_panels.thumbs.pages.find('.thumb_preloading').eq(e.data.index).fadeTo(500, 0, function () {
												$(this).remove();
											});
										}
									)
									.attr('src', current.category.items[i].thumb.src);

								thumb_html += '<div class="thumb_preloading"></div>';
							}

							$page.append(thumb_html + '</li>');

							if (option.thumbs.tooltips.enabled && $.fn.qtip) {
								empty_tooltip = true;
								tooltip_content = '';

								if (current.category.items[i].thumb.tooltip) {
									if (option.thumbs.tooltips.title && current.category.items[i].thumb.tooltip.title) {
										tooltip_content = '<p class="title">' + current.category.items[i].thumb.tooltip.title + '</p>';
										empty_tooltip = false;
									}

									if (option.thumbs.tooltips.description && current.category.items[i].thumb.tooltip.description) {
										tooltip_content += '<div class="description">' + current.category.items[i].thumb.tooltip.description + '</div>';
										empty_tooltip = false;
									}

									if (!empty_tooltip)
										$page.find('> li').filter(':last').qtip({
											content: {
												text: tooltip_content
											},
											position: option.thumbs.tooltips.position,
											style: {
												classes: 'chameleon_slider_tooltip ' + option.thumbs.tooltips.classes,
												tip: {
													corner: true
												}
											}
										});
								}
							}
						}

						item_panels.thumbs.pages = item_panels.thumbs.container.find('> ul');
					},

					trigger: function () {
						item_panels.thumbs.container.delegate('ul > li', 'click', function () {
							var $clicked = $(this);

							slider.show_item($clicked.parent().index() * rendering.thumbs.per_page + $clicked.index());

							return false;
						});
					},

					select: function (index) {
						if (!option.thumbs.display)
							return;

						var $new_item = item_panels.thumbs.pages.find('> li').eq(index);

						slider._items_panel.move_to_page('thumbs', $new_item.parent().index());

						item_panels.thumbs.pages.find('> li.on').removeClass('on');
						$new_item.addClass('on');
					}
				},

				categories: {
					init: function () {
						item_panels.categories = {
							container: $('<div class="categories_container" />'),
							window: $('<div class="categories_window" />'),
							wrapper: $('<div class="categories_wrapper ' + option.categories.pagination.direction + '" />')
						}

						item_panels.categories.window.append(item_panels.categories.container);
						item_panels.categories.wrapper.append(item_panels.categories.window);

						$t.prepend(item_panels.categories.wrapper);

						slider._items_panel.init({
							panel: 'categories',
							page: $('<ul />'),
							item: $('<li style="width: ' + option.categories.width + 'px; height: ' + option.categories.height + 'px;" />')
						});

						if (option.categories.auto_hide) {
							item_panels.categories.wrapper.css({
								display: 'none'
							});

							$t.hover(function () {
								item_panels.categories.wrapper.stop().fadeTo(option.categories.hide_speed, 1);
							}, function () {
								item_panels.categories.wrapper.stop().fadeTo(option.categories.hide_speed, 0);
							});
						}

						slider.categories.display_categories();
					},

					display_categories: function () {
						var $page,
							category_html,
							categories = [],
							num_of_categories,
							i = 0,
							category_opened = selected_categories.indexes[selected_categories.indexes.length - 1],
							category_indexes,
							has_children,
							$first_category,
							$category_links,
							category_height;

						if (!option.categories.display)
							return;

						if (rendering.categories.render_categories) {
							if (selected_categories.indexes.length == 1) {
								categories = slider_content;
							} else {
								category_indexes = $.extend([], selected_categories.indexes);
								category_indexes.pop();
								categories = slider.get_category(category_indexes).children;

								categories = [{
									id: -1,
									name: '&lt;Back',
									open_parent: true
								}].concat(categories);

								category_opened++;
							}

							num_of_categories = categories.length;

							slider._items_panel.calculate_pages({
								panel: 'categories',
								item_count: num_of_categories
							});

							item_panels.categories.container.empty();

							for (i = 0; i < num_of_categories; i++) {
								if (i % rendering.categories.per_page === 0) {
									if (option.categories.pagination.direction == 'vertical')
										item_panels.categories.container.height(item_panels.categories.container.height() + rendering.categories.window_height);
									else
										item_panels.categories.container.width(item_panels.categories.container.width() + rendering.categories.window_width);

									$page = $('<ul />');
									$page
										.width(rendering.categories.page.width)
										.height(rendering.categories.page.height)
										.appendTo(item_panels.categories.container);
								}

								has_children = typeof categories[i].children != 'undefined' && categories[i].children.length > 0;

								category_html = '<li' + (categories[i].open_parent ? ' class="open_parent"' : '') + (has_children ? ' class="has_children"' : '') + ' style="width: ' + option.categories.width + 'px; height: ' + option.categories.height + 'px;"><a href="#" class="' + (categories[i].open_parent ? 'back_button' : 'category') + '"><span>' + categories[i].name + '</span></a>';

								if (has_children)
									category_html += '<a href="#" class="open_children"></a>';

								category_html += '</li>';

								$page.append(category_html);
							}

							item_panels.categories.pages = item_panels.categories.container.find('> ul');

							$category_links = item_panels.categories.pages.find('> li > a.category');
							$first_category = $category_links.eq(0);
							category_height = option.categories.height - ($first_category.outerHeight(true) - $first_category.height());

							$category_links.height(category_height);

							$category_links.each(function () {
								var $link = $(this),
									$span = $link.find('span'),
									height = $span.height();

								if (category_height > height)
									$span.css({
										top: Math.floor((category_height - height) / 2)
									});
								else
									$span.css({
										top: 0
									});
							});
						} else {
							if (selected_categories.indexes.length > 1)
								category_opened++;

							rendering.categories.render_categories = true;
						}

						slider.categories.select(category_opened);
					},

					trigger: function () {
						item_panels.categories.container.delegate('li > a', 'click', function () {
							var $clicked = $(this),
								$first_category,
								$parent = $clicked.parent(),
								$page = $parent.parent(),
								index = $page.index() * rendering.categories.per_page + $parent.index();

							$first_category = item_panels.categories.pages.find('> li').eq(0);

							if ($first_category.hasClass('open_parent'))
								index--;

							if ($clicked.hasClass('category')) {
								if ($parent.hasClass('on'))
									return false;

								selected_categories.indexes.pop();
								selected_categories.indexes.push(index);

								selected_categories.ids = slider.category_ids_from_indexes(selected_categories.indexes);

								current.category = slider.get_category(selected_categories.indexes);
								current.category.item_count = current.category.items.length;

								current.item = {
									id: current.category.items[0].id,
									index: 0
								};

								rendering.categories.render_categories = false;

								slider.change_category();
							} else if ($clicked.hasClass('open_children')) {
								selected_categories.indexes.pop();
								selected_categories.indexes.push(index);
								selected_categories.indexes.push(0);

								selected_categories.ids = slider.category_ids_from_indexes(selected_categories.indexes);

								current.category = slider.get_category(selected_categories.indexes);
								current.category.item_count = current.category.items.length;

								current.item = {
									id: current.category.items[0].id,
									index: 0
								};

								slider.change_category();
							} else if ($clicked.hasClass('back_button')) {
								selected_categories.indexes.pop();

								selected_categories.ids = slider.category_ids_from_indexes(selected_categories.indexes);

								current.category = slider.get_category(selected_categories.indexes);
								current.category.item_count = current.category.items.length;

								current.item = {
									id: current.category.items[0].id,
									index: 0
								};

								slider.change_category();
							}

							return false;
						});
					},

					select: function (index) {
						var $new_item = item_panels.categories.pages.find('> li').eq(index);

						slider._items_panel.move_to_page('categories', $new_item.parent().index());

						item_panels.categories.pages.find('> li.on').removeClass('on');
						$new_item.addClass('on');
					}
				},

				change_category: function () {
					slider.main_panel.display_category();
					slider.categories.display_categories();
					slider.thumbnails.display_category();
					slider.pagination.display_category();
					slider.gallery_title.select();
					slider.gallery_info.display();
					slider.arrows.display_category();
					slider.autoplay_toggle.display_category();
					slider.autoplay.display_category();

					slider.show_item(current.item.index, true);
				},

				arrows: {
					init: function () {
						$navigation_prev = $('<a href="#" class="navigation_button prev">Previous</a>');
						$navigation_next = $('<a href="#" class="navigation_button next">Next</a>');

						$t.prepend($navigation_prev, $navigation_next);

						slider.position_element($navigation_prev, option.arrows.prev.position);
						slider.position_element($navigation_next, option.arrows.next.position);

						slider.arrows.display_category();
					},

					trigger: function () {
						$navigation_prev.click(function () {
							slider.prev();

							return false;
						});
						$navigation_next.click(function () {
							slider.next();

							return false;
						});

						if (option.arrows.auto_hide) {
							$navigation_prev.fadeTo(0, 0);
							$navigation_next.fadeTo(0, 0);
							$t.hover(function () {
								if (current.category.item_count == 1)
									return;

								$navigation_prev.stop().fadeTo(option.arrows.hide_speed, 1);
								$navigation_next.stop().fadeTo(option.arrows.hide_speed, 1);
							}, function () {
								$navigation_prev.stop().fadeTo(option.arrows.hide_speed, 0);
								$navigation_next.stop().fadeTo(option.arrows.hide_speed, 0);
							});
						}
					},

					display_category: function () {
						var display = '';

						if (current.category.item_count == 1)
							display = 'none';

						$navigation_prev.css('display', display);
						$navigation_next.css('display', display);
					}
				},

				_title_box: {
					init: function (props) {
						var $text_span,
							text_span_top;

						rendering.title_boxes[props.box] = $('<span class="title_box' + (props.custom_class ? ' ' + props.custom_class : '') + '" style="height: ' + option.title_boxes[props.box].height + 'px;"><span>T</span></span>');

						$text_span = rendering.title_boxes[props.box].find('> span');

						rendering.title_boxes[props.box].css('visibility', 'hidden');

						$t.prepend(rendering.title_boxes[props.box]);

						slider.position_element(rendering.title_boxes[props.box], option.title_boxes[props.box].position);

						text_span_top = Math.floor((option.title_boxes[props.box].height - $text_span.height()) / 2);

						if (text_span_top < 0)
							text_span_top = 0

						$text_span
							.css({
								top: text_span_top
							})
							.empty();

						rendering.title_boxes[props.box].css('visibility', '');
					},

					change_text: function (props) {
						if (!props.text) {
							rendering.title_boxes[props.box]
								.stop()
								.fadeTo(200, 0);
						} else {
							if (rendering.title_boxes[props.box].is(':visible')) {
								rendering.title_boxes[props.box]
									.stop()
									.fadeTo(200, 0, function () {
										rendering.title_boxes[props.box]
											.fadeTo(400, 1)
											.find('> span')
												.html(props.text);
									});
							} else {
								rendering.title_boxes[props.box]
									.stop()
									.fadeTo(400, 1)
									.find('> span')
										.html(props.text);
							}
						}
					}
				},

				item_title: {
					init: function () {
						slider._title_box.init({
							box: 'current_item',
							custom_class: 'current_item'
						});

						slider.item_title.select(current.item.index);
					},

					select: function (index) {
						if (!option.title_boxes.current_item.display)
							return;

						slider._title_box.change_text({
							box: 'current_item',
							text: current.category.items[index].title
						});
					},

					size: function () {
						if (!option.title_boxes.current_item.display)
							return;

						slider.position_element(rendering.title_boxes.current_item, option.title_boxes.current_item.position);
					}
				},

				gallery_title: {
					init: function () {
						slider._title_box.init({
							box: 'current_gallery',
							custom_class: 'current_gallery'
						});

						slider.gallery_title.select();
					},

					select: function () {
						if (!option.title_boxes.current_gallery.display)
							return;

						slider._title_box.change_text({
							box: 'current_gallery',
							text: current.category.name
						});
					},

					size: function () {
						if (!option.title_boxes.current_gallery.display)
							return;

						slider.position_element(rendering.title_boxes.current_gallery, option.title_boxes.current_gallery.position);
					}
				},

				triggers: function () {
					if (option.arrows.display) {
						slider.arrows.trigger();
					}
					if (option.thumbs.display) {
						slider.thumbnails.trigger();
					}
					if (option.categories.display) {
						slider.categories.trigger();
					}
					if (option.key_browse) {
						slider.key_browse();
					}
					if (option.autoplay.enable) {
						slider.autoplay.start();
					}
					if (option.autoplay.pause_on_hover) {
						$t.hover(function () {
							if (current.category.item_count < 2)
								return;

							if (autoplay.user_paused || autoplay.pause)
								return;

							autoplay.pause = true;
							slider.autoplay.pause();
						}, function () {
							if (current.category.item_count < 2)
								return;

							autoplay.pause = false;

							if (autoplay.video_playing || autoplay.user_paused || autoplay.transition_in_progres)
								return;

							slider.autoplay.start();
						});
					}

					$t.bind('resize_slider', function () {
						slider.autoplay.reset();

						$t.css(rendering.container_dimensions);

						slider.main_panel.size();
						slider.autoplay.size();

						slider._scrollable_boxes.size('gallery_info');
						slider._scrollable_boxes.size('item_info');

						slider.gallery_title.size();
						slider.item_title.size();

						slider.thumbnails.display_category(false);
						slider.categories.display_categories();

						if (option.pagination.display)
							slider.position_element($pagination, option.pagination.position);

						if (option.autoplay_toggle.display)
							slider.position_element($autoplay_toggle, option.autoplay_toggle.position);

						if (option.arrows.display) {
							slider.position_element($navigation_prev, option.arrows.prev.position);
							slider.position_element($navigation_next, option.arrows.next.position);
						}

						slider.show_item(current.item.index, true, '');
					});

					$loading_overlay.fadeOut(200, function () {
						$loading_overlay.remove();
					})

					$t.trigger('slider_initialized');
				},

				get_dimensions: function (d) {
					var reference;

					if (arguments.length > 1 && typeof arguments[1] == 'object')
						reference = arguments[1];
					else
						reference = {
							width: rendering.container_dimensions.width,
							height: rendering.container_dimensions.height
						};

					return { width: (d.w_as_ratio ? Math.floor(reference.width * d.width) : d.width), height: (d.h_as_ratio ? Math.floor(reference.height * d.height) : d.height) };
				},

				position_element: function (element, position) {
					var v_offset = position.v_as_ratio ? Math.floor(position.v_offset * rendering.container_dimensions.height) : position.v_offset,
						h_offset = position.h_as_ratio ? Math.floor(position.h_offset * rendering.container_dimensions.width) : position.h_offset;

					if (position.v_center_point)
						v_offset -= Math.floor(element.outerHeight() / 2);

					if (position.h_center_point)
						h_offset -= Math.floor(element.outerWidth() / 2);

					if (position.vertical == 'top') {
						element.css('top', v_offset);
					} else {
						element.css({
							top: 'auto',
							bottom: v_offset
						});
					}

					if (position.horizontal == 'left') {
						element.css('left', h_offset);
					} else {
						element.css({
							left: 'auto',
							right: h_offset
						});
					}
				},

				category_indexes_from_ids: function (ids, categories) {
					var i = 0,
						num_of_cats,
						next_index = [];

					if (ids.length == 0) {
						return [];
					}

					num_of_cats = $.isArray(categories) ? categories.length : 0;
					for (; i < num_of_cats; i++) {
						if (categories[i].id == ids[0]) {
							ids.shift();
							if (ids.length != 0) {
								next_index = slider.category_indexes_from_ids(ids, categories[i].children);
								if (next_index.length == 0) {
									return [];
								}
							}
							return [i].concat(next_index);
						}
					}

					return [];
				},

				category_ids_from_indexes: function (indexes) {
					var m = indexes.length,
						i = 1,
						ids,
						selected = slider_content[indexes[0]];

					ids = [selected.id];

					for (; i < m; i++) {
						selected = selected.children[indexes[i]];
						ids.push(selected.id);
					}

					return ids;
				},

				get_category: function (indexes) {
					var m = indexes.length,
						i = 1,
						selected;

					if (!$.isArray(indexes) || indexes.length == 0)
						return slider_content[0];

					selected = slider_content[indexes[0]];

					for (; i < m; i++)
						selected = selected.children[indexes[i]];

					return selected;
				},

				item_index_from_id: function (id) {
					var items = current.category.items,
						num_of_items = items.length,
						i = 0;

					if (id == undefined)
						return 0;

					for (; i < num_of_items; i++)
						if (items[i].id == id)
							return i;

					return 0;
				},

				set_url_param: function (url, param) {
					var url_hash = '',
						return_url = '',
						param_string = param + (arguments.length > 2 ? '=' + arguments[2] : ''),
						params,
						segment = false,
						found = false,
						i;

					url = url.split('#');

					if (url.length == 1) {
						url_hash = false;
					} else {
						url_hash = url[1];
					}

					url = url[0].split('?');
					if (url.length == 1 || url[1] == '') {
						return_url = url[0] + '?' + param_string;
					} else {
						return_url = url[0] + '?';

						params = url[1].split('&');
						for (i in params) {
							if (typeof params[i] != 'string')
								continue;

							segment = params[i].split('=');

							if (segment[0] == param) {
								found = true;
								return_url += param_string + '&';
							} else {
								if (segment.length == 1) {
									return_url += segment[0] + '&';
								} else {
									return_url += segment[0] + '=' + segment[1] + '&';
								}
							}
						}

						if (found)
							return_url = return_url.substring(0, return_url.length - 1);
						else
							return_url += param_string;
					}

					return return_url + (url_hash === false ? '' : '#' + url_hash);
				}
			};

			slider.init();
		});
	};

	$.fn[pluginName + '_fullscreen'] = function (options) {
		var $fullscreenContainer,
			$theSlider,
			resize_deley_timeout,
			close_fullscreen = function () {
				$fullscreenContainer.fadeTo(500, 0, function () {
					$theSlider.trigger('destroy');
					$fullscreenContainer.remove();
				});

				$(document).unbind('keydown.chameleonslider_fullscreen_' + options.module_id);
			};

		$fullscreenContainer = $('<div id="chameleonSliderFullscreen_' + options.module_id + '" style="z-index: 15000; overflow: hidden; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, .5);"><div class="chameleon_slider ' + options.theme + '" /></div>');

		$('body').append($fullscreenContainer);

		$theSlider = $fullscreenContainer.find('> .chameleon_slider');

		$.extend(true, options, {
			container_dimensions: {
				width: 1,
				height: 1,
				w_as_ratio: true,
				h_as_ratio: true
			},
			autoplay: {
				pause_on_hover: false
			},
			buttons: {
				exit_fullscreen: {
					display: true
				},
				fullscreen: {
					display: false
				}
			},
			main_panel: {
				stretch_small_image: true
			}
		});

		$theSlider.bind('slider_initialized', function () {
			$theSlider.find('> .exit_fullscreen').click(function () {
				close_fullscreen();
				return false;
			});

			$(document).bind('keydown.chameleonslider_fullscreen_' + options.module_id, function(e) {
				if (e.which == 27)
					close_fullscreen();
			});
		});

		$theSlider[pluginName](options);
	};
}(eds3_5_jq, window, document));

;;;/*!
 * imagesLoaded PACKAGED v3.1.4
 * JavaScript is all like "You images are done yet or what?"
 * MIT License
 */

(function () { function e() { } function t(e, t) { for (var n = e.length; n--;)if (e[n].listener === t) return n; return -1 } function n(e) { return function () { return this[e].apply(this, arguments) } } var i = e.prototype, r = this, o = r.EventEmitter; i.getListeners = function (e) { var t, n, i = this._getEvents(); if ("object" == typeof e) { t = {}; for (n in i) i.hasOwnProperty(n) && e.test(n) && (t[n] = i[n]) } else t = i[e] || (i[e] = []); return t }, i.flattenListeners = function (e) { var t, n = []; for (t = 0; e.length > t; t += 1)n.push(e[t].listener); return n }, i.getListenersAsObject = function (e) { var t, n = this.getListeners(e); return n instanceof Array && (t = {}, t[e] = n), t || n }, i.addListener = function (e, n) { var i, r = this.getListenersAsObject(e), o = "object" == typeof n; for (i in r) r.hasOwnProperty(i) && -1 === t(r[i], n) && r[i].push(o ? n : { listener: n, once: !1 }); return this }, i.on = n("addListener"), i.addOnceListener = function (e, t) { return this.addListener(e, { listener: t, once: !0 }) }, i.once = n("addOnceListener"), i.defineEvent = function (e) { return this.getListeners(e), this }, i.defineEvents = function (e) { for (var t = 0; e.length > t; t += 1)this.defineEvent(e[t]); return this }, i.removeListener = function (e, n) { var i, r, o = this.getListenersAsObject(e); for (r in o) o.hasOwnProperty(r) && (i = t(o[r], n), -1 !== i && o[r].splice(i, 1)); return this }, i.off = n("removeListener"), i.addListeners = function (e, t) { return this.manipulateListeners(!1, e, t) }, i.removeListeners = function (e, t) { return this.manipulateListeners(!0, e, t) }, i.manipulateListeners = function (e, t, n) { var i, r, o = e ? this.removeListener : this.addListener, s = e ? this.removeListeners : this.addListeners; if ("object" != typeof t || t instanceof RegExp) for (i = n.length; i--;)o.call(this, t, n[i]); else for (i in t) t.hasOwnProperty(i) && (r = t[i]) && ("function" == typeof r ? o.call(this, i, r) : s.call(this, i, r)); return this }, i.removeEvent = function (e) { var t, n = typeof e, i = this._getEvents(); if ("string" === n) delete i[e]; else if ("object" === n) for (t in i) i.hasOwnProperty(t) && e.test(t) && delete i[t]; else delete this._events; return this }, i.removeAllListeners = n("removeEvent"), i.emitEvent = function (e, t) { var n, i, r, o, s = this.getListenersAsObject(e); for (r in s) if (s.hasOwnProperty(r)) for (i = s[r].length; i--;)n = s[r][i], n.once === !0 && this.removeListener(e, n.listener), o = n.listener.apply(this, t || []), o === this._getOnceReturnValue() && this.removeListener(e, n.listener); return this }, i.trigger = n("emitEvent"), i.emit = function (e) { var t = Array.prototype.slice.call(arguments, 1); return this.emitEvent(e, t) }, i.setOnceReturnValue = function (e) { return this._onceReturnValue = e, this }, i._getOnceReturnValue = function () { return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0 }, i._getEvents = function () { return this._events || (this._events = {}) }, e.noConflict = function () { return r.EventEmitter = o, e }, "function" == typeof define && define.amd ? define("eventEmitter/EventEmitter", [], function () { return e }) : "object" == typeof module && module.exports ? module.exports = e : this.EventEmitter = e }).call(this), function (e) { function t(t) { var n = e.event; return n.target = n.target || n.srcElement || t, n } var n = document.documentElement, i = function () { }; n.addEventListener ? i = function (e, t, n) { e.addEventListener(t, n, !1) } : n.attachEvent && (i = function (e, n, i) { e[n + i] = i.handleEvent ? function () { var n = t(e); i.handleEvent.call(i, n) } : function () { var n = t(e); i.call(e, n) }, e.attachEvent("on" + n, e[n + i]) }); var r = function () { }; n.removeEventListener ? r = function (e, t, n) { e.removeEventListener(t, n, !1) } : n.detachEvent && (r = function (e, t, n) { e.detachEvent("on" + t, e[t + n]); try { delete e[t + n] } catch (i) { e[t + n] = void 0 } }); var o = { bind: i, unbind: r }; "function" == typeof define && define.amd ? define("eventie/eventie", o) : e.eventie = o }(this), function (e, t) { "function" == typeof define && define.amd ? define(["eventEmitter/EventEmitter", "eventie/eventie"], function (n, i) { return t(e, n, i) }) : "object" == typeof exports ? module.exports = t(e, require("eventEmitter"), require("eventie")) : e.imagesLoaded = t(e, e.EventEmitter, e.eventie) }(this, function (e, t, n) { function i(e, t) { for (var n in t) e[n] = t[n]; return e } function r(e) { return "[object Array]" === d.call(e) } function o(e) { var t = []; if (r(e)) t = e; else if ("number" == typeof e.length) for (var n = 0, i = e.length; i > n; n++)t.push(e[n]); else t.push(e); return t } function s(e, t, n) { if (!(this instanceof s)) return new s(e, t); "string" == typeof e && (e = document.querySelectorAll(e)), this.elements = o(e), this.options = i({}, this.options), "function" == typeof t ? n = t : i(this.options, t), n && this.on("always", n), this.getImages(), a && (this.jqDeferred = new a.Deferred); var r = this; setTimeout(function () { r.check() }) } function c(e) { this.img = e } function f(e) { this.src = e, v[e] = this } var a = e.eds3_5_jq,u=e.console,h=u!==void 0,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);for(var i=n.querySelectorAll("img"),r=0,o=i.length;o>r;r++){var s=i[r];this.addImage(s)}}},s.prototype.addImage=function(e){var t=new c(e);this.images.push(t)},s.prototype.check=function(){function e(e,r){return t.options.debug&&h&&u.log("confirm",e,r),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return this.complete(),void 0;for(var r=0;i>r;r++){var o=this.images[r];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},a&&(a.fn.imagesLoaded=function(e,t){var n=new s(this,e,t);return n.jqDeferred.promise(a(this))}),c.prototype=new t,c.prototype.check=function(){var e=v[this.img.src]||new f(this.img.src);if(e.isConfirmed)return this.confirm(e.isLoaded,"cached was confirmed"),void 0;if(this.img.complete&&void 0!==this.img.naturalWidth)return this.confirm(0!==this.img.naturalWidth,"naturalWidth"),void 0;var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},c.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var v={};return f.prototype=new t,f.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},f.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},f.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},f.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},f.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},f.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s});
;;;!function(e,t){"use strict";var a={portalId:0,moduleId:0,tabId:0,autoplayVideo:!1,userLoggedIn:!1,googleReCaptchaSiteKey:"",websiteRoot:"",portfolioMode:!1,openAt:0,wrapperResizeDuration:200,flowplayerSwf:"",flowplayer:{key:"",logo:""},socialButtons:{facebook:!1,gplus:!1,twitter:!1,inshare:!1,pinterest:!1},cssClass:"",events:{onBeforeClose:function(){}},comments:{requireAuthorInfo:!0,useReCaptcha:!1,permissions:{show:!1,commenting:!1}},like:{permissions:{liking:!1}},mobile:!1,i18n:{}},o=0,i=1,s=2,n="positionAnimation",r="swipeAnimation",m=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,l=function(t,a){var o=this,i=o.items[t];if(i&&"image"==i.type){var s=o.images[i.src];if(s)"function"==typeof a&&(s.stats.preloadFinished?a(s.stats):s.callbacks.push(a));else{s=o.images[i.src]={callbacks:[],stats:{preloadFinished:!1,isLoaded:!1,width:0,height:0}},"function"==typeof a&&s.callbacks.push(a);var n=e('<img class="smbLightImage_'+i.id+'" />');n.imagesLoaded().progress(function(e,t){if(!o.viewClosed){var a=o.images[i.src];if(a.stats.preloadFinished=!0,a.stats.isLoaded=t.isLoaded,!o.smbPlus&&t.isLoaded&&o.$imagesWrapper.append(n),a.stats.width=n.width(),a.stats.height=n.height(),o.smbPlus)n.css(p.call(o,a.stats.width,a.stats.height,!1)),n.parent().removeClass("loading");else{var s=o.items[o.currentItemIndex];"image"==s.type&&s.src==i.src&&(o.initialItemLoaded=!0,$.call(o))}n=null;for(var r=0,m=a.callbacks.length;r<m;r++)a.callbacks[r](a.stats)}}),o.smbPlus&&n.appendTo(e("> div.item_"+t,o.$contentWrapper)),n.attr("src",i.src)}}},c=function(){for(var e=0,t=this.items.length;e<t;e++)l.call(this,e)},p=function(e,t,a,o){var i,s,n=this.overlayWidth-this.main.horizontalSpace,r=this.overlayHeight-this.main.verticalSpace,m=e,l=t;return(a||e>n||t>r)&&(m=n,l=r,(s=e/t)<(i=n/r)?m=Math.round(r/t*e):s>i&&(l=Math.round(n/e*t))),o&&(l=t),{width:m,height:l,top:Math.floor((r-l)/2),left:Math.floor((n-m)/2)}},d=function(e){var t=this,a=function(){t.$loadingOverlay.stop(!0).fadeTo(200,0,function(){t.$loadingOverlay.css("display","none")}),v.call(t)},o=function(e,a){0==t.options.wrapperResizeDuration?(t.$mainWrapper.css(e),a()):t.$mainWrapper.stop(!0).animate(e,{duration:t.options.wrapperResizeDuration,complete:function(){t.$mainWrapper.css("overflow",""),a()}})},i=function(){t.$mainWrapper.height()!=e.height?o({height:e.height,top:e.top},a):a()};t.$loadingOverlay.removeClass("inProgress"),t.$mainWrapper.width()!=e.width?o({width:e.width,left:e.left},i):i()},h=function(t){var a="",o="",i=this.items[t];switch(this.smbPlus||this.$mainWrapper.addClass("videoItem"),i.source){case"youtube":a='<iframe src="//www.youtube.com/embed/'+i.videoId+(this.options.autoplayVideo?"?autoplay=1":"")+'" frameborder="0" allowfullscreen></iframe>';break;case"vimeo":a='<iframe src="//player.vimeo.com/video/'+i.videoId+(this.options.autoplayVideo?"?autoplay=1":"")+'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';break;case"wistia":a='<iframe name="wistia_embed" src="//fast.wistia.net/embed/iframe/'+i.videoId+'" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';break;case"flowplayer":W(i.src,".mp4")?o="video/mp4":W(i.src,".webm")?o="video/webm":W(i.src,".ogg")?o="video/ogg":W(i.src,".flv")&&(o="video/flash"),a='<div class="flowplayerContainer"></div>'}var s=this.$audioVideo;this.smbPlus?("flowplayer"!=i.source&&(a="<div>"+a+"</div>"),s=e("> div.item_"+this.currentItemIndex,this.$contentWrapper)):s.addClass("activeElement"),s.html(a).removeClass("loading"),"flowplayer"==i.source&&e("> .flowplayerContainer",s).flowplayer({swf:this.options.flowplayerSwf,ratio:i.height/i.width,autoplay:this.options.autoplayVideo,tooltip:!1,embed:!1,clip:{sources:[{type:o,src:i.src}]},key:this.options.flowplayer.key,logo:this.options.flowplayer.logo});var n=p.call(this,i.width,i.height,!0);this.smbPlus?e(">",s).css(n):d.call(this,n),this.initialItemLoaded=!0},u=function(t){this.smbPlus||this.$mainWrapper.addClass("audioItem");var a=this.$audioVideo,o='<audio src="'+t.src+'" />',i="> audio";this.smbPlus?(o="<div>"+o+"</div>",i="> div > audio",a=e("> div.item_"+this.currentItemIndex,this.$contentWrapper)):a.addClass("activeElement"),a.html(o).removeClass("loading"),audiojs.create(e(i,a)[0]);var s=p.call(this,460,36,!1,!0);this.smbPlus?e(">",a).css(s):d.call(this,s),this.initialItemLoaded=!0},v=function(){var e=this.items[this.currentItemIndex];"string"==typeof e.title&&""!=e.title&&this.$itemTitle.html(e.title).stop(!0).fadeTo(200,1),(this.options.socialButtons.facebook||this.options.socialButtons.twitter||this.options.socialButtons.gplus||this.options.socialButtons.inshare||this.options.socialButtons.pinterest&&"image"==e.type)&&"string"==typeof e.socialUrl&&""!=e.socialUrl?this.$socialButtonsTrigger.css("display",""):this.$socialButtonsTrigger.css("display","none")},g=function(e){var t=this.items.length;return e<0?e=t-1:e>=t&&(e=0),e},$=function(){if(this.$itemTitle.text("").stop(!0).fadeTo(0,0),this.$socialButtonsTrigger.removeClass("show"),this.$socialButtonsWrapper.removeClass("show").html(""),this.currentItemIndex=g.call(this,this.currentItemIndex),this.$root.removeClass("firstItem lastItem"),0===this.currentItemIndex&&this.$root.addClass("firstItem"),this.currentItemIndex===this.items.length-1&&this.$root.addClass("lastItem"),this.smbPlus){var t=g.call(this,this.currentItemIndex-1),a=g.call(this,this.currentItemIndex+1);e("> div.videoItem.item_"+t+",> div.audioItem.item_"+t+",> div.videoItem.item_"+a+",> div.audioItem.item_"+a,this.$contentWrapper).html(""),v.call(this)}var o=this.items[this.currentItemIndex],i="imageActive";"video"==o.type?i="videoActive":"audio"==o.type&&(i="audioActive"),this.$root.removeClass("imageActive videoActive audioActive").addClass(i),this.showItem()},C=function(){if(this.smbPlus){var e=this.$window.height();t.innerHeight&&(e=t.innerHeight),e+=1,this.$root.height(e),this.overlayWidth=this.$root.width(),this.overlayHeight=e}else this.overlayWidth=this.$contentWrapper.width(),this.overlayHeight=this.$contentWrapper.height();this.center()},f=function(e){var t=this;if(!(t.skipGestures||-1==e&&0==t.currentItemIndex||1==e&&t.currentItemIndex==this.items.length-1)){t.skipGestures=!0;var a=-t.currentItemIndex*t.overlayWidth;1==e?a-=t.overlayWidth:a+=t.overlayWidth,t.$contentWrapper.removeClass(n).addClass(r).css({transform:"translate3d("+a+"px, 0, 0)"}),setTimeout(function(){t.currentItemIndex+=e,$.call(t),t.skipGestures=!1},250)}},I=function(){this.initialItemLoaded&&(this.smbPlus?f.call(this,-1):(this.currentItemIndex-=1,$.call(this)))},y=function(){this.initialItemLoaded&&(this.smbPlus?f.call(this,1):(this.currentItemIndex+=1,$.call(this)))},w=function(){var e=this;"function"==typeof e.options.events.onBeforeClose&&!1===e.options.events.onBeforeClose({activeItem:e.currentItemIndex,displayItems:e.items})||(e.$document.off(".smbLightEvent"),e.$window.off(".smbLightEvent"),e.viewClosed=!0,e.$root.stop(!0).fadeOut(200,function(){e.$root.remove(),e.$body.removeClass("smbLightFixed")}),e.smbPlus&&(void 0===e.oldViewportMetaContent?e.$viewportMeta.remove():e.$viewportMeta.attr("content",e.oldViewportMetaContent),void 0===e.oldIeTapHighlight?e.$ieTapHighlight.remove():e.$ieTapHighlight.attr("content",e.oldIeTapHighlight)))},W=function(e,t){return-1!==e.indexOf(t,e.length-t.length)},k=function(){var t=this,a=t.items[t.currentItemIndex],o=t.comments[a.id],i="";if(t.$mainCommentsCount.text(o.count),t.$internalCommentsCount.text(o.count),0==o.cache.comments.length)return t.$commentList.html(""),void t.$commentsModal.addClass("noComments");t.$commentsModal.removeClass("noComments"),e.each(o.cache.comments,function(){var a=o.cache.authors[this.author],s=encodeURI(a.url),n='<li><a class="authorAvatar" href="'+s+'"><img src="'+encodeURI(a.avatar)+'" alt="" /></a><a class="author" href="'+s+'">'+e("<p />").text(a.name).html()+"</a><div>"+this.content+'</div><p class="datetime">'+this.dateHtml+"</p></li>";"asc"==t.commentSorting?i+=n:i=n+i}),t.$commentList.html(i)},b=function(o,i){return this.$body=e("body"),!this.$body.hasClass("smbLightFixed")&&0!=o.length&&(this.$body.addClass("smbLightFixed"),this.$window=e(t),this.$document=e(document),this.initialItemLoaded=!1,this.viewClosed=!1,this.items=o,this.options=e.extend(!0,{},a,i),this.currentItemIndex=this.options.openAt,(this.currentItemIndex<0||this.currentItemIndex>=o.length)&&(this.currentItemIndex=0),this.images={},!0)},x=function(){var t=this;t.$window.on("resize.smbLightEvent",function(){if(t.comments){var e=t.items[t.currentItemIndex],a=t.comments?t.comments[e.id]:void 0;t.desktopVersion&&a&&a.state.open&&t.$root.width(t.$window.width()-t.$commentsModal.outerWidth(!0))}C.call(t)}),t.$document.on("keyup.smbLightEvent",function(e){switch(e.keyCode){case 37:I.call(t);break;case 39:y.call(t);break;case 27:if(t.commentsOpened)return t.closeComments(),!1;w.call(t)}return!1}),t.$root.on("click",".navigation",function(){t.$root.hasClass("initializing")||(e(this).hasClass("prev")?I.call(t):y.call(t))}).on("click",".close",function(){w.call(t)}),t.$socialButtonsTrigger.on("click",function(){if(!t.$root.hasClass("initializing")){var a=t.items[t.currentItemIndex],o=encodeURIComponent(a.socialUrl),i="",s="";"string"==typeof a.title&&""!=a.title&&(s=a.title.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),s+=" "+a.socialUrl.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),i=encodeURIComponent(a.title));var n="";t.options.socialButtons.facebook&&(n='<div><iframe src="//www.facebook.com/plugins/like.php?href='+o+'&amp;width&amp;layout=button_count&amp;action=like&amp;show_faces=false&amp;share=false&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:21px; width: 135px;" allowTransparency="true"></iframe></div>'),t.options.socialButtons.twitter&&(n+='<div><a href="//twitter.com/share" class="twitter-share-button" data-url="'+o+'" data-text="'+s+'">Tweet</a><script type="text/javascript">twttr.widgets.load();<\/script></div>'),t.options.socialButtons.gplus&&(n+='<div><div class="g-plusone" data-size="medium" data-href="'+a.socialUrl+'"></div><script type="text/javascript">gapi.plusone.go();<\/script></div>'),t.options.socialButtons.inshare&&(n+='<div><script type="IN/Share" data-url="'+a.socialUrl+'" data-counter="right"><\/script><script type="text/javascript">if (IN.parse) IN.parse();<\/script></div>'),t.options.socialButtons.pinterest&&"image"==a.type&&(n+='<div><a href="//www.pinterest.com/pin/create/button/?url='+o+"&media="+encodeURIComponent(a.src)+"&description="+i+'" data-pin-do="buttonPin" data-pin-config="beside"><img src="//assets.pinterest.com/images/pidgets/pinit_fg_en_rect_gray_20.png" /></a></div>'),""!=n&&(t.$socialButtonsWrapper.toggleClass("show").html(n),t.options.socialButtons.pinterest&&"image"==a.type&&e.ajax({url:"//assets.pinterest.com/js/pinit.js",dataType:"script",cache:!0}),e(this).toggleClass("show"))}})},T=function(e){var t=this.options.i18n[e];return t||e};function L(t,a){var o,i=this,s="";if(b.call(i,t,a))return i.$root=e('<div class="smbLightOverlayWrapper initializing"><div class="contentWrapper"></div></div>'),i.$root.addClass(i.options.cssClass),i.$contentWrapper=e("> div.contentWrapper",i.$root),t.length>1&&(s='<span class="navigation prev"><span></span></span><span class="navigation next"><span></span></span>'),s+='<span class="close"><span></span></span><div class="socialButtonsWrapper"></div><span class="actions socialButtonsTrigger"><span>'+T.call(i,"Share")+"</span></span>",i.$mainWrapper=e('<div class="mainWrapper"><div class="viewWrapper"><div class="images"><p>'+T.call(i,"This image is currently unavailable")+'</p></div><div class="audioVideo"></div></div>'+s+"</div>").appendTo(i.$contentWrapper),i.$itemTitle=e('<h2 class="itemTitle" />').appendTo(i.$mainWrapper),i.$loadingOverlay=e('<div class="loadingOverlay inProgress"></div>').appendTo(i.$mainWrapper),i.$imagesWrapper=e("> .viewWrapper > .images",i.$mainWrapper),i.$audioVideo=e("> .viewWrapper > .audioVideo",i.$mainWrapper),i.$socialButtonsWrapper=e(".socialButtonsWrapper",i.$mainWrapper),i.$socialButtonsTrigger=e(".socialButtonsTrigger",i.$mainWrapper),"image"==(o=i.items[i.currentItemIndex]).type?l.call(i,i.currentItemIndex,function(){c.call(i)}):c.call(i),i.$root.appendTo(i.$body),i.main={horizontalSpace:i.$mainWrapper.outerWidth(!0)-i.$mainWrapper.width(),verticalSpace:i.$mainWrapper.outerHeight(!0)-i.$mainWrapper.height()},C.call(i),i.$root.fadeTo(200,1,function(){"image"!=o.type&&$.call(i)}),x.call(i),i}function M(t,a){var o=this,i="";if(o.smbPlus=!0,b.call(o,t,a)){if(o.options.wrapperResizeDuration=0,o.$viewportMeta=e('meta[name="viewport"]'),o.oldViewportMetaContent=void 0,o.$viewportMeta.length>0?(o.oldViewportMetaContent=o.$viewportMeta.attr("content"),o.$viewportMeta.attr("content","user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1")):o.$viewportMeta=e('<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1" />').appendTo(e("head")),o.$ieTapHighlight=e('meta[name="msapplication-tap-highlight"]'),o.oldIeTapHighlight=void 0,o.$ieTapHighlight.length>0?(o.oldIeTapHighlight=o.$ieTapHighlight.attr("content"),o.$ieTapHighlight.attr("content","no")):o.$ieTapHighlight=e('<meta name="msapplication-tap-highlight" content="no" />').appendTo(e("head")),o.$root=e('<div class="smbLightOverlayWrapper smbPlus initializing"><div class="contentWrapper"></div></div>').addClass(o.options.cssClass),/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase())||(o.$root.addClass("desktopUserAgent"),o.desktopVersion=!0),o.$contentWrapper=e("> div.contentWrapper",o.$root),i='<div class="mobileOverlay"></div><div class="modalOverlay"></div>',t.length>1&&(i+='<span class="navigation prev"><span></span></span><span class="navigation next"><span></span></span>'),i+='<span class="close"><span></span></span><div class="socialButtonsWrapper"></div><span class="actions socialButtonsTrigger"><span>'+T.call(o,"Share")+"</span></span>",o.$root.append(i),o.$itemTitle=e('<h2 class="itemTitle" />').appendTo(o.$root),o.$socialButtonsWrapper=e(".socialButtonsWrapper",o.$root),o.$socialButtonsTrigger=e(".socialButtonsTrigger",o.$root),o.$modalOverlay=e("> .modalOverlay",o.$root),o.options.comments.permissions.show){var s;o.comments={},o.$root.append('<span class="actions commentsTrigger"><span>0</span></span><div class="commentsModalWrapper"><div class="main"><div class="top"><span class="comments">0</span><span class="likes">0</span><span class="sort">'+T.call(o,"Sort")+'</span></div><ul /><p class="noComments">'+T.call(o,"No comments yet")+'</p><div class="newCommentWrapper"><textarea placeholder="'+T.call(o,"Write a comment")+'"></textarea><button>'+T.call(o,"Post")+'</button></div></div><div class="anonymCommentWrapper"><p>'+T.call(o,"Add a comment")+'</p><div class="authorName"><input type="text" placeholder="'+T.call(o,"Name")+'" /></div><div class="authorEmail"><input type="text" placeholder="'+T.call(o,"Email")+'" /></div><div class="authorTextarea"><textarea placeholder="'+T.call(o,"Write a comment")+'"></textarea></div>'+(o.options.comments.requireAuthorInfo&&o.options.comments.useReCaptcha?'<div class="captchaContainer"><p class="captchaError">'+T.call(o,"Please solve the test correctly.")+'</p><div class="captcha"></div></div>':"")+'<div class="actions"><button class="cancel">'+T.call(o,"Cancel")+'</button><button class="post">'+T.call(o,"Post")+'</button></div></div><span class="closeComments">'+T.call(o,"Hide")+'</span><p class="loading">'+T.call(o,"Loading comments")+"</p></div>"),o.$commentsTrigger=e("> .actions.commentsTrigger",o.$root),o.$mainCommentsCount=e("> span",o.$commentsTrigger),o.$commentsModal=e("> .commentsModalWrapper",o.$root),o.$commentsMainWrapper=e("> .main",o.$commentsModal),o.$newCommentWrapper=e("> .newCommentWrapper",o.$commentsMainWrapper),o.$newCommentInput=e("> textarea",o.$newCommentWrapper),o.$newCommentButton=e("> button",o.$newCommentWrapper),o.$commentsTopBar=e("> .top",o.$commentsMainWrapper),o.$internalCommentsCount=e("> .comments",o.$commentsTopBar),o.$commentsLikes=e("> .likes",o.$commentsTopBar),o.$commentsSorting=e("> .sort",o.$commentsTopBar),o.$commentList=e("> ul",o.$commentsMainWrapper),o.$anonymCommentWrapper=e("> .anonymCommentWrapper",o.$commentsModal),o.$anonymCommenterNameInput=e("> .authorName > input",o.$anonymCommentWrapper),o.$anonymCommenterEmailInput=e("> .authorEmail > input",o.$anonymCommentWrapper),o.$anonymCommentInput=e("> .authorTextarea > textarea",o.$anonymCommentWrapper),o.$anonymCommentCancel=e("> .actions > .cancel",o.$anonymCommentWrapper),o.$anonymCommentPost=e("> .actions > .post",o.$anonymCommentWrapper),o.$newCommentCaptchaContainer=e("> .captchaContainer",o.$anonymCommentWrapper),o.commentSorting="asc",o.addingAjaxRequest=void 0,o.commentsOpened=!1,o.commentsAnimationTimeout,o.$commentsTrigger.on("click",function(){o.desktopVersion&&1==o.commentsOpened?o.closeComments():(o.updateItemComments(),o.desktopVersion?(o.commentsOpened=!0,clearTimeout(o.commentsAnimationTimeout),o.$root.addClass("animateComments moveComments"),o.commentsAnimationTimeout=setTimeout(function(){o.$root.removeClass("animateComments moveComments"),o.$root.width(o.$root.width()-o.$commentsModal.outerWidth(!0)),C.call(o)},200)):(o.$root.addClass("modalActive"),o.$modalOverlay.stop(!0).animate({opacity:1},{duration:200})))}),o.$commentsSorting.on("click",function(){"asc"==o.commentSorting?o.commentSorting="desc":o.commentSorting="asc",o.$commentsSorting.toggleClass("desc","desc"==o.commentSorting),k.call(o)}),o.$commentsModal.on("click","> span.closeComments",function(){o.closeComments()}),o.$newCommentInput.on("change keyup",function(){var e=o.$newCommentInput.val();o.$newCommentWrapper.toggleClass("filledIn",""!==e)}).on("focus",function(){o.options.comments.requireAuthorInfo&&(o.$anonymCommenterNameInput.trigger("focus").val("").parent().removeClass("error"),o.$anonymCommenterEmailInput.val("").parent().removeClass("error"),o.$anonymCommentInput.val("").parent().removeClass("error"),o.$newCommentCaptchaContainer.removeClass("error"),o.options.comments.useReCaptcha&&(s?grecaptcha.reset(s):s=grecaptcha.render(e("> .captcha",o.$newCommentCaptchaContainer)[0],{sitekey:o.options.googleReCaptchaSiteKey,size:"compact"})),o.$commentsModal.addClass("showAnonymWindow"))}),o.$anonymCommentCancel.on("click",function(){o.$commentsModal.removeClass("showAnonymWindow"),o.$anonymCommentWrapper.removeClass("addingAnonComment"),o.addingAjaxRequest&&(o.addingAjaxRequest.abort(),o.addingAjaxRequest=void 0)});var l=function(t,a,i,s,n,r){var m=o.currentItemIndex,l=o.items[m],c=o.comments[l.id],p=o.options.comments.requireAuthorInfo?s:o.$newCommentInput.val(),d={action:"add_comment"},h=!1;""===p||o.$newCommentWrapper.hasClass("addingComment")||(o.$newCommentCaptchaContainer.removeClass("error"),o.$newCommentInput.val(""),o.$newCommentWrapper.removeClass("filledIn").addClass("addingComment"),d.comment=p,o.options.comments.requireAuthorInfo&&(d.name=a,d.email=i),n&&(d.captcha=n),o.addingAjaxRequest=e.ajax({data:d,dataType:"json",type:"POST",url:l.comments.backend,timeout:3e4,cache:!1,error:function(){},success:function(e){null!=e.status&&("success"==e.status?(c.cache.comments.push({author:e.author.id,content:e.comment,raw:p,id:e.id,dateHtml:e.dateHtml}),c.count+=1,null==c.cache.authors[e.author.id]&&(c.cache.authors[e.author.id]={avatar:e.author.avatar,name:e.author.name,url:e.author.url})):"captcha_error"==e.status&&(o.$newCommentCaptchaContainer.addClass("error"),h=!0))},complete:function(){o.addingAjaxRequest=void 0,c.state.open&&m==o.currentItemIndex&&(r&&(o.$anonymCommentWrapper.removeClass("addingAnonComment"),o.$anonymCommentPost.text(T.call(o,"Post"))),o.$newCommentWrapper.removeClass("addingComment"),h||(r&&(o.$commentsModal.removeClass("showAnonymWindow"),o.$newCommentCaptchaContainer.removeClass("error")),k.call(o)))}}))};o.$anonymCommentPost.on("click",function(){var e=o.$anonymCommenterNameInput.val(),t=o.$anonymCommenterEmailInput.val(),a=o.$anonymCommentInput.val(),i=!1,n=void 0;o.$anonymCommenterNameInput.attr("placeholder",T.call(o,"Name")),o.$anonymCommenterEmailInput.attr("placeholder",T.call(o,"Email")),o.$anonymCommentInput.attr("placeholder",T.call(o,"Write a comment")),o.$anonymCommenterNameInput.parent().removeClass("error"),o.$anonymCommenterEmailInput.parent().removeClass("error"),o.$anonymCommentInput.parent().removeClass("error"),e||(o.$anonymCommenterNameInput.attr("placeholder",T.call(o,"Please specify your name")).parent().addClass("error"),i=!0),t&&m.test(t)||(o.$anonymCommenterEmailInput.attr("placeholder",T.call(o,"Please specify your email")).parent().addClass("error"),i=!0),a||(o.$anonymCommentInput.attr("placeholder",T.call(o,"Please write a comment")).parent().addClass("error"),i=!0),o.options.comments.useReCaptcha&&0==(n=grecaptcha.getResponse(s)).length&&(o.$newCommentCaptchaContainer.addClass("error"),i=!0),i||(o.$anonymCommentWrapper.addClass("addingAnonComment"),o.$anonymCommentPost.text(T.call(o,"Commenting")),l(0,e,t,a,n,!0))}),o.$newCommentButton.on("click",l)}o.options.like.permissions.liking&&(o.$root.append('<span class="actions likeTrigger"><span>0</span></span>'),o.$likeTrigger=e("> .actions.likeTrigger",o.$root),o.$mainLikeCount=e("> span",o.$likeTrigger),o.$likeTrigger.on("click",function(){if(!o.$root.hasClass("initializing")){var t=o.currentItemIndex,a=o.items[t],i=!a.likes.likedByUser,s={portalId:o.options.portalId,moduleId:o.options.moduleId,mediaId:a.id};a.likes.likedByUser=i,i?a.likes.numOfLikes+=1:a.likes.numOfLikes>0&&(a.likes.numOfLikes-=1),o.$mainLikeCount.text(a.likes.numOfLikes),o.$likeTrigger.toggleClass("liked",i),"number"==typeof a.journalId?(s.action="like",s.journalid=a.journalId,s.liked=i):(s.action="media_like",s.vote=i?1:-1),e.ajax({data:s,dataType:"json",type:"POST",url:o.options.websiteRoot+"DesktopModules/EasyDNNGallery/Services/SocialMediaBox.ashx",timeout:1e4,cache:!1,error:function(){},success:function(){},complete:function(){}})}})),o.$root.appendTo(o.$body),o.main={horizontalSpace:0,verticalSpace:0},e.each(o.items,function(t){var a=e("<div></div>");a.addClass("loading item_"+t).data("itemIndex",t),"image"==this.type?a.addClass("imageItem"):"video"==this.type?a.addClass("videoItem"):"audio"==this.type&&a.addClass("audioItem"),a.appendTo(o.$contentWrapper)}),C.call(o),o.$root.addClass("show"),setTimeout(function(){$.call(o)},200);var c,p=new Hammer(e("> .mobileOverlay",o.$root)[0]);return o.skipGestures=!1,p.on("swipeleft swiperight panleft panright panend tap",function(e){var a=-o.currentItemIndex*o.overlayWidth,i=e.deltaX;if("tap"==e.type)return clearTimeout(c),void(o.$root.hasClass("hideControls")?o.$root.removeClass("hideControls fadeOutControls"):(o.$root.addClass("fadeOutControls"),c=setTimeout(function(){o.$root.addClass("hideControls")},500)));if(!o.skipGestures&&o.initialItemLoaded)if(("swipeleft"==e.type||"swiperight"==e.type)&&t.length>1)"swipeleft"==e.type&&(o.currentItemIndex<o.items.length-1?y.call(o):0==o.currentItemIndex&&I.call(o));else{if("panend"==e.type){if(0==o.currentItemIndex&&i>=0||o.currentItemIndex==o.items.length-1&&i<0||Math.abs(i)<o.overlayWidth/2)return void o.$contentWrapper.removeClass(r).addClass(n).css({transform:"translate3d("+a+"px, 0, 0)"});o.skipGestures=!0;var s=-o.overlayWidth,m=1;return i>0&&(s=o.overlayWidth,m=-1),s=a+s,o.$contentWrapper.addClass(n).removeClass(r).css({transform:"translate3d("+s+"px, 0, 0)"}),void setTimeout(function(){o.skipGestures=!1,o.currentItemIndex+=m,$.call(o)},550)}(0==o.currentItemIndex&&i>=0||o.currentItemIndex==o.items.length-1&&i<0)&&((i=1-Math.abs(i)/o.overlayWidth)<.5?(i=Math.round(o.overlayWidth/4),e.deltaX<1&&(i=-i)):i=Math.round(i*e.deltaX)),o.$contentWrapper.removeClass(n).removeClass(r).css({transform:"translate3d("+(a+i)+"px, 0, 0)"})}}),x.call(o),o}}L.prototype={center:function(){var e,t,a={},o=!1,i=0,s=0,n=!1,r=!1;if(this.initialItemLoaded){switch((e=this.items[this.currentItemIndex]).type){case"image":(t=this.images[e.src].stats).isLoaded?(i=t.width,s=t.height):(i=400,s=400);break;case"video":i=e.width,s=e.height,n=!0;break;case"audio":i=460,s=36,r=!0}a=p.call(this,i,s,n,r),o=!0}o||(a.width=this.$mainWrapper.width(),a.height=this.$mainWrapper.height(),a.left=Math.floor((this.overlayWidth-(a.width+this.main.horizontalSpace))/2),a.top=Math.floor((this.overlayHeight-(a.height+this.main.verticalSpace))/2)),this.$mainWrapper.stop(!0).css(a)},showItem:function(){var t=this;t.$imagesWrapper.removeClass("imageNotLoaded"),t.$loadingOverlay.addClass("inProgress").stop(!0).fadeTo(0,1,function(){t.$loadingOverlay.css("display","")}),t.$audioVideo.html(""),e("> .viewWrapper > div",t.$mainWrapper).removeClass("activeElement"),t.$mainWrapper.removeClass("audioItem").removeClass("videoItem").removeClass("imageItem");var a=t.items[t.currentItemIndex];switch(a.type){case"image":(function(t){var a,o,i=this.images[t.src].stats;i.preloadFinished&&(this.$mainWrapper.addClass("imageItem"),e("> img",this.$imagesWrapper).removeClass("activeElement").filter(".smbLightImage_"+t.id).addClass("activeElement"),i.isLoaded?(a=i.width,o=i.height):(a=400,o=400,this.$imagesWrapper.addClass("imageNotLoaded")),this.$imagesWrapper.addClass("activeElement"),d.call(this,p.call(this,a,o)))}).call(t,a);break;case"video":h.call(t,t.currentItemIndex);break;case"audio":u.call(t,a);break;default:t.initialItemLoaded=!0}t.initialItemLoaded&&t.$root.removeClass("initializing")}},M.prototype={center:function(){var t=this,a=0;t.options.comments.permissions.show&&((a=e(">",t.$commentsModal).height()-t.$commentsTopBar.outerHeight(!0)-t.$newCommentWrapper.outerHeight(!0))<0&&(a=0),t.$commentList.css("height",a)),t.$contentWrapper.removeClass(n).removeClass(r).css({width:t.items.length*t.overlayWidth,transform:"translate3d(-"+t.currentItemIndex*t.overlayWidth+"px, 0, 0)"}),e(">",t.$contentWrapper).width(t.overlayWidth).each(function(){var a=e(this),o=a.data("itemIndex"),i=t.items[o];if(!(a.hasClass("loading")||"image"!=i.type&&o!=t.currentItemIndex))if("image"==i.type){var s=t.images[i.src].stats;e("> img",a).css(p.call(t,s.width,s.height,!1))}else"video"==i.type?e("> div",a).css(p.call(t,i.width,i.height,!0)):"audio"==i.type&&e("> div",a).css(p.call(t,460,36,!1,!0))})},showItem:function(){var t=this,a=e("> div.item_"+t.currentItemIndex,t.$contentWrapper),i=t.currentItemIndex,s=t.items[i],m=function(){i>0&&l.call(t,g.call(t,i-1)),i<t.items.length-1&&l.call(t,g.call(t,i+1))};switch(t.$contentWrapper.removeClass(n).removeClass(r).css({transform:"translate3d(-"+i*t.overlayWidth+"px, 0, 0)"}),t.options.comments.permissions.show&&(t.$newCommentInput.val(""),t.$newCommentWrapper.removeClass("filledIn"),t.comments[s.id]||(t.comments[s.id]={state:{open:!1,commentsRequest:o},count:s.comments.count,cache:{authors:{},comments:[]}}),t.$mainCommentsCount.text(t.comments[s.id].count),t.desktopVersion&&(e.each(t.comments,function(){this.state.open=!1}),t.updateItemComments())),t.options.like.permissions.liking&&(t.$likeTrigger.toggleClass("liked",s.likes.likedByUser),t.$mainLikeCount.text(s.likes.numOfLikes)),s.type){case"image":if(a.data("initialized"))return;l.call(t,i,function(){t.currentItemIndex==i&&(t.initialItemLoaded=!0,m())}),a.data("initialized",!0);break;case"video":h.call(t,t.currentItemIndex);break;case"audio":u.call(t,s);break;default:t.initialItemLoaded=!0}"image"!=s.type&&m(),t.$root.removeClass("initializing")},updateItemComments:function(){var t=this,a=t.currentItemIndex,n=t.items[a],r=t.comments[n.id];r.state.open||t.$root.hasClass("initializing")||(r.state.open=!0,r.state.commentsRequest==o?(r.state.commentsRequest=i,t.$commentsModal.addClass("loading"),e.ajax({data:{action:"list_comments"},dataType:"json",type:"GET",url:n.comments.backend,timeout:15e3,cache:!1,error:function(){r.state.commentsRequest=o},success:function(e){r.cache=e,r.count=e.comments.length,r.state.commentsRequest=s},complete:function(){r.state.open&&a==t.currentItemIndex&&(t.$commentsModal.removeClass("loading"),k.call(t))}})):(k.call(t),t.$commentsModal.removeClass("loading")),t.$internalCommentsCount.text(r.count),t.$commentsLikes.text(n.likes.numOfLikes).toggleClass("liked",n.likes.likedByUser))},closeComments:function(){var e=this,t=e.items[e.currentItemIndex];e.comments[t.id].state.open=!1,e.desktopVersion?(clearTimeout(e.commentsAnimationTimeout),e.$root.addClass("moveComments"),e.$root.css("width",""),C.call(e),e.$root.addClass("animateComments").removeClass("moveComments"),e.commentsAnimationTimeout=setTimeout(function(){e.$root.removeClass("animateComments")},300)):(e.$root.removeClass("modalActive"),e.$modalOverlay.stop(!0).animate({opacity:0},{duration:200})),e.$commentsModal.removeClass("showAnonymWindow"),e.$anonymCommentWrapper.removeClass("addingAnonComment"),e.commentsOpened=!1}},t.SmbLight_1=function(e,t){return this instanceof SmbLight_1?t.mobile?new M(e,t):new L(e,t):new SmbLight_1(e,t)}}(eds3_5_jq,window);
;;;/*! Hammer.JS - v2.0.4 - 2014-09-28
 * http://hammerjs.github.io/
 *
 * Copyright (c) 2014 Jorik Tangelder;
 * Licensed under the MIT license */
!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function i(a,b){return h(a,b,!0)}function j(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&h(d,c)}function k(a,b){return function(){return a.apply(b,arguments)}}function l(a,b){return typeof a==kb?a.apply(b?b[0]||d:d,b):a}function m(a,b){return a===d?b:a}function n(a,b,c){g(r(b),function(b){a.addEventListener(b,c,!1)})}function o(a,b,c){g(r(b),function(b){a.removeEventListener(b,c,!1)})}function p(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function q(a,b){return a.indexOf(b)>-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function t(a){return Array.prototype.slice.call(a,0)}function u(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];s(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ib.length;){if(c=ib[g],e=c?c+f:b,e in a)return e;g++}return d}function w(){return ob++}function x(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function y(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){l(a.options.enable,[a])&&c.handler(b)},this.init()}function z(a){var b,c=a.options.inputClass;return new(b=c?c:rb?N:sb?Q:qb?S:M)(a,A)}function A(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&yb&&d-e===0,g=b&(Ab|Bb)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,B(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function B(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=E(b)),e>1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:lb(a.pointers[c].clientX),clientY:lb(a.pointers[c].clientY)},c++;return{timeStamp:nb(),pointers:b,center:F(b),deltaX:a.deltaX,deltaY:a.deltaY}}function F(a){var b=a.length;if(1===b)return{x:lb(a[0].clientX),y:lb(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ab|Bb)&&delete d[g[e].identifier],e++;return h.length?[u(f.concat(h),"identifier",!0),h]:void 0}function S(){y.apply(this,arguments);var a=k(this.handler,this);this.touch=new Q(this.manager,a),this.mouse=new M(this.manager,a)}function T(a,b){this.manager=a,this.set(b)}function U(a){if(q(a,bc))return bc;var b=q(a,cc),c=q(a,dc);return b&&c?cc+" "+dc:b||c?b?cc:dc:q(a,ac)?ac:_b}function V(a){this.id=w(),this.manager=null,this.options=i(a||{},this.defaults),this.options.enable=m(this.options.enable,!0),this.state=ec,this.simultaneous={},this.requireFail=[]}function W(a){return a&jc?"cancel":a&hc?"end":a&gc?"move":a&fc?"start":""}function X(a){return a==Gb?"down":a==Fb?"up":a==Db?"left":a==Eb?"right":""}function Y(a,b){var c=b.manager;return c?c.get(a):a}function Z(){V.apply(this,arguments)}function $(){Z.apply(this,arguments),this.pX=null,this.pY=null}function _(){Z.apply(this,arguments)}function ab(){V.apply(this,arguments),this._timer=null,this._input=null}function bb(){Z.apply(this,arguments)}function cb(){Z.apply(this,arguments)}function db(){V.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function eb(a,b){return b=b||{},b.recognizers=m(b.recognizers,eb.defaults.preset),new fb(a,b)}function fb(a,b){b=b||{},this.options=i(b,eb.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=z(this),this.touchAction=new T(this,this.options.touchAction),gb(this,!0),g(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function gb(a,b){var c=a.element;g(a.options.cssProps,function(a,d){c.style[v(c.style,d)]=b?a:""})}function hb(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var ib=["","webkit","moz","MS","ms","o"],jb=b.createElement("div"),kb="function",lb=Math.round,mb=Math.abs,nb=Date.now,ob=1,pb=/mobile|tablet|ip(ad|hone|od)|android/i,qb="ontouchstart"in a,rb=v(a,"PointerEvent")!==d,sb=qb&&pb.test(navigator.userAgent),tb="touch",ub="pen",vb="mouse",wb="kinect",xb=25,yb=1,zb=2,Ab=4,Bb=8,Cb=1,Db=2,Eb=4,Fb=8,Gb=16,Hb=Db|Eb,Ib=Fb|Gb,Jb=Hb|Ib,Kb=["x","y"],Lb=["clientX","clientY"];y.prototype={handler:function(){},init:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(x(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&o(this.element,this.evEl,this.domHandler),this.evTarget&&o(this.target,this.evTarget,this.domHandler),this.evWin&&o(x(this.element),this.evWin,this.domHandler)}};var Mb={mousedown:yb,mousemove:zb,mouseup:Ab},Nb="mousedown",Ob="mousemove mouseup";j(M,y,{handler:function(a){var b=Mb[a.type];b&yb&&0===a.button&&(this.pressed=!0),b&zb&&1!==a.which&&(b=Ab),this.pressed&&this.allow&&(b&Ab&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:vb,srcEvent:a}))}});var Pb={pointerdown:yb,pointermove:zb,pointerup:Ab,pointercancel:Bb,pointerout:Bb},Qb={2:tb,3:ub,4:vb,5:wb},Rb="pointerdown",Sb="pointermove pointerup pointercancel";a.MSPointerEvent&&(Rb="MSPointerDown",Sb="MSPointerMove MSPointerUp MSPointerCancel"),j(N,y,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Pb[d],f=Qb[a.pointerType]||a.pointerType,g=f==tb,h=s(b,a.pointerId,"pointerId");e&yb&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(kc|ec)))return!1;a++}return!0},recognize:function(a){var b=h({},a);return l(this.options.enable,[this,b])?(this.state&(ic|jc|kc)&&(this.state=ec),this.state=this.process(b),void(this.state&(fc|gc|hc|jc)&&this.tryEmit(b))):(this.reset(),void(this.state=kc))},process:function(){},getTouchAction:function(){},reset:function(){}},j(Z,V,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(fc|gc),e=this.attrTest(a);return d&&(c&Bb||!e)?b|jc:d||e?c&Ab?b|hc:b&fc?b|gc:fc:kc}}),j($,Z,{defaults:{event:"pan",threshold:10,pointers:1,direction:Jb},getTouchAction:function(){var a=this.options.direction,b=[];return a&Hb&&b.push(dc),a&Ib&&b.push(cc),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Hb?(e=0===f?Cb:0>f?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&yb&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ab)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||I(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=ic,this.tryEmit()},b.interval,this),fc):ic}return kc},failTimeout:function(){return this._timer=e(function(){this.state=kc},this.options.interval,this),kc},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ic&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),eb.VERSION="2.0.4",eb.defaults={domEvents:!1,touchAction:$b,enable:!0,inputTarget:null,inputClass:null,preset:[[bb,{enable:!1}],[_,{enable:!1},["rotate"]],[cb,{direction:Hb}],[$,{direction:Hb},["swipe"]],[db],[db,{event:"doubletap",taps:2},["tap"]],[ab]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var lc=1,mc=2;fb.prototype={set:function(a){return h(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?mc:lc},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&ic)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===mc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(fc|gc|hc)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof V)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(s(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return g(r(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return g(r(a),function(a){b?c[a].splice(s(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&hb(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&gb(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},h(eb,{INPUT_START:yb,INPUT_MOVE:zb,INPUT_END:Ab,INPUT_CANCEL:Bb,STATE_POSSIBLE:ec,STATE_BEGAN:fc,STATE_CHANGED:gc,STATE_ENDED:hc,STATE_RECOGNIZED:ic,STATE_CANCELLED:jc,STATE_FAILED:kc,DIRECTION_NONE:Cb,DIRECTION_LEFT:Db,DIRECTION_RIGHT:Eb,DIRECTION_UP:Fb,DIRECTION_DOWN:Gb,DIRECTION_HORIZONTAL:Hb,DIRECTION_VERTICAL:Ib,DIRECTION_ALL:Jb,Manager:fb,Input:y,TouchAction:T,TouchInput:Q,MouseInput:M,PointerEventInput:N,TouchMouseInput:S,SingleTouchInput:O,Recognizer:V,AttrRecognizer:Z,Tap:db,Pan:$,Swipe:cb,Pinch:_,Rotate:bb,Press:ab,on:n,off:o,each:g,merge:i,extend:h,inherit:j,bindFn:k,prefixed:v}),typeof define==kb&&define.amd?define(function(){return eb}):"undefined"!=typeof module&&module.exports?module.exports=eb:a[c]=eb}(window,document,"Hammer");
//# sourceMappingURL=hammer.min.map
;;;(function($){var defaultOptions={instanceGlobal:'EasyDnnSolutions1_1_instance',google:{maps:{api:{key:'',libraries:[]}}}},$window=$(window),getExplicitStyleValue=function($element,styleProperty){var propertyValue='',styleAttribute=$element.attr('style'),zIndexStartPosition,semicolonPosition;if(typeof styleAttribute!='string')
return propertyValue;zIndexStartPosition=styleAttribute.indexOf(' '+styleProperty+':');if(zIndexStartPosition==-1){zIndexStartPosition=styleAttribute.indexOf(';'+styleProperty+':');if(zIndexStartPosition==-1){zIndexStartPosition=styleAttribute.indexOf(styleProperty+':');if(zIndexStartPosition!=0)
return propertyValue;}else
zIndexStartPosition++;}else
zIndexStartPosition++;propertyValue=styleAttribute.substr(zIndexStartPosition+styleProperty.length+1);semicolonPosition=propertyValue.indexOf(';');if(semicolonPosition==-1)
return propertyValue.trim();propertyValue=propertyValue.substr(0,semicolonPosition).trim();return propertyValue;};GoogleHelper=function(parent){var self=this;self.parent=parent;self.maps={api:{loaded:(typeof window.google=='object'&&typeof window.google.maps=='object'),callbacks:[]}}
self.options=parent.options.google;self.public={maps:{api:{callback:function(){var i=0,l=self.maps.api.callbacks.length;self.maps.api.loaded=true;for(;i<l;i++)
self.maps.api.callbacks[i]();},load:function(){var tagId='eds_googleMapsApi',gMapsKey=self.options.maps.api.key,script,src='https://maps.googleapis.com/maps/api/js?v=3.39&callback='+self.parent.options.instanceGlobal+'.google.maps.api.callback';if($('script#'+tagId,self.parent.$head).length==0){if(typeof gMapsKey!='string')
gMapsKey='';if(gMapsKey!='')
gMapsKey='&key='+gMapsKey;script=document.createElement('script');script.type='text/javascript';script.id=tagId;if(self.options.maps.api.libraries)
src+='&libraries='+self.options.maps.api.libraries.join(',');src+=gMapsKey;script.src=src;self.parent.$head[0].appendChild(script);}
return self.parent;},onLoad:function(toExecute){if(self.maps.api.loaded)
toExecute();else{self.maps.api.callbacks.push(toExecute)
self.public.maps.api.load();}
return self.parent;}}}};return self.public;}
window.EasyDnnSolutions1_1=function(instanceOptions){var self=this;self.options=$.extend(true,{},defaultOptions,instanceOptions);self.google=new GoogleHelper(this);self.$head=$('html > head');$(function(){$('body').on('click','.eds_openModal',function(){var $clicked=$(this),$modalTarget=$('.eds_modalWrapper').filter(function(){return $clicked.data('targetId')==this.id||$(this).hasClass($clicked.data('targetClass'));}),$dnnModuleElements=$modalTarget.parents('.DnnModule'),$modalContent,$modalResizeWrapper,$modalContentTitle,initialHeight,resizeContent=function(){var windowHeight=$window.height(),ContentHDiff=Math.round($modalContent.outerHeight(true)-$modalContent.height()),resizeWrapperHDiff=Math.round($modalResizeWrapper.outerHeight(true)-$modalResizeWrapper.height()),titleHeight=$modalContentTitle.outerHeight(true),maxHeight=windowHeight-ContentHDiff-resizeWrapperHDiff-titleHeight;if(maxHeight<initialHeight)
$modalResizeWrapper.height(maxHeight);else
$modalResizeWrapper.css('height','');};$dnnModuleElements.each(function(){var $this=$(this);$this.data('previousZIndex',getExplicitStyleValue($this,'z-index')).css('z-index',99999);});$modalTarget.addClass("eds_modalVisible");$("> .eds_modalContent",$modalTarget).addClass("eds_fadeInDown");if($modalTarget.hasClass('eds_resizable')){$modalContent=$('>',$modalTarget);$modalContentTitle=$('> h3',$modalContent);$modalResizeWrapper=$('> div',$modalContent);initialHeight=$modalResizeWrapper.height();resizeContent()
$window.on('resize.eds_modalWrapper',function(){resizeContent();});}}).on('click','.eds_modalClose',function(){var $clicked=$(this),$modalTarget=$('.eds_modalWrapper'),$dnnModuleElements=$modalTarget.parents('.DnnModule');$dnnModuleElements.each(function(){var $this=$(this);$this.css('z-index',$this.data('previousZIndex'));});$modalTarget.filter(function(){return $clicked.data('targetId')==this.id||$(this).hasClass($clicked.data('targetClass'));}).removeClass("eds_modalVisible").css('z-index','');});});}
var initOptions=null;if($('#eds_js1_1').length>0){initOptions=$('#eds_js1_1').data('initJson')}
if($('meta[name="eds__GmapsInitData"]').length>0){initOptions=JSON.parse($('meta[name="eds__GmapsInitData"]').attr("content"));}
if(window[initOptions.instanceGlobal]==undefined&&initOptions!=null)
window[initOptions.instanceGlobal]=new EasyDnnSolutions1_1(initOptions);})(eds3_5_jq);
;;;