
//These are the course results
var m_elmCourseResults;
var m_strCourseFilename = "";
var m_xdCourseXml;
var m_strCourseGuid;
function LoadCourse(strFilename)
{
	m_strCourseFilename = strFilename;
	
	// Load the course XML and info
	m_xdCourseXml = SimLoadDocument(g_strResourceDirectory + m_strCourseFilename);
    	    	
	m_strCourseGuid = m_xdCourseXml.documentElement.getAttribute("guid");
	var strCourseName = m_xdCourseXml.documentElement.getAttribute("guid");

	//Add a left-side panel
	
	AddNavPanel(m_strCourseGuid, GetString("TEXT_COURSE"), "LoadCourseContentInfo()");
	
	//Get the structure
	var _CoursePanel = document.getElementById("NavContent_" + m_strCourseGuid);
	
	
	var simPlayer = GetPageObject("player");
	simPlayer.SetCourseXml(m_xdCourseXml.xml);
		
	var strCourseHTML = "";
	
	strCourseHTML += RecurseLoadStructObject(m_xdCourseXml.documentElement);
	
	_CoursePanel.innerHTML = strCourseHTML;
	
	//Get the results
	m_elmCourseResults = GetLocalResults(m_strCourseGuid);
	
}

function GetSearchResults(strSearch)
{
	if (strSearch == "")
		return "";
	
	var strReturn = "";
	var nlList = m_xdCourseXml.selectNodes("//SUITE");
	
	for (var i = 0; i < nlList.length;  i++)
	{
		var elmSuite = nlList[i];
		var strTestName = elmSuite.getAttribute("displayname").toLowerCase();
		var strTestKeyword = elmSuite.getAttribute("keywords").toLowerCase();
		
		strSearch = strSearch.toLowerCase();

		if (strTestName.indexOf(strSearch) > -1 || strTestKeyword.indexOf(strSearch) > -1)
		{
			strReturn += "<SPAN id='SUITE" + elmSuite.getAttribute("guid") + "' onclick='StartSuite(\"" + elmSuite.getAttribute("guid") + "\")' class='SuiNormal' style='padding-left:20'>";
			strReturn += elmSuite.getAttribute("displayname") + "<BR />";
			strReturn += "</SPAN>";
			strReturn += "</DIV>";
		}
	}
	
	return strReturn;
}

function ReloadCourseStatusXml()
{
	m_elmCourseResults = GetLocalResults(m_strCourseGuid);
}

function UpdateCourseStatus()
{
	if(m_elmCourseResults!=null)
	{
		//Go thru all the suites
		var nlSuites = m_xdCourseXml.selectNodes("//SUITE")
		for(var i = 0; i < nlSuites.length; i++)
		{
			//Get the suite xml
			var elmSuite = nlSuites[i];
			var strGuid = elmSuite.getAttribute("guid");
			
			//Try to get the results
			var elmSuiteResult = m_elmCourseResults.selectSingleNode("//ITEMRESULTS[@guid=\"" + strGuid + "\"]");
			
			var strStatus = 0;
			if(elmSuiteResult!=null)
				strStatus = elmSuiteResult.getAttribute("status");
			
			//Update
			SetSuiteStatus(strGuid, strStatus);
		}
	}
}

		
function SetSuiteStatus(strGuid, intStatus)
{
	//The progress status
	
	var strIcon = "Sui";
	if(intStatus == 0)
		strIcon += "Normal";
	else if(intStatus == 1)
		strIcon += "Started";
	else if(intStatus == 2)
		strIcon += "Complete";
	else if(intStatus == 3)
		strIcon += "Error";
	
	//Get the recommendation status
	//Get the suite xml
	var elmSuite = m_xdCourseXml.selectSingleNode("//SUITE[@guid=\"" + strGuid + "\"]");
	if(elmSuite.getAttribute("recommend")=="0") //Always
	{
		strIcon += "Rec";
	}
	else if(elmSuite.getAttribute("recommend")=="1") //Never
	{
		strIcon += "";
	}
	else if(elmSuite.getAttribute("recommend")=="2") //Auto
	{
		//Get it from the testresults
		if(GetSuiteCategoryPassed(elmSuite)==false)
			strIcon += "Rec";
	}
	
	var elmSuiteIcon = GetPageObject("SUITE" + strGuid);
	if(elmSuiteIcon!=null)
		elmSuiteIcon.className = strIcon;
	
}

