// for exchange rates, please change the following three values



var cdnusd =  0.833;

var cdneuro = 0.683;

var usdeuro = 0.820;





var usdcdn =  1/cdnusd;

var eurocdn = 1/cdneuro;

var eurousd = 1/usdeuro;



///////////////////////////////////////////////////

// currency functions

///////////////////////////////////////////////////



function cdn2usd()

{ 

    var x = (document.calculator.currX.value); 

    x = (x * cdnusd); 

    return(x);

}



function cdn2euro()

{ 

    var x = (document.calculator.currX.value); 

    x = (x * cdneuro ); 

    return(x);

}



function usd2euro()

{ 

    var x = (document.calculator.currX.value); 

    x = (x * usdeuro); 

    return(x);

}



function usd2cdn()

{ 

    var x = (document.calculator.currX.value); 

    x = (x * usdcdn); 

    return(x);

}



function euro2cdn()

{ 

    var x = (document.calculator.currX.value); 

    x = (x * eurocdn); 

    return(x);

}



function euro2usd()

{ 

    var x = (document.calculator.currX.value); 

    x = (x * eurousd); 

    return(x);

}







// used to control precision

function fixNum(x)

{

  if (Number.prototype.toFixed) {

    x = x.toFixed(7);

    x = parseFloat(x);

  }

  else

  {

   var leftSide = Math.floor(x);

   var rightSide = x - leftSide;

   x = leftSide + Math.round(rightSide *10000000)/10000000;

  }



  return(x);

}





///////////////////////////////////////////////////

// area functions

///////////////////////////////////////////////////





function acr2sqm()

{ 

    var x = (document.calculator.areaX.value); 

    x = (x*4046873000); 

    x = (x/1000000); 		

    return(fixNum(x));

}



function acr2sqf()

{

    var x= (document.calculator.areaX.value); 

    x = (x*4046873000); x = (x/92903.04); 

    return (fixNum(x));

}



function acr2hec()

{

    var x= (document.calculator.areaX.value); 

    x= (x*4046873000); x= (x/10000000000);  

    return (fixNum(x));

}



function sqf2sqm()

{

    var x= (document.calculator.areaX.value); 

    x= (x*92903.04); x = (x/1000000); 

    return (fixNum(x));

}





function sqf2hec()

{

    var x= (document.calculator.areaX.value); 

    x= (x*92903.04); x= (x/10000000000); 

    return (fixNum(x));

}



function sqm2hec()

{

    var x= (document.calculator.areaX.value); 

    x= (x*1000000); x= (x/10000000000); 

    return (fixNum(x));

}



function sqm2acr()

{

    var x= (document.calculator.areaX.value); 

    x= (x*1000000); x= (x/4046873000); 

    return (fixNum(x));

}



function sqf2acr()

{

   var x= (document.calculator.areaX.value); 

   x= (x*92903.04); x= (x/4046873000); 

   return (fixNum(x));

}



function hec2acr()

{

   var x= (document.calculator.areaX.value); 

   x= (x*10000000000); x= (x/4046873000); 

   return (fixNum(x));

}



function sqm2sqf()

{

  var x= (document.calculator.areaX.value); 

  x= (x*1000000); x= (x/92903.04); 

  return (fixNum(x));

}



function hec2sqf()

{

  var x= (document.calculator.areaX.value); 

  x= (x*10000000000); x= (x/92903.04);

  return (fixNum(x));

}



function hec2sqm()

{

  var x= (document.calculator.areaX.value); 

  x= (x*10000000000); x= (x/1000000);

  return (fixNum(x));

}





///////////////////////////////////////////////////

// distance functions

///////////////////////////////////////////////////



function met2fee()

{

  var x= (document.calculator.distanceX.value); 

  x= (x * 1000); x= (x/304.8);

  return (fixNum(x));

}





function met2yar()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1000); x= (x/914.4); 

  return (fixNum(x));

}



function met2kil()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1000); x= (x/1000000); 

  return (fixNum(x));

}



function met2mil()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1000); x= (x/1609344);

  return (fixNum(x));

}





function fee2yar()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*304.8); x= (x/914.4); 

  return (fixNum(x));

}



function fee2kil()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*304.8); x= (x/1000000); 

  return (fixNum(x));

}



function fee2mil()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*304.8); x= (x/1609344);

  return (fixNum(x));

}



function kil2yar()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1000000); x= (x/914.4);

  return (fixNum(x));

}



function kil2mil()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1000000); x= (x/1609344);

  return (fixNum(x));

}



function mil2yar()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1609344); x= (x/914.4); 

  return (fixNum(x));

}



function fee2met()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*304.8); x= (x/1000);

  return (fixNum(x));

}



function yar2met()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*914.4); x= (x/1000); 

  return (fixNum(x));

}



function kil2met()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1000000); x= (x/1000);

  return (fixNum(x));

}



function mil2met()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1609344); x= (x/1000);

  return (fixNum(x));

}



function yar2fee()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*914.4); x= (x/304.8);

  return (fixNum(x));

}



function kil2fee()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1000000); x= (x/304.8);

  return (fixNum(x));

}



function mil2fee()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1609344); x= (x/304.8);

  return (fixNum(x));

}



function yar2kil()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*914.4); x= (x/1000000);

  return (fixNum(x));

}



