/*
/*
/////////////////////////////
/							/
/	DDP (C)					/
/							/
/	SMCBIO javascripts		/
/							/
/////////////////////////////
*/

// AJAX functions

var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	try {
		xmlhttp = new XMLHttpRequest();
	} catch (e) {
		xmlhttp=false;
	}
}
if (!xmlhttp && window.createRequest) {
	try {
		xmlhttp = window.createRequest();
	} catch (e) {
		xmlhttp=false;
	}
}

// END of AJAX functions


// Navigator functions

if (navigator.appName) {
	if (navigator.userAgent.indexOf("MSIE") != -1) var browser = "IE";
	else if (navigator.userAgent.indexOf("Opera") != -1) var browser = "OP";
	else if (navigator.appName == "Netscape") var browser = "NS";
	else if (navigator.appName == "Mozilla") var browser = "MOZ";
}

// END Navigator functions

function getStyle( layer ) {
	if( document.getElementById ) {
		return document.getElementById( layer ).style
	} else if( document.all ) {
		return document.all[layer].style
	} else {
		return document[layer]
	}
}

function getLayer( layer ) {
	if( document.getElementById ) {
		return document.getElementById( layer )
	} else if( document.all ) {
		return document.all[layer]
	} else {
		return document[layer]
	}
}

function turnimg(imgname, frstnr) {
	if(getStyle(frstnr).display == "none") {
		getStyle(imgname).backgroundPosition = "bottom";
		getStyle(frstnr).display = "block";
	} else {
		getStyle(imgname).backgroundPosition = "top";
		getStyle(frstnr).display = "none";
	}
}

function turnimg2(imgname, frstnr) {
	if(getStyle(frstnr).display == "block") {
		getStyle(imgname).backgroundPosition = "top";
		getStyle(frstnr).display = "none";
	} else {
		getStyle(imgname).backgroundPosition = "bottom";
		getStyle(frstnr).display = "block";
	}
}

function menuturn(imgname, frstnr) { // Alleen gebruiken bij vooraf geopende menu's
	var nrthree = "nav_" + frstnr;
	if(getStyle(frstnr).display == "none") {
		getStyle(imgname).backgroundPosition = "bottom";
		getStyle(frstnr).display = "block";
	} else {
		getStyle(imgname).backgroundPosition = "top";
		getStyle(frstnr).display = "none";
	}
}

function menuturn2(imgname, frstnr) { // Alleen gebruiken bij vooraf gesloten menu's
	var nrthree = "nav_" + frstnr;
	if(getStyle(frstnr).display == "block") {
		getStyle(imgname).backgroundPosition = "top";
		getStyle(frstnr).display = "none";
	} else {
		getStyle(imgname).backgroundPosition = "bottom";
		getStyle(frstnr).display = "block";
	}
}

var tool = 0;		// Pas op met het gebruiken van variabele bool

function submit_form(fs1, fs2, form01, fs3) {
	inlog = eval("document."+form01);
	if(fs3 == 0) {
		getStyle(fs1).display = "block";
		getStyle(fs2).display = "none";
		inlog.elements["sb_gebruikersnaam"].focus();
		/*if(inlog.elements["sb_pc"].checked) {
			inlog.elements["sb_pc2"].checked = true;
		}*/
		tool = 0;
	} else {
		if(tool == 0) {
			getStyle(fs1).display = "none";
			getStyle(fs2).display = "block";
			inlog.elements["sb_wachtwoord"].focus();
			/*if(inlog.elements["sb_pc"].checked) {
				inlog.elements["sb_pc2"].checked = true;
			}*/
			tool = 1;
		} else {
			inlog.submit();
		}
	}
}

function tabkey(e, form, fs1, fs2) {
	var code;
	var inlog = eval("document."+form);
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;
	else code = e.charCode;
	if (code == 9 || code == 13) {
		submit_form(fs1, fs2, form, true);
	}
}

function b_uur_submit(b1) {
	b_uur = eval("document."+b1);
	if(b_uur.sb_onderwerp.value == "") {
		alert("U heeft geen onderwerp!");
	} else {
		if(b_uur.sb_omschrijving.value == "") {
			alert("u heeft geen omschrijving");
		} else {
			if(b_uur.sb_b_uurid.value == 0) {
				if(b_uur.sb_lesuur.value == 0) {
					alert("U heeft geen lesuur opgegeven");
				} else {
					if(b_uur.sb_dag.value == false) {
						alert("U heeft geen dag opgegeven");
					} else {
						if(b_uur.sb_maand.value == false) {
							alert("U heeft geen maand opgegeven");
						} else {
							if(b_uur.sb_jaar.value == false) {
								alert("U heeft geen jaar opgegeven");
							} else {
								return true;
							}
						}
					}
				}
			} else {
				return true;
			}
		}
	}
	return false;
}

function show_div(div) {
	getStyle(div).display = "inline";
}

function hide_div(div) {
	getStyle(div).display = "none";
}

var currentdiv = false;
function switch_div(div) {
	getStyle(div).display = "block";
	if (currentdiv) {
		getStyle(currentdiv).display = "none";
	}
	currentdiv = div;
}

function check_fields() {
	var argv = check_fields.arguments;
	var argc = argv.length;
	for(var i = 1; i < argc; i += 2) {
		var k = eval("document."+argv[0]+"."+argv[i]);
		if(k.value == false) {
			alert("U heeft geen "+argv[i+1]+" ingevuld");
			return false;
		}
	}
	return true;
}

function writable() {
	var argv = writable.arguments;
	var argc = argv.length;
	var k = eval("document."+argv[0]);
	var i = eval("document."+argv[0]+"."+argv[1]+".value");
	if(i == "3" || i == "4" || i == "5") {
		getStyle(argv[2]).display = 'block';
		getStyle(argv[3]).display = 'none';
	} else {
		getStyle(argv[3]).display = 'block';
		getStyle(argv[2]).display = 'none';
	}
	//uncheck(argv[0], argv[4]);
}

