// JavaScript Document

var prjPanel = {
	
	addListeners: function () {
		if (!document.getElementsByTagName || !document.getElementById)
			return;		

		// Clear Contents out of form fields and hide them
		var objPRJDescription = document.getElementById("prjDescription");
		objPRJDescription.style.display = 'none';
		var objPRJLink = document.getElementById("prjLink");
		objPRJLink.style.display = 'none';
		
		// Add Listener to Link Field
		rwScript.addEvent(objPRJLink, 'mouseover', prjPanel.getLinkMOver(objPRJLink), false);
		rwScript.addEvent(objPRJLink, 'mouseout', prjPanel.getLinkMOut(objPRJLink), false);

		// Add Listeners to Projects DIVs
		var objPRJPanel = document.getElementById("rwProjects");
		var arrDIVs = objPRJPanel.getElementsByTagName("div");
		
		for (i=0; i < arrDIVs.length; i++) {
			if (arrDIVs[i].id != "btnProjects" && arrDIVs[i].id != "prjDetails") {
				var objDIV = arrDIVs[i];
				rwScript.addEvent(objDIV, 'mouseover', prjPanel.getMOver(objDIV), false);
				rwScript.addEvent(objDIV, 'mouseout', prjPanel.getMOut(objDIV), false);
				rwScript.addEvent(objDIV, 'click', prjPanel.getClick(objDIV), false);
			}
		}
		
	},

// PROJECT DIV EVENTS
	mOver: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;
	
		var strID = el.id;

		if (prjPanel.prjLock != strID) {
			el.className = 'prjPanelOver';
			var strID = el.id;
		}
	},

	mOut: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		var strID = el.id;

		if (prjPanel.prjLock != strID) {
			el.className = '';
		}
	},

	prjClick: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		var strID = el.id;
		var objPRJHeader = document.getElementById("imgPRJHeader");

		// Remove Lock on previously locked Project
		if (prjPanel.prjLock != "") {
			var objLockedProject = document.getElementById(prjPanel.prjLock);
			objLockedProject.className = '';

			var arrPs = objLockedProject.getElementsByTagName("p");
			for (i=0; i < arrPs.length; i++) {
					arrPs[i].className = ''
			}		
		}

		if (prjPanel.prjLock != strID) {
			// Lock Current Project
			prjPanel.prjLock = strID;

			// Header Image
			objPRJHeader.src = 'images/projects/hdr_' + prjPanel.prjLock + '.gif';
			
			// Project Description Text and Display
			var objPRJDescription = document.getElementById("prjDescription");
			objPRJDescription.firstChild.nodeValue = prjPanel.getPRJText(strID);
			objPRJDescription.style.display = 'block';

			// Project Link Text, HREF and Display
			var objPRJLink = document.getElementById("prjLink");
			objPRJLink.href = "http://www." + prjPanel.getPRJLink(strID);
			objPRJLink.firstChild.nodeValue = prjPanel.getPRJLink(strID);
			objPRJLink.style.display = 'block';

			// Update Styles
			el.className = 'prjPanelClick';
			var arrPs = el.getElementsByTagName("p");
			for (i=0; i < arrPs.length; i++) {
					arrPs[i].className = 'prjTextClick'
			}		

		} else {
			// Unlock Current Project
			prjPanel.prjLock = "";

			// Header Image
			objPRJHeader.src = 'images/projects/hdr_blank.gif';

			// Project Description Display
			var objPRJDescription = document.getElementById("prjDescription");
			objPRJDescription.style.display = 'none';
			
			// Project Link Display
			var objPRJLink = document.getElementById("prjLink");
			objPRJLink.style.display = 'none';

			// Update Styles
			el.className = '';
			var arrPs = el.getElementsByTagName("p");
			for (i=0; i < arrPs.length; i++) {
					arrPs[i].className = ''
			}		
		}
	},

	getMOver: function (node) {
		return function(e) { prjPanel.mOver(e, node); };
	},
	
	getMOut: function (node) {
		return function(e) { prjPanel.mOut(e, node); };
	},

	getClick: function (node) {
		return function(e) { prjPanel.prjClick(e, node); };
	},
	
// LINK EVENTS
	linkMOver: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;
		
		el.className = "prjLinkOver";
	},
	getLinkMOver: function (node) { return function(e) { prjPanel.linkMOver(e, node); }; },

	linkMOut: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;

		el.className = "";
	},
	getLinkMOut: function (node) { return function(e) { prjPanel.linkMOut(e, node); }; },

// EXTRA FUNCTIONS
	getPRJText: function(strPRJID) {
		switch (strPRJID) {
			case 'aequi':
				return "An online showcase for a Geelong Architectural firm that reflects their minimalist design philosophy.";
				break;
			case 'challis':
				return "Developed in conjuction with Challis Design, this site presents a wide selection of work over a range of project categories.";
				break;
			case 'crs':
				return "The CRS site is an online resource centre containing over 5000 church resources with reviews, samples and downloads.";
				break;
			case 'dw':
				return "A fairly simple site showcasing the work of Geelong photographer David Weston.";
				break;
			case 'grovedale':
				return "Outlining the hotel's major areas, this site uses rich photography and simple animation to convey its message.";
				break;
			case 'iluka':
				return "An online journey that reflects the Iluka Blue experience.";
				break;
			case 'kardinia':
				return "An online home for the Kardinia Heights Centre, Kardinia Christian Church and related ministries.";
				break;
			case 'northwest':
				return "A simple website that provides information on North West Airconditioning and their services.";
				break;
			case 'oceanwave':
				return "Built in conjunction with Challis Design, this site is a professional online presence for one of Australia's premier seafood exporters.";
				break;
			case 'pd':
				return "A complex website built to manage the extemely popular campaigns run by Purpose Driven Ministries, this is one of our most visited sites.";
				break;
		}
	},

	getPRJLink: function(strPRJID) {
		switch (strPRJID) {
			case 'aequi':
				return "aequi.com.au";
				break;
			case 'challis':
				return "challisdesign.com.au";
				break;
			case 'crs':
				return "crsonline.com.au";
				break;
			case 'dw':
				return "davidweston.com.au";
				break;
			case 'grovedale':
				return "grovedalehotel.com.au";
				break;
			case 'iluka':
				return "ilukablue.com.au";
				break;
			case 'kardinia':
				return "kardinia.org.au";
				break;
			case 'northwest':
				return "northwestairconditioning.com.au";
				break;
			case 'oceanwave':
				return "oceanwaveseafoods.com";
				break;
			case 'pd':
				return "purposedriven.com.au";
				break;
		}
	},
	
	prjLock: ""

};

rwScript.addEvent(window, 'load', prjPanel.addListeners, false);
rwScript.addEvent(window, 'unload', EventCache.flush, false);
