
var logoutTimer = false;

function init() {
	// valled on page load
	startLogoutTimer();
	initDataObject();
	initNewsWheel();
	initNewsList();
	initPolls();
	setColumnHeights();
	//setDateTime();
}

function setColumnHeights() {
	try {
		var rightContainer = document.getElementById('rightFrameContainer');
		var leftContainer = document.getElementById('leftFrameContainer');
		var rightHeight = rightContainer.offsetHeight;
		var leftHeight = leftContainer.offsetHeight;
		
		//alert('left:'+leftHeight+'right:'+rightHeight);
	
		if (rightHeight > leftHeight) {
			leftContainer.style.height = rightHeight+'px';
		} else {
			rightContainer.style.height = leftHeight+'px';
		}
	} catch (e) {
	
	}
}

/*
var secIndicator = true;
var curDate = new Date(2010,(03-1),11,07,37,17);

function setDateTime() {
	var obj = document.getElementById('dateTimeClockDisplay');
	if (obj) {
		if (secIndicator) curDate = new Date(Date.parse(curDate)+1000);
		obj.innerHTML = '';
		if (curDate.getDate() < 10) obj.innerHTML += '0';
		obj.innerHTML += curDate.getDate()+'.';
		if (curDate.getMonth() < 9) obj.innerHTML += '0'; 
		obj.innerHTML += (curDate.getMonth()+1)+'.';
		obj.innerHTML += curDate.getFullYear()+' - ';
		if (curDate.getHours() < 10) obj.innerHTML += '0'; 
		obj.innerHTML += curDate.getHours();
		if (secIndicator) { obj.innerHTML += ':'; secIndicator = false; }
		else { obj.innerHTML += ' '; secIndicator = true; }
		if (curDate.getMinutes() < 10) obj.innerHTML += '0'; 
		obj.innerHTML += curDate.getMinutes();	
		setTimeout('setDateTime()',500);
	}
}
*/

function startLogoutTimer() {
	logoutTimer = setTimeout("checkSession()", "120000"); // kører checkSession() hvert 2 minut
}

function stopLogoutTimer() {
	if (logoutTimer) clearTimeout(logoutTimer);
}

