// JavaScript Document

function showModal(){
	document.getElementById('modal').style.display = 'block';
	new Ajax.Updater('ajaxcontent','/ajaxcabinet/index');

}

var theLast = null;
var copyMode = false;
var copyOriginal = null;
var copyTo = '';



function clearSearch(theBox){
	theBox.style.color = '#292929';	
	if (theBox.value == 'Search'){
		theBox.value = '';	
	}
}

function addSearch(theBox){
	if (theBox.value == ''){
		theBox.value = 'Search';	
		theBox.style.color = '#aaaaaa';
	}
}


function doName(filebox,textbox){
	var filepath = filebox.value;
	
	var textfield = document.getElementById(textbox);
	
	textfield.value = filepath.substring(filepath.lastIndexOf('\\') + 1,filepath.lastIndexOf('.'));
	
}

function selectFolder(theSpan,folderID){
	
	if (copyMode){
		showCopyFile(folderID);
		return;
	}
	
	if (locked){
		return;	
	}
	
	if (theSpan.parentNode.className == 'selected'){
		theSpan.parentNode.className = 'cabitem';
		theLast = null;
		if(document.getElementById('toolbarfolders') != null)
		{
			document.getElementById('toolbarfolders').innerHTML = '&nbsp;';
		}
		if(document.getElementById('toolbarfiles') != null)
		{
			document.getElementById('toolbarfiles').innerHTML = '&nbsp;';		
		}
		document.getElementById('filepane').innerHTML = '&nbsp;';
		theLastFile = null;
	} else {
		if(document.getElementById('toolbarfiles') != null)
		{
			document.getElementById('toolbarfiles').innerHTML = '&nbsp;';
		}
		theSpan.parentNode.className = 'selected';
		if (theLast != null){
			theLast.parentNode.className = 'cabitem';
		}
		
		theLast = theSpan;
		$('filepane').innerHTML = '<span style="padding:10px"><img src="/im/buttons/spinner.gif" style="position:relative; top:3px" /> Loading...</span>';
		new Ajax.Updater('filepane','/ajaxcabinet/folder/' + folderID);
		new Ajax.Updater('toolbarfolders','/ajaxcabinet/folderactions/' + folderID);
		theLastFile = null;
	}
	
	
}

function selectFolderOverride(theSpan,folderID,handler){
	
	if (copyMode){
		return;
	}
	
	if (locked){
		return;	
	}
	
	if (theSpan.parentNode.className == 'selected'){
		theSpan.parentNode.className = 'cabitem';
		theLast = null;
		document.getElementById('toolbarfolders').innerHTML = '&nbsp;';
		document.getElementById('toolbarfiles').innerHTML = '&nbsp;';		
		document.getElementById('filepane').innerHTML = '&nbsp;';
		theLastFile = null;
	} else {
		document.getElementById('toolbarfiles').innerHTML = '&nbsp;';
		theSpan.parentNode.className = 'selected';
		if (theLast != null){
			theLast.parentNode.className = 'cabitem';
		}
		
		theLast = theSpan;
		$('filepane').innerHTML = '<span style="padding:10px"><img src="/im/buttons/spinner.gif" style="position:relative; top:3px" /> Loading...</span>';
		new Ajax.Updater('filepane', handler);
		new Ajax.Updater('toolbarfolders','/ajaxcabinet/folderactions/' + folderID);
		theLastFile = null;
	}
	
	
}


done = true;
function doMenu(){
	
	
	if ($('right-menu').style.display == 'none'){
		//new Effect.SlideDown('right-menu',{duration:0.35});
		$('right-menu').style.display = 'block';
	}
}


function closeModal(){
	document.getElementById('modal').style.display = 'none';
	window.location.reload();
}

function closeModalNoRefresh(){
	document.getElementById('modal').style.display = 'none';
}

function openFolder(theSpan){
	
	var theParent = theSpan.parentNode.parentNode;
	var theDiv = null;
	var theTree = null;
	var theFolder = null;
	var nowOpen = false;
	
	theTree = theSpan.childNodes[0];
	theFolder = theSpan.childNodes[1];
	if (theFolder.src.match("folder") == null){
		theFolder = null;	
	}
		
	
	for (var i = 0; i < theParent.childNodes.length; i++){
		var current = theParent.childNodes[i];
		if (current.nodeName == 'DIV' && current.className == 'folder'){
			theDiv = current;
		}
	}
	
	
	if (theDiv != null){
		if (theDiv.style.display == 'none'){
			theDiv.style.display = 'block';
			nowOpen = true;
			
		} else {
			theDiv.style.display = 'none';
		}
	}
	
	if (theTree != null){
		if (nowOpen){
			theTree.src = '/im/buttons/tree_open.gif';
		} else {
			theTree.src = '/im/buttons/tree_closed.gif';
		}
	}
	
	if (theFolder != null){
		if (nowOpen){
			theFolder.src = '/im/buttons/folder_open.gif';
		} else {
			theFolder.src = '/im/buttons/folder_closed.gif';
		}
	}
	
}

