﻿// gets eLearning progress, sets passed barElement width, txtElement text, loader image and completion tick
function geteLearningProgress(WSUserID,WSPwd,VLEUnitId,VLEUserId, url, barElement, txtElement, loader, tick) {
	var progress = 0;
	loader.setStyle({visibility:'visible'});
	if (barElement != null) {
		barElement.setStyle({display:'none'});
	}

	new Ajax.Request(url, {
		  method: 'post',
		  parameters: {WSUserID: WSUserID, WSPwd: WSPwd, VLEUnitId: VLEUnitId, VLEUserId: VLEUserId},
		  onSuccess: function(transport) {
				var xmldoc;
				var barWidth;
				// get value from IE responseText
				// an alternative would be to fix the headers sent by PHP
				if (window.ActiveXObject) {
					var doc=new ActiveXObject("Microsoft.XMLDOM");
					doc.async = "false";
					doc.loadXML(transport.responseText);
					var x=doc.documentElement;
					barWidth = x.childNodes[0].nodeValue;
				} else {
					xmldoc = transport.responseXML;
					barWidth = xmldoc.firstChild.textContent;
				}
		    if (barElement != null) {
          barElement.setStyle({width : barWidth + '%'});
          Effect.Appear(barElement.id, { duration: 2.0 });		    
				}
				loader.setStyle({display:"none"});
				if (barWidth > 0 && tick != null) {
					txtElement.update(barWidth + '%');
				}
				else if (barWidth > 0 && txtElement.valueOf() > 0 && tick == null) {
				  txtElement.update(txtElement.valueOf() += barWidth + '%');
				}
				else if (barWidth <= 0) {
				  txtElement.update(0 + '%');
				}
				else {
					txtElement.update(barWidth + '%');
					txtElement.update(barWidth);
					txtElement.update(" - ");
				}
		    if (barWidth == 100 && tick){
		        tick.setStyle({display:'inline'});
		        txtElement.setStyle({visibility:'hidden'});
		        txtElement.setStyle({display:"none"});
		    }
		  },
		  onFailure: function(requester, e) { 
				loader.setStyle({display:"none"});
				//txtElement.update(" error ");
		    if (barElement != null) {
					barElement.setStyle({width:"0%"});
		    }
		    txtElement.update(tick);
			},
		  onException:  function(requester, e) {
				loader.setStyle({display:"none"});
		    txtElement.update(tick);
		  }
		});			
}

// gets quiz score, sets passed txtElement text and loader image visibility
// visibility of loader should be set to hidden initially
function getQuizScore(WSUserID,WSPwd,VLEUnitId,VLEUserId, url, txtElement, loader) {
	loader.setStyle({visibility:'visible'});
	new Ajax.Request(url, {
		  method: 'post',
		  parameters: {WSUserID: WSUserID, WSPwd: WSPwd, VLEUnitId: VLEUnitId, VLEUserId: VLEUserId},
		  onSuccess: function(transport) {
		    // get width from result - add percentage
		    var score;
				// get value from IE responseText
				// an alternative would be to fix the headers sent by PHP
				if (window.ActiveXObject) {
					var doc=new ActiveXObject("Microsoft.XMLDOM");
					doc.async = "false";
					doc.loadXML(transport.responseText);
					var x=doc.documentElement;
					score = x.childNodes[0].nodeValue;
				} else {
					score = transport.responseXML.firstChild.textContent;
				}
		    
				loader.setStyle({display:"none"});
				if (score >= '0') {
					txtElement.update(score + "%");
				} else {
					//txtElement.update(score + "%");
					txtElement.update("-");
				}
		  },
		  onFailure: function(requester, e) { 
		    loader.setStyle({display:"none"});
		    txtElement.update(" - ");
			},
		  onException:  function(requester, e) {
		    loader.setStyle({display:"none"});
		    txtElement.update(" - ");
		  }
		});				
}



// gets eLearning time spent, sets passed txtElement text, and loader image
function geteLearningTimeSpent(WSUserID,WSPwd,VLEUnitId,VLEUserId,url,txtElement, loader) {
	//var progress = 0;
	loader.setStyle({visibility:'visible'});
	new Ajax.Request(url, {
		  method: 'post',
		  parameters: {WSUserID: WSUserID, WSPwd: WSPwd, VLEUnitId: VLEUnitId, VLEUserId: VLEUserId},
		  onSuccess: function(transport) {
		  
				/*var xmldoc;
				var barWidth;*/
				var timeSpent;
				// get value from IE responseText
				// an alternative would be to fix the headers sent by PHP
				if (window.ActiveXObject) {
					var doc=new ActiveXObject("Microsoft.XMLDOM");
					doc.async = "false";
					doc.loadXML(transport.responseText);
					var x=doc.documentElement;
					timeSpent = x.childNodes[0].nodeValue;
				} else {
					timeSpent = transport.responseXML.firstChild.textContent;
				}
				loader.setStyle({display:"none"});
			    if(timeSpent != "") {
				    txtElement.update(timeSpent);
				} else {
				    txtElement.update("n/a");
				}
				
		  },
		  onFailure: function(requester, e) { 
		    loader.setStyle({display:"none"});
		    txtElement.update(" - ");
			},
		  onException:  function(requester, e) {
		    loader.setStyle({display:"none"});
		    txtElement.update(" - ");
		  }
		});				
}
				

