var thumbArrayLoaded = new Array();
var thumbArrayLoadedMap = new Array();

var loadedTeller = 0;
var submits = new Array();
var loads = new Array();
var resizeArr = new Array();
var verkennerBlokken = new Array();
var numberOfLTabs;
var numberOfRTabs;
var numberOfFTabs;

var progressDivShown = false;

window.onload = myOnLoad;
window.onresize = myOnResize;
loads[loads.length] = 'initDivHeight()';
resizeArr[resizeArr.length] = 'calculateTabWidth("tabsCenter")';
resizeArr[resizeArr.length] = 'initDivHeight()';

try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(e) {}

function myOnSubmit()
{
	for (submitsI = 0; submitsI < submits.length; submitsI++) {
		eval(submits[submitsI]);
	}
}

function myOnResize()
{
	for (resizeI = 0; resizeI < resizeArr.length; resizeI++) {
		eval(resizeArr[resizeI]);
	}
}

function myOnLoad()
{
	for (loadsI = 0; loadsI < loads.length; loadsI++) {
		eval(loads[loadsI]);
	}
}

function setCookie(cookieName, value) {
	var expires = new Date();
	expires.setTime(expires.getTime() + 2592000000);
	document.cookie = cookieName + "=" + escape(value) + "; expires=" + expires.toGMTString();
}

function getCookie(cookieName) {
	var alen = cookieName.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if(document.cookie.substring(i, j) == cookieName) {
			var endstr = document.cookie.indexOf (";", j);
			if (endstr == -1)
			endstr = document.cookie.length;
			return unescape(document.cookie.substring(j + 1, endstr));
		}
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return null;
}

//TODO : FUNCTIE DYNAMISCHER MAKEN ARRAY OPSLAAN IN COOKIE
function setSubtab(subtabArray, active){
	if (subtabArray != undefined) {
		for (var i=0; i<subtabArray.length; i++) {
			if(subtabArray[i] != active){
				if(document.getElementById(subtabArray[i]+'_tabblad')){
					document.getElementById(subtabArray[i]+'_tabblad').className = 'subtab';
				}
				if(document.getElementById(subtabArray[i])){
					document.getElementById(subtabArray[i]).style.display = 'none';
				}
			}else{
				if(document.getElementById(subtabArray[i]+'_tabblad')){
					document.getElementById(subtabArray[i]+'_tabblad').className = 'subtabActive';
				}
				if(document.getElementById(subtabArray[i])){
					document.getElementById(subtabArray[i]).style.display = 'block';
				}
			}
		}
	}
}

function selectFile(id, force, bgcolor){
	var fileBlokDiv		= document.getElementById('fileBlok'+id);
	var fileCheckbox	= document.getElementById('filecb'+id);

	if(bgcolor==undefined) {
		bgcolor = '#993366';
	}
	if(force!=undefined && force != ''){
		if(force=='true'){
			fileBlokDiv.style.backgroundColor = bgcolor;
			fileCheckbox.checked = true;
		}else{
			fileBlokDiv.style.backgroundColor = '#FFFFFF';
			fileCheckbox.checked = false;
		}
	}else{
		if(fileCheckbox.checked){
			fileBlokDiv.style.backgroundColor = '#FFFFFF';
			fileCheckbox.checked = false;
		}else{
			fileBlokDiv.style.backgroundColor = bgcolor;
			fileCheckbox.checked = true;
		}
	}
}

function deselectAllFiles(){
	if(typeof(thumbArray) != "undefined"){
		for(var i=0; i<thumbArray.length; i++) {
			selectFile(thumbArray[i],'false');
		}
	}
}

function selectAllFiles(bgcolor){
	if(typeof(thumbArray) != "undefined"){
		for(var i=0; i<thumbArray.length; i++) {
			selectFile(thumbArray[i],'true', bgcolor);
		}
	}
}

function expand(id, force){
	var el = document.getElementById('vkUL_'+id);
	var img = document.getElementById('vkIMG_'+id);
	var oldExpandable = getCookie('expand_'+id);
	if(el && img){
		if(force=='init'){
			newExpandable = oldExpandable;
			if(newExpandable=='true'){
				el.style.display = 'block';
				img.src = '/images/bullets/arrow_grijs_expanded.gif';
			}else{
				el.style.display = 'none';
				img.src = '/images/bullets/arrow_grijs.gif';
			}
		}else{
			if(((oldExpandable=='true')&&(force!='show'))||(force=='hide')){
				newExpandable = false;
				el.style.display = 'none';
				img.src = '/images/bullets/arrow_grijs.gif';
			}else{
				newExpandable = true;
				el.style.display = 'block';
				img.src = '/images/bullets/arrow_grijs_expanded.gif';
			}
			setCookie('expand_'+id, newExpandable);
		}
	}
}

function expandAll(testarray){
	for(var i=0; i<testarray.length; i++){
		expand(testarray[i], 'show');
	}
}

function collapseAll(testarray){
	for(var i=0; i<testarray.length; i++){
		expand(testarray[i], 'hide');
	}
}

function initExpandables(testarray){
	for(var i=0; i<testarray.length; i++){
		expand(testarray[i], 'init');
	}
}

function tabClicked(cnt){
	if (cnt == 2) {
		document.getElementById('opties').style.display = 'none';
		document.getElementById('instellingen').style.display = 'block';
		document.getElementById('ads').style.display = 'none';
		document.getElementById('optieTab').className = 'tab_opties';
		document.getElementById('instellingenTab').className = 'tab_instellingen_selected';
		document.getElementById('adsTab').className = 'tab_ads';
	} else
	if (cnt == 3) {
		document.getElementById('instellingen').style.display = 'none';
		document.getElementById('opties').style.display = 'none';
		document.getElementById('ads').style.display = 'block';
		document.getElementById('optieTab').className = 'tab_opties';
		document.getElementById('instellingenTab').className = 'tab_instellingen';
		document.getElementById('adsTab').className = 'tab_ads_selected';
	}else{
		document.getElementById('instellingen').style.display = 'none';
		document.getElementById('opties').style.display = 'block';
		document.getElementById('ads').style.display = 'none';
		document.getElementById('optieTab').className = 'tab_opties_selected';
		document.getElementById('instellingenTab').className = 'tab_instellingen';
		document.getElementById('adsTab').className = 'tab_ads';
	}
	setCookie('clicked', cnt)
}

