var imgroot = "http://img.sparknotes.com/content/testprep/tests/";
var the_last_page = 0;

var myimages = new Array();
function preloading(){
        for (x=0; x>preloading.arguments.length; x++){
                myimages[x] = new Image();
                myimages[x].src = preloading.arguments[x];
        }
}
preloading(
        imgroot+"timer/0.gif",
        imgroot+"timer/1.gif",
        imgroot+"timer/2.gif",
        imgroot+"timer/3.gif",
        imgroot+"timer/4.gif",
        imgroot+"timer/5.gif",
        imgroot+"timer/6.gif",
        imgroot+"timer/7.gif",
        imgroot+"timer/8.gif",
        imgroot+"timer/9.gif"
);

function imageswap(daImage, daSrc){
	  var objStr,obj;
	  if(document.images){
	    if (typeof daImage == 'string') {
	      objStr = 'document.' + daImage;
	      obj = eval(objStr);
	      obj.src = daSrc;
	    } else if ((typeof daImage == 'object') && daImage && daImage.src) {
	      daImage.src = daSrc;
	    }
	  }
}


function rover(img_name, file_name) {
	var path = "";
	if(file_name==""){path = imgroot; file_name = img_name;}
	var dir = "";
	document[img_name].src=path+dir+file_name+"-over.gif";
}	

function rout(img_name, file_name) { 
	var path = "";
	if(file_name==""){path = imgroot; file_name = img_name;}
	var dir = "";
	document[img_name].src=path+dir+file_name+".gif";
}

function changeActionAndSubmit(newAction) {
 document.testform.action = newAction;
 document.testform.submit();
}

function changeValueAndSubmit(newValue) {
 document.testform.submit_type.value = newValue;
 document.testform.submit();
}

function changeValueAndSubmit1(newValue) {
 document.testform.submit_type.value = newValue;
 document.testform.submit();
}

function changeValueAndSubmit2(newValue) {
 if (confirm("You are about to submit your answers for this section.  After doing this, you will not be able to go back and change them.  Is this OK?")) {
	 document.testform.submit_type.value = newValue;
	 document.testform.submit();
 }
}

function set_answer_graphic (q_number, type) {
 var obj = eval("document.ansimg"+q_number);
 if (q_number < 10) {q_number = "0" + q_number;}
 var img = imgroot+"scantron/bubble_"+ type +"_"+ q_number +".gif";
 imageswap(obj,img);	
}

function there_is_an_answer_for (q_number) {
 var the_answer = 0;
 var obj;
 if (eval ("document.testform.a"+q_number+"c1text")) {
	// Fill in
	for (var j=1; j<5; j++) {
		obj = eval("document.testform.a"+q_number+"c"+j);
		for (var i=0; i<obj.length; i++) {
			if (obj[i].checked) {the_answer=1; return the_answer;}
		}
	}
 } else if (eval ("document.testform.cb"+q_number)) {
	// Because
	obj = eval ("document.testform.a"+q_number+"I");
	for (var i=0; i<obj.length; i++) { if (obj[i].checked) {the_answer=1; return the_answer;} }
	obj = eval ("document.testform.a"+q_number+"II");
	for (var i=0; i<obj.length; i++) { if (obj[i].checked) {the_answer=1; return the_answer;} }
	obj = eval ("document.testform.a"+q_number+"CE");
	if (obj.checked) {the_answer=1; return the_answer;}
 } else {
	// Standard
	obj = eval("document.testform.a"+q_number);
	for (var i=0; i<obj.length; i++) {
		if (obj[i].checked) {the_answer=1; return the_answer;}
	}
 }
 return the_answer;
}

