var stat_swin=0; var stat_seq=0; var stat_slose=0;
var stat_lwin=0; var stat_leq=0; var stat_llose=0;
var stat_scount=0;

$(document).ready(function() {
  // do stuff when DOM is ready


  $("#game_startgame").click(function(){
    start_game();
    return false;
  });

  
  // handler for ajax errors
  $(document).ajaxError(function() {
  });
  
  jQuery('a[rel*=facebox]').facebox();

  
});


$(function() {
    var numberInputs = $("input.number");
    var convertToCurrencyDisplayFormat = function(str) {
        var regex = /(-?[0-9]+)([0-9]{3})/;
        str += '';
        while (regex.test(str)) {
            str = str.replace(regex, '$1.$2');
        }
        return str;
    };
    var stripNonNumeric = function(str) {
        str += '';
        str = str.replace(/[^0-9]/g, '');
        return str;
    };
    numberInputs.each(function() {
        this.value = convertToCurrencyDisplayFormat(this.value);
    });
    numberInputs.blur(function() {
        this.value = convertToCurrencyDisplayFormat(this.value);
    });
    numberInputs.focus(function() {
        this.value = stripNonNumeric(this.value);
    });
    $("form").submit(function() {
        numberInputs.each(function() {
            this.value = stripNonNumeric(this.value);
        });
    });
});

function start_game() {

  var einsatz = $("#game_einsatz").val();
  einsatz =  einsatz.replace(/\./g, "");
  var jackpot_in_use = 0;
  if ($('#usejackpot').is(':checked')) {
    jackpot_in_use=1;
  }
  $.post("ajax/start_game.php?e="+einsatz, { q:1,r:einsatz,jiu:jackpot_in_use },
     function(data){
     
     var haserror = false;

     if (einsatz>data.konto) {
      haserror=true;
       jQuery.facebox(function() {
          jQuery.get('ajax/auszahlung.php?e=1', function(data) {
            jQuery.facebox(data)
          })
        });
     }
     else {
       var error = ""+data.error;
       if (error!='undefined') {
        haserror=true;
        jQuery.facebox('<b>Fehler: </b><br><span style="color:red;">'+error+'</span>');
        return;
       }
     }
     
     stat_scount++;

      var cUser, cComp, txtResult;
      switch (data.who_win) {
        case "user":
          cUser="win";
          cComp="lose";
          txtResult="gewonnen";
          stat_swin++;
          stat_lwin+=data.win-einsatz;
          $("#stat_bar").append('<img src="img/bar_green.png">');
          break;
        case "comp":
          cUser="lose";
          cComp="win";
          txtResult="verloren";
          stat_slose++;
          stat_llose+=einsatz-0;
          $("#stat_bar").append('<img src="img/bar_red.png">');
          break;
        case "same":
          cUser="eq";
          cComp="eq";
          txtResult="gleich";
          stat_seq++;
          stat_leq+=data.win-einsatz;
          $("#stat_bar").append('<img src="img/bar_grey.png">');
          break;
      }
      
      if (stat_scount%570==0) {
        $("#stat_bar").empty();
      }

      var date = new Date();
      var time = date.getHours()+":"+padDigits(date.getMinutes(),2)+":"+padDigits(date.getSeconds(),2)+" Uhr";

      $("#userzahl").removeClass('win lose eq').addClass(cUser).html(data.userzahl);
      $("#compzahl").removeClass('win lose eq').addClass(cComp).html(data.compzahl);

      $("#ergebnis").html(txtResult);
      $("#konto").html(addCommas(data.konto));
      $("#jackpot").html(addCommas(data.jackpot));
      
      
      
      // aktivrally
      if (data.ap_active==1) {
        $("#ap_user").html(addCommas(data.ap_user));
        $("#ap_next").html(addCommas(data.ap_next));
      }
      // 1000-rally
      if (data.tr_active==1) {
        $("#1000_user").html(addCommas(data.tr_user+0));
        $("#1000_ende").html(addCommas(data.tr_ende));
      }

      $('#gametable tr:first').after('<tr class="'+cUser+'"><td>'+time+'</td><td>'+addCommas(einsatz)+'</td><td>'+txtResult+'</td><td>'+addCommas(data.win)+'</td><td>'+addCommas(data.konto)+'</td></tr>');

      if ($('#gametable > tbody').children().size() > 10) {
        $('#gametable tr:last').remove();
      }
      
      if (data.who_win=="user") {
        $("#jackpot_zahl").html(data.jackpot_zahl);
        $("#fallzahl_jackpot").html(data.fallzahl_jackpot);
      } else {
        $("#jackpot_zahl").html('-');
      }

      if (data.jackpot_win==1) {
      
        $('#gametable tr:first').after('<tr class="jp"><td>'+time+'</td><td>-</td><td>JACKPOT</td><td>'+addCommas(data.jackpot_menge_gewonnen)+'</td><td>'+addCommas(data.konto)+'</td></tr>');

        if ($('#gametable > tbody').children().size() > 10) {
          $('#gametable tr:last').remove();
        }
      
        var jackpothtml = '<div style="text-align:center;width:400px;"><h1 style="color:red;"><img src="img/win.png" style="vertical-align:middle;"> Herzlichen Glückwunsch!</h1><br>Du hast den Jackpot in Höhe von <b>'+addCommas(data.jackpot_menge_gewonnen)+' Losen</b> gewonnen!</div>';
        jQuery.facebox(jackpothtml);
      } else {
        if ($('#autoplay').is(':checked')) {
          if (haserror!=true)
            setTimeout("start_game()", 500);
        }
      }
      
      updateStats();

     }, "json");


}

function updateStats() {

  $("#stat_scount").html(stat_scount);

  $("#stat_swin").html(addCommas(stat_swin));
  $("#stat_seq").html(addCommas(stat_seq));
  $("#stat_slose").html(addCommas(stat_slose));
  
  var stat_scount_s = stat_scount-stat_seq;
  
  $("#stat_rwin").html(prozent(stat_swin/stat_scount_s));
  $("#stat_rlose").html(prozent(stat_slose/stat_scount_s));
  
}

function auszahlung() {
  var anz = $("#ausz_menge").val();
  jQuery.facebox(function() {
    jQuery.get('ajax/auszahlung.php', { action:"auszahlung", menge:anz}, function(data) {
      jQuery.facebox(data);
    });
  });
}
function einzahlung() {
  var anz = $("#einz_menge").val();
  var pw = $("#lpw").val();
  jQuery.facebox(function() {
    jQuery.get('ajax/auszahlung.php', { action:"einzahlung", menge:anz, lpw:pw}, function(data) {
      jQuery.facebox(data);
    });
  });
}
function treuelose() {
  jQuery.facebox(function() {
    jQuery.get('ajax/auszahlung.php', { action:"treuelose", q:"1"}, function(data) {
      jQuery.facebox(data);
    });
  });
}



// HELPER FUNCTIONS
///////////////////

function addCommas(nStr)
{
  nStr += '';
  x = nStr.split(',');
  x1 = x[0];
  x2 = x.length > 1 ? '.' + x[1] : '';
  var rgx = /(\d+)(\d{3})/;
  while (rgx.test(x1)) {
    x1 = x1.replace(rgx, '$1' + '.' + '$2');
  }
  return x1 + x2;
}

function prozent(n)
{
  return (Math.round(n*100*100)/100)+"%";
}

function padDigits(n, totalDigits)
{
  n = n.toString();
  var pd = '';
  if (totalDigits > n.length)
  {
    for (i=0; i < (totalDigits-n.length); i++)
    {
        pd += '0';
    }
  }
  return pd + n.toString();
}
