function displayDataTable() {
	$("#data_tab").addClass("panel_table_on");
	$("#data_tab").removeClass("panel_table_off");
	$("#tweets_tab").addClass("panel_table_off");
	$("#tweets_tab").removeClass("panel_table_on");
	$("#chartData").attr("style", "display:inline;");
	$("#tweetStream").attr("style", "display:none");
}
function displayTweetsTable() {
	$("#data_tab").addClass("panel_table_off");
	$("#data_tab").removeClass("panel_table_on");
	$("#tweets_tab").addClass("panel_table_on");
	$("#tweets_tab").removeClass("panel_table_off");
	$("#chartData").attr("style", "display:none");
	$("#tweetStream").attr("style", "display:inline");
}

function togglePieTweets() {

	var onContents;
	var offContents;

	onContents = "<a href=\"#\" onclick=\"togglePieTweets(); return false;\">+ Total Number of Tweets</a>";
	offContents = "<a href=\"#\" onclick=\"togglePieReach(); return false;\">- Total Impressions</a>";

	$("#dashboard_pie_tweets").attr("style", "display:inline;");
	$("#dashboard_pie_reach").attr("style", "display:none");
	$("#pie_on").html(onContents);
	$("#pie_off").html(offContents);
}

function togglePieReach() {
	var onContents;
	var offContents;

	onContents = "<a href=\"#\" onclick=\"togglePieReach(); return false;\">+ Total Impressions</a>";
	offContents = "<a href=\"#\" onclick=\"togglePieTweets(); return false;\">- Total Number of Tweets</a>";

	$("#dashboard_pie_tweets").attr("style", "display:none;");
	$("#dashboard_pie_reach").attr("style", "display:inline");
	$("#pie_on").html(onContents);
	$("#pie_off").html(offContents);
}

function seeTweetsPie() {
	$("#tweets_link").addClass("pie_panel_on");
	$("#tweets_link").removeClass("pie_panel_off");
	$("#reach_link").addClass("pie_panel_off");
	$("#reach_link").removeClass("pie_panel_on");
	$("#dashboard_pie_tweets").attr("style", "display:inline;");
	$("#dashboard_pie_reach").attr("style", "display:none");
}
function seeReachPie() {
	$("#tweets_link_b").removeClass("pie_panel_on");
	$("#tweets_link_b").addClass("pie_panel_off");
	$("#reach_link_b").removeClass("pie_panel_off");
	$("#reach_link_b").addClass("pie_panel_on");
	$("#dashboard_pie_reach").attr("style", "display:inline");
	$("#dashboard_pie_tweets").attr("style", "display:none");
}
function displayFooterContent() {
	$("#footer").html("<a>&copy; 2009 tweetStory.com</a>" +
						"<a href=\"#\">customer service</a>" +
						"<a href=\"#\">manage your account</a>" +
						"<a href=\"#\">follow @tweetStory on twitter</a>"
					);	

}

function processDateSentiment() {

	startDate = $('#datepicker').val();
	endDate = $('#datepickerb').val();
	sentimentRange = $('#sentiment_filter').val();

	$('#i_startDate').val(startDate);
	$('#i_endDate').val(endDate);
	$('#i_sentimentRange').val(sentimentRange);
	drawCharts();
}

function html_entity_decode(str) {

	str = str;
	var pattern1 = /&lt;/g;
	var pattern2 = /&gt;/g;
	var pattern3 = /&apos;/g;
	var pattern4 = /&amp;/g;
	var pattern5 = /&apos;/g;
	var pattern6 = /&quot;/g;

	str = str.replace(pattern1, "<");
	str = str.replace(pattern2, ">");
	str = str.replace(pattern3, "'");
	str = str.replace(pattern4, "?");
	str = str.replace(pattern5, "'");
	str = str.replace(pattern6, "");
	str = str.replace("?amp;", "?");
	str = str.replace("&#039;", "'");

 return str;
}

function startImageDownload(imageSrc)
{
	var url=imageSrc;
	window.open(url,'Download');
}

function previewTwitterProfile(){

	username = $("#twitterUserName").val();
	requestURL = "http://twitter.com/users/show/" + username + ".json?callback=?";
	$.getJSON(requestURL, mycallback);

	function mycallback(data) {

		var g_id = data.id;
		var g_screen_name = data.screen_name;
		var g_name = data.name;
		var g_bio = data.description;
		var g_url = data.url;
		var g_pic = data.profile_image_url;

		var previewStringHtml = '';
			previewStringHtml += '<div class="preview_container">';
			previewStringHtml += '<div class="preview_pic"><img src=';
			previewStringHtml += g_pic;
			previewStringHtml += ' /></div>';
			previewStringHtml += '<div class="preview_bio_container">';
			previewStringHtml += '<div class="preview_name">';
			previewStringHtml += g_name;
			previewStringHtml += '</div>';
			previewStringHtml += '<div class="preview_bio">';
			previewStringHtml += g_bio;
			previewStringHtml += '</div>';
			previewStringHtml += '</div>';
			previewStringHtml += '</div>';

			previewStringHtml += '<input type=\"hidden\" name=\"p_id\" value=\"'+g_id+'\" />';
			previewStringHtml += '<input type=\"hidden\" name=\"p_name\" value=\"'+g_name+'\" />';
			previewStringHtml += '<input type=\"hidden\" name=\"p_screen_name\" value=\"'+g_screen_name+'\" />';
			previewStringHtml += '<input type=\"hidden\" name=\"p_bio\" value=\"'+g_bio+'\" />';
			previewStringHtml += '<input type=\"hidden\" name=\"p_url\" value=\"'+g_url+'\" />';
			previewStringHtml += '<input type=\"hidden\" name=\"p_pic\" value=\"'+g_pic+'\" />';

		if($("#preview_status").css("display") == "none") 
		{
			$("#preview_status").toggle().html(previewStringHtml);
		}else{
			$("#preview_status").html(previewStringHtml);
		}
	}
}



function createImageDownload(exportType) 
{

	var startDate = $('#datepicker').val();
	var endDate = $('#datepickerb').val();
	var reportID = $('#i_reportId').val();
	var trendingWord = '';
	var sentimentRange = $('#sentiment_filter').val();
	var cityFilter = '';;
	var stateFilter = '';;
	var countryFilter = '';
	var urlP = "";

	switch(exportType) 
	{
		case 1:
			var options = {};
			options['width'] = 700;
			options['height'] = 500;
			options['legend'] = 'bottom';
			options['showCategoryLabels'] = false;
			options['colors'] = ['#FF0000','#003366','#00FFFF'];
			urlP = "lineChart";
			contructDownload(urlP,options,exportType);
		break;
		case 2:
			var options = {};
			options['width'] = 300;
			options['height'] = 300;
			options['colors'] = ['#FF0000','#003366','#00FFFF'];
			urlP = "pieChartTweets";
			contructDownload(urlP,options,exportType);
		break;
		case 3:
			var options = {};
			options['region'] = 'world';
			options['width'] = 700;
			options['height'] = 500;
			urlP = "geoMapI";
			contructDownload(urlP,options,exportType);
		break;
	}

function contructDownload(urlP,options,exportType) 
{

		var query = new google.visualization.Query("/data/"+urlP+".php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");
		query.send(handleQueryResponse);

		function handleQueryResponse(response) {
			if (response.isError()) {
				alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
				return;
			}

		    var data = response.getDataTable();

			switch(exportType) 
			{
				case 1:
					var chart_img = new google.visualization.ImageLineChart(document.getElementById('annotated_timeline_b'));
					chart_img.draw(data, options);
				break;
				case 2:
					var chart_img = new google.visualization.ImagePieChart(document.getElementById('annotated_timeline_b'));
					chart_img.draw(data, options);
				break;
				case 3:
					var chart_img = new google.visualization.IntensityMap(document.getElementById('annotated_timeline_b'));
					chart_img.draw(data, options);
				break;
			}
			var letsSee = $("#annotated_timeline_b").html();
			alert(letsSee);

			var imageSrc = $('.goog-serverchart-image').attr('src');
			startImageDownload(imageSrc);
			$('#imageLineChart').val(imageSrc);
		}
	}

}

