// login.js

var g_sUserIsLoggingInCookieName = "fansport_login_beenhere";
var g_sUserLogInEmailCookieName = "fansport_user_login_" + g_sCompetitionId + "_name";
var g_sUserLogInPasswordCookieName = "fansport_user_login_" + g_sCompetitionId + "_password";

/**
 * React to the user clicking one of the mode radio buttons.
 */
function doOnChangeMode(){
  if(document.forms.length > 0){
    var radioMode = document.forms[0].mode;
    var modeSelectedIndex = 0;
    for(var iRad = 0; iRad < radioMode.length; iRad++){
      if(radioMode[iRad].checked){
        modeSelectedIndex = iRad;
        break;
      }
    }
    showHideLoginFields(modeSelectedIndex);
  }
}
/**
 * Set the visibility and background to show what fields need to be completed.
 */
function showHideLoginFields(modeSelectedIndex){
  // Default - Login (mode == 0)
  var sEmailDisplay = "";
  var sPasswordDisplay = "";
  var sRememberMeDisplay = "";
  var sActivateDisplay = "none";
  var sRegisterMsgDisplay = "none";
  var sHelpText = "Enter your details here to log in to " + g_sClientName + " Fantasy " +  g_sSportType + " competition<br />";

  if(g_sDesignId == "1")
    sHelpText = "Enter your details here to log in to " + g_sCompetitionLabel + " competition.<br />";

  if(modeSelectedIndex == 1){
    // Forgot my password
    sPasswordDisplay = "none";
    sRememberMeDisplay = "none";
    sHelpText = "Enter your email address. Your password will be emailed to you.<br />";
  } else if(modeSelectedIndex == 2){
    // Register
    sEmailDisplay = "none";
    sPasswordDisplay = "none";
    sRememberMeDisplay = "none";
    sRegisterMsgDisplay = "";
  } else if(modeSelectedIndex == 3){
    // Activate my acccount.
    sRememberMeDisplay = "none";
    sActivateDisplay = "";
  } // else it is not a valid index

  document.getElementById("area-email").style.display = sEmailDisplay;
  document.getElementById("area-password").style.display = sPasswordDisplay;
  document.getElementById("area-rememberMe").style.display = sRememberMeDisplay;
  document.getElementById("area-activateAccount").style.display = sActivateDisplay;
  document.getElementById("area-regMsg").style.display = sRegisterMsgDisplay;
  document.getElementById("loginHelpText").innerHTML = sHelpText;
}

/**
 * When the page opens, check to see if there are instructions about
 * which fields should be auto filled.
 */
function fillFieldsFromQueryString(){
  if(document.forms[0] != undefined){
    if(g_sLeagueKey != ""){
      document.forms[0].leagueKey.value = g_sLeagueKey;
    }
    var iPutCount = 0;
    if(g_sInviteeEmail != ""){
      if(document.forms[0].email.value == ""){
        document.forms[0].email.value = g_sInviteeEmail;
        iPutCount++;
      }
    }
    if(g_sPassword != ""){
      if(document.forms[0].password.value == ""){
        document.forms[0].password.value = g_sPassword;
        iPutCount++;
      }
    }
    if(iPutCount == 2){
      try {
        document.forms[0].rememberMe.checked = true;
      } catch (e){}
    }
  }
}

/**
 * Show the remember Me checkbox if they have looked at the page
 * before, and they have cookies turned on etc.
 * If they meet all the criteria, put the login info into the
 * appropriate fields.
 */
function manageRememberMe(){
  if(!g_isLoggedIn){
    if(haveILoggedInBefore()){
      document.getElementById("area-rememberMe").style.display = "";
    }
    var sEmailFromCookie = getCookie(g_sUserLogInEmailCookieName);
    if((g_sInviteeEmail == "") && (sEmailFromCookie != "")){
      if(document.forms[0].email.value == ""){
        document.forms[0].email.value = sEmailFromCookie;
        document.forms[0].password.value = getCookie(g_sUserLogInPasswordCookieName);
        document.forms[0].rememberMe.checked = true;
      }
    } else {
      document.forms[0].rememberMe.checked = false;
    }
  }
}

/**
 * React to user clicking the submit button.
 */
function doOnClickSubmit(){
  setCookie(g_sUserIsLoggingInCookieName, "true", 30);
  if(document.forms[0].rememberMe.checked){
    setCookie(g_sUserLogInEmailCookieName, document.forms[0].email.value, 30);
    setCookie(g_sUserLogInPasswordCookieName, document.forms[0].password.value, 30);
  } else {
    deleteCookie(g_sUserLogInEmailCookieName);
    deleteCookie(g_sUserLogInPasswordCookieName);
  }
}

/**
 * Return a string value associated with a named cookie.
 */
function haveILoggedInBefore(){
  if(getCookie(g_sUserIsLoggingInCookieName) == "true"){
    return true;
  }
  return false;
}

/**
 * Get ready for logout, give the user an OK/Cancel first.
 */
function doLogout(forwardLocation){
  if(confirm("Are you sure you want to log out of \n" + g_sCompetitionLabel)){
    document.location = forwardLocation;
  }
}

/**
 * React to the page having finished loading.
 */
function doOnLoad(){
  var sSelectedModeFromQS = getQueryStringParameter("mode");
  var sActivationCode = getQueryStringParameter("activationcode");
  if(sSelectedModeFromQS != ""){
    var iMode = parseInt(sSelectedModeFromQS);
    if(!isNaN(iMode)){
      showHideLoginFields(iMode);
      document.forms[0].mode[iMode].checked = true;
      if(iMode == 3){
        document.forms[0].activationCode.value = sActivationCode;
      }
    }
  } else if (g_sActivationCodeError != ""){
    showHideLoginFields(parseInt(g_sActivationCodeError));
  }
  manageRememberMe();
  fillFieldsFromQueryString();
  doOnChangeMode();
  reloadPageBaseline(); // Must be last, URL can pause main-page load.
}
