var w = 630,
h = 450;

//protovis helpers
var scale = pv.Geo.scale()
.domain({lng: -128, lat: 24}, {lng: -64, lat: 50})
.range({x: 0, y: 0}, {x: w, y: h});
var format = pv.Format.number();
//date helper
Date.prototype.getDOY = function() {
	var onejan = new Date(this.getFullYear(),0,1);
	return Math.ceil((this - onejan) / 86400000);
}
var today = new Date();
var today_doy = 365;//max value
var today_doy = today.getDOY();//today's value
var day = today.getDate();
var month = today.getMonth();
var year = today.getFullYear();
//html vars
var viz_home;
var fig_copy_home;
var fig_copy;

//paper dimensions
var pw = 630;
var ph = 450;
var paper;

// renders bubble state view
function renderCityView(city_data,city){
	var city_name = city.replace(/_/g,' ');
	//state label
	$('#fig_copy').append('<div class="data" />');
	$('#fig_copy .data').append('<h2>'+city_name+', '+city_data['State']+'</h2>');
	$('#fig_copy .data').append('<hr />');
	$(city_view_copy).insertAfter('#fig_copy .data hr');

	$('#fig').html('');
	$('div#home_viz_content div#fig').css('top','20px');
	paper = Raphael('fig',pw,ph);	

	//data
	var events = city_data['Events To Date']*(today_doy/365);
	var intercepted = city_data['Intercepted']*(today_doy/365);
	var sampled = city_data['Sampled']*(today_doy/365);
	var reached = city_data['Reached']*(today_doy/365);
	
	//label and val raphael text objects, to be moved later
	var intercepted_label = paper.text(0,0,"Intercepted");
	var intercepted_val = paper.text(0,0,format(intercepted));
	intercepted_val.node.id = city+"_intercepted_val";
	var reached_label = paper.text(0,0,"Reached");
	var reached_val = paper.text(0,0,format(reached));
	reached_val.node.id = city+"_reached_val";
	var sampled_label = paper.text(0,0,"Sampled");
	var sampled_val = paper.text(0,0,format(sampled));
	sampled_val.node.id = city+"_sampled_val";
	var events_label = paper.text(0,0,"Events");
	var events_val = paper.text(0,0,format(events));
	events_val.node.id = city+"_events_val";
	events_label.node.id = city+"_events_label";

	var metric_vals = paper.set();
	var metric_labels = paper.set();
	metric_labels.push( reached_label, intercepted_label , sampled_label, events_label );
	metric_vals.push( reached_val, intercepted_val , sampled_val, events_val );
	metric_labels.attr({
		'font-family': 'verdana',
		'font-size': '12px',
		'fill': '#fff'
	});
	metric_vals.attr({
		'font-family': 'verdana',
		'font-size': '22px',
		'fill': '#fff',
		'font-weight': 'bold'
	});
		
	
	
	reached_scale = pv.Scale.linear(reached_min,reached_max).range(pw/5+50,pw/3);
	//approximate the diameter of the bubbles via conditional compilation for IE, webkit, and firefox
	/*@cc_on
	   /*@if (@_win32)
		var reached_diameter = Math.max( 
			reached_scale( city_data['Reached'] )+30);
		var intercepted_diameter =  Math.max( 
			Math.min( reached_diameter , (pw/5) )+30);
		var sampled_diameter = Math.max( 
			Math.min( reached_diameter , (pw/5) ) * (sampled/intercepted)+30);
		var events_diameter = Math.max( 
			75,
			36*2,
		Math.min( reached_diameter , (pw/5)) * (events/intercepted)+30);
	     @else @*/ 
		var reached_diameter;
		var intercepted_diameter;
		var sampled_diameter;
		var events_diameter;
		var browse_chrome = /AppleWebKit/.test(navigator.userAgent);
		if (browse_chrome || /Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
			var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number
			//if ( true || browse_chrome || ffversion<=3){ //true for debugging purposes
			if (browse_chrome || ffversion<=3){ 
			//same as IE, above
				var reached_diameter = Math.max( 
					reached_scale( city_data['Reached'] )+30);
				var intercepted_diameter =  Math.max( 
					Math.min( reached_diameter , (pw/5) )+30);
				var sampled_diameter = Math.max( 
					Math.min( reached_diameter , (pw/5) ) * (sampled/intercepted)+30);
				var events_diameter = Math.max( 
					75,
					36*2,
				Math.min( reached_diameter , (pw/5)) * (events/intercepted)+30);
				$('div#home_viz_content div#fig').css('display','block');
				if(!browse_chrome) $('div#home_viz_content div#fig').css('display','inline-table');
				else $('div#home_viz_content div#fig').css('display','inline');
			}
			else{ //if rapahel isn't being used, measure text using canvas api
				reached_diameter = Math.max( 
					reached_scale( city_data['Reached'] ),
					$('#'+city+'_reached_val')[0].getBBox().width + 30 );
				intercepted_diameter =  Math.max( 
					Math.min( reached_diameter , (pw/5) ), 
					$('#'+city+'_intercepted_val')[0].getBBox().width + 30 );
				sampled_diameter = Math.max( 
					Math.min( reached_diameter , (pw/5) ) * (sampled/intercepted) , 
					$('#'+city+'_sampled_val')[0].getBBox().width + 30 );
				events_diameter = Math.max( 
					$('#'+city+'_events_val')[0].getBBox().width + 30 , 
					$('#'+city+'_events_val')[0].getBBox().height*2 + $('#'+city+'_events_label')[0].getBBox().height , 
					Math.min( reached_diameter , (pw/5)) * (events/intercepted));
			}
		}
	   /*@end
	@*/
		
		
	var canvas_pos = { width: pw, height: ph };

	var city_metrics_dots = [ 
		new Circle( 430.2554326296034, 240.21543364750093, reached_diameter/2 , '#66ab00','Reached', format(city_data['Reached']) ),
		new Circle( 320.420033912353 , 114.8772566927746, 
			intercepted_diameter/2 , '#c94e16','Intercepted', format(city_data['Intercepted']) ),
		new Circle( 269.71690230936304 , 256.5876546052713 , 
			sampled_diameter/2 , '#e07400','Sampled', format(city_data['Sampled']) ),
		new Circle( 233.44828252843917 , 167.12891982031135,
			events_diameter/2 , '#44714d','Events', format(city_data['Events To Date']) )
	];
	var cp_canvas;
	if( document.all ) {
		$('div#home_viz_content div#fig').html('');//mootools cirlce packing
		cp_canvas = document.createElement('canvas');
		$(cp_canvas).addClass('city_view');
		$(cp_canvas).attr('id',city+"_canvas");
		$(cp_canvas).attr('width',pw);
		$(cp_canvas).attr('height',390);
		$(cp_canvas).css('top','-20px');
		$('div#home_viz_content div#fig').append(cp_canvas);
		cp_canvas = G_vmlCanvasManager.initElement(cp_canvas);
	}
	else {
		$('div#home_viz_content div#fig svg').css('display','none');//mootools cirlce packing
		$('div#home_viz_content div#fig')
			.append("<canvas class='city_view' id='"+city+"_canvas' width='"+pw+"' height='"+390+"'></canvas>")
			.css('top','0px');
		cp_canvas = $('canvas.city_view')[0];
	}
	var cp = new CirclePack( cp_canvas , city_metrics_dots );
	cp.run();

		
}