function uncheck(form, cb) {
	eval("document."+form+"."+cb+".checked=false");
}

function AddLessen(f1, lessen, hidden) {
	eval("document."+f1+"."+hidden+".value = 1");
	eval("document."+f1+".submit()");
}

function SubmitLessen() {
	var argv = SubmitLessen.arguments;
	var argc = argv.length;
	var c = eval("document."+argv[0]+".sb_lessen.value");
	var tv = eval("document."+argv[0]+".sb_toevoegen.value")
	if(tv == "0") {
		for(var i = 0; i < c; i++) {
			var cb = eval("document."+argv[0]+"."+argv[1+(i*22)]+".checked");
			if(!cb) {
				if(check_fields(argv[0], argv[3+(i*22)], argv[4+(i*22)])) {

				} else {
					return false;
				}
			}
			var type = eval("document."+argv[0]+"."+argv[3+(i*22)]+".value");
			if(type == 3 || type == 4 || type == 5) {
				var dag = eval("document."+argv[0]+"."+argv[13+(i*22)]+".value");
				var maand = eval("document."+argv[0]+"."+argv[15+(i*22)]+".value");
				var jaar = eval("document."+argv[0]+"."+argv[17+(i*22)]+".value");
				var uur = eval("document."+argv[0]+"."+argv[19+(i*22)]+".value");
				var minuut = eval("document."+argv[0]+"."+argv[21+(i*22)]+".value");
				if(minuut < 0 || minuut > 59) {
					alert("U heeft geen juiste "+argv[22+(i*22)]+" opgegeven");
					return false;
				}
				if(minuut == 0) {
					eval("document."+argv[0]+"."+argv[21+(i*22)]+".value='00'");
				}
				if(uur < 0 || uur > 23) {
					alert("U heeft geen juiste "+argv[20+(i*22)]+" opgegeven");
					return false;
				}
				if(uur == 0) {
					eval("document."+argv[0]+"."+argv[19+(i*22)]+".value='0'");
				}
				var d = new Date();
				if(jaar < d.getFullYear()) {
					alert("U heeft geen juiste "+argv[18+(i*22)]+" opgegeven");
					return false;
				}
				if(maand < 1 || maand > 12) {
					alert("U heeft geen juiste "+argv[16+(i*22)]+" opgegeven");
					return false;
				}
				if(maand == 1 || maand == 3 || maand == 5 || maand == 7 || maand == 8 || maand == 10 || maand == 12) {
					if(dag < 1 || dag > 31) {
						alert("U heeft geen juiste "+argv[14+(i*22)]+" in combinatie met "+argv[16+(i*22)]+" opgegeven");
						return false;
					}
				}
				if(maand == 4 || maand == 6 || maand == 9 || maand == 11) {
					if(dag < 1 || dag > 30) {
						alert("U heeft geen juiste "+argv[14+(i*22)]+" in combinatie met "+argv[16+(i*22)]+" opgegeven");
						return false;
					}
				}
				if(maand == 2 && jaar % 4 == 0) {
					if(dag < 1 || dag > 29) {
						alert("U heeft geen juiste "+argv[14+(i*22)]+" in combinatie met "+argv[16+(i*22)]+" opgegeven");
						return false;
					}
				}
			}
		}
		eval("document."+argv[0]+".sb_submit.value=1");
	}
	return true;
}

function button_values(but, val) {
	getStyle(but).value = val;
}

function all_check() {
	var argv = all_check.arguments;
	var argc = argv.length;
	for(var i = 1; i < argc; i++) {
		eval("document."+argv[0]+"."+argv[i]+".checked=true");
	}
}

function all_uncheck() {
	var argv = all_uncheck.arguments;
	var argc = argv.length;
	for(var i = 1; i < argc; i++) {
		eval("document."+argv[0]+"."+argv[i]+".checked=false");
	}
}

function remove_b_uur(f1, hidden, omschrijving) {
	cf = confirm("Weet u zeker dat u "+eval("document."+f1+"."+omschrijving+".value")+" wilt verwijderen?");
	if(cf) {
		eval("document."+f1+"."+hidden+".value=1");
		eval("document."+f1+".submit()");
	} else {
		return false;
	}
}

function remove_menu(f1, hidden, hidden2, omschrijving) {
	cf = confirm("Weet u zeker dat u "+eval("document."+f1+"."+omschrijving+".value")+" wilt verwijderen?");
	if(cf) {
		eval("document."+f1+"."+hidden+".value=1");
		eval("document."+f1+"."+hidden2+".value=1");
		eval("document."+f1+".submit()");
	} else {
		return false;
	}
}

function changePage(url) {
	location.href = url;
}

function turnup(sel) {
	var index = sel.selectedIndex;
	if (sel.options[0].value == -1) {
		alert("U heeft geen menu geselecteerd!");
	} else {
		if(index == 0) {
			alert('Dit is niet mogelijk');
		} else {
			var upindex = index - 1;
			var uptext = sel.options[upindex].text;
			var upvalue = sel.options[upindex].value;

			sel.options[upindex].text = sel.options[index].text;
			sel.options[upindex].value = sel.options[index].value;
			sel.options[upindex].selected = true;

			sel.options[index].text = uptext;
			sel.options[index].value = upvalue;
			sel.options[index].selected = false;
		}
		sel.focus();
	}
}

function turndown(sel) {
	var index = sel.selectedIndex;
	var size = sel.options.length;
	if (sel.options[0].value == -1) {
		alert("U heeft geen menu geselecteerd!");
	} else {
		if(index == size - 1) {
			alert('Dit is niet mogelijk');
		} else {
			var downindex = index + 1;
			var downtext = sel.options[downindex].text;
			var downvalue = sel.options[downindex].value;

			sel.options[downindex].text = sel.options[index].text;
			sel.options[downindex].value = sel.options[index].value;
			sel.options[downindex].selected = true;

			sel.options[index].text = downtext;
			sel.options[index].value = downvalue;
			sel.options[index].selected = false;
		}
		sel.focus();
	}
}

