var firstTimeSession = 0;
//Ie6 detection. passing the variable to web service
var _isIE6 = false;
var wcf = "http://casper2.tsbc.co.uk/";
var loadingIMG = '<div id="loading"><p><img src="' + wcf + 'media/images/ajax-loader.gif" /></p></div>';
if($.browser.msie && $.browser.version=="6.0") _isIE6=true;

function getHTML(_ClientID, _CatID, _LessonID, _ClientUserID) {
	$("#TsbcEmbed").html(loadingIMG);
	
	if ( _ClientUserID == null || _ClientUserID =='null')
    	{
    		_ClientUserID = readCookie("HTML_ClientUserID");
    	}

	var input = { "clientID": _ClientID, "catID": _CatID, "lessonID":  _LessonID, "ClientUserID": _ClientUserID, "isIE6": _isIE6 };
    	var url = wcf + "WS/GetResponse.svc/GetHTML";
    	var option = {
                    type: "GET",
                    error: function(request, status, error) {
                        $("#TsbcEmbed").text("error found:" + request.responseText);
                    },
                    complete: function() {
                    },
                    dataType: "jsonp",
                    contentType: "application/json",
                    success: function(data, status, XMLHttpRequest) {
                        if (data.d)
                        {
                            $("#TsbcEmbed").empty();
                            $("#TsbcEmbed").html(data.d);
                        }
                        else
                        {
                            $("#TsbcEmbed").empty();
                            $("#TsbcEmbed").html(data.d);
                        }
                    },
                    data: input,
                    timeout: 5000,
                    url: url
    	};
	$.ajax(option);
}

function getHTMLAsText(_ClientID, _CatID, _LessonID, _ClientUserID) {
	var input = { "clientID": _ClientID, "catID": _CatID, "lessonID":  _LessonID, "ClientUserID": _ClientUserID };
    var url = wcf + "WS/GetResponse.svc/GetHTML";
    var option = {
                    type: "GET",
                    error: function(request, status, error) {
                        $("#TsbcEmbed").text("error:" + request.responseText);
                    },
                    dataType: "jsonp",
                    contentType: "application/json",
                    success: function(data, status, XMLHttpRequest) {
                        if (data.d)
                        {
                        	$("#TsbcEmbed").empty();
                            $("#TsbcEmbed").text(data.d);
                        }
                        else
                        {
                        	$("#TsbcEmbed").empty();
                             $("#TsbcEmbed").text(data.d);
                        }
                    },
                    data: input,
                    url: url
    };
	$.ajax(option);
}


function getFlash(_ClientID, _CatID, _LessonID, _ClientUserID) {
	
    var pageno = readCookie("PageNo");
    var cookieLessonID = readCookie("LessonID");

    if ( _ClientUserID == null || _ClientUserID =='null')
    {
    	_ClientUserID = readCookie("ClientUserID");
    }
     if (pageno == null)
     {
     	pageno = -1;
     }
	 if (cookieLessonID != _LessonID)
	 {
	 	pageno = -1;
	 }

	var input = { "clientID": _ClientID, "catID": _CatID, "lessonID":  _LessonID, "pageno": pageno, "ClientUserID": _ClientUserID };
	var url = wcf + "WS/GetResponse.svc/GetFlash";
	        
    if (FlashDetect.installed && FlashDetect.versionAtLeast(9)) {
        $("#TsbcFlash").html(loadingIMG);
        
        var option = {
                    type: "GET",
                    error: function(request, status, error) {
                    	alert("error");
                        $("#errorText").text("error:" + request.responseText);
                    },
                    dataType: "jsonp",
                    contentType: "application/json",
                    success: function(data, status, XMLHttpRequest) {
                        if (data.d)
                        {
                           	$("#TsbcFlash").empty();
                            $("#TsbcFlash").html(data.d);
                        }
                        else
                        {
                        	$("#TsbcFlash").empty();
                             $("#TsbcFlash").html(data.d);
                        }
                    },
                    data: input,
                    url: url
	    };
		$.ajax(option);
    } else {
        $("#TsbcFlash").append("<p>Flash Player 9 or later is required to run this training.</p><p>Please visit <a href='http://get.adobe.com/flashplayer' target='_blank'>Adobe.com</a> to update to update your browser to work with this training.</p>"); 
    }  
}