function addOption(fRef,sName,sText,sValue,sItem) {
	var def = false;
	var sel = false;
	var optionName = new Option(sText, sValue, def, sel);
	var length = fRef[sName].length;

	sValue = trim(sValue);

	// controleer of het textvak een waarde bevat
	if(sValue != "" && sValue != "undefined") {
		fRef[sName].options[length] = optionName;
		fRef[sName].options[length].selected = true;

		// leeg de waarde van het textvak en zet focus
		if(fRef[sItem]){
			fRef[sItem].value = '';
			fRef[sItem].focus();
		}
	} else {
		alert('Waarde mag niet leeg zijn');
	}

	selectAllOptions(fRef[sName]);
}

function addLIOption(ul_id, key, li_value) {
	var currentIndex = itemCurrentIndex(ul_id, key);

	var li = document.createElement('LI');
	li.className = 'lineitem';
	li.id = 'item_'+key;
	li.innerHTML = '<div class="itemblok" style="z-index: 900;">' + li_value + '</div>';
	//li.innerHTML += '<div class="itemblok" style="z-index: 900; float: left;"></div>';
	document.getElementById(ul_id).appendChild(li);
	//xajax_changeRelationHTML(listTo, 'item_'+key);
}

function deleteOptions(fRef, sName, force) {
	var length = fRef[sName].options.length;
	for (var i=0; i<fRef[sName].options.length; i++) {
		if (fRef[sName].options[i].selected || force) {
			fRef[sName].options[i] = null;
			length--;
			i--;
		}
	}
}
function moveOption(fRef, sNameFrom, sNameTo, force, right) {
  for (var i=0; i<fRef[sNameFrom].options.length; i++) {
    if (fRef[sNameFrom].options[i].selected || force) {
      addOption(
        fRef,sNameTo,
        fRef[sNameFrom].options[i].text,
        fRef[sNameFrom].options[i].value
      );

    }
  }
  deleteOptions(fRef,sNameFrom,force);
  if(right){
	  selectAllOptions(fRef[sNameTo]);
	  deselectAllOptions(fRef[sNameFrom]);
  }else{
	  selectAllOptions(fRef[sNameFrom]);
	  deselectAllOptions(fRef[sNameTo]);
  }
}

function ClearOptions(OptionList) {
	// Always clear an option list from the last entry to the first
	for (x = OptionList.length; x >= 0; x = x - 1) {
		OptionList[x] = null;
	}
}

function selectAllOptions(obj) {
	for (var i=0; i<obj.options.length; i++) {
		obj.options[i].selected = true;
	}
}

function deselectAllOptions(obj) {
	for (var i=0; i<obj.options.length; i++) {
		obj.options[i].selected = false;
	}
}

function moveOptionUp(obj){
	if (!hasOptions(obj)) { return; }
	for (i=0; i<obj.options.length; i++) {
		if (obj.options[i].selected) {
			if (i != 0 && !obj.options[i-1].selected) {
				swapOptions(obj,i,i-1);
				obj.options[i-1].selected = true;
			}
		}
	}
}

function moveOptionDown(obj) {
	if (!hasOptions(obj)) { return; }
	for (i=obj.options.length-1; i>=0; i--) {
		if (obj.options[i].selected) {
			if (i != (obj.options.length-1) && ! obj.options[i+1].selected) {
				swapOptions(obj,i,i+1);
				obj.options[i+1].selected = true;
			}
		}
	}
}

function hasOptions(obj) {
	if (obj!=null && obj.options!=null) { return true; }
	return false;
}

function swapOptions(obj,i,j) {
	var o = obj.options;
	var i_selected = o[i].selected;
	var j_selected = o[j].selected;
	var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);
	o[i] = temp2;
	o[j] = temp;
	o[i].selected = j_selected;
	o[j].selected = i_selected;
}

function switchVisibility(id){
	var el = document.getElementById(id);
	if(el.style.visibility=='visible'){
		el.style.visibility = 'hidden';
	}else{
		el.style.visibility = 'visible';
	}
}

function show(id){
	var el = document.getElementById(id);
	if(el) el.style.display = 'block';
}

function hide(id){
	var el = document.getElementById(id);
	if(el) el.style.display = 'none';
}


function switchCheckbox(cb){
	if(document.getElementById(cb).checked){
		document.getElementById(cb).checked = false;
	}else{
		document.getElementById(cb).checked = true;
	}
}

function selectAll(formName){
	for (var i=0; i < document.forms[formName].elements.length; i++){
		if(document.forms[formName].elements[i].type == 'checkbox'){
			document.forms[formName].elements[i].checked = true;
		}
	}
}
function deselectAll(formName){
	for (var i=0; i < document.forms[formName].elements.length; i++){
		if(document.forms[formName].elements[i].type == 'checkbox'){
			document.forms[formName].elements[i].checked = false;
		}
	}
}

function swapIMG(el, img){
	if(el.src){
		el.src = img;
	}
}

function setRightbox(bool){
	if(bool){
		document.getElementById('rightbox_off').style.display = 'none';
		document.getElementById('rightbox_on').style.display = 'inline';
		document.getElementById('main').style.marginRight = '200px';
		setCookie('zoekboxPositie','uitgeklapt');
	}else{
		document.getElementById('rightbox_off').style.display = 'inline';
		document.getElementById('rightbox_on').style.display = 'none';
		document.getElementById('main').style.marginRight = '20px';
		setCookie('zoekboxPositie','ingeklapt');
	}
}

