// Localization Strings
// =====================================================
var L_YourUserName_Text  = "Your <u>u</u>ser name:";
var L_YourPassword_Text  = "Your user pass<u>w</u>ord:";
var L_YourPhone_Text     = "Your ISP\'s <u>p</u>hone number:";
var L_StaticIPAddrX_Text = "* Stati<u>c</u> Internet Protocol (IP) address:";
var L_StaticIPAddr_Text  = "Stati<u>c</u> Internet Protocol (IP) address:";
var L_PreferredDNSX_Text = "* P<u>r</u>eferred Domain Name Server (DNS):";
var L_PreferredDNS_Text  = "P<u>r</u>eferred Domain Name Server (DNS):";
var L_AlternateDNSX_Text = "* <u>A</u>lternate Domain Name Server (DNS):";
var L_AlternateDNS_Text  = "<u>A</u>lternate Domain Name Server (DNS):";
var L_SampleIPRange_Text = "Range: 1-223.0-255.0-255.0-255";
var L_OptionalField_Text = "(Optional)";

var g_iconnectImgDir="images/";
var g_iconnect_SW1="0";

///////////////////////////////////////////////////////////
// msobshel.htm - initialization
///////////////////////////////////////////////////////////
function iconnect_InitSimpleNavMap() 
{
    var iconnect_dir="html\\iconnect\\";
    g_SimpleNavMap.Add("iconnect.htm", iconnect_dir + "icntlast.htm");
}

///////////////////////////////////////////////////////////
// iconnect.htm
///////////////////////////////////////////////////////////
pattern = /^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)$/
valid_ip_switch = false;

var ip_reg_exp1 = 0;
var ip_reg_exp2 = 0;
var ip_reg_exp3 = 0;
var ip_reg_exp4 = 0;

var iconnect_fAutoIPAddress = true;
var iconnect_ipaddr_a = 0;
var iconnect_ipaddr_b = 0;
var iconnect_ipaddr_c = 0;
var iconnect_ipaddr_d = 0;
var iconnect_fAutoDNS = true;
var iconnect_ipaddrDns_a = 0;
var iconnect_ipaddrDns_b = 0;
var iconnect_ipaddrDns_c = 0;
var iconnect_ipaddrDns_d = 0;
var iconnect_ipaddrDnsAlt_a = 0;
var iconnect_ipaddrDnsAlt_b = 0;
var iconnect_ipaddrDnsAlt_c = 0;
var iconnect_ipaddrDnsAlt_d = 0;

