//function alert(tekst){
//	document.getElementById('alert_content').innerHTML = tekst;
//	UNI_showModal_manual('CMS_alert','400','300');
//}

// Alle id's in deze array zullen worden verborgen met een linkerklik.
var UNI_leftclick = new Array();
UNI_leftclick[0] = 'tree_contextmenu';
UNI_leftclick[1] = 'div_Tooltip';

document.onclick = UNI_onclick;

function UNI_keypress(e)	{
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	
	var index = document.getElementById('index');
	
	// Eerst kijken of er keypres functies zijn gedefinieerd
	var keypresses = getElementsByAttribute(index,"A","u:keypress","true");
	keypressesLenght = keypresses.length;
	if(keypressesLenght < 0)	{
		for(var i =0;i < keypressesLenght; i++)	{
			var keyPress = keypresses[i];
			//keyPress.onclick();
			alert(keyPress);
		}
	} else {
		// Dan nu nog kijken of er ergens een u:key staat gedifinieerd.
		var keypresses = getElementsByAttribute(index,"A","u:key",keychar);
		keypressesLenght = keypresses.length;
		for(var i =0;i < keypressesLenght; i++)	{
			var keyPress = keypresses[i];
			//keyPress.onclick();
			//alert(keyPress);
		}
	}
}

function UNI_onclick(e){
	
   // document.selection.empty();
    	
	UNI_contextmenu_remove();
	
	var leftclick = false;
	if (browser_type.isIE){
		leftclick = true;
	} else if (e.which == 1) {
		leftclick = true;
	} 
	if(leftclick){
		UNI_hideOnClick(e);
		for (key in UNI_leftclick){
			id = UNI_leftclick[key];
			if(document.getElementById(id)){
				document.getElementById(id).style.display = "none";
			}
		}	
	} else {
		UNI_contextmenu(e);
	}
	
}

function UNI_hideOnClick(e)	{
	// de source pakken
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
	targ = targ.parentNode;
	
	// Controleren of er binnen een u:hideOnClick element is geklikt
	var hideOnClickFound = false;
	var hideOnClickObject = targ;
	while(hideOnClickObject.parentNode)	{
		try {
			if(hideOnClickObject.getAttribute('u:hideOnClick'))	{	
//				document.getElementById('CMS_debug_content').innerHTML += "<br /><b>EXCEPTION:</b>"+hideOnClickObject.id;
//				document.getElementById('CMS_debug_content').innerHTML += "<br /><b>ATTRIBUTE:</b>"+hideOnClickObject.getAttribute('u:hideOnClick');
				hideOnClickFound = true;
			}
		} catch(err)	{}
		hideOnClickObject = hideOnClickObject.parentNode;
	}
		
	if(!hideOnClickFound)	{
		// Alle hideOnClicks pakken.
		var index = document.getElementById('index');
		var contextMenus = getElementsByAttribute(index,"DIV","u:hideOnClick","true");
		contextMenusLenght = contextMenus.length;
		for(var i =0;i < contextMenusLenght; i++)	{
			var contextMenu = contextMenus[i];
			if(contextMenu.getAttribute("u:hideOnClickMethod"))	{
				//document.getElementById('CMS_debug_content').innerHTML += "<br /><b>VERBERGEN:</b>"+contextMenu.getAttribute("u:hideOnClickMethod");
				eval(contextMenu.getAttribute("u:hideOnClickMethod"));
			} else {
				contextMenu.style.display = "none";
				//document.getElementById('CMS_debug_content').innerHTML += "<br /><b>VERBERGEN:</b>"+contextMenu.id+"<br />";
			}
		}
	}
}

function UNI_contextmenu_remove(){
	var index = document.getElementById('index');
	var contextMenus = getElementsByAttribute(index,"DIV","u:contextmenu","true");
	contextMenusLenght = contextMenus.length;
	for(var i =0;i < contextMenusLenght; i++){
		var contextMenu = contextMenus[i];
		contextMenu.style.display = "none";
	}
}

