function compute(forms)
{
  // document part

  var binding_rate = 0; //rates for binding
  var binding_charge = 0; //charges for Perfect Binding
  var stich_charge = 0; //charges for Saddle Stich Binding
  var delivery_charges = 20; //delivery_charge charge $20

  var page_gauge = 4; //page gauge set at 4 pages
  var quantity_gauge1 = 1000; //quantity gauge1 set at 1000 sets
  var quantity_gauge2 = 50; //quantity gauge2 set at 50 sets
  var binding_gauge1 = 100; //binding gauge set at 100

  var quote = 0; //quote without cover
  var quote_cover = 0; // quote with cover
  var total_quote = 0; // total quote


  //Number of pages ranging from 1 page to 4 page
  if (forms.pages.value <= page_gauge)
  {
    if (forms.quantity.value < quantity_gauge1)
    {
      if (forms.timing[0].checked==true)
      {
        timing_rate = 0.05;
      }
      else
      {
        timing_rate = 0.08;
      }

      if (forms.binding[0].checked==true)
      {
        if (forms.quantity.value < quantity_gauge2)
        {
          binding_rate = 0.50;
        }
        else
        {
          binding_rate = 0.30;
        }
      }
      else
      {
        if (forms.quantity.value < quantity_gauge2)
        {
          binding_rate = 0.08;
        }
        else
        {
          binding_rate = 0.05;
        }
      }
    }
    else
    { // qty >= 1000
      if (forms.timing[0].checked==true)
      {
        timing_rate = 0.03;
      }
      else
      {
        timing_rate = 0.08;
      }

      if (forms.binding[0].checked==true)
      {
        binding_rate = 0.20;
      }
      else
      {
        binding_rate = 0.05;
      }
    }
  }
  else
  { // no. pages > 4
    if (forms.quantity.value < quantity_gauge2)
    {
      if (forms.timing[0].checked==true)
      {
        timing_rate = 0.05;
      }
      else
      {
        timing_rate = 0.08;
      }

      if (forms.binding[0].checked==true)
      {
        binding_rate = 0.50;
      }
      else
      {
        binding_rate = 0.08;
      }
    }
    else
    { //qty >= 50
      if (forms.timing[0].checked==true)
      {
        timing_rate = 0.03;
      }
      else
      {
        timing_rate = 0.08;
      }

      if (forms.binding[0].checked==true)
      {
        if (forms.quantity.value < binding_gauge1)
        {
          binding_rate = 0.30;
        }
        else
        {
          binding_rate = 0.20;
        }
      }
      else
      {
        binding_rate = 0.05;
      }
    }
  }

  if (forms.delivery[0].checked==true)
  { delivery_charges = 20; }
  else
  { delivery_charges = 0; }

  // calculating the quote without cover
  quote = (timing_rate * forms.pages.value * forms.quantity.value) + (binding_rate * forms.quantity.value) + delivery_charges;
  forms.doc_charges.value = quote;
}

function computeCover(forms)
{
  var quantity_selected = 0;
  var selected = 0;
  var choice = 0;
  var timing_charges = 0;
  
if (forms.print_cover[0].checked == true)
{
  if (forms.quantity.value > 2000)
  {
    alert("You can only print maximum 2000 cover.");
  }
  else
  {
  // cover starts here 
  if (forms.color_choice[0].checked==true)
  {  
    charge1 = new Array(125, 125, 125);
    charge2 = new Array(250, 250, 250);
    charge3 = new Array(375, 375, 375);
    charge4 = new Array(500, 500, 500);    
  }
  else
  if (forms.color_choice[1].checked==true)
  {
    charge1 = new Array(220, 240, 270);
    charge2 = new Array(280, 320, 370);
    charge3 = new Array(360, 440, 515);
    charge4 = new Array(450, 520, 610);
  }
  else
  if (forms.color_choice[2].checked==true)
  {
    charge1 = new Array(350, 370, 420);
    charge2 = new Array(405, 440, 510);
    charge3 = new Array(495, 550, 635);
    charge4 = new Array(560, 630, 740);
  }
  else
  if (forms.color_choice[3].checked==true)
  {
    charge1 = new Array(520, 550, 580);
    charge2 = new Array(580, 620, 680);
    charge3 = new Array(740, 795, 870);
    charge4 = new Array(840, 920, 1020);
  }

  charges = new Array(charge1, charge2, charge3, charge4);

  if (forms.quantity.value <= 500)
  { quantity_selected = 0;}
  else if (forms.quantity.value <= 1000)
  { quantity_selected = 1;}
  else if (forms.quantity.value <= 1500)
  { quantity_selected = 2;}
  else if (forms.quantity.value <= 2000)
  { quantity_selected = 3;}


  for (choice=0; choice <=2; choice++)
  {

    if (forms.which[choice].checked==true)
    {
      selected = choice;
      break;
    }
  }

  total_price = charges[quantity_selected][selected];
  
  if (forms.lamination[1].checked)
  {
    forms.cov_charges.value = total_price;
  }
  else
  {
    lamcharge = 0.08 * forms.above_quantity.value;
    if (lamcharge < 50) 
    { 
      lamcharge = 50; 
    }
    total_price = total_price + lamcharge;
    forms.cov_charges.value = total_price;
  }
  
}}
}

