// set the following to zero for production!!!
var noCache = 0;

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 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 exercise 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 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 "";
}

// this is used by the clear all scores and clear feedback buttons
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 initPage( topic )
{
	idBrowser();
	WTopic = topic;
	isReportPage=0;
	reportName=WTopic;
	messageGiven=0;
}

function doUnload()
{
	if (isReportPage)
	{
		deleteCookie(reportName);
	}

}

function saveDataEx(where)
{
	var i,cval;
	var data,dataval;

	if (document.microcase)
	{
		data= new Array(document.microcase.length);
		for (i=0;i<document.microcase.length;i++)
		{
			data[i]="";
			if (document.microcase.elements[i].type == "text" || document.microcase.elements[i].type == "textarea")
			{
				data[i]=document.microcase.elements[i].name+"$"+document.microcase.elements[i].value;
			}
			else if (document.microcase.elements[i].type == "checkbox")
			{

				if (document.microcase.elements[i].checked)
				{
					cval = "X";
				}
				else
				{
					cval = "_";
				}
				data[i]=document.microcase.elements[i].name+"$"+cval;
			}
			else if (document.microcase.elements[i].type == "radio")
			{
				data[i]=document.microcase.elements[i].name+"/"+document.microcase.elements[i].value;
				if (document.microcase.elements[i].checked)
				{
					cval = "X";
				}
				else
				{
					cval = "_";
				}
				data[i]=data[i]+"$"+cval;
			}
		}
		dataval = data.join("\t");
		setCookie(where,dataval);
	}
}

function saveData()
{
	saveDataEx(reportName);
}

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.");
	}
}

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=\"#CC3300\"><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;
	}
}