xiaoyihu 发表于 2008-1-8 23:03

请教各位,网页显示时有问题!!!

文件比较大,把网页和里面的脚本代码放在这里,请高手帮忙看一下,非常感激!!

<html>
   <head>
      <meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
      <link rel="stylesheet" href='stylemain.css' type='text/css'>
         <link rel="stylesheet" href='colors.css' type='text/css'>
            <script language="javascript" src="util.js"></script>
            <script language="javascript">

var changed = 0;

var old_MBSSID;

var SSID = new Array();
var PreAuth = new Array();
var AuthMode = new Array();
var EncrypType = new Array();
var DefaultKeyID = new Array();
var Key1Type = new Array();
var Key1Str = new Array();
var Key2Type = new Array();
var Key2Str = new Array();
var Key3Type = new Array();
var Key3Str = new Array();
var Key4Type = new Array();
var Key4Str = new Array();
var WPAPSK = new Array();
var RekeyMethod = new Array();
var RekeyInterval = new Array();
var PMKCachePeriod = new Array();
var IEEE8021X = new Array();
var RADIUS_Server = new Array();
var RADIUS_Port = new Array();
var RADIUS_Key = new Array();
var session_timeout_interval = new Array();

function checkRange(str, num, min, max)
{
    d = atoi(str,num);
    if(d > max || d < min)
        return false;
    return true;
}

function checkIpAddr(field)
{
    if(field.value == "")
        return false;

    if ( checkAllNum(field.value) == 0)
        return false;

    if( (!checkRange(field.value,1,0,255)) ||
        (!checkRange(field.value,2,0,255)) ||
        (!checkRange(field.value,3,0,255)) ||
        (!checkRange(field.value,4,1,254)) ){
        return false;
    }
   return true;
}

function atoi(str, num)
{
    i=1;
    if(num != 1 ){
        while (i != num && str.length != 0){
            if(str.charAt(0) == '.'){
                i++;
            }
            str = str.substring(1);
        }
        if(i != num )
            return -1;
    }

    for(i=0; i<str.length; i++){
        if(str.charAt(i) == '.'){
            str = str.substring(0, i);
            break;
        }
    }
    if(str.length == 0)
        return -1;
    return parseInt(str, 10);
}

function checkHex(str){
        var len = str.length;

        for (var i=0; i<str.length; i++) {
                if ((str.charAt(i) >= '0' && str.charAt(i) <= '9') ||
                        (str.charAt(i) >= 'a' && str.charAt(i) <= 'f') ||
                        (str.charAt(i) >= 'A' && str.charAt(i) <= 'F') ){
                                continue;
                }else
                return false;
        }
    return true;
}

function checkInjection(str)
{
        var len = str.length;
        for (var i=0; i<str.length; i++) {
                if ( str.charAt(i) == ';' || str.charAt(i) == ',' ||
                         str.charAt(i) == '\r' || str.charAt(i) == '\n'){
                                return false;
                }else
                continue;
        }
    return true;
}

function checkAllNum(str)
{
    for (var i=0; i<str.length; i++){
        if((str.charAt(i) >= '0' && str.charAt(i) <= '9') || (str.charAt(i) == '.' ))
            continue;
        return false;
    }
    return true;
}

function style_display_on()
{
        if (window.ActiveXObject) { // IE
                return "block";
        }
        else if (window.XMLHttpRequest) { // Mozilla, Safari,...
                return "table-row";
        }
}

var http_request = false;
function makeRequest(url, content) {
        http_request = false;
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                        http_request.overrideMimeType('text/xml');
                }
        } else if (window.ActiveXObject) { // IE
                try {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                }
        }
        if (!http_request) {
                alert('Giving up :( Cannot create an XMLHTTP instance');
                return false;
        }
        http_request.onreadystatechange = alertContents;
        http_request.open('POST', url, true);
        http_request.send(content);
}

function alertContents() {
        if (http_request.readyState == 4) {
                if (http_request.status == 200) {
//                        alert(http_request.responseText);
                        parseAllData(http_request.responseText);

                        UpdateMBSSIDList();
                        LoadFields(0, 0);

//                        if(<% getWPSModeASP(); %> && <% isWPSConfiguredASP(); %>){
//                                alert("Info: The security settings has been assigned under active WPS functions.\nYou still could change security setting manually but the existed WPS settings would be overwritted.");
//                        }

                } else {
                        alert('There was a problem with the request.');
                }
        }
}

function parseAllData(str)
{
        var all_str = new Array();
        all_str = str.split("$");

        for (var i=0; i<all_str.length-1; i++) {
                var fields_str = new Array();
                fields_str = all_str[i].split("&");

                SSID[i] = fields_str[0];
                PreAuth[i] = fields_str[1];
                AuthMode[i] = fields_str[2];
                EncrypType[i] = fields_str[3];
                DefaultKeyID[i] = fields_str[4];
                Key1Type[i] = fields_str[5];
                Key1Str[i] = fields_str[6];
                Key2Type[i] = fields_str[7];
                Key2Str[i] = fields_str[8];
                Key3Type[i] = fields_str[9];
                Key3Str[i] = fields_str[10];
                Key4Type[i] = fields_str[11];
                Key4Str[i] = fields_str[12];
                WPAPSK[i] = fields_str[13];
                RekeyMethod[i] = fields_str[14];
                RekeyInterval[i] = fields_str[15];
                PMKCachePeriod[i] = fields_str[16];
                IEEE8021X[i] = fields_str[17];
                RADIUS_Server[i] = fields_str[18];
                RADIUS_Port[i] = fields_str[19];
                RADIUS_Key[i] = fields_str[20];
                session_timeout_interval[i] = fields_str[21];

                /* !!!! IMPORTANT !!!!*/
                if(IEEE8021X[i] == "1")
                        AuthMode[i] = "IEEE8021X";

                if(AuthMode[i] == "OPEN" && EncrypType[i] == "NONE" && IEEE8021X[i] == "0")
                        AuthMode[i] = "Disable";
        }
}

