// globální proměnné
var display = 1;	// typ zobrazení


// obecny
function xokno(zdroj, jmeno, sirka, vyska) {
	okno = window.open(zdroj, jmeno,'toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizeable=yes,copyhistory=no,width='+sirka+',height='+vyska+',left=50,top=50');
verze = parseInt(navigator.appVersion);   // zjištění verze prohlížeče 
if(verze >= 4) {   // pokračovat od verze 4 výše 
  if (typeof(okno.document) == "object") okno.focus();  // existuje-li okno, nastaví ho na aktivní 
  }
}

function okalk(zdroj, jmeno) {
	window.open(zdroj, jmeno,'toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizeable=yes,copyhistory=no,width=250,height=280,left=50,top=50');
}

function Spocti() {
	with (document.form1) {
		document.form1.Rvstup.value = (document.form1.Lseznam.options[document.form1.Lseznam.options.selectedIndex].value == 0
		|| document.form1.Rseznam.options[document.form1.Rseznam.options.selectedIndex].value == 0 ? '*****' :
		xnormalize(document.form1.Lvstup.value *
		document.form1.Lseznam.options[document.form1.Lseznam.options.selectedIndex].value /
		document.form1.Rseznam.options[document.form1.Rseznam.options.selectedIndex].value,13));
	}
	zobraz(display);
}

function Kontrola(obj) {
	if ((obj.value.indexOf(",") > -1) && (obj.value.indexOf(",") == obj.value.lastIndexOf(","))) {
		a=obj.value.split(",");
		obj.value = a[0]+"."+a[1];
	}
	if (isNaN(obj.value)) {
		alert("Vložená hodnota není platný číselný údaj!");
		return false
	}
	return true
}

function xnormalize(a) {
	k=a/Math.abs(a);
	a=Math.abs(a);
	l=Math.floor(Math.log(a)/Math.log(10)+0.000001);
	z=Math.round(0.001+(a/Math.pow(10,l))*100000)/100000;
	v=k*Math.floor(0.001+z*Math.pow(10,l)*100000)/100000;
//alert('k='+k+' a='+a+' l='+l+' z='+z+' v='+v);
//alert(k*Math.floor(z*Math.pow(10,l)*100000)/100000);
/*	x=(l%3);
	//x=(x==1)?2:((x==2)?1:(x==-1?-2:(x==-2?-1:x)));
	z*=Math.pow(10,x);
	l-=x;
//	alert(x); */
	if (a==0) v=l=0;
	if (l>3 || l<-3) v=k*z+"e"+l;
	return v;
}

// funkce pro typ zobrazeni 3
function compute(form,name) {
	if (form[name].value) {
		var uval=0;
		uval = form[name].value*data[name];
		for (var i in data)
			form[i].value=xnormalize(uval/data[i]);
	}
}

// ------------ --------------

// funkce rozbaluje a zbaluje polozky v submenu
function outliner(childID) {
    if (Boolean(document.getElementById))
      var child = document.getElementById(childID);
    else if (Boolean(document.all))
      var child = document.all[childID];
    else
      var child = eval('document.'+childID);
	if (child.className == "off") {
		child.className = "on";
		eval("document." + childID + "_bullet.src = './sipd.gif'");
	}
	else {
		child.className = "off";
		eval("document." + childID + "_bullet.src = './sipp.gif'");
	}
	posli_susenku(1,0,0);		// cookies se ukládají ihned
}

// ukládá cookies
function posli_susenku(sbalovat, seznam, strana){
	if (!sbalovat && !seznam) return true;
	var str;
	var vyprs=new Date();
	vyprs.setDate(365 + vyprs.getDate());
	if (sbalovat) {
      if (Boolean(document.getElementById))
   		str=document.getElementById('mech').className + '_' + 
			document.getElementById('opt').className + '_' + 
			document.getElementById('ele').className;
      else if (Boolean(document.all))
		str=document.all['mech'].className + '_' + 
			document.all['opt'].className + '_' + 
			document.all['ele'].className;
      else {
        var xmech = eval('document.mech');
        var xopt  = eval('document.opt');
        var xele  = eval('document.ele');
		str=xmech.className + '_' + 
			xopt.className + '_' + 
			xele.className;
      }
	  document.cookie="Odkazy="+escape(str)+"; expires="+vyprs.toGMTString()+";";
	}
	if (seznam) {
		str=strana+'_'+
			document.form1.Lseznam.options[document.form1.Lseznam.selectedIndex].id+'_'+
			document.form1.Rseznam.options[document.form1.Rseznam.selectedIndex].id+'_'+
			document.form1.Lvstup.value+'_'+
			document.form1.Rvstup.value;	
	}
	document.cookie="Jednotky="+escape(str)+"; expires="+vyprs.toGMTString()+";";
	return true;
} 

