// Global variables
var curr_province = "";

/**
* On domready
*/
$(document).ready(function() {							   	 

// Fade in canada information
	$("#CA > p").css("zIndex","9999").fadeIn("normal");				 	 

	$("#province_hover").hide();

	bindMapEvents();
	bindProvinceListEvents();
	
	//MOUSE CLICK on BACK TO MAP
	$("a.backtomap").click(function() {
		return handleBackToMapClick();		
	});	
});	

/**
* Bind map events
*/
function bindMapEvents()
{	
	//MOUSE ENTER on MAP
	$("div.map-canada div").bind("mouseenter",function() {
		var province = $(this).attr("class");
		handleProvinceHover(province);
	});	


	//MOUSE LEAVE on MAP
	$("div.map-canada div").bind("mouseleave",function() {
		var province = $(this).attr("class");		
		handleProvinceLeave(province);
	});	

	//MOUSE CLICK on MAP
	$("div.map-canada div a").bind("click",function() {			
													
		curr_province = $(this).parent().attr("class");														
		handleMouseClickOnMap();
	});	

}

/**
* Bind province list related events
*/
function bindProvinceListEvents()
{	
	//MOUSE ENTER on LIST
	$("div.list-of-provinces ul li a").bind("mouseenter",function() {
		var province = $(this).parent().attr("class");
		$(this).css({"backgroundColor":"#58595b","color":"#FFF"});
		handleProvinceHover(province);
	});
	
	//MOUSE LEAVE on LIST
	$("div.list-of-provinces ul li a").bind("mouseleave",function() {
		var province = $(this).parent().attr("class");
		$(this).css({'background-color' : 'transparent', 'color' : '#7c4c0f'});		
		handleProvinceLeave(province);
	});
	
	//MOUSE CLICK on LIST
	$("div.list-of-provinces ul li a").bind("click",function() {
		curr_province = $(this).parent().attr("class");														 
		return handleProviceListClick();
	});				
}

/**
* Handle mouse click on map
*/
function handleMouseClickOnMap()
{
	resetAll();
	$("#CA").fadeOut("normal");
	$("div.map-canada-lrg img." + curr_province).fadeIn("normal");			

	curr_province_long  = $("div.map-canada div." + curr_province + " a").attr("class");							
	
	$.get('/ctc_mediacentre/province_related_json/' + curr_province_long, function(data) {

		data_parsed = Drupal.parseJson(data);
		$("div.description div." + curr_province + ' > h2').text(data_parsed['node']['title']);
		$("div.description div." + curr_province + ' > div.deck').empty();
		$("div.description div." + curr_province + ' > div.deck').append(data_parsed['node']['deck']);
		$("div.description div." + curr_province + ' > div.text').empty();
		$("div.description div." + curr_province + ' > div.text').append(data_parsed['node']['body']);
		$("div.description div." + curr_province).css("zIndex","5000").fadeIn("normal");
	});			
				
	$("a.backtomap").fadeIn("normal");			

	bindProvinceDetailEvents();
	return false;
}

/**
* Handle province hover
*/
function handleProvinceHover(province) {
	$("div.map-canada img." + province).css("zIndex","998").fadeIn("normal");	
	$(".list" + province + " a").css({'background-color' : '#58595b', 'color' : '#FFF'}); // highlight province in footer
}

/**
* Handle province leave
*/
function handleProvinceLeave(province) {
	$("div.map-canada img." + province).fadeOut("normal").css("zIndex","100");	
	$(".list" + province + " a").css({'background-color' : 'transparent', 'color' : '#7c4c0f'});
}

/**
* Handle province list clicks
*/
function handleProviceListClick()
{
	resetAll();
	$("div.map-canada-lrg img." + curr_province).fadeIn("normal");
	$("div.description div." + curr_province).css("zIndex","9999").fadeIn("normal");
	
	curr_province_long  = $("div.map-canada div." + curr_province + " a").attr("class");							
	$.get('/ctc_mediacentre/province_related_json/' + curr_province_long, function(data) {
		data_parsed = Drupal.parseJson(data);
		$("div.description div." + curr_province + ' > h2').text(data_parsed['node']['title']);
		$("div.description div." + curr_province + ' > div.deck').empty();
		$("div.description div." + curr_province + ' > div.deck').append(data_parsed['node']['deck']);
		$("div.description div." + curr_province + ' > div.text').empty();
		$("div.description div." + curr_province + ' > div.text').append(data_parsed['node']['body']);
		$("div.description div." + curr_province).css("zIndex","5000").fadeIn("normal");
	});						
	
	$("a.backtomap").fadeIn("normal");
	
	bindProvinceDetailEvents();
	
	return false;			
}

/**
* Handle back to map button click
*/
function handleBackToMapClick()
{
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
    var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
	
	if (ieversion>=6)
		location.reload();
	}
	else
	{	
		resetAll();	
		$(".backtomap").fadeOut("normal");
		$("div.map-canada").fadeIn("normal");
		$("div.map-canada img").fadeOut("normal").css("zIndex","100");	
		$("#CA").fadeIn("normal");	
	}
	return false;	
}						

