var args = new Array();
var moduleMenu;
var toolsMenu;
var helpMenu;
var cursorMenu1;
var bannerMenu;

// Testing
/////////////////////////////////////////////////////////////////
// Page functions
/////////////////////////////////////////////////////////////////


// --------------------------------------------------------------
// editPage
// --------------------------------------------------------------

function editPage(loc, typ, notree) {
	if (t_0.getSelected() && t_0.getSelected()._EditID) { 
		if (frames["preview"].EditMode) {
			if (!confirm("U bent een pagina aan het bewerken.\nAls u doorgaat kunnen uw wijzigingen verloren gaan.\nWeet u zeker dat u wilt doorgaan?")) {
				return 0;
			}
		}
		if (!notree){
			loc += ';current-tree-object='+t_0.getSelected().id;
		}
		goTo(loc, t_0.getSelected()._PageID, ( (typ) ? typ : t_0.getSelected()._EditType), 'preview');
	}
}

// --------------------------------------------------------------
// previewPage
// --------------------------------------------------------------

function previewPage(loc, typ, targ) {
	if (t_0.getSelected() && t_0.getSelected()._EditID) {
		if (frames["preview"].EditMode) {
			if (!confirm("U bent een pagina aan het bewerken.\nAls u doorgaat kunnen uw wijzigingen verloren gaan.\nWeet u zeker dat u wilt doorgaan?")) {
				return;
			}
		}
		UpdatePageDetails(t_0.getSelected());
		
		goTo(loc, t_0.getSelected()._PageID, ( (typ) ? typ : t_0.getSelected()._EditType) , ((targ) ? targ : 'preview'))
	}
}

// --------------------------------------------------------------
// syncPage
// --------------------------------------------------------------

function syncPage(loc, typ, targ) {
	if (t_0.getSelected() && t_0.getSelected()._EditID) { 
		if (frames["preview"].EditMode) {
			if (!confirm("U bent een pagina aan het bewerken.\nAls u doorgaat kunnen uw wijzigingen verloren gaan.\nWeet u zeker dat u wilt doorgaan?")) {
				return 0;
			}
		}
		cursorMenu1.hide();
		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';
		var locktext = "Weet u zeker dat u deze pagina wilt synchroniseren?";
		if (confirm(locktext)) {
			var ur = self.location + ';act=rpc_sync_page;id='+t_0.getSelected()._PageID;
			var request = newXMLHttpRequest();
			var msg = 'Synchroniseren...'; 
			document.getElementById('rpc-status').innerHTML = msg;
		
			request.open('GET', ur, true);
			request.onreadystatechange = function() {
				if (request.readyState == 4) {
					var details = request.responseText.split('|');
					document.getElementById('rpc-status').innerHTML = details[0];
					t_0.getSelected().setColor('#1E485F');
				}
			}
			request.send('');
		}
	}
}

// --------------------------------------------------------------
// syncTree
// --------------------------------------------------------------

function syncTree(item) {
	
	var childs =  item.childNodes;
	for (var i=0; i<childs.length; i++) {
		childs[i].setColor('#1E485F');
		if (childs[i].childNodes.length){
			syncTree(childs[i]);
		}
	}
}

// --------------------------------------------------------------
// syncModule
// --------------------------------------------------------------

function gotoModule(loc) {

	if (frames["preview"].EditMode) {
		if (!confirm("U bent een pagina aan het bewerken.\nAls u doorgaat kunnen uw wijzigingen verloren gaan.\nWeet u zeker dat u wilt doorgaan?")) {
			return 0;
		}
	}
	self.location = loc;
}

// --------------------------------------------------------------
// syncModule
// --------------------------------------------------------------

function syncModule(mod) {

	if (t_0.getSelected() && t_0.getSelected()._EditID) { 
		if (frames["preview"].EditMode) {
			if (!confirm("U bent een pagina aan het bewerken.\nAls u doorgaat kunnen uw wijzigingen verloren gaan.\nWeet u zeker dat u wilt doorgaan?")) {
				return 0;
			}
		}
	}
	cursorMenu1.hide();
	var locktext = "Weet u zeker dat u alle pagina's in deze module wilt synchroniseren?";
	if (confirm(locktext)) {
		var ur = self.location + ';act=rpc_sync_module;sync_mod='+mod;
		var request = newXMLHttpRequest();
		var msg = 'Synchroniseren...'; 
		document.getElementById('rpc-status').innerHTML = msg;
		
		request.open('GET', ur, true);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				var details = request.responseText.split('|');
				document.getElementById('rpc-status').innerHTML = details[0];
				syncTree(t_0)
//				t_0.getSelected().setColor('#1E485F');
			}
		}
		request.send('');
	}
	
}

// --------------------------------------------------------------
// syncTreePage
// --------------------------------------------------------------

function syncTreePage(item,lastupd) {
	var currentitem = webFXTreeHandler.all[item];
	currentitem.setColor('red');
	currentitem.setLastUpdate(lastupd);
	if (document.getElementById('lastupdate')){
		document.getElementById('lastupdate').innerHTML = (lastupd) ? epochToDate(lastupd) : '-';
	}
}

// --------------------------------------------------------------
// previewURL
// --------------------------------------------------------------

function previewURL(loc, typ, targ) {
	if (t_0.getSelected()) {
		if (frames["preview"].EditMode) {
			if (!confirm("U bent een pagina aan het bewerken.\nAls u doorgaat kunnen uw wijzigingen verloren gaan.\nWeet u zeker dat u wilt doorgaan?")) {
				return;
			}
		}
		UpdatePageDetails(t_0.getSelected());
		goTo(loc, t_0.getSelected()._PageID, ( (typ) ? typ : t_0.getSelected()._EditType) , 'preview')
	}
}

// --------------------------------------------------------------
// UpdatePageDetails
// --------------------------------------------------------------

function UpdatePageDetails( item ) {
	if (document.getElementById('lastupdate')){
		document.getElementById('lastupdate').innerHTML = (t_0.getSelected().lastUpdate) ? epochToDate(t_0.getSelected().lastUpdate) : '-';
	}
	if (document.getElementById('sdate')){
		document.getElementById('sdate').innerHTML = (t_0.getSelected().sdate) ? epochToDate(t_0.getSelected().sdate) : '-';
	}
	if (document.getElementById('edate')){
		document.getElementById('edate').innerHTML = (t_0.getSelected().edate) ? epochToDate(t_0.getSelected().edate) : '-';
	}
}

// --------------------------------------------------------------
// epochToDate
// --------------------------------------------------------------

function epochToDate(epoch) {
	var mydate = new Date(epoch*1000);
	var day = mydate.getDate();
	var month = mydate.getMonth() + 1;
	var year = mydate.getYear();
	if (year < 1900){year += 1900;}
	if (day < 10){	day = '0'+day; }
	if (month < 10){	month = '0'+month; }
	return day +'-'+ month +'-'+ year;
}

// --------------------------------------------------------------
// newPage
// --------------------------------------------------------------

function newPage(loc){

	if (t_0.getSelected()) { 
		if (frames["preview"].EditMode) {
			if (!confirm("U bent een pagina aan het bewerken.\nAls u doorgaat kunnen uw wijzigingen verloren gaan.\nWeet u zeker dat u wilt doorgaan?")) {
				return 0;
			}
		}
		cursorMenu1.hide();
		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';

		loc += ';pid=' +id+';id=' +id;
		//alert(loc);
		args['current-tree-object'] = t_0.getSelected().id;
		showDialog(loc, { width : 500, height: 470, resizable: 'yes'} );
	}
}

// --------------------------------------------------------------
// pageMetaTags
// --------------------------------------------------------------

