home *** CD-ROM | disk | FTP | other *** search
/ Online Praxis 1998 March / Image.iso / CD-ROM / NETSCAPE / CCK / INSTBLDR.Z / asw.jar / billing.js < prev    next >
Encoding:
Text File  |  1998-02-27  |  9.6 KB  |  312 lines

  1. <!--  to hide script contents from old browsers
  2.  
  3.  
  4.  
  5. function go(msg)
  6. {
  7.     if (parent.parent.globals.document.vars.editMode.value == "yes")
  8.         return true;
  9.     else
  10.         return(checkData());
  11. }
  12.  
  13.  
  14.  
  15. function generateCards()
  16. {
  17.     var theFile = parent.parent.globals.getAcctSetupFilename(self);
  18.     var theCards = parent.parent.globals.GetNameValuePair(theFile,"New Acct Mode","CardTypes");
  19.     if (theCards == null || theCards == "")    {
  20.         theCards = "AX,DC,MC,VI";
  21.         }
  22.  
  23.     if (theCards.indexOf("AX")>=0)    {
  24.         document.writeln("<OPTION VALUE='American Express'>American Express");
  25.         }
  26.     if (theCards.indexOf("DC")>=0)    {
  27.         document.writeln("<OPTION VALUE='Discover Card'>Discover Card");
  28.         }
  29.     if (theCards.indexOf("MC")>=0)    {
  30.         document.writeln("<OPTION VALUE='MasterCard'>MasterCard");
  31.         }
  32.     if (theCards.indexOf("VI")>=0)    {
  33.         document.writeln("<OPTION VALUE='VISA'>VISA");
  34.         }
  35. }
  36.  
  37.  
  38.  
  39. function loadData()
  40. {
  41.     // make sure all data objects/element exists and valid; otherwise, reload.  SUCKS!
  42.     if (((document.forms[0].cardname == "undefined") || (document.forms[0].cardname == "[object InputArray]")) ||
  43.         ((document.forms[0].cards == "undefined") || (document.forms[0].cards == "[object InputArray]")) ||
  44.         ((document.forms[0].cardnumber == "undefined") || (document.forms[0].cardnumber == "[object InputArray]")) ||
  45.         ((document.forms[0].month == "undefined") || (document.forms[0].month == "[object InputArray]")) ||
  46.         ((document.forms[0].year == "undefined") || (document.forms[0].year == "[object InputArray]")))
  47.     {
  48.         parent.controls.reloadDocument();
  49.         return;
  50.     }
  51.  
  52.     document.forms[0].cardname.value = parent.parent.globals.document.vars.cardname.value;
  53.     if (document.forms[0].cardname.value == "")    {
  54.         document.forms[0].cardname.value = parent.parent.globals.document.vars.first.value + " " + parent.parent.globals.document.vars.last.value;
  55.         }
  56.     for (var i = 0; i<document.forms[0].cards.length; i++)    {
  57.         if (parent.parent.globals.document.vars.cardtype.value == document.forms[0].cards[i].value)    {
  58.             document.forms[0].cards.selectedIndex = i;
  59.             break;
  60.             }
  61.         }
  62.     document.forms[0].cardnumber.value = parent.parent.globals.document.vars.cardnumber.value;
  63.     
  64.     var month = parent.parent.globals.document.vars.month.value;
  65.     if (month == "")    month = 0;
  66.     document.forms[0].month.selectedIndex = month;
  67.     
  68.     var found = false;
  69.     var year = parent.parent.globals.document.vars.year.value;
  70.     // if (year == "")    year = document.forms[0].year[0].value;
  71.     for (var i = 0; i<document.forms[0].year.length; i++)    {
  72.         if (year == document.forms[0].year[i].value)    {
  73.             document.forms[0].year.selectedIndex = i;
  74.             found = true;
  75.             break;
  76.             }
  77.         }
  78.     if (found == false)    {
  79.         document.forms[0].year.selectedIndex = 0;
  80.         }
  81.     parent.parent.globals.setFocus(document.forms[0].cardname);
  82.     if (parent.controls.generateControls)    parent.controls.generateControls();
  83. }
  84.  
  85.  
  86.  
  87. function saveData()
  88. {
  89.     // make sure all form element are valid objects, otherwise just skip & return!
  90.     if (((document.forms[0].cardname == "undefined") || (document.forms[0].cardname == "[object InputArray]")) ||
  91.         ((document.forms[0].cards == "undefined") || (document.forms[0].cards == "[object InputArray]")) ||
  92.         ((document.forms[0].cardnumber == "undefined") || (document.forms[0].cardnumber == "[object InputArray]")) ||
  93.         ((document.forms[0].month == "undefined") || (document.forms[0].month == "[object InputArray]")) ||
  94.         ((document.forms[0].year == "undefined") || (document.forms[0].year == "[object InputArray]")))
  95.     {
  96.         parent.controls.reloadDocument();
  97.         return;
  98.     }
  99.  
  100.     parent.parent.globals.document.vars.cardname.value = document.forms[0].cardname.value;
  101.     if (document.forms[0].cards.length>0 && document.forms[0].cards.selectedIndex >=0)    {
  102.         parent.parent.globals.document.vars.cardtype.value = document.forms[0].cards[document.forms[0].cards.selectedIndex].value;
  103.         }
  104.     else    {
  105.         parent.parent.globals.document.vars.cardtype.value="";
  106.         }
  107.     parent.parent.globals.document.vars.cardnumber.value = document.forms[0].cardnumber.value;
  108.     parent.parent.globals.document.vars.month.value = document.forms[0].month.selectedIndex;
  109.     parent.parent.globals.document.vars.year.value = document.forms[0].year[document.forms[0].year.selectedIndex].value;
  110. }
  111.  
  112.  
  113.  
  114. function checkData()
  115. {
  116.     if (document.forms[0].cardname.value == "")    {
  117.         alert("You must enter a cardholder name.");
  118.         document.forms[0].cardname.focus();
  119.         document.forms[0].cardname.select();
  120.         return false;
  121.         }
  122.     if (document.forms[0].cardnumber.value == "")    {
  123.         alert("You must enter a credit card number.");
  124.         document.forms[0].cardnumber.focus();
  125.         document.forms[0].cardnumber.select();
  126.         return false;
  127.         }
  128.     
  129.     // check cardnumber validity here
  130.     
  131.     var cardNumber=document.forms[0].cardnumber.value;
  132.     for (var i=0; i<cardNumber.length; i++)    {
  133.         if ("1234567890 -".indexOf(cardNumber.substring(i,i+1)) == -1)    {
  134.             alert("'" + cardNumber + "' is not a valid card number.");
  135.             document.forms[0].cardnumber.focus();
  136.             document.forms[0].cardnumber.select();
  137.             return(false);
  138.             }
  139.         }
  140.     
  141.     // do cardnumber check-digit validity here
  142.     
  143.     var length=cardNumber.length;
  144.     var checkDigit=cardNumber.substring(length-1,length);
  145.     var    tempCardNumber="";
  146.     for (var i=0; i<cardNumber.length; i++)    {
  147.         if ("1234567890".indexOf(cardNumber.substring(i,i+1))>=0)    {
  148.             tempCardNumber+=cardNumber.substring(i,i+1);
  149.             }
  150.         }
  151.     var length=tempCardNumber.length;
  152.     var checkSum=0;
  153.     for (var i=0; i<length-1; i++)    {
  154.         var digit=tempCardNumber.substring(length-i-2,length-i-1);
  155.         var temp=digit * (1+((i+1)%2));
  156.         if (temp<10)    checkSum=checkSum+temp;
  157.         else            checkSum=checkSum+(temp-9);
  158.         }
  159.     checkSum=(10-(checkSum%10))%10;
  160.     if (checkSum != checkDigit)    {
  161.         alert("'" + cardNumber + "' is not a valid card number.");
  162.         document.forms[0].cardnumber.focus();
  163.         document.forms[0].cardnumber.select();
  164.         return(false);
  165.         }
  166.     
  167.     // do cardtype check
  168.     
  169.     var cardType="";
  170.     
  171.     if (cardNumber.substring(0,1)=="3" && cardNumber.substring(1,2)=="7")    {
  172.         cardType="American Express";
  173.         cardCode="AX";
  174.         }
  175. /*
  176.     else if (cardNumber.substring(0,1)=="5" && cardNumber.substring(1,2)=="6")    {
  177.         cardType="BankCard";
  178.         cardCode="BC";
  179.         }
  180. */
  181.  
  182. /*
  183.     else if (cardNumber.substring(0,1)=="3")    {
  184.         cardType="Diner's Club";
  185.         cardCode="DI";
  186.         }
  187. */
  188.     else if (cardNumber.substring(0,1)=="5")    {
  189.         cardType="MasterCard";
  190.         cardCode="MC";
  191.         }
  192.     else if (cardNumber.substring(0,1)=="4")    {
  193.         cardType="VISA";
  194.         cardCode="VI";
  195.         }
  196.     else if (cardNumber.substring(0,1)=="6")    {
  197.         cardType="Discover Card";
  198.         cardCode="DC";
  199.         }
  200. // else cardType="unknown";
  201.     
  202.     parent.parent.globals.document.vars.cardcode.value = cardCode;
  203.  
  204.     if (document.forms[0].cards.length>0)    {
  205.         if (cardType != document.forms[0].cards[document.forms[0].cards.selectedIndex].value)    {
  206.             var found=false;
  207.             var currentSelection = document.forms[0].cards.selectedIndex;
  208.             if (cardType!="")    {
  209.                 if (!confirm(cardNumber + " is a " + cardType + ". Correct?"))    {
  210.                     document.forms[0].cardnumber.focus();
  211.                     document.forms[0].cardnumber.select();
  212.                     return(false);
  213.                     }
  214.                 for (var i = 0; i < document.forms[0].cards.length; i++)    {
  215.                     if (document.forms[0].cards[i].value==cardType)    {
  216.                         document.forms[0].cards[i].selected=true;
  217.                         parent.parent.globals.document.vars.cardtype.value=cardType;
  218.                         found=true;
  219.                         }
  220.                     else    {
  221.                         document.forms[0].cards[i].selected=false;
  222.                         }
  223.                     }
  224.                 if (found == false && currentSelection>=0)    {
  225.                     document.forms[0].cards[currentSelection].selected=true;
  226.                     }
  227.                 }
  228.     
  229.             if (found==false)    {
  230.     
  231.                 // is the card accepted?
  232.                 
  233.                 var theFile = parent.parent.globals.getAcctSetupFilename(self);
  234.                 var theCards = parent.parent.globals.GetNameValuePair(theFile,"New Acct Mode","CardTypes");
  235.                 if (theCards == null || theCards == "")    {
  236.                     theCards = "AX,DC,MC,VI";
  237.                     }
  238.     
  239.                 if (theCards.indexOf(cardCode)<0)    {
  240.                     alert(cardType + " is not accepted for payment.");
  241.                     }
  242.                 else    {
  243.                     alert("'" + cardNumber + "' is not a valid card number.");
  244.                     }
  245.                 document.forms[0].cardnumber.focus();
  246.                 document.forms[0].cardnumber.select();
  247.                 return(false);
  248.                 }
  249.             }
  250.  
  251.         // check credit card lengths
  252.  
  253.         var length=tempCardNumber.length;
  254.         var validLength = false;
  255.         if (cardCode != "")    {
  256.             if (cardCode == "AX")    {
  257.                 if (length == 16)    validLength=true;
  258.                 }
  259.             else if (cardCode == "MC")    {
  260.                 if (length == 16)    validLength=true;
  261.                 }
  262.             else if (cardCode == "VI")    {
  263.                 if (length == 13 || length == 16)    validLength=true;
  264.                 }
  265.             else if (cardCode == "DC")    {
  266.                 if (length == 16)    validLength=true;
  267.                 }
  268.             }
  269.         if (validLength == false)    {
  270.             alert("'" + cardNumber + "' is not a valid card number. (Invalid length)");
  271.             document.forms[0].cardnumber.focus();
  272.             document.forms[0].cardnumber.select();
  273.             return(false);
  274.             }
  275.         }
  276.  
  277.     // check month and year
  278.  
  279.     var today = new Date();
  280.     var theMonth = today.getMonth();
  281.  
  282.     // Fix #97353
  283.     // the year is special, the Date.getYear method returns:
  284.     //    00-99 for years in the 1900s
  285.     //    20xx  for years in the 2000s
  286.     var theYear = today.getYear();
  287.  
  288.     // Only adjust if the date returned is less than 3 digits
  289.     if (theYear < 100)
  290.         theYear += 1900;
  291.  
  292.     var expiredFlag = false;
  293.     if (theYear > document.forms[0].year[document.forms[0].year.selectedIndex].value)    {
  294.         expiredFlag = true;
  295.         }
  296.     else if (theYear == document.forms[0].year[document.forms[0].year.selectedIndex].value)    {
  297.         if (theMonth > document.forms[0].month.selectedIndex)    {
  298.             expiredFlag = true;
  299.             }
  300.         }
  301.     if (expiredFlag)    {
  302.         alert("'" + cardNumber + "' appears to have expired.");
  303.         return(false);
  304.         }
  305.  
  306.     return true;
  307. }
  308.  
  309.  
  310.  
  311. // end hiding contents from old browsers  -->
  312.