// Generated by CoffeeScript 1.12.4
(function() {
  var createSecret, dataNotFound, hashLoad, initBinds, newSecret, requestSecret, secretCreated, securePassword, showData, somethingWrong;

  securePassword = null;

  createSecret = function() {
    var secret;
    secret = $('#formCreateSecret').find('textarea').val();
    securePassword = Math.random().toString(36).substring(2);
    secret = GibberishAES.enc(secret, securePassword);
    $.ajax('api/create', {
      data: {
        secret: secret
      },
      dataType: "json",
      statusCode: {
        201: secretCreated,
        400: somethingWrong,
        500: somethingWrong,
        404: function() {
          return secretCreated({
            secret_id: 'foobar'
          });
        }
      }
    });
    return false;
  };

  dataNotFound = function() {
    return $('#notfound').show();
  };

  hashLoad = function() {
    var hash;
    hash = window.location.hash;
    if (hash.length === 0) {
      return;
    }
    $('#panelNewSecret').hide();
    $('#panelSecretURL').hide();
    $('#notfound').hide();
    $('#somethingwrong').hide();
    return $('#panelReadSecretPre').show();
  };

  requestSecret = function() {
    var hash, id, parts;
    hash = window.location.hash;
    hash = decodeURIComponent(hash);
    parts = hash.split('|');
    if (parts.length === 2) {
      hash = parts[0];
      securePassword = parts[1];
    }
    id = hash.substring(1);
    return $.ajax("api/get/" + id, {
      dataType: "json",
      statusCode: {
        404: dataNotFound,
        200: showData
      }
    });
  };

  initBinds = function() {
    $('#formCreateSecret').bind('submit', createSecret);
    $('#newSecret, .navbar-brand').bind('click', newSecret);
    $(window).bind('hashchange', hashLoad);
    return $('#revealSecret').bind('click', requestSecret);
  };

  newSecret = function() {
    location.href = location.href.split('#')[0];
    return false;
  };

  secretCreated = function(data) {
    var secretHash, url;
    secretHash = data.secret_id;
    if (securePassword !== null) {
      secretHash = secretHash + "|" + securePassword;
    }
    url = (location.href.split('#')[0]) + "#" + secretHash;
    $('#panelNewSecret').hide();
    $('#panelReadSecretPre').hide();
    $('#panelSecretURL').show();
    $('#panelSecretURL').find('input').val(url);
    $('#panelSecretURL').find('input').focus();
    $('#panelSecretURL').find('input').select();
    return securePassword = null;
  };

  showData = function(data) {
    var secret;
    secret = data.secret;
    if (securePassword !== null) {
      secret = GibberishAES.dec(secret, securePassword);
    }
    $('#panelNewSecret').hide();
    $('#panelSecretURL').hide();
    $('#notfound').hide();
    $('#somethingwrong').hide();
    $('#panelReadSecretPre').hide();
    $('#panelReadSecret').show();
    return $('#panelReadSecret').find('textarea').val(secret);
  };

  somethingWrong = function() {
    return $('#somethingwrong').show();
  };

  $(function() {
    initBinds();
    return hashLoad();
  });

}).call(this);
