function abcXML(xmlStr)
{
	if (xmlStr.indexOf('<abc>') > -1) {
		var itemIdPrefix = 'abc_filter_'; // used as elements' ids prefix
		var currentAbcFilterValue = $('#trends-alpha-filter a.current').html();
		var excludeLetters = xmlStr.split('<abc>');
		excludeLetters = excludeLetters[1].split('</abc>');
		if (excludeLetters[0] == 'no') {
			excludeLetters = [];
		} else {
			excludeLetters = excludeLetters[0].split(','); // array with number of letter
		}
		var letters = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
		
		
		var abcFilterHtml = '';
		
		// 1. - "All" item
		var idOfAnAllItem = itemIdPrefix;
		var classOfAnAllItem = (currentAbcFilterValue == 'All') ? 'class="current"' : '';
		abcFilterHtml += '<a id="' + idOfAnAllItem + '" href="javascript: void(0);" ' + classOfAnAllItem + ' onclick="onAlphaFilterChanged(\'\')">All</a>&nbsp;&nbsp;';
		
		// 2. - Letter items
		$.each(letters, function(index, letter) {
			var letterExcluded = false;
			$.each(excludeLetters, function(index, excludeLetter) {
				if (letter == excludeLetter) {
					letterExcluded = true;
				}
			});
			if (letterExcluded) {
				abcFilterHtml += letter + '&nbsp; ';
			} else {
				var idOfTheItem = itemIdPrefix + letter;
				var classOfTheItem = (currentAbcFilterValue == letter) ? 'class="current"' : '';
				abcFilterHtml += '<a id="' + idOfTheItem + '" href="javascript: void(0);" ' + classOfTheItem + ' onclick="onAlphaFilterChanged(\'' + letter + '\')">' + letter + '</a>&nbsp; ';
			}
		});
		$('#trends-alpha-filter').html(abcFilterHtml);
	}
}

function onAlphaFilterChanged(filter)
{
	if ((window.gridIsLoading !== undefined) && window.gridIsLoading) {
		alert('Please, wait until grid is loading.');
		return;
	}
	
	var itemIdPrefix = 'abc_filter_'; // used as elements' ids prefix
	var elementId = itemIdPrefix + filter;
	
	window.alphaFilter = filter;
	$('.trends-alpha-filter a').removeClass('current');
	$("#" + elementId).addClass('current');
	if (window.pagetype == 'trends') {
		updateTrendList();
	} else {
		updateFundingList();
	}
}


function getTypeOrg()
{
	if (window.pagetype == "rcdl") {
		return 'recipients';
	} else if (window.pagetype == "cac") {
		return 'recipients';
	} else if (window.pagetype == "who") {
		return 'recipients';
	} else {
		return 'donors';
	}
}

function getFundingObject()
{
	if (window.pagetype == "rcdl") {
		return 'rcdl';
	} else if (window.pagetype == "cac") {
		return 'cac';
	} else if (window.pagetype == "who") {
		return 'who';
	} else {
		return 'orgs_budget';
	}
}

function selectFundingSubfilter(type)
{
	var fundingObject = getFundingObject();
	var orgType = getTypeOrg();
	if (type == 'none') {
		$('#subfilter_content').remove();
		if (fundingObject != 'who') { // don't need to hide because of name filtering
			$('#filter_submit').hide(300);
		}
		return;
	}
	
	$('#filter_submit').show(200);
	$('#' + fundingObject + '_subfilter .rightside').html('<img src="/images/ajax-loader.gif" /> Loading...');
	
	var url = '';
	switch (type) {
		case 'states': url = '/ajax/states/?funding=' + orgType; break;
		case 'countries': url = '/ajax/countries/?funding=' + orgType; break;
		case 'categories': url = '/ajax/category/'; break;
		case 'funding': url = '/ajax/mechanism/'; break;
		case 'years': url = '/ajax/years/'; break;
		case 'types': url = '/ajax/types/?funding=' + orgType; break;
	}
	if (url != '') {
		$('#' + fundingObject + '_subfilter .rightside').load(url);
	}
}

function updateFundingList()
{ 
	if (window.gridIsLoading) {
		alert('Please, wait until grid is loading.');
		return false;
	}
	
	var orgType = getTypeOrg();
	var fundingObject = getFundingObject();
	var gridCaption = '';
	var pi = '';
	switch (fundingObject) {
		case 'rcdl': gridCaption = 'Research Centers, Departments, Labs'; break;
		case 'cac': gridCaption = 'Commercial Applications and Companies'; break;
		case 'who': gridCaption = 'Who Is Who'; pi = $('#pi').val(); break;
		default: gridCaption = 'Funding Organizations and Sources'; break;
	}
	$("#trends-results").setCaption(gridCaption);
	
	var filterBy = '';
	var params = [];
	if ($('#' + fundingObject + '_subfilter .subfilter_select') && $('#' + fundingObject + '_subfilter .subfilter_select').val() != 'none') {
		filterBy = $('#' + fundingObject + '_subfilter .subfilter_select').val();
		$('#' + fundingObject + '_subfilter input[type=checkbox]:checked').each(function(i, item) {
			params.push(item.value);
		});
	}
	params = params.join(',');
	$("#trends-results").clearGridData().setGridParam({postData: {type: orgType, object: fundingObject, filter: filterBy, params: params, alpha_filter: window.alphaFilter, pi: pi} }).trigger("reloadGrid");
}


function getTrendType()
{
	if ($('#org_donor')[0].checked) return 'donors';
	if ($('#org_recipient')[0].checked) return 'recipients';
	
	return false;
}

