﻿Function.prototype.bind = function(o)
{
	var fn = this;
	return function()
	{
		return fn.apply(o, arguments);
	}
}

function addLoadEvent(func) { 
	var oldonload = window.onload; 
	if (typeof window.onload != 'function') { 
			window.onload = func; 
		} else { 
			window.onload = function() { 
			if (oldonload) { 
				oldonload(); 
			} 
			func(); 
		} 
	} 
} 

function getElementsByStyleClass (className)
{
  var all = document.all ? document.all :
    document.getElementsByTagName('*');
  var elements = new Array();
  for (var e = 0; e < all.length; e++)
    if (all[e].className == className)
      elements[elements.length] = all[e];
  return elements;
}

function addEvent(elm, evType, fn, useCapture)
// addEvent and removeEvent
// cross-browser event handling for IE5+,  NS6 and Mozilla
// By Scott Andrew
{
 if (elm.addEventListener){
   elm.addEventListener(evType, fn, useCapture);
   return true;
 } else if (elm.attachEvent){
   var r = elm.attachEvent("on"+evType, fn);
   return r;
 }
}

function nextObject(o)
{
	var n = o;
	do n = n.nextSibling;
	while (n && n.nodeType != 1);
	return n;
}

function previousObject(o)
{
	var p = o;
	do p = p.previousSibling;
	while (p && p.nodeType != 1);
	return p;
}

function passwordSwitch(field)
{
	if (field.getAttribute('type') == 'text')
	{
		field.style.display="none";
		var next = nextObject(field);
		next.style.display="inline";
		next.focus();
	}
	else
	{
		field.style.display="none";
		var prev = previousObject(field)
		prev.style.display="inline";
	}
}

function clearfield(obj, initvalue)
{
	if (obj)
	{
		obj.setAttribute("onblur","setfield(this, '"+initvalue+"');");
		if (obj.value == initvalue)
			obj.value = '';
	}
}
function setfield(obj, value)
{
	if (obj)
	{
		if (obj.value == '')
			obj.value = value;
	}	
}

var attempts = 0;
function login(formObj)
{
	var username = $("#loginUsername").val();
	var password = $("#loginPassword").val();
	var autologin = $("#loginAutologin").val();

	resetDisplayLoginError();
	
	if (username == '')
	{
	  	displayLoginError('Du skal indtaste dit brugernavn (F.eks. din e-mail)');
	  	return false;
	}	
	
	if (password == '')
	{
		displayLoginError('Du skal indtaste din adgangskode.');
	 	return false;
	}

	attempts = attempts +1;
	
	var rpc;
	rpc = new JSONClient('/ajax/login.json.php', true);
	result = rpc.__execAsync('login',loginResult,username,password,autologin, attempts);
	
	return false;
}

function loginResult(success, result)
{
	if (result['redirect'] && result['redirect'] != '')
	{
		window.location = result['redirect'];
	}
	else if (result['message'] != '')
	{
		displayLoginError(result['message']);
	}
}

function resetDisplayLoginError()
{
	displayLoginError('');
}

function displayLoginError(error)
{
	$("#loginError").html((error != '' ? "\u00BB " : "&nbsp; ")+error);
}

function getobj (id) 
{
	if (document.getElementById)
		return document.getElementById(id);
	else if (document.all)
		return document.all[id];
	else if (document.layers)
		return document.layers[id];
	else
		return false;
}


function initpage () 
{
	var obj;
	/*
	if (document.location.hash == "" &&
		(obj = getobj("word")))
		obj.focus();
	*/	
	linkSupportAjax();
	jumpToAjaxLink();
}

function linkSupportAjax()
{
	var links = document.getElementsByTagName('a');
	var count = links.length;
	for (var i=0; i<count; i++)
	{
		if (links[i])
		{
			var onclick = links[i].getAttribute('onclick');			
			if (onclick)
			{
				onclick = onclick.toString();
				if (onclick.indexOf("loadPage(") != -1)
				{
					var parts = onclick.split(",");
					var start = 0;
					if (parts[0].indexOf("/") != -1)
						start = parts[0].lastIndexOf("/")+1;
					else
						start = parts[0].indexOf("'")+1;						
					var stop = parts[0].lastIndexOf(".php");
					
					var href = parts[0].substring(start,stop);
					links[i].setAttribute('href', '#'+href);
				}
			}
		}
	}
}

