var XMLHttpRequestObject = false;

if (window.XMLHttpRequest) { // Mozilla, Safari,...
	XMLHttpRequestObject = new XMLHttpRequest();
	if (XMLHttpRequestObject.overrideMimeType) {
		XMLHttpRequestObject.overrideMimeType('text/xml');
		// See note below about this line
	}
} else if (window.ActiveXObject) { // IE
	try {
		XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	}
}


function restart_process_span(){
	if(document.getElementById('process_span') != null){
		setTimeout("document.getElementById('process_span').innerHTML = '';", 5000);
	}
}


function getData(dataSource, divID) {
	new Ajax.Updater(divID,  dataSource, { method: 'get' });
}



function getProcessingData(dataSource, divID) {
	startProgress();
	new Ajax.Updater(divID, dataSource, { method: 'get', 
					 						onSuccess: function() {document.getElementById('progress_span').innerHTML = ""; }
									 }
					);
}

function resetDiv(divID) {
	document.getElementById(divID).innerHTML="";
}

function getTimedData(dataSource, divID, timeout) {
	var timeout = (timeout == null) ? 5 : timeout;
	new Ajax.Updater(divID, dataSource, { method: 'get' });
	timeout = (parseInt(timeout) * 1000);
	setTimeout("resetDiv('"+divID+"')",timeout);
}

function getProcessingPostData(dataSource, divID, formID) {
	
	if(XMLHttpRequestObject) {
		var obj_div = document.getElementById(divID);
		var params = "";
		var fieldKey = "";
		var fieldValue = "";
		var formObj = document.getElementById(formID);
		var formLength = formObj.elements.length;
		var i = 0;
		//obtain data from form
		for(i=0; i<formLength; i++) {
			fieldKey = formObj.elements[i].name;
			fieldValue = formObj.elements[i].value;
			fieldValue = encodeURI(fieldValue);
			if(typeof fieldKey != 'undefined'){
				if(formObj.elements[i].type == "checkbox") {
					if(formObj.elements[i].checked) {
						params = params + "&" + fieldKey + "=" + fieldValue;
					}
				} 
				else if (formObj.elements[i].type == "radio") {
					if(formObj.elements[i].checked) {
						params = params + "&" + fieldKey + "=" + fieldValue;
					}
				} else {
					params = params + "&" + fieldKey + "=" + fieldValue;
				}

			}
		}
		
		XMLHttpRequestObject.open("POST", dataSource, true);
		XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		XMLHttpRequestObject.setRequestHeader("Content-length", params.length);
		XMLHttpRequestObject.setRequestHeader("Connection", "close");
		XMLHttpRequestObject.onreadystatechange = function() {
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				document.getElementById('progress_span').innerHTML = "";
				obj_div.innerHTML = XMLHttpRequestObject.responseText;
				obj_div = null;
			}
			else{
				//obj_div.innerHTML = "";
				document.getElementById('progress_span').innerHTML = "<img src='../images/process.gif' border='0' alt='processing' title='processing' />";
			}
		}
		XMLHttpRequestObject.send(params);
	}
}

function searchUser(dataSource, divID, formID) {
	if(XMLHttpRequestObject) {
		var obj = document.getElementById(divID);
		var params = "";
		var fieldKey = "";
		var fieldValue = "";
		var formObj = document.getElementById(formID);


		params = "&username=" + formObj.username.value;
		formObj.username.disabled = true;

		function activate_form(){
			formObj.username.disabled = false;
		}

		XMLHttpRequestObject.open("POST", dataSource, true);
		XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		XMLHttpRequestObject.setRequestHeader("Content-length", params.length);
		XMLHttpRequestObject.setRequestHeader("Connection", "close");
		XMLHttpRequestObject.onreadystatechange = function() {
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
		//		document.getElementById('process_span').innerHTML = "";
				obj.innerHTML = XMLHttpRequestObject.responseText;
				activate_form();
			}
			else{
				obj.innerHTML = "";
		//		document.getElementById('process_span').innerHTML = "Wait, processing..";
			}
		}
		XMLHttpRequestObject.send(params);
	}
}

