// Start our namespace
var AIF = YAHOO.namespace("AIF");
AIF.core = function() {

	var Dom = YAHOO.util.Dom;
	var Event = YAHOO.util.Event;
	var YUC = YAHOO.util.Connection;
	var YUA = YAHOO.util.Anim;
	var $ = Dom.get;
	
	var mainImageContainer = "";
	var imageList = "";
	
	function preloadImages(){
		for(var i in imageList) {			
			imageList[i].image = new Image();
			imageList[i].image.src = imageList[i].src;
	    }
	}
	
	function setupLoadingStatus(mainContainer){
		var statusDiv = document.createElement("div");
		statusDiv.style.display = "none";
		statusDiv.id = "loadingStatus";
		var statusImg = document.createElement("img");
		statusImg.src = "images/loading.gif";
		var statusSpan = document.createElement("span");
		statusSpan.innerHTML = "Loading images...";
		statusDiv.appendChild(statusImg);
		statusDiv.appendChild(statusSpan);
		document.getElementById(mainContainer).appendChild(statusDiv);
	}
	
	function showLoadingStatus(){
		document.getElementById("loadingStatus").style.display = "block";			
	}
	
	function clearLoadingStatus(){
		document.getElementById("loadingStatus").style.display = "none";			
	}
	
	return {
		initImages: function(images, thumbContainer, mainContainer) {
			 if(!Dom.get(mainContainer)) return
			imageList = images;
			if(imageList.length == 0) {
				Dom.get(mainContainer).style.display= "none";
				return;
			}else{
				Dom.get(mainContainer).style.display= "block";
			}
			mainImageContainer = document.getElementById(mainContainer);
			setupLoadingStatus(mainContainer);

			var list = document.createElement("ul");
			Dom.addClass(list, "hoverbox");
			for(i = 0; i < imageList.length; i++){
				var listItem = document.createElement("li");
				var linkItem = document.createElement("a");
				var imgItem = document.createElement("img");
				imgItem.alt = "";
				var prevImgItem = document.createElement("img");
				prevImgItem.alt = "";
				Dom.addClass(prevImgItem, "preview");
				imgItem.name = i;
				imgItem.src = images[i].thumbnail;
				prevImgItem.name = i;
				prevImgItem.src = images[i].thumbnail;
				linkItem.href = "#";
				linkItem.appendChild(imgItem);
				linkItem.appendChild(prevImgItem);
				Event.on(linkItem, "click", this.displayImage);
				listItem.appendChild(linkItem);
				list.appendChild(listItem);
			};
			
			document.getElementById(thumbContainer).appendChild(list);
			preloadImages();
			this.displayImage();
		},
		
		displayImage: function(e) {
			var imageIndex = 0;
			if(e) {
				target = Event.getTarget(e);
				Event.stopEvent(e);
				imageIndex = target.name;
				target.blur();
			}

			var myAnim = new YAHOO.util.Anim(mainImageContainer, { opacity: { to: 0 } }, .4, YAHOO.util.Easing.easeOut);
			myAnim.onComplete.subscribe(function() {
				mainImageContainer.getElementsByTagName("img")[0].src = imageList[imageIndex].image.src;
				document.getElementById("imageTitle").innerHTML = imageList[imageIndex].title;
				document.getElementById("imageMedium").innerHTML = imageList[imageIndex].medium;
				document.getElementById("imageInfo").innerHTML = imageList[imageIndex].info;
				myAnim = new YAHOO.util.Anim(mainImageContainer, { opacity: { to: 1 } }, .4, YAHOO.util.Easing.easeIn);
				myAnim.animate();
			});
			myAnim.animate();
		},
		
		getArgs: function() {
			var args = new Object();
			var query = location.search.substring(1);	// get query string
			var pairs = query.split("&");				// split at ampersand
			
			for(var i = 0; i < pairs.length; i++) {
				var pos = pairs[i].indexOf('=');
				if(pos == -1) continue;
				var argname = pairs[i].substring(0, pos);
				var value = pairs[i].substring(pos+1);
				value = decodeURIComponent(value);
				args[argname] = value;
			}
			return args;
		},
		
		setupNav: function(pageName){
			var menu, selected, items, i;
			
			menu = document.getElementById("navigation");
			selected = document.getElementById(pageName);
			items = menu.getElementsByTagName("li");
			
			for(i = 0; i < items.length; i++){
				Dom.removeClass(items[i], "selected");
			}
			
			Dom.addClass(selected, "selected");
		}
	}
}();
	