if (typeof console == "undefined") {
    window.console = {
        log: function () {}
    };
}

/* Make textareas auto fit text */


/* Get Element */
function getElement (id) {
	if (document.getElementById && document.getElementById(id)) {
		return document.getElementById(id);
	}

	if (document.all && document.all[id]) {
		return document.all[id];
	}

	if (document.layers) {
		for (var i = 1; i < document.layers.length; i++) {
			if (document.layers[i].id == id) {
				return document.layers[i].id;
			}
		}
	}

	return null;
}

/* Show / Hide Div */
function divSwap (id, hide) {
	if (null == (obj = getElement(id))) return;

	if (obj.className && (obj.className == 'hide' || obj.className == 'show')) {
		obj.className = hide ? 'hide' : 'show';
		return;
	}

	if (obj.style.display) {
		obj.style.display = hide ? 'none' : 'block';
	} else if (obj.style.visibility) {
		obj.style.visibility = hide ? 'hidden' : 'visible';
	}

	if (obj.style.height) {
		obj.style.height = hide ? '0' : 'auto';
	}

	if (obj.style.overflow) {
		obj.style.overflow = hide ? 'hidden' : 'visible'
	}

	return obj.style.height;
}

/* Toogle divSwap */
function divToggle (id) {
	if (null == (obj = getElement(id))) return;

	var height;

	if (obj.className) {
		height = obj.className == 'hide' ? divSwap(id) : divSwap(id, true);
	} else if (obj.style.display) {
		height = obj.style.display == 'none' ? divSwap(id) : divSwap(id, true);
	} else if (obj.style.visibility) {
		height = obj.style.visibility == 'hidden' ? divSwap(id) : divSwap(id, true);
	}

	return height;
}

/* Show div */
function divShow (id) {
	return divSwap(id, false);
}

/* Hide Div */
function divHide (id) {
	return divSwap(id, true);
}

/* Toggle tr-swap */
function trToggle (id, buttonid, opentxt, closetxt) {
	if (null == (obj = getElement(id))) return;

	if (! opentxt || opentxt == '') opentxt = 'Visa';
	if (! closetxt || closetxt == '') closetxt = 'Stäng';

	if (obj.style.display) {
		if (obj.style.display != 'none') {
			obj.style.display = 'none';
			if (buttonid) {
				settext(buttonid, opentxt);
			}
		} else {
			if (navigator.appName == 'Microsoft Internet Explorer') {
				obj.style.display = 'block';
			} else {
				obj.style.display = 'table-row';
			}
			if (buttonid) {
				settext(buttonid, closetxt);
			}
		}
	} else {
		obj.style.display = 'none';
		if (buttonid) {
			settext(buttonid, opentxt);
		}
	}

}

function settext(id, content) {
	if (id) {
		if (getElement(id)) {
			var obj = getElement(id);
			obj.innerHTML = content;
			return true;
		}
	}
	return false;
}

function expand(toggleid, buttonid, opentxt, closetxt) {

	if (! opentxt || opentxt == '') opentxt = 'Visa';
	if (! closetxt || closetxt == '') closetxt = 'Stäng';

	var height = divToggle(toggleid);

	if (height == '0px' && buttonid) {
		settext(buttonid, opentxt);
	} else if (buttonid) {
		settext(buttonid, closetxt);
	}
}

function expand_print (id, buttonid, opentxt, closetxt) {
	if (! opentxt || opentxt == '') opentxt = 'Visa';
	if (! closetxt || closetxt == '') closetxt = 'Stäng';

	var height = divShow(id);

	if (height == '0px' && buttonid) {
		setText(buttonid, opentxt);
	} else {
		settext(buttonid, closetxt);
	}
}

function popup(mylink, name, w, h, left, top, retstuff) {
	var href;
	if (typeof(mylink) == 'string')
		href = mylink;
	else
		href = mylink.href;

    /*
	w = (! w) ? 575 : w;
	h = (! h) ? 600 : h;

	if (! left) {
		x = ',left=300';
	} else {
		x = ',left=' + left;
	}

	if (! top) {
		y = ',top=150';
	} else {
		y = ',top=' + top;
	}

	var screenW = 800, screenH = 600;
	if (parseInt(navigator.appVersion)>3) {
		screenW = screen.width;
		screenH = screen.height;
	} else if (navigator.appName == "Netscape" && parseInt(navigator.appVersion)==3 && navigator.javaEnabled()) {
		var jToolkit = java.awt.Toolkit.getDefaultToolkit();
		var jScreenSize = jToolkit.getScreenSize();
		screenW = jScreenSize.width;
		screenH = jScreenSize.height;
	}
	x = ((screenW - w) / 2);
	y = ((screenH - h) / 2);
    */
	var win = window.open(href, name);
	/*
	var win = window.open(href, name, 'width='+w+',height='+h+',toolbar=1,scrollbars=yes,location=1,statusbar=1,menubar=1,resizable=1,left=' + x +',top='+ y);
	if (win) {
		win.moveTo(x,y);
		win.focus();
		if (retstuff == true) {
			return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
	return true;
	*/
    return false;
}

