//-------------------------
//-- START OF EVENT CODE --
//-------------------------
function Event(evt)
{
    this.event = GetEvent(evt);
    this.eventElement = GetEventElement(evt);
    this.eventElementPosition = GetEventElementPosition(evt);
    this.eventElementDimensions = GetEventElementDimensions(evt);
    this.windowDimensions = GetWindowDimensions();
}

function GetEvent(evt)
{
    if(window.event)
    {
        return window.event;
    }
    else
    {
        return evt;
    }
}

function GetEventElement(evt)
{
    var e = GetEvent(evt);

    var elm;
    if(e.srcElement)
    {
        elm = e.srcElement;
    }
    else
    {
        elm = e.target;
    }
    
    return elm;
}

function GetEventElementPosition(evt)
{
    var obj = GetEventElement(evt);
    
	var curleft = 0;
	var curtop = 0;
	
	if (obj.offsetParent)
	{
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent)
        {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	
	return [curleft, curtop];
}

function GetEventElementDimensions(evt)
{
    var obj = GetEventElement(evt);
    
	var innerWidth = 0;
	var innerHeight = 0;
	
    if(obj.offsetWidth)
    {   
        innerWidth = obj.offsetWidth;
        innerHeight = obj.offsetHeight;
    }
    else
    {
        innerWidth = obj.clientWidth;
        innerHeight = obj.clientHeight;
    }
    
	return [innerWidth, innerHeight];
}

function GetElementPosition(obj)
{
	var curleft = 0;
	var curtop = 0;
	
	if (obj.offsetParent)
	{
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent)
        {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	
	return [curleft, curtop];
}

function GetElementDimensions(obj)
{
	var innerWidth = 0;
	var innerHeight = 0;
	
    if(obj.offsetWidth)
    {   
        innerWidth = obj.offsetWidth;
        innerHeight = obj.offsetHeight;
    }
    else
    {
        innerWidth = obj.clientWidth;
        innerHeight = obj.clientHeight;
    }
    
	return [innerWidth, innerHeight];
}

function GetWindowDimensions()
{
    if (window.innerWidth)
    {
        return [window.innerWidth, window.innerHeight];
    }
 
    if (document.body.clientWidth)
    {
        return [document.body.clientWidth, document.body.clientHeight];
    }
    
    return [0, 0];
}
//-----------------------
//-- END OF EVENT CODE --
//-----------------------
