var RightChar = ':-)';
var WrongChar = 'X';
var StorySoFar = '';

var CurrentAnswer = '';
var GuessesSoFar = 0;
var CurrentNumber = 0;
var CurrentCorrect = 0;
var Points = 0;
var TotalSegments = 0;
var LastFive = '';
var SwitchFlag = 'PartText';

Segments = new Array();

var platform = 'win';

function Initialize(){

	if (navigator.appVersion.indexOf('Mac') != -1) {
		platform = 'mac';
	}

	if (platform == 'win'){
		for (i = 1; i < WinSegments.length; i++){
			Segments[i] = unescape(WinSegments[i]);
		}
	}
	else {
		for (i = 1; i < MacSegments.length; i++){
			Segments[i] = unescape(MacSegments[i]);
		}
	}

	TotalSegments = Segments.length - 1;

	CurrentNumber = 1;
	ShowQuestion();
	Points = 0;
	ThisQScore = 2;
	document.getElementById('QuizForm')
.Story.value = '';
	StorySoFar = '';
	document.getElementById('QuizForm')
.Result1.value = '';
	document.getElementById('QuizForm')
.Result2.value = '';
	document.getElementById('QuizForm')
.Result3.value = '';

	document.getElementById('QuizForm')
.Guess1.focus();

}

function ShowQuestion(){

//Deal with the new paragraph thing

	if (Segments[CurrentNumber] == '[NewPara]'){
		StorySoFar += unescape('%0D%0A%0D%0A');
		Segments[CurrentNumber] = unescape('%0D%0A%0D%0A');
		Points += 2;
		CurrentNumber++;
	}

//Deal with the last two segment situation
	if (CurrentNumber == TotalSegments - 1){

		var Temp = 1 + Math.floor(2 * Math.random());
		document.getElementById('QuizForm')
.Guess1.value = Segments[TotalSegments];
		document.getElementById('QuizForm')
.Guess2.value = Segments[TotalSegments];
		document.getElementById('QuizForm')
.Guess3.value = '';

		document.getElementById('QuizForm')
.elements[(Temp*Temp)].value = Segments[CurrentNumber];
		CurrentCorrect = Temp;
		CurrentAnswer = Segments[CurrentNumber];
		ThisQScore = 1;
		return;
	}
	

	var FirstDistractor = 0;
	var SecondDistractor = 0;
	var Range = TotalSegments - CurrentNumber;


	FirstDistractor = (CurrentNumber + 1) + Math.floor(Range  *  Math.random());
	while (Segments[FirstDistractor] == '[NewPara]'){
		FirstDistractor = (CurrentNumber + 1) + Math.floor(Range  *  Math.random());
	}

	SecondDistractor = FirstDistractor;
	while ((SecondDistractor == FirstDistractor)||(Segments[SecondDistractor] == '[NewPara]')){
		SecondDistractor = (CurrentNumber + 1) + Math.floor(Range  *  Math.random());
	}

	ThreeSegments = new Array(3);
	ThreeSegments[1] = Segments[CurrentNumber];
	ThreeSegments[2] = Segments[FirstDistractor];
	ThreeSegments[3] = Segments[SecondDistractor];

	CurrentAnswer = Segments[CurrentNumber];

	MixedSegments = new Array(3);

	var j = 3;
	var i = 1;
	var Temp = 0;
	for (i = 1; i < 4; i++)  {

		Temp = 1 + Math.floor(j  *  Math.random());
		MixedSegments[i] = ThreeSegments[Temp];

		for (k=Temp; k < j; k++) {
			ThreeSegments[k] = ThreeSegments[k+1];
		}
		j = j - 1;
	}

	for (i=1; i<4; i++){
		if (MixedSegments[i] == CurrentAnswer){
			CurrentCorrect = i;
		}
	}

	document.getElementById('QuizForm')
.Guess1.value = MixedSegments[1];
	document.getElementById('QuizForm')
.Guess2.value = MixedSegments[2];
	document.getElementById('QuizForm')
.Guess3.value = MixedSegments[3];
	document.getElementById('QuizForm')
.Result1.value = '';
	document.getElementById('QuizForm')
.Result2.value = '';
	document.getElementById('QuizForm')
.Result3.value = '';

	ThisQScore = 2;

}

