/* Research Database Management System (RDMS)
 ' Copyright(C) 2008 Graham Philips
 ' RDMS is licensed under the GNU General Public License.
 ' Please See license.html or http://www.gnu.org/licenses/gpl.txt for the full license
 ' If there are problems, see http://sourceforge.net/projects/rdms/ for support.
 '
 ' RDMS comes with ABSOLUTELY NO WARRANTY
 '  
 ' This program is free software; you can redistribute it and/or modify it under
 ' the terms of the GNU General Public License as published by the Free Software
 ' Foundation; either version 2 of the License, or (at your option) any later
 ' version. */

/* Updates share levels for selected users on a selected search */

var shareLevel;
var newUser;
var newShare;

function updateUserAccessLevel(searchID,userID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating user share status...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	shareLevel = document.getElementById('userAccessLevel'+userID).value;
	url = "/includes/ajax/search/usershare.asp?searchID="+searchID+"&userID="+userID+"&shareLevel="+shareLevel+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'User share status updated!'+messageSuffix,'sharedUsers');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function removeUserShareAccess(searchID,userID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating user share status...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/removeusershare.asp?searchID="+searchID+"&userID="+userID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'User share status updated!'+messageSuffix,'sharedUsers');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function addUserShareAccess(searchID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating user share status...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	newUser = document.getElementById('newUserID').value;
	newShare = document.getElementById('newUserAccessLevel').value;
	url = "/includes/ajax/search/addusershare.asp?searchID="+searchID+"&userID="+newUser+"&shareLevel="+newShare+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'User share status updated!'+messageSuffix,'sharedUsers');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/* Allows the user to share an owned search to a project */

