
/**  sld - misc js jan 2008  **/
//

// ##################
// admin buttons - edit, add etc

var resourceID = 0; //var to host the user choice
var testingID = 0; //var to hold the testing user id

var msg = "Please choose one resource\nclick on radio button";

function SetLP(resource, level, topic){
	resourceID = resource;

}

/////////////////////////////////////////
// sho admin add edit boxes
function showadmin(dowhat, level, topic, resourcetype, verbalresourcetype){
	
	//alert(dowhat + ' ' + level + '  ' + topic + ' ' + verbalresourcetype + ' ' + resourceID);return;
	//first check that a resource radio button has been selected
	if (dowhat == 'EDIT'){
		if (resourceID == 0){alert(msg);return false;}
	}
	
	var div = 'main';
	var page_request = false;
	var date = new Date();	var timestamp = date.getTime();
	
	var arr = {
		'dowhat' : dowhat,
		'reourceid' : resourceID,
		'resourcetypeid' : resourcetype,
		'levelid' : level,
		'topicid' :  topic,
		'verbalresourcetype' :verbalresourcetype,
		'time' : timestamp
	}
	var data = ued_encode(arr);
	
	document.getElementById("status").innerHTML = "please wait...";
	
	//send to ajax.php
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
			page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		}
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){
				alert('sorry, your browser does not support ajax - please upgrade to a newer version');
			}
		}
	}else return false

	page_request.onreadystatechange=function(){
		if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
			var return_array = page_request.responseText.split(",");
			document.getElementById(div).innerHTML = return_array;
			document.getElementById("status").innerHTML = "";
			//resourceID = 0;
		}	
	}
	
	strUrl = "ajax/ajax.php?" + data;
	//alert (strUrl);
	page_request.open('GET', strUrl, true);
	page_request.send(null);
}

/////////////////////////////////////////////////////
// function to send requests to the db for WORKSHEETS
//////////////////////////////////////////////////
function saveWorksheet (dowhat, level, topic, resourcetype, verbalresourcetype) {
	
	var div = 'main';
	var page_request = false;
	var date = new Date();	var timestamp = date.getTime();
	
	//document.getElementById(div).innerHTML = "please wait...";
	
	if (dowhat == 'CANCEL'){
		document.getElementById(div).innerHTML = "";
		return false;
	}
	
	//first check that a resource radio button has been selected is appropriate
	if (dowhat == 'DELETE' || dowhat == 'EDIT'){
		if (resourceID == 0){alert(msg);return false;}
	}
	// check we really want to delete...
	if (dowhat == 'DELETE'){
		var answer = confirm('This will delete this resource completely!\nDo you want to continue?')
		if (answer != 1 ) return false;	
	}
	
	// validate the text fields if not a delete
	if (dowhat != 'DELETE'){
		var title = ValidateForm('addlinktitle', 'Please enter a title'); if (!title) return false;
		var desc = ValidateForm('addlinkdesc', 'Please enter a description'); if (!desc) return false;
	}
	// find whether an upload or template request
	for (var i=0; i < document.doctype.raddoc.length; i++){
   		if (document.doctype.raddoc[i].checked){var doctype = document.doctype.raddoc[i].value;}
   	}
	
	var arr = {
		'dowhat' : dowhat,
		'reourceid' : resourceID,
		'resourcetypeid' : resourcetype,
		'levelid' : level,
		'topicid' :  topic,
		'verbalresourcetype' :verbalresourcetype,
		'title' : title,
		'doctype' : doctype,
		'desc' : desc,
		'time' : timestamp
	}
	var data = ued_encode(arr);
	
	//send to ajaxadmin.php
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
			page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		}
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){
				alert('sorry, your browser does not support ajax - please upgrade to a newer version');
			}
		}
	}else return false

	page_request.onreadystatechange=function(){
		if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
			var return_array = page_request.responseText.split(",");
			document.getElementById(div).innerHTML = return_array;
			resourceID = 0;
		}
	}
	
	strUrl = "ajax/ajaxadmin.php?" + data;
	//alert (strUrl);
	page_request.open('GET', strUrl, true);
	page_request.send(null);
}

