// depends on jquery, jquery timers, gm_util

var rp_media = function() {
  var pub = {};

  var current_item = 0;

  var items = [];

  pub.set_items = function(page_items) {
    items = page_items;
    current_item = 0;
  }

  pub.move_next = function() {
    if (++current_item >= items.length) {
      current_item = 0;
    }
  };

  pub.move_prev = function() {
    if (current_item == 0) {
      current_item = items.length;
    }
    current_item--;
  };

  pub.current = function() {
    return items[current_item];
  };

  pub.setFrame = function(idx) {
    if (--idx < 0 || idx > items.length) {
      return;
    }
    current_item = idx;
  };

  pub.currentHTML = function(width, height) {
    if (pub.current().type == 'flash') {
      return gm_util.getFlashHTML(pub.current().src, width, height, pub.current().wmode, pub.current().params, pub.current().version);
    } else if (pub.current().type == 'image') {

      var img = "<img src=\"" + pub.current().src + "\" />";

      if (!pub.current().link) {
        return img;
      }

      return "<a href=\"" + pub.current().link + "\">" + img + "</a>";
    }

    return "";
  };

  pub.currentIdx = function() {
    return (current_item + 1)
  };

  pub.numItems = function() {
    return items.length;
  };

  return pub;

}();

// header stuff
$(function() {
  $('#login_link').click(function() {
    gm_util.open_login();
    return false;
  });

  $('#logout_link').click(function() {
    gm_util.logout();
    return false;
  });

  $('.register_link').click(function() {
    if (! gm_util.is_logged_in()) {
      gm_util.open_reg();
      return false;
    }
    return true;
  });

  $('.myacct_link').click(function() {
    gm_util.open_myacct();
    return false;
  });

  console.log("Setting login_timer");
  $('#top_nav').everyTime(5000, 'login_timer', gm_util.loggedin_check);

  console.log("Calling initial_loggedin_check");
  gm_util.initial_loggedin_check();
});

// homepage flash
function writeFlash () {

	document.write("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"550\" height=\"238 \">");
	document.write("<param name=\"movie\" value=\"http://www.bingouniversal.com/images/swf/slideshow.swf\">");
	document.write("<param name=\"quality\" value=\"high\">");
	document.write("<param name=\"wmode\" value=\"transparent\">");
	document.write("<embed src=\"http://www.bingouniversal.com/images/swf/slideshow.swf\" quality=\"high\" type=\"application/x-shockwave-flash\" width=\"550\" height=\"238\" wmode=transparent></embed>");
	document.write("</object>");
}

// top nav
$(function() {

  $('#home_down').mouseover(function() {
    $('.menu_up').css('visibility', 'hidden');
    $('#home').css('visibility', 'visible');
  });
  $('#home').mouseout(function() {
    $('.menu_up').css('visibility', 'hidden');
  });
  $('#bingo_down').mouseover(function() {
    $('.menu_up').css('visibility', 'hidden');
    $('#bingo').css('visibility', 'visible');
  });
  $('#bingo').mouseout(function() {
    $('.menu_up').css('visibility', 'hidden');
  });
  $('#slots_down').mouseover(function() {
    $('.menu_up').css('visibility', 'hidden');
    $('#slots').css('visibility', 'visible');
  });
  $('#slots').mouseout(function() {
    $('.menu_up').css('visibility', 'hidden');
  });
  $('#numbers_down').mouseover(function() {
    $('.menu_up').css('visibility', 'hidden');
    $('#numbers').css('visibility', 'visible');
  });
  $('#numbers').mouseout(function() {
    $('.menu_up').css('visibility', 'hidden');
  });
  $('#casino_down').mouseover(function() {
    $('.menu_up').css('visibility', 'hidden');
    $('#casino').css('visibility', 'visible');
  });
  $('#casino').mouseout(function() {
    $('.menu_up').css('visibility', 'hidden');
  });
  $('#community_down').mouseover(function() {
    $('.menu_up').css('visibility', 'hidden');
    $('#community').css('visibility', 'visible');
  });
  $('#community').mouseout(function() {
    $('.menu_up').css('visibility', 'hidden');
  });
  $('#mobile_down').mouseover(function() {
    $('.menu_up').css('visibility', 'hidden');
    $('#mobile').css('visibility', 'visible');
  });
  $('#mobile').mouseout(function() {
    $('.menu_up').css('visibility', 'hidden');
  });
  $('#betting_down').mouseover(function() {
    $('.menu_up').css('visibility', 'hidden');
    $('#betting').css('visibility', 'visible');
  });
  $('#betting').mouseout(function() {
    $('.menu_up').css('visibility', 'hidden');
  });
  $('#apuesta_down').mouseover(function() {
    $('.menu_up').css('visibility', 'hidden');
    $('#apuesta').css('visibility', 'visible');
  });
  $('#apuesta').mouseout(function() {
    $('.menu_up').css('visibility', 'hidden');
  });
});

