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

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

persons = new Array("yo&nbsp;", "tu&nbsp;", "&eacute;l/ella&nbsp;", "nosotros&nbsp;","vosotros&nbsp;","ellos/ellas&nbsp;");

//réussir réussis réussis réussit réussissons réussissez réussissent 
active = new Array(true, true, true, true, true, true);
var formerVerb;
var sound = false;// true; //
var correct = 0
var currentVerb;
var currentPerson;
var firstTime = true;
var missedAnswers = false;
var missedVerbIndex;
var pronounIndex;
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 conjugations that you missed. You may continue to reconjugate these missed verbs or you can conjugate all verbs by selecting 'conjugate all verbs'."
var count = 0
function parse(){
	for (i = 0; i < tensecount; i++){
		name = eval("tense" + i + "name")
		tenseList = eval("tense" + i);
		loadList(name, tenseList)
	}
}

function loadList(tenseName, verbs){
	oldloc=-1
	olddefloc =-1
	
	loc = verbs.indexOf(" ");
	var list = document.getElementById("list");
	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);
		if (ie)
			list.add(option)
		else list.add(option,null)
		//alert(verb.infinitive+loc+oldloc);
		oldloc=loc;
		loc = verbs.indexOf(" ",oldloc+1);
		verb.conjugations.push(verbs.slice(oldloc + 1,loc));
		//alert("conju"+verb.person1+loc+oldloc);
		oldloc=loc
		loc = verbs.indexOf(" ",oldloc+1);
		verb.conjugations.push(verbs.slice(oldloc + 1,loc));
		oldloc=loc
		loc = verbs.indexOf(" ",oldloc+1);
		verb.conjugations.push(verbs.slice(oldloc + 1,loc));
		oldloc=loc
		loc = verbs.indexOf(" ",oldloc+1);
		verb.conjugations.push(verbs.slice(oldloc + 1,loc));
		oldloc=loc
		loc = verbs.indexOf(" ",oldloc+1);
		verb.conjugations.push(verbs.slice(oldloc + 1,loc));
		oldloc=loc
		loc = verbs.indexOf(" ",oldloc+1);
		verb.conjugations.push(verbs.slice(oldloc + 1,loc));
		oldloc=loc
		loc = verbs.indexOf(" ",oldloc+1);
		verb.tense = tenseName;
		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 	hover(){
	if (showtimeID != 0)
		window.clearTimeout(showtimeID)
	hovering = true;
	//alert("ie" + ie)	
}

showtimeID = 0
function startExit(){

if (showtimeID != 0)
	window.clearTimeout(showtimeID)
	id = 'Show'
	showtimeID = setTimeout("noHover()",750);	
}
function 	noHover(){
	 document.getElementById('conjugations').style.visibility = "hidden"
}


