  Event.observe(window, 'load', initPage, false);

  var binCount;
  var cdir;
  var fA = "";


  function initPage(){
    if($('page-selector')) Event.observe('page-selector', 'change', pageset, false);
  }

  function showAllFiles() {
    if( f_getcookie('showall') == "true" ) {
      f_setcookie('showall',0);
    }
    else {
      f_setcookie('showall','true');
    }
    document.filemanager.submit();
  }

  function countBin() {
    var tt = $('cbin').getElementsByTagName('input');
    binCount = tt.length;
    return binCount;
  }

  function checkCollection() {
    binCount = countBin();
    if(binCount < 1) {
      Element.hide($('collection'));
    }
    else {
      Element.show($('collection'));
      binTools();
    }
  }

  function binTools() {
    if(binCount == 0) {
      Element.hide($('cbin-single'));
      Element.hide($('cbin-multi'));
    }
    else if(binCount == 1) {
      Element.show($('cbin-single'));
      Element.hide($('cbin-multi'));
      Element.update('cbin-single','<h3>Actions</h3><ul><li><a href="'+fA+'" onclick="aCmd(\'rename\');return false;">Rename</a></li><li><a href="'+fA+'" onclick="aCmd(\'edits\');return false;">Edit</a></li><li><a href="'+fA+'" onclick="aCmd(\'copy\');return false;">Copy</a></li><li><a href="'+fA+'" onclick="aCmd(\'move\');return false;">Move</a></li><li><a href="'+fA+'" onclick="aCmd(\'delete\');return false;">Delete</a></li><li><a href="'+fA+'" onclick="aCmd(\'template\');return false;">Template</a></li></ul>');
    }
    else if(binCount > 1) {
      Element.show($('cbin-multi'));
      Element.hide($('cbin-single'));
      Element.update('cbin-multi', '<h3>Actions</h3><ul><li><a href="'+fA+'" onclick="aCmd(\'copy\');return false;">Copy</a></li><li><a href="'+fA+'" onclick="aCmd(\'move\');return false;">Move</a></li><li><a href="'+fA+'" onclick="aCmd(\'delete\');return false;">Delete</a></li><li><a href="'+fA+'" onclick="aCmd(\'template\');return false;">Template</a></li></ul>');
    }
  }

  function addFile(file) {
    var binItems = $A($('cbin').getElementsByTagName('input'));
    var dupe = 0;

    for(var i = 0; i < binItems.length; i++) {
      if(file == binItems[i].value) {
				dupe = 1;
			}
    }
    
		if(dupe) {
			deleteFromList(file);
    }
    else {
      var cb = $('cbin');
      new Insertion.Bottom(cb, '<input onfocus="deleteFromList(\''+file+'\');" class="i-cbin" name="fn-'+file+'" id="i-'+file+'" value="'+file+'"  />');

    }

    checkCollection();
  }
  
  function selectAll(dir) {
		var uFiles = $('filemanager').getElementsBySelector('a.file');
    
    for(var i = 0; i < uFiles.length; i++) {
			if(dir) {
				addFile(dir + '/' + uFiles[i].innerHTML);
			}
			else {
				addFile(uFiles[i].innerHTML);
			}
    }
  }
  
	function isset(variable_name) {
		try	{
			if (typeof(eval(variable_name)) != 'undefined')
			if (eval(variable_name) != null) return true;
		} 
		catch(e) { }
		return false;
	}

  function tEdit(file) {
    clearList();
    addFile(file);
    aCmd('edits');
  }

  function folderUtil(dir) {
    cdir = dir;
    Element.hide($('dir-list'));
    Element.show($('folder-util'));
    if(dir) {
      Element.update('folder-util','<h3><a href="'+fA+'" onclick="folderUtilHide(\''+dir+'\');return false;">Folder Actions</a></h3><ul><li><a href="'+fA+'" onclick="aCmd(\'createfolder\');return false;">Create Folder</a></li><li><a href="'+fA+'" onclick="aCmd(\'renamefolder\');return false;">Rename Folder</a></li><li><a href="'+fA+'" onclick="aCmd(\'deletefolder\');return false;">Delete Folder</a></li></ul>');
    }
    else {
      Element.update('folder-util','<h3><a href="'+fA+'" onclick="folderUtilHide(\'\');return false;">Folder Actions</a></h3><ul><li><a href="'+fA+'" onclick="aCmd(\'createfolder\');return false;">Create Folder</a></li></ul>');
    }
  }

  function folderUtilHide(dir) {
    cdir = dir;
    Element.update('folder-util','<h3><a href="'+fA+'" onclick="folderUtil(\''+dir+'\');return false;">Folders</a></h3>');
    Element.show($('dir-list'));
  }

  function aCmd(command) {
    if(binCount == 0) clearList();
    switch(command) {
      case "createfolder":
      case "renamefolder":
      case "deletefolder":
      case "edits":
      case "rename":
      case "copy":
      case "move":
      case "delete":
      case "template":
        Element.update('transa', '<input type="hidden" name="action" value="'+command+'" />');
        document.filemanager.submit();
        break;
      default:
        pCmd();
        break;
    }
  }

  function pCmd(command) {
    if(command == 'go') {
      Element.update('transp', '<input type="hidden" name="process" value="go" />');
      document.filemanager.submit();
    }
    else {
      Element.update('transa', '<input type="hidden" name="action" value="" />');
      Element.update('transp', '<input type="hidden" name="process" value="cancel" />');
      document.filemanager.submit();
    }
  }

  function pDest(destination) {
    Element.update('transd', '<input type="hidden" name="destination" value="'+destination+'" />');
    Element.update($('dest'), '<h4>&gt; '+destination+'</h4>');
  }

  function toggleECRotate() {
    Element.show('rotate');
    Element.hide('resize');
    Element.hide('watermark');
    Element.hide('optimize');
  }

  function toggleECWatermark() {
    Element.show('watermark');
    Element.hide('rotate');
    Element.hide('resize');
    Element.hide('optimize');
  }

  function toggleECResize() {
    Element.show('resize');
    Element.hide('rotate');
    Element.hide('watermark');
    Element.hide('optimize');
  }

  function toggleECOptimize() {
    Element.show('optimize');
    Element.hide('rotate');
    Element.hide('resize');
    Element.hide('watermark');
  }

  function deleteFromList(file) {
    var di = $('i-'+file);
    Element.remove(di);
    binCount = binCount - 1;
    checkCollection();
    binTools();
  }

  function clearList() {
    var binItems = $A($('cbin').getElementsByTagName('input'));
    for(var i = 0; i < binItems.length; i++) {
      Element.remove(binItems[i]);
    }

    checkCollection();
  }

  function pageset(number) {
    if(number) {
      Element.update('info','<span class="status">Loading page</span>');
      f_setcookie('page',number);
    }
    document.filemanager.submit();
  }

  function dirset(directory) {
    if(directory) {
      Element.update('info','<span class="status">Loading directory</span>');
      f_setcookie('dir',directory);
      pageset(1);
    }
    else {
      Element.update('info','<span class="status">Loading home directory</span>');
      f_setcookie('dir','');
      pageset(1);
    }

    pCmd();
    checkCollection();
    document.filemanager.submit();
  }

  function sortBy(what) {
    switch(what) {
      case "n":
        if(f_getcookie('sortby') == "name-asc" ) f_setcookie('sortby',"name-desc");
        else f_setcookie('sortby',"name-asc");
        break;
      case "d":
        if(f_getcookie('sortby') == "date-asc" ) f_setcookie('sortby',"date-desc");
        else f_setcookie('sortby',"date-asc");
        break;
      case "s":
        if(f_getcookie('sortby') == "size-asc" ) f_setcookie('sortby',"size-desc");
        else f_setcookie('sortby',"size-asc");
        break;
    }
    document.filemanager.submit();
  }

  function selectMe(elem) {
    elem.select();
  }

  function f_getcookieval(offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1) endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
  }

  function f_getcookie(name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
      var j = i + alen;
      if (document.cookie.substring(i, j) == arg) return f_getcookieval (j);
      i = document.cookie.indexOf(" ", i) + 1;
      if (i == 0) break;
    }
    return null;
  }
  
  function clearEdits() {
		f_setcookie('ewmtext','');
		f_setcookie('ewmface','');
		f_setcookie('ewmfontsize','');
		f_setcookie('ewmcolor','');
		f_setcookie('ewmplace','');
		f_setcookie('ewmfontmargin','');
		f_setcookie('ewmfontopacity','');
		f_setcookie('ewmfontangle','');
		document.filemanager.submit();
  }

  function f_setcookie (name, value, expires) {
    document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString()));
  }

