// Tabulky přepsané z XLS do asociativních polí (data která se nepoužívala jsem vynechal)

var pravnicke_mesicne = {
  "DPPO":250,
  "DPH":500,
  "účto za doklad":27,
  "Mzdy do 5":300,
  "Mzdy nad 5":150,
  "Mzdy nad 25":5000,
  "Valuty (Intrast)":500,
  "Valuty (doklady) 0-2":1000,
  "Valuty (doklady) nad 2":1500,
  "Silniční daň":60,
  "Služby":100,
  "Obchod":200,
  "Výroba":500
};

var pravnicke_ctvrtletne = {
  "DPPO":750,
  "DPH":800,
  "účto za doklad":27,
  "Mzdy do 5":900,
  "Mzdy nad 5":450,
  "Mzdy nad 25":15000,
  "Valuty (Intrast)":1500,
  "Valuty (doklady) 0-2":3000,
  "Valuty (doklady) nad 2":4500,
  "Silniční daň":180,
  "Služby":300,
  "Obchod":600,
  "Výroba":1500
};

var fyzicke_mesicne = {
  "DPFO":167,
  "DPH":500,
  "doklad-evidence":22,
  "doklad-paušál":10
};

var fyzicke_ctvrtletne = {
  "DPFO":500
};

// Naskládáme data do jednoho pole, sepíšeme hodnoty typu agendy a zvolíme měnu

var data = {"mesicne":{"pravnicke":pravnicke_mesicne, "fyzicke":fyzicke_mesicne}, "ctvrtletne":{"pravnicke":pravnicke_ctvrtletne, "fyzicke":fyzicke_ctvrtletne}};
var typ_agendy_values = {"uc":"Účetnictví", "de":"Daňová evidence", "pa":"Paušálně"};
var obdobi_dph_values = {"mes":"Měsíčně", "ctvrt":"Čtvrtletně"};
var mena = " Kč";

/**
** Vybereme hodnotu selectu i pro šajze IE
**/

function getElement(name) {
  return eval("document.form." + name + ".options[document.form." + name + ".selectedIndex].innerHTML");
}

/**
** Přidáme option do selectu
**/

function addElement(parent, id, value) {
  var op = document.createElement("option");
  op.text = value;
  op.id = id;

  if(navigator.appName == "Microsoft Internet Explorer") parent.add(op, parent.options.length);
  else parent.add(op, parent.options[parent.options.length]);
}

/**
** Smažeme option ze selectu
**/

function removeElement(parent, id) {
  var op = document.getElementById(id);
  parent.removeChild(op);
}

/**
** Ošetříme možnosti které mohou nastat
**/

function zkontroluj() {
  var forma_podnikani = getElement("forma_podnikani");
  var typ_agendy = document.form.typ_agendy;
  var valutove_pokladny = getElement("valutove_pokladny");
  var pocet_pokladen = document.getElementById("tr_pocet_pokladen");
  var platce_dph = getElement("platce_dph");
  var tr_obdobi_dph = document.getElementById("tr_obdobi_dph");
  var obdobi_dph = document.getElementById("obdobi_dph");
  var za_jak_dlouho = document.getElementById("za_jak_dlouho");
  var za_jak_dlouho2 = document.getElementById("za_jak_dlouho2");
  var display;

  // Háček pro šajze IE jelikož neumí display: table-row;
  if(navigator.appName == "Microsoft Internet Explorer") display = "block";
  else display = "table-row";

  // Skrytí typu agendy podle formy podnikání
  if(forma_podnikani == "Fyzická osoba") {
    if(document.getElementById("de") == null) addElement(typ_agendy, "de", typ_agendy_values["de"]);
    if(document.getElementById("pa") == null) addElement(typ_agendy, "pa", typ_agendy_values["pa"]);
  } else {
    if(document.getElementById("de") != null) removeElement(typ_agendy, "de");
    if(document.getElementById("pa") != null) removeElement(typ_agendy, "pa");
  }

  // Skrytí počtu pokladen pokud je nastaveno na "Ne"
  if(valutove_pokladny == "Ano") pocet_pokladen.style.display = display;
  else pocet_pokladen.style.display = "none";

  // Skrytí období DPH pokdu je plátce nastaveno na "Ne"
  // Nastavení "za měsíc"/"za uvedené období" u počtu dokladů a celkové ceny
  if(platce_dph == "Ne") {
    if(document.getElementById("ctvrt") != null) removeElement(obdobi_dph, "ctvrt");
    tr_obdobi_dph.style.display = "none";
    za_jak_dlouho.innerHTML = "za měsíc";
    za_jak_dlouho2.innerHTML = "za měsíc";
  } else {
    if(document.getElementById("ctvrt") == null) addElement(obdobi_dph, "ctvrt", obdobi_dph_values["ctvrt"]);
    tr_obdobi_dph.style.display = display;
    za_jak_dlouho.innerHTML = "za uvedené období";
  }
  
  // Nastavení "za měsíc"/"za uvedené období" u celkové ceny
  if(getElement("obdobi_dph") == "Čtvrtletně") za_jak_dlouho2.innerHTML = "za čtvrtletí";
  else za_jak_dlouho2.innerHTML = "za měsíc";
  
}

