$(document).ready(function()
{
  FB.init($("html meta[name='facebook-api']").attr('content'));

  if ($('#slider').length)
  {
    $("#slider").easySlider({});
  }
  
  if($('#splash #splash-video'))
  {
    setupSplashVideo();
  }
  
  var emailInput = $('#login_user_email');
  if(emailInput)
  {
	  addEmailLabelHider(emailInput);
  }
  
  setupInvolvementCounter();

  setupVoteLinks(null);
  
  setupReport();
  
  setupGallery();
  
  setupLogout();
  
  if($('#browser').length)
  {
	  setupBrowserAjax();
  }
  
});

var setupBrowserAjax = function() {
	
	var browser = $('#browser'),
		form,
		links,
		loader;
	
	var sendAjaxRequest = function(url, data) {
		$.ajax({
	          type: 'POST',
	          url: url,
	          data: data,
	          success: setupHandler,
	          dataType: 'html'
	    });
		
		browser.addClass('overlay');
		loader.css('top', (browser.height() / 2) - (loader.height() / 2));
	};
	
	var submitHandler = function() {
		url = $(this).attr('action');
		data = $(this).serializeArray();
		
		sendAjaxRequest(url, data);	
		
		return false;
	};
	
	var clickHandler = function() {
		var url = $(this).attr('href');
		
		sendAjaxRequest(url, []);	
		
		return false;
	};
	
	var setupHandler = function(data) {
		
		if(data !== null)
		{
			browser.replaceWith(data);
			browser.removeClass('overlay');
			setupVoteLinks($("#browser a[rel~='vote']"));
		}
		
		browser = $('#browser');
		form = browser.find('#form-search-browser');
		links = browser.find("a[rel~='browser']");
		loader = browser.find('img.loader');
		
		links.click(clickHandler);
		form.submit(submitHandler);
	};
	
	setupHandler(null);
};

var addEmailLabelHider = function(elements)
{
	var focusHandler = function() {
		if($(this).attr('value') == 'E-post')
		{
			$(this).attr('value', '');
		}
	};
	
	var blurHandler = function() {
		if($(this).attr('value') == '')
		{
			$(this).attr('value', 'E-post');
		}
	};
	
	$(elements).each(function(index) {
		$(this).focus(focusHandler);
		$(this).blur(blurHandler);
	});
};

var setupLogout = function()
{
    $("a[rel~='logout']").click(function() {
      if(FB.Connect.get_loggedInUser() != null)
      {
        FB.Connect.logoutAndRedirect($(this).attr('href'));
        return false;
      }
    });
};

var setupSplashVideo = function()
{
  var options = {
      preload: true,
      opacity: 0.65,
      inline: true,
      href: '#splash-video'
    };
  
  $("#splash-3 a[rel~='video-player']").colorbox(options);
};

var setupGallery = function()
{
  var options = {
      preload: true,
      opacity: 0.65,
      current: '{current} av {total}'
    };
  
  $("#gallery-link, div.image.gallery ul.content a").colorbox(options);
};

var setupReport = function()
{
    var completeHandler = function() {
      
      var submitClickHandler = function() {
        var form = $('#window-report form'),
            method = form.attr('action'),
            data = form.serializeArray();
        
        var success = function(data) {
          $('#window-report').html(data);
          $.fn.colorbox.resize();
          $('#window-report button[type=submit]').click(submitClickHandler);
          $('#window-report button.close').click(closeClickHandler);
        };
        
        $.ajax({
          type: 'POST',
          url: method,
          data: data,
          success: success,
          dataType: 'html'
        });
        
        return false;
      };
      
      var closeClickHandler = function() {
        $.fn.colorbox.close();
      };
      
      $('#window-report button.close').click(closeClickHandler);
      $('#window-report button[type=submit]').click(submitClickHandler);
      
    };
  
    var options = {
        slideshow: false,
        preload: false,
        opacity: 0.65,
        rel: 'nofollow',
        scrolling: false,
        onComplete: completeHandler
      };
    
    $("a[rel~='report']").colorbox(options);
};

var setupInvolvementCounter = function()
{
  var fallback = function()
  {
    return $('#counter-description').html();
  };
  var options = {
    html : true,
    title : fallback,
    delayIn : 0.2,
    fade : true
  };

  $('#involvement-counter').tipsy(options);
};

var setupVoteLinks = function(elements)
{ 
    var complete = function()
    {
      FB.XFBML.Host.parseDomTree();
    };
  
    var options = {
      slideshow: false,
      preload: false,
      opacity: 0.65,
      rel: 'nofollow',
      scrolling: false,
      onComplete: complete
    };
    
    if(elements == null)
    {
    	elements = $("a[rel~='vote']");
    }
    
    elements.colorbox(options);
    
};




