function checkData()
{
        var securitymode;
//        var ssid = Ssid.value;
       
        securitymode = security_mode.value;
        if (securitymode == "OPEN" || securitymode == "SHARED" ||securitymode == "WEPAUTO")
        {
                return check_Wep(securitymode);
        }else if (securitymode == "WPAPSK" || securitymode == "WPA2PSK" || securitymode == "WPAPSKWPA2PSK" /* || security_mode == 5 */){
                var keyvalue = passphrase.value;

                if (keyvalue.length == 0){
                        alert('Please input wpapsk key!');
                        return false;
                }

                if (keyvalue.length < 8){
                        alert('Please input at least 8 character of wpapsk key!');
                        return false;
                }
               
                if(checkInjection(passphrase.value) == false){
                        alert('Invalid characters in Pass Phrase.');
                        return false;
                }

                if(cipher[0].checked != true &&
                   cipher[1].checked != true &&
                      cipher[2].checked != true){
                      alert('Please choose a WPA Algorithms.');
                      return false;
                }

                if(checkAllNum(keyRenewalInterval.value) == false){
                        alert('Please input a valid key renewal interval');
                        return false;
                }
                if(keyRenewalInterval.value < 60){
                        alert('Warning: A short key renewal interval.');
                        // return false;
                }
                if(check_wpa() == false)
                        return false;
        }
        //802.1x
        else if (securitymode == "IEEE8021X") // 802.1x
        {
                if( ieee8021x_wep[0].checked == false &&
                        ieee8021x_wep[1].checked == false){
                        alert('Please choose the 802.1x WEP option.');
                        return false;
                }
                if(check_radius() == false)
                        return false;
        }else if (securitymode == "WPA" || securitymode == "WPA1WPA2") //     WPA or WPA1WP2 mixed mode
        {
                if(check_wpa() == false)
                        return false;
                if(check_radius() == false)
                        return false;
        }else if (securitymode == "WPA2") //         WPA2
        {
                if(check_wpa() == false)
                        return false;
                if( PreAuthentication[0].checked == false &&
                        PreAuthentication[1].checked == false){
                        alert('Please choose the Pre-Authentication options.');
                        return false;
                }

                if(!PMKCachePeriod.value.length){
                        alert('Please input the PMK Cache Period.');
                        return false;
                }
                if(check_radius() == false)
                        return false;
        }

        return true;
}

function check_wpa()
{
                if(cipher[0].checked != true &&
                   cipher[1].checked != true &&
                      cipher[2].checked != true){
                      alert('Please choose a WPA Algorithms.');
                      return false;
                }

                if(checkAllNum(keyRenewalInterval.value) == false){
                        alert('Please input a valid key renewal interval');
                        return false;
                }
                if(keyRenewalInterval.value < 60){
                        alert('Warning: A short key renewal interval.');
                        // return false;
                }
                return true;
}

function check_radius()
{
        if(!RadiusServerIP.value.length){
                alert('Please input the radius server ip address.');
                return false;               
        }
        if(!RadiusServerPort.value.length){
                alert('Please input the radius server port number.');
                return false;               
        }
        if(!RadiusServerSecret.value.length){
                alert('Please input the radius server shared secret.');
                return false;               
        }

        if(checkIpAddr(RadiusServerIP) == false){
                alert('Please input a valid radius server ip address.');
                return false;               
        }
        if( (checkRange(RadiusServerPort.value, 1, 1, 65535)==false) ||
                (checkAllNum(RadiusServerPort.value)==false)){
                alert('Please input a valid radius server port number.');
                return false;               
        }
        if(checkInjection(RadiusServerSecret.value)==false){
                alert('The shared secret contains invalid characters.');
                return false;               
        }

        if(RadiusServerSessionTimeout.value.length){
                if(checkAllNum(RadiusServerSessionTimeout.value)==false){
                        alert('Please input a valid session timeout number or u may left it empty.');
                        return false;       
                }       
        }

        return true;
}

function securityMode(c_f)
{
        var security_mode;


        changed = c_f;

        hideWep();


        document.getElementById("div_security_shared_mode").style.visibility = "hidden";
        document.getElementById("div_security_shared_mode").style.display = "none";
        document.getElementById("div_wpa").style.visibility = "hidden";
        document.getElementById("div_wpa").style.display = "none";
        document.getElementById("div_wpa_algorithms").style.visibility = "hidden";
        document.getElementById("div_wpa_algorithms").style.display = "none";
        document.getElementById("wpa_passphrase").style.visibility = "hidden";
        document.getElementById("wpa_passphrase").style.display = "none";
        document.getElementById("wpa_key_renewal_interval").style.visibility = "hidden";
        document.getElementById("wpa_key_renewal_interval").style.display = "none";
        document.getElementById("wpa_PMK_Cache_Period").style.visibility = "hidden";
        document.getElementById("wpa_PMK_Cache_Period").style.display = "none";
        document.getElementById("wpa_preAuthentication").style.visibility = "hidden";
        document.getElementById("wpa_preAuthentication").style.display = "none";
        cipher[0].disabled = true;
        cipher[1].disabled = true;
        cipher[2].disabled = true;
        passphrase.disabled = true;
        keyRenewalInterval.disabled = true;
        PMKCachePeriod.disabled = true;
        PreAuthentication.disabled = true;

        // 802.1x
        document.getElementById("div_radius_server").style.visibility = "hidden";
        document.getElementById("div_radius_server").style.display = "none";
        document.getElementById("div_8021x_wep").style.visibility = "hidden";
        document.getElementById("div_8021x_wep").style.display = "none";
        ieee8021x_wep.disable = true;
        RadiusServerIP.disable = true;
        RadiusServerPort.disable = true;
        RadiusServerSecret.disable = true;       
        RadiusServerSessionTimeout.disable = true;
        RadiusServerIdleTimeout.disable = true;       

        security_mode = security_mode.value;

        if (security_mode == "OPEN" || security_mode == "SHARED" ||security_mode == "WEPAUTO"){
                showWep(security_mode);
        }else if (security_mode == "WPAPSK" || security_mode == "WPA2PSK" || security_mode == "WPAPSKWPA2PSK"){
                <!-- WPA -->
                document.getElementById("div_wpa").style.visibility = "visible";
                if (window.ActiveXObject) { // IE
                        document.getElementById("div_wpa").style.display = "block";
                }
                else if (window.XMLHttpRequest) { // Mozilla, Safari,...
                        document.getElementById("div_wpa").style.display = "table";
                }

                document.getElementById("div_wpa_algorithms").style.visibility = "visible";
                document.getElementById("div_wpa_algorithms").style.display = style_display_on();
                cipher[0].disabled = false;
                cipher[1].disabled = false;

                // deal with TKIP-AES mixed mode
                if(security_mode == "WPAPSK" && cipher[2].checked)
                        cipher[2].checked = false;
                // deal with TKIP-AES mixed mode
                if(security_mode == "WPA2PSK" || security_mode == "WPAPSKWPA2PSK")
                        cipher[2].disabled = false;

                document.getElementById("wpa_passphrase").style.visibility = "visible";
                document.getElementById("wpa_passphrase").style.display = style_display_on();
                passphrase.disabled = false;

                document.getElementById("wpa_key_renewal_interval").style.visibility = "visible";
                document.getElementById("wpa_key_renewal_interval").style.display = style_display_on();
                keyRenewalInterval.disabled = false;
        }else if (security_mode == "WPA" || security_mode == "WPA2" || security_mode == "WPA1WPA2") //wpa enterprise
        {
                document.getElementById("div_wpa").style.visibility = "visible";
                if (window.ActiveXObject) { // IE
                        document.getElementById("div_wpa").style.display = "block";
                }else if (window.XMLHttpRequest) { // Mozilla, Safari,...
                        document.getElementById("div_wpa").style.display = "table";
                }

                document.getElementById("div_wpa_algorithms").style.visibility = "visible";
                document.getElementById("div_wpa_algorithms").style.display = style_display_on();
                cipher[0].disabled = false;
                cipher[1].disabled = false;
                document.getElementById("wpa_key_renewal_interval").style.visibility = "visible";
                document.getElementById("wpa_key_renewal_interval").style.display = style_display_on();
                keyRenewalInterval.disabled = false;
       
                <!-- 802.1x -->
                document.getElementById("div_radius_server").style.visibility = "visible";
                document.getElementById("div_radius_server").style.display = style_display_on();
                RadiusServerIP.disable = false;
                RadiusServerPort.disable = false;
                RadiusServerSecret.disable = false;       
                RadiusServerSessionTimeout.disable = false;
                RadiusServerIdleTimeout.disable = false;       

                // deal with TKIP-AES mixed mode
                if(security_mode == "WPA" && cipher[2].checked)
                        cipher[2].checked = false;
                // deal with TKIP-AES mixed mode
                if(security_mode == "WPA2"){
                        cipher[2].disabled = false;
                        document.getElementById("wpa_preAuthentication").style.visibility = "visible";
                        document.getElementById("wpa_preAuthentication").style.display = style_display_on();
                        PreAuthentication.disabled = false;
                        document.getElementById("wpa_PMK_Cache_Period").style.visibility = "visible";
                        document.getElementById("wpa_PMK_Cache_Period").style.display = style_display_on();
                        PMKCachePeriod.disabled = false;
                }

                // deal with WPA1WPA2 mixed mode
                if(security_mode == "WPA1WPA2"){
                        cipher[2].disabled = false;
                }

        }else if (security_mode == "IEEE8021X"){ // 802.1X-WEP
                document.getElementById("div_8021x_wep").style.visibility = "visible";
                document.getElementById("div_8021x_wep").style.display = style_display_on();

                document.getElementById("div_radius_server").style.visibility = "visible";
                document.getElementById("div_radius_server").style.display = style_display_on();
                ieee8021x_wep.disable = false;
                RadiusServerIP.disable = false;
                RadiusServerPort.disable = false;
                RadiusServerSecret.disable = false;       
                RadiusServerSessionTimeout.disable = false;
                //RadiusServerIdleTimeout.disable = false;
        }
}


