home *** CD-ROM | disk | FTP | other *** search
- function FolderExists(fn)
- {
- /*@cc_on @*/
- /*@if (@_jscript_version >= 5)
- try
- {
- var objShell = new ActiveXObject("Shell.Application");
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- return fso.FolderExists(fn);
- }
- catch(e) { }
- /*@end @*/
- return false;
- }
-
- function FileExists(fn)
- {
- /*@cc_on @*/
- /*@if (@_jscript_version >= 5)
- try
- {
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- return fso.FileExists(fn);
- }
- catch(e) { }
- /*@end @*/
- return true;
- }
-
- function TryShellExec(fn)
- {
- /*@cc_on @*/
- /*@if (@_jscript_version >= 5)
- try
- {
- var objShell = new ActiveXObject("Shell.Application");
- objShell.ShellExecute(fn, "", "", "open", 1);
- return true;
- }
- catch(e) { }
- /*@end @*/
- return false;
- }
-
- function parser(fn)
- {
- var X, Y, sl, a, ra, re;
- ra = /:/;
- a = location.href.search(ra);
- if (a == 2)
- X = 14;
- else
- X = 7;
- sl = "\\";
- Y = location.href.lastIndexOf(sl) + 1;
- /*@cc_on @*/
- /*@if (@_jscript_version >= 5)
- try
- {
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- }
- catch(e)
- {
- if (fn.substring(0, 3) == "../")
- {
- fn = fn.substring(3);
- }
- }
- @else @*/
- if (fn.substring(0, 3) == "../")
- {
- fn = fn.substring(3);
- }
- /*@end @*/
- lfn = location.href.substring(X, Y) + fn;
- re = /%20/g;
- lfn = lfn.replace(re, " ");
- re = /\//g;
- lfn = lfn.replace(re, "\\");
-
- if (FolderExists(lfn))
- {
- if (!TryShellExec(lfn))
- {
- var objShell = new ActiveXObject("Shell.Application");
- objShell.Open(lfn);
- }
- }
- else if (FileExists(lfn))
- {
- execed = false;
- htmlre = /\.html?$/;
- txtre = /\.txt$/;
- if (!lfn.match(htmlre) && !lfn.match(txtre))
- {
- execed = TryShellExec(lfn);
- }
- if (!execed)
- {
- re = /\\/g;
- lfn = lfn.replace(re, "/");
- re = /\ /g;
- lfn = lfn.replace(re, "%20");
- location.href = 'file:///' + lfn;
- }
- }
- else if (fn.substring(0, 3) == "../")
- {
- parser(fn.substring(3));
- }
- else
- {
- alert(fn + " doesn't exist");
- }
- }