function utf8_decode ( str_data ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +      input by: Aman Gupta
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: utf8_decode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'

    var tmp_arr = [], i = ac = c = c1 = c2 = 0;

    while ( i < str_data.length ) {
        c = str_data.charCodeAt(i);
        if (c < 128) {
            tmp_arr[ac++] = String.fromCharCode(c);
            i++;
        } else if ((c > 191) && (c < 224)) {
            c2 = str_data.charCodeAt(i+1);
            tmp_arr[ac++] = String.fromCharCode(((c & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);
            c3 = str_data.charCodeAt(i+2);
            tmp_arr[ac++] = String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }

    return tmp_arr.join('');
}


function encodeUrl(url)
{
 	if (url.indexOf("?")>0)
 	{
		encodedParams = "?";
 		parts = url.split("?");
 		params = parts[1].split("&");
 		for(i = 0; i < params.length; i++)
 		{
			if (i > 0)
	 		{
				encodedParams += "&";
			}
			if (params[i].indexOf("=")>0) //Avoid null values
			{
				p = params[i].split("=");
				encodedParams += (p[0] + "=" + escape(encodeURI(p[1])));
			}
			else
			{
				encodedParams += params[i];
			}
		}
		url = parts[0] + encodedParams;
	}
	return url;
}

function helpbox(id, txt, right) {
	if (txt)
		var height = divSwap(id, false);
	else
		var height = divSwap(id, true);

	settext(id, txt);

	if (document.layers) {
		document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = right ? getMouserightXY : getMouseXY;
	} else {
		document.onmousemove = right ? getMouserightXY : getMouseXY;
	}

	var xMousePos = 0;
	var yMousePos = 0;
	var xMax = 0;
	var yMax = 0;

	var clientPC = navigator.userAgent.toLowerCase();   // Get client info
	var clientVer = parseInt(navigator.appVersion);     // Get browser version

	var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
	var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
		&& (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
		&& (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));

	var is_moz = 0;
	var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
	var is_mac = (clientPC.indexOf("mac")!=-1);
}

function getMouseXY(e) {
	if (document.all) {  //if NS
		xMousePos = window.event.x + document.documentElement.scrollLeft;
		yMousePos = window.event.y + document.documentElement.scrollTop;
		xMax = document.documentElement.clientWidth + document.documentElement.scrollLeft;
		yMax = document.documentElement.clientHeight + document.documentElement.scrollTop;
	} else {
		xMousePos = e.pageX;
		yMousePos = e.pageY;
		xMax = window.innerWidth + window.pageXOffset;
		yMax = window.innerHeight + window.pageYOffset;
	}

	if (xMousePos > 800) xMousePos = 530;
	if (yMousePos > yMax-125) yMousePos = yMax-125;
	if (yMousePos < 50 && xMousePos > 600) xMousePos = 600;

	if (document.getElementById('helpbox')) {
		document.getElementById('helpbox').style.left = xMousePos - 230 + "px";
		document.getElementById('helpbox').style.top = yMousePos-12 + "px";
	}

	return true;
}

function getMouserightXY(e) {
	if (document.all) {  //if NS
		xMousePos = window.event.x + document.documentElement.scrollLeft;
		yMousePos = window.event.y + document.documentElement.scrollTop;
		xMax = document.documentElement.clientWidth + document.documentElement.scrollLeft;
		yMax = document.documentElement.clientHeight + document.documentElement.scrollTop;
	} else {
		xMousePos = e.pageX;
		yMousePos = e.pageY;
		xMax = window.innerWidth + window.pageXOffset;
		yMax = window.innerHeight + window.pageYOffset;
	}

	if (xMousePos > 800) xMousePos = 530;
	if (yMousePos > yMax-125) yMousePos = yMax-125;
	if (yMousePos < 50 && xMousePos > 600) xMousePos = 600;

	if (document.getElementById('helpbox')) {
		document.getElementById('helpbox').style.left = xMousePos + 12 + "px";
		document.getElementById('helpbox').style.top = yMousePos-12 + "px";
	}

	return true;
}

function getSelected (id) {
	if (! (obj = getElement(id))) return 0;

	return obj.value;
}

function getMultiSelected (id) {
	if (! (obj = getElement(id))) return '';

	retval = '';

	for (var i = 0; i < obj.options.length; ++i) {
		if (obj.options[i].selected) {
			if (retval) retval += ',';
			retval += obj.options[i].value;
		}
	}

	return retval;
}

function makestartpage(txt, extra) {
    if (document.all){
        document.write('<a '+extra+' href="javascript:;" onClick="this.style.behavior=\'url(#default#homepage)\';this.setHomePage(location.href);">');
        document.write(txt+'</a>');
    }
}

function addBookmark(title,url) {
	if (window.sidebar) {
		window.sidebar.addPanel(title, url,"");
	} else if( document.all ) {
		window.external.AddFavorite( url, title);
	} else if( window.opera && window.print ) {
		return true;
	}
}