function pageMetaTags(loc){

	if (t_0.getSelected()) { 
//		if (frames["preview"].EditMode) {
//			if (!confirm("U bent een pagina aan het bewerken.\nAls u doorgaat kunnen uw wijzigingen verloren gaan.\nWeet u zeker dat u wilt doorgaan?")) {
//				return 0;
//			}
//		}
		cursorMenu1.hide();
		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';

		loc += ';pid=' +id+';id=' +id;
		//alert(loc);
		args['current-tree-object'] = t_0.getSelected().id;
		showDialog(loc, { width : 600, height: 450, resizable: 'yes'} );
	}
}

// --------------------------------------------------------------
// editUpdatePage
// --------------------------------------------------------------

function editUpdatePage(loc){
	if (t_0.getSelected() && t_0.getSelected()._PageID) { 
		if (frames["preview"].EditMode) {
			if (!confirm("U bent een pagina aan het bewerken.\nAls u doorgaat kunnen uw wijzigingen verloren gaan.\nWeet u zeker dat u wilt doorgaan?")) {
				return 0;
			}
		}
		cursorMenu1.hide();
		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';
		loc += ';pid=' +id+';id=' +id;
		//alert(loc);
		args['current-tree-object'] = t_0.getSelected().id;
		showDialog(loc, { width : 500, height: 470, resizable: 'yes'} );
	}
}

// --------------------------------------------------------------
// deletePage
// --------------------------------------------------------------

function deletePage(loc){
	if ( t_0.getSelected() && t_0.getSelected().noDelete) {
		cursorMenu1.hide();
		alert("Het is niet toegestaan deze pagina te verwijderen.");
	}
	if ( t_0.getSelected() && !t_0.getSelected().noDelete) {
		cursorMenu1.hide();
		if (confirm("Weet u zeker dat u deze pagina wilt verwijderen?")) {
			//alert(	self.location + ';act=rpc_delete_page;id='+t_0.getSelected()._PageID );
			wm_rpc( self.location + ';act=rpc_delete_page;id='+t_0.getSelected()._PageID, 'Verwijderen..' );

			t_0.getSelected().remove();
		} else {}
	}
}

// --------------------------------------------------------------
// deleteGallery
// --------------------------------------------------------------

function deleteGallery(loc){

	if ( t_0.getSelected() && !t_0.getSelected().noDelete) {
		cursorMenu1.hide();
		if (confirm("Weet u zeker dat u deze gallerij wilt verwijderen?")) {
			//alert(	self.location + ';act=rpc_delete_gallery;id='+t_0.getSelected()._PageID );
			wm_rpc( self.location + ';act=rpc_delete_gallery;id='+t_0.getSelected()._PageID, 'Verwijderen..' );

			t_0.getSelected().remove();
		} else {}
	}
}

// --------------------------------------------------------------
// restrictPage
// --------------------------------------------------------------

function restrictPage(loc){

	if (t_0.getSelected()) { 
		if (frames["preview"].EditMode) {
			if (!confirm("U bent een pagina aan het bewerken.\nAls u doorgaat kunnen uw wijzigingen verloren gaan.\nWeet u zeker dat u wilt doorgaan?")) {
				return 0;
			}
		}
		cursorMenu1.hide();
		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';
		var locktext = (t_0.getSelected().locked) ? "Weet u zeker dat u dit gebied wilt vrijgeven?" : "Weet u zeker dat u dit gebied wilt afschermen?";
		if (confirm(locktext)) {
//		alert('blabla');
//		wm_rpc( self.location + ';act=rpc_restrict_page;id='+t_0.getSelected()._PageID+';locked='+t_0.getSelected().locked );
			var ur = self.location + ';act=rpc_restrict_page;id='+t_0.getSelected()._PageID+';locked='+t_0.getSelected().locked;
			var request = newXMLHttpRequest();
			var msg = 'Saving...'; 
			document.getElementById('rpc-status').innerHTML = msg;
		
			request.open('GET', ur, true);
			request.onreadystatechange = function() {
				if (request.readyState == 4) {
					var details = request.responseText.split('|');
					document.getElementById('rpc-status').innerHTML = details[0];
					setLockedIcons(t_0.getSelected(),t_0.getSelected().locked);
				}
			}
			request.send('');
		}
	}
}

// --------------------------------------------------------------
// setLockedIcons
// --------------------------------------------------------------

function setLockedIcons(item, lock) {
	item.setLocked(lock);
	var childs = item.childNodes;
	for (var i=0; i<childs.length; i++) {
		childs[i].setLocked(lock);
	}
}

// --------------------------------------------------------------
// newForm
// --------------------------------------------------------------

function newForm(loc){
	cursorMenu1.hide();
	showDialog(loc, { width : 500, height: 300, resizable: 'yes', windowname: 'newform' } );
}

// --------------------------------------------------------------
// editFormDetails
// --------------------------------------------------------------

function editFormDetails(loc){
	if (t_0.getSelected() && t_0.getSelected()._PageID) { 
		cursorMenu1.hide();
		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';
		loc += ';type=form;id=' +id;
		args['current-tree-object'] = t_0.getSelected().id;
		//alert(loc);
		showDialog(loc, { width : 500, height: 300, resizable: 'yes', windowname: 'newform' } )
	}
}

// --------------------------------------------------------------
// exportForm
// --------------------------------------------------------------

function exportForm(loc){
	if (t_0.getSelected() && t_0.getSelected()._PageID) { 
		cursorMenu1.hide();
		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';
		loc += ';type=form;id=' +id;
		self.location = loc;
		//showDialog(loc, { width : 500, height: 300, resizable: 'yes', windowname: 'newform' } )
	}
}

// --------------------------------------------------------------
// editVirdirDetails
// --------------------------------------------------------------

function editVirDirDetails(loc){
	if (t_0.getSelected() && t_0.getSelected()._EditID) { 
		cursorMenu1.hide();
		var id = (t_0.getSelected()._EditID) ? t_0.getSelected()._EditID : '';
		loc += ';type=virdir;virdir_id=' +id;
		args['current-tree-object'] = t_0.getSelected().id;
		//alert(loc);
		showDialog(loc, { width : 450, height: 300, resizable: 'yes', windowname: 'newvirdir' } )
	}
}


// --------------------------------------------------------------
// deleteForm
// --------------------------------------------------------------

function deleteVirDir(loc){
	if ( t_0.getSelected()) {
		cursorMenu1.hide();
		if (confirm("Weet u zeker dat u deze virtuele directory wilt verwijderen?")) {
			//alert( loc + ';id='+t_0.getSelected()._PageID );
			wm_rpc( loc + ';virdir_id='+t_0.getSelected()._EditID );
			t_0.getSelected().remove();
		} else {}
	}		
}

// --------------------------------------------------------------
// deleteForm
// --------------------------------------------------------------

function deleteForm(loc){
	if ( t_0.getSelected()) {
		cursorMenu1.hide();
		if (confirm("Weet u zeker dat u dit formulier wilt verwijderen?")) {
			//alert( loc + ';id='+t_0.getSelected()._PageID );
			wm_rpc( loc + ';id='+t_0.getSelected()._PageID );
			t_0.getSelected().remove();
		} else {}
	}		
}

// --------------------------------------------------------------
// previewForm
// --------------------------------------------------------------

function previewForm(loc, typ) {
	if (t_0.getSelected() && t_0.getSelected()._EditID) {
		goTo(loc, t_0.getSelected()._PageID, ( (typ) ? typ : t_0.getSelected()._EditType) , 'preview')
	}
}

// --------------------------------------------------------------
// previewBanner
// --------------------------------------------------------------

function previewBanner(loc, typ) {
	if (t_0.getSelected() && t_0.getSelected()._EditID) {
		
		UpdateBannerDetails(t_0.getSelected());
		frames['banner_preview'].location.href = loc + ';bid=' + t_0.getSelected()._PageID + ';type=banner';
		
	}
}

