if (document.all) { 
docObj = "document.all."
styleObj = ".style"
ie =true
var appVer = navigator.appVersion.toLowerCase();
var iePos  = appVer.indexOf('msie');
version = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
       //is_major = parseInt(is_minor);
	//alert(is_minor)
}
else
{
docObj = "document."  
styleObj = ""
ie =false
}

var ie;
var version;
var readingid = 0;
function setReadingId(id){
	readingid = id;
}

function saveDefinition(event){
	//alert("Sorry! This feature has not been implemented yet.")
	var sentence;
	if (ie){
		event.scrElement.innerHTML
		sentence = contextMenuTarget.parentNode.innerText;
	}
	else{
		sentence = contextMenuTarget.parentNode.innerHTML.replace(/<[^>]+>/g,"");
	} 
	translation = eval("a" + contextMenuTarget.id);
	readingid = 0;
	language = "none";	
	//alert("here goes" + readingid + language + contextMenuTarget.parentNode.id + translation + contextMenuTarget.innerHTML + sentence);
	//DefinitionSaver.simpleTest();
	//DefinitionSaver.saveDefintion("1", "esp", "b2", "translation", "innerHTML", "sentence", callBack);
	DefinitionSaver.saveDefintion(readingid, language, contextMenuTarget.parentNode.id, translation, contextMenuTarget.innerHTML, sentence, callBack);
		//alert("I'm sorry. No savie" + result);
	//public boolean saveDefintion(readingId, language, sentenceid, translation, definition, sentence){
}

function callBack(result)
{ 
	alert("here's what happended" + result);
	if (!result)
		alert("You must be logged in to save a definition!")
}


function playSentence()
{
	if (parent.control.loaded ){
		desel()
		sentenceid = getSentenceId();
		var newtime;
		if (sentenceid == 0){
			newtime = 0;
		}
		else newtime = times[sentenceid - 1];
		endtime = times[sentenceid];
		parent.control.playSegment(newtime, endtime);
	}
}

function getSentenceId(){
	if (contextMenuTarget.nodeName == "A"){
		contextMenuTarget = contextMenuTarget.parentNode;
	}
	return contextMenuTarget.id.substring(1, contextMenuTarget.id.length)
}

function playFromHere()
{
	sentenceid = getSentenceId();
	play(sentenceid)
}

var selected = false

function desel() { 
	if(selected){
		selected.style.fontWeight= "normal";
		selected.style.borderBottom = "none";
		if (selected.hasChildNodes()){
			nodes = selected.childNodes;
			for (var i = 0; i < nodes.length; i++){
				nodeToDeselect = nodes[i];
				if (nodeToDeselect.nodeType == 1){ // 1 is an element type node
					nodeToDeselect.style.fontWeight= "normal";
				}
			}
		}

	}
}
function sel(elem) { 
	if (!ie || version >= 7){
		elem.style.borderBottomStyle = "solid"
		elem.style.borderBottomColor = "black"
		elem.style.borderBottomWidth = "1px"
	}
	//elem.style.fontWeight= "bold";
	elem.style.fontWeight= "bold";
	//elem.style.fontSize = "98%";
	selected = elem;
	if (elem.hasChildNodes()){
		nodes = elem.childNodes;
		for (var i = 0; i < nodes.length; i++){
			elem = nodes[i];
			if (elem.nodeType == 1){
				elem.style.fontWeight= "bold";
			}
		}
	}
}


/*function colorsentencereturn(id){
		elem = document.getElementById("B" + id);
		elem.style.color = 'black';
}
*/
var current;
function selectsentence(idvalue){
	//elem.style.color = 'black';
	id = "B" + idvalue;

	if (playing){
		play(idvalue)
	}
	else{
		if (idvalue == 0)
			toPlay = 0;
		else toPlay = times[idvalue - 1]
		elem = document.getElementById(id);
		desel()
		sel(elem)
	}

}

   function  getElementId(time) {
	
	size = times.length;
	for (i = 0; i < size; i++) {
	    dbl = times[i];
	    if (dbl > time) {
	 	return "B" + i;
	    }
	}return "B"
    }

