/* Main Javascript
=============================================================================================*/
var Fuel = {};

Fuel.globals = {};

/* Onload ============================== */

$(document).ready( function()
{
	$('.hide').hide();
   $('.show').show();
	
	$('body').supersleight({shim: '/assets/images/pixel.gif'});

   new Fuel.buttons();
   new Fuel.navflyout();

	if(typeof sIFR == "function"){

		sIFR.replaceElement("div", named({
		sSelector:".sifr",
		sWmode: 'transparent',
		sFlashSrc:"/assets/fonts/sifr_avantgarde.swf",
		sColor:"#ffffff",
		nPaddingTop:0,
		nPaddingBottom:0
		}));
   }

   $("#homeindex #news .scrollable").scrollable({size: 4, clickable: false, globalNav: true, disabledClass: "arrowHide"}).navigator();

   $("#nav .logo img").tooltip({track: true,delay: 100,fade:250,showURL: false});
   $("#energyindex map area").tooltip({track: true,delay: 100,fade:250,showURL: false});
});

Fuel.buttons = function( active, filter )
{
   var that = this;
   active = active||false;
   filter = filter||"img, input:image";

   $(filter).each(function(i, val)
   {
      if( $(val).attr('src').match(/_u|_a/) != null )
      {
         $('<img>').attr( 'src', that.over( $(val).attr('src') ) );

         $(val).mouseover(function(){
            $(val).attr( 'src', that.over($(this).attr('src')) );
         });

         $(val).mouseout(function(){
            if ($(val).attr('id').length > 0)
            {
               resetNav($(val).attr('id'));
            }
            else
            {
               $(val).attr( 'src', that.reset($(this).attr('src')) );
            }
         });

         if( active )
         {
            $('<img>').attr( 'src', that.active( $(val).attr('src') ) );
            
            $(val).mousedown (
               function() { $(this).attr( 'src', that.active($(this).attr('src')) ); }
            );
         }
      }
   });
};

Fuel.buttons.prototype =
{
   over:   function( src ) { return src.replace(/(_u\.)/, '_o.'); },
   active: function( src ) { return src.replace(/(_o\.|_u\.)/, '_a.'); },
   reset:  function( src ) { return src.replace(/(_o\.)/, '_u.'); }
};

Fuel.navflyout = function(filter)
{
   filter = filter||"#nav div";

   $(filter).each(function(i, val)
   {
      if( $(val).attr('class').match(/nav_flyout-/) != null )
      {
         var nav = $(val).attr('class').substr("nav_flyout-".length);
         var flyoutId = "#" + $(val).attr('class').substr("nav_flyout-".length) + "flyout";

         $(val).hover(
            function(){ $('#nav-'+nav).data('showing',true); $(flyoutId).slideDown("fast"); },
            function()
            {
               //$(flyoutId).fadeOut("fast");
               setTimeout('closeFlyout("'+nav+'")', 10);
               $('#nav-'+nav).data('showing',false);
               $(flyoutId).hover(
                  function() { $('#nav-'+nav).data('showing',true); $(this).slideDown("fast"); resetNav($('#nav-'+nav).attr('id')); },
                  function() { $('#nav-'+nav).data('showing',false); resetNav($('#nav-'+nav).attr('id')); setTimeout('closeFlyout("'+nav+'")', 10); }
               );
               resetNav($('#nav-'+nav).attr('id'));
            }
         );
      }
   });
};

function resetNav(imgId)
{
   var showing = $('#'+imgId).data('showing');

   if(showing != true)
   {
      if (document.location.href.indexOf("/home") == -1 && document.location.href.indexOf("/energy") != -1 && imgId.indexOf("energy") != -1)
      {
         // in the energy section, don't
         return;
      }

      
      $('#'+imgId).attr('src',$('#'+imgId).attr('src').replace(/(_o\.|_a\.)/, '_u.'));
   }
   if(showing == true)
   {
      $('#'+imgId).attr('src',$('#'+imgId).attr('src').replace(/(_u\.|_a\.)/, '_o.'));
   }
}

function closeFlyout(nav)
{
   var showing = $('#nav-'+nav).data('showing');

   if (!showing)
   {
      $("#"+nav+"flyout").hide("fast");
   }
}

function enableEnterKey( formId, Id )
{
   $('#'+formId+' :input').keydown(function(e)
   {
      if ($(this).attr("type") == "textarea")
      {
         return;
      }
      
      if (e.keyCode == 13)
      {
         $('#'+Id).click();
         return false;
      }
   });
}

function switchNews(section)
{
   var api = $("div.scrollable").scrollable();
   api.reload().begin();

   newsRemoveAll();
   adNewsForSection(section);

   api.reload().begin();

   //turn off all of them
   $("#news .nav img").each(function(i, val)
   {
      $(val).attr( 'src', $(val).attr('src').replace(/(_a\.)/, '_u.'));
   });

   //turn on the correct one
   $("#news #news"+section+" img").each(function(i, val)
   {
      $(val).attr( 'src', $(val).attr('src').replace(/(_o\.|_u\.)/, '_a.'));
   });

   $("#news .navarrow").hide();
   $("#news .arrow"+section).show();

   if (api.getPageAmount() <= 1)
   {
      $("#news .paging .wrapper").hide();
   }
   else
   {
      $("#news .paging .wrapper").show();
   }

   new Fuel.buttons(false, "#news .items img");
}

function newsRemoveAll()
{
   var api = $("div.scrollable").scrollable();
   api.getItems().remove();
}

function adNewsForSection(section)
{
   var api = $("div.scrollable").scrollable();

   var cls = "."+section;

   $("#newscache").children(cls).each(function(i, val){
      api.getItemWrap().append( $(val).clone() );
   });
}

function showPollResults(id, selector, fullBarWidth)
{
   $.ajax({ url: "/polls/results/"+id+"/"+fullBarWidth, context: document.body, dataType: 'html', success: function(data){
        $(selector).html(data);
        $(selector).show();
      }});
}
function showPoll(id, selector, fullBarWidth)
{
   $.ajax({ url: "/polls/poll/"+id, context: document.body, dataType: 'html', success: function(data){
        $(selector).html(data);
        $(selector).show();
      }});
}
function submitVotePoll(id, answer_id, showResults)
{
   $.ajax({ url: "/polls/vote/"+id+"/"+answer_id, context: document.body, dataType: 'html', complete: function(){
         if (showResults)
         {
            showPollResults(id, "#pollresultswrapper", 190);
         }
      }});
}