// --------------------------------------------------------------
// UpdateBannerDetails
// --------------------------------------------------------------

function UpdateBannerDetails( item ) {
	if (document.getElementById('views')){
		document.getElementById('views').innerHTML = (t_0.getSelected().views) ? t_0.getSelected().views : '0';
	}
	if (document.getElementById('clicks')){
		document.getElementById('clicks').innerHTML = (t_0.getSelected().clicks) ? t_0.getSelected().clicks : '0';
	}
//	if (document.getElementById('clickthru')){
//		var clickthru = 0;
//		//sprintf("%.2f",0);
//		if (t_0.getSelected().views && t_0.getSelected().clicks &&t_0.getSelected().views > 0) {
//			clickthru = (t_0.getSelected().views / t_0.getSelected().clicks) ;
//		}
//		document.getElementById('clickthru').innerHTML = formatNumber(clickthru, "0.00") + ' %';
//	}
}

// --------------------------------------------------------------
// editBanner
// --------------------------------------------------------------

function editBanner(loc, typ) {
	if (t_0.getSelected() && t_0.getSelected()._EditID) {
		var bid = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';
		loc += ';bid=' + bid;

		showDialog(loc, { width : 500, height: 250, resizable: 'yes', windowname: 'editbanner' } )
		//frames['banner_preview'].location.href = ur + ';bid=' + t_0.getSelected()._PageID + ';type=banner';
		//goTo(loc, t_0.getSelected()._PageID, 'banner' , )
	}
}
//"code:showDialog('~. $self->{template}->getURL( id => '', act => 'new_bannerDialog' ) .qq~', { width : 500, height: 300, resizable: 'yes', windowname: 'newform' } );"

// --------------------------------------------------------------
// editForm
// --------------------------------------------------------------

function editForm(loc) {
	if (t_0.getSelected() && t_0.getSelected()._EditID) { 

		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';
		loc += ';type=form;id=' + id;

		showDialog(loc, { width : 1000, height: 700, resizable: 'yes', windowname: 'editform' } )

//		goTo(loc, t_0.getSelected()._PageID, t_0.getSelected()._EditType );
	}
}


// --------------------------------------------------------------
// editForm
// --------------------------------------------------------------

function editWebPoll(loc) {
	if (t_0.getSelected() && t_0.getSelected()._EditID) { 

		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';
		loc += ';type=webpoll;id=' + id;

		showDialog(loc, { width : 500, height: 450, resizable: 'yes', windowname: 'editpoll' } )

//		goTo(loc, t_0.getSelected()._PageID, t_0.getSelected()._EditType );
	}
}

// --------------------------------------------------------------
// editQuestion
// --------------------------------------------------------------

function editQuestion(loc) {
	if (t_0.getSelected() && t_0.getSelected()._PageID) { 
		cursorMenu1.hide();
		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';
		loc += ';qid=' +id;
		//alert(loc);
		args['current-tree-object'] = t_0.getSelected().id;
		showDialog(loc, { width : 500, height: 430, resizable: 'yes', windowname : 'editquestion'} );
	}
}

// --------------------------------------------------------------
// deleteQuestion
// --------------------------------------------------------------

function deleteQuestion(loc){
	if ( t_0.getSelected() && t_0.getSelected()._PageID ) {
		cursorMenu1.hide();
		if (confirm("Weet u zeker dat u deze vraag wilt verwijderen?")) {
			wm_rpc( loc + ';qid='+t_0.getSelected()._PageID );
			if (t_0.getSelected().parentNode._PageID) {
				t_0.getSelected().parentNode.remove();
			} else {
				t_0.getSelected().remove();
			}
			if ( isMSIE() ){
				frames['preview'].location = frames['preview'].location;
			} else {
				frames['preview'].location.reload(true);
			}
		} else {}
	}		
}

// --------------------------------------------------------------
// deleteWebpoll
// --------------------------------------------------------------

function deleteWebpoll(loc){

	if ( t_0.getSelected() && t_0.getSelected()._PageID ) {
		cursorMenu1.hide();
		if (confirm("Weet u zeker dat u deze poll wilt verwijderen?")) {
			wm_rpc( loc + ';id='+t_0.getSelected()._PageID );

			if (t_0.getSelected().parentNode.parentNode && t_0.getSelected().parentNode.parentNode._PageID) {
				t_0.getSelected().parentNode.parentNode.remove();
			} else if (t_0.getSelected().parentNode._PageID) {
				t_0.getSelected().parentNode.remove();
			} else {
				t_0.getSelected().remove();
			}
//			if ( isMSIE() ){
//				frames['preview'].location = frames['preview'].location;
//			} else {
//				frames['preview'].location.reload(true);
//			}
		} else {}
	}		
}

// --------------------------------------------------------------
// fileManagerUpload
// --------------------------------------------------------------

function fileManagerUpload(loc,arg) {
	if (frames["files"].dir) {
		loc += ";dir="+frames["files"].dir;
	}
	showDialog(loc,arg);
}


/////////////////////////////////////////////////////////////////
// Tree functions
/////////////////////////////////////////////////////////////////

// --------------------------------------------------------------
// addTreePage
// --------------------------------------------------------------

function addTreePage(details,url,title,type_name) {
	//0:Done 1:$new_pid 2:$id 3:$pid 4:$eid 5:$sdate 6:$edate 7:$extra 8:$nosub 9:$news;
	var curentitem = webFXTreeHandler.all[args['current-tree-object']];

	// Nosub fix
	if (details[8] && curentitem.parentNode){
		curentitem = curentitem.parentNode;
	}

	// News fix
	if (details[9] == 1){
		var now = new Date().getTime()/1000;
		if (details[5] > now ){
			curentitem = t_komend;
		} else if (details[6] && details[6] < now ){
				curentitem = t_archief;
		} else {
			curentitem = t_0;
		}
	}
	
	var act = "javascript:previewPage('"+ url + ';act=show_preview;type='+type_name+';id='+details[2] + "')";
	if (type_name == 'URL' || type_name == 'Document'){
		act = "javascript:previewURL('"+ url + ';act=show_preview;type='+type_name+';id='+details[2] + "')";
	}
	
	
	var ti = new Array();
	if (details[1]){
		// extra main item aanmaken
		ti['t_'+details[1]] = new WebFXCheckBoxTreeItem( { sText : title, bChecked : 0,iPageID : details[1],iParentID : details[3],iEditID : details[4],sEditType : 'folder'} );
		getTreeIcon( ti['t_'+details[1]], 'folder');

		t_0.add(ti['t_'+details[1]]);

		ti['t_'+details[2]] = new WebFXCheckBoxTreeItem( { sText : title, sAction : act ,bChecked : 0,iPageID : details[2],iParentID : details[3],iEditID : details[4],sEditType : type_name, sdate : details[5], edate : details[6] });
		//ti['t_'+details[2]].target = "preview";
		getTreeIcon( ti['t_'+details[2]], type_name, details[7]);
		
		ti['t_'+details[1]].add(ti['t_'+details[2]]);
		ti['t_'+details[1]].expandAll();

	} else {
		ti['t_'+details[2]] = new WebFXCheckBoxTreeItem( { sText : title, sAction : act ,bChecked : 0,iPageID : details[2],iParentID : details[3],iEditID : details[4],sEditType : type_name, sdate : details[5], edate : details[6]});
		//ti['t_'+details[2]].target = "preview";
		getTreeIcon( ti['t_'+details[2]], type_name, details[7]);

		curentitem.add(ti['t_'+details[2]]);
		curentitem.expandAll();
	}
}

// --------------------------------------------------------------
// getTreeIcon
// --------------------------------------------------------------

