try { document.execCommand ('BackgroundImageCache', false, true); } catch (e) {}

function tii_dom_createElement (nodeName, attributes) {
	var isopera = typeof window.opera != 'undefined';
	var isie = typeof document.all != 'undefined' && !isopera && navigator.vendor != 'KDE';
		
	var newElement;
	try {
		newElement = document.createElement (nodeName);
	}
	catch (error) {
		return null;
	}
	
	var attributesLength = attributes.length;
	for (var i = 0; i < attributesLength; i++) {
		var attribute = attributes[i][0];
		var value = attributes[i][1];
		newElement.setAttribute(attribute, value);
		switch (attribute) {
			case 'id':
				newElement.id = value;
				break;
			case 'class':
				if (isie) {
					newElement.setAttribute ('className', value);
				}
				newElement.className = value;
				break;
			case 'style':
				newElement.style.cssText = newElement.style.cssText + ' ' + value;
				break;
			case 'for':
				if (isie) {
					newElement.setAttribute ('htmlFor', value);
				}
				newElement.htmlFor = value;
		}
	}
	return newElement;
}


function tii_dom_removeWhitespaceTextNodes(node) {
	for (var x = 0; x < node.childNodes.length; x++) {
		var child = node.childNodes [x];
		if (child.nodeType == 3 && !/\S/.test(child.nodeValue)) {
			node.removeChild(node.childNodes[x]);
			x--;
		}
		if (child.nodeType == 1) {
			tii_dom_removeWhitespaceTextNodes(child);
		}
	}
}

function tii_callFunctionOnWindowLoad(functionToCall) {
	if (typeof window.addEventListener != 'undefined') {
		window.addEventListener ('load', functionToCall, false);
	}
	else if (typeof document.addEventListener != 'undefined') {
		document.addEventListener ('load', functionToCall, false);
	}
	else if (typeof window.attachEvent != 'undefined') {
		window.attachEvent ('onload', functionToCall);
	}
	else {
		var oldFunctionToCall = window.onload;
		if (typeof window.onload != 'function') {
			window.onload = functionToCall;
		}
		else {
			window.onload = function () {
				oldFunctionToCall ();
				functionToCall ();
			};
		}
	}
}

function tii_callFunctionOnElementLoad(targetId, functionToCall) {
	var myArguments = arguments;
	tii_callFunctionOnWindowLoad (function () {
		window.loaded = true;
	});
	var targetElement = document.getElementById (targetId);
	if (targetElement == null && !window.loaded) {
		var pollingInterval = setInterval (function () {
			if (window.loaded) {
				clearInterval (pollingInterval);
			}
			targetElement = document.getElementById (targetId);
			if (targetElement != null) {
				clearInterval(pollingInterval);
				var argumentsTemp = new Array();
				var argumentsTempLength = myArguments.length - 2;
				for (var i = 0; i < argumentsTempLength; i++) {
					argumentsTemp[i] = myArguments[i + 2];
				}		
				functionToCall.apply(this, argumentsTemp);
			}
		}, 10);
	}
}


function tii_addEventHandlerOnElementLoad(targetId, eventType, functionToCall, bubbleEventUpDOMTree) {
	tii_callFunctionOnWindowLoad (function() {window.loaded = true;});
	var targetElement = document.getElementById (targetId);
	if (targetElement == null && !window.loaded) {
		var pollingInterval = setInterval (function () {
			if (window.loaded) {
				clearInterval(pollingInterval);
			}
			targetElement = document.getElementById(targetId);
			if (targetElement != null) {
				clearInterval(pollingInterval);
				tii_addEventHandler(targetElement, eventType, functionToCall, bubbleEventUpDOMTree);
			}
		}, 10);
	}
}


function tii_addEventHandler(targetElement, eventType, functionToCall, bubbleEventUpDOMTree) {
	if (!targetElement) {
		window.status = 'Warning: Tried to attach event to null object';
		return false;
	}
	if (typeof targetElement.addEventListener != 'undefined') {
		targetElement.addEventListener (eventType, functionToCall, bubbleEventUpDOMTree);
	}
	else if (typeof targetElement.attachEvent != 'undefined') {
		targetElement.attachEvent ('on' + eventType, functionToCall);
	}
	else {
		eventType = 'on' + eventType;
		if (typeof targetElement [eventType] == 'function') {
			var oldListener = targetElement [eventType];
			targetElement [eventType] = function () {
				oldListener ();
				return functionToCall ();
			}
		}
		else {
			targetElement [eventType] = functionToCall;
		}
	}
	return true;
}

function tii_removeEventHandler(targetElement, eventType, functionToRemove, bubbleEventUpDOMTree) {
	if (typeof targetElement.removeEventListener != "undefined") {
		targetElement.removeEventListener(eventType, functionToRemove, bubbleEventUpDOMTree);
	}
	else if (typeof targetElement.detachEvent != "undefined") {
		targetElement.detachEvent("on" + eventType, functionToRemove);
	}
	else {
		targetElement["on" + eventType] = null;
	}
	return true;
}

function tii_stopDefaultAction (event) {
	event.returnValue = false;
	if (typeof event.preventDefault != 'undefined') {
		event.preventDefault ();
	}
}

// Show / Hide layer
function togglePop(szDivID, iState) // 1 visible, 0 hidden
{
   var obj = document.layers ? document.layers[szDivID] :
   document.getElementById ?  document.getElementById(szDivID).style :
   document.all[szDivID].style;
   obj.visibility = document.layers ? (iState ? "show" : "hide") :
   (iState ? "visible" : "hidden");
}


// Text resizer
var resizingLinks;
function resize_text(newSize) {
	for(i=0;i<resizingLinks.length;i++) {
		if(newSize-1 == i){resizingLinks[i].style.color='#666';}
		else{resizingLinks[i].style.color='#003366';}
	}
	var resizeables = ['txtResizeArea'/*,'footer'*/];
	for(i=0;i<resizeables.length;i++) {
		tmpElem = document.getElementById(resizeables[i]);
		tmpElem.style.fontSize=(1+((newSize-1)*.21)).toString()+'em';
	}
}

function startResizer() {
	if(document.getElementById("txtResizer") && document.getElementById("txtResizer").getElementsByTagName("span") && document.getElementById("txtResizer").getElementsByTagName("span").length > 2) {
		resizingLinks = document.getElementById("txtResizer").getElementsByTagName("span");
		resizingLinks[0].style.color='#666';
		tii_addEventHandler(resizingLinks[0], 'click',function(){resize_text(1); },false);
		tii_addEventHandler(resizingLinks[1], 'click',function(){resize_text(2); },false);
		tii_addEventHandler(resizingLinks[2], 'click',function(){resize_text(3); },false);
	}
}
tii_callFunctionOnWindowLoad(startResizer);
