// JavaScript Document
var user_xml;

var user_chapter = 1;
var user_slide = 1;

var selected_chapter = user_chapter;
var selected_slide = user_slide;

var slide_name, slide_intro, slide_media_type, slide_media_source, slide_transcript, slide_outro;

var slide_position = 0;

var toggle = false, talkBubble = false;

var func;

var bo;

var eyeballs = "images/tutor-07-c.gif";		

function getUserData() {
	func = "getUserData"
	loadXMLDoc("http://ip2.yd.com/ChapterSilde.aspx");
	setTimeout ("loadCourseData()", 2000);
}


function loadCourseData() {
	loadChapterIndex();
	loadSlideIndex(user_chapter);
	switchSlide(user_chapter, user_slide);
	setTimeout("Effect.Fade('yd-loader')", 3000);
}



// PRIMARY AJAX FUNCTIONS START ----------------------------------------------		
function loadXMLDoc(url) {
	var randomnumber = Math.floor(Math.random()*100001);
	if (url.indexOf("?") == -1) {
		calledURL = url + "?rnd=" + randomnumber;
	} else {
		calledURL = url + "&rnd=" + randomnumber;
	}	
	
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", calledURL, true);
		req.send(null);
	} else if (window.ActiveXObject) {
		isIE = true;
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", calledURL, true);
			req.send();
		}
	}
} // -- END loadXMLDoc

function processReqChange() {
    if (req.readyState == 4) {
        
		if (req.status == 200) {
			if (func == "getUserData") {
				user_xml = req.responseXML;
				user_chapter = parseInt(user_xml.getElementsByTagName("chapter")[0].firstChild.nodeValue);
				user_slide = parseInt(user_xml.getElementsByTagName("slide")[0].firstChild.nodeValue);
					
				if (user_chapter == 0 && user_slide == 0) {
					user_chapter = 1;
					user_slide = 1;
					
				}
				
			} else if (func == "setUserData") {
				user_xml = req.responseXML;
				user_chapter = parseInt(user_xml.getElementsByTagName("chapter")[0].firstChild.nodeValue);
				user_slide = parseInt(user_xml.getElementsByTagName("slide")[0].firstChild.nodeValue);				
			}
		} else {
			alert("There was a problem retrieving the XML data:\n" + req.statusText + "\n" + req.status);
		}
	}
} // -- END processReqChange

function loadChapterIndex() {
	$("yd-index-list").update("");
	for (var i = 0; i < jsonCourse.course.chapter.length; i++) {
		$("yd-index-list").appendChild(Builder.node("div", {id:"index-chapter-"+(i+1), onclick: "switchChapter("+(i+1)+")"}, jsonCourse.course.chapter[i].name));	
		if (user_chapter > (i+1)) {
			$("index-chapter-"+(i+1)).addClassName('yd-chapter-complete');		
		} else if (user_chapter == (i+1)) {
			$("index-chapter-"+(i+1)).addClassName('yd-chapter-active');
		} else {
			$("index-chapter-"+(i+1)).addClassName('yd-chapter-inactive');		
		}
	}
}

