function createXmlRequest() {
	<!-- // Required to be compliant with XHTML-->
	var xmlHttp=null; // Defines that xmlHttp is a new variable.
	// Try to get the right object for different browser
	try {
		// Firefox, Opera 8.0+, Safari, IE7+
		xmlHttp = new XMLHttpRequest(); // xmlHttp is now a XMLHttpRequest.
	} catch (e) {
		// Internet Explorer
		try {
		   xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
		  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function getFormValues(fobj,extraVar) { 
	var str = "";
	for(var i = 0;i < fobj.elements.length;i++) {
		switch(fobj.elements[i].type) {
			case "text":
			case "textarea":
			case "hidden":
			case "password":
				str += fobj.elements[i].name + "=" + escape(encodeURIComponent(fobj.elements[i].value)) + "&";
				break;
			case "select-one":
				str += fobj.elements[i].name + "=" + escape(encodeURIComponent(fobj.elements[i].options[fobj.elements[i].selectedIndex].value)) + "&";
				break;
			case "select-multiple":
				for(var r=0;r<fobj.elements[i].options.length;r++) {
					if (fobj.elements[i].options[r].selected)
						str += fobj.elements[i].name + "=" + escape(encodeURIComponent(fobj.elements[i].options[r].value)) + "&";
				}
				break;
			case "radio":
			case "checkbox":
				if (fobj.elements[i].checked) {
					str += fobj.elements[i].name + "=" + escape(encodeURIComponent(fobj.elements[i].value)) + "&";
				}
				break;
		}
	}
	str = str.substr(0,(str.length - 1));
	if (extraVar) str += "&"+extraVar;
	return str;
}

var closePopupTimer = false;

function showPopup(popupHeight, popupWidth, popupTop) {
	popup = document.getElementById('popUpContainer');
	popupContent = document.getElementById('popUpContent');
	popup.style.display = 'inline';
	if (popupHeight) popupContent.style.height = Number(popupHeight)+'px';
	if (popupWidth) popupContent.style.width = Number(popupWidth)+'px';
	if (popupTop) popupContent.style.top = Number(popupTop)+'px';
}

function closePopup() {
	popup = document.getElementById('popUpContainer');
	popup.style.display = 'none';
	document.getElementById('popUpContent').innerHTML = '				<div class="popupHeader">\n				<div class="popupTitleLeft"></div>\n				<div class="popupTitleMiddle">\n					Popup loading content\n					<div class="closePopupButton" onclick="closePopup();"></div>\n				</div>\n				<div class="popupTitleRight"></div>\n			</div>\n			<div class="popupHeaderBackground">\n				<div class="popupHeaderContent">\n						LOADING...\n					</div>\n			</div>';
}

function setDefaultPopupContent(titleText, contentText, closeButton) {
	oContainer = document.getElementById('popUpContent');
	
	// clearing popup content
	if (oContainer.hasChildNodes()) {
		while (oContainer.childNodes.length >= 1) {
			oContainer.removeChild(oContainer.firstChild);
		}
	}
	
	oHeader = document.createElement("div");
	oHeader.className = 'popupHeader';
	
	oPopupTitleLeft = document.createElement("div");
	oPopupTitleLeft.className = 'popupTitleLeft';
	oHeader.appendChild(oPopupTitleLeft);
	
	// creating middle title container with text title and close button
	oPopupTitleMiddle = document.createElement("div");
	oPopupTitleMiddle.className = 'popupTitleMiddle';
	if (titleText) oPopupTitleMiddle.appendChild(document.createTextNode(titleText));
	if (closeButton) {
		oPopupCloseButton = document.createElement("div");
		oPopupCloseButton.className = 'closePopupButton';
		oPopupCloseButton.onclick = function () { closePopup(); }
		oPopupTitleMiddle.appendChild(oPopupCloseButton);
	}
	oHeader.appendChild(oPopupTitleMiddle);
	
	oPopupTitleRight = document.createElement("div");
	oPopupTitleRight.className = 'popupTitleRight';
	oHeader.appendChild(oPopupTitleRight);
	
	oContainer.appendChild(oHeader);
	
	oPopupHeaderBackground = document.createElement("div");
	oPopupHeaderBackground.className = 'popupHeaderBackground';
	
	oPopupHeaderContent = document.createElement("div");
	oPopupHeaderContent.className = 'popupHeaderContent';
	oPopupHeaderContent.id = 'popupInnerContent';
	if (contentText) oPopupHeaderContent.appendChild(document.createTextNode(contentText));
	oPopupHeaderBackground.appendChild(oPopupHeaderContent);
	
	oContainer.appendChild(oPopupHeaderBackground);
	
/*
	<div class="popupHeader">
		<div class="popupTitleLeft"></div>
		<div class="popupTitleMiddle">
			Popup loading content
			<div class="closePopupButton" onclick="closePopup();"></div>
		</div>
		<div class="popupTitleRight"></div>
	</div>
	<div class="popupHeaderBackground">
		<div class="popupHeaderContent">
			LOADING...
		</div>
	</div>
*/
	
}

function createLogEntry(container, url, rowType, rowOwnerType, rowOwnerId, rowLimit, rowStart, orderBy, orderDir, pageId, spacing) {
	var logText = encodeURIComponent(document.getElementById('logText').value);
	var logType = document.getElementById('logType').value;
	
	if (logText != "") {
		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				displayList(container, url, rowType, rowOwnerType, rowOwnerId, rowLimit, rowStart, orderBy, orderDir, pageId, spacing);
				document.getElementById('logText').value="";
			}
		}
		
		xmlHttp.open("get","http://www.familienetvaerket.dk/includes/ajax/insertlog.php?rowOwnerType="+rowOwnerType+"&logText="+escape(logText)+"&rowType="+logType+"&rowOwnerId="+rowOwnerId);
		xmlHttp.send(null);
	}
}

function displayLogEntry(logId) {
	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
			showPopup(300, 500, 100);
		}
	}
	
	xmlHttp.open("get","http://www.familienetvaerket.dk/includes/ajax/displaylogentry.php?logId="+logId);
	xmlHttp.send(null);
}