function getPostData(dataSource, divID, formID) {
	if(XMLHttpRequestObject) {
		var obj = document.getElementById(divID);
		var params = "";
		var fieldKey = "";
		var fieldValue = "";
		var formObj = document.getElementById(formID);
		var formLength = formObj.elements.length;
		var i = 0;
		//obtain data from form
		for(i=0; i < formLength; i++) {
			fieldKey = formObj.elements[i].name;
			fieldValue = formObj.elements[i].value;
			fieldValue = encodeURI(fieldValue);
			if(typeof fieldKey != 'undefined'){
				if(formObj.elements[i].type == "checkbox") {
					if(formObj.elements[i].checked) {
						params = params + "&" + fieldKey + "=" + fieldValue;
					}
				} 
				else if (formObj.elements[i].type == "radio") {
					if(formObj.elements[i].checked) {
						params = params + "&" + fieldKey + "=" + fieldValue;
					}
				} 
				else {
					params = params + "&" + fieldKey + "=" + fieldValue;
				}

				if(formObj.elements[i].type == "submit") {
					formObj.elements[i].value = "processing";
				}
				formObj.elements[i].disabled = true;
			}
			
		}

		XMLHttpRequestObject.open("POST", dataSource, true);
		XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		XMLHttpRequestObject.setRequestHeader("Content-length", params.length);
		XMLHttpRequestObject.setRequestHeader("Connection", "close");
		XMLHttpRequestObject.onreadystatechange = function() {
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
		//		document.getElementById('process_span').innerHTML = "";
				obj.innerHTML = XMLHttpRequestObject.responseText;
			}
			else{
				obj.innerHTML = "";
		//		document.getElementById('process_span').innerHTML = "Wait, processing..";
			}
		}
		XMLHttpRequestObject.send(params);
	}
}

function queue_call(module_id, student_id) {
	AjaxQueue.setBatchSize(2);
	//set the visitor sesssion
	AjaxQueue.push('./ajax/set_visitor.php?student_id='+student_id, 'process_span');
	//load the module in
	AjaxQueue.push('./ajax/load_module.php?module_id='+module_id+'student_id='+student_id, 'module_container');
	AjaxQueue._processNext();
	restart_process_span();
}

function load_module(module_id, student_id) {
	var student_id = (student_id == null) ? 0 : student_id;
//	alert("student_id: "+student_id);
//	getData("./ajax/set_visitor.php?student_id="+student_id, "process_span");
	if(Ajax.activeRequestCount == 0){
		selected_event = '';
		
		document.getElementById('module_container').innerHTML = "";
		document.getElementById('module_container').innerText = "";
		// serious dodgy munging here
		// without this delay before calling the ajax queue, it doesn't always work.
	//	setTimeout("queue_call('"+module_id+"','"+student_id+"')", 200);
		AjaxQueue.setBatchSize(2);
		//set the visitor sesssion
		AjaxQueue.push('./ajax/set_visitor.php?student_id='+student_id, 'process_span');
		//load the module in
		AjaxQueue.push('./ajax/load_module.php?module_id='+module_id+'&student_id='+student_id, 'module_container');
		AjaxQueue._processNext();
		restart_process_span();
	}
}

function load_mail_front(module_id, acc_id, msg_num) {
	var acc_id = (acc_id == null) ? 0 : acc_id;
	var msg_num = (msg_num == null) ? 0 : msg_num;
	if(Ajax.activeRequestCount == 0){
		selected_event = '';
		
		document.getElementById('module_container').innerHTML = "";
		document.getElementById('module_container').innerText = "";
		// serious dodgy munging here
		// without this delay before calling the ajax queue, it doesn't always work.
	//	setTimeout("queue_call('"+module_id+"','"+student_id+"')", 200);
		AjaxQueue.setBatchSize(2);
		//load the module in
		AjaxQueue.push('./ajax/load_module.php?module_id='+module_id+'&acc_id='+acc_id+'&msg_num='+msg_num, 'module_container');
		AjaxQueue._processNext();
		restart_process_span();
	}
	
}

