var siteroot = typeof(fullsiteroot) == "function" && typeof(sitehost) == "function" ? fullsiteroot().replace(sitehost(), "") : "/";
var lang = location.href.indexOf("/en/") > - 1 ? "en" : "fr";
Ext.onReady(function() {
	//login page
	new function() {
		var loginfield = document.getElementById("loginname");
		if (loginfield) loginfield.focus();
	}();

	//video popup
	new function() {
		var videopopup;
		var o = new SWFObject(siteroot + "local/flash/FLVPlaybackPro.swf", "videoplayer", "440", "360", "9");
		o.addParam("wmode", "transparent");
		var links = document.getElementsByTagName("a");
		for (var element, i = 0; element = links[i]; i++) {
			new function(element) {
				if (element.href && element.href.indexOf(".flv") == element.href.length - 4) {
					element.target = "_self";
					if (element.href.indexOf("javascript") < 0) {
						element.title = element.href;
						element.href = "javascript://open video: " + element.title;
					}
					Ext.get(element).on("click", function() {
						videopopup = new Ext.Window({
							autoHeight : true,
							border : false,
							contentEl : "popup",
							ctCls : "popup",
							layout : "fit",
							modal : true,
							resizable : false,
							shadow : "frame",
							title : "",
							width : 480
						});
						videopopup.on('hide',function() {
							var p = document.getElementById("popup");
							p.innerHTML = "";
							document.body.appendChild(p);
						});
						var pathIndex = element.title.indexOf("/local/") + 1;
						var file = "";
						if (pathIndex) file = element.title.substr(pathIndex - 1);
						o.addVariable("videoSrc", siteroot + file);
						o.addVariable("videoSkin", siteroot + "local/flash/SkinUnderAllNoCaption.swf");
						o.write("popup");
						videopopup.show(element);
					});
				}
			}(element);
		}
	}();
	
	//self learning popup
	new function() {
		var QUIZ_PATH = siteroot + lang + "/how_to_use/elearning_module/";
		var PASSING_SCORE = 3;
		var initQuiz = function() {
			//attach event to close button
			var closers = Ext.DomQuery.select("#learningmodule .closer");
			for (var closer, i = 0; closer = closers[i]; i++) {
				Ext.get(closer).on("click", function() {
					if (typeof(modulepopup) != "undefined") modulepopup.close();
				});
			}
			//prevent flicker
			var module = document.getElementById("learningmodule");
			if (module) Ext.get(module).removeClass("hidden");
			
			var slides = Ext.DomQuery.select("#learningmodule > ol > li");
			for (var slide, i = 0; slide = slides[i]; i++) {
				//i is used in a closure, hence the inline function to give it local scope
				new function(i) {
					if (i > 0) Ext.get(slides[i]).addClass("hidden");
					//attach events to prev buttons
					var prev = Ext.DomQuery.selectNode("a.prev", slides[i]);
					if (prev) Ext.get(prev).on("click", function() {
						if (slides[i - 1]) Ext.get(slides[i - 1]).removeClass("hidden");
						Ext.get(slides[i]).addClass("hidden");
					})
					//attach events to next buttons
					var next = Ext.DomQuery.selectNode("a.next", slides[i]);
					if (next) Ext.get(next).on("click", function() {
						if (slides[i + 1]) Ext.get(slides[i + 1]).removeClass("hidden");
						Ext.get(slides[i]).addClass("hidden");
					})
					//quiz logic
					if (Ext.get(slides[i]).hasClass("quiz")) {
						var progress = Ext.DomQuery.select("div.progress ol li", slide);
						var questions = Ext.DomQuery.select("ol.questions > li", slide);
						for (var question, j = 0; question = questions[j]; j++) {
							new function(j) {
								if (j > 0) Ext.get(questions[j]).addClass("hidden");
								//attach events to radio buttons
								var options = Ext.DomQuery.select("ol.options > li > input[type=radio]", questions[j]);
								for (var option, k = 0; option = options[k]; k++) {
									new function(k) {
										option = Ext.get(option)
										option.on("click", function() {
											//set the current radio button as selected
											for (var option, l = 0; option = options[l]; l++) {
												Ext.get(options[l].parentNode).removeClass("selected");
											}
											Ext.get(options[k].parentNode).addClass("selected");
										});
									}(k);
								}
								//attach event to submit button
								var submitter = Ext.DomQuery.selectNode("button.submit", questions[j]);
								if (submitter) Ext.get(submitter).on("click", function() {
									//set the question status to correct or incorrect
									var correct = Ext.DomQuery.selectNode("ol.options > li.selected > input[type=radio].correct", questions[j]);
									var status = correct ? "correct" : "incorrect";
									Ext.get(questions[j]).addClass(status);
									//set the progress bar
									if (progress[j]) Ext.get(progress[j]).addClass(status);
									//disable radio buttons
									var options = Ext.DomQuery.select("ol.options > li > input[type=radio]", questions[j]);
									for (var option, k = 0; option = options[k]; k++) {
										option.disabled = true;
									}
								})
								//attach event to next button
								var stepper = Ext.DomQuery.selectNode("button.next", questions[j]);
								if (stepper) Ext.get(stepper).on("click", function() {
									Ext.get(questions[j]).addClass("hidden");
									//if it's not last question, show next question
									if (j < questions.length - 1) {
										if (questions[j + 1]) Ext.get(questions[j + 1]).removeClass("hidden");
										var currentQuestion = Ext.DomQuery.selectNode("#learningmodule .progress .current");
										if (currentQuestion) currentQuestion.innerHTML = j + 2;
									}
									//else show result
									else {
										var score = Ext.DomQuery.select("ol.questions > li.correct", slide).length;
										var current;
										//set next slide to pass screen
										if (score >= PASSING_SCORE) current = slides[i + 1]
										//set next slide to fail screen
										else current = slides[i + 2]
										
										//populate results
										var progress = Ext.DomQuery.selectNode("div.progress ol", slides[i]);
										var results = Ext.DomQuery.selectNode("div.results", current);
										if (progress && results) results.innerHTML = "<ol>" + progress.innerHTML + "</ol><div class='clear'></div>";
										//show next slide
										Ext.get(slides[i]).addClass("hidden");
										if (current) Ext.get(current).removeClass("hidden");
									}
								})
							}(j);
						}
					}
				}(i);
			}
			//restart button
			var resetter = Ext.DomQuery.selectNode("#learningmodule .restart");
			if (resetter) Ext.get(resetter).on("click", function() {
				modulepopup.load({
					url : QUIZ_PATH,
					callback : function() {
						initQuiz();
						gotoQuiz();
					}
				});
			});
		}
		var gotoQuiz = function() {
			var slides = Ext.DomQuery.select("#learningmodule > ol > li");
			var quiz = Ext.DomQuery.selectNode("#learningmodule > ol > li.quiz");
			for (var slide, i = 0; slide = slides[i]; i++) {
				Ext.get(slide).addClass("hidden");
			}
			Ext.get(quiz).removeClass("hidden");
		}
		var starter = document.getElementById("modulestarter");
		if (starter) {
			var modulepopup;
			Ext.get(starter).on("click", function() {
				modulepopup = new Ext.Window({
					border : false,
					ctCls : "popup",
					cls : "elearning",
					layout : "fit",
					modal : true,
					resizable : false,
					shadow : "frame",
					title : "",
					width : 600,
					height : 560,
					y : 20
				})
				modulepopup.show(starter);
				modulepopup.load({url : QUIZ_PATH, callback : initQuiz});
			})
		}
	}();
	//123
	new function() {
		var QUIZ_PATH = siteroot + lang + "/owners/get_motion_sickness/motion_sickness_quiz/";

		var initQuiz = function() {
			//attach event to close button
			var closers = Ext.DomQuery.select("#sicknessquiz .closer");
			for (var closer, i = 0; closer = closers[i]; i++) {
				Ext.get(closer).on("click", function() {
					if (typeof(modulepopup) != "undefined") modulepopup.close();
				});
			}

			//attach event to submit button
			var submitter = Ext.DomQuery.select("#sicknessquiz .submitbutton");

			if (submitter) Ext.get(submitter).on("click", function() {
				if (typeof pageTracker != "undefined") pageTracker._trackPageview(location.pathname.replace(siteroot, "/") + "takethequiz/submit");
				var options = Ext.DomQuery.select("input[type=radio]");
				var yesflag = false;
				for (var option, k = 0; option = options[k]; k++) {
					if (option.checked) yesflag = true;//option.value==1 &&
					if (yesflag) break;
				}
				
				if (yesflag) {
					//show message
					var message = Ext.DomQuery.select("#sicknessquiz .answeryes");
					Ext.get(message).removeClass("hidden");

					//disable radio buttons
				
					for (var option, k = 0; option = options[k]; k++) {
						option.disabled = true;
					}
				}
			})


		}


		var starter = document.getElementById("quizstarter");
		var starter2 = document.getElementById("quizstarterbutton");

		if (starter) {
			var modulepopup;
			Ext.get(starter).on("click", function() {
				if (typeof pageTracker != "undefined") pageTracker._trackPageview(location.pathname.replace(siteroot, "/") + "takethequiz");
				modulepopup = new Ext.Window({
					border : false,
					ctCls : "popup",
					cls : "elearning smsquiz",
					layout : "fit",
					modal : true,
					resizable : false,
					shadow : "frame",
					title : "",
					width : 600,
					height : 570,
					y : 20
				})
				modulepopup.show(starter);
				modulepopup.load({url : QUIZ_PATH, callback : initQuiz});
			})
		}
		
		if (starter2) {
			var modulepopup;
			Ext.get(starter2).on("click", function() {
				if (typeof pageTracker != "undefined") pageTracker._trackPageview(location.pathname.replace(siteroot, "/") + "takethequiz");
				modulepopup = new Ext.Window({
					border : false,
					ctCls : "popup",
					cls : "elearning smsquiz",
					layout : "fit",
					modal : true,
					resizable : false,
					shadow : "frame",
					title : "",
					width : 600,
					height : 570,
					y : 20
				})
				modulepopup.show(starter2);
				modulepopup.load({url : QUIZ_PATH, callback : initQuiz});
			})
		}

		
	}();
});