/////////////////////////////////////////////////////
// function to send requests to the db for LINKS
//////////////////////////////////////////////////
function saveResource (dowhat, level, topic, resourcetype, verbalresourcetype) {
	
	var div = 'main';
	//alert (dowhat + ' ' + level + ' ' + topic + ' ' + verbalresourcetype);
	var page_request = false;
	var date = new Date();	var timestamp = date.getTime();
	
	//check to sew ig this is a test link to delete and change dowhat if so
	if (verbalresourcetype == 'testing') { dowhat = 'DELETE-TEST' }
	if (verbalresourcetype == 'useful') { dowhat = 'DELETE-USEFUL'}
	//alert (dowhat + ' ' + level + ' ' + topic + ' ' + verbalresourcetype);
	var check = true;
	//decide which div to redraw
	switch (dowhat){
		case 'ADD-LINK':
			div = 'right-col';
			check = false;
			break;
		case 'ADD-TEST':
			div = 'right-col';
			check = false;
			break;
		case 'ADD-USEFUL':
			div = 'right-col';
			check = false;
			break;
		case 'DELETE':
			div = 'right-col';
			break;
		case 'DELETE-TEST':
			div = 'right-col';
			break;
		case 'DELETE-USEFUL':
			div = 'right-col';
			break;
		case 'EDIT-LINK':
			div = 'right-col';
			break;
		case 'EDIT-DOC':
			div = 'right-col';
			break;
		case 'EDIT-TEST':
			div = 'right-col';
			break;	
		case 'EDIT-USEFUL':
			div = 'right-col';
			break;	
		default:
			div = 'main';
			break;
	}
	
	if (dowhat == 'CANCEL'){
		document.getElementById(div).innerHTML = "";
		return false;
	}
	
	//first check that a resource radio button has been selected is appropriate
	//alert(resourceID);	
	//if (check){
	//	if (resourceID == 0){alert(msg);return false;}
	//}
	// check we really want to delete...
	if ((dowhat == 'DELETE') || (dowhat == 'DELETE-TEST') || (dowhat == 'DELETE-USEFUL') ){
		var answer = confirm('This will delete this resource completely!\nDo you want to continue?')
		if (answer != 1 ) return false;	
	}
	
	// validate the text fields if not a delete
	if ((dowhat != 'DELETE') && (dowhat != 'DELETE-TEST') && (dowhat != 'DELETE-USEFUL') ){
		var title = ValidateForm('addlinktitle', 'Please enter a title'); if (!title) return false;
		if (dowhat != 'EDIT-DOC'){// don't check for ulr if editing a doc or worksheet
			var url = ValidateForm('addlinkurl', 'Please enter a address'); if (!url) return false;
		}
		var desc = ValidateForm('addlinkdesc', 'Please enter a description'); if (!desc) return false;
	}
	
	var arr = {
		'dowhat' : dowhat,
		'reourceid' : resourceID,
		'resourcetypeid' : resourcetype,
		'levelid' : level,
		'topicid' :  topic,
		'verbalresourcetype' :verbalresourcetype,
		'title' : title,
		'url' : url,
		'desc' : desc,
		'time' : timestamp
	}
	var data = ued_encode(arr);
	document.getElementById(div).innerHTML = "please wait...";
	
	//send to ajaxadmin.php
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
			page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		}
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){
				alert('sorry, your browser does not support ajax - please upgrade to a newer version');
			}
		}
	}else return false

	page_request.onreadystatechange=function(){
		if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
			var return_arr = page_request.responseText.split("|");
			var return_array =  return_arr[0];
			var help_array =  return_arr[1];
					
			document.getElementById('help').innerHTML = help_array;
			document.getElementById(div).innerHTML = return_array;
			
			document.getElementById('admin').innerHTML = "";
			resourceID = 0;
		}
	}
	
	strUrl = "ajax/ajaxadmin.php?" + data;
	//alert (strUrl);
	page_request.open('GET', strUrl, true);
	page_request.send(null);
}


