var plainBackgroundColor = '#ffffff';
var selectedBackgroundColor = '#ccccff';
var plainBorder = '1px solid ' + plainBackgroundColor;
var selectedBorder = '1px solid #777777';

var selectedObject = null;
var selectedObjectType = null;

function url_encode(s) {
	return escape(s);
}

function html_form_input(s) {
	s = s.replace('&','&amp;');
	s = s.replace('"','&quot;');
	return s;
}

function escape_apostrophe(s) {
	var myRegex = new RegExp("'","g"); 
	return s.replace(myRegex, "\\\'");
}

function toggle_overlay(layer) {
	var layerElem = document.getElementById(layer);
	
	if (layerElem.style.display == "none") {
		layerElem.style.display = "";
	} else {
		layerElem.style.display = "none";
	}
}

function toggle_uploader(on, off) {
  var onElem = document.getElementById(on);
  var offElem = document.getElementById(off);
  
  offElem.style.display = "none";
  onElem.style.display = "";
}

function delete_file(f) {
	var delFile = document.getElementById('delete_file_form_filename');
	delFile.value = f;
	toggle_overlay('delete_panel');
}

function delete_dir(d) {
	var delDir = document.getElementById('delete_dir_form_dirname');
	delDir.value = d;
	document.getElementById('deletedir_panel_dirdisplay').innerHTML = d;
	toggle_overlay('deletedir_panel');
}

function move_file(f) {
	var moveFile = document.getElementById('move_file_form_filename');
	moveFile.value = f;
	toggle_overlay('move_file_panel');
}

function copy_file(f) {
	var copyFile = document.getElementById('copy_file_form_filename');
	copyFile.value = f;
	toggle_overlay('copy_file_panel');
}

function rename_file(f, fnew) {
	var renameFile = document.getElementById('rename_file_form_filename');
	var renameFileNew = document.getElementById('rename_file_form_new');
	renameFile.value = f;
	renameFileNew.value = fnew;
	toggle_overlay('rename_file_panel');
	renameFileNew.focus();
}

function show_dir_info(ftype, fname_html, current_dir, fname, url)  {
	var fileInfoPanelDiv = document.getElementById('file_info_panel');
	var fileInfoDiv = document.getElementById('file_info');
	var dirActions = document.getElementById('d_' + fname + '_actions');
	selectDiv('d_' + fname, ftype);
	dirActions.style.display = '';
	if (ftype == 'directory') {
		var newHTML = '';
		newHTML = "<div class='info_head'>directory<\/div>";
		newHTML = newHTML + "<div class='info_block'>";
		newHTML = newHTML + fname_html + "<br \/>";
		newHTML = newHTML + "<br \/>";
		newHTML = newHTML + "<a class=\"action\" href=\"javascript:delete_dir('" + html_form_input(escape_apostrophe(current_dir + "/" + fname)) + "')\">Delete directory</a><br \/>";
//		javascript:delete_dir('[% currentdir | escape_apostrophe %]/[% entry.name | escape_apostrophe %]')
		newHTML = newHTML + "<\/div>";
		fileInfoDiv.innerHTML = newHTML;
	}
	fileInfoPanelDiv.style.display = "";
}