function displayLogoutWarning() {
	xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if (xmlHttp.readyState==4) {
			document.getElementById('sessionWarningContent').innerHTML=xmlHttp.responseText;
			document.getElementById('sessionWarning').style.display='inline';
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/timeoutwarning.php");
	xmlHttp.send(null);
}

function continueSession() {
	document.getElementById('sessionWarning').style.display='none';
	
	xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if (xmlHttp.readyState==4) {
			stopLogoutTimer();
			startLogoutTimer();
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/checksession.php?mode=renew");
	xmlHttp.send(null);
}

function closeSession() {
	xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if (xmlHttp.readyState==4) {
			stopLogoutTimer();
			document.location.reload();
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/checksession.php?mode=destroy");
	xmlHttp.send(null);
}


function checkSession() {
	xmlHttp = createXmlRequest();

	xmlHttp.onreadystatechange=function() {
		if (xmlHttp.readyState==4) {
			switch (xmlHttp.responseText) {
				case "continue":
					startLogoutTimer();
					break;
				case "reload":
					closeSession();
					break;
				case "warning":
					startLogoutTimer();
					displayLogoutWarning();
					break;
			}
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/checksession.php");
	xmlHttp.send(null);
}

function initPolls() {
	var polls = document.getElementsByName('pollPlaceholder');
	var pollsLength = polls.length
	var polls = polls;
	
	for (var i=0; i < pollsLength; i++) {
		var poll = polls[i] ? polls[i] : polls[0];
		var pollId = poll.getAttribute('pollid');
		populatePoll(poll, pollId, i);
	}
}

function populatePoll(poll, pollId, num) {
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				//
				var pollHeight = parseInt(poll.style.height);
				var pollWidth = parseInt(poll.style.width);
				var pollContainerId = "poll_"+num;
				
				var oContainer = document.createElement('div');
				oContainer.id = pollContainerId;
				oContainer.className='pollContainer';
				oContainer.style.width=pollWidth+'px';
				oContainer.innerHTML=xmlHttp.responseText;
				
				poll.parentNode.insertBefore(oContainer,poll);
				poll.parentNode.removeChild(poll);
				
				setColumnHeights();
				return;
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/modules/poll/ajax/poll.php?pollId="+pollId);
		xmlHttp.send(null);
}

function initDataObject() {
	var dataObjects = document.getElementsByName('dataObject');
	var newsListLength = dataObjects.length
	var dataObjects = dataObjects;
	
	for (var i=0; i < newsListLength; i++) {
		var dataObject = dataObjects[i] ? dataObjects[i] : dataObjects[0];
		var dataObjectData = dataObject.getAttribute('data');
		var dataObjectType = dataObject.getAttribute('objecttype');
		var dataObjectTemplate = dataObject.getAttribute('template');
		var dataObjectWidth = dataObject.style.width;
		var dataObjectHeight = dataObject.style.height;
		
		switch (dataObjectType) {
			case 'article':
			case 'articletag':
			case 'articlecategory':
				populateArticleObject(dataObject, dataObjectData, dataObjectType, dataObjectTemplate, i);
				break;
			case 'eventsCalendarCategory':
			case 'eventsListCategory':
				populateEventObject(dataObject, dataObjectData, dataObjectType, dataObjectTemplate, i);
				break;
		}
	}
}

function populateArticleObject(articleObject, articleData, articleType, articleTemplate, num) {
		var articleWidth = articleObject.style.width;
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				//
				var articleObjectId = "article_"+num;
				
				var oContainer = document.createElement('div');
				oContainer.id = articleObjectId;
				oContainer.className=articleTemplate;
				oContainer.style.width=articleWidth;
				oContainer.innerHTML=xmlHttp.responseText;
				
				articleObject.parentNode.insertBefore(oContainer,articleObject);
				articleObject.parentNode.removeChild(articleObject);
				
				setTimeout('setColumnHeights()', 10);
				
				return;
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/modules/articles/ajax/showarticle.php?articleData="+articleData+"&articleType="+articleType+"&articleTemplate="+articleTemplate+"&pageId="+pageId+"&width="+articleWidth);
		xmlHttp.send(null);
}

function populateEventObject(eventObject, eventData, eventType, eventTemplate, num) {
	var eventObjectWidth = eventObject.style.width;
	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			//
			var eventObjectId = "event_"+num;
			
			var oContainer = document.createElement('div');
			oContainer.id = eventObjectId;
			oContainer.className=eventTemplate;
			oContainer.style.width=eventObjectWidth;
			oContainer.innerHTML=xmlHttp.responseText;
			
			eventObject.parentNode.insertBefore(oContainer,eventObject);
			eventObject.parentNode.removeChild(eventObject);
			
			setTimeout('setColumnHeights()', 10);
			
			return;
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/modules/events/ajax/showeventobject.php?eventData="+eventData+"&eventType="+eventType+"&eventTemplate="+eventTemplate+"&pageId="+pageId+"&width="+eventObjectWidth+"&objectId="+num);
	xmlHttp.send(null);
}

function displayEventObjectEventList(showDate, objectData, pageId) {
	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			//
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
			showPopup(300, 500, 100);
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/modules/events/ajax/eventmonthlist.php?showDate="+showDate+"&objectData="+objectData+"&pageId="+pageId);
	xmlHttp.send(null);
}

function eventObjectCalendarShowMonth(showMonth, showYear, objectId, eventData, eventType, eventTemplate, pageId, eventObjectWidth) {
	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			//
			var eventObjectId = "event_"+objectId;
			
			document.getElementById(eventObjectId).innerHTML=xmlHttp.responseText;
			
			setTimeout('setColumnHeights()', 10);
			
			return;
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/modules/events/ajax/showeventobject.php?eventData="+eventData+"&eventType="+eventType+"&eventTemplate="+eventTemplate+"&pageId="+pageId+"&width="+eventObjectWidth+"&objectId="+objectId+"&showMonth="+showMonth+"&showYear="+showYear);
	xmlHttp.send(null);
}

function initNewsList() {
	var newsLists = document.getElementsByName('newsList');
	var newsListLength = newsLists.length
	var newsLists = newsLists;
	
	for (var i=0; i < newsListLength; i++) {
		var newsList = newsLists[i] ? newsLists[i] : newsLists[0];
		var newsXmlFile = newsList.getAttribute('feed');
		var newsTemplate = newsList.getAttribute('template');
		populateNewsList(newsList, newsXmlFile, newsTemplate, i);
	}
}

function populateNewsList(newsList, newsXmlFile, newsTemplate, num) {
		switch (newsTemplate) {
			default:
			case 'newslist':
				var template = 'http://www.pfs.dk/modules/rss/newslist-template.php';
				break;
			case 'articlelist':
				var template = 'http://www.pfs.dk/modules/rss/articlelist-template.php';
				break;
		}
		
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				//
				var newsListHeight = parseInt(newsList.style.height);
				var newsListWidth = parseInt(newsList.style.width);
				var newsListId = "newsList_"+num;
				
				var oContainer = document.createElement('div');
				oContainer.id = newsListId;
				oContainer.className='newsListContainer';
				oContainer.style.width=newsListWidth+'px';
				oContainer.innerHTML=xmlHttp.responseText;
				
				newsList.parentNode.insertBefore(oContainer,newsList);
				newsList.parentNode.removeChild(newsList);
				
				setColumnHeights();
				return;
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/modules/rss/rss2html.php?XMLFILE="+newsXmlFile+"&MAXITEMS=5&TEMPLATE="+template);
		xmlHttp.send(null);
}

function initNewsWheel() {
	var newsWheels = document.getElementsByName('newsWheel');
	var newsWheelLength = newsWheels.length
	var newsWheels = newsWheels;
	
	for (var i=0; i < newsWheelLength; i++) {
		var newsWheel = newsWheels[i] ? newsWheels[i] : newsWheels[0];
		var newsXmlFile = newsWheel.getAttribute('feed');
		populateNewsWheel(newsWheel, newsXmlFile, i);
	}
}

function populateNewsWheel(newsWheel, newsXmlFile, num) {
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				//
				var newsWheelHeight = parseInt(newsWheel.style.height);
				var newsWheelWidth = parseInt(newsWheel.style.width);
				var newsWheelId = "newsWheel_"+num;
				
				var oContainer = document.createElement('div');
				oContainer.id = newsWheelId;
				oContainer.className='newsWheelContainer';
				oContainer.style.height=newsWheelHeight+'px';
				oContainer.style.width=newsWheelWidth+'px';
				oContainer.onmouseover= function() { stopNewsWheel(num) }
				oContainer.onmouseout= function() { startNewsWheel(newsWheelId, num) }
				
				
				oWheel1 = document.createElement('div');
				oWheel1.id=newsWheelId+'_1';
				oWheel1.className='newsWheel1';
				oWheel1.style.top='0px';
				oWheel1.innerHTML=xmlHttp.responseText;
				
				oContainer.appendChild(oWheel1);
				
				oWheel2 = document.createElement('div');
				oWheel2.id=newsWheelId+'_2';
				oWheel2.className='newsWheel2';
				oWheel2.style.top=(newsWheelHeight+1)+'px';
				oWheel2.innerHTML=xmlHttp.responseText;
				
				oContainer.appendChild(oWheel2);
				
				newsWheel.parentNode.insertBefore(oContainer,newsWheel);
				newsWheel.parentNode.removeChild(newsWheel);
				
				setColumnHeights();
				startNewsWheel(newsWheelId, num);
				
				return;
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/modules/rss/rss2html.php?XMLFILE="+newsXmlFile+"&MAXITEMS=10");
		xmlHttp.send(null);
}

var newsWheelsArr = new Array();

function startNewsWheel(newsWheelId, num) {
	
	newsWheelsArr[num] = window.setInterval("scrollNewsWheel('"+newsWheelId+"')", 50);
}

function scrollNewsWheel(newsWheelId) {
	var newsBox1 = document.getElementById(newsWheelId+'_1');
	var newsBox2 = document.getElementById(newsWheelId+'_2');
	var newsBoxHeight = newsBox1.offsetHeight;
	
	// setting box 2 on startup
	if (parseInt(newsBox1.style.top) == 0) newsBox2.style.top = newsBoxHeight+'px';
	// setting box 1 and 2 on end
	if (parseInt(newsBox1.style.top) <= (parseInt(newsBoxHeight)*-1)) newsBox1.style.top = newsBoxHeight+'px';
	if (parseInt(newsBox2.style.top) <= (parseInt(newsBoxHeight)*-1)) newsBox2.style.top = newsBoxHeight+'px';
	
	newsBox2.style.top = parseInt(newsBox2.style.top)-1+'px';
	newsBox1.style.top = parseInt(newsBox1.style.top)-1+'px';
}

function stopNewsWheel(num) {
	clearInterval(newsWheelsArr[num]);
}

// variable used by showTab() to set wich tab is showned
var shownedTab = 'mySiteEditProfile';

function showTab(tabId) {
	if (shownedTab) {
		document.getElementById(shownedTab+'Tab').className='mySiteTab';
		document.getElementById(shownedTab).style.display='none';
	}
	document.getElementById(tabId+'Tab').className='mySiteTabMarked';
	document.getElementById(tabId).style.display='inline';
	shownedTab = tabId;
	
	setColumnHeights();
}

function showHelp(section) {
	// displays helpbox
	showPopup(300, 500, 100);

	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/help.php?section="+section);
	xmlHttp.send(null);
}

function showChangeProfilePicDialog() {
	// displays the profile picture selector box
	showPopup(400, 728, 100);

	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/browsefiles.php?type=picture&title=Profilbillede");
	xmlHttp.send(null);
}

function setDefaultProfilePic() {
	document.getElementById('fileInput').value=1;
	document.getElementById('fileInputText').innerHTML='Default profil billede';
	document.getElementById('imgProfilePic').src="http://www.pfs.dk/file.php?mode=thumb&id=1";

}

function showChangePasswordDialog() {
	// displays the change password popup
	showPopup(200, 400, 200);

	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/changepassword.php?username=");
	xmlHttp.send(null);
}

function saveNewPassword() {
	var oldPassword = document.getElementById('oldPassword').value;
	var newPassword1 = document.getElementById('newPassword1').value;
	var newPassword2 = document.getElementById('newPassword2').value;
	var username = document.getElementById('username').value;
	
	if (newPassword1 == newPassword2 && oldPassword != "" && newPassword1 != "") {
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				if (closePopupTimer) clearTimeout(closePopupTimer);
				//closePopupTimer = setTimeout('closePopup()', 5000);
				document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/includes/ajax/changepassword.php?username="+username+"&oldPassword="+oldPassword+"&newPassword1="+newPassword1+"&newPassword2="+newPassword2);
		xmlHttp.send(null);
	} else {
		alert('Fejl i indtastning');
		document.getElementById('oldPassword').focus();
	}
}

// vars for getFolderFileList()
var folderId = 0;
var displayType = "list";
var fileSortBy = "name";
var fileSortOrder = "desc";
var fileOnclickType = 1;

function getFolderFileList(displayTypeVar,folderIdVar,fileSortByVar,fileSortOrderVar,fileOnclickTypeVar) {
	if (displayTypeVar) displayType = displayTypeVar;
	if (fileSortByVar) fileSortBy = fileSortByVar;
	if (fileSortOrderVar) fileSortOrder = fileSortOrderVar;
	if (fileOnclickTypeVar) fileOnclickType = fileOnclickTypeVar;
	if (folderIdVar || folderIdVar == 0) folderId = folderIdVar;
	
	var xmlHttp = createXmlRequest();

	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('fileContainer').innerHTML=xmlHttp.responseText;
			getFolderList(folderId);
		}
	}
	
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/getfilelist.php?folderId="+folderId+"&displayType="+displayType+"&sortBy="+fileSortBy+"&sortOrder="+fileSortOrder+"&onclickType="+fileOnclickType);
	xmlHttp.send(null);
}

function getFileProfile(fileId) {
	if (fileId) {
		var xmlHttp = createXmlRequest();

		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				document.getElementById('fileContainer').innerHTML=xmlHttp.responseText;
			}
		}
	
		xmlHttp.open("get","http://www.pfs.dk/includes/ajax/getfileprofile.php?fileId="+fileId);
		xmlHttp.send(null);
	}
}

function saveFileProfile(fileId) {
	if (fileId) {
		var xmlHttp = createXmlRequest();
		var fileTitle = encodeURIComponent(document.getElementById('fileTitle').value);
		var fileAccess = document.getElementById('fileAccess').options[document.getElementById('fileAccess').selectedIndex].value;
		var fileLocation = document.getElementById('fileLocation').options[document.getElementById('fileLocation').selectedIndex].value;

		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				getFileProfile(fileId);
				document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
				setTimeout('closePopup(\'\')', 2000);
				showPopup(100, 180, 200);
			}
		}
	
		xmlHttp.open("get","http://www.pfs.dk/includes/ajax/savefileprofile.php?fileId="+fileId+"&fileAccess="+fileAccess+"&fileTitle="+escape(fileTitle)+"&fileLocation="+fileLocation);
		xmlHttp.send(null);
	}
}

function getFolderList(markedFolder) {
	
	var xmlHttp = createXmlRequest();

	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('dirContainer').innerHTML=xmlHttp.responseText;
		}
	}
	
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/getfolderlist.php?markedFolder="+markedFolder);
	xmlHttp.send(null);
}

function showUploadFileDialog() {
	// displays the change password popup
	showPopup(150, 350, 200);

	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/uploadfile.php?folder="+folderId);
	xmlHttp.send(null);
}

function showNewFolderDialog() {
	// displays create new folder popup
	showPopup(150, 350, 200);

	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/newfolder.php?parent="+folderId);
	xmlHttp.send(null);
}

function displayUploadMsg(msg) {
	document.getElementById('uploadFileContainer').innerHTML = msg;
	setTimeout('closePopup(\'\')', 2000);
}

