var hop = {};
hop.cookie_name = 'hopper_data';
hop.cookie_lifetime = 60;
hop.per_hopper_time = parseInt(45);

hop.notifyUser = function(event, data) {

  switch(event) {

    case 'letzte_runde':
      if(jQuery('#letzte_runde_redrawn').length == 0) {
		jQuery('#hopper_notification').html("Zurzeit kein Hopperversand m&ouml;glich.").fadeIn();
        jQuery('#left_registration_box').html('<img alt="Die Hopper Factory schlie&szlig;t in 30 Minuten. Leider k&oumlnnen heute keine Hopper mehr abgeschickt werden!" src="/img/siteLive_reg_beforeClosing.png" id="letzte_runde_redrawn"/>').fadeIn();
      }
    break;
 
		case 'registration_successful':
      // jQuery('#hopper_counter_box').fadeOut();
      jQuery('#hopper_notification').html("Dein Hopper-Auftrag wird gepr&uuml;ft...").fadeIn();
      jQuery('#big_hopper_notification').html("<img src='/img/status_01.gif'/>").fadeIn();
		break;

		case 'hopper_angenommen':
      // jQuery('#hopper_counter_box').fadeIn();
      // jQuery('#hopper_time_counter').fadeIn();
      jQuery('#hopper_notification').html("Dein Hopper wurde freigeschaltet!").fadeIn();
      jQuery('#big_hopper_notification').html("<img src='/img/status_02_"+data.type+".gif' />").fadeIn();
		break;

    case 'removed':
      hop.clearCookie();
      // jQuery('#hopper_counter_box').fadeOut();
      jQuery('#hopper_notification').html("Jetzt Hopper versenden!").fadeIn();
      var html = "<div style='padding-top:60px'><b>Dein Hopper wurde abgelehnt. <a href='#' class='link' onclick='window.location.reload(); return false;'>Nochmal versuchen!</b></a><br/><br/><br/></div>";
      jQuery('#big_hopper_notification').html(html).fadeIn();
    break;

    case 'offline':
      // jQuery('#status').html("bude ist gerade offline").fadeIn();
    break;

    case 'releasing':
      // jQuery('#hopper_counter_box').fadeOut();
      // jQuery('#hopper_time_counter').html('').fadeOut();
      jQuery('#hopper_notification').html("Dein Hopper wird verarbeitet. ").fadeIn();
      //jQuery('#big_hopper_notification').html("Achtung! Dein Hopper wird JETZT f&uuml;r den	Abschuss bereit gemacht!<br/><center><br/><img src='/img/map/hop_map2.png'/></center>").fadeIn();
		jQuery('#big_hopper_notification').html("<img src='/img/status_03_"+data.type+".gif' />").fadeIn();
			// window.setTimeout(this.notifyUser('done_releasing', data), 10000);
    break;

    case 'current':
      // if(data.code) {
      //   jQuery('#current_hopper').html('#' + data.code).fadeIn();
      // }else{
      //   jQuery('#current_hopper').html('').fadeIn();
      // }
    break;

		case 'update_counter':

			if(data.pos == 0){
				data.pos = 1;
			}else if(data.pos > 0) {
				data.pos = data.pos + 1;
			}

			if(data.pos) {
				var pos = parseFloat(data.pos);
				this.time = this.per_hopper_time * pos;
				// window.setInterval(function() { hop.updateCounter('hopper_time_counter'); }, 1000); 
      	// window.setTimeout(function() { jQuery('#hopper_counter_box').fadeIn(); }, 1010);
			}
		break;

		case 'remove_counter':
      // jQuery('#hopper_counter_box').fadeOut();
      // jQuery('#hopper_time_counter').html('').fadeOut();
		break;

		case 'done_releasing':

      // jQuery('#hopper_counter_box').fadeOut();
      jQuery('#hopper_notification').html("Dein Hopper wird verarbeitet. ").fadeIn();
      //jQuery('#big_hopper_notification').html("Achtung! Dein Hopper wird jetzt f&uuml;r den	Abschuss bereit gemacht!").fadeIn();
	  jQuery('#big_hopper_notification').html("<img src='/img/status_03_"+data.type+".gif' />").fadeIn();

      jQuery('#hopper_notification').html("Dein Hopper wurde abgeschickt.").fadeIn();
	  
      //var html = "Dein Hopper wurde versendet. <br/> Wenn du willst, kannst du <a class='link' href='#' onclick='window.location.reload(); return false;'>noch einen Hopper verschicken!</a>";
	  jQuery('#big_hopper_notification').html("<a class='link' href='#' onclick='window.location.reload(); return false;'><img src='/img/status_04_"+data.type+".gif' /></a>").fadeIn();
      jQuery('#big_hopper_notification').html(html).fadeIn();
    break;

		case 'no_hopper':
      jQuery('#hopper_notification').html("Jetzt Hopper versenden!").fadeIn();
		break;
  
    default:
      jQuery('#hopper_notification').html("default state").fadeIn();
    break;

  }
};