function getTrendObject()
{
	if ($('#obj_orgs')[0].checked) return 'orgs';
	if ($('#obj_countries')[0].checked) return 'countries';
	if ($('#obj_states')[0].checked) return 'states';
	if ($('#obj_cat')[0].checked) return 'categories';
	if ($('#obj_funding')[0].checked)return 'funding';
	if ($('#obj_years')[0].checked) return 'years';
	if ($('#obj_invrs')[0].checked) return 'investigators';
	
	return false;
}

function onTrendsParamsChanging()
{
	if (window.gridIsLoading) {
		alert('Please, wait until grid is loading.');
		return false;
	}
	
	resetTrendSubfilter();
	updateTrendList();
	return true;
}

function selectTrendSubfilter(type)
{
	if (type == 'none') {
		$('#subfilter_content').remove();
		return;
	}
	
	var trendObject = getTrendObject();
	var trendType = getTrendType();
	$('#' + trendObject + '_subfilter .rightside').html('<img src="/images/ajax-loader.gif" /> Loading...');
	
	var url = '';
	switch (type) {
		case 'states': url = '/ajax/states/?funding=' + trendType; break;
		case 'countries': url = '/ajax/countries/?funding=' + trendType; break;
		case 'categories': url = '/ajax/category/'; break;
		case 'funding': url = '/ajax/mechanism/'; break;
		case 'years': url = '/ajax/years/'; break;
		case 'types': url = '/ajax/types/?funding=' + trendType; break;
	}
	$('#' + trendObject + '_subfilter .rightside').load(url);
}

function resetTrendSubfilter()
{
	var trendObject = getTrendObject();
	
	$('#trents-filter fieldset').hide();
	$('#trents-filter .leftside select').val('none');
	$('#' + trendObject + '_subfilter').show();
	$('#subfilter_content').remove();
	if (trendObject == 'years') {
		$('.trends-alpha-filter').hide();
	} else {
		$('.trends-alpha-filter').show();
	}
	
	// hide chart
	$('#google-chart').text('');
	$('#gbox_chart-legend').replaceWith('<table id="chart-legend"></table>');
	
	//window.alphaFilter = ''; 
	alphaFilter = '';
	$('.trends-alpha-filter a').removeClass('current');
	$('.trends-alpha-filter a:first').addClass('current');
	
	// empty selected rows
	window.tblSel = [];
	window.tblSelBudget = [];
	window.tblSelNames = [];
	window.tblSelAddress = [];
	showSelectedTrendItems();
}

function delSelectedTrend(id)
{
	window.tblSel = jQuery.grep(window.tblSel, function(elem){return elem != id;});
	var selectedRowIds = $("#trends-results").getGridParam('selarrrow');
	if ($.inArray(id, selectedRowIds) != -1) {
		$("#trends-results").setSelection(id, false);
	}
	showSelectedTrendItems();
}

function delAllSelectedTrends()
{
	$("#trends-results").resetSelection();
	
	// empty selected rows
	window.tblSel = [];
	window.tblSelBudget = [];
	window.tblSelNames = [];
	window.tblSelAddress = [];
	showSelectedTrendItems();
	
	$('#btnShowProj').hide();
	$('#gbox_projects_table').hide();
	$('#google-chart-column').html("");
	$('#google-chart-pie').html("");
	$('#google-chart-pie_link').html('');
	$('#venn_chart_link_1').html("");
	$('#venn_chart_1').html("");
	$('#venn_chart_link_2').html("");
	$('#venn_chart_2').html("");
	$('#venn_chart_link_3').html(""); 
	$('#venn_chart_3').html("");
	$("#chart_area").css('background-color', 'transparent');
	if ($('#google-chart')) {
		$('#google-chart').html('');
	}
	if ($('#gbox_chart-legend')) {
		$('#gbox_chart-legend').html('');
	}
}

function showSelectedTrendItems()
{
	if (window.tblSel.length == 0) {
		$('#trends-summe').html('');
		$('#trends-selected').html('');
		$('#gbox_projects_table').hide();
		$("#projects_table").clearGridData();
		$('#btnShowProj').hide();
		$('#btnShowChart').hide();
		if (window.fundingorgtool) {
			$('#trends-total-budget').html('');
		}
		return;
	}
	if (window.fundingorgtool) {
		window.budget = 0;
	}
	html = '<h5><a href="javascript: void(0);" onclick="delAllSelectedTrends();">clear</a>Selected items: </h5><table>';
	jQuery.each(window.tblSel, function (i, val) {
		var field = ""
		if (window.pagetype == "who") {
			var field = " - " + window.tblSelAddress[val];
		}
		html += '<tr><td>' + '<span style="font-size: 11px;">' + window.tblSelNames[val] + field + '</span></td><td width="10"><a href="javascript: void(0);" onclick="delSelectedTrend(\'' + val + '\');">x</a></td></tr>';
		if (window.fundingorgtool) {
			if(window.tblSelBudget[val] != undefined){
				window.tblSelBudget[val] = window.tblSelBudget[val].split("$").join("");
				window.tblSelBudget[val] = window.tblSelBudget[val].split(",").join("");
				window.budget += parseInt(window.tblSelBudget[val]);
			}
		}
	});
	html += '</table>';
	if (window.fundingorgtool) {
		$('#trends-summe').html("<h5>Total budget: $" + dollarFormat(budget) + "</h5>");
	}
	$('#trends-selected').html(html);
	$('#btnShowProj').show();
	$('#btnShowChart').show();
	if (window.pagetype != 'trends') { // tmp added
		$('#btnShowChart').hide();
	}
}