function createNewFolder(folderParent) {
	// creates new folder
	var folderName = encodeURIComponent(document.getElementById('folderName').value);
	
	if (folderName) {

		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
				setTimeout('closePopup(\'\')', 2000);
				getFolderList();
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/includes/ajax/newfolder.php?mode=createFolder&parent="+folderParent+"&folderName="+escape(folderName));
		xmlHttp.send(null);
	} else {
		alert('Der skal angives et mappenavn');
	}
}

function selectFile(fileId, fileTitle) {
	// setting hidden field
	document.getElementById('fileInput').value=fileId;
	document.getElementById('fileInputText').innerHTML=fileTitle;
	document.getElementById('imgProfilePic').src="http://www.pfs.dk/file.php?mode=thumb&id="+fileId;
	// closing popup
	closePopup();
}

var messageOrderBy = "date";
var messageOrderDir = "desc";
var messageFolder = "inbox";

function listMessages(orderBy, orderDir, folder) {
	// list messages
	
	messageOrderBy = orderBy ? orderBy : messageOrderBy;
	messageOrderDir = orderDir ? orderDir : messageOrderDir;
	messageFolder = folder ? folder : messageFolder;
	
	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('inboxWindow').innerHTML=xmlHttp.responseText;
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/modules/messagecenter/ajax/listmessages.php?orderBy="+messageOrderBy+"&orderDir="+messageOrderDir+"&folder="+messageFolder);
	xmlHttp.send(null);
}

function readMessage(messageId) {
	if (messageId) {
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				document.getElementById('messageWindow').innerHTML=xmlHttp.responseText;
				listMessages();
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/modules/messagecenter/ajax/readmessage.php?messageId="+messageId);
		xmlHttp.send(null);
	} else {
		document.getElementById('messageWindow').innerHTML='';
	}
}

function newMessage(sendto) {
	var xmlHttp = createXmlRequest();
	
	showPopup(400, 700, 100);
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	
	var queryString = sendto ? "?username="+sendto : "";
	
	xmlHttp.open("get","http://www.pfs.dk/modules/messagecenter/ajax/newmessage.php"+queryString);
	xmlHttp.send(null);
}

function deleteMessage(messageId) {
	if (messageId && confirm("er du sikker på du vil slette den besked?")) {
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				//
				listMessages();
				readMessage();
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/modules/messagecenter/ajax/deletemessage.php?messageId="+messageId);
		xmlHttp.send(null);
	}
}

function sendMessage() {
	var xmlHttp = createXmlRequest();
	
	var messagetitle = encodeURIComponent(document.getElementById('messageTitle').value);
	var toUsername = encodeURIComponent(document.getElementById('toUsername').value);
	var messageContent = encodeURIComponent(document.getElementById('messageText').value);
	
	//xmlHttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			switch(xmlHttp.responseText) {
				case "sendOk":
					document.getElementById('newMessageContainer').innerHTML="Beskeden er sendt";
					setTimeout('closePopup(\'\')', 2000);
					break;
				case "noUser":
					document.getElementById('userErrorBox').innerHTML="Brugeren eksistere ikke";
					setTimeout('closePopup(\'\')', 2000);
					break;
				case "notLogged":
					document.getElementById('userErrorBox').innerHTML="Du er ikke logget ind";
					setTimeout('closePopup(\'\')', 2000);
					break;
			}
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/modules/messagecenter/ajax/sendmessage.php?messageTitle="+escape(messagetitle)+"&toUsername="+escape(toUsername)+"&messageContent="+escape(messageContent));
	xmlHttp.send(null);
}

function displayUserProfile(userId) {
	if (userId) {
		var xmlHttp = createXmlRequest();
		
		showPopup(500, 620, 50);
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/includes/ajax/userprofile.php?userId="+userId);
		xmlHttp.send(null);
	}
}

function showContacts() {
	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('newMessageAdressBookContent').innerHTML=xmlHttp.responseText;
			document.getElementById('newMessageAdressBookContainer').style.display='inline';
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/modules/messagecenter/ajax/showcontacts.php?mode=compact");
	xmlHttp.send(null);
}

function showAdressBook() {
	var xmlHttp = createXmlRequest();
	
	showPopup(510, 620, 50);
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	
	xmlHttp.open("get","http://www.pfs.dk/modules/messagecenter/ajax/adressbook.php");
	xmlHttp.send(null);
}

var adressBookContactsDisplayMode = "full";
var adressBookAdressBook = "personal";
var adressBookContactsOrderBy = "username";
var adressBookContactsOrderDir = "desc";

function getAdressBookContacts(displayMode, orderBy, orderDir, adressBook, searchString) {
	
	adressBookContactsDisplayMode = displayMode ? displayMode : adressBookContactsDisplayMode;
	adressBookContactsOrderBy = orderBy ? orderBy : adressBookContactsOrderBy;
	adressBookContactsOrderDir = orderDir ? orderDir : adressBookContactsOrderDir;
	adressBookAdressBook = adressBook ? adressBook : adressBookAdressBook;
	searchString = !searchString ? "" : searchString;
	
	var xmlHttp = createXmlRequest();
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('adressBookContacts').innerHTML=xmlHttp.responseText;
		}
	}
	
	if (!displayMode) displayMode = "personal";
	
	xmlHttp.open("get","http://www.pfs.dk/modules/messagecenter/ajax/showcontacts.php?mode="+adressBookContactsDisplayMode+"&adressBook="+adressBookAdressBook+"&orderBy="+adressBookContactsOrderBy+"&orderDir="+adressBookContactsOrderDir+"&searchString="+searchString);
	xmlHttp.send(null);
}

function searchAdressBook() {
	var searchString = document.getElementById('adressBookSearchString').value;
	if (searchString != "") {
		getAdressBookContacts(false, false, false, false, searchString);
	}
}

function closeAdressBook() {
	document.getElementById('newMessageAdressBookContainer').style.display='none';
}

function selectUserNameFromAdressBook(username) {
	document.getElementById('toUsername').value=username;
	closeAdressBook();
}

function deleteContact(contactId) {
	var deleteConfirm = confirm('Vil du slette denne kontakt');
	if (contactId && deleteConfirm) {
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				getAdressBookContacts();
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/modules/messagecenter/ajax/deletecontact.php?contactId="+contactId);
		xmlHttp.send(null);
	}
}

function addContact(userId) {
	if (userId) {
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				if (xmlHttp.responseText == "true") {
					alert('Brugeren er tilføjet adressebogen');
				} else if (xmlHttp.responseText == "exists") {
					alert('Brugeren findes allerrede i din adressebog');
				}
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/modules/messagecenter/ajax/addcontact.php?userId="+userId);
		xmlHttp.send(null);
	}
}

function deleteFile(fileId) {
	if (fileId && confirm("Er du sikker på du vil slette denne fil?")) {
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				getFolderFileList();
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/includes/ajax/deletefile.php?fileId="+fileId);
		xmlHttp.send(null);
	}
}

function deleteFolder(folderId) {
	if (folderId && confirm("Er du sikker på du vil slette denne mappe?")) {
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				getFolderFileList(false,0);
				getFolderList(0);
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/includes/ajax/deletefolder.php?folderId="+folderId);
		xmlHttp.send(null);
	}
}

function addSignature(inputId) {
	if (inputId) {
		var xmlHttp = createXmlRequest();
		
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				document.getElementById(inputId).value+=xmlHttp.responseText;
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/includes/ajax/getsignature.php");
		xmlHttp.send(null);
	}
}

function displaySearchResult(searchFieldId) {
	if (searchFieldId) {
		var searchField = document.getElementById(searchFieldId)
		if (searchField.value != "") {
			document.location='http://www.pfs.dk/system/search/'+searchField.value+'/'+pageId;
		} else {
			alert('Indtast et søgeord');
			searchField.focus();
		}
	}
}

function checkUsernameExists() {
	var xmlHttp = createXmlRequest();
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			if (xmlHttp.responseText != "true") {
				alert('Brugernavnet findes allerrede');
				document.getElementById('username').focus();
			}
		}
	}
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/checkusername.php?username="+document.getElementById('username').value);
	xmlHttp.send(null);
}

function validatePassword() {
	var password1 = document.getElementById("password1").value;
	var password2 = document.getElementById("password2").value;
	var username = document.getElementById("username").value;
	var errorMessage = "&nbsp;";
	var intreg = /[0-9]/;
	var charreg = /[a-zæøå]/i;
	
	if (password1 != "" && password1.length < 8) {
		errorMessage = "Adgangskode skal være min. 8 ciffre";
	} else if (password1 != "" && password1 == username) {
		errorMessage = "Adgangskode må ikke være det samme som brugernavnet";
	} else if (password1 != "" && !intreg.test(password1)) {
		errorMessage = "Adgangskode skal indeholde min. et tal";
	} else if (password1 != "" && !charreg.test(password1)) {
		errorMessage = "Adgangskode skal indeholde min. et bogstav";
	} else if (password1 == password2 && password1 != "" && password2 != "") {
		errorMessage = "ok";
	} else if (password1 != password2 && password1 != "" && password2 != "") {
		errorMessage = "Adgangskode og bekræftelse stemmer ikke";
	} else if (password1 != "") {
		errorMessage = "Indtast adgangskode";
	} else if (password2 != "") {
		errorMessage = "Bekræft adgangskode";
	}
	
	document.getElementById('validatePasswordOutput').innerHTML=errorMessage;
}