function shareWithProject(searchID,userID)
{
	document.getElementById('messageDisplayBox').innerHTML = "<p class=\"himessage\">[Loading Projects...]</p>";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/showownedprojects.asp?searchID="+searchID+"&userID="+userID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Action Completed'+messageSuffix,'projectShareBox');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function shareSearchToProject(searchID,projectID,userID)
{
	document.getElementById('messageDisplayBox').innerHTML = "<p class=\"himessage\">[Adding search to project...]</p>";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/addprojectsearch.asp?searchID="+searchID+"&projectID="+projectID+"&userID="+userID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Action Completed'+messageSuffix,'projectShareBox');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/* Allows the search owner to delete a search */

function deleteSearch(searchID)
{
	document.getElementById('messageDisplayBox').innerHTML = "<p class=\"himessage\">[Deleting search...]</p>";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/deletesearch.asp?searchID="+searchID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Search deleted successfully'+messageSuffix,'userSearches');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function deleteSearchPrompt(searchID)
{
	document.getElementById('messageDisplayBox').innerHTML = "<p class=\"himessage\">"+
		"You have chosen to delete a search from your saved searches. This will "+
		"remove all access that any other users have to it, including those "+
		"with access where it is saved on an existing project. Please <a "+
		"class=\"main\" href=\"#\" onclick=\"deleteSearch("+searchID+
		");return false;\">Confirm</a> or <a class=\"main\" href=\"#\" "+
		"onclick=\"clearMessageDisplayBox();return false;\">Cancel</a> this action.</p>";
}

/* Allows a user with shared search rights to clone an existing search */

function cloneSearch(searchID)
{
	document.getElementById('messageDisplayBox').innerHTML = "<p class=\"himessage\">[Cloning search...]</p>";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/clonesearch.asp?searchID="+searchID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Search cloned successfully'+messageSuffix,'messageDisplayBox');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function cloneSearchPrompt(searchID)
{
	document.getElementById('messageDisplayBox').innerHTML = "<p class=\"himessage\">"+
		"You have chosen to clone this search. This will replicate all the "+
		"filter settings but not the user or project access shares. Please <a "+
		"class=\"main\" href=\"#\" onclick=\"cloneSearch("+searchID+
		");return false;\">Confirm</a> or <a class=\"main\" href=\"#\" "+
		"onclick=\"clearMessageDisplayBox();return false;\">Cancel</a> this action.</p>";
}

/* The following functions toggle class, type, project and keymatch filters for a search */

function toggleSearchFilter(searchID)
{
	var searchClassString = "(0";
	var searchTypeString = "(0";
	var searchRevString = "(0";
	
	inputForm = document.getElementById('searchFilterListing');
	for(var i = 0;inputForm.elements[i];i++)
	{
		if (inputForm.elements[i].type == 'checkbox')
		{
			if (inputForm.elements[i].checked === true)
			{
				if (inputForm.elements[i].value.substring(0,5) == 'class')
				{
					searchClassString = searchClassString + "," + inputForm.elements[i].value.substring(5);					
				}
				if (inputForm.elements[i].value.substring(0,4) == 'type')
				{
					searchTypeString = searchTypeString + "," + inputForm.elements[i].value.substring(4);					
				}
				if (inputForm.elements[i].value.substring(0,7) == 'revproc')
				{
					searchRevString = searchRevString + "," + inputForm.elements[i].value.substring(7);					
				}
			}
		}
	}
	
	searchClassString = searchClassString + ")";
	searchTypeString = searchTypeString + ")";
	searchRevString = searchRevString + ")";
	document.getElementById('searchFilterMessages').innerHTML = "[Updating search...]";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/togglesearchfilter.asp?searchID="+searchID+
		"&searchClassString="+searchClassString+"&searchTypeString="+searchTypeString+
		"&searchRevString="+searchRevString+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('searchFilterMessages',''+
		'','searchFilterMessages');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function toggleSearchProject(searchID)
{
	var searchProjectString = "(0";
	
	inputForm = document.getElementById('searchProjectListing');
	for(var i = 0;inputForm.elements[i];i++)
	{
		if (inputForm.elements[i].type == 'checkbox')
		{
			if (inputForm.elements[i].checked === true)
			{
				searchProjectString = searchProjectString + "," + inputForm.elements[i].value;
			}
		}
	}
	
	searchProjectString = searchProjectString + ")";
	document.getElementById('searchProjectMessages').innerHTML = "[Updating search...]";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/togglesearchproject.asp?searchID="+searchID+
		"&searchProjectString="+searchProjectString+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('searchProjectMessages',''+
		'','searchProjectMessages');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function toggleMatchKeyword(searchID)
{
	document.getElementById('searchMatchKeywords').innerHTML = "[Updating search...]";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/togglematchkeyword.asp?searchID="+searchID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('searchMatchKeywords',''+
		'','searchMatchKeywords');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/* Search Keyword functions */

function loadSearchWords(searchID,letterString)
{
	document.getElementById('searchWordFilter').innerHTML = "<p class=\"himessage\">[Loading keywords...]</p>";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/loadsearchwords.asp?searchID="+searchID+
		"&letterString="+letterString+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('searchWordFilter',messagePrefix+
		''+messageSuffix,'searchWordFilter');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function addToSearch(searchID,keywordID,letterString)
{
	document.getElementById('messageDisplayBox').innerHTML = "<p class=\"himessage\">[Adding keyword...]</p>";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/addsearchword.asp?searchID="+searchID+
		"&keywordID="+keywordID+"&letterString="+letterString+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Keyword successfully added to the search'+messageSuffix,'searchWordFilter');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function addToSearchPrompt(searchID,keywordID,letterString)
{
	document.getElementById('messageDisplayBox').innerHTML = "<p class=\"himessage\">"+
		"You have chosen to add this keyword to the search. Please <a href=\"#\" "+
		"onclick=\"addToSearch("+searchID+","+keywordID+",'"+letterString+"');return false;\">"+
		"Confirm</a> or <a href=\"#\" onclick=\"clearMessageDisplayBox();return "+
		"false;\">Cancel</a> this action.</p>";
}

function editSearchKeyword(searchID,keywordID,searchScore)
{
	document.getElementById('messageBox'+keywordID).innerHTML = "[Updating search keyword...]";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/editsearchkeyword.asp?searchID="+searchID+
		"&keywordID="+keywordID+"&searchScore="+searchScore+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('statusBox'+keywordID,''+
		'','statusBox'+keywordID);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function removeSearchKeyword(searchID,keywordID)
{
	document.getElementById('messageBox'+keywordID).innerHTML = "[Removing search keyword...]";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/search/removesearchkeyword.asp?searchID="+searchID+
		"&keywordID="+keywordID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('statusBox'+keywordID,''+
		'','statusBox'+keywordID);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function clearRemoveSearchKeywordPrompt(keywordID)
{
	document.getElementById('messageBox'+keywordID).innerHTML = "";
}

function removeSearchKeywordPrompt(searchID,keywordID)
{
	document.getElementById('messageBox'+keywordID).innerHTML = "Please <a "+
		"href=\"#\" onclick=\"removeSearchKeyword("+searchID+","+keywordID+
		");return false;\">Confirm</a> or <a href=\"#\" onclick=\""+
		"clearRemoveSearchKeywordPrompt("+keywordID+");return false;\""+
		">Cancel</a> removing this search keyword.";
}
// -->