/*
Copyright (c) 2005-2006 TeamF1, Inc.
All rights reserved.
*/

/* wan1_setup.htm and wan2_setup.htm */
function wanSetupValidate ()
    {
    var txtFieldIdArr = new Array ();    
    txtFieldIdArr[0] = "txtWi1LoginUsrName," +
                       "Invalid ISP login information: Please enter a valid login name or ID provided by your ISP";
    txtFieldIdArr[1] = "txtWi1LoginPwd," + 
                       "Invalid ISP login information: Please enter a valid password provided by your ISP";
    txtFieldIdArr[2] = "txtWi1TypeLogServer," + 
                       "Invalid ISP login information: Please enter a valid ISP login server";
    if (txtFieldArrayCheck (txtFieldIdArr) == false)
         return false;
         
    var idleTimeoutObj = document.getElementById('txtWi1TypeIdleTimeOut');
    if (idleTimeoutObj && !idleTimeoutObj.disabled)
        {
        if (numericValueRangeCheck (idleTimeoutObj, 1, 
                                    "Invalid idle timeout value: Please enter a value between 5 and 999 minutes",
                                    5, 999, true, "Invalid idle timeout value:",
                                    "minutes.") == false)
            return false;
        }
    /* validate all IP addresses: check for empty and invalid values */
    if (ipv4AddrOctetsValidate ('tblWi1TypeMyIpAddr', 'IP', false, true,
             "Invalid IP address in 'My IP Address' field.", "for octet ", true) == false)
        return false;
    if (ipv4AddrOctetsValidate ('tblWi1TypeServIpAddr', 'IP', false, true,
             "Invalid IP address in 'Server IP Address' field.", "for octet ", true) == false)
        return false;
    if (ipv4AddrOctetsValidate ('tblWi1IpAddr', 'IP', false, true,
             "Invalid static IP address.", "for octet ", true) == false)
        return false;
    if (ipv4AddrOctetsValidate ('tblWi1IpSnetmask', 'SM', false, true,
             "Invalid IP subnet mask.", "for octet ", true) == false)
        return false;
    if (ipv4AddrOctetsValidate ('tblWi1IpGway', 'IP', false, true,
             "Invalid Gateway IP address.", "for octet ", true) == false)
        return false;
    if (ipv4AddrOctetsValidate ('tblWi1DNSPrimary', 'IP', false, true,
             "Invalid Primary DNS server address.", "for octet ", true) == false)
        return false;
    if (ipv4AddrOctetsValidate ('tblWi1DNSSec', 'IP', true, true,
             "Invalid Secondary DNS server addressr.", "for octet ", true) == false)
        return false;
    return true;
    }
function wan1InitalSettings ()
	{
	ipAddrCheck ();
	dnsServerCheck ();
	wan1IspAustriaEnable ();
	wan1IspOtherEnable ();
	wan1IspBigPondEnable ();
    ispLoginYesCheck ();
	ispLoginNoCheck ();
	}
	
function ispLoginYesCheck ()
	{
	if (document.getElementById('rdbWi1LoginY').checked)
		{
		fieldStateChangeWr ('', '', '', 'tblWi1LoginSection tblWi1TypeSection tblWi1IpAddrSection tblWi1DNSSection');
		wan1IspAustriaEnable ();
		wan1IspOtherEnable ();
		wan1IspBigPondEnable ();
		ipAddrCheck ();
		dnsServerCheck ();
		}
	}
	
function ispLoginNoCheck ()
	{
	if (document.getElementById('rdbWi1LoginN').checked)
		{
		fieldStateChangeWr ('', 'tblWi1LoginSection tblWi1TypeSection', '', 'tblWi1IpAddrSection tblWi1DNSSection');
		ipAddrCheck ();
		dnsServerCheck ();
		}
	}
	
function idleTimeOutCheck ()
	{
	depFieldCheck ('rdbWi1TypeKeepConn', true, 'txtWi1TypeIdleTimeOut', '', '', '');
	depFieldCheck ('rdbWi1TypeKeepConn', false, '', '', 'txtWi1TypeIdleTimeOut', '');
	depFieldCheck ('rdbWi1TypeIdleTimeOut', true, '', '', 'txtWi1TypeIdleTimeOut', '');
	depFieldCheck ('rdbWi1TypeIdleTimeOut', false, 'txtWi1TypeIdleTimeOut', '', '', '');
	}
	
function wan1IspAustriaEnable ()
	{
	if (document.getElementById('rdbWi1TypeAustria').checked)
		{
		fieldStateChangeWr ('txtWi1TypeLogServer txtWi1TypeDmName', '', 'txtWi1TypeAcName rdbWi1TypeKeepConn', 'tblWi1TypeMyIpAddr tblWi1TypeServIpAddr tblWi1IpAddrSection');
     	idleTimeOutCheck ();
		ipAddrCheck ();
		}
	}
	
function wan1IspOtherEnable ()
	{
	if (document.getElementById('rdbWi1TypeOther').checked)
		{
		fieldStateChangeWr ('txtWi1TypeLogServer', 'tblWi1TypeMyIpAddr tblWi1TypeServIpAddr', 'txtWi1TypeAcName txtWi1TypeDmName rdbWi1TypeKeepConn', 'tblWi1IpAddrSection');
     	idleTimeOutCheck ();
		ipAddrCheck ();
		}
	}
function wan1IspBigPondEnable ()
	{
	if (document.getElementById('rdbWi1TypeBigPond').checked)
		{
		fieldStateChangeWr ('txtWi1TypeAcName txtWi1TypeDmName rdbWi1TypeKeepConn', 'tblWi1TypeMyIpAddr tblWi1TypeServIpAddr tblWi1IpAddrSection', 'txtWi1TypeLogServer txtWi1TypeIdleTimeOut', '');
		fieldStateSet ('rdbWi1TypeIdleTimeOut','');
		}
	}
function wanTest (currWanId)
	{
    if (hdPrimWanId.value != null)
        {
        var primWanId = parseInt (hdPrimWanId.value, 10);

        if (currWanId == primWanId)
            {
          	window.open('http://www.netgear.com');
            return;
            }
        }
   
    switch (currWanId)
        {
        case 0:  /* WAN1 */
             alert ("The test can be performed after setting WAN Mode to " +
                    "Single Port and selecting Primary Port as WAN1.");
             break;
        case 1:  /* WAN2 */
             alert ("The test can be performed after setting WAN Mode to " +
                    "Single Port and selecting Primary Port as WAN2.");
             break;
        default:
             return;
        }
    return;
	}