var lionSet = new Array();
var beaverSet = new Array();
var otterSet = new Array();
var retrieverSet = new Array();
var bPrinted = false;

function personalityLetter(typeName) {
    var beaverLetters = "ABC";
		var otterLetters = "DEF";
		var lionLetters = "UVW";
		var retrieverLetters = "XYZ";
    var iLetter = Math.abs(Math.random() * 100) % 3;
		var cLetter = '';
		if( !bPrinted ) return cLetter; // nothing to do
		
		if( "otter" == typeName ) {
		    cLetter = '<u>' + otterLetters.charAt(iLetter) + '</u> ';
		}
		if( "lion" == typeName  ) {
		    cLetter = '<u>' + lionLetters.charAt(iLetter) + '</u> ';
		}
		if( "retriever" == typeName ) {
		    cLetter = '<u>' + retrieverLetters.charAt(iLetter) + '</u> ';
		}
		if( "beaver" == typeName ) {
		    cLetter = '<u>' + beaverLetters.charAt(iLetter) + '</u> ';
		}
		
		return cLetter;
}


function personalityTestStr() {
    populateLion();
		populateBeaver();
		populateOtter();
		populateRetriever();
		var bRowHighlighting = false;
    var sizeStr = bPrinted ? 'font-size:125%' : '';
    var testString = '<p>Complete the sentence with the descriptions you think most accurately describe you.<br/><b>I am...</b></p>';
		testString += '<form name="personalityquest" action="JavaScript:scorePersonality()" method="post">';
		
		testString += '<table summary="Personality Test" width=95% style="background-color:\'white\';' + sizeStr + '"><tr>';
		
		testString += '<td style="border:solid;border-color:\'green\'">';
		for(var ll=0; ll < 5; ll++ ) {
				testString += '<input type="checkbox" value="lion" /> ' + personalityLetter("lion");
				testString += lionSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="beaver"/> ' + personalityLetter("beaver");
				testString += beaverSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="otter"/> ' + personalityLetter("otter");
				testString += otterSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="retriever"/> ' + personalityLetter("retriever");
				testString += retrieverSet[ll] + '<br/>';
		} 
		testString += '</td>';
		
		testString += '<td>';
		for(var ll=5; ll < 10; ll++ ) {
				testString += '<input type="checkbox" value="otter"/> ' + personalityLetter("otter");
				testString += otterSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="retriever"/> ' + personalityLetter("retriever");
				testString += retrieverSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="lion" /> ' + personalityLetter("lion");
				testString += lionSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="beaver"/> ' + personalityLetter("beaver");
				testString += beaverSet[ll] + '<br/>';
		} 
		testString += '</td></tr><tr>';

		testString += '<td>';
		for(var ll=10; ll < 15; ll++ ) {
				testString += '<input type="checkbox" value="otter"/> ' + personalityLetter("otter");
				testString += otterSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="retriever"/> ' + personalityLetter("retriever");
				testString += retrieverSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="lion" /> ' + personalityLetter("lion");
				testString += lionSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="beaver"/> ' + personalityLetter("beaver");
				testString += beaverSet[ll] + '<br/>';
		} 
		testString += '</td>';

		testString += '<td  style="border:solid;border-color:\'green\'">';
		for(var ll=15; ll < 20; ll++ ) {
				testString += '<input type="checkbox" value="beaver" /> ' + personalityLetter("beaver");
				testString += beaverSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="lion" /> ' + personalityLetter("lion");
				testString += lionSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="retriever" /> ' + personalityLetter("retriever");
				testString += retrieverSet[ll] + '<br/>';
				testString += '<input type="checkbox" value="otter" /> ' + personalityLetter("otter");
				testString += otterSet[ll] + '<br/>';
		} 
		testString += '</td></tr></table>';

		if( bPrinted ) {
		    testString += '</form>';

				testString += '<table summary="Personality" border="1"><tr><th>Melancholy</th><th>Sanguine</th><th>Choleric</th><th>Phlegmatic</th></tr>\n';
				testString += '<tr><td>Total <u>A</u>, <u>B</u>, and <u>C</u></td><td>Total <u>D</u>, <u>E</u>, and <u>F</u></td><td>Total <u>U</u>, <u>V</u>, and <u>W</u></td><td>Total <u>X</u>, <u>Y</u>, and <u>Z</u></td></tr>';
				testString +=  '<tr><td>______________    </td><td>______________    </td><td>______________    </td><td>______________    </td></tr></table>';
		} else {
		    testString += '<input type="submit" value="Tally" /><input type="reset" value="Start Over" />';
				testString += '<input type="button" value="Printer-Ready Version" onclick="JavaScript:printableVersion();"/></form>';
		}
		
		return testString;
}