function checkCreateUserForm() {
	var password1 = document.getElementById("password1");
	var password2 = document.getElementById("password2");
	var username = document.getElementById("username");
	var email = document.getElementById("email");
	
	var passwordReg = /^(?=.*\d)(?=.*[a-z]).{8,16}$/i;
	var emailReg = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/i;
	var errorMessage = "";
	
	if (!passwordReg.test(password1.value)) {
		errorMessage = "Adgangskode skal indeholde min. et tal";
	} else if (password1.value != password2.value && password1.value != "") {
		errorMessage = "Adgangskode og bekræftelse stemmer ikke";
	} else if (username.value == "") {
		errorMessage = "Brugernavn skal udfyldes";
	} else if (!emailReg.test(email.value)) {
		errorMessage = "E-mail er ikke indtastet korrekt";
		email.focus();
	}
	
	document.getElementById('createUserErrorContainer').innerHTML=errorMessage;
	
	if (errorMessage != "") {
		return false;
	} else {
		return true;
	}
	
}

function signupNewsletter() {
	var newsletterSignupEmail = document.getElementById('newsletterSignupEmail').value;
	document.location='http://www.pfs.dk/system/newsletter/add/'+newsletterSignupEmail;
}

function checkUserProfile() {
	var nameReg = /\d+/i;
	if (nameReg.test(document.getElementById('firstName').value)) {
		showTab('mySiteEditProfile');
		alert('Fornavn må ikke indeholde tal');
		document.getElementById('firstName').focus();
		return false;
	}
	if (nameReg.test(document.getElementById('middleName').value)) {
		showTab('mySiteEditProfile');
		alert('Mellemnavn må ikke indeholde tal');
		document.getElementById('middleName').focus();
		return false;
	}
	if (nameReg.test(document.getElementById('lastName').value)) {
		showTab('mySiteEditProfile');
		alert('Efternavn må ikke indeholde tal');
		document.getElementById('lastName').focus();
		return false;
	}
	
	var numberReg = /^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$/;
	if (document.getElementById('buildingNumber').value != "" && !numberReg.test(document.getElementById('buildingNumber').value)) {
		showTab('mySiteEditProfile');
		alert('Husnummer skal være et tal mellem 1-999');
		document.getElementById('buildingNumber').focus();
		return false;
	}
	
	if (nameReg.test(document.getElementById('buildingLetter').value)) {
		showTab('mySiteEditProfile');
		alert('Husbogstav må ikke indeholde tal');
		document.getElementById('buildingLetter').focus();
		return false;
	}
	
	var storeyReg = /^(\d\d|kl|st)$/;
	if (document.getElementById('storey').value != '' && !storeyReg.test(document.getElementById('storey').value)) {
		showTab('mySiteEditProfile');
		alert('Etage skal være angivet med kl,st,01,02-99');
		document.getElementById('storey').focus();
		return false;
	}
	
	if (nameReg.test(document.getElementById('area').value)) {
		showTab('mySiteEditProfile');
		alert('Stednavn må ikke indeholde tal');
		document.getElementById('area').focus();
		return false;
	}
	
	var postalReg = /^[1-9]{1}\d\d\d$/;
	if (document.getElementById('postal').value != '' && !postalReg.test(document.getElementById('postal').value)) {
		showTab('mySiteEditProfile');
		alert('Postnummeret er i ugyldigt format');
		document.getElementById('postal').focus();
		return false;
	}
	
	var emailReg = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/i;
	if (!emailReg.test(document.getElementById('email').value)) {
		showTab('mySiteEditProfile');
		alert('E-mail er ugyldigt format');
		document.getElementById('email').focus();
		return false;
	}
	
	if (document.getElementById('secondary_buildingNumber').value != "" && !numberReg.test(document.getElementById('secondary_buildingNumber').value)) {
		showTab('mySiteEditExtendedProfile');
		alert('Husnummer skal være et tal mellem 1-999 under anden postadresse');
		document.getElementById('secondary_buildingNumber').focus();
		return false;
	}
	
	if (nameReg.test(document.getElementById('secondary_buildingLetter').value)) {
		showTab('mySiteEditExtendedProfile');
		alert('Husbogstav må ikke indeholde tal under anden postadresse');
		document.getElementById('secondary_buildingLetter').focus();
		return false;
	}
	
	if (document.getElementById('secondary_storey').value != '' && !storeyReg.test(document.getElementById('secondary_storey').value)) {
		showTab('mySiteEditExtendedProfile');
		alert('Etage skal være angivet med kl,st,01,02-99 under anden postadresse');
		document.getElementById('secondary_storey').focus();
		return false;
	}
	
	if (nameReg.test(document.getElementById('secondary_area').value)) {
		showTab('mySiteEditExtendedProfile');
		alert('Stednavn må ikke indeholde tal under anden postadresse');
		document.getElementById('secondary_area').focus();
		return false;
	}
	
	if (document.getElementById('secondary_postal').value != '' && !postalReg.test(document.getElementById('secondary_postal').value)) {
		showTab('mySiteEditExtendedProfile');
		alert('Postnummeret er i ugyldigt format under anden postadresse');
		document.getElementById('secondary_postal').focus();
		return false;
	}
	
	return true;
}

function checkPropertyProfile() {
	if (document.getElementById('propStreetname').value == "") {
		showTab('propertyData');
		alert('Vejnavn Skal udfyldes');
		document.getElementById('propStreetname').focus();
		return false;
	}
	if (document.getElementById('propBuildingNumber').value == "") {
		showTab('propertyData');
		alert('Husnummer Skal udfyldes');
		document.getElementById('propBuildingNumber').focus();
		return false;
	}
	if (document.getElementById('propCity').value == "") {
		showTab('propertyData');
		alert('Bynavn Skal udfyldes');
		document.getElementById('propCity').focus();
		return false;
	}
	if (document.getElementById('propPostal').value == "") {
		showTab('propertyData');
		alert('Postnummer Skal udfyldes');
		document.getElementById('propPostal').focus();
		return false;
	}
	
	var nameReg = /\d+/i;
	if (nameReg.test(document.getElementById('propStreetname').value)) {
		showTab('propertyData');
		alert('Vejnavn må ikke indeholde tal');
		document.getElementById('propStreetname').focus();
		return false;
	}
	if (nameReg.test(document.getElementById('propBuildingLetter').value)) {
		showTab('propertyData');
		alert('Husbogstav må ikke indeholde tal');
		document.getElementById('propBuildingLetter').focus();
		return false;
	}
	if (nameReg.test(document.getElementById('propCity').value)) {
		showTab('propertyData');
		alert('Bynavn må ikke indeholde tal');
		document.getElementById('propCity').focus();
		return false;
	}
	
	var numberReg = /^([1-9]|[1-9][0-9]|[1-9][0-9][0-9])$/;
	if (!numberReg.test(document.getElementById('propBuildingNumber').value)) {
		showTab('propertyData');
		alert('Husnummer skal være et tal mellem 1-999');
		document.getElementById('propBuildingNumber').focus();
		return false;
	}
	
	var storeyReg = /^(\d\d|kl|st)$/;
	if (document.getElementById('propStorey').value != '' && !storeyReg.test(document.getElementById('propStorey').value)) {
		showTab('propertyData');
		alert('Etage skal være angivet med kl,st,01,02-99');
		document.getElementById('propStorey').focus();
		return false;
	}
	
	if (nameReg.test(document.getElementById('propArea').value)) {
		showTab('propertyData');
		alert('Stednavn må ikke indeholde tal');
		document.getElementById('propArea').focus();
		return false;
	}
	
	var postalReg = /^[1-9]{1}\d\d\d$/;
	if (document.getElementById('propPostal').value != '' && !postalReg.test(document.getElementById('propPostal').value)) {
		showTab('propertyData');
		alert('Postnummeret er i ugyldigt format');
		document.getElementById('propPostal').focus();
		return false;
	}
	
	return true;
}

function castVote(questionId, pollId) {
	if (questionId) {
		var frm = document.getElementById('pollForm_'+questionId);
		var postStr = getFormValues(frm);
		var container = 'pollContainer_'+pollId;
		
		var xmlHttp = createXmlRequest();
	
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				try {
					document.getElementById(container).innerHTML=xmlHttp.responseText;
				} catch (e) {
					document.location.reload();
				}
			}
		}
		
		
		xmlHttp.open("get","http://www.pfs.dk/modules/poll/ajax/vote.php?questionId="+questionId+"&pollId="+pollId+"&"+postStr);
		xmlHttp.send(null);
	}
}

/*
	myCalendar object start
*/

//var myCalendar = new Object();

