﻿/// <reference path="jquery-1.3.2.min.js" />

jQuery.noConflict();

Function.prototype.bind=function(obj) {
	var method=this,temp=function() { return method.apply(obj,arguments) };
	return temp;
}

/* LOADS VIDEOS */
var site={
	lnkRight: "<div class='arrowRight'><a href='#' title='next page'><span>arrowRight</span></a></div>",
	lnkLeft: "<div class='arrowLeft'><a href='#' title='previous page'><span>arrowLeft</span></a></div>",
	
	pageSize: 2,
	pageCurrent: 1,
	/*loads the Videos using VideoDataSet.vb*/
	loadChapters: function(from,to) {
		var lst="";
		for(var i=from;i<Math.min(d.VideosItems.length,to);i++) {
		    var r = d.VideosItems[i];
			lst+="<div class='videoContent'>";
			lst+="<div class='box_img'><a href='" + r.strFullURL + "' title='watch this video'><img class='videoImg' src='/CMS/Videos/" + r.intVideoID + ".Thumb.jpg' width='88' height='65' alt='" + r.strTitle + "' /></a></div>";
			lst+="<div class='videoText'>";
			lst += "<p><strong><a href='" + r.strFullURL + "' title='watch this video'>" + r.strTitle + "</a></strong></p>";
            lst+="<p class='contentCopy'>" + r.strDescription + "</p>";
			lst+="</div>";
			lst+="</div>";
		}
		jQuery("#videoChapters").html(lst);
		site.setupPager();
	},
	loadData: function() {
		site.loadChapters(0,site.pageSize);
	},
	/*Creates the pager info in the footer of the component*/
	setupPager: function() {
		var pager="";
		if(d.VideosItems.length>site.pageSize) {
			/*setup pager*/
			var itemFrom=(site.pageCurrent*site.pageSize)-site.pageSize+1;
			var itemTo=Math.min(itemFrom+site.pageSize-1,d.VideosItems.length);
			var pageCount=Math.ceil(d.VideosItems.length/site.pageSize);

			//if(site.pageCurrent<pageCount) pager+=site.lnkRight;
			//if(site.pageCurrent>1) pager+=site.lnkLeft;
			
//			 <div class="videoBtm" id="videoPager">
//                <div class="viewVideos"><a href="#">view all videos</a></div>
//                <div class="pageView"><a href="#">page 1 of 3</a></div>
//            </div>
			pager+="<div class='viewVideos'><a href='#'>view all videos</a></div>";
			pager+="<div class='pageNumber'> page " + site.pageCurrent + " of " + pageCount + "</div>";
			if (site.pageCurrent < pageCount) pager+="<div class='pageViewNext' id='videoPageNext'><a href='#' title='Next'>next</a></div>";
			if (site.pageCurrent > 1) pager+="<div class='pageViewPrevious' id='videoPagePrevious'><a href='#' title='Previous'>previous</a></div>";
			//pager+="</div>";
			jQuery("#videoPager").html(pager);
			jQuery("#videoPageNext a").click(site.nextPage);
			jQuery("#videoPagePrevious a").click(site.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#videoPager").empty();
		}
	},
	nextPage: function() {
		site.pageCurrent+=1;
		var from=(site.pageCurrent*site.pageSize)-site.pageSize;
		var to=from+site.pageSize;
		site.loadChapters(from,to);
		return false;
	},
	prevPage: function() {
		site.pageCurrent-=1;
		var from=(site.pageCurrent*site.pageSize)-site.pageSize;
		var to=from+site.pageSize;
		site.loadChapters(from,to);
		return false;
	},
	
	myMultiBox: {},
	init: function() {
		/*first set up the accordion widget, this thing takes a while and might be seen as the user loads the page, especially for the first time - so let's deal with it first*/
		jQuery("#menuRight").accordion({ active: false,"collapsible": true,"autoHeight": false,"header": ".accordionItem .boxHeadingNarrow" });

		jQuery("#goFullScreen").click(function() {
		window.open('player_FullScreen.aspx?id='+d.Videos[site.currentMovie].Chapters[site.currentChapter].ID,'','fullscreen=yes, scrollbars=no, titlebar=no, toolbar=no, menubar=no, location=no, top=0, left=0');
			return false;
		});
		/**********************************************/
		/* CALL THE FUNCTIONS FOR THE SIDEBAR         */
		/* COMPONENTS                                 */
		/**********************************************/	
		if(d) site.loadData();
		//if(uc) UserComments.LoadCommentsPage();
		//if(uc) UserTips.LoadTipsPage();
		//if(lp) LivePoll.init();
		
		/*USERCOMMENTS*/
		//jQuery("#UserCommentsSEND").click(UserComments.submitCurrentAnswer);
		//jQuery("#UserCommentsPager .UserCommentsSEND").click(UserComments.submitCurrentAnswer);
		//jQuery("#UserCommentsSend").click(function() { UserComments.submitCurrentAnswer(); });
//		jQuery("#UserCommentsNAME")
//			.focus(site.TellColleagueNameHandlerFocus)
//			.keyup(site.TellColleagueNameHandlerChange);

		//		site.myMultiBox = new MultiBox('watch', {
		//			useOverlay:true
		//		});

		jQuery("#blah").click(function() {
			var x=new MultiBox("videoPlayer",{
				useOverlay: true
			});
			return false;
		});
	}
};

/* SAVE USER COMMENTS TO DATABASE */
var UserComments = {    
	LoadCommentsPage: function() {		    
		//Create send comment functionality
		jQuery("#UserCommentsSend").click(UserComments.submitCurrentAnswer);
		//return false;
	},		
	//process form
	submitCurrentAnswer: function() {
	    var name=jQuery("#UserCommentsNAME").val();
		var email=jQuery("#UserCommentsEMAIL").val();
		var title=jQuery("#UserCommentsTITLE").val();
		var comment=jQuery("#UserCommentsCOMMENT").val();
		
		//validate form
		if(name.length==0) {
			alert("Please enter your Name");
			return false;
		}
		if(email.length==0) {
			alert("Please enter your Email");
			return false;
		}
		if(!email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) {
				alert("Please enter a valid email address");
				return false;
		}
		if(title.length==0) {
			alert("Please enter a Title");
			return false;
		}
		if(comment.length==0) {
			alert("Please enter a Comment");
			return false;
		}
		
	    //Add user comment to database
		jQuery.post("DataHandler.ashx",{ "mode": "SubmitUserComment","email": email,"name": name,"title": title,"comment": comment });
		//Clean up - thank you and reset fields
		UserComments.thankYou();
		return false;
	},
	thankYou: function() {	   
	    jQuery("#boxUserCommentsMsg").html("<p class='commentsText'>Thank you!<br/>Your Comment has been sent</p>");
	    UserComments.UserCommentsReset;	    
	},
	UserCommentsReset: function() {
	    jQuery("#UserCommentsNAME").val('');
	    jQuery("#UserCommentsEMAIL").val('');
		jQuery("#UserCommentsTITLE").val('');
		jQuery("#UserCommentsCOMMENT").val('');
	}
};

/* SAVE USER COMMENTS TO DATABASE */
var UserTips = {    
	LoadTipsPage: function() {		    
		//Create send comment functionality
		jQuery("#UserTipsSEND").click(UserTips.submitCurrentAnswer);
		//return false;
	},		
	//process form
	submitCurrentAnswer: function() {
	    var name=jQuery("#UserTipsNAME").val();
		var email=jQuery("#UserTipsEMAIL").val();
		var title=jQuery("#UserTipsTITLE").val();
		var comment=jQuery("#UserTipsCOMMENT").val();
		
		//validate form
		if(name.length==0) {
			alert("Please enter your Name");
			return false;
		}
		if(email.length==0) {
			alert("Please enter your Email");
			return false;
		}
		if(!email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) {
				alert("Please enter a valid email address");
				return false;
		}
		if(title.length==0) {
			alert("Please enter a Title");
			return false;
		}
		if(comment.length==0) {
			alert("Please enter a Comment");
			return false;
		}
		
	    //Add user comment to database	    
		jQuery.post("DataHandler.ashx",{ "mode": "SubmitUserTip","email": email,"name": name,"title": title,"comment": comment });
		UserTips.thankYou();
		return false;
	},
	thankYou: function() {	    
	    jQuery("#boxTipsMsg").html("<p style='margin:0px 0px 5px 2px'>Thank you!<br/>Your Comment has been sent</p>");	 
	    UserTips.UserCommentsReset();   
	},
	UserCommentsReset: function() {
	    jQuery("#UserTipsNAME").val('');
		jQuery("#UserTipsEMAIL").val('');
		jQuery("#UserTipsTITLE").val('');
		jQuery("#UserTipsCOMMENT").val('');
	}		
};

var LivePoll = {
	pageSize: 1,
	pageCurrent: 1,
	showAnswerSummary: false,
	loadQuestion: function(idx) {
		var lst = "";
		if (LivePoll.showAnswerSummary) {
			var as = lp.AnswerSummaries[idx];
			lst = "<h3>Question" + (idx + 1) + "</h3><p>" + as.Text + "</p><h3>Answer</h3><div class='LivePollQuestions menuSection'>";

			var total = 0;
			for (var asItem, i = 0; asItem = as.AnswerCounts[i]; i++) {
				total += asItem.Count;
			}
			for (var asItem, i = 0; asItem = as.AnswerCounts[i]; i++) {
				lst += "<div class='LivePollAnswerSummary'>" + asItem.Text + " - " + (asItem.Count / total) * 100 + "%<div class='LivePollAnswerSummaryCount' style='width:" + (10 + ((125 / total) * asItem.Count)) + "px' value='" + asItem.Count + "'></div></div>";
			}
			LivePoll.setupPagerSummaries();
		}
		else {
			var q = lp.Questions[idx];
			lst = "<h3>Question" + (idx + 1) + "</h3><p>" + q.Text + "</p><h3>Answer</h3><div class='LivePollQuestions menuSection' id='" + q.ID + "'>";
			for (var a, i = 0; a = q.Answers[i]; i++) {
				lst += "<input name='LivePollAnswer' value='" + a.ID + "' id='LivePollAnswer" + a.ID + "' type='radio'><label for='LivePollAnswer" + a.ID + "'>" + a.Text + "</label><br>";
			}
			LivePoll.setupPager();
		}
		jQuery("#boxLivePoll").html(lst);
	},
	setupPager: function() {
		var pager = "";
		/*setup pager*/
		var pageCount = lp.Questions.length;

		if (LivePoll.pageCurrent < pageCount) pager += site.lnkRight;
		if (LivePoll.pageCurrent == pageCount) pager += "<div class='LivePollLastQuestion'><a href='#' title='Submit and view results'><span>arrowRight</span></a></div>"

		pager += "<div class='chapterChooserText'><p>Question " + LivePoll.pageCurrent + " of " + pageCount + "</p></div>";
		jQuery("#LivePollQuestionsPager").addClass("QuestionButtons");
		jQuery("#LivePollQuestionsPager").html(pager);

		if (LivePoll.pageCurrent == pageCount) {
			jQuery("#LivePollQuestionsPager .LivePollLastQuestion a").click(function() { LivePoll.submitCurrentAnswer(); location.reload() });
		}
		else {
			jQuery("#LivePollQuestionsPager .arrowRight a").click(LivePoll.nextPage);
		}
	},
	setupPagerSummaries: function() {
		var pager = "";
		if (lp.AnswerSummaries.length > LivePoll.pageSize) {
			/*setup pager*/
			var pageCount = lp.AnswerSummaries.length;

			if (LivePoll.pageCurrent < pageCount) pager += site.lnkRight;
			if (LivePoll.pageCurrent > 1) pager += site.lnkLeft;

			pager += "<div class='chapterChooserText'><p>Question " + LivePoll.pageCurrent + " of " + pageCount + "</p></div>";
			jQuery("#LivePollQuestionsPager").attr("className", "LivePollSummariesPager").html(pager);
			jQuery("#LivePollQuestionsPager .arrowRight a").click(LivePoll.nextSummaryPage);
			jQuery("#LivePollQuestionsPager .arrowLeft a").click(LivePoll.prevSummaryPage);
		}
		else {
			/*remove pager*/
			jQuery("#LivePollQuestionsPager").empty();
		}
	},
//	submitCurrentAnswer: function() {
//		jQuery.post("DataHandler.ashx", { "mode": "SubmitLivePollAnswer", "id": lp.Questions[LivePoll.pageCurrent - 1].ID, "answer": jQuery("input:radio[name=LivePollAnswer]:checked").
//		) });
//	},
	nextPage: function() {
		LivePoll.submitCurrentAnswer();
		LivePoll.pageCurrent += 1;
		LivePoll.loadQuestion(LivePoll.pageCurrent - 1);
		return false;
	},
	nextSummaryPage: function() {
		LivePoll.pageCurrent += 1;
		LivePoll.loadQuestion(LivePoll.pageCurrent - 1);
		return false;
	},
	prevSummaryPage: function() {
		LivePoll.pageCurrent -= 1;
		LivePoll.loadQuestion(LivePoll.pageCurrent - 1);
		return false;
	},
	results: function() {
		jQuery(".LivePollQuestions").empty().html("<div style='float:left;clear:left;width:40px'>Yes: </div><div style='background-color: red; width: 60px; height: 10px; float: left;clear:right'></div>" +
											"<div style='float:left;clear:left;width:40px'>No: </div><div style='background-color: red; width: 40px; height: 10px; float: left;clear:right'></div>");
	},
	init: function() {
		LivePoll.showAnswerSummary = lp.ShowAnswerSummary;
		LivePoll.loadQuestion(0);
	}
};
var DownloadResource = {
	pageSize: 2,
	pageCurrent: 1,
	loadResources: function(from, to) {
		var lst = "";
		for (var i = from; i < Math.min(dr.Resources.length, to); i++) {
			var r = dr.Resources[i];
			lst += "<div class='videoChapter'>"
				+ "<img src='/CMS/Resources/" + r.FileExt + ".Thumb.jpg' class='chapterThumb'/></a>"
				+ "<h3>" + r.ResourceTitle + "</h3>"
				+ "<p>" + r.ResourceText + "</p>"
				+ "<div><a class='read' href='/CMS/Resources/" + r.ID + "." + r.FileExt + "' title='Download this resource' target='_blank'><span>download</span></a></div>"
			+ "</div>"
		}
		jQuery("#boxDownloadResource").html(lst);

		DownloadResource.setupPager();
	},
	setupPager: function() {
		var pager = "";
		if (dr.Resources.length > DownloadResource.pageSize) {
			/*setup pager*/
			var pageCount = Math.ceil(dr.Resources.length / DownloadResource.pageSize)

			if (DownloadResource.pageCurrent < pageCount) pager += site.lnkRight;
			if (DownloadResource.pageCurrent > 1) pager += site.lnkLeft;

			pager += "<div class='chapterChooserText'><p>Page " + DownloadResource.pageCurrent + " of " + pageCount + "</p></div>";
			jQuery("#DownloadResourcePager").html(pager);
			jQuery("#DownloadResourcePager .arrowRight a").click(DownloadResource.nextPage);
			jQuery("#DownloadResourcePager .arrowLeft a").click(DownloadResource.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#DownloadResourcePager").empty();
		}
	},
	nextPage: function() {
		DownloadResource.pageCurrent += 1;
		var from = (DownloadResource.pageCurrent * DownloadResource.pageSize) - DownloadResource.pageSize;
		var to = from + DownloadResource.pageSize;
		DownloadResource.loadResources(from, to);
		return false;
	},
	prevPage: function() {
		DownloadResource.pageCurrent -= 1;
		var from = (DownloadResource.pageCurrent * DownloadResource.pageSize) - DownloadResource.pageSize;
		var to = from + DownloadResource.pageSize;
		DownloadResource.loadResources(from, to);
		return false;
	},
	init: function() {
		DownloadResource.loadResources(0, DownloadResource.pageSize);
	}
};
var KnowledgeBank = {
	pageSize: 5,
	pageCurrent: 1,
	loadItems: function(from, to) {
		var lst = "<ul>";
		for (var i = from; i < Math.min(kb.KnowledgeBankItems.length, to); i++) {
			var k = kb.KnowledgeBankItems[i];
			lst += "<li><a target='_blank' href='" + k.URL + "' title='Open this item in a new window'>" + k.Title + "</a>";
		}
		lst += "</ul>";
		jQuery("#boxKnowledgeBank").html(lst);

		KnowledgeBank.setupPager();
	},
	setupPager: function() {
		var pager = "";
		if (kb.KnowledgeBankItems.length > KnowledgeBank.pageSize) {
			/*setup pager*/
			var pageCount = Math.ceil(kb.KnowledgeBankItems.length / KnowledgeBank.pageSize);
			//var pageCount = kb.KnowledgeBankItems.length;

			if (KnowledgeBank.pageCurrent < pageCount) pager += site.lnkRight;
			if (KnowledgeBank.pageCurrent > 1) pager += site.lnkLeft;

			pager += "<div class='chapterChooserText'><p>Page " + KnowledgeBank.pageCurrent + " of " + pageCount + "</p></div>";
			jQuery("#KnowledgeBankPager").html(pager);
			jQuery("#KnowledgeBankPager .arrowRight a").click(KnowledgeBank.nextPage);
			jQuery("#KnowledgeBankPager .arrowLeft a").click(KnowledgeBank.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#KnowledgeBankPager").empty();
		}
	},
	nextPage: function() {
		KnowledgeBank.pageCurrent += 1;
		var from = (KnowledgeBank.pageCurrent * KnowledgeBank.pageSize) - KnowledgeBank.pageSize;
		var to = from + KnowledgeBank.pageSize;
		KnowledgeBank.loadItems(from, to);
		return false;
	},
	prevPage: function() {
		KnowledgeBank.pageCurrent -= 1;
		var from = (KnowledgeBank.pageCurrent * KnowledgeBank.pageSize) - KnowledgeBank.pageSize;
		var to = from + KnowledgeBank.pageSize;
		KnowledgeBank.loadItems(from, to);
		return false;
	},
	init: function() {
		KnowledgeBank.loadItems(0, KnowledgeBank.pageSize);
	}
};

var TechnicalHelp = {
	pageSize: 5,
	pageCurrent: 1,
	loadItems: function(from, to) {
		var lst = "<ul>";
		for (var i = from; i < Math.min(th.TechnicalHelpItems.length, to); i++) {
			var t = th.TechnicalHelpItems[i];
			lst += "<li><a href='mailto:" + t.EmailAddress + "' title='Email " + t.Title + "'>" + t.Title.substring(0, 35) + (t.Title.length>35?" ...":"") + " (" + t.PhoneNum + ")</a>";
		}
		lst += "</ul>";
		jQuery("#boxTechnicalHelp").html(lst);

		TechnicalHelp.setupPager();
	},
	setupPager: function() {
		var pager = "";
		if (th.TechnicalHelpItems.length > TechnicalHelp.pageSize) {
			/*setup pager*/
			var pageCount = Math.ceil(th.TechnicalHelpItems.length / TechnicalHelp.pageSize);
			//var pageCount = kb.KnowledgeBankItems.length;

			if (TechnicalHelp.pageCurrent < pageCount) pager += site.lnkRight;
			if (TechnicalHelp.pageCurrent > 1) pager += site.lnkLeft;

			pager += "<div class='chapterChooserText'><p>Page " + TechnicalHelp.pageCurrent + " of " + pageCount + "</p></div>";
			jQuery("#TechnicalHelpPager").html(pager);
			jQuery("#TechnicalHelpPager .arrowRight a").click(TechnicalHelp.nextPage);
			jQuery("#TechnicalHelpPager .arrowLeft a").click(TechnicalHelp.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#TechnicalHelpPager").empty();
		}
	},
	nextPage: function() {
		TechnicalHelp.pageCurrent += 1;
		var from = (TechnicalHelp.pageCurrent * TechnicalHelp.pageSize) - TechnicalHelp.pageSize;
		var to = from + TechnicalHelp.pageSize;
		TechnicalHelp.loadItems(from, to);
		return false;
	},
	prevPage: function() {
		TechnicalHelp.pageCurrent -= 1;
		var from = (TechnicalHelp.pageCurrent * TechnicalHelp.pageSize) - TechnicalHelp.pageSize;
		var to = from + TechnicalHelp.pageSize;
		TechnicalHelp.loadItems(from, to);
		return false;
	},
	init: function() {
		TechnicalHelp.loadItems(0, TechnicalHelp.pageSize);
	}
};

var Certificates = {
	pageSize: 2,
	pageCurrent: 1,
	loadCertificates: function(from, to) {
		var lst = "<div class='CertificatesRefresh'><div style='font-size:8pt;'>To retrieve your CPD certificate simply watch one of the above chapters from start to finish and then click the ‘Download’ button which will appear below.</div><a href='javascript:location.reload()' class='refresh'><span>refresh</span></a></div>";
		for (var i = from; i < Math.min(ce.Certificates.length, to); i++) {
			var c = ce.Certificates[i];
			lst += "<div class='videoChapter'><h3>Certificate " + (i + 1) + "</h3>"
				+ "<p>" + c.Watched + " chapters watched out of " + c.Total + "</p>"
			if (c.Watched > 0) {
				lst += "<div><a target='_blank' href='/CMS/Certificates/" + c.MID + ".pdf' class='download'><span>download</span></a></div>"
			}
			else {
				lst += "<p class='watchRemainingChapters'>Watch the remaining chapters to qualify for the certificate download</p>"
			}

			lst += "</div>"
		}
		jQuery("#boxCertificates").html(lst);

		Certificates.setupPager();
	},
	setupPager: function() {
		var pager = "";
		if (ce.Certificates.length > Certificates.pageSize) {
			/*setup pager*/
			var pageCount = Math.ceil(ce.Certificates.length / Certificates.pageSize)

			if (Certificates.pageCurrent < pageCount) pager += site.lnkRight;
			if (Certificates.pageCurrent > 1) pager += site.lnkLeft;

			pager += "<div class='chapterChooserText'><p>Page " + Certificates.pageCurrent + " of " + pageCount + "</p></div>";
			jQuery("#CertificatesPager").html(pager);
			jQuery("#CertificatesPager .arrowRight a").click(Certificates.nextPage);
			jQuery("#CertificatesPager .arrowLeft a").click(Certificates.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#CertificatesPager").empty();
		}
	},
	nextPage: function() {
		Certificates.pageCurrent += 1;
		var from = (Certificates.pageCurrent * Certificates.pageSize) - Certificates.pageSize;
		var to = from + Certificates.pageSize;
		Certificates.loadCertificates(from, to);
		return false;
	},
	prevPage: function() {
		Certificates.pageCurrent -= 1;
		var from = (Certificates.pageCurrent * Certificates.pageSize) - Certificates.pageSize;
		var to = from + Certificates.pageSize;
		Certificates.loadCertificates(from, to);
		return false;
	},
	init: function() {
		Certificates.loadCertificates(0, Certificates.pageSize);
	}
};

jQuery(document).ready(site.init);

function createRecursiveObjects(spec) {
	var obj = document.createElement(spec.element);
	for (var attrib in spec.attributes) obj[attrib] = spec.attributes[attrib];
	if (spec.text && spec.text != "") jQuery(obj).html(spec.text);
	for (var style in spec.styles) obj.style[style] = spec.styles[style];
	for (var event in spec.events) if(spec.events[event]) obj[event]=spec.events[event];
	for (var child in spec.children) obj.appendChild(createRecursiveObjects(spec.children[child]));
	if (spec.callback && typeof spec.callback == "function") spec.callback(obj);
	return obj
}
Function.prototype.bind = function(obj) {
    var method = this,
	temp = function() {
	    return method.apply(obj, arguments);
	};
    return temp
}