function set_type (q_number, type) {
 if(eval("document.testform.anstype"+q_number+".value == \""+ type +"\"")) {
	 if (there_is_an_answer_for(q_number))
	 {
		 set_answer_graphic(q_number, "comp");
	     eval("document.testform.anstype"+q_number+".value = \"comp\";");
	 } else {
		 set_answer_graphic(q_number, "plain");
	     eval("document.testform.anstype"+q_number+".value = \"plain\";");
	 }
     var theimg = type+"img"+q_number;
     var thenewsrc;
	 var compactImg = document[theimg].src;
	 if (compactImg.indexOf("compact") != -1) 
	 {thenewsrc = imgroot+"buttons/"+type+"_compactimg_over.gif";}
	  else 
	 thenewsrc = imgroot+"buttons/"+type+"img_over.gif";
     imageswap(theimg, thenewsrc);
 } else {
	 var oldtype = eval("document.testform.anstype"+q_number+".value");
	 set_answer_graphic(q_number, type);
	 eval("document.testform.anstype"+q_number+".value = \""+ type +"\";");
	 if ((oldtype != "plain") && (oldtype != "comp")) {delight(oldtype,q_number)}
	 highlight(type,q_number);
 }
}



function set_answer (q_number) {
 if(eval("document.testform.anstype"+q_number+".value") == "plain") {
	set_answer_graphic(q_number, "comp");
	eval("document.testform.anstype"+q_number+".value = 'comp';");
	}
}

function clear_answers (q_number) {
 var obj;
 if (eval ("document.testform.a"+q_number+"c1text")) {
	// Fill in
	for (var j=1; j<5; j++) {
		obj = eval("document.testform.a"+q_number+"c"+j);
		for (var i=0; i<obj.length; i++) {obj[i].checked = 0;}
		eval("document.testform.a"+q_number+"c"+j+"text.value = \"\";");
	}
 } else if (eval ("document.testform.cb"+q_number)) {
	// Because
	obj = eval ("document.testform.a"+q_number+"I");
	for (var i=0; i<obj.length; i++) {obj[i].checked = 0;}
	obj = eval ("document.testform.a"+q_number+"II");
	for (var i=0; i<obj.length; i++) {obj[i].checked = 0;}
	obj = eval ("document.testform.a"+q_number+"CE");
	obj.checked = 0;
 } else {
	// Standard
	obj = eval("document.testform.a"+q_number);
	for (var i=0; i<obj.length; i++) {obj[i].checked = 0;}
 }

 if(eval("document.testform.anstype"+q_number+".value") == "comp") {
	set_answer_graphic(q_number, "plain");
	eval("document.testform.anstype"+q_number+".value = 'plain';");
 }
}

function set_flag (q_number) {
 set_type(q_number,"flag");
}

function set_guess (q_number) {
 set_type(q_number,"guess");
}

function highlight (type,q_number) {
 var thenewsrc;
 var compactImg = "" + document[type+"img"+q_number].src;
 if (compactImg.indexOf("compact") != -1) 
	{thenewsrc = imgroot+"buttons/"+type+"_compactimg";}
 else 
	thenewsrc = imgroot+"buttons/"+type+"img";
 if (eval("document.testform.anstype"+q_number+".value == \""+type+"\""))
 {thenewsrc += "_filled";}
 thenewsrc += "_over.gif";
 var theimg = type+"img"+q_number;
 imageswap(theimg, thenewsrc);
}


function delight (type,q_number) {
 var theimg = type+"img"+q_number;
 var thenewsrc;
 var compactImg = document[type+"img"+q_number].src;
 if (compactImg.indexOf("compact") != -1) 
 	{thenewsrc = imgroot+"buttons/"+type+"_compactimg";}
 else 
 	thenewsrc = imgroot+"buttons/"+type+"img";
 if(eval("document.testform.anstype"+q_number+".value") != type) {
  thenewsrc += ".gif";
  imageswap(theimg, thenewsrc);
 } else {
  thenewsrc += "_filled.gif";
  imageswap(theimg, thenewsrc);
 }
}