function validate_ip(instr, current_ip_field)
{
ip_addr = new RegExp(pattern)
    if (!ip_addr.test(instr))  // check if our parameter matched our pattern regular expression.
    {
        valid_ip_switch = false;

        if (current_ip_field == 1)  // we have to do these stuff to "ENFORCE PROPER PASSING" of parameters to the API.
        {
            iconnect_fAutoIPAddress = true;
            iconnect_ipaddr_a = 0;
            iconnect_ipaddr_b = 0;
            iconnect_ipaddr_c = 0;
            iconnect_ipaddr_d = 0;
        }

        if (current_ip_field == 2)
        {
            iconnect_fAutoDNS = true;
            iconnect_ipaddrDns_a = 0;
            iconnect_ipaddrDns_b = 0;
            iconnect_ipaddrDns_c = 0;
            iconnect_ipaddrDns_d = 0;
        }

        if ((instr != "") && (current_ip_field == 3))
        {
            iconnect_fAutoDNS = true;
            iconnect_ipaddrDnsAlt_a = 0;
            iconnect_ipaddrDnsAlt_b = 0;
            iconnect_ipaddrDnsAlt_c = 0;
            iconnect_ipaddrDnsAlt_d = 0;
        }

        if ((instr == "") && (current_ip_field == 3))
        {
            valid_ip_switch = true;
            iconnect_fAutoDNS = false;  // So that we can be sure the Preferred DNS can still be saved.
            iconnect_ipaddrDnsAlt_a = 0;
            iconnect_ipaddrDnsAlt_b = 0;
            iconnect_ipaddrDnsAlt_c = 0;
            iconnect_ipaddrDnsAlt_d = 0;
        }
    }
    else
    {
        ip_reg_exp1 = parseInt(RegExp.$1);
        ip_reg_exp2 = parseInt(RegExp.$2);
        ip_reg_exp3 = parseInt(RegExp.$3);
        ip_reg_exp4 = parseInt(RegExp.$4);

        // we now check for the range of each.
        if ((ip_reg_exp1<1 || ip_reg_exp1>223) || (ip_reg_exp2<0 || ip_reg_exp2>255) || (ip_reg_exp3<0 || ip_reg_exp3>255) || (ip_reg_exp4<0 || ip_reg_exp4>255))
        {
            valid_ip_switch = false;
        }
        else
        {
            valid_ip_switch = true;

            if (current_ip_field == 1)
            {
                iconnect_fAutoIPAddress = false;
                iconnect_ipaddr_a = ip_reg_exp1;
                iconnect_ipaddr_b = ip_reg_exp2;
                iconnect_ipaddr_c = ip_reg_exp3;
                iconnect_ipaddr_d = ip_reg_exp4;
            }

            if (current_ip_field == 2)
            {
                iconnect_fAutoDNS = false;
                iconnect_ipaddrDns_a = ip_reg_exp1;
                iconnect_ipaddrDns_b = ip_reg_exp2;
                iconnect_ipaddrDns_c = ip_reg_exp3;
                iconnect_ipaddrDns_d = ip_reg_exp4;
            }

            if (current_ip_field == 3)
            {
                iconnect_fAutoDNS = false;
                iconnect_ipaddrDnsAlt_a = ip_reg_exp1;
                iconnect_ipaddrDnsAlt_b = ip_reg_exp2;
                iconnect_ipaddrDnsAlt_c = ip_reg_exp3;
                iconnect_ipaddrDnsAlt_d = ip_reg_exp4;
            }

        }
    }
}

