var permissionsPage='<div id="settingsContent"></div><div id="tabs"><div class="tab" id="groups"><div class="tableft_inactive"></div><div class="tab_inactive"><a href="#" onclick="editGroups()">'+set_Groups+'</a></div><div class="tabright_inactive"></div></div><div class="tab" id="users"><div class="tableft_inactive"></div><div class="tab_inactive"><a href="#" onclick="editUsers()">'+set_Users+'</a></div><div class="tabright_inactive"></div></div><div id="emptytab"></div><div id="buttontab"><input type="button" class="wikiButton" value="'+str_Cancel+'" onclick="cancelForm()"/></div></div>';


var settingsWidth='100%';
var emptyWidth='100%';
var currentPermPage='';
var defaultPermTab='Groups';
var backToTree='';
var transferCheck=new Array;
var selectedInTable=new Array;
var emails=new Array;
var homepages=new Array;
var tags=new Array;

function setActivePerm(tabName) {
	currentPermPage=tabName;
	tabName=tabName.toLowerCase();
	document.getElementById('content').innerHTML=permissionsPage;
	document.getElementById('settingsContent').style.width=settingsWidth;
	if (!ie) {
		settingsWidth=document.getElementById('tabs').offsetWidth-1+"px";
	}
	document.getElementById('settingsContent').style.width=settingsWidth;
	resizeEmptyTab();
	var obj=document.getElementById(tabName);
	if (obj) {
		var cont=obj.innerHTML;
		obj.innerHTML=cont.replace(/inactive/g,'active');
	}
}

function showPermissions(treeId) {
	ismenucalled=false;
	if (currentPermPage=="") currentPermPage=defaultPermTab;
	if (typeof(treeId)!="undefined") backToTree=treeId;
	if (superadmin) {
		var inner=permissionsPage;
		document.getElementById('content').innerHTML=inner;
		notworking();
		closePermPage();	
	} else {
		var inner=str_must_login_perms;
		document.getElementById('content').innerHTML=inner;
		setTimeout('cancelForm()',3000);
	}
}

function editGroups() {
	setActive('Groups');
		clearTags();
		var hp = new HTTPPost();
		if (ajaxFolder == false) var pre = "";
		else var pre = "ajax/";
		hp.postData(pre + 'editGroups.php', '', groupsPage, true);
}

function editUsers() {
	setActive('Users');
		clearEmails();
		var hp = new HTTPPost();
		if (ajaxFolder == false) var pre = "";
		else var pre = "ajax/";
		hp.postData(pre + 'editUsers.php', '', usersPage, true);
}

function groupsPage(req) {
	if (req.readyState == 4)	{
		if (req.status == 200)	{
			document.getElementById('settingsContent').innerHTML=center(req.responseText);
			document.getElementById('submit_button').style.visibility="hidden";
			eval(document.getElementById('js').innerHTML);
		}
	}
}

function usersPage(req) {
	if (req.readyState == 4)	{
		if (req.status == 200)	{
			document.getElementById('settingsContent').innerHTML=center(req.responseText);
			document.getElementById('submit_button').style.visibility="hidden";
			eval(document.getElementById('js').innerHTML);
		}
	}
}

function waitPermForSubmit() {
try {
	var submitted=document.getElementById('submitTarget').contentWindow.document.getElementById('submitted').innerHTML;
	if (submitted=="") {
		working();
		setTimeout("waitPermForSubmit()",1000);
	} else {
		notworking();
		submitted=document.getElementById('submitTarget').contentWindow.document.getElementById('submittedJS').innerHTML;
		eval(submitted.replace(/&lt;/g,'<').replace(/&gt;/g,'>'));
		//closePermPage();
		//showPermissions(backToTree);
	}
} catch(e) {
	working();
	setTimeout("waitPermForSubmit()",1000);
}
}

function closePermPage() {
	if (ajaxFolder == false) var pre = "";
	else var pre = "ajax/";
	var obj=document.getElementById('submitTarget');
	if (obj) obj.src=pre+'empty.html';
	setTimeout('edit'+currentPermPage+'()',1);
}

function submitPermForm() {
	document.getElementById('ajaxForm').submit();
	waitPermForSubmit();
}

function selectToEdit(obj) {
	document.getElementById('selectedText').value=obj.text;
	document.getElementById('selectedID').value=obj.value;
	if (document.getElementById('userEmail2')) {
		if (typeof(emails[obj.value])=="undefined") emails[obj.value]="";
		document.getElementById('userEmail2').value=emails[obj.value];
		var homepagetmp="";
		if (homepages[obj.value]!="") homepagetmp=tree.getItemText(homepages[obj.value]);
		document.getElementById('userHomeSpan').innerHTML=homepagetmp;
	}
	if (document.getElementById('tags')) {
		if (typeof(tags[obj.value])=="undefined") tags[obj.value]="";
		document.getElementById('tags').value=tags[obj.value];
	}
	document.getElementById('toEdit').style.visibility="visible";
}

