var cgiurl = 'http://www.yolino.com/perl/usb.cgi';

var dirs = new Object();
var files = new Object();
var root = new Array();
var sub = new Array();

var dragids = new Array();
var dropids = new Array();

var opendir = new Image();
opendir.src = '/images/usb/opendir.gif';
var closeddir = new Image();
closeddir.src = '/images/usb/closeddir.gif';

var opencs = new Image();
opencs.src = '/images/usb/csopensub.gif';
var closedcs = new Image();
closedcs.src = '/images/usb/csclosedsub.gif';

var deleteo = new Image();
deleteo.src = '/images/usb/deleteo.gif';
var deleten = new Image();
deleten.src = '/images/usb/deleten.gif';
var moveo = new Image();
moveo.src = '/images/usb/moveo.gif';
var moven = new Image();
moven.src = '/images/usb/moven.gif';
var copyo = new Image();
copyo.src = '/images/usb/copyo.gif';
var copyn = new Image();
copyn.src = '/images/usb/copyn.gif';
var mailo = new Image();
mailo.src = '/images/usb/mailo.gif';
var mailn = new Image();
mailn.src = '/images/usb/mailn.gif';
var newfoldero = new Image();
newfoldero.src = '/images/usb/newfoldero.gif';
var newfoldern = new Image();
newfoldern.src = '/images/usb/newfoldern.gif';

var sdeleteo = new Image();
sdeleteo.src = '/images/usb/remove.gif';
var sdeleten = new Image();
sdeleten.src = '/images/usb/noremove.gif';
var blanco = new Image();
blanco.src = '/images/usb/noremove.gif';

var newtxto = new Image();
newtxto.src = '/images/usb/newtxto.gif';
var newtxtn = new Image();
newtxtn.src = '/images/usb/newtxtn.gif';
var edittxto = new Image();
edittxto.src = '/images/usb/edittxto.gif';
var edittxtn = new Image();
edittxtn.src = '/images/usb/edittxtn.gif';
var downzipo = new Image();
downzipo.src = '/images/usb/downzipo.gif';
var downzipn = new Image();
downzipn.src = '/images/usb/downzipn.gif';

var lastopendir;
var viewmode=1;

function listDirTasks(dir) {
	//alert('listDirTasks');
	dropids.clear();
	dragids.clear();
	if (viewmode==0) {
		writeToDiv('files',listFiles(dir));
	} else {
		writeToDiv('files',iconFiles(dir));
	}
	//SET_DHTML(dragids);
	setUploadDir(dir);
	toggleDirImage('f'+dir);
	moveFile(dir); //dit moet mooier?
	copyFile(dir); //dit moet mooier?
	moveDir(dir); //dit moet mooier?
}

function collapseDirTasks(dir) {
	collapseDir(dir,'toggle');
	toggleCSImage(dir);
}

function listDirs (dir,tree,text) {
	//alert('listDirs');
	tree++;
	var space=' ';
	for (var t=1; t<tree; t++) {
		space+=' <img src="/images/usb/csvert.gif" /> ';
	}
	var down=tree+1;
	var style = tree > 1 ? 'visibility:hidden; height:0px; display: none;' : 'visibility:visible; height:18px; display: block; overflow: hidden;';
	for (var d in dirs[dir]) {
		var l=dirs[dir][d];
		// zo dit is lelijk!
		var plus = '<img src="/images/usb/csnosub.gif" />';
		for (var s in dirs[dir+'/'+l]) {
		 	plus = '<a href="javascript:collapseDirTasks(\''+dir+'/'+l+'\');"><img src="/images/usb/csclosedsub.gif" border="0" name="'+dir+'/'+l+'"></a>';
		 	break;
		}
		//
		text+='<div id="'+dir+'/'+l+'" style="'+style+'" class="dirtr">'+space+plus+'<a href="javascript:listDirTasks(\''+dir+'/'+l+'\');"  onmousedown="no_context()" onmouseup="dpopup(\''+dir+'/'+l+'\');"><img class="drag" src="/images/usb/closeddir.gif" name="f'+dir+'/'+l+'" border="0" /></a> ';
		text+='<a href="javascript:listDirTasks(\''+dir+'/'+l+'\');" onmousedown="no_context()" onmouseup="dpopup(\''+dir+'/'+l+'\');"><span class="span_">'+l+'</span></a> ';
		text+='<a href="javascript:deleteDir(\''+dir+'/'+l+'\');" onmouseover="toggleEditImage(\'q'+dir+'/'+l+'\',\'delete\')" onmouseout="toggleEditImage(\'q'+dir+'/'+l+'\',\'out\')"><span class="span_"><img src="/images/usb/noremove.gif" border="0" name="q'+dir+'/'+l+'" alt="delete folder" title="delete folder" /></span></a></div>';
		if (dirs[dir+'/'+l]) {
			text=listDirs(dir+'/'+l,tree,text);
		}
	}
	if (tree==1) { // extra ruimte onder user/group boom
		text+='<div class="dirtr"> <img src="/images/usb/csvert.gif" /> </div>';
	}
	return text;
}