function turnfirst(sel) {
	var index = sel.selectedIndex;
	var length = sel.options.length;
	if (sel.options[0].value == -1) {
		alert("U heeft geen menu geselecteerd!");
	} else {
		if(index == 0) {
			alert('Dit is al het geval');
		} else {
			for(var i = 0; i < index; i++) {
				sel.options[index - i].selected = true;
				turnup(sel);
			}
		}
	}
}

function turnlast(sel) {
	var index = sel.selectedIndex;
	var length = sel.options.length;
	if (sel.options[0].value == -1) {
		alert("U heeft geen menu geselecteerd!");
	} else {
		if(index == length - 1) {
			alert('Dit is al het geval');
		} else {
			for(var i = 0; i < length - index - 1; i++) {
				sel.options[index + i].selected = true;
				turndown(sel);
			}
		}
	}
}

function addmenu(sel, form) {
	var index = sel.selectedIndex;
	var leng = sel.options.length;
	for (var i = 0; i < leng; i++) {
		if (sel.options[i].value == 0) {
			break;
		}
	}
	//alert(i+' '+leng);

	if (i >= leng - 1) {
		sel.options[i] = null;
	} else if (i == index + 1) {

	} else {
		for (var j = i; j < leng - 1; j++) {
			sel.options[j] = new Option(sel.options[j + 1].text, sel.options[j + 1].value);
		}
		sel.options[leng - 1] = null;
		index--;
	}

	leng = sel.options.length;
	if (i != index + 1) {
		//alert("index:"+index+" leng:"+leng+" i:"+i);
		if (index != -1 && index < leng) {
			for (var i = leng; i > index; i--) {
				sel.options[i] = new Option(sel.options[i - 1].text, sel.options[i - 1].value);
			}
			sel.options[index + 1] = new Option('[nieuw menu]', '0');
			sel.options[index + 1].selected = true;
		} else if (index >= leng) {

		} else {
			sel.options[leng] = new Option('[nieuw menu]', '0');
			sel.options[leng].selected = true;
		}
	} else {
		sel.options[i].selected = true;
	}
	show_menudiv(sel, form, 0, false);
}

function addpage(sel, form) {
	var index = sel.selectedIndex;
	var length = sel.options.length;
	if (sel.options[0].value == -1) {
		alert("U heeft geen menu geselecteerd!");
	} else {
		for (var i = 0; i < length; i++) {
			if (sel.options[i].value == 0) {
				break;
			}
		}

		if (i >= length - 1) {
			sel.options[i] = null;
			i = 0;
		} else if (i == index + 1) {

		} else {
			for (var j = i; j < length - 1; j++) {
				sel.options[j] = new Option(sel.options[j + 1].text, sel.options[j + 1].value);
			}
			sel.options[length - 1] = null;
			index--;
		}

		length = sel.options.length;
		if (i != index + 1 || i == 0) {
			sel.disabled = false;
			if (index == -1 || index == length - 1) {
				sel.options[length] = new Option('[nieuwe pagina]', '0');
				sel.options[length].selected = true;
			} else {
				for (var i = length; i > index; i--) {
					sel.options[i] = new Option(sel.options[i - 1].text, sel.options[i - 1].value);
				}
				sel.options[index + 1] = new Option('[nieuwe pagina]', '0');
				sel.options[index + 1].selected = true;
				sel.options[index].selected = false;
			}
		}
		show_menudiv(sel, form, 0, false);
	}
}

var divlayer = false;

function show_menudiv(sel, form, type, pages) {
	var index = sel.selectedIndex;
	if (divlayer) {
		var div = 'sb_menudiv_'+divlayer;
		var div2 = 'sb_menudiv2_'+divlayer;
		var menudiv = 'sb_othermenu';
		var label = form+'.sb_label_'+divlayer;
		var script = form+'.sb_script_'+divlayer;
		var inhoud = form+'.sb_inhoud_'+divlayer;
		var toegang = form+'.elements["sb_toegang_'+divlayer+'[]"]';
		var opgeklapt = form+'.sb_opgeklapt_'+divlayer;
		var size = eval(toegang+".options.length");
		getStyle(menudiv).display = "none";
		try {
			var osize = eval(opgeklapt+".length");
		} catch(e) {
			osize = 0;
		}
		try {
			getStyle(div).display = "none";
		} catch(e) {

		}
		try {
			getStyle(div2).display = "none";
		} catch(e) {

		}
		try {
			eval(label+".value = "+label+".defaultValue");
		} catch(e) {

		}
		try {
			eval(script+".value = "+script+".defaultValue");
		} catch(e) {

		}
		try {
			eval(inhoud+".value = "+inhoud+".defaultValue");
		} catch(e) {

		}
		for (var j = 0; j < size; j++) {
			if (eval(toegang+".options["+j+"].defaultSelected")) {
				eval(toegang+".options["+j+"].selected = true");
			} else {
				eval(toegang+".options["+j+"].selected = false");
			}
		}
		for (j = 0; j < osize; j++) {
			if (eval(opgeklapt+"["+j+"].defaultChecked")) {
				eval(opgeklapt+"["+j+"].checked = true");
			} else {
				eval(opgeklapt+"["+j+"].checked = false");
			}
		}
	}
	if (type == 0) {
		var div = 'sb_menudiv_'+sel.options[index].value;
		var div2 = 'sb_menudiv2_'+sel.options[index].value;
		var menudiv = 'sb_othermenu';
		try {
			for (j = 0; j < 4; j++) {
				if (eval(form+'.sb_type_'+sel.options[index].value+'['+j+'].checked')) {
					var type = eval(form+'.sb_type_'+sel.options[index].value+'['+j+'].value');
					break;
				}
			}
		} catch(e) {}
		getStyle(div).display = "inline";
		getStyle(menudiv).display = "block";
		try {
			getStyle(div2).display = "inline";
		} catch(e) {
			getStyle(menudiv).display = "none";
		}
		if (sel.options[index].value == 0 || type == 2 || type == 4) {
			try {
				getStyle(div2).display = "none";
			} catch(e) {

			}
		}
		divlayer = sel.options[index].value;
	} else {
		var selid = sel.options[index].value;
		var pas = eval(form+".elements['sb_menupages_"+selid+"'].value");
		var arraypas = pas.split(",");
		var len = pages.length;
		for (var m = 0; m < len; m++) {
			pages.options[0] = null;
		}
		if (arraypas != 0) {
			for (k = 0; k < arraypas.length; k++) {
				tarrpas = arraypas[k].split("=");
				pages.options[k] = new Option(tarrpas[1], tarrpas[0]);
			}
			pages.disabled = false;
		} else {
			pages.options[0] = new Option("geen pagina's", 0);
			pages.disabled = true;
		}
	}
}

