1*b1cdbd2cSJim Jagielski14a15,50
2*b1cdbd2cSJim Jagielski>     if (targetPage != "" && !validURL(targetPage))
3*b1cdbd2cSJim Jagielski>         targetPage = "undefined";
4*b1cdbd2cSJim Jagielski>     function validURL(url) {
5*b1cdbd2cSJim Jagielski>         var pos = url.indexOf(".html");
6*b1cdbd2cSJim Jagielski>         if (pos == -1 || pos != url.length - 5)
7*b1cdbd2cSJim Jagielski>             return false;
8*b1cdbd2cSJim Jagielski>         var allowNumber = false;
9*b1cdbd2cSJim Jagielski>         var allowSep = false;
10*b1cdbd2cSJim Jagielski>         var seenDot = false;
11*b1cdbd2cSJim Jagielski>         for (var i = 0; i < url.length - 5; i++) {
12*b1cdbd2cSJim Jagielski>             var ch = url.charAt(i);
13*b1cdbd2cSJim Jagielski>             if ('a' <= ch && ch <= 'z' ||
14*b1cdbd2cSJim Jagielski>                     'A' <= ch && ch <= 'Z' ||
15*b1cdbd2cSJim Jagielski>                     ch == '$' ||
16*b1cdbd2cSJim Jagielski>                     ch == '_') {
17*b1cdbd2cSJim Jagielski>                 allowNumber = true;
18*b1cdbd2cSJim Jagielski>                 allowSep = true;
19*b1cdbd2cSJim Jagielski>             } else if ('0' <= ch && ch <= '9'
20*b1cdbd2cSJim Jagielski>                     || ch == '-') {
21*b1cdbd2cSJim Jagielski>                 if (!allowNumber)
22*b1cdbd2cSJim Jagielski>                      return false;
23*b1cdbd2cSJim Jagielski>             } else if (ch == '/' || ch == '.') {
24*b1cdbd2cSJim Jagielski>                 if (!allowSep)
25*b1cdbd2cSJim Jagielski>                     return false;
26*b1cdbd2cSJim Jagielski>                 allowNumber = false;
27*b1cdbd2cSJim Jagielski>                 allowSep = false;
28*b1cdbd2cSJim Jagielski>                 if (ch == '.')
29*b1cdbd2cSJim Jagielski>                      seenDot = true;
30*b1cdbd2cSJim Jagielski>                 if (ch == '/' && seenDot)
31*b1cdbd2cSJim Jagielski>                      return false;
32*b1cdbd2cSJim Jagielski>             } else {
33*b1cdbd2cSJim Jagielski>                 return false;
34*b1cdbd2cSJim Jagielski>             }
35*b1cdbd2cSJim Jagielski>         }
36*b1cdbd2cSJim Jagielski>         return true;
37*b1cdbd2cSJim Jagielski>     }
38