function hideWep()
{
        document.getElementById("div_wep").style.visibility = "hidden";
        document.getElementById("div_wep").style.display = "none";
/*
        wep_key_length.disabled = true;
        wep_key_entry_method.disabled = true;
        wep_key_1.disabled = true;
        wep_key_2.disabled = true;
        wep_key_3.disabled = true;
        wep_key_4.disabled = true;
        wep_default_key.disabled = true;
*/
}
function showWep(mode)
{
        <!-- WEP -->
        document.getElementById("div_wep").style.visibility = "visible";

        if (window.ActiveXObject) { // IE
                document.getElementById("div_wep").style.display = "block";
        }
        else if (window.XMLHttpRequest) { // Mozilla, Safari...
                document.getElementById("div_wep").style.display = "table";
        }

        if(mode == "SHARED"){
                document.getElementById("div_security_shared_mode").style.visibility = "visible";
                document.getElementById("div_security_shared_mode").style.display = style_display_on();
        }
        //wep_auth_type.disabled = false;
/*        wep_key_length.disabled = false;
        wep_key_entry_method.disabled = false;
        wep_key_1.disabled = false;
        wep_key_2.disabled = false;
        wep_key_3.disabled = false;
        wep_key_4.disabled = false;
        wep_default_key.disabled = false;


        if (wep_key_length.options.selectedIndex == 0) {
                <!-- KEY length 64 bits -->
                if (wep_key_entry_method.options.selectedIndex == 0) {
                  <!-- HEX -->
                  wep_key_1.maxLength = 10;
                  wep_key_2.maxLength = 10;
                  wep_key_3.maxLength = 10;
                  wep_key_4.maxLength = 10;
                }
                else {
                  <!-- ASCII -->
                  wep_key_1.maxLength = 5;
                  wep_key_2.maxLength = 5;
                  wep_key_3.maxLength = 5;
                  wep_key_4.maxLength = 5;
                }
        }
        else {
                <!-- KEY length 128 bits -->
                if (wep_key_entry_method.options.selectedIndex == 0) {
                  <!-- HEX -->
                  wep_key_1.maxLength = 26;
                  wep_key_2.maxLength = 26;
                  wep_key_3.maxLength = 26;
                  wep_key_4.maxLength = 26;
                }
                else {
                  <!-- ASCII -->
                  wep_key_1.maxLength = 13;
                  wep_key_2.maxLength = 13;
                  wep_key_3.maxLength = 13;
                  wep_key_4.maxLength = 13;
                }
        }
*/
}


