﻿
function MM_CalcPaperNeed()
{
// Function to calculate paper needs;
var form = document.aspnetForm;

var pw, co, pc, rs, bs, wa, cir, v_result;

pw = form.PaperWidth.value;
co = form.Cutoff.value;
pc = form.PagesPerCopy.value;
rs = form.ReamSize.value;
bs = form.BasisWeight.value;
wa = form.Waste.value;
cir = form.Circulation.value.toString().replace(/\,/g,'');

//alert(pw + ", co = " + co + ",pc = " + pc + ", rs = " + rs + ",bs = " + bs + ",wa = " + wa + ",cir = " + cir);

var result = false;

if (MM_ValidateField(pw,'La largeur du papier') == true)
   if (MM_ValidateField(co,'La coupe') == true)
      if(MM_ValidateField(pc,'Le nombre de pages par copie') == true)  
         if(MM_CheckMultiple(pc) == true)
            if(MM_ValidateField(bs,'Le poids de base') == true)
               if(MM_ValidateField(wa,'Le pourcentage de perte') == true)
                  if(MM_ValidateField(cir,'Le tirage') == true)
                      result = true;
                  else form.Circulation.focus();
               else form.Waste.focus();  
            else form.BasisWeight.focus();  
         else form.PagesPerCopy.focus();  
      else form.PagesPerCopy.focus();  
   else form.Cutoff.focus();  
else form.PaperWidth.focus();  
  
if(result == true) 
  { 
   var ream,  bwConversion;
   if (form.ReamSize.options[2].selected==true){ ream = 3000; bwConversion = 0.61445;}
    	else if (form.ReamSize.options[1].selected==true){ ream = 3298.61;bwConversion = 0.67561;}
     else if (form.ReamSize.options[0].selected==true){ ream = 1298.61;bwConversion = 0.26598;}
    
    var fctr;
        if (form.WeightUnits[0].checked == true){ fctr = 2000;}
          else if (form.WeightUnits[3].checked ==true){ fctr = 2.204624420183777;}   
          else if (form.WeightUnits[2].checked ==true){ fctr = 2204.6;}
          else if (form.WeightUnits[1].checked ==true){ fctr = 1;}
          
         // alert("ream =" + ream + ", fctr = " + fctr);
         
   var divdr =  2.54;
    if (form.MeasureUnits[1].checked == true)
       {pw = pw / divdr;
       co =  co  / divdr;}
    
    if (form.BWUnits[1].checked == true) 
       {bs = bs * bwConversion};

    var res = ((pw * co * pc * cir * bs) / (288 * (1 - (wa/100)) * ream)) / fctr;
    
    //alert("res = " + Math.round(res * 100) / 100);

     //form.Resultat.value =  formatNumber(Math.round(res * 100) / 100, true);  
     v_result = Math.round(res * 100) / 100;
     form.Resultat.value =   changement_point(v_result.toFixed(2)); 
     
     if (isNaN(form.UnitPrice.value) == false)
     {
       v_result = Math.round(res * form.UnitPrice.value) * 100 / 100;
       form.TotalCost.value =   changement_point(v_result.toFixed(2));
       }
     else    
     {
         form.TotalCost.value =  999;
         }
  }  
} // MM_CalcPaperNeed()
//form.TotalCost.value =  formatNumber(Math.round((res * form.UnitPrice.value) * 100) / 100, true);



function MM_CalcPaperNeed2()
{
// Function to calculate paper needs;
var form = document.aspnetForm;

var pw, co, pc, rs, bs, wa, cir, v_result;

pw = form.PaperWidth2.value;
co = form.Cutoff2.value;
pc = form.PagesPerCopy2.value;
rs = form.ReamSize2.value;
bs = form.BasisWeight2.value;
wa = form.Waste2.value;
cir = form.Circulation2.value.toString().replace(/\,/g,'');

//alert(pw + ", co = " + co + ",pc = " + pc + ", rs = " + rs + ",bs = " + bs + ",wa = " + wa + ",cir = " + cir);

var result = false;

if (MM_ValidateField(pw,'La largeur du papier') == true)
   if (MM_ValidateField(co,'La coupe') == true)
      if(MM_ValidateField(pc,'Le nombre de pages par copie') == true)  
         if(MM_CheckMultiple(pc) == true)
            if(MM_ValidateField(bs,'Le poids de base') == true)
               if(MM_ValidateField(wa,'Le pourcentage de perte') == true)
                  if(MM_ValidateField(cir,'Le tirage') == true)
                      result = true;
                  else form.Circulation2.focus();
               else form.Waste2.focus();  
            else form.BasisWeight2.focus();  
         else form.PagesPerCopy2.focus();  
      else form.PagesPerCopy2.focus();  
   else form.Cutoff2.focus();  
else form.PaperWidth2.focus();  
  
if(result == true) 
  { 
   var ream,  bwConversion;
   if (form.ReamSize2.options[2].selected==true){ ream = 3000; bwConversion = 0.61445;}
    	else if (form.ReamSize2.options[1].selected==true){ ream = 3298.61;bwConversion = 0.67561;}
     else if (form.ReamSize2.options[0].selected==true){ ream = 1298.61;bwConversion = 0.26598;}
    
    var fctr;
        if (form.WeightUnits2[0].checked == true){ fctr = 2000;}
          else if (form.WeightUnits2[3].checked ==true){ fctr = 2.204624420183777;}   
          else if (form.WeightUnits2[2].checked ==true){ fctr = 2204.6;}
          else if (form.WeightUnits2[1].checked ==true){ fctr = 1;}
          
         // alert("ream =" + ream + ", fctr = " + fctr);
         
   var divdr =  2.54;
    if (form.MeasureUnits2[1].checked == true)
       {pw = pw / divdr;
       co =  co  / divdr;}
    
    if (form.BWUnits2[1].checked == true) 
       {bs = bs * bwConversion};

    var res = ((pw * co * pc * cir * bs) / (288 * (1 - (wa/100)) * ream)) / fctr;
    
    //alert("res = " + Math.round(res * 100) / 100);

     //form.Resultat.value =  formatNumber(Math.round(res * 100) / 100, true);  
     v_result = Math.round(res * 100) / 100;
     form.Resultat2.value =   changement_point(v_result.toFixed(2)); 
     
     if (isNaN(form.UnitPrice2.value) == false)
     {
       v_result = Math.round(res * form.UnitPrice2.value) * 100 / 100;
       form.TotalCost2.value =   changement_point(v_result.toFixed(2));
       }
     else    
     {
         form.TotalCost2.value =  999;
         }
  }  
}


