home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 October / Chip_2002-10_cd1.bin / tema / webhosting / hyperlink.mht / formvalidation.js < prev    next >
Encoding:
JavaScript  |  2002-09-07  |  16.4 KB  |  748 lines

  1. ////////////////////////////////////////////////////////////////////
  2. // Name:    Validation Functions in JavaScript
  3. // Project:    Levnß-Auta
  4. // Author:    P.Filipec
  5. // Create:    19.6.2000
  6. // Version: 1.3.0
  7. // Functions:
  8. //        IsNumber(obj, name, IntegerOnly, MinLength)
  9. //        IsNoEmpty(obj, name, MinLength)
  10. //        NoValue(obj, name, val)
  11. //        IsEmail(obj, name)
  12. //        IsChecked(obj, msg)
  13. //        LessThan(obj1, obj2, name1, name2)
  14. //        IsDate(obj, name)
  15. //        IsEqual(obj1, obj2, name1, name2)
  16. //        HasLongWord(StringToTest)
  17. //        CompareDate(strDate1, strDate2, intDiffDay)
  18. //        IsPhone(obj, name, blnEmpty)
  19. //        IsRC(obj, name, blnEmpty)
  20. //        IsICO(obj, name, blnEmpty)
  21. //        IsDIC(obj, name, blnEmpty)
  22.  
  23. //        trimAll(str)
  24. ////////////////////////////////////////////////////////////////////
  25.  
  26. //Global test for support Regular Expressions
  27. var g_RegExpSupported = 0;
  28. if(window.RegExp)
  29. {
  30.     var tempStr = "a";
  31.     var tempReg = new RegExp(tempStr);
  32.     if(tempReg.test(tempStr)) 
  33.         g_RegExpSupported = 1;
  34. }
  35.  
  36. ////////////////////////////////////////////////////////////////////
  37. // Function:    IsNumber
  38. // Descript:    
  39. // Input:        obj -> form control
  40. //                name -> name of this control
  41. //                ItegerOnly -> true | false
  42. //                [MinLength] -> [integer]
  43. // Output:    true | false
  44. //////////////////////////////////////////////////////////////////// 
  45. function IsNumber(obj, name, IntegerOnly, MinLength)
  46. {
  47.     if(isNaN(obj.value))
  48.     {
  49.         if(name)                
  50.             alert('Vlo₧en² ·daj v poli ' + name + ' nenφ ' + (IntegerOnly ? "celΘ " : "") + 'Φφslo!\nPovoleny jsou pouze ΦφselnΘ znaky [0 - 9]' + (!IntegerOnly ? ' a desetinß teΦka [.]' : ''));
  51.         obj.focus();
  52.         return false;
  53.     }
  54.     if(obj.value.length < MinLength)
  55.     {
  56.         if(name)                
  57.             alert('Vlo₧te minimßln∞ ' + MinLength + ' cifernΘ ' + (IntegerOnly ? "celΘ " : "") + 'Φφslo do pole ' + name + ' !');
  58.         obj.focus();
  59.         return false
  60.     }
  61.     if(obj.value != parseInt(obj.value) && IntegerOnly == true)
  62.     {
  63.         if(name)                
  64.             alert('Vlo₧en² ·daj v poli' + name + 'nenφ celΘ Φφslo!');
  65.         obj.focus();
  66.         return false;
  67.     }
  68.     return true;
  69. }
  70.  
  71. ////////////////////////////////////////////////////////////////////
  72. // Function:    IsNoEmpty
  73. // Descript:    
  74. // Input:        obj -> form control
  75. //                name -> name of this control
  76. //                [MinLength] -> [integer]
  77. // Output:    true | false
  78. //////////////////////////////////////////////////////////////////// 
  79. function IsNoEmpty(obj, name, MinLength)
  80. {
  81.     var c;
  82.     var str = "";
  83.     
  84.     for(var i = 0; i < obj.value.length; i++)
  85.     {
  86.         c = obj.value.charAt(i);
  87.         if(c != ' ')
  88.             str += c;
  89.     }
  90.     if(str.length == 0)
  91.     {
  92.         if(name)
  93.         {
  94.             alert('Vlo₧te po₧adovanou hodnotu do pole ' + name + ' !');
  95.             obj.focus();
  96.         }
  97.         return false;
  98.     }
  99.     if(str.length < MinLength)
  100.     {
  101.         if(name)
  102.         {
  103.             alert('┌daj v poli ' + name + ' musφ mφt minimßln∞ ' + MinLength + ' znak∙!');
  104.             obj.focus();
  105.         }
  106.         return false
  107.     }
  108.     return true;
  109. }
  110.  
  111. ////////////////////////////////////////////////////////////////////
  112. // Function:    NoValue
  113. // Descript:    
  114. // Input:    obj -> form control
  115. //                name -> name of this control
  116. //                val -> disable value
  117. // Output:    true | false
  118. //////////////////////////////////////////////////////////////////// 
  119. function NoValue(obj, name, val)
  120. {
  121.     var value;
  122.     if((obj.type == "select-one") || (obj.type == "select-multiple"))
  123.     {
  124.         value = "";
  125.         for(var i = 0; i < obj.options.length; i++)
  126.         {
  127.             if(obj.options[i].selected)
  128.                 value += obj.options[i].value + "";
  129.         }
  130.     }
  131.     else
  132.     {
  133.         value = obj.value + "";
  134.     }
  135.     
  136.     if(value == val.toString())
  137.     {
  138.         if(name)
  139.         {
  140.             alert('Vyberte po₧adovanou hodnotu z pole ' + name + ' !');
  141.             obj.focus();
  142.         }
  143.         return false;
  144.     }
  145.     return true;
  146. }
  147.  
  148. ////////////////////////////////////////////////////////////////////
  149. // Function:    IsEmail
  150. // Descript:    
  151. // Input:    obj -> form control
  152. //            name -> name of this control
  153. // Output:    true | false
  154. //////////////////////////////////////////////////////////////////// 
  155. function IsEmail(obj, name)
  156. {
  157.     var msg = 'Zadejte e-mailovou adresu do pole ' + name + ' !';    
  158.     var str = obj.value;
  159.  
  160.     if(!g_RegExpSupported)
  161.     {
  162.         if(!(str.indexOf(".") > 2) && (str.indexOf("@") > 0))
  163.         {
  164.             alert(msg);
  165.             obj.focus();
  166.             return false;
  167.         }    
  168.     }
  169.     else
  170.     {    
  171.         var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  172.         var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,5}|[0-9]{1,3})(\\]?)$");
  173.         if(!(!r1.test(str) && r2.test(str)))
  174.         {
  175.             alert(msg);
  176.             obj.focus();
  177.             return false;
  178.         }
  179.     }
  180.     return true;
  181. }
  182.  
  183. ////////////////////////////////////////////////////////////////////
  184. // Function:    IsChecked
  185. // Descript:    
  186. // Input:    obj -> form control
  187. //                msg -> alert message
  188. // Output:    true | false
  189. //////////////////////////////////////////////////////////////////// 
  190. function IsChecked(obj, msg)
  191. {
  192.     var len;
  193.     var check = false;
  194.     
  195.     if(obj)
  196.     {
  197.         len = obj.length;
  198.         //If only one checkbox
  199.         if(len == null)
  200.         {
  201.             len = 0;
  202.             if(obj.checked)
  203.                 check = true;
  204.         }    
  205.         for(var i = 0; i < len; i++)
  206.         {
  207.             if(obj[i].checked)
  208.                 check = true;
  209.         }
  210.         if(check != true)
  211.         {
  212.             if(msg)
  213.                 alert(msg);
  214.         }
  215.     }
  216.     return check;
  217. }
  218.  
  219. ////////////////////////////////////////////////////////////////////
  220. // Function:    LessThan()
  221. // Descript:    
  222. // Input:    obj1 -> first form control
  223. //            obj2 -> second form control
  224. //            name1 -> name of first form control
  225. //            name2 -> name of second form control
  226. // Output:    true | false
  227. //////////////////////////////////////////////////////////////////// 
  228. function LessThan(obj1, obj2, name1, name2)
  229. {
  230.     // (x * 1) for implicit conversion as number (in NN)
  231.     var min = obj1.value * 1;
  232.     var max = obj2.value * 1;
  233.         
  234.     if(min <= max)
  235.         return true;
  236.     else
  237.     {
  238.         alert(name2 + " musφ b²t v∞tÜφ ne₧ " + name1 + " !");
  239.         obj2.focus();
  240.         return false;
  241.     }
  242. }
  243.  
  244. ////////////////////////////////////////////////////////////////////
  245. // Function:    IsEqual()
  246. // Descript:    
  247. // Input:    obj1 -> first form control
  248. //            obj2 -> second form control
  249. //            name1 -> name of first form control
  250. //            name2 -> name of second form control
  251. // Output:    true | false
  252. //////////////////////////////////////////////////////////////////// 
  253. function IsEqual(obj1, obj2, name1, name2)
  254. {
  255.  
  256.     if(obj1.value == obj2.value)
  257.         return true;
  258.     else
  259.     {
  260.         alert(name1 + " musφ b²t shodnΘ s " + name2 + " !");
  261.         obj1.value='';
  262.         obj2.value='';
  263.         obj1.focus();
  264.         return false;
  265.     }
  266. }
  267.  
  268. ////////////////////////////////////////////////////////////////////
  269. // Function:    IsDate
  270. // Descript:    
  271. // Input:    obj -> form control
  272. //                name -> name of this control
  273. //                datastyle -> "EU" | "US"
  274. // Output:    true | false
  275. //////////////////////////////////////////////////////////////////// 
  276. function IsDate(obj, name, datastyle)
  277. {
  278.     if(CheckDate(obj, datastyle) == false)
  279.     {
  280.         if(name)
  281.             alert('┌daj v poli ' + name + 'nenφ platnΘ datum!');
  282.         obj.focus();
  283.         return false;
  284.     }
  285.     else
  286.     {
  287.         return true;
  288.     }
  289. }
  290.  
  291. function CheckDate(objName, strDatestyle)
  292. {
  293.     var strDate;
  294.     var strDateArray;
  295.     var strDay;
  296.     var strMonth;
  297.     var strYear;
  298.     var intday;
  299.     var intMonth;
  300.     var intYear;
  301.     var booFound = false;
  302.     var datefield = objName;
  303.     var strSeparatorArray = new Array("-","/",".");
  304.     var intElementNr;
  305.     var err = 0;
  306.     var strMonthArray = new Array(12);
  307.     strMonthArray[0] = 1;
  308.     strMonthArray[1] = 2;
  309.     strMonthArray[2] = 3;
  310.     strMonthArray[3] = 4;
  311.     strMonthArray[4] = 5;
  312.     strMonthArray[5] = 6;
  313.     strMonthArray[6] = 7;
  314.     strMonthArray[7] = 8;
  315.     strMonthArray[8] = 9;
  316.     strMonthArray[9] = 10;
  317.     strMonthArray[10] = 11;
  318.     strMonthArray[11] = 12;
  319.     strDate = datefield.value;
  320.     
  321.     if(strDatestyle == "")
  322.     {
  323.         strDatestyle = "EU";
  324.     }
  325.     
  326.     if(strDate.length < 1)
  327.     {
  328.         return false;
  329.     }
  330.     for(intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++)
  331.     {
  332.         if(strDate.indexOf(strSeparatorArray[intElementNr]) != -1)
  333.         {
  334.             strDateArray = strDate.split(strSeparatorArray[intElementNr]);
  335.             if(strDateArray.length != 3)
  336.             {
  337.                 err = 1;
  338.                 return false;
  339.             }
  340.             else
  341.             {
  342.                 strDay = strDateArray[0];
  343.                 strMonth = strDateArray[1];
  344.                 strYear = strDateArray[2];
  345.             }
  346.             booFound = true;
  347.         }
  348.     }
  349.     if(booFound == false)
  350.     {
  351.         if(strDate.length > 5)
  352.         {
  353.             strDay = strDate.substr(0, 2);
  354.             strMonth = strDate.substr(2, 2);
  355.             strYear = strDate.substr(4);
  356.        }
  357.     }
  358.     if(strYear.length == 2)
  359.     {
  360.         strYear = '20' + strYear;
  361.     }
  362.  
  363.     // US style
  364.     if(strDatestyle == "US")
  365.     {
  366.         strTemp = strDay;
  367.         strDay = strMonth;
  368.         strMonth = strTemp;
  369.     }
  370.     intday = parseInt(strDay, 10);
  371.     if(isNaN(intday))
  372.     {
  373.         err = 2;
  374.         return false;
  375.     }
  376.     intMonth = parseInt(strMonth, 10);
  377.     if(isNaN(intMonth))
  378.     {
  379.         for(i = 0; i < 12; i++)
  380.         {
  381.             //if(strMonth.toUpperCase() == strMonthArray[i].toUpperCase())
  382.             if(strMonth.toUpperCase() == strMonthArray[i])
  383.             {
  384.                 intMonth = i + 1;
  385.                 strMonth = strMonthArray[i];
  386.                 i = 12;
  387.            }
  388.         }
  389.         if(isNaN(intMonth))
  390.         {
  391.             err = 3;
  392.             return false;
  393.        }
  394.     }
  395.     intYear = parseInt(strYear, 10);
  396.     if(isNaN(intYear))
  397.     {
  398.         err = 4;
  399.         return false;
  400.     }
  401.     if(intYear < 1900 || intYear > 2078)
  402.     {
  403.         err = 4;
  404.         return false;
  405.     }
  406.     if(intMonth > 12 || intMonth < 1)
  407.     {
  408.         err = 5;
  409.         return false;
  410.     }
  411.     if((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || 
  412.         intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1))
  413.     {
  414.         err = 6;
  415.         return false;
  416.     }
  417.     if((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && 
  418.         (intday > 30 || intday < 1))
  419.     {
  420.         err = 7;
  421.         return false;
  422.     }
  423.     if(intMonth == 2)
  424.     {
  425.         if(intday < 1)
  426.         {
  427.             err = 8;
  428.             return false;
  429.         }
  430.         if(LeapYear(intYear) == true)
  431.         {
  432.             if(intday > 29)
  433.             {
  434.                 err = 9;
  435.                 return false;
  436.             }
  437.         }
  438.         else
  439.         {
  440.             if(intday > 28)
  441.             {
  442.                 err = 10;
  443.                 return false;
  444.             }
  445.         }
  446.     }
  447.     if(strDatestyle == "US")
  448.     {
  449.         datefield.value = strMonthArray[intMonth - 1] + "/" + intday + "/" + strYear;
  450.     }
  451.     else
  452.     {
  453.         datefield.value = intday + "." + strMonthArray[intMonth - 1] + "." + strYear;
  454.     }
  455.     return true;
  456. }
  457.  
  458. function LeapYear(intYear)
  459. {
  460.     if(intYear % 100 == 0)
  461.     {
  462.         if(intYear % 400 == 0) { return true; }
  463.     }
  464.     else
  465.     {
  466.         if((intYear % 4) == 0) { return true; }
  467.     }
  468.     return false;
  469. }
  470.  
  471. //////////////////////////////////////////////////////////////////////////////////
  472. function HasLongWord(StringToTest)
  473. {
  474.     var arrText,testtext
  475.     
  476.     testtext=StringToTest.replace("."," ");
  477.     testtext=testtext.replace("\n"," ");
  478.     testtext=testtext.replace(","," ");
  479.     testtext=testtext.replace("!"," ");
  480.     testtext=testtext.replace("?"," ");
  481.     testtext=testtext.replace(":"," ");
  482.  
  483.     arrText=testtext.split(" ");
  484.     for (var i = 0; i < arrText.length; i++)
  485.     {
  486.         if (arrText[i].length > 40) return true;
  487.     }
  488.     return false;
  489. }
  490.  
  491. ////////////////////////////////////////////////////////////////////
  492. // Function:    CompareDate
  493. // Descript:    
  494. // Input:    strDate1 -> dateValue1    format (dd.mm.yyyy)
  495. //            strDate2 -> dateValue1    format (dd.mm.yyyy)
  496. //            [intDiffDay] -> integer        differce(Days) value
  497. // Output:    -1 | 0 | 1
  498. //////////////////////////////////////////////////////////////////// 
  499.  
  500. function CompareDate(strDate1, strDate2, intDiffDay) // format (dd.mm.yyyy)
  501. {
  502.     //var today = new Date(); // dnes
  503.     var date1 = new Date(); // porovnavane datum 1
  504.     var date2 = new Date(); // porovnavane datum 2
  505.     var subtract = 0;
  506.     var diff = 0;
  507.         
  508.     // parsovani vstupnich hodnot (dd.mm.yyyy)
  509.     var strDateArray1 = strDate1.split(".");
  510.     var strDateArray2 = strDate2.split(".");
  511.         
  512.     date1.setYear(strDateArray1[2]);
  513.     date1.setMonth((strDateArray1[1] - 1));
  514.     date1.setDate(strDateArray1[0]);
  515.         
  516.     date2.setYear(strDateArray2[2]);
  517.     date2.setMonth((strDateArray2[1] - 1));
  518.     date2.setDate(strDateArray2[0]);
  519.  
  520.     subtract = date1.getTime() - date2.getTime();
  521.     
  522.     if(intDiffDay)
  523.     {
  524.         diff = Math.abs(subtract) / (1000 * 60 * 60 * 24);
  525.         if(diff > intDiffDay) subtract = 1;
  526.         if(diff < intDiffDay) subtract = -1;
  527.         if(diff == intDiffDay) subtract = 0;
  528.     }
  529.     else
  530.     {
  531.         if(subtract > 0) subtract = 1;
  532.         if(subtract < 0) subtract = -1;
  533.     }
  534.     //alert(subtract);
  535.         
  536.     return subtract;
  537. }
  538. ////////////////////////////////////////////////////////////////////
  539. // Function:    IsPhone
  540. // Descript:    
  541. // Input:    obj -> form control
  542. //        name -> name of this control
  543. // Output:    true | false
  544. //////////////////////////////////////////////////////////////////// 
  545. function IsPhone(obj, name, blnEmpty)
  546. {
  547.     var msg = 'Zadejte vaÜ '+ name +' ve tvaru: \'+042-0656/123 456\'';    
  548.     var str = obj.value;
  549.  
  550.     if (str.length == 0)
  551.         if (!blnEmpty) {
  552.             alert(msg);
  553.             obj.focus();
  554.             return false;
  555.         }
  556.         else
  557.             return true;
  558.  
  559.     if(!g_RegExpSupported)
  560.     {
  561.         var permitChar= "0123456789 /+"
  562.         for (var i= 0; i < str.length; i++)
  563.         {
  564.             if (permitChar.indexOf(str.substr(i,1)) < 0)
  565.             {
  566.                 alert(msg);
  567.                 if (blnEmpty) obj.value= '';
  568.                 obj.focus();
  569.                 return false;
  570.             }
  571.         }
  572.     }
  573.     else
  574.     {
  575.         var r = new RegExp("^[\+]?[0-9/ -]{5,}$");
  576.         if(!r.test(str))
  577.         {
  578.             alert(msg);
  579.             if (blnEmpty) obj.value= '';
  580.             obj.focus();
  581.             return false;
  582.         }
  583.     }
  584.     return true;
  585. }
  586.  
  587. ////////////////////////////////////////////////////////////////////
  588. // Function:    IsRC
  589. // Descript:    
  590. // Input:    obj -> form control
  591. //                name -> name of this control
  592. //                blnEmpty -> nepovinnΘ vypln∞nφ
  593. // Output:    true | false
  594. //////////////////////////////////////////////////////////////////// 
  595. function IsRC(obj, name, blnEmpty)
  596. {
  597.     var strRC= obj.value;
  598.     var msg = 'Zadejte vaÜe rodnΘ Φφslo ve tvaru: \'5455510741\'';    
  599.     var permitChar= "0123456789";
  600.  
  601.     if (strRC.length == 0)
  602.         if (!blnEmpty) {
  603.             if ('' != name) {
  604.                 alert(msg);
  605.                 obj.focus();
  606.             }
  607.             return false;
  608.         }
  609.         else
  610.             return true;
  611.     
  612.     if(!g_RegExpSupported) {
  613.         if ((trimAll(strRC).length < 9) || (trimAll(strRC).length > 10)) {
  614.             if ('' != name) {
  615.                 alert(msg);
  616.                 if (blnEmpty) obj.value= '';
  617.                 obj.focus();
  618.             }
  619.             return false;
  620.         }
  621.         for (var i= 0; i < strRC.length; i++)
  622.             if (permitChar.indexOf(strRC.substr(i,1)) < 0) {
  623.                 if ('' != name) {
  624.                     alert(msg);
  625.                     if (blnEmpty) obj.value= '';
  626.                     obj.focus();
  627.                 }
  628.                 return false;
  629.             }
  630.     }
  631.     else {
  632.         var r = new RegExp("^[0-9]{9,10}$");
  633.         if(!r.test(strRC)) {
  634.             if ('' != name) {
  635.                 alert(msg);
  636.                 if (blnEmpty) obj.value= '';
  637.                 obj.focus();
  638.             }
  639.             return false;
  640.         }
  641.     }
  642.     return true;
  643. }
  644.  
  645. ////////////////////////////////////////////////////////////////////
  646. // Function:    IsICO
  647. // Descript:    
  648. // Input:    obj -> form control
  649. //                name -> name of this control
  650. //                blnEmpty -> nepovinnΘ vypln∞nφ
  651. // Output:    true | false
  652. //////////////////////////////////////////////////////////////////// 
  653. function IsICO(obj, name, blnEmpty)
  654. {
  655.     var strICO= obj.value;
  656.     var msg = 'Zadejte vaÜe I╚O ve tvaru: \'12345678\'';    
  657.     var permitChar= "0123456789";
  658.  
  659.     if (strICO.length == 0)
  660.         if (!blnEmpty) {
  661.             if ('' != name) {
  662.                 alert(msg);
  663.                 obj.focus();
  664.             }
  665.             return false;
  666.         }
  667.         else
  668.             return true;
  669.     
  670.     if (!g_RegExpSupported) {
  671.         if (isNaN(strICO) && (trimAll(strICO).length != 8)) {
  672.             if ('' != name) {
  673.                 alert(msg);
  674.                 if (blnEmpty) obj.value= '';
  675.                 obj.focus();
  676.             }
  677.             return false;
  678.         }
  679.     }
  680.     else {
  681.         var r = new RegExp("^[0-9]{8}$");
  682.         if(!r.test(strICO)) {
  683.             if ('' != name) {
  684.                 alert(msg);
  685.                 if (blnEmpty) obj.value= '';
  686.                 obj.focus();
  687.             }
  688.             return false;
  689.         }
  690.     }
  691.     return true;
  692. }
  693.  
  694. ////////////////////////////////////////////////////////////////////
  695. // Function:    IsDIC
  696. // Descript:    
  697. // Input:    obj -> form control
  698. //                name -> name of this control
  699. //                blnEmpty -> nepovinnΘ vypln∞nφ
  700. // Output:    true | false
  701. //////////////////////////////////////////////////////////////////// 
  702. function IsDIC(obj, name, blnEmpty)
  703. {
  704.     var strDIC= obj.value;
  705.     var msg = 'Zadejte vaÜe DIC ve tvaru: \'123-1234567890\'';
  706.     var permitChar= "0123456789-";
  707.  
  708.     if (strDIC.length == 0)
  709.         if (!blnEmpty) {
  710.             alert(msg);
  711.             obj.focus();
  712.             return false;
  713.         }
  714.         else
  715.             return true;
  716.     
  717.     if (!g_RegExpSupported) {
  718.         if ((trimAll(strDIC).length < 12) || (trimAll(strDIC).length > 14)) {
  719.             alert(msg);
  720.             if (blnEmpty) obj.value= '';
  721.             obj.focus();
  722.             return false;
  723.         }
  724.     }
  725.     else {
  726.         var r = new RegExp("^[0-9]{3}-[0-9]{8,10}$");
  727.         var r1 = new RegExp("^[0-9]{8,10}-[0-9]{3}$");
  728.         if((!r.test(strDIC)) && (!r1.test(strDIC))) {
  729.             alert(msg);
  730.             if (blnEmpty) obj.value= '';
  731.             obj.focus();
  732.             return false;
  733.         }
  734.     }
  735.     return true;
  736. }
  737.  
  738. //////////////////////////////////////////////////////////////////// 
  739. function trimAll(str)
  740. {
  741.     var retStr= '';
  742.     if (str.length > 0)
  743.         for (var i= 0; i < str.length; i++)
  744.             if (str.substr(i,1) != ' ')
  745.                 retStr += str.substr(i,1);
  746.     return retStr;
  747. }
  748.