function check_Wep(securitymode)
{
        var defaultid = wep_default_key.value;
        var key_input;

        if ( defaultid == 1 )
                var keyvalue = wep_key_1.value;
        else if (defaultid == 2)
                var keyvalue = wep_key_2.value;
        else if (defaultid == 3)
                var keyvalue = wep_key_3.value;
        else if (defaultid == 4)
                var keyvalue = wep_key_4.value;

        if (keyvalue.length == 0 &&  (securitymode == "SHARED" || securitymode == "OPEN")){ // shared wep  || md5
                alert('Please input wep key'+defaultid+' !');
                return false;
        }

        var keylength = wep_key_1.value.length;
        if (keylength != 0){
                if (WEP1Select.options.selectedIndex == 0){
                        if(keylength != 5 && keylength != 13) {
                                alert('Please input 5 or 13 characters of wep key1 !');
                                return false;
                        }
                        if(checkInjection(wep_key_1.value)== false){
                                alert('Wep key1 contains invalid characters.');
                                return false;
                        }
                }
                if (WEP1Select.options.selectedIndex == 1){
                        if(keylength != 10 && keylength != 26) {
                                alert('Please input 10 or 26 characters of wep key1 !');
                                return false;
                        }
                        if(checkHex(wep_key_1.value) == false){
                                alert('Invalid Wep key1 format!');
                                return false;
                        }
                }
        }

        keylength = wep_key_2.value.length;
        if (keylength != 0){
                if (WEP2Select.options.selectedIndex == 0){
                        if(keylength != 5 && keylength != 13) {
                                alert('Please input 5 or 13 characters of wep key2 !');
                                return false;
                        }
                        if(checkInjection(wep_key_1.value)== false){
                                alert('Wep key2 contains invalid characters.');
                                return false;
                        }                       
                }
                if (WEP2Select.options.selectedIndex == 1){
                        if(keylength != 10 && keylength != 26) {
                                alert('Please input 10 or 26 characters of wep key2 !');
                                return false;
                        }
                        if(checkHex(wep_key_2.value) == false){
                                alert('Invalid Wep key2 format!');
                                return false;
                        }
                }
        }

        keylength = wep_key_3.value.length;
        if (keylength != 0){
                if (WEP3Select.options.selectedIndex == 0){
                        if(keylength != 5 && keylength != 13) {
                                alert('Please input 5 or 13 characters of wep key3 !');
                                return false;
                        }
                        if(checkInjection(wep_key_1.value)== false){
                                alert('Wep key3 contains invalid characters.');
                                return false;
                        }
                }
                if (WEP3Select.options.selectedIndex == 1){
                        if(keylength != 10 && keylength != 26) {
                                alert('Please input 10 or 26 characters of wep key3 !');
                                return false;
                        }
                        if(checkHex(wep_key_3.value) == false){
                                alert('Invalid Wep key3 format!');
                                return false;
                        }                       
                }
        }

        keylength = wep_key_4.value.length;
        if (keylength != 0){
                if (WEP4Select.options.selectedIndex == 0){
                        if(keylength != 5 && keylength != 13) {
                                alert('Please input 5 or 13 characters of wep key4 !');
                                return false;
                        }
                        if(checkInjection(wep_key_1.value)== false){
                                alert('Wep key4 contains invalid characters.');
                                return false;
                        }                       
                }
                if (WEP4Select.options.selectedIndex == 1){
                        if(keylength != 10 && keylength != 26) {
                                alert('Please input 10 or 26 characters of wep key4 !');
                                return false;
                        }

                        if(checkHex(wep_key_4.value) == false){
                                alert('Invalid Wep key4 format!');
                                return false;
                        }                       
                }
        }
        return true;
}
       
function submit_apply()
{

        if (checkData() == true){
                changed = 0;

                submit();
//                opener.location.reload();
        }
}

function LoadFields(MBSSID)
{
        var result;
        // Security Policy
        sp_select = document.getElementById("security_mode");

        sp_select.options.length = 0;
        sp_select.options[sp_select.length] = new Option("Disable",        "Disable",        false, AuthMode[MBSSID] == "Disable");
        sp_select.options[sp_select.length] = new Option("OPEN",        "OPEN",                false, AuthMode[MBSSID] == "OPEN");
        sp_select.options[sp_select.length] = new Option("SHARED",        "SHARED",         false, AuthMode[MBSSID] == "SHARED");
        sp_select.options[sp_select.length] = new Option("WEPAUTO", "WEPAUTO",        false, AuthMode[MBSSID] == "WEPAUTO");
        sp_select.options[sp_select.length] = new Option("WPA",                "WPA",                false, AuthMode[MBSSID] == "WPA");
        sp_select.options[sp_select.length] = new Option("WPA-PSK", "WPAPSK",        false, AuthMode[MBSSID] == "WPAPSK");
        sp_select.options[sp_select.length] = new Option("WPA2",        "WPA2",                false, AuthMode[MBSSID] == "WPA2");
        sp_select.options[sp_select.length] = new Option("WPA2-PSK","WPA2PSK",        false, AuthMode[MBSSID] == "WPA2PSK");
        sp_select.options[sp_select.length] = new Option("WPAPSKWPA2PSK","WPAPSKWPA2PSK",        false, AuthMode[MBSSID] == "WPAPSKWPA2PSK");
        sp_select.options[sp_select.length] = new Option("WPA1WPA2","WPA1WPA2",        false, AuthMode[MBSSID] == "WPA1WPA2");

        /*
         * until now we only support 8021X WEP for MBSSID[0]
         */
        if(MBSSID == 0)
                sp_select.options[sp_select.length] = new Option("802.1X",        "IEEE8021X",false, AuthMode[MBSSID] == "IEEE8021X");

        // WEP
        document.getElementById("WEP1").value = Key1Str[MBSSID];
        document.getElementById("WEP2").value = Key2Str[MBSSID];
        document.getElementById("WEP3").value = Key3Str[MBSSID];
        document.getElementById("WEP4").value = Key4Str[MBSSID];

        document.getElementById("WEP1Select").selectedIndex = (Key1Type[MBSSID] == "0" ? 1 : 0);
        document.getElementById("WEP2Select").selectedIndex = (Key2Type[MBSSID] == "0" ? 1 : 0);
        document.getElementById("WEP3Select").selectedIndex = (Key3Type[MBSSID] == "0" ? 1 : 0);
        document.getElementById("WEP4Select").selectedIndex = (Key4Type[MBSSID] == "0" ? 1 : 0);

        document.getElementById("wep_default_key").selectedIndex = parseInt(DefaultKeyID[MBSSID]) - 1 ;

        // SHARED && NONE
        if(AuthMode[MBSSID] == "SHARED" && EncrypType[MBSSID] == "NONE")
                document.getElementById("security_shared_mode").selectedIndex = 1;
        else
                document.getElementById("security_shared_mode").selectedIndex = 0;

        // WPA
        if(EncrypType[MBSSID] == "TKIP")
                cipher[0].checked = true;
        else if(EncrypType[MBSSID] == "AES")
                cipher[1].checked = true;
        else if(EncrypType[MBSSID] == "TKIPAES")
                cipher[2].checked = true;

        document.getElementById("passphrase").value = WPAPSK[MBSSID];
        document.getElementById("keyRenewalInterval").value = RekeyInterval[MBSSID];
        document.getElementById("PMKCachePeriod").value = PMKCachePeriod[MBSSID];
        //document.getElementById("PreAuthentication").value = PreAuth[MBSSID];
        if(PreAuth[MBSSID] == "0")
                PreAuthentication[0].checked = true;
        else
                PreAuthentication[1].checked = true;

        //802.1x wep
        if(IEEE8021X[MBSSID] == "1"){
                if(EncrypType[MBSSID] == "WEP")
                        ieee8021x_wep[1].checked = true;
                else
                        ieee8021x_wep[0].checked = true;
        }
       
        document.getElementById("RadiusServerIP").value = RADIUS_Server[MBSSID];
        document.getElementById("RadiusServerPort").value = RADIUS_Port[MBSSID];
        document.getElementById("RadiusServerSecret").value = RADIUS_Key[MBSSID];                       
        document.getElementById("RadiusServerSessionTimeout").value = session_timeout_interval[MBSSID];
       
        securityMode(0);

}
/*
* When user select the different SSID, this function would be called.
*/
function selectMBSSIDChanged()
{
        // check if any security settings changed
        if(changed){
                ret = confirm("Are you sure to ignore changed?");
                if(!ret){
                        ssidIndex.options.selectedIndex = old_MBSSID;
                        return false;
                }
                else
                        changed = 0;
        }

        var selected = ssidIndex.options.selectedIndex;
        // backup for user cancel action
        old_MBSSID = selected;

        // load wep/wpa/802.1x table for MBBSSID[selected]
        LoadFields(selected);

        // radio button special case
        WPAAlgorithms = EncrypType[selected];
        IEEE8021XWEP = IEEE8021X[selected];
        PreAuthentication = PreAuth[selected];

        changeSecurityPolicyTableTitle(SSID[selected]);
        return true;
}