var marker_x_offset = (19/2+15);
var marker_y_offset = 27;
//adds markers to all of the cities featured in the national overview data set
function renderStateViz(){
	$('#home_viz_content').replaceWith('<div id="home_viz_content"></div>');

	$('#home_viz_container').html('');
	$('#home_viz_container').html(viz_home);
	if( ieEnv == false ){
		$('#fig').replaceWith(final_frame_fig.clone().css('opacity',0));
		$('#fig_copy').replaceWith(final_frame_copy.clone().css('opacity',0));

		$('#fig')
			.animate({opacity:1},{duration:ani_in,queue:false})
		$('#fig_copy')
			.animate({opacity:1},{duration:ani_in,queue:false})
	}

	$('#fig_copy').css('display','block');
	$('#fig').css('display','inline-block');


	reached_data.sort(function(a,b) { return a[1]-b[1]; });
	reached_min = reached_data[0][1];
	reached_max = reached_data[ reached_data.length-1 ][1];

	//populate 2011 home fig data
	d11 = teament_us_events['USA-2011'];
	$('#metrics_2011 li.events strong').html( format( Math.floor(d11['Events To Date']*(today_doy/365)) ) );
	$('#metrics_2011 li.reached strong').html( format( Math.floor(d11['Reached']*(today_doy/365)) ) );
	$('#metrics_2011 li.intercepted strong').html( format( Math.floor(d11['Intercepted']*(today_doy/365)) ) );
	$('#metrics_2011 li.sampled strong').html( format( Math.floor(d11['Sampled']*(today_doy/365)) ) );



	// build us_c_stats, a subset of all the state position data in us_lowres
	for(var c in cities_featured ) {
		state_string = c.replace(/ /g,'_');
		var state_marker = state_string + '_marker';
		$('<div id="'+state_marker+'" class="stateMarker"></div>').insertAfter('#map_gradient');
		$('#'+state_marker).append('<img state_name="'+c+'" src="images/datavis/marker_small.png" class="link" />');
		$('#'+state_marker).css('left',cities_featured[c].x-marker_x_offset+'px');
		$('#'+state_marker).css('top',cities_featured[c].y-marker_y_offset+'px');
	}
	/*@cc_on
	   /*@if (@_win32)
	   	$('#indexOf_marker,#map_marker,#filter_marker,#reduce_marker,#forEach_marker').remove();
	     @else @*/ 
	   /*@end
	@*/
	Cufon.replace('#fig_copy h1');
	Cufon.replace('#fig_copy h2');
	Cufon.replace('.stateCallout .data h2');

}

//roi landing page elements set
var lp_set;
// adds and builds upon the raphael canvas for ROI landing page / menu viz
function renderRoiViz(){
	$('#home_viz_content').replaceWith('<div id="home_viz_content"></div>');
	$('#home_viz_container').html(viz_home);


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

	$('#fig_copy').css('display','block');
	$('#fig').css('display','inline-block');
	$('#home_viz_content').css('visibility','visible');


	$('#fig_copy ul').remove();
	$( $('#fig_copy hr')[1] ).remove();

	$('div#home_viz_content div#fig').css('top','20px');
	$('#fig_copy img#copy_headline').attr('src','images/datavis/txtIRG.png');
	$('#fig_copy p')
		.css('font-size','11px')
		.html(roi_lp_copy);
	//$('<div id="roi_total"><strong>$86,341,299</strong><span>Generated in 2010</span></div>').insertAfter('#fig_copy hr')

	$('.metric_column').remove();

	Cufon.replace('#fig_copy h1');
	Cufon.replace('#fig_copy h2');

	paper = Raphael('fig',pw,ph);	

	lp_set = paper.set();
	var auto_bg = paper.image('images/datavis/roi_auto_bg.png', pw*.13 , 0 , 165 , 141 );
	var auto_icon = paper.image('images/datavis/roi_auto.png', pw*.14+165/3 , 0+141/3.1 , 39, 32 );
	var auto_text = paper.text( pw*.13+165/2 , 0+141*2/3 , 'Automotive' );
	auto_text.node.id = 'roi_auto_label';
	auto_text.attr(
		{
			'font-family': 'verdana',
			'font-size': '16px',
			'font-weight': 'bold',
			'fill': '#fff'
		});
	lp_set.push(auto_bg, auto_icon, auto_text );
	var beverages_bg = paper.image('images/datavis/roi_beverages_bg.png', pw*.5 , 0 , 187 , 131 );
	var beverages_icon = paper.image('images/datavis/roi_beverages.png', pw*.52+187/3 , 0+131/3.5 , 30, 45 );
	var beverages_text = paper.text( pw*.5+187/2 , 0+141*2/3 , 'Beverages' );
	beverages_text.node.id = 'roi_beverages_label';
	beverages_text.attr(
		{
			'font-family': 'verdana',
			'font-size': '16px',
			'font-weight': 'bold',
			'fill': '#fff'
		});
	lp_set.push(beverages_bg, beverages_icon , beverages_text );
	var perishables_bg = paper.image('images/datavis/roi_perishables_bg.png', pw*.13,  ph*.40+5 , 162 , 127 );
	var perishables_icon = paper.image('images/datavis/roi_perishables.png', pw*.14+162/3 , ph*.40+127/3 , 35, 27 );
	var perishables_text = paper.text( pw*.13+162/2 , ph*.41+127*2/3 , 'Perishables' );
	perishables_text.node.id = 'roi_perishables_label';
	perishables_text.attr(
		{
			'font-family': 'verdana',
			'font-size': '16px',
			'font-weight': 'bold',
			'fill': '#fff'
		});
	lp_set.push(perishables_bg, perishables_icon , perishables_text );
	var consumer_pack_bg = paper.image('images/datavis/roi_consumer_bg.png', pw*.5 , ph*.40 ,170,140);
	var consumer_pack_icon = paper.image('images/datavis/roi_consumer.png', pw*.51+170/3 , ph*.38+125/3 , 40 , 33 );
	var consumer_pack_text = paper.text( pw*.5+170/2 , ph*.41+2/3*125 , 'Consumer\nPackaged Goods' );
	consumer_pack_text.node.id = 'roi_consumer_pack_label';
	consumer_pack_text.attr(
		{
			'font-family': 'verdana',
			'font-size': '16px',
			'font-weight': 'bold',
			'fill': '#fff'
		});
	lp_set.push(consumer_pack_bg, consumer_pack_icon , consumer_pack_text );

	auto_bg.node.onclick = function(){ renderAutoViz(); };
	auto_icon.node.onclick = function(){ renderAutoViz(); };
	auto_text.node.onclick = function(){ renderAutoViz(); };
	auto_text.attr( { cursor: 'pointer' } );
	auto_bg.attr( { cursor: 'pointer' } );
	auto_icon.attr( { cursor: 'pointer' } );

	consumer_pack_bg.node.onclick = function(){ renderPackGoodsViz(); };
	consumer_pack_icon.node.onclick = function(){ renderPackGoodsViz(); };
	consumer_pack_text.node.onclick = function(){ renderPackGoodsViz(); };
	consumer_pack_text.attr( { cursor: 'pointer' } );
	consumer_pack_bg.attr( { cursor: 'pointer' } );
	consumer_pack_icon.attr( { cursor: 'pointer' } );

	beverages_bg.node.onclick = function(){ renderBeveragesViz(); };
	beverages_icon.node.onclick = function(){ renderBeveragesViz(); };
	beverages_text.node.onclick = function(){ renderBeveragesViz(); };
	beverages_text.attr( { cursor: 'pointer' } );
	beverages_bg.attr( { cursor: 'pointer' } );
	beverages_icon.attr( { cursor: 'pointer' } );

	perishables_bg.node.onclick = function(){ renderPerishablesViz(); };
	perishables_icon.node.onclick = function(){ renderPerishablesViz(); };
	perishables_text.node.onclick = function(){ renderPerishablesViz(); };
	perishables_text.attr( { cursor: 'pointer' } );
	perishables_bg.attr( { cursor: 'pointer' } );
	perishables_icon.attr( { cursor: 'pointer' } );
}

