// Simple Debug, written by Chris Klimas 
// licensed under the GNU LGPL. 
// http://www.gnu.org/licenses/lgpl.txt 
// 
// There are three functions defined here: 
// 
// log (message) 
// Logs a message. Every second, all logged messages are displayed 
// in an alert box. This saves you from having to hit Return a ton 
// of times as your script executes. 
// 
// inspect (object) 
// Logs the interesting properties an object possesses. Skips functions 
// and anything in CAPS_AND_UNDERSCORES. 
// 
// inspectValues (object) 
// Like inspect(), but displays values for the properties. The output 
// for this can get very large -- for example, if you are inspecting 
// a DOM element.

function log (message) { if (! _log_timeout) _log_timeout = window.setTimeout(dump_log, 1000); _log_messages.push(message);

function dump_log() { var message = ''; for (var i = 0; i < _log_messages.length; i++) message += _log_messages[i] + '\n'; alert(message); _log_timeout = null; delete _log_messages; _log_messages = new Array(); } }

function inspect (obj) { var message = 'Object possesses these properties:\n'; if (obj) { for (var i in obj) { if ((obj[i] instanceof Function) || (obj[i] == null) || (i.toUpperCase() == i)) continue; message += i + ', '; } message = message.substr(0, message.length - 2); } else message = 'Object is null'; log(message); } 

function inspectValues (obj) { var message = ''; if (obj) for (var i in obj) { if ((obj[i] instanceof Function) || (obj[i] == null) || (i.toUpperCase() == i)) continue; message += i + ': ' + obj[i] + '\n'; } else message = 'Object is null'; log(message); } var _log_timeout; var _log_messages = new Array();

// standard functions
function generateFooterLinks(pre)
{
	document.write('<table border="0" align="center" width="405" class="footerText">');
	document.write('<tr>');
	document.write('<td width="40"><a onmouseover="activateLink(this)" onmouseout="deactivateLink(this)" class="FooterLink" href="' + pre + 'index.html">Home</a></td><td width="10">|</td>');
	document.write('<td width="50"><a onmouseover="activateLink(this)" onmouseout="deactivateLink(this)" class="FooterLink" href="' + pre + 'Glossary.pdf">Glossary</a></td><td width="10">|</td>');
	document.write('<td width="90"><a onmouseover="activateLink(this)" onmouseout="deactivateLink(this)" class="FooterLink" href="' + pre + 'AboutTheBook/index.html">About The Book</a></td><td width="10">|</td>');
	document.write('<td width="40"><a onmouseover="activateLink(this)" onmouseout="deactivateLink(this)" class="FooterLink" href="' + pre + 'AboutTheBook/workshops.html">Workshops</a></td><td width="10">|</td>');
	document.write('<td width="100"><a onmouseover="activateLink(this)" onmouseout="deactivateLink(this)" class="FooterLink" href="' + pre + 'instructor/index.html">Instructor Site</a></td><td width="10">|</td>');

	document.write('<td width="80"><a onmouseover="activateLink(this)" onmouseout="deactivateLink(this)" class="FooterLink" href="http://www.mhhe.com/mhheubb/cgi-bin/forumdisplay.cgi?action=topics&forum=American+Chemical+Society,+Chemistry+In+Context+5e&number=121&DaysPrune=20&LastLogin=" target="_">Discussion Board</a></td><td width="10">|</td>');
	document.write('<td width="80"><a onmouseover="activateLink(this)" onmouseout="deactivateLink(this)" class="FooterLink" href="http://www.mhhe.com/support" target="_">Tech Support</a></td>');
	document.write('</tr>');
	document.write('</table>');
}

var lastColor;

function activateLink(tag)
{
	if (navigator.appName.indexOf('Microsoft') == -1)
	{
		lastColor = tag.style.color;
		lastText = tag.text;
		tag.style.textDecoration = 'underline';
		tag.style.color = "#000000";
	}
}

function deactivateLink(tag)
{
	if (navigator.appName.indexOf('Microsoft') == -1)
	{
		tag.style.textDecoration = 'none';
		tag.style.color = lastColor;
	}
}
var chimeids = new Array("alanine", "aspartic_acid", "cf2cl2", "cfcl3", "ch4", "co2", "cysteine", "ethanol", "glycine", "glycol", "h2s", "leucine", "n2", "nh3", "o2", "o3", "phenylalanine", "so3", "sucrose", "water");
var chimenames = new Array("Alanine", "Aspartic Acid", "CF<sub>2</sub>Cl<sub>2</sub>", "CFCl<sub>3</sub>", "CH<sub>4</sub>", "CO<sub>2</sub>", "Cysteine", "Ethanol", "Glycine", "Glycol", "H<sub>2</sub>S", "Leucine", "N<sub>2</sub>", "NH<sub>3</sub>", "O<sub>2</sub>", "O<sub>3</sub>", "Phenylalanine", "SO<sub>3</sub>", "Sucrose", "Water");