function fill_in (answer, q_number) {
 answer = answer.toLowerCase();
 var a_number = answer.charCodeAt(0) - 97;
 eval("document.testform.a"+q_number+"["+a_number+"].checked = 1;");
 set_answer(q_number);
}

function setFIans (q_number,column,value) {
	eval("document.testform.a"+q_number+"c"+column+"text.value = \""+value+"\";");
	set_answer(q_number);
}

function it_is_the_last_page (it_is) {
 if (it_is) {
        imageswap("submit_test", imgroot + "buttons/submit_test-solid.gif");
        var aString = "";
        var j=1;
        while (j<document.links.length) {
                aString += document.links[j].onmouseout;
                if (aString.indexOf("submit_test") != -1) {
                        document.links[j].onmouseout = null;
                        document.links[j].onmouseover = null;
                        break;
                }
                aString = "";
                j++;
        }
 }
 the_last_page = it_is;
 return true;
}

////////////////////////////////////////////////////////////////////////////////
//
// TIMER
//

function printTimer() {
    if (document.layers) {
        document.write('<form name="clockit">' +
                       '<input name="counter2" type="text" size="3"> </form>');
    } else if (document.all) {
        document.write('<span id="counter1"></span>');
    } else {
        document.write('<form name="clock">' +
                       '<input name="counter2" type="text" size="3"></form>');
    }
}

    	
function timer() {
    if (time == -1) {
    	alarm();
		if (! the_last_page) 
			imageswap("submit_test", imgroot + "buttons/submit_test-blink.gif");
		else
			imageswap("submit_test", imgroot + "buttons/submit_test-solid-blink.gif");
		var aString = "";
		var j=1;
		while (j<document.links.length) {
			aString += document.links[j].onmouseout;
			if (aString.indexOf("submit_test") != -1) {
				document.links[j].onmouseout = null;
				document.links[j].onmouseover = null;
				break;
			}
			aString = "";
			j++;
		}
		imageswap("timer1", imgroot + "timer/shim.gif");
		imageswap("timer2", imgroot + "timer/0_blink.gif");
		imageswap("timer3", imgroot + "timer/0_blink.gif");
		imageswap("timer4", imgroot + "timer/0_blink.gif");
    	time = time - 1;
		document.testform.time_left.value = time;
    	timerID = setTimeout("timer()", 1000);
    } else if (time < -1) {		
    	time = time - 1;
		document.testform.time_left.value = time;
    	timerID = setTimeout("timer()", 1000);
	} else {
    	displayTime();
    	time = time - 1;
    	timerID = setTimeout("timer()", 1000);
    }
}

function displayTime(clear) {
	var minutes = Math.floor(time/60);
	var minutes_tens = Math.floor(minutes/10);
		if (minutes_tens==0) minutes_tens = "shim"; 
	var minutes_ones = minutes%10;
	var seconds = time%60;
	var seconds_tens = Math.floor(seconds/10);
	var seconds_ones = seconds%10;
	
	if (document.timer1.src != imgroot + "timer/" + minutes_tens + ".gif") 
		imageswap("timer1", imgroot + "timer/" + minutes_tens + ".gif");
	
	if (document.timer2.src != imgroot + "timer/" + minutes_ones + ".gif") 
		imageswap("timer2", imgroot + "timer/" + minutes_ones + ".gif");

        if (document.timercolon.src != imgroot + "timer/colon.gif")
                imageswap("timercolon", imgroot + "timer/colon.gif");
	
	if (document.timer3.src != imgroot + "timer/" + seconds_tens + ".gif") 
		imageswap("timer3", imgroot + "timer/" + seconds_tens + ".gif");
	
	if (document.timer4.src != imgroot + "timer/" + seconds_ones + ".gif") 
		imageswap("timer4", imgroot + "timer/" + seconds_ones + ".gif");


        document.testform.time_left.value = time;
}

function alarm() {
    alert ('Time is up!  Click submit to store your answers for this section.');
}
