/* 
	The following information must not be removed:
	Awesome Box v2
	Written by: Paul Armstrong, Paul Armstrong Designs
	Site: http://paularmstrongdesigns.com
	Idea and some functions from "LightBox" http://www.huddletogether.com
	Example & Documentation: http://paularmstrongdesigns.com/awesome/box/
	Last Updated: Friday, February 2, 2007 at 12:31:10

	This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License
	http://creativecommons.org/licenses/by-sa/2.5/
	
	Required Yahoo! UI Files:
		* yahoo.js
		* dom.js
		* event.js
		* [ or: yahoo-dom-event.js ]
		* animation.js
		* [ or: animation-min.js ]
*/

var aLoadImgSrc = _uc_absurl+'template/awesomebox/aBox-loading.gif'; // where is the loading image? (recommend absolute)
var aButtonImgSrc = _uc_absurl+'template/awesomebox/aBox-buttons-'+_uc_lang+'.gif';
var siteURL = _uc_url; // requires trailing / (after .com)

var aImgTypes = new Array('jpg', 'gif', 'png', 'bmp', 'jpeg', 'JPG', 'GIF', 'JPEG'); // types of images to place in Awesome Box

/*
 *  ***************************************
 *  EDIT BEYOND THIS POINT AT YOUR OWN RISK
 *  ***************************************
 */

var aClient = new Object();
/* 
 *  aClient.allImgs()
 *    Find all links going to an image with an aImgTypes and return it as an array.
 */
aClient.allImgs = function() {
	var links = document.getElementsByTagName('a');
	var photos = new Array();
	for(i = 0; i < links.length; i++) {
		for(j = 0; j < aImgTypes.length; j++) {
			if(links[i].href.indexOf(aImgTypes[j]) != -1) {
				photos.push(links[i])
			}
		}
	}
	return photos;
}

/* 
 *  aClient.pageWidth() and aClient.pageHeight()
 *    Returns the width and height of the content in the document.
 */
aClient.pageWidth = function() {
	var xScroll;
	if(window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
	} else if(document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
	}
	if(xScroll < yDom.getViewportWidth()) {
		pageWidth = yDom.getViewportWidth();
	} else {
		pageWidth = xScroll;
	}
	return pageWidth;
};
aClient.pageHeight = function() {
	var yScroll;
	if(window.innerHeight && window.scrollMaxY) {	
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if(document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		yScroll = document.body.offsetHeight;
	}
	if(yScroll <= yDom.getViewportHeight()) {
		pageHeight = yDom.getViewportHeight();
	} else { 
		pageHeight = yScroll;
	}
	return pageHeight;
};

/* 
 *  aClient.xScroll(), aClient.yScroll()
 *    Returns the position of the X and Y scrollbars.
 */
aClient.xScroll = function() {
	var xScroll = window.scrollX || document.documentElement.scrollLeft;
	return xScroll;
}	
aClient.yScroll = function() {
	var yScroll = window.scrollY || document.documentElement.scrollTop;
	return yScroll;
}	

/* 
 *  array.inArray(value)
 *    Returns the key of the array that value is assigned to if true, null if false.
 */
Array.prototype.inArray = function(value) {
	for (i=0; i < this.length; i++) { if(this[i] == value) { return i; } }
	return null;
}

/*
 *  Helper Variables
 */
var yDom = YAHOO.util.Dom;
var yElem = YAHOO.util.Event;
var yAnim = YAHOO.util.Anim;
var yMot = YAHOO.util.Motion;
var yScroll = YAHOO.util.Scroll;
var yEase = YAHOO.util.Easing;
var yGet = yDom.get;

/*
 *  AnimMgr
 *    Sets the default frames per second higher so Safari will display animations
 *    at the correct speed. Degrades for slower browsers.
 */
YAHOO.util.AnimMgr.fps = 500;

YAHOO.widget.aEffect = function(el) { this.oEl = YAHOO.util.Dom.get(el); };

/*
 *  YAHOO.widget.aEffect.aShowLoad()
 *    Animation widget for transition period on Awesome Box initialize or between images.
 */
YAHOO.widget.aEffect.prototype.aShowLoad = function() {
	var showLoad = new yAnim('aLoadImg', {opacity: {to: 1}}, 0.2);
	showLoad.onStart.subscribe(function() {
		yDom.setStyle('aLoadImg', 'display', 'block');
		yDom.setXY('aLoadImg', [
			(yDom.getViewportWidth()/2)-16+aClient.xScroll(), 
			(yDom.getViewportHeight()/2)-16+aClient.yScroll()
		]);
		if(yDom.hasClass('aBoxMeta', 'aOpen')) {
			var hideMeta = new yAnim('aBoxMeta', {opacity: {to: 0}, height: {to: 0}}, 0.2);
			hideMeta.onStart.subscribe(function() {
				yDom.setStyle('aImg', 'opacity', '0');
				yDom.setStyle('aImg', 'visibility', 'hidden');
			});
			hideMeta.animate();
		}
	});
	showLoad.animate();
};

/*
 *  YAHOO.widget.aEffect.aShowOverlay
 *    Fades in #aOverlay and #aBox.
 *    Initializes YAHOO.widget.aEffect.aShowLoad()
 */
YAHOO.widget.aEffect.prototype.aShowOverlay = function() {
	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		yDom.setStyle(selects[i], 'visibility', 'hidden');
	}

	var fadeOverlay = new yAnim('aOverlay', {opacity: {to: 0.85}}, 0.3);
	fadeOverlay.onStart.subscribe(function() {
		yDom.setStyle('aOverlay', 'display', 'block');
		yDom.setStyle('aOverlay', 'height', aClient.pageHeight()+'px');
	});
	var showBox = new yAnim('aBox', {opacity: {to: 1}}, 0.3);
	showBox.onStart.subscribe(function() {
		yDom.setStyle('aBox', 'display', 'block');
		var showLoad = new YAHOO.widget.aEffect();
		showLoad.aShowLoad();
	});
	showBox.animate();
	fadeOverlay.animate();
};