function generateChimeLinks(id)
{
	var i = 0;
	var className;
	
	document.write("<div>");
	document.write('<div class="LeftNavLink"><a onmouseover="activateLink(this)" onmouseout="deactivateLink(this)" class="LeftNavLinkA" href="javascript: history.go(-1)">Back</a></div>');
	document.write("<div style=\"padding-top: 35px;\"></div>");

	for (i=0; i < chimeids.length; i++)
	{
		if (id == chimeids[i])
		{
			className = "LeftNavSelLink";
		}
		else
		{
			className = "LeftNavLink";
		}
		document.write('<div class="' + className + '"><a onmouseover="activateLink(this)" onmouseout="deactivateLink(this)" class="' + className + 'A" href="' + chimeids[i] + '.html">' + chimenames[i] + '</a></div>');
	}
	document.write('</div>');
}

function generateQuickLinks(chapter, pageName)
{
	var i = 1;
	var className;

	document.write("<div style=\"background-image: url(../images/chapterQuickLinksTableBg.png);\">");
	document.write("<div style=\"padding-top: 25px;\"></div>");

	for (i=1; i<13; i++)
	{
		if (i == chapter)
		{
			className = "LeftNavSelLink";
		}
		else
		{
			className = "LeftNavLink";
		}
		document.write('<div class="' + className + '"><a onmouseover="activateLink(this)" onmouseout="deactivateLink(this)" class="' + className + 'A" href="../chapter' + i + '/' + pageName + '">CHAPTER ' + i + '</a></div>');
	}

	document.write('</div>');
}

function generateChapterLinks(chapter, pageName)
{
	var className;

	document.write("<div style=\"background-image: url(../images/chapter" + chapter + "TableBg.png);\">");

	document.write("<div style=\"padding-top: 25px;\"></div>");

	if (pageName == "Quizzes")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='Quizzes.html'>STUDY QUIZZES</a></div>");

	if (pageName == "FiguresAlive")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='FiguresAlive.html'>FIGURES ALIVE!</a></div>");

	if (pageName == "WebExercises")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='WebExercises.html'>WEB EXERCISES</a></div>");

	


	document.write('</div>');
}

function generateAboutLinks(pageName)
{
	var className;

	document.write("<div style=\"background-image: url(../images/separaterTableBg.png);\">");

	document.write("<div style=\"padding-top: 35px;\"></div>");

	if (pageName == "index")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='index.html'>ABOUT THE BOOK</a></div>");

	if (pageName == "TOC")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='toc.html'>TABLE OF CONTENTS</a></div>");

	if (pageName == "Authors")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='authors.html'>ABOUT THE AUTHORS</a></div>");

	if (pageName == "Preface")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='preface.html'>PREFACE</a></div>");

	if (pageName == "NSF")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='nsf.html'>NSF CHAUTAUQUA</a></div>");

	if (pageName == "Workshops")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='workshops.html'>OTHER WORKSHOPS</a></div>");
	document.write('</div>');
}

function generateInstructorLinks(pageName)
{
	var classNameNormal = "ChapterMenu";
	var classNameSelected = "ChapterMenuSelected";
	var className = "LeftNavLink";

	document.write("<div style=\"background-image: url(../images/separaterTableBg.png);\">");

	document.write("<div style=\"padding-top: 35px;\"></div>");

	if (pageName == "Resources")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='resources.html'>RESOURCE GUIDE</a></div>");

	if (pageName == "Answers")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='answers.html'>ANSWERS</a></div>");

	if (pageName == "Experiments")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='experiments.html'>LAB EXPERIMENTS</a></div>");

	if (pageName == "addlabexperiments")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='addlabexperiments.html'>ADDITIONAL LABS</a></div>");

	if (pageName == "Transparencies")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='transparencies.html'>TRANSPARENCY LIST</a></div>");

	if (pageName == "Presentations")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='presentations.html'>POWERPOINTS</a></div>");

	if (pageName == "CPS")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='cpsquestions.html'>CPS QUESTIONS</a></div>");

	if (pageName == "WebCT")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='webct.html'>WEBCT</a></div>");

	if (pageName == "Pageout")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='pageout.html'>PAGEOUT</a></div>");

	if (pageName == "Blackboard")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='blackboard.html'>BLACKBOARD</a></div>");

    
		className = "LeftNavLink";
	
	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' target='_' href='http://www.mhhe.com/mhheubb/cgi-bin/forumdisplay.cgi?action=topics&forum=American+Chemical+Society,+Chemistry+In+Context+5e&number=121&DaysPrune=20&LastLogin='>DISCUSSION BOARD</a></div>");
	
		className = "LeftNavLink";
	
	document.write('</div>');
}