function mil2kil()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*1609344); x= (x/1000000);

  return (fixNum(x));

}



function yar2mil()

{

  var x= (document.calculator.distanceX.value); 

  x= (x*914.4); x= (x/1609344);

  return (fixNum(x));

}



// MAIN functions to calculate currency, area, and distance



function doCurrency()

{

    // concatenate the selected values

    var  left = (document.calculator.currLeft.value);

    var  right = (document.calculator.currRight.value);



    if ( (left == right) && (left != "") )   // no conversion necessary

    {

         document.calculator.currY.value = document.calculator.currX.value ;  

         return;

    }

                                                    

    var patt =  left + right ;



    if (patt == "CDNUSD")

      document.calculator.currY.value= fixNum(cdn2usd());

    else if (patt == "CDNEURO")

      document.calculator.currY.value= fixNum(cdn2euro());

    else if (patt == "USDEURO")

      document.calculator.currY.value= fixNum(usd2euro()); 

    else if (patt == "USDCDN")

      document.calculator.currY.value= fixNum(usd2cdn());

    else if (patt == "EUROCDN")

      document.calculator.currY.value= fixNum(euro2cdn());

    else if (patt == "EUROUSD")

      document.calculator.currY.value= fixNum(euro2usd());

    else

        // one of the values was not selected

      document.calculator.currY.value=  "";

}





function doArea()

{

    // concatenate the selected values

    var  left = (document.calculator.areaLeft.value);

    var  right = (document.calculator.areaRight.value);



    if ( (left == right) && (left != "") )   // no conversion necessary

    {

         document.calculator.areaY.value = 

         document.calculator.areaX.value  ; 

         return;

    }

                                                    

    var patt =  left + right ;



    if (patt == "acrsqm")

      document.calculator.areaY.value= acr2sqm();

    else if (patt == "acrsqf")

      document.calculator.areaY.value= acr2sqf();

    else if (patt == "acrhec")

      document.calculator.areaY.value= acr2hec(); 

    else if (patt == "sqfsqm")

      document.calculator.areaY.value= sqf2sqm();

    else if (patt == "sqfhec")

      document.calculator.areaY.value= sqf2hec();

    else if (patt == "sqmhec")

      document.calculator.areaY.value= sqm2hec(); 

    else if (patt == "sqmacr")

      document.calculator.areaY.value=  sqm2acr();

    else if (patt == "sqfacr")

      document.calculator.areaY.value=  sqf2acr();

    else if (patt == "hecacr")

      document.calculator.areaY.value=  hec2acr(); 

    else if (patt == "sqmsqf")

      document.calculator.areaY.value=  sqm2sqf();

    else if (patt == "hecsqf")

      document.calculator.areaY.value=  hec2sqf();    

    else if (patt == "hecsqm")

      document.calculator.areaY.value=  hec2sqm(); 

    else

        // one of the values was not selected

      document.calculator.areaY.value=  "";

}



function doDistance()

{



    // concatenate the selected values

    var  left = (document.calculator.distanceLeft.value);

    var  right = (document.calculator.distanceRight.value);



    if ( (left == right) && (left != "") )   // no conversion necessary

    {

      document.calculator.distanceY.value = document.calculator.distanceX.value; 

      return;

    }

                                                    

    var patt =  left + right ;



    if (patt == "metfee")

      document.calculator.distanceY.value= met2fee();

    else if (patt == "metyar")

      document.calculator.distanceY.value= met2yar();

    else if (patt == "metkil")

      document.calculator.distanceY.value= met2kil(); 

    else if (patt == "metmil")

      document.calculator.distanceY.value= met2mil();

    else if (patt == "feeyar")

      document.calculator.distanceY.value= fee2yar();

    else if (patt == "feekil")

      document.calculator.distanceY.value= fee2kil(); 

    else if (patt == "feemil")

      document.calculator.distanceY.value=  fee2mil();

    else if (patt == "kilyar")

      document.calculator.distanceY.value=  kil2yar();

    else if (patt == "kilmil")

      document.calculator.distanceY.value=  kil2mil(); 

    else if (patt == "milyar")

      document.calculator.distanceY.value=  mil2yar();

    else if (patt == "feemet")

      document.calculator.distanceY.value= fee2met();

    else if (patt == "yarmet")

      document.calculator.distanceY.value= yar2met();

    else if (patt == "kilmet")

      document.calculator.distanceY.value= kil2met(); 

    else if (patt == "milmet")

      document.calculator.distanceY.value= mil2met();

    else if (patt == "yarfee")

      document.calculator.distanceY.value= yar2fee();

    else if (patt == "kilfee")

      document.calculator.distanceY.value= kil2fee(); 

    else if (patt == "mil2fee")

      document.calculator.distanceY.value=  mil2fee();

    else if (patt == "yarkil")

      document.calculator.distanceY.value=  yar2kil();

    else if (patt == "milkil")

      document.calculator.distanceY.value=  mil2kil(); 

    else if (patt == "yarmil")

      document.calculator.distanceY.value=  yar2mil();

    else

        // one of the values was not selected

      document.calculator.distanceY.value=  "";

}





function doCalc()

{

  doCurrency();

  doArea();

  doDistance();

  return false;

}




