var tweet_loaded = false, facebook_loaded = false, url = '';

function facebook_init() {
  FB.init({appId: '171151396280448', status: true, cookie: true, xfbml: true});
}

function facebook_setup() {
  if (facebook_loaded) {
    facebook_init();
  } else {
    $.getScript('http://connect.facebook.net/en_GB/all.js', function(){
      facebook_loaded = true;
      facebook_init();
    });
  }
}

function change_image() {
  
  var $img = $('#main-image img'),
        $a = $(this),
      href = $(this).attr('href'),
    height = $img.height(),
     width = $img.width();
  
  $.ajax({
    url: href+"/"+width,
    cache: false,
    beforeSend: function() {
      $('#main-image').height(height).addClass('loading').find('img').hide();
    },
    error: function() {
      $img.fadeIn('fast');
    },
    complete: function() {
      $('#main-image').removeClass('loading');
    },
    success: function(data) {
      $('#thumbnails a').removeClass('selected');
      $a.addClass('selected');
      $('#main-image').attr({href: href });
      
      var new_img = $(data).hide();
      $('#main-image').html(new_img).animate({
        height: new_img.height()
      }, 500, function(){
        new_img.fadeIn('fast');
      });
      
    }
  });
  
  return false;
}

function ajax_page() {
  
  var $main = $('#main'),
      $link = $(this),
      $h = $('<div></div>');
  
  url = $(this).attr('href');
      
  if ($link.hasClass('selected')) {
    return false;
  };
      
  if (url == '/') {
    url = '/homepages/index';
  };
  
  $.ajax({
    url: url+'?v='+Math.floor(Math.random()*1000),
    cache: false,
    beforeSend: $.fancybox.showActivity,
    complete:   $.fancybox.hideActivity,
    error: function() {  },
    success: function(data) {
      
      if ($(data).find('#main').length) {
        data = $(data).find('#main').html();
      };
      
      $main.css({height: $main.height()}).html('');
      $h.hide().append(data);
      $main.append($h).animate({
        height: $h.height()
      }, 500, function(){
        
        setTimeout(function(){
          $main.css({height: 'auto'});
        }, 210);
        
        $h.delay(200).fadeIn('slow', function(){
          tld_init();
          set_page_title();
          facebook_init();
        });
      });
    }
  });
  
  return false;
}

function ajax_news() {
  
  var $main = $('#news-panel'),
      $link = $(this),
      $h = $('<div></div>');
      
  url = $(this).attr('href');
      
  if ($link.hasClass('selected')) {
    return false;
  };
  
  $('a.selected').removeClass('selected');

  $.ajax({
    url: url,
    cache: false,
    beforeSend: $.fancybox.showActivity,
    complete:   $.fancybox.hideActivity,
    error: function() {  },
    success: function(data) {
      
      $main.css({height: $main.height()}).html('');
      data = $(data).filter('#news-panel');
      $h.hide().append(data);
      $link.addClass('selected');
      $main.append($h).animate({
        height: $h.height()
      }, 500, function(){
        $h.delay(200).fadeIn('slow', function(){
          $main.css({height: 'auto'});
          tld_init();
          set_page_title();
          facebook_init();
        });
      });
    }
  });
  
  return false;
}

function set_page_title() {
  var title = 'The Light Divided';
  if ($('#page-title').length && $('#page-title:first').val() != '') {
    var x = $('#page-title:first').val().split('|');
    title += ' - '+ x[1];
    $('nav ul').attr({'class' : x[0]});
    set_selected();
  }
  document.title = title;
  window.history.pushState("", title, url);
}

function tld_init() {
  
  // fancy box
  if ($('.fancybox').length) {
    $('.fancybox').fancybox({
      overlayColor: '#000',
      onStart: function() {
        $('object').addClass('invisible');
      },
      onClosed: function() {
        $('object').removeClass('invisible');
      }
    });
  };
  
  // IFRAME fancy box
  if ($('.fancybox-iframe').length) {
    $('.fancybox-iframe').fancybox({
      type: 'iframe',
      overlayColor: '#000'
    });
  };
  
  // images thumbnails
  if ($('#thumbnails').length) {
    $('#thumbnails a').first().addClass('selected').end().click(change_image);
  };
  
  // Twitter!
  if ($('#twitter-holder').length) {
    if (tweet_loaded) {
      make_twitter();
    } else {
      $.getScript(base_url+'js/libs/jquery.tweet.js', function() {
        tweet_loaded = true;
        make_twitter();
      });
    }
  };
  
}

function make_twitter() {
  $('#twitter-holder').removeClass('loading').css({height: 'auto'});
  $(function(){
    $("#twitter-holder").tweet({
      avatar_size: 48,
      count: 4,
      username: ["thelightdivided", "chrxs_tld", "tlddave"],
      loading_text: "searching twitter...",
      refresh_interval: 10
    });
  });
}

function set_selected() {
  $('a.selected').removeClass('selected');
  var selected_class = $('nav ul').attr('class');
  if (selected_class == 'homepages') {
    $('#logo').addClass('selected');
  } else {
    $('nav li.'+selected_class+' a').addClass('selected');
  }
}

function hover_over() {
  $(this).addClass('hover');
}
function hover_out() {
  $(this).removeClass('hover');
}

$(function(){
  
  set_selected();
  $('a.ajax').live('click', ajax_page);
  $('a.ajax-news').live('click', ajax_news);
  
  $('table tbody tr').live('mouseover', hover_over);
  $('table tbody tr').live('mouseout', hover_out);
  
  facebook_setup();
  tld_init();
});