function Syndication_getFlash(_LessonClientID, _UserClientID, _CatID, _LessonID, _ClientUserID) {
	
    var pageno = readCookie("PageNo");
    var cookieLessonID = readCookie("LessonID");

    if ( _ClientUserID == null || _ClientUserID =='null')
    {
    	_ClientUserID = readCookie("ClientUserID");
    }
     if (pageno == null)
     {
     	pageno = -1;
     }
	 if (cookieLessonID != _LessonID)
	 {
	 	pageno = -1;
	 }

	var input = { "lessonClientID": _LessonClientID, "userClientID": _UserClientID, "catID": _CatID, "lessonID":  _LessonID, "pageno": pageno, "ClientUserID": _ClientUserID };
	var url = wcf + "WS/GetResponse.svc/Syndication_GetFlash";
	        
    if (FlashDetect.installed && FlashDetect.versionAtLeast(9)) {
        $("#TsbcFlash").html(loadingIMG);
        var option = {
                    type: "GET",
                    error: function(request, status, error) {
                    	alert("error");
                        $("#errorText").text("error:" + request.responseText);
                    },
                    dataType: "jsonp",
                    contentType: "application/json",
                    success: function(data, status, XMLHttpRequest) {
                        if (data.d)
                        {
                           	$("#TsbcFlash").empty();
                            $("#TsbcFlash").html(data.d);
                        }
                        else
                        {
                        	$("#TsbcFlash").empty();
                             $("#TsbcFlash").html(data.d);
                        }
                    },
                    data: input,
                    url: url
	    };
		$.ajax(option);
    } else {
        $("#TsbcFlash").append("<p>Flash Player 9 or later is required to run this training.</p><p>Please visit <a href='http://get.adobe.com/flashplayer' target='_blank'>Adobe.com</a> to update to update your browser to work with this training.</p>"); 
    }  
}

function getPageList(_ClientID, _CatID, _LessonID, _ClientUserID) {
	$("#TsbcEmbed").html(loadingIMG);
	
	if ( _ClientUserID == null || _ClientUserID =='null')
    	{
    		_ClientUserID = readCookie("HTML_ClientUserID");
    	}

	var input = { "clientID": _ClientID, "catID": _CatID, "lessonID":  _LessonID, "ClientUserID": _ClientUserID };
    	var url = wcf + "WS/GetResponse.svc/GetPageList";
    	var option = {
                    type: "GET",
                    error: function(request, status, error) {
                        $("#TsbcEmbed").text("error found:" + request.responseText);
                    },
                    complete: function() {
                    },
                    dataType: "jsonp",
                    contentType: "application/json",
                    success: function(data, status, XMLHttpRequest) {
                        if (data.d)
                        {
                            $("#TsbcEmbed").empty();
                            $("#TsbcEmbed").html(data.d);
			    $("#TsbcEmbed").find(".pageHolder").append(loadingIMG);
			    if ( _ClientUserID == null || _ClientUserID =='null')
			    {
			    	_ClientUserID = readCookie("HTML_ClientUserID");
			    }
			    var _UnitID = $("#hf_unitid").val();
			    //Get unit html, this will be the first unit so last parameter is true, and will not 
			    //triiger go to next page function in success callback.
			    var isfirstunit = true;
			    getUnitHTML(_ClientID, _CatID, _LessonID, _UnitID, _ClientUserID, isfirstunit);
                        }
                        else
                        {
                             $("#TsbcEmbed").empty();
                             $("#TsbcEmbed").html(data.d);
                        }
                    },
                    data: input,
                    timeout: 5000,
                    url: url
    	};
	$.ajax(option);
}

function getUnitHTML(_ClientID, _CatID, _LessonID, _UnitID, _ClientUserID, isfirstunit, lastpageofunit) {
	var input = { "clientID": _ClientID, "catID": _CatID, "lessonID":  _LessonID, "unitID": _UnitID, "ClientUserID": _ClientUserID, "isIE6": _isIE6 };
	var url = wcf + "WS/GetResponse.svc/GetUnitHTML";
    	var option = {
		type: "GET",
		error: function(request, status, error) {
			$("#TsbcEmbed").text("error found:" + request.responseText);
		},
		complete: function() {
		},
		dataType: "jsonp",
		contentType: "application/json",
		success: function(data, status, XMLHttpRequest) {
			if (data.d)
			{
				$("#TsbcEmbed").find("#loading").remove();
				$("#TsbcEmbed").find(".pageHolder").append(data.d);
			}
			else
			{
				$("#TsbcEmbed").empty();
				$("#TsbcEmbed").html(data.d);
			}
			//load lesson scripts
			$.ajaxSetup({async: false});
			$.getScript(wcf + "media/scripts/CSJSRequestObject.js");
			$.getScript(wcf + "media/scripts/AjaxViewLesson.js");
			$.ajaxSetup({async: true});
			//if its not first unit of a multi unit lesson, lets go to first page. rather than start page.
			if(isfirstunit==false) {
				if(lastpageofunit!=null) {
					changePage("", lastpageofunit);
				}
				else {
					changePage("", 1);
				}
			}
		},
		data: input,
		timeout: 5000,
		url: url
	};
	$.ajax(option);
}

function RecordPageVisit(clientID, unitID, lessonID, pageno, clientUserID) {
	var input = { "clientID": clientID, "unitID": unitID, "lessonID":  lessonID, "pageno":  pageno, "ClientUserID": clientUserID };
    	var url = wcf + "WS/GetResponse.svc/RecordPageVisited";
    	var option = {
                    type: "GET",
                    complete: function() {
                    },
                    dataType: "jsonp",
                    contentType: "application/json",
                    success: function(data, status, XMLHttpRequest) {                       
                    },
                    data: input,
                    timeout: 3000,
                    url: url
    	};
	$.ajax(option);
}

