var form1;

function get_form(){
    form1 = document.getElementById("temp_form");
}

function get_length(){
    var type = 0;
	var temp_length = 0;
	
	type = parseInt(form1.wep_key_len.value);
	
	switch(type){
		case 5 :
			temp_length = 10;
			break;
		case 13 :
			temp_length = 26;
			break;			
		default :
			break;
	}
	
	if (form1.wep_key_type.value == "1"){
	    temp_length /= 2;
	}
	return temp_length;
}

function modify_length(){            	
	var temp_length = get_length();
	var wep_key1 = document.getElementById("wep_key1");
	var wep_key2 = document.getElementById("wep_key2");
	var wep_key3 = document.getElementById("wep_key3");
	var wep_key4 = document.getElementById("wep_key4");
	
	if (temp_length > 0){
		wep_key1.innerHTML = "<input id=\"key1\" type=\"text\" name=\"key1\" maxlength=\""
			+ temp_length + "\" size=\"" + (temp_length + 5) + "\" value=\"" + form1.key1.value			
			+ "\">";
		wep_key2.innerHTML = "<input id=\"key2\" type=\"text\" name=\"key2\" maxlength=\""
			+ temp_length + "\" size=\"" + (temp_length + 5) + "\" value=\"" + form1.key2.value			
			+ "\">";
		wep_key3.innerHTML = "<input id=\"key3\" type=\"text\" name=\"key3\" maxlength=\""
			+ temp_length + "\" size=\"" + (temp_length + 5) + "\" value=\"" + form1.key3.value			
			+ "\">";
		wep_key4.innerHTML = "<input id=\"key4\" type=\"text\" name=\"key4\" maxlength=\""
			+ temp_length + "\" size=\"" + (temp_length + 5) + "\" value=\"" + form1.key4.value			
			+ "\">";
	}	              
}

function check_key(){            	                        	
	var temp_length = get_length();
	var obj;
	
	if (form1.wep_type[0].checked){	
	                                 	                	
    	for (i = 1; i < 5; i++){					
		    var obj = document.getElementById("key" + i);
		    var temp_value = obj.value;
            	    
		    if (form1.wep_def_key[i-1].checked){
		        if (temp_value == ''){
    	            alert("The selected wep key can not be empty.");
			        return false;
    	        }
		    }
	        if (temp_value != ''){
	            if (temp_value.length < temp_length){
	                alert("The length of Key" + i + " must be " + temp_length + " characters.");
	                return false;
	            }
	        }                	  
    	}                	                	
	}
	return true;
}

function isHex(){				
	var result = true;
	
	if (form1.wep_key_type.value == '0'){
    	for (i = 1; i < 5; i++){					
    		var obj = document.getElementById("key" + i);
    		var temp_key = obj.value;
    		
    		result = true;
    		temp_key = temp_key.toUpperCase();
    		
    		for (j = 0; j < temp_key.length; j++){
    			var temp = temp_key.substring(j, j+1);
    			if ((temp >= "0" && temp <= "9") || (temp >= "A" && temp <= "F")){						
    				continue;
    			}else{
    				result = false;							
    				break;
    			}
    		}
    		
    		if (!result){
    			alert("Key" + i + " is wrong, the legal characters are 0~9, A~F, or a~f.");
    			break;
    		}
    	}
    }
	return result;
}

function check_mac(){
    var mac = form1.remote_ap_mac.value;
    var result = true;
 
    if (mac != ""){
        if (mac.length < 12){
            alert("The length of Remote AP MAC address must be 12 characters.");                   
            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{
    				alert("the Remote AP MAC is illegal, the legal characters are 0~9, A~F, or a~f.");													
    				result = false;
    				break;
    			}
    		}				
        }    
    }
    return result;
}

function check_ssid(){
    if (form1.ssid.value == ''){
        alert("SSID can not be empty.");
        return false;
    }else{
        return true;
    }
}

function ExitWizard(){
    if (confirm("Quit setup wizard and discard settings ?"))
        window.close()
}

var aryChannelList = new Array();

function show_table(which_action){
    var is_disable;
    var formId = document.getElementById("temp_form");
    var seting_wpaId = document.getElementById("seting_wpa");
    var seting_wepId = document.getElementById("seting_wep");
                    
    if (which_action == 1){                   
        is_disable = true;
        formId.ap_mode[1].checked = true;
    }else{                   
        is_disable = false;  
        formId.ap_mode[0].checked = true;      
        seting_wpaId.style.display = "none";
        seting_wepId.style.display = "";                        
    }
    formId.site_survey.disabled = !is_disable;
    formId.name.disabled = is_disable;
    formId.channel_g.disabled = is_disable;
    formId.channel_a.disabled = is_disable;
	formId.auth_type1.disabled = !is_disable;
	formId.auth_type3.disabled = !is_disable;
	formId.siteApMode.value = which_action;
}

function check_auth(){
    var formId = document.getElementById("temp_form");
    if (formId.auth_type1.checked){
        if (formId.wep_type[1].checked){
            alert("The WEP Key must be enabled when Authentication is in the Shared Key mode.");
            return false;
        }else{
            return true;
        }
    }else{
        return true;
    }
}