function printableVersion() {
    bPrinted = true;
		
    var win = window.open("", "Printable", 
         "width=1000,height=600,status,resizable,scrollbars,menubar");
    win.document.open();
		win.document.write('<p>Use your browser Print to print this page.</p>');
		win.document.write( personalityTestStr() );
		win.document.close();
		
		bPrinted = false;
}

function scorePersonality() {
    var countLion = 0;
		var countOtter = 0;
		var countBeaver = 0;
		var countRetriever = 0;
    var win = window.open("", "Profile", 
         "width=1000,height=400,status,resizable,scrollbars,menubar");
    
    for(var ii=0; ii < document.personalityquest.length; ii++) {
		     if( document.personalityquest[ii].checked && document.personalityquest[ii].value == "lion" )
				    countLion++;
		     if( document.personalityquest[ii].checked && document.personalityquest[ii].value == "otter" )
				    countOtter++;
		     if( document.personalityquest[ii].checked && document.personalityquest[ii].value == "beaver" )
				    countBeaver++;
		     if( document.personalityquest[ii].checked && document.personalityquest[ii].value == "retriever" )
				    countRetriever++;
		}
		win.document.open();

    win.document.write('<body><center><p>Here are the results of your profile for printing.  Simply choose to print this page from your browser File menu.</p></center>\n');
		win.document.write('<table summary="Personality Profile" border="0">\n');
		win.document.write('<tr><th>Your Results</th>');
		for(var cc=2; cc<42; cc=cc+2) {
		    win.document.write('<th>' + cc + '</th>');
		}
		win.document.write('</tr>\n');

	  win.document.write( stringRow(countLion, "Lion/Choleric") );
	  win.document.write( stringRow(countOtter, "Otter/Sanguine") );
	  win.document.write( stringRow(countBeaver, "Beaver/Melancholy") );
	  win.document.write( stringRow(countRetriever, "Golden Retriever/Phlegmatic") );

		win.document.write('</table>\n');
		win.document.write('<p>Reference table of the four personality types</p>');
		win.document.write('<table summary="Personality Reference">');
    win.document.write('<tr><th>Gary&nbsp;Smalley</th><td bgColor="gold">Lion</td><td bgColor="lightblue">Otter</td><td bgColor="red">Golden Retriever</td><td bgColor="brown">Beaver</td></tr>');
		win.document.write('<tr><th>Greek or Tim&nbsp;LaHaye</th><td>Choleric</td><td>Sanguine</td><td>Phlegmatic</td><td>Melancholy</td></tr>');
		win.document.write('<tr><th>DISC</th><td>[D]ominance</td><td>[I]nfluencing Others</td><td>[S]teadiness</td><td>[C]ompliance - to their standard</td></tr>');
		win.document.write('<tr><th>LEAD</th><td>[L]eader</td><td>[E]xpressor</td><td>[D]ependable</td><td>[A]nalyst</td></tr>');
				
		win.document.write('</table>\n');

                win.document.write('<p>For more information on this subject,');  
                win.document.write('see<u>The Spirit-Controlled');
                win.document.write(' Temperament</u> by Tim LaHaye');
								win.document.write(' or, the <a href="http://www.oneishy.com/personality/">OneIshy</a> website</p>');

		win.document.close();
}

function stringRow(sz, nomen) {
   var score = sz*2;
   var strRow = '<tr><th>' + nomen + ' (' + score + ')</th>';
	 for(var ii=1; ii<sz+1; ii++) {
	     strRow = strRow + '<td align=\'right\' bgColor=\'blue\'><b>II]</b></td>';
	 }
	 for(var ii=sz; ii<21; ii++) {
	     strRow = strRow + '<td>  </td>';
	 }
	 strRow = strRow + '</tr>\n';
	 return strRow;
}


function populateLion() {
    if( lionSet == null )
		   lionSet = new Array();
		if( lionSet.length > 1 ) return; // nothing to do
		
		lionSet[lionSet.length] = "Happy to be in a position of authority";
		lionSet[lionSet.length] = "Confident";
		lionSet[lionSet.length] = "Firm";
		lionSet[lionSet.length] = "Pleased to take on a challenge";
		lionSet[lionSet.length] = "Pleased to be known as a problem solver";
		lionSet[lionSet.length] = "Bold";
		lionSet[lionSet.length] = "Goal driven";
		lionSet[lionSet.length] = "Strong willed";
		lionSet[lionSet.length] = "Self reliant";
		lionSet[lionSet.length] = "Persistent";
		lionSet[lionSet.length] = "The kind who takes charge";
		lionSet[lionSet.length] = "Determined";
		lionSet[lionSet.length] = "Enterprising";
		lionSet[lionSet.length] = "Competitive";
		lionSet[lionSet.length] = "Productive";
		lionSet[lionSet.length] = "Purposeful";
		lionSet[lionSet.length] = "Adventerous";
		lionSet[lionSet.length] = "Independent";
		lionSet[lionSet.length] = "Controlling";
		lionSet[lionSet.length] = "Oriented toward action";
}