function CheckAnswer(Chosen){

	if (CurrentNumber == TotalSegments){
		return;
	}

	if (CurrentCorrect == Chosen){
		StorySoFar += CurrentAnswer;

		if (CurrentNumber == 1){
			LastFive = Segments[1];
		}

		if (CurrentNumber == 2){
			LastFive = Segments[1] + Segments[2];
		}

		if (CurrentNumber == 3){
			LastFive = Segments[1] + Segments[2] + Segments[3];
		}

		if (CurrentNumber == 4){
			LastFive = Segments[1] + Segments[2] + Segments[3] + Segments[4];
		}

		if (CurrentNumber > 4){
				LastFive = Segments[CurrentNumber - 4] + Segments[CurrentNumber - 3] + Segments [CurrentNumber - 2] + Segments[CurrentNumber - 1] + Segments[CurrentNumber];
		}


		if (CurrentNumber == TotalSegments - 1){
			StorySoFar += Segments[TotalSegments];
			LastFive += Segments[TotalSegments];
		}

		if (SwitchFlag == 'WholeText'){
			document.getElementById('QuizForm')
.Story.value = StorySoFar;
		}
		else{
			document.getElementById('QuizForm')
.Story.value = LastFive;
		}
	
		CurrentNumber++;
		Points += ThisQScore;
		
		if (CurrentNumber < TotalSegments){
			var CurrentScore = Math.floor(100*Points/(2*(CurrentNumber-1)));
			document.getElementById('QuizForm')
.ScoreBox.value = CurrentScore + '%';
			ShowQuestion();
		}
		else{
			document.getElementById('QuizForm')
.Guess1.value = RightChar;
			document.getElementById('QuizForm')
.Guess2.value = RightChar;
			document.getElementById('QuizForm')
.Guess3.value = RightChar;
			document.getElementById('QuizForm')
.Result1.value = RightChar;
			document.getElementById('QuizForm')
.Result2.value = RightChar;
			document.getElementById('QuizForm')
.Result3.value = RightChar;
			var FinalScore = Math.floor(100*Points/((2*TotalSegments) - 3));
			document.getElementById('QuizForm')
.ScoreBox.value = FinalScore + '%';
		}	
	}
	else{
		document.getElementById('QuizForm')
.elements[(Chosen*3)-1].value = WrongChar;
		document.getElementById('QuizForm')
.ScoreBox.value = '';
		if (ThisQScore > 0){
			ThisQScore--;
		}
	}
}

function SwitchStuff(WhichButton){
	SwitchFlag = WhichButton;
	if (SwitchFlag == 'WholeText'){
		document.getElementById('QuizForm')
.Story.value = StorySoFar;
	}
	else{
		document.getElementById('QuizForm')
.Story.value = LastFive;
	}
}

WinSegments = new Array();

WinSegments[1] = 'El hombre ';
WinSegments[2] = 'es la medida ';
WinSegments[3] = 'de todas ';
WinSegments[4] = 'las cosas, de las ';
WinSegments[5] = 'que son ';
WinSegments[6] = 'en cuanto que son, ';
WinSegments[7] = 'y de las que ';
WinSegments[8] = 'no son en cuanto ';
WinSegments[9] = 'que no son. ';


MacSegments = new Array();

MacSegments[1] = 'El hombre ';
MacSegments[2] = 'es la medida ';
MacSegments[3] = 'de todas ';
MacSegments[4] = 'las cosas, de las ';
MacSegments[5] = 'que son ';
MacSegments[6] = 'en cuanto que son, ';
MacSegments[7] = 'y de las que ';
MacSegments[8] = 'no son en cuanto ';
MacSegments[9] = 'que no son. ';