// Init
jQuery(document).ready(function(){

  jQuery.ajaxSetup({
    timeout: 10000
  });

  /*
    Game controls
    ***************/
  $('.game_add_to_fav').flashgameFavoriteBox();
  $('.rate_game').starsRating();
  $('a.playbtn').click(function(){
    tb_show(this.title, this.rel, false, {excaption: '<div id="wnd-title-ex"/>' });
    this.blur();
    return false;
  });

  // Big button on game links
  $('div.downgame-horiz > a, div.game-horiz > a, div.game-big > a, div.downgame-new > ul > li > a').bigTarget({
    clickZone : 'div:eq(0)' // jQuery parent selector
  }).each(
    function (index, domElement){
      var $el = $(domElement);
      var rel = $el.attr('rel');
      if(rel){
        rel = rel.split('##');
        var tipText = '<div class="down-tip"><h4>' + rel[0] + '</h4><img src="'+rel[2]+'"/><p>'+rel[1]+'</p><p><b>'+rel[3]+'</b></p></div>';
        $el.parent().simpletip({
          content: tipText,
          hostel: $('body'),
          fixed: true,
          //position: [0,0],
          offset: [5,5],
          showEffect: 'fade',
          hideEffect: 'none',
          boundryCheck: true,
          onBeforeShow: function(){
            $('.tooltip:has(.down-tip)').hide();
          }
          });
      }
    }
  );
  $('#debugpanel-btn').toggle(function(){$('#debugpanel').removeClass('hide')},function(){$('#debugpanel').addClass('hide')})

  /*
    Main menu
    ***************/
  initMainMenu($('#pagenav'));

});


function initMainMenu($container){

  $('a[name]',$container).each(function(i){
    var $el = $(this);
    $el.mouseover(function(){
      var $mybar = $('ul#'+$el.attr('name'),$container);
      if(!$mybar.is(':visible')){
        $mybar.fadeIn("slow");
        $mybar.siblings('ul.horiz-menu').not($mybar).fadeOut("fast");
      }

    });
  });
}

/*****************
* Public functions
*/

function get_size_format (filesize) {
  var dec_point = 2;
  var ret = {dimension:1, name: 'bytes'};
  if (filesize >= 1073741824) {
       ret = {dimension:1073741824, name: 'Gb'};
  } else {
    if (filesize >= 1048576) {
         ret = {dimension:1048576, name: 'Mb'};
     } else {
      if (filesize >= 1024) {
        ret = {dimension:1024, name: 'Kb'};
      }
     };
  };
  switch( ( Math.round(filesize/ret.dimension) ).toString().length ){
    default://3,4
      dec_point=0;
      break;
    case 2:
      dec_point=1;
      break;
    case 1:
      dec_point=2;
      break;
  }
  ret.dec_point=dec_point;
  return ret;
};
function number_format( number, decimals, dec_point, thousands_sep ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://crestidg.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // *     example 1: number_format(1234.5678, 2, '.', '');
    // *     returns 1: 1234.57

    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "," : dec_point;
    var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;

    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}