var theLastFile = null;

function selectFile(theSpan, fileID){

	if (locked){
		return;	
	}

	var theParent = theSpan.parentNode.parentNode;
	
	if (theParent.className == 'selectedFile'){
		theParent.className = '';
		theLastFile = null;
		
		if(document.getElementById('toolbarfiles') != null)
		{
			document.getElementById('toolbarfiles').innerHTML = '&nbsp;';
		}
	} else {
		theParent.className = 'selectedFile';
		if (theLastFile != null){
			theLastFile.parentNode.parentNode.className = '';
		}
		
		theLastFile = theSpan;
		if(document.getElementById('toolbarfiles') != null)
		{
			new Ajax.Updater('toolbarfiles','/ajaxcabinet/fileactions/' + fileID);
		}
		
		if(document.getElementById('selectedFile') != null)
		{
			$('selectedFile').value = fileID;
		}
	}
	
}

var lastScrolled = 0;

function showDeleteFile(fileID){
	
	if (locked){
		return;	
	}
	
	lastScrolled = $('filepane').scrollTop;
	$('filepane').scrollTop = 0;
	
	lockSelect();
	
	new Effect.BlindDown('fileactiondivholder',{duration:0.5});
	new Ajax.Updater('fileactiondiv','/ajaxcabinet/showdeletefile/' + fileID);
}

function showReviewFile(fileID){
	
	if (locked){
		return;	
	}
	
	lastScrolled = $('filepane').scrollTop;
	$('filepane').scrollTop = 0;
	
	lockSelect();
	
	new Effect.BlindDown('fileactiondivholder',{duration:0.5});
	new Ajax.Updater('fileactiondiv','/ajaxcabinet/showreviewfile/' + fileID);
}

function showCopyFile(fileID){
	
	if (locked && !copyMode){
		return;	
	}
	
	if (! copyMode){
		copyMode = true;
		copyOriginal = fileID;
	} else {
		copyTo = fileID;	
	}
	
	lastScrolled = $('filepane').scrollTop;
	$('filepane').scrollTop = 0;
	
	lockSelect();
	
	var params = 'from=' + copyOriginal + '&to=' + copyTo;
	
	if ($('fileactiondivholder').style.display == 'none'){
		new Effect.BlindDown('fileactiondivholder',{duration:0.5});
	}
	new Ajax.Updater('fileactiondiv','/ajaxcabinet/showcopy', {evalScripts:true, postBody:params, method:'post'});
}


function saveReview(fileID){
	var params = 'id=' + fileID	+ '&months=' + $F('months') + '&recurring=' + $F('recurring') + '&duedate=' + $F('duedate');
	
	
	new Ajax.Updater('filepane','/ajaxcabinet/savereview', {evalScripts:true, postBody:params, method:'post'});
	closeFileActions();
	
	unlockSelect();
	resetSelectFile();	
}

function markReviewed(fileID){
	new Ajax.Updater('filepane','/ajaxcabinet/markreviewed/' + fileID, {evalScripts:true});
	closeFileActions();
	
	unlockSelect();
	resetSelectFile();	
}

function deleteReview(fileID){
	new Ajax.Updater('filepane','/ajaxcabinet/deletereview/' + fileID, {evalScripts:true});
	closeFileActions();
	
	unlockSelect();
	resetSelectFile();	
}

function showNotifiees(fileID){
	thePop = window.open('/ajaxcabinet/listnotifiees/' + fileID,"Notifiees","width=350, height=200, resizable");
	//$('notifieeList').show();
}

function setErrorSaved(){
	theError = $('errormsg'); 
	theError.className = 'statusmsg'; 
	$('errorinner').innerHTML = "Notifiees successfully saved."; 
	theError.show();
	
}

function copyFile(from,to){
	var params = 'from=' + from + '&to=' + to;
	
	new Ajax.Updater('filepane','/ajaxcabinet/copyfile', {evalScripts:true, postBody:params, method:'post'});
	closeFileActions();
	
	unlockSelect();
	resetSelectFile();
	
}


function addFolder(folderID){

	if ($F('FolderName') == ''){
		alert('You must give the folder a name.');
		return;
	}
	
	params = 'FolderName=' + escape($F('FolderName'));
	
	closeFileActions();
	resetSelectFile();
	resetSelectFolder();
	document.getElementById('toolbarfiles').innerHTML = '&nbsp;';	
	document.getElementById('filepane').innerHTML = '&nbsp;';	
	document.getElementById('toolbarfolders').innerHTML = '&nbsp;';	
	new Ajax.Updater('folderpane','/ajaxcabinet/addfolder/' + folderID, {evalScripts:true, postBody:params, method:'post'});

}