function othermenu(form, sel) {
	if (sel.value != 0) {
		form.sb_other.value = 1;
		form.submit();
	}
}

function changelabel(sel, tbox) {
	var index = sel.selectedIndex;
	sel.options[index].text = tbox.value;
}

function selectall(sel, sel2, type) {
	try {
		sel2.multiple = true;
		for (var i = 0; i < sel2.options.length; i++) {
			sel2.options[i].selected = true;
		}
	} catch(e) {
		sel.multiple = true;
		for (var i = 0; i < sel.options.length; i++) {
			sel.options[i].selected = true;
		}
	}
}

function showextlink(id, type) {
	if(type == 1) {
		getStyle('sb_extdiv_'+id).display = 'block';
	} else {
		getStyle('sb_extdiv_'+id).display = 'none';
	}

	if(type != 2 && type != 1) {
		getStyle('sb_menudiv2_'+id).display = 'block';
	} else {
		getStyle('sb_menudiv2_'+id).display = 'none';
	}
}

/*
/////////////////////////////////////////////////////////////////////
/																	/
/	DDP (C)															/
/	De onderstaande code is gespeciaal voor het framework 			/
/	gemaakt en blijft in het bezit van DDP (C). Voor gebruik van	/
/	het framework wordt verwezen naar DDP.nl.						/
/		Bedankt voor de interesse naar ons product					/
/			DDP group												/
/																	/
/////////////////////////////////////////////////////////////////////
*/

// Scripts voor de WYSIWYG-editor

// Belangrijke variabelen
var module = 1;
var layoutarray = new Array();
var stdlayout = new Array();
var selmodule = false;
var selmoduleid = false;
var selbt = false;
var selbtid = false;

// Selecteer een module
function selectmodule(mdl, stl, id, pid, bid) {
	try {
		getStyle(selmodule).border = 'none';
		getStyle(selmodule).padding = '0px';
		getStyle(selmodule).marginTop = '0px';
		getStyle(selmodule).marginBottom = '0px';
	} catch(e) {

	}
	stl.border = '1px dotted black';
	stl.padding = '5px';
	stl.marginTop = '5px';
	stl.marginBottom = '5px';
	selmodule = mdl;
	selmoduleid = id;
	selbtid = bid;
}

// Toon de layout
function showlayout(layer, pid) {
	var lay = '';
	for (x in layoutarray[pid]) {
		lay += layoutarray[pid][x].layout;
	}
	document.getElementById(layer).innerHTML = lay;
}

// Voeg bodytypes toe aan de array
function addbt(layer, pid, type) {
	var bid = layoutarray[pid].length;
	var boty = new bodytype(type.options[type.selectedIndex].value, 0, bid, pid, '0');
	boty.addModule(boty.modules.length+1, '[titel]', '', '[tekst]', '0', '1', '0');
	layoutarray[pid].push(boty);
	layoutarray[pid][bid].style_bodytype();
	showlayout(layer, pid);
}

// Voeg modules toe aan de huidige
function addmodule(layer, pid, bid) {
	layoutarray[pid][bid].addModule(layoutarray[pid][bid].modules.length+1, '[titel]', '', '[tekst]', '0', '1', '0');
	showlayout(layer, pid);
}

// Verwijder modules van de huidige
function removemodule(layer, pid, bid) {
	if (selmoduleid) {
		for (y in layoutarray[pid][bid].modules) {
			if (layoutarray[pid][bid].modules[y].id == selmoduleid) {
				var index = new Array(bid,y);
			}
		}
		layoutarray[pid][index[0]].modules.splice(index[1], 1);
		layoutarray[pid][index[0]].style_bodytype();
		showlayout(layer, pid);
	} else {
		alert('Geen module geselecteerd');
	}
}

// Verwijder huidige bodytype
function removebt(layer, pid, bid) {
	layoutarray[pid].splice(bid, 1);
	showlayout(layer, pid);
}

// Voer deze functie uit om de begin module layout voor de cms weer te geven
function makelayout(layer, pid) {
	var argv = makelayout.arguments;
	var argc = argv.length;
	for (var i = 2; i < argc; ++i) {
		layoutarray[pid][layoutarray[pid].length] = argv[i];
		stdlayout[pid][stdlayout[pid].length] = argv[i];
	}
	showlayout(layer, pid);
}