function jumpToAjaxLink()
{
	var page = window.location.toString();
	var start = page.indexOf("#");
	if (start != -1)
	{
		var ajaxpage = page.substring(start+1);
		findAjaxLink(ajaxpage);
	}
}

function findAjaxLink(hash)
{
	var links = document.getElementsByTagName('a');
	var count = links.length;
	for (var i=0; i<count; i++)
	{
		if (links[i])
		{
			var href = links[i].getAttribute('href');
			if (href)
			{
				if (href.indexOf(hash) != -1)
				{
					var onclick = links[i].getAttribute('onclick');
					if (onclick)
					{
						eval(onclick);
						return true;
					}
				}
			}
		}
	}
}

function toggle (id)
{
	var blocked;
	try
	{
		blocked = isClickActionBlocked();
	}
	catch (ignored)
	{
		blocked = false;
	}

	if (!blocked)
	{
		var obj = getobj(id);
		if (obj) {
			var objImage = getobj(id+"_img");
			var objLabel = getobj(id+"_label");
			if (obj.style.display == "none") {
				obj.style.display = "";
				if (objImage)
					objImage.src = "/img/minus.gif";
				if (objLabel)
					objLabel.style.fontWeight = "bold";
			}
			else {
				obj.style.display = "none";
				if (objImage)
					objImage.src = "/img/plus.gif";
				if (objLabel)
					objLabel.style.fontWeight = "";
			}
		}

		try
		{
			avoidScrollbarPageJump();
		}
		catch (ignored)
		{
		}
	}
}

window.timer = null;
var pageLoadState = null;
var pageLoadTimer = null;
var timeToShowLoad = 300;

function loadPage (page,usediv,when)
{
	var timeout = (when) ? when : 0;
	
	if (window.timer != null)
		clearTimeout(window.timer);
		
	var div = document.getElementById(usediv);
		
	if ((pageContent = getPageFromCache(page)) != false)
	{
		div.innerHTML = pageContent;
		return;
	}
	
	window.timer = setTimeout(function()
		{		
			try {xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");}  catch (e) { alert("Fejl: Kunne ikke indlæse siden");}
			
			scroll(0,0);
			xmlhttp.onreadystatechange = function()
			{
				pageLoadState = xmlhttp.readyState;
				if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200 || xmlhttp.status == 404))
				{
					cachePage(page,xmlhttp.responseText);
					div.innerHTML = xmlhttp.responseText;				
				}
				else if (xmlhttp.readyState == 1)
				{
					if (pageLoadTimer != null)
					{
						clearTimeout(pageLoadTimer);
					}
									
					pageLoadTimer = setTimeout(function()
					{
						if (pageLoadState < 4)
						{
							div.innerHTML = '<center><img src="http://'+document.domain+'/img/ajax-loader.gif" alt="Indlæser" title="Indlï¿½ser" style="margin-top: 20px;"></center>';
						}
					}
					,timeToShowLoad);
				}
			}
			//xmlhttp.open("GET", page);
			xmlhttp.open("POST", page);
			xmlhttp.send(null);
		}, 100);
}

