function r2(x, desMist) {
x = parseFloat(x);
return (Math.round(x * Math.pow(10, desMist)) / Math.pow(10, desMist)).toFixed(desMist);
}

function nf(x) {
x = parseFloat(x.replace(/,/g, ".").replace(/ /g, ''));
return isNaN(x) ? 0 : x;
}

function showNum(x, hr) {
return (x == Infinity || x == -Infinity || isNaN(x)) ? '-' : (hr ? hr_number(x) : x);
}

/* ajax test */
function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
    @else xmlhttp = false;
  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

var HTTP = getHTTPObject(); // create the HTTP Object
function sendReq(url,process,restype,method) {
  if (!(method == 'GET' || method == 'POST')) method='GET';
//    if (HTTP.readyState != 0) HTTP.abort();
  var timestamp = new Date();
  url += '&' + timestamp.getTime();
  HTTP.open(method, url, true);
  HTTP.onreadystatechange = function() {
    if (HTTP.readyState == 4 && HTTP.status==200 && HTTP.responseText) {
      var text = HTTP.responseText;
     if (restype == 'json_eval') {
        res = eval('(' + text + ')');
      } else {
        res = (restype == 'json') ? !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(text.replace(/"(\\.|[^"\\])*"/g, ''))) && eval('(' + text + ')') : text;
      }
      switch (process) {
        case 'httpSleva': { httpSleva2(res); break; }
      }
    }
  };
  HTTP.send(null);
}

function httpSleva(obj) {
  var HOST ='';
  var url = HOST + '?ws=sleva&lang=' + obj.form.elements['lang'].value + '&name=' + encodeURIComponent(obj.name) + '&value=' + encodeURIComponent(obj.value);
  var res = sendReq(url, 'httpSleva', 'json_eval', 'GET');
}

function httpSleva2(res) {
  if (T_gobj('fac_sleva')) T_gobj('fac_sleva').innerHTML = res.sleva;
  if (T_gobj('fac_sleva_cena')) T_gobj('fac_sleva_cena').innerHTML = res.sleva_cena;
  if (T_gobj('fac_cena_sleva')) T_gobj('fac_cena_sleva').innerHTML = res.cena_sleva_bez_dph;
  if (T_gobj('fac_datum_dodani')) T_gobj('fac_datum_dodani').innerHTML = res.datum_dodani;
  if (T_gobj('eshop_soucet_cen_table')) T_gobj('eshop_soucet_cen_table').innerHTML = res.soucet_cen_table;
  prepocitat_ceny_katalogu(res.sleva);
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function prepocitat_ceny_katalogu(sleva) {
  individualni_cena = getElementsByClassName('fac_individualni_cena');
  moje_cena = getElementsByClassName('c_cena');
  var desmist = lang == 'cz' ? 2 : 4;
  if (individualni_cena && moje_cena && individualni_cena.length && moje_cena.length) {
    for (var i = 0; i < individualni_cena.length; i++) {
      moje_cena[i].innerHTML = showNum(r2(nf(individualni_cena[i].value) * (100 - sleva) / 100, desmist));
    }
  }
}
