/* 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. */

/* Adjusts the pin status of a project paper within project or subproject for the active user */

var projPapPin;

function displayProjectPin() 
{
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
	{
	    var el = document.getElementsByName('pPaper'+projPapPin);
	    for (i = 0;i < el.length;i++)
	    {
	        el[i].innerHTML = xmlHttp.responseText;
	    }
	}
}

function setProjectPin(projectPaperID)
{
	projPapPin = projectPaperID;
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/project/setpin.asp?projPaperID="+projectPaperID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = displayProjectPin;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/* Selects project papers, separated out by subproject if necessary and displays in the required div */

var subProjDiv;

function getProjectSubPaperList(subProjectID,openState,projectID,projAccess)
{
	messagePrefix = "";
	messageSuffix = "";
	subProjDiv = subProjectID;
	document.getElementById('projSub'+subProjDiv+'Status').innerHTML = "- [Loading Results...]";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/project/displaysubpapers.asp?subProjectID="+subProjectID+
		"&openState="+openState+"&projectID="+projectID+"&projAccess="+projAccess+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('projSub'+subProjDiv+'Status',messagePrefix+
		''+messageSuffix,'projSub'+subProjDiv);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/* Approves the attachment of a provisionally submitted search to a project */

function approveProjectSearch(projectID,searchID)
{
	messagePrefix = "";
	messageSuffix = "";
	document.getElementById('projSearchStatus').innerHTML = "- [Please Wait...]";
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/project/approveprojectsearch.asp?projectID="+projectID+"&searchID="+searchID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('projSearchStatus',messagePrefix+
		'Search successfully approved'+messageSuffix,'projSearches');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/* Updates share levels for selected users on a selected project */

var projectShareLevel;
var newProjectUser;
var newProjectShare;

function updateUserProjectAccessLevel(projectID,userID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating user share status...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	shareLevel = document.getElementById('userAccessLevel'+userID).value;
	url = "/includes/ajax/project/usershare.asp?projectID="+projectID+
		"&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 removeUserProjectShareAccess(projectID,userID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating user share status...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/project/removeusershare.asp?projectID="+projectID+"&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 addUserProjectShareAccess(projectID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating user share status...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	newProjectUser = document.getElementById('newUserID').value;
	newProjectShare = document.getElementById('newUserAccessLevel').value;
	url = "/includes/ajax/project/addusershare.asp?projectID="+projectID+
		"&userID="+newProjectUser+"&shareLevel="+newProjectShare+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'User share status updated!'+messageSuffix,'sharedUsers');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/* Subproject functions */

var subprojectDesc;

function updateSubproject(subprojectID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating subproject list...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	subprojectDesc = escape(document.getElementById('subprojDesc'+subprojectID).value);
	url = "/includes/ajax/project/updatesubproject.asp?subprojectID="+subprojectID+
		"&subprojectDesc="+subprojectDesc+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Subproject updated!'+messageSuffix,'projectSubprojects');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function removeSubproject(subprojectID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating subproject list...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/project/removesubproject.asp?subprojectID="+subprojectID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Subproject removed!'+messageSuffix,'projectSubprojects');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function removeSubprojectPrompt(subprojectID)
{
	document.getElementById('messageDisplayBox').innerHTML = "<p class=\"himessage\">"+
		"You have chosen to remove this subproject from the main project. Any "+
		"papers that have been attached to this subproject will be detached, "+
		"but will remain part of the main project itself. Please <a "+
		"href=\"#\" onclick=\"removeSubproject("+subprojectID+");return false;\""+
		">Confirm</a> or <a href=\"#\" onclick=\"clearMessageDisplayBox();"+
		"return false;\">Cancel</a> this action.</p>";
}

function addSubproject(projectID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating subproject list...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	subprojectDesc = escape(document.getElementById('addProjectSubproject').value);
	url = "/includes/ajax/project/addsubproject.asp?projectID="+projectID+
		"&subprojectDesc="+subprojectDesc+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Subproject added!'+messageSuffix,'projectSubprojects');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/* Project Keyword functions */

var projectKeywordDesc;

function updateProjectKeyword(keywordID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating project keyword list...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	projectKeywordDesc = escape(document.getElementById('projectKeywordDesc'+keywordID).value);
	url = "/includes/ajax/project/updateprojectkeyword.asp?keywordID="+keywordID+
		"&projectKeywordDesc="+projectKeywordDesc+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Project keyword updated!'+messageSuffix,'projectKeywords');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function removeProjectKeyword(keywordID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating project keyword list...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/project/removeprojectkeyword.asp?keywordID="+keywordID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Project keyword removed!'+messageSuffix,'projectKeywords');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function removeProjectKeywordPrompt(keywordID)
{
	document.getElementById('messageDisplayBox').innerHTML = "<p class=\"himessage\">"+
		"You have chosen to remove this project keyword from the main project. Any "+
		"papers that have been attached to this keyword will be detached, "+
		"but will remain part of the main project itself. Please <a "+
		"href=\"#\" onclick=\"removeProjectKeyword("+keywordID+");return false;\""+
		">Confirm</a> or <a href=\"#\" onclick=\"clearMessageDisplayBox();"+
		"return false;\">Cancel</a> this action.</p>";
}

function addProjectKeyword(projectID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating project keyword list...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	projectKeywordDesc = escape(document.getElementById('addProjectKeyword').value);
	url = "/includes/ajax/project/addprojectkeyword.asp?projectID="+projectID+
		"&projectKeywordDesc="+projectKeywordDesc+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Project keyword added!'+messageSuffix,'projectKeywords');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/* Discussion and Revision entry functions */

var projectCommentEntry;

function addProjectDiscussion(projectID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Adding project discussion...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	projectCommentEntry = escape(document.getElementById('projectDiscussionEntry').value);
	if (projectCommentEntry.length === 0)
	{
		document.getElementById('messageDisplayBox').innerHTML = messagePrefix+
			"Please enter a valid discussion track entry"+messageSuffix;
	}
	else
	{
		url = "/includes/ajax/project/addprojectdiscussion.asp?projectID="+projectID+
			"&projectCommentEntry="+projectCommentEntry+"&sid="+Math.random();
		xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
			'Discussion entry added!'+messageSuffix,'projectDiscussions');};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
		document.getElementById('projectDiscussionEntry').value = "";
	}
}

function addProjectRevision(projectID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Adding project revision...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	projectCommentEntry = escape(document.getElementById('projectRevisionEntry').value);
	if (projectCommentEntry.length === 0)
	{
		document.getElementById('messageDisplayBox').innerHTML = messagePrefix+
			"Please enter a valid revision track entry"+messageSuffix;
	}
	else
	{
		url = "/includes/ajax/project/addprojectrevision.asp?projectID="+projectID+
			"&projectCommentEntry="+projectCommentEntry+"&sid="+Math.random();
		xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
			'Revision entry added!'+messageSuffix,'projectRevisions');};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
		document.getElementById('projectRevisionEntry').value = "";
	}
}