function load_bulletin(module_id, bulletin_id) {
	var bulletin_id = (bulletin_id == null) ? 0 : bulletin_id;
	if(Ajax.activeRequestCount == 0){
		document.getElementById('module_container').innerHTML = "";
		document.getElementById('module_container').innerText = "";
		// serious dodgy munging here
		// without this delay before calling the ajax queue, it doesn't always work.
	//	setTimeout("queue_call('"+module_id+"','"+student_id+"')", 200);
		AjaxQueue.setBatchSize(1);
		//load the module in
		AjaxQueue.push('./ajax/load_module.php?module_id='+module_id+'&bulletin_id='+bulletin_id, 'module_container');
		AjaxQueue._processNext();
	}
}

function load_blog(module_id, blog_id) {
	var blog_id = (blog_id == null) ? 0 : blog_id;
	if(Ajax.activeRequestCount == 0){
		document.getElementById('module_container').innerHTML = "";
		document.getElementById('module_container').innerText = "";
		AjaxQueue.setBatchSize(1);
		AjaxQueue.push('./ajax/load_module.php?module_id='+module_id+'&blog_id='+blog_id, 'module_container');
		AjaxQueue._processNext();
	}
}

function load_gallery_image(module_id, photo_id) {
	var photo_id = (photo_id == null) ? 0 : photo_id;
	if(Ajax.activeRequestCount == 0){
		document.getElementById('module_container').innerHTML = "";
		document.getElementById('module_container').innerText = "";
		AjaxQueue.setBatchSize(1);
		AjaxQueue.push('./ajax/load_module.php?module_id='+module_id+'&photo_id='+photo_id, 'module_container');
		AjaxQueue._processNext();
	}	
}

function load_filemanager(module_id, category_id) {
	var category_id = (category_id == null) ? 0 : category_id;
	if(Ajax.activeRequestCount == 0){
		document.getElementById('module_container').innerHTML = "";
		document.getElementById('module_container').innerText = "";
		// serious dodgy munging here
		// without this delay before calling the ajax queue, it doesn't always work.
	//	setTimeout("queue_call('"+module_id+"','"+student_id+"')", 200);
		AjaxQueue.setBatchSize(1);
		//load the module in
		AjaxQueue.push('./ajax/load_module.php?module_id='+module_id+'&gallery_id='+category_id, 'module_container');
		AjaxQueue._processNext();
	}
}

function load_filedetails(module_id, category_id, gallery_id, subgallery_id, file_id) {
	var category_id = (category_id == null) ? 0 : category_id;
	var gallery_id = (gallery_id == null) ? 0 : gallery_id;
	var subgallery_id = (subgallery_id == null) ? 0 : subgallery_id;
	var file_id = (file_id == null) ? 0 : file_id;
		if(Ajax.activeRequestCount == 0){
		document.getElementById('module_container').innerHTML = "";
		document.getElementById('module_container').innerText = "";
		// serious dodgy munging here
		// without this delay before calling the ajax queue, it doesn't always work.
	//	setTimeout("queue_call('"+module_id+"','"+student_id+"')", 200);
		AjaxQueue.setBatchSize(1);
		//load the module in
		AjaxQueue.push('./ajax/load_module.php?module_id='+module_id+'&action=1&category_id='+category_id+'&gallery_id='+gallery_id+'&subgallery_id='+subgallery_id+'&subaction=view&file_id='+file_id, 'module_container');
		AjaxQueue._processNext();
	}
	
}
	

function load_calendar_event(php_date_stamp, detailType) {
	if(Ajax.activeRequestCount == 0){
		var module_id = 19; // module ID in DB

		//set js date to new value
		var js_date_stamp = (php_date_stamp * 1000);
		set_global_time(js_date_stamp);		
		
		selected_event = '';
		
		global_selected_tab = 'tab_day';
		
		//set calendar tab
		//change_tab_display('tab_day');

		document.getElementById('module_container').innerHTML = "";
		document.getElementById('module_container').innerText = "";
		
		AjaxQueue.setBatchSize(1);
		//load the module in
		AjaxQueue.push('./ajax/load_module.php?module_id='+module_id+'&cal_detail_date='+php_date_stamp+'&cal_detail='+detailType, 'module_container');
		
		AjaxQueue._processNext();
	}
}


