
/**
 *
 */
MLP.FileSelector = {

	inited : 0,

	callback : function() { },

	fs_type : 0,
	fs_cur : 0,
	fs_group : 0,
	fs_cur_name : "",

	editor_id : null,
	FS : null,
	
	/**
	 *
	 */
	init: function(type, callback, tinyMCE_editor_id) {

		MLP.FileSelector.fs_cur_name = '';
		MLP.FileSelector.callback = callback;

		var s;

		if ( !MLP.FileSelector.inited ) {
			MLP.FileSelector.FS = document.createElement("DIV");
			s = MLP.FileSelector.FS.style;
			s.position = "absolute";
			s.zIndex = "10100";
			MLP.FileSelector.FS.className = "mlp_window";
			var B = document.getElementsByTagName("body").item(0);
			B.insertBefore(MLP.FileSelector.FS, B.firstChild);
			MLP.FileSelector.inited = 1;
		} else {
			s = MLP.FileSelector.FS.style;
		}

		var v = (type > 40) ? 400 : 900;
		s.width = v + "px";

		if ( s.display != "block" ) {
			var wp = getWindowParams(self);
			s.left = (wp.width - v)/2 + "px";
			s.top = (wp.top + 40) + "px";
			if ( MLP.FileSelector.fs_type != type ) {
				MLP.FileSelector.load(type);
			} else {
				MLP.FileSelector.show();
			}
		} else {
			MLP.FileSelector.hide();
		}

		MLP.FileSelector.fs_type = type;
		MLP.FileSelector.editor_id = tinyMCE_editor_id || null;
	},
	
	/**
	 *
	 */
	show: function() {
		overlay_show(MLP.FileSelector.hide);
		MLP.FileSelector.FS.style.display = "block";
	},
	
	/**
	 *
	 */
	hide: function() {

		overlay_hide();

		if (MLP.FileSelector.FS) {
			MLP.FileSelector.FS.style.display = "none";
		}

		MLP.FileSelector.fs_type = 0; 
		MLP.FileSelector.callback = function() { };
	},
	
	/**
	 *
	 */
	load: function(type, group, from) {

		waitDiv_show();

		MLP.FileSelector.fs_group = group;
		new Ajax.Request(
			"/ajax/file_selector/?file_selector="+type + (group ? "&group="+group : "") + (from ? "&from="+from : ""),
			{
				onComplete: MLP.FileSelector.load_complete
			}
		);
	},
	
	/**
	 *
	 */
	load_complete: function(response) {

		MLP.FileSelector.FS.innerHTML = response.responseText;

		waitDiv_hide();
		MLP.FileSelector.show();
	},

	/**
	 *
	 */
	over_item: function(id) {

		var r = $("fs_tr_"+id);

		if ( r.className.indexOf(" LineOver") == -1 ) {
			r.className = r.className + " LineOver";
		}
	},

	/**
	 *
	 */
	out_of_item: function(id) {

		var r = $("fs_tr_"+id);

		if ( r.className.indexOf(" LineOver") != -1 ) {
			r.className = r.className.replace(" LineOver", "");
		}
	},
	
	/**
	 *
	 */
	select_item: function(id) {

		id = id || MLP.FileSelector.fs_cur_name;

		if ( id ) {
			MLP.FileSelector.callback(MLP.FileSelector.fs_type, id);
		}

		MLP.FileSelector.hide();
	},
	
	/**
	 *
	 */
	highlight_item: function(id, name) {

		var r = $("fs_tr_"+id), c;

		if ( MLP.FileSelector.fs_cur && (c = $("fs_tr_"+MLP.FileSelector.fs_cur)) ) {
			c.style.fontWeight = "";
		}
		r.style.fontWeight = "bold";
		MLP.FileSelector.fs_cur = id;
		MLP.FileSelector.fs_cur_name = name;

		$("fs_name").innerHTML = name.length > 24 ? name.substr(0, 23) + "..." : name;
		$("fs_date").innerHTML = r.cells[2].innerHTML;
		$("fs_size").innerHTML = r.cells[1].innerHTML;
		$("fs_format").innerHTML = name.substr( name.lastIndexOf('.') + 1 ).toUpperCase();

		var url;

		if ( MLP.FileSelector.fs_type == 33 ) { // audio
			url = MLP.ControlPanel.url() + '/ajax/get_media_file/audio/';
			mlp_put_html_by_id(url+'?get_media_file=do&userid=0&fileid='+id+'&filetype=1', "fs_view");
			$("fs_view").innerHTML = "Loading player...";
		} else {

			var w = fs_attr(r,"img_w"), h = fs_attr(r,"img_h");

			c = "<img id='img_fs_view' width='"+w+"px' height='"+h+"px' src='"+fs_attr(r, "img")+"' border='0' alt='' />";

			if ( MLP.FileSelector.fs_type == 32 ) { // video
				url = MLP.ControlPanel.url() + '/ajax/get_media_file/video/';
				c = "<a href='javascript:mlp_put_html_by_id(\""+url+"?get_media_file=do&userid=0&fileid="+id+"&filetype=3\",\"fs_view\",\"img_fs_view\")'>"+c+"</a>";
			}

			$("fs_view").innerHTML = c;
		}
	}
};
	
function fs_open(type, callback, tinyMCE_editor_id) { MLP.FileSelector.init(type, callback, tinyMCE_editor_id); }
function fs_hide() { MLP.FileSelector.hide(); }
function fs_show() { MLP.FileSelector.show(); }
function fs_load(type, group, from) { MLP.FileSelector.load(type, group, from); }
function fs_sel(id) { MLP.FileSelector.select_item(id); }
function fs_row_over(id) { MLP.FileSelector.over_item(id); }
function fs_row_out(id) { MLP.FileSelector.out_of_item(id); }

function fs_attr(b, n) {
	return b[n] ? b[n] : b.attributes.getNamedItem(n).value;
}

function fs_row_sel(id, name) { MLP.FileSelector.highlight_item(id, name); }

function fs_change_elements(i, prefix)	{
	if ( i == 1 ) {
		$('select_folder_w').style.display = 'none';
		$('create_folder_w').style.display = 'block';
		$('add_entry_create_folder').value = 1;
	} else {
		$('select_folder_w').style.display = 'block';
		$('create_folder_w').style.display = 'none';
		$('add_entry_create_folder').value = 0;
	}
}
function fs_change_file_source(i, prefix) {
	if ( i == 1 ) {
		$( prefix + 'from_net').value = 0;
		$( prefix + 'load_div').style.display = 'block';
		$( prefix + 'link_div').style.display = 'none';
		$( prefix + 'load_div_title').style.display = 'block';
		$( prefix + 'link_div_title').style.display = 'none';
	} else {
		$( prefix + 'from_net').value = 1;
		$( prefix + 'load_div').style.display = 'none';
		$( prefix + 'link_div').style.display = 'block';
		$( prefix + 'load_div_title').style.display = 'none';
		$( prefix + 'link_div_title').style.display = 'block';
	}
}