function updateTrendList()
{
	if (window.gridIsLoading) {
		alert('Please, wait until grid is loading.');
		return false;
	}
	
	var trendType = getTrendType();
	var trendObject = getTrendObject();
	var gridCaption = '[Unknown]';
	switch (trendObject) {
		case 'orgs': gridCaption = 'Organizations'; break;
		case 'countries': gridCaption = 'Countries'; break;
		case 'states': gridCaption = 'US States'; break;
		case 'categories': gridCaption = 'Categories'; break;
		case 'funding': gridCaption = 'Funding mechanism'; break;
		case 'years': gridCaption = 'Years'; break;
		case 'investigators': gridCaption = 'Investigators'; break;
	}
	$("#trends-results").setCaption(gridCaption);
	
	
	var filterBy = '';
	var params = [];
	if ($('#' + trendObject + '_subfilter .subfilter_select') && $('#' + trendObject + '_subfilter .subfilter_select').val() != 'none') {
		filterBy = $('#' + trendObject + '_subfilter .subfilter_select').val();
		$('#' + trendObject + '_subfilter input[type=checkbox]:checked').each(function(i, item) {
			params.push(item.value);
		});
	}
	params = params.join(',');
	
	$("#trends-results").clearGridData().setGridParam({postData: {type: trendType, object: trendObject, filter: filterBy, params: params, alpha_filter: window.alphaFilter} }).trigger("reloadGrid");
	return true;
}

function randomColor()
{
  var v = ['3', '6', '9', 'C'];
  var color = '';
  var bit = v[Math.round(Math.random() * (v.length - 1))];
  color += bit + bit;
  bit = v[Math.round(Math.random() * (v.length - 1))];
  color += bit + bit;
  bit = v[Math.round(Math.random() * (v.length - 1))];
  color += bit + bit;
  
  return color;
}

function seeMoreProj(n, org_type)
{ 
$("#proj_" + n ).html("<img src=\"/images/ajax-loader.gif\" style=\"margin-top: 5px;\"/> Loading...");
$("#proj_" + n ).load('/import/projects_list.php?proj=' + n + '&org_type=' + org_type + '&ids=' + window.tblSel + window.map);
}

function updateProjectList(src, ttype) { 
  var p = [];
  var filter = '';
  var object = src;
  
  $("#projects_table").setCaption('Projects');
    if ($('#' + object + '_subfilter .subfilter_select') && $('#' + object + '_subfilter .subfilter_select').val() != 'none') {
    filter = $('#' + object + '_subfilter .subfilter_select').val();
    $('#' + object + '_subfilter input[type=checkbox]:checked').each(function(i, item) {
      p.push(item.value);
    });
    }
    
	p = String(p);

	switch (ttype) {

	case 'recipients': $("#projects_table").clearGridData().setGridParam({postData: { type: 'recipients', object: object, filter: filter, params: p, alpha_filter: window.alphaFilter, ro_name_ids: window.tblSel.join(',')} }).trigger("reloadGrid"); break;

	case 'donors' : $("#projects_table").clearGridData().setGridParam({postData: { type: 'donors', object: object, filter: filter, params: p, alpha_filter: window.alphaFilter, f_org_name_ids: window.tblSel.join(',')} }).trigger("reloadGrid"); break;

	case 'investigators': $("#projects_table").clearGridData().setGridParam({postData: { type: 'investigators', object: object, filter: filter, params: p, alpha_filter: window.alphaFilter, pid: window.tblSel.join(',')} }).trigger("reloadGrid"); break;

	
	}

}

	function strDol (proper_address) { 
	    proper_address = proper_address.toString().replace(/\$|\,/g,'');
    	if(isNaN(proper_address))
        	proper_address = "0";
    	sign = (proper_address == (proper_address = Math.abs(proper_address)));
    	proper_address = Math.floor(proper_address*100+0.50000000001);
    	cents = proper_address%100;
    	proper_address = Math.floor(proper_address/100).toString();
    	if(cents<10)
        	cents = "0" + cents;
    	for (var i = 0; i < Math.floor((proper_address.length-(1+i))/3); i++)
        		proper_address = proper_address.substring(0,proper_address.length-(4*i+3))+','+
    	proper_address.substring(proper_address.length-(4*i+3));
    	return "$" + (((sign)?'':'-') + proper_address);
  	}