/*
 *  YAHOO.widget.aEffect.aResizeBox()
 *    Initialized after new image is completed loading. Resizes and moves #aBox, times out
 *    and displays #aBoxMeta information
 */
YAHOO.widget.aEffect.prototype.aResizeBox = function(aPreload) {
	var imgScale = YAHOO.awesomebox.scaleImage(aPreload);

	var moveBox = new yMot('aBox', {
		width: {to: (imgScale[0]+20)},
		height: {to: (imgScale[1]+20)},
		points: {to: [
			(yDom.getViewportWidth()/2)-(imgScale[0]/2)+aClient.xScroll()-10,
			(yDom.getViewportHeight()/2)-(imgScale[1]/2)+aClient.yScroll()-10
			]
		}
	}, 0.3);
	moveBox.onStart.subscribe(function() {
		yDom.setStyle('aBox', 'display', 'block');
		
		var hideLoad = new yAnim('aLoadImg', {opacity: {to: 0}}, 0.3);
		var sizeImage = new yAnim('aImg', {width: {to: imgScale[0]}, height: {to: imgScale[1]}}, 0.3);
	
		hideLoad.onComplete.subscribe(function() { yDom.setStyle('aLoadImg', 'display', 'none'); });
		hideLoad.animate();
		sizeImage.animate();
	});
	moveBox.onComplete.subscribe(function() {
		yDom.setStyle('aBox', 'height', imgScale[1]+70+'px');
		yDom.setStyle('aBoxMeta', 'width', (imgScale[0]+20)+'px');
		yDom.addClass('aBoxMeta', 'aOpen');
		yGet('aImg').setAttribute('width', imgScale[0]);
		yGet('aImg').setAttribute('height', imgScale[1]);
		yDom.setStyle('aImg', 'visibility', 'visible');
	
		var fadeImg = new yAnim('aImg', {opacity: {from: 0, to: 1}}, 0.3);

		fadeImg.onComplete.subscribe(function() {
			var showMeta = new yAnim('aBoxMeta', {opacity: {from: 0, to: 1}, height: {to: 40}}, 0.2);
			showMeta.animate();
		});
		fadeImg.animate();
	});
	if(yDom.hasClass('aBoxMeta', 'aOpen')) {
		setTimeout(function() {
			yGet('aImg').setAttribute('src', aPreload.src);
			moveBox.animate();
		}, 300);
	} else {
		yGet('aImg').setAttribute('src', aPreload.src);
		moveBox.animate();
	}
};