function initRightbox(){
	if(getCookie('zoekboxPositie')=='uitgeklapt'){
		setRightbox(true);
	}else{
		setRightbox(false);
	}
}

function scrollHandler(el, setWidth, nosave){
	if(!setWidth) var setWidth = 'false';
	if(!nosave) var nosave = 'false';

	// BEREKEN HOE VAAK HET OFFSET_AANTAL THUMBS GELADEN MOET WORDEN
	var aantalScrollHoogtes = Math.ceil((el.scrollTop+el.offsetHeight) / el.offsetHeight);
	thumbHandler(setWidth, nosave, el.id, aantalScrollHoogtes);
}

function thumbHandler(setWidth, nosave, containerID, aantalScrollHoogtes)
{
	// alert(setWidth + ' ' + nosave + ' ' + containerID + ' ');

	if(!containerID) var containerID = 'resultaatBlok1';
	if(!aantalScrollHoogtes) var aantalScrollHoogtes = 1;

	// NIEUWE GROOTTE BEPALEN
	var newWidth = 90;

	if(setWidth>0){
		// ALS DE GROOTTE NIET HOEFT TE WORDEN OPGESLAGEN
		// DAN HOEFT DE ARRAY OOK NIET STEEDS TE WORDE GERESET
		if(!nosave){
			//alert(nosave);
			thumbArrayLoaded = new Array();
			thumbArrayLoadedMap = new Array();
			loadedTeller = 0;
		}
		var newWidth = setWidth;
	}
	else
	{
		var thumbSize = getCookie("thumbSize");
		if(thumbSize>0){
			var newWidth = thumbSize;
		}
	}


	// BEPAAL HOEVEEL THUMBS ER IN HET SCHERM KUNNEN
	if( document.getElementById( containerID ) )
	{
		var containerElement = document.getElementById(containerID);
		var thumbElBreedte = parseInt(newWidth)+35+10; //thumb+div+margin
		var thumbElHoogte  = parseInt(newWidth)+35+10; //thumb+div+margin
		var aantalThumbsX  = Math.floor(containerElement.offsetWidth / thumbElBreedte);
		var aantalThumbsY  = Math.floor(containerElement.offsetHeight / thumbElHoogte);
		var aantalZichtbareThumbs = aantalThumbsX * aantalThumbsY;

		// TEL DE TOTALEN OP OM DE ZINDEX TE BEREKENEN
		if((typeof(thumbArrayMappen)!="undefined") && (typeof(thumbArray)!="undefined")){
			/*
			 * 22-04-2009 | Marco Vogelaar
			 * In plaats van te beginnen met de hoogste z-index beginnen met een z-index van 100
			 * Oude code : var curZindex = thumbArrayMappen.length + thumbArray.length + 100;
			 */
			var curZindex = 100
		}

		// THUMB ARRAY VAN DE MAPPEN DOORLOPEN
		if(typeof(thumbArrayMappen) != "undefined") {
			for(var i=0; i<thumbArrayMappen.length; i++) {
				var curID = thumbArrayMappen[i];

				// ZINDEX ZETTEN OMDAT IE DEZE VERKEERD RENDERED
				/*
				 * 22-04-2009 | Marco Vogelaar
				 * De z-index verhogen, omdat er begonnen wordt met de laagste z-index
				 * Oude code : curZindex--;
				 */
				curZindex++;
				document.getElementById('fileBlokMap'+curID).style.zIndex = curZindex;
				// VAK VERGROTEN
				document.getElementById('fileBlokMap'+curID).style.width = (parseInt(newWidth)+35)+'px';
				document.getElementById('fileBlokMap'+curID).style.height = (parseInt(newWidth)+35)+'px';
				// PRELOADER TERUG ZETTEN
				var margins = (newWidth/2)-8;
				document.getElementById('thumbIMGMap'+curID).innerHTML = '<img src="/images/smallLoadingRoller.gif" width="16" height="16" style="margin:'+margins+'px; border:0;">';
			}
			
			// NIEUWE THUMBS LADEN
			xajax_showArrayOfThumbs(thumbArrayMappen, "mappen", newWidth, newWidth);
			
		}
		
		// THUMB ARRAY VAN DE FILES DOORLOPEN
		if(typeof(thumbArray) != "undefined"){
			for(var i=0; i<thumbArray.length; i++) {
				var curID = thumbArray[i];
					
				// CHECK OF HIJ NIET AL IS GELADEN
				if(thumbArrayLoaded[curID]!=1){
					// ZINDEX ZETTEN OMDAT IE DEZE VERKEERD RENDERED
					curZindex--;
					document.getElementById('fileBlok'+curID).style.zIndex = curZindex;
	
					// VAK VERGROTEN
					document.getElementById('fileBlok'+curID).style.width = (parseInt(newWidth)+35)+'px';
					document.getElementById('fileBlok'+curID).style.height = (parseInt(newWidth)+35)+'px';
	
					// PRELOADER TERUG ZETTEN
					var margins = (newWidth/2)-8;
					//document.getElementById('thumbIMG'+curID).innerHTML = '<img src="/images/smallLoadingRoller.gif" width="16" height="16" style="margin:'+margins+'px; border:0;">';
	
					if(aantalScrollHoogtes != 1) {
						// BEREKEN HOEVEEL ER GELADEN MOGEN WORDEN
						var aantalLaden = (aantalZichtbareThumbs*aantalScrollHoogtes)+10;
						if(loadedTeller < aantalLaden){
							// NIEUWE THUMB LADEN
							xajax_showThumb(curID, "file", newWidth, newWidth); 
							// VASTLEGGEN DAT HIJ GELADEN IS
							thumbArrayLoaded[curID] = 1;
							loadedTeller++;
						}
					}
				}
			}
		
			if(aantalScrollHoogtes == 1) {
				xajax_showArrayOfThumbs(thumbArray, "files", newWidth, newWidth);
			}
		
		}
	}

	// NIEUWE THUMB GROOTTE OPSLAAN IN EEN COOKIE
	if((nosave!=true)&&(nosave!='true')){
		setCookie("thumbSize", newWidth);
	}
}
/*
function scrollHandler(el, setWidth, nosave){
	if(!setWidth) var setWidth = 'false';
	if(!nosave) var nosave = 'false';

	// BEREKEN HOE VAAK HET OFFSET_AANTAL THUMBS GELADEN MOET WORDEN
	var aantalScrollHoogtes = Math.ceil((el.scrollTop+el.offsetHeight) / el.offsetHeight);
	thumbHandler(setWidth, nosave, el.id, aantalScrollHoogtes);
}
*/
function hideInvoegVenster()
{
	initDivHeight();
	if (document.getElementById('blok_main_rechts') != undefined) {
		document.getElementById('blok_main_rechts').style.display = 'none';
		document.getElementById('blok_main_center').style.marginRight = '0px';
		enabledTabs(getCurrentActiveTab('rtab'),'tabsCenter','-1');
	}
}

