var separator = "||!||"; // used for string=> multiple select list var DEBUG = false; var HelpOptionsVar = "width=480,height=420,scrollbars,toolbar,resizable,dependent=yes"; var GlossOptionsVar = "width=420,height=180,scrollbars,toolbar,resizable,dependent=yes"; var bigsub = "width=540,height=440,scrollbars,menubar,resizable,status,dependent=yes"; var smallsub = "width=440,height=320,scrollbars,resizable,dependent=yes"; var sersub = "width=500,height=380,scrollbars,resizable,status,dependent=yes"; var memsub = "width=630,height=320,scrollbars,menubar,resizable,status,dependent=yes"; var helpWinVar = null; var glossWinVar = null; var datSubWinVar = null; var ValidStr = 'abcdefghijklmnopqrstuvwxyz-'; var ValidStr_ddns = 'abcdefghijklmnopqrstuvwxyz-1234567890'; var hex_str = "ABCDEFabcdef0123456789"; function showMsg() { var msgVar=document.forms[0].message.value; if (msgVar.length > 1) alert(msgVar); } function closeWin(win_var) { if ( ((win_var != null) && (win_var.close)) || ((win_var != null) && (win_var.closed==false)) ) win_var.close(); } function openHelpWin(file_name) { helpWinVar = window.open(file_name,'help_win',HelpOptionsVar); if (helpWinVar.focus) setTimeout('helpWinVar.focus()',200); } function openGlossWin() { glossWinVar = window.open('','gloss_win',GlossOptionsVar); if (glossWinVar.focus) setTimeout('glossWinVar.focus()',200); } function openDataSubWin(filename,win_type) { // closeWin(datSubWinVar); problem in NS datSubWinVar = window.open(filename,'datasub_win',win_type); if (datSubWinVar.focus) setTimeout('datSubWinVar.focus()',200); } function closeSubWins() { closeWin(helpWinVar); closeWin(glossWinVar); closeWin(datSubWinVar); } function checkBlank(fieldObj, fname) { var msg = ""; if (fieldObj.value.length < 1){ msg = addstr(msg_blank,fname); } return msg; } function checkNoBlanks(fObj, fname) { var space = " "; if (fObj.value.indexOf(space) >= 0 ) return msg_space; else return ""; } function checkValid(text_input_field, field_name, Valid_Str, max_size, mustFill) { var error_msg= ""; var size = text_input_field.value.length; var str = text_input_field.value; if ((mustFill) && (size != max_size) ) error_msg = addstr(msg_blank_in,field_name); for (var i=0; i < size; i++) { if (!(Valid_Str.indexOf(str.charAt(i)) >= 0)) { error_msg = addstr(msg_invalid,field_name,Valid_Str); break; } } return error_msg; } function checkInt(text_input_field, field_name, min_value, max_value, required) // NOTE: Doesn't allow negative numbers, required is true/false { var str = text_input_field.value; var error_msg= ""; if (text_input_field.value.length==0) // blank { if (required) error_msg = addstr(msg_blank,field_name); } else // not blank, check contents { for (var i=0; i < str.length; i++) { if ((str.charAt(i) < '0') || (str.charAt(i) > '9')) error_msg = addstr(msg_check_invalid,field_name); } if (error_msg.length < 2) // don't parse if invalid { var int_value = parseInt(str); if (int_value < min_value) error_msg = addstr(msg_greater,field_name,(min_value - 1)); if (int_value > max_value) error_msg = addstr(msg_less,field_name,(max_value + 1)); } } if (error_msg.length > 1) error_msg = error_msg + "\n"; return(error_msg); } function goTestApply(F) { window.open('http://www.netgear.com/', ''); } function chkMacLen(mac){ if((mac.value.length != 12) || (mac.value=="000000000000")){ alert("Invalid MAC Address"); mac.value =MacAddress; return false; }else { return true; } } function sumvalue(F) { if (F.MACAssign[2].checked) { if ((F.Spoofmac.value.indexOf(':')!=-1)||(F.Spoofmac.value.indexOf('-')!=-1)) { if (MACAddressBlur(F.Spoofmac)) { return true; } else return false; } else { if (chkMacLen(F.Spoofmac)) { return true; } else return false; } } return true; } function MACAddressBlur(address) { var MAC = address.value; MAC = MAC.replace(/:/g,""); MAC = MAC.replace(/-/g,""); address.value = MAC; if ((address.value.length != 12) || (address.value=="000000000000")) { alert("Invalid MAC Address"); return false; } else { return true; } } function isIPaddr(addr) { var i; var a; if(addr.split) { a = addr.split("."); }else { a = cdisplit(addr,"."); } if(a.length != 4) { return false; } for(i = 0; i255 ) { return false; } } return true; } function _isNumeric(str) { var i; for(i = 0; imax) { str.focus(); return true; } for(i=0; i= "0" && c <= "9") continue; if ( c == '-' && i !=0 && i != (str.value.length-1) ) continue; if ( c == ',' ) continue; if (c == ' ') continue; if (c>= 'A' && c <= 'Z') continue; if (c>= 'a' && c <= 'z') continue; str.focus(); return true; } return false; } /* 0:close 1:open*/ function openHelpWindow(filename) { helpWindow = window.open(filename,"thewindow","width=300,height=400,scrollbars=yes,resizable=yes,menubar=no"); } function checkSave() { answer = confirm("Did you save this page?"); if (answer !=0) { return true; } else return false; } function alertPassword(formObj) { alert("Re-Confirm the password!"); formObj.focus(); } function isEqual(cp1,cp2) { if(parseInt(cp1.value) == parseInt(cp2.value)) { cp2.focus(); return true; } else return false; } function setDisabled(OnOffFlag,formFields) { for (var i = 1; i < setDisabled.arguments.length; i++) setDisabled.arguments[i].disabled = OnOffFlag; } function cp_ip(from1,from2,from3,from4,to1,to2,to3,to4) //true invalid from and to ip; false valid from and to ip; { var total1 = 0; var total2 = 0; total1 += parseInt(from4.value); total1 += parseInt(from3.value)*256; total1 += parseInt(from2.value)*256*256; total1 += parseInt(from1.value)*256*256*256; total2 += parseInt(to4.value); total2 += parseInt(to3.value)*256; total2 += parseInt(to2.value)*256*256; total2 += parseInt(to1.value)*256*256*256; if(total1 > total2) return true; return false; } function isIE(){ if(navigator.appName.indexOf("Microsoft") != -1) return true; else return false; } function pi(val) { return parseInt(val,10); } function alertR(str) { alert(str); return false; } function loadhelp(fname,anchname) { //return; if ((loadhelp.arguments.length == 1 ) || (anchname == "" )) top.helpframe.location.href="h"+fname+".html"; else top.helpframe.location.href="h"+fname+".htm#" + anchname; return; } function pi(val) { return parseInt(val,10); } // ====================================================== Submit Functions function radioTable(fObj,radioObj,act_str) { if (radioSelectedIndex(radioObj) > -1) stdAction(fObj,act_str); else alert("No entry selected. \nClick a radio button to select an entry."); } function stdAction(fObj,act_str) { fObj.todo.value = act_str; dataToHidden(fObj); // submitDemo(fObj); fObj.submit(); } //========================================================= Data Transfer Functions function getSelIndex(sel_object, sel_text) { if (sel_text.length == 0) return 0; var size = sel_object.options.length; for (var i = 0; i < size; i++) { if ( (sel_object.options[i].text == sel_text) || (sel_object.options[i].value == sel_text) ) return(i); } if (DEBUG) alert("DEBUG: " + sel_object.name + " (Select List) has invalid value " + sel_text + " Selecting 1st item instead"); return 0; // if no match } function getSelected(sel_obj) // single select. Returns value. If value blank, return text { var index = sel_obj.selectedIndex; if (index >= 0) return (sel_obj.options[index].value != "") ? sel_obj.options[index].value : sel_obj.options[index].text; else return ""; } function getMultiSelected(sel_obj) // multi select. Always use text, not value { var size = sel_obj.options.length; var i; var str = ""; if(isNaN(size)) return str; if(size == 0) return str; str = separator; for(i = 0; i < size; i++) if (sel_obj.options[i].selected) str+= sel_obj.options[i].text + separator; return str; } function setSelected(sel_obj,list) // list has multiple items from select obj { var selSize = sel_obj.options.length; var startTextPos; var startValuePos; var textChar; var valueChar; for ( var i =0 ; i < selSize; i++) { startTextPos = -1; startValuePos = -1; sel_obj.options[i].selected = false; startTextPos = list.indexOf(separator + sel_obj.options[i].text + separator); if(sel_obj.options[i].value.length > 0) startValuePos = list.indexOf(separator + sel_obj.options[i].value + separator); if (startTextPos > -1) sel_obj.options[i].selected = true; if (startValuePos > -1) sel_obj.options[i].selected = true; } } function radioSelectedIndex(radio_object) // index of selected item, -1 if none { if (!radio_object) return -1; var size = radio_object.length; if(isNaN(size)) { if(radio_object.checked == true) return 0; else return -1; } for (var i = 0; i < size; i++) { if(!(radio_object[i])) return (radio_object.checked) ? 0 : -1; if (radio_object[i].checked) return(i); } if(radio_object.checked == true) return 0; else return -1; } function getRadioCheckedValue(radio_object) // value of selected item, "" if none { var index = 0; if (!radio_object) return ""; var size = radio_object.length; if(isNaN(size)) { if (radio_object.checked == true) return radio_object.value; else return ""; } for (var i = 0; i < size; i++) { if(!(radio_object[i])) continue; if (radio_object[i].checked == true) return(radio_object[i].value); } if (radio_object.checked == true) return radio_object.value; else return ""; } function getRadioIndex(radio_object, checked_value) // find index matching checkecd_value, 0 if no match { if (!radio_object) return 0; if(radio_object.value == checked_value) return 0; var size = radio_object.length; if(isNaN(size)) return 0; for (var i = 0; i < size; i++) { if(!(radio_object[i])) continue; if (radio_object[i].value == checked_value) return i; } if (DEBUG) alert("DEBUG: " + radio_object.name + " (Radio button) has invalid value " + checked_value + " Selecting 1st item instead"); return 0; // if no match } function dataToVisible(form_obj) // both hidden & visible fields in same form { var form_size = form_obj.elements.length; var sourceField; var last_name; var radioIndex; for (var i = 0; i < form_size; i++) { sourceField = eval("form_obj.h_" + form_obj.elements[i].name); if(!(sourceField)) continue; if(sourceField.value == "") continue; if (form_obj.elements[i].type=="select-one") form_obj.elements[i].selectedIndex = getSelIndex(form_obj.elements[i], sourceField.value); if (form_obj.elements[i].type=="select-multiple") setSelected(form_obj.elements[i],sourceField.value); if (form_obj.elements[i].type == "checkbox") form_obj.elements[i].checked = (sourceField.value == "enable"); if (form_obj.elements[i].type == "radio") { if (last_name == form_obj.elements[i].name) continue; // already done this one last_name = form_obj.elements[i].name; radioIndex = getRadioIndex(form_obj.elements[form_obj.elements[i].name],sourceField.value); if(form_obj.elements[form_obj.elements[i].name][radioIndex]) form_obj.elements[form_obj.elements[i].name][radioIndex].checked = true; else form_obj.elements[form_obj.elements[i].name].checked = true; } } } function dataToHidden(form_obj) // both hidden & visible fields in same form { var form_size = form_obj.elements.length; var destField; var last_name; var radioIndex; for (var i = 0; i < form_size; i++) { destField = eval("form_obj.h_" + form_obj.elements[i].name); if(!(destField)) continue; if (form_obj.elements[i].type=="select-one") destField.value = getSelected(form_obj.elements[i]); if (form_obj.elements[i].type=="select-multiple") destField.value = getMultiSelected(form_obj.elements[i]); if (form_obj.elements[i].type == "checkbox") destField.value = (form_obj.elements[i].checked) ? "enable" : "disable"; if (form_obj.elements[i].type == "radio") { if (last_name == form_obj.elements[i].name) continue; // already done this one last_name = form_obj.elements[i].name; destField.value = getRadioCheckedValue(form_obj.elements[form_obj.elements[i].name]); } } } function getIndex(e){ var f = e.form.elements; for (var i = 0; i < f.length; i++) if (e == f[i]) return i; return -1; } function checkMaxLength(e, l, j){ if (!l) l = e.maxLength; if (!j) j = 1; if (e.value.length == l){ e.form.elements[getIndex(e) + j].focus(); return true; }else return true; }