//roi consumer packaged goods viz page elements set
var persh_set;
function renderPerishablesViz(){
	lp_set.hide();

	var persh_data = roi_segments['Perishables'];
	$('#fig_copy img#copy_headline').attr('src','images/datavis/txtPerishables.png');
	$('#fig_copy p').html(roi_perishables_copy);
	$('div#roi_total').remove();
	Cufon.replace('#fig_copy h1');

	var events_bg = paper.image('images/datavis/roi_zoom_orange.png', pw*.13 , 0 , 433 , 205 );

	var events_val = paper.text( pw*.3 , ph*.05, format(persh_data['Events']*(today_doy/365)) );
	events_val.node.id = 'roi_events_val';
	var events_text = paper.text( pw*.3 , ph*.1, 'Events' );
	events_text.node.id = 'roi_events';

	var intercepts_val = paper.text( 395 , ph*.05, format(persh_data['Intercepts']*(today_doy/365)) );
	intercepts_val.node.id = 'roi_intecepts_val';
	var intercepts_text = paper.text( 395 , ph*.1, 'Intercepts' );
	intercepts_text.node.id = 'roi_intercepts';

	var samples_val = paper.text( pw*.3 , ph*.25, format(persh_data['Samples Purchased']*(today_doy/365)) );
	samples_val.node.id = 'roi_samples_val';
	var samples_text = paper.text( pw*.3 , ph*.30, 'Samples Purchased' );
	samples_text.node.id = 'roi_samples';

	var value_samples_val = paper.text( pw*.3 , ph*.35, '$'+format(persh_data['Values of Purchased Samples']*(today_doy/365)) );
	value_samples_val.node.id = 'roi_value_samples_val';
	var value_samples_text = paper.text( pw*.3 , ph*.40, 'Values of Purchased Samples' );
	value_samples_text.node.id = 'roi_value_samples';

	var incremental_val = paper.text( 395 , ph*.25, format(persh_data['Incremental Purchase/Event']*(today_doy/365)) );
	incremental_val.node.id = 'roi_intecepts_val';
	var incremental_text = paper.text( 395 , ph*.30, 'Incremental Purchase/Event' );
	incremental_text.node.id = 'roi_incremental';


	var metric_val = paper.set();	
	var metric_text = paper.set();
	metric_val.push( events_val , intercepts_val , samples_val , value_samples_val , incremental_val );
	metric_text.push( events_text , intercepts_text , samples_text , value_samples_text , incremental_text  );

	metric_val.attr(
		{
			'font-family': 'verdana',
			'font-size': '22px',
			'fill': '#fff',
			'font-weight': 'bold'
		});
	metric_text.attr(
		{
			'font-family': 'verdana',
			'font-size': '11px',
			'fill': '#fff'
		});
	var divider = paper.image('images/datavis/orangebracket.png', 93 , 235 , 417 , 19 );




	var roi_val_text = paper.text( 298 , 235+50 , '$' + format(persh_data['Total Revenue']*(today_doy/365)) );
	roi_val_text.node.id = 'roi_value';
	roi_val_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '36px',
			'fill': '#4585a3'
		});
	
	var purchasers_text = paper.text( 298 , 235+50+45 , '2012 Year To Date: Estimated Total Revenue' );
	purchasers_text.node.id = 'roi_estimated';
	purchasers_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '16px',
			'fill': '#215461'
		});

	var caption_text = paper.text( 298 , 235+50+45+23 , 'Revenue impact of consumer transactions at TEAM events during 2012 through '+parseInt(month+1)+'/'+day+'/'+year+'.' );
	caption_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '10px',
			'fill': '#215461'
		});

	$('#fig_copy').append('<a id="backToRoiLP" class="back_button"><img class="link" src="images/back.png"/></a>');
}
function renderBeveragesViz(){
	lp_set.hide();

	var bev_data = roi_segments['Beverages'];
	$('#fig_copy img#copy_headline').attr('src','images/datavis/txtBeverages.png');
	$('#fig_copy p').html(roi_bev_copy);
	$('div#roi_total').remove();
	Cufon.replace('#fig_copy h1');

	var events_bg = paper.image('images/datavis/roi_zoom_purple.png', pw*.13 , 0 , 433 , 205 );

	var events_val = paper.text( pw*.3 , ph*.05, format(bev_data['Events']*(today_doy/365)) );
	events_val.node.id = 'roi_events_val';
	var events_text = paper.text( pw*.3 , ph*.1, 'Events' );
	events_text.node.id = 'roi_events';

	var intercepts_val = paper.text( 395 , ph*.05, format(bev_data['Intercepts']*(today_doy/365)) );
	intercepts_val.node.id = 'roi_intecepts_val';
	var intercepts_text = paper.text( 395 , ph*.1, 'Intercepts' );
	intercepts_text.node.id = 'roi_intercepts';

	var samples_val = paper.text( pw*.3 , ph*.25, format(bev_data['Samples Purchased']*(today_doy/365)) );
	samples_val.node.id = 'roi_samples_val';
	var samples_text = paper.text( pw*.3 , ph*.30, 'Samples Purchased' );
	samples_text.node.id = 'roi_samples';

	var value_samples_val = paper.text( pw*.3 , ph*.35, '$'+format(bev_data['Values of Purchased Samples']*(today_doy/365)) );
	value_samples_val.node.id = 'roi_value_samples_val';
	var value_samples_text = paper.text( pw*.3 , ph*.40, 'Values of Purchased Samples' );
	value_samples_text.node.id = 'roi_value_samples';

	var incremental_val = paper.text( 395 , ph*.25, format(bev_data['Incremental Purchase/Event']*(today_doy/365)) );
	incremental_val.node.id = 'roi_intecepts_val';
	var incremental_text = paper.text( 395 , ph*.30, 'Incremental Purchase/Event' );
	incremental_text.node.id = 'roi_incremental';

	var value_incremental_val = paper.text( 395 , ph*.35, '$'+format(bev_data['Incremental Value']*(today_doy/365)) );
	value_incremental_val.node.id = 'roi_intecepts_val';
	var value_incremental_text = paper.text( 395 , ph*.40, 'Incremental Value' );
	value_incremental_text.node.id = 'roi_value_incremental';

	var metric_val = paper.set();	
	var metric_text = paper.set();
	metric_val.push( events_val , intercepts_val , samples_val , value_samples_val , incremental_val , value_incremental_val  );
	metric_text.push( events_text , intercepts_text , samples_text , value_samples_text , incremental_text , value_incremental_text  );

	metric_val.attr(
		{
			'font-family': 'verdana',
			'font-size': '22px',
			'fill': '#fff',
			'font-weight': 'bold'
		});
	metric_text.attr(
		{
			'font-family': 'verdana',
			'font-size': '11px',
			'fill': '#fff'
		});
	var divider = paper.image('images/datavis/purplebracket.png', 93 , 235 , 417 , 19 );




	var roi_val_text = paper.text( 298 , 235+50 , '$' + format(bev_data['Total Revenue']*(today_doy/365)) );
	roi_val_text.node.id = 'roi_value';
	roi_val_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '36px',
			'fill': '#4585a3'
		});
	
	var purchasers_text = paper.text( 298 , 235+50+45 , '2012 Year To Date: Estimated Total Revenue' );
	purchasers_text.node.id = 'roi_estimated';
	purchasers_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '16px',
			'fill': '#215461'
		});

	var caption_text = paper.text( 298 , 235+50+45+23 , 'Revenue impact of consumer transactions at TEAM events during 2012 through '+parseInt(month+1)+'/'+day+'/'+year+'.' );
	caption_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '10px',
			'fill': '#215461'
		});

	$('#fig_copy').append('<a id="backToRoiLP" class="back_button"><img class="link" src="images/back.png"/></a>');
}