function addGroup() {
	if (document.getElementById('addNew').value!="") {
		document.getElementById('todo').value="addgroup";
		submitPermForm();
	}
}

function renameGroup() {
	if (document.getElementById('selectedText').value!="") {
		document.getElementById('todo').value="renamegroup";
		submitPermForm();
	}
}

function deleteGroup() {
	if (document.getElementById('selectedID').value!="") {
		if (confirm(str_groupDelete)) {
			document.getElementById('todo').value="deletegroup";
			submitPermForm();
		}
	}
}

function addUser() {
	if ((document.getElementById('addNew').value!="") && (document.getElementById('userPassword').value!="")) {
		if (document.getElementById('userPassword').value!=document.getElementById('retypePassword').value) {
			alert(str_passwords_dont_match);
		} else {
			document.getElementById('todo').value="adduser";
			submitPermForm();
		}
	}
}

function renameUser() {
	if (document.getElementById('selectedText').value!="") {
		document.getElementById('todo').value="renameuser";
		submitPermForm();
	}
}

function deleteUser() {
	if (document.getElementById('selectedID').value!="") {
		if (confirm(str_userDelete)) {
			document.getElementById('todo').value="deleteuser";
			submitPermForm();
		}
	}
}

function manageUserGroups() {
		var hp = new HTTPPost();
		if (ajaxFolder == false) var pre = "";
		else var pre = "ajax/";
		hp.postData(pre + 'manageGroups.php', 'userid='+document.getElementById('selectedID').value, manageGroupsPage, true);
}

function manageGroupsPage(req) {
	if (req.readyState == 4)	{
		if (req.status == 200)	{
			document.getElementById('settingsContent').innerHTML=center(req.responseText);
		}
	}
}

function _existsinselect(elm,obj) {
	var ret=false;
	for (var i=0; i<obj.length; i++) {
		if (elm.value==obj.options[i].value) {
			ret=true;
			break;	
		}
	}
	return ret;
}

function addToUser() {
	moveselected('selectGroups','selectUserGroups')
}

function removeFromUser() {
	moveselected('selectUserGroups','selectGroups')
}

function moveselected(groupfromid,grouptoid) {
	var allgroups=document.getElementById(grouptoid);
	var usergroups=document.getElementById(groupfromid);
	var toadd=new Array;
	var toleave=new Array;
	for (var i=0; i<usergroups.length; i++) {
		var exists=_existsinselect(usergroups.options[i],allgroups);
		if (usergroups.options[i].selected) {
			if (!exists) toadd[toadd.length]=usergroups.options[i];
		} else {
			toleave[toleave.length]=usergroups.options[i];
		}
	}
	usergroups.options.length=0;
	for (var i=0; i<toleave.length; i++) {
		usergroups.options[i]=new Option(toleave[i].text,toleave[i].value,false,false);
	}
	for (var i=0; i<toadd.length; i++) {
		allgroups.options[allgroups.options.length]=new Option(toadd[i].text,toadd[i].value,false,false);
	}
}

function saveUserGroups() {
	var usergroups=document.getElementById('selectUserGroups');
	var tmp="0";
	for (var i=0; i<usergroups.length; i++) {
			if (tmp!="") tmp+=":";
			tmp+=usergroups.options[i].value;
	}
	document.getElementById('usergroupids').value=tmp;
	document.getElementById('todo').value="saveusergroups";
	submitPermForm();
}

// page privileges part

function showPrivileges(itemId) {
	for (var i=0; i<definedPerms.length; i++) {
		transferCheck[i]=false;	
	}
	clearSelectedInTable();
	ismenucalled=false;
	if (typeof(itemId)!="undefined") {
		if (itemId!="") {
			getPage(itemId);
			var hp = new HTTPPost();
			if (ajaxFolder == false) var pre = "";
			else var pre = "ajax/";
			hp.postData(pre + 'editPrivileges.php', 'pageID='+itemId+"&pagename="+tree.getItemText(itemId), editPrivileges, true);
		}
	}
}

function editPrivileges(req) {
	if (req.readyState == 4)	{
		if (req.status == 200)	{
			document.getElementById('actionsBoxHead').innerHTML=str_edit_privileges;
			document.getElementById('actionsBoxInner').innerHTML=centerPriv(req.responseText);
			document.getElementById('actionsBox').style.display="block";
		}
	}
}