function getTreeIcon(item,type_name,extra) {

	if (type_name == 'folder'){
		item.icon = webFXTreeConfig.folderIcon;
		item.openIcon = webFXTreeConfig.openFolderIcon;
	} else if (type_name == 'URL') {
		item.icon = webFXTreeConfig.urlIcon;
		item.openIcon = webFXTreeConfig.urlIcon;
	} else if (type_name == 'question') {
		if (extra == 'radio'){
			item.icon = webFXTreeConfig.radioIcon;
			item.openIcon = webFXTreeConfig.radioIcon;
		} else if (extra == 'checkbox') {
			item.icon = webFXTreeConfig.checkboxIcon;
			item.openIcon = webFXTreeConfig.checkboxIcon;
		} else {
			item.icon = webFXTreeConfig.textIcon;
			item.openIcon = webFXTreeConfig.textIcon;
		}
	} else if (type_name == 'Document') {
		if (extra == 'doc'){
			item.icon = webFXTreeConfig.docIcon;
			item.openIcon = webFXTreeConfig.docIcon;
		} else if (extra == 'pdf'){
			item.icon = webFXTreeConfig.pdfIcon;
			item.openIcon = webFXTreeConfig.pdfIcon;
		} else if (extra == 'xls'){
			item.icon = webFXTreeConfig.xlsIcon;
			item.openIcon = webFXTreeConfig.xlsIcon;
		} else if (extra == 'zip'){
			item.icon = webFXTreeConfig.zipIcon;
			item.openIcon = webFXTreeConfig.zipIcon;
		} else {
			item.icon = webFXTreeConfig.documentIcon;
			item.openIcon = webFXTreeConfig.documentIcon;
		}
	} else {
		item.icon = webFXTreeConfig.fileIcon;
		item.openIcon = webFXTreeConfig.fileIcon;
	}
}

// --------------------------------------------------------------
// updateTreePage
// --------------------------------------------------------------

function updateTreePage(newargs) {
	webFXTreeHandler.all[args['current-tree-object']].setText( newargs['title'] );
	if (document.getElementById('sdate')){
		document.getElementById('sdate').innerHTML = (newargs['sdate']) ? epochToDate(newargs['sdate']) : '-';
		webFXTreeHandler.all[args['current-tree-object']].setSDate( newargs['sdate'] );
	}
	if (document.getElementById('edate')){
		document.getElementById('edate').innerHTML = (newargs['edate']) ? epochToDate(newargs['edate']) : '-';
		webFXTreeHandler.all[args['current-tree-object']].setEDate( newargs['edate'] );
	}
}

// --------------------------------------------------------------
// addTreeFormPage
// --------------------------------------------------------------

function addTreeFormPage(details,url,title) {
	//details = melding, id
	var ti = new Array();
	ti['t_'+details[1]] = new WebFXCheckBoxTreeItem( {sText : title, sAction : url + ';act=show_preview;type=form;id='+details[1],bChecked : 0,iPageID : details[1],iParentID : 0,iEditID : details[2],sEditType : 'form',iNoCheck : 1});
	ti['t_'+details[1]].target = "preview";
	ti['t_'+details[1]].icon = webFXTreeConfig.fileIcon;
	ti['t_'+details[1]].openIcon = webFXTreeConfig.fileIcon;
	t_0.add(ti['t_'+details[1]]);

	t_0.expandAll();
}

// --------------------------------------------------------------
// addTreeVirDirPage
// --------------------------------------------------------------

function addTreeVirDirPage(details,url,title) {
	//details = melding, id
	var ti = new Array();
	ti['t_'+details[1]] = new WebFXCheckBoxTreeItem( {sText : title, sAction : url + ';act=show_preview;type=content;id='+details[2],bChecked : 0,iPageID : details[2],iParentID : 0,iEditID : details[1],sEditType : 'content',iNoCheck : 1});
	ti['t_'+details[1]].target = "preview";
	ti['t_'+details[1]].icon = webFXTreeConfig.folderIcon;
	ti['t_'+details[1]].openIcon = webFXTreeConfig.openFolderIcon;
	t_0.add(ti['t_'+details[1]]);

	t_0.expandAll();
}
// --------------------------------------------------------------
// addTreeBannerGroup
// --------------------------------------------------------------

function addTreeBannerGroup(details,url,title) {
	//details = melding, id
	var ti = new Array();
	ti['t_'+details[1]] = new WebFXCheckBoxTreeItem( {sText : title, sAction : url + ';act=show_bannergroup;type=bannergroup;bgid='+details[1],bChecked : 0,iPageID : details[1],iParentID : 0,iEditID : details[1],sEditType : 'bannergroup',iNoCheck : 1});
	ti['t_'+details[1]].target = "banner_preview";
	ti['t_'+details[1]].icon = webFXTreeConfig.folderIcon;
	ti['t_'+details[1]].openIcon = webFXTreeConfig.folderIcon;
	t_0.add(ti['t_'+details[1]]);

	t_0.expandAll();
//	$script .= "var t_$pa =  new WebFXCheckBoxTreeItem( { sText : '$data->{names}->{$pa}',sAction : '" . $self->{template}->getURL(bgid => $pa, act => "show_bannergroup", type => "bannergroup") . "',bChecked : '',iPageID : '$pa',iParentID : '',iEditID : '$pa',sEditType : 'bannergroup', iNoCheck : 1});\n";
//	$script .= "t_$pa.target = \"banner_preview\";";

}

// --------------------------------------------------------------
// addTreeMemberGroup
// --------------------------------------------------------------

function addTreeMemberGroup(details,url,title) {
	//details = melding, id
	var ti = new Array();
	ti['t_'+details[1]] = new WebFXCheckBoxTreeItem( {sText : title, sAction : url + ';act=show_membergroup;type=membergroup;mgid='+details[1],bChecked : 0,iPageID : details[1],iParentID : 0,iEditID : details[1],sEditType : 'membergroup',iNoCheck : 1});
	ti['t_'+details[1]].target = "member_preview";
	ti['t_'+details[1]].icon = webFXTreeConfig.folderIcon;
	ti['t_'+details[1]].openIcon = webFXTreeConfig.folderIcon;
	t_0.add(ti['t_'+details[1]]);

	t_0.expandAll();
//	$script .= "var t_$pa =  new WebFXCheckBoxTreeItem( { sText : '$data->{names}->{$pa}',sAction : '" . $self->{template}->getURL(bgid => $pa, act => "show_bannergroup", type => "bannergroup") . "',bChecked : '',iPageID : '$pa',iParentID : '',iEditID : '$pa',sEditType : 'bannergroup', iNoCheck : 1});\n";
//	$script .= "t_$pa.target = \"banner_preview\";";

}

// --------------------------------------------------------------
// deleteBannerGroup
// --------------------------------------------------------------

function deleteBannerGroup(loc){
	if ( t_0.getSelected()) {
		cursorMenu1.hide();
		if (confirm("Weet u zeker dat u deze groep wilt verwijderen?")) {
			//alert(	self.location + ';act=rpc_delete_page;id='+t_0.getSelected()._PageID );
			wm_rpc( loc + ';act=rpc_delete_bannergroup;bgid='+t_0.getSelected()._PageID );
			t_0.getSelected().remove();
			frames['banner_preview'].location = loc + 'act=show_bannerpreview';
		} else {}
	}		
}

// --------------------------------------------------------------
// deleteBanner
// --------------------------------------------------------------

function deleteBanner(loc){
	if ( t_0.getSelected()) {
		cursorMenu1.hide();
		if (confirm("Weet u zeker dat u deze banner wilt verwijderen?")) {
			//alert(	loc + ';act=rpc_delete_banner;bid='+t_0.getSelected()._PageID );
			wm_rpc( loc + ';act=rpc_delete_banner;bid='+t_0.getSelected()._PageID );
			t_0.getSelected().remove();
//			frames['banner_preview'].location = loc + 'act=show_bannerpreview;id=';
		} else {}
	}		
}