function UNI_contextmenu(e){
	UNI_contextmenu_remove();
	
	// de source pakken
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
	targ = targ.parentNode;
	
	var index = document.getElementById('index');
	var contextMenus = getElementsByAttribute(index,"DIV","u:contextmenu","true");
	contextMenusLenght = contextMenus.length;
	
	// Nu telkens de parent opvragen net zolang als we bij index zijn
	var parent = false;
	
	while(!parent ){
		if(targ.id != "index"){
			for(var i =0;i < contextMenusLenght; i++){
				var contextMenu = contextMenus[i];
				if(contextMenu.getAttribute('u:on') == targ.id){
					parent = true;
					var x = getContextMenuCoorX(e);
					var y = getContextMenuCoorY(e);
					contextMenu.parentNode.removeChild(contextMenu);
					index.insertBefore(contextMenu,index.firstChild);
					contextMenu.style.top = (y-3)+'px';
					contextMenu.style.left = (x-3)+'px';
					contextMenu.style.display = 'block';
				}
			}
			targ = targ.parentNode;	
		} else {
			parent = true;			
		}
	}
	
	return targ;
}





function getContextMenuCoorX(e){
	if (navigator.appName == "Microsoft Internet Explorer") { // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.body.scrollLeft
		tempY = event.clientY + document.body.scrollTop
	} else {  // grab the x-y pos.s if browser is NS
		tempX = e.pageX
		tempY = e.pageY
	}
	// catch possible negative values in NS4
	if (tempX < 0){tempX = 0}
	if (tempY < 0){tempY = 0}
	
	return tempX;
}

function getContextMenuCoorY(e){
	
	if (navigator.appName == "Microsoft Internet Explorer") { // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.body.scrollLeft
		tempY = event.clientY + document.body.scrollTop
	} else {  // grab the x-y pos.s if browser is NS
		tempX = e.pageX
		tempY = e.pageY
	}
	// catch possible negative values in NS4
	if (tempX < 0){tempX = 0}
	if (tempY < 0){tempY = 0}
	
	return tempY;
}

function uitloggen(redirect){
	top.location.href = "http://"+redirect+"/index.php";
	try {
		window.close();
	}catch(err){}
}

function change_sitegroup(host, urlwrite){
	top.location.href = "http://"+host+"/index.php"+urlwrite;
}

// Deze functie is nog een overblijvsel van oudere cms versies, maar de aanroep van deze functie zit in alle metabase classes :(
function changeHelp()	{
	
}

// Array vol met XMLHttpRequests
var UNI_XML_data = new Array();

// Used for the function getdata for storing multiple getdata requests
var XMLdataM = new Array();
var urlM = new Array();
var destinationM = new Array();
var modeM = new Array();

function getCookie(NameOfCookie){

	if (document.cookie.length > 0) 	{

		begin = document.cookie.indexOf(NameOfCookie+"=");
		
		if (begin != -1) {
			begin += NameOfCookie.length+1;
			end = document.cookie.indexOf(";", begin);
			if (end == -1) {
				end = document.cookie.length;
			}
			return unescape(document.cookie.substring(begin, end)); 
		}
	} 
	
	return null;
}

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

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 UNI_pdf_template_add(html, field){
	var spanItems = document.getElementById(html).parentNode.getElementsByTagName('SPAN');
	
	// SPAN pakken van parent
	var spanItem = spanItems[0];
	// IFRAME Pakken
	var iFrames = spanItem.getElementsByTagName('IFRAME');
	var iFrame = iFrames[0];

	var D=iFrame.contentWindow.document
	D.body.innerHTML = D.body.innerHTML+'{'+field+'}';
	
}

