	var visFrame = null;
	var visGrid = null;
	var visContent = null;
	var visButton= null;
	var defer = false;
	var timerHnd = -1;
	var stepx = 25;
	var boxes = new Array();
	var isStd = false;
	var isAdvButton = true;
	var gotSimilar = false;
	var gotWorld = false;
	var gotDisc = false;
	if (window.addEventListener) isStd = true;

	function box() {
		var frame = null;
		var contents = null;
	}

	function showElement(src,fun) {
		var capture = false;
		closeElement();
		var gridElem;
		var frameElem;
		var contentElem=null;
		var hh = 195;
		var left;
		if (src.parentElement)
			left = src.parentElement.offsetLeft - 100;
		else
			left = src.offsetLeft - 100;

		switch (fun) {
			case 'cont':
				capture = true;
				gridElem = "contents-grid";
				frameElem = "contents-wrap";
				contentElem = "contents-content";
				break;
			case 'category':
				capture = true;
				gridElem = "cat-grid";
				frameElem = "cat-wrap";
				break;
			case 'disc':
				gridElem = "discussion-grid";
				frameElem = "discussion-wrap";
				contentElem = "discussion-content";
				if (!gotDisc) {
					targetId = fun;
					target = "discussion-content";
					getStuffFromMommy('disc4.php?n=' + index);
				}
				hh = 695;
				break;
			case 'hist':
				capture = true;
				gridElem = "history-grid";
				frameElem = "history-wrap";
				contentElem = "history-content";
				break;
			case 'rela':
				capture = true;
				gridElem = "related-grid";
				frameElem = "related-wrap";
				contentElem = "related-content";
				hh = 395;
				if (!gotSimilar) {
					targetId = fun;
					target = "related-content";
					getStuffFromMommy('similar4.php?n=' + index);
				}
				break;
			case 'stat':
				gridElem = "statistics-grid";
				frameElem = "statistics-wrap";
				break;
			case 'worl':
				capture = true;
				gridElem = "world-grid";
				frameElem = "world-wrap";
				contentElem = "world-content";
				if (!gotWorld) {
					targetId = fun;
					target = "world-content";
					getStuffFromMommy('http://leksikon.org/art.php?n=5191');
				}
				hh = 695;
				break;
			case 'email':
				gridElem = "email-grid";
				frameElem = "email-wrap";
				isAdvButton = false;
				hh = 235;
				if (src.parentElement)
					left = src.parentElement.parentElement.offsetLeft - 100;
				else
					left = src.parentNode.parentNode.offsetLeft - 100;
				break;
		}

		if (left<3)
			left = 3;
		visFrame = document.all[frameElem];
		for (var i=boxes.length-1; i>=0; i--)
			if (boxes[i].frame == visFrame)
				return;

		visGrid = document.all[gridElem];
		visFrame.style.display = 'block';
		visGrid.style.display = 'block';
		var w = document.body.clientWidth - visFrame.clientWidth - 8;
		if (w<left)
			left = w;
		visFrame.style.left = left;
		visGrid.style.left = left;
		if (contentElem) {
			visContent = document.all[contentElem];
			visContent.style.display = 'block';
			visContent.style.left = left;
		} else {
			visContent = null;
		}
		visButton= src;
		if (isAdvButton)
			src.style.backgroundPosition = '0 -64px';

		try {
		  if (capture) {
			defer = true;
			if (isStd)
				window.addEventListener("click", closeElement, false);
			else
				document.onclick = closeElement;
		  }
		  else {
			if (isStd)
				window.removeEventListener("click", closeElement, false);
			else
				document.onclick = null;
		  } 
		} catch(e) {}

		if (isStd) {
			visFrame.style.height = 20;
			visGrid.style.height = 0;
			if (visContent)
				visContent.style.height = 0;
		} else {
			visFrame.style.pixelHeight = 20;
			visGrid.style.pixelHeight = 0;
			if (visContent)
				visContent.pixelHeight = 0;
		}
		var bx= new box;
		bx.frame = visFrame;
		bx.grid = visGrid;
		bx.content = visContent;
		bx.stepy = Math.round(hh/10);
		bx.hh = hh;
		boxes.push(bx);
		if (timerHnd<0)
			timerHnd = setInterval(advElement, 10);
	}
	function clrTimer() {
		clearInterval(timerHnd);
		timerHnd = -1;
	}
	function advElement() {
		var close = true;
		var offset = 10;
		if (!isStd)
			offset = 33;
		for (var i=boxes.length-1; i>=0; i--) {
			if (boxes[i].frame!=null && boxes[i].grid!=null) {
				var max = boxes[i].hh;
				var h;
				if (isStd) {
					h = boxes[i].frame.style.height;
					h = Number(h.substr(0, h.length-2)) + boxes[i].stepy;
				} else
					h = boxes[i].frame.style.pixelHeight + boxes[i].stepy;
				if (h >= max + offset)
					h = max + offset;
				else
					close = false;

				if (isStd)
					boxes[i].frame.style.height = h;
				else
					boxes[i].frame.style.pixelHeight = h;

				if (isStd)
					boxes[i].grid.style.height = h - offset;
				else
					boxes[i].grid.style.pixelHeight = h - offset;
				if (boxes[i].content!=null) {
					if (isStd)
						boxes[i].content.style.height = h - offset - 25;
					else
						boxes[i].content.style.pixelHeight = h - offset - 25;
				}
				if (h<0 && boxes[i].stepy<0) {
					if (boxes[i].frame!=null)
						boxes[i].frame.style.display = 'none';

					if (boxes[i].grid!=null)
						boxes[i].grid.style.display = 'none';


					if (boxes[i].content!=null)
						boxes[i].content.style.display = 'none';

					boxes.splice(i,1);
				} else
					close = false;
			}
		}
		if (close)
			clrTimer();
	}
	function closeElement() {
		if (defer) {
			defer = false;
			return;
		}
		for (var i=0; i<boxes.length; i++)
			boxes[i].stepy = -Math.round(boxes[i].hh/10);

		if (timerHnd<0)
			timerHnd = setInterval(advElement, 10);

		if (visButton!=null) {
			if (visFrame.id.substr(0,5) == 'email')
				return;

			var vb = visButton;
			visButton=null;
			btMouseOut(vb);
		}
	}
	function btMouseOver(src) {
		if (visButton!=src)
			src.style.backgroundPosition = '0 -32px';
	}
	function btMouseOut(src) {
		if (visButton!=src)
			src.style.backgroundPosition = '0 0px';
	}
	function setFocusx(elem) {
		elem.className += " UI-Form-Field-focus";
	}
	function setFocusOut(elem) {
		var n = elem.className.indexOf(" UI-Form-Field-focus");
		if (n>0)
			elem.className = elem.className.substr(0,n) + elem.className.substr(n+20);
	}