function sendForm (page,usediv,form)
{
	var params = "";
	for (var i = 0; i < form.elements.length; i++)
	{
		var child = form.elements[i];
		if (child)
		{
			var name = child.getAttribute('name');			
			if (name)
			{
				var type = child.getAttribute('type');
				if (type == 'checkbox')
				{
					if (child.checked)
						params += "&"+name+"="+escape(child.value);
				}
				else
					params += "&"+name+"="+escape(child.value);
			}
		}
	}
	
	var div = document.getElementById(usediv);
		
	try {xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");}  catch (e) { alert("Fejl: Kunne ikke indlæse siden");}
	
	scroll(0,0);
	xmlhttp.onreadystatechange = function()
	{
		pageLoadState = xmlhttp.readyState;
		if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200 || xmlhttp.status == 404))
		{
			if (div)
			{
				if (div.firstChild)
					div.firstChild.data = xmlhttp.responseText;
				else
					div.appendChild(document.createTextNode(xmlhttp.responseText));
			}
			else
				alert(xmlhttp.responseText);
		}
		else if (xmlhttp.readyState == 1)
		{
			if (pageLoadTimer != null)
			{
				clearTimeout(pageLoadTimer);
			}
							
			pageLoadTimer = setTimeout(function()
			{
				if (pageLoadState < 4)
				{
					if (div)
						div.innerHTML = '<center><img src="http://'+document.domain+'/img/ajax-loader.gif" alt="Indlï¿½ser" title="Indlæser" style="margin-top: 20px;"></center>';
				}
			}
			,timeToShowLoad);
		}
	}
	xmlhttp.open("POST", page, true);
	
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", params.length);
	xmlhttp.setRequestHeader("Connection", "close");
	
	xmlhttp.send(params);
}

var cachedPages = new Array();

function cachePage(page,content)
{
	if (getPageFromCache(page) == false)
	{
		cachedPages[cachedPages.length] = new Array(page,content);
	}
}

function getPageFromCache(page)
{
	var content = false;
	for (var x = 0; x < cachedPages.length; x++)
	{
		if (cachedPages[x][0] == page)
		{
			content = cachedPages[x][1];
			break;
		}
	}
	return content;
}


function menuSetActive (menu)
{
	var menu = document.getElementById(menu);
	if (menu)
	{
		if (menu.parentNode.tagName == 'UL')
		{
			for (var i=0; i<menu.parentNode.childNodes.length; i++)
			{
				var child = menu.parentNode.childNodes[i];
				if (child.tagName == 'LI')
				{
					child.className = 'ui-state-default ui-corner-top';
				}
			}
			
		}
		menu.className = 'ui-corner-top ui-tabs-selected ui-state-active ui-state-focus';
		createCookie('currentTab',menu.id,0);
	}
}


function selectNode (node)
{
	var selection, range, doc, win;
	
	if ((doc = node.ownerDocument) && (win = doc.defaultView) && typeof	win.getSelection != 'undefined' && typeof doc.createRange != 'undefined' && (selection = window.getSelection()) && typeof
	selection.removeAllRanges != 'undefined')
	{
		range = doc.createRange();
		range.selectNode(node);
		selection.removeAllRanges();
		selection.addRange(range);
	} else if (document.body && typeof document.body.createTextRange != 'undefined' && (range = document.body.createTextRange())) {
		range.moveToElementText(node);
		range.select();
	}
}


function clearSelection ()
{
	if (document.selection)
		document.selection.empty();
	else if (window.getSelection)
		window.getSelection().removeAllRanges();
}

function checkBoxUpdate (objInput) {
	var objImage = document.getElementById(objInput.id+"_img");
	if (objImage)
	{
		var val = objInput.checked;
		objImage.src = (val ? "/img/check_on.png" : "/img/check_off.png");
	}
}

function checkBoxImage (objImage) {
	var idx;
	var objInput = document.getElementById(objImage.id.substring(0, objImage.id.length - 4));
	if (objInput) {
		objInput.checked = !objInput.checked;
		checkBoxUpdate(objInput, false);
	}
}

function createCheckBox (name,id,checked,style,onclick) {
	document.write(	"<img src=\"/img/check_"+(checked ? "on" : "off")+".png\""+
						" alt=\"\""+
						" class=\"checkbox\""+
						(style ? " style=\""+style+"\"" : "")+
						" id=\""+id+"_img\""+
						" onclick=\"checkBoxImage(this);"+onclick+"\">"+
					"<input type=\"checkbox\""+
						" id=\""+id+"\""+
						" name=\""+name+"\""+
						" value=\"1\""+
						" style=\"position:absolute;left:-20000px\""+
						(checked ? " checked=\"checked\"" : "")+
						" onclick=\"checkBoxUpdate(this);"+onclick+"\">");
}

