if (document.all) { 
docObj = "document.all."
styleObj = ".style"
ie =true
}

else
{
docObj = "document."
styleObj = ""
ie =false
}


var formerVerb;
var sound = false;// true; //
var correct = 0
var currentVerb;
var firstTime = true;
var missedAnswers = false;
var missedVerbIndex;
var attempts = 0;
var enteredAnswer;
var mode = 0;
var verbList = new Array()
var missedVerbList = new Array()
var backupMissedVerbList;
var options = new Array()
var atonedMsg="You have redemmed yourself! You have correctly entered all the participle that you missed. You may continue to reenter these missed participlesor you can conjugate all verbs by selecting 'conjugate all verbs'."
var count = 0
function parse(){
	oldloc=-1
	olddefloc =-1
	loc = verbs.indexOf(" ");
	while(loc != -1){
		var verb = new Object()
		verb.conjugations = new Array();
		verb.infinitive = verbs.slice(oldloc + 1,loc);
		option = new Option(verb.infinitive, "",false,false);

		//alert(verb.infinitive+loc+oldloc);
		oldloc=loc;
		loc = verbs.indexOf(" ",oldloc+1);
		verb.participle = verbs.slice(oldloc + 1,loc);
		oldloc=loc;
		loc = verbs.indexOf(" ",oldloc+1);
		verb.count = count;
		verbList.push(verb);
		count++
	}
	nextVerb()
	document.getElementById("textfield").focus();
}

function clone(ar){
	return ar.slice(0,ar.length)
}

function removeIndex(ar, i){
	ar.splice(i,1);
	if (ar.length == 0){
		missedVerbList = clone(backupMissedVerbList);
		elem = document.getElementById("mess")
		elem.innerHTML = atonedMsg;
		setAnswer("")
		
	}
}



function enter(){
//	alert("hi")
	enteredAnswer = document.getElementById("textfield").value;
//	var = ;
	var answer = currentVerb.participle
	if (enteredAnswer == answer){
		correct++
		setCorrect();
		if (mode == 2){
			removeIndex(missedVerbList, missedVerbIndex)	
		}
	}
	else{ 		
		setWrong()
		var missedVerb = new Object()
		missedVerb.verb = currentVerb;
		missedVerbList.push(missedVerb)
		if (!missedAnswers)
			enableMissedVerbs()
	}
	
	document.getElementById("textfield").value = "";
	formerVerb = currentVerb;
	attempts++;
	displayResults();
	nextVerb()

}

function displayResults(){
	pp = document.getElementById("results");
	v = parseInt(correct/attempts * 100) // Math.parseInt()
	pp.innerHTML = "<strong>" + correct + "/" + attempts + " (" + v + "%)</strong>"
}

function enableMissedVerbs(){
	elem = document.getElementById("missedMessage").disabled= false;
	elem = document.getElementById("missed").disabled= false;
	missedAnswers = true
}

function getVerbHTML(v,i){
	if (sound){
		first = "<a onMouseOver=\"playSound(event," + (i *6) + ")\" style=\"text-decoration: none\"><strong><font color=\"#3333ff\">" + v + "</font></strong></a>"
	}
	else first = "<b>" + v + "</b>"
	if (examples){
	return first + "&nbsp;<a onMouseOut=\"popDown('')\" onMouseOver=\"popUp(event,'A" + i + "')\" style=\"text-decoration: none\"><font color=\"#6666FF\">**</font></a>";
	}
	else return first;
}

function setVerbDisplay(){
	elem = document.getElementById("verb");
	elem.innerHTML = getVerbHTML(currentVerb.infinitive,currentVerb.count) 	

}

function nextVerb(){
	if (mode == 0){
		found = false;
//		while(!found){

			var verbIndex = Math.floor(Math.random() * verbList.length);
			currentVerb = verbList[verbIndex]
			setVerbDisplay()
//		}
	}
	else if (mode == 1){
		setVerbDisplay()
	}
	else if (mode == 2){
		missedVerbIndex = Math.floor(Math.random() * missedVerbList.length);	
		missedVerb = missedVerbList[missedVerbIndex]
		currentVerb = missedVerb.verb;
		setVerbDisplay()
	}
}