function enabledTabs(tabSelected, ulID, aantal)
{
	var ul = document.getElementById(ulID);

	if (ul != undefined) {
		var tabs = document.getElementById(ulID).childNodes;
		if (tabSelected != undefined) {
			var child1 = tabs[tabSelected-1];
			if (child1.innerHTML == '...') {
				document.getElementById(ulID).removeChild(child1);
				tabs = document.getElementById(ulID).childNodes;
				var child2 = tabs[tabSelected];
				document.getElementById(ulID).removeChild(child2);
				tabs = document.getElementById(ulID).childNodes;
				for (i = 0; i < tabs.length;i++ ) {
					if (tabs[i].className != 'buttonTab') {
						tabs[i].style.display = 'block';
					}
				}
				hideInvoegVenster();
				//switchTab('rtab', parseInt(tabSelected));//+parseInt(aantal)
			}
		}
	}
}

function switchTab(tabSet, activeTab){
	var currentTabs;


	switch(tabSet){
		case "ltab":
			currentTabs = numberOfLTabs;
		break;
		case "rtab":
			if (typeof(checkForm) != 'undefined' && !checkForm(getCurrentActiveTab(tabSet))) {
				return false;
			}
			currentTabs = numberOfRTabs;
		break;
		case "ftab":
			currentTabs = numberOfFTabs;
		break;
		case "bl2tab":
		case "bl3tab":
		case "bl4tab":
			currentTabs = 2;
		break;
	}

	for (i=1;i<=currentTabs;i++) {
		if (i == 1 && document.getElementById(tabSet+''+i) != undefined) {
			document.getElementById(tabSet+''+i).className = 'firstTab';
		} else if (document.getElementById(tabSet+''+i) != undefined) {
			document.getElementById(tabSet+''+i).className = '';
		}
		document.getElementById(tabSet+'Content'+i).style.display = 'none';
	}
	document.getElementById(tabSet+''+activeTab).className = 'active';

	document.getElementById(tabSet+'Content'+activeTab).style.display = 'block';
	if (document.getElementById('activeFormTab') != undefined) {
		document.getElementById('activeFormTab').value = activeTab;
	}
}

function calculateTabWidth(ulID){
	if(document.getElementById(ulID)){
		var tabs = document.getElementById(ulID).childNodes;
		var breedte = 0;
		var currentTab = getCurrentActiveTab('rtab');
		for (i = 0; i < tabs.length; i++) {
			breedte += tabs[i].offsetWidth + 0;
		}
		var ulBreedte = document.getElementById(ulID).offsetWidth + 0;
		if (ulBreedte < breedte) {
			for (i = currentTab; i < tabs.length;i++ ) {
				if (tabs[i].className != 'buttonTab') {
					tabs[i].style.display = 'none';
				}
			}
			for (j = 0; j < currentTab-1;j++ ) {
				if (tabs[j].className != 'buttonTab') {
					tabs[j].style.display = 'none';
				}
			}
			var li = document.createElement('LI');
			var li2 = document.createElement('LI');
			li.className = 'firstTab';
			li.onclick = new Function("enabledTabs('"  + currentTab + "','" + ulID + "','-1');");
			li2.onclick = new Function("enabledTabs('"  + currentTab + "','" + ulID + "','1');");
			li.innerHTML = '...';
			li2.innerHTML = '...';
			var before = tabs[currentTab-1];
			var after = tabs[currentTab];
			document.getElementById(ulID).insertBefore(li, before);
			document.getElementById(ulID).insertBefore(li2, after);
		} else {
			//TODO waarom werkt dit dan wel en dan niet???
			//enabledTabs(getCurrentActiveTab('rtab'),'tabsCenter','-1');
		}
	}
}

