// 1. Check e-mail

function ValidEmail (addr, chirp)
  {
  fail = false;
  if (addr.value.length == 0) return false;
  var atpos = addr.value.indexOf('@',0);
  if( (addr.value.length < 7) ||
      (atpos == -1)  )
      fail = true;              // no '@' in email address!
 if (! fail)
    {
    if (addr.value.indexOf('.',atpos) == -1)
       fail = true;             // no '.' in address after the @.
    };
 if( (fail) && (chirp) )
     {
     alert ("Warning!\n The email address "+ addr.value +" is invalid!");
     addr.select();
     addr.focus();
     };
  return (! fail);
  }


//2. Check your_name 

function ValidSurname (name, chirp)
  {
  var okay = true;
if (name.value.length < 3)  
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Is '"+ name.value + "' really your name? Please re-enter!");
     name.select();
     name.focus();
     };
 return okay;
  }


//3. Confirm clear form!

function ConfirmClear ()
{
if (confirm ("Are you sure you want to clear the formulaire?") )
   return true;
return false;
}

// 4. Check Voltage_1 et Voltage_2

function ValidVoltage_1 (Voltage_1, chirp)
  {
  var okay = true;
  if (Voltage_1.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Voltage_1.value)==false)
        okay = false;
  if (Voltage_1.value < -0.000001 ) 
        okay = false;
  if (Voltage_1.value > 1000 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The voltage must be >= 0 and <= 1000 or left blank!");
     Voltage_1.select();
     Voltage_1.focus();
     };
 return okay;
  }

function ValidVoltage_2 (Voltage_2, chirp)
  {
  var okay = true;
  if (Voltage_2.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Voltage_2.value)==false)
        okay = false;
  if (Voltage_2.value < -0.000001 ) 
        okay = false;
  if (Voltage_2.value > 1000 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The voltage must be >= 0 and <= 1000 or left blank!");
     Voltage_2.select();
     Voltage_2.focus();
     };
 return okay;
  }

// 5. Check speed_1 et speed_2

function ValidSpeed_1 (Speed_1, chirp)
  {
  var okay = true;
  if (Speed_1.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Speed_1.value)==false)
        okay = false;
  if (Speed_1.value < -0.000001 ) 
        okay = false;
  if (Speed_1.value > 3000 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The speed must be >= 0 and <= 3000 or left blank!");
     Speed_1.select();
     Speed_1.focus();
     };
 return okay;
  }

function ValidSpeed_2 (Speed_2, chirp)
  {
  var okay = true;
  if (Speed_2.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Speed_2.value)==false)
        okay = false;
  if (Speed_2.value < -0.000001 ) 
        okay = false;
  if (Speed_2.value > 3000 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The speed must be >= 0 and <= 3000 or left blank!");
     Speed_2.select();
     Speed_2.focus();
     };
 return okay;
  }
// 6. Check Frequency_1 et Frequency_2

function ValidFrequency_1 (Frequency_1, chirp)
  {
  var okay = true;
  if (Frequency_1.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Frequency_1.value)==false)
        okay = false;
  if (Frequency_1.value < 49.999999) 
        okay = false;
  if (Frequency_1.value > 60.000001 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The frequency must be >= 50 and <= 60 or left blank!");
     Frequency_1.select();
     Frequency_1.focus();
     };
 return okay;
  }
function ValidFrequency_2 (Frequency_2, chirp)
  {
  var okay = true;
  if (Frequency_2.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Frequency_2.value)==false)
        okay = false;
  if (Frequency_2.value < 49.999999) 
        okay = false;
  if (Frequency_2.value > 60.000001 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The frequency must be >= 50 and <= 60 or left blank!");
     Frequency_2.select();
     Frequency_2.focus();
     };
 return okay;
  }

// 6. Check Current_1 & Current_2

function ValidCurrent_1 (Current_1, chirp)
  {
  var okay = true;
  if (Current_1.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Current_1.value)==false)
        okay = false;
  if (Current_1.value < -0.000001) 
        okay = false;
  if (Current_1.value > 600 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The current must be >= 0 and <= 2500 or left blank!");
     Current_1.select();
     Current_1.focus();
     };
 return okay;
  }

function ValidCurrent_2 (Current_2, chirp)
  {
  var okay = true;
  if (Current_2.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Current_2.value)==false)
        okay = false;
  if (Current_2.value < -0.000001) 
        okay = false;
  if (Current_2.value > 2500 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The current must be >= 0 and <= 2500 or left blank!");
     Current_2.select();
     Current_2.focus();
     };
 return okay;
  }

// 7. Check Power_1 et Power_2

function ValidPower_1 (Power_1, chirp)
  {
  var okay = true;
  if (Power_1.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Power_1.value)==false)
        okay = false;
  if (Power_1.value < -0.000001) 
        okay = false;
  if (Power_1.value > 500 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The power must be >= 0 and <= 500 or left blank!");
     Power_1.select();
     Power_1.focus();
     };
 return okay;
  }