function collapseDir(dir,task) {
	var x;
	for (var d in dirs[dir]) {
		var l=dirs[dir][d];
		var id=dir+'/'+l;
		if (document.getElementById) {
			x = document.getElementById(id);
		}
		else if (document.all) {
			x = document.all[id];
		}
		if (x.style.visibility=='hidden' && task=='toggle') {
			x.style.visibility = 'visible';
			x.style.display = 'block';
			x.style.overflow = 'hidden';
			x.style.height = '18px'
		}
		else {
			x.style.visibility = 'hidden';
			x.style.display = 'none';
			x.style.height = '0px'
			collapseDir(id,'close');
			toggleCSImage(id);
		}
	}
}

function listFiles (dir) {
	//alert('listFiles');
	var text='<table border="0" cellpadding="1" cellspacing="1" class=\"lsla\">';
	text+='<tr align="left"><td width="75"><i><u>Size</u></i></td><td width="110"><i><u>Date</u></i></td><td><i><u>File</u></i></td></tr>';
	for (var f in files[dir]) {
		text+='<tr align="left" class="filetr"><td>'+files[dir][f]['size']+'</td><td>'+files[dir][f]['date']+'</td><td>';
		text+='<a href="javascript:download(\''+cgiurl+'/'+root[dir]+'/'+dir+'/'+files[dir][f]['filename']+'\')" onmousedown="no_context()" onmouseup="fpopup(\''+dir+'\',\''+files[dir][f]['filename']+'\');">'+files[dir][f]['filename']+'</a> ';
		text+='<a href="javascript:fpopup(\''+dir+'\',\''+files[dir][f]['filename']+'\');" onmousedown="no_context(1)" onmouseup="fpopup(\''+dir+'\',\''+files[dir][f]['filename']+'\');" onmouseover="toggleEditImage(\'o'+files[dir][f]['filename']+'\',\'menu\')" onmouseout="toggleEditImage(\'o'+files[dir][f]['filename']+'\',\'out\')"><img src="/images/usb/nomenu.gif" border="0" alt="file operations menu" title="file operations menu" name="o'+files[dir][f]['filename']+'"/></a>';
		text+='</td></tr>';
		//text+='<a href="javascript:moveFile(\''+dir+'\',\''+files[dir][f]['filename']+'\',\'1\');" onmouseover="toggleEditImage(\'m'+files[dir][f]['filename']+'\',\'move\')" onmouseout="toggleEditImage(\'m'+files[dir][f]['filename']+'\',\'nomove\')"><img src="/images/usb/nomove.gif" border="0" name="m'+files[dir][f]['filename']+'" alt="move file" title="move file" /></a>';
		//text+='<a href="javascript:deleteFile(\''+dir+'\',\''+files[dir][f]['filename']+'\');" onmouseover="toggleEditImage(\'r'+files[dir][f]['filename']+'\',\'delete\')" onmouseout="toggleEditImage(\'r'+files[dir][f]['filename']+'\',\'nodelete\')"><img src="/images/usb/nooremove.gif" border="0" name="r'+files[dir][f]['filename']+'" alt="delete file"  title="delete file" /></a></td></tr>';
	}
	text+='</table>';
	return text;
}