// --------------------------------------------------------------
// AllocateBannerGroup
// --------------------------------------------------------------

function AllocateBannerGroup(selbox, id, loc){
	selbox = document.getElementById(selbox);
	//var bgid = selbox.item(selbox.selectedIndex).value;
	var bgid = selbox[getSelectedSelectItem(selbox)].value;
	
	var ur = loc + ';act=rpc_allocate_bannergroup;bgid='+bgid+';id='+id;

	wm_rpc( ur );
	
	
}

function getSelectedSelectItem(selectbox) {
	for (var i = 0; i < selectbox.length; i++){
		if (selectbox[i].selected) {
			return i;
		}
	}
	return 0;
}


// --------------------------------------------------------------
// addTreeQuestionPage
// --------------------------------------------------------------

function addTreeQuestionPage(details,url,title,qtype,answers,answertext) {
	//details = melding, id
	if (details[3]){
		webFXTreeHandler.all[args['current-tree-object']].setText(title);
		var childs = webFXTreeHandler.all[args['current-tree-object']].childNodes;
		while (webFXTreeHandler.all[args['current-tree-object']].getFirst()){
			webFXTreeHandler.all[args['current-tree-object']].getFirst().remove();
		}
		if (answers){
			var ti = new Array();
			
			var aids = answers.split(',');
			for (var i=0; i < aids.length; i++) {
				ti['t_'+details[1]+'_'+aids[i]] = new WebFXCheckBoxTreeItem( {sText : unescape(answertext[i+1]), sAction : '',bChecked : 0,iPageID : details[1],iParentID : details[1],iEditID : aids[i],sEditType : 'answer',iNoCheck : 1});
				getTreeIcon( ti['t_'+details[1]+'_'+aids[i]], 'question',qtype);
				webFXTreeHandler.all[args['current-tree-object']].add(ti['t_'+details[1]+'_'+aids[i]],0);
			}
		}
	} else {
		var ti = new Array();
		ti['t_'+details[1]] = new WebFXCheckBoxTreeItem( {sText : title, sAction : '',bChecked : 0,iPageID : details[1],iParentID : 0,iEditID : details[1],sEditType : 'question',iNoCheck : 1});
		getTreeIcon( ti['t_'+details[1]], 'question',qtype);
		t_0.add(ti['t_'+details[1]]);
	
		if (answers){
			
			var aids = answers.split(',');
			for (var i=0; i < aids.length; i++) {
				ti['t_'+details[1]+'_'+aids[i]] = new WebFXCheckBoxTreeItem( {sText : unescape(answertext[i+1]), sAction : '',bChecked : 0,iPageID : details[1],iParentID : details[1],iEditID : aids[i],sEditType : 'answer',iNoCheck : 1});
				getTreeIcon( ti['t_'+details[1]+'_'+aids[i]], 'question',qtype);
				ti['t_'+details[1]].add(ti['t_'+details[1]+'_'+aids[i]],0);
			}
		}
	}
	if ( isMSIE() ){
		frames['preview'].location = frames['preview'].location;
	} else {
		frames['preview'].location.reload(true);
	}
	t_0.expandAll();
}

// --------------------------------------------------------------
// addTreeBanner
// --------------------------------------------------------------

function addTreeBanner(details,url1,banner_loc) {
	//details = melding, id

	var ti = new Array();
	ti['t_'+details[1]] = new WebFXCheckBoxTreeItem( {sText : details[2], sAction : url1 + ';act=show_bannerpreview;type=banner;bid='+details[1], bChecked : 0, iPageID : details[1], iParentID : banner_loc, iEditID : details[1], sEditType : 'banner', iNoCheck :'1', views : '0', clicks: '0' } );
	ti['t_'+details[1]].target = "banner_preview";
	ti['t_'+details[1]].icon = webFXTreeConfig.fileIcon;
	ti['t_'+details[1]].openIcon = webFXTreeConfig.fileIcon;

	
	webFXTreeHandler.all[eval('id_'+banner_loc)].add(ti['t_'+details[1]]);
	webFXTreeHandler.all[eval('id_'+banner_loc)].expandAll();
}

//				window.opener.addTreeBanner(details,f.goto_url.value,f.sFilename.value,f.ID_LOCATION[getSelectedSelectItem(f.ID_LOCATION)].value);


/////////////////////////////////////////////////////////////////
// File functions
/////////////////////////////////////////////////////////////////

// --------------------------------------------------------------
// deleteDir
// --------------------------------------------------------------

function deleteDir(loc){
	if (confirm("Weet u zeker dat u deze directory wilt verwijderen?")) {
		parent.frames['files'].location = loc;
	}
}

// --------------------------------------------------------------
// deleteFile
// --------------------------------------------------------------

function deleteFile(loc){
	if (confirm("Weet u zeker dat u dit bestand wilt verwijderen?")) {
		parent.frames['files'].location = loc;
	}
}

// --------------------------------------------------------------
// changeDir
// --------------------------------------------------------------

function changeDir(loc,newdir){
	var ur = loc + ';act=rpc_getdircontent';
	dir = newdir;
	var request = newXMLHttpRequest();

	request.open('GET', ur, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var details = request.responseText.split('|');
			if (document.getElementById('container-content')){
				document.getElementById('container-content').innerHTML = details[0];
			}
			loc += ';act=show_dirinfo';
			parent.frames['fileinfo'].location = loc;
			//alert(loc);
		}
	}
	request.send('');

}

var t_indent = 1;

function newDir(targ,par,dir) {
//	alert(dir);
	alert("Parent: "+par);
//	alert(par+dir);
//	alert(targ);
//	alert(targ.document.title);
//	alert(targ.t_0);
	var treeitem = recurseTree(targ.t_0,par);
	var newdir = '/'+par+dir;
	if (par == 0){
		newdir = '/'+dir;
	}
	alert('newdir: '+newdir +"\nTarget: " + treeitem.text);
	var t_11 = new WebFXTreeItem(dir,'','','','','/'+par+dir);
	t_11.target = "files";
	treeitem.add(t_11,0);
}

function recurseTree(item,info) {
	alert('Bats: ' + info + item);
	var childs =  item.childNodes;
	for (var i=0; i<childs.length; i++) {
		alert("Zoek naar: " +info + "\nIn: " + childs[i].Info);
//		if (childs[i].Info == info){
//			alert('Found:' + childs[i].text);
//			return childs[i];
//		} else {
//			alert("Not found: " +info + "\nIn: " + childs[i].Info);
//		}
		if (childs[i].childNodes.length){
			return recurseTree(childs[i],info);
		}
	}
}

/////////////////////////////////////////////////////////////////
// Member functions
/////////////////////////////////////////////////////////////////

// --------------------------------------------------------------
// addRemoveMembers
// --------------------------------------------------------------

function addRemoveMembers(sourc,targ,ur) {
	sourc = document.getElementById(sourc);
	targ = document.getElementById(targ);
	if (sourc.selectedIndex == -1) return;
	var opt = document.createElement("OPTION");
	opt.text = sourc.item(sourc.selectedIndex).text;
	opt.value = sourc.item(sourc.selectedIndex).value;
	var mid = sourc.item(sourc.selectedIndex).value;

	if ( isMSIE() ){
		sourc.remove(sourc.selectedIndex);
		targ.add(opt);
	} else {
		sourc.removeChild(sourc.options[sourc.selectedIndex]);
		targ.appendChild(opt);
	}

	var request = newXMLHttpRequest();
	var msg = 'Opslaan...';
	ur += ';mid=' + mid;

	if (parent.document.getElementById('rpc-status')){
		parent.document.getElementById('rpc-status').innerHTML = msg;
	}

	request.open('GET', ur, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var details = request.responseText.split('|');
			if (parent.document.getElementById('rpc-status')){
				parent.document.getElementById('rpc-status').innerHTML = details[0];
			}
		}
	}
	request.send('');
}

