// JavaScript Document


// Parse queryline

var qsParm = new Array();
var query = window.location.search.substring(1);
var parms = query.split('&');

for (var i=0; i<parms.length; i++) {

	var pos = parms[i].indexOf('=');

	if (pos > 0) {
		var key = parms[i].substring(0,pos);
		var val = parms[i].substring(pos+1);
		qsParm[key] = val;
	}

}
 

function refreshStatus() {
	
	var status = asyncStatus(qsParm['id']).split('||');
	
	if (document.getElementById('authenticated')) {
		document.getElementById('authenticated').innerHTML = status[0];
	}

	if (document.getElementById('lastchanged')) {
		document.getElementById('lastchanged').innerHTML = status[1];
	}
	
}

function GetXmlHttpObject(handler) {

	var objXMLHttp=null

	if (window.XMLHttpRequest) {

		objXMLHttp=new XMLHttpRequest()

	} else if (window.ActiveXObject) {

		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

	}

	return objXMLHttp
}

function stateChanged() {

	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {

		rslt=xmlHttp.responseText;

		if (rslt=="refresh") {

			window.location.reload(true);

		} else if ((rslt == "ok") || (rslt == 1)) {

			// Everything fine - no output

		} else {

			// alert(rslt);

		}

	}

}

function asyncSend(obj,id,field,data) {

	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; }

	var url = "worklog_ajax.php";
	var postdata = "obj="+obj+"&id="+id+"&field="+field+"&value="+data;
	debug("async-savedata: "+postdata);

	xmlHttp.open("POST",url,false)
	xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.onreadystatechange=stateChanged
	xmlHttp.send(postdata)

	debug("xmlHttp.responseText: "+xmlHttp.responseText);

	if (xmlHttp.responseText == "refresh") {
		window.location.reload(true);
		return true;
	} else {
		return xmlHttp.responseText;
	}

}


function asyncStatus(pid) {

	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; }

	var url = "fileadmin/template/async.status.php";
	var postdata = "pid="+pid;

	xmlHttp.open("POST",url,false)
	xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.onreadystatechange=stateChanged
	xmlHttp.send(postdata)

	return xmlHttp.responseText;

}


function asyncQuery(obj,id,field,data) {

	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; }

	var url = "worklog_ajax.php";
	var postdata = "obj="+obj+"&id="+id+"&field="+field+"&value="+data;
	debug("async-query: "+postdata);

	xmlHttp.open("POST",url,false)
	xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.onreadystatechange=stateChanged
	xmlHttp.send(postdata)

	debug("xmlHttp.responseText: "+xmlHttp.responseText);

	return xmlHttp.responseText;

}

function asyncRum(calendarItemId, userId) {

	var roomId = document.getElementById('rumSuggest').value;
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; }
	var url = "fileadmin/template/publish_to_room.php";
	var postData = "id="+roomId+"&calendarItemId="+calendarItemId+"&userId="+userId;
	
	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.onreadystatechange=updateRum;
	xmlHttp.send(postData);

}

function asyncNewCalItem(userId) {

	var userId = userId;
	var spaceId = document.getElementById('rumSuggest').value;
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) { alert ("Browser does not support HTTP Request"); return; }
	var url = "fileadmin/template/publish_to_room.php";
	var postData = "userId="+userId+"&spaceId="+spaceId;
	
	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.onreadystatechange=addRum;
	xmlHttp.send(postData);

}

function addRum(){

	if(xmlHttp.readyState == 4) {
	
		var text = xmlHttp.responseText;
	
		var data = new Array();
		data = text.split(";");
		
		//Change the values of owner uid and cal id, so it will be taken as a update instead of creating a new item.
		document.getElementById('calendaritem_id').value=data[0];
		document.getElementById('owner_fe_users_uid').value=data[1];
		
		var newText = new Array();
		newText = text.split("|");
		
		buildSpacesList(newText[1]);

	}


}

function updateRum() {

	if(xmlHttp.readyState == 4) {
		//Get the response text
		var text=xmlHttp.responseText;	
		
		buildSpacesList(text);
	}
}

function buildSpacesList(text) {
	
		//Split it into an array
		var data = new Array();
		data = text.split(";");

	

		//Retrieve point of insertion
		var insertionPoint = document.getElementById('attachedSpaces');
		
		//Create the List Items for the returned data
		
		// Creating the label and the title of the space 
			var liTitle = document.createElement("li");
			
			var spanTitle = document.createElement("span");
			spanTitle.setAttribute("class", "calSpaceLabel");
			var spanText = document.createTextNode("rum-kalendar");
			spanTitle.appendChild(spanText);
			liTitle.appendChild(spanTitle);
			
			var strongTitle = document.createElement("strong");
			var title = document.createTextNode(data[0]);
			strongTitle.appendChild(title);
			liTitle.appendChild(strongTitle);
		// End of title line
		
		// Create the second line, the hidden input with the id
			var hiddenInput = document.createElement("input");
			hiddenInput.setAttribute("type", "hidden");
			hiddenInput.setAttribute("value", data[4]);
		// End of hidden input
		
		
		// Create he third line, the supplementary info
			// Create the time/date/author string
				text = data[2] + " kl. " + data[3] + " af " + data[1]
			// End of text string
			var suppInfo = document.createElement("li");
			var suppInfoSpan = document.createElement("span");
			suppInfoSpan.setAttribute("class", "calSpaceSuppInfo");
			var suppInfoText = document.createTextNode("Foresl\u00e5et " + text);
			suppInfoSpan.appendChild(suppInfoText);
			suppInfo.appendChild(suppInfoSpan);
		// End of supplimentary info
		
		// Create the fourth line, the cal item action possibilites
			var actionLi = document.createElement("li");
			var actionSpan = document.createElement("span");
			actionSpan.setAttribute("class", "calSpaceSuppInfo");
			var inputSpan = document.createElement("input");
			inputSpan.setAttribute('type', 'checkbox');
			inputSpan.setAttribute('name', 'publish_space[]');
			inputSpan.setAttribute('value', data[4]);
			actionSpan.appendChild(inputSpan);
			var actionText = document.createTextNode(" Offentligg\u00f8r i rumkalendar");
			actionSpan.appendChild(actionText);
			actionLi.appendChild(actionSpan);
		// End of action line	
		
		
		
		//Go ahead with final insertion
		insertionPoint.appendChild(liTitle);
		insertionPoint.appendChild(hiddenInput);
		insertionPoint.appendChild(suppInfo);
		insertionPoint.appendChild(actionLi);


}

function toggleAdvancedSpaceSearch()
{
	var table = document.getElementById('searchtableadvanced');
	
	if (table.style.display == 'none') {
		$(table).fadeIn('fast');
		$("#displayadvancedsearch").val('block');
		$("#toggleAdvancedSpaceSearch").text('Simpel S\370gning');
	} else {
		$(table).fadeOut('fast');
		$("#displayadvancedsearch").val('none');
		$("#toggleAdvancedSpaceSearch").text('Avanceret s\370gning');
		document.getElementById('spaceselect').selectedIndex = 0;		
	}
	
	return false;
}

