////////////////////////////////////////////////////////////////////
// cristianvarga.ro
// 05.08.2010
////////////////////////////////////////////////////////////////////


/*
 * main functions that allow tracking and cancellation of events;
 */
// -----------------------------------------------------------------
function catchEvent(eventObj, event, eventHandler)
{
    if (eventObj.addEventListener)
    {
        eventObj.addEventListener(event, eventHandler, false);
    }
    else if (eventObj.attachEvent)
    {
        event = "on" + event;
        eventObj.attachEvent(event, eventHandler);
    }
}
function removeEvent(eventObj, event, eventHandler)
{
    if (eventObj.addEventListener)
        eventObj.removeEventListener(event, eventHandler, false);
    else if (eventObj.attachEvent)
    {
        event = "on" + event;
        eventObj.detachEvent(event, eventHandler);
    }
}
function cancelEvent(event)
{
    if (event.preventDefault)
    {
        event.preventDefault();
        event.stopPropagation();
    }
    else
    {
        event.returnValue = false;
        event.cancelBubble = true;
    }
}
// -----------------------------------------------------------------


/*
 * return width and / or height client window;
 *
 * @params
 * ...
 *
 * @return
 * number
 */
// -----------------------------------------------------------------
 function getWinWidth()
 {
	 if (getBrowserInfo()[0] == "Microsoft Internet Explorer")
	 {
		 if (getIEVersion() < 6)
		 {
			 return document.body.clientWidth;
		 }
		 else
		 {
		 	return document.documentElement.clientWidth;
		 }
	 }
	 else if (getBrowserInfo()[0] == "Netscape")
	 {
		 return window.innerWidth;
	 }
 }
 function getWinHeight()
 {
	 if (getBrowserInfo()[0] == "Microsoft Internet Explorer")
	 {
		 if (getIEVersion() < 6)
		 {
			 return document.body.clientHeight;
		 }
		 else
		 {
		 	return document.documentElement.clientHeight;
		 }
	 }
	 else if (getBrowserInfo()[0] == "Netscape")
	 {
		 return window.innerHeight;
	 }
 }
 // ------------- ------------
 function getBodyWidth()
 {
	 return document.body.clientWidth;
 }
 function getBodyHeight()
 {
	 return document.body.clientHeight;
 }
// -----------------------------------------------------------------


/**
 * see the opacity for both types of explorers: IE / Netscape.
 *
 * @params
 * object	<- object that will be affected;
 *
 * value	<- the value of opacity that will be applied to the object;
 *			<- the value must be a number from 0 to max. 10.
 *
 * @return
 * ...
 */
// -----------------------------------------------------------------
function setOpacity(object, value)
{
	if (getBrowserInfo()[0] == "Microsoft Internet Explorer")
	{
		object.style.filter = 'alpha(opacity = ' + value * 10 + ')';
	}
	else if (getBrowserInfo()[0] == "Netscape")
	{
		object.style.opacity = value / 10;
	}
}
// -----------------------------------------------------------------
 
 
/*
 * determines the type of browser used by client;
 * returns an array with information about the browser.
 */
// -----------------------------------------------------------------
function getBrowserInfo()
{
	return new Array(navigator.appName, 
		navigator.appVersion, 
		navigator.platform);
}
function getIEVersion()
{
	return parseFloat( String( getBrowserInfo()[1] ).
		substr( parseInt( String( getBrowserInfo()[1]).
		indexOf("MSIE") ) + 5, 3 ) );
}
// -----------------------------------------------------------------