/*
 *  YAHOO.widget.aEffect.aClose
 *    Closes #aBox and #aOverlay. Invoked via pressing 'x', clicking the 'X' image or #aOverlay
 */
YAHOO.widget.aEffect.prototype.aClose = function() {
	var that = yGet('aImg');
	var hideMeta = new yAnim('aBoxMeta', {height: {to: 0}, opacity: {to: 0}}, 0.2);
	var fadeBox = new yMot('aBox', {opacity: {to: 0}}, 0.3);
	fadeBox.onComplete.subscribe(function() {
		var hideOverlay = new yAnim('aOverlay', {opacity: {to: 0}}, 0.3);
		hideOverlay.onStart.subscribe(function() {
			selects = document.getElementsByTagName("select");
			for (i = 0; i != selects.length; i++) {
				yDom.setStyle(selects[i], 'visibility', 'visible');
			}
			yDom.removeClass('aBoxMeta', 'aOpen');
			yDom.setStyle('aBox', 'display', 'none');
			yDom.setStyle('aImg', 'opacity', '0');
			yDom.setStyle('aImg', 'visibility', 'hidden');
			yDom.setStyle('aOverlay', 'display', 'none');
			yDom.setStyle('aOverlay', 'height', '0px');
			yDom.setStyle('aLoadImg', 'display', 'none');
		});
		hideOverlay.animate();
	});
	hideMeta.animate();
	fadeBox.animate();
	yElem.removeListener('aNextButton', 'click');
	yElem.removeListener('aPrevButton', 'click');
	yElem.removeListener(document, 'keypress');
};

/*
 * YAHOO.widget.aEffect.aAwesome
 *   This is awesome. Pay no attention to it.
 */