// Een klasse die objecten van het type bodytype aanmaakt.
function bodytype(type, special_var, id, pid, existing) {
	this.id = id;
	this.pid = pid;
	this.type = type;
	this.special_var = special_var;
	this.existing = existing;
	this.layout;
	this.tags = new Array();
	this.modules = new Array();

	if (this.special_var == 0) {
		this.special_var = 52;
	}

	this.addModule = function (id, title, script, text, type, print, existing) {
		var mod = new module(id, title, script, text, type, print, this.pid, this.id, existing);
		this.modules.push(mod);
		this.style_bodytype();
	}

	this.style_bodytype = function () {
		var mods = '';
		var mods1 = '';
		var bt = '';
		bt += '<div style="display: block;" ';
		bt += 'id="newbt_'+this.pid+'_'+this.id+'">';
		if (this.type == '00') {
			var i = 1;
			for (x in this.modules) {
				this.modules[x].style_module();
				if (i % 2 == 0) {
					mods1 += this.modules[x].layout
				} else {
					mods += this.modules[x].layout
				}
				++i;
			}
			boty = bodytypes[this.type].replace(tags['19'], mods);
			bt += boty.replace(tags['20'], mods1);
		} else if (this.type == '01') {
			for (x in this.modules) {
				this.modules[x].style_module();
				mods += this.modules[x].layout;
			}
			bt += bodytypes[this.type].replace(tags['19'], mods);
		} else if (this.type == '02') {
			var i = 1;
			for (x in this.modules) {
				this.modules[x].style_module();
				if (i % 2 == 0) {
					mods1 += this.modules[x].layout
				} else {
					mods += this.modules[x].layout
				}
				++i;
			}
			boty = bodytypes[this.type].replace(tags['19'], mods);
			boty = boty.replace(tags['20'], mods1);
			boty = boty.replace(tags['21'], this.special_var);
			bt += boty;
		}
		bt += '</div>';
		this.layout = bt;
		this.edit_modules();
	}

	this.edit_modules = function () {
		var em = '';
		var div = '<div style="background-color: #ccffcc; border: 1px solid #66cc66; padding: 5px; margin-top: 5px;">';
		em += '<div>';
		em += '<div style="display: block; border: 1px solid teal; height: 22px; padding: 5px; width: 130px; float: left; margin-right: 5px; vertical-align: middle;">';
		em += '<a href="javascript: removebt('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.id+quot+');\" title=\"Verwijder deze bodytype\" class=\"removebutton\" style=\"float: right;\"></a>';
		em += 'Indeling: ';
		em += '<div style="clear: both;"></div>';
		em += '</div>';
		em += '<div style="display: block; border: 1px solid teal; height: 22px; padding: 5px; width: 130px; float: left; margin-right: 5px; vertical-align: middle;">';
		em += '<a href="javascript: addmodule('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.id+quot+');\" title=\"Voeg een module toe\" class=\"addbutton\" style=\"float: right;\"></a>';
		em += '<a href="javascript: removemodule('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.id+quot+');\" title=\"Verwijder een module\" class=\"removebutton\" style=\"float: right;\"></a>';
		em += 'Module: ';
		em += '<div style="clear: both;"></div>';
		em += '</div>';
		if (this.type == '02') {
			em += '<div style="display: block; border: 1px solid teal; padding: 5px; width: 220px; float: left; vertical-align: middle;">';
			em += '<div style="float: right;"><input type="text" name="sb_specialvar_'+this.pid+'_'+this.id+'" size="4" value="'+this.special_var+'" onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.id+quot+');" />%</div>';
			em += 'Breedte (b): ';
			em += '<div style="clear: both;"></div>';
			em += '</div>';
		}
		em += '<div style="clear: both;"></div>';
		em += '<hr width="100%" />';
		if (this.type == '02') {
			em += '<table border="0" cellpadding="0" cellspacing="0" style="width: 100%;">';
			em += '<tr>';
			em += '<td style="color: teal; text-align: center; width: '+this.special_var+'%;">';
			em += 'b';
			em += '</td>';
			em += '<td style="width: '+(100-this.special_var)+'%;">';
			em += '</td>'
			em += '</tr>';
			em += '<tr>';
			em += '<td style="background-color: teal; height: 1px; width: '+this.special_var+'%;">';
			em += '</td>';
			em += '<td style="height: 1px; width: 48%;">';
			em += '</td>';
			em += '</tr>';
			em += '<tr style="height: 5px;">';
			em += '</tr>';
			em += '</table>';
		}
		em += '</div>';
		var divend = '</div>';
		this.layout = div + em + this.layout + divend;
	}

	// Een klasse die objecten van het type module aanmaakt.
	function module(id, title, script, text, type, print, pid, bid, existing) {
		this.id = id;
		this.title = title;
		this.script = script;
		this.text = text;
		this.type = type;
		this.print = print;
		this.pid = pid;
		this.bid = bid;
		this.existing = existing;
		this.layout;
		this.style;
		this.body;
		this.label;

		this.style_module = function () {
			var m = '';
			var body = '';
			var label = '';
			var cm = '';
			var om = '';
			if (this.existing == 0) {
				body += '<div style="background-color: #ccffcc; border: 1px solid teal; display: block; padding: 5px;">';
				body += '<input type="checkbox" name="sb_cb_'+this.pid+'_'+this.bid+'_'+this.id+'" '+(this.type ? 'checked="checked" ' : '')+' onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.bid+quot+');" /> opgeklapt ';
				body += '<input type="checkbox" name="sb_print_'+this.pid+'_'+this.bid+'_'+this.id+'" '+(this.print ? 'checked="checked" ' : '')+' onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.bid+quot+');" /> printbaar';
				body += '</div>';
				body += '<hr width="100%" />';
				body += 'Script: <input type="text" name="sb_script_'+this.pid+'_'+this.bid+'_'+this.id+'" value="'+this.script+'" onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.bid+quot+');" /> of <br />';
				body += 'Tekst: <br /><textarea cols="35" rows="10" class="module_body" name="sb_inhoud_'+this.pid+'_'+this.bid+'_'+this.id+'" onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.bid+quot+');">';
				body += this.text;
				body += '</textarea>';
				this.body = body;

				label += '<input type="text" name="sb_label_'+this.pid+'_'+this.bid+'_'+this.id+'" class="module_titel" value="';
				label += this.title;
				label += '" onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.bid+quot+');" />';
				this.label = label;

				cm = openmodule.replace(tags['7'], this.label);
				cm = cm.replace(tags['8'], this.body);
				cm = cm.replace(tags['3'], 'roll'+this.pid+'_'+this.bid+'_'+this.id);
				cm = cm.replace(tags['4'], 'mod'+this.pid+'_'+this.bid+'_'+this.id);

				m += '<div style="display: block;" onclick="selectmodule('+quot+'newmodules_'+this.id+''+quot+', style, '+this.id+', '+this.pid+', '+this.bid+');" id="newmodules_'+this.id+'">';
				m += cm;
			} else {
				body += '<div style="background-color: #ccffcc; border: 1px solid teal; display: block; padding: 5px;">';
				body += '<input type="checkbox" name="sb_cb_'+this.pid+'_'+this.bid+'_'+this.id+'" '+(this.type ? 'checked="checked" ' : '')+' onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.bid+quot+');" /> opgeklapt ';
				body += '<input type="checkbox" name="sb_print_'+this.pid+'_'+this.bid+'_'+this.id+'" '+(this.print ? 'checked="checked" ' : '')+' onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.bid+quot+');" /> printbaar ';
				body += '</div>';
				body += '<hr width="100%" />';
				body += 'Script: <input type="text" name="sb_script_'+this.pid+'_'+this.bid+'_'+this.id+'" value="'+this.script+'" onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.bid+quot+');" /> of <br />';
				body += 'Tekst: <br /><textarea cols="35" rows="10" class="module_body" name="sb_inhoud_'+this.pid+'_'+this.bid+'_'+this.id+'" onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.bid+quot+');">';
				body += this.text;
				body += '</textarea>';
				this.body = body;

				label += '<input type="text" name="sb_label_'+this.pid+'_'+this.bid+'_'+this.id+'" class="module_titel" value="';
				label += this.title;
				label += '" onchange="javascript: renew_cms('+quot+'sb_holder_'+this.pid+quot+', '+quot+this.pid+quot+', '+quot+this.bid+quot+');" />';
				this.label = label;

				om = openmodule.replace(tags['7'], this.label);
				om = om.replace(tags['8'], this.body);
				om = om.replace(tags['3'], 'roll'+this.pid+'_'+this.bid+'_'+this.id);
				om = om.replace(tags['4'], 'sbbody'+this.pid+'_'+this.bid+'_'+this.id);

				m += '<div style="display: block;" onclick="selectmodule('+quot+'adminmodules_'+this.id+''+quot+', style, '+this.id+', '+this.pid+', '+this.bid+');" id="adminmodules_'+this.id+'">';
				m += om;
			}
			m += '</div>';
			this.layout = m;
		}
	}
}