function isArray(obj) {
	return (obj.constructor.toString().indexOf("Array") != -1);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function browserCheck(){
	var nav_userAgent, browser_type;

	nav_userAgent = navigator.userAgent;

	this.isIE    = false;
	this.version = null;

	browser_type = "MSIE";
	if ((i = nav_userAgent.indexOf(browser_type)) >= 0){
		this.isIE = true;
		this.version = parseFloat(nav_userAgent.substr(i + browser_type.length));
		return;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var browser_type = new browserCheck();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_super(object, event){
	var type = "on"+event.type;
	var onclick = "";
	try{
		var parent = object.parentNode;
		while(onclick == ""){
			try {
				if(parent.attributes[type].nodeValue){
					onclick = parent.attributes[type].nodeValue;
					break;
				}
			}catch(e){
				
			}
			parent = parent.parentNode;
		}
		if(onclick != ""){
			eval("parent."+type+"();");
		}
	}catch(err){
		var txt = "UNI_super() niet goed uitgevoerd!.\n\n";
		txt += "Error description: " + err.description + "\n\n";
		alert(txt);
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_getXMLHttpRequest()	{

	// ActiveXObject IE en XMLHttpRequest firefox
	if(window.ActiveXObject){
		//UNI_XML_data[UNI_XML_data_length] = new ActiveXObject("Microsoft.XMLHTTP");
		
		return new ActiveXObject("Microsoft.XMLHTTP");
	}

	if(window.XMLHttpRequest){
		// Maakt het mogelijk dat de outerHTML attribute gebruikt kan worden voor FireFox.
		HTMLElement.prototype.__defineSetter__("outerHTML", function (sHTML){
			var r = this.ownerDocument.createRange();
			r.setStartBefore(this);
			var df = r.createContextualFragment(sHTML);
			this.parentNode.replaceChild(df, this);
		});

		return new XMLHttpRequest();
	}
}

var stopFadeOut = false;
var fadeOutOpacity = 10;

function fadeOut(object_id,value)	{
	fadeOutOpacity = value;
	var opac = 2;
	
	if(value > 4 && !stopFadeOut)	{
	
		resizeObject = document.getElementById(object_id);
		resizeObject.style.opacity = value/10;
		resizeObject.style.filter = 'alpha(opacity=' + value*10 + ')';
		document.getElementById('UNI_main').innerHTML += "OUT::"+value+"::"+object_id+"<br />";
		if(value < 2)	{
			opac = 1;
		}
		
		setTimeout("fadeOut('"+object_id+"',"+(value-opac)+")", 10);
	}
	
}

function fadeIn(object_id,value)	{
	var opac = 2;
	resizeObject = document.getElementById(object_id);
	resizeObject.style.opacity = value/10;
	resizeObject.style.filter = 'alpha(opacity=' + value*10 + ')';
	document.getElementById('UNI_main').innerHTML += "IN::"+value+"::"+object_id+"<br />";
	if(value < 10)	{
		setTimeout("fadeIn('"+object_id+"',"+(value+opac)+")", 10);
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_setXMLHttpRequestResult(destination,content,mode, callback)	{
	if(document.getElementById("root_slaager"))	{
		if(destination == "71_LISTGRID")	{
			//alert('test');
		}
	}
	
//	stopFadeOut = true;
//	fadeIn(destination,fadeOutOpacity);
	
	if(mode == "replacechildren"){
		try {
			if (document.getElementById(destination)){
				document.getElementById(destination).innerHTML = content;
			}else{
				//alert ("destination: "+destination+" niet gevonden");
			}
		} catch(err){
			alert(err.description);
		}
	}else if(mode == "replacevalue"){
		try {
			if (document.getElementById(destination)){
				document.getElementById(destination).value = content;
				document.getElementById(destination).onchange();
			}else{
				//alert ("destination: "+destination+" niet gevonden");
			}
		} catch(err){
			alert(err.description);
		}
	}else if(mode == "addchildrenbefore"){
		if (document.getElementById(destination)){
			document.getElementById(destination).innerHTML = content+document.getElementById(destination).innerHTML;
		}else{
			//alert ("destination: "+destination+" niet gevonden");
		}
		
	}else if(mode == "addchildrenafter"){
		if (document.getElementById(destination)){
			document.getElementById(destination).innerHTML = document.getElementById(destination).innerHTML+content;
		}else{
			//alert ("destination: "+destination+" niet gevonden");
		}
		
	}else if(mode == "replace"){
		if (document.getElementById(destination)){
			document.getElementById(destination).outerHTML = content;
		}else{
			//alert ("destination: "+destination+" niet gevonden");
		}
	}
		
	// Kijken of er nog een callback methode aangeroepen moet worden
	if(callback != undefined && callback != ""){
		eval(callback);
	}
}

function UNI_command(obj)	{
	eval(obj.attributes['u:command'].nodeValue);
}

function UNI_showLoading(type){
	if(type == 'hide'){
		parent.document.getElementById('loading').style.display = 'none';
	} else {
//		UNI_center('loading');
		parent.document.getElementById('loading').style.display = 'block';
//		document.getElementById('loading').style.top = '300px';
//		document.getElementById('loading').style.left = '350px';
		
	}
}
function UNI_getdata(object, callback, show_loading){
	if(show_loading != "no"){
		UNI_showLoading("show");
	}
	var max_close = 5;
	var normal_close = 0;
	var canShow = false;
	
	try	{
		if(object.getAttribute('u:send') == 'header'){
			UNI_sendHeader(object);
			return;
		}
	} catch(err) {}
	
	// Multi getdata
	for(var i=1; i <= max_close; i++){
		XMLdataM[i] = null;
		try{
			XMLdataM[i] = UNI_getXMLHttpRequest();
			try{
				if(object.attributes['u:enabled'].nodeValue == "false"){
					return;
				}
			}catch (e){
				//alert("u:enabled::"+e.description);
			}
			
			urlM[i] = object.attributes['u:url_'+i].nodeValue;
			destinationM[i] = object.attributes['u:destination_'+i].nodeValue;
			modeM[i] = object.attributes['u:mode_'+i].nodeValue;
//			alert(urlM[i]+"::"+destinationM[i]+"::"+modeM[i]);

//			stopFadeOut = false;
//			fadeOut(destinationM[i],10);
	
			try	{
				for(var p=1; p < 5; p++){
					// Controleren of er nog parameters moeten worden meegegeven met de url
					if(object.attributes['u:urlparam_'+i+'_'+p].nodeValue != ""){
						params_string = object.attributes['u:urlparam_'+i+'_'+p].nodeValue;
						// Replacement uitvoeren
						params_string = params_string.replace("this","object");
						var params = params_string.split("|");
						if(params[1].substring(0,12) == "javascript::"){
							var javascript_eval = params[1].substring(12,params[1].length);
							var eval_string = eval(javascript_eval);
						} else {
							var eval_string = params[1];
						}
	
						urlM[i] += "&"+ params[0] + "=" + eval_string;
					}
				}
			} catch(err){
				//alert("u:urlparam::"+err.description);
			}
			canShow = true;
		}catch(err){
			canShow = false;
			normal_close++;
		}
		
		if(canShow){
//			alert (XMLdataM[i]+' '+urlM[i]+' '+destinationM[i]+' '+modeM[i]);
			UNI_createOnReadystateChange(object, XMLdataM[i], urlM[i], destinationM[i], modeM[i], callback, show_loading);
		}
	}
	
	// Single getdata
	if(normal_close == max_close){
		try{
			var XMLdata = UNI_getXMLHttpRequest();

			try{
				if(object.attributes['u:enabled'].nodeValue == "false"){
					//alert("u:enabled::"+e.description);
					return;
				}
			}catch (e){
			}
			var url = object.attributes['u:url'].nodeValue;
			var destination = object.attributes['u:destination'].nodeValue;
			var mode = object.attributes['u:mode'].nodeValue;
			
//			stopFadeOut = false;
//			fadeOut(destination,10);
			
			try{
				// Controleren of er nog parameters moeten worden meegegeven met de url
				if(object.attributes['u:url_params'].nodeValue != ""){
					var params_string = object.attributes['u:url_params'].nodeValue;
					var params = params_string.substring(0,params_string.length-1).split("|");
					for(var i =0;i < params.length; i++){
	
						if(params[i+1].substring(0,12) ==  "javascript::"){
							var javascript_eval = params[i+1].substring(12,params[i+1].length);
							var eval_string = eval(javascript_eval);
							// Normale listgrid controle
							if(params[i] == "idnr" && eval_string == ""){
								return;
							}
						}else{
							var eval_string = params[i+1];
						}
						url += "&"+ params[i] + "=" + eval_string;
						i++;
					}
				}
			} catch(err){
			}
	
		}catch(err){
			var txt = "GETDATA() niet goed opgemaakt!.\n\n";
			txt += "Error description: " + err.description + "\n\n";
			alert(txt);
			return;
		}

		UNI_createOnReadystateChange(object, XMLdata, url, destination, mode, callback, show_loading);
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var number_of_loads = 1;
function UNI_createOnReadystateChange(obj, obj_xml, url, destination, mode, callback,show_loading){
	try{
		obj_xml.onreadystatechange = function(){
			if (obj_xml.readyState == 4){
				
				// remove html editors
				UNI_htmlEditor(destination, false);
				
				if(getCookie("onconstruct") != null){
					var onconstruct = getCookie("onconstruct");
					eraseCookie("onconstruct");
					eval(onconstruct);
				}
				UNI_setXMLHttpRequestResult(destination, obj_xml.responseText, mode, callback);
				if(getCookie("onloaded") != null){
					var onloaded = getCookie("onloaded");
					eraseCookie("onloaded");
					eval(onloaded);
				}

				try {
					if(number_of_loads == obj.attributes['u:total_load'].nodeValue && show_loading != "no"){
						UNI_showLoading("hide");
						number_of_loads = 1;
					} else {
						number_of_loads++;
					}
				} catch(err){
					// Attribute u:total_load niet gevonden, dus maar 1 load uitgevoerd
					if(show_loading != "no"){
						UNI_showLoading("hide");
					}
				}
				
				
				try{
					if(obj.attributes['u:listgrid_reminder'].nodeValue == "true"){
						UNI_setListgridReminder(obj, url, destination);
					}
				}catch (e){
				}
				
				// add html editors
				UNI_htmlEditor(destination, true);
				
				// Controleren of er restore methodes aangeroepen moeten worden
				
				// uitgezet omdat volgens FF de methode niet bestaat...
				UNI_restore(destination);
			} 
		}
		
		
		
		UNI_sendData(obj_xml, url, obj);
	}catch(err){
	}
}

function UNI_copy(object){
//	alert('debug');
	var max_copy = 5;
	var normal_copy = 0;
	
	for(var i=1; i <= max_copy; i++)	{
		try	{
			var destination = object.attributes['u:destination_'+i].nodeValue;
			var destination_object = document.getElementById(destination);
			destination_object.innerHTML = object.value;
		} catch(err)	{
			break;
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_getdata_manual(url, destination, mode,show_loading){
	var obj = parent.document.createElement('div');
	obj.setAttribute("u:url", url);
	obj.setAttribute("u:destination", destination);
	obj.setAttribute("u:mode", mode);
	obj.setAttribute("u:seq", "true");
	UNI_getdata(obj,"",show_loading);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_sendData(obj_xml, url, obj){
	var queryStr = url.split("?");
	if (queryStr[0] == ''){
		queryStr[0] = url;
	}

	if(browser_type.isIE){
		var seq = "";
		try {
			seq = obj.attributes['u:seq'].nodeValue;			
		} catch(err){
			seq = false;
		}
		obj_xml.open('POST', queryStr[0], true);
	} else {
		obj_xml.open('POST', queryStr[0], true);
	}
	
	obj_xml.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	obj_xml.send(queryStr[1]);
	UNI_showLoading("hide");
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_sendHeader(object){
	if(!document.getElementById('frame_header')){
		var element_Header = document.createElement('iframe');
		element_Header.setAttribute('id', 'frame_header');
		element_Header.setAttribute('src', '');
		element_Header.style.display = 'none';
		document.body.appendChild(element_Header);
		alert('send');
	}

//	alert(object.getAttribute('u:url_1'));
//	document.getElementById('frame_header').src = '';
	if(object.getAttribute('u:url_1')){
		document.getElementById('frame_header').src = object.getAttribute('u:url_1');
	}else{
		document.getElementById('frame_header').src = object.getAttribute('u:url');
	}
	UNI_showLoading('hide');
//	alert (document.getElementById('frame_header').src);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function loadScript(scriptpath, functions){
	var oXML = UNI_getXMLHttpRequest();
//	oXML.open('GET', scriptpath, false);
//	oXML.send('');
	oXML.open('POST', scriptpath, false);
	oXML.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	
	oXML.setRequestHeader('Content-length', scriptpath.length);
	oXML.setRequestHeader('Connection', 'close');
	oXML.send(scriptpath);

	eval(oXML.responseText);

	window['displayTab'] = eval('displayTab');

	/*var functionsArray = new Array;
	functionsArray[0] = functions;

	for(var i=0; i<functionsArray.length; i++){

	}*/
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// This function is to check values e.d. on the server. 
// The script (url) should return true or false.
// This function runs synchonous.
function UNI_getServerCheck(obj){
	XMLserver = UNI_getXMLHttpRequest();

	try{
		try{
			if(obj.attributes['u:enabled'].nodeValue == "false"){
				return;
			}
		}catch (e){
		}
		var url 			= obj.attributes['u:url'].nodeValue;
		var destination 	= obj.attributes['u:destination'].nodeValue;
		var mode 			= obj.attributes['u:mode'].nodeValue;

	}catch(err){
		var txt = "UNI_getServerCheck() niet goed opgemaakt!.\n\n";
		txt += "Error description: " + err.description + "\n\n";
		alert(txt);
	}

	try{
		UNI_sendData(XMLserver, url, false);
		if(XMLserver.responseText=="true"){
			return true;
		}else if(XMLserver.responseText=="false"){
			return false;
		}
	}catch(err){
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_getMenuItem_form(object){
	var menuItems = getElementsByAttribute(document.getElementById('index'),"a","u:menuItem","true");
	
	for(var i =0;i < menuItems.length; i++){
		var menuItem = menuItems[i];
		if(menuItem != object){
			menuItem.style.color = '#666666';
		}
	}
	
	object.style.color = '#ff0000';
		
	UNI_TAB_getTab(object);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_show(object, ev){
	UNI_setAttrib(object.attributes['u:target'].nodeValue,'display','block');
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function checkTab(tabid){
//	var tab = document.getElementById('TAB_content_container_'+tabid);
	var tab = document.getElementById('index');
	var modalarray = tab.getElementsByTagName("DIV");
	for(var i =0;i < modalarray.length; i++){
		var modal = modalarray[i];
		if(modal.id.substring(0,3) == "TAB"){
			alert(modal.id);
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_center(object_id, parent_id){
	object = document.getElementById(object_id);
	if(parent_id == ""){
		// De body pakken;
		parent_id = "index";
	}
	parent_object = document.getElementById(parent_id);
	var posParent = getObjectDimensions(parent_object);
	var posChild = getObjectDimensions(object);
	var myLeft = (posParent['w']-posChild['w'])/2;
	var myTop = (posParent['h']-posChild['h'])/2;
	object.style.left=myLeft+'px';
	object.style.top=myTop+'px';
}





////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_htmlEditor(parent, activate){
	parent = document.getElementById(parent);
	try{
		var htmlItems = getElementsByAttribute(parent,"textarea","u:html","true");
		var htmlItemsSize = htmlItems.length;
		//alert(htmlItemsSize);		

		for(var i=0; i<htmlItemsSize; i++){
			var htmlItem = htmlItems[i];
			if(activate)	{
				tinyMCE.execCommand('mceAddControl', false, htmlItem.id);
			}else{
				tinyMCE.idCounter = 0;
				tinyMCE.execCommand('mceRemoveControl', false, htmlItem.id);
			}
		}
	}catch(e){
//		alert(e);
	}
}


function UNI_restore(variabele){
	var variabel = document.getElementById('FILEMANAGER_files');
	try{
		var restoreItems = getElementsByAttribute(variabel,"div","u:restore","true");
		var restoreItemsSize = restoreItems.length;
		
		for(var i =0;i < restoreItemsSize; i++){
			var restoreItem = restoreItems[i];
			var restoreFunction = restoreItem.attributes['u:restoreFunction'].nodeValue;
			eval(restoreFunction);
		}
	}catch(e){
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_showRecordLock(url){//content, user, date){
	var obj = document.createElement('div');
	obj.setAttribute("u:url", '/bin/recordlock.php'+url);
	obj.setAttribute("u:destination", 'recordlock_modal_content');
	obj.setAttribute("u:mode", 'replacechildren');
	obj.setAttribute("u:seq", "true");
	UNI_getdata(obj);
	UNI_setAttrib('recordlock_modal_title_nav_img', 'u:modal_2', 'CMS_modal');
	UNI_showModal_manual('recordlock_modal');
}

function UNI_removeRecordLock(obj, url){
	if(UNI_checkModalCondition(obj)){
		UNI_closeModal(obj);
		obj.setAttribute("u:url", '/bin/recordlock.php'+url+'&removerl=true');
		obj.setAttribute("u:destination", 'recordlock_modal_content');
		obj.setAttribute("u:mode", 'replacechildren');
		obj.setAttribute("u:seq", "true");
		UNI_getdata(obj);
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var arr_SelectDimension = new Array;
var arr_ModalDimension = new Array;
var arr_Selects = new Array;
var arr_SelectsModal = new Array;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_hideSelects(obj_id, show){
	var isEnabled = false;

	if (browser_type.isIE && obj_id && isEnabled){
		var arr_ModalDimension = getObjectDimensions(document.getElementById(obj_id));

		arr_SelectsModal = document.getElementById(obj_id).getElementsByTagName('select');
		arr_Selects = document.getElementsByTagName('select');

		var arr_TmpSelectBoxes = new Array;
		var arr_Add = false;

		// Kijkt hier of een selectbox in het window voorkomt zo ja dan maakt deze een nieuwe array aan
		if (arr_SelectsModal.length > 0){
			for (var i=0; i < arr_Selects.length; i++){
				arr_Add = false;
				for (var j=0; j < arr_SelectsModal.length; j++){
					if (arr_SelectsModal[j] != arr_Selects[i]){
						arr_Add = true;
					}else{
						arr_Add = false;
					}
				}

				if (arr_Add){
					arr_TmpSelectBoxes[arr_TmpSelectBoxes.length] = arr_Selects[i];
				}
			}
			arr_Selects = arr_TmpSelectBoxes;
		}

		// Hier worden selectboxjes hidden of visible gezet als een window er boven op staat
		for (var i=0; i < arr_Selects.length; i++){
			arr_SelectDimension = getObjectDimensions(arr_Selects[i]);

			if (
				//kijkt of x en y in het modal valt van een select
				arr_SelectDimension['x'] > arr_ModalDimension['x'] &&
				arr_SelectDimension['y'] > arr_ModalDimension['y'] &&
				arr_SelectDimension['x'] < (arr_ModalDimension['x']+arr_ModalDimension['w']) &&
				arr_SelectDimension['y'] < (arr_ModalDimension['y']+arr_ModalDimension['h']) ||
	
				//kijkt of y positie in het modal valt en de breedte van de select door het modal heen gaat
				arr_SelectDimension['y'] > arr_ModalDimension['y'] &&
				arr_SelectDimension['y'] < (arr_ModalDimension['y']+arr_ModalDimension['h']) &&
				arr_SelectDimension['x'] < arr_ModalDimension['x'] &&
				(arr_SelectDimension['x']+arr_SelectDimension['w']) > arr_ModalDimension['x'] ||
	
				//kijkt op de uiteinden van de selectbox en modal elkaar overlappen
				arr_SelectDimension['x'] < arr_ModalDimension['x']+arr_ModalDimension['w'] &&
				(arr_SelectDimension['y']+arr_SelectDimension['h']) > arr_ModalDimension['y'] &&
				(arr_SelectDimension['x']+arr_SelectDimension['w']) > arr_ModalDimension['x'] &&
	
				arr_SelectDimension['y'] > (arr_ModalDimension['y']+arr_ModalDimension['h']) || 
				(arr_SelectDimension['y']+arr_SelectDimension['h']) < arr_ModalDimension['y'] && 
								
				show
			){
				arr_Selects[i].style.visibility = 'hidden';
			}else{
				arr_Selects[i].style.visibility = 'visible';
			}
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Geeft de x, y, width en heigth terug van een object
function getObjectDimensions(obj){
	var arr = new Array;
	var offsetX = 0;
	var offsetY = 0;
	var offsetW = obj.offsetWidth;
	var offsetH = obj.offsetHeight;

	if (obj.offsetParent){
		while(1){
			offsetX += obj.offsetLeft;
			offsetY += obj.offsetTop;

			if (!obj.offsetParent){
				break;
			}
			obj=obj.offsetParent;
		}
	}else if(obj.x) {
		offsetX += obj.x;
		offsetY += obj.y;
	}

	arr['x'] = offsetX;
	arr['y'] = offsetY;
	arr['w'] = offsetW;
	arr['h'] = offsetH;

		//alert (offsetX+"|"+offsetY+"|"+offsetW+"|"+offsetH);

	return arr;
}

function getDocumentSize()	{
	var size = new Array;
	//opera Netscape 6 Netscape 4x Mozilla 
	if (window.innerWidth || window.innerHeight){ 
		size['width'] = window.innerWidth; 
		size['height'] = window.innerHeight; 
	} 
	//IE Mozilla 
	if (document.body.clientWidth || document.body.clientHeight){ 
		size['width'] = document.body.clientWidth; 
		size['height'] = document.body.clientHeight; 
	} 
	
	return size;
}

function UNI_getContainer(object)	{
	var containerFound = false;
	var searchObject = object;
	while(!containerFound)	{
		try {
			if(searchObject.attributes['u:container'].nodeValue == "true")	{
				containerFound = true;
				return searchObject;			
				break;
			} else {
				
				try { 
					searchObject = searchObject.parentNode;
				}catch(err)	{
					alert('geen parentNode meer');				
					return document.body;
				}
			}
		} catch(err)	{
			try { 
				searchObject = searchObject.parentNode;
			}catch(err)	{
				alert('geen parentNode meer');				
				return document.body;
			}
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
	try {
	    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
	    var arrReturnElements = new Array();
	    var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
	    var oCurrent;
	    var oAttribute;
	    for(var i=0; i<arrElements.length; i++){
	        oCurrent = arrElements[i];
	        oAttribute = oCurrent.getAttribute(strAttributeName);
	        if(typeof oAttribute == "string" && oAttribute.length > 0){
	            if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
	                arrReturnElements.push(oCurrent);
	            }
	        }
	    }
	    return arrReturnElements;
	}catch(err){
		
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function UNI_setAttrib(object, attribute, value){
	if(obj = document.getElementById(object)){
		if(obj.style[attribute] != '' && obj.style[attribute]){
			obj.style[attribute] = value;
  		}else{
  			obj.setAttribute(attribute, value);

  			// render automatisch de tabs indien hiervan de attributen worden aangepast.
  			if(attribute == 'u:enabled' && obj.getAttribute('u:tab')=='true'){
  				renderTab();
  			}
  		}
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function destructPage(){
//	testData('ID_test_0_content');
//	var testobj = document.getElementById('UNI_main');
//alert (testobj);
//var tempdi = getObjectDimensions(testobj);
//alert (tempdi.w);
//	alert ("by by");
}

//function testData(obj_id){
//	var testobj = document.getElementById(obj_id);
////	alert (testobj);
//	var tempdi = getObjectDimensions(testobj);
//	alert (tempdi.w);
//}