//roi consumer packaged goods viz page elements set
var packGoods_set;
function renderPackGoodsViz(){
	lp_set.hide();

	var packGoods_data = roi_segments['Consumer Packaged Goods'];
	$('#fig_copy img#copy_headline').attr('src','images/datavis/txtConsumerGoods.png');
	$('#fig_copy p').html(roi_packGoods_copy);
	$('div#roi_total').remove();
	Cufon.replace('#fig_copy h1');

	var events_bg = paper.image('images/datavis/roi_events_bg.png', pw*.13 , ph*.13 ,216 , 114 );
	var intercepts_bg = paper.image('images/datavis/roi_intercepts_bg.png', pw*.41 , ph*.13 ,231 , 114 );

	var events_val = paper.text( pw*.27 , ph*.25, format(packGoods_data['Events']*(today_doy/365)) );
	events_val.node.id = 'roi_events_val';
	events_val.attr(
		{
			'font-family': 'verdana',
			'font-size': '22px',
			'fill': '#fff',
			'font-weight': 'bold'
		});
	var events_text = paper.text( pw*.27 , ph*.31, 'Events' );
	events_text.node.id = 'roi_events';
	events_text.attr(
		{
			'font-family': 'verdana',
			'font-size': '11px',
			'fill': '#fff'
		});


	var intercepts_val = paper.text( pw*.57 , ph*.25, format(packGoods_data['Intercepts']*(today_doy/365)) );
	intercepts_val.node.id = 'roi_intecepts_val';
	intercepts_val.attr(
		{
			'font-family': 'verdana',
			'font-size': '22px',
			'fill': '#fff',
			'font-weight': 'bold'
		});
	var intercepts_text = paper.text( pw*.57 , ph*.31, 'Intercepts' );
	intercepts_text.node.id = 'roi_intercepts';
	intercepts_text.attr(
		{
			'font-family': 'verdana',
			'font-size': '11px',
			'fill': '#fff'
		});

	var divider = paper.image('images/datavis/roi_divider.png', pw*.13 , 235 , 417 , 19 );


	//var roi_val_text = paper.text( pw*.43 , ph*.5 , '$' + format(packGoods_data['Estimated Total Revenue']*(today_doy/365)) );
	var roi_val_text = paper.text( pw*.43 , 235+50 , '$' + format(packGoods_data['Estimated Total Revenue']*(today_doy/365)) );
	roi_val_text.node.id = 'roi_value';
	roi_val_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '36px',
			'fill': '#4585a3'
		});
	
	var purchasers_text = paper.text( pw*.43 , 235+50+45, '2012 Year To Date: Estimated Total Revenue' );
	purchasers_text.node.id = 'roi_estimated';
	purchasers_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '21px',
			'fill': '#215461'
		});
	var caption_text = paper.text( pw*.43 , 235+50+45+23, 'Revenue impact of consumer transactions at TEAM events during 2012 through ' +parseInt(month+1)+'/'+day+'/'+year+'.' );
	caption_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '10px',
			'fill': '#215461'
		});

	$('#fig_copy').append('<a id="backToRoiLP" class="back_button"><img class="link" src="images/back.png"/></a>');
}
//roi auto viz page elements set
var auto_set;
function renderAutoViz(){
	lp_set.hide();

	var auto_data = roi_segments['Automotive'];
	$('#fig_copy img#copy_headline').attr('src','images/datavis/txtAutomotive.png');
	$('#fig_copy p').html(roi_auto_copy);

	$('div#roi_total').remove();

	var events_bg = paper.image('images/datavis/roi_zoom_blue.png', pw*.13 , 0 , 417 , 175 );
	var metrics_val = paper.set();
	var metrics_text = paper.set();

	var events_val = paper.text( pw*.27 , ph*.05, format(auto_data['Events']*(today_doy/365)) );
	events_val.node.id = 'roi_events_val';
	var events_text = paper.text( pw*.27 , ph*.09, 'Events' );
	events_text.node.id = 'roi_events';

	var intercepts_val = paper.text( pw*.57 , ph*.23, format(auto_data['Intercepts']*(today_doy/365)) );
	intercepts_val.node.id = 'roi_intecepts_val';
	var intercepts_text = paper.text( pw*.57 , ph*.29, 'Intercepts' );
	intercepts_text.node.id = 'roi_intercepts';
	var handraisers_val = paper.text( pw*.27 , ph*.23,
		 '' + format(auto_data['Handraisers']*(today_doy/365)) );
	handraisers_val.node.id = 'handraisers_value';
	var handraisers_text = paper.text( pw*.27 , ph*.29, 
		'Handraisers Who Go\nOn To Purchase Vehicles' );
	handraisers_text.node.id = 'handraisers_label';

	metrics_val.push( events_val, intercepts_val, handraisers_val );
	metrics_text.push( events_text, intercepts_text , handraisers_text );
	metrics_val.attr(
		{
			'font-family': 'verdana',
			'font-size': '22px',
			'fill': '#fff',
			'font-weight': 'bold'
		});
	metrics_text.attr(
		{
			'font-family': 'verdana',
			'font-size': '12px',
			'fill': '#fff'
		});

	var divider = paper.image('images/datavis/bluebracket.png', pw*.13 , 235 , 417 , 19 );
//	var divider = paper.image('images/datavis/bluebracket.png', pw*.13 , ph*.45 , 417 , 19 );


	var roi_val_text = paper.text( pw*.43 , 235+50 , '$' + format(auto_data['Estimated Total Revenue']*(today_doy/365)) );
	roi_val_text.node.id = 'roi_value';
	roi_val_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '36px',
			'fill': '#4585a3'
		});
	
	//var purchasers_text = paper.text( pw*.43 , ph*.65, '2012 Year To Date: Estimated Total Revenue' );
	var purchasers_text = paper.text( pw*.43 , 235+50+45, '2012 Year To Date: Estimated Total Revenue' );
	purchasers_text.node.id = 'roi_estimated';
	purchasers_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '21px',
			'fill': '#215461'
		});
	var caption_text = paper.text( pw*.43 , 235+50+45+23, 'Revenue impact of consumer transactions at TEAM events during 2012 through '+parseInt(month+1)+'/'+day+'/'+year+'.' );
	//var caption_text = paper.text( pw*.43 , ph*.7, 'Consumers impacted and estimated revenue generated so far in 2012 as of '+month+1+'/'+day+'/'+year+'.' );
	purchasers_text.node.id = 'roi_estimated';
	caption_text.attr(
		{
			'font-weight': 'bold',
			'font-family': 'verdana',
			'font-size': '10px',
			'fill': '#215461'
		});

	$('#fig_copy').append('<a id="backToRoiLP" class="back_button"><img class="link" src="images/back.png"/></a>');
}