function iconFiles(dir) {
	var coltel=0;
	var imgsrc='';
	var temp=new Array();
	temp=dir.split('/');
	var temp2=temp[0];
	for (var tel=1; tel<(temp.length-1); tel++) {
		temp2=temp2+'/'+temp[tel];
	}
	var text='<table border="0" cellpadding="1" cellspacing="1" class=\"ls\">';
	if (temp[1]) { //# 1 niveau up
		text+='<tr align="center" valign="top"><td width="110" style="width:110px;"><table border="0" cellpadding="1" cellspacing="0"><tr><td height="65" align="center"><a href="javascript:listDirTasks(\''+temp2+'\');toggleCSImage(\''+temp2+'\')" onmousedown="no_context()"><img src="/images/usb/folder.jpg" border="0" /></a></td></tr><tr><td align="center"><a href="javascript:listDirTasks(\''+temp2+'\');toggleCSImage(\''+temp2+'\')" onmousedown="no_context()"><b>..</b></a></td></tr></table></td>';
		coltel=1;
	}
	for (var f in dirs[dir]) {
		if (coltel==0) text+='<tr align="center" valign="top">';
		text+='<td width="110" style="width:110px" onmouseover="ddrag(\''+dir+'/'+dirs[dir][f]+'\')" id="drop_'+dir+'/'+dirs[dir][f]+'"><table border="0" cellpadding="1" cellspacing="0"><tr><td height="65" align="center"><a href="javascript:listDirTasks(\''+dir+'/'+dirs[dir][f]+'\');collapseDirTasks(\''+dir+'/'+dirs[dir][f]+'\')" onmousedown="no_context()" onmouseup="dpopup(\''+dir+'/'+dirs[dir][f]+'\');"><img src="/images/usb/folder.jpg" border="0" style="z-index:3;"/></a></td></tr><tr><td align="center"><a href="javascript:listDirTasks(\''+dir+'/'+dirs[dir][f]+'\');collapseDirTasks(\''+dir+'/'+dirs[dir][f]+'\')" onmousedown="no_context()" onmouseup="dpopup(\''+dir+'/'+dirs[dir][f]+'\');">'+dirs[dir][f]+'</a></td></tr></table></td>';
		coltel++;
		dropids.push('drop_'+dir+'/'+dirs[dir][f]);
		if (coltel==5) { text+='</tr><tr><td colspan="5" height="15"></td></tr>'; coltel=0; }
	}
	for (var f in files[dir]) {
		if (coltel==0) text+='<tr align="center" valign="top">';
		//if (files[dir][f]['filename'].substr((files[dir][f]['filename'].length-3),3)=='jpg') {
			imgsrc='http://yolino.com/perl/usb.cgi?image='+root[dir]+'/'+dir+'/'+files[dir][f]['filename'];
		//} else {
		//	imgsrc='/images/usb/file.jpg';
		//}
		text+='<td width="110" style="width:110px;"><table border="0" cellpadding="1" cellspacing="0"><tr><td height="65" align="center"><a href="javascript:download(\''+cgiurl+'/'+root[dir]+'/'+dir+'/'+files[dir][f]['filename']+'\')" onmousedown="no_context()" onmouseup="fpopup(\''+dir+'\',\''+files[dir][f]['filename']+'\');"><img src="'+imgsrc+'" border="0" id="'+files[dir][f]['filename']+'" width="44" height="48" class="drag" /></a></td></tr><tr><td align="center"><a href="javascript:download(\''+cgiurl+'/'+root[dir]+'/'+dir+'/'+files[dir][f]['filename']+'\')" onmousedown="no_context()" onmouseup="fpopup(\''+dir+'\',\''+files[dir][f]['filename']+'\');">'+files[dir][f]['filename']+'</a></td></tr></table></td>';
		coltel++;
		//dragids.push(files[dir][f]['filename']+TRANSPARENT);
		if (coltel==5) { text+='</tr><tr><td colspan="5" height="15"></td></tr>'; coltel=0; }
	}
	text+='</table>';
	return text;
}

function writeToDiv (id,text) {
	if (document.getElementById) {
		var x = document.getElementById(id);
		x.innerHTML = '';
		x.innerHTML = text;
	}
	else if (document.all) {
		var x = document.all[id];
		x.innerHTML = text;
	}
}

function toggleDirImage(dir) {
	if (document.images) {
		if (lastopendir && document[lastopendir]) {
    			document[lastopendir].src = closeddir.src
		}
		lastopendir=dir;
    		document[dir].src = opendir.src
  	}
}

function toggleCSImage(dir) {
	for (var d in dirs[dir]) {
		var l=dirs[dir][d];
		var id=dir+'/'+l;
		var x=getObject(id);
		if (x.style.visibility=='visible') {
	    		document[dir].src = opencs.src
		}
		else  {
    			document[dir].src = closedcs.src
		}
		break;
	}
}

function getObject (id) {
	if (document.getElementById) {
		return document.getElementById(id);
	}
	else if (document.all) {
		return document.all[id];
	}
	else {
		return;
	}
}