function addToPage() {
	var allgroups=document.getElementById('pageSelectGroups');
	var tableContent=_gettable();
	var toadd=new Array;
	var toleave=new Array;
	for (var i=0; i<allgroups.length; i++) {
		var exists=_existsintable(allgroups.options[i]);
		if ((allgroups.options[i].selected) && ((tmpID!="wiki") || (allgroups.options[i].value!="0"))) {
			if (!exists) toadd[toadd.length]=allgroups.options[i];
		} else {
			toleave[toleave.length]=allgroups.options[i];
		}
	}
	allgroups.options.length=0;
	for (var i=0; i<toleave.length; i++) {
		allgroups.options[i]=new Option(toleave[i].text,toleave[i].value,false,false);
		if ((allgroups.options[i].value==0) && (tmpID=="wiki")) allgroups.options[i].disabled=true;
	}
	for (var i=0; i<toadd.length; i++) {
		var tL=tableContent.length;
		tableContent[tL]=new Array;
		tableContent[tL]['value']=toadd[i].value;
		tableContent[tL]['text']=toadd[i].text;
		tableContent[tL]['perms']=new Array;
		for (var i2=0; i2<definedPerms.length; i2++) {
			tableContent[tL]['perms'][i2]=transferCheck[i2];
		}
	}
	_arrayToTable(tableContent);
}

function rowselected(id) {
	var obj=document.getElementById(id);
	if (!selectedInTable[id]) {
		obj.style.backgroundColor="Highlight";
		obj.style.color="HighlightText";
		selectedInTable[id]=true;
	} else {
		obj.style.backgroundColor="white";
		obj.style.color="black";
		selectedInTable[id]=false;
	}
	var someselected=false;
	for (var i in selectedInTable) {
		if (selectedInTable[i]) {
			someselected=true;
			break;
		}
	}
	if (someselected) {
		document.getElementById('chckAll').innerHTML=str_check_selected;
	} else {
		document.getElementById('chckAll').innerHTML=str_check_all;
	}
}

function clearSelectedInTable() {
	for (var i in selectedInTable) {
		selectedInTable[i]=false;
	}
}

function _arrayToTable(tableContent) {
	clearSelectedInTable();
	var table=document.getElementById('selectPageGroups');
	var inner='<table width="100%" cellpadding="1" cellspacing="0" border="0">';
	for (var i=0; i<tableContent.length; i++) {
		inner+='<tr id="row_'+i+'" style="cursor: default;"><td width="250" style="border-bottom: solid gray 1px;"';
		if (!((tmpID=="wiki") && (tableContent[i]['value']==0))) inner+=' onclick="rowselected(\'row_'+i+'\')"';
		inner+='>';
		inner+='<input type="hidden" name="val_'+i+'" id="val_'+i+'" value="'+tableContent[i]['value']+'">';
		inner+='<input type="hidden" name="text_'+i+'" id="text_'+i+'" value="'+tableContent[i]['text']+'">';
		if (!((tmpID=="wiki") && (tableContent[i]['value']==0))) {
			inner+=tableContent[i]['text'];
		} else {
			inner+='<span style="color: InactiveCaptionText;">'+tableContent[i]['text']+'</span>';
		}
		inner+='</td>';
		for (var i2=0; i2<definedPerms.length; i2++) {
			inner+='<td align="center" style="border-bottom: solid gray 1px;"><input type="checkbox" id="perms_'+i+'_'+i2+'" name="perms_'+i+'_'+i2+'" ';
			if (tableContent[i]['perms'][i2]) inner+='checked="checked" ';
			inner+='title="'+definedPermNames[i2]+'">';
			inner+='</td>';			
		}
		inner+='</tr>';
	}
	inner+='</table>';
	document.getElementById('count').value=tableContent.length;
	table.innerHTML=inner;
}

function _gettable() {
	var count=parseInt(document.getElementById('count').value);
	var tableContent=new Array;
	for (var i=0; i<count; i++) {
		tableContent[i]=new Array;
		tableContent[i]['value']=document.getElementById('val_'+i).value;
		tableContent[i]['text']=document.getElementById('text_'+i).value;
		tableContent[i]['perms']=new Array;
		for (var i2=0; i2<definedPerms.length; i2++) {
			tableContent[i]['perms'][i2]=document.getElementById('perms_'+i+"_"+i2).checked;
		}
	}
	return tableContent;
}

