/**
* ROAR Project javascript functions
*/

//Initialise global variables
var roarProjectId = 0;
var spIndexId = 0;
var strSearchQuery = '';
var projectCatid = 388;
var projectSubcat = '';
var isPhcred = '';


//load and render roar projects by catid and/or search (Grid - centre)
function renderROARProjects(catid, strQuery, currentPage, elibId, spIndex, subcat, phcred, sortBy) {

	$('#renderROARProjects').html('<br/>Loading ...&nbsp;<img src="/core/assets/images/spinner_14.gif"/><br/><br/>');

	//set global variable
	strSearchQuery = strQuery;
	projectCatid = catid;
	projectSubcat = subcat;

	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=renderROARProjects&catid=' + catid + '&search=' + strQuery + '&page=' + currentPage + '&id=' + elibId + '&spindex=' + spIndex + '&subcat=' + subcat + '&phcred=' + phcred + '&sortBy=' + sortBy;

	sendRequest(strRequest, renderROARProjects_Callback);

}

//load and render roar projects callback function
function renderROARProjects_Callback(req) {
	//handle callback data from the ajax call
	var s = req.responseText;

	$('#renderROARProjects').html(s);	// replace contents of element

	searchtermHighlightId('renderROARProjects');	//highlight search word(s) if available
}

//load and render roar projects by catid and/or search (Grid - side)
function renderROARProjectsSideGrid(catid, strQuery, currentPage, elibId, spIndex, subcat, phcred, sortBy) {

	$('#renderROARProjectsSideGrid').html('<br/>Loading ...&nbsp;<img src="/core/assets/images/spinner_14.gif"/><br/><br/>');

	//set global variable
	strSearchQuery = strQuery;
	projectCatid = catid;
	projectSubcat = subcat;

	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=renderROARProjectsSideGrid&catid=' + catid + '&search=' + strQuery + '&page=' + currentPage + '&id=' + elibId + '&spindex=' + spIndex + '&subcat=' + subcat + '&phcred=' + phcred + '&sortBy=' + sortBy;
	sendRequest(strRequest, renderROARProjectsSideGrid_Callback);

}

//load and render roar projects callback function
function renderROARProjectsSideGrid_Callback(req) {
	//handle callback data from the ajax call
	var s = req.responseText;

	$('#renderROARProjectsSideGrid').html(s);	// replace contents of element

	searchtermHighlightId('renderROARProjectsSideGrid');	//highlight search word(s) if available
}

//Load ROAR Project (individual project)
function loadROARProject(intSPIndex, intId) {

	//set global variables
	roarProjectId = intId;
	spIndexId = intSPIndex;

	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=loadROARProject&spindex=' + spIndexId + '&id=' + roarProjectId;
	sendRequest(strRequest, loadROARProject_Callback);

}

//Load ROAR Project callback function
function loadROARProject_Callback(req) {
	// handle callback data from the ajax call
	var s = req.responseText;

	$('#renderProject').html(s);	// replace contents of element

	searchtermHighlightId('renderProject');	//highlight search word(s) if available

	//call to display other project related to selected roar project by author(s)
	loadRoarProjectByAuthor(spIndexId, roarProjectId, 1);

	//call to display ROAR Output related to selected roar project
	getPanelRoarOutput(roarProjectId);
}

//Load Project(s) by Author
function loadRoarProjectByAuthor(spIndexId, roarProjectId, selectedPage) {
	$('#otherRelatedProject').html('<br/>Loading ...&nbsp;<img src="/core/assets/images/spinner_14.gif"/><br/><br/>');

	//call to display other abstracts related to selected conf abstract
	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=loadProjectByAuthor&spindex=' + spIndexId + '&id=' + roarProjectId + '&pageno=' + selectedPage + '&search=' + strSearchQuery + '&catid=' + projectCatid + '&subcat=' + projectSubcat;
	sendRequest(strRequest, loadRoarProjectByAuthor_Callback);
}

//Load Project by Author callback function
function loadRoarProjectByAuthor_Callback(req) {
	// handle callback data from the ajax call
	var s = req.responseText;

	$('#otherRelatedProject').html(s);	// replace contents of element
}

