var noCache = 0;

var WBook;
var WChapter;
var WChapterNumber;
var WType;
var WTopic;
var browserVersion;
var browserIE;
var isPrintPage;
var isReportPage;
var reportName;
var reportData;
var messageGiven;

var fileSuffix="html";
var imagePath="";
var isWEB=0;
var alerted=0;

var hasTimeOut = 0;
var timeOutURL;
var timeOutSecs;

function nullFunc()
{
}	

function idBrowser()
{
	browserVersion = parseInt(navigator.appVersion);
	if (navigator.appName == "Netscape")
		browserIE  = 0;
	else if (navigator.appName.indexOf("Microsoft") != -1)
		browserIE  = 1;
	else
		browserIE  = 0;
}

function doVersionCheck()
{
	idBrowser();
	if (browserVersion<4)
	{
	    document.writeln("<P ALIGN=\"CENTER\"><FONT SIZE=\"+2\"><B><FONT COLOR=\"#FF0000\">Notice</FONT></B></FONT></P>");
        document.writeln("<P>This product requires Netscape or Internet Explorer version 4 or higher.");
		document.writeln("Your browser is "+navigator.appName+" version "+navigator.appVersion+". ");
        document.writeln("You may need to upgrade your browser or install a new browser for this product to work correctly.</p>");
        document.writeln("<HR>");
	}
}	

function gotoPage( name )
{
	if (isWEB)
	{
		document.webcookie.action=name;
		document.webcookie.submit();
	}
	else
		top.location.href = name;
}	

