/*
 * Generic "Find" used for mouse events
 */
function find_target(e) {
	var target;
	if(window.event  &&  window.event.srcElement) {
		target = window.event.srcElement;
	} else if(e  &&  e.target) {
		target = e.target;
	}
	if(!target) {
		return null;
	}
	return target;
}



/*
 * Mouseover / Out listener
 * - update status bar when mouseover / off
 * - add an 'onclick' event if the item has a 'target' defined (new window)
 */
function monitor_all_links() {
  // Get all of the links & inputs within the selected page
	var all_mouseovers = $$("a", "input");
  // Assign a listener to each link
	all_mouseovers.each(
		function(val) {
		  // If we have an input make sure it is a submit / reset / button or image
			if(val.type  &&  val.type != "submit"  &&  val.type != "reset"  &&  val.type != "button"  &&  val.type != "image") {
			  // This is not a required input type
				return;
			}
			Event.observe(val, "mouseover", title_in_status_bar_over);
			Event.observe(val, "mouseout", title_in_status_bar_out);
		  // If this is a link, should it open in a new popup window ('target' is defined)?
			if(!val.target  &&  val.target == "") {
				return;
			}
			Event.observe(val, "click", new_popup_window);
		}
	);
}
var actually_overwrite_title_value = false;
function fake_and_return_title(obj) {
  // Update the status bar of the window, after checking we have a 'title' to display
  // - If no 'title' was found we will try to create one
	if(obj.title) {
		return obj.title;
	} else if(obj.parentElement  &&  obj.parentElement.title) {
		return obj.parentElement.title;
	} else if(obj.parentNode  &&  obj.parentNode.title) {
		return obj.parentNode.title;
	} else if(obj.innerHTML) {
	  // Make sure we strip out any HTML content
		var new_title = obj.innerHTML.replace(/<[\/\!]*?[^<>]*?>/ig, '');
		if(actually_overwrite_title_value) {
			obj.title = new_title;
		}
		return new_title;
	} else if(obj.type  &&  (obj.type == "submit"  ||  obj.type == "reset"  ||  obj.type == "button")  &&  obj.value) {
		var new_title = obj.value;
		if(actually_overwrite_title_value) {
			obj.title = new_title;
		}
		return new_title;
	} else if(obj.type  &&  obj.type == "image") {
		var new_title = obj.alt;
		if(actually_overwrite_title_value) {
			obj.title = new_title;
		}
		return new_title;
	} else if(obj.alt) {
		return obj.alt;
	}
	return "";
}
function wS(txt) {
	window.status = ((txt)?txt:'');
	return true;
}
function title_in_status_bar_over(e) {
  // I want to make sure everything is fully loaded before this code is run
  // - Firefox sometimes reports errors with missing functions - not sure why at the moment
	if(typeof find_target == "undefined") {
		return;
	}
	var target = find_target(e);
	if(!target) {
		return;
	}
	var title_attribute = fake_and_return_title(target);
	return wS(title_attribute);
}
function title_in_status_bar_out(e) {
  // I want to make sure everything is fully loaded before this code is run
  // - Firefox sometimes reports errors with missing functions - not sure why at the moment
	if(typeof find_target == "undefined") {
		return;
	}
	return wS();
}
function new_popup_window(e) {
	var target = find_target(e);
	if(!target) {
		return;
	}
	if(target.href  &&  target.target) {
		if(target.target.indexOf("mp3") != -1) {
			var popup_width = 225;
			var popup_height = 100;
			var params = 
				"width=" + popup_width +
				",height=" + popup_height +
				",left=" + ((screen.width)?(screen.width-popup_width)/2:0) +
				",top=" + ((screen.height)?((screen.height-popup_height)/2)-30:0) +
				",scrollbars=yes" +
				",toolbar=no" +
				",resizable=yes" +
				",status=no" +
				",menubar=no" +
				",location=no";
		} else {
			var popup_width = 800;
			var popup_height = 500;
			var params = 
				"width=" + popup_width +
				",height=" + popup_height +
				",left=" + ((screen.width)?(screen.width-popup_width)/2:0) +
				",top=" + ((screen.height)?((screen.height-popup_height)/2)-30:0) +
				",scrollbars=yes" +
				",toolbar=yes" +
				",resizable=yes" +
				",status=yes" +
				",menubar=yes" +
				",location=yes";
		}
		var popupName = window.open(target.href, target.target, params);
		if(popupName) {
			popupName.focus();
		}
	}
}



/*
 * Run this function when the page loads
 * It encompasses all of the functions required to make this page 'dynamic'
 */
function onload_container() {
	monitor_all_links();
}
Event.observe(window, "load", onload_container);