var showProjectsGridCreated = false;
function showProjects()
{
	if (!window.tblSel.length) {
		alert('Please, check investigators first.');
		return;
	}
	$('#gbox_projects_table').show();
	
	var pid_ids = window.tblSel.join(',');
	var fundingObject = getFundingObject();
	var ro_type_ids = ''; var countries_ids = ''; var states_ids = ''; var fm_ids = ''; var research_areas_ids = ''; var fyear = '';
	var subfilter = $('#' + fundingObject + '_subfilter select').val();
	if (subfilter != 'none') {
		var subfilterValues = [];
		$('#subfilter_content input[type=checkbox]:checked').each(function(i, item) {
			subfilterValues.push(item.value);
		});
		if (subfilterValues.length) {
			switch (subfilter) {
				case 'types': ro_type_ids = subfilterValues.toString(); break;
				case 'countries': countries_ids = subfilterValues.toString(); break;
				case 'states': var usaId = 226; countries_ids = usaId; states_ids = subfilterValues.toString(); break;
				case 'funding': fm_ids = subfilterValues.toString().toUpperCase(); break;
				case 'categories': research_areas_ids = subfilterValues.toString(); break;
				case 'years': fyear = subfilterValues.toString(); break;
			}
		}
	}
	
	var searchParameters = {aging: 1, noparent: 1, pid_ids: pid_ids, ro_type_ids: ro_type_ids, countries_ids: countries_ids, states_ids: states_ids, fm_ids: fm_ids, research_areas_ids: research_areas_ids, fyear: fyear};
	if (!showProjectsGridCreated) {
		showProjectsGridCreated = true;
		$("#projects_table").jqGrid({
			url:'/projects/search/',
			datatype: 'xml',
			postData: searchParameters,
			mtype: 'POST',
			colNames: ['<span class="jqgrid-headers">Project number</span>', '<span class="jqgrid-headers">Project title</span>', '<span class="jqgrid-headers">Investigators</span>', '<span class="jqgrid-headers">Recipient organization</span>','<span class="jqgrid-headers">Funding organization</span>','<span class="jqgrid-headers">Year</span>', '<span class="jqgrid-headers">Funding</span>', 'Aging Limit ID'],
			colModel: [
				{name:'pnumb', align:'center', sortable:false, width:180},
				{name:'ptitle', align:'left', sortable:false, width:180},
				{name:'pi', align:'left', sortable:false, width:120},
				{name:'rorg', align:'left', sortable:false, width:190},
				{name:'forg', align:'left', sortable:false, width:180},
				{name:'fy', align:'center', sortable:false, width:50},
				{name:'fy_total', align:'center', sortable:false, width:100},
				{name:'aging_limits', hidden:true}
			],
			pager: '#pager2',
			rowNum: 25,
			rowList: [10,25,50,100],
			viewrecords: false,
			caption: 'Project Funding',
			width: ($('.column').width() - 10),
			height: '100%',
			sortname: 'fy_total',
			sortorder: 'desc'
		});
	} else {
		$("#projects_table").clearGridData().setGridParam({postData: searchParameters}).trigger("reloadGrid");
	}
}


function showShortProjects(src,ttype)
{ 
	if(window.tblSel=="") {alert("Rows not selected"); return;}
	$('#gbox_projects_table').show();
	searchUrlCommon = '';
	var ids = window.tblSel.join(',');
	ro_ids = ''; f_ids = ''; ro_type_ids=''; f_org_type_ids=''; countries_ids = ''; states_ids=''; fm_ids=''; research_areas_ids=''; fyear = '';

	 if (ttype == 'recipients') { 
  	 ro_ids = ids; 
	} else { f_ids = ids; }


	var subfilter = $('#' + src + '_subfilter select').val();

	if (subfilter != 'none') {

                var subfilterValues = [];
                $('#subfilter_content input[type=checkbox]:checked').each(function(i, item) {
                        subfilterValues.push(item.value);
                });
                if (subfilterValues.length) {
 
                        switch (subfilter) {
                                case 'types': if (ttype == 'recipients') { ro_type_ids= subfilterValues.toString(); } else { f_org_type_ids= subfilterValues.toString(); } break;
                                case 'countries': countries_ids = subfilterValues.toString(); break;
                                case 'states': states_ids=subfilterValues.toString(); break;
                                case 'funding': fm_ids= subfilterValues.toString().toUpperCase(); break;
                                case 'categories': research_areas_ids=subfilterValues.toString(); break;
                                case 'years': fyear = subfilterValues.toString(); break;
                        }
                }
        }

      var searchParameters = { aging: 1, noparent: 1, ro_name_ids : ro_ids, f_org_name_ids: f_ids, countries_ids: countries_ids, states_ids: states_ids, fm_ids: fm_ids, research_areas_ids: research_areas_ids, fyear: fyear };

      $("#projects_table").jqGrid({
      url:'/projects/search/',
      datatype: 'xml',
      postData: searchParameters,
      mtype: 'POST',
      colNames: ['<span class="jqgrid-headers">Project number</span>', '<span class="jqgrid-headers">Project title</span>', '<span class="jqgrid-headers">Investigator</span>', '<span class="jqgrid-headers">Organization</span>','<span class="jqgrid-headers">Donor organization</span>', '<span class="jqgrid-headers">Year</span>', '<span class="jqgrid-headers">Total funding</span>','<span class="jqgrid-headers">aging limits</span>'],
      colModel: [
        {name:'project_number', index:'project_number', align:'left', sortable:false},
        {name:'title', index:'title', align:'left', sortable:false},
        {name:'investigator', index:'investigator', align:'left', sortable:false, hidden:true},
        {name:'organization', index:'organization', align:'left', sortable:false},
        {name:'donor', index:'donor', align:'left', sortable:false},
        {name:'year', index:'year', align:'center', sortable:false, width:50},
        {name:'money', index:'money', align:'center', sortable:false, formatter: strDol},
        {name:'aging_limits', index:'aging_limits', sortable:false, hidden:true}
   
      ],
      pager: '#pager2',
      rowNum: 150,
      rowList: [10,25,50,100],
      viewrecords: true,
      caption: 'Projects',
      width: '650',
      height: '500',
      sortorder: "desc",
      sortname: "money",
      deselectAfterSort: false,
      xmlReader: {
    	 
    	}
    });
    
	
	$("#projects_table").clearGridData().setGridParam({postData: searchParameters }).trigger("reloadGrid");
}