function changeSecurityPolicyTableTitle(t)
{
        var title = document.getElementById("sp_title");
        title.innerHTML = "Security Mode -- " + "\"" + t + "\"";
}

function initAll()
{
        parseAllData("<% getSecurity(); %>");
        //makeRequest("/goform/wirelessGetSecurity", "something");
        UpdateMBSSIDList();
        LoadFields(0, 0);
}

function UpdateMBSSIDList() {
        //var ssidIndex = document.getElementById("ssidIndex");
        //ssidIndex.options.length = 0;
        ssidIndex.length = 0;
        var defaultSelected = false;
        var selected = false;

        for(var i=0; i<SSID.length; i++){
                var j = ssidIndex.options.length;
                ssidIndex.options[j] = new Option(SSID[i], i, defaultSelected, selected);
        }
       
        old_MBSSID = 0;

        changeSecurityPolicyTableTitle(SSID[0]);
}

function setChange(c){
        changed = c;
}

var WPAAlgorithms;
function onWPAAlgorithmsClick(type)
{
        if(type == 0 && WPAAlgorithms == "TKIP") return;
        if(type == 1 && WPAAlgorithms == "AES") return;
        if(type == 2 && WPAAlgorithms == "TKIPAES") return;
        setChange(1);
}

var IEEE8021XWEP;
function onIEEE8021XWEPClick(type)
{
        if(type == 0 && IEEE8021XWEP == false) return;
        if(type == 1 && IEEE8021XWEP == true) return;
        setChange(1);
}

var PreAuthentication;
function onPreAuthenticationClick(type)
{
        if(type == 0 && PreAuthentication == false) return;
        if(type == 1 && PreAuthentication == true) return;
        setChange(1);
}

function btnApply()
{
  var loc = 'wlsec.wl?';
  with ( document.forms[0] )
  {
   loc += submitSelect(ssidIndex);
   var security_mode = getSelect(security_mode);
   var i = ssidIndex.options.selectedIndex; i++;
   loc += '&AuthMode=';
   loc += security_mode;
   if ( security_mode == 'Disable' || security_mode == 'OPEN' || security_mode == 'SHARED' || security_mode == 'WEPAUTO')
   {
    var security_shared_mode = getSelect(security_shared_mode);
    loc += '&EncrypType=';
    loc += security_shared_mode;
    var wep_default_key = getSelect(wep_default_key);
    loc += '&DefaultKeyID=';
    loc += wep_default_key;
    var type, val;
    type = getSelect(WEP1Select);
    val = wep_key_1.value;
    loc += '&Key1Type=' + type;
    loc += ('&Key1Str'+‘i‘) + '=' + encodeUrl(wep_key_1.value);
    type = getSelect(WEP2Select);
    val = wep_key_2.value;
    loc += '&Key2Type=' + type;
    loc += ('&Key1Str'+‘i‘) + '=' + encodeUrl(wep_key_2.value);
    type = getSelect(WEP3Select);
    val = wep_key_3.value;
    loc += '&Key3Type=' + type;
    loc += ('&Key1Str'+‘i‘) + '=' + encodeUrl(wep_key_3.value);
    type = getSelect(WEP4Select);
    val = wep_key_4.value;
    loc += '&Key4Type=' + type;
    loc += ('&Key1Str'+‘i‘) + '=' + encodeUrl(wep_key_4.value);
   }
   else if ( security_mode.indexOf("WPA") != -1 )
   {
    if ( cipher[0].checked == true )
     {
      loc += '&EncrypType=TKIP';
     }
    else if ( cipher[1].checked == true )
    {
     loc += '&EncrypType=AES';
    }
    else if ( cipher[2].checked == true )
    {
     loc += '&EncrypType=TKIPAES';
    }
    var val;
    val = passphrase.value;
    loc += ('&WPAPSK'+‘i‘) + '=' + encodeUrl(passphrase.value);
    val = keyRenewalInterval.value;
    loc += '&RekeyInterval=' + encodeUrl(keyRenewalInterval.value);
    val = PMKCachePeriod.value;
    loc += '&PMKCachePeriod=' + encodeUrl(PMKCachePeriod.value);
    if ( PreAuthentication[0].checked == true )
    {
     loc += '&PreAuth=0';
    }
    else if ( PreAuthentication[1].checked == true )
    {
     loc += '&PreAuth=1';
    }
    val = RadiusServerIP.value;
    loc += '&RADIUS_Server=' + encodeUrl(RadiusServerIP.value);
    val = RadiusServerPort.value;
    loc += '&RADIUS_Port=' + encodeUrl(RadiusServerPort.value);
    val = RadiusServerSecret.value;
    loc += '&RADIUS_Key=' + encodeUrl(RadiusServerSecret.value);
    val = RadiusServerSessionTimeout.value;
    loc += '&session_timeout_interval=' + encodeUrl(RadiusServerSessionTimeout.value);
   }
   else if ( security_mode == '802.1X')
   {
    var val;
    if ( ieee8021x_wep[0].checked == true )
    {
     loc += '&IEEE8021X=0';
    }
    else if ( ieee8021x_wep[1].checked == true )
    {
     loc += '&IEEE8021X=1';
    }
   }     
  }
  var code = 'location="' + loc + '"';
  eval(code);
}
</script>
</head>
<body onload="initAll()">
<table><tbody><tr><td>

