//bobby-->insert--star
function get_by_id(id){
	with(document){
		return getElementById(id);
	}
}

function get_by_name(name){
	with(document){
		return getElementsByName(name);
	}
}
//bobby-->insert--end
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;

	var authForm = document.getElementById("form2");
	var wep_key_len = get_by_name("wep_key_len");
	var wep_key_type = get_by_id("wep_key_type");
	
	if (wep_key_len[1].checked){
 length = 10;
	}else if (wep_key_len[2].checked){
 length = 26;
	}else if (wep_key_len[3].checked){
 length = 58;
	}

	if (wep_key_type.value == "1"){
 length /= 2;
	}
	return length;
}

function modify_length(){
	var length = get_length();
	var form2Id = document.getElementById("form2");
	var key1_value = document.getElementById("key1").value;
	var key2_value = document.getElementById("key2").value;
	var key3_value = document.getElementById("key3").value;
	var key4_value = document.getElementById("key4").value;

	if (length > 0){
		document.getElementById("wep_key1").innerHTML = "<input type=\"text\" name=\"key1\" id=\"key1\" maxlength=\""+ length + "\" size=\"" + (length + 5) + "\" value=\"" + key1_value + "\">";
		document.getElementById("wep_key2").innerHTML = "<input type=\"text\" name=\"key2\" id=\"key2\" maxlength=\""+ length + "\" size=\"" + (length + 5) + "\" value=\"" + key2_value + "\">";
		document.getElementById("wep_key3").innerHTML = "<input type=\"text\" name=\"key3\" id=\"key3\" maxlength=\""+ length + "\" size=\"" + (length + 5) + "\" value=\"" + key3_value + "\">";
		document.getElementById("wep_key4").innerHTML = "<input type=\"text\" name=\"key4\" id=\"key4\" maxlength=\""+ length + "\" size=\"" + (length + 5) + "\" value=\"" + key4_value + "\">";
	}
}

function check_key(){
	var key_length = get_length();
	var form2Id = document.getElementById("form2");
	var wep_key_len = get_by_name("wep_key_len");
	var wep_def_key = get_by_name("wep_def_key");
	var wep_key_type = get_by_id("wep_key_type");
	var auth_type = get_by_name("auth_type");

 if (!wep_key_len[0].checked && (auth_type[0].checked || auth_type[1].checked)){
 for (var i = 1; i < 5; i++){
 //var obj = document.getElementById("key"+ i);
 var obj = get_by_id("key"+ i);
 var temp_key = obj.value;

 if (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 (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;
 var reAPBSSID = get_by_id("reAPBSSID");
 var reBridgeMAC = get_by_id("reBridgeMAC");
 var reRepeaterMAC = get_by_id("reRepeaterMAC");
 switch(mode){
 case 1:
 mac = reAPBSSID.value;
 break;
 case 2:
 mac = reBridgeMAC.value;
 break;
 case 3:
 mac = 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 MAC characters.");
 break;
 case 2:
 alert("The length of Remote Bridge MAC address must be 12 MAC characters.");
 break;
 case 3:
 alert("The length of Remote AP MAC address must be 12 MAC 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;
			}
		}
 }
 var reAPBSSID = get_by_id("reAPBSSID");
 var reBridgeMAC = get_by_id("reBridgeMAC");
 var reRepeaterMAC = get_by_id("reRepeaterMAC");
 if (result){
 switch(mode){
 case 1:
 reAPBSSID.value = mac;
 break;
 case 2:
 reBridgeMAC.value = mac;
 break;
 case 3:
 reRepeaterMAC.value = mac;
 break;
 }
 }
 return result;
}

function check_ssid(){
 var ssid = get_by_id("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;
 }
 }
}
/*
event.keyCode -> IE
event.which -> Netscape
event.charCode-> ??
next -> Enter To Next Handle(true or false)
*/
function handleEnter(field, event, next)
{
 var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

 if(keyCode == 13 || keyCode ==46)
 {
 var i;
 for(i = 0; i < field.form.elements.length; i++)
 {
 if(field == field.form.elements[i])
 {
 break;
 }
 }

 if(next)
 {
 i = (i + 1) % field.form.elements.length;
 field.form.elements[i].select();
 }
 return false;
 }
 else
 return true;
}

function handleMac(field, event, next)
{
	var layerRef = "";
	var charLen = "";
	if (navigator.appName == "Netscape") {
 layerRef="document.layers";
 }else{
 layerRef="document.all";
 }

	if(layerRef)
 charLen = 2;
	else
 charLen = 1;

 if(field.value.length == charLen)
 {
 var i;
 for(i = 0; i < field.form.elements.length; i++)
 {
 if(field == field.form.elements[i])
 {
 break;
 }
 }
 if(next)
 {
 i = (i + 1) % field.form.elements.length;
 field.form.elements[i].select();
 }
 return true;
 }
 else
 return true;
}