// JavaScript Document
//	   <SCRIPT LANGUAGE="JavaScript1.1">
	   <!--
//////////////////////////////////////////
// THIS VALIDATION ROUTINE IS USED IN THE
// REGULAR MAIL FORM OF PAST JOURNAL SALES.
//
// IF A CREDIT CARD PURCHASE, THIS IS NOT USED
// SINCE A USER GOES THROUGH PAYPAL
//
// NEED TO COMPLETE
//  1) VALIDATE LINT TOTAL IS A VALID NUMBER
//  2) VALIDATE THE TOTAL AMOUNT IS THE CORRECT NET SUM
//  3) VALIDATE THE SHIPPING CHARGE IS CORRECT FOR NET TOTAL
//  4) VALIDATE THE GRAND TOTAL IS SUM OF NET OF LINE TOTALS AND SHIPPING CHARGE
//
//
//////////////////////////////////////////
    //////////////////////////////////////////
    //  VERIFICATION OF ZIP CODE
    //////////////////////////////////////////
  function validateZIP(field) {
  var valid = "0123456789-";
  var hyphencount = 0;

  if (field.length!=5 && field.length!=10) {
    alert("Please enter your 5 digit or 5 digit+4 zip code.");
    return false;
   }
  for (var i=0; i < field.length; i++) {
     temp = "" + field.substring(i, i+1);
     if (temp == "-") hyphencount++;
     if (valid.indexOf(temp) == "-1") {
       alert("Invalid characters in your zip code.  Please try again.");
       return false;
       }
     if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
       alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
       return false;
      }
   }
  return true;
  }
    //////////////////////////////////////////
    // END OF VERIFICATION OF ZIP CODE
    //////////////////////////////////////////

    //////////////////////////////////////////
    //  VERIFICATION OF SHIPPING CHARGE
    //////////////////////////////////////////
  function validate_shipping(field) {
	   var shipping_1 =  "$3.85";
	   var shipping_2 =  "$5.00";
	   var shipping_3 = "$10.00";
	   var shipping_4 = "$20.00";
	   var shipping_5 = "$25.00";	  
  var valid = "0123456789$.";
  var periodcount = 0;

  if (field.length!=5 && field.length!=6) {
    alert("Please enter the shipping charge formated as '$xx.xx' - thanks.");
    return false;
   }
  for (var i=0; i < field.length; i++) {
     temp = "" + field.substring(i, i+1);
     if (temp == ".") periodcount++;
     if (valid.indexOf(temp) == "-1") {
       alert("Invalid characters in your shipping charge.  Please try again.");
       return false;
       }
  if ((periodcount > 1) || 
     (field.charAt(0)!="$") ||
	((field.length==6) && ""+field.charAt(3)!=".") ||
	 ((field.length==5) && ""+field.charAt(2)!="."))
	 {
       alert("The dollar and decimal point characters should be used, like '$xx.xx'.   Please try again.");
       return false;
      }
   }
  return true;
  }
    //////////////////////////////////////////
    // END OF VERIFICATION OF SHIPPING CHARGE
    //////////////////////////////////////////

    //////////////////////////////////////////
    //  VERIFICATION OF GRAND TOTAL
    //////////////////////////////////////////
  function validate_grand_total(field) {
 
  var valid = "0123456789$.";
  var periodcount = 0;

  if (field.length!=5 && field.length!=6 && field.length!=7) {
    alert("Please enter the grand total formated as '$xx.xx' - thanks.");
    return false;
   }
  for (var i=0; i < field.length; i++) {
     temp = "" + field.substring(i, i+1);
     if (temp == ".") periodcount++;
     if (valid.indexOf(temp) == "-1") {
       alert("Invalid characters in your grand total.  Please try again.");
       return false;
       }
  if ((periodcount > 1) || 
     (field.charAt(0)!="$") ||
	  ((field.length==7) && ""+field.charAt(4)!=".") ||
	((field.length==6) && ""+field.charAt(3)!=".") ||
	 ((field.length==5) && ""+field.charAt(2)!="."))
	 {
       alert("The dollar and decimal point characters should be used, like '$xx.xx'.   Please try again.");
       return false;
      }
   }
  return true;
  }
    //////////////////////////////////////////
    // END OF VERIFICATION OF GRAND TOTAL
    //////////////////////////////////////////

    //////////////////////////////////////////
    //  VERIFICATION OF SUBTOTAL
    //////////////////////////////////////////
  function validate_sub_total(field) {
 
  var valid = "0123456789$.";
  var periodcount = 0;

  if (field.length!=5 && field.length!=6 && field.length!=7) {
    alert("Please enter the subtotal formated as '$xx.xx' - thanks.");
    return false;
   }
  for (var i=0; i < field.length; i++) {
     temp = "" + field.substring(i, i+1);
     if (temp == ".") periodcount++;
     if (valid.indexOf(temp) == "-1") {
       alert("Invalid characters in your subtotal.  Please try again.");
       return false;
       }
  if ((periodcount > 1) || 
     (field.charAt(0)!="$") ||
    ((field.length==7) && ""+field.charAt(4)!=".") ||
	((field.length==6) && ""+field.charAt(3)!=".") ||
	 ((field.length==5) && ""+field.charAt(2)!="."))
	 {
       alert("The dollar and decimal point characters should be used, like '$xx.xx'.   Please try again.");
       return false;
      }
   }
  return true;
  }
    //////////////////////////////////////////
    // END OF VERIFICATION OF SUBTOTAL
    //////////////////////////////////////////


    //////////////////////////////////////////
    //  VERIFICATION OF LINE VALUE
    //////////////////////////////////////////
  function validate_line_value(field) {
//  $2.45
//  $23.56
//  $234.67
  var valid = "0123456789$.";
  var periodcount = 0;
  var dollarcount = 0;

  if (field.length!=5 && field.length!=6 && field.length!=7) {
    alert("Please enter the line total formated as '$xx.xx' - thanks.");
    return false;
   }
  for (var i=0; i < field.length; i++) {
     temp = "" + field.substring(i, i+1);
     if (temp == ".") periodcount++;
     if (temp == "$") dollarcount++;
     if (valid.indexOf(temp) == "-1") {
       alert("Invalid characters in your line total.  Please try again.");
       return false;
       }
   if (periodcount > 1)
       {
       alert("Too many decimal point characters, format '$xx.xx'.   Please try again.");
       return false;
       }
   if ((field.charAt(0)!="$") ||
	 ((field.length==7) && ""+field.charAt(4)!=".") ||
       ((field.length==6) && ""+field.charAt(3)!=".") ||
	 ((field.length==5) && ""+field.charAt(2)!="."))
	 {
       alert("The dollar and decimal point characters should be used, like '$xx.xx'.   Please try again.");
       return false;
      }
   }
  return true;
  }
    //////////////////////////////////////////
    // END OF VERIFICATION OF LINE VALUE
    //////////////////////////////////////////

    //////////////////////////////////////////
    //  VERIFICATION OF ISSUE
    //////////////////////////////////////////
  function validate_issue_line(field) {
//  0,2,4,6
  var valid = "0123456789,";
  var periodcount = 0;
  var numcount = 0;
 
  if (field.length!=1 &&field.length!=3 &&field.length!=5 && field.length!=7) {
    alert("Please enter the issue line as 'x', 'x,x', 'x,x,x' or 'x,x,x,x' - thanks.");
    return false;
   }
  for (var i=0; i < field.length; i++) {
     temp = "" + field.substring(i, i+1);
     if (temp == ",") periodcount++;
	 if (temp != ",") numcount++;
     if (valid.indexOf(temp) == "-1") {
       alert("Invalid characters in issue line.  Please try again.");
       return false;
       }


    if (field.length>7)  
   {
	 alert("Please place only 4 issues per line.");
    return false;
   }
       
   if (
	 ((field.length==3) && ""+field.charAt(1)!=",") ||
       ((field.length==5) && ""+field.charAt(3)!=",") ||
	 ((field.length==7) && ""+field.charAt(5)!=","))
	 {
       alert("The comma should be used, like 'x', 'x,x', 'x,x,x' or 'x,x,x,x'   Please try again.");
       return false;
      }
   }  // for loop exit

   	 if (periodcount > numcount-1)
       {
       alert("Too many comma characters.   Please try again.");
       return false;
       }
  return true;
  }
    //////////////////////////////////////////
    // END OF VERIFICATION OF ISSUE
    //////////////////////////////////////////	
    //////////////////////////////////////////    //////////////////////////////////////////
    //////////////////////////////////////////    //////////////////////////////////////////
    //                       START OF VALIDATION OF PAYMENT
    //////////////////////////////////////////    //////////////////////////////////////////
    //////////////////////////////////////////    //////////////////////////////////////////
     function verify_data_main_logic(f) 
    {
     var msg;
    return verify_personal_data(f);
     }
    //////////////////////////////////////////    //////////////////////////////////////////
    //////////////////////////////////////////    //////////////////////////////////////////
    //                       END OF VALIDATION OF PAYMENT
    //////////////////////////////////////////    //////////////////////////////////////////
    //////////////////////////////////////////    //////////////////////////////////////////

    //////////////////////////////////////////	 
    // START OF VERIFICATION PERSONAL DATA ENTERED
    //////////////////////////////////////////
     function verify_personal_data(f) 
    {
     var msg;

     if (f.firstname.value=="")
         {
          msg = "First Name must be entered!\n";
          f.firstname.focus()
          alert(msg);
          return false;
          }
 	 if (f.lastname.value=="")
         {
          msg = "Last Name must be entered!\n";
		  f.lastname.focus()
          alert(msg);
          return false;
          }
      if (f.address.value=="")
         {
          msg = "Address must be entered!\n";
		   f.address.focus()
          alert(msg);
          return false;
          }
       if (f.city.value=="")
         {
          msg = "City must be entered!\n";
		  f.city.focus()
          alert(msg);
          return false;
          }
       if (f.state.selectedIndex==0)
         {
          msg = "State must be entered! \n";
		  f.state.focus()
          alert(msg);
          return false;
          }
       if (f.zip.value=="")
         {
          msg = "Zip code must be entered!\n";
		  f.zip.focus()
          alert(msg);
          return false;
          }
 	   if (!validateZIP(f.zip.value))
 	   {
           f.zip.focus()
           return false;
        }
	  if(f.phone_area_code.value=="") 
	       {
		    f.phone_area_code.focus()
           alert("Please enter your phone area code.\n");
           return false;
           }
	   if (f.phone_prefix.value=="")
	       {
		    f.phone_prefix.focus()
           alert("Please enter your phone prefix!\n");
           return false;
           }
		if(f.phone_suffix.value=="")
	       {
		    f.phone_suffix.focus()
           alert("Phone number is not complete!\n");
           return false;
           }
      if (f.email.value!="")
          {
	 	 // EMAIL VALIDATION
           var emailFilter=/^.+@.+\..{2,3}$/;
           if (!(emailFilter.test(f.email.value))) 
	        { 
                alert("Please enter a valid email address.\n");
                return false;
            }
           var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
           if (f.email.value.match(illegalChars)) {
              alert("The email address contains illegal characters.\n");
             return false;
             }
          }
 	  
      return verify_quntity_prices(f);
      
     }
    //////////////////////////////////////////
    // END OF VERIFICATION PERSONAL DATA ENTERED
    //////////////////////////////////////////
	
	  //////////////////////////////////////////
      // TEST OF PURCHASE LINE ITEMS
      //////////////////////////////////////////
	    function verify_quntity_prices(f) {
       var msg;
       var empty_fields = "";
       var errors = "";


       // LINE ITEM NUMBER 1
	 if (((f.year_volume_1.selectedIndex!=0)|| (f.issues1.value!="") || (f.total1.value!=""))&&
		 ((f.year_volume_1.selectedIndex==0) || (f.issues1.value=="") ||  (f.total1.value=="")))
	       {
          alert("Purchase selection line 1 is not complete!\n");
           return false;
           }
	   if (f.total1.value!="")
		   {
		  if (!validate_issue_line(f.issues1.value))
 	         {
             f.issues1.focus()
             return false;
             }		
		  if (!validate_line_value(f.total1.value))
 	         {
             f.total1.focus()
             return false;
             }		
		   }

       // LINE ITEM NUMBER 2		   
	    if(((f.year_volume_2.selectedIndex!=0) || (f.issues2.value!="") ||(f.total2.value!=""))&&
		   ((f.year_volume_2.selectedIndex==0) || (f.issues2.value=="") ||  (f.total2.value=="")))
	       {
           alert("Purchase selection line 2 is not complete!\n");
           return false;
           }
	   if (f.total2.value!="")
		   {
		  if (!validate_issue_line(f.issues2.value))
 	         {
             f.issues2.focus()
             return false;
             }		
		  if (!validate_line_value(f.total2.value))
 	         {
             f.total2.focus()
             return false;
             }		
		   }

       // LINE ITEM NUMBER 3
         if(((f.year_volume_3.selectedIndex!=0) || (f.issues3.value!="") || (f.total3.value!=""))&&
		   ((f.year_volume_3.selectedIndex==0) || (f.issues3.value=="") || (f.total3.value=="")))
	       {
           alert("Purchase selection line 3 is not complete!\n");
           return false;
           }
	   if (f.total3.value!="")
		   {
		  if (!validate_issue_line(f.issues3.value))
 	         {
             f.issues3.focus()
             return false;
             }		
		  if (!validate_line_value(f.total3.value))
 	         {
             f.total3.focus()
             return false;
             }		
		   }

       // LINE ITEM NUMBER 4		   
       if(((f.year_volume_4.selectedIndex!=0) || (f.issues4.value!="") || (f.total4.value!=""))&&
		   ((f.year_volume_4.selectedIndex==0) || (f.issues4.value=="") ||  (f.total4.value=="")))
	       {
           alert("Purchase selection line 4 is not complete!\n");
           return false;
           }
	   if (f.total4.value!="")
		   {
		  if (!validate_issue_line(f.issues4.value))
 	         {
             f.issues4.focus()
             return false;
             }		
		  if (!validate_line_value(f.total4.value))
 	         {
             f.total4.focus()
             return false;
             }		
		   }

       // LINE ITEM NUMBER 5
       if(((f.year_volume_5.selectedIndex!=0) || (f.issues5.value!="") ||  (f.total5.value!=""))&&
		   ((f.year_volume_5.selectedIndex==0) || (f.issues5.value=="") ||  (f.total5.value=="")))
	       {
           alert("Purchase selection line 5 is not complete!\n");
           return false;
           }
	   if (f.total5.value!="")
		   {
		  if (!validate_issue_line(f.issues5.value))
 	         {
             f.issues5.focus()
             return false;
             }		
		  if (!validate_line_value(f.total5.value))
 	         {
             f.total5.focus()
             return false;
             }		
		   }

        // INDEX LINE ITEM NUMBER 1
	   if(((f.Index_1.selectedIndex!=0) ||  (f.indextotal1.value!=""))&&
		   ((f.Index_1.selectedIndex==0) ||  (f.indextotal1.value=="")))
	       {
           alert("Index 1 purchase selection is not complete!\n");
           return false;
           }
		
	   if (f.indextotal1.value!="")
		   {
		  if (!validate_line_value(f.indextotal1.value))
 	         {
             f.indextotal1.focus()
             return false;
             }		
		   }
        // INDEX LINE ITEM NUMBER 2
	  if(((f.Index_2.selectedIndex!=0) ||  (f.indextotal2.value!=""))&&
		   ((f.Index_2.selectedIndex==0) ||  (f.indextotal2.value=="")))
	       {
           alert("Index 2 purchase selection is not complete!\n");
           return false;
           }
	   if (f.indextotal2.value!="")
		   {
		  if (!validate_line_value(f.indextotal2.value))
 	         {
             f.indextotal2.focus()
             return false;
             }		
		   }		   
		   
		   
   
     if(((f.quantity25anniversary.selectedIndex!=0) ||  (f.total25anniversary.value!=""))&&
		   ((f.quantity25anniversary.selectedIndex==0) || (f.total25anniversary.value=="")))
	       {
           alert("25th Anniversary Memoir purchase selection is not complete!\n");
           return false;
           }
	   if (f.total25anniversary.value!="")
		   {
		  if (!validate_line_value(f.total25anniversary.value))
 	         {
             f.total25anniversary.focus()
             return false;
             }		
		   }		   

     if(((f.quantity50anniversary.selectedIndex!=0) ||  (f.total50anniversary.value!=""))&&
		   ((f.quantity50anniversary.selectedIndex==0) || (f.total50anniversary.value=="")))
	       {
           alert("50th Anniversary Memoir Soft Cover purchase selection is not complete!\n");
           return false;
           }
	   if (f.total50anniversary.value!="")
		   {
		  if (!validate_line_value(f.total50anniversary.value))
 	         {
             f.total50anniversary.focus()
             return false;
             }		
		   }				   
		   
     if(((f.quantity50anniversaryhard.selectedIndex!=0) ||  (f.total50anniversaryhard.value!=""))&&
		   ((f.quantity50anniversaryhard.selectedIndex==0) || (f.total50anniversaryhard.value=="")))
	       {
           alert("50th Anniversary Memoir Hard Cover purchase selection is not complete!\n");
           return false;
           }
	   if (f.total50anniversaryhard.value!="")
		   {
		  if (!validate_line_value(f.total50anniversaryhard.value))
 	         {
             f.total50anniversaryhard.focus()
             return false;
             }		
		   }		   

	 if(((f.Illinois_50th_qty.selectedIndex!=0) || (f.totalIL50year.value!=""))&&
		   ((f.Illinois_50th_qty.selectedIndex==0) || (f.totalIL50year.value=="")))
	       {
           alert("Illinois 50th Year Memoir purchase selection is not complete!\n");
           return false;
           }
	   if (f.totalIL50year.value!="")
		   {
		  if (!validate_line_value(f.totalIL50year.value))
 	         {
             f.totalIL50year.focus()
             return false;
             }		
		   }				   
  
      if(((f.Misouri_50th_qty.selectedIndex!=0) || (f.totalMO50year.value!=""))&&
		   ((f.Misouri_50th_qty.selectedIndex==0) || (f.totalMO50year.value=="")))
	       {
           alert("Missouri 50th Year Memoir purchase selection is not complete!\n");
           return false;
           }
	   if (f.totalMO50year.value!="")
		   {
		  if (!validate_line_value(f.totalMO50year.value))
 	         {
             f.totalMO50year.focus()
             return false;
             }		
		   }
		   
	 if(((f.cherry_valley_qty.selectedIndex!=0) ||  (f.totalCHERRYVALLEY.value!=""))&&
		   ((f.cherry_valley_qty.selectedIndex==0) ||  (f.totalCHERRYVALLEY.value=="")))
	       {
           alert("Cherry Valley Memoir purchase selection is not complete!\n");
           return false;
           }
	   if (f.totalCHERRYVALLEY.value!="")
		   {
		  if (!validate_line_value(f.totalCHERRYVALLEY.value))
 	         {
             f.totalCHERRYVALLEY.focus()
             return false;
             }		
		   }
		   
	 if(((f.completet_Set_qty.selectedIndex!=0) ||  (f.totalcompleteset.value!=""))&&
		   ((f.completet_Set_qty.selectedIndex==0) ||  (f.totalcompleteset.value=="")))
	       {
           alert("Complete Set purchase selection is not complete!\n");
           return false;
           }
	   if (f.totalcompleteset.value!="")
		   {
		  if (!validate_line_value(f.totalcompleteset.value))
 	         {
             f.totalcompleteset.focus()
             return false;
             }		
		   }		   
		   
		if((f.total1.value=="")&&(f.total2.value=="")&&(f.total3.value=="")&&(f.total4.value=="")&&(f.total5.value=="") &&
          (f.indextotal1.value=="") &&(f.indextotal2.value=="")&&
		  (f.total25anniversary.value=="")&&(f.totalIL50year.value=="") && 
		  (f.total50anniversary.value=="")&&(f.total50anniversaryhard.value=="") && 
		  (f.totalMO50year.value=="") &&(f.totalCHERRYVALLEY.value=="") &&
          (f.totalcompleteset.value=="")) {
           alert("You have not made any purchase selection.\n");
           return false;
           }

	   // SUBTOTAL
	  if(f.subtotal.value=="") 
	       {
		    f.subtotal.focus()
           alert("Please enter the subtotal.\n");
           return false;
           }
	   if (!validate_sub_total(f.subtotal.value))
 	      {
           f.subtotal.focus()
           return false;
          }
		// END SUBTOTAL
		
	   // SHIPPING CHARGE TEST
	  if(f.shipping_charge.value=="") 
	       {
		    f.shipping_charge.focus()
           alert("Please enter the shipping charge.\n");
           return false;
           }
	   if (!validate_shipping(f.shipping_charge.value))
 	      {
           f.shipping_charge.focus()
           return false;
          }
		// END SHIPPING CHARGE TEST
		
      // GRAND TOTAL TEST
	  if(f.total_purchase_amount.value=="") 
	       {
		    f.total_purchase_amount.focus()
           alert("Please enter the total purchase amount.\n");
           return false;
           }

       if (!validate_grand_total(f.total_purchase_amount.value))
 	      {
           f.total_purchase_amount.focus()
           return false;
          }
      // ENND GRAND TOTAL TEST		

       window.print();  
       return true;
    }
	 /////////////////////////////////////////
    // END OF VALIDATE QUATITY AND PRICE
    //////////////////////////////////////////


    ///////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////
    //                       END OF VALUE VALIDATION SCRIPTS
    ///////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////


-->