/* Project Paper functions */

var projectKeywordID;
var subprojectID;
var projectToAddTo;
var projectPaperContribution;
var projectPaperScore;
var projectPaperFlag;

function removeProjectPaperKeyword(projectID,projectPaperID,projectPaperKeywordID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Removing project paper keyword...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/project/removeprojectpaperkeyword.asp?projectID="+projectID+
		"&projectPaperID="+projectPaperID+"&projectPaperKeywordID="+projectPaperKeywordID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Project paper keyword removed!'+messageSuffix,'paperKeywords');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function addProjectPaperKeyword(projectID,projectPaperID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Adding project paper keyword...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	projectKeywordID = document.getElementById('addProjPapKey').value;
	url = "/includes/ajax/project/addprojectpaperkeyword.asp?projectID="+projectID+
		"&projectPaperID="+projectPaperID+"&projectKeywordID="+projectKeywordID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Project paper keyword added!'+messageSuffix,'paperKeywords');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function removeProjectPaperSubproject(projectID,projectPaperID,projectPaperSubprojectID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Removing from subproject...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	url = "/includes/ajax/project/removeprojectsubproject.asp?projectID="+projectID+
		"&projectPaperID="+projectPaperID+"&projectPaperSubprojectID="+projectPaperSubprojectID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Removed from subproject!'+messageSuffix,'paperSubprojects');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function addProjectPaperSubproject(projectID,projectPaperID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Attaching to subproject...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	subprojectID = document.getElementById('addProjPapSub').value;
	url = "/includes/ajax/project/addprojectsubproject.asp?projectID="+projectID+
		"&projectPaperID="+projectPaperID+"&subprojectID="+subprojectID+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox',messagePrefix+
		'Attached to subproject!'+messageSuffix,'paperSubprojects');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function addProjectPaper(paperID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Adding paper to project...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	projectToAddTo = document.getElementById('projectToAddTo').value;
	projectPaperScore = document.getElementById('projectPaperScore').value;
	projectPaperContribution = escape(document.getElementById('paperContribution').value);
	if (projectPaperContribution.length === 0)
	{
		document.getElementById('messageDisplayBox').innerHTML = messagePrefix+
			"Please enter a paper contribution<br /><p><a href=\"#\" "+
			"onclick=\"addProjectPaper("+paperID+");return false;\"><img src=\"/images"+
			"/buttons/add.gif\" alt=\"Add Paper\" border=\"0\" /></a></p>"+messageSuffix;
	}
	else if (projectToAddTo === 0)
	{
		document.getElementById('messageDisplayBox').innerHTML = messagePrefix+
			"Please select an appropriate project<br /><p><a href=\"#\" "+
			"onclick=\"addProjectPaper("+paperID+");return false;\"><img src=\"/images"+
			"/buttons/add.gif\" alt=\"Add Paper\" border=\"0\" /></a></p>"+messageSuffix;
	}
	else
	{
		url = "/includes/ajax/project/addprojectpaper.asp?projectID="+projectToAddTo+
			"&paperID="+paperID+"&projectPaperContribution="+projectPaperContribution+
			"&projectPaperScore="+projectPaperScore+"&sid="+Math.random();
		xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox','','messageDisplayBox');};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}

function updatePaperProjectScore(projectID,projectPaperID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating project paper contribution score...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	projectPaperScore = document.getElementById('projectPaperScore').value;
	url = "/includes/ajax/project/updateprojectpaperscore.asp?projectID="+projectID+
		"&projectPaperID="+projectPaperID+"&projectPaperScore="+projectPaperScore+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox','','messageDisplayBox');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function updateProjectPaper(projectID,projectPaperID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating project paper contribution...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	projectPaperContribution = escape(document.getElementById('paperContribution').value);
	if (projectPaperContribution.length === 0)
	{
		document.getElementById('messageDisplayBox').innerHTML = messagePrefix+
			"Please enter a paper contribution"+messageSuffix;
	}
	else
	{
		url = "/includes/ajax/project/updateprojectpaper.asp?projectID="+projectID+"&projectPaperID="+
			projectPaperID+"&projectPaperContribution="+projectPaperContribution+"&sid="+Math.random();
		xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox','','messageDisplayBox');};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}

function updatePaperProjectFlag(projectID,projectPaperID)
{
	document.getElementById('messageDisplayBox').innerHTML = messagePrefix+"[Updating project paper flag...]"+messageSuffix;
	xmlHttp = new GetXmlHttpObject();
	projectPaperFlag = document.getElementById('paperProjectFlag').value;
	url = "/includes/ajax/project/updateprojectpaperflag.asp?projectID="+projectID+
		"&projectPaperID="+projectPaperID+"&projectPaperFlag="+projectPaperFlag+"&sid="+Math.random();
	xmlHttp.onreadystatechange = function(){xmlHttpResponse('messageDisplayBox','','messageDisplayBox');};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

// -->