/////////////////////////////////////////
//main showoage 
function showpage(admin, page, arg, title, level, topic, studentemail){
	
	//Get the values
	//reload the page if home clicked - workaround for session header warning...........
	if (page == 'home')
	{
		location.href= 'esol.php?usertype=t';
		return false;
	}
	//alert (page);
	//if contactform OR contactstudent then 
	//arg = $_SESSION['MM_StaffID'] and 
	//title = $_SESSION['MM_StaffName']
	//level = $_SESSION['MM_TutorName']
	//topic = urlencode($_SESSION['MM_TutorEmail']) FOR contactform
	//topic = urlencode($_SESSION['MM_TutorID']) FOR contactstudent

	var page_request = false;
	var date = new Date();	var timestamp = date.getTime();
	
	document.getElementById('status').innerHTML = "please wait...";
	if (page != 'topic')
	{
		document.getElementById('right-col').innerHTML = "Please Wait...";
	}
	
	//send to ajax.php
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
			page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		}
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){
				alert('sorry, your browser does not support ajax - please upgrade to a newer version');
			}
		}
	}else return false

	page_request.onreadystatechange=function(){
		if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
			var return_arr = page_request.responseText.split("|");
			var return_array =  return_arr[0];
			var help_array =  return_arr[1];
			document.getElementById('help').innerHTML = help_array;
			//document.getElementById('help-main').innerHTML = help_array;
			document.getElementById('main').innerHTML = "";
			//document.getElementById('left-col').innerHTML = "";
			document.getElementById('status').innerHTML = '';
			switch (page)
			{
				case 'resourcetype':
					document.getElementById('right-col').innerHTML = return_array;
					break;
					
				case 'topic':
					document.getElementById('left-col').innerHTML = return_array;
					break;
					
				case 'edit-A':
				case 'edit-E':
				case 'edit-D':
					document.getElementById('edit_buttons').innerHTML += return_array; // this div is generated in the esol class
					break;
					
				case 'resource':
					document.getElementById('right-col').innerHTML = return_array;
					break;
					
				case 'testing':
				case 'useful':
					document.getElementById('right-col').innerHTML = return_array;
					document.getElementById('left-col').innerHTML = '<img src="css/image/nic-side-topthree.png" alt="Tests" title="" />';
					break;
					
				case 'contactform':
				case 'contactstudent':
					document.getElementById('right-col').innerHTML = return_array;
					document.getElementById('left-col').innerHTML = '<img src="css/image/nic-side-botthree.png" alt="Contact" title="" />';
					break;
					
					
				default :
					document.getElementById('left-col').innerHTML = "";
					document.getElementById('right-col').innerHTML ="";
					document.getElementById('main').innerHTML = return_array;
				break;	
			}
			
		}
	}
	
	strUrl = "ajax/ajax.php?dowhat=" + page + "&arg=" + arg + "&title=" + title + "&level=" + level + "&topic=" + topic + "&time=" + timestamp + "&admin=" + admin + "&studentemail=" + studentemail;
	//alert (strUrl);
	page_request.open('GET', strUrl, true);
	page_request.send(null);
}



//////////////////////////////////////////////////////////////////////////////////////////////

//ued_encode() will take an array as its argument and return the data encoded in UED format - as a string.
//http://www.openjs.com/scripts/data/ued_url_encoded_data/
//The JS Array format of the example given above
/*
var arr = {
	'name':"Binny",
	'year':2007,
	'quote':"Hello, World!",
	'os':['Windows','Linux','Mac'],
	'software':{
		'editor':"vi",
		'audio':"xmms",
		'video':"vlc"
	}
}
var data = ued_encode(arr);
*/
function ued_encode(arr,current_index) {
	var query = ""
	if(typeof current_index=='undefined') current_index = '';

	if(typeof(arr) == 'object') {
		var params = new Array();
		for(key in arr) {
			var data = arr[key];
			var key_value = key;
			if(current_index) {
				key_value = current_index+"["+key+"]"
			}

			if(typeof(data) == 'object') {
				if(data.length) { //List
					for(var i=0;i<data.length; i++) {
						params.push(key_value+"[]="+ued_encode(data[i],key_value)); //:RECURSION:
					}
				} else { //Associative array
					params.push(ued_encode(data,key_value)); //:RECURSION:
				}
			} else { //String or Number
				params.push(key_value+"="+encodeURIComponent(data));
			}
		}
		query = params.join("&");
	} else {
		query = encodeURIComponent(arr);
	}

	return query;
}
/// editor
function submitHTML()
{
	
	document.frmEdit.dowhat.value = "editor";
	document.frmEdit.submit();
	return false;
}