function  scroll( theElement) {
	//var selectedPosX = 0;
	  var selectedPosY = 0;
	              
	  while(theElement != null){
	    //selectedPosX += theElement.offsetLeft;
	    selectedPosY += theElement.offsetTop;
	    theElement = theElement.offsetParent;
	  }
	      
	var half = parseInt(window.screen.availHeight / 3) - 10;
		
	scrollTo(0,selectedPosY - half)    
      }

function popUpDynamic(evt, displayStr) { 
	popUpContainer = document.getElementById("popup");
	popUpContainer.innerHTML = displayStr;
	popUp(evt, "popup");
}

function popUpDef(evt, value) { 
	popUpContainer = document.getElementById("popup");
	popUpContainer.innerHTML = eval("a" + value);
	popUp(evt, "popup");
}

function popUpTrans(evt, value) { 
	popUpContainer = document.getElementById("popup");
	popUpContainer.innerHTML = eval("t" + value);
	popUp(evt, "popup");
}
    
function popDownDef(){
	popDown("popup");
}
function popDown(id) {
	document.getElementById(id).style.visibility =  "hidden";
} 

function popUp(evt, id) { 
	ggg = id;
	if (ie){
		
		if (document.body.clientWidth < evt.x + 151){
			xc = parseInt(evt.x) - 150
		}
		else xc = parseInt(evt.x)
		if (document.body.clientHeight < evt.y + 60){
			xy = parseInt(evt.y) - 60
		}
		else xy = parseInt(evt.y)
		popUpWin = eval(docObj + ggg + styleObj)
		 popUpWin.top = xy + 15 + document.body.scrollTop
  	 	popUpWin.left = Math.max(2, xc) + 5 
		popUpWin.visibility = "visible"  
		popUpWin.status = ""	
	}
    else{
         	if (window.innerWidth < evt.pageX + 150){
			xc = evt.pageX - 150

	}
	else xc = evt.pageX + 10

	if (window.innerHeight  + window.pageYOffset < evt.pageY + 80){
		xy = evt.pageY - 80

	}
	else xy = evt.pageY  + 20

	document.getElementById(id).style.top = xy + "px";
	document.getElementById(id).style.left = xc +3 + "px"; 

          document.getElementById(id).style.visibility = 'visible'

	}


}
var playing = true;
var toPlay = -1;

function  findPrev2(time) {
	
	prevTime = 0
	size = times.length;
	for (i = 0; i < size; i++) {
	   

		 dbl = times[i];

	    if (dbl == time) {
	 	return prevTime;
				
	    }
	    else if (dbl > time) {
	 	
			return prevTimeOld;
		
		
	    }
	    else{
		prevTimeOld = prevTime
		 prevTime= dbl
	    }
	}
	return "0"
    }

function  findPrev(time) {
	
	prevTime = 0
	size = times.length;
	for (i = 0; i < size; i++) {
	   

		 dbl = times[i];

	    if (dbl >= time) {
	 	return prevTime;
		
	    }
		else prevTime = dbl
	}
	return "0"
    }

function  findNext(time) {

	size = times.length;
	for (i = 0; i < size; i++) {
	    dbl = times[i];
	    if (dbl > time) {
	 	return dbl;
	    }
		
	}
	return "0"
    }

function watchman(){
	numWaiting--
	//alert("ajkdfh")
}
var numWaiting = 0
var newrwdtime =0
function rwd() {
	if (playing){
		
		if (numWaiting > 0){
			newrwdtime  = findPrev(newrwdtime )
		
		}		
		else{	
			time = parent.control.getTime()
			newrwdtime  = findPrev(time)
		}
		setTimeout("watchman()", 1000)
		numWaiting++
		//alert("here")
		parent.control.playAt(newrwdtime )
	}
	else {
		if (toPlay == -1){
			// ap = document.getElementById("player") 
			toPlay = parent.control.getTime()
		}
		toPlay =findPrev2(toPlay)
		id = getElementId(toPlay) 
		elem = document.getElementById(id) 
		desel()
		sel(elem)
	}
	
}

function fwd() {
	if (playing){
		// ap = document.getElementById("player") 
		time = parent.control.getTime()
		newtime = findNext(time)
		parent.control.playAt(newtime)
	}
	else {
		if (toPlay == -1){
			// ap = document.getElementById("player") 
			toPlay = parent.control.getTime()
		}
		toPlay = findNext(toPlay)
		id = getElementId(toPlay) 
		elem = document.getElementById(id) 		
		desel()
		sel(elem)
	}
}

