
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL, winName, features){
	window.open(theURL, winName, features)
}

function get_length(){
    var type = 0;
	var length = 0;
	
	if (form1.wep_key_len[1].checked){
	    length = 10;
    }else if (form1.wep_key_len[2].checked){
	    length = 26;		
	}else if (form1.wep_key_len[3].checked){
	    length = 58;
	}
	
	if (form1.wep_key_type.value == "1"){
	    length /= 2;
	}
	return length;
}

function modify_length(){            	
	var length = get_length();
	
	if (length > 0){
		wep_key1.innerHTML = "<input type=\"text\" name=\"key1\" maxlength=\""
			+ length + "\" size=\"" + (length + 5) + "\" value=\"" + form1.key1.value			
			+ "\">";
		wep_key2.innerHTML = "<input type=\"text\" name=\"key2\" maxlength=\""
			+ length + "\" size=\"" + (length + 5) + "\" value=\"" + form1.key2.value			
			+ "\">";
		wep_key3.innerHTML = "<input type=\"text\" name=\"key3\" maxlength=\""
			+ length + "\" size=\"" + (length + 5) + "\" value=\"" + form1.key3.value			
			+ "\">";
		wep_key4.innerHTML = "<input type=\"text\" name=\"key4\" maxlength=\""
			+ length + "\" size=\"" + (length + 5) + "\" value=\"" + form1.key4.value			
			+ "\">";
	}	              
}

function check_key(){
	var key_length = get_length();
	
    if (!form1.wep_key_len[0].checked && (form1.auth_type[0].checked || form1.auth_type[1].checked)){
        for (var i = 1; i < 5; i++){					
    	    var obj = document.all.item("key" + i);	
    	    var temp_key = obj.value;
    	    	    
    	    if (form1.wep_def_key[i-1].checked){
    	        if (obj.value == ''){
    	            alert("key" + i + " can not be empty.");
    		        return false;
    	        }
    	    }
            if (temp_key != ''){
                if (temp_key.length < key_length){
                    alert("The length of key" + i + " must be " + key_length + " characters.");
                    return false;
                }else{
                    if (form1.wep_key_type.value == "0"){          
                        if (!check_Hex(temp_key)){
                            alert("Key" + i + " is wrong, the legal characters are 0~9, A~F, or a~f.");
                            return false;
                        }
                    }             
                }
            }    	  
    	} 
    }   
       					
	return true;
}

function check_Hex(value){
    value = value.toUpperCase();
   
    for (var i = 0; i < value.length; i++){
		var temp = value.substring(i, i+1);		
		if ((temp >= "0" && temp <= "9") || (temp >= "A" && temp <= "F")){							
			continue;
		}else{		    		 
			return false;
		}
	}
	return true;
}

function check_mac(mode){  
    var result = true;
    var mac;
    var index1, index2;
    
    switch(mode){
        case 1:
            mac = form1.reAPBSSID.value;
            break;
        case 2:
            mac = form1.reBridgeMAC.value;
            break;
        case 3:
            mac = form1.reRepeaterMAC.value;
            break;
    }
    
    if (mac != ""){
        for (var i = 0; i < mac.length;){            
            index1 = mac.indexOf("-", 0);
            if (index1 == -1){
                break;
            }else{
                mac = mac.substring(0, index1) + mac.substring(index1+1);
                i = index1;
            }
        }
    }
    
    if (mac.length != 12){
        switch(mode){
            case 1:
                alert("The length of Remote AP MAC address must be 12 characters.");
                break;
            case 2:
                alert("The length of Remote Bridge MAC address must be 12 characters."); 
                break;
            case 3:
                alert("The length of Remote AP MAC address must be 12 characters.");
                break;
        }
      
        result = false;
    }else{
        mac = mac.toUpperCase();
        for (i = 0; i < mac.length; i++){
			var temp = mac.substring(i, i+1);
			if ((temp >= "0" && temp <= "9") || (temp >= "A" && temp <= "F")){						
				continue;
			}else{
			    if (mode){
				    alert("the Remote Bridge MAC address is illegal, the legal characters are 0~9, A~F, or a~f.");													
				}else{
				    alert("the Remote AP MAC address is illegal, the legal characters are 0~9, A~F, or a~f.");
				}
				result = false;
				break;
			}
		}				
    }
    
    if (result){
        switch(mode){
            case 1:
                form1.reAPBSSID.value = mac;
                break;
            case 2:
                form1.reBridgeMAC.value = mac;
                break;
            case 3:
                form1.reRepeaterMAC.value = mac;
                break;
        }
    }
    return result;
}

function check_ssid(){
    var ssid = form1.ssid.value;
    var error = false;
    
    if (ssid != ""){
        for (i = 0; i < ssid.length; i++){
            var ch = ssid.charAt(i);
            if (ch < "!" || ch > "~"){
                error = true;   
                break;         
            }
        }
        if (error){
            alert("SSID contains invalid characters!");
            return false;
        }
    }else{
        alert("SSID can not be empty.");
        return false;
    }   
    return true;    
}

function ExitWizard(){
    if (confirm("Quit setup wizard and discard settings?")){
        window.close();
    }
}

function ip_range(node){
	var ip = parseInt(node.value, 10);
	
	if (!(ip<256 && ip>=0)){		
        alert('The Range is between 0 to 255');
        node.value = node.defaultValue;
        return false;
    }
    return true;
}

function ip_range4(node){
	var ip = parseInt(node.value, 10);
	
	if (!(ip<255 && ip>=1)){		
        alert('The Range is between 1 to 254');
        node.value = node.defaultValue;       
        return false;
    }
    return true;
}

function mask_range(node){
    var mask = parseInt(node.value, 10);
    if(!(mask==0 || mask==128 || mask==192 || mask==224 || mask==240 || mask==248 || mask==252 
            || mask==254 || mask==255)){
        alert("Invalid Subnet Mask value");
        node.value = node.defaultValue;
    }
}

function HexData(data){
    var result = true;
      
	for (var i = 0; i < data.length; i++){
		var temp = data.substring(i, i+1);
		if ((temp >= "0" && temp <= "9") || (temp >= "A" && temp <= "F")){						
			continue;
		}else{
			result = false;							
			break;
		}
	}
	
	if (!result){
	    alert("the MAC address is illegal, the legal characters are 0~9, A~F, or a~f.");
	}
	
	return result;
}

function check_filter_mac(node){
	var temp_data = node.value;
	
	temp_data = temp_data.toUpperCase();
	if (temp_data.length == 0){
		node.value = "00";
	}else if (temp_data.length == 1){
		if (HexData(temp_data)){
			node.value = "0" + temp_data;
		}else{
			node.value = "00";			
		}
	}else if (node.value.length == 2){		
		if (HexData(temp_data))
			node.value = temp_data;
		else{
			node.value = "00";			
		}
	}
}

function change_color(table_name, row){
    var obj = document.getElementById(table_name);
                                   
    for (var i = 1; i < obj.rows.length; i++){        
        if (row == i){
            obj.rows[i].style.backgroundColor = "#BDB76B";
        }else{
            obj.rows[i].style.backgroundColor = "#F0E68C";
        }
    }       
}
            
function get_row_data(obj, index){
    try {
    	return obj.cells[index].childNodes[0].data;
    }catch(e) {
        return ("");
    }
}

function check_int(node){
    var num = node.value;
    
    if (num != ''){
        var temp_num = parseInt(num);			        
        if (isNaN(num) || isNaN(temp_num)){
            alert("The fields of Lease Time must be an integer.");
            node.value = node.defaultValue;
            result = false;
        }
    }
}