function renew_cms(layer, pid, bid) {
	if (layoutarray[pid][bid].type == '02') {
		var special_var = eval("document.forms[0].elements['sb_specialvar_"+pid+"_"+bid+"'].value");
		layoutarray[pid][bid].special_var = special_var;
	}
	for (x in layoutarray[pid][bid].modules) {
		var id = layoutarray[pid][bid].modules[x].id;
		var title = eval("document.forms[0].elements['sb_label_"+pid+"_"+bid+"_"+id+"'].value");
		layoutarray[pid][bid].modules[x].title = title;
		var text = eval("document.forms[0].elements['sb_inhoud_"+pid+"_"+bid+"_"+id+"'].value");
		layoutarray[pid][bid].modules[x].text = text;
		var script = eval("document.forms[0].elements['sb_script_"+pid+"_"+bid+"_"+id+"'].value");
		layoutarray[pid][bid].modules[x].script = script;
		if (eval("document.forms[0].elements['sb_cb_"+pid+"_"+bid+"_"+id+"'].checked") == true) {
			layoutarray[pid][bid].modules[x].type = 1;
		} else {
			layoutarray[pid][bid].modules[x].type = 0;
		}
		if (eval("document.forms[0].elements['sb_print_"+pid+"_"+bid+"_"+id+"'].checked") == true) {
			layoutarray[pid][bid].modules[x].print = 1;
		} else {
			layoutarray[pid][bid].modules[x].print = 0;
		}
	}
	layoutarray[pid][bid].style_bodytype();
	showlayout(layer, pid);

	try {
		getStyle(selmodule).border = '1px dotted black';
		getStyle(selmodule).padding = '5px';
		getStyle(selmodule).marginTop = '5px';
		getStyle(selmodule).marginBottom = '5px';
	} catch (e) {

	}
}

// Accepteer en sla alle veranderingen van de pagina indeling op
function submit_cms(layhidden, pid, sel, sel2, type) {
	var xml = "	<layout>\n";
	for (x in layoutarray) {
		for (y in layoutarray[x]) {
			xml += "	<page>\n";
			xml += "		<id>"+x+"</id>\n";
			xml += "		<body>\n";
			for (y in layoutarray[x]) {
				xml += "		<bodytype>\n";
				xml += "			<type>"+layoutarray[x][y].type+"</type>\n";
				xml += "			<specialvar>"+layoutarray[x][y].special_var+"</specialvar>\n";
				xml += "			<existing>"+layoutarray[x][y].existing+"</existing>\n";
				xml += "			<modules>\n";
				for (z in layoutarray[x][y].modules) {
					xml += "			<module>\n";
					xml += "				<id>"+layoutarray[x][y].modules[z].id+"</id>\n";
					xml += "				<title>"+layoutarray[x][y].modules[z].title+"</title>\n";
					xml += "				<text>"+layoutarray[x][y].modules[z].text+"</text>\n";
					xml += "				<script>"+layoutarray[x][y].modules[z].script+"</script>\n";
					xml += "				<type>"+layoutarray[x][y].modules[z].type+"</type>\n";
					xml += "				<print>"+layoutarray[x][y].modules[z].print+"</print>\n";
					xml += "				<opgeklapt>"+layoutarray[x][y].modules[z].type+"</opgeklapt>\n";
					xml += "				<existing>"+layoutarray[x][y].modules[z].existing+"</existing>\n";
					xml += "			</module>\n";
				}
				xml += "			</modules>\n";
				xml += "		</bodytype>\n";
			}
			xml += "		</body>\n";
			xml += "	</page>\n";
			break;
		}
	}
	xml += "	</layout>\n";

	layhidden.value = xml;
	selectall(sel, sel2, type);
	eval('document.forms[0].sb_submit_'+pid+'.value = "OK";');
	document.forms[0].submit();
}