//Load related ROAR Output(s)
function getPanelRoarOutput(projectID) {
    /**
     * Retrieve panel via ajax call
     */
	sendRequest('/roar/ajax/project_related_outputs.php?projectId=' + projectID, getPanelRoarOutput_Callback);
}

//Load related ROAR Output callback function
function getPanelRoarOutput_Callback(req) {
    /**
     * Handle callback data from the AJAX call
     */

    sRoarOutput = req.responseText;

    $('#relatedOutput').html(sRoarOutput);	// replace contents of element
}

//open project
function openProject(url, newWindow) {
	if (newWindow == 'yes')
		window.open(url, "ROARProject");
	else
		document.location.href = url;
}

//load filters options
function loadFilters(catid, strQuery, phcred, intId, sortBy, spIndex, startPage) {
	roarProjectId = intId;
	spIndexId = spIndex;

	$('#searchFilters').html('<br/>Loading ...&nbsp;<img src="/core/assets/images/spinner_14.gif"/><br/><br/>');

	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=loadFilters&catid=' + catid + '&search=' + strQuery + '&phcred=' + phcred + '&id=' + intId + '&sortBy=' + sortBy + '&spindex=' + spIndex + '&startPage=' + startPage;
	sendRequest(strRequest, loadFilters_Callback);
}//function loadFilters

//render loadFilters callback function
function loadFilters_Callback(req) {
	/**
     * Handle callback data from the AJAX call
     */

    strFilters = req.responseText;

	$('#searchFilters').html(strFilters);	// replace contents of element

}// function loadFilters_Callback

//reset filter options
function resetFilters() {
	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=resetFilters';
	sendRequest(strRequest, resetFilters_Callback);
}// function resetFilters

//render resetFilters callback function
function resetFilters_Callback(req) {
	var s = req.responseText;

	if (s != 'success') alert(s);// display message if error

	// redirect to linkDB page
	window.location.href = '/roar/projects_start.php';
}// function resetFilters_Callback

function updateFundingList(strQuery, phcred) {

	$('#funding_spinner').html('<br/>Loading ...&nbsp;<img src="/core/assets/images/spinner_14.gif"/>');

	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=updateFundingList&search=' + strQuery + '&phcred=' + phcred;
	sendRequest(strRequest, updateFundingList_Callback);
}// function updateFundingList

function updateFundingList_Callback(req) {
	/**
     * Handle callback data from the AJAX call
     */

    strFundingSources = req.responseText;

    $('#funding_spinner').html('');

	$('#fundingSources').html(strFundingSources);	// replace contents of element

//	$('#fundingSources li').mouseenter( function () {
//		$(this).css('border', '1px dotted red');
//	});
//	$('#fundingSources li').mouseleave( function () {
//		$(this).css('border', 'none');
//	});

//	toggle('fundingSources', '/dios/images/menu/expand');
}

function addFundingSourceCat(fundingSourceCatid, strQuery, phcred) {
	//set global variable
	strSearchQuery = strQuery;
	isPhcred = phcred;

	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=addFundingSourceCat&newfscatid=' + fundingSourceCatid + '&search=' + strQuery;
	sendRequest(strRequest, addFundingSourceCat_Callback);
}

function addFundingSourceCat_Callback(req) {
	/**
     * Handle callback data from the AJAX call
     */
	intFundingSourceCatid = req.responseText;

//	alert('intFundingSourceCatid added '+intFundingSourceCatid);

	updateFundingList(strSearchQuery, isPhcred);
	updateFundingAmountList(strSearchQuery, isPhcred);
}

function removeFundingSourceCat(fundingSourceCatid, strQuery, phcred) {
	//set global variable
	strSearchQuery = strQuery;
	isPhcred = phcred;

	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=removeFundingSourceCat&newfscatid=' + fundingSourceCatid + '&search=' + strQuery;
	sendRequest(strRequest, removeFundingSourceCat_Callback);
}

function removeFundingSourceCat_Callback(req) {
	/**
     * Handle callback data from the AJAX call
     */
	intFundingSourceCatid = req.responseText;

//	alert('intFundingSourceCatid removed '+intFundingSourceCatid);

	updateFundingList(strSearchQuery, isPhcred);
	updateFundingAmountList(strSearchQuery, isPhcred);
}

