function BIFObject() {
	this.isW3cc = (document.attachEvent == undefined);
	this.addEventListener = BIF_addEventListener;
	this.removeEventListener = BIF_removeEventListener;
	this.getEventTarget = BIF_getEventTarget;
	this.showElement = BIF_showElement;
	this.hideElement = BIF_hideElement;
	this.getWindowInnerWidth = BIF_getWindowInnerWidth;
	this.getWindowInnerHeight = BIF_getWindowInnerHeight;
	this.setInnerText = BIF_setInnerText;
	this.getInnerText = BIF_getInnerText;
}

function BIF_addEventListener(node, type, listener, useCapture) {
	if (this.isW3cc)
	{
		node.addEventListener(type, listener, useCapture);
	}
	else
	{
		node.attachEvent("on" + type, listener);
	}
}

function BIF_removeEventListener(node, type, listener, useCapture) {
	if (this.isW3cc)
	{
		node.removeEventListener(type, listener, useCapture);
	}
	else
	{
		node.detachEvent("on" + type, listener);
	}
}

function BIF_getEventTarget(eventObject)
{
	return (this.isW3cc) ? eventObject.target : eventObject.srcElement;
}


function BIF_showElement(elementId)
{
	document.getElementById(elementId).style.visibility = "visible";
}

function BIF_hideElement(elementId, timeout)
{
	if (timeout != null)
		window.setTimeout(
			"document.getElementById('" + elementId + "').style.visibility = 'hidden';",
			timeout);
	else
		document.getElementById(elementId).style.visibility = "hidden";
}

function BIF_getWindowInnerWidth()
{
	if (this.isW3cc)
	{
		return window.innerWidth;
	}
	else
	{
		body = document.getElementsByTagName("body")[0];
		body.style.width = "100%";
		return body.clientWidth;
	}
}

function BIF_getWindowInnerHeight()
{
	if (this.isW3cc)
	{
		return window.innerHeight;
	}
	else
	{
		body = document.getElementsByTagName("body")[0];
        body.style.height = "100%";
      
		return body.clientHeight;
	}
}

function BIF_setInnerText(object, text)
{
	if (this.isW3cc)
		object.textContent = text;
	else
		object.innerText = text;
}

function BIF_getInnerText(object)
{
	return (this.isW3cc) ?
		object.textContent : object.innerText;
}
var BIF = new BIFObject();

