Seite 1 von 1

Verfasst: 12.11.2006, 21:48
von zeip
Das hier ist die gesammte linux.js, die Funktion dataToHidden() müsste darin zu finden sein.

[html]var DEBUG = false; // false for release


var separator = \"\\t\"; // used for string=> multiple select list

// ====================================================== 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 optionSelected(sel_obj) // return true or false
{
return (sel_obj.selectedIndex > -1 && sel_obj.selectedIndex < sel_obj.options.length) ? true : false;
}

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>= 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.selected)
str+= sel_obj.options.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> 0)
startValuePos = list.indexOf(separator + sel_obj.options.value + separator);
if (startTextPos > -1)
sel_obj.options.selected = true;
if (startValuePos > -1)
sel_obj.options.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))
return (radio_object.checked) ? 0 : -1;
if (radio_object.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))
continue;
if (radio_object.checked == true)
return(radio_object.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> 0 ) // must be radio, but type shows as undefined
return getRadioCheckedValue(field_obj);
else
return field_obj.value;
}


function ip1to4(ipaddr,ip1,ip2,ip3,ip4)
{
// alert(\"name: \" + ipaddr.name);
var len;
var tmp;
var all;
all=ipaddr.value;

//ip1
len=all.length;
tmp=all.indexOf(\".\");
ip1.value=all.substring(0,tmp);

//ip2
all=all.substring(tmp+1,len);
len=all.length;
tmp=all.indexOf(\".\");
ip2.value=all.substring(0,tmp);

//ip3
all=all.substring(tmp+1,len);
len=all.length;
tmp=all.indexOf(\".\");
ip3.value=all.substring(0,tmp);

//ip4
all=all.substring(tmp+1,len);
ip4.value=all;
}

function ip4to1(ipaddr,ip1,ip2,ip3,ip4)
{
if (ip1.value.length>0)
ipaddr.value=ip1.value+\".\"+ip2.value+\".\"+ip3.value+\".\"+ip4.value;
else
ipaddr.value=\"\";
}

function mac1to6(macaddr,mac1,mac2,mac3,mac4,mac5,mac6)
{

var len;
var tmp;
var all;
all=macaddr.value;

//mac1
len=all.length;
tmp=all.indexOf(\":\");
mac1.value=all.substring(0,tmp);

//mac2
all=all.substring(tmp+1,len);
len=all.length;
tmp=all.indexOf(\":\");
mac2.value=all.substring(0,tmp);

//mac3
all=all.substring(tmp+1,len);
len=all.length;
tmp=all.indexOf(\":\");
mac3.value=all.substring(0,tmp);

//mac4
all=all.substring(tmp+1,len);
len=all.length;
tmp=all.indexOf(\":\");
mac4.value=all.substring(0,tmp);

//mac5
all=all.substring(tmp+1,len);
len=all.length;
tmp=all.indexOf(\":\");
mac5.value=all.substring(0,tmp);

//mac6
all=all.substring(tmp+1,len);
mac6.value=all;
}

function mac6to1(macaddr,mac1,mac2,mac3,mac4,mac5,mac6)
{
if (mac1.value.length>0)
macaddr.value=mac1.value+\":\"+mac2.value+\":\"+mac3.value+\":\"+mac4.value+\":\"+mac5.value+\":\"+mac6.value;
else
macaddr.value=\"\";
}

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; var baseRef;

for (var i = 0; i < form_size; i++)
{
if (form_obj.elements[i].name.substr(0,3)==\"c4_\")
{
baseRef = \"form_obj.\" + form_obj.elements[i].name.substr(3);
ip1to4(form_obj.elements[i], eval(baseRef+\"1\"), eval(baseRef+\"2\"), eval(baseRef+\"3\"), eval(baseRef+\"4\"));
}

if (form_obj.elements[i].name.substr(0,3)==\"c6_\")
{
baseRef = \"form_obj.\" + form_obj.elements[i].name.substr(3);
mac1to6(form_obj.elements[i], eval(baseRef+\"1\"), eval(baseRef+\"2\"), eval(baseRef+\"3\"), eval(baseRef+\"4\"), eval(baseRef+\"5\"), eval(baseRef+\"6\"));
}

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; var baseRef;

for (var i = 0; i < form_size; i++)
{
if (form_obj.elements[i].name.substr(0,3)==\"c4_\")
{
baseRef = \"form_obj.\" + form_obj.elements[i].name.substr(3);
ip4to1(form_obj.elements[i], eval(baseRef+\"1\"), eval(baseRef+\"2\"), eval(baseRef+\"3\"), eval(baseRef+\"4\"));
}

if (form_obj.elements[i].name.substr(0,3)==\"c6_\")
{
baseRef = \"form_obj.\" + form_obj.elements[i].name.substr(3);
mac6to1(form_obj.elements[i], eval(baseRef+\"1\"), eval(baseRef+\"2\"), eval(baseRef+\"3\"), eval(baseRef+\"4\"), eval(baseRef+\"5\"), eval(baseRef+\"6\"));
}
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]);
}

}
}

// =================================== Development ========================

function show_data(form_obj)
// shows form information - used only for debugging
{
var form_size = form_obj.elements.length;
var debug_win = window.open(\"\",\"debug\",\"width=540,height=360,menubar=yes,scrollbars=yes,resizable=yes\");
with(debug_win.document)
{
open();
writeln(\'<html><head><title>Debugging Window</title></head>\');
writeln(\'<body><h2>Form being submitted</h2>\');
writeln(\'<p>Form Name: \' + form_obj.name);
writeln(\'<br>Form Action: \' + form_obj.action);
writeln(\'<br>Form Target: \' + form_obj.target);
writeln(\'</p><h3>Form Data</h3><p>Following table shows ALL fields, even if not submitted.</p>\');
writeln(\'<p><table><tr><th>Field Name</th><th>Type</th><th>Value</th></tr>\');
for (var i = 0; i < form_size; i++)
{
writeln(\'<tr><td>\' + form_obj.elements[i].name + \'</td>\');
writeln(\'<td>\' + form_obj.elements[i].type + \'</td>\');
writeln(\'<td>\');
if ((form_obj.elements[i].type==\"select-one\") || (form_obj.elements[i].type==\"select-multiple\"))
writeln(\'Selected item: \' + form_obj.elements[i].options[form_obj.elements[i].selectedIndex].text);
else
writeln(form_obj.elements[i].value);
if ((form_obj.elements[i].type == \"radio\") && (form_obj.elements[i].checked))
write(\' (Selected)\');
if ((form_obj.elements[i].type == \"checkbox\") && (form_obj.elements[i].checked))
writeln(\' (Checked)\');
writeln(\'</td></tr>\');
}
writeln(\'</table></body></html>\');
close();
}
}

function submitDemo(form_obj)
{
show_data(form_obj);
}

function writeForm(form_obj)
// shows form information - used for developement
{
var form_size = form_obj.elements.length;
var hfieldStr = \"\"; var hdemoStr = \"\"; var last_name = \"\";
var i; var j;

var debug_win = window.open(\"\",\"form_def\",\"width=680,height=360,menubar=yes,scrollbars=yes,resizable=yes\");
with(debug_win.document)
{
open();
writeln(\'<html><head><title>Form Definition Window</title></head>\');
writeln(\'<p>Form Name: \' + form_obj.name);
writeln(\'<br>Form Action: \' + form_obj.action);
writeln(\'<br>Form Target: \' + form_obj.target);
writeln(\'<p>Following table shows checkboxes, radio buttons, selects fields.</p>\\n<pre>\');
for (var i = 0; i < form_size; i++)
{
if (form_obj.elements[i].type==\"select-one\")
{
write(form_obj.elements[i].type + \" : \" + form_obj.elements[i].name + \" &nbsp; \");
for(j=0; j < form_obj.elements[i].options.length; j++)
write(\" [\" + j + \"]\" + form_obj.elements[i].options[j].text);
writeln();
hfieldStr += \'\\n<input>\';
hdemoStr += \'\\n<input>\';
}

else if (form_obj.elements[i].type==\"select-multiple\")
{
write(form_obj.elements[i].type + \" : \" + form_obj.elements[i].name + \" &nbsp; \");
for(j=0; j < form_obj.elements[i].options.length; j++)
write(\" [\" + j + \"]\" + form_obj.elements[i].options[j].text);
writeln();
hfieldStr += \'\\n<input>\';
hdemoStr += \'\\n<input>\';
}

else if (form_obj.elements[i].type == \"radio\")
{
if (last_name == form_obj.elements[i].name)
continue; // already done this one
else
{
last_name = form_obj.elements[i].name;
write(form_obj.elements[i].type + \" : \" + form_obj.elements[i].name + \" &nbsp; \");
for (var j = 0; j </pre> 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 closeSubWins()
{
closeWin(helpWinVar);
closeWin(glossWinVar);
closeWin(datSubWinVar);
}

function openDataSubWin(filename,win_type)
{
closeWin(datSubWinVar);
datSubWinVar = window.open(filename,\'datasub_win\',win_type);
if (datSubWinVar.focus)
setTimeout(\'datSubWinVar.focus()\',200);
}

function showHelp(helpfile)
{
if(top.frames.length == 0)
return;
top.helpframe.location.href = helpfile;
}


function addstr(input_msg)
{
var last_msg = \"\";
var str_location;
var temp_str_1 = \"\";
var temp_str_2 = \"\";
var str_num = 0;
temp_str_1 = addstr.arguments[0];
while(1)
{
str_location = temp_str_1.indexOf(\"%s\");
if(str_location >= 0)
{
str_num++;
temp_str_2 = temp_str_1.substring(0,str_location);
last_msg += temp_str_2 + addstr.arguments[str_num];
temp_str_1 = temp_str_1.substring(str_location+2,temp_str_1.length);
continue;
}
if(str_location <0> 1)
{
alert(msg);
return false;
}
return true;
}

function setHTML(windowObj, el, htmlStr) // el must be str, not reference
{
if (document.all)
{
if (windowObj.document.all(el) )
windowObj.document.all(el).innerHTML = htmlStr;
}
else if (document.getElementById)
{
if (windowObj.document.getElementById(el) )
windowObj.document.getElementById(el).innerHTML = htmlStr;
}
}


// High-level test functions - generate messages

function checkBlank(fieldObj, fname)
{
var msg = \"\";
if (fieldObj.value.length <1>= 0 )
return addstr(msg_space, fname);
else return \"\";
}

function checkMail(fobj, fname)
{
var tmp_str = fobj.value;
var msg = \"\";

//matching Email address format(regular expression)
var pattern = /^\\w+([-+.]\\w+)*@\\w+([-.]\\\\w+)*\\w+([-.]\\w+)*$/;

if(!pattern.test(tmp_str))
msg = addstr(msg_invalid_email, fname);

return msg;
}

function checkAllSpaces(fieldObj, fname)
{
var msg = \"\";
if(fieldObj.value.length == 0)
return \"\";
var tstr = makeStr(fieldObj.value.length,\" \");
if (tstr == fieldObj.value)
msg = addstr(msg_allspaces,fname);
return msg;
}

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>= 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,10);
if (int_value <min_value> max_value)
error_msg = addstr(msg_valid_range,field_name,min_value,max_value);
}
}
return(error_msg);
}

function checkMAC(fObj, fname, removeSeparators)
{
var msg = \"\";
if(badMac(fObj, removeSeparators))
msg = addstr(msg_invalid_mac, fname);
return msg;
}


// Low-level test functions - return true or false ============================


function blankIP(ip1, ip2, ip3, ip4) // ip fields, true if 0 or blank
{
return ((ip1.value == \"\" || ip1.value == \"0\")
&& (ip2.value == \"\" || ip2.value == \"0\")
&& (ip3.value == \"\" || ip3.value == \"0\")
&& (ip4.value == \"\" || ip4.value == \"0\"))
}

function badIP(ip1, ip2, ip3, ip4, max) // ip fields, 1.0.0.1 to 254.255.255.max
{
if(!(isInteger(ip1.value,1,254,false))) return true;
if(!(isInteger(ip2.value,0,255,false))) return true;
if(!(isInteger(ip3.value,0,255,false))) return true;
if(!(isInteger(ip4.value,1,max,false))) return true;
return false;
}
function badSubnetIP(ip1, ip2, ip3, ip4, max) // ip fields 1.0.0.0. to 255.255.255.max
{
if(!(isInteger(ip1.value,1,254,false))) return true;
if(!(isInteger(ip2.value,0,255,false))) return true;
if(!(isInteger(ip3.value,0,255,false))) return true;
if(!(isInteger(ip4.value,0,max,false))) return true;
return false;
}


function badMask(ip1, ip2, ip3, ip4) // mask fields 0 to 255
{
if(!(isInteger(ip1.value,0,255,false))) return true;
if(!(isInteger(ip2.value,0,255,false))) return true;
if(!(isInteger(ip3.value,0,255,false))) return true;
if(!(isInteger(ip4.value,0,255,false))) return true;
return false;
}


function badMac(macfld, removeSeparators) // macfld is form field, removeSeparators true/false
{
var myRE = /[0-9a-fA-F]{12}/;
var MAC = macfld.value;

MAC = MAC.replace(/:/g,\"\");
MAC = MAC.replace(/-/g,\"\");
if (removeSeparators)
macfld.value = MAC;
if((MAC.length != 12) || (MAC == \"000000000000\")||(myRE.test(MAC)!=true))
return true;
else
return false;
}

function ValidMacAddress(macAddr)
{
alert(\"ValidMacAddress(): Use badMac(macfld, removeSeparators) instead!\");
return;

var i;
if ((macAddr.indexOf(\':\')!=-1)||(macAddr.indexOf(\'-\')!=-1))
{
macAddr = macAddr.replace(/:/g,\"\");
macAddr = macAddr.replace(/-/g,\"\");
}

if ((macAddr.length == 12) && (macAddr != \"000000000000\"))
{
for(i=0; i<macAddr.length;i++)
{
var c = macAddr.substring(i, i+1);
if((\"0\" <= c && c <= \"9\") || (\"a\" <= c && c <= \"f\") || (\"A\" <= c && c <= \"F\"))
continue;
else
return false;
}

return true;
}

return false;
}



function badIpRange(from1,from2,from3,from4,to1,to2,to3,to4)
// parameters are form fields, returns true if invalid ( from > to )
{
var total1 = 0;
var total2 = 0;

total1 += parseInt(from4.value,10);
total1 += parseInt(from3.value,10)*256;
total1 += parseInt(from2.value,10)*256*256;
total1 += parseInt(from1.value,10)*256*256*256;

total2 += parseInt(to4.value,10);
total2 += parseInt(to3.value,10)*256;
total2 += parseInt(to2.value,10)*256*256;
total2 += parseInt(to1.value,10)*256*256*256;
if(total1 >= total2)
return true;
return false;
}


function isBlank(str)
{
return (str.length == 0 );
}


function isBigger(str_a, str_b)
// true if a bigger than b
{
var int_value_a = parseInt(str_a);
var int_value_b = parseInt(str_b);
return (int_value_a > int_value_b);
}

function isInteger(str,min_value,max_value,allowBlank) // allowBlank = true or false
// return true if positive Integer, false otherwise
{
if(str.length == 0)
if(allowBlank)
return true;
else
return false;
for (var i=0; i < str.length; i++)
{
if ((str.charAt(i) < \'0\') || (str.charAt(i) > \'9\'))
return false;
}
var int_value = parseInt(str,10);
if ((int_value <min_value> max_value))
return false;
return true;
}


function isHex(str) {
var i;
for(i = 0; i<str.length; i++) {
var c = str.substring(i, i+1);
if((\"0\" <= c && c <= \"9\") || (\"a\" <= c && c <= \"f\") || (\"A\" <= c && c <= \"F\")) {
continue;
}
return false;
}
return true;
}

function isTelephoneNum(str)
{
var c;
if(str.length == 0)
return false;
for (var i = 0; i <str>= \"0\" && c <= \"9\")
continue;
if ( c == \'-\' && i !=0 && i != (str.length-1) )
continue;
if ( c == \',\' ) continue;
if (c == \' \') continue;
if (c>= \'A\' && c <= \'Z\') continue;
if (c>= \'a\' && c <= \'z\') continue;
return false;
}
return true;
}

function checkDay(year,month,day) // check if valid date
{
var isleap = false;
if(year%400 == 0 || (year%4 == 0 && year%100 != 0))
isleap = true;
if(month%2)
{
if((month<7>31))
return false;
if((month>7)&&(day>30))
return false;
}
else
{
if(month<6>29))
{
return false;
}
if((!isleap)&&(day>28))
{
return false;
}
}
else
{
if(day > 30)
return false;
}
}
else
if(day>31)
return false;
}
return true;
}

function CheckSpaceInName(text_input_field)
//not allow space in name,
{
if (text_input_field.value.length>1)
{
for (var i=0;i<text_input_field.value.length;i++)
{
if (text_input_field.value.charAt(i) == \' \')
return false;
}
}
return true;
}

// Utility & Misc functions ===================================================
//Input Output Ip Address-KelV!n y0u@2004/Oct/24------------------------------------------------------
function IP_T2R(ipbox, ipvar)
{
var ipstr;
ipstr= eval(\"document.forms[0].\"+ipbox+\"1\").value+\".\"
+eval(\"document.forms[0].\"+ipbox+\"2\").value+\".\"
+eval(\"document.forms[0].\"+ipbox+\"3\").value+\".\"
+eval(\"document.forms[0].\"+ipbox+\"4\").value;
eval(\"document.forms[0].\"+ipvar).value = ipstr;
}
function IP_R2T(ipbox, ipvar)
{
var ipArray = new Array();
var i;
var str;

str = eval(\"document.forms[0].\"+ipvar).value
if(str.length == 0)
return;
ipArray = str.split(\".\");
for(i=1; i<=ipArray.length; i++)
{
eval(\"document.forms[0].\"+ipbox+i).value = ipArray[i-1];
}
}
function IP_STRING_R2T(ipbox, ipstr)
{
var ipArray = new Array();
var i;
var str;

if(ipstr.length == 0)
return;

ipArray = ipstr.split(\".\");
for(i=1; i<=ipArray.length; i++)
{
eval(\"document.forms[0].\"+ipbox+i).value = ipArray[i-1];
}
}
function IP_STRING_T2R(ipbox)
{
return eval(\"document.forms[0].\"+ipbox+\"1\").value+\".\"
+eval(\"document.forms[0].\"+ipbox+\"2\").value+\".\"
+eval(\"document.forms[0].\"+ipbox+\"3\").value+\".\"
+eval(\"document.forms[0].\"+ipbox+\"4\").value;
}
// Utility & Misc functions ===================================================
//false: valide ip address, true: invalid ip address
function checkIPAddress(ipbox, max, bAllowBlank)
{
if(bAllowBlank == true)
{
if((eval(\"document.forms[0].\"+ipbox+\"1\").value == \"0\"||eval(\"document.forms[0].\"+ipbox+\"1\").value == \"\")
&& (eval(\"document.forms[0].\"+ipbox+\"2\").value == \"0\"||eval(\"document.forms[0].\"+ipbox+\"2\").value == \"\")
&& (eval(\"document.forms[0].\"+ipbox+\"3\").value == \"0\"||eval(\"document.forms[0].\"+ipbox+\"3\").value == \"\")
&& (eval(\"document.forms[0].\"+ipbox+\"4\").value == \"0\"||eval(\"document.forms[0].\"+ipbox+\"4\").value == \"\"))
return false;
}

return checkIP( eval(\"document.forms[0].\"+ipbox+\"1\"),
eval(\"document.forms[0].\"+ipbox+\"2\"),
eval(\"document.forms[0].\"+ipbox+\"3\"),
eval(\"document.forms[0].\"+ipbox+\"4\"), max);
}
// Utility & Misc functions ===================================================

function isIE()
{
if(navigator.appName.indexOf(\"Microsoft\") != -1)
return true;
else return false;
}

function setDisabled(OnOffFlag,formFields)
{
for (var i = 1; i < setDisabled.arguments.length; i++)
setDisabled.arguments[i].disabled = OnOffFlag;
}

function makeStr(strSize, fillChar)
{
var temp = \"\";
for (i=0; i <strSize>= 4 ))
ns4 = ((navigator.appName == \"Netscape\") && (parseInt(navigator.appVersion) <6>= 6 ))

// 0.0.0.0
var ZERO_NO = 1; // 0x0000 0001
var ZERO_OK = 2; // 0x0000 0010
// x.x.x.0
var MASK_NO = 4; // 0x0000 0100
var MASK_OK = 8; // 0x0000 1000
// 255.255.255.255
var BCST_NO = 16; // 0x0001 0000
var BCST_OK = 32; // 0x0010 0000

var SPACE_NO = 1;
var SPACE_OK = 2;

function choose_disable(dis_object)
{
if(!dis_object) return;
dis_object.disabled = true;

if(!ns4)
dis_object.style.backgroundColor = \"#e0e0e0\";
}[/html]

Danke,
Gruss zeip

Verfasst: 12.11.2006, 21:36
von mirko
jetzt fehlt noch die JavaScript-Funktion dataToHidden(), die muss in einer der anderen .js Dateien zu finden sein.

Auf jeden Fall müssen die Angaben

<input>
<input>
<input>
<INPUT>
<INPUT>
<input>


auch noch hinten dran, also bei disconnect

&ctype=pppoe&ifstatus=Up&this_file=Status.htm&next_file=Status.htm

bei connect

&ctype=pppoe&ifstatus=Down&this_file=Status.htm&next_file=Status.htm

Verfasst: 11.11.2006, 19:53
von zeip
Danke für die schnelle Antwort.
Leider klappt es so noch nicht...

Was stdAction genau macht kann ich nicht sagen (dazu fehlen mir die JS-Kenntnisse), aber ich habe etwas gefunden in einer \"externen\" linux.js Datei.

[html]var DEBUG = false; // false for release


var separator = \"\\t\"; // used for string=> multiple select list

// ====================================================== 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();
}[/html]

Und anbei nochmals (fast) die ganze Seite, wo der Disconnect/Connect Button drauf ist.

[html]<DOCTYPE>
<html>
<head>
<title>Gateway Status</title>
<meta>


<meta>
<META>
<META>

<LINK>

<script></script>
<script></script>

<script></script>
<script>

var timerID = null;
var RefreshDelay = 15000;

function init()
{
timerID = setTimeout(\"Refresh()\", RefreshDelay);
setDivs();
setbutton();
}

function setbutton()
{
var cf = document.forms[0];

if(cf.ifstatus.value == \"Up\")
{
cf.release.disabled = false;
cf.renew.disabled = true;
}
else
{
cf.release.disabled = true;
cf.renew.disabled = false;
}
}

function Refresh()
{
window.location.replace(\"setup.cgi?next_file=Status.htm\");
}

function setDivs()
{
var cf = document.forms[0];

if(cf.ctype.value == \"dhcp\")
{
cf.release.value = msg_button_release;
cf.renew.value = msg_button_renew;
show_hide(\"dhcpDIV\", true);
}
else if(cf.ctype.value == \"pppoe\" || cf.ctype.value == \"pppoa\")
{
cf.release.value = msg_button_disconnect;
cf.renew.value = msg_button_connect;
show_hide(\"dhcpDIV\", true);
}
else
show_hide(\"dhcpDIV\", false);
}

function release_disconnect()
{
var cf = document.forms[0];

if(cf.ctype.value == \"dhcp\")
stdAction(cf,\'release\');
else if(cf.ctype.value == \"pppoe\" || cf.ctype.value == \"pppoa\")
stdAction(cf,\'disconnect\');
}

function renew_connect()
{
var cf = document.forms[0];

if(cf.ctype.value == \"dhcp\")
stdAction(cf,\'renew\');
else if(cf.ctype.value == \"pppoe\" || cf.ctype.value == \"pppoa\")
stdAction(cf,\'connect\');
}


</script>
</head>

<body>
<form>
<div>

<table>
<header>
<tr>
<td><img></TD>
<td>Firmware Version: 1.01.00
</TD>

</TR>
<header>
<tr>
<td><img></TD>

</TR>
<header>
<tr>
<td>Status</TD>
<td>Wireless-N ADSL2+ Gateway</TD>
<td>WAG300N

</TD>

</TR>

<header>
<tr>
<TD> </TD>

</TR>

<main>
<TR>
<TD>
<table>

<tr>
<td></TD>
<td></TD>

</TR>
<tr>
<td><a>Setup</a></TD>
<td><a>Wireless</a></TD>
<td><a>Security</a></TD>

<td><a>Access<BR>Restrictions</a></TD>
<td><a>Applications &<BR>Gaming</a></TD>
<td><a>Administration</a></TD>
<td>Status</TD>

</TR>
</table>

</TD>

</TR>

<sub>
<TR>
<TD> &nbsp; &nbsp;
<span>Gateway</span><b class=\"separator\">|</b>&nbsp;&nbsp;
<a>Local Network</a><b class=\"separator\">|</b>&nbsp;&nbsp;

<a>Wireless</a><b class=\"separator\">|</b>&nbsp;&nbsp;
<a>DSL Connection</a>&nbsp;&nbsp;
</TD>

</TR>
</table>

<data>

<table>
<tr>
<td><img></TD>

<td><img></TD>

</TR>

<tr>
<td>Gateway Information</TD>
<td>&nbsp; </TD>
<td><SPAN>&nbsp;&nbsp; <A>Help...</a></span></TD>

</TR>

<tr>
<td> </TD>
<td> </TD>
<td>


</TD>
</tr>

<tr>
<td>&nbsp; </TD>
<td> </TD>

<td><hr></TD>
</TR>

<tr>
<td>&nbsp; </TD>
<td> </TD>
<td>
<div>
<table>
<tr>
<td><INPUT></td>
<td><INPUT></td>
</tr>
</table>
</div>
<br>&nbsp;
</TD>
</TR>

<tr>
<td>&nbsp; </TD>
<td>
<input> &nbsp; &nbsp;
</TD>

</TR>


</table>

</div>


<input>
<input>
<input>
<INPUT>
<INPUT>
<input>

</form>
</body>

</html>[/html]

Danke für die Bemühungen.
Gruss zeip

Verfasst: 11.11.2006, 19:13
von mirko
nur zusammensetzen mehr ist es doch nicht

Disconnect:

<POST>setup.cgi?release=disconnect


für Connect:

<POST>setup.cgi?renew=connect

Wobei unklar ist, was die JavaScript-Funktion stdAction)= macht, die Funktionsdefiniton fehlt in deinem JavaScript.Code.

Verfasst: 11.11.2006, 18:23
von zeip
Hallo,
Ich habe das Problem, RouterControl für meinen Router Linksys WAG300N für das Disconnecten und Connecten, zu konfigurieren.

Der Javascript Code-Teil:
[html]function release_disconnect()
{
var cf = document.forms[0];

if(cf.ctype.value == \"dhcp\")
stdAction(cf,\'release\');
else if(cf.ctype.value == \"pppoe\" || cf.ctype.value == \"pppoa\")
stdAction(cf,\'disconnect\');
}

function renew_connect()
{
var cf = document.forms[0];

if(cf.ctype.value == \"dhcp\")
stdAction(cf,\'renew\');
else if(cf.ctype.value == \"pppoe\" || cf.ctype.value == \"pppoa\")
stdAction(cf,\'connect\');
}[/html]

Der <form> Tag:

[html]<form>[/html]

Die Buttons:

[html]<INPUT>
<INPUT>[/html]

Ich danke im Voraus für die Hilfe.
Gruss zeip