function initDivHeight(){
	/**
	 * 28-01-2009 | Marco Vogelaar
	 * Hoogte van blok_header div in topnav van invloed op correctDivHeight
	 */
	if(document.getElementById('koptekst') != null) {
		var koptekst=document.getElementById('koptekst');
	}
	
	if(document.getElementById('blok_header') != null) {
		var blok_header=document.getElementById('blok_header');
	}
	
	if(koptekst==undefined) {
		if(blok_header==undefined) {
			correctDivHeight('blok_main_links', -165);
			correctDivHeight('blok_main_rechts', -165);
			correctDivHeight('blok_main_center', -165);
			correctDivHeight('container_center', -165);
			correctDivHeight('rightbox', -155);
			correctDivHeight('fileDetailsContainer', -399);
			correctDivHeight('group2', -278);
		} else {
			correctDivHeight('blok_main_links', -80-blok_header.offsetHeight);
			correctDivHeight('blok_main_rechts', -80-blok_header.offsetHeight);
			correctDivHeight('blok_main_center', -80-blok_header.offsetHeight);
			correctDivHeight('container_center', -80-blok_header.offsetHeight);
			correctDivHeight('rightbox', -70-blok_header.offsetHeight);
			correctDivHeight('fileDetailsContainer', -314-blok_header.offsetHeight);
			correctDivHeight('group2', -193-blok_header.offsetHeight);
		}
	} else {
		if(blok_header==undefined) {
			correctDivHeight('blok_main_links', -165-koptekstHeight);
			correctDivHeight('blok_main_rechts', -165-koptekstHeight);
			correctDivHeight('blok_main_center', -165-koptekstHeight);
			correctDivHeight('container_center', -165-koptekstHeight);
			correctDivHeight('rightbox', -155-koptekstHeight);
			correctDivHeight('fileDetailsContainer', -399-koptekstHeight);
			correctDivHeight('group2', -278-koptekstHeight);
		} else {
			correctDivHeight('blok_main_links', -80-blok_header.offsetHeight-koptekstHeight);
			correctDivHeight('blok_main_rechts', -80-blok_header.offsetHeight-koptekstHeight);
			correctDivHeight('blok_main_center', -80-blok_header.offsetHeight-koptekstHeight);
			correctDivHeight('container_center', -80-blok_header.offsetHeight-koptekstHeight);
			correctDivHeight('rightbox', -70-blok_header.offsetHeight-koptekstHeight);
			correctDivHeight('fileDetailsContainer', -314-blok_header.offsetHeight-koptekstHeight);
			correctDivHeight('group2', -193-blok_header.offsetHeight-koptekstHeight);
		}
	}

	for (var i=0;i<verkennerBlokken.length;i++) {
		if(correctie==undefined){
			var correctie = (findPosY(verkennerBlokken[i])+37) * -1;
		}
		//alert(findPosY(document.getElementById(verkennerBlokken[i])));
		correctDivHeight(verkennerBlokken[i], correctie);
	}

	/********* CORRIGEER RESULTAATBLOK  **********/
	// BEPAAL DE CORRECTIE AAN DE HAND VAN DE Y POSITIE VAN DE ACTIEVE DIV
	// TODO: DYNAMISCH VIA ARRAY NET ALS BIJ VERKENNERBLOKKEN
	var correctie = 0;
	var tempCorrectie = 0;

	//alert(numberOfRTabs);

	for (i=1;i<numberOfRTabs+1;i++) {
		//alert('hoogte'+findPosY('resultaatBlok'+i));
		tempCorrectie = (findPosY('resultaatBlok'+i)+37) * -1;
		if(tempCorrectie < correctie){
			correctie = tempCorrectie;
		}
	}
	
	//TODO: DYNAMISCH VIA ARRAY NET ALS BIJ VERKENNERBLOKKEN
	for (i=1;i<numberOfRTabs+1;i++) {
		if(koptekst==undefined) {
			if(blok_header==undefined) {
				correctDivHeight('rtabContent'+i, -155);
			} else {
				correctDivHeight('rtabContent'+i, -70-blok_header.offsetHeight);
			}
		} else {
			if(blok_header==undefined) {
				correctDivHeight('rtabContent'+i, -155-koptekstHeight);
			} else {
				correctDivHeight('rtabContent'+i, -70-blok_header.offsetHeight-koptekstHeight);
			}
		}
		correctDivHeight('resultaatBlok'+i, correctie);
	}

	for (i=1; i<numberOfFTabs+1;i++) {
		var divNaam = 'ftabContent'+i;
		var correctie = (findPosY(divNaam)+48) * -1;
		correctDivHeight('ftabContent'+i, correctie);
		//correctDivHeight('')
	}
}

function correctDivHeight(el, integer, check){
	if(check){
		document.getElementById(el).style.border = '3px solid #FF0000';
	}
	if (document.getElementById(el) != undefined && parseInt(document.documentElement.clientHeight + integer) > 0) {
		document.getElementById(el).style.height = parseInt(document.documentElement.clientHeight + integer)+"px";
	}
}

function findPosX(obj) { // Vind de x-coordinaat van een element
	var curleft = 0;
	if (obj.offsetParent) {
       while (obj.offsetParent) {
          curleft += obj.offsetLeft;
          obj = obj.offsetParent;
       }
	} else if (obj.x) curleft += obj.x;
	return curleft;
}

function findPosY(id) { // Vind de y-coordinaat van een element
	//alert(id);
	var obj	= document.getElementById(id);

	if(obj){
		var curtop = 0;
		//alert(obj.offsetParent);
		if (obj.offsetParent != 'null') {
	       	while (obj.offsetParent) {
    	      	curtop += obj.offsetTop;
        	  	obj = obj.offsetParent;
        	  	if(obj == null) {
        	  		return curtop;
        	  	}
       		}
		} else if (obj.y) {
			curtop += obj.y;
		}
		return curtop;
	}
}

function getCurrentActiveTab(tabSet)
{
	switch(tabSet){
		case "ltab":
			currentTabs = numberOfLTabs;
			break;
		case "rtab":
			currentTabs = numberOfRTabs;
			break;
		case "ftab":
			currentTabs = numberOfFTabs;
			break;
	}
	for (i=1;i<=currentTabs;i++) {
		if (document.getElementById(tabSet+'Content'+i).style.display == 'block') {
			return i;
		}
	}
}

function toevoegenOptieAanEnkeleLijst(listTo, key)
{
	var currentIndex = itemCurrentIndex(listTo, key);
	if (currentIndex === false) {
		var li = document.createElement('LI');
		li.id = 'item_'+key;
		li.className = 'lineitem';
		li.innerHTML = '<div class="itemblok" style="z-index: 900;">';
		li.innerHTML += '<div class="arrowText"><img src="/images/bullets/item.gif" class="bl2" height="12" width="12"></div>';
		li.innerHTML += '<div class="arrowHover"><ul><li><a href="#">Toevoegen</a></li></ul></div></div>';
		document.getElementById(listTo).appendChild(li);
		xajax_changeRelationHTML(listTo, 'item_'+key);
	}
}
function itemKoppelen(naarGroep, element)
{
	obj = document.getElementById('item_'+element);
	obj.parentNode.removeChild(obj);
	document.getElementById(naarGroep).appendChild(obj);
	xajax_changeRelationHTML(naarGroep, 'item_'+element);
}