function setAnswer(v){
		elem = document.getElementById("answer")
		elem.innerHTML = v;

}

function setPronoun(v){
		elem = document.getElementById("pronoun")
		elem.innerHTML = "<b>" + v + "</b>";

}


function setUserAnswer(v){
		elem = document.getElementById("userAnswer")
		elem.innerHTML = v;
}

function getAnswer(){ 	
	var output = "<strong>"+ currentVerb.participle + "</strong>"
	if (sound){
		output = "<a onMouseOver=\"playSound(event," + (currentVerb.count *2 +  1) + ")\" style=\"text-decoration: none\"><font color=\"#3333ff\">" + output +"</font></a>"
		//alert(output)
	}
	
	return output;
}


function setCorrect(){
		elem = document.getElementById("image")
		elem.innerHTML = "<img src='smile.gif' width='28' height='28' align='absmiddle'>&nbsp;<font color='#6600CC'><strong>Correct!</strong></font>&nbsp;&nbsp;"
		elem = document.getElementById("answer")
		
		elem.innerHTML = getAnswer() + " (" +getVerbHTML(currentVerb.infinitive,currentVerb.count) +  ")" ;
//"<a onMouseOut=\"popDown('')\" onMouseOver=\"popUp(event,'A0')\" style=\"text-decoration: none\"><font color=\"#6666FF\">##</font></a> " +
}

function setWrong(){
		elem = document.getElementById("image")
		elem.innerHTML = "<font color='#9900FF'><strong>Oops!</font>&nbsp;&nbsp;"

		elem = document.getElementById("answer")
		elem.innerHTML = getAnswer() + " (" +getVerbHTML(currentVerb.infinitive,currentVerb.count) + ")&nbsp;&nbsp;<i>You said </i>'" + enteredAnswer + "'.";

}

function check(elem,e) {
	if (ie){
		value = window.event.keyCode;
	}
	else value = e.keyCode;

//alert(value)
	if (value == 40){
		if (ie){
		range = elem.value
		range = document.selection.createRange();
		range.moveStart("character", -1);
		range.text = moveDown(range.text)
		}
		else {		
		e.cancelBubble = true;
		
		//e.cancelBubble = true;
		end = elem.selectionEnd
		ch = elem.value.substr(end-1,1)
		newch = moveDown(ch)
		size = elem.value.length
		end = elem.selectionEnd
		elem.value = elem.value.substr(0,end-1) + newch + elem.value.substr(end,size)
		elem.selectionStart = end
		elem.selectionEnd = end - 1		

		}

	}
	else if (value == 38){
		if (ie){
		range = elem.value
		range = document.selection.createRange();
		range.moveStart("character", -1);
		range.text = moveUp(range.text)
		}
		else {
//		
		end = elem.selectionEnd
//		
		ch = elem.value.substr(end-1,1)
		newch = moveDown(ch)
		size = elem.value.length
//alert("hi" + end + size)
		elem.value = elem.value.substr(0,end-1) + newch + elem.value.substr(end,size)
		if (end == size)// this corrects strange netscape bug
			end++
		elem.selectionStart = end		
//		elem.selectionEnd = end		
}

//
//		

	}

	
}


function changeMode(element, value){
//	alert("howdy"+value)
	mode = value
	if (mode == 1){
		element = document.getElementById("list")
		document.getElementById("specific").checked = true;
		 for(var i = 0; i < element.options.length; i++){
			if (element.options[i].selected){ 				value += element.options[i].value + " ";
				currentVerb = verbList[i];
			}
		}

	}
	if (mode == 2){
		backupMissedVerbList = clone(missedVerbList);
		setAnswer("")
	}
	nextVerb()
}

function popDown() {
 document.getElementById(id).style.visibility = "hidden"
playingSeg = -1
	
}