function setUploadDir(dir) {
	var temp=new Array();
	var temp2='';
	temp=dir.split('/');
	for (var tel=1; tel<temp.length; tel++) {
		temp2=temp2+'/'+temp[tel];
	}
	document.uploadform.workingdir.value='/'+sub[temp[0]]+temp2;
	//document.uploadform.workingdir.value='/'+dir;
	document.uploadform.currentdir.value=dir;
	document.uploadform.subrootdir.value=root[dir];
	document.maintop.currentdirindicator.value='/'+sub[temp[0]]+temp2;
}

function deleteDir(dir) {
	kill('deleteDir');
	if (confirm('Removing folder '+dir+', are you sure?')) {
		document.uploadform.removefolder.value=dir;
		document.uploadform.subrootdir.value=root[dir];
		document.uploadform.submit();
	}
}

function addDir(dir) {
	kill('AddDir');
	var newDir;
	if (newDir=prompt('Please enter the name of the new folder','New-Folder')) {
		document.uploadform.currentdir.value=dir;
		document.uploadform.newfolder.value=newDir;
		document.uploadform.subrootdir.value=root[dir];
		document.uploadform.submit();
	}
}

function deleteFile(dir,file) {
	kill('deleteFile');
	if (confirm('Removing file '+file+', are you sure?')) {
		document.uploadform.removefile.value=file;
		document.uploadform.subrootdir.value=root[dir];
		document.uploadform.submit();
	}
}

function moveFile(dir,file,init) {
	kill('moveFile');
	document.uploadform.copysourcefile.value='';
	if (document.uploadform.movesourcefile.value) {
		if (confirm('Move file '+document.uploadform.movesourcefile.value+' to '+dir+'?') ) {
			document.uploadform.destfolder.value=root[dir]+'/'+dir;
			document.uploadform.subrootdir.value=root[dir];
			document.uploadform.submit();
		}
		document.uploadform.movesourcefile.value='';
	}
	else if (init) {
		document.uploadform.movesourcefile.value=root[dir]+'/'+dir+'/'+file;
	}
}

function moveDir(dir,init) {
	kill('moveDir');
	document.uploadform.copysourcefile.value='';
	if (document.uploadform.movesourcefile.value) {
		if (confirm('Move folder '+document.uploadform.movesourcefile.value+' to '+dir+'?') ) {
			document.uploadform.destfolder.value=root[dir]+'/'+dir;
			document.uploadform.subrootdir.value=root[dir];
			document.uploadform.submit();
		}
		document.uploadform.movesourcefile.value='';
	}
	else if (init) {
		document.uploadform.movesourcefile.value=root[dir]+'/'+dir;
	}
}

function copyFile(dir,file,init) {
	kill('copyFile');
	document.uploadform.movesourcefile.value='';
	if (document.uploadform.copysourcefile.value) {
		//if (confirm('Copy file '+document.uploadform.copysourcefile.value+' to '+dir+'?') ) {
			document.uploadform.destfolder.value=root[dir]+'/'+dir;
			document.uploadform.subrootdir.value=root[dir];
			document.uploadform.submit();
		//}
		//document.uploadform.copysourcefile.value='';
	}
	else if (init) {
		document.uploadform.copysourcefile.value=root[dir]+'/'+dir+'/'+file;
	}
}

function renameFile(dir,file) {
	kill('renameFile');
	var newName;
	if (newName=prompt('Please enter the new file name',file)) {
		//if (confirm('Renaming file '+file+' to '+newName+', are you sure?')) {
			document.uploadform.movesourcefile.value=file;
			document.uploadform.renamefile.value=newName;
			document.uploadform.subrootdir.value=root[dir];
			document.uploadform.submit();
		//}
	}
}

function renameDir(dir) {
	kill('renameDir');
	var newName; var newDir='';
	var splitDir = new Array();
	splitDir=dir.split("/");
	for (var tel=0, len=splitDir.length-1; tel<len; tel++) {
		newDir=newDir+splitDir[tel]+'/';
	}
	if (newName=prompt('Please enter the new folder name',splitDir[splitDir.length-1])) {
		//if (confirm('Renaming file ('+root[dir]+'/'+newDir+') '+splitDir[splitDir.length-1]+' to '+newName+', are you sure?')) {
			document.uploadform.movesourcefile.value=splitDir[splitDir.length-1];
			document.uploadform.renamefile.value=newName;
			document.uploadform.subrootdir.value=root[dir];
			document.uploadform.currentdir.value=newDir;
			document.uploadform.submit();
		//}
	}
}


function newFile() {
	document.uploadform.newfile.value='true';
	document.uploadform.submit();
}

