// Declare a single namespace in the global scope
var dk;
if (!dk) dk = {};
else if (typeof(dk) != 'object')
	throw new Error('Der findes allerede en global variabel ved navn \u0027dk\u0027, som ikke er et object');
if (!dk.qbrix) dk.qbrix = {};
else if (typeof(dk.qbrix) != 'object')
	throw new Error('Der findes allerede en variabel ved navn \u0027dk.qbrix\u0027, som ikke er et object');

/***************************************************
 * Declare Window object
 **************************************************/
dk.qbrix.Window =
{
    GetSize : function()
    {
        var width=0, height=0;
    	
        if (typeof(window.innerWidth) == 'number') 
	        width = window.innerWidth;						//Non-IE
        else if (document.documentElement && document.documentElement.clientWidth) 
	        width = document.documentElement.clientWidth;	//IE 6+ in 'standards compliant mode'
        else if (document.body && document.body.clientWidth)
	        width = document.body.clientWidth;				//IE 4 compatible
    		
        if (typeof(window.innerHeight) == 'number')
	        height = window.innerHeight;						//Non-IE
        else if (document.documentElement && document.documentElement.clientHeight)
	        height = document.documentElement.clientHeight;	    //IE 6+ in 'standards compliant mode'
        else if (document.body && document.body.clientHeight)
	        height = document.body.clientHeight;				//IE 4 compatible

        return [width,height];
    },
    
    GetPosition : function()
    {
        var left=0, top=0;
        if (typeof(window.screenLeft) == 'number') 
        {
            // IE properties
            left = window.screenLeft;
            top = window.screenTop;
        }
        else if (typeof(window.screenX) == 'number') 
        {
            // Firefox properties
            left = window.screenX;
            top = window.screenY;
        }    
        return [left,top];
    }
}

/***************************************************
 * Declare Object object
 **************************************************/
if (!dk.qbrix.Object) dk.qbrix.Object = {};
else if (typeof(dk.qbrix.Object) != 'object')
	throw new Error('Der findes allerede en variabel ved navn \u0027dk.qbrix.Object\u0027, som ikke er et object');