<form>

<!-- ---------------------  MBSSID Selection  --------------------- -->
<table border="1" cellpadding="2" cellspacing="1" width="540" bordercolor="#FFFFFF">
<tbody><tr>
  <td><b>Select SSID</b></td>
</tr>
  <tr>
    <td class="head">SSID choice:</td>
    <td>
      <select name="ssidIndex" size="1" onchange="selectMBSSIDChanged()">
                        <!-- ....Javascript will update options.... -->
      </select>
    </td>
  </tr>
</tbody></table>


<table border="1" bordercolor="#FFFFFF" cellpadding="3" cellspacing="1" hspace="2" vspace="2" width="540">
  <tbody><tr>

    <td> <span id="sp_title"><b>Security Policy</b></span></td>
  </tr>
  <tr id="div_security_infra_mode" name="div_security_infra_mode">
    <td>Security Mode:</td>
    <td>
      <select name="security_mode" id="security_mode" size="1" onchange="securityMode(1)">
                        <!-- ....Javascript will update options.... -->
      </select>

    </td>
  </tr>
  <tr id="div_security_shared_mode" name="div_security_shared_mode">
    <td>Encrypt Type:</td>
    <td>
      <select name="security_shared_mode" id="security_shared_mode" size="1" onchange="securityMode(1)">
                <option value=WEP>WEP</option>
                <option value=None>None</option>
      </select>

    </td>
  </tr>

</tbody></table>
<br>

<!-- WEP -->
<table id="div_wep" name="div_wep" border="1" bordercolor="#FFFFFF" cellpadding="3" cellspacing="1" hspace="2" vspace="2" width="540">
  <tbody><tr>
    <td><b>Wire Equivalence Protection (WEP)</b></td>
  </tr>

  <tr>
    <td>Default Key:</td>
    <td colspan="2">
      <select name="wep_default_key" id="wep_default_key" size="1" onchange="setChange(1)">
        <option value="1">Key 1</option>
        <option value="2">Key 2</option>
        <option value="3">Key 3</option>
        <option value="4">Key 4</option>
      </select>
    </td>
  </tr>
  
  <tr>
    <td>WEP Key 1:</td>
    <td><input name="wep_key_1" id="WEP1" maxlength="26" value="" onKeyUp="setChange(1)"></td>
    <td><select id="WEP1Select" name="WEP1Select" onchange="setChange(1)">
                <option value="1">ASCII</option>
                <option value="0">Hex</option>
                </select></td>
  </tr>

  <tr>
    <td>WEP Key 2:</td>
    <td><input name="wep_key_2" id="WEP2" maxlength="26" value="" onKeyUp="setChange(1)"></td>
    <td><select id="WEP2Select" name="WEP2Select" onchange="setChange(1)">
                <option value="1">ASCII</option>
                <option value="0">Hex</option>
                </select></td>
  </tr>
  <tr>
    <td>WEP Key 3:</td>
    <td><input name="wep_key_3" id="WEP3" maxlength="26" value="" onKeyUp="setChange(1)"></td>
    <td><select id="WEP3Select" name="WEP3Select" onchange="setChange(1)">
                <option value="1">ASCII</option>
                <option value="0">Hex</option>
                </select></td>
  </tr>
  <tr>
    <td>WEP Key 4:</td>
    <td><input name="wep_key_4" id="WEP4" maxlength="26" value="" onKeyUp="setChange(1)"></td>
    <td><select id="WEP4Select" name="WEP4Select" onchange="setChange(1)">
                <option value="1">ASCII</option>
                <option value="0">Hex</option>
                </select></td>
  </tr>

</tbody></table>
<!-- <br /> -->

<!-- WPA -->
<table id="div_wpa" name="div_wpa" border="1" bordercolor="#FFFFFF" cellpadding="3" cellspacing="1" hspace="2" vspace="2" width="540">

  <tbody><tr>
    <td><b>WPA</b></td>
  </tr>
  <tr id="div_wpa_algorithms" name="div_wpa_algorithms">
    <td>WPA Algorithms:</td>
    <td>
      <input name="cipher" id="cipher" value="0" type="radio" onClick="onWPAAlgorithmsClick(0)">TKIP ?
      <input name="cipher" id="cipher" value="1" type="radio" onClick="onWPAAlgorithmsClick(1)">AES ?
      <input name="cipher" id="cipher" value="2" type="radio" onClick="onWPAAlgorithmsClick(2)">TKIPAES ?
    </td>
  </tr>
  <tr id="wpa_passphrase" name="wpa_passphrase">
    <td>Pass Phrase:</td>
    <td>
      <input name="passphrase" id="passphrase" size="28" maxlength="64" value="" onKeyUp="setChange(1)">
    </td>
  </tr>

  <tr id="wpa_key_renewal_interval" name="wpa_key_renewal_interval">
    <td>Key Renewal Interval:</td>
    <td>
      <input name="keyRenewalInterval" id="keyRenewalInterval" size="4" maxlength="4" value="" onKeyUp="setChange(1)"> seconds
    </td>
  </tr>

  <tr id="wpa_PMK_Cache_Period" name="wpa_PMK_Cache_Period">
    <td>PMK Cache Period:</td>
    <td>
      <input name="PMKCachePeriod" id="PMKCachePeriod" size="4" maxlength="4" value="" onKeyUp="setChange(1)"> minute
    </td>
  </tr>

  <tr id="wpa_preAuthentication" name="wpa_preAuthentication">
    <td>Pre-Authentication:</td>
    <td>
      <input name="PreAuthentication" id="PreAuthentication" value="0" type="radio" onClick="onPreAuthenticationClick(0)">Disable ?
      <input name="PreAuthentication" id="PreAuthentication" value="1" type="radio" onClick="onPreAuthenticationClick(1)">Enable ?
    </td>
  </tr>
</tbody></table>


<!-- 802.1x -->
<!-- WEP  -->
<table id="div_8021x_wep" name="div_8021x_wep" border="1" bordercolor="#FFFFFF" cellpadding="3" cellspacing="1" hspace="2" vspace="2" width="540">
  <tbody>
  <tr>
    <td><b>802.1x WEP</b></td>
  </tr>
  <tr>
                <td> WEP: </td>
                <td>
              <input name="ieee8021x_wep" id="ieee8021x_wep" value="0" type="radio" onClick="onIEEE8021XWEPClick(0)">Disable ?
              <input name="ieee8021x_wep" id="ieee8021x_wep" value="1" type="radio" onClick="onIEEE8021XWEPClick(1)">Enable
                </td>
  </tr>
</tbody></table>