function emailFile(dir,file) {
	document.uploadform.emailfile.value=dir+'/'+file;
	document.uploadform.subrootdir.value=root[dir];
	document.uploadform.submit();
}

function favouritFile(dir,file) {
	//alert(root[dir]+'/'+dir+'/'+file);
	document.uploadform.favouritfile.value=dir+'/'+file;
	document.uploadform.subrootdir.value=root[dir];
	document.uploadform.submit();
}

function newTxt(dir) {
	document.uploadform.newtxt.value=dir;
	document.uploadform.subrootdir.value=root[dir];
	document.uploadform.currentdir.value=dir;
	document.uploadform.submit();
}

function editTxt(dir,file) {
	document.uploadform.edittxt.value=dir+'/'+file;
	document.uploadform.subrootdir.value=root[dir];
	document.uploadform.submit();
}

function downloadZip(dir) {
	document.uploadform.downzip.value=dir;
	document.uploadform.subrootdir.value=root[dir];
	document.uploadform.currentdir.value=dir;
	document.uploadform.submit();
}

function toggleEditImage(id,action) {
	if (action == 'delete') {
		document[id].src = deleteo.src;
	}
	else if (action == 'move') {
		document[id].src = moveo.src;
	} 
	else if (action == 'copy') {
		document[id].src = copyo.src;
	} 
	else if (action == 'newfolder') {
		document[id].src = newfoldero.src;
	} 
	else if (action == 'mail') {
		document[id].src = mailo.src;
	} 
	else if (action == 'newtxt') {
		document[id].src = newtxto.src;
	} 
	else if (action == 'edittxt') {
		document[id].src = edittxto.src;
	} 
	else if (action == 'downzip') {
		document[id].src = downzipo.src;
	} 
	else if (action == 'nodelete') {
		document[id].src = deleten.src;
	} 
	else if (action == 'nomove') {
		document[id].src = moven.src;
	} 
	else if (action == 'nocopy') {
		document[id].src = copyn.src;
	} 
	else if (action == 'nonewfolder') {
		document[id].src = newfoldern.src;
	} 
	else if (action == 'nomail') {
		document[id].src = mailn.src;
	} 
	else if (action == 'nonewtxt') {
		document[id].src = newtxtn.src;
	} 
	else if (action == 'noedittxt') {
		document[id].src = edittxtn.src;
	} 
	else if (action == 'nodownzip') {
		document[id].src = downzipn.src;
	} 
	else {
		document[id].src = blanco.src;
	}
}

function download(url) {
	//mywindow=window.open(url,"download","location=0,status=0,scrollbars=0,width=100,height=100");
	//mywindow.moveTo(20,20);
	//setTimeout("mywindow.close()",3000);
	//alert(dropped+' '+dragging);
	if (dropped==1 && dragging==0) {
		kill('download');
		location.href=url;
	}
}

function switch_view() {
	viewmode=1-viewmode;
	listDirTasks(document.uploadform.currentdir.value);
}

//Pop up information box II (Mike McGrath (mike_mcgrath@lineone.net,  http://website.lineone.net/~mike_mcgrath))
//Permission granted to Dynamicdrive.com to include script in archive
//For this and 100's more DHTML scripts, visit http://dynamicdrive.com

Xoffset=1;    // modify these values to ...
Yoffset=1;    // change the popup position.
posx=0;
posy=0;
posb=0;
pose=0;

var old,skn,iex=(document.all),yyy=-1000;

var ns4=document.layers
var ns6=document.getElementById&&!document.all
var ie4=document.all

if (ns4)
  skn=document.dek;
else if (ns6)
  skn=document.getElementById("dek").style;
else if (ie4)
  skn=document.all.dek.style
if(ns4) {
  document.captureEvents(Event.MOUSEMOVE);
  document.captureEvents(Event.MOUSEDOWN);
}
else{
  skn.visibility="visible";
  skn.display="none";
}
document.onmousemove=get_mouse;
//document.onmousedown=get_button;
document.oncontextmenu = new Function ("if (pose==1) return false; return true");