function GetSuiteCategoryPassed(elmSuite)
{
	return IsCategoryPassed(elmSuite.getAttribute("categoryid"));
}

function RecurseLoadStructObject( elmElement)
{
	var strCourseHTML = "";
	var i = 0;
	for(i = 0; i < elmElement.childNodes.length; i++)
	{
		var elmChild = elmElement.childNodes[i];
		if(elmChild.tagName == "SUITE")
		{
			strCourseHTML +="<DIV style='margin-right:40;'>";
			strCourseHTML +="<SPAN id='SUITE" + elmChild.getAttribute("guid") + "' onclick='StartSuite(\"" + elmChild.getAttribute("guid")  + "\")' class='SuiNormal' style='padding-left:20'>";
			strCourseHTML +=	elmChild.getAttribute("displayname") + "&nbsp;&nbsp;&nbsp;&nbsp;<BR />";
			strCourseHTML +="</SPAN>";
			strCourseHTML +="</DIV>";
		}
		if(elmChild.tagName == "FOLDER")
		{
			var strGuid = elmChild.getAttribute("guid");
			strCourseHTML +="<DIV style='margin-right:40;'>";
			strCourseHTML +="	<SPAN onclick='ToggleChildren(\"" + strGuid + "\")' id='folder" + strGuid + "' class='structfolderplus' style=''>";
			strCourseHTML +=	elmChild.getAttribute("displayname") + "<BR />";
			strCourseHTML +="	</SPAN>";
			strCourseHTML +="	<DIV style='display:none;padding-left:30px;' id='childrenof" + strGuid + "' >";
			strCourseHTML +=		RecurseLoadStructObject(elmChild);
			strCourseHTML +="	</DIV>";
			strCourseHTML +="</DIV>";
		}
	}
	return strCourseHTML;
}

function LoadCourseContentInfo()
{
	
	//Get the panel
	_ContentWin = GetPageObject("ContentWin");
	
	//Hide eventual content info
	RemoveContentInfo();
	
	
	//Find the player and hide it
	HidePlayer();
	
	//Show the course info
	//var xdCourseXml = SimLoadDocument(g_strResourceDirectory + m_strCourseFilename);
	
	//TODO: Language
	var strHTML = "<p>" + GetString("TEXT_PROJ_DESC") + "</p>";
	
	//The start item
	var strStartItem = GetStartItem(m_xdCourseXml.documentElement);

	var strLinkText = GetString("TEXT_START_COURSE");
	if(m_elmCourseResults!=null)
	    strLinkText = GetString("TEXT_CONTINUE_COURSE");

	strHTML += "<span class='arrowlink' onclick='StartSuite(\"" + strStartItem + "\")'>" + strLinkText + "</span>";
	
	//the score
	var intScore = 0;
	if(m_elmCourseResults!=null)
		intScore = m_elmCourseResults.documentElement.getAttribute("progress");
		
	strHTML +="<P>"
	strHTML += "<span class=\"header1\">" + GetString("LABEL_YOUR_PROGRESS") + "</span><br/><br/>";
	strHTML += "<table>";
	strHTML += "<tr><td valign=bottom>";
	strHTML +=	GetStatusBar(intScore);
	strHTML += "</td><td>";
	strHTML += "&nbsp;" + intScore + "%";
	strHTML += "</td></tr></table>";
	
	
	var divDest = document.createElement("<DIV id='elmContentInfo'>");
	divDest.innerHTML = strHTML;
	_ContentWin.appendChild(divDest);
}

function GetStartItem(elmCourse)
{
	//Last Played Item
	if(m_elmCourseResults != null)
	{
		var strFirstItem = m_elmCourseResults.documentElement.getAttribute("lastitem");
		//Check if it exists
		var elmSuite = m_xdCourseXml.selectSingleNode("//SUITE[@guid=\"" + strFirstItem + "\"]");
		if(elmSuite!=null)
			return strFirstItem;
	}
	//First Item
	else
	{
		var elmFirstSuite = elmCourse.selectSingleNode("//SUITE");
		if(elmFirstSuite == null)
			return "";
		
		return elmFirstSuite.getAttribute("guid"); 
	}
}