// Annuleer alle veranderingen die aan de pagina indeling gedaan zijn
function reset_cms(layer, pid, resetform, pages) {
	layoutarray[pid] = stdlayout[pid];
	showlayout(layer, pid);
	if (resetform) {
		document.forms[0].reset();
		for (x in pages.options) {
			if (pages.options[x].value == pid) {
				pages.options[x].selected = true;
			}
		}
	}
}

/*
/////////////////////////
/						/
/	DDP (C)				/
/						/
/	Lesstof scripts		/
/						/
/////////////////////////
*/

// De bug verwijder variabele
var quot = "'";

// Aanmaken van globale variabelen
var lesstofarray = new Array();
var stdlesstof = new Array();

// Het veranderen van de lesstof indeling
function changelesstof(e, layer, thm, klas, hoofdstuk, search, type, key) {
	if (key == 1) {
		var code;
		if (!e) var e = window.event;
		if (e.keyCode) code = e.keyCode;
		else if (e.which) code = e.which;
	}

	if (key == 0 || code >= 65 || code == 8) {
		// Reset de hele array om op nieuw te kunnen sorteren
		set_arrays();

		// Filter thema eruit
		var themaid = thm.options[thm.selectedIndex].value;
		var lsarr = new Array();
		if (themaid != 0) {
			for (x in lesstofarray) {
				for (k in lesstofarray[x].thema) {
					if (lesstofarray[x].thema[k] ==  themaid) {
						lsarr.push(lesstofarray[x]);
					}
				}
			}
			lesstofarray = lsarr;
		}

		// Filter klas eruit
		var klasnaam = klas.options[klas.selectedIndex].value;
		var klsarr = new Array();
		if (klasnaam != 0) {
			for (x in lesstofarray) {
				if (lesstofarray[x].niveau ==  klasnaam) {
					klsarr.push(lesstofarray[x]);
				}
			}
			lesstofarray = klsarr;
		}

		// Filter hoofdstuk eruit
		try {
			var hoofdstukid = hoofdstuk.options[hoofdstuk.selectedIndex].value;
			var hlsarr = new Array();
			if (hoofdstukid != 0) {
				for (x in lesstofarray) {
					if (lesstofarray[x].hoofdstuk ==  hoofdstukid) {
						hlsarr.push(lesstofarray[x]);
					}
				}
				lesstofarray = hlsarr;
			}
		} catch(e) {

		}

		// Filter zoektermen eruit
		var zlsarr = new Array();
		if (search.value != "") {
			zoekterm = search.value;
			eval('zoekterm = /'+zoekterm+'/i;');
			for (x in lesstofarray) {
				var la;
				if (zt = lesstofarray[x].naam.match(zoekterm)) {
					la = lesstofarray[x];
					la.naam = lesstofarray[x].naam.replace(zoekterm, '<span class="zoekterm">'+zt+'</span>');
					zlsarr.push(la);
				}
			}
			lesstofarray = zlsarr;
		}

		showlesstof(layer, type);
	}
}

// Voer deze functie uit om alle lesstof te laden
function makelesstof(layer, type, lesarray) {
	lesstofarray = lesarray;
	stdlesstof = lesarray;
	showlesstof(layer, type);
}

// Zet alle lesstof om en plaats dit op de website
function showlesstof(layer, type) {
	var lay = '';
	lay += '<div class=\"info\">('+lesstofarray.length+' items)</div>';
	lay += '<table cellspacing="0" cellpadding="0" border="0" class="tabel" style="width: 100%;">';
	lay += '<tr>';
	lay += '	<td class="kop lkop" style="width: 32px;">&nbsp;</td>';
	lay += '	<td class="kop mkop" style="width: 60px;">Niveau</td>';
	lay += '	<td class="kop rkop" style="text-align: left;">Onderwerp</td>';
	//lay += '	<td class="kop rkop">Thema</td>';
	lay += '</tr>';
	for (x in lesstofarray) {
		lesstofarray[x].lesstof_layout();
		lay += lesstofarray[x].layout;
	}
	lay += '</table>';
	document.getElementById(layer).innerHTML = lay;
}

// Toon de tekst van het lesstof item
function currentlesstof(type, wid, link) {
	link += "&wid="+wid;
	location.href = link;
}

