// from www.soziologie.uni-halle.de/unger/scripts/workshop_internet/txt_js_322.html
function addEventListener(obj, evt, func, isCapture) {
	if (obj.addEventListener) { // W3C DOM
		obj.addEventListener(evt, func, isCapture);
		return true;
	} else if (obj.attachEvent) { // Internet Explorer
		return obj.attachEvent("on"+evt, func);
	} else return false;
}
function addEvent(obj, evt, func, isCapture) {
	addEventListener(obj, evt, func, isCapture);
}
function removeEvent(obj, evt, func, isCapture) {
	if (obj.removeEventListener) {
		obj.removeEventListener(evt, func, isCapture);
		return true;
	} else if (obj.detachEvent) {
		return obj.detachEvent("on"+evt, func);
	} else return false;
}


function iframeAutoSize(iframe) {
	if (!iframe.src || iframe.src == '') {
		iframe.style.height = iframe.style.width = 0;
	}

	iframe.style.height = 10+Math.max(
		iframe.contentWindow.document.body.offsetHeight,
		iframe.contentWindow.document.body.scrollHeight,
		iframe.contentWindow.document.documentElement.offsetHeight,
		iframe.contentWindow.document.documentElement.scrollHeight)
		+'px';
	if (!isNaN(iframe.height)) iframe.height = iframe.style.height;

	iframe.style.width = 10+Math.max(
		iframe.contentWindow.document.body.offsetWidth,
		iframe.contentWindow.document.body.scrollWidth,
		iframe.contentWindow.document.documentElement.offsetWidth,
		iframe.contentWindow.document.documentElement.scrollWidth)
		+'px';
	if (!isNaN(iframe.width)) iframe.width = iframe.style.width;

/*
alert(
'iframe.contentWindow.document.body.offsetHeight='+
iframe.contentWindow.document.body.offsetHeight+
'\niframe.contentWindow.document.body.scrollHeight='+
iframe.contentWindow.document.body.scrollHeight+
'\niframe.contentWindow.document.documentElement.offsetHeight='+
iframe.contentWindow.document.documentElement.offsetHeight+
'\niframe.contentWindow.document.documentElement.scrollHeight='+
iframe.contentWindow.document.documentElement.scrollHeight
);
*/
}


/*
// from www.webreference.com/programming/javascript/onloads/
function addLoadEvent(func) {
	var oldonLoad = window.onLoad;
	if (typeof window.onLoad != 'function') {
		window.onLoad = func;
	} else {
		window.onLoad = function() {
			if (oldonLoad) {
				oldonLoad();
			}
			func();
		}
	}
}
addLoadEvent(clearDefaultInit);

// from www.geekdaily.net/2007/07/27/javascript-windowonload-is-bad-mkay/
//create onDomReady Event
window.onDomReady = DomReady;

function DomReady(fn) { //Setup the event
	if(document.addEventListener) { //W3C
		document.addEventListener("DOMContentLoaded", fn, false);
	} else { //IE
		document.onreadystatechange = function(){readyState(fn)}
	}
}

function readyState(fn) { //IE execute function
	if(document.readyState == "interactive") { //dom is ready for interaction
		fn();
	}
}

window.onDomReady(clearDefaultInit);


// for clearing default/example input from form fields
function clearDefaultInit() {
	var formInputs = document.getElementsByTagName('input');
	for (var i = 0; i < formInputs.length; i++) {
		var theInput = formInputs[i];

		if (theInput.type == 'text' && theInput.className.match(/\bcleardefault\b/)) {
			if (theInput.value == theInput.defaultValue) theInput.style.color = '#999';

			// Add event handlers
		//	addEventListener(theInput, 'focus', clearDefaultText, false);
		//	addEventListener(theInput, 'blur', replaceDefaultText, false);
			addEventListener(theInput.form, 'submit', formClearDefaults, false);
		}
	}
}

function clearDefaultText(e) {
	var target = window.event ? window.event.srcElement : e ? e.target : null;
	if (!target) return;

	if (target.value == target.defaultValue) {
		target.value = '';
		target.style.color = '';
	}
}

function replaceDefaultText(e) {
	var target = window.event ? window.event.srcElement : e ? e.target : null;
	if (!target) return;

	if (target.value == '' && target.defaultValue) {
		target.value = target.defaultValue;
		target.style.color = '#999';
	}
}

function formClearDefaults(e) {
	var target = window.event ? window.event.srcElement : e ? e.target : null;
	if (!target) return;
	else clearFormDefaults(target);
}
*/

function clearFormDefaults(target) {
	if (target && target.elements) for (var i=0; i < target.elements.length; i++) {
		element = target.elements[i];
		if (element.type == 'text' && element.className.match(/\bcleardefault\b/)) {
			if (element.value == element.defaultValue) {
				element.value = '';
			}
		}
	}
}


function toggleVisibility(elementID) {
	var element = document.getElementById(elementID);
	if (element) {
		var elementVisibility = element.style.display;
		if (elementVisibility == 'collapse' || elementVisibility == 'hidden' || elementVisibility == 'none') {
			element.style.display = '';
		} else {
			element.style.display = 'none';
		}
	}
	return false;
}
