
// JavaScript Document - Ink Blot Page -  Main Routines

// Other routines called are in 'zcommon.js'

// ************** Data *************************************************
var PNCrane = "Dr. Niles Crane> \n ";			// Dr. Crame Pefix
var PDap = "Daphne> \n ";						// Daphne Pefix
									
var doNext = 0;								// what to do next indicator
var done = false;							// test done

var dvalue = null;							// value of Display textbox (document.ibform.Display.value)
var iform = null;							// document.ibform.

var startTest = false;						// disable send response button until test started

var A, B, C, D;								// Test results										


// *********************************************************************
var inkCnt = 0;								// number of the ink blot
var numCard = 10;

var cardA = new Array();					// ink blot images

cardA[1]     = new Image(150, 100);
cardA[1].src = "images/card1.gif";;

cardA[2]     = new Image(150, 100);
cardA[2].src = "images/card2.gif";;

cardA[3]     = new Image(150, 100);
cardA[3].src = "images/card3.gif";

cardA[4]     = new Image(150, 100);
cardA[4].src = "images/card4.gif";

cardA[5]     = new Image(150, 100);
cardA[5].src = "images/card5.gif";

cardA[6]     = new Image(150, 100);
cardA[6].src = "images/card6.gif";

cardA[7]     = new Image(150, 100);
cardA[7].src = "images/card7.gif";

cardA[8]     = new Image(150, 100);
cardA[8].src = "images/card8.gif";

cardA[9]     = new Image(150, 100);
cardA[9].src = "images/card9.gif";

cardA[10]     = new Image(150, 100);
cardA[10].src = "images/card10.gif";

var cardback = new Image(150, 100);
cardback.src = "images/cardback.gif";

// *********************************************************************

function ComputeResults()  {					// compute and  display results
	var high, msg = "";
	var pre = "Congratulations! Your Done!\n\n";
	
	done = true;								// test done
	
	high = Math.max(A,B,C,D);
	
	if (A == high)      msg = rA[0];
	else if (B == high) msg = rA[1];
	else if (C == high) msg = rA[2];
	else if (D == high) msg = rA[3];
	
	else {
		alert("Error in ComputeResults()");
		return;
	}  // end else
	
	document.blot.src = cardback.src;
	
	dvalue.value = pre+"*** TEST RESULTS ***\n" + PNCrane + msg;
	
	ClearRadio();							// Clear radio buttons
	
	inkCnt = 0;
	doNext = 0;
} // end function
// *********************************************************************

function SaveResponse()  {
 	 if      (iform.test[3].checked)  D += 1;
 	 else if (iform.test[2].checked)  C += 1;
 	 else if (iform.test[1].checked)  B += 1;
 	 else if (iform.test[0].checked)  A += 1;
  	 else return false;
  
 	 ClearRadio();								// Clear radio buttons

 	 if (inkCnt >= numCard)  {
  		startTest = false;						// disable send response button
		ComputeResults();						// compute and  display results
  	} // end if
  
 	 else {
		inkCnt += 1;							// next ink blot					
  		InkBlot();								// display ink blot
  	} // end else
	
	return true;
} // end function
// *********************************************************************

// Caller Response Routine
function SendTest() {  
	var eFlag;
	
	if (done == true)  {
		alert('We are done with this test.  Please review your results in the display area.' +
		     '\n\nIf you think you will come out more sane,' +
				' if you try again, well ... OK.\n\nJust hit the "Start Test" button.');
		ClearRadio();							// Clear radio buttons
		return;
	} // end done
	
    if (startTest == false) {
		alert('My but aren\'t we eager to go?\n\n'+
		      'Please read the display for directions!');
		return;									// test not started yet
	}  // end if startTest
	
	if (doNext == 0 || doNext ==1) {  			// ** Do we need this ?????
	  alert("My but aren't we eager to go?\n\nPlease wait for an Ink Blot!");
	  return;
	} // end if 
	
	eFlag = SaveResponse()						// Save response
	if (eFlag == false)  {
		alert("Now we need to answer that question,  now don't we?");
		return;
	} // end if eFlag


 } // end function

// *************************************************************************

function InkBlot()  {
	var msg = "Ink Blot Number: " + inkCnt + " of 10.\n\n";

   if (inkCnt != 1) 	{ 									//1st time in
		var Dlen = dapC.length - 1;							//  Daphne comment array
		var eFlag = getRandom(6);							// random number in 'ans'
		
		if ( eFlag == false ) return;
		
		if ( ans == 1 || ans == 3 || ans == 5 )  {  		// Randomize it kindof
			eFlag = getRandom(Dlen);						// random number in 'ans'
			
			if ( eFlag == false ) return;
			
			msg += PDap + dapC[ans];						// once and a while Daphne says something
			msg += '\n\n' + PNCrane + nilesC + '\n\n';		// and Niles calms her
		} // kindof random
		
	} // 1st time in
	
	msg += inkA[inkCnt];
    document.blot.src = cardA[inkCnt].src;					// display ink blot
	dvalue.value = msg;
} // end function
// *********************************************************************

function ClearRadio()  {									// Clear radio buttons
	for (var i=0; i < iform.test.length; i++)  {
	  iform.test[i].checked = false;
	} // end for
} // end function
// *************************************************************************

function StartTest()  {
    if (doNext == 0) {
		done = false;				// clear the done flag
		dvalue.value = PNCrane + testDes;
		doNext = 1;					// display directions next
	} // end if
	
	else if (doNext == 1)  { 
		inkCnt = 1;					// 1st ink blot
 		InkBlot();					// display ink blot
		ClearRadio();				// Clear radio buttons
		A = 0; B = 0; C = 0; D = 0;	// Clear Results
		doNext = 2;					// i.e., doing ink blots - disables "Start Test" button
		startTest = true;			// enable send test response button
	} // end else
	
	else alert('There, there.\n\nWe want to hit the "Send Test Response" button, ' +
	           'now don\'t we?');
} // end function

// *************************************************************************

function WelcomeF() { 				//  Send Welcome
 	dvalue.value  =  PNCrane + introDr + PDap + introDap + PNCrane + introDr1;
	doNext = 0;
	return; 
} // end function
// *********************************************************************

// 1st Routine called upon load
function StartProcess()  {								// ***** Main Routine *****
 	iform = window.document.ibform;					// form
 	dvalue = window.document.ibform.Display;		// dvalue.value = Dap/Dr textarea
 	dvalue.value = "";								// clear Dap/Dr.display area
 	WelcomeF();										// Send Welcome																	
} // end function
// *********************************************************************