function itemDown(groep, element)
{
	var currentIndex = itemCurrentIndex(groep, element);
	if (currentIndex !== false && currentIndex < document.getElementById(groep).childNodes.length && document.getElementById(groep).childNodes[currentIndex+1] != undefined) {
		var klikElement = document.getElementById('item_'+element);
		var volgendeElement = document.getElementById('item_'+element).nextSibling;
		document.getElementById(groep).replaceChild(klikElement, volgendeElement);
		document.getElementById(groep).insertBefore(volgendeElement, klikElement);
	}
}

function itemUp(groep, element)
{
	var currentIndex = itemCurrentIndex(groep, element);
	if (currentIndex != false && currentIndex > 0 && document.getElementById(groep).childNodes[currentIndex-1] != undefined) {
		var klikElement = document.getElementById('item_'+element);
		var vorigeElement = document.getElementById('item_'+element).previousSibling;
		document.getElementById(groep).replaceChild(vorigeElement, klikElement);
		document.getElementById(groep).insertBefore(klikElement, vorigeElement);
	}
}

function itemCurrentIndex(groep, element)
{
	if (document.getElementById(groep) != undefined) {
		for (i = 0; i < document.getElementById(groep).childNodes.length; i++ ) {
			if (document.getElementById(groep).childNodes[i].id == 'item_'+element)	{
				return i;
			}
		}
	}
	return false;
}

function itemOntkoppelen(naarGroep, element)
{
	var reordered = true;
	obj = document.getElementById('item_'+element);
	obj.parentNode.removeChild(obj);

	//move, if not already last element, the element is not null
	if (document.getElementById(naarGroep) != undefined && document.getElementById(naarGroep).childNodes.length > 0) {
		for (var j=0; j<document.getElementById(naarGroep).childNodes.length; j++) {
			if (document.getElementById(naarGroep).childNodes[j] == element) {
				reordered = false;
			}
		}
	}
	if (reordered) {
		if (document.getElementById('rel_subtab1_tabblad') != undefined && document.getElementById('rel_subtab1_tabblad').className == 'subtab') {
			xajax_loadRelationSearchResult(document.getElementById('relatieModuleID').options[document.getElementById('relatieModuleID').selectedIndex].value, false, naarGroep);
		} else if (document.getElementById("relatieModuleID") != undefined) {
			xajax_loadRelationSearchResult(document.getElementById('relatieModuleID').options[document.getElementById('relatieModuleID').selectedIndex].value, document.getElementById('relatieZoekBox').value, naarGroep);
		}
	}
	return reordered;
}

function showLoadingDiv(titel, tekst){
	changeOpac(60, 'loadingBlend');

	if(titel !== undefined) {
		document.getElementById('typeMeldingLoading').innerHTML = titel;
	}

	if(tekst !== undefined) {
		document.getElementById('textMeldingLoading').innerHTML = tekst;
	}

	document.getElementById('loadingBlend').style.display = 'block';
	document.getElementById('loadingMessage').style.display = 'block';
}

function hideLoadingDiv() {
	document.getElementById('loadingBlend').style.display = 'none';
	document.getElementById('loadingMessage').style.display = 'none';
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            timer++;
            if (i <= opacEnd) {
            	setTimeout("changeOpac(" + i + ",'" + id + "', true)",(timer * speed));
            } else {
				setTimeout("changeOpac(" + i + ",'" + id + "',false)",(timer * speed));
            }
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
        {
        	if (i == opacEnd) {
            	setTimeout("changeOpac(" + i + ",'" + id + "',false)",(timer * speed));
        	} else {
        		setTimeout("changeOpac(" + i + ",'" + id + "',false)",(timer * speed));
        	}
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id, show) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
    if (show == true) {
    	if (id == 'errorBlend') {
			document.getElementById('errorBlend').style.display = 'none'
			document.getElementById('errorMessage').style.display = 'none';
			unhideSelect();
    	} else {
			if (document.getElementById('loadingBlend') != undefined) {
				document.getElementById('loadingBlend').style.display = 'none'
				document.getElementById('loadingMessage').style.display = 'none';
			}
			if (document.getElementById('progressBlend') != undefined) {
				document.getElementById('progressBlend').style.display = 'none'
				document.getElementById('progressMessage').style.display = 'none';
			}
    	}
    }
}

function hideLoadingDiv(){
	if (document.getElementById('loadingBlend') != undefined) {
		changeOpac(0, 'loadingBlend');
		document.getElementById('loadingBlend').style.display = 'none'
		document.getElementById('loadingMessage').style.display = 'none';
	}
}

function showErrorDiv(){
	//hideSelect();
	changeOpac(60, 'errorBlend');
	//opacity('errorBlend', 0, 60, 1000);
	document.getElementById('errorBlend').style.display = 'block';
	document.getElementById('errorMessage').style.display = 'block';
	if (document.getElementById('rodeErrorKnop') != undefined) {
		document.getElementById('rodeErrorKnop').focus();
	}
}

function showProgressDiv(){
	progressDivShown = true;
	hideSelect();
	changeOpac(60, 'progressBlend');
	document.getElementById('progressBlend').style.display = 'block'
	document.getElementById('progressMessage').style.display = 'block';
}

function hideErrorDiv(focus)
{
	if (focus != undefined) {
		document.getElementById(focus).focus();
	}
	changeOpac(0, 'errorBlend');
	document.getElementById('errorBlend').style.display = 'none'
	document.getElementById('errorMessage').style.display = 'none';
}

function hideProgressDiv(focus){
	progressDivShown = false;

	if (focus != undefined) {
		try{
			document.getElementById(focus).focus();
		}catch(err){
			//TODO SWITCH TAB
		}
	}
	changeOpac(0, 'progressBlend');
	document.getElementById('progressBlend').style.display = 'none'
	document.getElementById('progressMessage').style.display = 'none';
	unhideSelect();
}

