1function myip_update() 2{ 3 var cf = document.forms[0]; 4 5 if((cf.myip_1.value.length>0)&&(cf.myip_2.value.length>0)&&(cf.myip_3.value.length>0)&&(cf.myip_4.value.length>0)) 6 { 7 setDisabled(false, cf.mygw_1, cf.mygw_2, cf.mygw_3, cf.mygw_4); 8 } 9 else 10 { 11 setDisabled(true, cf.mygw_1, cf.mygw_2, cf.mygw_3, cf.mygw_4); 12 } 13} 14 15/* 16function l2tp_servip_update() 17{ 18 var disable=false; 19 var cf = document.forms[0]; 20 var serv_array=cf.l2tp_serv_ip.value.split('.'); 21 if (serv_array.length == 4) 22 { 23 var flag = 0; 24 for (iptab=0; iptab<4; iptab++) 25 if (isNumeric(serv_array[iptab], 255)) 26 flag++; 27 if (flag == 4) 28 { 29 if (checkipaddr(cf.l2tp_serv_ip.value) == false) 30 disable=true; 31 } 32 else 33 { 34 disable=true; 35 } 36 } 37 else if (cf.l2tp_serv_ip.value.length > 0) 38 { 39 disable=true; 40 } 41 42 setDisabled(disable, cf.myip_1, cf.myip_2, cf.myip_3, cf.myip_4); 43} 44*/ 45function setDNS(cf) 46{ 47 var dflag = cf.DNSAssign[0].checked; 48 setDisabled(dflag,cf.DAddr1,cf.DAddr2,cf.DAddr3,cf.DAddr4,cf.PDAddr1,cf.PDAddr2,cf.PDAddr3,cf.PDAddr4); 49 DisableFixedDNS = dflag; 50} 51 52function check_wizard_l2tp(check,page) 53{ 54 var cf=document.forms[0]; 55 if(cf.l2tp_username.value=="") 56 { 57 alert("<%456%>"); 58 return false; 59 } 60 for(i=0;i<cf.l2tp_username.value.length;i++) 61 { 62 if(isValidChar(cf.l2tp_username.value.charCodeAt(i))==false) 63 { 64 alert("<%1775%>"); 65 return false; 66 } 67 } 68 for(i=0;i<cf.l2tp_passwd.value.length;i++) 69 { 70 if(isValidChar(cf.l2tp_passwd.value.charCodeAt(i))==false) 71 { 72 alert("<%1776%>"); 73 return false; 74 } 75 } 76 if(cf.l2tp_idletime.value.length<=0) 77 { 78 alert("<%1777%>"); 79 return false; 80 } 81 else if(!_isNumeric(cf.l2tp_idletime.value)) 82 { 83 alert("<%241%>"); 84 return false; 85 } 86 cf.l2tp_myip.value=cf.myip_1.value+'.'+cf.myip_2.value+'.'+cf.myip_3.value+'.'+cf.myip_4.value; 87 cf.l2tp_mynetmask.value=cf.my_mask1.value+'.'+cf.my_mask2.value+'.'+cf.my_mask3.value+'.'+cf.my_mask4.value; 88 cf.l2tp_gateway.value=cf.mygw_1.value+'.'+cf.mygw_2.value+'.'+cf.mygw_3.value+'.'+cf.mygw_4.value; 89 90 if( cf.l2tp_myip.value != "..." ) 91 { 92 if(checkipaddr(cf.l2tp_myip.value)==false) 93 { 94 alert("<%243%>"); 95 return false; 96 } 97 if(isSameSubNet(cf.l2tp_myip.value,lan_subnet,lan_ip,lan_subnet) == true) 98 { 99 cf.conflict_wanlan.value=1; 100 } 101 if(isSameIp(cf.l2tp_myip.value,lan_ip) == true) 102 { 103 cf.conflict_wanlan.value=1; 104 } 105 if(isSameSubNet(cf.l2tp_myip.value,cf.l2tp_mynetmask.value,lan_ip,cf.l2tp_mynetmask.value) == true) 106 { 107 cf.conflict_wanlan.value=1; 108 } 109 if(isSameSubNet(cf.l2tp_myip.value,cf.l2tp_mynetmask.value,lan_ip,lan_subnet) == true) 110 { 111 cf.conflict_wanlan.value=1; 112 } 113 } 114 if( cf.l2tp_mynetmask.value != "..." ) 115 { 116 if(checksubnet(cf.l2tp_mynetmask.value)==false) 117 { 118 alert("<%189%>"); 119 return false; 120 } 121 } 122 else 123 { 124 cf.l2tp_mynetmask.value=""; 125 } 126 if(cf.l2tp_myip.value=="...") 127 { 128 cf.l2tp_myip.value=""; 129 cf.l2tp_gateway.value=""; 130 cf.WANAssign.value=0; 131 } 132 else 133 { 134 cf.WANAssign.value=1; 135 if ( cf.l2tp_gateway.value != "..." && checkgateway(cf.l2tp_gateway.value) == false ) 136 { 137 alert("<%190%>"); 138 return false; 139 } 140 141 if(cf.l2tp_mynetmask.value=="") 142 { 143 if( parseInt(cf.myip_1.value) < 128 ) 144 cf.l2tp_mynetmask.value="255.0.0.0"; 145 else if(parseInt(cf.myip_1.value) < 192 ) 146 cf.l2tp_mynetmask.value="255.255.0.0"; 147 else 148 cf.l2tp_mynetmask.value="255.255.255.0"; 149 } 150 if( cf.l2tp_gateway.value != "..." ) 151 { 152 if(isGateway(cf.l2tp_myip.value,cf.l2tp_mynetmask.value,cf.l2tp_gateway.value) == false) 153 { 154 alert("<%190%>"); 155 return false; 156 } 157 if(isSameIp(cf.l2tp_myip.value,cf.l2tp_gateway.value) == true) 158 { 159 alert("<%190%>"); 160 return false; 161 } 162 } 163 else 164 cf.l2tp_gateway.value=""; 165 } 166 167 if(cf.l2tp_serv_ip.value=="") 168 { 169 alert("<%294%>"); 170 return false; 171 } 172 for(i=0;i<cf.l2tp_serv_ip.value.length;i++) 173 { 174 if(isValidChar(cf.l2tp_serv_ip.value.charCodeAt(i))==false) 175 { 176 alert("<%294%>"); 177 return false; 178 } 179 } 180 if( cf.l2tp_serv_ip.value == cf.l2tp_myip.value ) 181 { 182 alert("<%1778%>"); 183 return false; 184 } 185 186 /* 187 var serv_array=cf.l2tp_serv_ip.value.split('.'); 188 if( serv_array.length==4 ) 189 { 190 var flag = 0; 191 for( iptab=0; iptab<4; iptab++ ) 192 if( isNumeric(serv_array[iptab], 255) ) 193 flag++; 194 if( flag == 4 ) 195 { 196 if ( checkipaddr(cf.l2tp_serv_ip.value) == false ) 197 { 198 alert("<%294%>"); 199 return false; 200 } 201 } 202 else //if the serverip is not a correct ip, it is a FQDN. then the My IP Address MUST be blank to indicate DHCP is used to get the router's IP address 203 { 204 cf.WANAssign.value=0; 205 cf.l2tp_myip.value=""; 206 cf.l2tp_gateway.value=""; 207 } 208 } 209 else //if the serverip is not a correct ip, it is a FQDN. then the My IP Address MUST be blank to indicate DHCP is used to get the router's IP address 210 { 211 cf.WANAssign.value=0; 212 cf.l2tp_myip.value=""; 213 cf.l2tp_gateway.value=""; 214 } 215 */ 216 for(i=0;i<cf.l2tp_conn_id.value.length;i++) 217 { 218 if(isValidChar(cf.l2tp_conn_id.value.charCodeAt(i))==false) 219 { 220 alert("<%1779%>"); 221 return false; 222 } 223 } 224 if (check == 1) 225 { 226 cf.run_test.value="test"; 227 if( page == "wiz") 228 cf.action="ru_wan_flow.cgi"; 229 } 230 else 231 cf.run_test.value="no"; 232 if (cf.WANAssign.value == 1) 233 { 234 if(isSameSubNet(cf.l2tp_myip.value,cf.l2tp_mynetmask.value,cf.l2tp_serv_ip.value,cf.l2tp_mynetmask.value) != true) 235 { 236 if(isSameSubNet(cf.l2tp_myip.value,cf.l2tp_mynetmask.value,cf.l2tp_gateway.value,cf.l2tp_mynetmask.value) != true) 237 { 238 alert("<%190%>"); 239 return false; 240 } 241 } 242 } 243 return true; 244} 245 246function check_l2tp(cf,check) 247{ 248 var wan_assgin = false; 249 if(check_wizard_l2tp(check,"bas")==false) 250 return false; 251 cf.hidden_l2tp_idle_time.value=cf.l2tp_idletime.value; 252 253 if(cf.WANAssign.value == 1) 254 wan_assgin = true; 255 if(cf.DNSAssign[1].checked == true) 256 { 257 cf.l2tp_dnsaddr1.value=cf.DAddr1.value+'.'+cf.DAddr2.value+'.'+cf.DAddr3.value+'.'+cf.DAddr4.value; 258 cf.l2tp_dnsaddr2.value=cf.PDAddr1.value+'.'+cf.PDAddr2.value+'.'+cf.PDAddr3.value+'.'+cf.PDAddr4.value; 259 260 if(cf.l2tp_dnsaddr1.value=="...") 261 cf.l2tp_dnsaddr1.value=""; 262 if(cf.l2tp_dnsaddr2.value=="...") 263 cf.l2tp_dnsaddr2.value=""; 264 265 if(!check_DNS(cf.l2tp_dnsaddr1.value,cf.l2tp_dnsaddr2.value,wan_assgin,cf.l2tp_myip.value)) 266 return false; 267 } 268 if (cf.MACAssign[2].checked ) 269 { 270 the_mac=cf.Spoofmac.value; 271 if(the_mac.indexOf(":")==-1 && the_mac.length=="12") 272 { 273 var tmp_mac=the_mac.substr(0,2)+":"+the_mac.substr(2,2)+":"+the_mac.substr(4,2)+":"+the_mac.substr(6,2)+":"+the_mac.substr(8,2)+":"+the_mac.substr(10,2); 274 cf.Spoofmac.value = tmp_mac; 275 } 276 else if ( the_mac.split("-").length == 6 ) 277 { 278 var tmp_mac = the_mac.replace(/-/g,":"); 279 cf.Spoofmac.value=tmp_mac; 280 } 281 if(maccheck_multicast(cf.Spoofmac.value) == false) 282 return false; 283 } 284 if(!(old_wan_type=="l2tp")) 285 cf.change_wan_type.value=0; 286 else 287 cf.change_wan_type.value=1; 288 289 return true; 290} 291 292function setIP_welcome_l2tp() 293{ 294 var cf = document.forms[0]; 295 var dflag = cf.WANAssign[0].checked; 296 setDisabled(dflag,cf.myip_1,cf.myip_2,cf.myip_3,cf.myip_4); 297 DisableFixedIP = dflag; 298} 299 300 301function check_welcome_l2tp() 302{ 303 var cf = document.forms[0]; 304 if(check_wizard_l2tp(0,"welcome")==false) 305 return false; 306 parent.l2tp_username=cf.l2tp_username.value; 307 parent.l2tp_password=cf.l2tp_passwd.value; 308 parent.l2tp_idle_time=cf.l2tp_idletime.value; 309 /* 310 cf.l2tp_myip.value=cf.myip_1.value+'.'+cf.myip_2.value+'.'+cf.myip_3.value+'.'+cf.myip_4.value; 311 cf.l2tp_gateway.value=cf.mygw_1.value+'.'+cf.mygw_2.value+'.'+cf.mygw_3.value+'.'+cf.mygw_4.value; 312 cf.l2tp_mynetmask.value=cf.my_mask1.value+'.'+cf.my_mask2.value+'.'+cf.my_mask3.value+'.'+cf.my_mask4.value; 313 if(cf.l2tp_myip.value=="...") 314 { 315 cf.l2tp_myip.value=""; 316 cf.WANAssign.value=0; 317 parent.l2tp_wan_assign=0; 318 } 319 else 320 { 321 if(checkipaddr(cf.l2tp_myip.value)==false) 322 { 323 alert("<%243%>"); 324 return false; 325 } 326 cf.WANAssign.value=1; 327 parent.l2tp_wan_assign=1; 328 } 329 if( cf.l2tp_gateway.value != "..." ) 330 { 331 if(checkipaddr(cf.l2tp_gateway.value)==false) 332 { 333 alert("<%190%>"); 334 return false; 335 } 336 } 337 else 338 { 339 cf.l2tp_gateway.value=""; 340 } 341 if( cf.l2tp_mynetmask.value != "..." ) 342 { 343 if(checksubnet(cf.l2tp_mynetmask.value)==false) 344 { 345 alert("<%189%>"); 346 return false; 347 } 348 } 349 else 350 { 351 cf.l2tp_mynetmask.value=""; 352 } 353 if (cf.WANAssign.value==1) 354 { 355 if(isSameSubNet(cf.l2tp_myip.value,cf.l2tp_mynetmask.value,cf.l2tp_serv_ip.value,cf.l2tp_mynetmask.value) != true) 356 { 357 if(isSameSubNet(cf.l2tp_myip.value,cf.l2tp_mynetmask.value,cf.l2tp_gateway.value,cf.l2tp_mynetmask.value) != true) 358 { 359 alert("<%190%>"); 360 return false; 361 } 362 } 363 } 364 */ 365 parent.l2tp_local_ipaddr=cf.l2tp_myip.value; 366 parent.l2tp_local_netmask=cf.l2tp_netmask.value; 367 parent.l2tp_local_gateway=cf.l2tp_gateway.value; 368 parent.l2tp_server_ipaddr=cf.l2tp_serv_ip.value; 369 parent.l2tp_connect_id=cf.l2tp_conn_id.value; 370 parent.welcome_wan_type=4; 371 return true; 372} 373 374function l2tp_servip_update(I) 375{ 376 var cf = document.forms[0]; 377 servName = cf.l2tp_serv_ip.value; 378 if((servName.search(/[A-Za-z]/i) != -1) && 379 ((cf.myip_1.value.length > 0) || 380 (cf.myip_2.value.length > 0) || 381 (cf.myip_3.value.length > 0) || 382 (cf.myip_4.value.length > 0) ) ) 383 { 384 if(cf.DNSAssign[0].checked == true) 385 { 386 cf.DAddr1.disabled=false; 387 cf.DAddr2.disabled=false; 388 cf.DAddr3.disabled=false; 389 cf.DAddr4.disabled=false; 390 391 cf.PDAddr1.disabled=false; 392 cf.PDAddr2.disabled=false; 393 cf.PDAddr3.disabled=false; 394 cf.PDAddr4.disabled=false; 395 } 396 cf.DNSAssign[0].checked=false; 397 cf.DNSAssign[1].checked=true; 398 cf.DNSAssign[0].disabled=true; 399 cf.STATIC_DNS.value=1; 400 401 } 402 else 403 { 404 cf.DNSAssign[0].disabled=false; 405 cf.STATIC_DNS.value=0; 406 } 407} 408 409function RU_l2tp_user_info() 410{ 411 var cf=document.forms[0]; 412 if(cf.l2tp_username.value=="") 413 { 414 alert("<%456%>"); 415 return false; 416 } 417 for(i=0;i<cf.l2tp_username.value.length;i++) 418 { 419 if(isValidChar(cf.l2tp_username.value.charCodeAt(i))==false) 420 { 421 alert("<%1775%>"); 422 return false; 423 } 424 } 425 for(i=0;i<cf.l2tp_passwd.value.length;i++) 426 { 427 if(isValidChar(cf.l2tp_passwd.value.charCodeAt(i))==false) 428 { 429 alert("<%1776%>"); 430 return false; 431 } 432 } 433 if(cf.l2tp_serv_ip.value=="") 434 { 435 alert("<%294%>"); 436 return false; 437 } 438 for(i=0;i<cf.l2tp_serv_ip.value.length;i++) 439 { 440 if(isValidChar(cf.l2tp_serv_ip.value.charCodeAt(i))==false) 441 { 442 alert("<%294%>"); 443 return false; 444 } 445 } 446 var server_addr_array = cf.l2tp_serv_ip.value.split('.'); 447 var i; 448 for( i=0; i<server_addr_array.length; i++ ) 449 { 450 if( server_addr_array[i].length > 63 ) 451 { 452 alert("<%294%>"); 453 return false; 454 } 455 } 456 457 if (cf.submit_wan) 458 cf.submit_wan.value = parent.isp_type; 459 460 parent.l2tp_username=cf.l2tp_username.value; 461 parent.l2tp_password=cf.l2tp_passwd.value; 462 parent.l2tp_server_ipaddr=cf.l2tp_serv_ip.value; 463 parent.welcome_wan_type=5; 464 465 if(parent.isp_type=="16") 466 { 467 cf.basic_type.value="0"; 468 cf.ppp_login_type.value="2"; 469 cf.welcome_wan_type.value="5"; 470 cf.l2tp_dnsaddr1.value=parent.static_dns1; 471 cf.l2tp_dnsaddr2.value=parent.static_dns2; 472 if(cf.l2tp_dnsaddr1.value != "" || cf.l2tp_dnsaddr2.value!= "") 473 cf.DNSAssign.value="1"; 474 else 475 cf.DNSAssign.value="0"; 476 cf.WANAssign.value="0"; 477 cf.STATIC_DNS.value="0"; 478 cf.submit(); 479 } 480 else if(parent.isp_type=="15") 481 { 482 location.href="RU_isp_spoof.htm"; 483 } 484 else if(parent.isp_type=="13" || parent.isp_type=="14") 485 { 486 location.href="RU_isp_l2tp_static.htm"; 487 } 488 else 489 location.href="RU_manual_l2tp_dual.htm"; 490} 491 492function setIP(cf) 493{ 494 var dflag = cf.DualAssign[0].checked; 495 setDisabled(dflag,cf.myip_1,cf.myip_2,cf.myip_3,cf.myip_4,cf.my_mask1,cf.my_mask2,cf.my_mask3,cf.my_mask4,cf.mygw_1,cf.mygw_2,cf.mygw_3,cf.mygw_4); 496 DisableFixedIP = dflag; 497} 498 499function RU_l2tp_servip_FQDN(I) 500{ 501 var cf = document.forms[0]; 502 servName = cf.l2tp_serv_ip.value; 503 if((servName.search(/[A-Za-z]/i) != -1) ) 504 { 505 parent.l2tp_server_FQDN=1; 506 } 507 else 508 { 509 parent.l2tp_server_FQDN=0; 510 } 511} 512 513function RU_l2tp_servip_update(I) 514{ 515 var cf = document.forms[0]; 516 if((parent.l2tp_server_FQDN == 1) && 517 ((cf.myip_1.value.length > 0) || 518 (cf.myip_2.value.length > 0) || 519 (cf.myip_3.value.length > 0) || 520 (cf.myip_4.value.length > 0) ) ) 521 { 522 if(cf.DNSAssign[0].checked == true) 523 { 524 cf.DAddr1.disabled=false; 525 cf.DAddr2.disabled=false; 526 cf.DAddr3.disabled=false; 527 cf.DAddr4.disabled=false; 528 529 cf.PDAddr1.disabled=false; 530 cf.PDAddr2.disabled=false; 531 cf.PDAddr3.disabled=false; 532 cf.PDAddr4.disabled=false; 533 } 534 cf.DNSAssign[0].checked=false; 535 cf.DNSAssign[1].checked=true; 536 cf.DNSAssign[0].disabled=true; 537 cf.STATIC_DNS.value=1; 538 539 } 540 else 541 { 542 cf.DNSAssign[0].disabled=false; 543 cf.STATIC_DNS.value=0; 544 } 545} 546 547function RU_check_l2tp_dual() 548{ 549 var cf=document.forms[0]; 550 var wan_assgin = false; 551 cf.l2tp_myip.value=cf.myip_1.value+'.'+cf.myip_2.value+'.'+cf.myip_3.value+'.'+cf.myip_4.value; 552 cf.l2tp_mynetmask.value=cf.my_mask1.value+'.'+cf.my_mask2.value+'.'+cf.my_mask3.value+'.'+cf.my_mask4.value; 553 cf.l2tp_gateway.value=cf.mygw_1.value+'.'+cf.mygw_2.value+'.'+cf.mygw_3.value+'.'+cf.mygw_4.value; 554 if(cf.DualAssign[1].checked == true) 555 { 556 wan_assgin = true; 557 parent.l2tp_wan_assign=1; 558 if(checkipaddr(cf.l2tp_myip.value)==false) 559 { 560 alert("<%243%>"); 561 return false; 562 } 563 if(checksubnet(cf.l2tp_mynetmask.value)==false) 564 { 565 alert("<%189%>"); 566 return false; 567 } 568 if ( cf.l2tp_gateway.value != "..." && checkgateway(cf.l2tp_gateway.value) == false ) 569 { 570 alert("<%190%>"); 571 return false; 572 } 573 if( cf.l2tp_gateway.value != "..." ) 574 { 575 if(isGateway(cf.l2tp_myip.value,cf.l2tp_mynetmask.value,cf.l2tp_gateway.value) == false) 576 { 577 alert("<%190%>"); 578 return false; 579 } 580 if(isSameIp(cf.l2tp_myip.value,cf.l2tp_gateway.value) == true) 581 { 582 alert("<%190%>"); 583 return false; 584 } 585 } 586 else 587 cf.l2tp_gateway.value=""; 588 if(isSameSubNet(cf.l2tp_myip.value,cf.l2tp_mynetmask.value,l2tp_serv_ip,cf.l2tp_mynetmask.value) != true) 589 { 590 if(isSameSubNet(cf.l2tp_myip.value,cf.l2tp_mynetmask.value,cf.l2tp_gateway.value,cf.l2tp_mynetmask.value) != true) 591 { 592 alert("<%190%>"); 593 return false; 594 } 595 } 596 } 597 else 598 { 599 cf.l2tp_myip.value=""; 600 cf.l2tp_mynetmask.value=""; 601 cf.l2tp_gateway.value=""; 602 parent.l2tp_wan_assign=0; 603 } 604 if(cf.DNSAssign[1].checked == true) 605 { 606 cf.l2tp_dnsaddr1.value=cf.DAddr1.value+'.'+cf.DAddr2.value+'.'+cf.DAddr3.value+'.'+cf.DAddr4.value; 607 cf.l2tp_dnsaddr2.value=cf.PDAddr1.value+'.'+cf.PDAddr2.value+'.'+cf.PDAddr3.value+'.'+cf.PDAddr4.value; 608 609 if(cf.l2tp_dnsaddr1.value=="...") 610 cf.l2tp_dnsaddr1.value=""; 611 if(cf.l2tp_dnsaddr2.value=="...") 612 cf.l2tp_dnsaddr2.value=""; 613 614 if(!check_DNS(cf.l2tp_dnsaddr1.value,cf.l2tp_dnsaddr2.value,wan_assgin,cf.l2tp_myip.value)) 615 return false; 616 } 617 else 618 { 619 cf.l2tp_dnsaddr1.value=""; 620 cf.l2tp_dnsaddr2.value=""; 621 } 622 if(cf.DualAssign[1].checked == true) 623 alert("<%1774%>"); 624 parent.l2tp_local_ipaddr=cf.l2tp_myip.value; 625 parent.l2tp_local_netmask=cf.l2tp_mynetmask.value; 626 parent.l2tp_local_gateway=cf.l2tp_gateway.value; 627 parent.l2tp_dns1=cf.l2tp_dnsaddr1.value; 628 parent.l2tp_dns2=cf.l2tp_dnsaddr2.value; 629 parent.STATIC_DNS=cf.STATIC_DNS.value; 630 location.href="RU_manual_spoof.htm"; 631} 632