function calculation()
{
  var formObject = document.Quotation;

  var q_Consultation = document.Quotation.Consultation;
  var q_WebPages = document.Quotation.WebPages;
  var q_Scripts = document.Quotation.Scripts;
  var q_Flash = document.Quotation.Flash;
  var q_Banners = document.Quotation.Banners;
  var q_Graphic = document.Quotation.Graphic;
  var q_Logo = document.Quotation.Logo;
  var q_Hosting = document.Quotation.Hosting;
  var q_Dotcom = document.Quotation.Dotcom;
  var q_Dotuk = document.Quotation.Dotuk;
  var q_A3 = document.Quotation.A3;
  var q_A4 = document.Quotation.A4;
  var q_A6 = document.Quotation.A6;

  var ConsultationFee = 25;
  var WebPagesFee = 95;
  var ScriptsFeeMin = 85;
  var ScriptsFeeMax = 950;
  var FlashFeeMin = 150;
  var FlashFeeMax = 850;
  var BannersFeeMin = 95;
  var BannersFeeMax = 850;
  var GraphicFeeMin = 80;
  var GraphicFeeMax = 450;
  var LogoFeeMin = 150;
  var LogoFeeMax = 950;
  var HostingFeeMin = 120;
  var HostingFeeMax = 499;
  var DotcomFee = 15;
  var DotukFee = 10;
  var A3FeeMin = 950;
  var A3FeeMax = 1500;
  var A4FeeMin = 750;
  var A4FeeMax = 1200;
  var A6FeeMin = 450;
  var A6FeeMax = 850;

  var minTotal = 0;
  var maxTotal = 0;

  if (!checkInput()) //check input format
  {
    return false;
  }

  (q_Consultation.value == "")? v_Consultation = 0 : v_Consultation = q_Consultation.value - 1;

  (q_WebPages.value == "")? v_WebPages = 0 : v_WebPages = q_WebPages.value;

  (q_Scripts.value == "")? v_Scripts = 0 : v_Scripts = q_Scripts.value;

  (q_Flash.value == "")? v_Flash = 0 : v_Flash = q_Flash.value;

  (q_Banners.value == "")? v_Banners = 0 : v_Banners = q_Banners.value;

  (q_Graphic.value == "")? v_Graphic = 0 : v_Graphic = q_Graphic.value;

  (q_Logo.value == "")? v_Logo = 0 : v_Logo = q_Logo.value;

  (q_Hosting.value == "")? v_Hosting = 0 : v_Hosting = q_Hosting.value;

  (q_Dotcom.value == "")? v_Dotcom = 0 : v_Dotcom = q_Dotcom.value;

  (q_Dotuk.value == "")? v_Dotuk = 0 : v_Dotuk = q_Dotuk.value;

  (q_A3.value == "")? v_A3 = 0 : v_A3 = q_A3.value;

  (q_A4.value == "")? v_A4 = 0 : v_A4 = q_A4.value;

  (q_A6.value == "")? v_A6 = 0 : v_A6 = q_A6.value;

  minTotal = v_Consultation * ConsultationFee + v_WebPages * WebPagesFee +
             v_Scripts * ScriptsFeeMin + v_Flash * FlashFeeMin + v_Banners * BannersFeeMin +
             v_Graphic * GraphicFeeMin + v_Logo * LogoFeeMin + v_Hosting * HostingFeeMin +
             v_Dotcom * DotcomFee + v_Dotuk * DotukFee + v_A3 * A3FeeMin + v_A4 * A4FeeMin +
             v_A6 * A6FeeMin;

  maxTotal = v_Consultation * ConsultationFee + v_WebPages * WebPagesFee +
             v_Scripts * ScriptsFeeMax + v_Flash * FlashFeeMax + v_Banners * BannersFeeMax +
             v_Graphic * GraphicFeeMax + v_Logo * LogoFeeMax + v_Hosting * HostingFeeMax +
             v_Dotcom * DotcomFee + v_Dotuk * DotukFee + v_A3 * A3FeeMax + v_A4 * A4FeeMax +
             v_A6 * A6FeeMax;

  formObject.MinTotal.value = minTotal;
  formObject.MaxTotal.value = maxTotal;
}