function _existsintable(obj) {
	var ret=false;
	var count=parseInt(document.getElementById('count').value);
	for (var i=0; i<count; i++) {
		if (document.getElementById('val_'+i).value==obj.value) {
			ret=true;
			break;
		}
	}
	return ret;
}

function _existsinprivselect(val) {
	var ret=false;
	var allgroups=document.getElementById('pageSelectGroups');
	for (var i=0; i<allgroups.length; i++) {
		if (allgroups.options[i].value==val) {
			ret=true;
			break;
		}
	}
	return ret;
}

function removeFromPage() {
	var allgroups=document.getElementById('pageSelectGroups');
	var tableContent=_gettable();
	var toadd=new Array;
	var toleave=new Array;
	for (var i=0; i<tableContent.length; i++) {
		var exists=_existsinprivselect(tableContent[i]['value']);
		if (selectedInTable['row_'+i]) {
			if (!exists) toadd[toadd.length]=tableContent[i];
		} else {
			toleave[toleave.length]=tableContent[i];
		}
	}
	for (var i=0; i<toadd.length; i++) {
		allgroups.options[allgroups.options.length]=new Option(toadd[i]['text'],toadd[i]['value'],false,false);
	}
	tableContent.length=0;
	for (var i=0; i<toleave.length; i++) {
		var tL=tableContent.length;
		tableContent[tL]=new Array;
		tableContent[tL]['value']=toleave[i]['value'];
		tableContent[tL]['text']=toleave[i]['text'];
		tableContent[tL]['perms']=toleave[i]['perms'];
	}
	_arrayToTable(tableContent);
}

function checkAll(num,chck) {
	var someselected=false;
	for (var i in selectedInTable) {
		if (selectedInTable[i]) {
			someselected=true;
			break;
		}
	}
	var count=parseInt(document.getElementById('count').value);
	for (var i=0; i<count; i++) {
		if (!someselected) {
			document.getElementById('perms_'+i+'_'+num).checked=chck;
		} else {
			if (selectedInTable['row_'+i]) document.getElementById('perms_'+i+'_'+num).checked=chck;
		}
	}
}

function transferCheckAll(num,chck) {
	transferCheck[num]=chck;
}

function savePageGroups() {
	var count=parseInt(document.getElementById('count').value);
	var groupids="";
	for (var i=0; i<count; i++) {
		if (groupids!="") groupids+=":";
		groupids+=document.getElementById('val_'+i).value;
		var tmp=0;
		for (var i2=0; i2<definedPerms.length; i2++) {
			if (document.getElementById('perms_'+i+'_'+i2).checked) tmp=tmp | parseInt(definedPerms[i2]);
		}
		groupids+="|"+tmp.toString();
	}
	document.getElementById('pagegroupids').value=groupids;
	document.getElementById('todo').value="savepagegroups";
	submitPermForm();
}

var checkAllTransferPermsStatus=false;

function checkAllTransferPerms() {
	checkAllTransferPermsStatus=!checkAllTransferPermsStatus;
	for (var i2=0; i2<definedPerms.length; i2++) {
		document.getElementById('transferchk_'+i2).checked=checkAllTransferPermsStatus;
		transferCheck[i2]=checkAllTransferPermsStatus;
	}
}

function manageUsersInGroup() {
		var hp = new HTTPPost();
		if (ajaxFolder == false) var pre = "";
		else var pre = "ajax/";
		hp.postData(pre + 'manageUsers.php', 'groupid='+document.getElementById('selectedID').value, manageGroupsPage, true);
}

function saveUsersInGroup() {
	var usergroups=document.getElementById('selectUserGroups');
	var tmp="";
	for (var i=0; i<usergroups.length; i++) {
			if (tmp!="") tmp+=":";
			tmp+=usergroups.options[i].value;
	}
	document.getElementById('usergroupids').value=tmp;
	document.getElementById('todo').value="saveusersingroup";
	submitPermForm();
}

function clearEmails() {
	for (var i in emails) {
		delete emails[i];
	}
}

function clearTags() {
	for (var i in tags) {
		delete tags[i];
	}
}

function centerPriv(text) {
	var ret='<div align="left"><table cellpadding="0" cellspacing="0" border="0"><tr><td>';
	ret+=text;
	ret+='</td></tr></table></div>';
	return ret;
}

function manageHomePage() {
	 window.open (rootURL+"/FCKeditor/editor/filemanager/browser/tree/menulist.php","Tree","location=0,status=0,scrollbars=0,width=500,height=500");
}

function SetUrl( url , dummy) {
	url=url.replace("index.php?telepark.wiki=","");
	document.getElementById('userHomePage').value=url;
	document.getElementById('todo').value="homepage";
	submitPermForm();
}