//SWFObject Stuff
var flashvars = {};
flashvars.chart_id = "chart_my";
flashvars.name = "chart_my";
flashvars.library_path = "/js/charts/charts_library";
var params = {};
params.menu = "false";
params.quality = "best";
params.scale = "noscale";
params.salign = "l";
params.wmode = "transparent";
params.devicefont = "false";
params.allowfullscreen = "true";
params.allowscriptaccess = "sameDomain";
var attributes = {};
attributes.align = "middle";
swfobject.embedSWF("/js/fyf/charts.swf", "chart_my", "900", "225", "9.0.0", false, flashvars, params, attributes);

var currentActiveServices = new Array();
function getCurrentActiveServices()
{
	if(currentActiveServices.length==0)
	{
		$.ajax({
				type:	'GET',
				url:	"/ajax/getCurrentActiveServices/4", 
				dataType:	'json',
				success: function(data)
				{
					currentActiveServices[0] = new Array();
					currentActiveServices[1] = new Array();
					
					$.each(data, function(key,value){
						currentActiveServices[0].push(value.service_name);
						currentActiveServices[1].push(value.pretty_name);
					});
				
				},
				async: false
			});
	}
	return currentActiveServices;
}
getCurrentActiveServices();

function figureOutHash()
{
	var hash_value = window.location.hash;
	
	var sendgrid = hash_value.split("?");
	window.location.hash = sendgrid[0];
	
	hash_value = window.location.hash;
	
	var options = hash_value.split(",");
	
	
	var start_metric = options[0].toLowerCase();
	var start_range = options[1];
	
	//$(".metric").removeClass("selected");
	$(".range").removeClass("selected");
	
	start_metric = start_metric.replace('#', '');
	
	current_metric = 'delta_'+start_metric;
	$("#currentMetric").html(start_metric);
	$("#metric_"+start_metric).hide();
	
	if(start_metric=='fans')
		$("#metric_plays").addClass('top');
		
	if(logged_in_user=='false' && start_range=='all_time')
		start_range ='month';
	
	switch (start_range) 
	{
		case "month":
			current_range = "month";
			$("#range_month").addClass("selected");
			break;
		case "week":
			current_range = "week";
			$("#range_week").addClass("selected");
			break;
		case "all_time":
			current_range = "all_time";
			$("#range_all_time").addClass("selected");
			break;
		default:
			current_range = "month";
			$("#range_month").addClass("selected");
	}
	
	var artists = new Array();
	
	
	
	var s=0;
	for(var i=2; i<options.length; i++)
	{
		
		if(options[i].indexOf('/')!=-1)
			options[i] = options[i].substring(0, options[i].indexOf('/'));
		
		if(IsNumeric(options[i]) && options[i]!='')
		{
			artists[s] = options[i];
			s++;
		}
		else
		{
			if(options[i].indexOf("edit")!=-1)
				editURL(options[i].substring(4));
		}
	}
	
	var new_band_ids = new Array();
	
	for(var j=0; j<artists.length; j++)
	{
		for(var q=j+1; q<artists.length; q++)
			if(artists[j]==artists[q])
				q = ++j;
		new_band_ids.push(artists[j]);
	}
	
	
	var artist_string = new_band_ids.join(",");
	
	newBandList(artist_string);	
}


$(document).ready(function(){
			
	//Figure out proper hashtag stuff
	figureOutHash();	
	$(".tooltips").tipsy({gravity: 's'});

	$(".range").click(function(){

		if(!$(this).hasClass('selected') && $(this).attr('id')!='rangeLoginOrSignup')
		{
			$(".range").removeClass('selected');
			$(this).addClass('selected');
			range = $(this).attr('id').substring(6);
			
			current_range = range;
			toggleNetworkBoxes();	
			Loaded_Chart("chart_my");
		}
		
		return false;
	});
	
	$("body:not(.metric)").click(function(){
		if($("#graphMetricDropDown").is(":visible"))
			$("#graphMetricDropDown").hide();
	});
	
	$(".metric").click(function(){
		
		
		
		metric = $(this).attr('id').substring(7);
		current_metric = "delta_"+metric;
		
		$("#currentMetric").html(metric);
		$("#graphMetricDropDown").hide();
		$("#metricSelector").removeClass("opened");
		
		toggleNetworkBoxes();
		Loaded_Chart("chart_my");
		
		$(".metric").show();
		$("#metric_"+metric).hide();
		
		if(metric=='fans')
			$("#metric_plays").addClass('top');
		else
			$("#metric_plays").removeClass('top');
		
		
		if(metric=='comments')
			$("#metric_views").addClass('bottom');
		else
			$("#metric_views").removeClass('bottom');
		
		
		return false;
	});
	
	$(".compareInput").change(function(){
		var num = $(this).attr('id').substring(5);	
		if($(this).val() == '')
		{
			$("#band"+num).val('');
		}
	});
	
	
	
	$('#query1').autocomplete({
	  serviceUrl: '/ajax/autocomplete_artist',
	  width: 154,
	  delimiter: /(,|;)\s*/,
	  deferRequestBy: 0, //miliseconds
	  onSelect: function(value, data){
				var num = 1;
				doStuff(value, data, num);
	  
			}
	});
	
	$('#query2').autocomplete({
	  serviceUrl: '/ajax/autocomplete_artist',
	  width: 154,
	  delimiter: /(,|;)\s*/,
	  deferRequestBy: 0, //miliseconds
	  onSelect: function(value, data){
				var num = 2;
				doStuff(value, data, num);
				
			}
	});
	
	$('#query3').autocomplete({
	  serviceUrl: '/ajax/autocomplete_artist',
	  width: 154,
	  delimiter: /(,|;)\s*/,
	  deferRequestBy: 0, //miliseconds
	  onSelect: function(value, data){
				var num = 3;
				doStuff(value, data, num);
			}
	});
	
	$('#query4').autocomplete({
	  serviceUrl: '/ajax/autocomplete_artist',
	  width: 154,
	  delimiter: /(,|;)\s*/,
	  deferRequestBy: 0, //miliseconds
	  onSelect: function(value, data){
				var num = 4;
				doStuff(value, data, num);
	  
			}
	});
	
	
});