// calculation of the total of form
function computeTotal(forms)
{
  var charge1 = parseFloat(forms.doc_charges.value);
  var charge2 = parseFloat(forms.cov_charges.value);
  forms.Total_charges.value = charge1 + charge2;
}

//calculation of the brochure

function computeBroc(forms)
{  
  // calculation of pages that is less than 5 pages with no binding
  if (forms.pages.value < 5)
  {
    forms.binding[0].checked = false;
    forms.binding[1].checked = false;
    
    if (forms.delivery[0].checked==true) //check if delivery is needed
    { 
      delivery_charges = 20; 
    }
    else
    { 
      delivery_charges = 0; 
    }
    
    if (forms.timing[0].checked==true) // check if the printing is urgent
    { 
      timing_charges = 1; 
    }
    else
    { 
      timing_charges = 1.5; 
    }
    
    forms.doc_charges.value = (4 * 0.03 * forms.quantity.value)*(timing_charges)+delivery_charges;
  }
  else // calculation of pages that is more than 5 pages with either binding
  {
    cal_quote(forms)
  }
}


//display the quantity on the cover form
function showQuantity(forms)
{
   x = (forms.quantity.value)%10;
   
   if ((forms.quantity.value < 100)||(x != 0))
   {
     forms.quantity.value = 100;
     alert("Quantity must be at least 100 or in multiples of 10 if > 100");
   }
   else if (forms.print_cover[0].checked == true)
   {
     forms.above_quantity.value = forms.quantity.value;
   }
}

//display the papersize on the cover form
function showPaperSize(forms)
{
   if (forms.print_cover[0].checked == true)
   {
     if (forms.doc_paper[0].checked)
     {
       forms.above_PaperSize.value = "A4"
     }
     else if (forms.doc_paper[1].checked)
     {
       forms.above_PaperSize.value = "A5"
     }
   }
}


function checkAttached(forms)
{

  forms.userfilename1.value = forms.userfile1.value;
  name1 = forms.userfilename1.value;

  forms.userfilename2.value = forms.userfile2.value;
  name2 = forms.userfilename2.value;

  forms.userfilename3.value = forms.userfile3.value;
  name3 = forms.userfilename3.value;

  if ((name1 == "")&&(name2 == "")&&(name3 == ""))
  {
    alert("You have not chosen any files yet");
  }
  
  else if (name1 != "")
  {
    if ((name2 == "")&&(name3 == ""))
    {
      alert("You have just confirmed your attachment. Please go on and fill in your particulars");
    } 
    else if ((name1 == name2)||(name1 == name3))
    {
      forms.userfilename1.value = "";
      forms.userfilename2.value = "";
      forms.userfilename3.value = "";
      forms.userfile1.value = "";
      forms.userfile2.value = "";
      forms.userfile3.value = "";   
      forms.userfile1.focus()
      alert("You have chosen duplicate files");
    }
    else
    {
      alert("You have just confirmed your attachment. Please go on and fill in your particulars");
    }     
  }
  
  else if (name2 != "")
  {
    if (name2 == name3)
    {
      forms.userfilename1.value = "";
      forms.userfilename2.value = "";
      forms.userfilename3.value = "";
      forms.userfile1.value = "";
      forms.userfile2.value = "";
      forms.userfile3.value = "";      
      forms.userfile2.focus()
      alert("You have chosen duplicate files");
    }
    else
    {
      alert("You have just confirmed your attachment. Please go on and fill in your particulars");
    } 
  } 
  else
  {
    alert("You have just confirmed your attachment. Please go on and fill in your particulars");
  }    
}

function computeCards(forms) {
  base = 100;
  quantity = forms.elements[0].value;
  timing1 = forms.elements[1].checked;
  timing2 = forms.elements[2].checked;
  deliver1 = forms.elements[3].checked;
  deliver2 = forms.elements[4].checked;
  fillin = 5;
  if ((quantity % base != 0) || (quantity < 500)) 
  {
    forms.elements[0].value = 500;
    forms.elements[fillin].value = 0;
    alert("Quantity must be at least 500 or in multiples of 100 if > 500");
    return;
  }
   
  if (quantity != 500)
  {
    multiple = (quantity-500)/100;
    charge = 75 + multiple*10;
  }
  else
  {
    charge = 75;
  }    
   
  if (timing1)
  {
    total_charge = charge;
  } 
  else 
  {
    total_charge = (charge)*(1.5);
  }
  
  if (deliver1) 
  {
    total_charge = total_charge + 20;
  }

   forms.elements[fillin].value = total_charge;
   forms.userfilename1.value = forms.userfile1.value;
   forms.userfilename2.value = forms.userfile2.value;
   forms.userfilename3.value = forms.userfile3.value;
}