function getQuerystring(key, default_)
{
  if (default_==null) default_=""; 
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return unescape(qs[1].replace(/\+/g,' '));
}

function validateForms(form)
{
	labels = form.getElementsByTagName('label');
	
	var warnings = 'Fï¿½lgende fejl opstod:';
	var validated = true;
	for (var i = 0; i < labels.length; i++)
 	{
 		var lbl = labels[i].firstChild.nodeValue;
 		
 	 	for (var j = 0; j < labels[i].childNodes.length; j++)
 		{
 			var txt = labels[i].childNodes[j].innerHTML;
 			if(txt)
 			{
 				if (txt == '*')
 				{
 					//var lfor = (labels[i].getAttribute('for')) ? labels[i].getAttribute('for') : labels[i].getAttribute('htmlFor');
 					var fieldId = labels[i].getAttributeNode('for').value;
 					if (fieldId)
 					{
 						var reqFieldFound = false;
 						
 						for (var u = 0; u < form.elements.length; u++)
						{
							var id = form.elements[u].getAttribute('id');
	 						if (id)
	 						{
	 							if (fieldId == form.elements[u].getAttribute('id').toString())
	 							{
	 								classname = form.elements[u].className.replace('error','')
	 								form.elements[u].className = classname;
	 								reqFieldFound = true;
	 								var value = (form.elements[u].getAttribute('type') == 'checkbox') ? ((!form.elements[u].checked) ? '' : true) : form.elements[u].value;
	 								if (value == '')
	 								{
	 									form.elements[u].className += ' error';
	 									warnings += '\n-' + 'feltet `' + lbl + 'ï¿½ skal udfyldes.'; 									
	 									validated = false;
	 									break;
	 								}
	 							}
	 						}
						}
						
						if (!reqFieldFound)
						{
							warnings += '\n-' + 'Der blev ikke fundet et indtastningsfelt til `' + lbl + 'ï¿½.';
							validated = false;
						}
 					}
 				}
 			}
 		}
 	}
 	
 	if (!validated)
 		alert(warnings);

	return validated;
}


function isScrollBarPresent()
{
	var currentHeight;
	var bodyHeight;
	
	if (document.documentElement)
	{
		if (document.documentElement && document.documentElement.clientHeight)
		{
			var place = 2;
			bodyHeight = document.documentElement.scrollHeight;
			currentHeight = document.documentElement.clientHeight;
		}
		else if (document.body && document.body.clientHeight < document.body.scrollHeight)
		{
			var place = 1;
			bodyHeight = document.body.scrollHeight;
			currentHeight = document.body.clientHeight;
		}
		else
		{
			var place = 2;
			bodyHeight = document.documentElement.scrollHeight;
			currentHeight = document.documentElement.clientHeight;
		}
	}
	else
	{
		var place = 3;
		bodyHeight = document.body.scrollHeight;
		currentHeight = document.body.clientHeight;
	}

	//document.title = "Place: "+place+" "+bodyHeight+" kontra "+currentHeight+" Present: "+(bodyHeight > currentHeight ? "true":"false");
	
	if (bodyHeight > currentHeight) 
		return true;
	else
		return false;

}

var currentDictTab
function setCurrentDictTab(dict)
{
	createCookie("currentDictTab",dict,0);
	currentDictTab = dict;
	
	document.location.href="#"+dict;
}



function getCurrentDictTab()
{
	return currentDictTab;
}