function myCalendar() {
	// setting default values
	
	// selected date
	this.date = '2010-03-11';
	
	var curentDate = '2010-03-11';
	
	// calendar object (contains all the users calendars and defined colors and selections)
	var calendars = false;
	
	// fix for bug with selector dom elemensts
	var calendarSelectorCreated = false;
	
	// method to create the calendar
	this.setupCalendar = function () {
		// get user calendars
		this.getCalendars();
		
		// draw the calendar
		this.drawCalendar();
	}
	
	this.selectCalendar = function (calId, calType, selector) {
		// setting color of selected calendars
		//if (calendars[calType][calId].calSelected != undefined) calendars[calType][calId].calSelected = calendars[calType][calId].calSelected ? false : true;
		
		//this.colorize
		//alert(calendars[calType][calId].calSelected);
		for (cal in calendars[calType]) {
			if (calendars[calType][cal].calId == calId) {
				// invert selection
				calendars[calType][cal].calSelected = calendars[calType][cal].calSelected ? false : true;
				// set color
				if (calendars[calType][cal].calSelected) {
					selector.className = 'calendarSelectorTitle eventStyleFullday'+calendars[calType][cal].calColor;
				} else {
					selector.className = 'calendarSelectorTitle eventStyle'+calendars[calType][cal].calColor;
				}
				
				break;
			}
		}
	}
	
	this.drawCalendar = function() {
		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				document.getElementById('calendarContainer').innerHTML=xmlHttp.responseText;
			}
		}
		
		var showCalender = JSON.stringify(calendars);
		
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/showcalendar.php?date="+this.date+"&showCalender="+showCalender);
		xmlHttp.send(null);
	}
	
	this.changeDate = function (newDate) {
		// setting date to newDate
		this.date = newDate;
		
		// redrawing the calendar
		this.drawCalendar();
	}
	
	this.getCalendars = function() {
		
		var xmlHttp = createXmlRequest();
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/calendars.json.php",false);
		xmlHttp.send(null);
		
		// eval() should be replaced with a json function
		calendars = eval("("+xmlHttp.responseText+")");
	}
	
	this.calendarSelector = function() {
		// display calendar selctor container
		createCalendarSelector(this);
		showPopup(300, 470, 100);
	}
	
	function createCalendarSelector(obj) {
		setDefaultPopupContent('Vælg kalendere', '', true)
		
		var oContainer = document.createElement("div");
		oContainer.id = 'calendarSelectorContainer';
		
		var containerTitleArr = new Array();
		containerTitleArr[1] = "Personlige";
		containerTitleArr[4] = "Booking";
		containerTitleArr[5] = "Booking";
		
		for (cal in calendars) {
			// creating calendar type title container
			oCalTypeTitle = document.createElement("div");
			oCalTypeTitle.className='calendarTypeTitle';
			oCalTypeTitle.appendChild(document.createTextNode(containerTitleArr[cal]));
			// appending calendar type title container
			oContainer.appendChild(oCalTypeTitle);
			
			for (subCal in calendars[cal]) {
				// fixing vars
				(function(){
					var calType = cal;
					var calId = calendars[cal][subCal].calId;
					var calNum = subCal;
					
					// creating calendar container
					oCalendarContainer = document.createElement("div");
					oCalendarContainer.className='calendarSelector';
					oCalendarContainer.id = 'container_'+calType+'_'+calNum;
					
					// creating calendar title container
					oCalendarTitle = document.createElement("div");
					if (calendars[cal][subCal].calSelected) {
						oCalendarTitle.className='calendarSelectorTitle eventStyleFullday'+calendars[cal][subCal].calColor;
					} else {
						oCalendarTitle.className='calendarSelectorTitle eventStyle'+calendars[cal][subCal].calColor;
					}
					oCalendarTitle.appendChild(document.createTextNode(calendars[cal][subCal].calTitle));
					// creating onclick event
					oCalendarTitle.onclick = function () {
						//alert(calId);
						obj.selectCalendar(calId, calType, this);
					}
					oCalendarTitle.id = 'calendarTitle_'+cal+'_'+subCal;

					// appending calendar title container
					oCalendarContainer.appendChild(oCalendarTitle);
					
					// create calendar color selector container
					oCalendarColor = document.createElement("div");
					// setting classnames
					oCalendarColor.className='calendarSelectorColor colorSelector eventStyleFullday'+calendars[cal][subCal].calColor;
					// creating onclick event
					var calColor = calendars[cal][subCal].calColor;
					oCalendarColor.onclick = function () {
						obj.colorSelector(calNum, calType, obj);
					}
					oCalendarColor.id = 'colorSelector_'+cal+'_'+subCal;
					
					// appending color selector
					oCalendarContainer.appendChild(oCalendarColor);
					
					// creating edit and/or delete buttons
					if (cal == '1') {
						// creating container div
						oToolContainer = document.createElement("div");
						oToolContainer.classname = 'calendarToolButtonContainer';
						
						// creating edit button
						oEditButton = document.createElement("img");
						oEditButton.className = 'calendarButton';
						oEditButton.src = 'http://www.pfs.dk/administration/images/icons/xsmall/edit.png';
						oEditButton.title = 'Rediger kalenderen ('+calendars[cal][subCal].calTitle+')';
						oEditButton.alt = 'Rediger';
						oEditButton.onclick = function () {
							obj.editCalendar(calId, calType);
						}
						
						// appending edit button
						oToolContainer.appendChild(oEditButton);
						
						// creating delete button
						oDeleteButton = document.createElement("img");
						oDeleteButton.className = 'calendarButton';
						oDeleteButton.src = 'http://www.pfs.dk/administration/images/icons/xsmall/delete.png';
						oDeleteButton.title = 'Slet kalenderen ('+calendars[cal][subCal].calTitle+')';
						oDeleteButton.alt = 'Slet';
						oDeleteButton.onclick = function () {
							obj.deleteCalendar(calId, calType);
						}
						
						// appending delete button
						oToolContainer.appendChild(oDeleteButton);
						
						// appending tool container
						oCalendarContainer.appendChild(oToolContainer);
					}
					
					// appending calendar container
					oContainer.appendChild(oCalendarContainer);
				})()
			}
		}

		// adding selectors to container
		document.getElementById('popupInnerContent').appendChild(oContainer);

		// TODO ok button skal laves pænere
		oButton = document.createElement("input");
		oButton.type = 'button';
		oButton.onclick = function () {
			closePopup();
			saveSelection();
			obj.drawCalendar();
		}
		oButton.value = 'Ok';

		document.getElementById('popupInnerContent').appendChild(oButton);
		
		calendarSelectorCreated = true;
	}

	function saveSelection() {
		// TODO der skal laves en ajax kald der gemmer farver og valgte kalendere til databasen
		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				//document.getElementById('calendarContainer').innerHTML=xmlHttp.responseText;
			}
		}
		
		var dataStr = JSON.stringify(calendars);
		
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/saveselection.php?data="+dataStr);
		xmlHttp.send(null);
	}
	
	function createColorSelector(oParent, cal, calType, obj) {
		var colors = 21;

		// creating selector container
		var oContainer = document.createElement("div");
		oContainer.id = 'calendarColorSelector';
		oContainer.className = 'colorSelectorContainer';

		// creating colors
		for (i=1; i<=colors; i++) {
			(function(){
				var color = i;
				var oColor = document.createElement("div");
				oColor.className = 'colorSelector eventStyleFullday'+i;
				oColor.onclick = function () {
					obj.selectColor(color, cal, calType);
				}

				oContainer.appendChild(oColor);
			})()
		}

		oParent.appendChild(oContainer);
	}

	function removeColorSelector() {
		// removing selector if it exists
		if (document.getElementById('calendarColorSelector')) {

			// removing content from color selector
			while(document.getElementById('calendarColorSelector').hasChildNodes()){
				document.getElementById('calendarColorSelector').removeChild(document.getElementById('calendarColorSelector').childNodes[0]);
			}

			// removing color selector
			document.getElementById('calendarColorSelector').parentNode.removeChild(document.getElementById('calendarColorSelector'));
		}
	}
	
	this.editCalendar = function(calId, calType) {
		// display edit calendar container
		saveSelection();
		createEditCalendarWindow(this, calId, calType);
		showPopup(100, 300, 100);
	}

	this.deleteCalendar = function(calId, calType) {
		// delete calendar
		if (confirm('Er du sikker på at du vil slette denne kalender og alle de aktiviteter den indeholder?')) {
			saveSelection();
			deleteCalendar(calId, calType);
			document.location.reload();
		}
	}
	
	function deleteCalendar(calId, calType) {
		// delete calendar
		var xmlHttp = createXmlRequest();
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/deletecalendar.php?calId="+calId+"&calType="+calType,false);
		xmlHttp.send(null);
	}

	this.deleteEvent = function(eventId, calType) {
		// delete calendar
		if (confirm('Er du sikker på at du vil slette denne aktivitet?')) {
			deleteEvent(eventId, calType);
			this.drawCalendar();
			closePopup();
		}
	}
	
	function deleteEvent(eventId, calType) {
		// delete event
		var xmlHttp = createXmlRequest();
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/deleteevent.php?eventId="+eventId+"&calType="+calType,false);
		xmlHttp.send(null);
	}

	function createEditCalendarWindow(obj, calId, calType) {
		var xmlHttp = createXmlRequest();
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/calendar.json.php?calId="+calId+"&calType="+calType,false);
		xmlHttp.send(null);
		
		// eval() should be replaced with a json function
		var cal = eval("("+xmlHttp.responseText+")");
		
		setDefaultPopupContent('Rediger kalender ('+cal.userCalendarTitle+')', '', true);

		var oContainer = document.createElement("div");
		oContainer.className = '';

		oRow = document.createElement("div");
		oRow.className = 'listRow';

		// creating list row title
		oText = document.createElement("div");
		oText.className = 'listItem90';
		oText.appendChild(document.createTextNode('Titel'));

		// adding list row title to list  row
		oRow.appendChild(oText);

		// creating input container
		oInputContainer = document.createElement("div");
		oInputContainer.className = 'listItem150';

		// creating input
		oInput = document.createElement("input");
		oInput.type = 'text';
		oInput.value = cal.userCalendarTitle;
		oInput.id = 'userCalendarTitle';

		// adding input to container
		oInputContainer.appendChild(oInput);

		// adding input container to row
		oRow.appendChild(oInputContainer);

		// adding row to container
		oContainer.appendChild(oRow);

		// adding container to popup
		document.getElementById('popupInnerContent').appendChild(oContainer);

		// TODO ok button skal laves pænere
		oButton = document.createElement("input");
		oButton.type = 'button';
		oButton.onclick = function () {
			// TODO tilføj validering
			if (validateCalendar()) saveEditCalendar(obj, calId, calType);
		}
		oButton.value = 'Ok';

		document.getElementById('popupInnerContent').appendChild(oButton);
	}

	function saveEditCalendar(obj, calId, calType) {
		var userCalendarTitle = encodeURIComponent(document.getElementById('userCalendarTitle').value);

		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				// reload calendar
				document.location.reload();
			}
		}
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/savecalendar.php?userCalendarTitle="+escape(userCalendarTitle)+"&calId="+calId+"&calType="+calType);
		xmlHttp.send(null);
	}

	this.newCalendar = function() {
		// display create new calendar container
		createNewCalendarWindow(this);
		showPopup(100, 300, 100);
	}

	function createNewCalendarWindow(obj) {
		setDefaultPopupContent('Opret kalender', '', true);

		var oContainer = document.createElement("div");
		oContainer.className = '';

		oRow = document.createElement("div");
		oRow.className = 'listRow';

		// creating list row title
		oText = document.createElement("div");
		oText.className = 'listItem90';
		oText.appendChild(document.createTextNode('Titel'));

		// adding list row title to list  row
		oRow.appendChild(oText);

		// creating input container
		oInputContainer = document.createElement("div");
		oInputContainer.className = 'listItem150';

		// creating input
		oInput = document.createElement("input");
		oInput.type = 'text';
		oInput.id = 'userCalendarTitle';

		// adding input to container
		oInputContainer.appendChild(oInput);

		// adding input container to row
		oRow.appendChild(oInputContainer);

		// adding row to container
		oContainer.appendChild(oRow);

		// adding container to popup
		document.getElementById('popupInnerContent').appendChild(oContainer);

		// TODO ok button skal laves pænere
		oButton = document.createElement("input");
		oButton.type = 'button';
		oButton.onclick = function () {
			// TODO tilføj validering
			if (validateCalendar()) saveNewCalendar(obj);
		}
		oButton.value = 'Ok';

		document.getElementById('popupInnerContent').appendChild(oButton);
	}

	function saveNewCalendar(obj) {
		var userCalendarTitle = encodeURIComponent(document.getElementById('userCalendarTitle').value);

		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				// reload calendar
				document.location.reload();
			}
		}
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/createcalendar.php?userCalendarTitle="+escape(userCalendarTitle));
		xmlHttp.send(null);
	}

	this.newEvent = function() {
		// display create event container
		createNewEventWindow(this);
		showPopup(300, 530, 100);
	}

	function createNewEventWindow(obj, eventDate) {
		setDefaultPopupContent('Opret aktivitet', '', true);

		eventDate = eventDate != undefined ? eventDate : curentDate;
		
		var oContainer = document.createElement("div");
		oContainer.className = '';

		// Title
			// creating list row
			oRow = document.createElement("div");
			oRow.className = 'calendarNewEventRow';

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'calendarLabel';
			oText.appendChild(document.createTextNode('Titel'));

			// adding list row title to list  row
			oRow.appendChild(oText);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'calendarInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.id = 'eventTitle';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oRow.appendChild(oInputContainer);

			// adding row to container
			oContainer.appendChild(oRow);

		// Date
			// creating list row
			oRow = document.createElement("div");
			oRow.className = 'calendarNewEventRow';

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'calendarLabel';
			oText.appendChild(document.createTextNode('Tidspunkt'));

			// adding list row title to list  row
			oRow.appendChild(oText);

			// creating input container
			oDatetimeContainer = document.createElement("div");
			oDatetimeContainer.className = 'calendarInput';

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'eventDateTimeInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.className = 'calendarDate';
			oInput.setAttribute('maxlength', 10);
			oInput.value=eventDate;
			oInput.id = 'eventFromDate';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oDatetimeContainer.appendChild(oInputContainer);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'eventDateTimeInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.className = 'calendarTime';
			oInput.setAttribute('maxlength', 5);
			oInput.value='08:00';
			oInput.id = 'eventFromTime';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oDatetimeContainer.appendChild(oInputContainer);

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'eventToLabel';
			oText.appendChild(document.createTextNode('til'));
			oDatetimeContainer.appendChild(oText);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'calendarDateContainer';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.className = 'calendarDate';
			oInput.setAttribute('maxlength', 10);
			oInput.value=eventDate;
			oInput.id = 'eventToDate';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oDatetimeContainer.appendChild(oInputContainer);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'eventDateTimeInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.className = 'calendarTime';
			oInput.setAttribute('maxlength', 5);
			oInput.value='16:00';
			oInput.id = 'eventToTime';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oDatetimeContainer.appendChild(oInputContainer);
			
			// adding fullday checkbox
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'eventDateTimeInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'checkbox';
			oInput.id = 'eventFullday';
			oInput.onclick = function () {
				if (this.checked) {
					document.getElementById('eventToTime').style.display='none';
					document.getElementById('eventFromTime').style.display='none';
				} else {
					document.getElementById('eventToTime').style.display='';
					document.getElementById('eventFromTime').style.display='';
				}
			}
			oInput.value='1';

			// adding input to container
			oInputContainer.appendChild(oInput);
			oInputContainer.appendChild(document.createTextNode('Hele dagen'));

			// adding input container to row
			oDatetimeContainer.appendChild(oInputContainer);
			
			// adding input container to row
			oRow.appendChild(oDatetimeContainer);

			// adding row to container
			oContainer.appendChild(oRow);

		// Place
			// creating list row
			oRow = document.createElement("div");
			oRow.className = 'calendarNewEventRow';

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'calendarLabel';
			oText.appendChild(document.createTextNode('Sted'));

			// adding list row title to list  row
			oRow.appendChild(oText);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'calendarInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.id = 'eventPlace';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oRow.appendChild(oInputContainer);

			// adding row to container
			oContainer.appendChild(oRow);

		// Calendar
			// creating list row
			oRow = document.createElement("div");
			oRow.className = 'calendarNewEventRow';

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'calendarLabel';
			oText.appendChild(document.createTextNode('Kalender'));

			// adding list row title to list  row
			oRow.appendChild(oText);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'calendarInput';

			// creating input
			oInput = document.createElement("select");
			oInput.id = 'eventCalendar';

			// adding options to select
			for (cal in calendars[1]) {
				oOption = document.createElement("option");
				oOption.value = calendars[1][cal].calId;
				oOption.appendChild(document.createTextNode(calendars[1][cal].calTitle));
				oInput.appendChild(oOption);
			}

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oRow.appendChild(oInputContainer);

			// adding row to container
			oContainer.appendChild(oRow);

		// Description
			// creating list row
			oRow = document.createElement("div");
			oRow.className = 'calendarNewEventRow';

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'calendarLabel';
			oText.appendChild(document.createTextNode('Beskrivelse'));

			// adding list row title to list  row
			oRow.appendChild(oText);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'calendarInput';

			// creating input
			oInput = document.createElement("textarea");
			oInput.className = 'textarea300';
			oInput.id = 'eventDescription';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oRow.appendChild(oInputContainer);

			// adding row to container
			oContainer.appendChild(oRow);

		// adding container to popup
		document.getElementById('popupInnerContent').appendChild(oContainer);

		// TODO ok button skal laves pænere
		oButton = document.createElement("input");
		oButton.type = 'button';
		oButton.onclick = function () {
			if (validateEvent()) saveNewEvent(obj);
		}
		oButton.value = 'Ok';

		document.getElementById('popupInnerContent').appendChild(oButton);
	}
	
	function validateCalendar() {
		// validating calendar
		var validated = true
		
		var userCalendarTitle = encodeURIComponent(document.getElementById('userCalendarTitle').value);
		
		// validate calendar title
		if (userCalendarTitle == '') {
			alert('Kalenderen skal have en titel');
			document.getElementById('userCalendarTitle').focus();
			validated = false;
		}
		
		return validated;
	}
	
	function validateEvent() {
		// validating event
		var validated = true
		
		// regex
		var datereg = /(19|20)\d\d-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])/;
		var timereg = /(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])$)|(^([0-9]|[1][0-9]|[2][0-3])$)/;
		
		// input to validate
		var eventTitle = encodeURIComponent(document.getElementById('eventTitle').value);
		var eventStartDate = document.getElementById('eventFromDate').value;
		var eventStartTime = document.getElementById('eventFromTime').value;
		var eventEndDate = document.getElementById('eventToDate').value;
		var eventEndTime = document.getElementById('eventToTime').value;
		
		var eventStartDateArr = eventStartDate.split("-");
		var eventStartTimeArr = eventStartTime.split(":");
		var startDate = new Date(eventStartDateArr[0], eventStartDateArr[1]-1, eventStartDateArr[2], eventStartTimeArr[0], eventStartTimeArr[1]);
		
		var eventEndDateArr = eventEndDate.split("-");
		var eventEndTimeArr = eventEndTime.split(":");
		var endDate = new Date(eventEndDateArr[0], eventEndDateArr[1]-1, eventEndDateArr[2], eventEndTimeArr[0], eventEndTimeArr[1]);
		
		// validating event title
		if (eventTitle == '') {
			alert('Aktiviteten skal have en titel');
			document.getElementById('eventTitle').focus();
			validated = false;
		} else
		
		if (startDate > endDate) {
			alert('Starttispunktet skal være før sluttidspunktet');
			document.getElementById('eventFromDate').focus();
			validated = false;
		} else
		
		// validating start date
		if (!datereg.test(eventStartDate)) {
			alert('startdatoen skal have formatet ÅÅÅÅ-MM-DD');
			document.getElementById('eventFromDate').focus();
			validated = false;
		} else
		
		// calidating start time
		if (!timereg.test(eventStartTime)) {
			alert('start tidspunktet skal have formatet TT:MM');
			document.getElementById('eventFromTime').focus();
			validated = false;
		} else
		
		// validating end date
		if (!datereg.test(eventEndDate)) {
			alert('slutdatoen skal have formatet ÅÅÅÅ-MM-DD');
			document.getElementById('eventToDate').focus();
			validated = false;
		} else
		
		// calidating end time
		if (!timereg.test(eventEndTime)) {
			alert('slut tidspunktet skal have formatet TT:MM');
			document.getElementById('eventToTime').focus();
			validated = false;
		}
		
		return validated;
	}

	this.editEvent = function(eventId, eventType) {
		// display create event container
		createEditEventWindow(this, eventId, eventType);
		showPopup(300, 530, 100);
	}

	function createEditEventWindow(obj, eventId, eventType) {
		var xmlHttp = createXmlRequest();
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/event.json.php?eventId="+eventId+"&eventType="+eventType,false);
		xmlHttp.send(null);
		
		// eval() should be replaced with a json function
		var event = eval("("+xmlHttp.responseText+")");
		
		var oContainer = document.createElement("div");
		oContainer.className = '';

		setDefaultPopupContent('Rediger aktivitet ('+event.eventTitle+')', '', true);

		// Title
			// creating list row
			oRow = document.createElement("div");
			oRow.className = 'calendarNewEventRow';

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'calendarLabel';
			oText.appendChild(document.createTextNode('Titel'));

			// adding list row title to list  row
			oRow.appendChild(oText);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'calendarInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.value = event.eventTitle;
			oInput.id = 'eventTitle';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oRow.appendChild(oInputContainer);

			// adding row to container
			oContainer.appendChild(oRow);

		// Date
			// creating list row
			oRow = document.createElement("div");
			oRow.className = 'calendarNewEventRow';

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'calendarLabel';
			oText.appendChild(document.createTextNode('Tidspunkt'));

			// adding list row title to list  row
			oRow.appendChild(oText);

			// creating input container
			oDatetimeContainer = document.createElement("div");
			oDatetimeContainer.className = 'calendarInput';

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'eventDateTimeInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.className = 'calendarDate';
			oInput.setAttribute('maxlength', 10);
			oInput.value=event.eventStartDate;
			oInput.id = 'eventFromDate';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oDatetimeContainer.appendChild(oInputContainer);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'eventDateTimeInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.className = 'calendarTime';
			oInput.setAttribute('maxlength', 5);
			oInput.value=event.eventStartTime;
			oInput.id = 'eventFromTime';
			oInput.style.display = event.eventFullday == 1 ? 'none' : '';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oDatetimeContainer.appendChild(oInputContainer);

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'eventToLabel';
			oText.appendChild(document.createTextNode('til'));
			oDatetimeContainer.appendChild(oText);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'calendarDateContainer';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.className = 'calendarDate';
			oInput.setAttribute('maxlength', 10);
			oInput.value=event.eventEndDate;
			oInput.id = 'eventToDate';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oDatetimeContainer.appendChild(oInputContainer);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'eventDateTimeInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.className = 'calendarTime';
			oInput.setAttribute('maxlength', 5);
			oInput.value=event.eventEndTime;
			oInput.id = 'eventToTime';
			oInput.style.display = event.eventFullday == 1 ? 'none' : '';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oDatetimeContainer.appendChild(oInputContainer);
			
			// adding fullday checkbox
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'eventDateTimeInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'checkbox';
			oInput.id = 'eventFullday';
			oInput.checked = event.eventFullday == 1 ? true : false;
			oInput.onclick = function () {
				if (this.checked) {
					document.getElementById('eventToTime').style.display='none';
					document.getElementById('eventFromTime').style.display='none';
				} else {
					document.getElementById('eventToTime').style.display='';
					document.getElementById('eventFromTime').style.display='';
				}
			}
			oInput.value='1';

			// adding input to container
			oInputContainer.appendChild(oInput);
			oInputContainer.appendChild(document.createTextNode('Hele dagen'));

			// adding input container to row
			oDatetimeContainer.appendChild(oInputContainer);
			
			// adding input container to row
			oRow.appendChild(oDatetimeContainer);

			// adding row to container
			oContainer.appendChild(oRow);

		// Place
			// creating list row
			oRow = document.createElement("div");
			oRow.className = 'calendarNewEventRow';

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'calendarLabel';
			oText.appendChild(document.createTextNode('Sted'));

			// adding list row title to list  row
			oRow.appendChild(oText);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'calendarInput';

			// creating input
			oInput = document.createElement("input");
			oInput.type = 'text';
			oInput.value = event.eventPlace;
			oInput.id = 'eventPlace';

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oRow.appendChild(oInputContainer);

			// adding row to container
			oContainer.appendChild(oRow);

		// Calendar
			// creating list row
			oRow = document.createElement("div");
			oRow.className = 'calendarNewEventRow';

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'calendarLabel';
			oText.appendChild(document.createTextNode('Kalender'));

			// adding list row title to list  row
			oRow.appendChild(oText);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'calendarInput';

			// creating input
			oInput = document.createElement("select");
			oInput.id = 'eventCalendar';

			// adding options to select
			for (cal in calendars[1]) {
				oOption = document.createElement("option");
				oOption.value = calendars[1][cal].calId;
				oOption.selected = event.eventCalendar == calendars[1][cal].calId ? true : false;
				oOption.appendChild(document.createTextNode(calendars[1][cal].calTitle));
				oInput.appendChild(oOption);
			}

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oRow.appendChild(oInputContainer);

			// adding row to container
			oContainer.appendChild(oRow);

		// Description
			// creating list row
			oRow = document.createElement("div");
			oRow.className = 'calendarNewEventRow';

			// creating list row title
			oText = document.createElement("div");
			oText.className = 'calendarLabel';
			oText.appendChild(document.createTextNode('Beskrivelse'));

			// adding list row title to list  row
			oRow.appendChild(oText);

			// creating input container
			oInputContainer = document.createElement("div");
			oInputContainer.className = 'calendarInput';

			// creating input
			oInput = document.createElement("textarea");
			oInput.className = 'textarea300';
			oInput.id = 'eventDescription';
			oInput.appendChild(document.createTextNode(event.eventDescription));

			// adding input to container
			oInputContainer.appendChild(oInput);

			// adding input container to row
			oRow.appendChild(oInputContainer);

			// adding row to container
			oContainer.appendChild(oRow);

		// adding container to popup
		document.getElementById('popupInnerContent').appendChild(oContainer);

		// TODO ok button skal laves pænere
		oButton = document.createElement("input");
		oButton.type = 'button';
		oButton.onclick = function () {
			// TODO tilføj validering
			if (validateEvent()) saveEditEvent(obj, eventId, eventType);
		}
		oButton.value = 'Ok';

		document.getElementById('popupInnerContent').appendChild(oButton);
	}

	function saveEditEvent(obj, eventId, eventType) {
		var eventTitle = encodeURIComponent(document.getElementById('eventTitle').value);
		var eventPlace = encodeURIComponent(document.getElementById('eventPlace').value);
		var eventDescription = encodeURIComponent(document.getElementById('eventDescription').value);
		var eventCalendar = document.getElementById('eventCalendar').options[document.getElementById('eventCalendar').selectedIndex].value;
		var eventFullday = document.getElementById('eventFullday').checked ? '1' : '0';
		var eventStartDate = document.getElementById('eventFromDate').value+" "+document.getElementById('eventFromTime').value;
		var eventEndDate = document.getElementById('eventToDate').value+" "+document.getElementById('eventToTime').value;

		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				// redraw calendar
				obj.drawCalendar();
				closePopup();
			}
		}
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/saveevent.php?eventId="+eventId+"&eventType="+eventType+"&eventTitle="+escape(eventTitle)+"&eventPlace="+escape(eventPlace)+"&eventDescription="+escape(eventDescription)+"&eventCalendar="+eventCalendar+"&eventFullday="+eventFullday+"&eventStartDate="+eventStartDate+"&eventEndDate="+eventEndDate);
		xmlHttp.send(null);
	}

	function saveNewEvent(obj) {
		var eventTitle = encodeURIComponent(document.getElementById('eventTitle').value);
		var eventPlace = encodeURIComponent(document.getElementById('eventPlace').value);
		var eventDescription = encodeURIComponent(document.getElementById('eventDescription').value);
		var eventCalendar = document.getElementById('eventCalendar').options[document.getElementById('eventCalendar').selectedIndex].value;
		var eventFullday = document.getElementById('eventFullday').checked ? '1' : '0';
		var eventStartDate = document.getElementById('eventFromDate').value+" "+document.getElementById('eventFromTime').value;
		var eventEndDate = document.getElementById('eventToDate').value+" "+document.getElementById('eventToTime').value;

		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				// redraw calendar
				obj.drawCalendar();
				closePopup();
			}
		}
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/createevent.php?eventTitle="+escape(eventTitle)+"&eventPlace="+escape(eventPlace)+"&eventDescription="+escape(eventDescription)+"&eventCalendar="+eventCalendar+"&eventFullday="+eventFullday+"&eventStartDate="+eventStartDate+"&eventEndDate="+eventEndDate);
		xmlHttp.send(null);
	}

	this.colorSelector = function(cal, calType, obj) {
		var oParent = document.getElementById('container_'+calType+'_'+cal);
		
		// removing old selectors
		removeColorSelector();

		// creating new color selector
		createColorSelector(oParent, cal, calType, obj);
	}

	this.selectColor = function(color, cal, calType) {
		// removing selector
		removeColorSelector();

		// setting color value
		calendars[calType][cal].calColor = color;

		var calendarTitle = document.getElementById('calendarTitle_'+calType+'_'+cal);
		var selector = document.getElementById('colorSelector_'+calType+'_'+cal);

		// changing color in calendar selector title
		if (calendars[calType][cal].calSelected) {
			calendarTitle.className = 'calendarSelectorTitle eventStyleFullday'+calendars[calType][cal].calColor;
		} else {
			calendarTitle.className = 'calendarSelectorTitle eventStyle'+calendars[calType][cal].calColor;
		}

		// changing selected color
		selector.className = 'calendarSelectorColor colorSelector eventStyleFullday'+calendars[calType][cal].calColor;
	}
	
	this.showDayEvent = function(date) {
		var calendarJSON = JSON.stringify(calendars);

		showPopup(300, 570, 100);
		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
			}
		}
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/showevents.php?date="+date+"&calendars="+calendarJSON);
		xmlHttp.send(null);
	}

	this.showEvent = function(calType, eventId) {
		showPopup(300, 570, 100);
		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
			}
		}
		xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/showevent.php?eventId="+eventId+"&calType="+calType+"&pageId="+pageId);
		xmlHttp.send(null);
	}
}