// renders callout with details about the state, and ability to click in, i.e .stateCallout
var currentStateCallout = "";
function stateClick(data){
	var state_string = data.name.replace(/ /g,'_');
	var state_abbr = (teament_us_events[data.name]['State']=="") ? '' : ', '+teament_us_events[data.name]['State'];
	$('.stateCallout').html('');
	$('.stateCallout').append('<div class="data" />');
	$('.stateCallout .data').append('<h2>'+data.name+state_abbr+'</h2>');
	//if( data.name = "San Fransisco" ) $('.stateCallout .data h2').css('font-size','18px');
	$('.stateCallout .data').append('<div class="divider" />');
	$('.stateCallout .data').append('<strong>'+format(teament_us_events[data.name]['Events To Date']*(today_doy/365))+'</strong>');
	$('.stateCallout .data').append('<span>Events To Date</span>');
	$('.stateCallout .data').append('<strong>'+format(teament_us_events[data.name]['Intercepted']*(today_doy/365))+'</strong>');
	$('.stateCallout .data').append('<span>Intercepts To Date</span>');
	$('.stateCallout .data').append('<div class="divider" />');
	$('.stateCallout .data').append('<a id="'+state_string+'" href="#'+state_string+'" class="stateDetails">&raquo; Click to View Details</a>');

	if( ieEnv == false ) $('.stateCallout').fadeIn();
	else $('.stateCallout').css('display','block');

	$('.stateCallout').css('left',cities_featured[data.name].x-104-15+'px');
	if( cities_featured[data.name].y>126 ){
		$('.stateCallout').css('width',205+'px');
		$('.stateCallout').css('height',233+'px');
		$('.stateCallout .data').css('padding-top','10px');
		$('.stateCallout .data').css('padding-left','15px');
		$('.stateCallout .data').css('padding-right','15px');
		$('.stateCallout').css('top',cities_featured[data.name].y-265+'px');
		$('.stateCallout').css('background','url(images/home_dataviz_callout.png) no-repeat');
	}else{
		$('.stateCallout').css('width',233+'px');
		$('.stateCallout .data').css('padding-top','10px');
		if( cities_featured[data.name].x<=336 ){
			$('.stateCallout .data').css('padding-left','45px');
			$('.stateCallout .data').css('padding-right','35px');
			$('.stateCallout').css('left',cities_featured[data.name].x-7+'px');
			$('.stateCallout').css('top',cities_featured[data.name].y-40+'px');
			$('.stateCallout').css('background','url(images/datavis/modalWindow_topWestCoast.png) no-repeat');
		}else{
			$('.stateCallout .data').css('padding-left','15px');
			$('.stateCallout .data').css('padding-right','35px');
			$('.stateCallout').css('left',cities_featured[data.name].x-230-25+'px');
			$('.stateCallout').css('top',cities_featured[data.name].y-40+'px');
			$('.stateCallout').css('background','url(images/datavis/modalWindow_topEastCoast.png) no-repeat');
		}
	}
	Cufon.replace('.stateCallout .data h2');
}

var cities_featured = [];
var reached_data = [];
var reached_min = 0;
var reached_max = 0;
var reached_scale;

var ani_duration = 15000;
var ani_in = ani_duration*.1;
var ani_out = ani_duration*.1;
var ani_objects = [];
var loop = jQuery.runloop();

var final_frame_content;	
var final_frame_copy;	
var final_frame_fig;	

var markers_total = 0;
var markers_landed = 0;

function doVideoComplete(){
	$('#home_viz_content').replaceWith('<div id="home_viz_content"></div>');
	var f2_copy_container = $('#home_viz_content')
		.html( final_frame_content )


	$('#fig').html('').css('top','60px');
	$('#fig_copy').html('');
	$('#home_viz_container').css('background','none');


	var f2_img_svg = $('<div id="map_graident"></div>')
				.attr('id','map_gradient')
				.hide()
				.fadeIn(ani_in)
				.appendTo('#fig');
	render_frame_final(); 
	$('#home_viz_content').css('visibility','visible');
}

