/**
 * JavaScript by Jeffrey Ouma.
 * Copyright© 2008 artkenya.net Ltd.
 * All rights reserved.
 *
 * Script name: main.js
 * Purpose: Defines namespaces and common functions that are executed by every page.
 */
Site = {} // Namespace: Defines functions that are specific to this website, but used widely.
Site.main = {}
Site.picture = {
	Init: function() {
		try {
			var elmArray = Dom.getElementsByClassName("preload-image", "img", "photogallery");
			for (var i = 0; i < elmArray.length; i++) {
				var preloadImage = new YAHOO.util.ImageLoader.group("content", "mouseover", 2), url = Dom.get(elmArray[i]).getAttribute("imgurl"), w = (Dom.get(elmArray[i]).getAttribute("imgwidth")) ? Dom.get(elmArray[i]).getAttribute("imgwidth") : "", h = (Dom.get(elmArray[i]).getAttribute("imgheight")) ? Dom.get(elmArray[i]).getAttribute("imgheight") : "";
				preloadImage.registerSrcImage(elmArray[i].id, url, w, h);
			}
			elmArray = Dom.getElementsByClassName("insertpicture-link", "a", "sidebarright-thumbnails");
			Site.picture.currentImage = Site.picture.GetCurrentImage();
			Site.picture.imageArray = elmArray;
			Event.on(elmArray, "click", function(e) {
				try {
					Site.picture.Show(this);
					Event.preventDefault(e);
				} catch (e) {
					errorHandler(e);
				}
			});
			//Dom.get("photogallery-previous").href = "javascript:;";
			Event.on("photogallery-previous", "click", function(e) {
				try {
					Site.picture.currentImage = (Site.picture.currentImage > 1) ? Site.picture.currentImage - 1 : Site.picture.imageArray.length;
					Site.picture.SwitchImage();
					Event.preventDefault(e);
				} catch (e) {
					errorHandler(e);
				}
			});
			//Dom.get("photogallery-next").href = "javascript:;";
			Event.on("photogallery-next", "click", function(e) {
				try {
					Site.picture.currentImage = (Site.picture.currentImage < Site.picture.imageArray.length) ? Site.picture.currentImage + 1 : 1;
					Site.picture.SwitchImage();
					Event.preventDefault(e);
				} catch (e) {
					errorHandler(e);
				}
			});
			//Site.picture.Show(elmArray[0]);
		} catch (e) {
			errorHandler(e);
		}
	},
	GetCurrentImage: function() {
		try {
			var elmArray = Dom.getElementsByClassName("insertpicture-link", "a", "sidebarright-thumbnails");
			for (var i = 0; i < elmArray.length; i++) {
				if (Dom.hasClass(elmArray[i], "selected-picture")) { return i + 1; }
			};
			
		} catch (e) {
			errorHandler(e);
		}
	},
	SwitchImage: function() {
		try {
			// Initialize variables
			var elm, elmId;
			// Hide any visible images
			var elmArray = Dom.getElementsByClassName("gallery-image", "img", "photogallery");
			Dom.addClass(elmArray, "hide");
			elmArray = Dom.getElementsByClassName("selected-picture", "a", "sidebarright-thumbnails");
			Dom.removeClass(elmArray, "selected-picture");
			elm = Site.picture.imageArray[Site.picture.currentImage - 1];
			Dom.addClass(elm, "selected-picture");
			Dom.get("photogallery-currentimage").innerHTML = Site.picture.currentImage;
			elmId = elm.getAttribute("imgid")
			Dom.removeClass("picture" + elmId, "hide");
			Dom.get("photogallery-caption").innerHTML = elm.getAttribute("imgdescription");
		} catch (e) {
			errorHandler(e);
		}
	},
	Show: function(elm) {
		try {
			var elmId, elmArray;
			elmId = elm.getAttribute("imgid");
			elmArray = Dom.getElementsByClassName("gallery-image", "img", "photogallery");
			Dom.addClass(elmArray, "hide");
			Dom.removeClass("picture" + elmId, "hide");
			elmArray = Dom.getElementsByClassName("selected-picture", "a", "sidebarright-thumbnails");
			Dom.removeClass(elmArray, "selected-picture");
			Dom.addClass(elm, "selected-picture");
			Site.picture.currentImage = Site.picture.GetCurrentImage();
			Dom.get("photogallery-currentimage").innerHTML = Site.picture.currentImage;
			Dom.get("photogallery-caption").innerHTML = elm.getAttribute("imgdescription");
		} catch (e) {
			errorHandler(e);
		}
	}
}
Site.main.image = {
	Init: function() {
		try {
			Site.main.image.panel = new YAHOO.widget.Panel("clicktoenlarge", {
				autofillheight: "body",
				fixedcenter: false,
				constraintoviewport: true,
				underlay: "shadow",
				close: true,
				visible: false,
				modal: true,
				iframe: false,
				draggable: true,
				effect: {
					effect: YAHOO.widget.ContainerEffect.FADE,
					duration: 0.25
				}
			});
			Site.main.image.panel.hideEvent.subscribe(Site.main.image.panel.removeMask);
			Site.main.image.panel.render();
			var elmArray = Dom.getElementsByClassName("click-to-enlarge", "a", "bd");
			Event.on(elmArray, "click", function(e) {
				try {
					var elmArray = Dom.getElementsByClassName("enlarge-image", "div", "clicktoenlarge");
					var elm = this.getElementsByTagName("img");
					elm = elm[0];
					Dom.addClass(elmArray, "hide");
					Dom.removeClass("enlargeimage" + elm.getAttribute("imgid"), "hide");
					/*Site.main.image.panel.cfg.setProperty("width", this.getAttribute("imgwidth") + "px");
					 Site.main.image.panel.cfg.setProperty("height", this.getAttribute("imgheight") + "px");*/
					Dom.removeClass("clicktoenlarge", "hide");
					Site.main.image.panel.center();
					Site.main.image.panel.show();
					Event.preventDefault(e);
				} catch (e) {
					errorHandler(e);
				}
			});
			for (var i = 0; i < elmArray.length; i++) {
				var srcImg = elmArray[i].getElementsByTagName("img");
				srcImg = srcImg[0];
				var elm = document.createElement("div");
				elm.className = "enlarge-image";
				elm.id = "enlargeimage" + srcImg.getAttribute("imgid");
				var img = document.createElement("img");
				img.title = srcImg.title;
				img.alt = srcImg.alt;
				img.src = srcImg.src;
				elm.appendChild(img);
				var caption = document.createElement("p");
				caption.innerHTML = "<strong>" + srcImg.title + "</strong>";
				elm.appendChild(caption);
				Site.main.image.panel.appendToBody(elm);
			}
		} catch (e) {
			errorHandler(e);
		}
	}
}
/**
 * Function name: Init
 * Purpose: Executes when the page loads after the DOM is ready. Performs initialization of any
 * elements or values to their default.
 */
Site.main.Init = function() {
	try {
		var elm, elmArray;
		elmArray = Dom.getElementsByClassName("scrub");
		Event.addFocusListener(elmArray, function() {
			try {
				BLEEZ.util.Scrub(this);
			} catch (e) {
				errorHandler(e)
			}
		});
		BLEEZ.util.browserDetect.init();
		if (BLEEZ.util.browserDetect.browser != "Internet Explorer" || BLEEZ.util.browserDetect.version > 6) {
			Site.main.image.Init();
		}
		Site.picture.Init();
		//	Instantiate a MenuBar, passing in the id of the HTML element representing the MenuBar.
		var menubar = new YAHOO.widget.MenuBar("menubar", {
			autosubmenudisplay: true,
			minscrollheight: "150",
			effect: {
				effect: YAHOO.widget.ContainerEffect.FADE,
				duration: 0.25
			}
		});
		// Render the MenuBar instance
		menubar.render();
	} catch (e) {
		errorHandler(e);
	}
}
try {
	Event.onDOMReady(Site.main.Init);
} catch (e) {
	errorHandler(e);
}