/////////////////////////////////////////////////////////////////
// Banner functions
/////////////////////////////////////////////////////////////////

// --------------------------------------------------------------
// addRemoveBanners
// --------------------------------------------------------------

function addRemoveBanners(sourc,targ,ur) {
	sourc = document.getElementById(sourc);
	targ = document.getElementById(targ);
	if (sourc.selectedIndex == -1) return;
	var opt = document.createElement("OPTION");
	opt.text = sourc.item(sourc.selectedIndex).text;
	opt.value = sourc.item(sourc.selectedIndex).value;
	var bid = sourc.item(sourc.selectedIndex).value;

	if ( isMSIE() ){
		sourc.remove(sourc.selectedIndex);
		targ.add(opt);
	} else {
		sourc.removeChild(sourc.options[sourc.selectedIndex]);
		targ.appendChild(opt);
	}

	var request = newXMLHttpRequest();
	var msg = 'Opslaan...';
	ur += ';bid=' + bid;

	if (parent.document.getElementById('rpc-status')){
		parent.document.getElementById('rpc-status').innerHTML = msg;
	}

	request.open('GET', ur, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var details = request.responseText.split('|');
			if (parent.document.getElementById('rpc-status')){
				parent.document.getElementById('rpc-status').innerHTML = details[0];
			}
		}
	}
	request.send('');

}


/////////////////////////////////////////////////////////////////
// Sort functions
/////////////////////////////////////////////////////////////////

// --------------------------------------------------------------
// sortPage
// --------------------------------------------------------------

function sortPage(loc){
	if (t_0.getSelected() && t_0.getSelected().childNodes.length > 1) { 
		cursorMenu1.hide();
		var id = (t_0.getSelected()._PageID) ? t_0.getSelected()._PageID : '';
		loc += ';id=' +id;
		args['current-tree-object'] = t_0.getSelected().id;
		showDialog(loc, { width : 350, height: 430, resizable: 'yes'} );
	}
}

// --------------------------------------------------------------
// moveUp
// --------------------------------------------------------------

function moveUp(el) {
	var index = el.selectedIndex;
	if (index < 1) return;
	
	el.insertBefore(el.removeChild(el.options[index]), el.options[index-1]);
	el.selectedIndex = index - 1;
    	
	var str = "";
	for (var i=0; i<el.length; i++) {
		str += el.item(i).value;
		str += ",";
	}
	document.f.NewOrder.value = str;
}

// --------------------------------------------------------------
// moveDown
// --------------------------------------------------------------

function moveDown(el) {
	var index = el.selectedIndex;
	
	el.insertBefore(el.removeChild(el.options[index]), el.options[index+1]);
	el.selectedIndex = index + 1;	

	var str = "";
	for (var i=0; i<el.length; i++) {
		str += el.item(i).value;
		str += ",";
	}
	document.f.NewOrder.value = str;
}


/////////////////////////////////////////////////////////////////
// switchMenu functions
/////////////////////////////////////////////////////////////////

// --------------------------------------------------------------
// switchMenu
// --------------------------------------------------------------

function switchMenu(obj) {
	if (document.getElementById) {
		var pa = document.getElementById("parent"+obj);
		var el = document.getElementById("sub"+obj);
		//var ar = document.getElementById("subcategory").getElementsByTagName("ul");
		
		if (el.style.display == "none") {
			/*for (var i=0; i < ar.length; i++) {
				if (obj != i)
					document.images[imgArr[i]].src = outArr[i].src;
				ar[i].style.display = "none";
			}*/
			el.style.display = "block";
			SetCookie("my_parent"+obj,obj);
			//pa.style.background = "url(img/icon_mainitem_active.gif) 0 4px no-repeat";
		}
		else {
			el.style.display = "none";
			DeleteCookie("my_parent"+obj);
			//pa.style.background = "url(img/icon_mainitem.gif) 0 4px no-repeat";
		}
	}
}

// --------------------------------------------------------------
// restore_switchMenu
// --------------------------------------------------------------

function restore_switchMenu(obj) {
	if (obj.length){
		for (var i = 0; i < obj.length; i++ ) {
			if (GetCookie("my_parent"+obj[i])) { 
				switchMenu(GetCookie("my_parent"+obj[i]));
			}
		}
	}
}


/////////////////////////////////////////////////////////////////
// Common functions
/////////////////////////////////////////////////////////////////

// --------------------------------------------------------------
// submit forms
// --------------------------------------------------------------
function submit_product(theSel) {
	var selLength = theSel.length;
	var i;
	for(i=selLength-1; i>=0; i--)
  {
    theSel.options[i].selected = true;
  }
  return true;
}

// --------------------------------------------------------------
// ajax image
// --------------------------------------------------------------
function ajaxImgFunction(script, imgSrcFileName, imgDstFileName) {
	var xmlHttp;
	var msg;
	

	var request = newXMLHttpRequest();
	if (!msg) { msg = 'Ready'; }

	if (top.document.getElementById('rpc-status')){
		top.document.getElementById('rpc-status').innerHTML = msg;
	}
	
	request.onreadystatechange=function() {
		top.document.getElementById('rpc-status').innerHTML = 'Creating thumbnail...';
		document.getElementById('add_one_img').disabled=true;
		if(request.readyState==4)	{
			document.getElementById('thb').src=request.responseText;
			document.getElementById('add_one_img').disabled=false;
			top.document.getElementById('rpc-status').innerHTML = 'Done';
		}
	}
	script += "?src="+imgSrcFileName+"&dst="+imgDstFileName;
	//alert(script);
	request.open("GET", script, true);
	request.send(null);
}
	
// --------------------------------------------------------------
// moveOptions img and create thumb
// --------------------------------------------------------------
function moveOptionsImg(script, theSelFrom, theSelTo)
{
  var selLength = theSelFrom.length;
  var selectedText = new Array();
  var selectedValues = new Array();
  var selectedCount = 0;
  
  var i;
  
  // Find the selected Options in reverse order
  // and delete them from the 'from' Select.
  for(i=selLength-1; i>=0; i--) {
    if(theSelFrom.options[i].selected) {
      selectedText[selectedCount] = theSelFrom.options[i].text;
      selectedValues[selectedCount] = theSelFrom.options[i].value;
      deleteOption(theSelFrom, i);
      selectedCount++;
      break;
    }
  }
  
  // Add the selected text/values in reverse order.
  // This will add the Options to the 'to' Select
  // in the same order as they were in the 'from' Select.
  for(i=selectedCount-1; i>=0; i--)
  {
  	//alert(selectedValues[i]);
    addOption(theSelTo, selectedText[i], selectedValues[i]);
    ajaxImgFunction(script, selectedValues[i], selectedText[i]);
    
  }

	sortOptions(theSelFrom);
	sortOptions(theSelTo);
}

// --------------------------------------------------------------
// moveOptions 
// --------------------------------------------------------------
function moveOptions(theSelFrom, theSelTo)
{

  var selLength = theSelFrom.length;
  var selectedText = new Array();
  var selectedValues = new Array();
  var selectedCount = 0;
  
  var i;
  
  // Find the selected Options in reverse order
  // and delete them from the 'from' Select.
  for(i=selLength-1; i>=0; i--)
  {
    if(theSelFrom.options[i].selected)
    {
      selectedText[selectedCount] = theSelFrom.options[i].text;
      selectedValues[selectedCount] = theSelFrom.options[i].value;
      deleteOption(theSelFrom, i);
      selectedCount++;
    }
  }
  
  // Add the selected text/values in reverse order.
  // This will add the Options to the 'to' Select
  // in the same order as they were in the 'from' Select.
  for(i=selectedCount-1; i>=0; i--)
  {
    addOption(theSelTo, selectedText[i], selectedValues[i]);
  }

	sortOptions(theSelFrom);
	sortOptions(theSelTo);
}