$(function(){
	//cities featured are those that have geo location
	//populate and sort reached_data to find relative reach values for viz
	for(var e in teament_us_events ) {
		if( us_cities[e] != undefined ) {
			markers_total++;
			cities_featured[e] = us_cities[e];
			reached_data.push([ e , teament_us_events[e]['Reached'] ]);
		}
	}
	//home copy


	$('div#home_viz_content div#fig').css('top','60px');

	final_frame_content = $('#home_viz_content').html();
	final_frame_copy = $('#home_viz_content #fig_copy');
	final_frame_fig = $('#home_viz_content #fig');

	// holds the html for state view copy and map
	viz_home = $('#home_viz_container').html();
	fig_copy_home = $('#fig_copy').html();
	fig_home = $('#fig').html();

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


	if( false || ieEnv == true ){

		
			$('#home_viz_container')
				.css('height',390)
				.css('background',
					'url("../images/datavis/home_viz_bg_wider_taller.png") no-repeat scroll 0 0 #ff9900');
			swfobject.embedSWF("/js/swf/playerwindow.swf", "home_viz_content", "960", "390", "9.0.0", "/js/swf/expressInstall.swf", {video_path:'teament_home_viz_ani_4_1.flv',videoComplete:'doVideoComplete'} , {allowScriptAccess: true, wmode:'transparent'} , null, function(){});
			/*
			var ieAni = $('<a style="height: 390px;" id="playerContainer"><img style="width: 921px;height: 363px;" src="http://spytest.teamenterprises.com/images/datavis/home_viz_bg_wider_taller.png"/></a>')
				.hide()
				.fadeIn(ani_in)
				.css('display','block')
				.css('margin','auto')
				.css('position','relative')
				.css('top',0)
				.appendTo('#home_viz_content');
			// our custom configuration is given in third argument
			var player = flowplayer("playerContainer", {
				src:"js/flowplayer/flowplayer.commercial-3.2.7.swf", 
				wmode:'transparent'
			},{
			backgroundColor: "rgba(220, 220, 220, 0.0)",
			key: '#$6b1cf7ce8d32a160352',
			logo: null,
			canvas: {
					backgroundColor:'#ff9900',
					backgroundGradient: 'none'
			},
			clip: { 
				logo: { displayTime: 0, bottom: 20, opacity: 0.0, fullscreenOnly: false },
				autoPlay: true ,
				url: "images/datavis/mov/teament_home_viz_ani_4_1.flv",
				onFinish: function(){
					var f2_copy_container = $('#home_viz_content')
						.html( final_frame_content );


					$('#fig').html('').css('top','60px');
					$('#fig_copy').html('');


					var f2_img_svg = $('<div id="map_graident"></div>')
								.attr('id','map_gradient')
								.hide()
								.fadeIn(ani_in)
								.appendTo('#fig');
					render_frame_final(); 
				}
			},
			plugins: { 
			   // disable autoloading of the controlbar plugin 
			   controls: null 
			}, 
			// disable the "overlay play button"
			play: null,
			// prevent pausing
			onBeforePause: function() {
			    return false;
			}
			
			});

			player.load( function(){ } );
			*/


	}else{
		// Note: only use 5% intervals (10% for <500ms durations)!
		loop.addMap({
			'0%' : render_frame_1 ,
			'30%' : render_frame_2 ,
			'95%' : render_frame_final 
			});


		loop.play(ani_duration); // duration set in milliseconds

		//$('#home_dots').prepend('<h2 id="pause">Pause</h2>');

		$('#loop_reset').live('click', function(){
			loop.reset();
		});

		$('#pause').live('click',function(){ 
			loop.pause(); 

			$(this).attr('id','play');
			$(this).html('play');
			
		});

		$('#play').live('click',function(){ 
			loop.play(); 

			$(this).attr('id','pause');
			$(this).html('pause');
			
		});
	}


});


function frame_fade(){
	$.each( ani_objects, function(i,el){
		el.fadeOut(ani_out,function(){ 
			$(this).remove();
		});
	});
	ani_objects = [];
}

function render_frame_1(){
	frame_1();
}
var frame_1 = function(){
	var f1_copy = $('<img src="images/datavis/txt_frame1.png" />')
				.hide()
				.fadeIn(ani_in)
				.css('display','block')
				.css('margin','auto')
				.css('position','relative')
				.css('top',175)
				.appendTo('#home_viz_content')
	ani_objects.push(f1_copy);
};

function render_frame_2(){
	frame_fade();
	frame_2();
}

function randomFromTo(from, to){
       return Math.floor(Math.random() * (to - from + 1) + from);
}