function getSearchParam(src,ttype)
{ 
	if(window.tblSel=="") {alert("Rows not selected"); return;}
	$('#gbox_projects_table').show();
	searchUrlCommon = '';
	var ids = window.tblSel.join(',');
	ro_ids = ''; f_ids = ''; ro_type_ids=''; f_org_type_ids=''; countries_ids = ''; states_ids=''; fm_ids=''; research_areas_ids=''; fyear = '';

	 if (ttype == 'recipients') { 
  	 ro_ids = ids; 
	} else { f_ids = ids; }


	var subfilter = $('#' + src + '_subfilter select').val();

	if (subfilter != 'none') {

                var subfilterValues = [];
                $('#subfilter_content input[type=checkbox]:checked').each(function(i, item) {
                        subfilterValues.push(item.value);
                });
                if (subfilterValues.length) {
 
                        switch (subfilter) {
                                case 'types': if (ttype == 'recipients') { ro_type_ids= subfilterValues.toString(); } else { f_org_type_ids= subfilterValues.toString(); } break;
                                case 'countries': countries_ids = subfilterValues.toString(); break;
                                case 'states': states_ids=subfilterValues.toString(); break;
                                case 'funding': fm_ids= subfilterValues.toString().toUpperCase(); break;
                                case 'categories': research_areas_ids=subfilterValues.toString(); break;
                                case 'years': fyear = subfilterValues.toString(); break;
                        }
                }
        }

      var searchParameters = { aging: 1, noparent: 1, ro_name_ids : ro_ids, f_org_name_ids: f_ids, countries_ids: countries_ids, states_ids: states_ids, fm_ids: fm_ids, research_areas_ids: research_areas_ids, fyear: fyear };

      return searchParameters;
	
}


function seeMore(n)
{ 
	window.n = n;
	$("#venn_chart_" + n + "_more").css( 'visibility', 'visible' ) ;
	$("#venn_chart_" + n + "_more").css( 'display', 'block' ) ;
	$("#venn_chart_" + n + "_more").height(200);
    $("#venn_chart_" + n + "_more").html("<center><img src=\"/images/ajax-loader.gif\" style=\"margin-top: 90px;\"/> Loading...</center>");
    if(n==1)var org_type = "Company";
    if(n==2)var org_type = "Institute";
	if(n==3)var org_type = "University";
	$("#venn_chart_" + window.n + "_more").load('/import/category_funding.php?&filter=orgs_budget&org_type=' + org_type + '&ids=' + window.tblSel + window.map);
}


// add new method to array
Array.prototype.in_array = function(obj) {
	for(var i = 0, l = this.length; i < l; i++) {
		if(this[i] == obj) {
			return true;
		}
	}
	return false;
} 
    
