// JScript File

function Get_Height() {
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		//alert('ht1');
		return window.innerHeight;
	} else if( document.documentElement &&
		( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		//alert('ht2b');
		return document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		//alert('ht3');
		return document.body.clientHeight;
	}
}


var up,down;
var min1,sec1;
var cmin1,csec1,cmin2,csec2;

function WriteDiv(DName, DVal){
	if (document.getElementById) { 
		var t = document.getElementById(DName);
		t.innerHTML = DVal;
	} else if (document.layers) {
		var tLayer = eval('document.'+DName);
		tLayer.document.open();
		tLayer.document.write(DVal);
		tLayer.document.close();
		RightAlignDiv(DName);
	} else {
		var t = document.all[DName];
		t.innerHTML = DVal;
	}
	return true;
}

function isInteger(s){
	var i;
	for (i = 0; i < s.length; i++){   
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	// All characters are numbers.
	return true;
}

function keepCharsInBag(sstr, bag){
	var i;
	var c;
	var sret = '';
	// Search through string's characters one by one.
	// If character is in bag, append to returnString.
	for (i = 0; i < sstr.length; i++){   
		c = sstr.charAt(i);
		if (bag.indexOf(c) >= 0) sret += c;
	}
	return sret;
}

function stripCharsInBag(s, bag){
	var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++){   
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

function button_mouseover(x) {
/*
	x.style.textDecoration='none';
	x.style.backgroundColor='#5580EE';
	x.style.color='#FFEE00';
	x.style.cursor='pointer';
*/
}

function button_mouseout(x) {
/*
	x.style.textDecoration='none';
	x.style.backgroundColor='#FFFFFF';
	x.style.color='#787878';
*/
}

function button_link(t) {
	if (document.Exam_Form){
		if (document.Exam_Form.ExamFinished){
			alert('Please use the "grade" button to continue.');
		} else {
			location.href = t
		}
	} else if (document.IDVer_Form){
		if (document.IDVer_Form.VerifyID){
			alert('Please use the "submit" button to continue.');
		} else {
			location.href = t
		}
	} else {
		location.href = t
	}
}

function Minutes(data) {
	for(var i=0;i<data.length;i++){
		if(data.substring(i,i+1)==":") break;
	}
	return(data.substring(0,i)); 
}

function Seconds(data) {
	for(var i=0;i<data.length;i++){
		if(data.substring(i,i+1)==":") break;
	}
	return(data.substring(i+1,data.length)); 
}

function Display(min,sec) {

	var disp;

	if(min<=9) disp=" 0";
	else disp=" ";

	disp+=min+":";

	if(sec<=9) disp+="0"+sec;
	else disp+=sec;

	return(disp); 
}

function Up() {

	cmin1=0;
	csec1=0;

	min1=0+Minutes(document.sw.beg1.value);
	sec1=0+Seconds(document.sw.beg1.value);

	UpRepeat(); 
}

function UpRepeat() {

	csec1++;

	if(csec1==60) { 
		csec1=0; cmin1++; 
	}

	WriteDiv("Timer", Display(cmin1,csec1));

	if((cmin1==min1)&&(csec1==sec1)){
		// alert("Stopwatch Stopped");
		if (document.forms[1]) {
			if (document.forms[1].ExamFinished) {
				document.forms[1].ExamFinished.click();
			} else if (document.forms[1].VerifyID) {
				document.forms[1].VerifyID.click();
			} else {
				document.forms[1].submit();
			}
		} else {
			document.forms[0].submit();
		}
	} else {
		up=setTimeout("UpRepeat()",1000); 
	}
}

function Down() {

	if (document.sw){
		if (document.sw.beg2){
			cmin2=1*Minutes(document.sw.beg2.value);
			csec2=0+Seconds(document.sw.beg2.value);
			if ((cmin2 > 0) || (csec2 > 0)) {
				DownRepeat(); 
			}
		}
		if (document.sw.maxsecs){
			if (document.sw.maxsecs.value){
				cmin1=0;
				csec1=0;

				min1=1*Minutes(document.sw.maxsecs.value);
				sec1=0+Seconds(document.sw.maxsecs.value);
				if ((min1 > 0) || (sec1 > 0)) {
					UpRepeat(); 
				} 
			} 
		} 
	}
}

function DownRepeat() {

	if ((csec2 > 0) || (cmin2 > 0)){
		csec2--;
	} else {
		return true;
	}
	
	if(csec2==-1) { 
		csec2=59; cmin2--; 
	}
	WriteDiv("Timer", Display(cmin2,csec2));

	if ((cmin2) || (csec2)){
		down=setTimeout("DownRepeat()",1000); 
	} else {
		var mike=null;
	}
}

function checktime() {
	var x = parseInt(cmin2);
	var y = parseInt(csec2);
	if ((x) || (y)){
		if (x + y != 0) {
			alert("You must stay on this page an additional " + Display(cmin2, csec2) + " before you can continue.");
			try {
				cancelBubble;
			}
			catch (error) {
				// Nothing
				x = 0;
			}
			return false;
		} else {
			if (document.Exam_Form){
				if (document.Exam_Form.ExamFinished){
					alert('Please use the "grade" button to continue.');
				} else if (document.sw.nexturl){
					window.location.href=document.sw.nexturl.value;
				}
			} else if (document.IDVer_Form){
				if (document.IDVer_Form.VerifyID){
					alert('Please use the "submit" button to continue.');
				} else if (document.sw.nexturl){
					window.location.href=document.sw.nexturl.value;
				}
			} else if (document.sw.nexturl){
				window.location.href=document.sw.nexturl.value;
			}
		}
	} else {
		if (document.sw){
			if (document.Exam_Form){
				if (document.Exam_Form.ExamFinished){
					alert('Please use the "grade" button to continue.');
				} else if (document.sw.nexturl.value){
					window.location.href=document.sw.nexturl.value;
				}
			} else if (document.IDVer_Form){
				if (document.IDVer_Form.VerifyID){
					alert('Please use the "submit" button to continue.');
				} else if (document.sw.nexturl.value){
					window.location.href=document.sw.nexturl.value;
				}
			} else if (document.sw.nexturl.value){
				window.location.href=document.sw.nexturl.value;
			}
		}
	}
	return true;
}


function Align_Footer() {
	var ht = Get_Height();
	sht = document.documentElement.scrollHeight;
	var maxHt = 2000;
	if (ht > maxHt) ht = maxHt;
	var gutter = 2;

	// alert('here 1');

	if (document.getElementById) { 
		var BodBot = document.getElementById("Body_Bottom");
		var Foot = document.getElementById("footer");
		var BSpace = document.getElementById("BSpacer");
		var Container = document.getElementById("container");
		var MainContent = document.getElementById("maincontent");
		var theImportant = document.getElementById("BottomText");
		var BottomLinks = document.getElementById("LinkB");
		var Header = document.getElementById("header");
		
		if (Header) {
			HeadHt = Header.scrollHeight;
			HeadTop = Header.scrollTop;
		} else {
			HeadHt = 0;
			HeadTop = 0;
		}


		var i = 0;
		if (theImportant) i = theImportant.offsetHeight;

		if ((MainContent)) {
			mHt = MainContent.offsetHeight;
			if (MainContent.scrollHeight > MainContent.offsetHeight) {
				//alert('10: MainContent.offsetHeight=' + MainContent.offsetHeight + ' MainContent.scrollHeight=' + MainContent.scrollHeight);
				MainContent.style.height = MainContent.scrollHeight;
				mHt = MainContent.scrollHeight;
			}
			if (Foot) {
				//alert('11: ht=' + ht + ' Foot.offsetTop=' + Foot.offsetTop + ' Foot.scrollHeight=' + Foot.scrollHeight + ' BSpace.height='  + BSpace.height + ' Foot.scrollTop=' + Foot.scrollTop + ' Foot.scrollHeight=' + Foot.scrollHeight);
				if (ht > Foot.offsetTop + Foot.scrollHeight + gutter){
					//alert('Setting BodyBot Height to ' + (ht - Foot.offsetTop - Foot.scrollHeight - gutter));
					BodBot.style.height = ht - Foot.offsetTop - Foot.scrollHeight - gutter;
					mHt = mHt + (ht - Foot.offsetTop - Foot.scrollHeight - gutter);
				}
			}
			if (MainContent.scrollHeight > MainContent.offsetHeight) {
				//alert('12: MainContent.offsetHeight=' + MainContent.offsetHeight + ' MainContent.scrollHeight=' + MainContent.scrollHeight);
				MainContent.style.height = mHt;
			}
			if (theImportant){
				if (BottomLinks){
					theImportant.style.top = BottomLinks.offsetTop + BottomLinks.scrollHeight;
				} else {
					if (Foot) {
						theImportant.style.top = Foot.offsetTop + Foot.scrollHeight;
					}
				}
			}
			if (Container){
				if (Container.scrollHeight > Container.offsetHeight) {
					//alert('30: Container.offsetHeight=' + Container.offsetHeight + ' Container.scrollHeight=' + Container.scrollHeight);
					Container.style.height = Container.scrollHeight;
				}
			}
		}
	} else if (document.layers) {
		var t = eval('document.BSpacer');
		ht = ht - t.pageY;
		t.height = ht - gutter; 
	} else {
		var t = document.all['BSpacer'];
		ht = ht - t.y;
		t.height = ht - gutter; 
	}
	return true;
}


function MM_CheckFlashVersion(reqVerStr,msg){
	with(navigator){
		var isIE  = (appVersion.indexOf("MSIE") != -1 && userAgent.indexOf("Opera") == -1);
		var isWin = (appVersion.toLowerCase().indexOf("win") != -1);
		if (!isIE || !isWin){  
			var flashVer = -1;
			if (plugins && plugins.length > 0){
				var desc = plugins["Shockwave Flash"] ? plugins["Shockwave Flash"].description : "";
				desc = plugins["Shockwave Flash 2.0"] ? plugins["Shockwave Flash 2.0"].description : desc;
				if (desc == "") flashVer = -1;
				else{
					var descArr = desc.split(" ");
					var tempArrMajor = descArr[2].split(".");
					var verMajor = tempArrMajor[0];
					var tempArrMinor = (descArr[3] != "") ? descArr[3].split("r") : descArr[4].split("r");
					var verMinor = (tempArrMinor[1] > 0) ? tempArrMinor[1] : 0;
					flashVer =  parseFloat(verMajor + "." + verMinor);
				}
			}
			// WebTV has Flash Player 4 or lower -- too low for video
			else if (userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 4.0;
			var verArr = reqVerStr.split(",");
			var reqVer = parseFloat(verArr[0] + "." + verArr[2]);
			if (flashVer < reqVer){
				if (confirm(msg))
				window.location = "http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash";
			}
		}
	}
}


<!-- Franklin's Javascript functions //-->
function MM_CheckFlashVersion(reqVerStr,msg){
  with(navigator){
    var isIE  = (appVersion.indexOf("MSIE") != -1 && userAgent.indexOf("Opera") == -1);
    var isWin = (appVersion.toLowerCase().indexOf("win") != -1);
    if (!isIE || !isWin){  
      var flashVer = -1;
      if (plugins && plugins.length > 0){
        var desc = plugins["Shockwave Flash"] ? plugins["Shockwave Flash"].description : "";
        desc = plugins["Shockwave Flash 2.0"] ? plugins["Shockwave Flash 2.0"].description : desc;
        if (desc == "") flashVer = -1;
        else{
          var descArr = desc.split(" ");
          var tempArrMajor = descArr[2].split(".");
          var verMajor = tempArrMajor[0];
          var tempArrMinor = (descArr[3] != "") ? descArr[3].split("r") : descArr[4].split("r");
          var verMinor = (tempArrMinor[1] > 0) ? tempArrMinor[1] : 0;
          flashVer =  parseFloat(verMajor + "." + verMinor);
        }
      }
      // WebTV has Flash Player 4 or lower -- too low for video
      else if (userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 4.0;

      var verArr = reqVerStr.split(",");
      var reqVer = parseFloat(verArr[0] + "." + verArr[2]);
  
      if (flashVer < reqVer){
        if (confirm(msg))
          window.location = "http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash";
      }
    }
  } 
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