<br>
<table id="div_radius_server" name="div_radius_server" border="1" bordercolor="#FFFFFF" cellpadding="3" cellspacing="1" hspace="2" vspace="2" width="540">
<tbody>
   <tr>
    <td><b>Radius Server</b></td>
   </tr>
    <tr>
                <td> IP Address: </td>
                <td> <input name="RadiusServerIP" id="RadiusServerIP" size="16" maxlength="32" value="" onKeyUp="setChange(1)"> </td>
        </tr>
    <tr>
                <td> Port: </td>
                <td> <input name="RadiusServerPort" id="RadiusServerPort" size="5" maxlength="5" value="" onKeyUp="setChange(1)"> </td>
        </tr>
    <tr>
                <td> Shared Secret: </td>
                <td> <input name="RadiusServerSecret" id="RadiusServerSecret" size="16" maxlength="64" value="" onKeyUp="setChange(1)"> </td>
        </tr>
    <tr>
                <td> Session Timeout: </td>
                <td> <input name="RadiusServerSessionTimeout" id="RadiusServerSessionTimeout" size="3" maxlength="4" value="" onKeyUp="setChange(1)"> </td>
        </tr>
    <tr>
                <td> Idle Timeout: </td>
                <td> <input name="RadiusServerIdleTimeout" id="RadiusServerIdleTimeout" size="3" maxlength="4" value="" onKeyUp="setChange(1)" readonly> </td>
        </tr>

</tbody></table>


<!-- <br /> -->
<table border="0" cellpadding="2" cellspacing="1" width="540">
  <tbody><tr align="center">

    <td>
      <input style="width: 120px;" value="Apply" onclick="btnApply()" type="button"> ? ?
      <input style="width: 120px;" value="Cancel" type="reset" onClick="window.location.reload()" >
    </td>
  </tr>
</tbody></table>
</form>

</td></tr></tbody></table>
</body></html>



下面是util.js源代码:


function isHexaDigit(digit) {
   var hexVals = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
                           "A", "B", "C", "D", "E", "F", "a", "b", "c", "d", "e", "f");
   var len = hexVals.length;
   var i = 0;
   var ret = false;

   for ( i = 0; i < len; i++ )
      if ( digit == hexVals[i] ) break;

   if ( i < len )
      ret = true;

   return ret;
}

function isValidKey(val, size) {
   var ret = false;
   var len = val.length;
   var dbSize = size * 2;

   if ( len == size )
      ret = true;
   else if ( len == dbSize ) {
      for ( i = 0; i < dbSize; i++ )
         if ( isHexaDigit(val.charAt(i)) == false )
            break;
      if ( i == dbSize )
         ret = true;
   } else
      ret = false;

   return ret;
}


function isValidHexKey(val, size) {
   var ret = false;
   if (val.length == size) {
      for ( i = 0; i < val.length; i++ ) {
         if ( isHexaDigit(val.charAt(i)) == false ) {
            break;
         }
      }
      if ( i == val.length ) {
         ret = true;
      }
   }

   return ret;
}


function isNameUnsafe(compareChar) {
   var unsafeString = "\"<>%\\^[]`\+\$\,='#&@.: \t";
       
   if ( unsafeString.indexOf(compareChar) == -1 && compareChar.charCodeAt(0) > 32
        && compareChar.charCodeAt(0) < 123 )
      return false; // found no unsafe chars, return false
   else
      return true;
}   

// Check if a name valid
function isValidName(name) {
   var i = 0;       
   
   for ( i = 0; i < name.length; i++ ) {
      if ( isNameUnsafe(name.charAt(i)) == true )
         return false;
   }

   return true;
}

// same as is isNameUnsafe but allow spaces
function isCharUnsafe(compareChar) {
   var unsafeString = "\"<>%\\^[]`\+\$\,='#&@.:\t";
       
   if ( unsafeString.indexOf(compareChar) == -1 && compareChar.charCodeAt(0) >= 32
        && compareChar.charCodeAt(0) < 123 )
      return false; // found no unsafe chars, return false
   else
      return true;
}   

function isValidNameWSpace(name) {
   var i = 0;       
   
   for ( i = 0; i < name.length; i++ ) {
      if ( isCharUnsafe(name.charAt(i)) == true )
         return false;
   }

   return true;
}

function isSameSubNet(lan1Ip, lan1Mask, lan2Ip, lan2Mask) {

   var count = 0;
   
   lan1a = lan1Ip.split('.');
   lan1m = lan1Mask.split('.');
   lan2a = lan2Ip.split('.');
   lan2m = lan2Mask.split('.');

   for (i = 0; i < 4; i++) {
      l1a_n = parseInt(lan1a[i]);
      l1m_n = parseInt(lan1m[i]);
      l2a_n = parseInt(lan2a[i]);
      l2m_n = parseInt(lan2m[i]);
      if ((l1a_n & l1m_n) == (l2a_n & l2m_n))
         count++;
   }
   if (count == 4)
      return true;
   else
      return false;
}


function isValidIpAddress(address) {
   var i = 0;

   if ( address == '0.0.0.0' ||
        address == '255.255.255.255' )
      return false;

   addrParts = address.split('.');
   if ( addrParts.length != 4 ) return false;
   for (i = 0; i < 4; i++) {
      if (isNaN(addrParts[i]) || addrParts[i] =="")
         return false;
      num = parseInt(addrParts[i]);
      if ( num < 0 || num > 255 )
         return false;
   }
   return true;
}

function getLeftMostZeroBitPos(num) {
   var i = 0;
   var numArr = [128, 64, 32, 16, 8, 4, 2, 1];

   for ( i = 0; i < numArr.length; i++ )
      if ( (num & numArr[i]) == 0 )
         return i;

   return numArr.length;
}

function getRightMostOneBitPos(num) {
   var i = 0;
   var numArr = [1, 2, 4, 8, 16, 32, 64, 128];

   for ( i = 0; i < numArr.length; i++ )
      if ( ((num & numArr[i]) >> i) == 1 )
         return (numArr.length - i - 1);

   return -1;
}

function isValidSubnetMask(mask) {
   var i = 0, num = 0;
   var zeroBitPos = 0, oneBitPos = 0;
   var zeroBitExisted = false;

   if ( mask == '0.0.0.0' )
      return false;

   maskParts = mask.split('.');
   if ( maskParts.length != 4 ) return false;

   for (i = 0; i < 4; i++) {
      if ( isNaN(maskParts[i]) == true )
         return false;
      num = parseInt(maskParts[i]);
      if ( num < 0 || num > 255 )
         return false;
      if ( zeroBitExisted == true && num != 0 )
         return false;
      zeroBitPos = getLeftMostZeroBitPos(num);
      oneBitPos = getRightMostOneBitPos(num);
      if ( zeroBitPos < oneBitPos )
         return false;
      if ( zeroBitPos < 8 )
         zeroBitExisted = true;
   }

   return true;
}

