// Event Loader
function addEvent(obj, evType, fn)
{
	if (obj.addEventListener)
	{
		obj.addEventListener(evType, fn, false);
		return true;
	}
	else if (obj.attachEvent)
	{
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	}
	else
	{
		return false;
	}
}

// Add Events
addEvent(window, 'load', init);
addEvent(window, 'load', noFrames);
addEvent(window, 'load', externalLinks);

// Initialise
function init()
{
	var formInputs = document.getElementsByTagName('input');
	for (var i = 0; i < formInputs.length; i++)
	{
		var theInput = formInputs[i];

		if ((theInput.type == 'text' || theInput.type == 'password') && theInput.className.match(/\bcleardefault\b/))
		{
			/* Add event handlers */
			addEvent(theInput, 'focus', clearDefaultText);
			addEvent(theInput, 'blur', replaceDefaultText);

			/* Save the current value */
			if (theInput.value != '')
			{
				theInput.defaultText = theInput.value;
			}
		}
	}
}

// Clear Default Text
function clearDefaultText(e)
{
	var target = window.event ? window.event.srcElement : e ? e.target : null;

	if (!target)
	{
		return;
	}

	if (target.value == target.defaultText)
	{
		target.value = '';
	}
}

// Replace Default Text if no Input
function replaceDefaultText(e)
{
	var target = window.event ? window.event.srcElement : e ? e.target : null;

	if (!target)
	{
		return;
	}

	if (target.value == '' && target.defaultText)
	{
		target.value = target.defaultText;
	}
}

// Breakout of Frames
function noFrames()
{
	if (top.location != location)
	{
    	top.location.href = document.location.href;
	}
}

// New-Window Links for XHTML Strict
function externalLinks()
{
	if (!document.getElementsByTagName)
	{
		return;
	}

	var anchors = document.getElementsByTagName("a");

	for (var i=0; i<anchors.length; i++)
	{
		var anchor = anchors[i];
		if (anchor.getAttribute("rel") == "external")
		{
			anchor.target = "_blank";
		}
	}

	var forms = document.getElementsByTagName("form");

	for (var i=0; i<forms.length; i++)
	{
		var form = forms[i];
		if (form.getAttribute("class") == "external")
		{
			form.target = "_blank";
		}
	}
}