function MM_ValidateField(fValue, fName) {
if (isNaN(fValue))
   {alert(fName + ' doit être numérique'); 
    return false;}
if (fName == 'Le pourcentage de perte')
{    
   if ((fValue >= 0 && fValue <= 99) == false)
      {alert(fName + ' doit être un nombre entre 0 et 99'); 
       return false;} 
}
else       
if (fValue <= 0)
    {alert(fName + ' doit être un nombre plus grand que zéro'); 
      return false;}
{return true;}
} // End of function  MM_ValidateField

function MM_CheckMultiple(fValue) {
if (fValue % 2 !=0)
   {alert('Le nombre de pages par copie doit être un multiple de 2'); 
    return false;}

return true;
} // End of function  MM_CheckMultiple

function formatNumber(pNumber, ShowDecimal) {
   var decimal = Math.floor((pNumber * 100 + 0.5) % 100);  

   if(decimal < 10) decimal = "0" + decimal;
   var n = Math.floor((pNumber * 100 + 0.5) / 100).toString();
   
   var i;
   for (i = 0; i < Math.floor((n.length - (1 + i)) / 3); i++)
   n = n.substring(0,n.length - (4 * i + 3))+','+n.substring(n.length-(4 * i + 3));

   if (ShowDecimal  == true) 
     return (n + "." + decimal);
   else 
      return (n);    
}

document._domino_target = "_self";


function _doClick(v, o, t, h) {
  var form = document._PaperToOrder;
  if (form.onsubmit) {
     var retVal = form.onsubmit();
     if (typeof retVal == "boolean" && retVal == false)
       return false;
  }
  var target = document._domino_target;
  if (o.href != null) {
    if (o.target != null)
       target = o.target;
  } else {
    if (t != null)
      target = t;
  }
  form.target = target;
  form.__Click.value = v;
  if (h != null)
    form.action += h;
  form.submit();
  return false;
}

//function pour la calculatrice Paper Calculator
//----------------------------------------------------------
function difference_cost()
{
   var v_diff_cost1 = 0
   var v_diff_cost2 = 0
   
   var form = document.aspnetForm;
   
   if (IsNumeric(form.TotalCost.value))
   {
     v_diff_cost1 = form.TotalCost.value
   }
   else
   {
     v_diff_cost1 = 0
   }
   
   
     if (IsNumeric(form.TotalCost2.value))
   {
     v_diff_cost2 = form.TotalCost2.value
   }
   else
   {
     v_diff_cost2 = 0
   } 
   
   form.Text_Difference.value = formatNumber(v_diff_cost1 - v_diff_cost2, true);
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

function reset_part_2()
{
//Mettre la calculatrice a vide
  var form = document.aspnetForm;

    form.PaperWidth2.value = "";
    form.Cutoff2.value = "";
    form.PagesPerCopy2.value = "";
    //form.ReamSize2.value;
    form.BasisWeight2.value = "";
    form.Waste2.value = 0;
    form.Circulation2.value = "0";
    form.Resultat2.value = "";
    form.UnitPrice2.value = "";
    form.TotalCost2.value = "";
    
    form.ReamSize2.options[2].selected = true;
    form.WeightUnits2[0].checked = true;
    
    form.MeasureUnits2[0].checked = true;
    form.BWUnits2[0].checked = true;
          
}

function reset_part_1()
{
//Mettre la calculatrice a vide
  var form = document.aspnetForm;

    form.PaperWidth.value = "";
    form.Cutoff.value = "";
    form.PagesPerCopy.value = "";
 
    form.BasisWeight.value = "";
    form.Waste.value = 0;
    form.Circulation.value = "0";
    form.Resultat.value = "";
    form.UnitPrice.value = "";
    form.TotalCost.value = "";
    
    form.ReamSize.options[2].selected = true;
    form.WeightUnits[0].checked = true;
    
    form.MeasureUnits[0].checked = true;
    form.BWUnits[0].checked = true;
          
}