/* --- DHTML helpers --- */
var isCSS, isW3C, isIE4, isNN4, isIE6CSS;
var isNN, isIE;

function initDHTMLAPI() {
 if (document.images) {
  isCSS = (document.body && document.body.style) ? true : false;
  isW3C = (isCSS && document.getElementById) ? true : false;
  isIE4 = (isCSS && document.all) ? true : false;
  isNN4 = (document.layers) ? true : false;
  isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
 }
 isNN = (navigator.appName.indexOf('Netscape') != -1) ? true : false;
 isIE = (navigator.appName.indexOf('Explorer') != -1) ? true : false;
}
//window.onload = initDHTMLAPI;
initDHTMLAPI();

// for NN4
function findLayer(doc, name) {
 var object;
 for (var i = 0; i < doc.layers.length; i++) {
  if (doc.layers[i].name == name) {
   object = doc.layers[i];
   break;
  }
  if (doc.layers[i].document.layers.length > 0) object = findLayer(document.layers[i].document, name);
 }
 return object;
}

function getObject(ob) {
 var object;
 if(typeof ob != "string") return ob;
 if(isW3C) object = document.getElementById(ob);
 else if (isIE4) object = document.all(ob);
 else if (isNN4) object = findLayer(document, ob);
 return object;
}

function getObjectStyle(ob) {
 var object = getObject(ob);
 if (object && isCSS) object = object.style;
 return object;
}
/* ---------- */


function calcFillTypeOptions(id_form) {
 var obj = getObject(id_form);
 var elem = obj.type;
 for(var i=0; i<calc_type_amount; i++) {
  elem.options[i] = new Option(calc_type_code[i], i, 0, 0);
 }
 if(calc_selectedTypeIndex >= 0) {
  elem.options[calc_selectedTypeIndex].selected = true;
 }
} 

function calcFillUnitOptions(id_form) {
 var obj = getObject(id_form);
 var type = obj.type.options[obj.type.selectedIndex].value;
 var elem1 = obj.unit1;
 var elem2 = obj.unit2;
 elem1.options.length = 0;
 elem2.options.length = 0;
 for(var i=0; i<calc_unit_amount[type]; i++) {
  elem1.options[i] = new Option(calc_unit_code[type][i], calc_unit_value[type][i], 0, 0);
  elem2.options[i] = new Option(calc_unit_code[type][i], calc_unit_value[type][i], 0, 0);
 }
 if(calc_selectedUnit1Index[type] >= 0) {
  elem1.options[calc_selectedUnit1Index[type]].selected = true;
 }
 if(calc_selectedUnit2Index[type] >= 0) {
  elem2.options[calc_selectedUnit2Index[type]].selected = true;
 }
 obj.value1.value = 1;
 obj.value2.value = 0
} 

function calcUnitCount(id_form) {
 var obj = getObject(id_form);
 var unit1, unit2, value1, value2;
 unit1 = obj.unit1.options[obj.unit1.selectedIndex].value;
 unit2 = obj.unit2.options[obj.unit2.selectedIndex].value;
 value1 = obj.value1.value;
 value2 = obj.value2.value;
 if(value1.indexOf(",") >= 0) value1 = value1.replace(",", ".");
 if(isNaN(value1) || value1=="") value1 = "0";
 if(isNaN(value2) || value2=="") value2 = "0";
 if (obj.type.selectedIndex==4) {  // teplota
  if (obj.unit1.selectedIndex!=obj.unit2.selectedIndex) {
   if (obj.unit1.selectedIndex==0) { value1=parseFloat(value1)-32.0; }
   else { value1=parseFloat(value1)+17.777777778; }
  }
 }
 value2 = Math.round(100*parseFloat(unit1)*parseFloat(value1)/parseFloat(unit2))/100.0;
 obj.value2.value = value2;
} 

calc_type_amount=5;
calc_type_code = new Array('délka', 'plocha', 'objem', 'hmotnost', 'teplota'); 
calc_selectedTypeIndex = 0; 

calc_unit_amount = new Array(7,9,12,7,2);
calc_unit_code = new Array();
calc_unit_value = new Array();
calc_unit_code[0] = new Array('palec', 'stopa', 'yard', 'míle', 'milimetr', 'metr', 'kilometr'); 
calc_unit_value[0] = new Array(2.54e-2, 0.3048, 0.9144, 1609.344, 1.0e-3, 1.0, 1000.0); 
calc_unit_code[1] = new Array('čtv. palec', 'čtv. stopa', 'čtv. yard', 'akr', 'čtv. míle', 'čt. milimetr', 'čtv. metr', 'hektar', 'čtv. km'); 
calc_unit_value[1] = new Array(6.4516e-4,9.290304e-2,8.361307045e-1,4046.85642240,3.434290938e+6,1e-6,1,1e+4,1e+6); 
calc_unit_code[2] = new Array('čaj. lžíce', 'pol. lžíce', 'kr. palec', 'obj. unce', 'hrnek', 'pinta', 'čtvrtka', 'galon', 'ol. barel', 'mililitr', 'decilitr', 'litr'); 
calc_unit_value[2] = new Array(4.928922e-3,1.478677e-2,1.638706400e-2,2.957352956e-2,0.23658823648,4.731764730e-1,9.463529460e-1,3.785411784,158.9872949,1.0e-3,0.1,1.0); 
calc_unit_code[3] = new Array('unce', 'tr. unce', 'libra', 'tr. libra', 'cent', 'gram', 'kilogram'); 
calc_unit_value[3] = new Array(2.83495231e-02,0.0311034768,0.453592243,0.373241722,45.359237,1.0e-3,1.0); 
calc_unit_code[4] = new Array('°F', '°C'); 
calc_unit_value[4] = new Array(1.0,1.8); 
calc_selectedUnit1Index = new Array(0,0,0,0,0); 
calc_selectedUnit2Index = new Array(4,5,9,5,1); 