function setVisibility(){
	var mainPain = document.getElementById("main_pane");
	if (mainPain != null){
		var view = document.getElementById("slide");
		if (playing & hidden){
			mainPain.style.visibility = "hidden";
			mainPain.style.display = "none";
		 	view.style.display = "block";
		}
		else{
			 mainPain.style.display = "block";
		 	mainPain.style.visibility = "visible";	
		 	view.style.display = "none";
		}
	}
}

var hidden = false;
function toggleVisibility(source){
	if (hidden){
		hidden = false;
		setVisibility();
		if (source == 'key')
			parent.control.document.getElementById("visibility").checked  = false
		window.clearTimeout(slideTimeId)
	}
	else{
		checkSlide()
		slideTimeId = window.setInterval('checkSlide()', 1000);
		hidden = true;
		setVisibility();
		if (source == 'key')
			parent.control.document.getElementById("visibility").checked  = true
	}
}

function loaded(){
		//alert("loaded"); 	
}

function start() {
	desel()
	playing = true
	setVisibility()
	// ap = document.getElementById("player") 
	if (toPlay != -1)
		parent.control.playAt(toPlay)
	else parent.control.play()
	

}


function play(value) {
	if (parent.control.loaded ){
		desel()
		if (value == 0){
			parent.control.playAt(0)
			if (!playing ){
				parent.control.playset()
			}
		}
		else {	toPlay = times[value -1];
			
			parent.control.playAt(toPlay)
			if (!playing ){
				parent.control.playset()
			}
		}
		playing = true
	}
}
function goBack(jumpBack){
	if (playing)
		time = parent.control.stop();
	else{ 
		parent.control.playset();
		desel();
		time = parent.control.getTime();
	}
	parent.control.paused = true;
	time = time - jumpBack
	if (time < 0)
		time = 0
	//alert(time);
	parent.control.playAt(time)	
	parent.control.paused = false;
}


function pause(){
	playing = false
	setVisibility();
	// ap = document.getElementById("player") 
	time = parent.control.stop()
	msg(time);
	toPlay = -1
	 id = getElementId(time) 
	//alert("ajkdfh"+ id )
	 elem = document.getElementById(id) 
	sel(elem)
	scroll(elem)
}

function keyListener(e){
	if (ie)
		e = window.event
	keyResponseListener(e)
}
function keyResposeListener(e){

	keyResponseListener(e)
}

var hideKey = 72;
function keyResponseListener(e){

	value = e.keyCode
	if (value == hideKey){
		parent.reading.toggleVisibility("key");
		return;
	}
		
	if(value > 48 & value < 58) {
		goBack(value - 48);
	}
	else if(value==80) 
		parent.control.tog()
	else if (value==32){
		if (ie)
			parent.control.window.document.getElementById("toggle").focus()
		else{	
			parent.control.window.document.getElementById("toggle").focus()
		}
		e.cancelBubble = true;
		e.cancelButton = true
	}
	else if (value==37){
		rwd()
		e.cancelButton = true
	}
	else if (value==39){
		fwd()
		e.cancelButton = true
	}
	else if (value==65){
		play(0)
		e.cancelButton = true
	}

	
	
}



function set2(){
//	parent.control.startChecking()
}
function msg(toOutput){

}

function sentenceChange(toPlay){
	toPlay = parent.control.getTime()
	 id = getElementId(time) 
	//alert("ajkdfh"+ id )
	 elem = document.getElementById(id) 
	sel(elem);
} 

var currentSlideIndex = -1;
var slideTimeId = -1;
function checkSlide(){
	var time = parent.control.getTime();
	var previous = 0;
	for (i = 0; i < slideShowTimes.length; i++){
		var slideTime = slideShowTimes[i];
		if (previous <= time & time < slideTime){
			if (currentSlideIndex != i){
				var view = document.getElementById("slide");
				view.innerHTML = "<img src=\"large_images/" + images[i] + "\" >";
				var height = imageHeight[i];
				view.style.visibility =  "visible";
	 			view.style.display = "block";
				if (ie){
					view.style.top = document.body.clientHeight / 2 - height /2 + "px";
				
				}
				else view.style.top = window.innerHeight / 2 - height /2 + "px";
				currentSlideIndex = i;
			}
		}
		previous = slideTime;
	}	
}