function promptNoProfileMsg( profileId, profileName ) {
	strMsg = 'This researcher has no ROAR Profile. Would you like to...<ul><li><a href="/roar/edit_profile.php?elibid='+profileId+'" target="_blank">Make a suggested update on behalf of ' + profileName + '</a><br/><span class="updated">(the researcher will then be contacted to accept/decline the suggested update)</span></li><li><a href="/contact/index.php" target="_blank">Contact a PHC RIS staff member about making an update' + '</a></li></ul><br/>';
	$('#noProfileMsg').html(strMsg);

	// render and execute the create provider dialog popup
	$('#noProfileMsg').dialog({
		autoOpen: true,
		width: '50%',
		position: 'middle',
		modal: true,
		buttons: {
		'Close': function() {
			$(this).dialog('close');
		}
		}
	});
}

function sortProjects(strQuery, phcred) {
	var sortMode = $('#sortBy').val();

//	alert('sortBy='+sortMode);

	//set global variable
	strSearchQuery = strQuery;
	isPhcred = phcred;
	$.ajax({
			type: 'GET',
			url: '/roar/ajax/ajaxDoRoarProject.php?action=setSortMode&sortBy='+sortMode,
			success: function(strReturn) {
				if (strReturn.substr(0, 5) != 'Error') {
					$('#frmBrowse').submit();			//submit
				} else {// display error
					alert(strReturn);
				}
			}
		});
}

function returnToGrid() {
	$('input[name="id"]').val('');
	$('input[name="spindex"]').val('');

	$('#frmBrowse').submit();

	return false;
}

function execExample(url) {
	//clear filter first
	$.ajax({
			type: 'GET',
			url: '/roar/ajax/ajaxDoRoarProject.php?action=resetFilters',
			success: function(strReturn) {
				if (strReturn.substr(0, 5) != 'Error') {
					window.location.href = url;
				} else {// display error
					alert(strReturn);
				}
			}
		});

}

function updateFundingAmountList(strQuery, phcred) {

	$('#fundingAmount_spinner').html('<br/>Loading ...&nbsp;<img src="/core/assets/images/spinner_14.gif"/>');

	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=updateFundingAmountList&search=' + strQuery + '&phcred=' + phcred;
	sendRequest(strRequest, updateFundingAmountList_Callback);
}// function updateFundingAmountList

function updateFundingAmountList_Callback(req) {
	/**
     * Handle callback data from the AJAX call
     */

    strFundingAmount = req.responseText;

    $('#fundingAmount_spinner').html('');

	$('#fundingAmount').html(strFundingAmount);	// replace contents of element
}

function addFundingAmountRange(fundingAmountType, strQuery, phcred) {
	//set global variable
	strSearchQuery = strQuery;
	isPhcred = phcred;

	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=addFundingAmountRange&newfarange=' + fundingAmountType + '&search=' + strQuery;
	sendRequest(strRequest, addFundingAmountRange_Callback);
}

function addFundingAmountRange_Callback(req) {
	/**
     * Handle callback data from the AJAX call
     */
	intFundingAmountType = req.responseText;

//	alert('intFundingAmountType added '+intFundingAmountType);

	updateFundingAmountList(strSearchQuery, isPhcred);
	updateFundingList(strSearchQuery, isPhcred);
}

function removeFundingAmountRange(fundingAmountType, strQuery, phcred) {
	//set global variable
	strSearchQuery = strQuery;
	isPhcred = phcred;

	var strRequest = '/roar/ajax/ajaxDoRoarProject.php?action=removeFundingAmountRange&newfarange=' + fundingAmountType + '&search=' + strQuery;
	sendRequest(strRequest, removeFundingAmountRange_Callback);
}

function removeFundingAmountRange_Callback(req) {
	/**
     * Handle callback data from the AJAX call
     */
	intFundingAmountType = req.responseText;

//	alert('intFundingAmountType removed '+intFundingAmountType);

	updateFundingAmountList(strSearchQuery, isPhcred);
	updateFundingList(strSearchQuery, isPhcred);
}



