var smInitNewFriendOnline = false; //this is because soundmanager initilizes slowly
var jsFriends = new Array();

function callbackFriendlist(aFriends) {
	var aCallbackLength = aFriends.length;
	if (aFriends[0].firstChild.data == "false") {
		jsFriends = new Array();
	} else if (aCallbackLength>0) {
		for(var i = 0; i < aCallbackLength; i++) {	
			var fUsrId = aFriends[i].childNodes[0].firstChild.data; //id
			var fUsrName = aFriends[i].childNodes[1].firstChild.nodeValue //un
			var fUsrOnline = aFriends[i].childNodes[2].firstChild.data //on	
			var fUsrAlert = aFriends[i].childNodes[3].firstChild.data //al
			var	fUsrGender = aFriends[i].childNodes[4].firstChild.data //ge
			var fUsrStatus = aFriends[i].childNodes[5].firstChild.data //st
			if (fUsrStatus=="add") {
				jsFriends[fUsrId] = new Array(5);
				jsFriends[fUsrId]['id'] = fUsrId;
				jsFriends[fUsrId]['un'] = fUsrName;
				jsFriends[fUsrId]['on'] = fUsrOnline;
				jsFriends[fUsrId]['ge'] = fUsrGender;
				jsFriends[fUsrId]['al'] = fUsrAlert;
			} else if (fUsrStatus=="rem") {
				delete jsFriends[fUsrId];
			}
		}
	}
	if (aCallbackLength>0) {
		buildFriendList(jsFriends);
	}
}

function initFriendList() {
	//var cookieFriendList = readSessionCookie('cookieFriendList');
	var cookieFriendList = readCookie('cookieFriendList');

	if (cookieFriendList == null) {
		//loading
		return false;		

	} else if (cookieFriendList == "false") {
		//no friends
		buildFriendList(jsFriends);

	} else {
		//friendlist update
		var cookieFriendListSplit = cookieFriendList.split("*");
		var l = cookieFriendListSplit.length;
		var i = 0;
		while (i<l) {
			jsFriends[cookieFriendListSplit[i]] = new Array(3);
			jsFriends[cookieFriendListSplit[i]]['id'] = cookieFriendListSplit[i];
			jsFriends[cookieFriendListSplit[i]]['un'] = cookieFriendListSplit[(i+1)];
			jsFriends[cookieFriendListSplit[i]]['ge'] = cookieFriendListSplit[(i+2)];
			jsFriends[cookieFriendListSplit[i]]['on'] = cookieFriendListSplit[(i+3)];
			i=i+4;
		}
		buildFriendList(jsFriends);
	}
}

function setFriendsCookie(arFriends) {
	var cookieFriendList = "";
	var cookieFriendListPrefix = "";
	var arFriendsLength = arFriends.length;
	for (var i=0; i!=arFriendsLength; i++) {
		cookieFriendList += cookieFriendListPrefix + arFriends[i]['id'];
		cookieFriendListPrefix = "*";
		cookieFriendList += cookieFriendListPrefix + arFriends[i]['un'];
		cookieFriendList += cookieFriendListPrefix + arFriends[i]['ge'];
		cookieFriendList += cookieFriendListPrefix + arFriends[i]['on'];
	}
	if (cookieFriendList == "") {
		cookieFriendList = "false";
	}
	//createSessionCookie('cookieFriendList', cookieFriendList);
	createCookie('cookieFriendList', cookieFriendList, false);
}

function msgNoFriends() {
	var msg = "Er staat nog niemand op je vriendenlijst. Surf naar het profiel van de personen die je op je vriendenlijst wilt plaatsen, en klik op \"Op vriendenlijst plaatsen\".";
	var FriendList = document.getElementById('friendList');
	removeChildren(FriendList);
	var oFriendDiv = document.createElement("DIV");
	oFriendDiv.className = "message";
	oFriendDiv.appendChild(document.createTextNode(msg));
	FriendList.appendChild(oFriendDiv);
}

function buildFriendList(rFriends) {
	var i = 0;
	var uFriends = new Array();
	for (var id in rFriends) {
		if (isNaN(id) == false) { //this to prevent interference with objsort
			uFriends[i] = new Array();
			uFriends[i] = rFriends[id];
			i++;
		}
	}
	var aFriends=uFriends.objSort('un');
	setFriendsCookie(aFriends);
	var l = aFriends.length;
	if (l>0) {
		if (showFriendList == true) {
			var FriendList = document.getElementById('friendList');
			removeChildren(FriendList);
		}
		var friendAlert = false;
		for(var i = 0; i < l; i++)	{
			if (showFriendList == true) {
				var oFriendDiv = document.createElement("DIV");
				oFriendDiv.className = "friendContainer";
				var oFriendLink = document.createElement("A");
				oFriendLink.className = aFriends[i]["on"] + aFriends[i]["ge"] + "Friend"; //st, ge
				oFriendLink.href = "profiel.php?profielID="+aFriends[i]["id"];
				oFriendLink.id = "friendList"+aFriends[i]["id"];
				oFriendLink.appendChild(document.createTextNode(aFriends[i]["un"])); //un
				oFriendDiv.appendChild(oFriendLink);
			}
			if (aFriends[i]["al"] == "y") {
				friendAlert = true;
				if (showFriendList == true) {
					doBlink(aFriends[i]["id"]);
				}
			}
			if (showFriendList == true) {
				if (aFriends[i]["on"] == "y" && cpm != "f") {
					var oFriendChatLink = document.createElement("A");
					oFriendChatLink.className = "friendChat";
					oFriendChatLink.title = "Start privéchat met "+aFriends[i]["un"];
					oFriendChatLink.href = "javascript:newIMsession("+aFriends[i]["id"]+");";
					oFriendDiv.appendChild(oFriendChatLink);
				}
				FriendList.appendChild(oFriendDiv);
			}
		}
		if (friendAlert == true && sound_friendonline == "t") {
			soundManager.play('online');
			smInitNewFriendOnline = true;
		}
	} else if (showFriendList == true) {
		msgNoFriends();
	}
}

function doBlink(i) {
	var secs2blink = 5;
	for(var bi = 0; bi < secs2blink; bi++)	{	
		setTimeout("document.getElementById('friendList"+i+"').style.fontWeight = 'bold'", ((bi*1000)+500));
		setTimeout("document.getElementById('friendList"+i+"').style.fontWeight = 'normal'", ((bi*1000)+1000));
	}
}

function handle_error() {

}

function server_slow() {

}

function server_ok() {
	
}

function IMsystemMsg(msg1, msg2, msg3) {
	if(msg3 == "Je bent momenteel niet ingelogd."){
		window.location = forumPrefix + "index.php";
	}
}