var Enforce = new Object();

/* Metody realizujace podstawowe funkcjonalnosci */
var $ = function(name, referer)
{
	if(!referer)
		return document.getElementById(name);
	else
		return referer.document.getElementById(name);
}

Enforce.Screen = function()
{
	if( typeof( window.innerWidth ) == 'number' )
	{
		//Non-IE
		return [window.innerWidth, window.innerHeight];
	}
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
	{
		//IE 6+ in 'standards compliant mode'
		return [document.documentElement.clientWidth, document.documentElement.clientHeight];
	}
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
	{
		//IE 4 compatible
		return [document.body.clientWidth, document.body.clientHeight];
	}
}

Enforce.Scroll = function()
{
	if( typeof( window.pageYOffset ) == 'number' )
	{
		//Netscape compliant
		return [window.pageXOffset, window.pageYOffset];
	}
	else if( document.documentElement && ( typeof(document.documentElement.scrollLeft) != 'undefined' || typeof(document.documentElement.scrollTop) != 'undefined' ) )
	{
		//IE6 standards compliant mode
		return [document.documentElement.scrollLeft, document.documentElement.scrollTop];
	}
	else if( document.body && ( typeof(document.body.scrollLeft) != 'undefined' || typeof(document.body.scrollTop) != 'undefined' ) )
	{
		//DOM compliant
		return [document.body.scrollLeft, document.body.scrollTop];
	}
}

Enforce.Submit = function(btn)
{
	var form = btn;
	
	while(form.tagName.toLowerCase() != 'form' && form.parentNode)
	{
		form = form.parentNode;
	}
	
	if(form.tagName.toLowerCase() == 'form')
	{
		form.submit();
	}
	
	return false;
}

Enforce.Redirect = function(url)
{
	location.href = url;
}

/* Obsluga zdarzen */
Enforce.Events = new Object();

Enforce.Events.add = function(element, eventName, callback)
{
	if(typeof(element) == "string")
	{
		element = $(element);
	}
	
	if(element.addEventListener)
		element.addEventListener(eventName, callback, false);
	else if(element.attachEvent)
		element.attachEvent("on" + eventName, callback);
}

Enforce.Events.remove = function(element, eventName, callback)
{
	if(typeof(element) == "string")
	{
		element = $(element);
	}
	
	if(element.removeEventListener)
		element.removeEventListener(eventName, callback, false);
	else if(element.detachEvent)
		element.detachEvent("on" + eventName, callback);
}