function populateBeaver() {
    if( beaverSet == null )
		   beaverSet = new Array();
		if( beaverSet.length > 1 ) return; // nothing to do
		
		beaverSet[ beaverSet.length ] = "Happy following instructions";
		beaverSet[ beaverSet.length ] = "Consistent";
		beaverSet[ beaverSet.length ] = "Reserved";
		beaverSet[ beaverSet.length ] = "Practical";
		beaverSet[ beaverSet.length ] = "Factual";
		beaverSet[ beaverSet.length ] = "a Perfectionist";
		beaverSet[ beaverSet.length ] = "Detail oriented";
		beaverSet[ beaverSet.length ] = "Inquisitive";
		beaverSet[ beaverSet.length ] = "Persistent";
		beaverSet[ beaverSet.length ] = "Sensitive in my feelings";
		beaverSet[ beaverSet.length ] = "Accurate";
		beaverSet[ beaverSet.length ] = "Controlled";
		beaverSet[ beaverSet.length ] = "Predictable";
		beaverSet[ beaverSet.length ] = "Orderly";
		beaverSet[ beaverSet.length ] = "Conscientious";
		beaverSet[ beaverSet.length ] = "Discerning";
		beaverSet[ beaverSet.length ] = "Analytical";
		beaverSet[ beaverSet.length ] = "Precise";
		beaverSet[ beaverSet.length ] = "Scheduled";
		beaverSet[ beaverSet.length ] = "Deliberate";
}

function populateOtter() {
    if( otterSet == null )
		   otterSet = new Array();
		if( otterSet.length > 1 ) return; // nothing to do
		
		otterSet[ otterSet.length ] = "Enthusiastic";
		otterSet[ otterSet.length ] = "a Visionary";
		otterSet[ otterSet.length ] = "Energetic";
		otterSet[ otterSet.length ] = "a Promoter";
		otterSet[ otterSet.length ] = "One who mixes easily in a crowd";
		otterSet[ otterSet.length ] = "Fun-loving";
		otterSet[ otterSet.length ] = "Spontaneous";
		otterSet[ otterSet.length ] = "Creative - a new ideas person";
		otterSet[ otterSet.length ] = "Generally optimistic";
		otterSet[ otterSet.length ] = "Infectious with my laughter";
		otterSet[ otterSet.length ] = "a Risk-taker";
		otterSet[ otterSet.length ] = "a Motivator";
		otterSet[ otterSet.length ] = "a Verbal person (I enjoy talking)";
		otterSet[ otterSet.length ] = "very Friendly";
		otterSet[ otterSet.length ] = "One who enjoys being popular";
		otterSet[ otterSet.length ] = "One who likes variety";
		otterSet[ otterSet.length ] = "One who enjoys change";
		otterSet[ otterSet.length ] = "Happy in a group";
		otterSet[ otterSet.length ] = "an Initiator (I like to start things)";
		otterSet[ otterSet.length ] = "Inspirational";
}

function populateRetriever() {
    if( retrieverSet == null )
		   retrieverSet = new Array();
		if( retrieverSet.length > 1 ) return; // nothing to do
		
		retrieverSet[ retrieverSet.length ] = "Sensitive in my feelings";
		retrieverSet[ retrieverSet.length ] = "Generally calm";
		retrieverSet[ retrieverSet.length ] = "Generally not demanding";
		retrieverSet[ retrieverSet.length ] = "One who avoids confrontation";
		retrieverSet[ retrieverSet.length ] = "One who enjoys routine";
		retrieverSet[ retrieverSet.length ] = "Warm and relational";
		retrieverSet[ retrieverSet.length ] = "Adaptable";
		retrieverSet[ retrieverSet.length ] = "Thoughtful";
		retrieverSet[ retrieverSet.length ] = "Patient";
		retrieverSet[ retrieverSet.length ] = "a Good listener";
		retrieverSet[ retrieverSet.length ] = "Loyal";
		retrieverSet[ retrieverSet.length ] = "Even-keeled, steady";
		retrieverSet[ retrieverSet.length ] = "One who often gives in";
		retrieverSet[ retrieverSet.length ] = "Indecisive";
		retrieverSet[ retrieverSet.length ] = "One who dislikes change";
		retrieverSet[ retrieverSet.length ] = "One who has a dry sense of humor";
		retrieverSet[ retrieverSet.length ] = "Sympathetic";
		retrieverSet[ retrieverSet.length ] = "Nuturing";
		retrieverSet[ retrieverSet.length ] = "Tolerant";
		retrieverSet[ retrieverSet.length ] = "a Peace-maker";
}