/*
	myCalendar object end
*/

function calendarShowMonth(date, showCalendar, pageId) {
	var xmlHttp = createXmlRequest();
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('calendarContainer').innerHTML=xmlHttp.responseText;
		}
	}
	xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/showcalendar.php?date="+date+"&showCalender="+showCalender+"&pageId="+pageId);
	xmlHttp.send(null);
}

function calendarCreateEvent(pageId) {
	showPopup(300, 570, 100);
	var xmlHttp = createXmlRequest();
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/createevent.php?pageId="+pageId);
	xmlHttp.send(null);
}

function displayCalendarSelection(pageId) {
	showPopup(300, 570, 100);
	var xmlHttp = createXmlRequest();
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/calendarselector.php?pageId="+pageId);
	xmlHttp.send(null);
}

function loadCalendarPosts(week) {
	var xmlHttp = createXmlRequest();
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById(eventWeeks[week]).innerHTML = xmlHttp.responseText;
		}
	}
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/calendarposts.php?eventWeekDates="+eventWeekDates[week]+"&pageId="+pageId);
	xmlHttp.send(null);
}

function showDayEvent(date, pageId) {
	showPopup(300, 570, 100);
	var xmlHttp = createXmlRequest();
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	xmlHttp.open("get","http://www.pfs.dk/includes/ajax/showevents.php?date="+date+"&pageId="+pageId);
	xmlHttp.send(null);
}