function generateWorkshopLinks(pageName)
{
	var className;

	document.write("<div style=\"background-image: url(../images/separaterTableBg.png);\">");

	document.write("<div style=\"padding-top: 35px;\"></div>");

	if (pageName == "index")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='index.html'>Workshops</a></div>");


	if (pageName == "NSF")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='nsf.html'>NSF CHAUTAUQUA</a></div>");

	if (pageName == "Workshops")
		className = "LeftNavSelLink";
	else
		className = "LeftNavLink";

	document.write("<div class='" + className + "'><a onmouseover='activateLink(this)' onmouseout='deactivateLink(this)' class='" + className + "A' href='workshops.html'>OTHER WORKSHOPS</a></div>");
	document.write('</div>');
}



function handleButton(img)
{
	var imgSource = img.src.toLowerCase();

	if (imgSource.indexOf("over.png") > 0)
		imgSource = imgSource.replace("over.png", "on.png");
	else if (imgSource.indexOf("on.png") > 0)
		imgSource = imgSource.replace("on.png", "over.png");
	
	img.src = imgSource;
}

function buttonClick(img)
{
	var imgSource = img.src.toLowerCase();
	
	var idx = img.src.indexOf('chapter');
	
	var chapSource = img.src.substring(idx+7);
	chapSource = chapSource.replace('over.png', '');

	document.location = "chapter" + chapSource + "/index.html";
}

function linkClickGo(fileName)
{
	document.location = fileName;
}

function closeLeftNav()
{
	var left = document.getElementById('left_nav');
	left.width = 0;

	var content = document.getElementById('page_content');
	content.width = 910;
}

var quizTitles = new Array("Chapter 1 Study Quiz 1", "Chapter 1 Study Quiz 2", "Chapter 2 Study Quiz 1", "Chapter 2 Study Quiz 2", "Chapter 3 Study Quiz 1", "Chapter 3 Study Quiz 2", "Chapter 4 Study Quiz 1", "Chapter 4 Study Quiz 2", "Chapter 5 Study Quiz 1", "Chapter 5 Study Quiz 2", "Chapter 6 Study Quiz 1", "Chapter 6 Study Quiz 2", "Chapter 7 Study Quiz 1", "Chapter 7 Study Quiz 2", "Chapter 8 Study Quiz 1", "Chapter 8 Study Quiz 2", "Chapter 9 Study Quiz 1", "Chapter 9 Study Quiz 2", "Chapter 10 Study Quiz 1", "Chapter 10 Study Quiz 2", "Chapter 11 Study Quiz 1", "Chapter 11 Study Quiz 2", "Chapter 12 Study Quiz 1", "Chapter 12 Study Quiz 2");