function makeCopyBox(text,className)
{

	if (document.cookie && document.cookie.indexOf("articleSize") > -1) {
		var articleSize = readCookie('articleSize').slice(0,2);
	}
	var changeSize = "";
	if (articleSize) {
		changeSize = articleSize;
	}
	
		
	var simulateObj = document.getElementById('textLength');
	if (simulateObj)
	{
		simulateObj.className = className;
		simulateObj.innerHTML = text;
		
		
		if (changeSize) {
			simulateObj.style.fontSize = changeSize+"px";
		}
		
		//var actualWidth = text.length / 1.8;
		var actualWidth = parseInt(simulateObj.offsetWidth)+10;
		document.write('<input id="copybox_'+text+'" class="input2text '+className+'" style="width:'+actualWidth+'px" value="'+text+'" onmouseover="selectValue(this);" onmouseout="deselect(this);" onblur="deselect(this)" readonly>');
	}
	//else
	//	alert("Missing object: textLength");
}

function fitWidthOnCopyBox(obj)
{
	var simulateObj = document.getElementById('textLength');
	simulateObj.className = obj.className;
	simulateObj.innerHTML = obj.value;
	simulateObj.style.fontSize = obj.style.fontSize;
	
	var actualWidth = simulateObj.offsetWidth*1.2;
	
	obj.style.width = actualWidth+"px";
}

var currentSelectedObj = null;
function selectValue(obj)
{
	if (currentSelectedObj != null)
	{
		deselect(currentSelectedObj);
	}
	setBrowserMenuVisibility(false);
	
	if (obj.setSelectionRange)
	{
		obj.focus();
		obj.setSelectionRange(0,obj.value.length);
	}
	else
	{
		obj.select();
	}
	
	currentSelectedObj = obj;
}

function deselect(obj)
{
	if (browserMenuVisibile())
	{
		return;
	}
	
	if (obj.setSelectionRange)
	{
		obj.setSelectionRange(0,0);
	}
	else
	{
		var tempValue = obj.value;
		obj.value = "";
		obj.value = tempValue;
	}
	obj.blur();
	currentSelectedObj = null;
}

function sizeFontReset(name)
{
	var containers = getNamedElements(name);
	
	if (containers)
	{
		for (var i = 0; i < containers.length; i++)
	 	{
	 		var child = containers[i];
	 		var els = child.getElementsByTagName('*'); 		
	 		
	 		for (var j = 0; j < els.length; j++)
	 		{
	 			var el = els[j]; 			
	 			el.style.fontSize = null;
	 			if (el.tagName == 'INPUT')
	 			{
	 				fitWidthOnCopyBox(el);
	 			}
	 		}
	 	}
	}
	
 	sizeFont("searchArticleResult",1,12);
	
	var articleSize = Cookie.get('articleSize');
 	if (articleSize)
 		articleSize.remove();
 	
}

function sizeFont(name, increment, fixedSize)
{
	var containers = getNamedElements(name);
	
	for (var i = 0; i < containers.length; i++)
 	{
 		var child = containers[i];
 		
 		var fontSize = 10;
 		if (document.defaultView)
			fontSize = parseFloat(document.defaultView.getComputedStyle(child,null).getPropertyValue("font-size").replace("px",""));
		else
		{
			fontSize = parseFloat(child.currentStyle["fontSize"].replace("px",""));
			/* Dirty hack for IE not handling font-size 1em very well */	
			if (fontSize == 1)
				fontSize = 12;
		}
		
		fontSize = fontSize+increment;
		if (fixedSize)
			fontSize = fixedSize;
 		
 		child.style.fontSize = fontSize+'px'; 		
 		
 		var els = child.getElementsByTagName('INPUT'); 
 		for (var j = 0; j < els.length; j++)
 		{
 			var el = els[j];
 			el.style.fontSize = fontSize+'px'; 			
 			fitWidthOnCopyBox(el);
 		} 		
 		
 		var articleSize = Cookie.get('articleSize');
 		if (articleSize)
 			articleSize.remove();
 		var c1 = new Cookie();
		c1.setName("articleSize");
		c1.add(fontSize);
		c1.save();
 	}
}

function getWidth(text, fontsize)
{
	var spanElement = document.createElement('span');
	spanElement.style.position = 'absolute';
	spanElement.style.whiteSpace = 'nowrap';
	spanElement.style.fontSize = parseInt(fontsize)+2+'px';
	spanElement.innerHTML = text;
	document.body.appendChild(spanElement);
	var width = spanElement.offsetWidth;
	document.body.removeChild(spanElement);
	
	return width;
}