function drawChartBudget()
{   
	$("#venn_chart_1_more").css( 'visibility', 'hidden' ) ;
	$("#venn_chart_1_more").css( 'display', 'none' ) ;
    $("#venn_chart_2_more").css( 'visibility', 'hidden' ) ;
	$("#venn_chart_2_more").css( 'display', 'none' ) ;
	$("#venn_chart_3_more").css( 'visibility', 'hidden' ) ;
	$("#venn_chart_3_more").css( 'display', 'none' ) ;

	$("#chart_area").css( 'background-color', '#FFFFFF' ) ;
	$('#google-chart-pie_link').html('');
	$('#venn_chart_link_1').html('');
	$('#venn_chart_link_2').html('');
	$('#venn_chart_link_3').html('');
	if(window.pagetype == undefined) window.pagetype = "";
	if(window.pagetype == "rcdl"){
		var id = "rcdl";
		window.map = "&map=rcdl";
	}else if(window.pagetype == "cac"){
		var id = "cac";
		window.map = "&map=rcdl";
	}else if(window.pagetype == "who"){
		var id = "who";
		window.map = "&map=who";
	}else{
		var id = "donors_budget";
		window.map = "";
	}
    document.getElementById("google-chart-column").innerHTML = "<center><img src=\"/images/ajax-loader.gif\" style=\"margin-top: 40px;\"/> Loading...</center>";
    
	jQuery.get("/index/get/?type="+id+"&ids=" + window.tblSel, {}, function(r) {
    	var json = eval(r);
    	var data = new google.visualization.DataTable();
    	data.addColumn('string', 'Year');
    	
    //  get organisation names	
    	var org_names = []; //orgs in sqldata
    	var yearss = [];
    	var count = 0;
    	for (var i = 0; i <= json.length - 1; ++i) { 
    		if(!yearss.in_array(json[i].year)){
    			yearss.push(json[i].year + '');
    		}
    		
    		if (!org_names.in_array(json[i].id)) { 
				org_names[count] = json[i].id;
				if(window.pagetype == "who") var name = ", " + json[i].first_name + " " + json[i].middle_name;
				else var name = "";
				data.addColumn('number', json[i].name + name);  
				count++;
    		} 		 		
    	}  	

    	if(document.getElementById("2009")!=null){
    		
    		var a_y = ['1990','1991','1992','1993','1994','1995','1996','1997','1998','1999','2000','2001','2002','2003','2004','2005','2006','2007','2008','2009','2010'];
    		var a = [];
    		for (var ai = 0; ai <= a_y.length - 1; ++ai) {
    			if(document.getElementById(a_y[ai])!=null){
    			   if(document.getElementById(a_y[ai]).checked){
    				  a.push(a_y[ai]);
    			   }
    		    }
    		
    		}

    	}else{
    		
    		
    		var a = yearss;
    	}
    	
    	data.addRows(a.length);
    	var debug = true;
    	var test = "";
    	
    	for (var ai = 0; ai <= a.length - 1; ++ai) {
    		if(debug)
    			test += ai + " " + 0 + " " + a[ai] + "\n\r";
    		else
    			data.setValue(ai, 0, a[ai]);   		
    		var count = 0;
     		for (var i = 0; i <= org_names.length - 1; ++i) {
     			for (var ci = 0; ci <= json.length - 1; ++ci) {
     				if(json[ci].id == org_names[i] & json[ci].year == a[ai]){
     					if(debug)
     					test += ai + " " + parseInt(i+1) + " " + parseInt(json[ci].money) + "\n\r";
     					else
     					data.setValue(ai, parseInt(i+1), parseInt(json[ci].money));//dollarFormat    					
     					count++;
     				}
     			}   	           
    		}
    		var rest = org_names.length - count;   	
    		for (var i = 0; i <= rest-1; ++i) {
    			count++;
    			if(debug)
    			test += ai + " " + parseInt(count) + " " + 0 + "\n\r";
    			else
    			data.setValue(ai, parseInt(count), 0);
    		}
    	}
   	    if(debug)alert(test);
   	    if(window.pagetype == "rcdl" || window.pagetype == "cac"){
		    var titles = "(recepients)";		
	    }else{
	    	var titles = "";
	    }
    	var chart = new google.visualization.ColumnChart(document.getElementById('google-chart-column'));
        chart.draw(data, {width: 640, legend: 'none', tooltipWidth: 400, tooltipFontSize: 12, height: 240, is3D: true, title: 'Total funding by years ' + titles});       
	}); 
	
	
	if(window.pagetype != "who"){
    //window.tblSel = '258,322,6,9,301,303'; // temp data 
	if(window.pagetype == "rcdl"){
		var id = "rcdl_country";	
		window.financed = "";
		
	}else if(window.pagetype == "cac"){
		var id = "cac_country";
		window.financed = "";
	}else{
		var id = "donors_budget_country";
		window.financed = "financed by ";
	}
	if(window.pagetype == "fundingorgtool"){
	document.getElementById("google-chart-pie").innerHTML = "<center><img src=\"/images/ajax-loader.gif\" style=\"margin-top: 40px;\"/> Loading...</center>";
	jQuery.get("/index/get/?type="+id+"&ids=" + window.tblSel, {}, function(r) {	
		
		var json = eval(r);
    	var data_pie = new google.visualization.DataTable();
    	data_pie.addColumn('string', 'Task');
        data_pie.addColumn('number', 'Total funding by countries');       
        data_pie.addRows(json.length);
        
        for (var i = 0; i <= json.length - 1; ++i) {
        	data_pie.setValue(i, 0, json[i]['country'] + " $" + dollarFormat(parseInt(json[i]['money'])));
            data_pie.setValue(i, 1, parseInt(json[i]['money']));        	
        }	       
        
        var chart_pie = new google.visualization.PieChart(document.getElementById('google-chart-pie'));
        chart_pie.draw(data_pie, {width: 640, legendFontSize: 9, height: 240, is3D: true, title: 'Total funding by country (top5)'});
    
        $('#google-chart-pie_link').html('<a href="/index/viewonmap?ids=' + window.tblSel + window.map + '">view on map</a>');
	});
	}
	window.orgnames = "";   
	var delimiter;
	jQuery.each(window.tblSel, function (i, val){	
		if(window.tblSel.length == i+1)
			delimiter = "";
		else
			delimiter = ", ";
		window.orgnames += window.tblSelNames[val] + delimiter;
	}); 
	
	    var id = "nih_top";
//	if(window.pagetype != "rcdl"){
		$('#venn_chart_1').html("<center><img src=\"/images/ajax-loader.gif\" style=\"margin-top: 40px;\"/> Loading...</center>");
	    var org_type = "Company";	   
			jQuery.get("/index/get/?type="+id + "&ids=" + window.tblSel + "&org_type=" + org_type + window.map, {}, function(r) {					
			var json = eval(r);			
			var ar_money = [];
			var ar_title = [];
			var ar_projects = [];
			for (var i = 0; i <= json.length - 1; ++i) {
				ar_money[i] = parseInt(json[i].money);
				ar_title[i] = ar_title[i] = json[i].title.replace("&","and");
				ar_projects[i] = json[i].projects; 
			}
			  if(json.length != 0){
			  	var q = (ar_money[0] + ar_money[1] + ar_money[2])/30 ;
			  	var q_p = (ar_projects[0] + ar_projects[1] + ar_projects[2])/30 ;
				$('#venn_chart_1').html('<img src="http://chart.apis.google.com/chart?cht=v&chd=t:' +
				                 parseInt(ar_money[0]/q) + ',' +
				                 parseInt(ar_money[1]/q) + ',' +
				                 parseInt(ar_money[2]/q) + ',' +
				                 ar_projects[0]+ ',' +
				                 ar_projects[1]+ ',' +
				                 ar_projects[2]+ ',10&chs=400&chco=0000ff,ff0000,00ff00&chf=bg,s,FFFFFF&chdlp=bv&chdl=' +
				                 ar_title[0] + ' projects: ' + ar_projects[0] + ' budget: $' + dollarFormat(ar_money[0])  + '|' +
				                 ar_title[1] + ' projects: ' + ar_projects[1] + ' budget: $' + dollarFormat(ar_money[1])  + '|' +
				                 ar_title[2] + ' projects: ' + ar_projects[2] + ' budget: $' + dollarFormat(ar_money[2])  + '" /><br /><a href="javascript: seeMore(1); void(0);">see more</a><p>&nbsp;</p><p>&nbsp;</p>');

               
        		 $('#venn_chart_link_1').html('<p>&nbsp;</p>Top 3 categories. <br />	<b>Companies</b> ' + window.financed + '<span style="font-size: 10px; font-weight: bold;">' + window.orgnames + '</span> ');
			  }else{
			  	 	 $('#venn_chart_link_1').html('');
			  	 	 $('#venn_chart_1').html('');
			  
			  }
			});	    
			
//	}	
	if(window.pagetype != "cac"){
	$('#venn_chart_2').html("<center><img src=\"/images/ajax-loader.gif\" style=\"margin-top: 40px;\"/> Loading...</center>");
	$('#venn_chart_3').html("<center><img src=\"/images/ajax-loader.gif\" style=\"margin-top: 40px;\"/> Loading...</center>");
	
			var org_type = "Institute";	   
			jQuery.get("/index/get/?type="+id + "&ids=" + window.tblSel + "&org_type=" + org_type + window.map, {}, function(r) {		
			var json = eval(r);
			var ar_money = [];
			var ar_title = [];
			var ar_projects = [];
			for (var i = 0; i <= json.length - 1; ++i) {
				ar_money[i] = parseInt(json[i].money);
				ar_title[i] = json[i].title.replace("&","and");
				ar_projects[i] = json[i].projects; 
			}
			if(json.length != 0){
				var q = (ar_money[0] + ar_money[1] + ar_money[2])/30 ;
				var q_p = (ar_projects[0] + ar_projects[1] + ar_projects[2])/30 ;
				$('#venn_chart_2').html('<img src="http://chart.apis.google.com/chart?cht=v&chd=t:' +
				                 parseInt(ar_money[0]/q) + ',' +
				                 parseInt(ar_money[1]/q) + ',' +
				                 parseInt(ar_money[2]/q) + ',' +
				                 ar_projects[0]+ ',' +
				                 ar_projects[1]+ ',' +
				                 ar_projects[2]+ ',10&chs=400&chco=0000ff,ff0000,00ff00&chf=bg,s,FFFFFF&chdlp=bv&chdl=' +
				                 ar_title[0] + ' projects: ' + ar_projects[0] + ' budget: $' + dollarFormat(ar_money[0]) + '|' +
				                 ar_title[1] + ' projects: ' + ar_projects[1] + ' budget: $' + dollarFormat(ar_money[1])  + '|' +
				                 ar_title[2] + ' projects: ' + ar_projects[2] + ' budget: $' + dollarFormat(ar_money[2])  + '" /><br /><a href="javascript: seeMore(2); void(0);">see more</a><p>&nbsp;</p><p>&nbsp;</p>');
        		$('#venn_chart_link_2').html('<p>&nbsp;</p>Top 3 categories. <br /><b>Institutes</b> ' + window.financed + '<span style="font-size: 10px; font-weight: bold;">' +  window.orgnames + '');
			}else{
				$('#venn_chart_2').html('');
				$('#venn_chart_link_2').html('');
			}
			});
			
			var org_type = "University";	   
			jQuery.get("/index/get/?type="+id + "&ids=" + window.tblSel + "&org_type=" + org_type + window.map, {}, function(r) {		
			var json = eval(r);
			var ar_money = [];
			var ar_title = [];
			var ar_projects = [];
			for (var i = 0; i <= json.length - 1; ++i) {
				ar_money[i] = parseInt(json[i].money);
				ar_title[i] = json[i].title.replace("&","and");
				ar_projects[i] = json[i].projects; 
			}
			if(json.length != 0){
				var q = (ar_money[0] + ar_money[1] + ar_money[2])/30 ;
				
				$('#venn_chart_3').html('<img src="http://chart.apis.google.com/chart?cht=v&chd=t:' +
				                 parseInt(ar_money[0]/q) + ',' +
				                 parseInt(ar_money[1]/q) + ',' +
				                 parseInt(ar_money[2]/q) + ',' +
				                 ar_projects[0]+ ',' +
				                 ar_projects[1]+ ',' +
				                 ar_projects[2]+ ',10&chs=400&chco=0000ff,ff0000,00ff00&chf=bg,s,FFFFFF&chdlp=bv&chdl=' + 
				                 ar_title[0] + ' projects: ' + ar_projects[0] + ' budget: $' + dollarFormat(ar_money[0])  + '|' +
				                 ar_title[1] + ' projects: ' + ar_projects[1] + ' budget: $' + dollarFormat(ar_money[1])  + '|' +
				                 ar_title[2] + ' projects: ' + ar_projects[2] + ' budget: $' + dollarFormat(ar_money[2])  + '" /><br /><a href="javascript: seeMore(3); void(0);">see more</a><p>&nbsp;</p><p>&nbsp;</p>');
        		$('#venn_chart_link_3').html( ' <p>&nbsp;</p>Top 3 categories. <br /><b>Universities</b> ' + window.financed + '<span style="font-size: 10px; font-weight: bold;">' + window.orgnames + '');
			}else{
				$('#venn_chart_3').html(''); 
				$('#venn_chart_link_3').html('');
			}
			});
	}
	
 }//window.pagetype != "who"
}