function loadSlideIndex(chapter) {
	$("yd-chapter-number").update("Chapter " + chapter);	
	$("yd-chapter-title").update(jsonCourse.course.chapter[(chapter-1)].name);
	$("yd-slide-index-list").update("");
	if (jsonCourse.course.chapter[(chapter-1)].slide.length == null) {
		$("yd-slide-index-list").appendChild(Builder.node("div", {id:"index-slide-1", onclick: "switchSlide("+ chapter + ",1)"}, jsonCourse.course.chapter[(chapter-1)].slide.name));
			if (chapter != user_chapter) {
				$("index-slide-1").addClassName('yd-slide-complete');						
			} else {
				if (user_slide > (1)) {
					$("index-slide-1").addClassName('yd-slide-complete');	
				} else if (user_slide == (1)) {
					$("index-slide-1").addClassName('yd-slide-active');	
				} else {
					$("index-slide-1").addClassName('yd-slide-inactive');							
				}
			}
	} else {
		for (var i = 0; i < jsonCourse.course.chapter[(chapter-1)].slide.length; i++) {
			
			if (jsonCourse.course.chapter[(chapter-1)].slide[i].name == "YD Approach to CollisionFree! Driving") {
				
			//	$("yd-slide-index-list").appendChild(Builder.node("div", {id:"index-slide-"+(i+1), onclick: "switchSlide("+ chapter + "," + (i+1) +")"}, jsonCourse.course.chapter[(chapter-1)].slide[i].name));

				$("yd-slide-index-list").update("<div id='index-slide-" + (i+1) + "' onclick='switchSlide(\""+chapter+"\", \"" +(i+1)+ "\")'>YD Approach to <span class='collisionfree'>Collision<span class='italy'>free</span>!</span> Driving<sup>TM</sup></div>");
	
			} else {
				$("yd-slide-index-list").appendChild(Builder.node("div", {id:"index-slide-"+(i+1), onclick: "switchSlide("+ chapter + "," + (i+1) +")"}));
				$("index-slide-"+(i+1)).innerHTML=jsonCourse.course.chapter[(chapter-1)].slide[i].name;
			}

			
			if (chapter != user_chapter) {
				$("index-slide-"+(i+1)).addClassName('yd-slide-complete');						
			} else {
				if (user_slide > (i+1)) {
					$("index-slide-"+(i+1)).addClassName('yd-slide-complete');	
				} else if (user_slide == (i+1)) {
					$("index-slide-"+(i+1)).addClassName('yd-slide-active');	
				} else {
					$("index-slide-"+(i+1)).addClassName('yd-slide-inactive');							
				}
			}
//			alert(jsonCourse.course.chapter[(chapter-1)].slide[i].name);
		}
	}
}


function switchChapter(chapter) {
	if (chapter <= user_chapter) {
		loadSlideIndex(chapter);
	}
	toggleIndex();
	//showUserProgress();
}

function switchSlide(chapter, slide) {
	selected_chapter = chapter;
	selected_slide = slide;
	slide_position = 0;
	var valid = false;
	if (chapter == user_chapter) {
		if (slide <= user_slide)	 {
			valid = true;
		}
	} else {
		valid = true;
	}
	if (valid) {
		if (jsonCourse.course.chapter[(chapter-1)].slide.length == null) {
			//alert (jsonCourse.course.chapter[(chapter-1)].slide.name);
			slide_name = jsonCourse.course.chapter[(chapter-1)].slide.name;
			slide_intro = jsonCourse.course.chapter[(chapter-1)].slide.intro;
			slide_media_type = jsonCourse.course.chapter[(chapter-1)].slide.media.type;
			slide_media_source = jsonCourse.course.chapter[(chapter-1)].slide.media.source;
			slide_transcript = jsonCourse.course.chapter[(chapter-1)].slide.transcript;
			slide_outro = jsonCourse.course.chapter[(chapter-1)].slide.outro;			
		} else {
			slide_name = jsonCourse.course.chapter[(chapter-1)].slide[(slide-1)].name;
			slide_intro = jsonCourse.course.chapter[(chapter-1)].slide[(slide-1)].intro;
			slide_media_type = jsonCourse.course.chapter[(chapter-1)].slide[(slide-1)].media.type;
			slide_media_source = jsonCourse.course.chapter[(chapter-1)].slide[(slide-1)].media.source;
			slide_transcript = jsonCourse.course.chapter[(chapter-1)].slide[(slide-1)].transcript;
			slide_outro = jsonCourse.course.chapter[(chapter-1)].slide[(slide-1)].outro;
		}
		$("yd-tutor-talkbubble-text").update(slide_intro + ". Please click next to start the slide.");
		toggleTalkBubble(true); 
		
		$('tutor').src = "images/tutor-07-c.gif";		
		
	}
	
	//showUserProgress();
}
	