function displayReportNavigation(currentPage,reportID)
{

/*	var hyphen = "-";
	var gStartDate = startDate.replace(/\//g, hyphen);
	var gEndDate = endDate.replace(/\//g, hyphen);
*/
	var myarray=new Array(6)
	for (i=0; i <6; i++)
	myarray[i]=new Array(6)

	myarray[0][0]="Overview"
	myarray[0][1]="index"
	myarray[1][0]="Geography"
	myarray[1][1]="geography"
	myarray[2][0]="Trending Words"
	myarray[2][1]="trending"
	myarray[3][0]="Activity"
	myarray[3][1]="activity"
	myarray[4][0]="Influencers"
	myarray[4][1]="influencers"
	myarray[5][0]="Popular Links"
	myarray[5][1]="links"

	str = '';
	for (var k = 0; k < myarray.length; k++) {

		var l=0;
		var title = myarray[k][l];
		l++;
		var uri = myarray[k][l];	

		if(currentPage == uri)
		{
			str += "<div class=\"nav_on\"><a href=\"/report/"+uri+"/"+reportID+"\">"+title+"</a></div>"
		}else{
			str += "<div class=\"nav_off\"><a href=\"/report/"+uri+"/"+reportID+"\">"+title+"</a></div>"
		}
		l=0;
	}

	return str;

}

