(function($){
  $.fn.fakeXFBML = function(fb_tag, params){
    var container = $(this);
    params = params || {};
    fb_tag = $('<fb:' + fb_tag + '></fb:' + fb_tag + '>');
    $.each(params, function( key , value ) {
      fb_tag.attr( key , value );
    });
    fb_tag.appendTo(container);
  };
})(jQuery);

$(document).ready(function() {

  // searching form
  var searchingText = $('input#searching-text');
  searchingText.bind('focus', function(){
    if (searchingText.val() == 'Hledaný výraz') searchingText.val('');
  });
  searchingText.bind('blur', function(){
    if (searchingText.val() == '') searchingText.val('Hledaný výraz');
  });
  $('#searching-form').bind('submit', function(){
    if (searchingText.val() == '') {
      alert('Zadejte prosím hledaný výraz');
      return false;
    }
    if (searchingText.val().length < 3) {
      alert('Hledaný výraz musí obsahovat alespoň tři znaky');
      return false
    }
  });

  // main menu
  var links = $('div#main-menu>ul>li');
  var activeLink = $('div#main-menu>ul>li.active');
  var index = links.index(activeLink);
  links.hover(
    function(){
      if ($(this).index() != index) {
        links.removeClass('active').find('a').attr('title', '');
        $('div#main-menu ul.sub-items').hide(200);
      }
      $(this).find('ul.sub-items').show(200).parent('li').find('a').hover(
        function(){
        },
        function(){
          $(this).parent('li').addClass('active');
        }
      );
    },
    function(){
      links.removeClass('active').find('a').attr('title', '');
      if (index != -1) links.eq(index).addClass('active');
      if ($(this).index() != index) {
        $(this).find('ul.sub-items').hide(200);
      }
    }
  );

  // top articles (carousel)
  $('<ul id="top-articles-indicators"></ul>').insertAfter('div#top-articles ul.list');
  $('div#top-articles ul.list').billy({
    transition: 'fade',
    slidePause: 5000,
		indicators: $('ul#top-articles-indicators')
  });

  // CR login
  var loadLoginInterval;
  var loadingLoginInProgress;
  function loadLogin(data){
    clearInterval(loadLoginInterval);
    if (loadingLoginInProgress) {
      loadLoginInterval = setInterval(function(){
        loadLogin(data);
      }, 500);
    } else {
      $('div#user-account p.loading').fadeOut('slow', function(){
        if (data.logged_id == '1') {
          $('div#user-account ul').html('<li class="user"><a href="http://forum.cafe-racer.cz/ucp.php?i=164" title="Uživatelský panel">' + data.username + '</a></li>');
          $.cookie('crUsername', data.username, { expires: 1 });
        }
        $('div#user-account ul').fadeIn('slow');
      });
    }
  }
  if ($('div#user-account li.user').length == 0) {
    $('<p class="loading">ověřuji přihlášení...</p>').appendTo('div#user-account').css('display', 'none');
    $.ajax({
      url: 'http://api.cafe-racer.cz/forum-login.php',
      crossDomain: true,
      dataType: 'jsonp',
      cache: false,
      beforeSend: function(){
        loadingLoginInProgress = true;
        $('div#user-account ul').fadeOut('slow', function(){
          $('div#user-account p.loading').fadeIn('slow', function(){
            loadingLoginInProgress = false;
          });
        });
      },
      success: function(data){
        loadLogin(data)
      }
    });
  }

  // CR board
  var loadTopicsInterval;
  var loadingTopicsInProgress;
  function loadTopics(data){
    clearInterval(loadTopicsInterval);
    if (loadingTopicsInProgress) {
      loadTopicsInterval = setInterval(function(){
        loadTopics(data);
      }, 500);
    } else {
      $('div#boards p.loading').fadeOut('slow', function(){
        $('div#boards ul.topics').html('');
        $.each(data.results, function(i, item){
          $('<li' + (i == 0 ? ' class="top"' : '') + '><p class="title"><a href="' + item.topic_last_post_link + '" title="' + item.topic_title + '">' + item.topic_title + '<span class="corner t"></span><span class="corner b"></span></a></p><p class="replies">odpovědí: <strong>' + item.topic_replies + '</strong> | <strong>' + item.topic_last_poster + '</strong></p></li>').appendTo('div#boards ul.topics');
        });
        $('div#boards ul.topics').fadeIn('slow');
      });
    }
  }
  function loadBoard(){
    $.ajax({
      url: 'http://api.cafe-racer.cz/forum-lasttopics.php',
      crossDomain: true,
      dataType: 'jsonp',
      cache: false,
      beforeSend: function(){
        loadingTopicsInProgress = true;
        $('div#boards ul.topics').fadeOut('slow', function(){
          $('div#boards p.loading').fadeIn('slow', function(){
            loadingTopicsInProgress = false;
          });
        });
      },
      success: function(data){
        loadTopics(data);
      }
    });
  }
  $('<p class="loading">načítám poslední příspěvky...</p>').appendTo('div#boards').css('display', 'none');
  $('<ul class="topics"></ul>').insertBefore('div#boards p.button');
  loadBoard();
  setInterval(loadBoard, 60000);

  // fancybox
  $(function() {
    $('a.photo').fancybox({
      'hideOnContentClick': true,
      'overlayColor': '#000000',
      'overlayOpacity': 0.7,
      'titlePosition': 'inside',
      'transitionIn': 'fade',
      'transitionOut': 'fade',
      'speedIn': 300,
      'speedOut': 100
    });
  });

  // author
  $('div#copyright p.author a').css('opacity', '0.33').hover(
    function(){
      $(this).animate({
        opacity: '1'
      }, 'fast');
    },
    function(){
      $(this).animate({
        opacity: '0.33'
      }, 'fast');
    }
  );

  // external links
  $(function() {
    $('div#page-content a:not([href*="cafe-racer.cz"]), div#boards a:not([href*="cafe-racer.cz"]), div#partner-sites a:not([href*="cafe-racer.cz"])').each(function(){
      $(this).bind('click', function(){
        window.open(this.href);
        return false;
      }).attr("title", this.title + " [odkaz se otevře v novém okně]");
    });
  });

  // Facebook "like box"
  $('div#like-box').fakeXFBML('like-box',{
    'href': 'http://www.facebook.com/pages/CAF%C3%89-RACER-CLUB/151371374941031',
    'width': '446',
    'stream': 'false',
    'header': 'false'
  });

  // Facebook "like" button
  $('div#facebook-like-button').fakeXFBML('like',{
    'show_faces': 'true',
    'width': '685',
    'action': 'like',
    'font': 'arial'
  });

  // banners
  $('div#banner-leaderboard.motoforza p').media({
    src: 'http://banners.cafe-racer.cz/motoforza_728x90.swf',
    width: 728,
    height: 90,
    attrs: { allowScriptAccess: 'always', wmode: 'transparent', quality: 'high' },
    params: { allowScriptAccess: 'always', wmode: 'transparent', quality: 'high' },
    caption: false
  });
  $('div#banner-leaderboard.sharon p').media({
    src: 'http://banners.cafe-racer.cz/sharon-728x90.swf',
    width: 728,
    height: 90,
    attrs: { allowScriptAccess: 'always', wmode: 'transparent', quality: 'high' },
    params: { allowScriptAccess: 'always', wmode: 'transparent', quality: 'high' },
    caption: false
  });
  $('div#banner-topsquare.motoforza p').media({
    src: 'http://banners.cafe-racer.cz/motoforza-235x217.swf',
    width: 235,
    height: 217,
    attrs: { allowScriptAccess: 'always', wmode: 'transparent', quality: 'high' },
    params: { allowScriptAccess: 'always', wmode: 'transparent', quality: 'high' },
    caption: false
  });

});

