
/**
 * [ common.js ]
 *
 * @author: Pontus Lundwall (dr-m/at\spray/dot\se)
 * @version: $Id: common.js,v 1.20 2005/03/25 11:46:11 dr-m Exp $
 */

// ---------------------------------------------------------------------------------


function checkLogin(event) {
    var isEnter = false;
	if (document.all) {
		isEnter = window.event.keyCode == 13
	}
	else {
		isEnter = event.which == 13;
	}
    if (isEnter) {
    	var f = document.forms.loginform;
    	if (f.login.value.length != 0 && f.pw.value.length  != 0) {
    		doLogin();
    	}
    	else if (f.login.value.length != 0 && f.pw.value.length == 0) {
			f.pw.focus();
        }
        else {
			f.login.focus();
        }
    }
}

function doLogin() {
	var f = document.forms.loginform;
	if (f.login.value.length > 2 && f.pw.value.length > 4) {
		f.submit();
	}
	else {
		alert("Ange användarnamn (e-post adress) och lösenord för att logga in.\n\n"
			+ "Om det är första gången du är här så måste du registrera dig, det är gratis!");

		if (f.login.value.length <= 2) {
			f.login.focus();
			f.login.select();
		}
		else {
			f.pw.focus();
			f.pw.select();
		}
	}
    return false;
}

function getElementPosition(elm) {
	for (var lx=0, ly=0;
    	elm!=null;
    	lx+=elm.offsetLeft, ly+=elm.offsetTop, elm=elm.offsetParent);
    return {x:lx,y:ly}
}

function getWindowSize()
{
    var x,y;
    if (self.innerHeight) { // all except Explorer
    	x = self.innerWidth;
    	y = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight) {
    	// Explorer 6 Strict Mode
    	x = document.documentElement.clientWidth;
    	y = document.documentElement.clientHeight;
    }
    else if (document.body) { // other Explorers
    	x = document.body.clientWidth;
    	y = document.body.clientHeight;
    }
    return {"x" : x, "y" : y};
}

function getWindowScroll()
{
    var x,y;
    if (self.pageYOffset) { // all except Explorer
    	x = self.pageXOffset;
    	y = self.pageYOffset;
    }
    else if (document.documentElement && document.documentElement.scrollTop) {
        // Explorer 6 Strict
    	x = document.documentElement.scrollLeft;
    	y = document.documentElement.scrollTop;
    }
    else if (document.body) { // all other Explorers
    	x = document.body.scrollLeft;
    	y = document.body.scrollTop;
    }

    return {"x" : x, "y" : y};
}


function resizing() {
	var base = document.getElementById("base");
	var p = getElementPosition(base);
    
	var e = document.getElementById("buttonRow");
    if (e != null) {
    	e.style.left = (p.x+26) + "px";
    	e.style.top = (p.y+58) + "px";
    	e.style.visibility = "visible";
    }

    var lb = document.getElementById("leftbarcontent");
	lb.style.height = (layoutMinHeight-40)+ "px";
	var rb = document.getElementById("rightbar");
	rb.style.height = (layoutMinHeight-6)+ "px";

	var e = document.getElementById("centercontent");
	var p = getElementPosition(e);

	var e = document.getElementById("commercial");
	e.style.left = (p.x + 588+30) + "px";
	e.style.top = 8 + "px";
	e.style.visibility = "visible";
}

function traverse(node) {
    var els = node.childNodes;
    for(var i=0; i<els.length; i++) {
        var e = els[i];
		if (e.className == "btn") {
            if (e.parentNode.href == location.href) {
                if (e.src.indexOf("_over") == -1) {
                    var name = e.src.substring(0, e.src.indexOf(".gif"));
                    e.src = name + "_over.gif";
                }
                continue;
            }
			e.onmouseover = function() {
				if (this.src.indexOf("_over") == -1) {
					var name = this.src.substring(0, this.src.indexOf(".gif"));
					this.src = name + "_over.gif";
				}
			}
			e.onmouseout = function() {
				var ix = this.src.indexOf("_over");
				if (ix != -1) {
					var name = this.src.substring(0, ix);
					this.src = name + ".gif";
				}
			}
		}
		if (e.childNodes && e.childNodes.length > 0) {
            traverse(e);
        }
	}
}

var layoutMinHeight = -1;

function updateLayout() {
	var ct = document.getElementById("center");
	var hc = ct.clientHeight;
    if (hc < 582) {
        hc = 582;
    	var e = document.getElementById("centercontent");
        e.style.height = (hc-60) + "px";
    }
	layoutMinHeight = hc;
}

function scrollNews()
{
	var e = document.getElementById("newsbox");
	var k = e.scrollTop;
	e.scrollTop += scrollDir;
	if (k == e.scrollTop) {
		scrollDir = -scrollDir;
	}
	if (0 == e.scrollTop) {
		scrollDir = -scrollDir;
	}
}

function haltScroll() {
	clearInterval(scrollTimer);
}

function runScroll() {
	clearInterval(scrollTimer);
	scrollTimer = setInterval('scrollNews()', 100);
}

var scrollDir = 1;
var scrollTimer = null;

window.onload = function() {
    updateLayout();
	resizing();
	traverse(document.body);
	window.onresize = resizing;
	
	var e = document.getElementById("newsbox");
	if (e != null) {
		setTimeout("runScroll()", 2000);
	}

	setTimeout("resizing()", 500);
	if (typeof(pageInit) != "undefined") {
		pageInit();
	}
}