function enter(){
//	alert("hi")
	enteredAnswer = document.getElementById("textfield").value;
//	var = ;
	var answer = currentVerb.conjugations[currentPerson]
	if (enteredAnswer == answer){
		correct++
		setCorrect();
		if (mode == 2){
			removeIndex(missedVerbList, missedVerbIndex)	
		}
	}
	else{ 		
		setWrong()
		var missedVerb = new Object()
		missedVerb.verb = currentVerb;
		missedVerb.person = currentPerson;
		missedVerbList.push(missedVerb)
		if (!missedAnswers)
			enableMissedVerbs()
	}
	viewer = document.getElementById("conjugationDisplay");
	viewer.innerHTML= "<em><strong><a onMouseOut=\"startExit()\" onMouseOver=\"displayConjuations(event)\" style=\"text-decoration: none\"><font color=\"#6666FF\">view</font></a></strong> conjugations<br>for " + currentVerb.infinitive + "</em>";
	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(){
	conju = currentVerb.conjugations[currentPerson]
	if (conju == "empty"){
		nextVerb();
	}
	pronounIndex = currentPerson;
	setPronoun(persons[pronounIndex]);
	elem = document.getElementById("verb");
	elem.innerHTML = getVerbHTML(currentVerb.infinitive,currentVerb.count) 	
	elem = document.getElementById("tense");
	elem.innerHTML = "&nbsp;(" + currentVerb.tense + ")"

}
function getPerson(){
	while (true){
		person = Math.floor(Math.random() * 6);
		if (active[person])
			return person;
	}
}

function nextVerb(){
	if (mode == 0){
		found = false;
//		while(!found){
			currentPerson = getPerson()
			var verbIndex = Math.floor(Math.random() * verbList.length);
			currentVerb = verbList[verbIndex]
			setVerbDisplay()
//		}
	}
	else if (mode == 1){
		currentPerson = getPerson()
		setVerbDisplay()
	}
	else if (mode == 2){
		missedVerbIndex = Math.floor(Math.random() * missedVerbList.length);	
		missedVerb = missedVerbList[missedVerbIndex]
		currentVerb = missedVerb.verb;
		currentPerson = missedVerb.person
		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 setAnswerTense(v){
		elem = document.getElementById("answerTense")
		elem.innerHTML = v;
}

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

function displayConjuations(evt){
	conju = formerVerb.conjugations[0]
//	pi = getP(conju);

	if (sound){
		pre = "<a onMouseOver=\"playSound(event," 		
		pre2 = ")\" style=\"text-decoration: none\"><strong><font color=\"#3333ff\">"
		post = "</font></a>"
		count = formerVerb.count;
		count1 = count + 1
		count2 = count + 2
		count3 = count + 3
		count4 = count + 4
		count5 = count + 5
		count6 = count + 6
	}
	else {
		pre = "<strong>"
		pre2 = ""
		post = "</strong>"
		count =""
		count1 = ""
		count2 = ""
		count3 = ""
		count4 = ""
		count5 = ""
		count6 = ""		
	}
	verbOutput = "<table width='100%' border='0'><tr> <div align='center'>" + pre + count + pre2 + formerVerb.infinitive + post + "</div></td></tr><tr><td> <div align='center'>" + pre + count1 + pre2 + persons[0] + conju + "</td></tr><tr> <td> <div align='center'>" + pre + count2 + pre2 + persons[1] + formerVerb.conjugations[1] + post + "</div></td></tr><tr><td><div align='center'>" + pre + count3 + pre2 +persons[2] + formerVerb.conjugations[2] + post + "</div></td></tr><tr><td width='50%'><div align='center'>" + pre + count4 + pre2 +persons[3] + formerVerb.conjugations[3] + post + "</div></td></tr><tr><td><div align='center'>" + pre + count5 + pre2 +persons[4] + formerVerb.conjugations[4] + post + "</div></td></tr><tr><td><div align='center'>" + pre + count6 + pre2 +persons[5] + formerVerb.conjugations[5] + post + "</div></td></tr></table>"
	verbDisplayer = document.getElementById("conjugations")
	verbDisplayer.innerHTML = verbOutput // "howdy" //
//	verbDisplayer.
	popUp(evt,"conjugations")

}

function setCorrect(){
		elem = document.getElementById("image")
		elem.innerHTML = "<img src='/images/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) + "&nbsp;" + currentVerb.tense + ")" ;
//"<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 changePersonSelection(element){
	if (element.checked){
		active[element.value] = true;
	}
	else{
		active[element.value] = false;
		if (!active[0] && !active[1] && !active[2] && !active[3] && !active[4] && !active[5] && !active[6] ){
			active[element.value] = true;
			element.checked = true;		
		}
		
	}
}

function moveUp(ch)
  {
	i = ch;
	if (ch == 'e')
		i = 'é';
	else if (ch == 'é')
		i = 'e';
 	else if (ch == 'a')
		i = 'á';
    	else if (ch == 'á')
      		i = 'a';
    else if (ch == 'i')
      i = 'í';
	else if (ch == 'í')
      i = 'i';
	else if (ch == 'o')
      i = 'ó';
    else if (ch == 'ó')
      i = 'o';
	else if (ch == 'u')
	  i = 'ú';
    else if (ch == 'ú')
      i = 'u';  
	else if (ch == 'n')
	  i = 'ñ';
	else if (ch == 'ñ')
	  i = 'n';
    
    return i;
  }


function moveDown(ch)
  {
	i = ch      

	if (ch == 'e')
      i = 'é';
    else if (ch == 'é')
      i = 'e';
    else if (ch == 'a')
      i = 'á';
    else if (ch == 'á')
      i = 'a';
    else if (ch == 'i')
      i = 'í';
    else if (ch == 'í')
      i = 'i';
    else if (ch == 'o')
      i = 'ó';
    else if (ch == 'ó')
      i = 'o';
	else if (ch == 'u')
	  i = 'ú';
	else if (ch == 'ú')
	  i = 'u';
	else if (ch == 'n')
	  i = 'ñ';
	else if (ch == 'ñ')
	  i = 'n';
       return i;
  }
