');
		$.get(url, function(data) {
			element.html(data);
			if(afterload) {
				var func = eval(afterload);
				if(typeof func === "function"){
					func();
				}
			}
			initMost();
			SeedDMSAjax.run(view, action);
		});
	}); /* }}} */
	$('div.ajax').on('update', function(event, param1, callback) { /* {{{ */
		var element = $(this);
		var url = '';
		var href = element.data('href');
		var base = element.data('base');
		if(typeof base == 'undefined')
			base = '';
		var view = element.data('view');
		var action = element.data('action');
		var query = element.data('query');
		var afterload = $(this).data('afterload');
		var updatemsg = element.data('update-msg');
		var runinit = true;
		if(view && action) {
			url = seeddms_webroot+base+"out/out."+view+".php?action="+action;
			if(query) {
				url += "&"+query;
			}
		} else
			url = href;
		if(typeof param1 === 'object') {
			for(var key in param1) {
				if(key == 'callback')
					callback = param1[key];
				else if(key == 'noinit')
					runinit = !param1[key];
				else {
					if($.isArray(param1[key])) {
						if(param1[key].length > 0)
							url += "&"+key+"[]="+param1[key].join("&"+key+"[]=");
					} else
						url += "&"+key+"="+param1[key];
				}
			}
		} else {
			url += "&"+param1;
		}
		//console.log(url);
		if(typeof updatemsg != 'undefined')
			element.html(updatemsg);
		if(!element.data('no-spinner'))
			element.prepend('

');
		$.get(url, function(data) {
			element.html(data);
			if(callback)
				callback.call();
			if(afterload) {
				var func = eval(afterload);
				if(typeof func === "function"){
					func();
				}
			}
			if(runinit) {
				initMost();
			}
			SeedDMSAjax.run(view, action);
		});
	}); /* }}} */
	$("body").on("click", ".ajax-click", function() { /* {{{ */
		var element = $(this);
		var url = seeddms_webroot+"op/op.Ajax.php"+"?"+element.data('param1');
		var param2 = element.data('param2');
		var param3 = element.data('param3');
		if(typeof param2 !== 'undefined')
			url += "&"+param2;
		if(typeof param3 !== 'undefined')
			url += "&"+param3;
		$.ajax({
			type: 'GET',
			url: url,
			dataType: 'json',
			success: function(data){
				if(data.success) {
					if(element.data('param1') == 'command=clearclipboard') {
						$("#main-clipboard").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=mainclipboard')
						$("#menu-clipboard div").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=menuclipboard')
					}
					noty({
						text: data.message,
						type: 'success',
						dismissQueue: true,
						layout: 'topRight',
						theme: 'defaultTheme',
						timeout: 1500
					});
				} else {
					noty({
						text: data.message,
						type: 'error',
						dismissQueue: true,
						layout: 'topRight',
						theme: 'defaultTheme',
						timeout: 3500
					});
				}
			}
		});
	}); /* }}} */
	$('button.history-back').on('click', function(event) { /* {{{ */
		window.history.back();
	}); /* }}} */
	$("body").on("blur", "span.editable", function(e) { /* {{{ */
		console.log($(this).data('document'));
		e.preventDefault();
		$.post(seeddms_webroot+"op/op.Ajax.php", { command: "setdocumentname", id: $(this).data('document'), formtoken: $(this).data('formtoken'), name: $(this).text() })
			.done(function( data ) {
				noty({
					text: data.message,
					type: data.success ? 'success' : 'error',
					dismissQueue: true,
					layout: 'topRight',
					theme: 'defaultTheme',
					timeout: 1500
				});
		});
	}); /* }}} */
	$("body").on("keypress", "span.editable", function(e) { /* {{{ */
		if(e.which == 13) {
			$(this).blur();
		}
		return e.which != 13;
	}); /* }}} */
});
function onAddClipboard(ev) { /* {{{ */
	ev.preventDefault();
	var source_info = JSON.parse(ev.originalEvent.dataTransfer.getData("text"));
	source_type = source_info.type;
	source_id = source_info.id;
	formtoken = source_info.formtoken;
	if(source_type == 'document' || source_type == 'folder') {
		$.get(seeddms_webroot+'op/op.Ajax.php',
			{ command: 'addtoclipboard', type: source_type, id: source_id },
			function(data) {
				if(data.success) {
					$("#main-clipboard").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=mainclipboard')
					$("#menu-clipboard div").html('Loading').load(seeddms_webroot+'out/out.Clipboard.php?action=menuclipboard')
					noty({
						text: data.message,
						type: 'success',
						dismissQueue: true,
						layout: 'topRight',
						theme: 'defaultTheme',
						timeout: 1500
					});
				} else {
					noty({
						text: data.message,
						type: 'error',
						dismissQueue: true,
						layout: 'topRight',
						theme: 'defaultTheme',
						timeout: 3500
					});
				}
			},
			'json'
		);
		//url = "../op/op.AddToClipboard.php?id="+source_id+"&type="+source_type;
		//document.location = url;
	}
} /* }}} */
(function( SeedDMSUpload, $, undefined ) { /* {{{ */
	var ajaxurl = seeddms_webroot+"op/op.Ajax.php";
	var editBtnLabel = "Edit";
	var abortBtnLabel = "Abort";
	var maxFileSize = 100000;
	var maxFileSizeMsg = 'File too large';
	var rowCount=0;
	SeedDMSUpload.setUrl = function(url)  {
		ajaxurl = url;
	}
	SeedDMSUpload.setAbortBtnLabel = function(label)  {
		abortBtnLabel = label;
	}
	SeedDMSUpload.setEditBtnLabel = function(label)  {
		editBtnLabel = label;
	}
	SeedDMSUpload.setMaxFileSize = function(size)  {
		maxFileSize = size;
	}
	SeedDMSUpload.getMaxFileSize = function()  {
		return maxFileSize;
	}
	SeedDMSUpload.setMaxFileSizeMsg = function(msg)  {
		maxFileSizeMsg = msg;
	}
	SeedDMSUpload.getMaxFileSizeMsg = function()  {
		return maxFileSizeMsg;
	}
//	function sendFileToServer(formData,status,callback) {
	SeedDMSUpload.sendFileToServer = function(formData,status,callback) {
		var jqXHR=$.ajax({
			xhr: function() {
			var xhrobj = $.ajaxSettings.xhr();
			if (xhrobj.upload) {
				xhrobj.upload.addEventListener('progress', function(event) {
						var percent = 0;
						var position = event.loaded || event.position;
						var total = event.total;
						if (event.lengthComputable) {
								percent = Math.ceil(position / total * 100);
						}
						//Set progress
						status.setProgress(percent);
					}, false);
				}
				return xhrobj;
			},
			url: ajaxurl,
			type: "POST",
			contentType: false,
			dataType:"json",
			processData: false,
			cache: false,
			data: formData,
			success: function(data, textStatus) {
				status.setProgress(100);
				if(data.success) {
					noty({
						text: data.message,
						type: 'success',
						dismissQueue: true,
						layout: 'topRight',
						theme: 'defaultTheme',
						timeout: 1500
					});
					if(editBtnLabel)
						status.statusbar.after($('
' + editBtnLabel + ''));
					if(callback) {
						callback();
					}
				} else {
					noty({
						text: data.message,
						type: 'error',
						dismissQueue: true,
						layout: 'topRight',
						theme: 'defaultTheme',
						timeout: 3500
					});
				}
			}
		});
		status.setAbort(jqXHR);
	}
	SeedDMSUpload.addSubFolder = function(formData) {
		var ret = false;
		$.ajax({
			url: ajaxurl,
			type: "POST",
			contentType: false,
			dataType:"json",
			processData: false,
			cache: false,
			async: false,
			data: formData,
			success: function(data, textStatus) {
				if(data.success) {
					noty({
						text: data.message,
						type: 'success',
						dismissQueue: true,
						layout: 'topRight',
						theme: 'defaultTheme',
						timeout: 1500
					});
					ret = data.data;
				} else {
					noty({
						text: data.message,
						type: 'error',
						dismissQueue: true,
						layout: 'topRight',
						theme: 'defaultTheme',
						timeout: 3500
					});
				}
			}
		});
		return ret;
	}
	//function createStatusbar(obj) {
	SeedDMSUpload.createStatusbar = function(obj)  {
		rowCount++;
		var row="odd";
		this.obj = obj;
		if(rowCount %2 ==0) row ="even";
		this.statusbar = $("
");
		this.filename = $("
").appendTo(this.statusbar);
		this.size = $("
").appendTo(this.statusbar);
		this.progressBar = $("
").appendTo(this.statusbar);
		this.abort = $("
" + abortBtnLabel + "
").appendTo(this.statusbar);
//		$('.statusbar').empty();
		obj.after(this.statusbar);
		this.setFileNameSize = function(name,size) {
			var sizeStr="";
			var sizeKB = size/1024;
			if(parseInt(sizeKB) > 1024) {
				var sizeMB = sizeKB/1024;
				sizeStr = sizeMB.toFixed(2)+" MB";
			} else {
				sizeStr = sizeKB.toFixed(2)+" KB";
			}
			this.filename.html(name);
			this.size.html(sizeStr);
		}
		this.setProgress = function(progress) {
//			var progressBarWidth =progress*this.progressBar.width()/ 100;
			this.progressBar.find('div').animate({ width: progress+"%" }, 10).html(progress + "% ");
			if(parseInt(progress) >= 100) {
				this.abort.hide();
			}
		}
		this.setAbort = function(jqxhr) {
			var sb = this.statusbar;
			this.abort.click(function() {
				jqxhr.abort();
				sb.hide();
			});
		}
	}
	// formData - instance of FormData object
	// data - object to post
	SeedDMSUpload.getFormData = function(formData, data, previousKey) {
		if (data instanceof Object) {
			Object.keys(data).forEach(key => {
				const value = data[key];
				if (value instanceof Object && !Array.isArray(value)) {
					return this.getFormData(formData, value, key);
				}
				if (previousKey) {
					key = `${previousKey}[${key}]`;
				}
				if (Array.isArray(value)) {
					value.forEach(val => {
						formData.append(`${key}[]`, val);
					});
				} else {
					formData.append(key, value);
				}
			});
		} else if(typeof data !== 'undefined') {
			formData.append(previousKey, data);
		}
	}
	SeedDMSUpload.handleFileUpload = function(target_id, target_type, items,obj,statusbar) {
		/* target is set for the quick upload area */
//		var target_id = obj.data('target');
//		var target_type = 'folder';
		/* droptarget is set for folders and documents in lists */
//		var droptarget = obj.data('droptarget');
//		if(droptarget) {
//			target_type = droptarget.split("_")[0];
//			target_id = droptarget.split("_")[1];
//		}
		var afterupload = obj.data('afterupload');
		if(afterupload) {
			afteruploadfunc = eval(afterupload);
		} else {
			afteruploadfunc = function() {
				if(target_id == seeddms_folder)
					$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
			}
		}
		if(target_type == 'folder' && target_id) {
			for (var i = 0; i < items.length; i++) {
				var item = items[i]; //.webkitGetAsEntry();
				if (item.isFile) {
					item.file(function(file) {
						if(file.size <= maxFileSize) {
							var fd = new FormData();
							fd.append('targettype', target_type);
							fd.append('folderid', target_id);
							fd.append('formtoken', obj.data('uploadformtoken'));
							if (typeof obj.data('comment') !== 'undefined') {
								fd.append('comment', obj.data('comment'));
							}
							if (typeof obj.data('keywords') !== 'undefined') {
								fd.append('keywords', obj.data('keywords'));
							}
							fd.append('userfile', file);
							fd.append('command', 'uploaddocument');
							SeedDMSUpload.getFormData(fd, obj.data('attributes'), 'attributes');
							SeedDMSUpload.getFormData(fd, obj.data('categories'), 'categories');
		//					fd.append('path', file.webkitRelativePath);
							statusbar.parent().show();
							var status = new SeedDMSUpload.createStatusbar(statusbar);
							status.setFileNameSize(file.name,file.size);
							SeedDMSUpload.sendFileToServer(fd,status,afteruploadfunc);
						} else {
							noty({
								text: maxFileSizeMsg + '
' + file.name + ' (' + file.size + ' Bytes)',
								type: 'error',
								dismissQueue: true,
								layout: 'topRight',
								theme: 'defaultTheme',
								timeout: 5000
							});
						}
					});
				} else if(item.isDirectory) {
					var fd = new FormData();
					fd.append('folderid', target_id);
					fd.append('formtoken', obj.data('uploadformtoken'));
					fd.append('command', 'addfolder');
					fd.append('name', item.name);
					let fid = SeedDMSUpload.addSubFolder(fd);
					if(fid) {
//						obj.data('target', fid);
//						obj.data('droptarget', 'folder_'+fid);
						/* Set void afterupload to prevent tons of noty messages */
//						obj.data('afterupload', '()=>{}');
						var dirReader = item.createReader();
						dirReader.readEntries(function(entries) {
							SeedDMSUpload.handleFileUpload(fid, 'folder', entries, obj, statusbar);
						});
					}
					/* Just reload the parent folder */
					if(target_id == seeddms_folder) {
						$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
					}
				}
			}
		} else if(target_type == 'document' && target_id) {
			for (var i = 0; i < items.length; i++) {
				var item = items[i]; //.webkitGetAsEntry();
				if (item.isFile) {
					item.file(function(file) {
						if(file.size <= maxFileSize) {
							var fd = new FormData();
							fd.append('targettype', target_type);
							fd.append('documentid', target_id);
							fd.append('formtoken', obj.data('uploadformtoken'));
							fd.append('userfile', file);
							fd.append('command', 'updatedocument');
							var status = new SeedDMSUpload.createStatusbar(statusbar);
							status.setFileNameSize(file.name,file.size);
							SeedDMSUpload.sendFileToServer(fd,status);
							$("div.ajax[data-action='folderList']").trigger('update', {folderid: seeddms_folder});
						} else {
							noty({
								text: maxFileSizeMsg + '
' + file.name + ' (' + file.size + ' Bytes)',
								type: 'error',
								dismissQueue: true,
								layout: 'topRight',
								theme: 'defaultTheme',
								timeout: 5000
							});
						}
					});
				}
			}
		} else if(target_type == 'attachment' && target_id) {
			for (var i = 0; i < items.length; i++) {
				var item = items[i]; //.webkitGetAsEntry();
				if (item.isFile) {
					item.file(function(file) {
						if(file.size <= maxFileSize) {
							var fd = new FormData();
							fd.append('targettype', target_type);
							fd.append('documentid', target_id);
							fd.append('formtoken', obj.data('uploadformtoken'));
							fd.append('userfile', file);
							fd.append('command', 'addfile');
							var status = new SeedDMSUpload.createStatusbar(statusbar);
							status.setFileNameSize(file.name,file.size);
							SeedDMSUpload.sendFileToServer(fd,status, function(){
								$("div.ajax[data-action='documentFiles']").trigger('update', {documentid: target_id});
							});
						} else {
							noty({
								text: maxFileSizeMsg + '
' + file.name + ' (' + file.size + ' Bytes)',
								type: 'error',
								dismissQueue: true,
								layout: 'topRight',
								theme: 'defaultTheme',
								timeout: 5000
							});
						}
					});
				}
			}
		}
	}
}( window.SeedDMSUpload = window.SeedDMSUpload || {}, jQuery )); /* }}} */
$(document).ready(function() { /* {{{ */
	$(document).on('dragenter', "#draganddrophandler", function (e) {
		e.stopPropagation();
		e.preventDefault();
		$(this).css('border', '2px dashed #0B85A1');
	});
	$(document).on('dragleave', "#draganddrophandler", function (e) {
		$(this).css('border', '0px solid white');
	});
	$(document).on('dragover', "#draganddrophandler", function (e) {
		e.stopPropagation();
		e.preventDefault();
	});
	$(document).on('drop', "#draganddrophandler", function (e) {
		$(this).css('border', '0px dotted #0B85A1');
		e.preventDefault();
		attr_rel = $(this).data('droptarget');
		target_type = attr_rel.split("_")[0];
		target_id = attr_rel.split("_")[1];
		var files = e.originalEvent.dataTransfer.files;
		var items = e.originalEvent.dataTransfer.items;
		//We need to send dropped files to Server
		newitems = [];
		if(items.length > 0) {
			for (var i=0; i
 0) {
//				console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
				newitems = [];
				for (var i=0; i "+escapeHtml(source_info.name)+'  '+escapeHtml(target_name)+"";
					bootbox.dialog(bootbox_message, [{
						"label" : " "+trans.move_document,
						"class" : "btn-danger",
						"callback": function() {
							$.get(seeddms_webroot+'op/op.Ajax.php',
								{ command: 'movedocument', docid: source_id, targetfolderid: target_id, formtoken: formtoken },
								function(data) {
									if(data.success) {
										$('#table-row-document-'+source_id).hide('slow');
										noty({
											text: data.message,
											type: 'success',
											dismissQueue: true,
											layout: 'topRight',
											theme: 'defaultTheme',
											timeout: 1500
										});
									} else {
										noty({
											text: data.message,
											type: 'error',
											dismissQueue: true,
											layout: 'topRight',
											theme: 'defaultTheme',
											timeout: 3500
										});
									}
								},
								'json'
							);
						}
					}, {
						"label" : trans.cancel,
						"class" : "btn-cancel",
						"callback": function() {
						}
					}]);
					url = seeddms_webroot+"out/out.MoveDocument.php?documentid="+source_id+"&targetid="+target_id;
		//			document.location = url;
				} else if(source_type == 'folder' && source_id != target_id) {
					var bootbox_message = trans.confirm_move_folder;
					if(source_info.name)
						bootbox_message += " "+escapeHtml(source_info.name)+'  '+escapeHtml(target_name)+"
";
					bootbox.dialog(bootbox_message, [{
						"label" : " "+trans.move_folder,
						"class" : "btn-danger",
						"callback": function() {
							$.get(seeddms_webroot+'op/op.Ajax.php',
								{ command: 'movefolder', folderid: source_id, targetfolderid: target_id, formtoken: formtoken },
								function(data) {
									if(data.success) {
										$('#table-row-folder-'+source_id).hide('slow');
										noty({
											text: data.message,
											type: 'success',
											dismissQueue: true,
											layout: 'topRight',
											theme: 'defaultTheme',
											timeout: 1500
										});
									} else {
										noty({
											text: data.message,
											type: 'error',
											dismissQueue: true,
											layout: 'topRight',
											theme: 'defaultTheme',
											timeout: 3500
										});
									}
								},
								'json'
							);
						}
					}, {
						"label" : trans.cancel,
						"class" : "btn-cancel",
						"callback": function() {
						}
					}]);
					url = seeddms_webroot+"out/out.MoveFolder.php?folderid="+source_id+"&targetid="+target_id;
		//			document.location = url;
				}
			}
		} else if(target_type == 'document') {
			/* check for files, because items has an entry if no file was dropped */
			if(files.length > 0) {
//				console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
				if(files.length > 1) {
					noty({
						text: trans.must_drop_one_file,
						type: 'error',
						dismissQueue: true,
						layout: 'topRight',
						theme: 'defaultTheme',
						timeout: 5000
					});
				} else if(1) {
					newitems = [];
					for (var i=0; i "+trans.upload_new_version,
						"class" : "btn-danger",
						"callback": function() {
							SeedDMSUpload.handleFileUpload(target_id, target_type, newitems,$(e.currentTarget),$('div.statusbar-container h1'));
						}
					}, {
						"label" : trans.cancel,
						"class" : "btn-cancel",
						"callback": function() {
						}
					}]);
				}
			} else {
				var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
				source_type = source_info.type;
				source_id = source_info.id;
				formtoken = source_info.formtoken;
//				console.log('Drop '+source_type+' '+source_id+' on '+target_type+' '+target_id);
				if(source_type == 'document') {
					if(source_id != target_id) {
						bootbox.dialog(trans.confirm_transfer_link_document, [{
							"label" : " "+trans.transfer_content,
							"class" : "btn-danger",
							"callback": function() {
								$.get(seeddms_webroot+'op/op.Ajax.php',
									{ command: 'transfercontent', docid: source_id, targetdocumentid: target_id, formtoken: formtoken },
									function(data) {
										if(data.success) {
											$('#table-row-document-'+source_id).hide('slow');
											noty({
												text: data.message,
												type: 'success',
												dismissQueue: true,
												layout: 'topRight',
												theme: 'defaultTheme',
												timeout: 1500
											});
										} else {
											noty({
												text: data.message,
												type: 'error',
												dismissQueue: true,
												layout: 'topRight',
												theme: 'defaultTheme',
												timeout: 3500
											});
										}
									},
									'json'
								);
							}
						}, {
							"label" : " "+trans.link_document,
							"class" : "btn-danger",
							"callback": function() {
								$.get(seeddms_webroot+'op/op.Ajax.php',
									{ command: 'linkdocument', docid: source_id, targetdocumentid: target_id, formtoken: formtoken },
									function(data) {
										if(data.success) {
											noty({
												text: data.message,
												type: 'success',
												dismissQueue: true,
												layout: 'topRight',
												theme: 'defaultTheme',
												timeout: 1500
											});
										} else {
											noty({
												text: data.message,
												type: 'error',
												dismissQueue: true,
												layout: 'topRight',
												theme: 'defaultTheme',
												timeout: 3500
											});
										}
									},
									'json'
								);
							}
						}, {
							"label" : trans.cancel,
							"class" : "btn-cancel",
							"callback": function() {
							}
						}]);
					}
					url = seeddms_webroot+"out/out.MoveDocument.php?documentid="+source_id+"&targetid="+target_id;
		//			document.location = url;
				}
			}
		} else if(target_type == 'attachment') {
			if(files.length > 0) {
				newitems = [];
				for (var i=0; i "+trans.move_document,
				"class" : "btn-danger",
				"callback": function() {
					$.get(seeddms_webroot+'op/op.Ajax.php',
						{ command: 'movedocument', docid: source_id, targetfolderid: target_id, formtoken: formtoken },
						function(data) {
							if(data.success) {
								$('#table-row-document-'+source_id).hide('slow');
								noty({
									text: data.message,
									type: 'success',
									dismissQueue: true,
									layout: 'topRight',
									theme: 'defaultTheme',
									timeout: 1500
								});
							} else {
								noty({
									text: data.message,
									type: 'error',
									dismissQueue: true,
									layout: 'topRight',
									theme: 'defaultTheme',
									timeout: 3500
								});
							}
						},
						'json'
					);
				}
			}, {
				"label" : trans.cancel,
				"class" : "btn-cancel",
				"callback": function() {
				}
			}]);
			url = seeddms_webroot+"out/out.MoveDocument.php?documentid="+source_id+"&targetid="+target_id;
//			document.location = url;
		} else if(source_type == 'folder' && source_id != target_id) {
			bootbox.dialog(trans.confirm_move_folder, [{
				"label" : " "+trans.move_folder,
				"class" : "btn-danger",
				"callback": function() {
					$.get(seeddms_webroot+'op/op.Ajax.php',
						{ command: 'movefolder', folderid: source_id, targetfolderid: target_id, formtoken: formtoken },
						function(data) {
							if(data.success) {
								$('#table-row-folder-'+source_id).hide('slow');
								noty({
									text: data.message,
									type: 'success',
									dismissQueue: true,
									layout: 'topRight',
									theme: 'defaultTheme',
									timeout: 1500
								});
							} else {
								noty({
									text: data.message,
									type: 'error',
									dismissQueue: true,
									layout: 'topRight',
									theme: 'defaultTheme',
									timeout: 3500
								});
							}
						},
						'json'
					);
				}
			}, {
				"label" : trans.cancel,
				"class" : "btn-cancel",
				"callback": function() {
				}
			}]);
			url = seeddms_webroot+"out/out.MoveFolder.php?folderid="+source_id+"&targetid="+target_id;
//			document.location = url;
		}
	});
	$('div.splash').each(function(index) {
		var element = $(this);
		var msgtype = element.data('type');
		var timeout = element.data('timeout');
		var msg = element.text();
		noty({
			text: msg,
			type: msgtype,
			dismissQueue: true,
			layout: 'topRight',
			theme: 'defaultTheme',
			timeout: (typeof timeout == 'undefined' ? 1500 : timeout)
		});
	});
	$("body").on("click", "span.openpopupbox", function(e) {
		$(""+$(e.target).data("href")).toggle();
		e.stopPropagation();
	});
	$("body").on("click", "span.openpopupbox i", function(e) {
		$(e.target).parent().click();
	});
	$("body").on("click", "span.openpopupbox span", function(e) {
		$(e.target).parent().click();
	});
	$("body").on("click", "span.closepopupbox", function(e) {
		$(this).parent().hide();
		e.stopPropagation();
	});
	$("body").on("mouseenter", "#main-menu-dropfolderlist ul.dropdown-menu li a", function(e) {
		$(e.currentTarget).find('.dropfolder-menu-img').css('display', 'inline');
	});
	$("body").on("mouseleave", "#main-menu-dropfolderlist ul.dropdown-menu li a", function(e) {
		$(e.currentTarget).find('.dropfolder-menu-img').hide();
	});
}); /* }}} */
(function( SeedDMSTask, $, undefined ) { /* {{{ */
	var approval_count, review_count, workflow_count;
	var timeout = 1000;
	var counter = 0;
	var tasks = Array(
		{name: 'checktasks', interval: 15, func: 
			checkTasks = function() {
				$.ajax({url: seeddms_webroot+'out/out.Tasks.php',
					type: 'GET',
					dataType: "json",
					data: {action: 'counttasks'},
					success: function(data) {
						if(data) {
							if((typeof data.data.approval != 'undefined' && approval_count != data.data.approval) ||
								 (typeof data.data.review != 'undefined' && review_count != data.data.review) ||
								 (typeof data.data.workflow != 'undefined' && workflow_count != data.data.workflow)) {
		//						$("#menu-tasks").html('Loading').hide().load('../out/out.Tasks.php?action=menutasks').fadeIn('500')
								$('#menu-tasks > div.ajax').trigger('update', {folderid: seeddms_folder});
								approval_count = typeof data.data.approval != 'undefined' ? data.data.approval : 0;
								review_count = typeof data.data.review != 'undefined' ? data.data.review : 0;
								workflow_count = typeof data.data.workflow != 'undefined' ? data.data.workflow : 0;
							}
						}
					},
					timeout: 3000
				}); 
			}
		}
	);
	SeedDMSTask.add = function(task) {
		return tasks.push(task);
	}
	SeedDMSTask.run = function() {
		for(let task of tasks) {
			if(counter % task.interval == 0) {
//			console.log("Running task '" + task.name + "'");
				task.func(task);
			}
		}
		//console.log(counter);
		counter++;
		timeOutId = setTimeout(SeedDMSTask.run, timeout);
	}
}( window.SeedDMSTask = window.SeedDMSTask || {}, jQuery )); /* }}} */
(function( SeedDMSAjax, $, undefined ) { /* {{{ */
	var tasks = Array(
		{name: 'test', view: 'null', action: null, func: 
			test = function() {
				console.log('Run in SeedDMSAjax');
			}
		}
	);
	SeedDMSAjax.add = function(task) {
		tasks.push(task);
	}
	SeedDMSAjax.run = function(view, action) {
		for(let task of tasks) {
			//console.log('Checking for '+view+':'+action);
			if(task.view == null || (task.view == view && task.action == null) || (task.view == view && task.action == action)) {
				//console.log('Running '+task.name+' after update for '+view+':'+action);
				task.func();
			}
		}
	}
}( window.SeedDMSAjax = window.SeedDMSAjax || {}, jQuery )); /* }}} */
(function( SeedDMSBox, $, undefined ) { /* {{{ */
	/* Open confirm box (which has just one callback) and
	 * redirect to the given url if confirm was pressed
	 */
	SeedDMSBox.redirect = function(url, boxparams) {
		bootbox.dialog(boxparams.message, [{
			"label" : boxparams.confirmLabel,
			"class" : "btn-danger",
			"callback": function() {
				window.location.href = url;
			}
		}, {
			"label" : boxparams.cancelLabel,
			"class" : "btn-cancel",
			"callback": function() {
			}
		}]);
	}
	/* Open confirm box (which has just one callback) and
	 * calls the callback if the confirm button was pressed
	 */
	SeedDMSBox.callback = function(callback, boxparams) {
		bootbox.dialog(boxparams.message, [{
			"label" : boxparams.confirmLabel,
			"class" : "btn-danger",
			"callback": function() {
				callback();
			}
		}, {
			"label" : boxparams.cancelLabel,
			"class" : "btn-cancel",
			"callback": function() {
			}
		}]);
	}
}( window.SeedDMSBox = window.SeedDMSBox || {}, jQuery )); /* }}} */