function fpopup(dir,file){
   //alert('fpopup');
   if (posb==1) {
	var splitFile = new Array();
	splitFile=file.split(".");
	//alert('.'+splitFile[splitFile.length-1]);
  	var content='<TABLE WIDTH="156" BORDER=1 CELLSPACING=0 cellpadding=2 BORDERCOLOR=#707070><tr><td>';
      	    content+='<TABLE BORDER=0 BORDERCOLOR=black CELLPADDING=3 CELLSPACING=0 onmouseout="javascript:highlightTableRowVersionA(0);" id="myTable">';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/copy.gif" border="0" alt="copy file" title="copy file" /></td><TD ALIGN=left><a href="javascript:copyFile(\''+dir+'\',\''+file+'\',\'1\');">Copy file</a></TD></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/move.gif" border="0" alt="move file" title="move file" /></td><TD ALIGN=left><a href="javascript:moveFile(\''+dir+'\',\''+file+'\',\'1\');">Move file</a></TD></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/delete.gif" border="0" alt="delete file"  title="delete file" /></td><td align=left><a href="javascript:deleteFile(\''+dir+'\',\''+file+'\');">Delete file</a></td></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td height=\"20\"><img src="/images/usb/rename.gif" border="0" alt="rename file" title="rename file" /></td><TD ALIGN=left><a href="javascript:renameFile(\''+dir+'\',\''+file+'\');">Rename file</a></TD></tr>';
	    	content+='<tr><td colspan="2" height="1" bgcolor="#a0a0a0" style="height:1px" class="spacer"></td></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td></td><TD ALIGN=left><a href="javascript:favouritFile(\''+dir+'\',\''+file+'\');">Add to favourites</a></TD></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/mail.gif" border="0" alt="email file" title="email file" /></td><TD ALIGN=left><a href="javascript:emailFile(\''+dir+'\',\''+file+'\');">Email this file</a></TD></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/zip.gif" border="0" alt="zip all files" title="zip all files" /></td><TD ALIGN=left><a href="javascript:downloadZip(\''+dir+'\');">Zip all files</a></TD></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/newtxto.gif" border="0" alt="create a text file" title="create a text file" /></td><TD ALIGN=left><a href="javascript:newTxt(\''+dir+'\');">Create a new text file</a></TD></tr>';
	    if (splitFile[splitFile.length-1] == 'txt') {
      	    	content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/view.gif" border="0" alt="edit text file" title="edit text file" /></td><TD ALIGN=left><a href="javascript:editTxt(\''+dir+'\',\''+file+'\');">Edit text file</a></TD></tr>';
	    }
	    	content+='<tr><td colspan="2" width="150" bgcolor="#a0a0a0" style="height:1px" class="spacer"></td></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');" inclick="copyFile(\''+dir+'\',\'*\',\'1\');"><td><img src="/images/usb/copy.gif" border="0" alt="copy all files" title="copy all files" /></td><TD ALIGN=left><a href="javascript:copyFile(\''+dir+'\',\'*\',\'1\');">Copy all files</a></TD></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/move.gif" border="0" alt="move all files" title="move all files" /></td><TD ALIGN=left><a href="javascript:moveFile(\''+dir+'\',\'*\',\'1\');">Move all files</a></TD></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/delete.gif" border="0" alt="delete all files"  title="delete all files" /></td><td align=left><a href="javascript:deleteFile(\''+dir+'\',\'*\');">Delete all files</a></td></tr>';
	    	content+='<tr><td colspan="2" height="1" bgcolor="#a0a0a0" style="height:1px" class="spacer"></td></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');" onclick="kill()"><td width="10" height=\"20\"></td><td><a href="javascript:kill()">Cancel</a></td></TABLE></td></tr></table>';
   	//alert('x: '+posx+', y: '+posy);
  	if(ns4){skn.document.write(content);skn.document.close();skn.visibility="visible"}
  	if(ns6){document.getElementById("dek").innerHTML=content;skn.display=''}
  	if(ie4){document.all("dek").innerHTML=content;skn.display=''}
  	skn.left=posx+'px';
  	skn.top=posy+'px';
  	posb=0;
    }
}

function dpopup(dir,limit){
   if (posb==1) {
  	var content='<TABLE WIDTH="156" BORDER=1 CELLSPACING=0 cellpadding=2 BORDERCOLOR=#707070><tr><td>';
      	    content+='<TABLE BORDER=0 BORDERCOLOR=black CELLPADDING=3 CELLSPACING=0 onmouseout="javascript:highlightTableRowVersionA(0);" id="myTable">';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/newfolder.gif" border="0" alt="new folder"  title="create new folder" /></td><td align=left><a href="javascript:addDir(\''+dir+'\');">New folder</a></td></tr>';
	if (!limit) {
	    	content+='<tr><td colspan="2" height="1" bgcolor="#a0a0a0" class="spacer"></td></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/move.gif" border="0" alt="move folder"  title="move folder" /></td><td align=left><a href="javascript:moveDir(\''+dir+'\',\'1\');">Move folder</a></td></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td height=\"20\"><img src="/images/usb/rename.gif" border="0" alt="rename folder"  title="rename folder" /></td><td align=left><a href="javascript:renameDir(\''+dir+'\');">Rename folder</a></td></tr>';
	 }
	     content+='<tr><td colspan="2" height="1" bgcolor="#a0a0a0" class="spacer"></td></tr>';
      	 content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/newtxto.gif" border="0" alt="create a text file" title="create a text file" /></td><TD ALIGN=left><a href="javascript:newTxt(\''+dir+'\');">Create a new text file</a></TD></tr>';
	if (!limit) {
	    	content+='<tr><td colspan="2" height="1" bgcolor="#a0a0a0" class="spacer"></td></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/delete.gif" border="0" alt="delete folder" title="delete folder" /></td><td align=left><a href="javascript:deleteDir(\''+dir+'\');">Delete folder</a></td></tr>';
	}
		content+='<tr><td colspan="2" width="150" height="1" bgcolor="#a0a0a0" class="spacer"></td></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');" onclick="kill();"><td width="10"></td height=\"20\"><td><a href="javascript:kill()">Cancel</a></td></TABLE></td></tr></table>';
  	if(ns4){skn.document.write(content);skn.document.close();skn.visibility="visible"}
  	if(ns6){document.getElementById("dek").innerHTML=content;skn.display=''}
  	if(ie4){document.all("dek").innerHTML=content;skn.display=''}
  	skn.left=posx+'px';
  	skn.top=posy+'px';
   	//alert('x: '+posx+', y: '+posy);
  	posb=0;
    }
}

function droppopup(dir,file) {
	var splitFile = new Array();
	splitFile=file.split(".");
	//alert('.'+splitFile[splitFile.length-1]);
  	var content='<TABLE WIDTH="156" BORDER=1 CELLSPACING=0 cellpadding=2 BORDERCOLOR=#707070><tr><td>';
      	    content+='<TABLE BORDER=0 BORDERCOLOR=black CELLPADDING=3 CELLSPACING=0 onmouseout="javascript:highlightTableRowVersionA(0);" id="myTable">';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/copy.gif" border="0" alt="copy file" title="copy file" /></td><TD ALIGN=left><a href="javascript:copyFile(\''+dir+'\',\''+file+'\');">Copy file</a></TD></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');"><td><img src="/images/usb/move.gif" border="0" alt="move file" title="move file" /></td><TD ALIGN=left><a href="javascript:moveFile(\''+dir+'\',\''+file+'\');">Move file</a></TD></tr>';
		content+='<tr><td colspan="2" width="150" height="1" bgcolor="#a0a0a0" class="spacer"></td></tr>';
      	    content+='<tr onmouseover="javascript:highlightTableRowVersionA(this, \'#b0b0ff\');" onclick="resetDragged(\''+file+'\');"><td width="10"></td height=\"20\"><td><a href="javascript:resetDragged(\''+file+'\');">Cancel</a></td></TABLE></td></tr></table>';
  	if(ns4){skn.document.write(content);skn.document.close();skn.visibility="visible"}
  	if(ns6){document.getElementById("dek").innerHTML=content;skn.display=''}
  	if(ie4){document.all("dek").innerHTML=content;skn.display=''}
  	skn.left=posx+'px';
  	skn.top=posy+'px';
}

function ddrag(dir) { 
	if (dragging==1 && dropped==1) {
		//var dirname=name.substr(5,name.length-5);
		var cdir=document.uploadform.currentdir.value;
		//document.uploadform.copysourcefile.value=root[dir]+'/'+dir+'/'+draggedid;
		document.uploadform.copysourcefile.value=root[cdir]+'/'+cdir+'/'+draggedid;
		//alert('bingo: '+draggedid+' dropped on '+dir+'. ('+document.uploadform.copysourcefile.value+')');
		dropped=0;
		dragging=0;
		droppopup(dir,draggedid);
	}
}

function no_context(pos) {
	if (pos) {
		posb=1;
	}
	pose=1;
	//OnMouseDown;
}

// get_mouse is partially been reimplemented by drag-n-drop.

function get_mouse(e){
   //var x=(ns4||ns6) ? e.pageX : event.x;//+document.body.scrollLeft;
   //posx=(x+Xoffset);
   ////skn.left=(x+Xoffset)+'px';
   //var y=(ns4||ns6) ? e.pageY : event.y;//+document.documentElement.scrollTop;
   //posy=(y+Yoffset);
   ////skn.top=(y+yyy)+'px';
   ////alert('x: '+x+', y: '+y);
	var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body
	var dsocleft=document.all? iebody.scrollLeft : pageXOffset
	var dsoctop=document.all? iebody.scrollTop : pageYOffset
	if (e == null) 
		var e = window.event; 
	posx=e.clientX+dsocleft;
	posy=e.clientY+dsoctop;
}

// volgende functies zijn geimplementeerd in drag-n-drop.js
/*
function get_button(e) {
	var rightclick;
	if (!e) var e = window.event;
	if (e.which) rightclick = (e.which == 3);
	else if (e.button) rightclick = (e.button == 2);
	//if (rightclick) alert('Rightclick: ' + rightclick); // true or false
	if (rightclick) { 
		posb=1; 
		return false; 
	}
	else { // voor drag en drop
		OnMouseDown(e);
	}
	//posb=0;
	pose=0;
  	return true;
}

*/

function kill(src){
   yyy=-1000;
   if(ns4){skn.visibility="hidden";}
   else if (ns6||ie4)
   skn.display="none"
   //document.uploadform.copysourcefile.value='';
   //alert('killed by '+src);
}

//

function checkDropDirsPos(arr,src,e) {
	var tel = arr.length;
	var winW=0, winH=0;
	if (parseInt(navigator.appVersion)>3) {
		if (navigator.appName.indexOf("Microsoft")!=-1) {
  			winW = document.body.offsetWidth;
  			winH = document.body.offsetHeight;
 		}
 		else {
 			if (navigator.appName=="Netscape") {
  				winW = window.innerWidth;
  				winH = window.innerHeight;
			}
 		}
	}

	if (winW!=0 && winH!=0) {
		if (e == null) e = window.event;
		var content=960; //hc == de helft van content-div
		var residu=(winW-content)/2;
		var found=0;
		while(tel) {
			var name=arr[--tel];
			var obj=document.getElementById(name);
			//alert (name+': '+(obj.offsetLeft+190+residu)+' | '+src+': '+e.clientX);
			if (e.clientX > obj.offsetLeft + 190 + residu) {
				 if (e.clientX < obj.offsetLeft + obj.offsetWidth + 150 + residu) {
					//alert('bijna bingo: '+src.name+' dropped on '+name);
					//alert (name+', '+src+': '+(obj.offsetTop+440)+', '+e.clientY);
					if (e.clientY > obj.offsetTop + 430) {
						if (e.clientY < obj.offsetTop + obj.offsetHeight + 430) {
							var dirname=name.substr(5,name.length-5);
							var dir=document.uploadform.currentdir.value;
							document.uploadform.copysourcefile.value=root[dir]+'/'+dir+'/'+src;
							//alert('bingo: '+src+' dropped on '+dirname+'. ('+document.uploadform.copysourcefile.value+')');
							found=1;
							droppopup(dirname,src);
						}
					}
				}
			}
		}
		if (!found) {
			resetDragged (src);
		} 
	}
}

Array.prototype.clear=function(){
	this.length=0;
}

function resetDragged (obj) {
	//_offsetX = ExtractNumber(target.style.left);
	//alert(obj);
	kill('resetDragged');
	var target = document.getElementById(obj);
	//target.style.left=_offsetX;
	//target.style.top=_offsetY;
	//var xx=target.offsetLeft;
	//var yy=target.offsetTop;
	var xx=posx;
	var yy=posy;
	//alert(xx+' - '+yy+' vs. '+_offsetX+' - '+_offsetY);
	if (xx < _offsetX) {
		while(xx < _offsetX) {
			xx+=5;
			target.style.left=xx;
			if (yy < _offsetY) {
				target.style.top=yy;
				yy+=5;
			}
			else {
				target.style.top=yy;
				yy-=5;
			}
			wait(20);
		}
	}
	else {
		while(xx > _offsetX) {
			xx-=5;
			target.style.left=xx;
			if (yy < _offsetY) {
				target.style.top=yy;
				yy+=5;
			}
			else {
				target.style.top=yy;
				yy-=5;
			}
			wait(20);
		}
	}
	target.style.left=_offsetX;
	target.style.top=_offsetY;
	target.style.zIndex=_oldZIndex
}

/*
function wait(msecs)
{
	var start = new Date().getTime();
	var cur = start
	while(cur - start < msecs)
	{
		cur = new Date().getTime();
	}
} 
*/

function wait(milliseconds) {
	setTimeout(function(){
		// do nothing
	},milliseconds);
}

window.onload=function(){
	document.uploadform.copysourcefile.value='';
}