var frame_2 = function(){
	var f2_copy_container = $('#home_viz_content')
		.html( final_frame_content );

	$('#fig_copy').css('display','block');
	$('#fig').css('display','inline-block');


	$('#fig').html('').css('top','60px')
	$('#fig_copy').html('')

	var f2_copy = $('<img src="images/datavis/txt_frame2.png" />')
				.hide()
				.fadeIn(ani_in)
				.css('display','block')
				.css('position','relative')
				.css('top',25)
				.css('margin',30)
				.appendTo('#fig_copy')
	ani_objects.push(f2_copy);

	var f2_img_svg = $('<div id="map_graident"></div>')
				.attr('id','map_gradient')
				.hide()
				.fadeIn(ani_in)
				.appendTo('#fig')

        var r = Raphael('map_gradient',500,500);
        var svg = "http://www.w3.org/2000/svg";
        var xlnk = "http://www.w3.org/1999/xlink";
        var defs = document.getElementsByTagName('defs')[0];
        var svgcanv=document.getElementsByTagName('svg')[0];
        var clippath=document.createElementNS(svg,"clipPath");

        clippath.setAttribute("id","clip");
        svgcanv.appendChild(clippath);

        var n=r.image("images/datavis/whiteMap.png",0,0,468,283).attr({fill:"#111",opacity:0.7});
        n.node.setAttribute("clip-path","url(#clip)");

	var cp=r.path('M49,0c33.731,11.236,72.989,11.172,111,19  c15.999,1,32.001,2,48,3c13.658,2.788,37.512-2.733,42-2c0.912,3.651-0.038,2.045,2,4c12.195,5.379,21.054,5.031,36,5  c0,0.333,0,0.667,0,1c-1.097,4.255-0.893,8.371-2,11c-1.333,0.333-2.667,0.667-4,1c0,0.333,0,0.667,0,1c7-3.333,14-6.667,21-10  c-1.333,2-2.667,4-4,6c8.77,0.507,29.663-0.001,32,3c1,1,2,2,3,3c-1,1-2,2-3,3c3.333,1.333,6.667,2.667,10,4  c0.333,4.666,0.667,9.334,1,14c3.059-2.467,2.511-2.937,7-2c3.27,9.221,3.368,16.886,2,24c1.667,0.333,3.333,0.667,5,1  c9.023-6.106,19.45-9.412,25-19c-0.667-1.667-1.333-3.333-2-5c0.667,0,1.333,0,2,0c7.771-3.425,13.653-0.308,19-7  c-2.027-4.712-3.369-3.386,0-7c3.93-10.742,19.099-11.728,31-14c2.183-6.557,4.124-17.685,6-26c19.089,1.763,12.8,10.246,28,19  c-1.177,3.191-0.884,7.854-1,12c-6.624,2.055-17.232,10.098-17,16c-0.296,3.42-1.228,1.485,1,4c3.23,3.993,3.479,3.95,8,2  c-8.669,18.409-13.972,12.705-26,25c4.333-1.333,8.667-2.667,13-4c-0.667,1-1.333,2-2,3c-3.667,1.667-7.333,3.333-11,5  c0.673,7.001-1.349,13.689-4,21c-1.308,3.608,3.425,30.555,3,45c-10.57,1.558-34.997,35.058-36,44c5,8.333,10,16.667,15,25  c5.605,1.593,26.195,45.687,4,48c-3.874-13.017-18.669-15.835-22-30c-2.854,1.3-0.603,1.508-4,1c0.275-5.455,0.187-10.235-2-13  c-3.823-5.016-10.971-10.228-19-11c-2.18,4.309-4.312,5.196-10,6c-6.897-13.215-28.368-4.77-39-4c0.333,5.333,0.667,10.667,1,16  c-0.667,0.333-1.333,0.667-2,1c-7-0.667-14-1.333-21-2c-1.667-2-3.333-4-5-6c-4.389-1.634-32.948,5.958-32,1c-1,0.333-2,0.667-3,1  c0.333,2,0.667,4,1,6c-13.325,5.425-13.557,10.956-26,16c1,9.832-2.381,14.885,2,23c-1,0.333-2,0.667-3,1  c-6.666-2.667-13.334-5.333-20-8c-3.149-16.036-14.275-33.897-27-41c-3,0.333-6,0.667-9,1c-1.333,2.667-2.667,5.333-4,8  c-11.77-2.103-26.121-25.817-32-35c-16.89-0.283-30.541,6.373-48,0c-11.559-4.219-24.563-17.695-32-22  c-7.666-0.667-15.334-1.333-23-2c0.085-16.045-12.209-23.957-24-28c1.144-16.824-4.072-34.142-8-50c0-8.666,0-17.334,0-26  C9.988,50.26,26.74,35.486,33,2c4.666,2.333,9.334,4.667,14,7c0.333,0,0.667,0,1,0C48.333,6,48.667,3,49,0z').attr({'stroke':'#000000','fill':'#F00'});

        cp.node.id="xp";
        var cpx=document.getElementById('xp');
        clippath.appendChild(cpx);

var new_cities = { 
	/*
	Albuquerque : { x:219, y:156},
 
	Austin: { x:314, y:215},
 
	"Baton Rouge": { x:380, y:224},
 
	"Detroit": { x:430, y:80},
 
	"El Paso": { x:223, y:201},
 
	Eugene: { x:115, y:48},

	"Ft. Lauderdale": { x:494, y:241},
 
	Indianopolis: { x:409, y:105},
 
	Jacksonville: { x:474, y:210},
 
	"Kansas City": { x:337, y:124},

	"Las Vegas": { x:143, y:137},
 
	Milwaukee: { x:389, y:76},
 
	Nashville: { x:411, y:146},
 
	Omaha: { x:327, y:99},
 
	Philadelphia: { x:501, y:93},

	"San Diego": { x:118, y:171},
 
	"San Jose": { x:92, y:110},
	
	"Iowa City": { x:358, y:94},
 
	"St. Louis": { x:376, y:127},

	Topeka: { x:321, y:123},

	Sacramento: { x:104, y:100},
 
	Tucson: { x:180, y:186}
	*/

	
	};

	$.each( new_cities , function( i , v ){
		v.x = v.x+15;
		v.y = v.y+5;
	});


	reach_cities = $.extend( us_cities, new_cities );
	//var reach_cities = $.extend( us_cities, {} );

	var new_cities_7 = {

	/*
	Baltimore: { x:492, y:103},
 
	Charleston: { x:484, y:176},
 
	"Colorado Springs": { x:246, y:125},
 
	Columbia: { x:354, y:124},
 
	Gainsville: { x:471, y:220},
 
	"Oklahoma City": { x:310, y:162},
 
	Reno: { x:120, y:97}
	*/
	
	}

	$.each( new_cities_7 , function( i , v ){
		v.x = v.x+15;
		v.y = v.y+5;
	});

	reach_cities = $.extend( reach_cities , new_cities_7 );
	//for each city generate a marker
	for( var c in reach_cities ){
		var marker_y_random = randomFromTo(-35,-104);
		var city_marker = $('<div class="stateMarker"></div>')
			.append('<img src="images/datavis/marker_small.png" city="'+c+'" class="link" />')
			//.attr('id',us_cities[c].name)
			//.css('left', us_cities[c].x-marker_x_offset )
			.css('left', reach_cities[c].x-marker_x_offset )
			.css('top', marker_y_random )
			.css('opacity',0)
			//.delay(Math.random()*2001)
			.delay( randomFromTo( .1*ani_duration , .25*ani_duration ) )
			.insertAfter('#map_gradient')
			.animate( //marker animated to designated x,y from x coord of city and random top position 
				//{ top: us_cities[c].y-marker_y_offset, opacity: 1 },
				{ top: reach_cities[c].y-marker_y_offset, opacity: 1 },
				{ duration: 300, queue:true, complete: function(){ 
					marker_landed(++markers_landed);
					var marker_top = parseInt( $(this).css('top') );
					var marker_left = parseInt( $(this).css('left') );
					var c = r.circle( marker_left-72 , marker_top+23 , 0 ) //circle animated when pin drops
						.attr({'fill':'#488EBD','fill-opacity':.4,'stroke':'none'})
					c.node.setAttribute("clip-path","url(#clip)");
					//c.node.setAttribute("id",$(this).attr('id'));
					c.animate({r:randomFromTo(70,120)}, .25*ani_duration ,">",function(){
					} )

					
					} }
			);
	}
	
	
	
};

function DumpObjectIndented(obj, indent)
{
  var result = "";
  if (indent == null) indent = "";

  for (var property in obj)
  {
    var value = obj[property];
    if (typeof value == 'string')
      value = "'" + value + "'";
    else if (typeof value == 'object')
    {
      if (value instanceof Array)
      {
        // Just let JS convert the Array to a string!
        value = "[ " + value + " ]";
      }
      else
      {
        // Recursive dump
        // (replace "  " by "\t" or something else if you prefer)
        var od = DumpObjectIndented(value, indent + "  ");
        // If you like { on the same line as the key
        //value = "{\n" + od + "\n" + indent + "}";
        // If you prefer { and } to be aligned
        value = "\n" + indent + "{\n" + od + "\n" + indent + "}";
      }
    }
    result += indent + "'" + property + "' : " + value + ",\n";
  }
  return result.replace(/,\n$/, "");
}


