(function() {

  function login() {
    var form = document.getElementById('signin-form');
    var account = document.getElementById('account_input').value;
    var subdomainRegexp = /(?:http:\/\/)?(?:www\.)?([A-z0-9]+)(?:\.letsfreckle\.com)?/;
    if(!account.match(subdomainRegexp)) return;
    account = account.match(subdomainRegexp)[1];
    writeCookie('account', account);
    writeCookie('login', document.getElementById('login_input').value);
    form.action = 'https://' + account + '.letsfreckle.com/signin';
    form.submit();
  };

  function writeCookie(key, value) {
    var d = new Date();
    d = new Date(d.getTime() +1000*60*60*24*365);
    document.cookie = key + '=' + encodeURIComponent(value) + '; expires='+d.toGMTString()+';';
  }

  function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length));
    }
    return null;
  }

  document.getElementById('signin-button').onclick = function(event) {
    if(!event) event = window.event;
    event.preventDefault && event.preventDefault();
    var loginButton = document.getElementById('signin-button')
    loginButton.className = 'signin active';
    var dialog = document.getElementById('signin-dialog');
    if(dialog.className == 'visible'){
      dialog.className = '';
      loginButton.className = 'signin';
      return false;
    }
    dialog.className = 'visible';
    if(readCookie('account')!==null) {
      document.getElementById('account_input').value = readCookie('account');
      document.getElementById('login_input').value = readCookie('login');
      document.getElementById('password_input').focus();
    } else {
      document.getElementById('account_input').focus();
    }
    return false;
  };

  document.getElementById('submit_arrow').onclick = login;

  document.getElementById('signin-form').onsubmit = function(event) {
    if(!event) event = window.event;
    event.preventDefault && event.preventDefault();
    login();
    return false;
  };

})();