function loadSlidePlayer() {
}
	
function nextPosition() {
	
	if (slide_position == 0) {
		slide_position = 2;
		
		furl = "flash/yd_3fileplayer2.swf?xmlfeed="+slide_transcript;
			
		toggleTalkBubble(false);
			
		bo = new SWFObject(furl, "yd_vidplayer", "530", "580", "8");
		bo.write("yd-video-player");
				
		$('tutor').src = "images/tutor-07-r.gif";
	
		
	} else if (slide_position == 1) {
		
		slide_position = 2;		
		$("yd-tutor-talkbubble-text").update(slide_outro);
		toggleTalkBubble(true);
	
		
//		$('tutor').src = "images/tutor-07-c.gif";
		
	} else if (slide_position == 2) {
	
		
		if (user_chapter == selected_chapter) {
			if (jsonCourse.course.chapter[(selected_chapter-1)].slide[(selected_slide)] == null) {
				user_chapter = user_chapter + 1;
				selected_chapter = user_chapter;
				user_slide = 1;
				selected_slide = user_slide;
				switchSlide(selected_chapter, selected_slide);
				loadChapterIndex();
				func = "setUserData"
				loadXMLDoc("http://ip2.yd.com/ChapterSilde.aspx?chapter="+selected_chapter+"&slide="+selected_slide);			
			} else {
				if (selected_slide < user_slide) {
					selected_slide = selected_slide + 1;
				} else {
					user_slide = user_slide + 1;
					selected_slide = user_slide;
					func = "setUserData"
					loadXMLDoc("http://ip2.yd.com/ChapterSilde.aspx?chapter="+selected_chapter+"&slide="+selected_slide);			
				}
				switchSlide(selected_chapter, selected_slide);
			}		
			
			toggleTalkBubble(true);
			
			//alert("eyeballs");
			
			$('tutor').src = "images/tutor-07-c.gif";			
			
		} else {
			if (jsonCourse.course.chapter[(selected_chapter-1)].slide[(selected_slide)] == null) {
				selected_chapter = selected_chapter + 1;
				selected_slide = 1;
				switchSlide(selected_chapter, selected_slide);				
				loadChapterIndex();
			} else {
				selected_slide = selected_slide + 1;
				switchSlide(selected_chapter, selected_slide);
			}			
		}
		loadSlideIndex(selected_chapter);
	}
	
	//$('tutor').src = "images/tutor-07-c.gif";
	//showUserProgress();
}
	
	
//------------- TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY 



function resetUser() {
	func = "setUserData"
	loadXMLDoc("http://ip2.yd.com/ChapterSilde.aspx?chapter=1&slide=1");
	//showUserProgress();

}

function setUser(chapter, slide) {
	func = "setUserData"
	loadXMLDoc("http://ip2.yd.com/ChapterSilde.aspx?chapter="+chapter+"&slide="+slide);
}

function endSlide() {
	//alert ("endSlide is called");
}

function toggleTalkBubble(status) {
	if (status) {
		new Effect.Move ("yd-tutor-talkbubble",{ x: 20, y: 314, mode: 'absolute'});		
		talkBubble = false;
	} else {
		new Effect.Move ("yd-tutor-talkbubble",{ x: -402, y: 314, mode: 'absolute'});
		talkBubble = true;
	}
}

//------------- TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY  TEMPORARY 
	
function toggleIndex() {
	
	
	if (toggle) {
		new Effect.Move ("yd-index",{ x: -302, y: 0, mode: 'relative'});		
		toggle = false;
		$('tutor').src = eyeballs;				
	} else {
		new Effect.Move ("yd-index",{ x: 302, y: 0, mode: 'relative'});
		toggle = true;
		eyeballs = $('tutor').src;		
		$('tutor').src = "images/tutor-07-l.gif";		
	}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