function displayList(container, url, rowType, rowOwnerType, rowOwnerId, rowLimit, rowStart, orderBy, orderDir, pageId, spacing) {
	if (url && container) {
		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				document.getElementById(container).innerHTML=xmlHttp.responseText;
				//setColumnHeights();
				setTimeout(setColumnHeights, 50);
			}
		}
		
		url += "?container="+container+"&rowType="+rowType+"&rowOwnerType="+rowOwnerType+"&rowOwnerId="+rowOwnerId+"&limit="+rowLimit+"&start="+rowStart+"&sortby="+orderBy+"&direction="+orderDir+"&pageId="+pageId+"&spacing="+spacing;
		
		xmlHttp.open("get",url);
		xmlHttp.send(null);
	}
}

function in_array(needle, haystack) {
	for (i=0;i<haystack.length;i++) {
		if (haystack[i] == needle) {
			return true;
		}
	}
	return false;
}

function is_array(obj) {
	if (obj.constructor.toString().indexOf("Array") == -1) {
		return false;
	} else {
		return true;
	}
}

function array_unique(arr) {
	uniqueArr = new Array();
	for (r=0;r<arr.length;r++) {
		if (!in_array(arr[r], uniqueArr)) {
			uniqueArr[uniqueArr.length] = arr[r];
		}
	}
	return uniqueArr;
}

function nl2br(str) {
	return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1<br>$2');
}

function number_format(number, decimals, dec_point, thousands_sep) {
	// format float
	var number = new Number(number);
	if (!decimals) var decimals = 2;
	if (!dec_point) var dec_point = ',';
	if (!thousands_sep) var thousands_sep = '.';
	
	var number = number.toFixed(decimals);
	
	number = number.toString();
	
	n = number.split('.');
	var decimals = n[0];
	var fractions = n[1]
	
	var sRegExp = new RegExp(/(-?[0-9]+)([0-9]{3})/);
	
	while(sRegExp.test(decimals)) {
		decimals = decimals.replace(sRegExp, '$1'+thousands_sep+'$2');
	}
	
	number = decimals + dec_point + fractions;
	
	return number;
}

