//// SETUP ////

$(document).ready(function(){
	$(document).data('twitradarData', {});
});

// FUNCTIONS

var reloadFlash = function(tags, name)
{
	if(tags == '')return;

	var flash = getFlash(name);
	flash.resetRadar(tags);
}//reloadFlash

var resetRadar = function(name)
{
	if(name == undefined)name = 'twitradar';

	var flash = getFlash(name);
	flash.resetRadar();
}//resetRadar

var setSearch = function(query, mon_id, inst_id, since_id, callback)
{
	var params = {cache:false, rpp:50};
	if(since_id != 0)params['since_id'] = since_id;

	var searches;

	if(typeof(query) == 'string')searches = [query];
		else searches = query;

	for(var q in searches)
	{
		searches[q] = searches[q].replace('&quot;', '"');
	}//for q

	var search = {};
	search['monID'] = mon_id;
	search['query'] = query;
	search['queryStr'] = searches.join('|');
	search['params'] = params;
	search['searches'] = searches;
	search['results'] = [];
	search['callback'] = callback;
	search['multisearch'] = (searches.length > 1)?(true):(false);

	var data = $(document).data('twitradarData');
	data[inst_id] = search;
	$(document).data('twitradarData', data);
}//saveSearch

var getSearch = function(inst_id)
{
	var data = $(document).data('twitradarData');
	return data[inst_id];
}//getSearch

var searchTwitter = function(query, mon_id, inst_id, since_id, callback)
{
	setSearch(query, mon_id, inst_id, since_id, callback);
	queueTwitterSearch(inst_id);
}//searchTwitter

var queueTwitterSearch = function(inst_id)
{
	var query = getSearch(inst_id).searches.shift();
	var params = getSearch(inst_id).params;

	$.twitter.search(query, function(data, status){queueTwitterSearchReceive(inst_id, data, status);}, params);
}//qqueueTwitterSearch

var queueTwitterSearchReceive = function(inst_id, data, status)
{
	if(data['results'] != undefined)
	{
		var results = data['results'];
		getSearch(inst_id).results = getSearch(inst_id).results.concat(results);
	}//if results

	if(getSearch(inst_id).searches.length > 0)queueTwitterSearch(inst_id);
	else
	{
		if(results != undefined)
		{
			if(getSearch(inst_id).multisearch)getSearch(inst_id).results = getSearch(inst_id).results.sort(sortByID);
			data['results'] = getSearch(inst_id).results;
			searchTwitterReceive(data, inst_id);
		}//if results
	}//else
}//queueSearchReceive

var searchTwitterReceive = function(data, inst_id)
{
	var method = getSearch(inst_id).callback;
	var flash = getFlash(inst_id);

	if(data['results'] != undefined)
	{
		if(data['results'][0] != undefined)
		{
			try
			{
				flash[method](data);
			}//try
			catch(e)
			{
				alert(e);
			}//catch error

			cacheTweets(inst_id, data);
		}//if results
	}//if results
}//searchTwitterReceive

var cacheTweets = function(inst_id, data)
{
	var params = data;

	var mon_id = getSearch(inst_id).monID;
	if(mon_id.indexOf('TRY') >= 0)return;

	params['monID'] = mon_id;
	params['query'] = getSearch(inst_id).query;
	params['results'] = serialize(data['results']);

	if($('#tweetUL').length > 0)params['updateTweetList'] = 1;

	callActionQuiet(WEB_ROOT + '/monitor/savecache', params, 'POST');
}//cacheTweets

var sortByID = function(a, b)
{
	var ida = Number(a['id']);
	var idb = Number(b['id']);

	return (ida > idb)?(-1):(1)
}//sortByID

/*
var searchTwitter = function(query, mon_id, inst_id, since_id, callback)
{
	var params = {cache:false, rpp:100};
	if(since_id != 0)params['since_id'] = since_id;

	//document.getElementById('console').value += 'SINCE_ID: ' + params['since_id'] + "\n";
	//alert('SEARCHING FOR ' + inst_id);

	$.twitter.search(query, function(data, status){
		searchTwitterReceive(inst_id, data, status);
	}//function
	, params);

	$(document).data('tsearchCbk', callback);
	$(document).data('monID', mon_id);
	$(document).data('query', query);
}//searchTwitter

var searchTwitterReceive = function(inst_id, data, status)
{
	var method = $(document).data('tsearchCbk');
	var flash = getFlash(inst_id);

	if(data['results'] != undefined)
	{
		if(data['results'][0] != undefined)
		{
			flash[method](data);

			var params = data;

			var mon_id = $(document).data('monID');
			if(mon_id.indexOf('TRY') >= 0)return;

			params['monID'] = mon_id;
			params['query'] = $(document).data('query');
			params['results'] = serialize(data['results']);
			if($('#tweetUL').length > 0)params['updateTweetList'] = 1;

			callActionQuiet(WEB_ROOT + '/monitor/savecache', params, 'POST');
		}//if results
	}//if results
}//searchTwitterReceive*/