function marker_landed(landed_count){

	if( landed_count == .3*markers_total ) //fadeIn copy frame3
		marker_landed_5p();
	/*
	if( landed_count == .8*markers_total ) //fadeIn copy frame4
		marker_landed_75p();
	if( landed_count == markers_total ){ //fadeIn copy frame5
		marker_landed_100p();
	}
	*/
}

function marker_landed_5p(){
	var f3_copy = $('<img src="images/datavis/txt_frame3.png" />')
				.hide()
				.fadeIn(ani_in)
				.css('display','block')
				.css('position','relative')
				.css('top',25)
				.css('margin',30)
	window.setTimeout( function(){
		$('#fig_copy img').delay(1000).replaceWith(f3_copy);
		ani_objects.push(f3_copy);
		window.setTimeout( 'marker_landed_75p()' , 500 );	
	}, 2000 );
}

function marker_landed_75p(){
	var f4_copy = $('<img src="images/datavis/txt_frame4.png" />')
				.hide()
				.fadeIn(ani_in)
				.css('display','block')
				.css('position','relative')
				.css('margin',30)
				.css('margin-top',80)
				.css('margin-bottom',10)
				.appendTo('#fig_copy')
	ani_objects.push(f4_copy);
	window.setTimeout( 'marker_landed_100p()' , 500 );	

}
function marker_landed_100p(){
	var f5_copy = $('<img src="images/datavis/txt_frame5.png" />')
				.hide()
				.fadeIn(ani_in)
				.css('display','block')
				.css('position','relative')
				.css('margin',30)
				.css('margin-top',0)
				.appendTo('#fig_copy')
	ani_objects.push(f5_copy);
}

function render_frame_final(){
	frame_fade();
	frame_final();
}



var frame_final = function(){


renderStateViz();

// calls the logic for creating the bubble vis, by triggering the click of link in stateCallout
$('body').delegate('.stateMarker img','click',function(){ //IE compatibility
	var state_string = $(this).attr('state_name').replace(/ /g,'_');
	$('.stateDetails#'+ state_string ).click();
});
// calls the logic for creating the callout on mouseover
$('body').delegate('.stateMarker img','mouseover',function(){ //IE compatibility
	stateClick({name:$(this).attr('state_name')});	
});
$('body').delegate('.stateMarker img','mouseout',function(){ //IE compatibility
	$('.stateCallout').css('display','none');
});

/* The following code, and the associated HTML elements at /templates/main/index.php are useful for defining the location of cities respective to the map image asset
var newMarkerCount = 0;
$('#map_gradient').click( function(e){	
	newMarkerCount++;
	$('<div id="newMarker_'+newMarkerCount+'" class="newMarker"></div>').insertAfter('#map_gradient')
		.append('<img src="images/datavis/marker_small.png" class="link" />')
	console.log( $('#newMarker_'+newMarkerCount) );
	$('#newMarker_'+newMarkerCount).css('display','block');
	$('#newMarker_'+newMarkerCount).css('position','absolute');
	$('#newMarker_'+newMarkerCount).css('left',e.layerX-marker_x_offset+15);
	$('#newMarker_'+newMarkerCount).css('top',e.layerY-marker_y_offset);
	$('#cityX').val(e.layerX);	
	$('#cityY').val(e.layerY);	
	$('#dialogForm').dialog('open');
});

city_coords = {};
$('#dialogForm').dialog({
	autoOpen: false,
	position: ['left','top'],
	width: 300,
	height: 220,
	modal: false,
	buttons: {
		'Save': function(){
			if(city_coords[$('#cityName').val()]!=undefined){
				city_coords[$('#cityName').val()].x = parseInt($('#cityX'));
				city_coords[$('#cityName').val()].y = parseInt($('#cityY').val());
			}else{
				city_coords[$('#cityName').val()] = {x:0,y:0};
				city_coords[$('#cityName').val()].x = parseInt($('#cityX').val());
				city_coords[$('#cityName').val()].y = parseInt($('#cityY').val());
			}
		},
		'Cancel': function(){
			$(this).dialog('close');
		}
	}
});
*/


// renders the events view for each state and calls function to render bubble viz
var state_events_filtered;
$('body').delegate('.stateDetails','click', function(e){
	//get state name from url
	var state_string = $(this).attr('href').split('#')[1];
	state_name = state_string.replace(/_/g,' ');

	// clear fig and fig_copy to be put back when user selectgs back button
	$('#fig_copy').html('');
	$('#fig').html('');

	//populate with the amount of discrete people to represent the metric value
	state_events_filtered = teament_us_events[state_name];
	//cleanup
	$.each(state_events_filtered, function( event_name , event_data ){
		if( event_name != "All" ) delete event_data["Events Last Week"];
	});


	//render the bubble viz
	renderCityView(state_events_filtered,state_string);
	$('#fig_copy .data')
		.append('<a id="backToMapView" class="back_button"><img class="link" src="images/back.png"/></a>');
	Cufon.replace('#fig_copy .data h2');


});

$('body').delegate('a#backToMapView','click', function(e){
	renderStateViz();
});

$('body').delegate('a#backToRoiLP','click', function(e){
	renderRoiViz();
});

// homepage slideshow dot nav 
var dot_active = $('<img src="images/home_slider_dot_active.png"/>');
var dot_inactive = $('<img src="images/home_slider_dot_inactive.png"/>');

var dot_link = ['state_viz','roi_viz','video'];

function updateSliderDots( dot ){
	$('#home_dots li span').html(dot_inactive);
	dot.children('img').replaceWith(dot_active);
}

$('#rightSlide').click( function(){
	var current_slide = $(this).attr('current_slide');
	if( current_slide <2 ) current_slide++;
	else current_slide = 0;

	$('#home_dots span#'+dot_link[current_slide]).click();
	$('.slideNav').attr('current_slide',current_slide);
});

$('#leftSlide').click( function(){
	var current_slide = $(this).attr('current_slide');
	if( current_slide >0 ) current_slide--;
	else current_slide = 2;

	$('#home_dots span#'+dot_link[current_slide]).click();
	$('.slideNav').attr('current_slide',current_slide);
});

$('body').delegate('#home_dots span#state_viz','click',function(){
	renderStateViz();
	updateSliderDots($(this));
});

$('body').delegate('#home_dots span#roi_viz','click',function(){
	renderRoiViz();
	updateSliderDots($(this));
});

$('body').delegate('#home_dots span#video','click',function(){
	$('#home_viz_content').replaceWith('<div id="home_viz_content"></div>');
	$('#home_viz_content').html(video);
	$('#home_viz_content object').css('position','relative');
	$('#home_viz_content object').css('left','-1px');
	updateSliderDots($(this));
});


}
//});