function show_file_info(ftype, fname_html, fname, dir, size, date, url)  {
	var fileInfoPanelDiv = document.getElementById('file_info_panel');
	var fileInfoDiv = document.getElementById('file_info');
	selectDiv('i_' + fname, ftype);
	if (ftype == 'file') {
		var newHTML = '';
		newHTML = "<div class='info_head'>file<\/div>";
		newHTML = newHTML + "<div class='info_block'>";
		newHTML = newHTML + fname_html + "<br \/>";
		newHTML = newHTML + "<span class=\"smaller\">" + size + "<\/span><br \/>";
		newHTML = newHTML + "<span class=\"smaller\">" + date + "<\/span><br \/>";
		newHTML = newHTML + "<br \/>";
		newHTML = newHTML + "<a class=\"action\" href=\"" + url + "/" + url_encode(fname) + "?p=files&amp;a=download&amp;f=" + url_encode(dir) + "/" + url_encode(fname) + "\">Download File</a><br \/>";
		newHTML = newHTML + "<a class=\"action\" href=\"javascript:rename_file('" + html_form_input(escape_apostrophe(dir + "/" + fname)) + "', '" + html_form_input(escape_apostrophe(fname)) + "')\">Rename file</a><br \/>";
		newHTML = newHTML + "<a class=\"action\" href=\"javascript:move_file('" + html_form_input(escape_apostrophe(dir + "/" + fname)) + "')\">Move file</a><br \/>";
		newHTML = newHTML + "<a class=\"action\" href=\"javascript:copy_file('" + html_form_input(escape_apostrophe(dir + "/" + fname)) + "')\">Copy file</a><br \/>";
		newHTML = newHTML + "<a class=\"action\" href=\"javascript:delete_file('" + html_form_input(escape_apostrophe(dir + "/" + fname)) + "')\">Delete file</a><br \/>";
		newHTML = newHTML + "<\/div>";
		fileInfoDiv.innerHTML = newHTML;
	}
	else if (ftype == 'directory') {
		fileInfoDiv.innerHTML = "<div class='info_head'>directory<\/div>";
	}
	fileInfoPanelDiv.style.display = "";
}

function show_trash_file_info(ftype, fname_html, fname, dir, size, date, url)  {
	var fileInfoPanelDiv = document.getElementById('file_info_panel');
	var fileInfoDiv = document.getElementById('file_info');
	selectDiv('i_' + fname);
	if (ftype == 'file') {
		var newHTML = '';
		newHTML = "<div class='info_head'>file<\/div>";
		newHTML = newHTML + "<div class='info_block'>";
		newHTML = newHTML + fname_html + "<br \/>";
		newHTML = newHTML + "<span class=\"smaller\">" + size + "<\/span><br \/>";
		newHTML = newHTML + "<span class=\"smaller\">" + date + "<\/span><br \/>";
		newHTML = newHTML + "<br \/>";
		newHTML = newHTML + "<a class=\"action\" href=\"" + url + "/" + url_encode(fname) + "?p=files&amp;a=download&amp;f=" + url_encode(dir) + "/" + url_encode(fname) + "\">Download File</a><br \/>";
		newHTML = newHTML + "<a class=\"action\" href=\"javascript:rename_file('" + html_form_input(escape_apostrophe(dir + "/" + fname)) + "', '" + html_form_input(escape_apostrophe(fname)) + "')\">Rename file</a><br \/>";
		newHTML = newHTML + "<a class=\"action\" href=\"javascript:move_file('" + html_form_input(escape_apostrophe(dir + "/" + fname)) + "')\">Move file</a><br \/>";
		newHTML = newHTML + "<\/div>";
		fileInfoDiv.innerHTML = newHTML;
	}
	else if (ftype == 'directory') {
		var newHTML = '';
		newHTML = "<div class='info_head'>directory<\/div>";
		fileInfoDiv.innerHTML = newHTML;
	}
	fileInfoPanelDiv.style.display = "";
}

function selectDiv(divId, ftype) {
	var entryDiv = document.getElementById(divId);
//	var allDivs = document.getElementsByTagName("div");
//	var thisDiv;
//	var thisDivId;
	
	if (selectedObject != null) {
		if (selectedObjectType == 'file') {
			selectedObject.className = 'file';
		}
		else if (selectedObjectType == 'directory') {
			selectedObject.className = 'dir';
			document.getElementById(selectedObject.id + '_actions').style.display = 'none';
			// alert(document.getElementById(selectedObject.id + '_actions').innerHTML);
		}
	}
	entryDiv.className = 'selected';
	selectedObject = entryDiv;
	selectedObjectType = ftype;
	
	return;
	
	for (var thisDivIdx in allDivs) {
		thisDiv = allDivs[thisDivIdx];
		thisDivId = thisDiv.id;
		if (thisDivId != null) {
			if (thisDivId.substring(0,2) == 'i_') {
				if (thisDivId == divId) {
					thisDiv.className = 'selected';
				}
				else {
					thisDiv.className = 'file';
				}
			}
			else if (thisDivId.substring(0,2) == 'd_') {
				if (thisDivId == divId) {
					thisDiv.className = 'selected';
				}
				else {
					thisDiv.className = 'dir';
				}
			}
		}
	}
}