// přečte cookies
function cti_susenku(sbalovat, seznam, strana){
	if (!sbalovat && !seznam) return true;
	var cookieList=document.cookie.split("; ");
	var cookieArray = new Array();
	for (var i=0; i < cookieList.length; i++){
		var name = cookieList[i].split("=");
		cookieArray[unescape(name[0])] = unescape(name[1]);
	}
    if (sbalovat && cookieArray['Odkazy']) { // data pro sbalovaci seznam odkazu na stranky velicin
	  var setup = cookieArray['Odkazy'].split("_");
      if (Boolean(document.getElementById)) {
        var xmech = document.getElementById('mech');
		var xopt  = document.getElementById('opt');
		var	xele  = document.getElementById('ele');
      }
      else if (Boolean(document.all)) {
        var xmech = document.all['mech'];
		var xopt  = document.all['opt'];
		var	xele  = document.all['ele'];
      }
      else {
        var xmech = eval('document.mech');
		var xopt  = eval('document.opt');
		var	xele  = eval('document.ele');
      }
      xmech.className = setup[0];
	  xopt.className = setup[1];
	  xele.className = setup[2];
	  if (xmech.className == 'on') document.mech_bullet.src = './sipd.gif';
	  else document.mech_bullet.src = './sipp.gif';
	  if (xopt.className == 'on') document.opt_bullet.src = './sipd.gif';
	  else document.opt_bullet.src = './sipp.gif';
	  if (xele.className == 'on') document.ele_bullet.src = './sipd.gif';
	  else document.ele_bullet.src = './sipp.gif';
	}	
	if (seznam && cookieArray['Jednotky']) {		// data pro seznamy prevodnich jednotek
		var setup = cookieArray['Jednotky'].split("_");
		if (setup[0] == strana) {
			for (var i=0; i < document.form1.Lseznam.length; i++){
				if (document.form1.Lseznam.options[i].id == setup[1] && setup[1] != 'm0')
					document.form1.Lseznam.selectedIndex = i;
				if (document.form1.Rseznam.options[i].id == setup[2] && setup[2] != 'n0')
					document.form1.Rseznam.selectedIndex = i;
			}
			document.form1.Lvstup.value=setup[3];
			document.form1.Rvstup.value=setup[4];
		}
		Spocti();
	}
	return true;
};

// podporuje prohlizec DHTML?
function isDHTML()
{
	return ((navigator.userAgent.indexOf("MSIE") >= 0) &&
                   (navigator.appVersion.substring(0,1) >= 4))
}

// pokud prohlizec podporuje DHTML, povoli zmenu seznamu jednotek na sbalovaci seznam
function Nastav_odkazy()
{
	if((navigator.userAgent.indexOf("MSIE") >= 0) && (navigator.appVersion.substring(0,1) >= 4)) 
	{
		with (document) {
		//	sbalovac.width = 12;
		//	sbalovac.height = 12;
			mech_bullet.width = 12;
			mech_bullet.height = 20;
			opt_bullet.width = 12;
			opt_bullet.height = 20;
			ele_bullet.width = 12;
			ele_bullet.height = 20;
			all('mech_anch').href = '#';
			all('opt_anch').href = '#';
			all('ele_anch').href = '#';
		}
	}
}


//-------------------  vývoj ---

function zamen()
{
	with (document.form1) {
		xtemp = Lvstup.value;
		Lvstup.value = Rvstup.value;
		Rvstup.value = xtemp;
		xtemp = Lseznam.selectedIndex;
		Lseznam.selectedIndex = Rseznam.selectedIndex;
		Rseznam.selectedIndex = xtemp;
	}
} 

function zobraz(typ)		// 1 = Norm, 2 = Sci, 3 = Eng
{
	display = typ;
	Lval = document.form1.Lvstup.value;
	Rval = document.form1.Rvstup.value;
	if (typ == 1)
	{
		Lval = xnormalize(Lval);
		Rval = xnormalize(Rval);
	}
	if (typ == 2)
	{
		Lval = toSci(Lval, false);
		Rval = toSci(Rval, false);
	}
	if (typ == 3)
	{
		Lval = toSci(Lval, true);
		Rval = toSci(Rval, true);
	}
	if (! isNaN(document.form1.Lvstup.value)) document.form1.Lvstup.value = Lval;
	if (! isNaN(document.form1.Rvstup.value)) document.form1.Rvstup.value = Rval;
}


function toSci(s, eng){		
    var exp = 0;
    var negative = false;
    if (s.length > 0 && s.charAt(0) == '-'){
        negative = true;
        s = s.substring(1,s.length);
    }
    var splitter = s.split(new RegExp('[eE]'));
    if (splitter.length > 1){
        exp = parseInt(splitter[1]);
        s = splitter[0];
    }
    splitter = s.split(/[\.]/);
    if (splitter.length > 1){
        s = splitter[0] + splitter[1];
        exp += splitter[0].length -1;
    } else {
        exp += s.length - 1;
    }      
    var leadingZeros = 0;
    for (leadingZeros=0; leadingZeros < s.length  && s.charAt(leadingZeros) == '0'; leadingZeros++){
       exp = exp - 1;
    } 
    s = s.substring(leadingZeros, s.length);
    var moveDec;
    if (eng){
        if (exp>=0){
            moveDec = (exp % 3) + 1;
        } else {            
            moveDec = 4 - ((-exp) % 3);
            if (moveDec == 4){
                moveDec = 1;
            }
        }  
        exp -= (moveDec - 1);            
    } else {
        moveDec = 1;
    }
    var trailingZeros = '';
    for (var i=s.length; i<moveDec; i++){
        trailingZeros+='0';
    }
    return (
        (negative?'-':'') +
        ((s.length==0)?'0':s.substring(0,moveDec)) + 
        ((s.length<=moveDec)?trailingZeros:('.'+s.substring(moveDec,s.length))) +
        ((s.length==0||exp==0)?'':('e'+exp))
    );
}

			