// --------------------------------------------------------------
// addOption 
// --------------------------------------------------------------

function addOption(theSel, theText, theValue)
{
  var newOpt = new Option(theText, theValue);
  var selLength = theSel.length;
  theSel.options[selLength] = newOpt;
}

// --------------------------------------------------------------
// deleteOption 
// --------------------------------------------------------------

function deleteOption(theSel, theIndex)
{ 
  var selLength = theSel.length;
  if(selLength>0)
  {
    theSel.options[theIndex] = null;
  }
}


// --------------------------------------------------------------
// sortOption 
// --------------------------------------------------------------

function sortOptions(theSel)
{
	arrOptions = new Array();
	
	for(i=0; i<theSel.length; i++)
	{
		arrOptions[i] = new Array();
		arrOptions[i][ 'text' ] = theSel.options[i].text;
		arrOptions[i][ 'value' ] = theSel.options[i].value;		
	}

/*
	
	function callbackFunc(a,b){

	if(a.text == b.text){

		if(a.value == b.value){
			return 0;
		}

		return (a.value < b.value) ? -1 : 1;
	}

	return (a.text < b.text) ? -1 : 1;
}
	
	arrOptions.sort(callbackFunc);
	*/
	
	for(i=0; i<theSel.length; i++)
	{
  	theSel.options[i].text = arrOptions[i]['text'];
  	theSel.options[i].value = arrOptions[i]['value'];
	}
	
}


// --------------------------------------------------------------
// resizeDialog 
// --------------------------------------------------------------

function resizeDialog(w,h){
	if ( isMSIE() ){
		window.top.dialogWidth = w+'px';
		window.top.dialogHeight = h+'px';
	} else {
		top.resizeTo(w, h);
	}
}

// --------------------------------------------------------------
// ShowDialog 
// --------------------------------------------------------------

function showDialog(loc,args){
	var width = (args['width']) ? args['width'] : 430;
	var height = (args['height']) ? args['height'] : 300;
	var resizable = (args['resizable']) ? args['resizable'] : 'no';
	var scrolling = (args['scrolling']) ? args['scrolling'] : 'no';
	var windowname = (args['windowname']) ? args['windowname'] : 'wmPopup';

	var x=parseInt(screen.width/2.0)-(width/2.0);
	var y=parseInt(screen.height/2.0)-(height/2.0);
	
	// hide the contextmenu (tends to stick on IE)
	if (moduleMenu){moduleMenu.hide();}
	if (toolsMenu){toolsMenu.hide();}
	if (helpMenu){helpMenu.hide();}
	if (cursorMenu1){cursorMenu1.hide();}
	if (bannerMenu){bannerMenu.hide();}
	
	if ( isMSIE() ){
		var opt = 'resizable:'+resizable+';scroll:'+scrolling+';center:yes;status:no;dialogWidth:'+ width +'px;dialogHeight:'+ height +'px;help:no;'
		window.showModalDialog(loc, window, opt);
	} else {
		var modal="yes";
		var win=window.open(loc,windowname,"top="+y+",left="+x+",scrollbars="+scrolling+",dialog="+modal+",minimizable=no,modal="+modal+",width="+width+",height="+height+",resizable="+resizable);
		eval('try {	win.resizeTo(width, height);	} catch(e) {	}	');
		win.focus();
	}
}

// --------------------------------------------------------------
// isMSIE
// --------------------------------------------------------------

function isMSIE() {
	if (navigator.appName=="Microsoft Internet Explorer") {
		return true;
	}
	return false;
}

// --------------------------------------------------------------
// CheckFocus
// --------------------------------------------------------------

function CheckFocus() {
	self.focus();
}


// --------------------------------------------------------------
// goTo
// --------------------------------------------------------------

function goTo(ur,id,type,targ) {
	if (!id){return;};
	if (targ){
		frames[targ].location.href=ur + ';id=' + id + ';type=' + type;
	} else {
		self.location.href=ur + ';id=' + id + ';type=' + type;
	}
}

// --------------------------------------------------------------
// EndWebManager
// --------------------------------------------------------------

function EndWebManager() {
	if (confirm("Weet u zeker dat u wilt afsluiten?")) {
		top.close()
	} else {}
}

// --------------------------------------------------------------
// rpc_add_gallery
// --------------------------------------------------------------

function rpc_add_gallery (ur,msg) {
	var request = newXMLHttpRequest();
	if (!msg) { msg = 'Saving...'; }

	if (document.getElementById('rpc-status')){
		document.getElementById('rpc-status').innerHTML = msg;
	}

	//window.status = 'Saving...';
	request.open('GET', ur, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var details = request.responseText.split('|');
			if (document.getElementById('rpc-status')){
				document.getElementById('rpc-status').innerHTML = details[0];
				parent.window.opener.location.reload(true);
				top.close();
			}
		}
	}
	request.send('');
}

/////////////////////////////////////////////////////////////////
// RPC functions
/////////////////////////////////////////////////////////////////

// --------------------------------------------------------------
// wm_rpc
// --------------------------------------------------------------

function wm_rpc (ur,msg) {
	var request = newXMLHttpRequest();
	if (!msg) { msg = 'Saving...'; }

	if (document.getElementById('rpc-status')){
		document.getElementById('rpc-status').innerHTML = msg;
	}

	//window.status = 'Saving...';
	request.open('GET', ur, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var details = request.responseText.split('|');
			if (document.getElementById('rpc-status')){
				document.getElementById('rpc-status').innerHTML = details[0];
			}
		}
	}
	request.send('');
}

// --------------------------------------------------------------
// newXMLHttpRequest1
// --------------------------------------------------------------

function newXMLHttpRequest1() {
	return new XMLHttpRequest();
}

// --------------------------------------------------------------
// newXMLHttpRequest2
// --------------------------------------------------------------

function newXMLHttpRequest2() {
	return new ActiveXObject('Msxml2.XMLHTTP');
}

// --------------------------------------------------------------
// newXMLHttpRequest
// --------------------------------------------------------------

var newXMLHttpRequest = function() {
	try {
		newXMLHttpRequest = newXMLHttpRequest1
		return newXMLHttpRequest1()
	} catch  (e) {
		newXMLHttpRequest = newXMLHttpRequest2
		return newXMLHttpRequest2()
	}
}


/////////////////////////////////////////////////////////////////
// MM functions (MacroMedia Dreamweaver)
/////////////////////////////////////////////////////////////////

// --------------------------------------------------------------
// MM_preloadImages
// --------------------------------------------------------------

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

// --------------------------------------------------------------
// MM_swapImgRestore
// --------------------------------------------------------------

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

// --------------------------------------------------------------
// MM_findObj
// --------------------------------------------------------------

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

// --------------------------------------------------------------
// MM_swapImage
// --------------------------------------------------------------

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


/////////////////////////////////////////////////////////////////
// Cookie functions
/////////////////////////////////////////////////////////////////
//
// Cookie Functions - Second Helping (21-Jan-96)
// Written by: Bill Dortch, hIdaho Design <bdortch@netw.com>
// The following functions are released to the public domain.
//
// The Second Helping version of the cookie functions dispenses with
// my encode and decode functions, in favor of JavaScript's new built-in
// escape and unescape functions, which do more complete encoding, and
// which are probably much faster.
//
// The new version also extends the SetCookie function, though in
// a backward-compatible manner, so if you used the First Helping of
// cookie functions as they were written, you will not need to change any
// code, unless you want to take advantage of the new capabilities.
//
// The following changes were made to SetCookie:
//
// 1. The expires parameter is now optional - that is, you can omit
// it instead of passing it null to expire the cookie at the end
// of the current session.
//
// 2. An optional path parameter has been added.
//
// 3. An optional domain parameter has been added.
//
// 4. An optional secure parameter has been added.
//
// For information on the significance of these parameters, and
// and on cookies in general, please refer to the official cookie
// spec, at:
//
// http://www.netscape.com/newsref/std/cookie_spec.html
//
//