function dokeyword(fnam, kwds)
{
	if (document.quizform.elements[fnam].value == "")
		document.quizform.elements[fnam].value = kwds.replace(/##/g, "\n");
	else
		document.quizform.elements[fnam].value = "";
}	

function deleteCookie( name )
{
	if (isWEB)
		deleteWebCookie(name);
	else
		document.cookie = name + "=deleted;" + "expires=Thu, 01-Jan-1971 00:00:01 GMT";
}

function setCookie( name, value )
{
	var when = new Date();
	var m, d, y;
	var expireDate;
	var dowStr = "SunMonTueWedThuFriSat";
	var monStr = "JanFebMarAprMayJunJulAugSepOctNovDec";

	m = when.getMonth();
	d = when.getDate();
	y = when.getYear();
	
	// prevent February 29 in non-leap years
	if (m == 2 && d == 29)
	{
		d = 28;
	}
	when = new Date( y, d, m );
	dow = when.getDay();
	expireDate = dowStr.substring(dow*3, dow*3+3); 
	if (d < 10)
	{
		expireDate += ", 0" + d;
	}
	else
	{
		expireDate += ", " + d;
	}
	expireDate += "-" + monStr.substring(m*3, m*3+3);
	y++;
	if (y < 1900)
	{
		y += 1900;
	}
	y %= 100;
	if (y < 10) { y = "0" + y };

	expireDate += "-" + y + " 00:00:01 GMT";

	if (isWEB)
	{
		addToWebCookie(name, value);	
		document.webcookie.zzexpires.value = expireDate;	
	}
	else
		document.cookie = name + "=" + escape(value) + ";expires=" + expireDate;
}

function addToWebCookie( name, value)
{
	var pairs,i,nameval;
	
	pairs = document.webcookie.zzvalue.value.split("; ");
	document.webcookie.zzchanged.value = "1";
	for (i=0; i<pairs.length;i++)
	{
		nameval = pairs[i].split("=");
		if (name == nameval[0])
		{
			pairs[i] = name + "=" + escape(value);
			document.webcookie.zzvalue.value = pairs.join("; ");
			return;
		}
	}	
	document.webcookie.zzvalue.value = document.webcookie.zzvalue.value + "; " + name + "=" + escape(value);
}	


function deleteWebCookie( name )
{
	var pairs,i,nameval,value;
	
	value = "";
	pairs = document.webcookie.zzvalue.value.split("; ");
	for (i=0; i<pairs.length;i++)
	{
		nameval = pairs[i].split("=");
		if (name != nameval[0])
		{
			value = value + pairs[i] + "; ";
		}
	}	
	document.webcookie.zzvalue.value = value;
	document.webcookie.zzchanged.value = "1";
}	

function getCookieValue( name )
{
	var pairs, nameval, i;

	if (isWEB)
	{
		pairs = document.webcookie.zzvalue.value.split("; ");
		for (i = 0; i < pairs.length; i++)
		{
			nameval = pairs[i].split("=");
			if (name == nameval[0])
			{
				return unescape(nameval[1]);
			}
		}
	}
	else
	{
		if ( document.cookie )
		{
			pairs = document.cookie.split("; ");
			for (i = 0; i < pairs.length; i++)
			{
				nameval = pairs[i].split("=");
				if (name == nameval[0])
				{
					return unescape(nameval[1]);
				}
			}
		}
	}
	return "";
}


function deleteAllCookies( )
{
	var pairs, nameval, i;

	if ( document.cookie )
	{
		pairs = document.cookie.split("; ");
		for (i = 0; i < pairs.length; i++)
		{
			nameval = pairs[i].split("=");
			deleteCookie( nameval[0] );
		}
	}
}


function checkQuizR( name )
{
	var pairs, nameval, i;

	if ( document.cookie )
	{
		pairs = document.cookie.split("; ");
		for (i = 0; i < pairs.length; i++)
		{
			nameval = pairs[i].split("=");
			if (name == nameval[0])
			{
				return "1";
			}
		}
	}
	return "";
}


function sasResults()
{
	pfx = WBook + WChapter;
	cname = pfx + "sas";
	if (checkQuizR(cname)=="1")
	{
		if (WBook == "s")
			document.writeln("<A HREF=\"" + pfx + "sasf."+fileSuffix+"\">" + "College Success Checklist Feedback" + "</a>");
		else if (WBook == "j")
			document.writeln("<A HREF=\"" + pfx + "sasf."+fileSuffix+"\">" + "Results of Pre-Test" + "</a>");
		else
			document.writeln("<A HREF=\"" + pfx + "sasf."+fileSuffix+"\">" + "Results of Self Assessment" + "</a>");
	}
}

function quizResults()
{
	pfx = WBook + WChapter;
	cname = pfx + "quiz";
	if (checkQuizR(cname)=="1")
	{
		if (WBook == "j")
			document.writeln("<A HREF=\"" + pfx + "quizf."+fileSuffix+"\">" + "Post-Test Results" + "</a>");
		else
			document.writeln("<A HREF=\"" + pfx + "quizf."+fileSuffix+"\">" + "Quiz Results" + "</a>");
	}
}



function initPage( book, chapter, topic, type)
{
	idBrowser();
	WBook = book;
	WChapter = chapter;
	WChapterNumber = parseInt(chapter,10);
	WTopic = topic;
	WType = type;
	if (type.indexOf("exe")>=0)
		isPrintPage=1;
	else if (type.indexOf("res")>=0)
		isPrintPage=1;
	else
		isPrintPage=0;
	isReportPage=0;
	reportName=WBook + WChapter + WType + "rpt";
	messageGiven=0;
	if (noCache)
		document.writeln("<META HTTP-EQUIV = \"Pragma\" CONTENT=\"no-cache\">");
	if (WChapter == "00") 
		document.writeln("<LINK REL=STYLESHEET TYPE=\"text/css\" HREF=\"santrockstyles.css\">"); 
	else
		document.writeln("<LINK REL=STYLESHEET TYPE=\"text/css\" HREF=\"../santrockstyles.css\">"); 
}


function saveDataEx(where)
{
	var i,cval;
	var data,dataval;

	if (document.quizform)
	{
		data= new Array(document.quizform.length);
		for (i=0;i<document.quizform.length;i++)
		{
			data[i]="";
			if (document.quizform.elements[i].type == "text" || document.quizform.elements[i].type == "textarea")
			{
				data[i]=document.quizform.elements[i].name+"$"+document.quizform.elements[i].value;
			}
			else if (document.quizform.elements[i].type == "checkbox")
			{

				if (document.quizform.elements[i].checked)
				{
					cval = "<img src=\"../images/checkmark.gif\">";
				}
				else
				{
					cval = "<img src=\"../images/quizspacer.gif\">";
				}
				data[i]=document.quizform.elements[i].name+"$"+cval;
			}
			else if (document.quizform.elements[i].type == "radio")
			{
				data[i]=document.quizform.elements[i].name+"/"+document.quizform.elements[i].value;
				if (document.quizform.elements[i].checked)
				{
					cval = "<img src=\"../images/bullet.gif\">";
				}
				else
				{
					cval = "<img src=\"../images/quizspacer.gif\">";
				}
				data[i]=data[i]+"$"+cval;
			}
		}
		dataval = data.join("\t");
		setCookie(where,dataval);
	}
}

function saveData()
{
	saveDataEx(reportName);
}


function saveExtractData(where,toname)
{
	var tmp,toname;
	saveDataEx(where);
	if (isWEB)
	{
		gotoPage(toname);
		return(false);
	}
	Else
	{
		tmp=getCookieValue(where);
		if (!tmp)
			alert("Unable to save your answers. The amount of text is probably too much for your browser. You can copy and paste your answers to your word processor or write them out by hand.");
		else
			gotoPage(toname);
	}
}


function saveReportData(toname)
{
	var tmp,toname;
	saveData();
	if (isWEB)
	{
		gotoPage(toname);
		return(false);
	}
	else
	{
		tmp=getCookieValue(reportName);
		if (!tmp)
			alert("Unable to save your answers. The amount of text is probably too much for your browser. You can copy and paste your answers to your word processor or write them out by hand.");
		//else
		//	top.location.href = WBook + WChapter + WType + "p."+fileSuffix+"";
	}
}


function reportPage()
{
	var tmp,str,nam,val,i,ix;

	isReportPage=1;
	tmp=getCookieValue(reportName);
	if (tmp=="")
	{
	}
	else
	{
		tmp=tmp.split('\t');
		reportData = new Array(tmp.length);
		for (i=0;i<tmp.length;i++)
		{
			str=tmp[i];
			ix=str.indexOf("$");
			if (ix>0)
			{
				nam=str.substr(0,ix);
				val=str.substr(ix+1);
				reportData[nam]=val;
			}
		}
	}
}

function reportText(id)
{
	if (reportData)
	{
 		document.writeln("<font color=\"#EA5800\"><b>");
 		document.writeln(reportData[id]);
 		document.writeln("</b></font>");
	}
	else
	{
		if (!messageGiven)
			alert("There is no data available for this page. Go back to the exercise and try again.");
		messageGiven=1;
	}
}

function extractData(pg,id)
{
	var tmp,str,nam,val,i,ix,reportData;

	isReportPage=1;
	tmp=getCookieValue(pg);
	if (tmp=="")
	{
	}
	else
	{
		tmp=tmp.split('\t');
		reportData = new Array(tmp.length);
		for (i=0;i<tmp.length;i++)
		{
			str=tmp[i];
			ix=str.indexOf("$");
			if (ix>0)
			{
				nam=str.substr(0,ix);
				val=str.substr(ix+1);
				reportData[nam]=val;
			//	document.writeln("<p>rd "+nam+"="+val+"</p>");
			}
		}
		if (reportData)
		{
			if (pg=='j10exe3')
			{
		 		document.writeln("<TABLE WIDTH=\"90%\" BORDER=\"0\"><TR>");
		 		document.writeln("<TD ALIGN=\"CENTER\" VALIGH=\"TOP\">");
				for (i=1;i<=20;i++)
				{
					if (reportData["q"+i] == 'X')
				 		document.writeln(j10exe3_name[i]+"<BR>");
				}
		 		document.writeln("<TD ALIGN=\"CENTER\" VALIGH=\"TOP\">");
		 		document.writeln("<TD>");
				for (i=21;i<=40;i++)
				{
					if (reportData["q"+i] == 'X')
				 		document.writeln(j10exe3_name[i]+"<BR>");
				}
		 		document.writeln("</TD>");
		 		document.writeln("<TD ALIGN=\"CENTER\" VALIGH=\"TOP\">");
				for (i=41;i<=60;i++)
				{
					if (reportData["q"+i] == 'X')
				 		document.writeln(j10exe3_name[i]+"<BR>");
				}
		 		document.writeln("</TD>");
		 		document.writeln("<TD ALIGN=\"CENTER\" VALIGH=\"TOP\">");
				for (i=61;i<=80;i++)
				{
					if (reportData["q"+i] == 'X')
				 		document.writeln(j10exe3_name[i]+"<BR>");
				}
		 		document.writeln("</TD>");
		 		document.writeln("</TR></TABLE>");
			}
		}
	}
}

		 
function doUnload()
{
	if (isReportPage)
	{
		deleteCookie(reportName);
	}

}

function setupTimeOut(secs,url)
{
	hasTimeOut = 1;
	timeOutURL = url;
	timeOutSecs = secs;
}	

function doTimeOut()
{
	if (hasTimeOut)
	{
		document.location = timeOutURL;
	}
}

function doLoad()
{
	if (hasTimeOut)
	{
		setTimeout("doTimeOut()",timeOutSecs*1000);
	}
}


function getElementValue(e)
{
	var i,na,val;

	for (i=0;i<document.quizform.length;i++)
	{
		if (e == document.quizform.elements[i].name)
		{
			return(document.quizform.elements[i].value);
		}
	}
	return(e);
}

function alertonce(s)
{
	if (!alerted)
	{
		alert(s);
		alerted=1;
	}
}

function doSpecialSum(parm)
{
	if (parm == "s06exe3")
		dos06exe3();
	else if (parm == "s12exe4")
		dos12exe4();
	else
		doSpecialSumEX();
}

function doSpecialSumEX()
{
	var i,j,n,x,c,sum,rvsum,na,val,sumall,sumeven,sumodd,str,tfsum;

	sum= new Array(30);
	for (i=0;i<30;i++)
	{
		sum[i]=0;
	}
	rvsum= new Array(10);
	for (i=0;i<10;i++)
	{
		rvsum[i]=0;
	}
	sumall = 0;
	sumeven = 0;
	sumodd = 0;
	tfsum=0;
	for (i=0;i<document.quizform.length;i++)
	{
		if (document.quizform.elements[i].type == "text")
		{
			na = document.quizform.elements[i].name;
			if (na.substr(0,3) == "inp")
			{
				val = document.quizform.elements[i].value;
				if ("" != val)
				{
					val = parseInt(val);
					n=parseInt(na.substr(3));
					if (n>=1 && n<30)	
						sum[n] += val;
					sumall += val;
					if (n&1)
						sumodd += val;
					else
						sumeven += val;
						
		document.quizform.elements["out101"].value = sumall;
				}
			}
		}
		else if (document.quizform.elements[i].type == "checkbox")
		{
			na = document.quizform.elements[i].name;
			if (na.substr(0,3) == "ckb")
			{
				if (document.quizform.elements[i].checked)
				{
					val = document.quizform.elements[i].value;
					if ("" != val)
					{
						val = parseInt(val);
						n=parseInt(na.substr(3));
						if (n>=1 && n<30)	
							sum[n] += val;
						sumall += val;
						if (n&1)
							sumodd += val;
						else
							sumeven += val;
					}
				}
			}
		}
		else if (document.quizform.elements[i].type == "radio")
		{
			na = document.quizform.elements[i].name;
			if (na.substr(0,3) == "rad")
			{
				if (document.quizform.elements[i].checked)
				{
					val = document.quizform.elements[i].value;
					if ("" != val)
					{
						val = "abcdefghij".indexOf(val);
						if (val>=0 && val<=9)
							rvsum[val]++;
					}
				}
			}
			else if (na.substr(0,3) == "tfb")
			{
				if (document.quizform.elements[i].checked)
				{
					val = document.quizform.elements[i].value;
					if ("" != val)
					{
						val = parseInt(val);
						tfsum+=val;
					}
				}
			}
		}
	}
	for (i=0;i<document.quizform.length;i++)
	{
		if (document.quizform.elements[i].type == "text")
		{
			na = document.quizform.elements[i].name;
			if (na.substr(0,3) == "sum")
			{
				n=parseInt(na.substr(3));
				if (n>=1 && n<30)
				{
					x = sum[n];
					document.quizform.elements[i].value = x;
				}	
				else if (n==96)
					document.quizform.elements[i].value = tfsum;
				else if (n==97)
					document.quizform.elements[i].value = sumall;
				else if (n==98)
					document.quizform.elements[i].value = sumeven;
				else if (n==99)
					document.quizform.elements[i].value = sumodd;
			}
			else if (na.substr(0,3) == "rvs")
			{
				ix = na.indexOf("q");
				if (ix>0)
				{
					val = na.charAt(ix+1);
					val = "abcdefghij".indexOf(val);
					if (val>=0 && val<=9)
					{
						n=parseInt(na.substr(3));
						if (n>=1 && n<30)
							sum[n] += rvsum[val];
						document.quizform.elements[i].value = rvsum[val];
					}
				}
			}
		}
	}
	for (i=0;i<document.quizform.length;i++)
	{
		if (document.quizform.elements[i].type == "text")
		{
			na = document.quizform.elements[i].name;
			if (na.substr(0,3) == "sum")
			{
				ix = na.indexOf("q");
				if (ix>0)
				{
					val = document.quizform.elements[i].value;
					if ("" != val)
					{
						val = parseInt(val);
						n=parseInt(na.substr(ix+1));
						if (n>=1 && n<30)	
							sum[n] += val;
						sumall += val;
						if (n&1)
							sumodd += val;
						else
							sumeven += val;
					}
				}
			}
		}
	}
	for (i=0;i<document.quizform.length;i++)
	{
		if (document.quizform.elements[i].type == "text")
		{
			na = document.quizform.elements[i].name;
			if (na.substr(0,3) == "eva")
			{
				str = "evv"+na.substr(3);
				str = getElementValue(str);
				j=0;
				if (str.charAt(j)=='#')
					val=parseInt(str.substr(++j));
				else if (str.charAt(j)=='r')
				{
					n=parseInt(str.substr(++j));
					val = rvsum[n];
				}
				else
				{
					n=parseInt(str.substr(j));
					val = sum[n];
				}
				while (j<str.length)
				{
					c=str.charAt(j);
					if (c=='#' || c=='r')
						j++;
					while (c>='0' && c<='9')
					{
						j++;
						c=str.charAt(j);
					}
					j++;
					if (str.charAt(j)=='#')
						n=parseInt(str.substr(++j));
					else if (str.charAt(j)=='r')
					{
						n=parseInt(str.substr(++j));
						n = rvsum[n];
					}
					else
					{
						n=parseInt(str.substr(j));
						n = sum[n];
					}
					if (c=='+')
					{
						val += n;
					}
					else if (c=='-')
					{
						val -= n;
					}
					else if (c=='*')
					{
						val *= n;
					}
					else if (c=='/')
					{
						val /= n;
					}
					else
					{
						// unknown, ignore it
						j++;
					}
				}
				document.quizform.elements[i].value = val;
				n=parseInt(na.substr(3));
				if (n>=1 && n<30)	
					sum[n] += val;
			}
		}
	}
}



function dos12exe4()
{
	var i,j,n,na,val,sum,element,sc,hm,ms,os,pm;

	sum= new Array(21);
	for (i=0;i<21;i++)
	{
		sum[i]=0;
	}
	element = document.quizform.elements["out1"];
	element.value = "";
	for (i=0;i<document.quizform.length;i++)
	{
		if (document.quizform.elements[i].type == "radio")
		{
			na = document.quizform.elements[i].name;
			if (na.substr(0,3) == "rad")
			{
				if (document.quizform.elements[i].checked)
				{
					n = parseInt(na.substr(3));
					val = document.quizform.elements[i].value;
					if ("" != val)
					{
						val = "abcdefghij".indexOf(val)
						sum[n] += val+1;
					}
				}
			}
		}
	}
	sc = sum[1]+sum[5]+sum[9]+sum[13]+sum[17];
	hm = sum[2]+sum[6]+sum[10]+sum[14]+sum[18];
	ms = sum[3]+sum[7]+sum[11]+sum[15]+sum[19];
	os = sum[4]+sum[6]+sum[12]+sum[16]+sum[20];
	document.quizform.elements["out2"].value = sc;
	document.quizform.elements["out3"].value = hm;
	document.quizform.elements["out4"].value = ms;
	document.quizform.elements["out5"].value = os;
}


function saveReportDataEx(toname)
{
	doSpecialSum();
	saveReportData(toname);
} 


function restoreData()
{
	var i;
	var datablock;

	datablock = getCookieValue( reportName );
	if (datablock != "")
	{
		datablock = datablock.split("\t");
		if (datablock)
		{
			for (i=0; i<datablock.length; i++)
			{
				pairs = datablock[i].split("$");
				if (pairs && pairs[0] != "")
				{
					document.quizform.elements[pairs[0]].value = pairs[1];
				}
			}
		}
	}
}