YAHOO.widget.aEffect.prototype.aAwesome = function() {
if(!yGet('aAwesome')){var aBody=document.getElementsByTagName("body").item(0);var aAwesome=document.createElement('a');yGet(aAwesome).setAttribute('id','aAwesome');yGet(aAwesome).setAttribute('href','http://paularmstrongdesigns.com/#awesomebox');
yDom.setStyle(aAwesome,'background',"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAwBQTFRFUmuqGyQ5N0hxBwkOZobURFmNWXS4X33GKTZVFBsqDhIcv7+/PVB/ICAgIi1HYGBg57XREBAQ7+/vMD9j887ggICAS2KbQEBA6brUn5+fAgUI7MDYMDAw5rPQ6rzVI0R36LfSBQkQ8cve7cLZ6LjT57bSDhsw5bLP8MjcID9v5bHP677W8crd8szf673W7L/Xz8/P5LDOBw4Y8sze7MHYr6+vCRIg6rvV88/g7sTaHDZf7cHY8s3f7MDX78bbEyRA9NDhHjtn5rTQ8cnd677X39/f6bnTDBcoSWyxFSlHDw0O7cPZGTJX78fc7sPZ5rTR9dLiW33JUnS9cHBwPF6eFy1P6bnU7sXa5K7N467N8Mnd9dPj8cre9NHh78Xb5K/NQFqR57bRLlGL5bDO883fZIbWN1qYOzA28Mjd5K/O8Mfcj4+P67/XUFBQ9dHiPDI3OSwzV3nDHhgb8sveEiA29M/h9NHiHRgbQGOk463M88/hYILP6LnT7sPa6rvU7sXbroqePjU5LCQpaYvc5rLQ9tXk9tTjJyUlHBYa6r3W6LfT1aPAHxsd99bkTEFGjm2AHxoctZinl36KlXuJnXqO3rXLwZ2wvJWrrYidEA4OWUhRdFtpyZ22lXyJgGFz267HHhocRzdALCInPTM4yK65qI+b3bPKzqe8VHS7lHiHV0ZQdmFss5SlooOUdl9r1qTBOSsz1aK/SWKddm5uuIym58fVWU1UDQwMKyAmTWutSTpDn32QTnC3Rl6ValtiPjY6PTU5VkRODgsNyp63SDlBd2FsnnuPRWeq9dPioYGSSTpCsJCi5cPTLScqtpqnhGt5wJyvtJalpoyZSz9F2LvIV0VPk3aG0cPDKz9mspGiwZ6waWJiIjpk78fb2avFKkyFOUx5VkNOW01UvZasLCQoOi41c1lo2KrEDwwNclZmZ1NeW1VVtpuoqpSdDwwOt6ur1rfFTkZJaVhh9tTkKyEnXE9VPTQ4spGjKyInj2+Byp+3JUh/bY/i////AAAAAAAASn+ycwAAAQB0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AFP3ByUAAAfcSURBVHjavJp3fBzFFcdn2+3uVd+d784nnZAV27Jk2llYFDfZgLGR5SqbYIxjqg0Y44Lp3aa3UFMoCSTUhAQCKUAaLYXee++dhF5u9pmZ2dlykiXtrDjeH/7DupvvZ97vvTdv3hzaKGJAra2O/ivyNSRGaGruapwqyggOIQvXNU+tVCqNTaKMoBC6iYUVZuuEGQEhZBe72ojKeKgRhIjdyhmVNlBEGYEgAM2NDqMDokYtIIThICqtdZCXagAB2NZlVKaDhGsAIXq4viLOAh1/95qQUJrqMkgayhhDDSAdnrPawMRY/c4hxFkeY1dQdIxRCEi/XyHOGu+PLA1jnA8BkfpLYIDp3ka2hSxhYDkEBKty3+EC0OpzlkEZOBkGgnHEhF6HBjcvRbpIhjCLhoNg3dkL9DRXkal1psoYOoSEYA18BDMbR9S0rNnkMBrrJJsRRhIOIVnMzcjzxZjd5jDaDP4/ESU8xGCEaNxPoDbfhjQ7DE2B8JA4RWi4t615mZYs/hc1CWEYDgRtGkFsw4xlC+wP6bISjuFAdFBxv6bmk7ZoG8NDMET6h8SjoRE+CMIDmBb9HiCk/oSlCEBY/RmsJkgmpvWvTXYwIRwBEp83rV69GkAxULWTzERCcuNbUwaTjHe9+4dFuy8du+9Fr1alpWomYpbVnjbwIOoKh0RP/+NRi3Y/cOyYMaMbLruTYPJ8TSmRsYiV0/IgKIhv5BdHLVpKGKNHNzTMGfLNm8ADIQIxi1lOwT5KGIgGt561aOlYxthxzpCfXfqkA5ET5RKki5Y1zRd+wq0E+apuwOlnUTnGjD65YcchQ/6aLq5wIYUCTfSyZUHel/6ilyApSjroHxM5CKOBMkY9WLZiLqTEqkmOQPwFVPCcR0gl27/yRiY5kWPvUT8lzol5mnBIe1W2qmKyIOb4wmdcjr1HDT8x5oNgu/aWrYJSVabFmi+6VrLbKn3N5Bg1fPjI11MkmMDxjmpCemUskwK5OvUlUYi5wiq9ZTPOHLnLsN+kYjHwFiVlMQFg9KgvushWKATIov+eQxkjCWPYdvcecYQPglVNlnuXT0MUUkjD3VSOkcfuRhibnbHV5m9wCEJ6XxVZYCs0T+D+P9/D5Nhlt2HHb7fZVpvvvPVyG0KLbjS/aYokBEHgykG2wRiTLoEkOwDef/p/H/dxMmuCkLddOSjj4K3rx/3W7nxl+EtvzR2pgvuLQb56ySfHwZPqx/3kX7y9VlHfJ2ZSDAK/OtGTY1L9xcupFEzdZBSUZB/dUhyEhIdE4r5fOnLUT1hfJEUX6Drmac/fcprSR4AFTxUWwikrk7rdZtSPmzCCniEl4C2yGeeM3tGsCEHIopnEU7bkE0bMXLvCslJ28YrwyNIk1pDLaqggdiBW93vMVSNGzN7hBnLkFv1VNx+FVDEW606A4g9nWQQikePCWvkwY8ycvcMPf3T5ysw0X13JQmoaO4NJnfRT4kKQRC5XWnsNc9VxhDF51qOrCnY2MmHS7ZZjKTouED6GES8eax/hjBMmT57VcsBOW3wCzj7SZcuzgu+EFIJo7/z+dyQDqRyE8eJBlPGDx/ihjqDdxyCxHQ0HicC1rhyTZx3UsgdhbLNlJ7+2F6wqS3mlTAiClevHPfvlczajpWWPLfYkjImvsXuRWr0R0kx6ESEGMZavJ7J8dCGVo2Unypi439APIM4W8tbPpAqpsuVFhBiEfLpUjOXgBluOQ7ecOHTo9od1Uu/HS35PAaSnFaRwEN7xdj/O5aCMB75gzYTskyTBuiMPEheDIJb0uVVcDsKYci6k0mQ5LdEDUvQgshgEJ+lWSqsYY7+h2x89ZQmkMzlSWhBkqt2VSUte7RKDqNFSJgYXUDkI47ApSw45L2Gx9ZSiT3golctedAlVYfs+UEo/7rhqyuFz534ORVIlNWwk+sqTCIhC6KXzfM5Ycvjc/y7+Uyekcuko1pVcdZqI6+5BsJqFXz/E5Dhk7uLFp55yVSfA2T+XSVfiOcyKpb0jIPhV2N8ooCRc8Y+r/08Yp356yjlPfHjuP8+mRdeAHBefhIJXHwUaVSQpZtatRno8SW6EnXecdBLZhiJlNd2+8Sa6Y7FYeyoNSh4LB7DdrUjgb0hUZFvVNduerFQdv9HgsxZkSygNOIxAPRsJgSkI4gdskKlH70Y1IAXx65mBa0hxZpBSGAjtywQgeQi88JoX1rnz0IBDYncGWb3SMWtmzPjbMZtiHFmptLYpstBd2ymQPsiG+Qv4OHifBTPmz5s3b39fkD1jj3CBz6I1EQj2QeYduU+lpy0juOv+bkSdwXoz2FN1XQSiV7tr//n/Webthmwlohlm1RNBM08tUU10lJdlyTFDfmUvYjejuJyUwBnXem8E0+1zJdDB5UIGsp4Pgo1N7N6SFYDEIehoGaDLeQROBj1UkNO4B3+Wb3IfNlHAtgg5B5DA23+H86ZiBlSez/pFxjHuQ1cHPcHMwBBZaHzl014NVL7sm6HYtA+A/wJgIciBch6FGY9CHXcYCWM9EEQ3xKfJjsMWghFEFGSGmb67DmsCPUA6onDvCM4DehdIARpJtDGcQVMjfxBGZu0g/Ol5PEjxmkHcxG+GgctXaAihsJ/ktELUrB3EEX8d1BJCcrKL1ckBk2AwEJ4uHbWF0BhrpRlZUwj9uVTz+IUDbWWQEPenAv1+5lsBBgD0KVsy7Bzn5gAAAABJRU5ErkJggg==')");
yDom.setStyle(aAwesome,'display','block');yDom.setStyle(aAwesome,'width','100px');yDom.setStyle(aAwesome,'height','100px');yDom.setStyle(aAwesome,'position','absolute');yDom.setStyle(aAwesome,'z-index','999');aBody.appendChild(aAwesome);
var aMove=new yMot('aAwesome',{points:{from:[-100,((yDom.getViewportHeight()/2)+aClient.yScroll()-50)],to:[0,((yDom.getViewportHeight()/2)+aClient.yScroll()-50)]}},0.1);aMove.animate();setTimeout(function(){var aMove=new yMot('aAwesome',{points:{to:[-100,((yDom.getViewportHeight()/2)+aClient.yScroll()-50)] }},0.1);aMove.onComplete.subscribe(function(){aBody.removeChild(aAwesome);});aMove.animate();},2000);}
};

