/*
 * Javascript functions that are built into Articlass
 */

function onPageLoad()
{
    // If this is the register page, we want the default condition of the
    // register button to be off
    if (document.getElementById("register-button"))
    {
        document.getElementById("register-button").disabled = true;
    }
}


/* Checks the strength of the password entered on the registration page
 * and modifies a small graphic for the user's convenience
 */
function passwordStrength(password)
{

    var desc = new Array();
    desc[0] = "6 characters required";
    desc[1] = "Weak";
    desc[2] = "Better";
    desc[3] = "Medium";
    desc[4] = "Strong";
    desc[5] = "Strongest";

    var score   = 0;

    // Password must be a minimum of 6 characters
    if (password.length >= 6)
    {
        // Start off by giving them at least one point for having met the minimum
        score++;

        //if password has both lower and uppercase characters give 1 point
        if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;

        //if password has at least one number give 1 point
        if (password.match(/\d+/)) score++;

        //if password has at least one special caracther give 1 point
        if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) ) score++;

        //if password bigger than 12 give another 1 point
        if (password.length > 12) score++;

    }
    else
    {

    }

    document.getElementById("passwordDescription").innerHTML = desc[score];
    document.getElementById("passwordStrength").className = "strength" + score;

}

function evaluateEmail(email)
{
    if (checkEmailSyntax(email))
    {
        document.getElementById("emailEvaluation").style.color = "green";
        document.getElementById("emailEvaluation").innerHTML = "Appears to be a valid email address";
    }
    else
    {
        document.getElementById("emailEvaluation").style.color = "#E04141"; // light red
        document.getElementById("emailEvaluation").innerHTML = "Does not appear to be a valid email address";
    }
}

/* On registration page, makes the register button clickable if all the values
 * satisfy our requirements
 */
function enableRegisterButton()
{
    var email = document.getElementById("register-email").value;
    var password = document.getElementById("register-password").value;
    var password2 = document.getElementById("register-password-confirm").value;
    var registerButton = document.getElementById("register-button");

    if (password.length >= 6 && password2.value === password.value && checkEmailSyntax(email) )
    {
        registerButton.disabled = false;
        registerButton.style.backgroundColor = "lightgreen";
    }
    else
    {
        registerButton.disabled = true;
    }
}

/* Can be used any time we want to evaluate that an entered email address
 * follows the usual syntax for emails
 */
function checkEmailSyntax(email)
{
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if(reg.test(email) == false) {
        return false;
    }
    else
    {
        return true;
    }
}


// Possible code for adding text editor buttons
function blah() {
   var ta = document.getElementById("test");
   if (document.selection) {
      str = document.selection.createRange().text
      document.selection.createRange().text = "[b]" + str + "[/b]";
      return true;
   }
   else if (ta.selectionStart) {
      var startPos = ta.selectionStart;
      var endPos = ta.selectionEnd;
      var str = ta.value.substring(startPos, endPos);
      ta.value = ta.value.substring(0, startPos) + "[b]" + str + "[/b]" + ta.value.substring(endPos, ta.value.length);
      return true;
   }
   else {
      return false;
   }
}
//EXAMPLE:
//<input type="button" value="Bold" onclick="blah()" />
//<br />
//<textarea id="test" style="height:150px">
//This is a test to see if the bold tags will work.
//</textarea>