/*
// left nav
$(function() {
  console.log("Left Nav initialisation: %o", $('#menuList'));
  $('#menuList').accordion({
    alwaysOpen: false,
    active: false,
    header: 'li.sec_mi',
    selectedClass: '',
    event: 'click'
  });
});
*/

// game links
$(function() {
  console.log("game link initialisation: %o", $('a.play_link'));

  $('a.play_link').click(function() {
    gm_util.open_game($(this).attr('href'));
    return false;
  });

  $('a.play_mb_link').click(function() {
    $(this).log("Opening bingo");
    gm_util.open_bingo($(this).attr('href'));
    return false;
  });
});


// rotator
$(function() {
  // var rp = $('#rotatorpotator');
  var rp = $('#rotator');

  if (rp.length && rp_items.length > 0) {

    rp_media.set_items(rp_items);

    var rp_interval = 5000;
    var rp_timer_start = 0;
    var rp_timer_pause = 0;

    var timer_start = function () {
      rp.stopTime('rp_timer');
      rp_timer_start = new Date().getTime();
      rp.oneTime(rp_interval, 'rp_timer', time_on);
    };

    var timer_stop = function() {
      rp.stopTime('rp_timer');
      rp.timer_start = 0;
    }

    var timer_pause = function() {
      rp.stopTime('rp_timer');
      rp_timer_pause = new Date().getTime();
    }

    var timer_resume = function() {
      console.log("Timer resuming with interval of " + (rp_interval - (rp_timer_pause - rp_timer_start)));
      if ((rp_interval - (rp_timer_pause - rp_timer_start) < 0)) {
        time_on();
      } else {
        rp.oneTime(rp_interval - (rp_timer_pause - rp_timer_start), 'rp_timer', time_on);
        rp_timer_start += new Date().getTime() - rp_timer_pause;
      }
      rp_timer_pause = 0;
    }

    $('#next_click').click(function() {
      timer_stop();
      rp_media.move_next();
      rp.html(rp_media.currentHTML(rp.width(), rp.height()));
      timer_start();
      return false;
    });

    $('#prev_click').click(function() {
      timer_stop();
      rp_media.move_prev();
      rp.html(rp_media.currentHTML(rp.width(), rp.height()));
      timer_start();
      return false;
    });

    var time_on = function() {
      timer_stop();
      rp_media.move_next();
      rp.html(rp_media.currentHTML(rp.width(), rp.height()));
      timer_start();
    }

    rp.mouseover(function() {
      timer_pause();
    });

    rp.mouseout(function() {
      timer_resume();
    });

    $('.rot_frame').click(function() {
      //console.log("Clicked: " + $(this).text());
      var idx = parseInt($(this).text());
      if (idx != NaN) {
        timer_stop();
        rp_media.setFrame(idx);
        rp.html(rp_media.currentHTML(rp.width(), rp.height()));
        timer_start();
      }
      return false;
    });

    rp.html(rp_media.currentHTML(rp.width(), rp.height()));

    timer_start();
  }

});