function drawChart()
{
	var googleChartElement = document.getElementById("google-chart");
	googleChartElement.innerHTML = "<img src=\"/images/ajax-loader.gif\" /> Loading...";
	
	var trendsBy = getTrendType();
	var chartType = getTrendObject();
	var chartTypeExt = (chartType == 'orgs') ? trendsBy : chartType; // orgs are handled as "recipients" / "donors" - like separate chart types...
	var chartTypeExtDisplay = '';
	switch (chartTypeExt) {
		case 'recipients': chartTypeExtDisplay = 'Recipient Organizations'; break;
		case 'donors': chartTypeExtDisplay = 'Donor Organizations'; break;
		case 'countries': chartTypeExtDisplay = 'Countries'; break;
		case 'states': chartTypeExtDisplay = 'US States'; break;
		case 'categories': chartTypeExtDisplay = 'Categories'; break;
		case 'funding': chartTypeExtDisplay = 'Funding Mechanisms'; break;
		case 'years': chartTypeExtDisplay = 'Years'; break;
		case 'investigators': chartTypeExtDisplay = 'Investigators'; break;
	}
	
	var searchUrlCommon = '/projects/search/?aging=1&noparent=1';
	
	var trendsUrlSubfilter = '';
	var subfilter = $('#' + chartType + '_subfilter select').val();
	if (subfilter != 'none') {
		var subfilterValues = [];
		$('#subfilter_content input[type=checkbox]:checked').each(function(i, item) {
			subfilterValues.push(item.value);
		});
		if (subfilterValues.length) {
			trendsUrlSubfilter = '&filter=' + subfilter + '&filter_values=' + subfilterValues.toString();
			
			switch (subfilter) {
				case 'types': if (trendsBy == 'recipients') { searchUrlCommon += '&ro_type_ids=' + subfilterValues.toString(); } else { searchUrlCommon += '&f_org_type_ids=' + subfilterValues.toString(); } break;
				case 'countries': searchUrlCommon += '&countries_ids=' + subfilterValues.toString(); break;
				case 'states': searchUrlCommon += '&states_ids=' + subfilterValues.toString(); break;
				case 'funding': searchUrlCommon += '&fm_ids=' + subfilterValues.toString().toUpperCase(); break;
				case 'categories': searchUrlCommon += '&research_areas_ids=' + subfilterValues.toString(); break;
				case 'years': searchUrlCommon += '&fyear=' + subfilterValues.toString(); break;
			}
		}
	}
	
	switch (chartTypeExt) {
		case 'recipients': searchUrlCommon += '&ro_name_ids='; break;
		case 'donors': searchUrlCommon += '&f_org_name_ids='; break;
		case 'countries': if (trendsBy == 'recipients') { searchUrlCommon += '&countries_ids='; } else { searchUrlCommon += '&donor_countries_ids='; } break;
		case 'states': var usaId = 226; if (trendsBy == 'recipients') { searchUrlCommon += '&countries_ids=' + usaId + '&states_ids='; } else { searchUrlCommon += '&donor_countries_ids=' + usaId + '&donor_states_ids='; } break;
		case 'categories': searchUrlCommon += '&research_areas_ids='; break;
		case 'funding': searchUrlCommon += '&fm_ids='; break;
		case 'years': searchUrlCommon += '&fyear='; break;
		case 'investigators': searchUrlCommon += '&pid='; break;
	}
	
	
	jQuery.get("/index/get/?select=" + trendsBy + "&type=" + chartTypeExt + "&ids=" + window.tblSel + trendsUrlSubfilter, {}, function(r) {
		var json = eval(r);
		var data = new google.visualization.DataTable();
		data.addRows(1);
		var colors = [];
		for (var i = 0; i <= (json.length - 1); i++) {
			if (!json[i].name) {
				json[i].name = '[Empty name]';
			}
			json[i].name = (json[i].name).toLowerCase();
			json[i].name = (json[i].name[0]).toUpperCase() + (json[i].name).slice(1);
			var maxNameLength = 40;
			if (json[i].name.length > maxNameLength) {
				json[i].name = json[i].name.substring(0, maxNameLength) + '...';
			}
			data.addColumn('number', json[i].name);
			data.setValue(0, i, parseInt(json[i].money));
			colors.push(randomColor());
		}
		
		
		googleChartElement.innerHTML = '';
		var chart = new google.visualization.ColumnChart(googleChartElement);
		var chartWidth = json.length * 100;
		chartWidth = (chartWidth < 300) ? 300 : chartWidth;
		chartWidth = (chartWidth > 700) ? 700 : chartWidth;
		chart.draw(data, {
			width: chartWidth,
			height: 300,
			is3D: true,
			title: 'Funding by ' + chartTypeExtDisplay,
			axisColor: {stroke: 'gray'},
			axisFontSize: 12,
			legend: 'none',
			titleY: 'Funding, $',
			colors: colors,
			borderColor: 'EEEEEE',
			tooltipWidth: 280,
			backgroundColor: 'FFFFFF'
		});
		
		
		var legendNames = ['&nbsp;', chartTypeExtDisplay, 'Funding, $', 'Projects'];
		var legendColumns = [
			{name:'color', index:'color', align:'left', sortable:false, width:'35', resizable:false},
			{name:'name', index:'name', align:'left', sortable:true, width:'590'},
			{name:'funding', index:'funding', align:'left', sortable:true, width:'200', sorttype: 'currency'},
			{name:'projects', index:'projects', align:'left', sortable:true, width:'150', sorttype: 'integer'}
		];
		
		$('#gbox_chart-legend').replaceWith('<table id="chart-legend"></table>');
		$('#chart-legend').jqGrid({
			width: $('.content').width() - 20,
			height: '100%',
			datatype: 'clientSide',
			colNames: legendNames,
			colModel: legendColumns,
			caption: 'Legend'
		});
		$('.ui-jqgrid-titlebar-close').remove();
		
		for (var i = 0; i <= (json.length - 1); i++) {
			if (chartType == 'countries') {
				var projects_link = searchUrlCommon + json[i].id +'&countries=' + json[i].name;
			} else if (chartType == 'categories') {
				var projects_link = searchUrlCommon + json[i].id + '&categoryItem_' + json[i].id + '=' + json[i].name;
			} else {
				var projects_link = searchUrlCommon + json[i].id;
			}
			
			var data = {
				'color': '<div style="width: 100%; height: 100%; background-color: #' + colors[i] + '">&nbsp;</div>',
				'name': json[i].name,
				'funding': dollarFormat(json[i].money),
				'projects': '<a href="' + projects_link + '">' + json[i].count + '</a>'
			};
			$('#chart-legend').addRowData(i, data);
		}
	});
}

function in_array(where, what) {

     for(var i=0; i<where.length; ++i) {
        if(what == where[i])  return true;
	else return false;

    }
}