/*
 *  YAHOO.awesomebox()
 *    Non-animating functions, initialized on window load completion.
 */
YAHOO.awesomebox = function() {
	return {
		
		/*
		 *  init()
		 *    Creates the markup, checks for direct image link, adds event listeners.
		 */
		init : function() {
			if(!document.getElementsByTagName){ return; }
			
			/*
			 *  Awesome Box Markup
			 *  
				<div id="aOverlay" title="Click to Close"></div>
				<div id="aBox">
					<div id="aImgHolder">
						<img id="aImg" />
					</div>
					<div id="aBoxMeta">
						<a class="aButton" href="#next" id="aNextButton"></a>
						<a class="aButton" href="#prev" id="aPrevButton"></a>
						<a class="aButton" href="#close" id="aCloseButton"></a>
						<h1 id="aInfoTitle"></h1>
						<p id="aCount"></p>
						<p id="aInfo"></p>
					</div>
				</div>
				<img src="images/aBox-loading.gif" id="aLoadImg" />
			 */
			
			var aBody = document.getElementsByTagName("body").item(0);
	
			var aOverlay = document.createElement('div');
			yGet(aOverlay).setAttribute('id', 'aOverlay');
			yGet(aOverlay).setAttribute('title', 'Click to Close');
			aBody.appendChild(aOverlay);
			yDom.setStyle('aOverlay', 'opacity', '0');
			
			var aBox = document.createElement('div');
			yGet(aBox).setAttribute('id', 'aBox');
			aBody.appendChild(aBox);
			yDom.setStyle('aBox', 'opacity', '0');
			yDom.setXY('aBox', [(yDom.getViewportWidth()/2)-21, (yDom.getViewportHeight()/2)-21])
			yDom.setStyle('aBox', 'display', 'none');
			
			var aImgHolder = document.createElement('div');
			yGet(aImgHolder).setAttribute('id', 'aImgHolder');
			aBox.appendChild(aImgHolder);

			var aImg = document.createElement('img');
			yGet(aImg).setAttribute('id', 'aImg');
			aImgHolder.appendChild(aImg);
			yDom.setStyle('aImg', 'opacity', '0');
			yDom.setStyle('aImg', 'visibility', 'hidden');
			
			var aBoxMeta = document.createElement('div');
			yGet(aBoxMeta).setAttribute('id', 'aBoxMeta');
			/*ajout d'un hack pour ie par fx*/
			aBoxIe = document.createElement('div');
			aBoxIe.setAttribute('id', 'aBoxMetaIe');
			
			aBoxMeta.appendChild(aBoxIe);
			aBox.appendChild(aBoxMeta);
			
			var aNextButton = document.createElement('a');
			yGet(aNextButton).setAttribute('id', 'aNextButton');
			aBoxIe.appendChild(aNextButton);
			yGet(aNextButton).setAttribute('href', '#next');
			yDom.addClass(aNextButton, 'aButton');

			var aPrevButton = document.createElement('a');
			yGet(aPrevButton).setAttribute('id', 'aPrevButton');
			aBoxIe.appendChild(aPrevButton);
			yGet(aPrevButton).setAttribute('href', '#prev');
			yDom.addClass(aPrevButton, 'aButton');

			var aCloseButton = document.createElement('a');
			yGet(aCloseButton).setAttribute('id', 'aCloseButton');
			aBoxIe.appendChild(aCloseButton);
			yGet(aCloseButton).setAttribute('href', '#close');
			yDom.addClass(aCloseButton, 'aButton');
			
			var aInfoTitle = document.createElement('h1');
			yGet(aInfoTitle).setAttribute('id', 'aInfoTitle');
			aBoxIe.appendChild(aInfoTitle);

			var aCount = document.createElement('p');
			yGet(aCount).setAttribute('id', 'aCount');
			aBoxIe.appendChild(aCount);
			yDom.setStyle(aCount, 'opacity', '0');

			var aInfo = document.createElement('p');
			yGet(aInfo).setAttribute('id', 'aInfo');
			aBoxIe.appendChild(aInfo);
			
			var preloadLoading = new Image();
			preloadLoading.src = aLoadImgSrc;
			
			var aLoadImg = document.createElement('img');
			yGet(aLoadImg).setAttribute('id', 'aLoadImg');
			aBody.appendChild(aLoadImg);
			yGet(aLoadImg).setAttribute('src', preloadLoading.src);
			yDom.setStyle('aLoadImg', 'opacity', '0');
			
			/*
			 *  Hash Check
			 *    Checks the URL on page load for #filename and attempts to load it
			 */
			if(window.location.href.indexOf('#') != -1) {
				// generate an ID for the body if it doesn't exist
				if(document.body.id != '' || document.body.id != null) {
					var body = yDom.generateId(document.body);
				} else {
					var body = document.body.id;
				}
				var imgArray = aClient.allImgs();
				var loadImg = window.location.href.split('#')[1];
				for(i = 0; i < imgArray.length; i++) {
					var imgUrl = imgArray[i].getAttribute('href').split('/');
					if(imgUrl[imgUrl.length-1].split('.')[0] == loadImg) {
						yElem.onAvailable(body, this.load, yGet(imgArray[i]), true);
					}
				}
			}

			
  
  $('aNextButton').style.backgroundImage ="url("+aButtonImgSrc+")";
  $('aPrevButton').style.backgroundImage ="url("+aButtonImgSrc+")";
  $('aCloseButton').style.backgroundImage ="url("+aButtonImgSrc+")";
			
			yElem.on(aOverlay, 'click', this.close);
			yElem.on(aCloseButton, 'click', this.close);
			
			yElem.on(aClient.allImgs(), 'click', this.load);
		},
		
		/*                                                  
		 *  load()
		 *    Gets information for new image and invokes appropriate actions.
		 */
		load : function(e, newImg) {
			var fadeOverlayIn = new YAHOO.widget.aEffect();
			fadeOverlayIn.aShowOverlay();
						
			if(newImg) { var that = newImg;
			} else { var that = this; }
			
			yElem.stopEvent(e);
			yElem.removeListener(document, 'keypress');
	
			aPreload = new Image();
			aPreload.onload = function() {
				var resizeBox = new YAHOO.widget.aEffect(that);
				resizeBox.aResizeBox(aPreload);
				
				//urchinTracker(aPreload.src.split(siteURL)[1]);
				
				if(!that.getAttribute('rel')) {
					yDom.setStyle('aNextButton', 'visibility', 'hidden');
					yDom.setStyle('aPrevButton', 'visibility', 'hidden');
					yDom.setStyle('aCount', 'opacity', '0');
				} else {
					yDom.setStyle('aCount', 'opacity', '1');
					yElem.removeListener('aNextButton', 'click');
					yElem.removeListener('aPrevButton', 'click');
				}
				var aInfoTitle = '';
				var aInfo = '';

				if(that.getAttribute('title') != null) {
					var aInfoTitle = that.getAttribute('title');
				}
				if(
					that.getElementsByTagName('img')[0] &&
					that.getElementsByTagName('img')[0].getAttribute('title') != null
				) {
					var aInfoTitle = that.getElementsByTagName('img')[0].getAttribute('title');
				}
				if(
					that.getElementsByTagName('img')[0] &&
					that.getElementsByTagName('img')[0].getAttribute('alt') != null
				) {
					var aInfo = that.getElementsByTagName('img')[0].getAttribute('alt');
				} else {
					var aInfo = that.innerHTML;
				}
				if(yDom.hasClass('aBoxMeta', 'aOpen')) {
					setTimeout(function() {
						yGet('aInfoTitle').innerHTML = aInfoTitle;
						yGet('aInfo').innerHTML = aInfo;
					}, 250);
				} else {
					yGet('aInfoTitle').innerHTML = aInfoTitle;
					yGet('aInfo').innerHTML = aInfo;
				}
				
				var urlSplit = that.getAttribute('href').split('/');
				var filename = urlSplit[urlSplit.length-1].split('.')[0];
				if(window.location.href.indexOf('#') != -1) {
					var url = window.location.href.split('#')[0];
				} else {
					var url = window.location.href;
				}
				window.location = url+'#'+filename;

				if(that.getAttribute('rel')) {
					YAHOO.awesomebox.loadNeighbors(that);
				}
				yElem.addListener(document, 'keypress', function(e) {
					yElem.stopEvent(e);
					switch(yElem.getCharCode(e)) {
						case (120) : YAHOO.awesomebox.close();
						break;
						case (97) : YAHOO.awesomebox.awesome();
						break;
					}
				});
			};
			aPreload.src = that.getAttribute('href');
		},
		
		/*
		 *  loadNeighbors()
		 *    Invoked via load(), finds and preloads next and previous image.
		 */
		loadNeighbors : function(that) {
			var imgRefs = aClient.allImgs();
			var photoSet = new Array();
			for(j = 0; j < imgRefs.length; j++) {
				if(
					imgRefs[j].getAttribute('rel') && 
					imgRefs[j].getAttribute('rel') == that.getAttribute('rel')
				) {
					photoSet.push(imgRefs[j]);
				}
			}
			var key = photoSet.inArray(that);
			setTimeout(function() {
				yGet('aCount').innerHTML = (key+1)+'/'+photoSet.length;
			}, 300);
			
			if(key != photoSet.length-1) {
				var next = new Image();
				next.src = photoSet[key+1].getAttribute('href');
				yDom.setStyle('aNextButton', 'visibility', 'visible');
			} else {
				yDom.setStyle('aNextButton', 'visibility', 'hidden');
			}
			if(key != 0) {
				var prev = new Image();
				prev.src = photoSet[key-1].getAttribute('href');
				yDom.setStyle('aPrevButton', 'visibility', 'visible');
			} else {
				yDom.setStyle('aPrevButton', 'visibility', 'hidden');
			}
			yElem.addListener('aNextButton', 'click', this.load, photoSet[key+1], true);
			yElem.addListener('aPrevButton', 'click', this.load, photoSet[key-1], true);
			yElem.addListener(document, 'keypress', function(e) {
				yElem.stopEvent(e);
				switch(yElem.getCharCode(e)) {
					// 110 = n, 112 = p
					case (110) :
						if(key != photoSet.length-1) { 
							YAHOO.awesomebox.load('', photoSet[key+1]);
						}
					break;
					case (112) :
						if(key != 0) { 
							YAHOO.awesomebox.load('', photoSet[key-1]); 
						}
					break;
				}
			});
		},
		
		/*
		 *  scaleImage()
		 * Returns proportional values for height and width of image, scaled if necessary.
		 */
		scaleImage : function(aImage) {
			var sHeight = aImage.height;
			var sWidth = aImage.width;
			if(aImage.width > yDom.getViewportWidth()) {
				sWidth = yDom.getViewportWidth()-20;
				sHeight = aImage.height * (sWidth / aImage.width);
				if(sHeight+100 > (yDom.getViewportHeight()-20)) {
					sHeight = yDom.getViewportHeight()-120;
					sWidth = aImage.width * (sHeight / aImage.height);
				}
			} else if(aImage.height+100 > yDom.getViewportHeight()) {
				sWidth = aImage.width * ((yDom.getViewportHeight()-120) / aImage.height);
				sHeight = yDom.getViewportHeight()-120;
				if(sWidth > (yDom.getViewportWidth()-20)) {
					sWidth = aImage.width * (sHeight / aImage.height);
					sHeight = aImage.height * (sWidth / aImage.width);
				}
			}
			var scaleAtts = new Array(Math.floor(sWidth), Math.floor(sHeight));
			return scaleAtts;
		},
		
		/*
		 *  close()
		 *    Calls YAHOO.widget.aEffect.aClose() and resets the #filename to #close.
		 *    Not the most elegant solution.
		 */
		close : function() {
			var aClose = new YAHOO.widget.aEffect();
			aClose.aClose();
			if(window.location.href.indexOf('#') != -1) {
				var url = window.location.href.split('#')[0];
			} else {
				var url = window.location.href;
			}
			window.location = url+'#close';
		},
		
		awesome : function() {
			var aAwesome = new YAHOO.widget.aEffect();
			aAwesome.aAwesome();
		}
	}
}();

/*
 *  Start up the processes on window load.
 */
YAHOO.util.Event.on(window, 'load', YAHOO.awesomebox.init, YAHOO.awesomebox, true);