// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
var tout;
var buffer = 0;
var current_buffer = 0;
var spacing = 114;
var moving_window = 6;
var total_thumbs = 0;

function fadein()
{
  $('#banner_container').fadeIn(1000);
  $('#banner_text').fadeIn(1000);
}
function slide_carousel(direction){
  switch(direction){

    case 'right':
      if (current_buffer !== 0){
        current_buffer -= spacing;
        jQuery("#carousel ul").css("left", "-"+current_buffer+"px");
      }
      else if (current_buffer == buffer){
        slide_carousel('reset');
      }
      break;
    case 'left':
      if (current_buffer !== buffer){
        current_buffer += spacing;
        jQuery("#carousel ul").css("left", "-"+current_buffer+"px");
      }
      break;
    case 'reset':
      current_buffer = 0;
      jQuery("#carousel ul").css("left", "0px");
      break;
  }
}
function change_class(previous, next)
{
  var elem = $('#banner_container');

  elem.css("background-image", "url("+ $('#b' + next)[0].rel + ")");
  elem.removeClass("b"+previous);
  elem.addClass("b"+next);
  $('.f'+previous).hide();
  $('.f'+next).show();
  $('.t'+previous).hide();
  $('.t'+next).show();
  $('#banner_link'+previous).css("display", "none");
  $('#banner_link'+next).css("display", "block");
}

function rotate_banner() {
  var elem = $('#banner_container');
  var first = 0;

  try {
    var current = elem.attr('class').split("b")[1];

    if (total_thumbs > moving_window){
      buffer = (total_thumbs - moving_window)*spacing;
    }

    if (current >= moving_window) slide_carousel('left');

    if (current==first){
      change_class(first,1);
      $('#banner_text li').hide();
      $('#banner_text .t1').show();
    }
    else if (current==total_thumbs){

      $('#banner_text').fadeOut(500);
      elem.fadeOut(500, function() {
          change_class(total_thumbs, 1);
          fadein();
        });
      slide_carousel('reset');
    }
    else{
      $('#banner_text').fadeOut(500);
      elem.fadeOut(500, function() {
          var next = (current*1)+1;
          change_class(current, next);
          fadein();
        });
    }

    tout = setTimeout('rotate_banner()', 10000);
  } catch(e) {}
}

function pauseScripts()
{
  clearTimeout(tout);
}

function resumeScripts()
{
  tout = setTimeout('rotate_banner()', 1000);
}

function init_fancybox()
{
  jQuery(".fancybox").fancybox({
    'frameWidth':600,
    'hideOnContentClick': false
  });

  jQuery(".fancybox_vid").fancybox({
    'frameWidth': 439,
    'frameHeight': 377,
    'hideOnContentClick': false,
    'callbackOnShow': pauseScripts,
    'callbackOnClose': resumeScripts
  });
}

$(document).ready(function() {

  total_thumbs = $('#banner_amt').val();
  rotate_banner();
  init_fancybox();

  jQuery("#scroll_left").click(function(){
    slide_carousel('right');
    return false;
  });

  jQuery("#scroll_right").click(function(){
    slide_carousel('left');
    return false;
  });

  // assign a click to every anchor. oh yeah!
  var hostname = window.location.hostname;
	hostname = hostname.replace("www.","").toLowerCase();

  jQuery('a').each(function() {
    var href = this.href.toLowerCase();

    if ((href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1)) {
      this.target = "_blank";
      jQuery(this).addClass('external');
    }
  });

  $('#banner .right li a').click(function(){
    clearTimeout(tout);
    $("*").stop(true, true);

    var elem = $('#banner_container');
    var current = elem.attr('class').split("b");
    var clicked = $(this).attr('id').split("b");

    $('#banner_text').fadeOut(500);
      elem.fadeOut(500, function() {
          change_class(current[1], clicked[1]);
          fadein();
    });
    tout = setTimeout('rotate_banner()', 10000);
    return false;
  });

  $('.flash').hide().slideDown().animate({opacity: 1.0}, 3000).slideUp();

  $('input.clearme').focus(function(i) {
    if (this.value == this.title) {
      this.value = "";
      $(this).removeClass('clearme');
    }
  });

  $('input.clearme').blur(function(i) {
    if (this.value == "") {
      this.value = this.title;
      $(this).addClass('clearme')
    }
  });

  $('#subscriber_form').submit(function() {
    $.post('/subscribers', $(this).serialize(), function(data) {
      if (data.status == "success") {
        $('#subscriber_form_wrap').html(data.message);
      }
    }, "json");
    return false;
  });

});

// load the data for the state. also, resize map
function map_load_state(state_id, state_name) {
  jQuery.ajax({
    url: '/states/'+state_id,
    success: function(data) {
      jQuery('#map_state').html(data);
    }
  });
}

