// $Id: fileuploader_scripts.js 3807 2007-08-31 14:27:59Z zeke $

var cscart_fileuploader = {

	dialog_id: '',

	result_id: '',

	viewbox_id: '',

	selectboxes: ['fo_directories', 'fo_files', 'extensions'],

	current_path: '',

	// Switch elements visibility
	switch_elements: function(elms_list, exclude_list, hide)
	{
		for (i=0;i<elms_list.length;i++) {
			elms = document.getElementsByTagName(elms_list[i]);
			if (elms.length>0) {
				for (j=0;j<elms.length;j++) {
					if (exclude_list.indexOf(elms[j].name)==-1) {
						elms[j].style.display = (hide == true) ? 'none' : '';
					}
				}
			}
		}
	},

	chdir: function(dir)
	{
		fn_ajax_http_request(index_script+'?'+target_name+'=file_browser&dir='+dir, '', 'GET', '', this.build_list.bind(this), false);
	},

	build_list: function(data)
	{
		if (!data.current_path)	{
			return false;
		}

		this.current_path = data.current_path;

		var sbox = document.getElementById('fo_directories');
		if (sbox && data.dirs) {
			sbox.options.length = 0;
			for (var i=0;i<data.dirs.length;i++) {
				sbox.options[i] = new Option(data.dirs[i],data.dirs[i]);
			}
		}

		var sf = document.getElementById('fo_files');
		if (sf && data.files) {
			sf.options.length = 0;
			for (i=0;i<data.files.length;i++) {
				sf.options[i] = new Option(data.files[i],data.files[i]);
			}
		}


		var exploded_path = data.current_path.split('/');
		var result = '';
		var tmp = '';

		exploded_path = exploded_path.reverse();
		exploded_path.push('[ROOT]'); // First element - cs-cart root directory
		for (k in exploded_path) {
			if (exploded_path[k] == '') {
				continue;
			}
			if (k != '') {
				tmp = '';
				for (i=0; i<k-1;i++) {
					tmp += '../';
				}
				result = (exploded_path[k] == '[ROOT]' ? '' : '/') + "<a href=\"javascript: cscart_fileuploader.chdir('" + tmp + "')\">" + exploded_path[k] + "</a>" + result;
			}
		}

		document.getElementById('fo_cpath').innerHTML = result;
	},

	set_file: function(name)
	{
		document.getElementById(this.result_id).value = this.current_path + name;
		this.close();
	},

	show_image: function(name)
	{
		document.getElementById('fo_img').src = cscart_host_dir + this.current_path +'/'+ name;
	},


	init: function(dialog_id, result_id)
	{
		this.chdir("");

		this.dialog_id = dialog_id;
		this.result_id = result_id;
		this.viewbox_id = 'view_' + dialog_id;

		if (browser_info.browser == 'Internet Explorer'){
			this.switch_elements('SELECT', this.selectboxes, true);
		}

		var dlg = document.getElementById(this.dialog_id);
		var view_box = document.getElementById(this.viewbox_id);

		var wnd_sizes = fn_get_window_sizes();
		dlg.style.left = 0;
		dlg.style.top = 0;
		dlg.style.width = wnd_sizes['width'];
		dlg.style.height = wnd_sizes['height'];

		view_box.style.left = wnd_sizes['offset_x'];
		view_box.style.top = wnd_sizes['offset_y'];
		view_box.style.width = wnd_sizes['view_width'];
		view_box.style.height = wnd_sizes['view_height'];

		fn_show_tag(this.dialog_id, false);
	},

	close: function()
	{
		document.getElementById(this.dialog_id).style.display = 'none';
		if (browser_info.browser == 'Internet Explorer'){
			this.switch_elements('SELECT', this.selectboxes, false);
		}
	},

	show_sibling: function(elm)
	{
		document.getElementById('box_'+elm).style.display='';

		if (elm.indexOf('local')!=-1) {
			if (document.getElementById('box_'+elm.str_replace('local','server'))) {
				document.getElementById('box_'+elm.str_replace('local','server')).style.display='none';
			}
			document.getElementById('box_'+elm.str_replace('local','url')).style.display='none';
		}

		if (elm.indexOf('server')!=-1) {
			document.getElementById('box_'+elm.str_replace('server','local')).style.display='none';
			document.getElementById('box_'+elm.str_replace('server','url')).style.display='none';
		}

		if (elm.indexOf('url')!=-1) {
			document.getElementById('box_'+elm.str_replace('url','local')).style.display='none';
			if (document.getElementById('box_'+elm.str_replace('url','server'))) {
				document.getElementById('box_'+elm.str_replace('url','server')).style.display='none';
			}
		}
	}
}
