		//
		// divers
		//
		function submitenter(myfield,e)
		{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		
		if (keycode == 13)
   		{
   				myfield.form.submit();
   				return false;
   		}
		else
   				return true;
		}

		function translateTagString($tags) {
			s = new String($tags);
			return s.replace(/,/g, " ");
		}

		function secureTransfer (string) {
    			var out = "";

			out = toUnicode(string);
			out = escape(string);

			return (out);
		}

		function toUnicode (string) {
    				var out = "";

    				for (var c = 0; c < string.length; c++) {
        				out = out + '&#' + string.charCodeAt(c) + ';';
    				}
		
    				return (out);
		}

		//
		// STATE
		//
		// important:
		// mode = "browse, vraag, ask, users, mijn, groups, message, group_browse, group_vraag, group_ask, group_users, group_mijn, group_admin";
		// group = 1 => hellup group !!!
		// member = 0 => anonyous !!!
		//
		var global_state_mode = "browse";
		var global_state_group = 1;
		var global_state_member = 0;
		var global_mouse_position_x = 0;
		var global_mouse_position_y = 0;
		// mijn_edit is special case
		var global_mijn_edit = 0

		function setState(attribute, value) {
			if (attribute == 'mode') {
				global_state_mode = value;
			}
			if (attribute == 'group') {
				global_state_group = value;
			}
			if (attribute == 'member') {
				global_state_member = value;
			}
		}

		function getState(attribute) {
			if (attribute == 'mode') {
				return global_state_mode;
			}
			if (attribute == 'group') {
				return global_state_group;
			}
			if (attribute == 'member') {
				return global_state_member;
			}
		}

		function getStateString() {
			return "mode=" + global_state_mode + "&group=" + global_state_group + "&member=" + global_state_member;
		}

		//
		// Access
		//
		var access_refresh = 1;
		function setMousePosition() {
			var posx = 0;
			var posy = 0;
			if (!e) var e = window.event;
			//if (e.pageX || e.pageY) 	{
			//	posx = e.pageX;
			//	posy = e.pageY;
			//}
			if (e.clientX || e.clientY) 	{
				posx = e.clientX + document.body.scrollLeft
					+ document.documentElement.scrollLeft;
				posy = e.clientY + document.body.scrollTop
					+ document.documentElement.scrollTop;
			}

			global_mouse_position_x = posx;
			global_mouse_position_y = posy;

		}

		function allowAccess(data, refreshValue) {
			if (data.indexOf('Voor deze actie moet je eerst inloggen.')!= -1) {

				//
				// show login form directly if credentials are necesary for the action
				//
				document.getElementById('popup').innerHTML=data;
				pop_open();
				access_refresh = refreshValue;
				loginSetFocus();

				return false;
			}	
			else {
				return true;
			}	
		}

		//
		// Popup
		//
			function pop_open() {
				scroll(0,0);
				document.getElementById('popup').style.visibility="visible";
				document.getElementById('divider').style.visibility="hidden";
				document.getElementById('breadcrum').style.visibility="hidden";
				if (getState('mode') == "group_about") {
					document.getElementById('group_info').style.visibility="hidden";
				}
				else {
					document.getElementById('controls').style.visibility="hidden";
				}

				if (getState('mode') == "browse" || getState('mode') == "group_browse" || getState('mode') == "group_about") {
					document.getElementById('listQuestion').style.visibility="hidden";
					document.getElementById('advertentie').style.visibility="hidden";
				}

				if (getState('mode') == "vraag" || getState('mode') == "group_vraag") {
					document.getElementById('listAnswer').style.visibility="hidden";
					document.getElementById('listQuestionTiny').style.visibility="hidden";
				}

				if (getState('mode') == "ask" || getState('mode') == "group_ask") {
					document.getElementById('question').style.visibility="hidden";
					document.getElementById('listQuestionTiny').style.visibility="hidden";
				}

				if (getState('mode') == "users" || getState('mode') == "group_users") {
					document.getElementById('userList').style.visibility="hidden";
				}

				if (getState('mode') == "mijn" || getState('mode') == "group_mijn") {
					document.getElementById('listQuestion').style.visibility="hidden";
					document.getElementById('memberInfo').style.visibility="hidden";
					document.getElementById('memberActivity').style.visibility="hidden";
				}

				if (getState('mode') == "groups") {
					document.getElementById('groupList').style.visibility="hidden";
				}

				if (getState('mode') == "message") {
					document.getElementById('message').style.visibility="hidden";
				}
				if (getState('mode') == "group_admin") {
					document.getElementById('groupAdminList').style.visibility="hidden";
				}

			}

			function close_double() {
				document.getElementById('popup_double').style.visibility="hidden";
			}
			function close() {
				pop_close();
			}
			function pop_close() {
				document.getElementById('popup').innerHTML="";
				document.getElementById('divider').style.visibility="visible";
				document.getElementById('breadcrum').style.visibility="visible";
				if (getState('mode') == "group_about") {
					document.getElementById('group_info').style.visibility="visible";
				}
				else {
					document.getElementById('controls').style.visibility="visible";
				}

				if (getState('mode') == "browse" || getState('mode') == "group_browse" || getState('mode') == "group_about") {
					document.getElementById('listQuestion').style.visibility="visible";
					document.getElementById('advertentie').style.visibility="visible";
				}

				if (getState('mode') == "vraag" || getState('mode') == "group_vraag") {
					document.getElementById('listAnswer').style.visibility="visible";
					document.getElementById('listQuestionTiny').style.visibility="visible";
				}

				if (getState('mode') == "ask" || getState('mode') == "group_ask") {
					document.getElementById('question').style.visibility="visible";
					document.getElementById('listQuestionTiny').style.visibility="visible";
				}

				if (getState('mode') == "users" || getState('mode') == "group_users") {
					document.getElementById('userList').style.visibility="visible";
				}

				if (getState('mode') == "mijn" || getState('mode') == "group_mijn") {
					document.getElementById('memberInfo').style.visibility="visible";
					if (global_mijn_edit != 1) {
						document.getElementById('listQuestion').style.visibility="visible";
						document.getElementById('memberActivity').style.visibility="visible";
					}
				}

				if (getState('mode') == "groups") {
					document.getElementById('groupList').style.visibility="visible";
				}

				if (getState('mode') == "message") {
					document.getElementById('message').style.visibility="visible";
				}

				if (getState('mode') == "group_admin") {
					document.getElementById('groupAdminList').style.visibility="visible";
				}

				document.getElementById('popup').style.visibility="hidden";
			}

		//
		// Tip
		//
		        tip_object = new XMLexchange();
			function showTip() {
				vars = getStateString();
				tip_object.request("POST", "/control.php/showTip",vars,"tip_result", "TEXT");
			}
			function tip_result(data) {
				var result = data;

				document.getElementById('info').innerHTML=data;
			}

		//
		// Question
		//
		        question_object = new XMLexchange();
			function question_info() {
				question_object.request("GET", "/control.php/question_info","","question_info_result", "TEXT");
			}
			function question() {
				vars = getStateString();
				question_object.request("POST", "/control.php/question",vars,"question_result", "TEXT");
			}
			function questionSetFocus() {
				if (document.getElementById("question_form2")) {
					field = document.getElementById("question_form2").question;
					field.focus();
				}
			}
			function question_clear_tag() {
				if (document.getElementById("question_form2").tag.value == "type hier je trefwoord of klik ze hieronder aan") {	
					document.getElementById("question_form2").tag.value = "";
				}
			}
			function question_add_tag(tag) {
				prev = document.getElementById("question_form2").tag.value;
				if (prev == "" || prev == "type hier je trefwoord of klik ze hieronder aan") {	
					document.getElementById("question_form2").tag.value = tag;
				}
				else {
					document.getElementById("question_form2").tag.value += ', ' + tag;
				}

			}
			function question_action() {
				//use this without fleupload
				f_name = document.getElementById("question_form2").flag.name;
				f_value = document.getElementById("question_form2").flag.value;
				q_name = document.getElementById("question_form2").question.name;
				q_value_check = document.getElementById("question_form2").question.value;
				q_value = secureTransfer(document.getElementById("question_form2").question.value);
				t_name = document.getElementById("question_form2").tag.name;
				t_value_check = document.getElementById("question_form2").tag.value;
				t_value = secureTransfer(document.getElementById("question_form2").tag.value);

				file_name = document.getElementById("question_form2").file.name;
				file_value = document.getElementById("question_form2").file.value;

				// override flag
				f_value  = 1;

				// validate
				stat = 1;
				if (stat == 1 && q_value_check == '') {
					alert ("De vraag is niet ingevuld.\nWat is je vraag?");
					stat = 0;
				}
				if (stat == 1 && (t_value_check == '' || t_value_check == 'type hier je trefwoord of klik ze hieronder aan')) {
					alert ("Er zijn geen trefwoorden ingevuld.\nWelke trefwoorden horen bij je vraag?");
					stat = 0;
				}

				if (stat == 1 ) {
					vars = getStateString() + '&' + f_name + '=' + f_value + '&' + q_name + '=' + q_value + '&' + t_name + '=' + t_value + '&' + file_name + '=' + file_value;;

					question_object.request("POST", "/control.php/question_action", vars,"question_result2", "TEXT");
				}
			}
			function question_action2() {
				//use this without fleupload
				f_name = document.getElementById("question_form2").flag.name;
				f_value = document.getElementById("question_form2").flag.value;
				q_name = document.getElementById("question_form2").question.name;
				q_value = secureTransfer(document.getElementById("question_form2").question.value);
				t_name = document.getElementById("question_form2").tag.name;
				t_value = secureTransfer(document.getElementById("question_form2").tag.value);

				// tagstring verification
				t_value = translateTagString(t_value);
				
				vars = getStateString() + '&' + f_name + '=' + f_value + '&' + q_name + '=' + q_value + '&' + t_name + '=' + t_value;

				if (document.getElementById("question_form2").file.value == "") {
					question_object.request("POST", "/control.php/question_action", vars,"question_result3", "TEXT");
				}
				else {
					question_object.request("SUBMIT", "/control.php/question_action", document.getElementById("question_form2"),"", "");
					question_object.request("GET", "/control.php/question_upload", "","question_result3", "TEXT");
				}
			}
			function question_reverse_action() {
				document.getElementById('question2').style.visibility="hidden";
				document.getElementById('question').style.visibility="visible";
				questionSetFocus();
			}
			function question_upload_done() {
				alert ("done");
				setState('mode','home_ontdek');
				rubriek();
			}
			function questionTags(question) {
				vars = getStateString() + '&question=' + question;
				question_object.request("POST", "/control.php/questionTags", vars,"questionTags_result", "TEXT");
			}
			function question_info_result(data) {
				var result = data;

				document.getElementById('question_info').innerHTML=data;
			}
			function question_result(data) {
				var result = data;

				document.getElementById('question').innerHTML=result;
				document.getElementById('question2').innerHTML="";
				document.getElementById('question2').style.visibility="hidden";
				document.getElementById('question').style.visibility="visible";

				questionSetFocus();
			}
			function question_result2(data) {
				var result = data;
if (allowAccess(data, 0)) {
				document.getElementById('question2').innerHTML=result;
				document.getElementById('question').style.visibility="hidden";
				document.getElementById('question2').style.visibility="visible";
}
			}
			function question_result3(data) {
				var result = data;
if (allowAccess(data, 0)) {
				document.getElementById('question2').innerHTML=result;
				document.getElementById('question').style.visibility="hidden";
				document.getElementById('question2').style.visibility="visible";

				listQuestionTiny('');
}
			}
			function questionTags_result(data) {
				var result = data;

				document.getElementById('questionTags').innerHTML=result;
			}


		//
		// Answer
		//
		        answer_object = new XMLexchange();
			answer_clipboard = "";
			function answer(question) {
				vars = getStateString() + '&' + 'question' + '=' + question;
				answer_object.request("POST", "/control.php/answer", vars,"answer_result", "TEXT");
			}
			function answer_action() {
				f_name = document.getElementById("answer_form").flag.name;
				f_value = document.getElementById("answer_form").flag.value;
				q_name = document.getElementById("answer_form").question.name;
				q_value = document.getElementById("answer_form").question.value;
				a_name = document.getElementById("answer_form").answer.name;
				a_value = secureTransfer(document.getElementById("answer_form").answer.value);

				answer_clipboard = q_value;

				vars = getStateString() + '&' + f_name + '=' + f_value + '&' + q_name + '=' + q_value + '&' + a_name + '=' + a_value;

				answer_object.request("POST", "/control.php/answer", vars,"answer_result2", "TEXT");
			}
			function answer_result(data) {
				var result = data;

				document.getElementById('popup').innerHTML=result;
				pop_open();

				//listQuestion('');
			}
			function answer_result2(data) {
				var result = data;

if (allowAccess(data, 0)) {
				listAnswer(answer_clipboard, 3, 0);
}
			}

		//
		// Login (and logout)
		//
		        login_object = new XMLexchange();
			function login() {
				login_object.request("GET", "/control.php/login","","login_result", "TEXT");
			}
			function login_update() {
				login_object.request("GET", "/control.php/loginUpdate","","login_update_result", "TEXT");
			}
			function loginSetFocus() {
				if (document.getElementById("login_form")) {
					field = document.getElementById("login_form").user;
					field.focus();
				}
			}
			function sendPass() {
				login_object.request("GET", "/control.php/sendPass","","login_result", "TEXT");
			}
			function sendPassSetFocus() {
				if (document.getElementById("pass_form")) {
					field = document.getElementById("pass_form").mail;
					field.focus();
				}
			}
			function changePass() {
				login_object.request("GET", "/control.php/changePass","","login_result", "TEXT");
			}
			function login_action() {
				u_name = document.getElementById("login_form").user.name;
				u_value = document.getElementById("login_form").user.value;
				p_name = document.getElementById("login_form").pass.name;
				p_value = document.getElementById("login_form").pass.value;

				vars = getStateString() + '&' + u_name + '=' + u_value + '&' + p_name + '=' + p_value;

				login_object.request("POST", "/control.php/login", vars,"login_result", "TEXT");
			}
			function sendPass_action() {
				e_name = document.getElementById("pass_form").mail.name;
				e_value = document.getElementById("pass_form").mail.value;

				vars = getStateString() + '&' + e_name + '=' + e_value;

				login_object.request("POST", "/control.php/sendPass", vars,"login_result", "TEXT");
			}
			function changePass_action() {
				po_name = document.getElementById("changePass_form").passOld.name;
				po_value = document.getElementById("changePass_form").passOld.value;
				pn1_name = document.getElementById("changePass_form").passNew1.name;
				pn1_value = document.getElementById("changePass_form").passNew1.value;
				pn2_name = document.getElementById("changePass_form").passNew2.name;
				pn2_value = document.getElementById("changePass_form").passNew2.value;

				vars = getStateString() + '&' + po_name + '=' + po_value + '&' + pn1_name + '=' + pn1_value + '&' + pn2_name + '=' + pn2_value;

				login_object.request("POST", "/control.php/changePass", vars,"login_result", "TEXT");
			}
			function logout() {
				login_object.request("GET", "/control.php/logout","","logout_result", "TEXT");
			}
			function login_result(data) {
				var result = data;

				if (result.indexOf('aangemeld')!= -1) {
					if (access_refresh) {
						window.location.reload(true);
					}
					else {
						pop_close();
						login_update();
					}
				}
				else {
					document.getElementById('popup').innerHTML=result;
					pop_open();
					loginSetFocus();
					sendPassSetFocus();
				}
			}
			function login_update_result(data) {
				var result = data;

				document.getElementById('inloggen').innerHTML=result;
			}
			function logout_result(data) {
				var result = data;

				window.location.reload(true);
			}

		//
		// Register
		//
		        register_object = new XMLexchange();
			function register() {
				register_object.request("GET", "/control.php/register","","register_result", "TEXT");
			}
			function registerSetFocus() {
				if (document.getElementById("register_form")) {
					field = document.getElementById("register_form").user;
					field.focus();
				}
			}
			function registerKey(key) {
				register_object.request("GET", "/control.php/register?key="+key,"","register_result", "TEXT");
			}
			function register_action() {
				f_name = document.getElementById("register_form").flag.name;
				f_value = document.getElementById("register_form").flag.value;
				k_name = document.getElementById("register_form").key.name;
				k_value = document.getElementById("register_form").key.value;
				u_name = document.getElementById("register_form").user.name;
				u_value = document.getElementById("register_form").user.value;
				p_name = document.getElementById("register_form").pass.name;
				p_value = document.getElementById("register_form").pass.value;
				//n_name = document.getElementById("register_form").name.name;
				//_value = document.getElementById("register_form").name.value;
				e_name = document.getElementById("register_form").mail.name;
				e_value = document.getElementById("register_form").mail.value;

				//a_name = 'avatar';
				//a_value = '';
				//for (i=0;i<document.getElementById("register_form").avatar.length;i++) {
				//	if (document.getElementById("register_form").avatar[i].checked) {
				//		a_value = document.getElementById("register_form").avatar[i].value;
				//	}
				//}

				// vars = getStateString() + '&' + f_name + '=' + f_value + '&' + u_name + '=' + u_value + '&' + p_name + '=' + p_value + '&' + n_name + '=' + n_value + '&' + e_name + '=' + e_value + '&' + a_name + '=' + a_value;
				vars = getStateString() + '&' + f_name + '=' + f_value + '&' + k_name + '=' + k_value + '&' + u_name + '=' + u_value + '&' + p_name + '=' + p_value + '&' + e_name + '=' + e_value;

				register_object.request("POST", "/control.php/register", vars,"register_result", "TEXT");
			}
			function register_result(data) {
				var result = data;

				document.getElementById('popup').innerHTML=result;
				pop_open();
				registerSetFocus();
			}

		//
		// Send a Friend
		//
		        sendFriend_object = new XMLexchange();
			function sendFriend(id) {
				if (id != 0) {
					vars = "question=" + id;
				}
				sendFriend_object.request("POST", "/control.php/sendFriend",vars,"sendFriend_result", "TEXT");
			}
			function sendFriendSetFocus() {
				if (document.getElementById("sendFriend_form")) {
					field = document.getElementById("sendFriend_form").sender_name;
					field.focus();
				}
			}
			function sendFriend_action() {
				f_name = document.getElementById("sendFriend_form").flag.name;
				f_value = document.getElementById("sendFriend_form").flag.value;
				sn_name = document.getElementById("sendFriend_form").sender_name.name;
				sn_value = document.getElementById("sendFriend_form").sender_name.value;
				sm_name = document.getElementById("sendFriend_form").sender_mail.name;
				sm_value = document.getElementById("sendFriend_form").sender_mail.value;
				rn_name = document.getElementById("sendFriend_form").receiver_name.name;
				rn_value = document.getElementById("sendFriend_form").receiver_name.value;
				rm_name = document.getElementById("sendFriend_form").receiver_mail.name;
				rm_value = document.getElementById("sendFriend_form").receiver_mail.value;
				s_name = document.getElementById("sendFriend_form").subject.name;
				s_value = document.getElementById("sendFriend_form").subject.value;
				b_name = document.getElementById("sendFriend_form").body.name;
				b_value = secureTransfer(document.getElementById("sendFriend_form").body.value);

				vars = getStateString() + '&' + f_name+'='+f_value+'&'+sn_name+'='+sn_value+'&'+sm_name+'='+sm_value+'&'+rn_name+'='+rn_value+'&'+rm_name+'='+rm_value+'&'+s_name+'='+s_value+'&'+b_name+'='+b_value;

				sendFriend_object.request("POST", "/control.php/sendFriend", vars,"sendFriend_result", "TEXT");
			}
			function sendFriend_result(data) {
				var result = data;

				document.getElementById('popup').innerHTML=result;
				pop_open();
				sendFriendSetFocus();
			}

		//
		// Report Abuse
		//
		        reportAbuse_object = new XMLexchange();
			function reportAbuse(type, id) {
				if (id != 0) {
					vars = "type=" + type + "&question=" + id;
				}
				reportAbuse_object.request("POST", "/control.php/reportAbuse",vars,"reportAbuse_result", "TEXT");
			}
			function reportAbuseSetFocus() {
				if (document.getElementById("reportAbuse_form")) {
					field = document.getElementById("reportAbuse_form").categorie;
					field.focus();
				}
			}
			function reportAbuse_action() {
				f_name = document.getElementById("reportAbuse_form").flag.name;
				f_value = document.getElementById("reportAbuse_form").flag.value;
				q_name = document.getElementById("reportAbuse_form").question.name;
				q_value = document.getElementById("reportAbuse_form").question.value;
				qu_name = document.getElementById("reportAbuse_form").questionUser.name;
				qu_value = document.getElementById("reportAbuse_form").questionUser.value;
				t_name = document.getElementById("reportAbuse_form").type.name;
				t_value = document.getElementById("reportAbuse_form").type.value;
				te_name = document.getElementById("reportAbuse_form").text.name;
				te_value = secureTransfer(document.getElementById("reportAbuse_form").text.value);

				c_name = 'categorie';
				index = document.getElementById('reportAbuse_form').categorie.selectedIndex;
				c_value = document.getElementById('reportAbuse_form').categorie.options[index].value

				vars = getStateString() + '&' + f_name+'='+f_value+'&'+q_name+'='+q_value+'&'+qu_name+'='+qu_value+'&'+t_name+'='+t_value+'&'+c_name+'='+c_value+'&'+te_name+'='+te_value;

				reportAbuse_object.request("POST", "/control.php/reportAbuse", vars,"reportAbuse_result", "TEXT");
			}
			function reportAbuse_result(data) {
				var result = data;

if (allowAccess(data, 1)) {
				document.getElementById('popup').innerHTML=result;
				pop_open();
				reportAbuseSetFocus();
}
			}

		//
		// User
		//
		        user_object = new XMLexchange();
                        function userList(tag, attribute, from) {
//if (tag == '') {tag = "none";}
//if (attribute == '') {attribute = "none";}
				vars = getStateString() + "&tag=" + tag + "&attribute=" + attribute + "&from=" + from;
                                user_object.request("POST", "/control.php/userList", vars,"user_result", "TEXT");
                        }
                        function user_related(question, attribute) {
				vars = getStateString() + "&question=" + question + "&attribute=" + attribute;
                                user_object.request("POST", "/control.php/userRelated", vars,"user_related_result", "TEXT");
                        }
                        function userListFilter(tag, attribute, from, filter) {
				vars = getStateString() + "&tag=" + tag + "&attribute=" + attribute + "&from=" + from + "&filter=" + filter;
                                user_object.request("POST", "/control.php/userList", vars,"user_result", "TEXT");
                        }
			function userSearch() {
				user_object.request("GET", "/control.php/userSearch","","user_search_result", "TEXT");
			}
			function userSearch_action() {
				t_name = document.getElementById("userSearch_form").tag.name;
				t_value = document.getElementById("userSearch_form").tag.value;

				a_name = 'attr';
				a_value = '';
				for (i=0;i<document.getElementById("userSearch_form").attr.length;i++) {
					if (document.getElementById("userSearch_form").attr[i].checked) {
						a_value = document.getElementById("userSearch_form").attr[i].value;
					}
				}

				userList(t_value, a_value, 0);
			}
			function user_related_result(data) {
				var result = data;
				document.getElementById('userRelated').innerHTML=result;
			}
			function user_result(data) {
				var result = data;
				document.getElementById('userList').innerHTML=result;
			}
			function user_search_result(data) {
				var result = data;

				document.getElementById('userSearch').innerHTML=result;
			}

		//
		// Group
		//
		        group_object = new XMLexchange();
                        function group_list(tag, from) {
				vars = getStateString() + "&tag=" + tag + "&from=" + from;
                                group_object.request("POST", "/control.php/groupList", vars,"group_result", "TEXT");
                        }
                        function group_related(question) {
				vars = getStateString() + "&question=" + question;
                                group_object.request("POST", "/control.php/groupRelated", vars,"group_related_result", "TEXT");
                        }
                        function group_list_filter(tag, from, filter) {
				vars = getStateString() + "&tag=" + tag + "&from=" + from + "&filter=" + filter;
                                group_object.request("POST", "/control.php/groupList", vars,"group_result", "TEXT");
                        }
			function group_info() {
				vars = getStateString();
				group_object.request("POST", "/control.php/groupInfo", vars,"group_info_result", "TEXT");
			}
			function groupMember() {
				vars = getStateString();
				group_object.request("POST", "/control.php/groupMember",vars,"group_admin_list_result", "TEXT");
			}
			function groupMemberDestroy(userId) {
				vars = getStateString() + '&userId=' + userId;
				group_object.request("POST", "/control.php/groupMemberDestroy",vars,"group_member_destroy_result", "TEXT");
			}
			function groupMemberList() {
				vars = getStateString();
				group_object.request("POST", "/control.php/groupMemberList",vars,"group_admin_list_result", "TEXT");
			}
			function groupQuestionList() {
				vars = getStateString();
				group_object.request("POST", "/control.php/groupQuestionList",vars,"group_admin_list_result", "TEXT");
			}
			function groupQuestionDeactiveList() {
				vars = getStateString();
				group_object.request("POST", "/control.php/groupQuestionDeactiveList",vars,"group_admin_list_result", "TEXT");
			}
			function groupQuestionDestroy(questionId) {
				vars = getStateString() + '&questionId=' + questionId;
				group_object.request("POST", "/control.php/questionDestroy",vars,"group_destroy_result", "TEXT");
			}
			function groupAnswerDestroy(answerId) {
				vars = getStateString() + '&answerId=' + answerId;
				group_object.request("POST", "/control.php/answerDestroy",vars,"group_destroy_result", "TEXT");
			}
			function groupMemberAllow(id) {
				vars = getStateString() + "&allow=1&requestId=" + id;
				group_object.request("POST", "/control.php/groupMemberAction",vars,"group_member_action_result", "TEXT");
			}
			function groupMemberDeny(id) {
				vars = getStateString() + "&allow=0&requestId=" + id;
				group_object.request("POST", "/control.php/groupMemberAction",vars,"group_member_action_result", "TEXT");
			}
			function groupSearch() {
				group_object.request("GET", "/control.php/groupSearch","","group_search_result", "TEXT");
			}
			function groupSearch_action() {
				t_name = document.getElementById("groupSearch_form").tag.name;
				t_value = document.getElementById("groupSearch_form").tag.value;

				group_list(t_value, 0);
			}
			function group_edit() {
				vars = getStateString();
				group_object.request("POST", "/control.php/groupEdit", vars,"group_admin_list_result", "TEXT");
			}
			function group_new() {
				group_object.request("GET", "/control.php/groupNew","","group_result", "TEXT");
			}
			function group_new2() {
				group_object.request("GET", "/control.php/groupNew","","group_result2", "TEXT");
			}
			function groupNewSetFocus() {
				if (document.getElementById("group_form")) {
					field = document.getElementById("group_form").name;
					field.focus();
				}
			}
			function group_new_action() {
				f_name = document.getElementById("group_form").flag.name;
				f_value = document.getElementById("group_form").flag.value;
				n_name = document.getElementById("group_form").name.name;
				n_value = document.getElementById("group_form").name.value;
				d_name = document.getElementById("group_form").description.name;
				d_value = secureTransfer(document.getElementById("group_form").description.value);
				t_name = document.getElementById("group_form").tag.name;
				t_value = secureTransfer(document.getElementById("group_form").tag.value);

				// tagstring verification
				t_value = translateTagString(t_value);

				//p_name = document.getElementById("group_form").type.name;
				p_name = 'type';
				p_value = '';
				for (i=0;i<document.getElementById("group_form").type.length;i++) {
					if (document.getElementById("group_form").type[i].checked) {
						p_value = document.getElementById("group_form").type[i].value;
					}
				}

				// validate
				stat = 1;
				if (stat == 1 && n_value == '') {
					alert ("De groepsnaam is niet ingevuld.\nWat is de naam van je groep?");
					stat = 0;
				}
				if (stat == 1 && (t_value == '' || t_value == 'type hier je trefwoord of klik ze hieronder aan')) {
					alert ("Er zijn geen trefwoorden ingevuld.\nWelke trefwoorden horen bij je groep?");
					stat = 0;
				}

				if (stat == 1 ) {
					vars = getStateString() + '&' + f_name+'='+f_value+'&'+n_name+'='+n_value+'&'+d_name+'='+d_value+'&'+t_name+'='+t_value+'&'+p_name+'='+p_value;
					group_object.request("POST", "/control.php/groupNew",vars,"group_result", "TEXT");
				}
			}
			function group_edit_action() {
				f_name = document.getElementById("group_edit_form").flag.name;
				f_value = document.getElementById("group_edit_form").flag.value;
				n_name = document.getElementById("group_edit_form").name.name;
				n_value = document.getElementById("group_edit_form").name.value;
				d_name = document.getElementById("group_edit_form").description.name;
				d_value = secureTransfer(document.getElementById("group_edit_form").description.value);
				t_name = document.getElementById("group_edit_form").tag.name;
				t_value = secureTransfer(document.getElementById("group_edit_form").tag.value);

				ty_name = 'type';
				ty_value = '';
				for (i=0;i<document.getElementById("group_edit_form").type.length;i++) {
					if (document.getElementById("group_edit_form").type[i].checked) {
						ty_value = document.getElementById("group_edit_form").type[i].value;
					}
				}

				vars = getStateString() + '&' + f_name+'='+f_value+'&'+n_name+'='+n_value+'&'+d_name+'='+d_value+'&'+t_name+'='+t_value+'&'+ty_name+'='+ty_value;

				group_object.request("POST", "/control.php/groupEdit",vars,"group_admin_list_result", "TEXT");
			}
			function group_result(data) {
				var result = data;

if (allowAccess(data, 1)) {
				document.getElementById('groupList').innerHTML=result;
				groupNewSetFocus();
}
			}
			function group_related_result(data) {
				var result = data;

				document.getElementById('groupRelated').innerHTML=result;
			}
			function group_result2(data) {
				var result = data;

				document.getElementById('memberInfo').innerHTML=result;
			}
			function group_search_result(data) {
				var result = data;

				document.getElementById('groupSearch').innerHTML=result;
			}
			function group_admin_list_result(data) {
				var result = data;

				document.getElementById('groupAdminList').innerHTML=result;
			}
			function group_member_destroy_result(data) {
				var result = data;
if (allowAccess(data, 0)) {
				groupMember();
}
			}
			function group_destroy_result(data) {
				var result = data;
if (allowAccess(data, 0)) {
				groupQuestionList();
}
			}
			function group_member_action_result(data) {
				var result = data;

				groupMemberList();
			}
			function group_info_result(data) {
				var result = data;

				document.getElementById('group_info').innerHTML=result;
			}

		//
		// Member
		//
		        member_object = new XMLexchange();
			member_clipboard = "";
			function member_change_avatar(id, url) {
				document.getElementById('currentAvatar').src = url;
				document.getElementById("member_edit_form").avatar.value = id;
			}
			function member() {
				vars = getStateString();
				member_object.request("POST", "/control.php/member", vars,"member_result", "TEXT");
			}
			function member_info(public) {
				vars = getStateString()+"&public="+public;
				member_object.request("POST", "/control.php/memberInfo", vars,"member_info_result", "TEXT");
			}
			function memberActivity(public) {
				vars = getStateString()+"&public="+public;
				member_clipboard = "";
				member_object.request("POST", "/control.php/memberActivity", vars,"member_activity_result", "TEXT");
			}
			function memberActivitySelect() {
				selectionIndex = document.getElementById('form_select_group').select_group.selectedIndex;
				selection = document.getElementById('form_select_group').select_group.options[selectionIndex].value
				vars = getStateString()+"&selection="+selection;
				member_clipboard = selection;
				member_object.request("POST", "/control.php/memberActivity", vars,"member_activity_result", "TEXT");
			}
			function member_edit() {
				vars = getStateString();
				group_object.request("POST", "/control.php/memberEdit", vars,"member_edit_result", "TEXT");
			}
			function member_new() {
				vars = getStateString();
				member_object.request("POST", "/control.php/memberNew",vars,"member_new_result", "TEXT");
			}
			function member_new_id() {
				vars = getStateString() + '&' + "flag=2";
				member_object.request("POST", "/control.php/memberNew",vars,"member_new_id_result", "TEXT");
			}
			function member_invite() {
				vars = getStateString();
				member_object.request("POST", "/control.php/memberInvite",vars,"member_invite_result", "TEXT");
			}
			function memberInviteSetFocus() {
				if (document.getElementById("member_form")) {
					field = document.getElementById("member_form").realname;
					field.focus();
				}
			}
			function member_destroy_id(memberId) {
				vars = getStateString() + '&memberId=' + memberId;
				member_object.request("POST", "/control.php/memberDestroy",vars,"member_result", "TEXT");
			}
			function memberGroup(public) {
				vars = getStateString()+"&public="+public;
				member_object.request("POST", "/control.php/memberGroup",vars,"member_group_result", "TEXT");
			}
			function memberMail(receiver) {
				vars = "receiver=" + receiver;
				member_object.request("POST", "/control.php/memberMail",vars,"memberMail_result", "TEXT");
			}
			function memberMailSetFocus() {
				if (document.getElementById("memberMail_form")) {
					field = document.getElementById("memberMail_form").subject;
					field.focus();
				}
			}
			function memberMail_action() {
				f_name = document.getElementById("memberMail_form").flag.name;
				f_value = document.getElementById("memberMail_form").flag.value;
				r_name = document.getElementById("memberMail_form").receiver.name;
				r_value = document.getElementById("memberMail_form").receiver.value;
				s_name = document.getElementById("memberMail_form").subject.name;
				s_value = document.getElementById("memberMail_form").subject.value;
				b_name = document.getElementById("memberMail_form").body.name;
				b_value = secureTransfer(document.getElementById("memberMail_form").body.value);

				vars = getStateString() + '&' + f_name+'='+f_value+'&'+r_name+'='+r_value+'&'+s_name+'='+s_value+'&'+b_name+'='+b_value;

				member_object.request("POST", "/control.php/memberMail", vars,"memberMail_result", "TEXT");
			}
			function member_new_action() {
				f_name = document.getElementById("member_form").flag.name;
				f_value = document.getElementById("member_form").flag.value;
				d_name = document.getElementById("member_form").description.name;
				d_value = secureTransfer(document.getElementById("member_form").description.value);

				vars = getStateString() + '&' + f_name+'='+f_value+'&'+d_name+'='+d_value;

				member_object.request("POST", "/control.php/memberNew",vars,"member_new_result", "TEXT");
			}
			function member_invite_action() {
				f_name = document.getElementById("member_form").flag.name;
				f_value = document.getElementById("member_form").flag.value;
				n_name = document.getElementById("member_form").name.name;
				n_value = document.getElementById("member_form").name.value;
				r_name = document.getElementById("member_form").realname.name;
				r_value = document.getElementById("member_form").realname.value;
				m_name = document.getElementById("member_form").mail.name;
				m_value = document.getElementById("member_form").mail.value;
				d_name = document.getElementById("member_form").description.name;
				d_value = secureTransfer(document.getElementById("member_form").description.value);

				vars = getStateString() + '&' + f_name+'='+f_value+'&'+n_name+'='+n_value+'&'+r_name+'='+r_value+'&'+m_name+'='+m_value+'&'+d_name+'='+d_value;

				member_object.request("POST", "/control.php/memberInvite",vars,"member_invite_result", "TEXT");
			}
			function member_edit_action() {
				f_name = document.getElementById("member_edit_form").flag.name;
				f_value = document.getElementById("member_edit_form").flag.value;
				n_name = document.getElementById("member_edit_form").name.name;
				n_value = document.getElementById("member_edit_form").name.value;
				//r_name = document.getElementById("member_edit_form").realname.name;
				//r_value = document.getElementById("member_edit_form").realname.value;
				r_name = "realname";
				r_value = "";
				e_name = document.getElementById("member_edit_form").email.name;
				e_value = document.getElementById("member_edit_form").email.value;
				a_name = document.getElementById("member_edit_form").avatar.name;
				a_value = document.getElementById("member_edit_form").avatar.value;
				c_name = document.getElementById("member_edit_form").city.name;
				c_value = document.getElementById("member_edit_form").city.value;
				y_name = document.getElementById("member_edit_form").year.name;
				y_value = document.getElementById("member_edit_form").year.value;
				d_name = document.getElementById("member_edit_form").description.name;
				d_value = secureTransfer(document.getElementById("member_edit_form").description.value);
				mu_name = document.getElementById("member_edit_form").mailUser.name;
				if (document.getElementById("member_edit_form").mailUser.checked == false) {
					mu_value = 0;
				}
				else {
					mu_value = 1;
				}
				mn_name = document.getElementById("member_edit_form").mailNews.name;
				if (document.getElementById("member_edit_form").mailNews.checked == false) {
					mn_value = 0;
				}
				else {
					mn_value = 1;
				}
				ma_name = document.getElementById("member_edit_form").mailAnswer.name;
				if (document.getElementById("member_edit_form").mailAnswer.checked == false) {
					ma_value = 0;
				}
				else {
					ma_value = 1;
				}
				mb_name = document.getElementById("member_edit_form").mailBest.name;
				if (document.getElementById("member_edit_form").mailBest.checked == false) {
					mb_value = 0;
				}
				else {
					mb_value = 1;
				}
				mm_name = document.getElementById("member_edit_form").mailMember.name;
				if (document.getElementById("member_edit_form").mailMember.checked == false) {
					mm_value = 0;
				}
				else {
					mm_value = 1;
				}

				vars = getStateString() + '&' + f_name+'='+f_value+'&'+n_name+'='+n_value+'&'+r_name+'='+r_value+'&'+e_name+'='+e_value+'&'+a_name+'='+a_value+'&'+c_name+'='+c_value+'&'+y_name+'='+y_value+'&'+d_name+'='+d_value+'&'+mu_name+'='+mu_value+'&'+mn_name+'='+mn_value+'&'+ma_name+'='+ma_value+'&'+mb_name+'='+mb_value+'&'+mm_name+'='+mm_value;

				member_object.request("POST", "/control.php/memberEdit",vars,"member_edit_result", "TEXT");
			}
			function member_result(data) {
				var result = data;

				document.getElementById('member').innerHTML=result;
			}
			function member_new_id_result(data) {
				var result = data;
if (allowAccess(data, 1)) {
				window.location.reload(true);
}
			}
			function member_new_result(data) {
				var result = data;
if (allowAccess(data, 1)) {
				if (result.indexOf('ingediend')!= -1) {
					window.location.reload(true);
				}
				else {
					document.getElementById('popup').innerHTML=result;
					pop_open();
				}
}
			}
			function member_invite_result(data) {
				var result = data;
				document.getElementById('userList').innerHTML=result;

				memberInviteSetFocus();
			}
			function member_info_result(data) {
				var result = data;

				document.getElementById('memberInfo').innerHTML=result;
			}
			function member_activity_result(data) {
				var result = data;

				document.getElementById('memberActivity').innerHTML=result;
				if (member_clipboard != "") {
					listQuestionFilter('',0, member_clipboard);
				}
			}
			function member_status_result(data) {
				var result = data;

				document.getElementById('memberStatus').innerHTML=result;
			}
			function member_group_result(data) {
				var result = data;

				document.getElementById('memberGroup').innerHTML=result;
			}
			function member_edit_result(data) {
				var result = data;

				document.getElementById('memberInfo').innerHTML=result;
				if (document.getElementById("memberActivity")) {
					document.getElementById('memberActivity').style.visibility="hidden";
				}
				if (document.getElementById("listQuestion")) {
					document.getElementById('listQuestion').style.visibility="hidden";
				}
				global_mijn_edit = 1;
			}
			function memberMail_result(data) {
				var result = data;

				document.getElementById('popup').innerHTML=result;
				pop_open();
				memberMailSetFocus();
			}

		//
		// TAG
		//
		        tagCloud_object = new XMLexchange();
			function tagSearch() {
				tagCloud_object.request("GET", "/control.php/tagSearch","","tagSearch_result", "TEXT");
			}
			function tagSearch_action() {
				t_name = document.getElementById("tagSearch_form").tag.name;
				t_value = document.getElementById("tagSearch_form").tag.value;

				listQuestion(t_value, 0);
				//vars = getStateString() + '&' + u_name + '=' + u_value + '&' + p_name + '=' + p_value;
				//tagCloud_object.request("POST", "/control.php/tagSearch", vars,"tagSearch_result", "TEXT");
			}
			function tagCloud() {
				document.getElementById('advertentie').innerHTML="";
				vars = getStateString();
				tagCloud_object.request("POST", "/control.php/tagCloud",vars,"tagCloud_result", "TEXT");
			}
			function tagCloudFilter(filter) {
				document.getElementById('advertentie').innerHTML="";
				vars = getStateString() + '&' + "filter=" + filter;
				tagCloud_object.request("POST", "/control.php/tagCloud",vars,"tagCloud_result", "TEXT");
			}
			function tagList() {
				vars = getStateString();
				tagCloud_object.request("POST", "/control.php/tagList",vars,"tagList_result", "TEXT");
			}
			function tagSearch_result(data) {
				var result = data;

				document.getElementById('tagSearch').innerHTML=result;
			}
			function tagCloud_result(data) {
				var result = data;

				document.getElementById('listQuestion').innerHTML=result;
			}
			function tagList_result(data) {
				var result = data;

				document.getElementById('tagList').innerHTML=result;
			}

		//
		// LISTS
		//
		       	listQuestion_object = new XMLexchange();
			function listQuestion(tag_value, from) {
				if(! (global_state_mode == "mijn" || global_state_mode == "group_mijn") ) {
					document.getElementById('advertentie').innerHTML="";
					if (tag_value != '') {
						advertentie(tag_value);
					}
				}

				vars = getStateString() + "&tag=" + tag_value + "&from=" + from;
				listQuestion_object.request("POST", "/control.php/listQuestion",vars ,"listQuestion_result", "TEXT");
			}
			function listQuestionFilter(tag_value, from, filter) {
				if(! (global_state_mode == "mijn" || global_state_mode == "group_mijn") ) {
					document.getElementById('advertentie').innerHTML="";
					if (tag_value != '') {
						advertentie(tag_value);
					}
				}

				vars = getStateString() + "&tag=" + tag_value + "&from=" + from + "&filter=" + filter;
				listQuestion_object.request("POST", "/control.php/listQuestion",vars ,"listQuestion_result", "TEXT");
			}
			function listQuestionTiny(tag_value) {
				vars = getStateString() + "&tag=" + tag_value;
				listQuestion_object.request("POST", "/control.php/listQuestionTiny",vars ,"listQuestionTiny_result", "TEXT");
			}
			function listQuestion_result(data) {
				var result = data;

				document.getElementById('listQuestion').innerHTML=result;
			}
			function listQuestionTiny_result(data) {
				var result = data;

				document.getElementById('listQuestionTiny').innerHTML=result;
			}

		       	listAnswer_object = new XMLexchange();
			listAnswer_layer = "";
			function listAnswer(question, view, offset) {
				if (global_state_mode == "vraag" || global_state_mode == "group_vraag") {
					listAnswer_layer = "listAnswer";
				}
				else {
					listAnswer_layer = "question_"+question;
				}
				vars = getStateString() + '&' + "question=" + question + "&view=" + view + "&offset=" + offset;
				listAnswer_object.request("POST", "/control.php/listAnswer", vars ,"listAnswer_result", "TEXT");
			}
			function answerSetFocus() {
				if (document.getElementById("answer_form")) {
					field = document.getElementById("answer_form").answer;
					field.focus();
				}
			}
			function listAnswer_result(data) {
				var result = data;

//alert ("top 13:" + document.getElementById('question_13').offsetTop + "\ntop 12:" + document.getElementById('question_12').offsetTop + "\nheight 13:" + document.getElementById('question_13').offsetHeight + "\nheight 12:" + document.getElementById('question_12').offsetHeight);
				document.getElementById(listAnswer_layer).innerHTML=result;
//alert ("top 13:" + document.getElementById('question_13').offsetTop + "\ntop 12:" + document.getElementById('question_12').offsetTop + "\nheight 13:" + document.getElementById('question_13').offsetHeight + "\nheight 12:" + document.getElementById('question_12').offsetHeight);
				answerSetFocus();
			}

			function listAnswerBig_result(data) {
				var result = data;

				document.getElementById('listAnswerBig').innerHTML=result;
			}

		//
		// REVIEW
		//

		       	review_object = new XMLexchange();
			review_layer = "";
			function review(answer, value) {
				if (value == 2) {
					review_layer="best";
				}
				if (value == 1) {
					review_layer="review_up_" + answer;
				}
				if (value == 0) {
					review_layer="review_down_" + answer;
				}
				vars = getStateString() + '&' + "answer=" + answer + "&value=" + value;
				review_object.request("POST", "/control.php/review",vars ,"review_result", "TEXT");
			}
			function review_result(data) {
				var result = data;
				var amount = parseInt(data);

if (allowAccess(data, 1)) {
				if (review_layer == "best") {
					window.location.reload(true);
				}
				else {
					if (amount > 0) {
						document.getElementById(review_layer).innerHTML=result;
					}
					else {
						//alert (result);
						//document.getElementById(review_layer).innerHTML=result;
					}
				}
}

			}

		//
		// Footer
		//
		        footer_object = new XMLexchange();
			function footer_over() {
				footer_object.request("GET", "/control.php/over","","text_result", "TEXT");
			}
			function footer_uitleg() {
				footer_object.request("GET", "/control.php/uitleg","","text_result", "TEXT");
			}
			function footer_huisregels() {
				footer_object.request("GET", "/control.php/huisregels","","text_result", "TEXT");
			}
			function footer_disclaimer() {
				footer_object.request("GET", "/control.php/disclaimer","","text_result", "TEXT");
			}
			function footer_contact() {
				footer_object.request("GET", "/control.php/contact","","text_result", "TEXT");
			}
			function footer_sponsor() {
				footer_object.request("GET", "/control.php/sponsor","","text_result", "TEXT");
			}
			function text_result(data) {
				var result = data;

				document.getElementById('popup').innerHTML=result;
				pop_open();
			}

		//
		// advertentie
		//
		        advertentie_object = new XMLexchange();
			function advertentie(tag) {
				vars = "tag=" + tag;
				advertentie_object.request("POST", "/control.php/advertentie", vars,"advertentie_result", "TEXT");
			}
			function advertentieSmall(tag) {
				vars = "tag=" + tag +"&size=small";
				advertentie_object.request("POST", "/control.php/advertentie", vars,"advertentie_result2", "TEXT");
			}
			function advertentie_result(data) {
				var result = data;

				document.getElementById('advertentie').innerHTML=result;
			}
			function advertentie_result2(data) {
				var result = data;

				document.getElementById('advertentie2').innerHTML=result;
			}