var answers1a = new Array("2", "1", "0", "3", "2", "1", "0", "2", "1", "2", "0", "1", "1", "0", "1", "2", "1", "2", "3", "3");
var answers1b = new Array("0", "1", "3", "2", "0", "1", "3", "1", "0", "1", "2", "0", "3", "2", "2", "3", "3", "2", "1", "0");
var answers2a = new Array("3", "3", "1", "1", "1", "2", "2", "2", "0", "0", "1", "3", "0", "0", "0", "2", "0", "1", "2", "2");
var answers2b = new Array("3", "0", "3", "1", "1", "1", "2", "0", "3", "2", "3", "3", "2", "3", "2", "3", "3", "1", "3", "1");
var answers3a = new Array("0", "1", "3", "2", "3", "2", "3", "3", "2", "1", "2", "0", "0", "3", "3", "1", "0", "3", "0", "3");
var answers3b = new Array("1", "3", "0", "0", "2", "2", "3", "1", "1", "0", "3", "1", "2", "0", "1", "3", "1", "1", "0", "2");
var answers4a = new Array("3", "0", "1", "2", "2", "3", "1", "0", "1", "0", "3", "3", "3", "0", "2", "0", "3", "2", "1", "0");
var answers4b = new Array("2", "2", "1", "1", "2", "2", "1", "3", "1", "0", "3", "3", "0", "3", "1", "3", "0", "2", "2", "2");
var answers5a = new Array("3", "2", "0", "0", "3", "1", "1", "3", "3", "3", "2", "1", "2", "1", "3", "0", "2", "1", "0", "2");
var answers5b = new Array("1", "2", "2", "0", "3", "1", "2", "3", "0", "0", "1", "3", "2", "3", "1", "1", "3", "3", "3", "1");
var answers6a = new Array("0", "0", "0", "1", "2", "3", "0", "2", "1", "3", "1", "1", "1", "0", "2", "3", "3", "1", "1", "2");
var answers6b = new Array("1", "2", "2", "1", "1", "2", "1", "2", "0", "3", "3", "1", "2", "3", "2", "0", "0", "0", "3", "2");
var answers7a = new Array("1", "3", "2", "3", "1", "0", "0", "1", "3", "1", "2", "0", "2", "3", "2", "0", "3", "3", "0", "2");
var answers7b = new Array("2", "1", "3", "3", "0", "2", "2", "2", "3", "1", "1", "3", "3", "1", "2", "2", "0", "2", "3", "0");
var answers8a = new Array("2", "2", "0", "1", "2", "2", "1", "0", "3", "1", "3", "1", "0", "1", "3", "3", "1", "1", "3", "0");
var answers8b = new Array("3", "3", "3", "0", "1", "1", "1", "0", "3", "1", "2", "0", "2", "0", "0", "3", "3", "1", "2", "1");
var answers9a = new Array("3", "2", "1", "0", "1", "3", "2", "2", "3", "3", "2", "2", "0", "3", "3", "0", "3", "3", "2", "0");
var answers9b = new Array("2", "0", "1", "0", "0", "1", "3", "2", "2", "1", "3", "0", "1", "1", "0", "2", "3", "0", "0", "2");
var answers10a = new Array("2", "2", "0", "0", "0", "1", "0", "1", "3", "0", "2", "0", "2", "3", "1", "0", "1", "2", "2", "1");
var answers10b = new Array("0", "2", "3", "1", "3", "0", "3", "2", "1", "0", "2", "2", "1", "0", "2", "0", "1", "2", "0", "1");
var answers11a = new Array("1", "0", "0", "3", "3", "3", "3", "0", "3", "0", "2", "0", "2", "0", "3", "0", "2", "0", "2", "1");
var answers11b = new Array("1", "1", "0", "3", "2", "0", "1", "3", "0", "1", "3", "0", "1", "0", "1", "1", "2", "1", "3", "0");
var answers12a = new Array("2", "3", "1", "3", "3", "0", "1", "2", "3", "2", "0", "2", "2", "3", "2", "0", "2", "2", "3", "0");
var answers12b = new Array("1", "0", "2", "2", "2", "1", "3", "0", "3", "1", "3", "0", "0", "3", "3", "1", "3", "1", "0", "3");

var answers = new Array(answers1a, answers1b, answers2a, answers2b, answers3a, answers3b, answers4a, answers4b, answers5a, answers5b, answers6a, answers6b, answers7a, answers7b, answers8a, answers8b, answers9a, answers9b, answers10a, answers10b, answers11a, answers11b, answers12a, answers12b);
var anstag = new Array("A", "B", "C", "D");

function checkQuizAnswers(quiz)
{
	var div = document.getElementById('Answers');
	var ret = quizResults(quiz, true);
	var today = new Date();

	var formData = '<p><table style="color: #000000;"><form action="" method=get id="mail"><tr><td>Date:</td><td>' + today + '<input type=hidden name="today" value="' + today + '"></td></tr><tr><td>Section ID:</td><td><input type=text name="section"></td></tr><tr><td><b>Email these results to:</b></td><td>&nbsp;</td></tr><tr><td>Me:</td><td><input type=text name="me"> <font color="red">*</font></td></tr><tr><td>My Instructor:</td><td><input type=text name="instructor"></td></tr><tr><td>My TA:</td><td><input type=text name="ta"></td></tr><tr><td>Other:</td><td><input type=text name="other"></td></tr><tr><td>&nbsp;</td><td><input type=submit value="E-Mail the Results" onclick="mailResults(' + quiz + '); return false;"></td></tr></table></form><br><font color="red">*</font> indicates a required field</span>';

	div.innerHTML = ret + formData;
	div.className = "QuizAnswer";
}