function isValidPort(port) {
   var fromport = 0;
   var toport = 100;

   portrange = port.split(':');
   if ( portrange.length < 1 || portrange.length > 2 ) {
       return false;
   }
   if ( isNaN(portrange[0]) )
       return false;
   fromport = parseInt(portrange[0]);
   
   if ( portrange.length > 1 ) {
       if ( isNaN(portrange[1]) )
          return false;
       toport = parseInt(portrange[1]);
       if ( toport <= fromport )
           return false;      
   }
   
   if ( fromport < 1 || fromport > 65535 || toport < 1 || toport > 65535 )
       return false;
   
   return true;
}

function isValidNatPort(port) {
   var fromport = 0;
   var toport = 100;

   portrange = port.split('-');
   if ( portrange.length < 1 || portrange.length > 2 ) {
       return false;
   }
   if ( isNaN(portrange[0]) )
       return false;
   fromport = parseInt(portrange[0]);

   if ( portrange.length > 1 ) {
       if ( isNaN(portrange[1]) )
          return false;
       toport = parseInt(portrange[1]);
       if ( toport <= fromport )
           return false;
   }

   if ( fromport < 1 || fromport > 65535 || toport < 1 || toport > 65535 )
       return false;

   return true;
}

function isValidMacAddress(address) {
   var c = '';
   var i = 0, j = 0;

   if ( address == 'ff:ff:ff:ff:ff:ff' ) return false;

   addrParts = address.split(':');
   if ( addrParts.length != 6 ) return false;

   for (i = 0; i < 6; i++) {
      if ( addrParts[i] == '' )
         return false;
      for ( j = 0; j < addrParts[i].length; j++ ) {
         c = addrParts[i].toLowerCase().charAt(j);
         if ( (c >= '0' && c <= '9') ||
              (c >= 'a' && c <= 'f') )
            continue;
         else
            return false;
      }
   }

   return true;
}

var hexVals = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
              "A", "B", "C", "D", "E", "F");
var unsafeString = "\"<>%\\^[]`\+\$\,'#&";
// deleted these chars from the include list ";", "/", "?", ":", "@", "=", "&" and #
// so that we could analyze actual URLs

function isUnsafe(compareChar)
// this function checks to see if a char is URL unsafe.
// Returns bool result. True = unsafe, False = safe
{
   if ( unsafeString.indexOf(compareChar) == -1 && compareChar.charCodeAt(0) > 32
        && compareChar.charCodeAt(0) < 123 )
      return false; // found no unsafe chars, return false
   else
      return true;
}

function decToHex(num, radix)
// part of the hex-ifying functionality
{
   var hexString = "";
   while ( num >= radix ) {
      temp = num % radix;
      num = Math.floor(num / radix);
      hexString += hexVals[temp];
   }
   hexString += hexVals[num];
   return reversal(hexString);
}

function reversal(s)
// part of the hex-ifying functionality
{
   var len = s.length;
   var trans = "";
   for (i = 0; i < len; i++)
      trans = trans + s.substring(len-i-1, len-i);
   s = trans;
   return s;
}

function convert(val)
// this converts a given char to url hex form
{
   return  "%" + decToHex(val.charCodeAt(0), 16);
}


function encodeUrl(val)
{
   var len     = val.length;
   var i       = 0;
   var newStr  = "";
   var original = val;

   for ( i = 0; i < len; i++ ) {
      if ( val.substring(i,i+1).charCodeAt(0) < 255 ) {
         // hack to eliminate the rest of unicode from this
         if (isUnsafe(val.substring(i,i+1)) == false)
            newStr = newStr + val.substring(i,i+1);
         else
            newStr = newStr + convert(val.substring(i,i+1));
      } else {
         // woopsie! restore.
         alert ("Found a non-ISO-8859-1 character at position: " + (i+1) + ",\nPlease eliminate before continuing.");
         newStr = original;
         // short-circuit the loop and exit
         i = len;
      }
   }

   return newStr;
}

var markStrChars = "\"'";

// Checks to see if a char is used to mark begining and ending of string.
// Returns bool result. True = special, False = not special
function isMarkStrChar(compareChar)
{
   if ( markStrChars.indexOf(compareChar) == -1 )
      return false; // found no marked string chars, return false
   else
      return true;
}

// use backslash in front one of the escape codes to process
// marked string characters.
// Returns new process string
function processMarkStrChars(str) {
   var i = 0;
   var retStr = '';

   for ( i = 0; i < str.length; i++ ) {
      if ( isMarkStrChar(str.charAt(i)) == true )
         retStr += '\\';
      retStr += str.charAt(i);
   }

   return retStr;
}

// Web page manipulation functions

function showhide(element, sh)
{
    var status;
    if (sh == 1) {
        status = "block";
    }
    else {
        status = "none"
    }
   
        if (document.getElementById)
        {
                // standard
                document.getElementById(element).style.display = status;
        }
        else if (document.all)
        {
                // old IE
                document.all[element].style.display = status;
        }
        else if (document.layers)
        {
                // Netscape 4
                document.layers[element].display = status;
        }
}

// Load / submit functions

function getSelect(item)
{
        var idx;
        if (item.options.length > 0) {
            idx = item.selectedIndex;
            return item.options[idx].value;
        }
        else {
                return '';
    }
}

function setSelect(item, value)
{
        for (i=0; i<item.options.length; i++) {
        if (item.options[i].value == value) {
                item.selectedIndex = i;
                break;
        }
    }
}

function setCheck(item, value)
{
    if ( value == '1' ) {
         item.checked = true;
    } else {
         item.checked = false;
    }
}

function setDisable(item, value)
{
    if ( value == 1 || value == '1' ) {
         item.disabled = true;
    } else {
         item.disabled = false;
    }     
}

function submitText(item)
{
        return '&' + item.name + '=' + item.value;
}

function submitSelect(item)
{
        return '&' + item.name + '=' + getSelect(item);
}


function submitCheck(item)
{
        var val;
        if (item.checked == true) {
                val = 1;
        }
        else {
                val = 0;
        }
        return '&' + item.name + '=' + val;
}

麻烦大家了,非常感谢。

lmhllr 发表于 2008-1-8 23:38

我晕...有一千行代码吧....?![em10]

渚薰 发表于 2008-1-9 08:38

请注意提问要提到要点上,这样随便一扔代码的做法,每人会帮你

页: [1]

编程论坛