function SetLessonToCompleted(clientID, lessonID, clientUserID) {
	var input = { "clientID": clientID, "lessonID":  lessonID, "ClientUserID": clientUserID };
    	var url = wcf + "WS/GetResponse.svc/SetLessonToCompleted";
    	var option = {
                    type: "GET",
                    complete: function() {
                    },
                    dataType: "jsonp",
                    contentType: "application/json",
                    success: function(data, status, XMLHttpRequest) {                       
                    },
                    data: input,
                    timeout: 3000,
                    url: url
    	};
	$.ajax(option);
}

function getHTMLArticle(_ClientID, _ArticleID) {
	$("#TsbcEmbed").html(loadingIMG);
	var input = { "clientID": _ClientID, "articleID": _ArticleID };
    	var url = wcf + "WS/GetResponse.svc/GetHTMLArticle";
    	var option = {
                    type: "GET",
                    error: function(request, status, error) {
                        $("#TsbcEmbed").text("error found:" + request.responseText);
                    },
                    complete: function() {
                    },
                    dataType: "jsonp",
                    contentType: "application/json",
                    success: function(data, status, XMLHttpRequest) {
                        if (data.d)
                        {
                        	$("#TsbcEmbed").empty();
                            $("#TsbcEmbed").html(data.d);
                        }
                        else
                        {
                        	$("#TsbcEmbed").empty();
                             $("#TsbcEmbed").html(data.d);
                        }
                    },
                    data: input,
                    timeout: 5000,
                    url: url
    	};
	$.ajax(option);
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) 
		{
			return c.substring(nameEQ.length,c.length);
		}
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

//http://www.featureblend.com/license.txt
var FlashDetect = new function() {
    var self = this; self.installed = false; self.raw = ""; self.major = -1; self.minor = -1; self.revision = -1; self.revisionStr = ""; var activeXDetectRules = [{ "name": "ShockwaveFlash.ShockwaveFlash.7", "version": function(obj) { return getActiveXVersion(obj); } }, { "name": "ShockwaveFlash.ShockwaveFlash.6", "version": function(obj) {
        var version = "6,0,21"; try { obj.AllowScriptAccess = "always"; version = getActiveXVersion(obj); } catch (err) { }
        return version;
    } 
    }, { "name": "ShockwaveFlash.ShockwaveFlash", "version": function(obj) { return getActiveXVersion(obj); } }]; var getActiveXVersion = function(activeXObj) {
        var version = -1; try { version = activeXObj.GetVariable("$version"); } catch (err) { }
        return version;
    }; var getActiveXObject = function(name) {
        var obj = -1; try { obj = new ActiveXObject(name); } catch (err) { obj = { activeXError: true }; }
        return obj;
    }; var parseActiveXVersion = function(str) { var versionArray = str.split(","); return { "raw": str, "major": parseInt(versionArray[0].split(" ")[1], 10), "minor": parseInt(versionArray[1], 10), "revision": parseInt(versionArray[2], 10), "revisionStr": versionArray[2] }; }; var parseStandardVersion = function(str) { var descParts = str.split(/ +/); var majorMinor = descParts[2].split(/\./); var revisionStr = descParts[3]; return { "raw": str, "major": parseInt(majorMinor[0], 10), "minor": parseInt(majorMinor[1], 10), "revisionStr": revisionStr, "revision": parseRevisionStrToInt(revisionStr) }; }; var parseRevisionStrToInt = function(str) { return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision; }; self.majorAtLeast = function(version) { return self.major >= version; }; self.minorAtLeast = function(version) { return self.minor >= version; }; self.revisionAtLeast = function(version) { return self.revision >= version; }; self.versionAtLeast = function(major) { var properties = [self.major, self.minor, self.revision]; var len = Math.min(properties.length, arguments.length); for (i = 0; i < len; i++) { if (properties[i] >= arguments[i]) { if (i + 1 < len && properties[i] == arguments[i]) { continue; } else { return true; } } else { return false; } } }; self.FlashDetect = function() { if (navigator.plugins && navigator.plugins.length > 0) { var type = 'application/x-shockwave-flash'; var mimeTypes = navigator.mimeTypes; if (mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description) { var version = mimeTypes[type].enabledPlugin.description; var versionObj = parseStandardVersion(version); self.raw = versionObj.raw; self.major = versionObj.major; self.minor = versionObj.minor; self.revisionStr = versionObj.revisionStr; self.revision = versionObj.revision; self.installed = true; } } else if (navigator.appVersion.indexOf("Mac") == -1 && window.execScript) { var version = -1; for (var i = 0; i < activeXDetectRules.length && version == -1; i++) { var obj = getActiveXObject(activeXDetectRules[i].name); if (!obj.activeXError) { self.installed = true; version = activeXDetectRules[i].version(obj); if (version != -1) { var versionObj = parseActiveXVersion(version); self.raw = versionObj.raw; self.major = versionObj.major; self.minor = versionObj.minor; self.revision = versionObj.revision; self.revisionStr = versionObj.revisionStr; } } } } } ();
}; FlashDetect.JS_RELEASE = "1.0.4";