function calendarShowEvent(eventId, pageId) {
	showPopup(300, 570, 100);
	var xmlHttp = createXmlRequest();
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			document.getElementById('popUpContent').innerHTML=xmlHttp.responseText;
		}
	}
	xmlHttp.open("get","http://www.pfs.dk/modules/calendar/ajax/showevent.php?eventId="+eventId+"&pageId="+pageId);
	xmlHttp.send(null);
}

var calendarColorSelector = false;

function calendarShowColorSelector(calendar) {
	if (calendarColorSelector) document.getElementById(calendarColorSelector).style.display='none';
	
	if (calendarColorSelector == 'colorSelector_'+calendar) {
		calendarColorSelector = false;
	} else {
		calendarColorSelector = 'colorSelector_'+calendar;
		document.getElementById('colorSelector_'+calendar).style.display='inline';
	}
}

var selectedCalendarColors = new Array();

function selectCalendarColor(color, calendar) {
	// resetting opened selector
	calendarColorSelector = false;
	document.getElementById('colorSelector_'+calendar).style.display='none';
	// mark calendar with new color
	if (in_array(calendar, selectedCalendars)) {
		document.getElementById('calendarTitle_'+calendar).className='calendarSelectorTitle eventStyleFullday'+color;
	} else {
		document.getElementById('calendarTitle_'+calendar).className='calendarSelectorTitle eventStyle'+color;
	}
		document.getElementById('calendarColor_'+calendar).className='calendarSelectorColor colorSelector eventStyleFullday'+color;
	selectedCalendarColors[calendar] = color;
}