function iconnect_validate1()
{
var iconnect_UserName=g.enableform.iconnect_user.value;
var iconnect_UserPass=g.enableform.iconnect_pass.value;
var iconnect_ISPPhone=g.enableform.iconnect_ispphone.value;
var iconnect_ISPAreaCode=g.enableform.iconnect_ispareacode.value;

    if (iconnect_UserName == "")
    {
        FormatRequiredFieldLabel(g.iconnect_spn_username,1)
    }
    else
    {
        FormatRequiredFieldLabel(g.iconnect_spn_username,0)
    }

    if (iconnect_UserPass == "")
    {
        FormatRequiredFieldLabel(g.iconnect_spn_password,1)
    }
    else
    {
        FormatRequiredFieldLabel(g.iconnect_spn_password,0)
    }

    if (iconnect_ISPPhone == "")
    {
        FormatRequiredFieldLabel(g.iconnect_spn_phoneno,1)
    }
    else
    {
        FormatRequiredFieldLabel(g.iconnect_spn_phoneno,0)
    }


    var p_ip = false;
    if (g.enableform.iconnect_obtainip.checked)
    {
    p_ip = true;
    }
    else
    {
        var iconnect_staticIP=g.enableform.iconnect_staticip.value;
        validate_ip(iconnect_staticIP,1);
        if ((iconnect_staticIP == "") || (!valid_ip_switch))
        {
            g.iconnect_spn_staticIP.innerHTML=L_StaticIPAddrX_Text;
            g.iconnect_spn_staticIP.className = "text-error";
            g.iconnect_spn_obtainIP_tx1.style.display="inline";
            g.iconnect_spn_staticIP_exp.style.display="inline";
        }
        else
        {
            g.iconnect_spn_staticIP.innerHTML=L_StaticIPAddr_Text;
            g.iconnect_spn_staticIP.className = "text-primary";
            g.iconnect_spn_obtainIP_tx1.style.display="none";
            g.iconnect_spn_staticIP_exp.style.display="none";
            p_ip = true;
        }
    }

    var p_dns = false;
    var a_dns = false;
    if (g.enableform.iconnect_obtaindns.checked)
    {
    p_dns = true;
    a_dns = true;
    }
    else
    {
        var iconnect_pref_DNS=g.enableform.iconnect_prefdns.value;
        validate_ip(iconnect_pref_DNS,2);
        if ((iconnect_pref_DNS == "") || (!valid_ip_switch))
        {
            g.iconnect_spn_prefrDNS.innerHTML=L_PreferredDNSX_Text;
            g.iconnect_spn_prefrDNS.className = "text-error";
            g.iconnect_spn_prefrdns_exp.style.display="inline";
        }
        else
        {
            g.iconnect_spn_prefrDNS.innerHTML=L_PreferredDNS_Text;
            g.iconnect_spn_prefrDNS.className = "text-primary";
            g.iconnect_spn_prefrdns_exp.style.display="none";
            p_dns = true;
        }

        var iconnect_altr_DNS=g.enableform.iconnect_altdns.value;
        validate_ip(iconnect_altr_DNS,3);
        // since this textbox is only optional. blank should be ok.
        if ((iconnect_altr_DNS != "") && (!valid_ip_switch))
        {
            g.iconnect_spn_alterDNS.innerHTML=L_AlternateDNSX_Text;
            g.iconnect_spn_alterDNS.className = "text-error";
            g.iconnect_spn_alterdns_exp.innerHTML=L_SampleIPRange_Text;
            g.iconnect_spn_alterdns_exp.className = "text-error-small";
            g.iconnect_spn_alterdns_exp.style.display="inline";
        }
        else
        {
            g.iconnect_spn_alterDNS.innerHTML=L_AlternateDNS_Text;
            g.iconnect_spn_alterDNS.className = "text-primary";
            g.iconnect_spn_alterdns_exp.style.display="none";
            g.iconnect_spn_alterdns_exp.innerHTML=L_OptionalField_Text;
            g.iconnect_spn_alterdns_exp.className = "text-primary";
            g.iconnect_spn_alterdns_exp.style.display="inline";
            a_dns = true;
        }

        if ((iconnect_pref_DNS == "") || (!p_dns || !a_dns))
            {g.iconnect_spn_obtainDNS_tx1.style.display="inline";}
        else
            {g.iconnect_spn_obtainDNS_tx1.style.display="none";}
    }

    // all fields should contain something, else the next button wont continue...
    // --------------------------------------------------------------------------------
    if (iconnect_UserName == ""  || iconnect_UserPass == "" || iconnect_ISPPhone == "" || !p_ip || !p_dns || !a_dns)
      {
      g_iconnect_SW1="0";
      }
    else
      {
      g_iconnect_SW1="1";
      window.external.CreateModemConnectoid(
      	iconnect_ISPAreaCode,
        iconnect_ISPPhone,
        iconnect_fAutoIPAddress,
        iconnect_ipaddr_a,
        iconnect_ipaddr_b,
        iconnect_ipaddr_c,
        iconnect_ipaddr_d,
        iconnect_fAutoDNS,
        iconnect_ipaddrDns_a,
        iconnect_ipaddrDns_b,
        iconnect_ipaddrDns_c,
        iconnect_ipaddrDns_d,
        iconnect_ipaddrDnsAlt_a,
        iconnect_ipaddrDnsAlt_b,
        iconnect_ipaddrDnsAlt_c,
        iconnect_ipaddrDnsAlt_d,
        iconnect_UserName,
        iconnect_UserPass);
      // CreateModemConnectoid set the connectoid to be firewalled at
      // the end of OOBE via an API from HomeNet. we don't want the firewalling
      // if there is one ore more net cards because the function call can affect
      // bridging of the net cards.
      if (HasNetwork())
      {
        window.external.FirewallPreferredConnection(false);
      }
      // We set the registry flag for INS signup. Do it also for manual signup
      ApiObj.set_RegValue(HKEY_LOCAL_MACHINE, OOBE_MAIN_REG_KEY + "\\TEMP", "ISPSignup", 1);
      }
}

function iconnectNextBtnHandler() 
{
    iconnect_validate1();
    if (g_iconnect_SW1=="1")
    {
        SimpleNavNext();
    }
}

