// Identify the image path and all the arrays 
// to contain user preferences
var imagePath = 'images/';

//var background = new Array(
//	new Array(imagePath + 'color_grays.jpg', 'Grays'), 
//	new Array(imagePath + 'color_reds.jpg', 'Reds'), 
//); 

var face = new Array(
	new Array('arial', 'Arial'),
	new Array('book antiqua', 'Book Antiqua'),
	new Array('bradley hand itc', 'Bradley Hand ITC'),
	new Array('century', 'Century'),
	new Array('comic sans ms', 'Comic Sans MS'),
	new Array('courier', 'Courier New'),
	new Array('rockwell', 'Rockwell'),
	new Array('tahoma', 'Tahoma'),
	new Array('times', 'Times Roman'),
	new Array('verdana', 'Verdana')
);

var size = new Array(
	new Array('7', 'X-Small'), 
	new Array('8', 'Small'), 
	new Array('10', 'Medium'), 
	new Array('12', 'Large')
); 

// Define an array for preloading the images
var allImages = new Array();
var imageNames = new Array(
	'arial7','arial8','arial10','arial12', 
	'book antiqua7','book antiqua8','book antiqua10','book antiqua12', 
	'bradley hand itc7','bradley hand itc8','bradley hand itc10','bradley hand itc12', 
	'century7','century8','century10','century12', 
	'comic sans ms7','comic sans ms8','comic sans ms10','comic sans ms12', 
	'courier7','courier8','courier10','courier12', 
	'rockwell7','rockwell8','rockwell10','rockwell12', 
	'tahoma7','tahoma8','tahoma10','tahoma12', 
	'times7','times8','times10','times12', 
	'verdana7','verdana8','verdana10','verdana12', 
//	'goldthumb', 'billsthumb', 'fistthumb', 'currency1thumb', 'currency2thumb',
  'blank'
	);

// Preload the images
for (var i = 0; i < imageNames.length; i++) {
	allImages[i] = new Image();
	allImages[i].src = imagePath + imageNames[i] + '.gif';
	}

// Define a function that "makes" a URL to pass to 
// swapImage() for the image rollovers
function makePath(formObj) {
	var fontName = imagePath + formObj.face.options[formObj.face.selectedIndex].value +
		formObj.size.options[formObj.size.selectedIndex].value + '.gif'
	swapImage("fontImage", fontName);
	}

// Conditionally perform the rollovers in JavaScript 1.0
function swapImage(imageName, imageBase) {
  document[imageName].src = imageBase;
}

// Define a function to create SELECT lists on the fly
function genSelect(name, select, onChangeStr) {
	var optStr = "";
	var arrObj = eval(name);
	for (var i = 0; i < arrObj.length; i++) {
		optStr += '<option value="' + arrObj[i][0] + (i == select ? '" selected' : '"') + '>' + arrObj[i][1];
	}
	return '<select name="' + name + '"' + (onChangeStr ? ' onChange="' + onChangeStr + ';"' : '') + 
		'>' + optStr + '</select>';
}

// For creating groups of CHECKBOXes
function genBoxes(name) {
	var boxStr = '';
	var arrObj = eval(name);
	for (var i = 0; i < arrObj.length; i++) {
		boxStr += '<input type=checkbox name="' + name + i + '" value="' + arrObj[i][0] + ',' + arrObj[i][1] + '"> ' + arrObj[i][0] + '<br>'
	}
	return boxStr;
}

// Define a function to get the user preferences from the 
// the cookie upon loading
function getPrefs(formObj) {
	var prefStr = GetCookie('userPrefs');
	if (prefStr == null) { return false; }
	var prefArray = prefStr.split('-->');
	for (var i = 0; i < prefArray.length; i++) {
		var currPref = prefArray[i].split('::');
		if (currPref[1] == "select") { formObj[currPref[0]].selectedIndex = currPref[2]; }
		else if (currPref[1] == "text") { formObj[currPref[0]].value = currPref[2]; }
		else if (currPref[1] == "checkbox") { formObj[currPref[0]].checked = true; }		
	}
	return true;
}

// Define a function to set the user preferences
// to the cookie
function setPrefs(formObj) {
	var prefStr = '';
	var htmlStr = '';
	for (var i = 0; i < formObj.length; i++) {
		if (formObj[i].type == "select-one") {
			prefStr += formObj[i].name + '::select::' + formObj[i].selectedIndex + '-->';
			htmlStr += formObj[i].name + '=' + formObj[i].options[formObj[i].selectedIndex].value + '-->';
		}	else if (formObj[i].type == "text") {
			if (formObj[i].value == '') { formObj[i].value = "Not Provided"; }
 			prefStr += formObj[i].name + '::text::' + safeChars(formObj[i].value) + '-->';
  		htmlStr += formObj[i].name + '=' + formObj[i].value + '-->';
		}	else if (formObj[i].type == "checkbox" && formObj[i].checked) {
			prefStr += formObj[i].name + '::checkbox::' + '-->';
			htmlStr += formObj[i].name + '=' + formObj[i].value + '-->';
		}
	}
	SetCookie('userPrefs', prefStr, expiry);
	SetCookie('htmlPrefs', htmlStr, expiry);

  window.history.back();  // send user back to previous page.
}

// For removing potentially dangerous characters
function safeChars(str) {
	return str.replace(/::|=|-->/g, ':;');
}

// Define a function to populate the preferences form
// according to the information extracted from the cookie
function populateForm(formObj) {
	if (getPrefs(formObj)) { 
		makePath(formObj);
//		swapImage('bkgImage', formObj.background.options[formObj.background.selectedIndex].value);
	}
}

// Define a function to synchronize the images with the OPTION 0
// in the font and background SELECT lists
function resetImage(formObj) { 
	swapImage('bkgImage', formObj.background.options[0].value);
	swapImage('fontImage', imagePath + formObj.face.options[0].value + formObj.size.options[0].value + '.gif');
}