var selectedCalendars = new Array();

function selectCalendar(calendar) {
	// setting color of selected calendars
	var color = selectedCalendarColors[calendar] == undefined ? document.getElementById('eventCalendarColor_'+calendar).value : selectedCalendarColors[calendar];
	selectedCalendarColors[calendar] = color;
	
	if (in_array(calendar, selectedCalendars)) {
		// calendar is allready selected, so deselect and remove it from the arrays
		for (var i=0; i<selectedCalendars.length;i++ ) { 
			// removing calendar from selectedCalendars array
			if (selectedCalendars[i] == calendar) selectedCalendars.splice(i,1);
		}
		
		// setting calendar to deselected
		document.getElementById('calendarTitle_'+calendar).className='calendarSelectorTitle eventStyle'+color;
	} else {
		// setting calendar to selected
		document.getElementById('calendarTitle_'+calendar).className='calendarSelectorTitle eventStyleFullday'+color;
		selectedCalendars[selectedCalendars.length] = calendar;
	}
	document.getElementById('selectedCalendars').value=selectedCalendars;
}

function saveSelectedCalendars() {
	var selectedCalendarStr = '';
	for (var i=0; i<selectedCalendars.length;i++ ) { 
		// add calendar and color to selected calendar
		selectedCalendarStr += selectedCalendarStr == '' ? '' : ',';
		var eventCalendarType = document.getElementById('eventCalendarType_'+selectedCalendars[i]).value
		var eventCalendar = document.getElementById('eventCalendar_'+selectedCalendars[i]).value
		var eventCalendarColor = document.getElementById('eventCalendarColor_'+selectedCalendars[i]).value
		selectedCalendarStr += eventCalendarType+'|'+eventCalendar+'|'+eventCalendarColor;
	}
	
	document.getElementById('selectedCalendars').value=selectedCalendarStr;
}

function calendarSearch(pageId) {
	var searchKeyword = document.getElementById('calendarSearchKeyword').value;
	if (searchKeyword != "") {
		gotoPage("http://www.pfs.dk/system/mysite/mycalendar/events/0/"+searchKeyword+"/"+pageId);
	} else {
		document.getElementById('calendarSearchKeyword').focus();
		alert("Indtast et søgeord");
	}
}

function deleteEvent(eventId) {
	if (confirm("Er du sikker på at du vil slette den aktivitet?")) {
		var xmlHttp = createXmlRequest();
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				alert(xmlHttp.responseText);
				document.location.reload();
			}
		}
		
		xmlHttp.open("get","http://www.pfs.dk/includes/ajax/deleteevent.php?eventId="+eventId);
		xmlHttp.send(null);
	}
}