function setSessionDateRange(startDate,endDate,sentimentRange)
{

    var forwardSlash = "-";
    var gStartDate = startDate.replace(/\//g, forwardSlash);
    var gEndDate = endDate.replace(/\//g, forwardSlash);
	
	$.get("/report/setSession/"+gStartDate+"/"+gEndDate+"/"+sentimentRange+"");
}

/* Build a Report */
function previewResults() 
{
	var queryShortName = $("#queryShortName").val();
	var andKeywords = $("#andKeywords").val();
	var orKeywords = $("#orKeywords").val();
	var notKeywords = $("#notKeywords").val();
	var recipients = $("#recipients").val();

	$.get("/data/previewReport.php", { queryShortName: queryShortName, andKeywords: andKeywords, orKeywords:orKeywords, notKeywords:notKeywords, recipients:recipients }, function(data){
		if($("#preview_results_container").css("display") == "none")
		{
				$("#preview_results_container").html(data).slideToggle();
		}else{
				$("#preview_results_container").html(data);
		}
	});
}

/* New Report */
function newReport() 
{

	var queryShortName = $("#queryShortName").val();
	var andKeywords = $("#andKeywords").val();
	var orKeywords = $("#orKeywords").val();
	var notKeywords = $("#notKeywords").val();
	var recipients = $("#recipients").val();

	$.get("/data/newReport.php", { queryShortName: queryShortName, andKeywords: andKeywords, orKeywords:orKeywords, notKeywords:notKeywords, recipients:recipients }, function(data){
		alert(data);
//				$("#preview_results_container").html(data).slideToggle();
	});
}

/* Delete Report */
function confirm_delete(reportID)
{
	var answer = confirm('Are you sure you want to delete this report '+reportID+'?')
	if (answer){
		deleteReport(reportID)
	}
	else{
//		alert("Bye bye!")
	}
}

function deleteReport(reportID) 
{
	$.get("/data/deleteReport.php", { reportID: reportID }, function(data){
		$("#"+reportID+"_container").slideToggle();
	});	
}

/* Get Client Report */
function getClientReports(clientID,reportID,appLocation) 
{

	$.ajax({
		type: "GET",
		url: "/data/getClientReports.php",
		data: 'clientID='+clientID+'',
		success: function(data) {

			var arr = eval(data);
			var reportShortName;
			var reportIDQ;

			//filters
			var cityFilter;
			var stateFilter;
			var countryFilter;
			var trendingWordFilter;

			if(reportID == '0')
			{
				firstReport = arr[0].reportId;
				window.location = "/report/index/"+firstReport+"";
			}

			if (arr.length > 0) {
				for (var idx = 0; idx < arr.length; idx++) { 

					reportShortName = arr[idx].reportShortName;
					reportIDQ = arr[idx].reportId;
					cityFilter = arr[idx].cityFilter; 
					stateFilter = arr[idx].stateFilter;
					countryFilter = arr[idx].countryFilter;
					trendingWordFilter = arr[idx].trendingWordFilter;

					if(reportID == reportIDQ)
					{
						$("#client_reports_container").append("<div style=\"clear:left;\">" +
							"<div style=\"float:left;width:90%;\"><a href=\"/report/index/"+reportIDQ+"\" style=\"font-size:12px;color:#fff;text-decoration:none;\">"+reportShortName+"</a></div>"+
							"<div style=\"float:left;\"><img src=\"/images/report/icon_nav_arrow_right.gif\" /></div>" +
							"</div><br />");

						$("#report_title").html(reportShortName);

							//check for report filters, add to hidden inputs, and build sentiment display
							var filterArray=new Array(4)
								filterArray[0]=cityFilter;
								filterArray[1]=stateFilter;
								filterArray[2]=countryFilter;
								filterArray[3]=trendingWordFilter;
								buildFilters(filterArray);			

					}else{
						$("#client_reports_container").append("<div style=\"clear:left;\"><a href=\"/report/index/"+reportIDQ+"\" style=\"font-size:12px;color:#fff;\">"+reportShortName+"</a></div>");
					}
				}
			}
		}
   });
}

function buildFilters(filterArray) {

	var reportID = $("#i_reportId").val();
	var cityFilter = filterArray[0];
	var stateFilter = filterArray[1];
	var countryFilter = filterArray[2];
	var trendingWordFilter = filterArray[3];

	//city Filter
	if(cityFilter != null)
	{
		$("#g_cityFilter").val(cityFilter);
	}

	//stateFilter
	if(stateFilter != null)
	{
		$("#g_stateFilter").val(stateFilter);
	}

	//countryFilter
	if(countryFilter != null)
	{
		$("#g_countryFilter").val(countryFilter);
	}

	//trendingWordFilter
	if(trendingWordFilter != null)
	{
		$("#g_trendingWordFilter").val(trendingWordFilter);
	}

	displayReportFilters(reportID);

}

function displayReportFilters(reportID) 
{

	var cityFilter = $("#g_cityFilter").val();
	var stateFilter = $("#g_stateFilter").val();
	var countryFilter = $("#g_countryFilter").val();
	var trendingWordFilter = $("#g_trendingWordFilter").val();

	var reportFiltersHtml = '';

	if(cityFilter != '')
	{	
	 reportFiltersHtml += "<div class=\"filter_container_entity\" id=\"city_filter_container\"> "+cityFilter+" <a href=\"#\" onclick=\"removeGlobalFilter('"+cityFilter+"',reportID); return false;\"><img src=\"/images/report/icon_x.gif\" border=\"0\" /></a></div>";
	}
	if(stateFilter != '')
	{	
	 reportFiltersHtml += "<div class=\"filter_container_entity\" id=\"state_filter_container\"> "+stateFilter+" <a href=\"#\" onclick=\"removeGlobalFilter('"+stateFilter+"',reportID); return false;\"><img src=\"/images/report/icon_x.gif\" border=\"0\" /></a></div>";
	}
	if(countryFilter != '')
	{	
 	 reportFiltersHtml += "<div class=\"filter_container_entity\" id=\"country_filter_container\"> "+countryFilter+" <a href=\"#\" onclick=\"removeGlobalFilter('"+countryFilter+"',reportID);return false;\"><img src=\"/images/report/icon_x.gif\" border=\"0\" /></a></div>";
	}
	if(trendingWordFilter != '')
	{	
	 reportFiltersHtml += "<div class=\"filter_container_entity\">"+trendingWordFilter+" <a href=\"#\" onclick=\"removeGlobalFilter('"+trendingWordFilter+"',reportID); return false;\"><img src=\"/images/report/icon_x.gif\" border=\"0\" /></a></div>";
	}
	if(reportFiltersHtml == '')
	{
		reportFiltersHtml = ' &nbsp;none selected&nbsp; ';
	}

	var html = "<div style=\"float:left;height:20px;font-weight:bold;\">current filters: { </div>" +
				"<div style=\"float:left;\" id=\"filters_contain_display\">"+reportFiltersHtml+"</div>" +
				"<div style=\"float:left;height:20px;font-weight:bold;\"> }</div>" +
				"<div style=\"clear:left;\"></div>";
	$("#filters_container").html(html);
}

function setGlobalFilter(filterType) {
	
	switch(filterType) {
		
		case '0':
	
			var stateFilter = $("#g_stateFilter").val();
			var countryFilter = $("#g_countryFilter").val();

			alert('you would have just set a filter for '+stateFilter+', in the '+countryFilter+'');

		break;	
		case '1':

			var trendingWordFilter = $("#g_trendingWordFilter").val();
			alert('you would have just set a filter for '+trendingWordFilter+'');

		break;	
		case '2':
			alert('link');
		break;	
	}

/*
	$.get("/data/updateReport.php", { reportID: reportID }, function(data){
		alert(data);
	});
*/
}

function removeGlobalFilter(filterStr,reportID) {

	$("#state_filter_container").fadeOut("slow");
	$("#g_stateFilter").val('');
	drawCharts();

}

/* Search Functions */ 
function jtw_urlencode(str) {
    str = escape(str);

    str = str.replace(/\+/g, '%2B');
    str = str.replace(/%20/g, '+');
    str = str.replace(/\*/g, '%2A');
    str = str.replace(/\//g, '%2F');
    str = str.replace(/@/g, '%40');
    str = str.replace(/#/g, '%23');
    return str;
}

function do_search(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,trendingWord,personName,callback,sort)
{
    var search_url;
	var sort="t";

    search_url = "/data/tweetSearch.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"&personName="+personName+"&sortBy="+sort+"";

    jsonp_proxy(search_url, mycallback);
}

function jsonp_proxy(search_url, callback)
{
	$.getJSON(search_url, function(data){
		callback(data);
	});
}

function mycallback(arr)
{
	$("#tweetStream").html('');

	if (arr.results.length > 0) {

		lastid = arr.results[0].id;

		for (var i = 0; i < arr.results.length; i++) {

			var user      = arr.results[i].from_user;
			var tweet     = arr.results[i].text;
//				tweet     = html_entity_decode(tweet);
				tweet     = linkTweetString(tweet);
			var tstamp    = arr.results[i].created_at;
				tstamp    = relative_time(tstamp);
			var img       = arr.results[i].profile_image_url;
			var tid       = arr.results[i].id;
			var sentiment = arr.results[i].sentiment;

			switch(sentiment)
			{
				case 0:
					var sentimentDisplay = "<img src=\"/images/icon_neutral_sent.gif\" border=\"0\" id=\""+tid+"_img\" />";
					break;
				case 1:
					var sentimentDisplay = "<img src=\"/images/icon_positive_sent.gif\" border=\"0\" id=\""+tid+"_img\" />";
					break;
				case 2:
					var sentimentDisplay = "<img src=\"/images/icon_negative_sent.gif\" border=\"0\" id=\""+tid+"_img\" />";
					break;
				case 3:
					var sentimentDisplay = "<img src=\"/images/icon_mixed_sent.gif\" border=\"0\" id=\""+tid+"_img\" />";
					break;
			}

			$("#tweetStream").prepend("<div class=\"tweetContainer\">" +
				"<div class=\"sentimentOverideContainer\" id=\""+tid+"_edit_sentiment_container\"><b>change the sentiment</b>" +
				" <input type=\"radio\" name=\""+tid+"_sentimentOver\" value=\"1\" onclick=\"setSentimentOverride(this,'"+tid+"'); return false;\" />Positive "+ 
				" <input type=\"radio\" name=\""+tid+"_sentimentOver\" value=\"2\" onclick=\"setSentimentOverride(this,'"+tid+"'); return false;\" />Negative "+ 
				" <input type=\"radio\" name=\""+tid+"_sentimentOver\" value=\"0\" onclick=\"setSentimentOverride(this,'"+tid+"'); return false;\" />Neutral "+ 
				" <input type=\"radio\" name=\""+tid+"_sentimentOver\" value=\"3\" onclick=\"setSentimentOverride(this,'"+tid+"'); return false;\" />Mixed "+ 
				" &nbsp;<a href=\"#\" style=\"font-size:11px;\">cancel</a>" +
				"</div>" +
				"<div class=\"statusUpdateContainer\">" +
				"<div class=\"userPic\"><img src=\"" + img + "\" class=\"userPicThumb\"/></div>" +
				"<div class=\"statusUpdate\"><a class=\"username\" target=\"_blank\" href=\"http://twitter.com/" + user + "\">" + user + "</a> <a class=\"status\">" + tweet + "</a></div>" +
				"<div id=\"statusTimestamp\">" + tstamp + "</div></div><div style=\"float:right;width:20px;text-align:center;padding-top:5px;\" onmouseover=\"showEdit("+tid+"); return false;\" onmouseout=\"showEdit("+tid+"); return false;\"><a href=\"#\">" + sentimentDisplay + "</a><div id=\""+tid+"_edit_container\" style=\"display:none;\"><a style=\"font-size:11px;\" href=\"#\" onclick=\"displaySentimentMenu("+tid+"); return false;\">edit</a></div></div><div style=\"clear:left;\"></div>");
		} // end for

		var sortMenu = buildSortNav('0');

		$("#tweetStream").prepend("<div class=\"sortContainer\">" +
			"<div style=\"float:left;\">View:</div>" + sortMenu + 
			"</div>");
	} else {
		$("#tweetStream").html('hmmm, something went wrong.');
	}

	function buildSortNav(currentSelection) {

		var startDate = $('#datepicker').val();
		var endDate = $('#datepickerb').val();
		var reportID = $('#i_reportId').val();

		var sortArray=new Array(2)
		for (i=0; i <2; i++)
		sortArray[i]=new Array(2)

		sortArray[0][0] = "All";
		sortArray[0][1] = "0";
		sortArray[0][2] = "t";
		sortArray[1][0] = "Most Retweets";
		sortArray[1][1] = "0";
		sortArray[1][2] = "rt";
/*
		sortArray[1][0] = "Positive";
		sortArray[1][1] = "1";
		sortArray[1][2] = "t";
		sortArray[2][0] = "Negative";
		sortArray[2][1] = "2";
		sortArray[2][2] = "t";
		sortArray[3][0] = "Neutral";
		sortArray[3][1] = "3";
		sortArray[3][2] = "t";
		sortArray[4][0] = "Mixed";
		sortArray[4][1] = "4";
		sortArray[4][2] = "t";
*/
		sortStr = '';
		for (var k = 0; k < sortArray.length; k++) {

			var uri = k;
			var sortTitle = sortArray[k][0];
			var sentimentRange = sortArray[k][1];	
			var sSort = sortArray[k][2];	

			if(uri == currentSelection)
			{
				sortStr += "<div style=\"float:left;padding:5px;background-color:#ccc;\"><a href=\"#\" onclick=\"do_search('"+startDate+"','"+endDate+"','"+reportID+"','','"+sentimentRange+"','','','','','','mycallback'); return false;\">"+sortTitle+"</a></div>"
			} else {
				sortStr += "<div style=\"float:left;padding:5px;\"><a href=\"#\" onclick=\"do_search('"+startDate+"','"+endDate+"','"+reportID+"','','"+sentimentRange+"','','','','','','mycallback'); return false;\">"+sortTitle+"</a></div>"
			}
		}
		return sortStr;
	}

}

function showEdit(tid) {
	$("#"+tid+"_edit_container").toggle();
}

function displaySentimentMenu(tid) {
	$("#"+tid+"_edit_sentiment_container").toggle();
}

function setSentimentOverride(sentiment,tid) {

	var newSentiment = sentiment.value;
	switch(newSentiment)
	{
		case '0':
			var sentimentSrc = "/images/icon_neutral_sent.gif";
		break;
		case '1':
			var sentimentSrc = "/images/icon_positive_sent.gif";
		break;
		case '2':
			var sentimentSrc = "/images/icon_negative_sent.gif";
		break;
		case '3':
			var sentimentSrc = "/images/icon_mixed_sent.gif";
		break;
	}


	$("#"+tid+"_img").attr("src",sentimentSrc);
	$("#"+tid+"_edit_sentiment_container").toggle();
}

/* Influencers */
function displayInfluencers(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,trendingWord) {

	//check for global filters
	var globalStateFilter = $('#g_stateFilter').val();
	if(globalStateFilter != '')
	{
		stateFilter = globalStateFilter;
	}	

	var infurl = "/data/influencers.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"";

	$.getJSON(infurl,
		function(data){
			influencersCallback(data,reportID);
	});
}


function influencersCallback(arr,reportID)
{

	$("#influencers").html("");
	var appLocation = $("#i_uriId").val();
	var backgroundColor = '';

	if (arr.results.length > 0) {
		for (var i = 0; i < arr.results.length; i++) {

		var user =   arr.results[i].user;
		var img = arr.results[i].profile_image_url;
		var followerCount = arr.results[i].followerCount;
			followerCount = addCommas(followerCount);
		var reachCount = arr.results[i].reachCount;
			reachCount = addCommas(reachCount);
		var mentionCount = arr.results[i].mentionCount;
			mentionCount = addCommas(mentionCount);
		var mentionRatio = arr.results[i].mentionRatio;
		var ratioIdentifier = arr.results[i].ratioIdentifier;
		var tid = arr.results[i].id;
		var user_bio =   arr.results[i].bio;
		var influencerPosition = i+1;

		if(i % 2 == 0){
			backgroundColor = "#e7e7e7";
		}else{
			backgroundColor = "#fff";
		}

		var linkStr = '';
		if(appLocation == 'index')
		{
			linkStr = "<div class=\"influencer_mentions\"><a href=\"/report/influencers/"+reportID+"/"+i+"\"><b>" + mentionCount + "</b></a></div>";
		} else {
			linkStr = "<div class=\"influencer_mentions\"><a href=\"#\" onclick=\"displayTweets('','','','','','','','','','" + user + "','" + i + "','0','load','" + mentionCount + "'); return false;\"><b>" + mentionCount + "</b></a></div>";
		}

		$("#influencers").append("<div id=\"" + i + "_container_div\" style=\"height:30px;font-size:12px;padding:3px;background-color:" + backgroundColor + "\">" +
			"<div class=\"influencer_position\">" + influencerPosition + "</div>" +
			"<div class=\"influencer_pic\"><img src=\"" + img + "\" style=\"height:24px;width:24px;\" /></div>" +
			"<div class=\"influencer_user\"><a class=\"group\" href=\"http://www.twitter.com/"+user+"\">" + user + "</a></div>" +
			"<div class=\"influencer_followers\">" + followerCount + "</div>" +
			"<div class=\"influencer_reach\">" + reachCount + "</div>" + linkStr +
			"<div class=\"influencer_ratio\">" + mentionRatio + "</div>" +
			"<div class=\"influencer_ratio_display\">" + ratioIdentifier + "</div>" +
			"</div><div style=\"display:none;background-color:#738091;width:100%;\" id=\"" + i + "_container\"></div><div style=\"clear:left;\"></div>");
		}
	} else {
	
	}

	var userSpotlight = $("#i_influencerSpotlight").val();
	if(userSpotlight != '')
	{
		displayStatus = $("#0_container").css("display");
		if(displayStatus == 'none')
		{
			displayTweets('','','','','','','','','','dsttgames','2','0','load','1,113');
		}
	}
}

function linkTweetString(str)
{
	str=' '+str;

	str = str.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1" target="_blank">$1</a>');
	str = str.replace(/([^\w])\@([\w\-]+)/gm,'$1@<a href="http://twitter.com/$2" target="_blank">$2</a>');
	str = str.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2" target="_blank">#$2</a>');
	return str;
}

function buildTweetsPagination(mentionCount,rpp,divID,user) {

	mentionCount = mentionCount.replace(/,/g, '');
	numPages = mentionCount / rpp;
	numPages = Math.ceil(numPages); 

	str = '';
	i=1;
	numPages = numPages+1; 
	while (i <= numPages)
	{
		str += "<a style=\"color:#fff;margin-left:5px;\" href=\"#\" onclick=\"displayTweets('','','','','','','','','','" + user + "','" + divID + "','" + i + "','testest','" + mentionCount + "'); return false;\">" + i + "</a>"; 
		i++;
	}
	return str;
}  

function displayTweets(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,trendingWord,user,divID,page,place,mentionCount) {

	startDate = $('#datepicker').val();
	endDate = $('#datepickerb').val();
	reportID = $('#i_reportId').val();
	sentimentRange = $('#sentiment_filter').val();

	//check for global filters
	var globalStateFilter = $('#g_stateFilter').val();
	if(globalStateFilter != '')
	{
		stateFilter = globalStateFilter;
	}	

	var displayStatus = $("#"+divID+"_container").css("display");

	if(place == 'testest') { 

		var url = "/data/tweetSearch.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"&personName="+user+"&page="+page+"";

		var tweetsPagination = buildTweetsPagination(mentionCount,'10',divID,user);

		$.getJSON(url,
		function(data){
			tweetsCallback(data,divID,tweetsPagination);
		});

	}else{

		if(displayStatus == 'none')
		{
			var url = "/data/tweetSearch.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"&personName="+user+"&page="+page+"";

			var tweetsPagination = buildTweetsPagination(mentionCount,'10',divID,user);

			$.getJSON(url,
			function(data){
				tweetsCallback(data,divID,tweetsPagination);
			});

			$("#"+divID+"_container").slideToggle();
			$("#"+divID+"_div").removeClass("influencer_on");
			$("#"+divID+"_div").addClass("influencer_on");
		//	$("#"+divID+"_container_div").removeClass("influencer_on");
			$("#"+divID+"_container_div").addClass("influencer_off");

		}else{

			$("#"+divID+"_div").removeClass("influencer_off");
			$("#"+divID+"_div").addClass("influencer_on");
			$("#"+divID+"_container_div").removeClass("influencer_off");
			$("#"+divID+"_container_div").addClass("influencer_on");
			$("#"+divID+"_container").slideToggle();
//			$("#"+divID+"_container").html().empty();
			$("#"+divID+"_container").html('');
		}
	}
}


function tweetsCallback(arr,divID,tweetsPagination)
{
	$("#"+divID+"_container").html('');

	lastid = arr.results[0].id;
	if (arr.results.length > 0) {
		for (var i = 0; i < arr.results.length; i++) {

			var user =   arr.results[i].user;
			var img = arr.results[i].profile_image_url;
			var followerCount = arr.results[i].followerCount;
			var reachCount = arr.results[i].reachCount;
			var mentionCount = arr.results[i].mentionCount;
			var mentionRatio = arr.results[i].mentionRatio;
			var ratioIdentifier = arr.results[i].sentiment;

			switch(ratioIdentifier)
			{
				case 0:
					sentimentSign = '<b>-</b>'; 
				break;
				case 1:
					sentimentSign = "+";  
				break;
			}

			var tid = arr.results[i].id;
			var user_bio =   arr.results[i].bio;
			var tweet =   arr.results[i].text;
				tweet = html_entity_decode(tweet)
				tweet = linkTweetString(tweet)
			var influencerPosition = i+1;

			$("#"+divID+"_container").append("<div class=\"influence_tweet_divide\"><div id=\"tweet_" + i + "_container_div\" style=\"height:42px;font-size:13px;padding:3px;color:#000;background-color:#738091;\">" +
				"<div class=\"influencer_tweet\">" + tweet + "</div>" +
				"<div class=\"influencer_ratio_display\">" + sentimentSign + "</div>" +
				"</div><div style=\"clear:left;\"></div></div>");
		}

		//display pagination links for influencers
		$("#"+divID+"_container").prepend("<div style=\"background-color:#4b4b4b;color:#fff;padding:5px;font-size:14px;\">" +
			"Displaying tweets from user 1-25 " + tweetsPagination + " " +
			"<a style=\"color:#fff;margin-left:10px;\" href=\"#\" onclick=\"displayTweets('','','','','','','','','',user,divID,'2',''); return false;\">Next &raquo;</a></div>");
		} else {
	}
}

/* Activity */

function drawChartOverTime(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,trendingWord) {

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

	var	clientID = $('#i_clientId').val();
	var	startDate = $('#i_startDate').val();
	var endDate = $('#i_endDate').val();
	var reportID = $('#i_reportId').val();
	var sentimentRange = $('#sentiment_filter').val();
	var globalStateFilter = $('#g_stateFilter').val();

	//check for global filters
	if(globalStateFilter != '')
	{
		stateFilter = globalStateFilter;
	}	

	var query = new google.visualization.Query("/data/lineChart.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");
	query.send(handleQueryResponse);

	function handleQueryResponse(response) {
		if (response.isError()) {
			alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
			return;
		}

	    var data = response.getDataTable();

		var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('annotated_timeline'));
		var colorRange = buildChartColorScheme(sentimentRange); 

		chart.draw(data, {
			width: 610,
			height: 280,
			legendPosition: 'newRow',
			thickness:'3',
			fill:'9',
			displayRangeSelector:false,
			wmode: 'transparent',
			colors: colorRange
		});

		var chart_img = new google.visualization.ImageLineChart(document.getElementById('annotated_timeline_b'));
		chart_img.draw(data, {
			width: 870,
			height: 330,
			legend: 'bottom',
			showAxisLines: true,
			title: 'Alaska Mentions over Time',
			colors: colorRange
		});

		var imageSrc = $('.goog-serverchart-image').attr('src');
		$('#imageLineChart').val(imageSrc);

/*		google.visualization.events.addListener(chart, 'onmouseover', mouseoverHandler); */
/*		google.visualization.events.addListener(chart, 'onmouseout', mouseoutHandler); 
		google.visualization.events.addListener(chart, 'ready', readyHandler); */
		google.visualization.events.addListener(chart, 'rangechange', rangeHandler);

		var view = new google.visualization.DataView(data);
		view.setColumns( [ 0, 1, 2, 3, 4 ] );
		var table = new google.visualization.Table(document.getElementById('chartData'));
		table.draw(view, {sortAscending:false,sortColumn: 1});

		function mouseoverHandler(e) {
			$("#annotated_timeline").html(data.getValue(e.row,e.column)+' mentions');
		}

		function readyHandler() {
			startDate = 'Oct 01 2009';
			endDate = 'Oct 29 2009';
			chart.setVisibleChartRange(startDate,endDate);
		}

		function rangeHandler(start) {

			tstamp = new Date(start.start);
			tstamp_y = tstamp.getFullYear();
			tstamp_m = tstamp.getMonth();
			tstamp_d = tstamp.getDate();

			//convert the d, m to a 2 digit integer
			tstamp_mA = formatNumberLength(tstamp_m, 2);
			tstamp_dA = formatNumberLength(tstamp_d, 2);
			startDateZ = ""+tstamp_mA+"/"+tstamp_dA+"/"+tstamp_y+"";

			tstampb = new Date(start.end);
			tstamp_yy = tstampb.getFullYear();
			tstamp_mm = tstampb.getMonth();
			tstamp_dd = tstampb.getDate();

			tstamp_mmA = formatNumberLength(tstamp_mm, 2);
			tstamp_ddA = formatNumberLength(tstamp_dd, 2);
			endDateZ = ""+tstamp_mmA+"/"+tstamp_ddA+"/"+tstamp_yy+"";

			$('#datepicker').val(startDateZ);
			$('#datepickerb').val(endDateZ);

			var sDte = startDateZ;
			var eDte = endDateZ;
			reportID = $("#i_reportId").val();

			drawPieChartTweets(sDte,eDte,reportID,'','','','','','');
			drawPieChartReach(sDte,eDte,reportID,'','','','','','');
			displayInfluencers(sDte,eDte,reportID,'','','','','','');
			drawWordCloud(sDte,eDte,reportID,'','','','','','');
			drawGeoMapInternational(sDte,eDte,reportID,'','','','','','');

		}

		function mouseoutHandler(e) {
			$("#annotated_value").html('');
		}

		function selectHandler(e) {
			alert(geoMapData.getColumnLabel(e.row,e.column));
			showTweetResults();
	    }
	}
}

function formatNumberLength(num, length) {
    var r = "" + num;
    while (r.length < length) {
        r = "0" + r;
    }
    return r;
}

function relative_time(time_value) {
   var parsed_date = Date.parse(time_value);

   var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
   var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);

   if(delta < 60) {
       return 'less than a minute ago';
   } else if(delta < 120) {
       return 'about a minute ago';
   } else if(delta < (45*60)) {
       return (parseInt(delta / 60)).toString() + ' minutes ago';
   } else if(delta < (90*60)) {
           return 'about an hour ago';
       } else if(delta < (24*60*60)) {
       return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
   } else if(delta < (48*60*60)) {
       return '1 day ago';
   } else {
       return (parseInt(delta / 86400)).toString() + ' days ago';
   }
}



function drawBarChartOverTime(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,trendingWord) {

	var startDate = $('#datepicker').val();
	var endDate = $('#datepickerb').val();
	var reportID = $('#i_reportId').val();
	var sentimentRange = $('#sentiment_filter').val();

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

    var query = new google.visualization.Query("/data/lineChart.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");
	query.send(handleQueryResponse);

	function handleQueryResponse(response) {
		if (response.isError()) {
			alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
			return;
		}

		var geoMapData = response.getDataTable();

		var chart = new google.visualization.ColumnChart(document.getElementById('annotated_timeline'));
		chart.draw(geoMapData, {
			width: '100%',
			height: 280
		});
	}
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function buildChartColorScheme(sentimentRange) {

	switch(sentimentRange)
	{
		case '0':
			colorRange = ['green','red','#808080','#FF6600'];
		break;
		case '1':
			colorRange = ['green'];
		break;
		case '2':
			colorRange = ['red'];
		break;
		case '3':
			colorRange = ['#808080'];
		break;
		case '4':
			colorRange = ['#ff6600'];
		break;
	}
	return colorRange;
}

//Pie Charts - tweets
function drawPieChartTweets(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,trendingWord) {

	drawPieChartContainer('tweets');

	var startDate = $('#datepicker').val();
	var endDate = $('#datepickerb').val();
	var reportID = $('#i_reportId').val();
	var sentimentRange = $('#sentiment_filter').val();

	//check for global filters
	var globalStateFilter = $('#g_stateFilter').val();
	if(globalStateFilter != '')
	{
		stateFilter = globalStateFilter;
	}	

	$("#visualization_div").html('');

	var query = new google.visualization.Query("/data/pieChartTweets.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");
// alert("/data/pieChartTweets.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");

	query.send(handleQueryResponse);

	function handleQueryResponse(response) {
		if (response.isError()) {
			alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
			return;
		}

		sentimentRange = '0';

		var data = response.getDataTable();
		var ch1 = data.getValue(0, 1);
		var ch2 = data.getValue(1, 1);
		var ch3 = data.getValue(2, 1);
		var ch4 = data.getValue(3, 1);

		var chartTotal = ch1+ch2+ch3+ch4;

		var ch1per = Math.round((ch1/chartTotal)*100);
		var ch2per = Math.round((ch2/chartTotal)*100);
		var ch3per = Math.round((ch3/chartTotal)*100);
		var ch4per = Math.round((ch4/chartTotal)*100);

		$("#pie_total_tweets").html(addCommas(chartTotal));
		$("#pie_pos_tweets").html(addCommas(ch1)+"<br />positive");
		$("#pie_neg_tweets").html(addCommas(ch2)+"<br />negative");
		$("#pie_neu_tweets").html(addCommas(ch3)+"<br />neutral");
		$("#pie_mix_tweets").html(addCommas(ch4)+"<br />mixed");
		$("#pie_pos_tweets_per").html(ch1per+"% pos");
		$("#pie_neg_tweets_per").html(ch2per+"% neg");
		$("#pie_neu_tweets_per").html(ch3per+"% neu");
		$("#pie_mix_tweets_per").html(ch4per+"% mix");

		var container = document.getElementById('visualization_div');
		var visualization = new google.visualization.PieChart(container);
		var colorRange = buildChartColorScheme(sentimentRange); 

		visualization.draw(data,{
			width: 190,
			height: 170,
			backgroundColor:'#335072',
			is3D: false,
			legend:'none',
			colors: colorRange		
		});

		google.visualization.events.addListener(visualization, 'ready', function() 
		{
			sentimentRange = $('#sentiment_filter').val();
			switch(sentimentRange)
			{
				case '0':
				break;
				case '1':
					visualization.setSelection([{row: 0}]);
				break;
				case '2':
					visualization.setSelection([{row: 1}]);
				break;
				case '3':
					visualization.setSelection([{row: 2}]);
				break;
				case '4':
					visualization.setSelection([{row: 3}]);
				break;
			}
		});
	}
}
            
            
/* Pie Charts */
function drawPieChartReach(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,trendingWord) {

	drawPieChartContainer('reach');

	// Create and draw the visualization.
	//empty the contents of the div
	var startDate = $('#datepicker').val();
	var endDate = $('#datepickerb').val();
	var reportID = $('#i_reportId').val();
	var sentimentRange = $('#sentiment_filter').val();

	//check for global filters
	var globalStateFilter = $('#g_stateFilter').val();
	if(globalStateFilter != '')
	{
		stateFilter = globalStateFilter;
	}	

	$("#visualization_reach_div").html('');

	var query = new google.visualization.Query("/data/pieChartReach.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");

	query.send(handleQueryResponse);

	function handleQueryResponse(response) {
		if (response.isError()) {
			alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
			return;
		}

		sentimentRange = '0';

		var data = response.getDataTable();

		var ch1 = data.getValue(0, 1);
		var ch2 = data.getValue(1, 1);
		var ch3 = data.getValue(2, 1);
		var ch4 = data.getValue(3, 1);

		var chartTotal = ch1+ch2+ch3+ch4;

		var ch1per = Math.round((ch1/chartTotal)*100);
		var ch2per = Math.round((ch2/chartTotal)*100);
		var ch3per = Math.round((ch3/chartTotal)*100);
		var ch4per = Math.round((ch4/chartTotal)*100);

		$("#pie_total_reach").html(addCommas(chartTotal));
		$("#pie_pos_reach").html(addCommas(ch1)+"<br />positive");
		$("#pie_neg_reach").html(addCommas(ch2)+"<br />negative");
		$("#pie_neu_reach").html(addCommas(ch3)+"<br />neutral");
		$("#pie_mix_reach").html(addCommas(ch4)+"<br />mixed");
		$("#pie_pos_reach_per").html(ch1per+"% pos");
		$("#pie_neg_reach_per").html(ch2per+"% neg");
		$("#pie_neu_reach_per").html(ch3per+"% neu");
		$("#pie_mix_reach_per").html(ch4per+"% mix");

		var container = document.getElementById('visualization_reach_div');
		var visualization = new google.visualization.PieChart(container);
		var colorRange = buildChartColorScheme(sentimentRange); 

		visualization.draw(data,{
			width: 190,
			height: 170,
			backgroundColor:'#335072',
			is3D: false,
			legend:'none',
			colors: colorRange		
		});

		google.visualization.events.addListener(visualization, 'ready', function() 
		{
			sentimentRange = $('#sentiment_filter').val();
			switch(sentimentRange)
			{
				case '0':
				break;
				case '1':
					visualization.setSelection([{row: 0}]);
				break;
				case '2':
					visualization.setSelection([{row: 1}]);
				break;
				case '3':
					visualization.setSelection([{row: 2}]);
				break;
				case '4':
					visualization.setSelection([{row: 3}]);
				break;
			}
		});

	}
}

function drawPieChartContainer(type) {

	containerStr = "";
	switch(type)
	{
		case 'tweets':
			containerStr += "<div class=\"panel_pie_container\">";
			containerStr += "<div id=\"pie_total_tweets\" style=\"font-size:42px;margin-top:3px;color:#fff;\">0</div>";
			containerStr += "<div class=\"divide_clear\"></div>";
			containerStr += "<div style=\"float:left;text-align:center;font-size:12px;pdding-top:5px;padding-bottom:5px;width:100%;\">";
			containerStr += "<div class=\"pie_tweets_results\" id=\"pie_pos_tweets\">0</div>";
			containerStr += "<div class=\"pie_tweets_results\" id=\"pie_neg_tweets\">0</div>";
			containerStr += "<div class=\"pie_tweets_results\" id=\"pie_neu_tweets\">0</div>";
			containerStr += "<div  class=\"pie_tweets_results\" id=\"pie_mix_tweets\">0</div>";
			containerStr += "</div>";
			containerStr += "<div class=\"divide_clear\"></div>";
			containerStr += "</div>";
			containerStr += "<div style=\"clear:left;width:100%;margin-left:5px;text-align:center;width:100%;\">";
			containerStr += "<div id=\"pie_pos_tweets_per\" class=\"pie_tweets_results_per\">0% pos</div>";
			containerStr += "<div id=\"pie_neg_tweets_per\" class=\"pie_tweets_results_per\">0% neg</div>";
			containerStr += "<div id=\"pie_neu_tweets_per\" class=\"pie_tweets_results_per\">0% neu</div>";
			containerStr += "<div id=\"pie_mix_tweets_per\" class=\"pie_tweets_results_per\">0% neu</div>";
			containerStr += "</div>";
			containerStr += "<div style=\"clear:left;padding-top:10px;\" id=\"visualization_div\"></div>";
			containerStr += "<div style=\"height:17px;padding-left:15px;overflow:hidden;\"><img src=\"/images/icon_arrow.gif\" /></div>";
			containerStr += "<div id=\"pie_on\" class=\"pie_panel_on\"><a href=\"#\" onclick=\"togglePieTweets(); return false;\">+ Total Number of Tweets</a></div>";
			containerStr += "<div id=\"pie_off\" class=\"pie_panel_off\"><a href=\"#\" onclick=\"togglePieReach(); return false;\">- Total Impressions</a></div>";

			$("#dashboard_pie_tweets").html(containerStr);

		break;

		case 'reach':
			containerStr += "<div class=\"panel_pie_container\">";
			containerStr += "<div id=\"pie_total_reach\" style=\"font-size:42px;margin-top:3px;color:#fff;\">0</div>";
			containerStr += "<div class=\"divide_clear\"></div>";
			containerStr += "<div style=\"float:left;text-align:center;font-size:12px;pdding-top:5px;padding-bottom:5px;width:100%;\">";
			containerStr += "<div class=\"pie_tweets_results\" id=\"pie_pos_reach\">0</div>";
			containerStr += "<div class=\"pie_tweets_results\" id=\"pie_neg_reach\">0</div>";
			containerStr += "<div class=\"pie_tweets_results\" id=\"pie_neu_reach\">0</div>";
			containerStr += "<div  class=\"pie_tweets_results\" id=\"pie_mix_reach\">0</div>";
			containerStr += "</div>";
			containerStr += "<div class=\"divide_clear\"></div>";
			containerStr += "</div>";
			containerStr += "<div style=\"clear:left;width:100%;margin-left:5px;text-align:center;width:100%;\">";
			containerStr += "<div id=\"pie_pos_reach_per\" class=\"pie_tweets_results_per\">0% pos</div>";
			containerStr += "<div id=\"pie_neg_reach_per\" class=\"pie_tweets_results_per\">0% neg</div>";
			containerStr += "<div id=\"pie_neu_reach_per\" class=\"pie_tweets_results_per\">0% neu</div>";
			containerStr += "<div id=\"pie_mix_reach_per\" class=\"pie_tweets_results_per\">0% neu</div>";
			containerStr += "</div>";
			containerStr += "<div style=\"clear:left;padding-top:10px;\" id=\"visualization_reach_div\"></div>";
			containerStr += "<div style=\"height:17px;padding-left:15px;overflow:hidden;\"><img src=\"/images/icon_arrow.gif\" /></div>";
			containerStr += "<div id=\"pie_on\" class=\"pie_panel_on\"><a href=\"#\" onclick=\"togglePieReach(); return false;\">+ Total Impressions</a></div>";
			containerStr += "<div id=\"pie_off\" class=\"pie_panel_off\"><a href=\"#\" onclick=\"togglePieTweets(); return false;\">- Total Number of Tweets</a></div>";

			$("#dashboard_pie_reach").html(containerStr);

		break;
	}



}
/* Maps */

function drawMap(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,trendingWord,mapType) {

	var startDate = $('#datepicker').val();
	var endDate = $('#datepickerb').val();
	var reportID = $("#i_reportId").val();
	var sentimentRange = $('#sentiment_filter').val();
	var countryFilter = $('#i_countryFilter').val();
	var stateFilter = $('#i_stateFilter').val();
	var countryCode = $('#i_countryID').val();
		countryCode = countryCode.split('-'); 
		countryCode = countryCode[0];

	//check for global filters
	var globalStateFilter = $('#g_stateFilter').val();
	if(globalStateFilter != '')
	{
		stateFilter = globalStateFilter;
	}	

	switch(mapType)
	{
		case 'world':
			var query = new google.visualization.Query("/data/geoMapI.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");
// alert("/data/geoMapI.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");
		break;
		case 'country':
			var query = new google.visualization.Query("/data/geoMap.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");
// alert("/data/geoMap.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");
		break;
		case 'state':
			var query = new google.visualization.Query("/data/geoMapState.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");
// alert("/data/geoMapState.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"")
		break;
	}

	query.send(handleQueryResponse);

	function handleQueryResponse(response) {
		if (response.isError()) {
			alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
			return;
		}

		switch(mapType)
		{
			case 'world':
				$('#i_countryFilter').val('');
				$('#i_stateFilter').val('');

				var options = {};
				options['dataMode'] = 'regions';
				options['region'] = 'world';
				options['width'] = '100%';
				options['height'] = '360';
				options['showLegend'] = true;
				options['colors'] = [0xE0FFD4, 0xA5EF63, 0x50AA00, 0x267114];
			break;
			case 'country':
				var options = {};
				options['dataMode'] = 'regions';
				options['region'] = countryCode;
				options['width'] = '100%';
				options['height'] = '360';
				options['showLegend'] = true;
				options['colors'] = [0xE0FFD4, 0xA5EF63, 0x50AA00, 0x267114];
				options['showZoomOut'] = true;
			break;
			case 'state':
				var options = {};
				options['dataMode'] = 'markers';
				options['region'] = countryCode;
				options['width'] = '100%';
				options['height'] = '360';
				options['showLegend'] = true;
				options['colors'] = [0xE0FFD4, 0xA5EF63, 0x50AA00, 0x267114];
				options['showZoomOut'] = true;
			break;
		}

		var data = response.getDataTable();

		var container = document.getElementById('map_canvas');
		var geomap = new google.visualization.GeoMap(container);
		geomap.draw(data, options);

		google.visualization.events.addListener(geomap, 'regionClick', selectHandler);
		google.visualization.events.addListener(geomap, 'zoomOut', zoomOutHandler);

		var view = new google.visualization.DataView(data);
		view.setColumns( [ 0, 1 ] );
		var tablez = new google.visualization.Table(document.getElementById('chartData'));
		tablez.draw(view, {sortAscending:false,sortColumn: 1,allowHTML:true});

		function zoomOutHandler(e) {
			$('#i_stateFilter').val('');
			$('#i_countryFilter').val('');
			do_search(startDate,endDate,reportID,'',sentimentRange,'','','','','','mycallback');
			drawPieChartTweets(startDate,endDate,reportID,'',sentimentRange,'','','','');
			drawPieChartReach(startDate,endDate,reportID,'',sentimentRange,'','','','');
			drawMap('','','','','','','','','','world');
		}

		function selectHandler(e) {

			var appLocation = $("#i_uriId").val();
			var countryStatus = $("#i_countryFilter").val();
			var row = geomap.getSelection()[0].row;
			var eSelection = data.getValue(row, 0);
			var nSelection = data.getValue(row, 2);
			var countryCodeSelection = e['region'];

			if(appLocation == 'index')
			{
				window.location="/report/geography/"+reportID+"/world/" + eSelection + "/" + countryCodeSelection + "";
				exit;
			}

			switch(mapType)
			{

				case 'world':

					$('#i_countryID').val(countryCodeSelection);
					$('#i_countryFilter').val(nSelection);
				
					var sortType = '';
						sortType = 'country';

					do_search(startDate,endDate,reportID,'',sentimentRange,'','',nSelection,'','','mycallback');
					drawPieChartTweets(startDate,endDate,reportID,'',sentimentRange,'',eSelection,countryStatus,'');
					drawPieChartReach(startDate,endDate,reportID,'',sentimentRange,'',eSelection,countryStatus,'');
					drawMap('','','','','','','','','',sortType);

				break;
				case 'country':

					$('#i_countryID').val(countryCodeSelection);
					$('#i_stateFilter').val(nSelection);

					var sortType = '';
						sortType = 'state';

					do_search(startDate,endDate,reportID,'',sentimentRange,'',nSelection,countryStatus,'','','mycallback');
					drawPieChartTweets(startDate,endDate,reportID,'',sentimentRange,'',nSelection,countryStatus,'');
					drawPieChartReach(startDate,endDate,reportID,'',sentimentRange,'',nSelection,countryStatus,'');
					drawMap('','','','','','','','','',sortType);

				break;
				case 'state':

					$('#i_countryID').val(countryCodeSelection);
					$('#i_stateFilter').val(nSelection);
				
					var sortType = '';
						sortType = 'state';

					do_search(startDate,endDate,reportID,'',sentimentRange,'',nSelection,countryStatus,'','','mycallback');
					drawPieChartTweets(startDate,endDate,reportID,'',sentimentRange,'',nSelection,countryStatus,'');
					drawPieChartReach(startDate,endDate,reportID,'',sentimentRange,'',nSelection,countryStatus,'');
					drawMap('','','','','','','','','',sortType);

				break;
			}
		}
	}
}


/* Word Cloud */
function drawWordCloud(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,trendingWord) {

	var startDate = $('#datepicker').val();
	var endDate = $('#datepickerb').val();
	var reportID = $('#i_reportId').val();
	var sentimentRange = $('#sentiment_filter').val();
	var personName = $('#i_personName').val();

	//check for global filters
	var globalStateFilter = $('#g_stateFilter').val();
	if(globalStateFilter != '')
	{
		stateFilter = globalStateFilter;
	}	
	
	var query = new google.visualization.Query("/data/wordCloud.php?startDate="+startDate+"&endDate="+endDate+"&reportID="+reportID+"&comparisonID=&sentimentRange="+sentimentRange+"&cityFilter="+cityFilter+"&stateFilter="+stateFilter+"&countryFilter="+countryFilter+"&trendingWord="+trendingWord+"");
	query.send(handleQueryResponse);


	function handleQueryResponse(response) {
		if (response.isError()) {
			alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
			return;
		}

		var data = response.getDataTable();

		var options = {};
		var outputDiv = document.getElementById('wordcloud_visualization');
		var tc = new TermCloud(outputDiv);
		tc.draw(data, null);

		// highlightTrend();

		google.visualization.events.addListener(tc, 'select', handleSelect);

		var view = new google.visualization.DataView(data);
		view.setColumns( [ 0, 1 ] );
		var tablez = new google.visualization.Table(document.getElementById('chartData'));
		tablez.draw(view, {sortAscending:false,sortColumn: 1,allowHTML:true});

		function handleSelect() {

			var uriLocation = $('#i_uriId').val();
			$("#visualizaion_div").html('');

			var selection = tc.getSelection();
			var msg = 'selection: ';
			if (selection.length == 0) {
				msg += 'empty';
			} else {
				for (var i = 0; i < selection.length; i++) {
					if (i > 0) {
						msg += ' | ';
					}
					msg += selection[i].row;
					var ch1 = data.getValue(selection[i].row,0);
					$("#g_trendingWordFilter").val(ch1);

					if(uriLocation == 'index')
					{
						window.location="/report/trending/"+reportID+"/" + ch1 + "";
					}else{

		                drawPieChartTweets(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,ch1);
		                drawPieChartReach(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,ch1);
		                do_search(startDate,endDate,reportID,comparisonID,sentimentRange,cityFilter,stateFilter,countryFilter,ch1,personName,mycallback);
						
						clearKeyword(ch1); 
//						hilite(ch1); 
					}
				}
			}
		}
	}
}

function displayPopularLinks(startDate,endDate,reportID) 
{

	$.getJSON("/data/popularLinks.php", { startDate: startDate, endDate: endDate, reportID: reportID }, function(data){
		popularLinksCallback(data);
	});	


/*
$.ajax({
    type: "GET",
    url: "/data/popularLinks.php",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
	data: "startDate=" + startDate + "&endDate=" + endDate + "&reportID=" + reportID + "",
//	    data: "{startDate: " + startDate + ", endDate: " + endDate + ", reportID: " + reportID + "}",
    success: function(json) {
		popularLinksCallback(json);
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        $("#popular_links").html(XMLHttpRequest.responseText);
    }
});
*/


}

function popularLinksCallback(arr)
{
	$("#popular_links").html("");
		
	if (arr.results.length > 0) {
		for (var i = 0; i < arr.results.length; i++) {

		var tweetCount         =   arr.results[i].tweetCount;
			tweetCount         =   addCommas(tweetCount);
		var reachCount         =   arr.results[i].reachCount;
			reachCount         =   addCommas(reachCount);
		var linkTitle          =   arr.results[i].linkTitle;
		var linkHref           =   arr.results[i].linkHref;
		var linkIdentifier     =   arr.results[i].linkIdentifier;
		var linkDescription    =   arr.results[i].linkDescription;
		var first_mention_date =   arr.results[i].first_mention_date;
		var last_mention_date  =   arr.results[i].last_mention_date;
		var mediaDiv = '';

		if(linkIdentifier != '')
		{
			mediaDiv = "<div class=\"links_media\"><img src=\"http://i1.ytimg.com/vi/lmk94cdOVaw/default.jpg\" /></div>";
		}

		$("#popular_links").append("<div id=\"" + i + "_container_div\" style=\"font-size:12px;margin:20px;padding:0px 0px 5px 0px;border-bottom:1px dotted #bbb;\">" +

			"<div class=\"links_count_container\">" +
			"<div class=\"links_count\"><b>" + tweetCount + "</b><br />tweets</div>" +
			"<div class=\"links_reach\"><b>" + reachCount + "</b><br />reach</div>" +
			"</div>" +
			"<div class=\"links_info_container\">" + mediaDiv +	
			"<div class=\"links_title\"><a href=\"" + linkHref + "\" target=\"_blank\">" + linkTitle + "</a></div>" +
			"<div class=\"links_description\">" + linkDescription + "</div>" +
			"<div class=\"links_time\">" + first_mention_date + "</div>" +
			"</div><div style=\"clear:left;\"></div>" +
			"</div>");
		}
	} else {
	
	}
}

function showImageDownloadDiv(divID) 
{
	$("#line_toggle_div_"+divID+"").toggle();
}

function startImageDownload(imageSrc)
{
	var url=imageSrc;
	window.open(url,'Download');
}
function clearKeyword() {
	var oldKeyword = $("#i_trendingWord").val();
	$('.term-cloud span:contains(' + oldKeyword + ')').css("background", "white");
}

function hilite(keyword) {

	$(".term-cloud span:contains("+keyword+")").css("background", "yellow");
	$("#i_trendingWord").val(keyword);


}

jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}


/* Homepage */
function rotateHome(picID) {
  $("#main_splash_screens_image").fadeOut(140);
   switch(picID)
   {
    case 1:
        $("#main_splash_screens_image").attr({"src":"../images/graph_1.gif"});
        break;
    case 2:
        $("#main_splash_screens_image").attr({"src":"../images/graph_2.gif"});
        break;
    case 3:
        $("#main_splash_screens_image").attr({"src":"../images/graph_3.gif"});
        break;
   }
  $("#main_splash_screens_image").fadeIn(140);
 }