//////////

//validation
function ValidateForm(element, errmsg, type){
	var validate = (trim(document.getElementById(element).value) != "" && document.getElementById(element).value != null) ? 
			trim(document.getElementById(element).value) : 'x';
	if (validate == 'x') {
		alert(errmsg);
		document.getElementById(element).focus();
		return false;
	}
	else {
		return 	validate;
	}
}
//email validation
function validate_email(field,alerttxt)
{
	with (field)
	{
		apos = value.indexOf("@");
		dotpos = value.lastIndexOf(".");
		if (apos<1||dotpos-apos<2) 
	  		{alert(alerttxt);field.focus(); return false;}
		else {return true;}
	}
}
//date validation - lets through 31 where not allowed!
function validateDate(fld) {
	 
    var RegExPattern = /^([1-9]|0[1-9]|[12][0-9]|3[01])\D([1-9]|0[1-9]|1[012])\D(19[0-9][0-9]|20[0-9][0-9])$/;
    var errorMessage = 'Please enter valid date as day, month, and four digit year.\nYou may use a slash, hyphen or period to separate the values.\n\nFormat dd/mm/yyyy.';
    if ((fld.value.match(RegExPattern)) && (trim(fld.value)!='')) {
        //alert('Date is OK'); 
        return true;
    } else {
        alert(errorMessage);
        fld.focus();
        return false;
    } 
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

/***************** login ************/
function showLogin(who){
	
	document.getElementById('usertype').value = who;
	document.getElementById('login').style.display = "block";
	document.getElementById('tutor-pic').style.display = "none";
	document.getElementById('student-pic').style.display = "none";
	document.getElementById('txtUser').focus();
}

function cancelLogin(){
	
	document.getElementById('login').style.display = "none";
	document.getElementById('tutor-pic').style.display = "block";
	document.getElementById('student-pic').style.display = "block";
	document.getElementById('showhelp').style.display = "none";
}

function showhelp(){
	
	document.getElementById('showhelp').style.display = "block";
	//document.getElementById('tutor-pic').style.display = "block";
	//document.getElementById('student-pic').style.display = "block";
	
}

/////////////////////////////////////////////
/** email - contacy **/
/////////////////////////////////////////////
function sendemail(type, userid, user, admin,  tutorname, tutoremail, studentemail ) {
	
	var subject = ValidateForm('edit-subject', 'Please enter a subject'); if (!subject) return false;
	var message = ValidateForm('edit-message', 'Please enter a message'); if (!message) return false;
	//alert(subject + ' ' + message + ' ' + userid);
	var page_request = false;
	var date = new Date();	var timestamp = date.getTime();
	
	document.getElementById('right-col').innerHTML = "Please Wait...";
	
	var arr = {
		'dowhat': 'contact',
		'type' : type,
		'subject' : subject,
		'message' : message,
		'userid' : userid,
		'admin' : admin,
		'tutorname' : tutorname,
		'tutoremail' : tutoremail,
		'studentemail' :  studentemail,
		'user': user,
		'time' : timestamp
	}
	var data = ued_encode(arr);
	
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
			page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		}
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){
				alert('sorry, your browser does not support ajax - please upgrade to a newer version');
			}
		}
	}else return false
	page_request.onreadystatechange=function(){
		if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
			var return_arr = page_request.responseText.split("|");
			var return_array =  return_arr[0];
			var help_array =  return_arr[1];
			
			document.getElementById('help').innerHTML = help_array;
			document.getElementById('main').innerHTML = "";
			document.getElementById('status').innerHTML = '';
			document.getElementById('right-col').innerHTML = return_array;
			document.getElementById('left-col').innerHTML = '<img src="css/image/nic-side.png" alt="Tests" title="" />';
		}
	}
	strUrl = "ajax/ajax.php?" + data;
	//alert (strUrl);
	page_request.open('GET', strUrl, true);
	page_request.send(null);
}