function checkInput() {
  var formObject = document.Quotation;
  var format = /^\d/; //number format, only digit

  if (formObject.Consultation.value != "")
  {
    if (formObject.Consultation.value.charAt(0) == 0 && formObject.Consultation.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.Consultation.select();
      return false;
    }

    for (i = 0; i < formObject.Consultation.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.Consultation.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.Consultation.select();
        return false;
      }
    }
  }
  
  if (formObject.WebPages.value != "")
  {
    if (formObject.WebPages.value.charAt(0) == 0 && formObject.WebPages.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.Consultation.select();
      return false;
    }

    for (i = 0; i < formObject.WebPages.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.WebPages.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.WebPages.select();
        return false;
      }
    }
  }

  if (formObject.Scripts.value != "")
  {
    if (formObject.Scripts.value.charAt(0) == 0 && formObject.Scripts.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.Scripts.select();
      return false;
    }

    for (i = 0; i < formObject.Scripts.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.Scripts.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.Scripts.select();
        return false;
      }
    }
  }

  if (formObject.Flash.value != "")
  {
    if (formObject.Flash.value.charAt(0) == 0 && formObject.Flash.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.Flash.select();
      return false;
    }

    for (i = 0; i < formObject.Flash.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.Flash.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.Flash.select();
        return false;
      }
    }
  }

  if (formObject.Banners.value != "")
  {
    if (formObject.Banners.value.charAt(0) == 0 && formObject.Banners.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.Banners.select();
      return false;
    }

    for (i = 0; i < formObject.Banners.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.Banners.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.Banners.select();
        return false;
      }
    }
  }

  if (formObject.Graphic.value != "")
  {
    if (formObject.Graphic.value.charAt(0) == 0 && formObject.Graphic.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.Graphic.select();
      return false;
    }

    for (i = 0; i < formObject.Graphic.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.Graphic.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.Graphic.select();
        return false;
      }
    }
  }

  if (formObject.Logo.value != "")
  {
    if (formObject.Logo.value.charAt(0) == 0 && formObject.Logo.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.Logo.select();
      return false;
    }

    for (i = 0; i < formObject.Logo.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.Logo.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.Logo.select();
        return false;
      }
    }
  }

  if (formObject.Hosting.value != "")
  {
    if (formObject.Hosting.value.charAt(0) == 0 && formObject.Hosting.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.Hosting.select();
      return false;
    }

    for (i = 0; i < formObject.Hosting.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.Hosting.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.Hosting.select();
        return false;
      }
    }
  }

  if (formObject.Dotcom.value != "")
  {
    if (formObject.Dotcom.value.charAt(0) == 0 && formObject.Dotcom.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.Dotcom.select();
      return false;
    }

    for (i = 0; i < formObject.Dotcom.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.Dotcom.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.Dotcom.select();
        return false;
      }
    }
  }

  if (formObject.Dotuk.value != "")
  {
    if (formObject.Dotuk.value.charAt(0) == 0 && formObject.Dotuk.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.Dotuk.select();
      return false;
    }

    for (i = 0; i < formObject.Dotuk.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.Dotuk.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.Dotuk.select();
        return false;
      }
    }
  }

  if (formObject.A3.value != "")
  {
    if (formObject.A3.value.charAt(0) == 0 && formObject.A3.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.A3.select();
      return false;
    }

    for (i = 0; i < formObject.A3.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.A3.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.A3.select();
        return false;
      }
    }
  }

  if (formObject.A4.value != "")
  {
    if (formObject.A4.value.charAt(0) == 0 && formObject.A4.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.A4.select();
      return false;
    }

    for (i = 0; i < formObject.A4.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.A4.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.A4.select();
        return false;
      }
    }
  }

  if (formObject.A6.value != "")
  {
    if (formObject.A6.value.charAt(0) == 0 && formObject.A6.value.length > 1) //number cann't
    {                                                                                             //begin with 0
      alert("Invaild Input!!");
      formObject.A6.select();
      return false;
    }

    for (i = 0; i < formObject.A6.value.length; i++) //check every single character if it is a digit
    {
      digit = formObject.A6.value.charAt(i);

      if (!format.test(digit))
      {
        alert("Invaild Input!!");
        formObject.A6.select();
        return false;
      }
    }
  }

  return true;
}