function initFotoDiv(melding){
	document.getElementById('contentMelding').innerHTML = melding;
	showFotoDiv();
	return false;
}

function showFotoDiv(){
	changeOpac(60, 'errorBlend')

	document.getElementById('errorBlend').style.display = 'block'
	document.getElementById('fotoMessage').style.display = 'block';
}

function hideFotoDiv(focus)
{
	if (focus != undefined) {
		document.getElementById(focus).focus();
	}
	changeOpac(0, 'errorBlend');
	document.getElementById('errorBlend').style.display = 'none'
	document.getElementById('fotoMessage').style.display = 'none';
}

function redirect(url, timeout) {
	milisecs = timeout * 1000;

	setTimeout('document.location=\'' + url + '\';', milisecs);
}

function initErrorDiv(type, melding, buttons){
	document.getElementById('typeMelding').innerHTML = type;
	document.getElementById('textMelding').innerHTML = melding;
	document.getElementById('knoppenMelding').innerHTML = buttons;
	showErrorDiv();
	return false;
}

function initProgressDiv(type, melding){
	document.getElementById('typeMeldingProgress').innerHTML = type;
	document.getElementById('textMeldingProgress').innerHTML = melding;
	return false;
}

function deleteFile(fileID, categorieID) {
	new_location	= '/index.php?m=1&f=remove&bestandID=' + fileID;

	if(typeof(categorieID) != undefined) {
		new_location += '&categorieID=' + categorieID;
	}

	document.location = new_location;
}

function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

function openHelp(anchor, params) {
	// Querystring overnemen
	if(anchor != undefined) {
		anchor = "#" + anchor;
	} else {
		anchor = "";
	}

	if(params == undefined) {
		params = "?" + document.location.search.substring(1);
	} else if(params != "") {
		params = "?" + params;
	}

	var winHelp;
	if(winHelp = window.open('/modules/help/help.php' + params + anchor, 'winHelp')) {
		winHelp.focus();
		return true;
	} else {
		return false;
	}
}

function gotoMap(id, iPersonalFolder) {

	if (iPersonalFolder == undefined) {
		iPersonalFolder = 0;
	}

	if (iPersonalFolder == 1) {
		var location = '/index.php?m=1&f=myfolder&categorieID=' + id;
	} else {
		var location = '/index.php?m=1&f=overview&categorieID=' + id;
	}
	document.location = location;
}

function koppelBestand(veld_id, image, veldNaam, bestandID, klantID) {
	/**
	 * 12-06-2009 | Marco Vogelaar
	 * Zie commentaar verderop in deze functie
	 */
	if (klantID == undefined) {
		klantID = 0;
	}
	
	// [Beelden]  tabblad verbergen
	document.getElementById('ltab2').style.display = 'none';

	var veld = "gr_item_" + veld_id;
	var iditorID = "iditor_" + veld_id;
	var veldNaam;

	document.getElementById(veldNaam).value = bestandID;
	document.getElementById(veld).innerHTML = "<img id=\"" + iditorID + "\" src=\"" + image + "\" />";
	
	/**
	 * 08-09-2009 | Marco Vogelaar
	 * In het geval van Biretco of Demo de xajax functie spawnNewIditor niet aanroepen, mits klantID 
	 * gespecificeerd is (zie triggerDatabase, zoekProduct en zoekProductPM in xajaxfunctions.php)
	 */ 
	if (klantID != 1 && klantID != 21) {
		xajax_spawnNewIditor(iditorID, bestandID, veld_id);
	}
	
	document.getElementById('fitOption_' + veld_id + '1').checked = true;

	xajax_checkDPI(bestandID, veld_id);
	switchTab('ltab', 1);
}
/**
 * 19-01-2009 | Marco Vogelaar
 * Functie uitgebreid met mogelijkheid om width en height in te stellen.
 */
function koppelLogo(veldNaam, bestandid, afbeelding, width, height) {
	var div = "div_" + veldNaam;
	
	// Als width null is, dan is height automatisch ook null. 
	// De standaard aanroep van koppelLogo is ook zonder de width en height (dus beiden null).
	if (width == null) {
		document.getElementById(div).innerHTML = '<img src="' + afbeelding + '" width="90" height="90" alt="" />';
	} else if (width == 0 && height == 0) {
		document.getElementById(div).innerHTML = '<img src="' + afbeelding + '" alt="" />';
	} else if (width > 0 && height == 0) {
		document.getElementById(div).innerHTML = '<img src="' + afbeelding + '" width="' + width + '" alt="" />';
	} else if (width == 0 && height > 0) {
		document.getElementById(div).innerHTML = '<img src="' + afbeelding + '" height="' + height + '" alt="" />';
	} else if (width > 0 && height > 0) {
		document.getElementById(div).innerHTML = '<img src="' + afbeelding + '" width="' + width + '" height="' + height + '" alt="" />';
	}
	document.getElementById(veldNaam).value = bestandid;
}

var iditors = new Array();
function spawnIditor(iditorID, width, height, onload, zoom) {
	iditors[iditorID] = new Iditor(iditorID, width, height);
	iditors[iditorID].constrainProportions = false;
	iditors[iditorID].selectareaSize = 100;
	iditors[iditorID].canvasWidthMax = 800;
	iditors[iditorID].canvasHeightMax = 800;
	if(typeof(zoom) == "number")
	{
		iditors[iditorID].canvasZoom = zoom;
	}
	else
	{
		iditors[iditorID].canvasZoom = 1;
	}

	// Na 2 seconden proberen te teken voor het geval de onload te vroeg triggerde
	setTimeout("iditors['" + iditorID + "'].draw();", 1000);

	if(onload.length > 0) {
		//window.alert(onload);
		window.eval(onload);
	}
}

function cmdIditor(iditor, cmd) {
	var cmd = "iditors['" + iditor + "']." + cmd + ";";
	//window.alert(cmd);
	window.eval(cmd);
}