function iconnectFirstPage_LoadMe()
{
    InitFrameRef('External');

    if (g.btnNext != null)
        g_FirstFocusElement = g.btnNext;
    else
    if (g.btnSkip != null)
        g_FirstFocusElement = g.btnSkip;
    else
    if (g.btnBack != null)
        g_FirstFocusElement = g.btnBack;

    InitNewButtons(null, "SimpleNext");

    checkme2();
    checkme3();

    if (g_FirstFocusElement != null)
        g_FirstFocusElement.focus();
    else
        g.document.body.focus();

    g.enableform.iconnect_ispareacode.value = TapiObj.get_AreaCode();

    g.btnNext.onclick = iconnectNextBtnHandler;
}

///////////////////////////////////////////////////////////
// icntlast.htm
///////////////////////////////////////////////////////////
function iconnectLastPage_LoadMe()
{
    InitFrameRef('External');
    InitNewButtons("SimpleBack", null);

    g.iconnect_spn_congrats.style.display="inline";
    g.iconnect_spn_valid.style.display="inline";
    g_FirstFocusElement = g.btnNext;
    g_FirstFocusElement.focus();
}

///////////////////////////////////////////////////////////
// iconnect scripts - enable/disable text boxes...
///////////////////////////////////////////////////////////

// iconnect.htm
// ------------

function checkme2()
{
    if (g.enableform.iconnect_obtainip.checked)
    {
        g.enableform.iconnect_staticip.value='';
        g.enableform.iconnect_staticip.style.backgroundColor='#dddddd';
        g.enableform.iconnect_staticip.disabled=true;
        g.iconnect_spn_staticIP.innerHTML=L_StaticIPAddr_Text;
        g.iconnect_spn_staticIP.className = "text-primary";
        g.iconnect_spn_obtainIP_tx1.style.display="none";
        g.iconnect_spn_staticIP_exp.style.display="none";
            iconnect_fAutoIPAddress = true;
            iconnect_ipaddr_a=0;
            iconnect_ipaddr_b=0;
            iconnect_ipaddr_c=0;
            iconnect_ipaddr_d=0;
    }
    else
    {
        g.enableform.iconnect_staticip.value='';
        g.enableform.iconnect_staticip.style.backgroundColor='#ffffff';
        g.enableform.iconnect_staticip.disabled=false;
        g.enableform.iconnect_staticip.focus();
    }
}

function checkme3()
{
    if (g.enableform.iconnect_obtaindns.checked)
    {
        g.enableform.iconnect_prefdns.value='';
        g.enableform.iconnect_altdns.value='';
        g.enableform.iconnect_prefdns.style.backgroundColor='#dddddd';
        g.enableform.iconnect_altdns.style.backgroundColor='#dddddd';
        g.enableform.iconnect_prefdns.disabled=true;
        g.enableform.iconnect_altdns.disabled=true;
        g.iconnect_spn_prefrDNS.innerHTML=L_PreferredDNS_Text;
        g.iconnect_spn_prefrDNS.className = "text-primary";
        g.iconnect_spn_obtainDNS_tx1.style.display="none";
        g.iconnect_spn_prefrdns_exp.style.display="none";
        g.iconnect_spn_alterDNS.innerHTML=L_AlternateDNS_Text;
        g.iconnect_spn_alterDNS.className = "text-primary";
        g.iconnect_spn_alterdns_exp.style.display="none";
        g.iconnect_spn_alterdns_exp.innerHTML=L_OptionalField_Text;
        g.iconnect_spn_alterdns_exp.className = "text-primary";
        g.iconnect_spn_alterdns_exp.style.display="inline";
            iconnect_fAutoDNS=true;
            iconnect_ipaddrDns_a=0;
            iconnect_ipaddrDns_b=0;
            iconnect_ipaddrDns_c=0;
            iconnect_ipaddrDns_d=0;
            iconnect_ipaddrDnsAlt_a=0;
            iconnect_ipaddrDnsAlt_b=0;
            iconnect_ipaddrDnsAlt_c=0;
            iconnect_ipaddrDnsAlt_d=0;
    }
    else
    {
        g.enableform.iconnect_prefdns.value='';
        g.enableform.iconnect_altdns.value='';
        g.enableform.iconnect_prefdns.style.backgroundColor='#ffffff';
        g.enableform.iconnect_altdns.style.backgroundColor='#ffffff';
        g.enableform.iconnect_prefdns.disabled=false;
        g.enableform.iconnect_altdns.disabled=false;
        g.enableform.iconnect_prefdns.focus();
    }
}