home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2002 March / PCWMAR02.iso / software / windowsxp / ftgateoffice / ftgateoffice.exe / Main / core.js < prev    next >
Encoding:
Text File  |  2001-11-29  |  7.9 KB  |  424 lines

  1. var modified=true;
  2.  
  3. var errPositive = "Enter a number greater than zero";
  4. var errEmail = "Enter a valid email address of the form mailbox@domain.com";
  5. var errEmailList = "Enter a valid email address of the form mailbox@domain.com.\nYou can send to multiple addresses by separating them with semi-colons ';'";
  6. var errMailbox = "Enter a valid mailbox name";
  7. var errDomain = "Enter a valid domain name, e.g. domain.com";
  8. var errPeriod = "Enter a valid period, i.e. a number followed by s, m, h, or d";
  9. var errScript = "Enter a valid script file (.fts), e.g. script.fts ";
  10. var errBytes = "Enter a valid size, i.e. a number followed by b, Kb, Mb, or Gb";
  11. var errPort = "Enter a port number, i.e. a number between 0 and 65535";
  12. var errIP = "Enter a valid IP address, e.g. 192.168.0.1";
  13. var errSubnet = "Enter a valid subnet mask, e.g. 255.255.128.0";
  14. var errNumber = "Enter a number";
  15.  
  16. setModified(false);
  17.  
  18. if (!document.images) {}
  19. else {
  20.   left0 = new Image();
  21.   left0.src  = dir+"leftup.gif";
  22.   left1 = new Image();
  23.   left1.src = dir+"leftupon.gif";
  24. }
  25.  
  26. function getParm(string,parm)
  27. {
  28.   // returns value of parm from string
  29.   var startPos = string.indexOf(parm + "=");
  30.   if (startPos > -1)
  31.   {
  32.     startPos = startPos + parm.length + 1;
  33.     var endPos = string.indexOf("&",startPos);
  34.     if (endPos == -1)
  35.       endPos = string.length;
  36.     
  37.     return unescape(string.substring(startPos,endPos));
  38.   }
  39.   
  40.   return '';
  41. }
  42.  
  43. var passed = location.search.substring(1);
  44.  
  45. function round(val)
  46. {
  47.     var a = val;
  48.     a = a.toString();
  49.     var dot = a.indexOf(".");
  50.     if (dot!=-1)
  51.     {
  52.         if (a.slice(dot+1, dot+2)=="0")
  53.             a = a.slice(0, dot);
  54.         else
  55.             a = a.slice(0, dot+2);
  56.     }
  57.  
  58.     return a;
  59. }
  60.  
  61. function niceBytes(bytes)
  62. {
  63.     if (bytes < 1024)
  64.         document.write(bytes);
  65.     else if (bytes <1024*1024)
  66.         document.write(round(bytes/1024)+"Kb");
  67.     else if (bytes<1024*1024*1024)
  68.         document.write(round(bytes/(1024*1024))+"Mb");
  69.     else
  70.         document.write(round(bytes/(1024*1024*1024))+"Gb");
  71. }
  72.  
  73. function sigFigs(number, figs)
  74. {
  75.     return Math.round(Math.round(number*figs)/figs);
  76. }
  77.  
  78. function toNiceBytes(bytes)
  79. {
  80.     if (bytes < 1024)
  81.         return bytes;
  82.     else if (bytes <1024*1024)
  83.         return round(bytes/1024,1)+"Kb";
  84.     else if (bytes<1024*1024*1024)
  85.         return round(bytes/(1024*1024),10)+"Mb";
  86.     else
  87.         return round(bytes/(1024*1024*1024),100)+"Gb";
  88. }
  89.  
  90. function niceDate(numDate)
  91. {
  92.     if (numDate==0)
  93.         document.write(" ")
  94.     else
  95.     {
  96.         d = new Date();
  97.         d.setTime(numDate*1000);
  98.  
  99.         s = new String();
  100.  
  101.         if (navigator.appName.indexOf("Netscape",0)!=-1)
  102.             s = d.toLocaleString();
  103.         else
  104.         {
  105.             s = d.toString();
  106.  
  107.             var i = s.indexOf('U');
  108.             if (i!=-1)
  109.                 s = s.slice(0,i-1);
  110.         }
  111.  
  112.         document.write(s);
  113.     }
  114. }
  115.  
  116. function navSet(index)
  117. {
  118.     var loop=1;
  119.     var color;
  120.     var bkgnd;
  121.     var hover;
  122.  
  123.     if (document.styleSheets)
  124.     {
  125.         if (getCookie("nav")==index)
  126.             return;
  127.         
  128.         for (loop=1; loop<10; loop++)
  129.         {
  130.             if (loop==index)
  131.             {
  132.                 color="white";
  133.                 bkgnd="black"
  134.                 hover="white";
  135.             }
  136.             else
  137.             {
  138.                 color="black";
  139.                 bkgnd="skyblue";
  140.                 hover="red";
  141.             }
  142.  
  143.             parent.header.document.styleSheets[0].addRule("A.nv"+loop, "color:"+color);
  144.             parent.header.document.styleSheets[0].addRule("A.nv"+loop+":visited", "color:"+color);
  145.             parent.header.document.styleSheets[0].addRule("A.nv"+loop+":hover", "color:"+hover);
  146.             parent.header.document.styleSheets[0].addRule("TD.nv"+loop, "background:"+bkgnd);
  147.         }
  148.  
  149.         setCookie("nav", index, false);
  150.     }
  151. }
  152.  
  153. function setPage(index, title)
  154. {
  155.     if (parent.header)
  156.     {
  157.         if (navigator.appName.indexOf("Netscape",0)==-1)
  158.         {
  159.             if (parent.header.heading)
  160.             {
  161.                 if (parent.header.heading.title)
  162.                 {
  163.                     parent.header.heading.title.value=title;
  164.                     navSet(index);
  165.                     if (!document.images) {}
  166.                     else
  167.                     {
  168.                         if (index==1)
  169.                             parent.header["left"].src = "/images/leftup-s.gif";
  170.                         else
  171.                                 parent.header["left"].src = "/images/leftup.gif";
  172.  
  173.                         if (index==9)
  174.                             parent.header["right"].src = "/images/right-s.gif";
  175.                         else
  176.                                 parent.header["right"].src = "/images/right.gif";
  177.                     }
  178.                 }
  179.                 else
  180.                     setTimeout("setPage("+index+", '"+title+"')", 500);
  181.             }
  182.             else
  183.                 setTimeout("setPage("+index+", '"+title+"')", 500);
  184.         }
  185.         else
  186.         {
  187.             var str = "";
  188.             var href=parent.header.location.href;
  189.  
  190.             var pos=href.indexOf("title=")
  191.             if (pos!=-1)
  192.                 str = href.slice(pos+6, href.length);
  193.  
  194.             if (str!=title)
  195.                 parent.header.location.href="/header.fts?index="+index+"&title="+title
  196.         }
  197.     }
  198. }
  199.  
  200. function setModified(flag)
  201. {
  202.     if (modified!=flag)
  203.     {
  204.         modified=flag;
  205.         setCookie("modified", flag, false);
  206.     }
  207. }
  208.  
  209. function getModified()
  210. {
  211.     return modified;
  212. }
  213.  
  214. function getModifiedRemote()
  215. {
  216.     return getCookie("modified")=="true";
  217. }
  218.  
  219. function onLog()
  220. {
  221.     var log = window.open("/log/index.fts", "_blank", "toolbar=0,location=0,status=0,menubar=0,resizable=1");
  222.     log.focus();
  223. }
  224.  
  225. function checkModified()
  226. {
  227.     if (getModified())
  228.     {
  229.         if (!window.confirm("Discard changes?"))
  230.             return false;
  231.     }
  232.  
  233.     return true;
  234. }
  235.  
  236. function st(text)
  237. {
  238.     if (text)
  239.         window.status=text;
  240.     else
  241.         window.status=window.defaultStatus;
  242.  
  243.     return true;
  244. }
  245.  
  246. function onHelp()
  247. {
  248.     var index;
  249.     var s=parent.main.location.href;
  250.  
  251.     s = s.slice(s.indexOf("/",7)+1);
  252.     if ((index=s.indexOf("?"))!=-1)
  253.         s=s.slice(0, index);
  254.  
  255.     var help = window.open("/help/index.fts?href="+s, "WebMailHelp", "toolbar=1,menubar=1,location=0,resizable=1,scrollbars=1");
  256. //    var help = window.open("/help.fts?href="+s, "WebMailHelp");
  257.     help.focus();
  258. }
  259.  
  260. function isEmail(string)
  261. {
  262.     if (string.search(/^\w+((=\w+)|(\$\w+)|(-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)!=-1)
  263.         return true;
  264.     else
  265.         return false;
  266. }
  267.  
  268. function isEmailList(string)
  269. {
  270.     var start=0;
  271.  
  272.     while (string.charAt(start)==' ')
  273.         start++;
  274.  
  275.     var pos = string.indexOf(";", 0);
  276.     if (pos==-1 && start>=string.length)
  277.         return false;
  278.  
  279.     if (start>string.length)
  280.         pos=-1;
  281.  
  282.     while(pos!=-1)
  283.     {
  284.         if (!isEmail(string.slice(start, pos)))
  285.             return false;
  286.  
  287.         start = pos+1;
  288.         while (string.charAt(start)==' ')
  289.             start++;
  290.  
  291.         pos = string.indexOf(";", start);
  292.     }
  293.  
  294.     if (start<string.length)
  295.     {
  296.         if (!isEmail(string.slice(start, string.length)))
  297.             return false;
  298.     }
  299.  
  300.     return true;
  301. }
  302.  
  303. function isDomain(name)
  304. {
  305.     if (name.search(/^[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)!=-1)
  306.         return true;
  307.     else
  308.         return false;
  309. }
  310.  
  311. function isAddr(addr)
  312. {
  313.     if (addr.search(/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/)!=-1)
  314.         return true;
  315.     else
  316.         return false;
  317. }
  318.  
  319. function isDigit(c)
  320. {
  321.     switch (c)
  322.     {
  323.     case "0":
  324.     case "1":
  325.     case "2":
  326.     case "3":
  327.     case "4":
  328.     case "5":
  329.     case "6":
  330.     case "7":
  331.     case "8":
  332.     case "9":
  333.         return true;
  334.     }
  335.  
  336.     return false;
  337. }
  338.  
  339. function isNumber(number)
  340. {
  341.     var index=0;
  342.  
  343.     if (number=="")
  344.         return true;
  345.  
  346.     while (isDigit(number.charAt(index)))
  347.         index++;
  348.  
  349.     return index==number.length;
  350. }
  351.  
  352. function isPort(port)
  353. {
  354.     return isNumber(port)&&(port>=0)&&(port<65536);
  355. }
  356.  
  357. function isBytes(bytes)
  358. {
  359.     var index=0;
  360.  
  361.     if (bytes=="")
  362.         return true;
  363.  
  364.     while (isDigit(bytes.charAt(index)))
  365.         index++;
  366.  
  367.     if (index==bytes.length)
  368.         return true;
  369.  
  370.     if (bytes.charAt(index)==".")
  371.     {
  372.         index++;
  373.  
  374.         if (index==bytes.length)
  375.             return true;
  376.  
  377.         while (isDigit(bytes.charAt(index)))
  378.             index++;
  379.  
  380.         if (index==bytes.length)
  381.             return true;
  382.     }
  383.  
  384.     switch (bytes.charAt(index))
  385.     {
  386.     case "b":
  387.     case "B":
  388.         index++;
  389.         break;
  390.  
  391.     case "k":
  392.     case "K":
  393.     case "m":
  394.     case "M":
  395.     case "g":
  396.     case "G":
  397.         index++;
  398.         if (bytes.charAt(index)!="b" && bytes.charAt(index)!="B")
  399.             return false;
  400.         index++;
  401.         break;
  402.  
  403.     default:
  404.         return false;
  405.     }
  406.  
  407.     return (index==bytes.length)
  408. }
  409.  
  410. function isScript(script)
  411. {
  412.     if (script.length<5)
  413.         return false;
  414.  
  415.     if (script.slice(script.length-4)!=".fts")
  416.         return false;
  417.  
  418.     return true;
  419. }
  420.  
  421. function isPositive(number)
  422. {
  423.     return isNumber(number)&&(number>0);
  424. }