// JavaScript Document
// Created by Matt Bondi
// 25/08/09
//Serves to create an image element with Scriptaculous effects applied


schedule("window", randBanner); 

function randBanner(){
	var rand = "";
	rand += Math.ceil(Math.random()*31);
	var bannerImg = document.getElementById("topBanner");
	var smallBannerDiv = document.getElementById("headerImages");
	var initLink = smallBannerDiv.getElementsByTagName("a")[0];
	var targetId = "headerImagesLarge"; //Set to the id of the div to place large image inside
	var sourceL = "images/headerImgs/large/"; //Set to source folder for large image
	var sourceS = "images/headerImgs/small/"; //Set to source folder for small image
	var source = "";
	var params = Array();
	var preloadString = "";

	if(document.images){
		var imageObj = new Image();
		//uncomment for debugging
		//imageObj.onload = loadedImg;
		imageObj.src = sourceL+"banner_"+rand+".jpg";
		
	}
	bannerImg.src = sourceS+"banner_"+rand+".jpg";
	source = sourceL+"banner_"+rand+".jpg";
	params[0] = targetId
	params[1] = source;
	attachEventListener(initLink, "mouseup", showLarge, params, false);
	
	
}

function loadedImg(){
	alert("loaded");	
}

function showLarge(params){
	var targetDiv = document.getElementById(params[0]);
	
	//Check for existence of image
	if(targetDiv.getElementsByTagName("a")[0]){
		//Do nothing as elements have been created
	}else{
	
		var createdLink = document.createElement("a");
		var createdImg = document.createElement("img");
		
		createdLink.href = "javascript:void(0);";
		attachEventListener(createdLink, "mouseup", hideLarge, params[0], false);
		
		createdImg.src = params[1];
		createdImg.alt = "";
		
		createdLink.appendChild(createdImg);	
		targetDiv.appendChild(createdLink);	
		
	}
	
	//Scriptaculous
	Effect.toggle(params[0],'BLIND');
	return false;
}

function hideLarge(targetId){
	//Scriptaculous
	Effect.toggle(targetId,'BLIND');
	return false;
}


function attachEventListener(target, eventType, functionRef, params, capture){
	if (typeof target.addEventListener != "undefined")
	{
		target.addEventListener(eventType, function(){functionRef(params)}, capture);
	}
	else if (typeof target.attachEvent != "undefined")
	{
		var functionString = eventType + functionRef;
		target["e" + functionString] = functionRef;
        
		target[functionString] = function(event)
		{
			if(typeof event == "undefined")
			{
				event = window.event
			};

			//target["e" + functionString](event);
			target["e" + functionString](params);
        };
        
		target.attachEvent("on" + eventType, target[functionString]);
	}
	else
	{
		eventType = "on" + eventType;

		if (typeof target[eventType] == "function")
		{
			var oldListener = target[eventType];

			target[eventType] = function()
			{
				oldListener();

				return functionRef(params);
			}
		}
		else
		{
			target[eventType] = functionRef(params);
		}
	}

	return true;
};