function ValidPower_2 (Power_2, chirp)
  {
  var okay = true;
  if (Power_2.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Power_2.value)==false)
        okay = false;
  if (Power_2.value < -0.000001) 
        okay = false;
  if (Power_2.value > 500 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The power must be >= 0 and <= 500 or left blank!");
     Power_2.select();
     Power_2.focus();
     };
 return okay;
  }

// 8. Check Cos_1 & Cos_2

function ValidCos_1 (Cos_1, chirp)
  {
  var okay = true;
  if (Cos_1.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Cos_1.value)==false)
        okay = false;
  if (Cos_1.value < -0.000001) 
        okay = false;
  if (Cos_1.value > 1.000001 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The cos must be >= 0 and <= 1 or left blank!");
     Cos_1.select();
     Cos_1.focus();
     };
 return okay;
  }

function ValidCos_2 (Cos_2, chirp)
  {
  var okay = true;
  if (Cos_2.value.length == 0) return true; 
  pattern = /^[0-9]*\.?[0-9]*$/;
  if(pattern.test(Cos_2.value)==false)
        okay = false;
  if (Cos_2.value < -0.000001) 
        okay = false;
  if (Cos_2.value > 1.000001 ) 
        okay = false;
if ( (! okay) && chirp )
     {
     alert ("Warning!\n The current must be >= 0 and <= 1 or left blank!");
     Cos_2.select();
     Cos_2.focus();
     };
 return okay;
  }

// On Submit : validate data //

function CheckInput (thisform)
  { var errors = 0;                             //error count
    var duditem = "";                           //remember where it failed!
    var message = "\n";                         //error message

  if (! ValidVoltage_1 (thisform.Voltage_1, false) )
        { errors ++;
          duditem = thisform.Voltage_1;
          message += "The voltage must be >= 0 and <= 1000 or left blank!\n"; 
        };

  if (! ValidFrequency_1 (thisform.Frequency_1, false) )
        { errors ++;
          duditem = thisform.Frequency_1;
          message += "The frequency must be >= 50 and <= 60 or left blank!\n"; 
        };

  if (! ValidPower_1 (thisform.Power_1, false) )
        { errors ++;
          duditem = thisform.Power_1;
          message += "The power must be >= 0 and <= 500 or left blank!\n"; 
        };

  if (! ValidSpeed_1 (thisform.Speed_1, false) )
        { errors ++;
          duditem = thisform.Speed_1;
          message += "The speed must be >= 0 and <= 3000 or left blank!\n"; 
        };

  if (! ValidCurrent_1 (thisform.Current_1, false) )
        { errors ++;
          duditem = thisform.Current_1;
          message += "The current must be >= 0 and <= 600 or left blank!\n"; 
        };

  if (! ValidCos_1 (thisform.Cos_1, false) )
        { errors ++;
          duditem = thisform.Cos_1;
          message += "The cos must be >= 0 and <= 1 or left blank!\n"; 
        };

  if (! ValidVoltage_2 (thisform.Voltage_2, false) )
        { errors ++;
          duditem = thisform.Voltage_2;
          message += "The voltage must be >= 0 and <= 1000 or left blank!\n"; 
        };

  if (! ValidFrequency_2 (thisform.Frequency_2, false) )
        { errors ++;
          duditem = thisform.Frequency_2;
          message += "The frequency must be >= 50 and <= 60 or left blank!\n"; 
        };

  if (! ValidPower_2 (thisform.Power_2, false) )
        { errors ++;
          duditem = thisform.Power_2;
          message += "The power must be >= 0 and <= 500 or left blank!\n"; 
        };

  if (! ValidSpeed_2 (thisform.Speed_2, false) )
        { errors ++;
          duditem = thisform.Speed_2;
          message += "The speed must be >= 0 and <= 3000 or left blank!\n"; 
        };

  if (! ValidCurrent_2 (thisform.Current_2, false) )
        { errors ++;
          duditem = thisform.Current_2;
          message += "The current must be >= 0 and <= 600 or left blank!\n"; 
        };

  if (! ValidCos_2 (thisform.Cos_2, false) )
        { errors ++;
          duditem = thisform.Cos_2;
          message += "The cos must be >= 0 and <= 1 or left blank!\n"; 
        };


  if (! ValidEmail (thisform.your_email, false) )
        { errors ++;
          duditem = thisform.your_email;
          message += "Your e-mail address appears incorrect!\n"; 
        };

  if (! ValidSurname (thisform.your_name, false) )
        { errors ++;
          duditem = thisform.your_name;
          message += "Your name appears inaccurate!\n"; 
        };

  if (errors == 0)
     { if ( ! confirm ("Dear "
                   + thisform.your_name.value
                   + "\n Your form is about to submitted."
                   + "\n Are you sure you want to do this?" ) )
           { errors ++; };
     } else
     { message += "\nPlease re-enter this information and re-send!\n\nIf there are values that are not accepted in the formulaire\nbut you wish to communicate them to us,\nfeel free to use the comments section.";
       if (errors == 1)
           { alert  ("There was an error in your formuliare.\n"
                     + message);
           } else
           { alert ("There were errors in your formulaire.\n" + message);
           };
       duditem.select();
       duditem.focus();
     };

  if (errors != 0) return (false);
  return (true);      
  }

  //////////////////////// end of the main function /////////////////////