// --------------------------------------------------------------
// getCookieVal
// --------------------------------------------------------------
// "Internal" function to return the decoded value of a cookie

function getCookieVal (offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
	endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}


// --------------------------------------------------------------
// GetCookie
// --------------------------------------------------------------
// Function to return the value of the cookie specified by "name".
// name - String object containing the cookie name.
// returns - String object containing the cookie value, or null if
// the cookie does not exist.

function GetCookie (name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
		return getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return null;
}

// --------------------------------------------------------------
// SetCookie
// --------------------------------------------------------------
// Function to create or update a cookie.
// name - String object object containing the cookie name.
// value - String object containing the cookie value. May contain
// any valid string characters.
// [expires] - Date object containing the expiration data of the cookie. If
// omitted or null, expires the cookie at the end of the current session.
// [path] - String object indicating the path for which the cookie is valid.
// If omitted or null, uses the path of the calling document.
// [domain] - String object indicating the domain for which the cookie is
// valid. If omitted or null, uses the domain of the calling document.
// [secure] - Boolean (true/false) value indicating whether cookie transmission
// requires a secure channel (HTTPS).
//
// The first two parameters are required. The others, if supplied, must
// be passed in the order listed above. To omit an unused optional field,
// use null as a place holder. For example, to call SetCookie using name,
// value and path, you would code:
//
// SetCookie ("myCookieName", "myCookieValue", null, "/");
//
// Note that trailing omitted parameters do not require a placeholder.
//
// To set a secure cookie for path "/myPath", that expires after the
// current session, you might code:
//
// SetCookie (myCookieVar, cookieValueVar, null, "/myPath", null, true);

function SetCookie (name, value) {
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
	((path == null) ? "" : ("; path=" + path)) +
	((domain == null) ? "" : ("; domain=" + domain)) +
	((secure == true) ? "; secure" : "");
}

// --------------------------------------------------------------
// DeleteCookie
// --------------------------------------------------------------
// Function to delete a cookie. (Sets expiration date to current date/time)
// name - String object containing the cookie name

function DeleteCookie (name) {
	var exp = new Date();
	exp.setTime (exp.getTime() - 1); // This cookie is history
	var cval = GetCookie (name);
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

// --------------------------------------------------------------
// Example
// --------------------------------------------------------------
//var expdate = new Date ();
//expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000)); // 24 hrs from now
//SetCookie ("ccpath", "http://www.hidaho.com/colorcenter/", expdate);
//SetCookie ("ccname", "hIdaho Design ColorCenter", expdate);
//SetCookie ("tempvar", "This is a temporary cookie.");
//SetCookie ("ubiquitous", "This cookie will work anywhere in this domain",null,"/");
//SetCookie ("paranoid", "This cookie requires secure communications",expdate,"/",null,true);
//SetCookie ("goner", "This cookie must die!");
//document.write (document.cookie + "<br>");
//DeleteCookie ("goner");
//document.write ("ccpath = " + GetCookie("ccpath") + "<br>");
//document.write ("ccname = " + GetCookie("ccname") + "<br>");
//document.write ("tempvar = " + GetCookie("tempvar") + "<br>");
// end script -->

// --------------------------------------------------------------
// clock
// --------------------------------------------------------------

function clock() {
var mN=new Array();mN[0]="januari ";mN[1]="februari ";mN[2]="maart ";mN[3]="april ";mN[4]="mei ";mN[5]="juni ";mN[6]="juli ";mN[7]="augustus ";mN[8]="september ";mN[9]="oktober ";mN[10]="november ";mN[11]="december ";
var dN=new Array();dN[0]="Zondag, ";dN[1]="Maandag, ";dN[2]="Dinsdag, ";dN[3]="Woensdag, ";dN[4]="Donderdag, ";dN[5]="Vrijdag, ";dN[6]="Zaterdag, ";

	//if (!document.layers && !document.all) return;
	var digital = new Date();
	var wday = digital.getDay();
	var mday = digital.getDate();
	var month = digital.getMonth();
	var year = digital.getYear();
	if (year < 1900){year += 1900;}
	var hours = digital.getHours();
	var minutes = digital.getMinutes();
	var seconds = digital.getSeconds();
//	var amOrPm = "AM";
//	if (hours > 11) amOrPm = "PM";
//	if (hours > 12) hours = hours - 12;
//	if (hours == 0) hours = 12;
	if (minutes <= 9) minutes = "0" + minutes;
	if (seconds <= 9) seconds = "0" + seconds;
	dispTime = dN[wday] +  mday + " " + mN[month] + year + " " + hours + ":" + minutes + ":" + seconds;
	document.getElementById('pendule').innerHTML = dispTime;
	setTimeout("clock()", 1000);
}


/////////////////////////////////////////////////////////////////
// Format number functions
/////////////////////////////////////////////////////////////////

   // CONSTANTS
  var separator = ",";  // use period as 000's separator
  var decpoint = ".";  // use comma as decimal point
  var percent = "%";
  var currency = "€";  // use dollar sign for currency

  function formatNumber(number, format, print) {  // use: formatNumber(number, "format")
    if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

    if (number - 0 != number) return null;  // if number is NaN return null
    var useSeparator = format.indexOf(separator) != -1;  // use separators in number
    var usePercent = format.indexOf(percent) != -1;  // convert output to percentage
    var useCurrency = format.indexOf(currency) != -1;  // use currency format
    var isNegative = (number < 0);
    number = Math.abs (number);
    if (usePercent) number *= 100;
    format = strip(format, separator + percent + currency);  // remove key characters
    number = "" + number;  // convert number input to string

     // split input value into LHS and RHS using decpoint as divider
    var dec = number.indexOf(decpoint) != -1;
    var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
    var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";

     // split format string into LHS and RHS using decpoint as divider
    dec = format.indexOf(decpoint) != -1;
    var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
    var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";

     // adjust decimal places by cropping or adding zeros to LHS of number
    if (srightEnd.length < nrightEnd.length) {
      var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
      nrightEnd = nrightEnd.substring(0, srightEnd.length);
      if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1);  // round up

 // patch provided by Patti Marcoux 1999/08/06
      while (srightEnd.length > nrightEnd.length) {
        nrightEnd = "0" + nrightEnd;
      }

      if (srightEnd.length < nrightEnd.length) {
        nrightEnd = nrightEnd.substring(1);
        nleftEnd = (nleftEnd - 0) + 1;
      }
    } else {
      for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
        if (srightEnd.charAt(i) == "0") nrightEnd += "0";  // append zero to RHS of number
        else break;
      }
    }

     // adjust leading zeros
    sleftEnd = strip(sleftEnd, "#");  // remove hashes from LHS of format
    while (sleftEnd.length > nleftEnd.length) {
      nleftEnd = "0" + nleftEnd;  // prepend zero to LHS of number
    }

    if (useSeparator) nleftEnd = separate(nleftEnd, separator);  // add separator
    var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : "");  // combine parts
    output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
    if (isNegative) {
      // patch suggested by Tom Denn 25/4/2001
      output = (useCurrency) ? "(" + output + ")" : "-" + output;
    }
    return output;
  }

  function strip(input, chars) {  // strip all characters in 'chars' from input
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++)
      if (chars.indexOf(input.charAt(i)) == -1)
        output += input.charAt(i);
    return output;
  }

  function separate(input, separator) {  // format input using 'separator' to mark 000's
    input = "" + input;
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++) {
      if (i != 0 && (input.length - i) % 3 == 0) output += separator;
      output += input.charAt(i);
    }
    return output;
  }


