
/* --- misc inits and vars --- */


// init some arrow images used on the left menus
var img_arrows		= new Array();
img_arrows[0]		= new Image();
img_arrows[0].src	= "img/arrow-forward.gif";
img_arrows[1]		= new Image();
img_arrows[1].src	= "img/arrow-down.gif";

// get browser
var ie7				= false;
var ie5				= (document.getElementById && document.all); 
var ns6				= (document.getElementById && !document.all); 
var ua				= navigator.userAgent.toLowerCase();
var isapple			= (ua.indexOf('applewebkit') != -1 ? 1 : 0);

version = parseFloat(navigator.appVersion.split("MSIE")[1]);
if (version >= 7) { ie7  = true; }


/* --- good to have functions --- */


// Like GetElementById but on class-name instead
function getElementsByClassName(oElm, strTagName, oClassNames)
{
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object") {
		for(var i=0; i<oClassNames.length; i++) {
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	} else {
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++) {
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++) {
			if(!arrRegExpClassNames[k].test(oElement.className)) {
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}


/* --- misc menu functions --- */

// collapse all menus
function switchMenuAll(submenu, img_obj, a_tag)
{
	var hd = new Array();	
	var hm = new Array();	
	hd = getElementsByClassName(document.getElementById("sidecol"), "ul", "menu_visible"); 
	hm = getElementsByClassName(document.getElementById("sidecol"), "a", "menu_main_selected"); 
	for (i=0;i<hd.length;i++ ) {
		hd[i].className = "menu_invisible";
	}
	for (i=0;i<hm.length;i++ ) {
		hm[i].className = "menu_main_unselected";
	}	
	switchMenu(submenu, img_obj, a_tag);
}

// expand menu
function switchMenu(submenu, img_obj, a_tag)
{
	var el = document.getElementById(submenu);
	switchArrowImage(img_obj);

	if (a_tag.className == "menu_main_unselected") {
		a_tag.className = "menu_main_selected";
	} else {
		a_tag.className = "menu_main_unselected";
	}

	if (el.className == "menu_invisible" ) {
		el.className = "menu_visible";
	} else {
		el.className = "menu_invisible";
	}
}


// switch to down-arrow for expanded menus and right-arrow for collapsed
function switchArrowImage(objimg)
{
	var ai = document.getElementById(objimg);
	if (ai.src == img_arrows[0].src) {
		ai.src = img_arrows[1].src;
	} else if (ai.src == img_arrows[1].src) {
		ai.src = img_arrows[0].src;
	} else {
		ai.src = img_arrows[1].src;
	}		
}


/* --- Here goes tooltip stuff for the calendar --- */

// some position offsets
if (ie7) {
	var offsetx		= -12;
	var offsety		= -10;
} else {
	var offsetx		= -12;
	var offsety		= -20;
}



var toolpadding		= "2px 4px 2px 4px;";


// create new toolip element
function newelement(newid)
{ 
    if(document.createElement)
    { 
        var el = document.createElement('div'); 
        el.id = newid;     
        with(el.style)
        { 
            display = 'none';
            position = 'absolute';
        } 
        el.innerHTML = '&nbsp;'; 
        document.body.appendChild(el); 
    } 
} 

// Get X pos
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x) {
		curleft += obj.x;
	}
	return curleft;
}

// Get Y pos
function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
	}
	return curtop;
}

// do the actual tooltip
function tooltip(tip, obj)
{
	var objCaller = document.getElementById(obj);
    
	if(!document.getElementById("tooltip")) {
		newelement("tooltip");
	}
	var lixlpixel_tooltip = document.getElementById("tooltip");
	lixlpixel_tooltip.innerHTML = tip;
	lixlpixel_tooltip.style.display = "block";
	lixlpixel_tooltip.style.padding = toolpadding; 

	var lixlpixel_tooltip = document.getElementById("tooltip");
	lixlpixel_tooltip.style.left = findPosX(objCaller) + offsetx + "px";
	lixlpixel_tooltip.style.top = findPosY(objCaller) + offsety + "px";
}

// close the tooltip
function close_tooltip()
{
	document.getElementById("tooltip").style.display = 'none';
}


/* --- misc functions --- */

// open new window
function new_win(url)
{
        nw = open(url, 'nw');
        nw.focus();
}


// function to select all checkboxes in the advanced search
function select_all(in_name, in_trigger)
{
	var selectBox	= document.getElementById(in_name);
	if (in_trigger.checked == true) { state = true; } else { state = false; }
	for (var i = 0; i < selectBox.options.length; i++) { selectBox.options[i].selected = state; }
}





// link from iframe calendar to search document
function go_calendar(in_date)
{
	parent.location.href = '/rattighet_sok.php?date=' + in_date;
}


// expand/collapse the advanced search form
function expand_advanced()
{
	var sf = document.getElementById("advanded_search");
	if (sf.style.display == 'none') {
		sf.style.display = 'block';
	} else {
		sf.style.display = 'none';
	}
}