/**
* Binding events for Facets, Photos and Video buttons
*/
function bindProvinceDetailEvents()
{		
	// Facts button
	$("div.description div." + curr_province + " ul li.facts a").click(function() {
		handleFactsButtonClick();																					
	});

	// Photo button
	$("div.description div." + curr_province + " ul li.photos a").click(function() {
		handlePhotoButtonClick();																				 	
	});
	
	// Video button event binding
	$("div.description div." + curr_province + " ul li.videos a").click(function() {
		handleVideoButtonClick();																				 	
	});
}	

/**
* Handle facts button click
*/
function handleFactsButtonClick()
{
//				alert('facts button for ' + curr_province);
	$("div.description div ul li a").removeClass("active");
	$(this).addClass("active");					    
	
	$("div.map-canada-lrg img." + curr_province).animate({opacity:0.4},500);
	$("div.photos").fadeOut("fast").css("zIndex","1000");
	$("div.videos").fadeOut("normal").css("zIndex","1000");
	$("div.facts").fadeIn("fast").css("zIndex","9999");
		
	$("div.facts .content").empty();				
	$("div.videos .content").empty();
	$("div.photos .content").empty();				
	curr_province_long  = $("div.map-canada div." + curr_province + " a").attr("class");							
	$.get('/ctc_mediacentre/province_related_json/' + curr_province_long + ",facts", function(data) {
	  data_parsed = Drupal.parseJson(data);
//				  $("div.facts .content").append(data_parsed['content']); 
	  $("div.facts .content").html(data_parsed['content']); 
	  bindPager("div.facts .content");					  
	});
	
	return false;	
}

/**
* Handle photo button click
*/
function handlePhotoButtonClick()
{
	$("div.description div ul li a").removeClass("active");
	$(this).addClass("active");
	
	$("div.map-canada-lrg img." + curr_province).animate({opacity:0.4},500);
	$("div.facts").fadeOut("fast").css("zIndex","1000");
	$("div.videos").fadeOut("fast").css("zIndex","1000");
	$("div.photos").fadeIn("fast").css("zIndex","9999");
	
	$("div.facts .content").empty();				
	$("div.videos .content").empty();
	$("div.photos .content").empty();				
	curr_province_long  = $("div.map-canada div." + curr_province + " a").attr("class");							
	$.get('/ctc_mediacentre/province_related_json/' + curr_province_long + ",photos", function(data) {
	  data_parsed = Drupal.parseJson(data);				  
	  Drupal.settings.jcarousel_block_invisible_onload = 1;
//				  $("div.photos .content").append(data_parsed['content']);
	  $("div.photos .content").html(data_parsed['content']);
	  initCarousel();
	});				
	
	return false;	
}

/**
* Handle video button click
*/
function handleVideoButtonClick()
{
	$("div.description div ul li a").removeClass("active");
	$(this).addClass("active");
	$("div.map-canada-lrg img." + curr_province).animate({opacity:0.4},500);
	$("div.facts").fadeOut("fast").css("zIndex","1000");
	$("div.photos").fadeOut("fast").css("zIndex","1000");
	$("div.videos").fadeIn("fast").css("zIndex","9999");

	$("div.facts .content").empty();				
	$("div.videos .content").empty();
	$("div.photos .content").empty();
	curr_province_long  = $("div.map-canada div." + curr_province + " a").attr("class");							
	$.get('/ctc_mediacentre/province_related_json/' + curr_province_long + ",videos", function(data) {
	  data_parsed = Drupal.parseJson(data);
	  Drupal.settings.jcarousel_block_invisible_onload = 1;
//				  $("div.videos .content").append(data_parsed['content']);
	  $("div.videos .content").html(data_parsed['content']);				  
	  initCarousel();
	});
	
	return false;	
}

/**
* Handle page facts page binding
*/
function bindPager(dom) {
  $(dom+' .pager li a').click(function(){
	$.get($(this).attr('href'), function(data) {
	  data_parsed = Drupal.parseJson(data);
	  $(dom).empty();
	  $(dom).append(data_parsed['content']);
	  bindPager(dom);
	});
	return false;
  });  
}
/**
* Resets everything so it's similar to page refresh
*/
function resetAll() {
	$("div.description div ul li a").removeClass("normal");
	$("div.description div:not(.text)").fadeOut("normal").css("zIndex","");
//			$("div.description div.CA").fadeOut("normal");
	$("div.facts").fadeOut("normal").css("zIndex","1000");
	$("div.photos").fadeOut("normal").css("zIndex","1000");
	$("div.videos").fadeOut("normal").css("zIndex","1000");
	$("div.map-canada img").fadeOut("fast");
	$("div.map-canada-lrg img").animate({opacity:1},500);
	$("div.map-canada-lrg img").fadeOut("normal");
	$("div.map-canada").fadeOut("normal");
}			
  