function openScanPage()
{
    var formId = document.getElementById("temp_form");
    i = (formId.ap_mode[0].checked == true) ? 5 : 1;

	window.open("scanf2aa.html?OpMode=" + i,
        		"sitesurvey",
        		"width=450,height=320,resizable=1,scrollbars=1");
}

function onTxModeChanged(txMode)
{
    var formId = document.getElementById("temp_form");

	if ((txMode == 0) || (txMode == 1) || (txMode == 2))
	{
        var selectedItemValue = formId.tx_rate.options[formId.tx_rate.selectedIndex].value;

        formId.tx_rate.options[0] = new Option("Auto", 0);
        formId.tx_rate.options[1] = new Option("1", 2);
        formId.tx_rate.options[2] = new Option("2", 4);
        formId.tx_rate.options[3] = new Option("5.5", 11);
        formId.tx_rate.options[4] = new Option("6", 12);
        formId.tx_rate.options[5] = new Option("9", 18);
        formId.tx_rate.options[6] = new Option("11", 22);
        formId.tx_rate.options[7] = new Option("12", 24);
        formId.tx_rate.options[8] = new Option("18", 36);
        formId.tx_rate.options[9] = new Option("24", 48);
        formId.tx_rate.options[10] = new Option("36", 72);
        formId.tx_rate.options[11] = new Option("48", 96);
        formId.tx_rate.options[12] = new Option("54", 108);
        
        for (i = 0; i < formId.tx_rate.options.length; i++)
        {
            if (formId.tx_rate.options[i].value == selectedItemValue)
            {
                formId.tx_rate.selectedIndex = i;
                break;
            }
        }
        
        if (txMode == 2){
        formId.channel_g.selectedIndex = -1;
        while (formId.channel_g.options.length > 0)
            formId.channel_g.options[0] = null;

		formId.channel_g.options[0] = new Option("6", 6);
		formId.channel_g.selectedIndex = 0;
		}else{
        	if (formId.channel_g.options.length == 1)
            {
                var selectedItemValue = formId.channel_g.options[formId.channel_g.selectedIndex].value;
    
                formId.channel_g.options[0] = null;
    
                for (i = 0; i < aryChannelList.length; i++)
                    formId.channel_g.options[i] = aryChannelList[i];
    
                for (i = 0; i < formId.channel_g.options.length; i++)
                {
                    if (formId.channel_g.options[i].value == selectedItemValue)
                    {
                        formId.channel_g.selectedIndex = i;
                        break;
                    }
                }
            }
        }
	}else {
        var selectedItemValue = formId.tx_rate.options[formId.tx_rate.selectedIndex].value;

        while (formId.tx_rate.options.length > 0){ 
            formId.tx_rate.options[0] = null;
        }        
        formId.tx_rate.options[0] = new Option("Auto", 0);
        formId.tx_rate.options[1] = new Option("12", 24);
        formId.tx_rate.options[2] = new Option("18", 36);
        formId.tx_rate.options[3] = new Option("24", 48);
        formId.tx_rate.options[4] = new Option("36", 72);
        formId.tx_rate.options[5] = new Option("48", 96);
        formId.tx_rate.options[6] = new Option("72", 144);
        formId.tx_rate.options[7] = new Option("96", 192);
        formId.tx_rate.options[8] = new Option("108", 216);
        
        for (i = 0; i < formId.tx_rate.options.length; i++)
        {
            if (formId.tx_rate.options[i].value == selectedItemValue)
            {
                formId.tx_rate.selectedIndex = i;
                break;
            }
        }
        
	    formId.channel_g.selectedIndex = -1;
        while (formId.channel_g.options.length > 0){
            formId.channel_g.options[0] = null;
        }
        
		formId.channel_g.options[0] = new Option("6", 6);
		formId.channel_g.selectedIndex = 0;
	}
}

function check_wpa(){
    var formId = document.getElementById("temp_form");
    var psk_value = formId.wpapsk1.value;
    
    if (formId.auth_type3.checked){
        if (psk_value.length < 8){                   
            alert("The length of Passphrase must be at least 8 characters.");
            return false;
        }else{
            if (psk_value != formId.wpapsk2.value){
                alert("The Confirmed Passphrase does not match the Passphrase.");
                return false;
            }else{                            
                return true;
            }
        }
    }else   return true;
}


function send_request(){
    var formId = document.getElementById("temp_form");
    if (check_key() && isHex() && check_ssid() && check_auth() && check_wpa()){  
    	formId.apply.value = "1";                    
        formId.submit();                     
    }
}

function onPageLoaded()
{
    var formId = document.getElementById("temp_form");

    for (i = 0; i < formId.channel_g.options.length; i++)
        aryChannelList[i] = formId.channel_g.options[i];
        
    
}

function change_wireless_mode(wireless_mode)
{
    if (wireless_mode ==0) {                    
        channelg_list.style.display = "";   
        channela_list.style.display = "none";  
    }
    else {
        channelg_list.style.display = "none";   
        channela_list.style.display = "";  
    }                       

}

