/**
 * Javascript functions for the activism map
 * 
 * @author: Raymond Manalo
 * Housingworks, Inc.
 * @date: 3/4/2010
 * 
 */

var ACTIVISMMAP = {
	
	/**
	 * builds the map using the maphilight options instead of using the defaults
	 */
	buildMap:function(){
		//Set a Bubble Popup with events controlled inside the HTML tag.
		
		$('.map').maphilight({
				fill: true //fill the shape
				,fillColor: 'F6C25A' //color to fill shape with
				,fillOpacity: 1 //opacity of the fill (0=fully 1=fully opaque)
				,stroke: false //outline the shape
				,strokeColor: 'ff0000' //color of the outline
				,strokeOpacity: 1 //opacity of the outline (0=fully 1=fully opaque)
				,strokeWidth: 1 //thickness of the outline
				,fade: true //fade in shapes on mouseover
				,alwaysOn: false //always show hilighted areas note: currently has no effect if supplied as metadata on the area itself
			});
	},
	
	buildCSSMap:function(){
		$(".moreinfo").each(function(){
			var t;
			var isanimated = false;
			var isvisible = false;
			var popup = $(".floatingpanel",this);
			$(this).mouseover(function(){
				//console.log(t);
				//console.log(isvisible+'|'+isanimated);
				if (t) clearTimeout(t);
				if (!isvisible && !isanimated){
					var tmp = this.id;
					var tmpArr = tmp.split('_');
					var stateName = tmpArr[1];
					//console.log(stateName);
					isanimated = true;
					popup.css({opacity:0,display:"block",marginTop:15}).animate({marginTop:0,opacity:1},500, function(){
						$("#panel").css({backgroundPosition:"0px -593px"}).animate({opacity:1},1000);
						isanimated=false;isvisible=true;
						ACTIVISMMAP.getStateData(stateName);
						});
					
				} else {
					return;
				}
			}).mouseout(function(){
				if (t) clearTimeout(t);
				if (!isanimated && isvisible){
					t = setTimeout(
						function(){
							isanimated=true;
							popup.animate({marginTop:-10,opacity:0},500, function(){popup.css({display:"none"});isvisible=false;isanimated=false;});
							$("#panel").animate({opacity:1}).css({backgroundPosition:"0px 0px"});}, 500);
					
				} else {
					return;
				}
			});
			//on click event
			$(this).click(function(){
				//alert('hello')
				var stateInfo = $("#statepanel");
				stateInfo.css({display:"block"});
			})
		});
	},
	
	getMapData:function(obj){
		//console.log(obj)
 		stPopup = $('#pop-up');
		stPopup.html('loading...');
		var statename = $(obj).attr('urltitle');
		//prevState = $('#prev-state');
		
		//prevState.attr('value',statename);
		//var ps = $("#prev-state").attr({value:'hello'});
		//console.log($('#prev-state'));
		/*var ajax = $.ajax({
			type: "GET",
			url: '/aidsvote/state-data/'+stateName,
			success: function(r, status){
				//console.log(r);
				ACTIVISMMAP.loadStateText(r);
			}
		});*/
 	},
	
	removeDisplay:function(obj){
		//alert('yes')
		//console.log($("div:hidden"));
		//console.log($("div:visible"));
	},
	
	getStateData:function(state){
		var txtobj = $("div#"+state+".floatingpanel p");
		$(txtobj).html('loading...');
		var ajax = $.ajax({
			type: "GET",
			url: "activismmapdata.php",
			dataType: 'json',
			data: {
				state: state
			},
			success: function(r, status){
				//console.log(r);
				//console.log(r.data);
				var rData = r.data;
				var stateDesc = rData.desc;
				var stateNameFull = rData.name;
				var stateStats = rData.stats;
				//console.log(stateDesc+'|'+stateNameFull+'|'+stateStats);
				var mystr = stateDesc + stateStats;
				$(txtobj).html(mystr);
			}
		});
	},
	
	getStateDataCoord:function(obj){
		stPopup = $('#pop-up');
		stPopup.html('loading...');
		var stateName = $(obj).attr('title');
		//console.log(stateName);
		var ajax = $.ajax({
			type: "GET",
			url: "activismmapdata.php",
			dataType: 'json',
			data: {
				state: stateName
			},
			success: function(r, status){
				//console.log(r);
				//console.log(r.data);
				var rData = r.data;
				var stateDesc = rData.desc;
				var stateNameFull = rData.name;
				var stateStats = rData.stats;
				//console.log(stateDesc+'|'+stateNameFull+'|'+stateStats);
				ACTIVISMMAP.loadStateText(stateNameFull,stateDesc);
			}
		});
	},
	
	getStateDetail:function(myobj){
		//alert('hi')
		urltitle = $(myobj).attr('urltitle');
		//alert(urltitle)
		var hasRace = $('#state-data-text').attr('hasrace');
		//console.log(hasRace);
		window.location.href = '/aidsvote/by-state/' + urltitle + '/#statedetails';
		/*if(hasRace === 'true'){
			window.location.href = '/aidsvote/by-state/' + urltitle + '/#statedetails';
		}else{
			window.location.href = '/aidsvote/by-state/#';
		}*/
	},
	
	build_popup:function(coord,statename){
		stPopup = $('#pop-up-'+statename);
		//hide all displayed divs
		$(".pop-up").css({display:'none'});
		//console.log($(coord).position());
		var coordObj = $(coord).position();
		var leftCoord = coordObj.left;
		var topCoord = coordObj.top;
		stPopup.css({position:'relative',display:'block',left:leftCoord+50,top:topCoord-993});
	},
	
	showRollover:function(myobj,action){7
		var stateid = $(myobj).attr('id');
		var statename = $(myobj).attr('urltitle');7
		var smallSzHeight = '51px';
		var largeSzHeight = '91px';
		var cssHeight = stateid == 'my-dc' ||  stateid == 'my-pr' ? smallSzHeight : largeSzHeight;7
		switch(stateid){
			case 'my-dc':
				cssImg = 'url("/i/map-dc.png")';
				cssPos = '0px 51px';
			break;
			case 'my-pr':
				cssImg = 'url("/i/map-pr.png")';
				cssPos = '0px 51px';
			break;
			case 'my-vi':
				cssImg = 'url("/i/map-vi.png")';
				cssPos = '0px 91px';
			break;
		}
		if(action === 'over'){
			//show rollover state
			var mycss = {
				'background': cssImg,
				'width': '78px',
				'height': cssHeight,
				'background-position': cssPos
			}
		} else{
			//show rollout state
			var mycss = {
				'background': cssImg,
				'width': '78px',
				'height': cssHeight,
				'background-position': '0px 0px'
			}
		}
		$(myobj).css(mycss);
		ACTIVISMMAP.build_popup(myobj,statename);
	},
	
	loadStateText:function(rHTML){
		//console.log('rhtml'+rHTML)
		stPopup = $('#pop-up');
		stPopup.html(rHTML);
	},
	
	showBubble:function(objName){
		//var objName = '#dummy1';
		//console.log(objName);
		// The following code creates a simple Bubble Popup opening when mouse is over on the element with ID '#dummy1'.
		/*$(objName).SetBubblePopup({
			innerHtml: '<p>You can set any HTML tag<br />inside this popup!<br /><a href="#">this is a link</a></p>'
		});*/
		$(objName).SetBubblePopup({ 
			innerHtml: '<p>Bubble Popup!</p>',
			showOnMouseOver: false
		});
		$(objName).ShowBubblePopup();
		/*jQuery().SetBubblePopup({ 
			tagID:[objName]
			,innerHtml: '<p>This is the default message<br />for all Bubble Popups!</p>'
			,showOnMouseOver: false
		});

		$(objName).mouseover(function(){
			console.log('mouseover');
			//$(objName).ShowBubblePopup();
		});
		$(objName).mouseout(function(){ 
			console.log('mouseout');
			//$(objName).HideBubblePopup(); 
		});*/

		
	},
	
	hideBubble:function(objName){
		$(objName).HideBubblePopup();
	}
	
}

