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;
}

Enforce.winModalWindow = null;
Enforce.ShowWindow = function(url, resizable)
{
	// resizeMode:
	// 0 - default size
	// 1 - resizeable
	// 2 - autosize
	
	resizable = (resizable) ? 'yes' : 'no';
	
	var wndWidth = 760;
	var wndHeight = 520;
	
	var scrWidth = 640;
	var scrHeight = 450;
	
	if(window.screen)
	{
		scrWidth = screen.availWidth;
		scrHeight = screen.availHeight;
	}
	
	var wndParams =  "dependent=yes,"
				+"left=" + (scrWidth - wndWidth)/2 + ","
				+"top=" + (scrHeight - wndHeight)/2 + ","
				+"screenX=" + (scrWidth - wndWidth)/2 + ","
				+"screenY=" + (scrHeight - wndHeight)/2 + ","
				+"width=" + wndWidth + ","
				+"height=" + wndHeight + ","
				+"resizable=" + resizable;
	
	Enforce.winModalWindow = window.open(url, "ModalChild", wndParams)
	Enforce.winModalWindow.focus();
	
	return Enforce.winModalWindow;
}


/* 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);
}