/*
** Spočítáme a vypíšeme
*/

function vypocti() {
  var vysledek = document.getElementById("vysledek");
  var forma_podnikani = getElement("forma_podnikani");
  var typ_agendy = getElement("typ_agendy");
  var platce_dph = getElement("platce_dph");
  var obdobi_dph = getElement("obdobi_dph");
  var pocet_dokladu = document.form.pocet_dokladu.options[document.form.pocet_dokladu.selectedIndex].value;
  var pocet_zamestnancu = getElement("pocet_zamestnancu");
  var valutove_pokladny = getElement("valutove_pokladny");
  var pocet_pokladen = getElement("pocet_pokladen");
  var platce_sd = getElement("platce_sd");
  var predmet_podnikani = getElement("predmet_podnikani");

  var soucet = 0;
  var tmp = 0;

  if(obdobi_dph == "Měsíčně") { // Za měsíční období ********************************************************************************************

    switch(forma_podnikani) {
      case "Fyzická osoba":
        soucet += data["mesicne"]["fyzicke"]["DPFO"];
        break;
      default:
        soucet += data["mesicne"]["pravnicke"]["DPPO"];
        break;
    }

    if(platce_dph == "Ano") soucet += data["mesicne"]["pravnicke"]["DPH"];
    
    switch(typ_agendy) {
      case "Účetnictví":
        tmp = data["mesicne"]["pravnicke"]["účto za doklad"];
        break;
      case "Daňová evidence":
        tmp = data["mesicne"]["fyzicke"]["doklad-evidence"];
        break;
      default:
        tmp = data["mesicne"]["fyzicke"]["doklad-paušál"];
        break;
    }

    if(pocet_dokladu == "nad") soucet += 13500;
    else soucet += tmp * parseInt(pocet_dokladu);

    switch(pocet_zamestnancu) {
      case "do 5":
        soucet += 5 * data["mesicne"]["pravnicke"]["Mzdy do 5"];
        break;
      case "od 6 do 25":
        soucet += 25 * data["mesicne"]["pravnicke"]["Mzdy nad 5"];
        break;
      case "nad 25":
        soucet += data["mesicne"]["pravnicke"]["Mzdy nad 25"];
        break;
    }
    
    if(valutove_pokladny == "Ano") {
      soucet += data["mesicne"]["pravnicke"]["Valuty (Intrast)"];
      if(pocet_pokladen == "0 - 2") soucet += data["mesicne"]["pravnicke"]["Valuty (doklady) 0-2"];
      else soucet += data["mesicne"]["pravnicke"]["Valuty (doklady) nad 2"];
    }
    
    if(platce_sd == "Ano") soucet += data["mesicne"]["pravnicke"]["Silniční daň"];
    
    switch(predmet_podnikani) {
      case "Služby":
        soucet += data["mesicne"]["pravnicke"]["Služby"];
        break;
      case "Obchod":
        soucet += data["mesicne"]["pravnicke"]["Obchod"];
        break;
      case "Výroba":
        soucet += data["mesicne"]["pravnicke"]["Výroba"];
        break;
    }

  } else { // Za čtvrtletní období **************************************************************************************************************

    switch(forma_podnikani) {
      case "Fyzická osoba":
        soucet += data["ctvrtletne"]["fyzicke"]["DPFO"];
        break;
      default:
        soucet += data["ctvrtletne"]["pravnicke"]["DPPO"];
        break;
    }

    if(platce_dph == "Ano") soucet += data["ctvrtletne"]["pravnicke"]["DPH"];

    if(pocet_dokladu == "nad") soucet += 13500;
    else soucet += data["ctvrtletne"]["pravnicke"]["účto za doklad"] * parseInt(pocet_dokladu);

    switch(pocet_zamestnancu) {
      case "do 5":
        soucet += 5 * data["ctvrtletne"]["pravnicke"]["Mzdy do 5"];
        break;
      case "od 6 do 25":
        soucet += 25 * data["ctvrtletne"]["pravnicke"]["Mzdy nad 5"];
        break;
      case "nad 25":
        soucet += data["ctvrtletne"]["pravnicke"]["Mzdy nad 25"];
        break;
    }

    if(valutove_pokladny == "Ano") {
      soucet += data["ctvrtletne"]["pravnicke"]["Valuty (Intrast)"];
      if(pocet_pokladen == "0 - 2") soucet += data["ctvrtletne"]["pravnicke"]["Valuty (doklady) 0-2"];
      else soucet += data["ctvrtletne"]["pravnicke"]["Valuty (doklady) nad 2"];
    }

    if(platce_sd == "Ano") soucet += data["ctvrtletne"]["pravnicke"]["Silniční daň"];

    switch(predmet_podnikani) {
      case "Služby":
        soucet += data["ctvrtletne"]["pravnicke"]["Služby"];
        break;
      case "Obchod":
        soucet += data["ctvrtletne"]["pravnicke"]["Obchod"];
        break;
      case "Výroba":
        soucet += data["ctvrtletne"]["pravnicke"]["Výroba"];
        break;
    }
  
  }
  
  vysledek.value = soucet + mena;
  
}