function popUp(evt, ggg) { //ie = true;	
id = ggg
//p = ggg.innerHTML
//alert(p)
offset = 110
	if (ie){
		
		popUpWin = eval(docObj + ggg + styleObj)
		 popUpWin.top = parseInt(evt.y) + document.body.scrollTop + 5
 	 	popUpWin.left = Math.min(Math.max(2, parseInt(evt.x)) + 10, 400) - offset
		popUpWin.visibility = "visible" 		
		popUpWin.status = ""
		//alert("i")	
	}
 else{
   if (window.innerWidth < evt.pageX + 310){
	xc = evt.pageX - 301 
	}
	else xc = evt.pageX - offset

	if (window.innerHeight + window.pageYOffset < evt.pageY + 60){
		xy = evt.pageY - 60

	}
	else xy = evt.pageY + 5

	document.getElementById(id).style.top = xy;
	document.getElementById(id).style.left = xc +3; 
   document.getElementById(id).style.visibility = 'visible'

	}


}

function playSound(evt,value) {
	alert(value)
}



function moveUp(ch)
  {
	i = ch;
	if (ch == 'e')
	  i = 'ë';
	else if (ch == 'ë')
		i = 'ê';    
	else if (ch == 'ê')
		i = 'è';
	else if (ch == 'è')
		i = 'é';
	else if (ch == 'é')
		i = 'e';
 	else if (ch == 'a')
		i = 'æ';
	else if (ch == 'æ')
      		i = 'â';
	else if (ch == 'â')
      		i = 'ä';
	else if (ch == 'ä')
      		i = 'à';
    	else if (ch == 'à')
      		i = 'á';
    	else if (ch == 'á')
      		i = 'a';
    else if (ch == 'i')
      i = 'ï';
    else if (ch == 'ï')
      i = 'î';
    else if (ch == 'î')
      i = 'ì';
	else if (ch == 'ì')
      i = 'í';
	else if (ch == 'í')
      i = 'i';
	else if (ch == 'o')
	  i = 'œ';
	else if (ch == 'œ')
      i = 'ô';
	else if (ch == 'ô')
      i = 'ò';
    else if (ch == 'ò')
      i = 'ó';
    else if (ch == 'ó')
      i = 'o';
	else if (ch == 'u')
	  i = 'û';
	else if (ch == 'û')
	  i = 'ù';
	else if (ch == 'ù')
	  i = 'ú';
    else if (ch == 'ú')
      i = 'u';  
    else if (ch == 'c')
      i = 'ç';  	
	else if (ch == 'ç')
      i = 'c';  	
    
    return i;
  }


function moveDown(ch)
  {
	i = ch      // éèêìíîâàæóúñòôùú

	if (ch == 'e')
      i = 'é';
    else if (ch == 'é')
      i = 'è';
    else if (ch == 'è')
      i = 'ê';
	else if (ch == 'ê')
	  i = 'ë';
	else if (ch == 'ë')
      i = 'e';

    else if (ch == 'a')
      i = 'á';
    else if (ch == 'á')
      i = 'à';
    else if (ch == 'à')
      i = 'ä';
	else if (ch == 'ä')
      i = 'â';
	else if (ch == 'â')
	  i = 'æ';
	else if (ch == 'æ')
      i = 'a';

    else if (ch == 'i')
      i = 'í';
    else if (ch == 'í')
      i = 'ì';
    else if (ch == 'ì')
      i = 'î';
	else if (ch == 'î')
      i = 'ï';
	else if (ch == 'ï')
      i = 'i';

	else if (ch == 'o')
      i = 'ó';
    else if (ch == 'ó')
      i = 'ò';
    else if (ch == 'ò')
	  i = 'ô';
	else if (ch == 'ô')
	  i = 'œ';
	else if (ch == 'œ')
      i = 'o';
	else if (ch == 'u')
	  i = 'ú';
	else if (ch == 'ú')
	  i = 'ù';
	else if (ch == 'ù')
	  i = 'û';
    else if (ch == 'û')
      i = 'u';  	
    else if (ch == 'c')
      i = 'ç';  	
	else if (ch == 'ç')
      i = 'c';  	
        return i;
  }