function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}

function basename(path, suffix) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Ash Searle (http://hexmen.com/blog/)
    // +   improved by: Lincoln Ramsay
    // +   improved by: djmix
    // *     example 1: basename('/www/site/home.htm', '.htm');
    // *     returns 1: 'home'
    var b = path.replace(/^.*[\/\\]/g, '');
    if (typeof(suffix) == 'string' && b.substr(b.length-suffix.length) == suffix) {
        b = b.substr(0, b.length-suffix.length);
    }
    return b;
}

function stuurReminder(filiaalID) {
	window.location = '/index.php?m=5&f=verzamelorder_reminder&id=7&filiaal=' + filiaalID;
	return true;
}

function readSelectBoxValue(selectBoxId){
	if ( document.getElementById(selectBoxId) != null ) {
		selectObj = document.getElementById(selectBoxId);
		selectObjIdx = selectObj.selectedIndex;
		return selectObj.options[selectObjIdx].value;
	} else {
		return null;
	}
}

function readTextInputValue(inputId){
	if ( document.getElementById(inputId) != null ) {
		var inputObj = document.getElementById(inputId);
		return inputObj.value;
	} else {
		return null;
	}
}

function readTextareaValue(textareaId){
	if ( document.getElementById(textareaId) != null) {
		var textareaObj = document.getElementById(textareaId);
		return textareaObj.value;
	} else {
		return null;
	}
}

function showCenteredDiv(titel, content){
	changeOpac(60, 'centeredBlend');

	if(titel !== undefined) {
		document.getElementById('typeMeldingCentered').innerHTML = titel;
	}

	if(content !== undefined) {
		document.getElementById('textMeldingCentered').innerHTML = content;
	}

	document.getElementById('centeredBlend').style.display = 'block';
	document.getElementById('centeredMessage').style.display = 'block';
}

function hideCenteredDiv() {
	document.getElementById('centeredBlend').style.display = 'none';
	document.getElementById('centeredMessage').style.display = 'none';
}

function scrollToTop() {
	window.scrollTo(0, 0);
}

var toggleSelectTo = false;
function toggleSelect() {
	if(toggleSelectTo) {
		var selectboxen = document.getElementsByTagName("select");
		for(i = 0; i < selectboxen.length; i++) {
			if(selectboxen[i].id!='meldingSelect'){
				selectboxen[i].style.visibility = toggleSelectTo;
			}
		}
	}
}

function hideSelect() {
	toggleSelectTo = "hidden";
	toggleSelect();
}

function unhideSelect() {
	//if (!errorDivShown) {
		toggleSelectTo = "visible";
		toggleSelect();
	//}
}

function selectAllCheckboxesByClassname(formName, className) {
	var elemClass = className;
	
	for (var i=0; i < document.forms[formName].elements.length; i++) {
		
		if(document.forms[formName].elements[i].type == 'checkbox' && document.forms[formName].elements[i].className == elemClass){
			document.forms[formName].elements[i].checked = true;
		}
	}
}

function deselectAllCheckboxesByClassname(formName, className){
	var elemClass = className;
	
	for (var i=0; i < document.forms[formName].elements.length; i++) {
		
		if(document.forms[formName].elements[i].type == 'checkbox' && document.forms[formName].elements[i].className == elemClass) {
			document.forms[formName].elements[i].checked = false;
		}
	}
}

function selectFolder(id, force, bgcolor){
	var folderBlokDiv	= document.getElementById('fileBlokMap'+id);
	var folderCheckbox	= document.getElementById('mapcb'+id);

	if(bgcolor==undefined) {
		bgcolor = '#993366';
	}
	if(force!=undefined && force != ''){
		if(force=='true'){
			folderBlokDiv.style.backgroundColor = bgcolor;
			folderCheckbox.checked = true;
		}else{
			folderBlokDiv.style.backgroundColor = '#FFFFFF';
			folderCheckbox.checked = false;
		}
	}else{
		if(folderCheckbox.checked){
			folderBlokDiv.style.backgroundColor = '#FFFFFF';
			folderCheckbox.checked = false;
		}else{
			folderBlokDiv.style.backgroundColor = bgcolor;
			folderCheckbox.checked = true;
		}
	}
}

function deselectAllFolders(){
	if(typeof(thumbArrayMappen) != "undefined"){
		for(var i=0; i<thumbArrayMappen.length; i++) {
			selectFolder(thumbArrayMappen[i],'false');
		}
	}
}

function selectAllFolders(bgcolor){
	if(typeof(thumbArrayMappen) != "undefined"){
		for(var i=0; i<thumbArrayMappen.length; i++) {
			selectFolder(thumbArrayMappen[i],'true', bgcolor);
		}
	}
}

function GeneratePassword() {
    var length = 8;
    var numI;
    var sPassword = '';

    for (i=0; i < length; i++) {
	numI = getRandomNum();

	if (!checkPunc(numI)) {
	    sPassword = sPassword + String.fromCharCode(numI);
	} else {
	    i--;
	}
    }

    return sPassword;
}

function getRandomNum() {
    var rndNum = Math.random()
    rndNum = parseInt(rndNum * 1000);
    rndNum = (rndNum % 94) + 33;
    return rndNum;
}

function checkPunc(num) {
    if ((num >=33) && (num <=47)) {
	return true;
    }

    if ((num >=58) && (num <=64)) {
	return true;
    }

    if ((num >=91) && (num <=96)) {
	return true;
    }

    if ((num >=123) && (num <=126)) {
	return true;
    }
    
    return false;
}

function switchDisplayByClassName(sClassName) {
  var aElements = document.getElementsByTagName("*");
  
  for (var i = 0; i < aElements.length; i++) {

	if (aElements[i].className == sClassName){

		if (aElements[i].style.display == 'none') {
			aElements[i].style.display = '';
		} else {
			aElements[i].style.display = 'none';
		}
    }
  }
}