dk.qbrix.Object.getPosition = function(obj)
{
	var curleft = curtop = 0;
	if (obj && obj.offsetParent)
	{
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) 
		{
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}
dk.qbrix.Object.getSize = function(obj)
{
	var w = h = 0;
	if (obj)
	{
	    w = obj.offsetWidth;
	    h = obj.offsetHeight;
	}
	return [w,h];
}
dk.qbrix.Object.getStyle = function(obj, style_property)
{
	if (typeof(obj) == 'string')
		obj = document.getElementById(obj);
	else if (typeof(obj) != 'object')
		return '';

	if (obj == null)
	    return '';
	
	var style_value;
	if (obj.currentStyle)
		style_value = obj.currentStyle[style_property];
	else if (window.getComputedStyle)
		style_value = document.defaultView.getComputedStyle(obj, null).getPropertyValue(style_property);
	return style_value;
}

/***************************************************
 * Declare Email object
 **************************************************/
if (!dk.qbrix.Email) dk.qbrix.Email = {};
else if (typeof(dk.qbrix.Email) != 'object')
	throw new Error('Der findes allerede en variabel ved navn \u0027dk.qbrix.Email\u0027, som ikke er et object');
dk.qbrix.Email.get = function()
{
	document.write('<a href="mailto:jorgen&#64;qbrix.dk">jorgen&#64;qbrix.dk</a>'); 
}

/***************************************************
 * Declare Header object
 **************************************************/
if (!dk.qbrix.Header) dk.qbrix.Header = {};
else if (typeof(dk.qbrix.Header) != 'object')
	throw new Error('Der findes allerede en variabel ved navn \u0027dk.qbrix.Header\u0027, som ikke er et object');
dk.qbrix.Header.openLogin = function()
{ 
	var lbl = document.getElementById('lblUsername');
	if (lbl != null) document.getElementById('lblUsername').style['display'] = 'none';

	// Hide menu
	var menu = document.getElementById('QB_headerLoginMenu');
	if (menu != null) menu.style['display'] = 'none';
	
	// Show username/password
	var loginarea = document.getElementById('QB_loginArea');
	if (loginarea != null) loginarea.style['display'] = 'block';
	
	// Move focus to username
	var txt = document.getElementById('txtUsername');
	if (txt != null) txt.focus();
}
dk.qbrix.Header.closeLogin = function()
{
	// Show menu
	var menu = document.getElementById('QB_headerLoginMenu');
	if (menu != null) menu.style['display'] = 'block';
	
	// Hide username/password
	var loginarea = document.getElementById('QB_loginArea');
	if (loginarea != null) loginarea.style['display'] = 'none';
}
dk.qbrix.Header.showUser = function(id)
{
	dk.qbrix.MyPopup.Set('frmUser.aspx', 300, 290);
	dk.qbrix.MyPopup.Open(id);
}
dk.qbrix.Header.deleteUser = function(target, argument)
{
	var rc = confirm('Vil du slette dig som bruger p\u00E5 qbrix.dk ?');
	if (rc && __doPostBack) 
		__doPostBack(target, argument);
}

/***************************************************
 * Declare footer object
 **************************************************/
if (!dk.qbrix.Footer) dk.qbrix.Footer = {};
else if (typeof(dk.qbrix.Footer) != 'object')
	throw new Error('Der findes allerede en variabel ved navn \u0027dk.qbrix.Footer\u0027, som ikke er et object');
dk.qbrix.Footer.EnableResizing = function()
{	
	if (window.attachEvent)
	{
		window.attachEvent('onresize', dk.qbrix.Footer.Place);
		window.attachEvent('onscroll', dk.qbrix.Footer.Place);
	}
	else if (window.addEventListener)
	{
		window.addEventListener('resize', dk.qbrix.Footer.Place, false);
		window.addEventListener('scroll', dk.qbrix.Footer.Place, false);
	}
};

dk.qbrix.Footer.Place = function()
{
	var style = dk.qbrix.Object.getStyle('QB_pageFooter', 'position');

	if (style == 'absolute')
	{
		var myHeight = dk.qbrix.Window.getHeight();
		var scroll_pos = document.body.scrollTop;
		var footerheight, a;

		// Get current footerheight
		footerheight = dk.qbrix.Object.getStyle(document.getElementById('QB_pageFooter'), 'height');
		if (footerheight == 'undefined' || footerheight == 'auto')
			footerheight = dk.qbrix.Object.getStyle(document.getElementById('QB_pageFooter'), 'lineHeight');
		if (footerheight == 'undefined' || footerheight == 'auto')
			footerheight = '26px';
		footerheight = footerheight.substring(0,footerheight.length-2) - 0;
		a = myHeight + scroll_pos - footerheight - 6;

		if (a > 5)
			document.getElementById('QB_pageFooter').style['top'] = a + 'px';
	}
	else if (style == 'relative')
	{
		var all_divs = document.getElementById('QB_pageData').getElementsByTagName('div');
		var pos, size;
		var max_y = 0;
		
		for (var n = 0; n < all_divs.length; n++)
		{
			if (all_divs[n].style['display'] != 'none')
			{
				pos  = dk.qbrix.Object.getPosition(all_divs[n]);
				size = dk.qbrix.Object.getSize(all_divs[n]);
				
				if (pos[1] + size[1] > max_y) max_y = pos[1] + size[1];
			}
		}
		size = dk.qbrix.Object.getSize(document.getElementById('QB_pageHeader'));
		//document.getElementById('QB_mainbox').style['height'] = (max_y - size[1] - 6) + 'px';	
	}
	else
		document.getElementById('QB_pageFooter').style['display'] = 'none';
};

/***************************************************
 * Declare Popup object
 **************************************************/
if (!dk.qbrix.Popup) dk.qbrix.Popup = {};
else if (typeof(dk.qbrix.Popup) != 'object')
	throw new Error('Der findes allerede en variabel ved navn \u0027dk.qbrix.Popup\u0027, som ikke er et object');
dk.qbrix.Popup.Window = null;
dk.qbrix.Popup.open = function(url, width, height, window_id)
{
    var left = Math.floor((screen.availWidth/2) - (width/2));
    var top = Math.floor((screen.availHeight/2) - (height/2));
    var features = 'width=' + width.toString() + 
				   ',height=' + height.toString() + 
				   ',left=' + left.toString() + 
				   ',top=' + top.toString() + 
				   ',scroll=0' + 
				   ',status=0';
    
    // Close eventual window before opening another
	dk.qbrix.Popup.close();
    dk.qbrix.Popup.Window = window.open(url, window_id, features);
    return(dk.qbrix.Popup.Window);
};

dk.qbrix.Popup.close = function(/*optional boolean */ update_main)
{
	if (dk.qbrix.Popup.Window == null)
		return;

	// Close popup window
	dk.qbrix.Popup.Window.close();
	dk.qbrix.Popup.Window = null;	
	
	// Update parent window	
	if (arguments.length < 1) update_main = false;
	if (update_main) window.document.location = window.document.location.pathname;
};