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 pptp_servip_update() 17{ 18 var disable=false; 19 var cf = document.forms[0]; 20 var serv_array=cf.pptp_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.pptp_serv_ip.value) == false) 30 disable=true; 31 } 32 else 33 { 34 disable=true; 35 } 36 } 37 else if (cf.pptp_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_pptp(check,page) 53{ 54 var cf=document.forms[0]; 55 if(cf.pptp_username.value=="") 56 { 57 alert("<%796%>"); 58 return false; 59 } 60 for(i=0;i<cf.pptp_username.value.length;i++) 61 { 62 if(isValidChar(cf.pptp_username.value.charCodeAt(i))==false) 63 { 64 alert("<%2382%>"); 65 return false; 66 } 67 } 68 for(i=0;i<cf.pptp_passwd.value.length;i++) 69 { 70 if(isValidChar(cf.pptp_passwd.value.charCodeAt(i))==false) 71 { 72 alert("<%2383%>"); 73 return false; 74 } 75 } 76 if(cf.pptp_idletime.value.length<=0) 77 { 78 alert("<%2384%>"); 79 return false; 80 } 81 else if(!_isNumeric(cf.pptp_idletime.value)) 82 { 83 alert("<%564%>"); 84 return false; 85 } 86 cf.pptp_myip.value=cf.myip_1.value+'.'+cf.myip_2.value+'.'+cf.myip_3.value+'.'+cf.myip_4.value; 87 cf.pptp_mynetmask.value=cf.my_mask1.value+'.'+cf.my_mask2.value+'.'+cf.my_mask3.value+'.'+cf.my_mask4.value; 88 cf.pptp_gateway.value=cf.mygw_1.value+'.'+cf.mygw_2.value+'.'+cf.mygw_3.value+'.'+cf.mygw_4.value; 89 90 if( cf.pptp_myip.value != "..." ) 91 { 92 if(checkipaddr(cf.pptp_myip.value)==false) 93 { 94 alert("<%568%>"); 95 return false; 96 } 97 if(isSameSubNet(cf.pptp_myip.value,lan_subnet,lan_ip,lan_subnet) == true) 98 { 99 cf.conflict_wanlan.value=1; 100 } 101 if(isSameIp(cf.pptp_myip.value,lan_ip) == true) 102 { 103 cf.conflict_wanlan.value=1; 104 } 105 if(isSameSubNet(cf.pptp_myip.value,cf.pptp_mynetmask.value,lan_ip,cf.pptp_mynetmask.value) == true) 106 { 107 cf.conflict_wanlan.value=1; 108 } 109 if(isSameSubNet(cf.pptp_myip.value,cf.pptp_mynetmask.value,lan_ip,lan_subnet) == true) 110 { 111 cf.conflict_wanlan.value=1; 112 } 113 } 114 if( cf.pptp_mynetmask.value != "..." ) 115 { 116 if(checksubnet(cf.pptp_mynetmask.value)==false) 117 { 118 alert("<%514%>"); 119 return false; 120 } 121 } 122 else 123 { 124 cf.pptp_mynetmask.value=""; 125 } 126 if(cf.pptp_myip.value=="...") 127 { 128 cf.pptp_myip.value=""; 129 cf.pptp_gateway.value=""; 130 cf.WANAssign.value=0; 131 } 132 else 133 { 134 cf.WANAssign.value=1; 135 if ( cf.pptp_gateway.value != "..." && checkgateway(cf.pptp_gateway.value) == false ) 136 { 137 alert("<%515%>"); 138 return false; 139 } 140 141 if(cf.pptp_mynetmask.value=="") 142 { 143 if( parseInt(cf.myip_1.value) < 128 ) 144 cf.pptp_mynetmask.value="255.0.0.0"; 145 else if(parseInt(cf.myip_1.value) < 192 ) 146 cf.pptp_mynetmask.value="255.255.0.0"; 147 else 148 cf.pptp_mynetmask.value="255.255.255.0"; 149 } 150 if( cf.pptp_gateway.value != "..." ) 151 { 152 if(isGateway(cf.pptp_myip.value,cf.pptp_mynetmask.value,cf.pptp_gateway.value) == false) 153 { 154 alert("<%515%>"); 155 return false; 156 } 157 if(isSameIp(cf.pptp_myip.value,cf.pptp_gateway.value) == true) 158 { 159 alert("<%515%>"); 160 return false; 161 } 162 } 163 else 164 cf.pptp_gateway.value=""; 165 } 166 167 if(cf.pptp_serv_ip.value=="") 168 { 169 alert("<%618%>"); 170 return false; 171 } 172 for(i=0;i<cf.pptp_serv_ip.value.length;i++) 173 { 174 if(isValidChar(cf.pptp_serv_ip.value.charCodeAt(i))==false) 175 { 176 alert("<%618%>"); 177 return false; 178 } 179 } 180 if( cf.pptp_serv_ip.value == cf.pptp_myip.value ) 181 { 182 alert("<%2385%>"); 183 return false; 184 } 185 186 /* 187 var serv_array=cf.pptp_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.pptp_serv_ip.value) == false ) 197 { 198 alert("<%618%>"); 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.pptp_myip.value=""; 206 cf.pptp_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.pptp_myip.value=""; 213 cf.pptp_gateway.value=""; 214 } 215 */ 216 for(i=0;i<cf.pptp_conn_id.value.length;i++) 217 { 218 if(isValidChar(cf.pptp_conn_id.value.charCodeAt(i))==false) 219 { 220 alert("<%2386%>"); 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.pptp_myip.value,cf.pptp_mynetmask.value,cf.pptp_serv_ip.value,cf.pptp_mynetmask.value) != true) 235 { 236 if(isSameSubNet(cf.pptp_myip.value,cf.pptp_mynetmask.value,cf.pptp_gateway.value,cf.pptp_mynetmask.value) != true) 237 { 238 alert("<%515%>"); 239 return false; 240 } 241 } 242 } 243 return true; 244} 245 246function check_pptp(cf,check) 247{ 248 var wan_assgin = false; 249 if(check_wizard_pptp(check,"bas")==false) 250 return false; 251 cf.hidden_pptp_idle_time.value=cf.pptp_idletime.value; 252 253 if(cf.WANAssign.value == 1) 254 wan_assgin = true; 255 256 var server_addr_array = cf.pptp_serv_ip.value.split('.'); 257 var i; 258 for( i=0; i<server_addr_array.length; i++ ) 259 { 260 if( server_addr_array[i].length > 63 ) 261 { 262 alert("<%618%>"); 263 return false; 264 } 265 } 266 267 if(cf.DNSAssign[1].checked == true) 268 { 269 cf.pptp_dnsaddr1.value=cf.DAddr1.value+'.'+cf.DAddr2.value+'.'+cf.DAddr3.value+'.'+cf.DAddr4.value; 270 cf.pptp_dnsaddr2.value=cf.PDAddr1.value+'.'+cf.PDAddr2.value+'.'+cf.PDAddr3.value+'.'+cf.PDAddr4.value; 271 272 if(cf.pptp_dnsaddr1.value=="...") 273 cf.pptp_dnsaddr1.value=""; 274 if(cf.pptp_dnsaddr2.value=="...") 275 cf.pptp_dnsaddr2.value=""; 276 277 if(!check_DNS(cf.pptp_dnsaddr1.value,cf.pptp_dnsaddr2.value,wan_assgin,cf.pptp_myip.value)) 278 return false; 279 } 280 if (cf.MACAssign[2].checked ) 281 { 282 the_mac=cf.Spoofmac.value; 283 if(the_mac.indexOf(":")==-1 && the_mac.length=="12") 284 { 285 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); 286 cf.Spoofmac.value = tmp_mac; 287 } 288 else if ( the_mac.split("-").length == 6 ) 289 { 290 var tmp_mac = the_mac.replace(/-/g,":"); 291 cf.Spoofmac.value=tmp_mac; 292 } 293 if(maccheck_multicast(cf.Spoofmac.value) == false) 294 return false; 295 } 296 if(!(old_wan_type=="pptp")) 297 cf.change_wan_type.value=0; 298 else 299 cf.change_wan_type.value=1; 300 301 return true; 302} 303 304function setIP_welcome_pptp() 305{ 306 var cf = document.forms[0]; 307 var dflag = cf.WANAssign[0].checked; 308 setDisabled(dflag,cf.myip_1,cf.myip_2,cf.myip_3,cf.myip_4); 309 DisableFixedIP = dflag; 310} 311 312 313function check_welcome_pptp() 314{ 315 var cf = document.forms[0]; 316 if(check_wizard_pptp(0,"welcome")==false) 317 return false; 318 parent.pptp_username=cf.pptp_username.value; 319 parent.pptp_password=cf.pptp_passwd.value; 320 parent.pptp_idle_time=cf.pptp_idletime.value; 321 /* 322 cf.pptp_myip.value=cf.myip_1.value+'.'+cf.myip_2.value+'.'+cf.myip_3.value+'.'+cf.myip_4.value; 323 cf.pptp_gateway.value=cf.mygw_1.value+'.'+cf.mygw_2.value+'.'+cf.mygw_3.value+'.'+cf.mygw_4.value; 324 cf.pptp_mynetmask.value=cf.my_mask1.value+'.'+cf.my_mask2.value+'.'+cf.my_mask3.value+'.'+cf.my_mask4.value; 325 if(cf.pptp_myip.value=="...") 326 { 327 cf.pptp_myip.value=""; 328 cf.WANAssign.value=0; 329 parent.pptp_wan_assign=0; 330 } 331 else 332 { 333 if(checkipaddr(cf.pptp_myip.value)==false) 334 { 335 alert("<%568%>"); 336 return false; 337 } 338 cf.WANAssign.value=1; 339 parent.pptp_wan_assign=1; 340 } 341 if( cf.pptp_gateway.value != "..." ) 342 { 343 if(checkipaddr(cf.pptp_gateway.value)==false) 344 { 345 alert("<%515%>"); 346 return false; 347 } 348 } 349 else 350 { 351 cf.pptp_gateway.value=""; 352 } 353 if( cf.pptp_mynetmask.value != "..." ) 354 { 355 if(checksubnet(cf.pptp_mynetmask.value)==false) 356 { 357 alert("<%514%>"); 358 return false; 359 } 360 } 361 else 362 { 363 cf.pptp_mynetmask.value=""; 364 } 365 if (cf.WANAssign.value==1) 366 { 367 if(isSameSubNet(cf.pptp_myip.value,cf.pptp_mynetmask.value,cf.pptp_serv_ip.value,cf.pptp_mynetmask.value) != true) 368 { 369 if(isSameSubNet(cf.pptp_myip.value,cf.pptp_mynetmask.value,cf.pptp_gateway.value,cf.pptp_mynetmask.value) != true) 370 { 371 alert("<%515%>"); 372 return false; 373 } 374 } 375 } 376 */ 377 parent.pptp_local_ipaddr=cf.pptp_myip.value; 378 parent.pptp_local_netmask=cf.pptp_mynetmask.value; 379 parent.pptp_local_gateway=cf.pptp_gateway.value; 380 parent.pptp_server_ipaddr=cf.pptp_serv_ip.value; 381 parent.pptp_connect_id=cf.pptp_conn_id.value; 382 parent.welcome_wan_type=4; 383 return true; 384} 385 386function pptp_servip_update(I) 387{ 388 var cf = document.forms[0]; 389 servName = cf.pptp_serv_ip.value; 390 if((servName.search(/[A-Za-z]/i) != -1) && 391 ((cf.myip_1.value.length > 0) || 392 (cf.myip_2.value.length > 0) || 393 (cf.myip_3.value.length > 0) || 394 (cf.myip_4.value.length > 0) ) ) 395 { 396 if(cf.DNSAssign[0].checked == true) 397 { 398 cf.DAddr1.disabled=false; 399 cf.DAddr2.disabled=false; 400 cf.DAddr3.disabled=false; 401 cf.DAddr4.disabled=false; 402 403 cf.PDAddr1.disabled=false; 404 cf.PDAddr2.disabled=false; 405 cf.PDAddr3.disabled=false; 406 cf.PDAddr4.disabled=false; 407 } 408 cf.DNSAssign[0].checked=false; 409 cf.DNSAssign[1].checked=true; 410 cf.DNSAssign[0].disabled=true; 411 cf.STATIC_DNS.value=1; 412 413 } 414 else 415 { 416 cf.DNSAssign[0].disabled=false; 417 cf.STATIC_DNS.value=0; 418 } 419} 420 421function RU_pptp_user_info() 422{ 423 var cf=document.forms[0]; 424 if(cf.pptp_username.value=="") 425 { 426 alert("<%796%>"); 427 return false; 428 } 429 for(i=0;i<cf.pptp_username.value.length;i++) 430 { 431 if(isValidChar(cf.pptp_username.value.charCodeAt(i))==false) 432 { 433 alert("<%2382%>"); 434 return false; 435 } 436 } 437 for(i=0;i<cf.pptp_passwd.value.length;i++) 438 { 439 if(isValidChar(cf.pptp_passwd.value.charCodeAt(i))==false) 440 { 441 alert("<%2383%>"); 442 return false; 443 } 444 } 445 if(cf.pptp_serv_ip.value=="") 446 { 447 alert("<%618%>"); 448 return false; 449 } 450 for(i=0;i<cf.pptp_serv_ip.value.length;i++) 451 { 452 if(isValidChar(cf.pptp_serv_ip.value.charCodeAt(i))==false) 453 { 454 alert("<%618%>"); 455 return false; 456 } 457 } 458 var server_addr_array = cf.pptp_serv_ip.value.split('.'); 459 var i; 460 for( i=0; i<server_addr_array.length; i++ ) 461 { 462 if( server_addr_array[i].length > 63 ) 463 { 464 alert("<%618%>"); 465 return false; 466 } 467 } 468 469 if (cf.submit_wan) 470 cf.submit_wan.value = parent.isp_type; 471 472 parent.pptp_username=cf.pptp_username.value; 473 parent.pptp_password=cf.pptp_passwd.value; 474 parent.pptp_server_ipaddr=cf.pptp_serv_ip.value; 475 parent.welcome_wan_type=4; 476 477 if(parent.isp_type=="12") 478 { 479 cf.basic_type.value="0"; 480 cf.ppp_login_type.value="1"; 481 cf.welcome_wan_type.value="4"; 482 cf.pptp_dnsaddr1.value=parent.static_dns1; 483 cf.pptp_dnsaddr2.value=parent.static_dns2; 484 if(cf.pptp_dnsaddr1.value != "" || cf.pptp_dnsaddr2.value!= "") 485 cf.DNSAssign.value="1"; 486 else 487 cf.DNSAssign.value="0"; 488 cf.WANAssign.value="0"; 489 cf.STATIC_DNS.value="0"; 490 cf.submit(); 491 } 492 else if(parent.isp_type=="11") 493 { 494 location.href="RU_isp_spoof.htm"; 495 } 496 else if(parent.isp_type=="9" || parent.isp_type=="10") 497 { 498 location.href="RU_isp_pptp_static.htm"; 499 } 500 else 501 location.href="RU_manual_pptp_dual.htm"; 502} 503 504function setIP(cf) 505{ 506 var dflag = cf.DualAssign[0].checked; 507 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); 508 DisableFixedIP = dflag; 509} 510 511function RU_pptp_servip_FQDN(I) 512{ 513 var cf = document.forms[0]; 514 servName = cf.pptp_serv_ip.value; 515 if(servName.search(/[A-Za-z]/i) != -1) 516 { 517 parent.pptp_server_FQDN=1; 518 } 519 else 520 { 521 parent.pptp_server_FQDN=0; 522 } 523} 524 525function RU_pptp_servip_update(I) 526{ 527 var cf = document.forms[0]; 528 if((parent.pptp_server_FQDN == 1) && 529 ((cf.myip_1.value.length > 0) || 530 (cf.myip_2.value.length > 0) || 531 (cf.myip_3.value.length > 0) || 532 (cf.myip_4.value.length > 0) ) ) 533 { 534 if(cf.DNSAssign[0].checked == true) 535 { 536 cf.DAddr1.disabled=false; 537 cf.DAddr2.disabled=false; 538 cf.DAddr3.disabled=false; 539 cf.DAddr4.disabled=false; 540 541 cf.PDAddr1.disabled=false; 542 cf.PDAddr2.disabled=false; 543 cf.PDAddr3.disabled=false; 544 cf.PDAddr4.disabled=false; 545 } 546 cf.DNSAssign[0].checked=false; 547 cf.DNSAssign[1].checked=true; 548 cf.DNSAssign[0].disabled=true; 549 cf.STATIC_DNS.value=1; 550 551 } 552 else 553 { 554 cf.DNSAssign[0].disabled=false; 555 cf.STATIC_DNS.value=0; 556 } 557} 558 559function RU_check_pptp_dual() 560{ 561 var cf=document.forms[0]; 562 var wan_assgin = false; 563 cf.pptp_myip.value=cf.myip_1.value+'.'+cf.myip_2.value+'.'+cf.myip_3.value+'.'+cf.myip_4.value; 564 cf.pptp_mynetmask.value=cf.my_mask1.value+'.'+cf.my_mask2.value+'.'+cf.my_mask3.value+'.'+cf.my_mask4.value; 565 cf.pptp_gateway.value=cf.mygw_1.value+'.'+cf.mygw_2.value+'.'+cf.mygw_3.value+'.'+cf.mygw_4.value; 566 if(cf.DualAssign[1].checked == true) 567 { 568 wan_assgin = true; 569 parent.pptp_wan_assign=1; 570 if(checkipaddr(cf.pptp_myip.value)==false) 571 { 572 alert("<%568%>"); 573 return false; 574 } 575 if(checksubnet(cf.pptp_mynetmask.value)==false) 576 { 577 alert("<%514%>"); 578 return false; 579 } 580 if ( cf.pptp_gateway.value != "..." && checkgateway(cf.pptp_gateway.value) == false ) 581 { 582 alert("<%515%>"); 583 return false; 584 } 585 if( cf.pptp_gateway.value != "..." ) 586 { 587 if(isGateway(cf.pptp_myip.value,cf.pptp_mynetmask.value,cf.pptp_gateway.value) == false) 588 { 589 alert("<%515%>"); 590 return false; 591 } 592 if(isSameIp(cf.pptp_myip.value,cf.pptp_gateway.value) == true) 593 { 594 alert("<%515%>"); 595 return false; 596 } 597 } 598 else 599 cf.pptp_gateway.value=""; 600 if(isSameSubNet(cf.pptp_myip.value,cf.pptp_mynetmask.value,pptp_serv_ip,cf.pptp_mynetmask.value) != true) 601 { 602 if(isSameSubNet(cf.pptp_myip.value,cf.pptp_mynetmask.value,cf.pptp_gateway.value,cf.pptp_mynetmask.value) != true) 603 { 604 alert("<%515%>"); 605 return false; 606 } 607 } 608 } 609 else 610 { 611 cf.pptp_myip.value=""; 612 cf.pptp_mynetmask.value=""; 613 cf.pptp_gateway.value=""; 614 parent.pptp_wan_assign=0; 615 } 616 if(cf.DNSAssign[1].checked == true) 617 { 618 cf.pptp_dnsaddr1.value=cf.DAddr1.value+'.'+cf.DAddr2.value+'.'+cf.DAddr3.value+'.'+cf.DAddr4.value; 619 cf.pptp_dnsaddr2.value=cf.PDAddr1.value+'.'+cf.PDAddr2.value+'.'+cf.PDAddr3.value+'.'+cf.PDAddr4.value; 620 621 if(cf.pptp_dnsaddr1.value=="...") 622 cf.pptp_dnsaddr1.value=""; 623 if(cf.pptp_dnsaddr2.value=="...") 624 cf.pptp_dnsaddr2.value=""; 625 626 if(!check_DNS(cf.pptp_dnsaddr1.value,cf.pptp_dnsaddr2.value,wan_assgin,cf.pptp_myip.value)) 627 return false; 628 } 629 else 630 { 631 cf.pptp_dnsaddr1.value=""; 632 cf.pptp_dnsaddr2.value=""; 633 } 634 if(cf.DualAssign[1].checked == true) 635 alert("<%2381%>"); 636 parent.pptp_local_ipaddr=cf.pptp_myip.value; 637 parent.pptp_local_netmask=cf.pptp_mynetmask.value; 638 parent.pptp_local_gateway=cf.pptp_gateway.value; 639 parent.pptp_dns1=cf.pptp_dnsaddr1.value; 640 parent.pptp_dns2=cf.pptp_dnsaddr2.value; 641 parent.STATIC_DNS=cf.STATIC_DNS.value; 642 location.href="RU_manual_spoof.htm"; 643} 644