//computing letterhead
function computeLetterHead(forms) 
{
  base = 500;
  quantity = forms.elements[0].value;
  timing1 = forms.elements[1].checked;
  timing2 = forms.elements[2].checked;
  deliver2 = forms.elements[4].checked;
  fillin = 5;
  
  if ((quantity % base != 0) || (quantity < 1000))
  {
    forms.elements[0].value = 1000;
    alert("Quantity must be at least 1000 or in multiples of 500 if > 1000");
    return;
  }
  
  if (quantity != 1000)
  {
    multiple = (quantity-1000)/500;
    charge = 60 + multiple*20;
  }
  else
  {
    charge = 60;
  }    
   
  if (forms.timing[0].checked==true)
  {
    
    total_charge = charge;
  } 
  else 
  {
    total_charge = (charge)*(1.5);
  }
  
  if (forms.delivery[0].checked==true) 
  {
    total_charge = total_charge + 20;
  }
         
  forms.elements[fillin].value = total_charge;
  forms.userfilename1.value = forms.userfile1.value;
  forms.userfilename2.value = forms.userfile2.value;
  forms.userfilename3.value = forms.userfile3.value;
}

function computeInvoices(forms) 
{
  base = 10;
  quantity = forms.quantity.value;
  timing1 = forms.timing[0].checked;
  timing2 = forms.timing[1].checked;
  deliver1 = forms.delivery[0].checked;
  deliver2 = forms.delivery[1].checked;
  fillin = 5;
  
  if ((quantity % base != 0) || (quantity < 20))
  {
    forms.elements[0].value = 20;
    alert("Quantity must be at least 20 or in multiples of 10 if > 20");
    return;    
  }
  
  if (timing1) 
  {
    charge = quantity / 20 * 60;
  } 
  else 
  {
    charge = (quantity / 20 * 60)*(1.5);
  }
  if (deliver1) 
  {
    charge = charge + 20;
  }
  
  forms.charges.value = charge;
  
  forms.userfilename1.value = forms.userfile1.value;
  forms.userfilename2.value = forms.userfile2.value;
  forms.userfilename3.value = forms.userfile3.value;
}

function cal_quote(forms)
{
  var sad_per_copy = 0.03; //cost of saddle stich per copy
  var per_per_copy = 0.2; //cost of binding per copy
  var sad_per_4pp =  0.12;
  var sad_min = 8;
  var no_pages = 0;
  var no_copies = 0;
  var extra_copy = 0;
  var delivery_charges = 0;
  var timing_charges = 0;

  no_pages = forms.pages.value;
  no_copies = forms.quantity.value;
  no_pages=parseInt(no_pages);
  no_copies=parseInt(no_copies);  
  
  if (forms.delivery[0].checked==true) //check if delivery is needed
  { delivery_charges = 20; }
  else
  { delivery_charges = 0; }

  if (forms.timing[0].checked==true) // check if the printing is urgent
  { timing_charges = 1; }
  else
  { timing_charges = 1.5; }

  if (forms.binding[0].checked == true) // check what kind of binding is needed
  {
    if ((no_pages < 64)||(no_pages > 580))
    {
      forms.pages.value = 64;
      alert("You need to have at least 64 pages and less than 580 pages");
      return;
    }
    else
    {
      extra=no_pages%2;
      if (extra != 0)
      {
        no_pages = no_pages + 1;
      }
    }
    quote_charge = (no_pages*sad_per_copy*no_copies)+(no_copies*per_per_copy);
  }

  else
  {
    if ((no_pages < 5)||(no_pages > 64))
    {
      forms.pages.value = 64;
      alert("You need to have at least 5 pages and less than 64 pages");
      return;
    }
    else
    {
      no_pages=parseInt(no_pages);
      leftover = no_pages-4;
      if (leftover != 0)
      {
	x = no_pages%4;
        if (x != 0)
	{ 
	  
	  extra_pages = (no_pages+(4-x))/4;
	}
        else
	{
	  extra_pages = (no_pages/4);
	}
      }
      else if (leftover == 0)
      {
        extra_pages = 1;
      }
    }

    quote_charge =  (extra_pages*sad_per_4pp*no_copies)+(no_copies*sad_per_copy);
  }
  forms.doc_charges.value = quote_charge*(timing_charges)+delivery_charges;
}


function QbDcTEST(s)
{
   var d = s.options[s.selectedIndex].value;
   window.location.href = d;
   s.selectedIndex=0;
}

function openwin(desktopURL,name,feature)
{
   var desktop = window.open(desktopURL,name,feature);
   var bringForward = desktop.focus();
   bringForward.opener.name = 'documain';
}