hop.clearCookie = function() {
  var date = hop.cookie_lifetime * 60 * 1000;
  return jQuery.cookie(hop.cookie_name, null, {path: '/', expires: date});
};

hop.getCookie = function() {
  return jQuery.cookie(hop.cookie_name);
};

hop.setCookie = function(data) {
  var date = hop.cookie_lifetime * 60 * 1000;
  return jQuery.cookie(hop.cookie_name, data, {path: '/', expires: date});
};

hop.setCookieJSON = function(data) {
  var date = hop.cookie_lifetime * 60 * 1000;
  return jQuery.cookie(hop.cookie_name, JSON.stringify(data), {path: '/', expires: date});
};

hop.getCookieJSON = function() {

  var cookie = hop.getCookie();

  try {
    var json = JSON.parse(cookie);
    if(!json) json = {};
  }catch(e){
    json = {};
  }

  return json;
};

hop.updateCounter = function(element_id) {
	this.time = this.time - 1;
	var minutes = Math.floor(this.time/60);
	var display_minutes = zeroPad(minutes, 2);
	var seconds = this.time % 60;
	var display_seconds = zeroPad(seconds,2);
	if((minutes <= 0) && (seconds <= 0)) {
		jQuery('#' + element_id).html('wenigen Augenblicken');
	}else{
		jQuery('#' + element_id).html(display_minutes + ':' + display_seconds + ' Minuten');
	}
};

hop.openLayer = function(name) {

	// function to open predefined layers from flash
	
	switch(name) {

		case 'gewinne':
			jQuery('#outerspace').attr('style', 'display: block;');
			jQuery('#layerLinkHIW').click();
		break;

		case 'agb':
			jQuery('#agb').show();
			jQuery('#flashcontent').css('visibility','hidden');
			// if(notMap) {hop.stream.stopCamera();}			
		break;
	
		default:
		break;
	}
};

hop.fb_share = function() {
  var u = 'http://www.hopperinvasion.de';
  var t = 'Ich habe gerade live meinen pers&ouml;nlichen Hopper losgelassen!';
  var url = 'http://www.facebook.com/sharer.php?';

  window.open(url + 'u=' + u + '&t=' + t, 'sharer', 'toolbar=0, status=0, width=626, height=436');
  return false;

};

hop.getFbLink = function() {
  var html = '<a href="http://www.facebook.com/share.php?u=<url>" onclick="return hop.fb_share();" name="fb_share" target="_blank">' +
             ' <img src="http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif?8:26981" alt=""/> share on facebook ' +
             '</a>';

  return html;
};

hop.getTwitterLink = function() {
	var text = "Ich habe gerade live meinen pers&ouml;nlichen Hopper verschickt! "+
	           "Mach auch mit und gewinne ein Around the World Ticket!";
  var html = '<a target="_blank" href="http://twitter.com/home?status='+text+'+-+www.hopperinvasion.de">' +
             'tweet this' +
             '</a>';
  return html;
};

hop.getTwitterReturnLink = function() {
 	var text = "Ich habe gerade einen Hopper gefunden und gemeldet!"+
	           "Mach auch mit und gewinne ein Around the World Ticket!";
 var html = '<a href="http://twitter.com/home?status='+text+'+-+www.hopperinvasion.de">' +
             'tweet this' +
             '</a>';
  return html;
};

hop.setOwnHopperCode = function(code) {
	var data  = {code: 200, content: {hopper_code: code}};
	return hop.registration('success', 'left_registration_box', data);
};

function zeroPad(num,count) {
	var numZeropad = num + '';
	while(numZeropad.length < count) {
		numZeropad = "0" + numZeropad;
	}
	return numZeropad;
}


function sendFoundHopper(form)
{
	var action = form.attr('action');
	var daten = form.serializeArray();
	jQuery.post(action, daten, function(data) 
	{
		if(data)
		{
			jQuery('#boxHopperFoundDataInner input, #boxHopperFoundDataInner textarea').attr('class', '');
			if(data.type == 'error')
			{
				var errors = '';
				jQuery.each(data.content, function(key, value)
				{
					jQuery('#return_'+key).attr('class', 'error');
					errors = errors + '<p>- ' + value + '</p>';
				});
				errors = errors + '<p class="link"><a class="link" href="#" onclick="jQuery(\'#errorMessages\').fadeOut(); return false"><img src="/img/hopperFound_error_ok.png" /></a></p>';
				jQuery('#errorMessages .body').html(errors);
				jQuery('#errorMessages').fadeIn();
			}
			else
			{
				jQuery('#boxHopperFoundDataInner').hide();
				jQuery('#success').fadeIn();
			}
		}
		else
		{

		}
	}, 'json');
	return false;
};	