function doStuff(value, data, num)
{
	
	if(IsNumeric(data))
	{
		$("#band"+num).val(data);
		var next_box = parseInt(num)+1;	
		compareArtists();

	}
	else
	{
		$("#query"+num).val('');
		$("#band"+num).val('');
		addBand(data);
	}
}
			function wordsplit(items) { var charect = ""; for (var n = 1 ; n <= items.length ; n++) { if (items.substring(n-1,n) == " ") { charect+="+"; } else { charect+=items.substring(n-1,n); } } return charect; }

function Loaded_Chart(id)
{
	var checked = true;
	
	if(current_bands.length == 1)
	{
		checked = false;
		if(all_bands.hasItem(current_bands[0]))
		{
			$("#loadingtiles").hide();
			var band1 = all_bands.getItem(current_bands[0]);
			if(!band1.enough)
			{
				checked = false;
				$("#notenoughdata").load("/ajax/has_enough_data/"+current_bands[0]);
				
				$("#notenoughdata").show(function(){
					$("#statsContentHolder").hide();
					$(".compareInput").val('');
					$(".combands").val('');
					$("#emailSettings").focus();
					$(".globalMessage").slideUp();
				});
				
				
				return;
			}
			else
				checked = true;			
		}	
	}
	
	if(checked)
	{
		$("#statsContentHolder").show();
		$("#notenoughdata").hide();
	}
	
	
	
	
	if(id == 'chart_my')
	{
		//need to figure out when everything has loaded.
		if(dataIsReady() & checked)
		{
						$("#loadingtiles").hide();

			getArtistNames();
			$(".inPlainText").html(inPlainText());
			$(".inPlainText").slideDown(function(){
				
				
				getTiles();
				getSingleArtistNetworkBoxes();
				
				
				var xml = showTheGraph();
				try{
					
					document['chart_my'].Update_XML( xml, true);
					
					$(".globalMessage").slideUp();
					
					
				}catch(err)
				{

				}
				
				
				$(".globalMessage").slideUp();
				
				var artist_string = current_bands.join(",");
	
				
				
				var artist_names='';
				
				
				
				
				for(var i=0; i<all_bands.length; i++)
				{
					if(all_bands.hasItem(current_bands[i]))
						artist_names += (all_bands.getItem(current_bands[i])).name +'/';
				}
							
				var new_hash = "#"+current_metric.substring(6)+","+current_range+","+artist_string +'/'+wordsplit(artist_names);
				window.location.hash = new_hash;
				
				
				
				$(".globalMessage").slideUp();
			});
			
			
			
			
		}
		else
		{	
			if(!$(".globalMessage").is(":visible"))
			{
				$("#topBar").prepend('<div class="globalMessage">Loading...<\/div>');
			}
			
			setTimeout(function(){
				
				Loaded_Chart('chart_my');
			},500);
		}
	}
}

function compareArtists(one_id)
{	
	profileDates = new Hash();
	var band_ids = new Array();

	if(one_id==undefined)
	{
		var c=0;
		for(var i=1; i<=4; i++)
		{
			if($("#band"+i).val() !='')
			{
				band_ids[c] = $("#band"+i).val();
				c++;    		
			}
		}
	}
	else
		band_ids[0] = one_id;
	
	//lets make sure there arent any duplicates in this array
	
	var new_band_ids = new Array();
	
	for(var j=0; j<band_ids.length; j++)
	{
		for(var q=j+1; q<band_ids.length; q++)
			if(band_ids[j]==band_ids[q])
				q = ++j;
		new_band_ids.push(band_ids[j]);
	}

	newBandList(new_band_ids.join(","));
	
	//current_bands = band_ids;
	Loaded_Chart('chart_my');
	
	
}

function IsNumeric(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	
	 
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}
	
	return IsNumber;
   
}

function closeBox(id)
{
	$(".headerTile .g"+id).parent().parent().hide();
	for(var i=1; i<5; i++)
		if($("#band"+i).val() == id)
			$("#band"+i).val('');
	
	
	
	compareArtists();
}