function KeyDown(e)
{
  var keynum = e.keyCode | e.which | 0;
  if (keynum == 13) //press "enter"
  {
    before_signin();
    return false;
  }
}

function doSubmit()
{
  CallRememberMe();
  document.signin.submit();  
}

function before_signin (){
    if(document.getElementById("from").value){
        // for 8D-url authentication
        doSubmit();
    }else{
        check_local_account();
    }
}

var is_local_account;
var check_local_account_timeCountMax = 3;
var check_local_account_timeCount;
function check_local_account ()
{
    if(check_local_account_timeCount >= check_local_account_timeCountMax)
    {
        return doSubmit();
    }

    if(is_local_account != -1){
        if(typeof(is_local_account) == "boolean"){
            if(is_local_account){
                doSubmit();
            }else{
                var email = document.getElementById("email").value;
                return query_site_by_email(email);
            }
        }else{
            is_local_account = -1;
            check_local_account_timeCount = 0;
            var js = document.createElement('script');
            js.id = "check_account_loader";
            js.type = 'text/javascript';
            js.src = "/check_account?email=" + encodeURIComponent(document.getElementById("email").value);
            document.getElementsByTagName('head')[0].appendChild(js);
        }
    }

    check_local_account_timeCount++;
    setTimeout(arguments.callee, 1000);
}

var account_site_url;
var query_site_by_email_timeCountMax = 3;
var query_site_by_email_timeCount;
function query_site_by_email (){
    if(query_site_by_email_timeCount >= query_site_by_email_timeCountMax)
    {
        return doSubmit();
    }

    if(account_site_url != -1)
    {
        if(typeof(account_site_url) == "string"){
            // query account API successfully ?
            if(/^http/.test(account_site_url)){
                var site;
                if(site = get_site_by_url(account_site_url)){
                    createCookie("site", site, 365); // update site for IPDB
                }
                document.getElementById('signin').action = account_site_url + "/global";
            }
            return doSubmit();
        }
        account_site_url = -1;
        query_site_by_email_timeCount = 0;
        var js = document.createElement('script');
        js.id = "query_site_by_email_loader";
        js.type = 'text/javascript';
        js.src = "/check_account?global&email=" + encodeURIComponent(document.getElementById("email").value);
        document.getElementsByTagName('head')[0].appendChild(js);
    }
    
    query_site_by_email_timeCount++;
    setTimeout(arguments.callee, 1000);
}

function CallRememberMe()
{
  //var check=document.getElementsByName("signin[RememberMe]");
  var check=document.getElementsByName("RememberMe");
  if (check[0].checked == true) 
  {
    createCookie("remember_me", 1, 7);
    createCookie("remember_email", document.getElementById("email").value, 7);
    createCookie("remember_password", document.getElementById("password").value, 7);
  }
  else
  {
    createCookie('remember_me',"",-1);
    createCookie('remember_email',"",-1);
    createCookie('remember_password',"",-1);
  }
}

// fill saved username and password automatically and immediately !!
(function ()
 {
   try
   {
     var cookie_remember = readCookie('remember_email');
     if(cookie_remember)
     {	
       document.getElementById("email").value = readCookie("remember_email");
       document.getElementById("password").value = readCookie("remember_password");
       document.getElementById("RememberMe").checked = true;
     }
     document.getElementById('email').focus();
  }catch(e) {
   setTimeout(arguments.callee, 500);
 }
 })();

