var activeDesktopDir = "C:\\Documents and Settings\\Blake\\Desktop\\My Desktop\\"; //directory that contains this file
var randomWallpaperDir = "D:\\Images\\Wallpapers\\"; //directory to look for random wallpapers in


var notesFile = "notes.txt";
var scheduleFile = "schedule.txt";
var wallpaperFile = "wallpaper.txt";


function init(){
	document.notes.notepad.value = readFile(activeDesktopDir+notesFile);
	document.schedule.notepad.value = readFile(activeDesktopDir+scheduleFile);
	if(readFile(activeDesktopDir+wallpaperFile) == null)
		document.body.background = randomFile(randomWallpaperDir);
	else
		document.body.background = readFile(activeDesktopDir+wallpaperFile);
}


// Execute a program or open a file
function execute(path){
	var folder = path.substr(0, path.lastIndexOf('\\'));
	var objShell = new ActiveXObject("Shell.Application");
	objShell.ShellExecute(path, '', folder, 'open', 1);
}


// Opens Explorer in the specified directory
function explore(directory){ 
	var objShell = new ActiveXObject("Shell.Application"); 
	objShell.ShellExecute('explorer', '/n,/e,' + directory, directory, 'open', 1); 
} 


// Opens a specified file in EditPlus
function editPlus(path){
	var objShell = new ActiveXObject("Shell.Application");
	objShell.ShellExecute('C:\\Program Files\\EditPlus 2\\editplus.exe', path, 'C:\\Program Files\\EditPlus 2\\', 'open', 1);
}


// Return the contents of a specified file
function readFile(path){
	var myActiveXObject = new ActiveXObject("Scripting.FileSystemObject");
	var file = myActiveXObject.OpenTextFile(path, 1);
	try {
		var content = file.ReadAll();
	} catch (error) {
		var content = null;
	}
	file.Close();
	return content;
}


// Write the specifed content to the specified file
function writeFile(path, content){
	var myActiveXObject = new ActiveXObject("Scripting.FileSystemObject");
	var file = myActiveXObject.CreateTextFile(path, true);
	file.Write(content);
	file.Close();
}


// Eject DVD/CD tray 
function openDrive(driveNumber){
	var oWMP = new ActiveXObject("WMPlayer.OCX"); 
	oWMP.cdromCollection.Item(driveNumber).Eject();
}


// Return an array of paths to all the files in a specified directory 
function getFileArray(directory){
	var myActiveXObject = new ActiveXObject("Scripting.FileSystemObject"); 
	var files = new Enumerator(myActiveXObject.GetFolder(directory).Files); 
	var fileArray = new Array ();
	while(!files.atEnd()) { 
		fileArray[fileArray.length] = files.item();
		files.moveNext(); 
	} 
	return fileArray;
}


// Pick a random file from a specified directory
function randomFile(directory){
	var fileArray = getFileArray(directory);
	return fileArray[Math.round(Math.random() * (fileArray.length-1))]; 
}


// Write html for calendar showing current month and day
function writeCalendar(){
	var day_of_week		= new Array('S','M','T','W','T','F','S');
	var month_of_year	= new Array('January','February','March','April','May','June','July','August','September','October','November','December');

	var Calendar = new Date();

	var year	= Calendar.getYear();	// Returns year
	var month	= Calendar.getMonth();  // Returns month (0-11)
	var today	= Calendar.getDate();   // Returns day (1-31)
	var weekday = Calendar.getDay();    // Returns day (1-31)

	var cal;					// Used for printing

	Calendar.setDate(1);			// Start the calendar day at '1'
	Calendar.setMonth(month);		// Start the calendar month at now

	cal = '<h1>' + month_of_year[month]  + ' ' + year + '</h1>';

	for(index = 0; index < 7; index++){
		cal += '<span class="day"';
		if(weekday == index)
			cal += ' style="font-weight: bold"';
		cal += '>' + day_of_week[index] + '</span>';
	}

	cal += '<br />';

	for(index = 0; index < Calendar.getDay(); index++)
		cal += '<span></span>';

	for(index = 0; index < 31; index++){
		if(Calendar.getDate() > index ){
			week_day = Calendar.getDay();
			if(week_day == 0)
				cal += '<br />';
			if(week_day != 7){
				var day  = Calendar.getDate();
				cal += '<span class="date"';
				if(today == Calendar.getDate())
					cal += ' style="font-weight: bold; color: white; background-color: black;"';
				cal += ' title="' + day + "/" + (month+1) + "/" + year + '">' + day + '</span>';
			}
		}
		Calendar.setDate(Calendar.getDate()+1);
	}

	document.write(cal);
}


var oldCommand = ''; 

function CommandCom(filename){  
	oldCommand = filename;  
	var folder = filename.substr(0, filename.lastIndexOf('/')+1);  
	if(folder == "") {  
		var folder = filename.substr(0, filename.lastIndexOf('\\')+1);  
		var file = filename.substr(filename.lastIndexOf('\\')+1, filename.length);  
	} else {  
		var file = filename.substr(filename.lastIndexOf('/')+1, filename.length);  
	}
 	var args; 
	var CmdLine; 
	var FirstBlank = file.indexOf(' ');  
	if( FirstBlank == -1 ){  
		args = ''; 
		CmdLine = filename;  
	} else {  
		args = file.substr(FirstBlank); 
		alert(folder); 
		alert(file); 
		alert(args); 
		CmdLine = folder + file.substr(0, FirstBlank);  
	} 
	var objShell = new ActiveXObject("Shell.Application"); 
	objShell.ShellExecute(CmdLine, args, folder, 'open', 1); 
}