
function initLanguageOverlay()
{
	var elem = document.getElementById('overlay_background');
	if (elem)
	{
		var arrayPageSize = getPageSize();
		elem.style['width'] = String(arrayPageSize[0]) + 'px';
		elem.style['height'] = String(arrayPageSize[1]) + 'px';
	}

	elem = document.getElementById('language_selection');
	if (elem)
	{
		var language_links = elem.getElementsByTagName('a');

		for(var i = 0; i < language_links.length; i++)
		{
			if(document.addEventListener)
			{
				language_links[i].addEventListener('click', showLanguageOverlay, false);
			}
			if(document.attachEvent)
			{
				language_links[i].attachEvent('onclick', showLanguageOverlay);
			}
		}
	}
	elem = document.getElementById('hide_language');
	if (elem)
	{
		if(document.addEventListener)
		{
			elem.addEventListener('click', hideLanguageOverlay, false);
		}
		if(document.attachEvent)
		{
			elem.attachEvent('onclick', hideLanguageOverlay);
		}
	}
}

function hideLanguageOverlay(ev)
{
	var elem = document.getElementById('overlay_background');
	if (elem)
	{
		elem.style['display'] = 'none';
	}

	elem = document.getElementById('language_overlay');
	if (elem)
	{
		elem.style['display'] = 'none';

		var language_containers = elem.getElementsByTagName('div');
		for(var i = 0; i < language_containers.length; i++)
		{
			if(
				language_containers[i].id == 'overlay_en' ||
				language_containers[i].id == 'overlay_se' ||
				language_containers[i].id == 'overlay_no' ||
				language_containers[i].id == 'overlay_dk'
				)
			{
				language_containers[i].style['display'] = 'none';
			}
		}
	}
}

function showLanguageOverlay(ev)
{
	var language;

	var elem = document.getElementById('overlay_background');
	if (elem)
	{
		elem.style['display'] = 'block';
	}

	elem = document.getElementById('language_overlay');
	if (elem)
	{
		elem.style['display'] = 'block';
	}

	if(!ev)
	{
		ev = window.event;
	}
	if(ev.target)
	{
		language = ev.target.className;
	}
	if(ev.srcElement)
	{
		language = ev.srcElement.className;
	}

	elem = document.getElementById('overlay_' + language);
	if (elem)
	{
		elem.style['display'] = 'block';
	}

	window.scrollTo(0, 0);
}

/*
app.closeEditRequestDialog = function() {

	var elem = document.getElementById('edit_request');
	if (elem) {
		elem.className = app.removeClass(elem.className, 'visible');
	}

	elem = document.getElementById('blanker');
	if (elem) {
		elem.className = app.removeClass(elem.className, 'visible');
	}
}
*/

//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.com
// Edit for Firefox by pHaez
//
function getPageSize(){

	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth;
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = xScroll;
	} else {
		pageWidth = windowWidth;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}

/* Init-Funktionsaufruf */

if(document.addEventListener)
{
	window.addEventListener('load', initLanguageOverlay, false);
}
if(document.attachEvent)
{
	window.attachEvent('onload', initLanguageOverlay);
}