// Klasse die als blauwdruk gebruikt kan worden om lesstof objecten aan te maken
function lesstof(id, type, naam, niveau, onderwerp, thema, link, number) {
	/*
	type:
	1	inleiding
	2	links
	3	practicum
	4	d-toets
	5	test-jezelf
	6	oefentoetsen
	7	kruiswoordpuzzel
	*/

	this.id = id;
	this.type = type;
	this.naam = naam;
	this.niveau = niveau;
	this.onderwerp = onderwerp;
	this.thema = thema;
	this.link = link;
	this.number = number;
	this.klasarray;

	this.layout;

	this.lesstof_layout = function () {
		// Maak een regel voor een tabel
		var lay = '';
		var klasarr = new Array();

		lay += '<tr>';
		lay += '	<td class="cel lcel">'+this.number+'</td>';
		lay += '	<td class="cel mcel" style="text-align: center;">';
		lay += this.niveau;
		lay += '	</td>';
		/*switch (this.type) {
		case 1:
		lay += '	<td class="cel mcel">inleiding</td>';
		break;
		case 2:
		lay += '	<td class="cel mcel">links</td>';
		break;
		case 3:
		lay += '	<td class="cel mcel">practicum</td>';
		break;
		case 4:
		lay += '	<td class="cel mcel">d-toets</td>';
		break;
		case 5:
		lay += '	<td class="cel mcel">test-jezelf</td>';
		break;
		case 6:
		lay += '	<td class="cel mcel">oefentoets</td>';
		break;
		case 7:
		lay += '	<td class="cel mcel">kruiswoordpuzzel</td>';
		break;
		default:
		lay += '	<td class="cel mcel">x</td>';
		break;
		}*/
		lay += '	<td class="cel rcel">';
		//lay += '		<div style="float: right;">('+this.vak+')</div>';
		lay += '		<a href="javascript: currentlesstof('+quot+this.type+quot+', '+quot+this.id+quot+', '+quot+this.link+quot+')">'+this.onderwerp+'</a>';
		if (this.type == 0) {
			lay += '		<div id="lesstof_menu"></div>';
		}
		lay += '</td>';
		/*lay += '	<td class="cel rcel">';
		var i = 0;
		for (l in this.thema) {
		if (i != 0) {
		lay += ' & ';
		}
		lay += this.thema[l];
		i++;
		}
		lay += '</td>';*/
		lay += '</tr>';

		this.layout = lay;
		this.klasarray = klasarr;
	}
}

// De bug verwijder variabele
var quot = "'";

/*
////////////////////////////////
//							  //
//	Javascript search engine  //
//							  //
////////////////////////////////
*/

/*
 * Global Search variables
 */
var searchArray = new Array();
//var stdSearchArray = new Array();
var colsArray = new Array();
var inputArray = new Array();
var showCols = new Array();

/*
 * Make the search array
 */
function makeSearch(layer, buildArray, searchC, searchI, showC) {
	searchArray = buildArray;
	//stdSearchArray = buildArray;
	colsArray = searchC;
	inputArray = searchI;
	showCols = showC;
	showSearch(layer);
}

/*
 * Change search array
 */
function changeSearch(e, key, layer) {
	if (key == 1) {
		var code;
		if (!e) var e = window.event;
		if (e.keyCode) code = e.keyCode;
		else if (e.which) code = e.which;
	}

	if (key == 0 || code >= 65 || code == 8) {
		// Reset de hele array om op nieuw te kunnen sorteren
		initArrays();
		
		// Go through inputArray
		for (x in inputArray) {
			//document.getElementById('testlayer').innerHTML
			srarr = new Array();
			/* Get the string to search for */
			var searchString = "";
			switch (inputArray[x].type) {
				case "select-one":
					searchString = inputArray[x].options[inputArray[x].selectedIndex].value;
					break;
				case "text":
					searchString = inputArray[x].value;
					break;
				default:
					continue;
			}
			/* Search in arrays */
			if (searchString != 0) {
				//document.getElementById('testlayer').innerHTML += searchString+" ";
				eval("var regexp = /"+searchString+"/i;");
				for (y in searchArray) {
					if (isArray(searchArray[y].cols[x])) {
						for (z in searchArray[y].cols[x]) {
							if (searchArray[y].cols[x][z].toString().match(regexp)) {
								srarr.push(searchArray[y]);
							}
						}
					} else {
						if (searchArray[y].cols[x].toString().match(regexp)) {
							srarr.push(searchArray[y]);
						}
					}
				}
				//document.getElementById('testlayer').innerHTML += 1;
				searchArray = srarr;
			}
		}
		showSearch(layer);
	}
}

/*
 * Show the entry after the search
 */
function showSearch(layer) {
	var lay = '';
	lay += '<div class=\"info\">('+searchArray.length+' items)</div>';
	lay += '<table cellspacing="0" cellpadding="0" border="0" class="tabel">';
	lay += '<tr>';
	lay += '	<td class="kop lkop" style="width: 32px;">&nbsp;</td>';
	for (x in showCols) {
		if (showCols[x] != 0) {
			lay += '	<td class="kop mkop" style="width: '+showCols[x]+'px;">'+colsArray[x]+'</td>';
		}
	}
	lay += '</tr>';
	for (l in searchArray) {
		searchArray[l].searchLayout();
		lay += searchArray[l].layout;
	}
	lay += '</table>';
	document.getElementById(layer).innerHTML = lay;
}

/*
 * A search engine entry object
 */
function searchEntry(id, sC, sL, sN) {
	this.id = id;
	this.cols = sC;
	this.number = sN;
	this.link = sL;
	
	this.layout = "";
	
	this.searchLayout = function () {
		// Maak een regel voor een tabel
		var lay = '';

		lay += '<tr>';
		lay += '<td class="cel lcel">';
		lay += this.number;
		lay += '</td>';
		for (x in showCols) {
			if (showCols[x] != 0) {
				lay += '<td class="cel mcel" style="text-align: left;">';
				lay += '<a href="'+this.link+'">';
				lay += this.cols[x]
				lay += '</a>';
				lay += '</td>';
			}
		}
		lay += '</tr>';
		lay += '</a>';

		this.layout = lay;
	}
}

function isArray(obj) {
	if (obj.constructor.toString().indexOf("Array") == -1) {
		return false;
	} else {
		return true;
	}
}

/*
/////////////////////
// Kalender pop-up //
/////////////////////
*/

// Functie die een window met kalender opent
function open_kalender(url) {
	var calender = window.open('', 'De kalender', 'width=300,height=250');
	
	var popup = '';
	popup += '<div style=\"width: 300px; height: 250px;\">';
	popup += 'test';
	popup += '</div>';
	
	calender.document.write(popup);
	calender.focus();
}

function test() {
	alert(1);
}

/*
window.opener; # Functie waarin de pop-up is geopend
*/