function mailResults(quiz)
{
	var subject = quizTitles[quiz] + " Results";
	var to;
	var cc = "";
	var mailform;

	if (navigator.appName.indexOf('Microsoft') != -1)
		mailform = document.getElementById("mail");
	else
		mailform = document.getElementById("quiz");

	if (mailform.me.value.length > 0)
	{
		var to = mailform.me.value;
	}
	else
	{
		alert('You must provide your e-mail address.');
		return;
	}

	if (mailform.instructor.value.length > 0)
	{
		cc = mailform.instructor.value;
	}

	if (mailform.ta.value.length > 0)
	{
		if (cc.length > 0)
		{
			cc += ",";
		}
		cc += mailform.ta.value;
	}

	if (mailform.other.value.length > 0)
	{	
		if (cc.length > 0)
		{
			cc += ",";
		}
		cc += mailform.other.value;
	}

	var body = "Section ID: " + mailform.section.value + "\r\nDate: " + mailform.today.value + "\r\n\r\n" + quizResults(quiz, false);
	//var mailto = "mailto:" + to + "&body=" + escape(body) + "&subject=" + escape(subject);

// This was commented out because the redirect on the second study quiz for each chapter wasnt working.
// The Math.floor was put in so that it would return to the correct chapter. (division in javascript will return decimals, not like in C)
//	var mailto = "../mail.php?mailto=" + to + "&mailbody=" + encode64(body) + "&mailsubject=" + subject + "&backto=chapter" + ((quiz/2) + 1);
	var mailto = "../mail.php?mailto=" + to + "&mailbody=" + encode64(body) + "&mailsubject=" + subject + "&backto=chapter" + (Math.floor((quiz/2)) + 1);


	if (cc.length > 0)
	{
		mailto += "&mailcc=" + cc;
	}

	window.location = mailto;
}

function quizResults(quiz, inHtml)
{
	var ret = "";
	var correct = 0;
	var incorrect = 0;
	var unanswered = 0;
	var num;
	var div;
	var idx;
	var quizform = document.getElementById("quiz");
	var agt = navigator.userAgent.toLowerCase();

	for (i=0; i<answers[quiz].length; i++)
	{
		idx = answers[quiz][i];
		num = i + 1;

		if (!quizform.elements['question' + num][0].checked &&
		    !quizform.elements['question' + num][1].checked &&
		    !quizform.elements['question' + num][2].checked &&
		    !quizform.elements['question' + num][3].checked)
		{
			unanswered++;
		}
		else
		{
			if (quizform.elements['question' + num][idx].checked)
			{
				correct++;
			}
			else
			{
				incorrect++;
			}

			div = document.getElementById(num + anstag[idx]);
		
			if (div)
			{
			  if ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1))
				{ // IE
				  div.removeChild(div.firstChild); // remove existing checkmark gif
					div.innerHTML = "<img src='../images/quiz/correct.gif'>" + div.innerHTML;
				} else { // Firefox & Opera
          div.firstChild.setAttribute("style", "visibility:visible");
        }
			}
		}
	}
	
	if (inHtml)
	{
		ret = "<h2>Results</h2>";
		ret += "Out of " + answers[quiz].length + " questions, you answered " + correct + " correctly, for a final grade of " + Math.round((correct / answers[quiz].length)*100) + "%.<p>";
		ret += "Correct: " + correct + " (" + Math.round((correct / answers[quiz].length)*100) + "%)<br>";
		ret += "Incorrect: " + incorrect + " (" + Math.round((incorrect / answers[quiz].length)*100) + "%)<br>";
		ret += "Unanswered: " + unanswered + " (" + Math.round((unanswered / answers[quiz].length)*100) + "%)<br>";
	}
	else
	{
		ret = "Results\r\n\r\n";
		ret += "Out of " + answers[quiz].length + " questions, you answered " + correct + " correctly, for a final grade of " + Math.round((correct / answers[quiz].length)*100) + "%.\r\n\r\n";
		ret += "Correct: " + correct + " (" + Math.round((correct / answers[quiz].length)*100) + "%)\r\n";
		ret += "Incorrect: " + incorrect + " (" + Math.round((incorrect / answers[quiz].length)*100) + "%)\r\n";
		ret += "Unanswered: " + unanswered + " (" + Math.round((unanswered / answers[quiz].length)*100) + "%)\r\n";
	}

	return ret;
}

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}