function saveFolder(folderID){

	if ($F('FolderName') == ''){
		alert('You must give the folder a name.');
		return;
	}
	
	params = 'FolderName=' + escape($F('FolderName'));
	
	closeFileActions();
	resetSelectFile();
	resetSelectFolder();
	document.getElementById('toolbarfiles').innerHTML = '&nbsp;';	
	document.getElementById('filepane').innerHTML = '&nbsp;';	
	document.getElementById('toolbarfolders').innerHTML = '&nbsp;';	
	new Ajax.Updater('folderpane','/ajaxcabinet/savefolder/' + folderID, {evalScripts:true, postBody:params, method:'post'});

}

function zipFolder(folderID){
	if (folderID < 4){
		alert("You cannot zip a top level folder.");
		return;
	}
	
	if (locked){
		return;	
	}	
	
	resetSelectFolder();
	new Ajax.Updater('folderpane','/ajaxcabinet/zipfolder/' + folderID, {evalScripts:true});
	document.getElementById('toolbarfiles').innerHTML = '&nbsp;';	
	
}

function showDeleteFolder(folderID){
	
	if (locked){
		return;	
	}
	
	lastScrolled = $('filepane').scrollTop;
	$('filepane').scrollTop = 0;
	
	lockSelect();
	
	new Effect.BlindDown('fileactiondivholder',{duration:0.5});
	new Ajax.Updater('fileactiondiv','/ajaxcabinet/showdeletefolder/' + folderID);
	
}

function deleteFolder(folderID){
	closeFileActions();
	resetSelectFile();
	resetSelectFolder();
	new Ajax.Updater('folderpane','/ajaxcabinet/deletefolder/' + folderID, {evalScripts:true});
	document.getElementById('toolbarfiles').innerHTML = '&nbsp;';
	document.getElementById('toolbarfolders').innerHTML = '&nbsp;';	
	document.getElementById('filepane').innerHTML = '&nbsp;';	
	
}

function showAddFolder(folderID){
	
	if (locked){
		return;	
	}
	
	lastScrolled = $('filepane').scrollTop;
	$('filepane').scrollTop = 0;
	
	lockSelect();
	
	new Effect.BlindDown('fileactiondivholder',{duration:0.5});
	new Ajax.Updater('fileactiondiv','/ajaxcabinet/showaddfolder/' + folderID);
}

function showAddFile(folderID){
	
	if (locked){
		return;	
	}
	
	lastScrolled = $('filepane').scrollTop;
	$('filepane').scrollTop = 0;
	
	lockSelect();
	
	new Effect.BlindDown('fileactiondivholder',{duration:0.5});
	new Ajax.Updater('fileactiondiv','/ajaxcabinet/showaddfile/' + folderID);
}

function showEditFolder(folderID){
	
	if (locked){
		return;	
	}
	
	lastScrolled = $('filepane').scrollTop;
	$('filepane').scrollTop = 0;
	
	lockSelect();
	
	new Effect.BlindDown('fileactiondivholder',{duration:0.5});
	new Ajax.Updater('fileactiondiv','/ajaxcabinet/showeditfolder/' + folderID);
}

function showEditFile(fileID){
	if (locked){
		return;	
	}
	
	lastScrolled = $('filepane').scrollTop;
	$('filepane').scrollTop = 0;
	
	lockSelect();
	
	new Effect.BlindDown('fileactiondivholder',{duration:0.5});
	new Ajax.Updater('fileactiondiv','/ajaxcabinet/showeditfile/' + fileID);
}


function closeFileActions(){
	new Effect.BlindUp('fileactiondivholder',{duration:0.5});
	$('filepane').scrollTop = lastScrolled;
	unlockSelect();
	clearCopy();
}

function deleteFile(fileID){
	closeFileActions();
	resetSelectFile();
	new Ajax.Updater('filepane','/ajaxcabinet/deletefile/' + fileID, {evalScripts:true});
	document.getElementById('toolbarfiles').innerHTML = '&nbsp;';	
	
	
}

function doAdminDelete(userID){
	if (confirm('Are you sure you wish to delete this notifiee?')){
		location.href = 'delete/' + userID;
	}
}

function checkFileUpload(){
	var isValid = true;
	var errors = '';
	
	if ($F('Name') == ''){
		isValid = false;
		errors += "You must specify a name for the file.\n";
		
	}
	
	if ($F('file') == '' && !($('UseTemp').checked)){
		isValid = false;
		errors += "You must select a file to add.\n";
	}
	
	if (!isValid){
		alert(errors);
		return false;
	}
	
	$('spinner').show();
	
	return true;
}

function checkTempFile(theCheck){
	if (theCheck.checked){
		$('file').hide();
		if ($F('Name') == ''){
			$('Name').value = $('TempFileName').innerHTML;	
		}
	} else {
		$('file').show();		
	}
}

function clearCopy(){
	copyFrom = null;
	copyTo = '';
	copyMode = false;
}

var locked = false;

function lockSelect(){
	locked = true;
}

function unlockSelect(){
	locked = false;	
}

function resetSelectFile(){
	theLastFile = null;	
}

function resetSelectFolder(){
	theLast = null;	
}