<%@ LANGUAGE = VBScript %>
<% Option Explicit %>
<!-- #include file="../directives.inc" -->

<!--#include file="jsbrowser.str"-->

<% 
Const FIXEDDISK = 2
%>

<HTML>
<HEAD>
	<TITLE></TITLE>
	
	<SCRIPT LANGUAGE="JavaScript">
	
	var DRIVE= 0;
	var FOLDER = 1;
	var FILE = 2;
	var REDRAW = true;
	
	</SCRIPT>
</HEAD>

<BODY BGCOLOR="#CCCCCC" LINK="#000000" VLINK="#000000" ALINK="#000000" TOPMARGIN = 5 LEFTMARGIN = 5 onLoad="loadList();">
<FORM NAME="userform" onSubmit="return false;">

<TABLE>
<TR>
	<TD WIDTH = 100%>
		<FONT FACE="Helv" SIZE = 1>
			<%= L_SELDIR_TEXT %>
		</FONT>
	</TD>
</TR>
</TABLE>

</FORM>

<SCRIPT LANGUAGE="JavaScript">

	
	function loadList()
		{
		parent.list.location.href = "JSBrwLs.asp";		
		}
		
	function redrawList()
		{
		parent.list.location.href = "JSBrwLs.asp";		
		}
		
	function expandItem(item,paint)
		{			
			var theList = cachedList;
			var theitem = theList[item];
			theitem.open = true;
			listFunc.selIndex=item;			
			if (!theitem.cached)
			{
				var thepath = escape(theitem.fspath);
				thepath = thepath + "&newid=" + theList.length + "&item=" + item;
				parent.hlist.location.href = "jsbrwset.asp?fspath=" + thepath;
				theitem.cached = true;							
			}
			// Changed from if to else if --
			// Let jsbrwset.asp refresh the list.
			else if (paint)
			{
				listFunc.loadList();
			}						
		}		
		
	function expandPath(thisPath)
		{
			for (var i=0;i < cachedList.length; i++)
			{
				if (cachedList[i].fspath == thisPath)
				{
					expandItem(i,!REDRAW);
					return;
				}
			}
		}
		
		
	function sortOrder(a,b){

		x=a.id - b.id

		return x
	}
	
	function sortList(){
		cachedList.sort(sortOrder);
	}
			
	function markTerms(){
	
		//marks cached list items as being a terminater (ie, having no siblings)
		//this forces an "end" gif in the tree view...
		
		var i
		var listLength=cachedList.length; 
		for (i=0; i < listLength; i++) {
			cachedList[i].lastChild=isLast(i);
		}
	}
	
	function isLast(item)
	{
		var i;
		last=false;
		var listLength=cachedList.length; 		
		if (item+1==listLength)
		{
			last=true;
		}
		else
		{
			if (cachedList[item].parentid==null)
			{
				last=true;
				for (i=item+1; i < listLength; i++)
				{
					if (cachedList[i].parentid==null)
					{
						last=false;
						break;
					}
				}
			}
			else
			{
				last=true;
				var y=item+1;
				while(cachedList[y].parentid >=cachedList[item].parentid)
				{
					if(cachedList[y].parentid==cachedList[item].parentid)
					{
						if(!cachedList[y].deleted)
						{
							last=false;
							break;
						}
					}
	
					y=y+1;
	
					if ((y)==listLength)
					{
						break;
					}
				}
			}
		}
		return last;
	}	

	function setPath()
		{		
		if (top.opener.JSBrowser == null)
			{
				top.close();
			}
			else
			{
				top.opener.JSBrowser.currentPath = cachedList[listFunc.selIndex].fspath;		
				top.opener.JSBrowser.BrowserObjSetPath();
				top.location.href = "JSBrwCl.asp";		
			}
		}				

	function listFuncs()
		{
		this.loadList = loadList;
		this.selIndex = 0;
		this.setPath = setPath;
		this.expandItem = expandItem;
		this.expandPath = expandPath;
		}

	function listObj(id,fspath,fname,parentid)
		{
			this.id = id;
			
			this.selected = false;
			this.open = false;
			this.cached = false;
						
			this.fspath = fspath;
			this.fname = fname;

			this.lastChild = false;
			if (parentid == null)
			{
				this.level = 1;
				this.icon = "fdisk.gif";
				this.openicon = "fdisk.gif";					
			}
			else
			{
				this.level = cachedList[parentid].level+1;			
				if (parentid == 0)
				{
					this.icon = "fdisk.gif";
					this.openicon = "fdisk.gif";					
				}
				else
				{
					this.icon = "cdir.gif";
					this.openicon = "odir.gif";	
				}
			}
			this.parentid = parentid;
			this.markTerms = markTerms;
			this.sortList = sortList;

		}
	
	cachedList = new Array();	
	listFunc = new listFuncs();

<%

Dim FileSystem, drives, drive, newid

Set FileSystem=CreateObject("Scripting.FileSystemObject")
Set drives = FileSystem.Drives
	%>	
cachedList[0]= new listObj(0,"","<%= L_MYCOMPUTER_TEXT %>",null);
cachedList[0].open = true;
cachedList[0].cached = true;

<%
newid = 1
For Each drive in drives		
' This makes things too slow, but it does only show working drives.
'	if drive.IsReady then
	%>
		cachedList[<%= newid %>]= new listObj(<%= newid %>,"<%= drive.DriveLetter & ":\\" %>","<%= drive.DriveLetter %>",0);
	<%
		newid = newid + 1
'	end if
Next

%>	
cachedList[0].markTerms();	

var pathCntrl = top.opener.JSBrowser.pathCntrl;
var selpath = "";

if (selpath != "")
{
	var lastLength = 0;
	var curLength = 0;
	var x = 0;
	var parsing = true;
	while(parsing)
	{

		lastLength = selpath.indexOf("\\",lastLength+1);

		if (x > 100)
		{
			parsing = false;;
		}
		x++;
		if (lastLength == -1)
		{
			parsing = false;
		}
		curpath = selpath.substr(0, lastLength+1);
		//alert(curpath);
		expandPath(curpath, !REDRAW);		
	}
	expandPath(selpath, REDRAW);		

}
</SCRIPT>

</BODY>
</HTML>