var isIE      = (document.all && !document.addEventListener) ? true : false;
var isIE50    = (isIE && !document.createEventObject) ? true : false;
var isIE55    = (isIE && document.createEventObject && !document.compatMode) ? true : false;
var isIE60    = (isIE && document.defaultCharset && document.compatMode) ? true : false;
var isFirefox = (window.XML) ? true : false;
var isOpera   = (document.detachEvent && document.addEventListener) ? true : false;

function checkFieldValue(obj) {
	if (obj.value.substr(0,1) == '<') obj.value='';
}

function openMailDialogue(obj) {
	var m = obj.innerHTML;
	m = m.replace(/\s+at\s+/, '@');
	document.location = 'mailto:'+m;
}

function stretchPage()
{
	var height = 0;
	if (typeof(window.innerWidth) == 'number' ) {
		h = window.innerHeight;
	} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
		h = document.documentElement.clientHeight;
	}
	var contentHeight = document.getElementById('content-container').offsetHeight;
	var headerHeight  = document.getElementById('header').offsetHeight;
	var navHeight     = document.getElementById('nav').offsetHeight;
	var aboutHeight   = document.getElementById('about').offsetHeight
	var bodyHeight    = headerHeight+navHeight+contentHeight+aboutHeight;
	
	if (bodyHeight < h) {
		document.getElementById('content').style.height = h-headerHeight-navHeight-aboutHeight+'px';
	}
};

function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) { 
	elm.addEventListener(evType, fn, useCapture); 
	return true; 
	}
	else if (elm.attachEvent) { 
	var r = elm.attachEvent('on' + evType, fn); 
	EventCache.add(elm, evType, fn);
	return r; 
	}
	else {
	elm['on' + evType] = fn;
	}
};

function getEventSrc(e) {
	if (!e) e = window.event;

	if (e.originalTarget)
	return e.originalTarget;
	else if (e.srcElement)
	return e.srcElement;
};

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = 
		function() {
			oldonload();
			func();
		}
	}
};

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
	
		add : function(node, sEventName, fHandler, bCapture){
			listEvents.push(arguments);
		},
	
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				
				/* From this point on we need the event names to be prefixed with 'on" */
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				
				item[0][item[1]] = null;
			};
		}
	};
}();

addEvent(window, 'load', stretchPage, false);
addEvent(window, 'unload', EventCache.flush, false);