﻿var TB_REQUIRED = "tbRequired";
var TB_REQUIRED_HINTS = "tbRequiredHints";

var IBTN_SAVE_ID = "ibtnSaveID";
var IBTN_SAVE_UNIQUE_ID = "ibtnSaveUniqueID";
var ibtnSaveEnabled = false;

var IBTN_NEXT1_ID = "ibtnNext1ID";
var IBTN_NEXT1_UNIQUE_ID = "ibtnNext1UniqueID";
var ibtnNext1Enabled = false;

var IBTN_NEXT2_ID = "ibtnNext2ID";
var IBTN_NEXT2_UNIQUE_ID = "ibtnNext2UniqueID";
var ibtnNext2Enabled = false;

var IBTN_NEXT3_ID = "ibtnNext3ID";
var IBTN_NEXT3_UNIQUE_ID = "ibtnNext3UniqueID";
var ibtnNext3Enabled = false;

var EMAIL_SENT = "emailSent";
var EMAIL_SENT_VALUE = "sendEmail";

var REDIRECT_URL = "redirectUrl";

var setFocus=true;

function PasswordEditorRequestStart(sender, eventArgs)
{
    setFocus=true;
    if(eventArgs.EventTarget == document.getElementById(IBTN_NEXT1_UNIQUE_ID).value)
    {
        if(!ibtnNext1Enabled)
            return false; // cancel request
        else
        {
            ibtnNext1Enabled = false; // disable button in case validation fails (otherwise we won't see it again)
            Common_DisableButton(document.getElementById(document.getElementById(IBTN_NEXT1_ID).value));
        }
    }
    else if(eventArgs.EventTarget == document.getElementById(IBTN_NEXT2_UNIQUE_ID).value)
    {
        if(!ibtnNext2Enabled)
            return false; // cancel request
        else
        {
            ibtnNext2Enabled = false; // disable button in case validation fails (otherwise we won't see it again)
            Common_DisableButton(document.getElementById(document.getElementById(IBTN_NEXT2_ID).value));
        }
    }
    else if(eventArgs.EventTarget == document.getElementById(IBTN_NEXT3_UNIQUE_ID).value)
    {
        if(!ibtnNext3Enabled)
            return false; // cancel request
        else
        {
            ibtnNext3Enabled = false; // disable button in case validation fails (otherwise we won't see it again)
            Common_DisableButton(document.getElementById(document.getElementById(IBTN_NEXT3_ID).value));
        }
    }
    else if(eventArgs.EventTarget == document.getElementById(IBTN_SAVE_UNIQUE_ID).value)
    {
        if(!ibtnSaveEnabled)
            return false; // cancel request
        else
        {
            ibtnSaveEnabled = false; // disable button in case validation fails (otherwise we won't see it again)
            Common_DisableButton(document.getElementById(document.getElementById(IBTN_SAVE_ID).value));
        }
    }
}
function PasswordEditorResponseEnd(sender, eventArgs)
{
    if(eventArgs.EventTarget == document.getElementById(IBTN_NEXT1_UNIQUE_ID).value)
    {
        if(document.getElementById(EMAIL_SENT) != null)
        {
            if(document.getElementById(EMAIL_SENT).value == EMAIL_SENT_VALUE)
            {
                window.radalert(GetEmailSentText(), 330, 200, "Email Sent!");
                setTimeout("EmailSentRedirect()", 7000);
            }
            else
            {
                window.radalert(GetEmailNotSentText(), 330, 200, "Contact Support");
                setTimeout("EmailNotSentRedirect()", 7000);
            }
        }
        else
            ValidateTBStep(1);
    }
    else if(eventArgs.EventTarget == document.getElementById(IBTN_NEXT2_UNIQUE_ID).value)
        ValidateTBStep(2);
    else if(eventArgs.EventTarget == document.getElementById(IBTN_NEXT3_UNIQUE_ID).value)
        ValidateTBStep(3);
}


function ValidateWizard(stepNumber)
{
    var isPopulated = ValidateTBStep(stepNumber);
    
    if(isPopulated)
    {
        switch(stepNumber)
        {
            case 0:
                Common_EnableButton(document.getElementById(document.getElementById(IBTN_NEXT1_ID).value), 'btn_next_', 'Next');
                ibtnNext1Enabled = true;
                break;            
            case 1:
                Common_EnableButton(document.getElementById(document.getElementById(IBTN_NEXT2_ID).value), 'btn_next_', 'Next');
                ibtnNext2Enabled = true;
                break;
            case 2:
                Common_EnableButton(document.getElementById(document.getElementById(IBTN_NEXT3_ID).value), 'btn_next_', 'Next');
                ibtnNext3Enabled = true;
                break;
            case 3:
                Common_EnableButton(document.getElementById(document.getElementById(IBTN_SAVE_ID).value), 'btn_save_', 'Save New Password');
                ibtnSaveEnabled = true;
                break;
            default:
                break;
        }
    }
    else
    {
        switch(stepNumber)
        {
            case 0:
                Common_DisableButton(document.getElementById(document.getElementById(IBTN_NEXT1_ID).value));
                ibtnNext1Enabled = false;
                break;
            case 1:
                Common_DisableButton(document.getElementById(document.getElementById(IBTN_NEXT2_ID).value));
                ibtnNext2Enabled = false;
                break;
            case 2:
                Common_DisableButton(document.getElementById(document.getElementById(IBTN_NEXT3_ID).value));
                ibtnNext3Enabled = false;
                break;
            case 3:
                Common_DisableButton(document.getElementById(document.getElementById(IBTN_SAVE_ID).value));
                ibtnSaveEnabled = false;
                break;
            default:
                break;
        }
    }
}

function ValidateTBStep(stepNumber)
{
    var tbIDString = document.getElementById(TB_REQUIRED + stepNumber).value;
    var tbIDs = tbIDString.split(",");
    var lblIDString = document.getElementById(TB_REQUIRED_HINTS + stepNumber).value;
    var lblIDs = lblIDString.split(",");
    var isValid = true;

    for (var i = 0; i<tbIDs.length; i++)
    {
        if(document.getElementById(tbIDs[i])!=null && document.getElementById(tbIDs[i]).value.length==0)
        {
            Common_SetRequiredFieldHint(lblIDs[i], false);
            isValid = false;
        }
        else
            Common_SetRequiredFieldHint(lblIDs[i], true);
        if(navigator.appVersion.indexOf('MSIE 8.0') > -1 && setFocus)
        {            
            var tb = document.getElementById(tbIDs[i]);
            tb.focus();
            setFocus = false;
        }
    }
    return isValid;
}

function GetEmailSentText()
{
    return "Since you have not yet configured security<BR/>" + 
            "challenges for your account, you cannot reset<BR/>" + 
            "your password.<BR/><BR/>"+
            "<b>Soon, you should receive an email<BR/>" +
            "containing your current password.</b><BR/>";
}

function EmailSentRedirect()
{
    window.location = document.getElementById(REDIRECT_URL).value;
}

function GetEmailNotSentText()
{
    return "Since you have not yet configured security<BR/>" + 
            "challenges for your account, you cannot reset<BR/>" + 
            "your password.<BR/><BR/>"+
            "<b>Please contact customer support<BR/>" +
            "to retrieve your password.</b><BR/>";
}

function EmailNotSentRedirect()
{
    window.location = document.getElementById(REDIRECT_URL).value;
}
