// JavaScript Document
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Copyright © 1998-2004, www.digitaldutch.com (info@digitaldutch.com)

function stopError() {
  return true;
}
window.onerror = stopError;

// Set cookie expiration date to a year from now
var expDate = new Date();
expDate.setTime(expDate.getTime() + (1000 * 60 * 60 * 24 * 365));

var numDigs;
var curQuantity;
var quantities = new Array("Area", "Bits", "Density", "Energy", "Force", "Length",
  "Mass", "Power", "Pressure", "Speed", "Temperature", "Volume");
var initializing = true;

function initialize(quantity){
  curQuantity = quantity;
  if (!initializing) setCookie("curQuantity", curQuantity);
  Convert();
}

function Convert(){

  with (parent.UC_text.document.forms['ConvertForm']) {

    var lFrom     = parseFloat(elements['ValueFrom'].value);
    var lUnitFrom = parseFloat(elements['UnitFrom'].options[elements['UnitFrom'].selectedIndex].value);
    var lUnitTo   = parseFloat(elements['UnitTo'].options[elements['UnitTo'].selectedIndex].value);

    elements['ValueTo'].value = formatFloat(lFrom * lUnitFrom / lUnitTo, numDigs);
  }

}

function ConvertBack(){

  with (parent.UC_text.document.forms['ConvertForm']) {

    var lTo       = parseFloat(elements['ValueTo'].value);
    var lUnitFrom = parseFloat(elements['UnitFrom'].options[elements['UnitFrom'].selectedIndex].value);
    var lUnitTo   = parseFloat(elements['UnitTo'].options[elements['UnitTo'].selectedIndex].value);

    elements['ValueFrom'].value = formatFloat(lTo / lUnitFrom * lUnitTo, numDigs);
  }

}

function formatFloat(number, X) {
// rounds number to X decimal places, default is 6
    X = (!X ? 6 : X);
    return Math.round(number * Math.pow(10,X)) / Math.pow(10,X);
}

// Retrieve a cookie
function getCookie(name){
  var cname = name + "=";
  var dc = document.cookie;
  if (dc.length > 0) {
    begin = dc.indexOf(cname);
    if (begin != -1) {
      begin += cname.length;
      end = dc.indexOf(";", begin);
      if (end == -1) end = dc.length;
      return unescape(dc.substring(begin, end));
    }
  }
  return null;
}

// Save a cookie
function setCookie(name, value) {
  document.cookie = name + "=" + escape(value) + "; path=/" +
    ((expDate == null) ? "" : "; expires=" + expDate.toGMTString());
}

function getNumDigs(){
  var numDigs = getCookie("UCNumDigs");
  if (numDigs != null) return parseInt(numDigs);
  else return 6;
}

function getUserQuantity(){
  var i;
  var returnQuantity;
  var cookieQuantity = getCookie("userQuantity");

  // Default value
  returnQuantity = "Length";

  // Check if valid cookie quantity exists
  if (cookieQuantity != null) {
    for (i = 0; i <= (quantities.length - 1); i++) {
      if (cookieQuantity == quantities[i]) returnQuantity = cookieQuantity;
    }
  }
  return returnQuantity;
}

function getUserQuantityIndex() {
  var i;
  var userQuantityIndex = -1;
  var userQuantity = getUserQuantity();

  for (i = 0; i <= (quantities.length -1); i++) {
      if (userQuantity == quantities[i]) userQuantityIndex = i;
  }
  return parseInt(userQuantityIndex);
}

function getDefaultQuantityMethod() {
  if (getCookie("defaultQuantityMethod") == "userDefined")
    return "userDefined";
  else return "remember";
}

function displayPage(URL)
{
  window.open(URL, "UC_text");
}

function loadOptions(){
  numDigs = getNumDigs();

  if (getDefaultQuantityMethod() == "userDefined")
    curQuantity = getUserQuantity();
  else curQuantity = getCookie("curQuantity");
  if (curQuantity == null) curQuantity = "Length";

  displayPage(curQuantity.toLowerCase() + ".htm");
  initializing = false;
}

function expandCollapse() {
    for (var i=0; i<expandCollapse.arguments.length; i++) {
        var element = document.getElementById(expandCollapse.arguments[i]);
            element.style.display = (element.style.display == "none") ? "block" : "none";
	}
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}