function getNamedElements(name, tag)
{
	var elem = document.getElementsByTagName('*');	
	var arr = new Array();
	
	for(i = 0,iarr = 0; i < elem.length; i++)
	{
		att = elem[i].getAttribute("name");
		if(att == name)
		{
			arr[iarr] = elem[i];
			iarr++;
      	}
 	}
 	
 	return arr;
}

function getStyle(el,styleProp)
{
	var x = document.getElementById(el);
	if (x.currentStyle)
		var y = x.currentStyle[styleProp];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
	return y;
}

//Dynamic dictionary dropdown generator
splitSelect = {
	selects:[],
	firstName:'dict',
	secondName:'dict',
	init:function(){
		var s = document.getElementById(splitSelect.firstName);
		var c = document.createElement('select');
		c.onchange=function(){
			splitSelect.choose(this.selectedIndex);
		}
		s.parentNode.insertBefore(c, s);
		var g = s.getElementsByTagName('optgroup');
		for(var i=0,j=g.length;i<j;i++){
			var o = g[i].getElementsByTagName('option');
			var news = document.createElement('select');
			s.parentNode.insertBefore(news, s);
			news.style.display='none';
			splitSelect.selects.push(news);
			var jump = false;
			var k=0;
			c.appendChild(o[0]);
			while(o[k]){
				news.appendChild(o[k]);
			}
			news.selectedIndex = 0;
		}
		c.selectedIndex = 0;
		s.parentNode.removeChild(s);
		c.id = splitSelect.firstName;
		c.name = splitSelect.firstName;
	},
	choose:function(o){
		document.getElementById('placeholder').style.display='none';
		if(splitSelect.current !== undefined){
			splitSelect.selects[splitSelect.current].style.display='none';
			splitSelect.selects[splitSelect.current].name='';
		}
		splitSelect.selects[o].style.display='inline';			
		splitSelect.selects[o].name=splitSelect.secondName;			
		splitSelect.current = o;
	}
}

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 var 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;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function opacity(id, opacStart, opacEnd, millisec) {

    var speed = Math.round(millisec / 100);
    var timer = 0;

    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 

function shiftOpacityDown(id, millisec) {
    elements = document.getElementById(id);
    if (elements) {
		opacity(id, 100, 0, millisec);
		setTimeout("elements.style.display = 'none'",millisec);
		
    }
} 

function shiftOpacityUp(id, millisec) {
    elements = document.getElementById(id);
    if (elements) {
		opacity(id, 0, 100, millisec);
    }
}

function setSearchBoxFocusStyling(o1, o2)
{
	o1.style.border = 'solid 2px #1e6d5d';
	
	o2.style.border = 'solid 2px #5f9287';
}

function getHTTPObject(){
	if (window.ActiveXObject) 
		return new ActiveXObject("Microsoft.XMLHTTP");
		else if (window.XMLHttpRequest) 
		return new XMLHttpRequest();
	else {
		return null;
	}
}

function submitAjax(url, resultfield){
	httpObject = getHTTPObject();
	if (httpObject != null) {
		httpObject.open("GET", url, true);
		httpObject.send(null);
		
		if (resultfield) {
			httpObject.onreadystatechange = function() { return setOutput(resultfield); }
		}
	}
}

function setOutput(resultfield) {
	if(httpObject.readyState == 4){
		document.getElementById("id_"+resultfield).innerHTML = httpObject.responseText;
	}
}

// implementing a trim function for strings in javascript
String.prototype.trim = function (string) {
	if(string != undefined && string != '')
    	return this.replace(/^\s*/, "").replace(/\s*$/, "");
    else
    	return this.replace(/^string*/, "").replace(/string*$/, "");
}

// implementing a htmlentitydecode function for strings in javascript
String.prototype.htmlentitydecode = function () {
    return this.replace(/&lt;/, "<").replace(/&gt;/, ">").replace(/&nbsp;/, " ");
}