function fontsizeup() {
  active = getActiveStyleSheet();
	  switch (active) {
    case 'A--' : 
      setActiveStyleSheet('A-');
      break;
    case 'A-' : 
      setActiveStyleSheet('A');
      break;
    case 'A' : 
      setActiveStyleSheet('A+');
      break;
    case 'A+' : 
      setActiveStyleSheet('A++');
      break;
    case 'A++' :
      break;
    default :
      setActiveStyleSheet('A');
      break;
  }
}

function fontsizedown() {
  active = getActiveStyleSheet();
  switch (active) {
    case 'A++' : 
      setActiveStyleSheet('A+');
      break;
    case 'A+' : 
      setActiveStyleSheet('A');
      break;
    case 'A' : 
      setActiveStyleSheet('A-');
      break;
    case 'A-' : 
      setActiveStyleSheet('A--');
      break;
    case 'A--' : 
       break;
    default :
      setActiveStyleSheet('A--');
      break;
  }
}

function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  return ('A');
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

window.onload = function(e) {
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
if (title == 'null') {
  title = getPreferredStyleSheet();
}

setActiveStyleSheet(title);

function sendit() {
    var tx = document.all['tx'].value;
    var rcv = document.all['rcv'].value;
    var sender = document.all['sender'].value;
    var mess = document.all['mess'].value;
    if (tx == '' || rcv == '')
      alert('Du skal både angive din egen og modtagers mailadresse');
    else {
        var param = "tx=" + encodeURIComponent(tx) + "&";
        param += "sender=" + encodeURIComponent(sender) + "&";
        param += "rcv=" + encodeURIComponent(rcv) + "&";
        param += "mess=" + encodeURIComponent(mess) + "&";
        param += "n=" + encodeURIComponent(source) + "&";
        param += "title=" + encodeURIComponent(title);
	tellMommy(param, "tellfriend.php");
	alert("Mail er sendt");
        closeElement();
    }
}

function senddisc() {
    var tx4 = document.all['tx4'].value;
    var subject4 = document.all['subject4'].value;
    var pass4 = document.all['pass4'].value;
    var mess4 = document.all['mess4'].value;
    if (tx4 == '' || subject4 == '' || pass4 == '' || mess4 == '')
      alert('Du skal både angive din mailadresse, password, overskrift på indlægget og indlægget før det kan sendes\r\nHvis du ikke har brugt forummet før, skal du oprettes som bruger, og her har vi også brug for en mailadresse og det password du vil benytte');
    else {
        var param = "tx4=" + encodeURIComponent(tx4) + "&";
        param += "subject4=" + encodeURIComponent(subject4) + "&";
        param += "pass4=" + encodeURIComponent(pass4) + "&";
        param += "mess4=" + encodeURIComponent(mess4) + "&";
        param += "n=" + index;
	alert(tellMommy(param, "postdiscussion4.php"));
        closeElement();
    }
}

function tellMommy(param, url) {
      try {
	if (window.DOMParser)
		xmlHttpReq = new XMLHttpRequest(); //firefox
	else
        	xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");

        xmlHttpReq.open("POST", url, false);
        xmlHttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttpReq.setRequestHeader("Content-length", param.length);
        xmlHttpReq.setRequestHeader("Connection", "close");
        xmlHttpReq.send(param);
	return xmlHttpReq.responseText;
      } catch(e) {
      }
	return "Afsendelse fejlede";
}

function showGoogleMap(lat,lng) {
        var mapDiv = document.getElementById('mapCanvas');
	mapDiv.style.width = "600px";
	mapDiv.style.height = "500px";
        var map = new google.maps.Map(mapDiv, {          center: new google.maps.LatLng(lat,lng),          zoom: 4,          mapTypeId: google.maps.MapTypeId.HYBRID,          mapTypeControl: true,          mapTypeControlOptions: {              style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,              position: google.maps.ControlPosition.TOP          },          navigationControl: true,          navigationControlOptions: {              style: google.maps.NavigationControlStyle.ZOOM_PAN,              position: google.maps.ControlPosition.TOP_LEFT          },          scaleControl: true,          scaleControlOptions: {              position: google.maps.ControlPosition.TOP_RIGHT          }        });
}

function showLexMap() {
	document.all['mapCanvas'].innerHTML = document.all['mapLex'].innerHTML;
}

var xmlHttpReq;
var target;
var targetId;
function returnData() {
	if (xmlHttpReq.readyState == 4) {
		document.all[target].innerHTML = xmlHttpReq.responseText;
		switch (targetId) {
			case 'rela': gotSimilar = true;
				break;
			case 'worl': gotWorld = true;
				break;
			case 'disc': gotDisc = true;
				break;
		}
	}
}

function getStuffFromMommy(url) {
  try {
	if (window.DOMParser)
		xmlHttpReq = new XMLHttpRequest(); //firefox
	else
        	xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP.3.0");

        xmlHttpReq.open("GET", url, true);
	xmlHttpReq.onreadystatechange = returnData;
        xmlHttpReq.send();
  } catch(e) {
  }
}

