var hideall = function (){
  var elIds = ['noregister','register','messages'];
  for (var i=0;i<elIds.length;i++){
    var el0 = document.getElementById(elIds[i]);
    el0.style.display='none';
  }
};
var noRegistration = function () {
  //toggle the  display block:
  var el = document.getElementById('returninguserradio');
  //if (!el.checked) return;
  hideall();
  el.checked = true;
  var el0 = document.getElementById('noregister');
  el0.style.display='block';
  document.getElementById('user_name').focus();
};

var newRegistration = function () {
  var el = document.getElementById('newuserradio');
  //if (!el.checked) return;
  hideall();
  el.checked = true;
  var el0 = document.getElementById('register');
  el0.style.display='block';
  document.getElementById('login_name').focus();
};

var showMsg = function (msg){
  var el = document.getElementById('messages');
  if (!msg) {
    el.innerHTML  = '';
    el.style.display="none";
    return;  
  }
  el.style.display="block";
  el.innerHTML = '<b>'+msg+"</b>";
};
var showWaiting = function (shown){
  var el = document.getElementById('waiting');
  if (shown){
    el.style.display="block";
  }else {
    el.style.display="none";
  }
  $("#waiting").css({position:'absolute',
    left:($('#login').offset().left+250)+'px',
    top:($('#login').offset().top+10)+'px'});
};
var ajaxSuc = function (obj){
  if (!obj || obj.length < 2 ){
    showMsg('respond obj is not valid!');
  }else {
    if (!obj[0]){
      //check returning value,
      //if false set, something wrong with the login
      showMsg(obj[1]);
    }else{
      window.location.href=obj[1];
    }
  }
  showWaiting(false);
};
var ajaxFail = function (o){
  showMsg('error occurs while trying to send the request, please check!');
  //send ajax call here:
  showWaiting(false);
};
var onLogin = function () {
  var elName = document.getElementById('user_name');
  var elPwd = document.getElementById('user_password');
  if (!elName.value || !elPwd.value) {
    showMsg('Please Input Valid User Name and Password');
    return;
  }
  showMsg(null);
  showWaiting(true);
  $.ajax({
    type: "POST",
    url: '/account/ajax_login',
    dataType: 'json',
    data: 'name='+elName.value+'&password='+elPwd.value+'&remember_me='+document.getElementById('user_remember_me').value,
    success: ajaxSuc,
    error: ajaxFail
  });
};

var onSignUp = function () {
  var elName = document.getElementById('login_name');
  var elPwd = document.getElementById('login_password');
  var elConfirm = document.getElementById('login_confirm');
  var elEmail = document.getElementById('login_email');
  var elAgree = document.getElementById('agreement');
  if (!elName.value || !elPwd.value || !elConfirm.value || !elEmail.value) {
    showMsg('Please Input Valid User Name and Password and Email address');
    return;
  }
  if (elPwd.value !== elConfirm.value){
    showMsg('Password does not match');
    return;
  }
  if (!elAgree.checked){
    showMsg('Please Check the agreement!');
    return;
  }
  showMsg(null);
  showWaiting(true);
  $.ajax({
    type: "POST",
    url: '/account/ajax_signup',
    dataType: 'json',
    data: 'name='+elName.value+'&password='+elPwd.value+'&email='+elEmail.value,
    success: ajaxSuc,
    error: ajaxFail
  });
};
