function number_format(a, b, c, d) {
 //a = a.replace(/ /, '');
 a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
 e = a + '';
 f = e.split('.');
 if (!f[0]) {
  f[0] = '0';
 }
 if (!f[1]) {
  f[1] = '';
 }
 if (f[1].length < b) {
  g = f[1];
  for (i=f[1].length + 1; i <= b; i++) {
   g += '0';
  }
  f[1] = g;
 }
 if(d != '' && f[0].length > 3) {
  h = f[0];
  f[0] = '';
  for(j = 3; j < h.length; j+=3) {
   i = h.slice(h.length - j, h.length - j + 3);
   f[0] = d + i +  f[0] + '';
  }
  j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
  f[0] = j + f[0];
 }
 c = (b <= 0) ? '' : c;
 return f[0] + c + f[1];
}

var displayedNotOnlineWarning = false;
function recalculatePrices() {
  var f = document.pojisteni_domacnosti;
  var r = f.pojistna_castka_celkem;
  
  var v =    Number(f.zakladni_zarizeni_domacnosti.value.replace(/ /, '')) + 
             Number(f.stavebni_soucasti.value.replace(/ /, '')) +
             Number(f.technicke_pristroje_do_5let.value.replace(/ /, '')) +
             Number(f.elektronika_do_5let.value.replace(/ /, '')) +
             Number(f.jizdni_kola_do_5let.value.replace(/ /, '')) +
             Number(f.plavidla.value.replace(/ /, '')) +
             Number(f.dalsi_sportovni_veci_do_5let.value.replace(/ /, '')) +
             Number(f.obleceni_do_2let.value.replace(/ /, '')) +
             Number(f.prislusenstvi_motorovych_vozidel.value.replace(/ /, '')) +
             Number(f.domaci_zvirata.value.replace(/ /, '')) +
             Number(f.veci_bazar.value.replace(/ /, '')) +
             Number(f.veci_k_vydelecne_cinnosti.value.replace(/ /, '')) +
             Number(f.technicke_pristroje_po_5letech.value.replace(/ /, '')) +
             Number(f.elektronika_po_5letech.value.replace(/ /, '')) +
             Number(f.jizdni_kola_po_5letech.value.replace(/ /, '')) +
             Number(f.dalsi_sportovni_veci_po_5letech.value.replace(/ /, '')) +
             Number(f.obleceni_po_2letech.value.replace(/ /, '')) +
             Number(f.ostatni_veci.value.replace(/ /, ''));

  if(v > 2000000) {
    if(displayedNotOnlineWarning === false) {
      alert('Pojistná částka celkem nesmí překročit částku 2 miliony. V opačném případě nelze domácnost pojistit on-line.');
      displayedNotOnlineWarning = true;
    }  
    
    getLayer('buttonNextTop').disabled = true;
    getLayer('buttonNextTop').onclick = function () { 
      alert('Pojistná částka celkem nesmí překročit částku 2 miliony. V opačném případě nelze domácnost pojistit on-line.');
    }
    getLayer('buttonNextBottom').disabled = true;
    getLayer('buttonNextBottom').onclick = function () { 
      alert('Pojistná částka celkem nesmí překročit částku 2 miliony. V opačném případě nelze domácnost pojistit on-line.');
    }    
  } else {
    displayedNotOnlineWarning = false;
    getLayer('buttonNextTop').disabled = false;
    getLayer('buttonNextTop').onclick = function () { }    
    getLayer('buttonNextBottom').disabled = false;
    getLayer('buttonNextBottom').onclick = function () { }    
  }              
             
  r.value = v;
  r.value = number_format(r.value, 0, '.', ' ');
  return true;            
}

var count = 1;

function deleteElement(element) {
  getLayer('price_x').value = number_format(Number(getLayer('price_x').value.replace(/ /, '')) - Number(getLayer('price_'+element.value).value.replace(/ /, '')), 0, '.', ' ');
  getLayer('pocet_mimoradnych_veci').value -= 1;

  var parent_node = getLayer('item_'+element.value).parentNode;
  parent_node.removeChild(getLayer('item_'+element.value));
}

function nextElement() {
	
  var last = document.getElementById('seznam_veci_mimoradne_hodnoty').lastChild;
 	    count++;
 	    getLayer('pocet_mimoradnych_veci').value = count;
 	    
	    var newitem_delete = document.createElement('div');
	    // newitem_id.id = 'id_item_'+count;
	    newitem_delete.className = 'delete_item_div';
	    var input_delete = document.createElement('input');
	    input_delete.type = 'checkbox';
	    input_delete.name = 'delete_'+count;
	    input_delete.id = 'delete_'+count;
	    input_delete.value = count;
	    input_delete.onclick = function () { 
        deleteElement(this);
      }
	    input_delete.checked = 'checked';
	    newitem_delete.appendChild(input_delete); 	    
 	    
	    var newitem_id = document.createElement('div');
	    // newitem_id.id = 'id_item_'+count;
	    newitem_id.className = 'id_item_div';
	    var input_id = document.createElement('input');
	    input_id.type = 'text';
	    input_id.size = 3;
	    input_id.name = 'id_'+count;
	    input_id.id = 'id_'+count;
	    input_id.className = 'item_ID';
	    input_id.value = count;
	    input_id.disabled = true;
	    newitem_id.appendChild(input_id);
	    
	    var newitem_desc = document.createElement('div');
	    //newitem_desc.id = 'desc_item_'+count;
	    newitem_desc.className = 'desc_item_div';
	    var input_desc = document.createElement('input');
	    input_desc.type = 'text';
	    input_desc.size = 40;
	    input_desc.name = 'desc_'+count;
	    input_desc.id = 'desc_'+count;
	    input_desc.className = 'item_DESC';
	    //input_desc.onchange = nextElement;
	    newitem_desc.appendChild(input_desc);
	    
	    var newitem_price = document.createElement('div');
	    // newitem_price.id = 'pric_item_'+count;
	    newitem_price.className = 'price_item_div';
	    var input_price = document.createElement('input');
	    input_price.type = 'text';
	    input_price.size = 20;
	    input_price.name = 'price_'+count;
	    input_price.id = 'price_'+count;
	    input_price.className = 'item_PRICE';
	    input_price.onchange = function () {
        recalculatePricesX();
        this.value=number_format(this.value, 0, '.', ' '); 
      }  
	    newitem_price.appendChild(input_price);
      
      var newitem = document.createElement('div');
      newitem.id='item_'+count;
      newitem.className = 'item_div';
      
      newitem.appendChild(newitem_delete);
      newitem.appendChild(newitem_id);	    
      newitem.appendChild(newitem_desc);
      newitem.appendChild(newitem_price);
	    
	    last.parentNode.insertBefore(newitem, last.nextSibling);
}


function copy_textbox(from, to) {
  getLayer(to).value = getLayer(from).value;
  return true;
}

function copy_selectbox(from, to) {
  var f = getLayer(from);
  var t = getLayer(to);
  
  clear_selectbox(to);
  t.length = 0;
  
  for(i=0;i<f.options.length;i++) {
    t.length++;
		t.options[t.options.length-1].value = f.options[i].value;
	  t.options[t.options.length-1].text = f.options[i].text;
	  
	  if(f.options[i].selected == true) {
      t.options[i].selected = true;
    }
  }
  return true;
}

function clear_textbox(id) {
  var e = getLayer(id);
  e.value = "";
  return true;
}

function clear_selectbox(id) {
  // clear selectbox
  var e = getLayer(id);
  e.selected = null;
  for (c=0;c<e.options.length;c++) {
    e.options[c] = null;
  }    
  
  if(e.options.length != 0) {
    clear_selectbox(id);
  }
      
}

function price_add(price, key) {
  var final_price = 0;
  if(price.checked === true) {
    final_price = Number(getLayer('default_price_'+key).value) + Number(price.value);
  } else {
    final_price = Number(getLayer('default_price_'+key).value);
  }
  getLayer('insurance').value = final_price;
  getLayer('insurance_'+key).value = final_price;
  getLayer('price_'+key).innerHTML = "<b>" + number_format(final_price, 0, '.', ' ') + ",- Kč&nbsp;" + "</b>";
}

function check_addins(chbox, key) {
  var chbox_normal = getLayer('liab_'+key+'|1');
  var chbox_optimal = getLayer('liab_'+key+'|2');
    
  if(chbox_normal.checked === true) {
    chbox_normal.checked = false;
    price_add(chbox_normal, key);
  }
  
  if(chbox.checked === true) {
    chbox_normal.disabled = true;
    chbox_optimal.checked = true;
    selectLiability(chbox_optimal,key,2);
    price_add(chbox_optimal,key);
   
  } else {
    chbox_normal.disabled = false;
    chbox_optimal.checked = false;
    selectLiability(chbox_optimal,key,2);
     price_add(chbox_optimal,key);
  }
  
  return true;
}

function check_addins_generali(chbox, key) {
  var chbox_normal = getLayer('liab_'+key+'|1');
  if(chbox.checked === true) {   
    chbox_normal.checked = true;
    selectLiability(chbox_normal,key,2);
    price_add(chbox_normal,key);   
  } else {
    chbox_normal.checked = false;
    selectLiability(chbox_normal,key,2);
     price_add(chbox_normal,key);
  }
  
  return true;
}


function edit_prices(chbox, key) {
  if(chbox.checked === true) {
    getLayer('liab_'+key+'|1').value = '700';
    getLayer('liab_'+key+'|2').value = '1100';
    getLayer('liab_'+key+'|3').value = '1500';
    
    if(getLayer('liab_'+key+'|1').checked === true) {
      price_add(getLayer('liab_'+key+'|1'), key);
    }
    else if(getLayer('liab_'+key+'|2').checked === true) {
      price_add(getLayer('liab_'+key+'|2'), key);
    }
    else if(getLayer('liab_'+key+'|3').checked === true) {
      price_add(getLayer('liab_'+key+'|3'), key);
    }
    /*    
    else {
      alert('Lze pouze s pojištěním odpovědnosti');
      chbox.checked=false;
      return false;
    }
    */
    
  } else {
    getLayer('liab_'+key+'|1').value = '360';
    getLayer('liab_'+key+'|2').value = '620';
    getLayer('liab_'+key+'|3').value = '1010';
        
    if(getLayer('liab_'+key+'|1').checked === true) {
      price_add(getLayer('liab_'+key+'|1'), key);
    }
    else if(getLayer('liab_'+key+'|2').checked === true) {
      price_add(getLayer('liab_'+key+'|2'), key);
    }
    else if(getLayer('liab_'+key+'|3').checked === true) {
      price_add(getLayer('liab_'+key+'|3'), key);
    }   
    /*
    else {
      alert('Lze pouze s pojištěním odpovědnosti');
      chbox.checked=false;
      return false;
    }
    */
           
  }
  return true;
}


function validate_form(f, step) {
  var msg = "";
  if(step == '1') {
    if(f.psc.value == "") {
      msg += 'Zadejte PSČ pojišťované domácnosti.' + '\r\n';
    }
  
    if(f.cobce.value == 0) {
      msg += 'Vyberte část obce.' + '\r\n';
    }
  
    if(f.typ_domacnosti.value == 0) {
      msg += 'Vyberte typ domácnosti.' + '\r\n';
    }
  
    if(f.umisteni_domacnosti.value == 0) {
      msg += 'Vyberte umístění domácnosti.' + '\r\n';
    }
  
    if(f.pojisteni_nprostor[0].checked === true) {
      // klient si přeje připojistit nebytové prostory
      if(f.druh_nebytovych_prostor.value == 0) {
        msg += 'Vyberte druh nebytových prostor.' + '\r\n';
      }
      
      if(f.druh_nebytovych_prostor.value == 2 || f.druh_nebytovych_prostor.value == 3) {
        if(f.druh_nebytovych_prostor_popis.value == "") {
          msg += 'Popište druh nebytových prostor.' + '\r\n';
        }
      }

      if(f.pojisteniGaraze[0].checked === true) {
        // pojištění věcí v garáži
        if(f.pscGaraze.value == "") {
          msg += 'Zadejte PSČ pojišťované garáže.' + '\r\n';
        }
    
        if(f.cobceGaraze.value == 0) {
          msg += 'Vyberte část obce garáže.' + '\r\n';
        }
  
        if(f.uliceGaraze.value == 0) {
          msg += 'Vyberte ulici garáže.' + '\r\n';
        }    
      }
    }
  
    if(f.zakladni_zarizeni_domacnosti.value == 0 || f.zakladni_zarizeni_domacnosti.value == "") {
      msg += 'Zadejte částku základního zařízení domácnosti.' + '\r\n';
    }
    
    var vPojistnaCastkaCelkem = f.pojistna_castka_celkem.value.replace(/ /, "");
    if(vPojistnaCastkaCelkem > 2000000) {
      alert('Pojistná částka celkem nesmí překročit částku 2 miliony. V opačném případě nelze domácnost pojistit on-line.');
    }
    if(vPojistnaCastkaCelkem < 100000) {
      alert('Pojistná částka celkem nesmí být nižší než 100.000 Kč.');
    }    
    
    if(f.riziko_povodne[0].checked === true) {
      if(f.riziko_povodne_castka.value == "" || f.riziko_povodne_castka.value == 0 || 
         Number(f.riziko_povodne_castka.value.replace(/ /, '')) > 500000) {
        msg += 'Zkontrolujte částku pro riziko povodně. Nesmí být větší než 500 000 Kč.' + '\r\n';   
      }
    }
  
    if(f.certifikatEZS[0].checked === true) {
      // byl vystaven certifikát EZS
      if(f.zabezpeceni[8].checked === true || f.zabezpeceni[9].checked === true ||
         f.zabezpeceni[10].checked === true || f.zabezpeceni[11].checked === true || 
         f.zabezpeceni[12].checked === true) {
         // kontrola zadaných údajú ohledně EZS
         if(f.certFirma.value == "") {
           msg += 'Zadejte název firmy, která vydala certifikát EZS.' + '\r\n';
         }
       
         if(f.certUliceCP.value == "") {
           msg += 'Zadejte ulici a č.p. firmy, která vydala certifikát EZS.' + '\r\n';
         }
       
         if(f.certMesto.value == "") {
           msg += 'Zadejte město firmy, která vydala certifikát EZS.' + '\r\n';
         }
       
         if(f.certPSC.value == "") {
           msg += 'Zadejte PSČ firmy, která vydala certifikát EZS.' + '\r\n';
         }
       
         if(f.certDatumVystaveni.value == "") {
           msg += 'Zadejte datum vystavení certifikátu EZS.' + '\r\n';
         }
      } else {
        f.certifikatEZS[0].checked = false;
        f.certifikatEZS[1].checked = true;
        getLayer('t_prilozitCertifikat').style.display='none';
      }
    }
  } else if(step == '2') {
    if(f.company_id.value == '' || f.limit.value == '' || f.insurance.value == '' || f.key.value == '') {
      msg += 'Vyberte si variantu pojištění.';
    }
  } else if(step == '3') {
    if(f.pojistnikPrijmeniFirma.value == '') {
      msg += 'Zadejte příjmení nebo firmu pojistníka.' + '\r\n';
    }
    
    if(f.pojistnikRodneCisloIC.value == '') {
      msg += 'Zadejte rodné číslo nebo IČ pojistníka.' + '\r\n';
    }
    
    if(f.pojistnikStatniPrislusnost.value == '') {
      msg += 'Zadejte státní příslušnost pojistníka.' + '\r\n';
    }
    
    // ak je adresa pojistnika stejna s adresou pojistene domacnosti
    if(f.pojistnikShodneAdresy[0].checked === true) {

    } else {
      if(f.pojistnikUlice.value == '') {
        msg += 'Zadejte ulici pojistníka.' + '\r\n';
      }
      
      if(f.pojistnikCpCo.value == '') {
        msg += 'Zadejte číslo popisné / orientační pojistníka.' + '\r\n';
      }
      
      if(f.pojistnikPSC.value == '') {
        msg += 'Zadejte PSČ pojistníka.' + '\r\n';
      }
      
      if(f.pojistnikObec.value == '') {
        msg += 'Zadejte město / obec pojistníka.' + '\r\n';
      }
    }
    
    // kontrola kontaktních údajů pojistníka
    if(f.pojistnikTelefon.value == '') {
      msg += 'Zadejte telefon pojisníka.' + '\r\n';
    }    
    
    if(f.pojistnikEmail.value == '') {
      msg += 'Zadejte email pojistníka.' + '\r\n';
    }
    
    // je pojistník shodný s pojištěným?
    if(f.pojistnikPojisteny[1].checked === true) {
      // ano - nekontrolovat
      
    } else {
      // ne - kontrolovat pojisteneho
      if(f.pojistenyPrijmeniFirma.value == '') {
        msg += 'Zadejte příjmení nebo firmu pojištěného.' + '\r\n';
      }
    
      if(f.pojistenyRodneCisloIC.value == '') {
        msg += 'Zadejte rodné číslo nebo IČ pojištěného.' + '\r\n';
      }
    
      if(f.pojistenyStatniPrislusnost.value == '') {
        msg += 'Zadejte státní příslušnost pojištěného.' + '\r\n';
      }
    
      // ak je adresa pojistnika stejna s adresou pojistene domacnosti
      if(f.pojistenyShodneAdresy[0].checked === true) {
  
      } else {
        if(f.pojistenyUlice.value == '') {
          msg += 'Zadejte ulici pojištěného.' + '\r\n';
        }
      
        if(f.pojistenyCpCo.value == '') {
          msg += 'Zadejte číslo popisné / orientační pojištěného.' + '\r\n';
        }
      
        if(f.pojistenyPSC.value == '') {
          msg += 'Zadejte PSČ pojištěného.' + '\r\n';
        }
      
        if(f.pojistenyObec.value == '') {
          msg += 'Zadejte město / obec pojištěného.' + '\r\n';
        }
      }
    
      // kontrola kontaktních údajů pojistníka
      if(f.pojistenyTelefon.value == '') {
        msg += 'Zadejte telefon pojištěného.' + '\r\n';
      }    
    
      if(f.pojistenyEmail.value == '') {
        msg += 'Zadejte email pojištěného.' + '\r\n';
      }      
    }
    
    if(f.pojistenyVztah[0].checked === false && f.pojistenyVztah[1].checked === false) {
      msg += 'Zvolte, jestli je pojištěný majitelem nebo nájemníkem domácnosti.' + '\r\n';
    }
    
    if(f.adresaKoresp[0].checked === true) {
      // adresa pro korespondenci je stejna jako adresa pojistene dopacnosti
    } else {
      // adresa stejna neni, uzivatel ji zadaval rucne, je potreba to zkontrolovat
      if(f.korespPrijmeniFirma.value == '') {
        msg += 'Zadejte příjmení nebo firmu korespondenční adresy.' + '\r\n';
      } 
      
      if(f.korespUlice.value == '') {
        msg += 'Zadejte ulici korespondenční adresy.' + '\r\n';
      }
      
      if(f.korespCpCo.value == '') {
        msg += 'Zadejte číslo popisné / orientační korespondenční adresy.' + '\r\n';
      }
      
      if(f.korespPSC.value == '') {
        msg += 'Zadejte PSČ korespondenční adresy.' + '\r\n';
      }
      
      if(f.korespObec.value == '') {
        msg += 'Zadejte město / obec korespondenční adresy.' + '\r\n';
      }
    }

    if(f.cisloBytoveJednotky.value == '') {
      msg += 'Zadejte číslo bytové jednotky.' + '\r\n';
    }    
    
    if(f.pocatekPojisteni.value == '') {
      msg += 'Zadejte počátek pojištění ve formátu DD.MM.RRRR' + '\r\n';
    } 
  }  
  
  if(msg == "") {
    return true;
  }
  
  alert(msg);    
  return false;  
}

      function check_popis_neb_prostor(element) {
        if(element.value == '2' || element.value == '3') {
          getLayer('popis_neb_prostor').style.display = '';
        } else {
          getLayer('popis_neb_prostor').style.display = 'none'; 
        }
      }

function recalculatePricesX() {
  var e = getLayer('price_x');
  var final_price = Number(0);
  
  for(i=1;i<=count;i++) {
    if(getLayer('price_'+i)) {
      final_price += Number(getLayer('price_'+i).value.replace(/ /, ''));
    }  
  }
  
  e.value = final_price;
  e.value = number_format(e.value, 0, '.', ' ');  
}

function showHazards(key) {
  getLayer('hazards_'+getLayer('current').value).innerHTML = getLayer('all_hazards_'+getLayer('current').value).value;
}

function selectInsurance(key, color) {
  getLayer('company_id').value = getLayer('company_id_'+key).value;
  getLayer('limit').value = getLayer('limit_'+key).value;
  getLayer('insurance').value = getLayer('insurance_'+key).value;
  getLayer('key').value = key;
  
  if(getLayer('current').value != '' && getLayer('currentColor').value != '') {
    getLayer('tr_'+getLayer('current').value).style.background = getLayer('currentColor').value;
    getLayer('radio_'+getLayer('current').value).checked = false;
    getLayer('hazards_'+getLayer('current').value).innerHTML = getLayer('show_hazards_'+getLayer('current').value).value;
  }
  
  if(getLayer('current').value != "") {
    getLayer('radio_'+getLayer('current').value).checked = false;
  }
  
  if(getLayer('animals_'+key).checked === true) {
    getLayer('animals').value = key;
  } else {
    getLayer('animals').value = "";
  }
  
  getLayer('current').value = key;
  getLayer('currentColor').value = color;
  
  getLayer('radio_'+key).checked = true;
  
  getLayer('tr_'+key).style.background = '#ccffcc';
}

function overInsurance(key, color) {
  if(getLayer('current').value == key) {
    getLayer('tr_'+key).style.background = '#ccffcc';
  } else {
    getLayer('tr_'+key).style.background = '#ccffcc';
  }
}

function outInsurance(key, color) {
  if(getLayer('current').value == key) {
    getLayer('tr_'+key).style.background = '#ccffcc';
  } else {
    getLayer('tr_'+key).style.background = color;
  }
}

function fillAddress(type, ulice, cpco, psc, mesto) {
  getLayer(type + 'Ulice').value = ulice;
  getLayer(type + 'Ulice').readOnly = true;
  
  getLayer(type + 'CpCo').value = cpco;
  getLayer(type + 'CpCo').readOnly = true;
  
  getLayer(type + 'PSC').value = psc;
  getLayer(type + 'PSC').readOnly = true;
  
  getLayer(type + 'Obec').value = mesto;
  getLayer(type + 'Obec').readOnly = true;
}

function clearAddress(type) {
  getLayer(type + 'Ulice').value = "";
  getLayer(type + 'Ulice').readOnly = false;
  
  getLayer(type + 'CpCo').value = "";
  getLayer(type + 'CpCo').readOnly = false;
  
  getLayer(type + 'PSC').value = "";
  getLayer(type + 'PSC').readOnly = false;
  
  getLayer(type + 'Obec').value = "";
  getLayer(type + 'Obec').readOnly = false;
}


function copySelectboxTextValue(selectbox, textbox) {
  for(i=0;i<selectbox.options.length;i++) {
		if(selectbox.options[i].selected === true ) {
		  getLayer(textbox).value = selectbox.options[i].text;
	  }
	}
}

function confirmHomeInsurance(form) {
  var answer = confirm("Zvolili jste jeden z on-line způsobů platby. Nyní budete přesměrování na platební bránu serveru Pojisteni.com");
	if (answer) {
		form.submit();
	} else {
		// 
	}
}

function selectAnimals(chbox, key) {
  if(chbox.checked === true) {
    getLayer('animals').value = key;
  } else {
    getLayer('animals').value = "";
  }  
}

function selectLiability(chbox, key, liability_id) {
  if(chbox.checked === true) {
    getLayer('liability').value = key + '|' + liability_id;
  } else {
    getLayer('liability').value = "";
  }   
}

function evaluateZabezpOken(element) {
  if(element.value == 1) {
    if(document.pojisteni_domacnosti.okna[0].checked === true) {
      getLayer('TRzabezpOkenPrizemi').style.display = '';
    }    
    getLayer('TRzabezpOkenPatro').style.display = 'none';
  } else if(element.value == 2) {
    document.pojisteni_domacnosti.okna[1].checked = true;
    getLayer('TRzabezpOkenPrizemi').style.display = 'none';
    getLayer('TRzabezpOkenPatro').style.display = '';
  } else if(element.value == 3) {
    if(document.pojisteni_domacnosti.okna[0].checked === true) {
      getLayer('TRzabezpOkenPrizemi').style.display = '';
    }    
    getLayer('TRzabezpOkenPatro').style.display = '';     
  } else if(element.value == 0) {
    getLayer('TRzabezpOkenPrizemi').style.display = 'none';
    getLayer('TRzabezpOkenPatro').style.display = 'none';
  }
}

function checkRizikoPovodneCastka(chbox) {
  if(chbox.checked === true) {
    // klient si přeje pojistit riziko povodne
    getLayer('riziko_povodne_castka').value = (Number(getLayer('pojistna_castka_celkem').value.replace(/ /, '')) > 500000) ? number_format(500000, 0, '.', ' ') : getLayer('pojistna_castka_celkem').value;
  } else {
    
  }
  return;
}

function calculatePartInsurance(sbox, insurance) {
  var rocne_pojistne = 0;
  var splatka = 0;
  
  if(sbox.value == 1) {
    rocne_pojistne = insurance;
    splatka = insurance;
  } else if(sbox.value == 2) {
    rocne_pojistne = Number(insurance * 1.03);
    splatka = Number((insurance * 1.03) / 2);
  } else if(sbox.value == 3) {
    rocne_pojistne = Number(insurance * 1.05);
    splatka = Number((insurance * 1.05) / 4);  
  }
  
  getLayer('rocnePojistne').value = rocne_pojistne;
  getLayer('splatka').value = splatka;
  
  getLayer('t_rocnePojistne').innerHTML = "<b>" + number_format(rocne_pojistne, 0, '.', ' ') + ",- Kč" + "</b>";
  getLayer('t_splatka').innerHTML = "<b>" + number_format(splatka, 0, '.', ' ') + ",- Kč" + "</b>";
}


/******************************************************************************/
/* CALENDAR

/* SOURCE FILE: AnchorPosition.js */

function getAnchorPosition(anchorname)
{
  var useWindow = false;
  var coordinates = new Object();
  var x=0, y=0;
  var use_gebi = false, use_css = false, use_layers = false;
  
  if(document.getElementById)
  {
    use_gebi=true;
  }
  else if(document.all)
  {
    use_css=true;
  }
  else if(document.layers)
  {
    use_layers=true;
  }
  
  if(use_gebi && document.all)
  {
    x = AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
    y = AnchorPosition_getPageOffsetTop(document.all[anchorname]);
  }
  else if(use_gebi)
  {
    var o = document.getElementById(anchorname);
    x = AnchorPosition_getPageOffsetLeft(o);
    y = AnchorPosition_getPageOffsetTop(o);
  }
  else if(use_css)
  {
    x = AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
    y = AnchorPosition_getPageOffsetTop(document.all[anchorname]);
  }
  else if(use_layers)
  {
    var found = 0;
    
    for(var i=0; i<document.anchors.length; i++)
    {
      if(document.anchors[i].name == anchorname)
      {
        found = 1;
        break;
      }
    }
    
    if(found == 0)
    {
      coordinates.x = 0;
      coordinates.y = 0;
      return coordinates;
    }
    
    x = document.anchors[i].x;
    y = document.anchors[i].y;
  }
  else
  {
    coordinates.x = 0;
    coordinates.y = 0;
    return coordinates;
  }
  
  coordinates.x = x;
  coordinates.y = y;
  
  return coordinates;
}

function getAnchorWindowPosition(anchorname)
{
  var coordinates = getAnchorPosition(anchorname);
  var x = 0;
  var y = 0;
  if(document.getElementById)
  {
    if(isNaN(window.screenX))
    {
      x = coordinates.x - document.body.scrollLeft + window.screenLeft;
      y = coordinates.y - document.body.scrollTop + window.screenTop;
    }
    else
    {
      x = coordinates.x + window.screenX + (window.outerWidth - window.innerWidth) - window.pageXOffset;
      y = coordinates.y + window.screenY + (window.outerHeight - 24 - window.innerHeight) - window.pageYOffset;
    }
  }
  else if(document.all)
  {
    x = coordinates.x - document.body.scrollLeft + window.screenLeft;
    y = coordinates.y - document.body.scrollTop + window.screenTop;
  }
  else if(document.layers)
  { 
    x = coordinates.x + window.screenX + (window.outerWidth - window.innerWidth) - window.pageXOffset;
    y = coordinates.y + window.screenY + (window.outerHeight - 24 - window.innerHeight) - window.pageYOffset;
  }
  
  coordinates.x = x;
  coordinates.y = y;
  
  return coordinates;
}

function AnchorPosition_getPageOffsetLeft(el)
{
  var ol = el.offsetLeft;
  
  while((el=el.offsetParent) != null)
  {
    ol += el.offsetLeft;
  }
  
  return ol;
}

function AnchorPosition_getWindowOffsetLeft(el)
{
  return AnchorPosition_getPageOffsetLeft(el) - document.body.scrollLeft;
}

function AnchorPosition_getPageOffsetTop(el)
{ 
  var ot = el.offsetTop;
  
  while((el=el.offsetParent) != null)
  { 
    ot += el.offsetTop;
  }
  
  return ot;
}

function AnchorPosition_getWindowOffsetTop(el)
{
  return AnchorPosition_getPageOffsetTop(el) - document.body.scrollTop;
}

/* SOURCE FILE: date.js */

var MONTH_NAMES = new Array ( 'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec', 
                              '01.', '02.', '03', '04.', '05.', '06.', '07.', '08.', '09.', '10.', '11.', '12.' );
var DAY_NAMES = new Array ( 'Neděle', 'Pondělí', 'Uterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota', 
                            'Ne', 'Po', 'Ut', 'St', 'Čt', 'Pá', 'So' );

function LZ(x)
{
  return ( x<0 || x>9 ? "" : "0") + x
}

function isDate(val, format)
{ 
  var date = getDateFromFormat(val, format);
  
  if(date == 0)
  { 
    return false;
  }
  
  return true;
}

function compareDates(date1, dateformat1, date2, dateformat2)
{
  var d1 = getDateFromFormat(date1, dateformat1);
  var d2 = getDateFromFormat(date2, dateformat2);
  
  if(d1 == 0 || d2 == 0)
  {
    return -1;
  }
  else if(d1 > d2)
  {
    return 1;
  }
  
  return 0;
}

function formatDate(date, format)
{
  format = format + "";
  var result = "";
  var i_format = 0;
  var c = "";
  var token = "";
  var y = date.getYear() + "";
  var M = date.getMonth() + 1;
  var d = date.getDate();
  var E = date.getDay();
  var H = date.getHours();
  var m = date.getMinutes();
  var s = date.getSeconds();
  var yyyy, yy, MMM, MM, dd, hh, h, mm, ss, ampm, HH, H, KK, K, kk, k;
  var value = new Object();
  
  if(y.length < 4)
  {
    y= "" + (y - 0 + 1900);
  }
  value["y"] = "" + y;
  value["yyyy"] = y;
  value["yy"] = y.substring(2, 4);
  value["M"] = M;
  value["MM"] = LZ(M);
  value["MMM"] = MONTH_NAMES[M - 1];
  value["NNN"] = MONTH_NAMES[M + 11];
  value["d"] = d;
  value["dd"] = LZ(d);
  value["E"] = DAY_NAMES[E + 7];
  value["EE"] = DAY_NAMES[E];
  value["H"] = H;
  value["HH"] = LZ(H);
  
  if(H==0)
  {
    value["h"] = 12;
  }
  else if(H>12)
  {
    value["h"] = H-12;
  }
  else
  {
    value["h"] = H;
  }
  
  value["hh"] = LZ(value["h"]);
  
  if(H > 11)
  {
    value["K"] = H-12;
  }
  else
  {
    value["K"] = H;
  }
  
  value["k"] = H + 1;
  value["KK"] = LZ(value["K"]);
  value["kk"] = LZ(value["k"]);
  
  if(H > 11)
  {
    value["a"] = "PM";
  }
  else
  {
    value["a"] = "AM";
  }
  
  value["m"] = m;
  value["mm"] = LZ(m);
  value["s"] = s;
  value["ss"] = LZ(s);
  
  while(i_format < format.length)
  {
    c = format.charAt(i_format);
    token="";
    
    while((format.charAt(i_format) == c) && (i_format < format.length))
    {
      token += format.charAt(i_format++);
    }
    
    if(value[token] != null)
    {
      result = result + value[token];
    }
    else
    {
      result = result + token;
    }
  }
  
  return result;
}

function _isInteger(val)
{
  var digits = "1234567890";
 
  for(var i=0; i < val.length; i++)
  {
    if(digits.indexOf(val.charAt(i)) == -1)
    {
      return false;
    }
  }
  
  return true;
}

function _getInt(str, i, minlength, maxlength)
{
  for(var x=maxlength; x>=minlength; x--)
  {
    var token = str.substring(i, i+x);
    if(token.length < minlength)
    {
      return null;
    }
    
    if(_isInteger(token))
    {
      return token;
    }
  }
  
  return null;
}

function getDateFromFormat(val, format)
{
  val = val + "";
  format = format + "";
  var i_val = 0;
  var i_format = 0;
  var c = "";
  var token = "";
  var token2 = "";
  var x, y;
  var now = new Date();
  var year = now.getYear();
  var month = now.getMonth() + 1;
  var date = 1;
  var hh = now.getHours();
  var mm = now.getMinutes();
  var ss = now.getSeconds();
  var ampm = "";
  
  while(i_format < format.length)
  {
    c = format.charAt(i_format);
    token = "";
    
    while((format.charAt(i_format) == c) && (i_format < format.length))
    {
      token += format.charAt(i_format++);
    }
    
    if(token == "yyyy" || token=="yy" || token=="y")
    {
      if(token=="yyyy")
      {
        x = 4;
        y = 4;
      }
      if(token == "yy")
      { 
        x = 2;
        y = 2;
      }
      if(token == "y")
      {
        x = 2;
        y = 4;
      }
      
      year = _getInt(val, i_val, x, y);
      
      if(year == null)
      {
        return 0;
      }
      
      i_val += year.length;
      
      if(year.length == 2)
      {
        if(year > 70)
        {
          year = 1900 + (year - 0);
        }
        else
        {
          year = 2000 + (year - 0);
        }
      }
    }
    else if(token == "MMM" || token == "NNN")
    {
      month = 0;
      
      for(var i=0; i<MONTH_NAMES.length; i++)
      {
        var month_name = MONTH_NAMES[i];
        
        if(val.substring(i_val, i_val+month_name.length).toLowerCase() == month_name.toLowerCase())
        {
          if(token == "MMM" || (token == "NNN" && i > 11))
          {
            month = i + 1;
            
            if(month > 12)
            {
              month -= 12;
            }
            
            i_val += month_name.length;
            break;
          }
        }
      }
      
      if((month < 1) || (month > 12))
      {
        return 0;
      }
    }
    else if(token == "EE" || token == "E")
    {
      for(var i=0; i<DAY_NAMES.length; i++)
      {
        var day_name = DAY_NAMES[i];
        
        if(val.substring(i_val, i_val + day_name.length).toLowerCase() == day_name.toLowerCase())
        {
          i_val += day_name.length;
          break;
        }
      }
    }
    else if(token == "MM" || token == "M")
    {
      month = _getInt(val, i_val, token.length, 2);
      
      if(month==null || (month < 1) || (month > 12))
      {
        return 0;
      }
      
      i_val += month.length;
    }
    else if(token == "dd" || token == "d")
    {
      date = _getInt(val, i_val, token.length, 2);
      
      if(date == null || (date < 1) || (date > 31))
      {
        return 0;
      }
      
      i_val += date.length;
    }
    else if(token == "hh" || token == "h")
    {
      hh = _getInt(val, i_val, token.length, 2);
      
      if(hh == null || (hh < 1) || (hh > 12))
      {
        return 0;
      }
      
      i_val += hh.length;
    }
    else if(token == "HH" || token == "H")
    {
      hh = _getInt(val, i_val, token.length, 2);
      
      if(hh == null || (hh < 0) || (hh > 23))
      {
        return 0;
      }
      
      i_val += hh.length;
    }
    else if(token == "KK" || token == "K")
    {
      hh = _getInt(val, i_val, token.length, 2);
      
      if(hh == null || (hh < 0) || (hh > 11))
      {
        return 0;
      }
      
      i_val += hh.length;
    }
    else if(token == "kk" || token == "k")
    {
      hh = _getInt(val, i_val, token.length, 2);
      
      if(hh == null || (hh < 1) || (hh > 24))
      {
        return 0;
      }
      
      i_val += hh.length;
      hh--;
    }
    else if(token == "mm" || token == "m")
    {
      mm = _getInt(val, i_val, token.length, 2);
      
      if(mm == null || (mm <0 ) || (mm > 59))
      {
        return 0;
      }
      
      i_val += mm.length;
    }
    else if(token == "ss" || token == "s")
    {
      ss = _getInt(val, i_val, token.length, 2);
      if(ss == null || (ss < 0) || (ss > 59))
      {
        return 0;
      }
      
      i_val += ss.length;
    }
    else if(token == "a")
    {
      if(val.substring(i_val, i_val+2).toLowerCase() == "am")
      {
        ampm = "AM";
      }
      else if(val.substring(i_val, i_val+2).toLowerCase() == "pm")
      {
        ampm = "PM";
      }
      else
      {
        return 0;
      }
      
      i_val += 2;
    }
    else
    {
      if(val.substring(i_val, i_val+token.length) != token)
      {
        return 0;
      }
      else
      {
        i_val += token.length;
      }
    }
  }
  
  if(i_val != val.length)
  {
    return 0;
  }
  
  if(month == 2)
  {
    if(((year % 4 == 0) && (year % 100 != 0) ) || (year % 400 == 0))
    {
      if(date > 29)
      {
        return 0;
      }
    }
    else
    {
      if(date > 28)
      {
        return 0;
      }
    }
  }
  
  if((month == 4) || (month == 6) || (month == 9) || (month == 11))
  {
    if(date > 30)
    {
      return 0;
    }
  }
  
  if(hh < 12 && ampm == "PM")
  {
    hh = hh - 0 + 12;
  }
  else if(hh > 11 && ampm == "AM")
  {
    hh -= 12;
  }
  
  var newdate = new Date(year, month-1, date, hh, mm, ss);
  
  return newdate.getTime();
}

function parseDate(val)
{
  var preferEuro = (arguments.length == 2) ? arguments[1] : false;
  generalFormats = new Array('y-M-d', 'MMM d, y', 'MMM d,y', 'y-MMM-d', 'd-MMM-y', 'MMM d');
  monthFirst = new Array('M/d/y', 'M-d-y', 'M.d.y', 'MMM-d', 'M/d', 'M-d');
  dateFirst = new Array('d/M/y', 'd-M-y', 'd.M.y', 'd-MMM', 'd/M', 'd-M');
  var checkList = new Array('generalFormats', preferEuro?'dateFirst':'monthFirst', preferEuro?'monthFirst':'dateFirst');
  var d = null;
  
  for(var i=0; i<checkList.length; i++)
  {
    var l = window[checkList[i]];
    
    for(var j=0; j<l.length; j++)
    {
      d = getDateFromFormat(val, l[j]);
      if(d != 0)
      {
        return new Date(d);
      }
    }
  }
  
  return null;
}

/* SOURCE FILE: PopupWindow.js */

function PopupWindow_getXYPosition(anchorname)
{
  var coordinates;
  
  if(this.type == "WINDOW")
  {
    coordinates = getAnchorWindowPosition(anchorname);
  }
  else
  {
    coordinates = getAnchorPosition(anchorname);
  }
  
  this.x = coordinates.x;
  this.y = coordinates.y;
}

function PopupWindow_setSize(width, height)
{
  this.width = width;
  this.height = height;
}

function PopupWindow_populate(contents)
{
  this.contents = contents;
  this.populated = false;
}

function PopupWindow_setUrl(url)
{
  this.url = url;
}

function PopupWindow_setWindowProperties(props)
{
  this.windowProperties = props;
}

function PopupWindow_refresh()
{
  if(this.divName != null)
  {
    if(this.use_gebi)
    {
      document.getElementById(this.divName).innerHTML = this.contents;
    }
    else if(this.use_css)
    {
      document.all[this.divName].innerHTML = this.contents;
    }
    else if(this.use_layers)
    {
      var d = document.layers[this.divName];
      d.document.open();
      d.document.writeln(this.contents);
      d.document.close();
    }
  }
  else
  {
    if(this.popupWindow != null && !this.popupWindow.closed)
    {
      if(this.url != "")
      {
        this.popupWindow.location.href = this.url;
      }
      else
      {
        this.popupWindow.document.open();
        this.popupWindow.document.writeln(this.contents);
        this.popupWindow.document.close();
      }
      
      this.popupWindow.focus();
    }
  }
}

function PopupWindow_showPopup(anchorname)
{
  this.getXYPosition(anchorname);
  
  this.x += this.offsetX;
  this.y += this.offsetY;
  
  if(!this.populated && (this.contents != ""))
  {
    this.populated = true;
    this.refresh();
  }
  
  if(this.divName != null)
  {
    if(this.use_gebi)
    {
      document.getElementById(this.divName).style.left = this.x + "px";
      document.getElementById(this.divName).style.top = this.y + "px";
      document.getElementById(this.divName).style.visibility = "visible";
    }
    else if(this.use_css)
    {
      document.all[this.divName].style.left = this.x;
      document.all[this.divName].style.top = this.y;
      document.all[this.divName].style.visibility = "visible";
    }
    else if(this.use_layers)
    {
      document.layers[this.divName].left = this.x;
      document.layers[this.divName].top = this.y;
      document.layers[this.divName].visibility = "visible";
    }
  }
  else
  {
    if(this.popupWindow == null || this.popupWindow.closed)
    {
      if(this.x < 0)
      {
        this.x = 0;
      }
      if(this.y < 0)
      {
        this.y = 0;
      }
      
      if(screen && screen.availHeight)
      {
        if((this.y + this.height) > screen.availHeight)
        {
          this.y = screen.availHeight - this.height;
        }
      }
      
      if(screen && screen.availWidth)
      {
        if((this.x + this.width) > screen.availWidth)
        {
          this.x = screen.availWidth - this.width;
        }
      }
      
      var avoidAboutBlank = window.opera || (document.layers && !navigator.mimeTypes['*']) || navigator.vendor == 'KDE' || (document.childNodes && !document.all && !navigator.taintEnabled);
      this.popupWindow = window.open(avoidAboutBlank?"" : "about:blank", "window_" + anchorname, this.windowProperties + ", width = " + this.width + ", height = " + this.height + ", screenX = " + this.x + ", left = " + this.x + ", screenY = " + this.y + ", top = " + this.y + "");
    }
    
    this.refresh();
  }
}

function PopupWindow_hidePopup()
{
  if(this.divName != null)
  {
    if(this.use_gebi)
    {
      document.getElementById(this.divName).style.visibility = "hidden";
    }
    else if(this.use_css)
    {
      document.all[this.divName].style.visibility = "hidden";
    }
    else if(this.use_layers)
    {
      document.layers[this.divName].visibility = "hidden";
    }
  }
  else
  {
    if(this.popupWindow && !this.popupWindow.closed)
    {
      this.popupWindow.close();
      this.popupWindow = null;
    }
  }
}

function PopupWindow_isClicked(e)
{
  if(this.divName != null)
  {
    if(this.use_layers)
    {
      var clickX = e.pageX;
      var clickY = e.pageY;
      var t = document.layers[this.divName];
      
      if((clickX > t.left) && (clickX < t.left + t.clip.width) && (clickY > t.top) && (clickY < t.top + t.clip.height))
      {
        return true;
      }
      else
      {
        return false;
      }
    }
    else if(document.all)
    {
      var t = window.event.srcElement;
      
      while(t.parentElement != null)
      {
        if(t.id == this.divName)
        {
          return true;
        }
        
        t = t.parentElement;
      }
      
      return false;
    }
    else if(this.use_gebi && e)
    {
      var t = e.originalTarget;
      
      while(t.parentNode != null)
      {
        if(t.id == this.divName)
        { 
          return true;
        }
        
        t = t.parentNode;
      }
      
      return false;
    }
    
    return false;
  }
  
  return false;
}

function PopupWindow_hideIfNotClicked(e)
{
  if(this.autoHideEnabled && !this.isClicked(e))
  {
    this.hidePopup();
  }
}

function PopupWindow_autoHide()
{
  this.autoHideEnabled = true;
}

function PopupWindow_hidePopupWindows(e)
{
  for(var i=0; i<popupWindowObjects.length; i++)
  {
    if(popupWindowObjects[i] != null)
    {
      var p = popupWindowObjects[i];
      p.hideIfNotClicked(e);
    }
  }
}

function PopupWindow_attachListener()
{
  if(document.layers)
  {
    document.captureEvents(Event.MOUSEUP);
  }
  
  window.popupWindowOldEventListener = document.onmouseup;
  
  if(window.popupWindowOldEventListener != null)
  {
    document.onmouseup = new Function("window.popupWindowOldEventListener(); PopupWindow_hidePopupWindows();");
  }
  else
  {
    document.onmouseup = PopupWindow_hidePopupWindows;
  }
}

function PopupWindow()
{
  if(!window.popupWindowIndex)
  {
    window.popupWindowIndex = 0;
  }
  
  if(!window.popupWindowObjects)
  {
    window.popupWindowObjects = new Array();
  }
  
  if(!window.listenerAttached)
  {
    window.listenerAttached = true;
    PopupWindow_attachListener();
  }
  
  this.index = popupWindowIndex++;
  popupWindowObjects[this.index] = this;
  this.divName = null;
  this.popupWindow = null;
  
  this.width = 0;
  this.height = 0;
  
  this.populated = false;
  this.visible = false;
  this.autoHideEnabled = false;
  this.contents = "";
  this.url = "";
  this.windowProperties = "toolbar = no, location = no, status = no, menubar = no, scrollbars = auto, resizable, alwaysRaised, dependent, titlebar = no";
  
  if(arguments.length > 0)
  {
    this.type = "DIV";
    this.divName = arguments[0];
  }
  else
  {
    this.type = "WINDOW";
  }
  
  this.use_gebi = false;
  this.use_css = false;
  this.use_layers = false;
  
  if(document.getElementById)
  {
    this.use_gebi = true;
  }
  else if(document.all)
  {
    this.use_css = true;
  }
  else if(document.layers)
  {
    this.use_layers = true;
  }
  else
  {
    this.type = "WINDOW";
  }
  
  this.offsetX = 0;
  this.offsetY = 0;
  
  this.getXYPosition = PopupWindow_getXYPosition;
  this.populate = PopupWindow_populate;
  this.setUrl = PopupWindow_setUrl;
  this.setWindowProperties = PopupWindow_setWindowProperties;
  this.refresh = PopupWindow_refresh;
  this.showPopup = PopupWindow_showPopup;
  this.hidePopup = PopupWindow_hidePopup;
  this.setSize = PopupWindow_setSize;
  this.isClicked = PopupWindow_isClicked;
  this.autoHide = PopupWindow_autoHide;
  this.hideIfNotClicked = PopupWindow_hideIfNotClicked;
}


/* SOURCE FILE: CalendarPopup.js */

function CalendarPopup()
{
  var c;
  
  if(arguments.length > 0)
  {
    c = new PopupWindow(arguments[0]);
  }
  else
  {
    c = new PopupWindow();
    c.setSize(150, 175);
  }
  
  c.offsetX = -152;
  c.offsetY = 25;
  c.autoHide();

  c.monthNames = new Array("Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec");
  c.monthAbbreviations = new Array("Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čer", "Srp", "Zář", "Říj", "Lis", "Pro");
  c.dayHeaders = new Array("N","P","U","S","Č","P","S");

  c.returnFunction = "CP_tmpReturnFunction";
  c.returnMonthFunction = "CP_tmpReturnMonthFunction";
  c.returnQuarterFunction = "CP_tmpReturnQuarterFunction";
  c.returnYearFunction = "CP_tmpReturnYearFunction";
  c.weekStartDay = 1; 
  c.isShowYearNavigation = false;
  c.displayType = "date"; 
  c.disabledWeekDays = new Object();
  c.disabledDatesExpression = "";
  c.yearSelectStartOffset = 2;
  c.currentDate = null;
  c.todayText = "Zítra";
  c.cssPrefix = "";
  c.isShowNavigationDropdowns = false;
  c.isShowYearNavigationInput = false;
  
  window.CP_calendarObject = null;
  window.CP_targetInput = null;
  window.CP_dateFormat = "MM/dd/yyyy";
  c.copyMonthNamesToWindow = CP_copyMonthNamesToWindow;
  c.setReturnFunction = CP_setReturnFunction;
  c.setReturnMonthFunction = CP_setReturnMonthFunction;
  c.setReturnQuarterFunction = CP_setReturnQuarterFunction;
  c.setReturnYearFunction = CP_setReturnYearFunction;
  c.setMonthNames = CP_setMonthNames;
  c.setMonthAbbreviations = CP_setMonthAbbreviations;
  c.setDayHeaders = CP_setDayHeaders;
  c.setWeekStartDay = CP_setWeekStartDay;
  c.setDisplayType = CP_setDisplayType;
  c.setDisabledWeekDays = CP_setDisabledWeekDays;
  c.addDisabledDates = CP_addDisabledDates;
  c.setYearSelectStartOffset = CP_setYearSelectStartOffset;
  c.setTodayText = CP_setTodayText;
  c.showYearNavigation = CP_showYearNavigation;
  c.showCalendar = CP_showCalendar;
  c.hideCalendar = CP_hideCalendar;
  c.getStyles = getCalendarStyles;
  c.refreshCalendar = CP_refreshCalendar;
  c.getCalendar = CP_getCalendar;
  c.select = CP_select;
  c.setCssPrefix = CP_setCssPrefix;
  c.showNavigationDropdowns = CP_showNavigationDropdowns;
  c.showYearNavigationInput = CP_showYearNavigationInput;
  c.copyMonthNamesToWindow();
  
  return c;
}

function CP_copyMonthNamesToWindow()
{
  if(typeof(window.MONTH_NAMES) != "undefined" && window.MONTH_NAMES != null)
  {
    window.MONTH_NAMES = new Array();
    
    for(var i=0; i<this.monthNames.length; i++)
    {
      window.MONTH_NAMES[window.MONTH_NAMES.length] = this.monthNames[i];
    }
    
    for(var i=0; i<this.monthAbbreviations.length; i++)
    {
      window.MONTH_NAMES[window.MONTH_NAMES.length] = this.monthAbbreviations[i];
    }
  }
}

function CP_tmpReturnFunction(y, m, d)
{
  if(window.CP_targetInput != null)
  {
    var dt = new Date(y, m-1, d, 0, 0, 0);
    
    if(window.CP_calendarObject != null)
    {
      window.CP_calendarObject.copyMonthNamesToWindow();
    }
    window.CP_targetInput.value = formatDate(dt, window.CP_dateFormat);
  }
  else
  {
    alert('Use setReturnFunction() to define which function will get the clicked results!');
  }
}

function CP_tmpReturnMonthFunction(y, m)
{
  alert('Use setReturnMonthFunction() to define which function will get the clicked results!\nYou clicked: year=' + y + ' , month=' + m);
}

function CP_tmpReturnQuarterFunction(y, q)
{
  alert('Use setReturnQuarterFunction() to define which function will get the clicked results!\nYou clicked: year=' + y + ' , quarter=' + q);
}

function CP_tmpReturnYearFunction(y)
{
  alert('Use setReturnYearFunction() to define which function will get the clicked results!\nYou clicked: year=' + y);
}

function CP_setReturnFunction(name)
{
  this.returnFunction = name;
}

function CP_setReturnMonthFunction(name)
{
  this.returnMonthFunction = name;
}

function CP_setReturnQuarterFunction(name)
{
  this.returnQuarterFunction = name;
}

function CP_setReturnYearFunction(name)
{
  this.returnYearFunction = name;
}

function CP_setMonthNames()
{
  for(var i=0; i<arguments.length; i++)
  {
    this.monthNames[i] = arguments[i];
  }
  
  this.copyMonthNamesToWindow();
}

function CP_setMonthAbbreviations()
{
  for(var i=0; i<arguments.length; i++)
  {
    this.monthAbbreviations[i] = arguments[i];
  }
  
  this.copyMonthNamesToWindow();
}

function CP_setDayHeaders()
{
  for(var i=0; i<arguments.length; i++)
  {
    this.dayHeaders[i] = arguments[i];
  }
}

function CP_setWeekStartDay(day)
{
  this.weekStartDay = day;
}

function CP_showYearNavigation()
{
  this.isShowYearNavigation =(arguments.length > 0) ? arguments[0] : true;
}

function CP_setDisplayType(type)
{
  if(type != "date" &&type != "week-end" && type != "month" && type != "quarter" && type != "year")
  {
    alert("Invalid display type! Must be one of: date, week-end, month, quarter, year");
    return false;
  }
  
  this.displayType=type;
}

function CP_setYearSelectStartOffset(num)
{
  this.yearSelectStartOffset = num;
}

function CP_setDisabledWeekDays()
{
  this.disabledWeekDays = new Object();
  
  for(var i=0; i<arguments.length; i++)
  {
    this.disabledWeekDays[arguments[i]] = true;
  }
}

function CP_addDisabledDates(start, end)
{
  if(arguments.length == 1)
  {
    end = start;
  }
  
  if(start == null && end == null)
  {
    return;
  }
  
  if(this.disabledDatesExpression != "")
  {
    this.disabledDatesExpression += "||";
  }
  
  if(start != null)
  {
    start = parseDate(start);
    start = "" + start.getFullYear() + LZ(start.getMonth()+1) + LZ(start.getDate());
  }
  
  if(end != null)
  {
    end = parseDate(end);
    end = "" + end.getFullYear() + LZ(end.getMonth() + 1) + LZ(end.getDate());
  }
  
  if(start == null)
  {
    this.disabledDatesExpression += "(ds<="+end+")";
  }
  else if(end == null)
  {
    this.disabledDatesExpression += "(ds>="+start+")";
  }
  else
  {
    this.disabledDatesExpression += "(ds>="+start+"&&ds<="+end+")";
  }
}

function CP_setTodayText(text)
{
  this.todayText = text;
}

function CP_setCssPrefix(val)
{
  this.cssPrefix = val;
}

function CP_showNavigationDropdowns()
{
  this.isShowNavigationDropdowns = (arguments.length > 0) ? arguments[0] : true;
}

function CP_showYearNavigationInput()
{
  this.isShowYearNavigationInput = (arguments.length > 0) ? arguments[0] : true;
}
function CP_hideCalendar()
{
  if(arguments.length > 0)
  {
    window.popupWindowObjects[arguments[0]].hidePopup();
  }
  else
  {
    this.hidePopup();
  }
}

function CP_refreshCalendar(index)
{
  var calObject = window.popupWindowObjects[index];
  if(arguments.length > 1)
  {
    calObject.populate(calObject.getCalendar(arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]));
  }
  else
  {
    calObject.populate(calObject.getCalendar());
  }
  
  calObject.refresh();
}

function CP_showCalendar(anchorname)
{
  if(arguments.length > 1)
  {
    if(arguments[1] == null || arguments[1] == "")
    {
      this.currentDate = new Date();
    }
    else
    {
      this.currentDate = new Date(parseDate(arguments[1]));
    }
  }
  
  this.populate(this.getCalendar());
  this.showPopup(anchorname);
}

function CP_select(inputobj, linkname, format)
{
  var selectedDate = (arguments.length > 3) ? arguments[3] : null;
  
  if(!window.getDateFromFormat)
  {
    alert("calendar.select: To use this method you must also include 'date.js' for date formatting");
    return;
  }
  
  if(this.displayType != "date" && this.displayType != "week-end")
  {
    alert("calendar.select: This function can only be used with displayType 'date' or 'week-end'");
    return;
  }
  
  if(inputobj.type != "text" && inputobj.type != "hidden" && inputobj.type != "textarea")
  {
    alert("calendar.select: Input object passed is not a valid form input object");
    window.CP_targetInput = null;
    return;
  }
  
  if(inputobj.disabled)
  {
    return;
  }
  
  window.CP_targetInput = inputobj;window.CP_calendarObject = this;
  this.currentDate = null;
  
  var time = 0;
  if(selectedDate != null)
  {
    time = getDateFromFormat(selectedDate,format)
  }
  else if(inputobj.value != "")
  {
    time = getDateFromFormat(inputobj.value,format);
  }
  
  if(selectedDate != null || inputobj.value != "")
  {
    if(time == 0)
    {
      this.currentDate = null;
    }
    else
    {
      this.currentDate = new Date(time);
    }
  }
  
  window.CP_dateFormat = format;
  this.showCalendar(linkname);
}

function getCalendarStyles()
{
  var result = "";
  var p = "";
  
  if(this != null && typeof(this.cssPrefix) != "undefined" && this.cssPrefix != null && this.cssPrefix != "")
  {
    p = this.cssPrefix;
  }
  
  result += "<style>\n";
  result += "." + p + "cpYearNavigation,." + p + "cpMonthNavigation { background-color: #CCCCCC; text-align: center; vertical-align: center; text-decoration: none; color: #000000; font-weight: 700;}\n";
  result += "." + p + "cpDayColumnHeader, ." + p + "cpYearNavigation, ." + p + "cpMonthNavigation, ." + p + "cpCurrentMonthDate, ." + p + "cpCurrentMonthDateDisabled, ." + p + "cpOtherMonthDate, ." + p + "cpOtherMonthDateDisabled, ." + p + "cpCurrentDate, ." + p + "cpCurrentDateDisabled, ." + p + "cpTodayText, ." + p + "cpTodayTextDisabled, ." + p + "cpText { font-family: Verdana, Tahoma; font-size: 8pt;}\n";
  result += "TD." + p + "cpDayColumnHeader { text-align: right; border: solid thin #E6E7E6; border-width: 0px 0px 1px 0px; }\n";
  result += "." + p + "cpCurrentMonthDate, ." + p + "cpOtherMonthDate, ." + p + "cpCurrentDate { text-align: right; text-decoration:none; }\n";
  result += "." + p + "cpCurrentMonthDateDisabled, ." + p + "cpOtherMonthDateDisabled, ." + p + "cpCurrentDateDisabled { color: #CCCCCC; text-align: right; text-decoration: line-through; }\n";
  result += "." + p + "cpCurrentMonthDate, .cpCurrentDate { color: #000000;}\n";
  result += "." + p + "cpOtherMonthDate{color: #808080;}\n";
  result += "TD." + p + "cpCurrentDate { color: #000000; background-color: #E6E7E6; border: 1px solid thin #CCCCCC;}\n";
  result += "TD." + p + "cpCurrentDateDisabled { border-width: 1px; border: solid thin #FFAAAA;}\n";
  result += "TD." + p + "cpTodayText, TD." + p + "cpTodayTextDisabled { border: solid thin #C0C0C0; border-width: 1px 0px 0px 0px;}\n";
  result += "A." + p + "cpTodayText, SPAN." + p + "cpTodayTextDisabled{ height:20px; }\n";
  result += "A." + p + "cpTodayText { color: #008000; }\n";
  result += "." + p + "cpTodayTextDisabled { color: #D0D0D0; }\n";
  result += "." + p + "cpBorder{ border: solid thin #808080; }\n";
  result += "</style>\n";
  
  return result;
}

function CP_getCalendar()
{
  var ADDRESS = 'http://www.pojisteni.com';

  var now = new Date();
  
  if(this.type == "WINDOW")
  {
    var windowref = "window.opener.";
  }
  else
  {
    var windowref = "";
  }
  
  var result = "";
  
  if(this.type == "WINDOW")
  {
    result += "<html><head><title>Kalendář</title>" + this.getStyles() + "</head>";
    result += "<body marginwidth=0 marginheight=0 topmargin=0 rightmargin=0 leftmargin=0 bottommargin=0>";
    result += "<center><table width=100% border=0 borderwidth=0 cellpadding=0 cellspacing=0>\n";
  }
  else
  {
    result += '<table class="' + this.cssPrefix + 'cpBorder" width=144 border=1 borderwidth=1 cellpadding=0 cellspacing=1>\n';
    result += '<tr><td align=center>\n';
    result += '<center>\n';
  }
  
  if(this.displayType == "date" || this.displayType == "week-end")
  {
    if(this.currentDate == null)
    {
      this.currentDate = now;
    }
    if(arguments.length > 0)
    {
      var month = arguments[0];
    }
    else
    {
      var month = this.currentDate.getMonth() + 1;
    }
    if(arguments.length > 1 && arguments[1] > 0 && arguments[1] - 0 == arguments[1])
    {
      var year = arguments[1];
    }
    else
    {
      var year = this.currentDate.getFullYear();
    }
    
    var daysinmonth = new Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
    {
      daysinmonth[2] = 29;
    }
    
    var current_month = new Date(year, month - 1, 1);
    var display_year = year;
    var display_month = month;
    var display_date = 1;
    var weekday = current_month.getDay();
    
    var offset = 0;
    offset = (weekday >= this.weekStartDay) ? weekday-this.weekStartDay : 7 - this.weekStartDay+weekday;
    if(offset > 0)
    {
      display_month--;
      if(display_month < 1)
      {
        display_month = 12;
        display_year--;
      }
      
      display_date = daysinmonth[display_month] - offset + 1;
    }
    
    var next_month = month + 1;
    var next_month_year = year;
    if(next_month > 12)
    {
      next_month = 1;
      next_month_year++;
    }
    
    var last_month = month - 1;
    var last_month_year = year;
    if(last_month < 1)
    {
      last_month = 12;
      last_month_year--;
    }
    
    var date_class;
    
    if(this.type != "WINDOW")
    {
      result += "<table width=144 border=0 borderwidth=0 cellspacing=0 cellpadding=0>";
    }
    
    result += '<tr>\n';
    
    var refresh = windowref + 'CP_refreshCalendar';
    var refreshLink = 'javascript:' + refresh;
    
    if(this.isShowNavigationDropdowns)
    {
      result += '<td class="' + this.cssPrefix + 'cpMonthNavigation" width="78" colspan="3"><select class="' + this.cssPrefix + 'cpMonthNavigation" name="cpMonth" onChange="' + refresh + '(' + this.index + ', this.options[this.selectedIndex].value - 0,' + (year - 0) + ');">';
      
      for(var monthCounter=1; monthCounter<=12; monthCounter++)
      {
        var selected = (monthCounter==month) ? 'selected' : '';
        result += '<option value="' + monthCounter + '" ' + selected + '>' + this.monthNames[monthCounter-1] + '</option>';}
        result += '</select></td>';
        result += '<td class="' + this.cssPrefix + 'cpMonthNavigation" width="10">&nbsp;</td>';
        result += '<td class="' + this.cssPrefix + 'cpYearNavigation" width="56" colspan="3"><select class="' + this.cssPrefix + 'cpYearNavigation" name="cpYear" onChange="' + refresh + '(' + this.index + ',' + month + ', this.options[this.selectedIndex].value - 0);">';
        
        for(var yearCounter = year - this.yearSelectStartOffset; yearCounter <= year + this.yearSelectStartOffset; yearCounter++)
        {
          var selected = (yearCounter==year) ? 'selected' : '';
          result += '<option value="' + yearCounter + '" ' + selected + '>' + yearCounter + '</option>';
        }
        
        result += '</select></td>';
      }
      else
      {
        if(this.isShowYearNavigation)
        {
          result += '<td class="' + this.cssPrefix + 'cpMonthNavigation" width="10"><a class="' + this.cssPrefix + 'cpMonthNavigation" href="' + refreshLink + '(' + this.index + ',' + last_month + ',' + last_month_year + ');">&lt;</a></td>';
          result += '<td class="' + this.cssPrefix + 'cpMonthNavigation" width="58"><span class="' + this.cssPrefix + 'cpMonthNavigation">' + this.monthNames[month - 1] + '</span></td>';
          result += '<td class="' + this.cssPrefix + 'cpMonthNavigation" width="10"><a class="' + this.cssPrefix + 'cpMonthNavigation" href="' + refreshLink + '(' + this.index + ',' + next_month + ',' + next_month_year + ');">&gt;</a></td>';
          result += '<td class="' + this.cssPrefix + 'cpMonthNavigation" width="10">&nbsp;</td>';
          result += '<td class="' + this.cssPrefix + 'cpYearNavigation" width="10"><a class="' + this.cssPrefix + 'cpYearNavigation" href="' + refreshLink + '(' + this.index + ',' + month + ',' + (year - 1) + ');">&lt;</a></td>';
          
          if(this.isShowYearNavigationInput)
          {
            result += '<td class="' + this.cssPrefix + 'cpYearNavigation" width="36"><input name="cpYear" class="' + this.cssPrefix + 'cpYearNavigation" size="4" maxlenght="4" value="' + year + '" onBlur="' + refresh + '(' + this.index + ',' + month + ', this.value - 0);"></td>';
          }
          else
          {
            result += '<td class="' + this.cssPrefix + 'cpYearNavigation" width="36"><span class="' + this.cssPrefix + 'cpYearNavigation">' + year + '</span></td>';
          }
          
          result += '<td class="' + this.cssPrefix + 'cpYearNavigation" width="10"><a class="' + this.cssPrefix + 'cpYearNavigation" href="' + refreshLink + '(' + this.index + ',' + month + ',' + (year + 1) + ');">&gt;</a></td>';
        }
        else
        {
          result += '<td class="' + this.cssPrefix + 'cpMonthNavigation" width="22" height="20"><a class="' + this.cssPrefix + 'cpMonthNavigation" href="' + refreshLink + '(' + this.index + ',' + last_month + ',' + last_month_year + ');"><b>&laquo;</b></a></td>\n';
          result += '<td class="' + this.cssPrefix + 'cpMonthNavigation" width="100" height="20"><span class="' + this.cssPrefix + 'cpMonthNavigation">' + this.monthNames[month - 1] + ' ' + year + '</span></td>\n';
          result += '<td class="' + this.cssPrefix + 'cpMonthNavigation" width="22" height="20"><a class="' + this.cssPrefix + 'cpMonthNavigation" href="' + refreshLink + '(' + this.index + ',' + next_month + ',' + next_month_year + ');"><b>&raquo;</b></a></td>\n';
        }
      }
      
      result += '</tr></table>\n';
      result += '<table width=144 border=0 cellpadding=0 cellspacing=1 align=center>\n';
      result += '<tr>\n';
      
      for(var j=0; j<7; j++)
      {
        result += '<td class="' + this.cssPrefix + 'cpDayColumnHeader" width="14%" height="20"><span class="' + this.cssPrefix + 'cpDayColumnHeader">' + this.dayHeaders[(this.weekStartDay + j) % 7] + '</td>\n';
      }
      
      result += '</tr>\n';
      
      for(var row=1; row<=6; row++)
      {
        result += '<tr>\n';
        
        for(var col=1; col<=7; col++)
        { 
          var disabled = false;
          
          if(this.disabledDatesExpression != "")
          {
            var ds = "" + display_year + LZ(display_month) + LZ(display_date);
            eval("disabled=(" + this.disabledDatesExpression + ")");
          }
          
          var dateClass = "";
          if((display_month == this.currentDate.getMonth() + 1) && (display_date == this.currentDate.getDate()) && (display_year == this.currentDate.getFullYear()))
          {
            dateClass = "cpCurrentDate";
          }
          else if(display_month == month)
          {
            dateClass = "cpCurrentMonthDate";
          }
          else
          {
            dateClass = "cpOtherMonthDate";
          }
          
          if(disabled || this.disabledWeekDays[col-1])
          {
            result += '<td class="' + this.cssPrefix+dateClass + '"><span class="' + this.cssPrefix+dateClass + ' disabled">' + display_date + '</span></td>\n';
          }
          else
          {
            var selected_date = display_date;
            var selected_month = display_month;
            var selected_year = display_year;
            
            if(this.displayType == "week-end")
            {
              var d = new Date(selected_year, selected_month - 1, selected_date, 0, 0, 0, 0);
              d.setDate(d.getDate() + (7 - col));
              selected_year = d.getYear();
              
              if(selected_year < 1000)
              {
                selected_year += 1900;
              }
              
              selected_month = d.getMonth() + 1;
              selected_date = d.getDate();
            }
            // HEREIN
            result += '<td height="17" class="' + this.cssPrefix + dateClass + '"><a href="javascript:' + windowref + this.returnFunction + '(' + selected_year + ', ' + selected_month + ', ' + selected_date + ');' + windowref + 'calculateDays();' + windowref + 'CP_hideCalendar(\'' + this.index + '\');" class="' + this.cssPrefix + dateClass + '">' + display_date + '</a></td>\n';
          }
          
          display_date++;
          
          if(display_date > daysinmonth[display_month])
          {
            display_date = 1;
            display_month++;
          }
          
          if(display_month > 12)
          {
            display_month = 1;
            display_year++;
          }
        }
        
        result += '</tr>';
      }
      
      var current_weekday = now.getDay() - this.weekStartDay;
      
      if(current_weekday < 0)
      {
        current_weekday += 7;
      }
      
      result += '<tr>\n';
      result += '<td colspan=7 align=center class="' + this.cssPrefix + 'cpTodayText">\n';
      
      if(this.disabledDatesExpression != "")
      {
        var ds = "" + now.getFullYear() + LZ(now.getMonth() + 1) + LZ(now.getDate());
        eval("disabled=(" + this.disabledDatesExpression + ")");
      }
      
      if(disabled || this.disabledWeekDays[current_weekday + 1])
      {
        result += '<span class="' + this.cssPrefix + 'cpTodayTextDisabled">' + this.todayText + '</span>\n';
      }
      else
      {
        result += '<a class="' + this.cssPrefix + 'cpTodayText" href="javascript:' + windowref + this.returnFunction + '(\'' + now.getFullYear() + '\',\'' + (now.getMonth() + 1) + '\',\'' + (now.getDate() + 1) + '\');' + windowref + 'calculateDays();' + windowref + 'CP_hideCalendar(\'' + this.index + '\');">' + this.todayText + '</a>\n';
      }
      
      result += '</td></tr></table>';
      result += '</center></td></tr></table>\n';
    }
    
    if(this.displayType == "month" || this.displayType == "quarter" || this.displayType == "year")
    {
      if(arguments.length > 0)
      {
        var year = arguments[0];
      }
      else
      {
        if(this.displayType == "year")
        {
          var year = now.getFullYear() - this.yearSelectStartOffset;
        }
        else
        {
          var year = now.getFullYear();
        }
      }
      
      if(this.displayType != "year" && this.isShowYearNavigation)
      {
        result += "<table width=144 border=0 borderwidth=0 cellpadding=0 cellspacing=0 align='center'>";
        result += '<tr>\n';
        result += '<td class="' + this.cssPrefix + 'cpYearNavigation" width="22"><a class="' + this.cssPrefix + 'cpYearNavigation" href="javascript:' + windowref + 'CP_refreshCalendar(' + this.index + ',' + (year - 1) + ');"><b>&laquo;</b></a></td>\n';
        result += '<td class="' + this.cssPrefix + 'cpYearNavigation" width="100">' + year + '</td>\n';
        result += '<td class="' + this.cssPrefix + 'cpYearNavigation" width="22"><a class="' + this.cssPrefix + 'cpYearNavigation" href="javascript:' + windowref + 'CP_refreshCalendar(' + this.index + ',' + (year + 1) + ');"><b>&raquo;</b></a></td>\n';
        result += '</tr></table>\n';
      }
    }
    
    if(this.displayType == "month")
    {
      result += '<table width=144 border=0 cellpadding=1 cellspacing=0 align=center>\n';
      
      for(var i=0; i<4; i++)
      {
        result += '<tr>';
        
        for(var j=0; j<3; j++)
        {
          var monthindex = ((i*3) + j);
          
          result += '<td width=33% align=center><a class="' + this.cssPrefix + 'cpText" href="javascript:' + windowref + this.returnMonthFunction+'(' + year + ',' + (monthindex + 1) + ');' + windowref + 'CP_hideCalendar(\'' + this.index + '\');" class="' + date_class + '">' + this.monthAbbreviations[monthindex] + '</a></td>';
        }
        
        result += '</tr>';
      }
      
      result += '</table></center></td></tr></table>\n';
    }
    
    if(this.displayType == "quarter")
    {
      result += '<br><table width=144 border=1 cellpadding=0 cellspacing=0 align=center>\n';
      
      for(var i=0; i<2; i++)
      {
        result += '<tr>';
        
        for(var j=0; j<2; j++)
        {
          var quarter = ((i * 2) + j + 1);
          
          result += '<td width=50% align=center><br><a class="' + this.cssPrefix + 'cpText" href="javascript:' + windowref + this.returnQuarterFunction + '(' + year + ',' + quarter + ');' + windowref + 'CP_hideCalendar(\'' + this.index + '\');" class="' + date_class + '">Q' + quarter + '</a><br><br></td>';
        }
        
        result += '</tr>';
      }
      
      result += '</table></center></td></tr></table>\n';
    }
    
    if(this.displayType == "year")
    {
      var yearColumnSize = 4;
      
      result += "<table width=144 border=0 borderwidth=0 cellspacing=0 cellpadding=0>";
      result += '<tr>\n';
      result += '<td class="' + this.cssPrefix + 'cpYearNavigation" width="50%"><a class="' + this.cssPrefix + 'cpYearNavigation" href="javascript:' + windowref + 'CP_refreshCalendar(' + this.index + ',' + (year - (yearColumnSize * 2)) + ');"><b>&laquo;</b></a></td>\n';
      result += '<td class="' + this.cssPrefix + 'cpYearNavigation" width="50%"><a class="' + this.cssPrefix + 'cpYearNavigation" href="javascript:' + windowref + 'CP_refreshCalendar(' + this.index + ',' + (year + (yearColumnSize * 2)) + ');"><b>&raquo;</b></a></td>\n';
      result += '</tr></table>\n';
      result += '<table width=144 border=0 cellpadding=1 cellspacing=0 align=center>\n';
      
      for(var i=0; i<yearColumnSize; i++)
      {
        for(var j=0; j<2; j++)
        {
          var currentyear = year + (j * yearColumnSize) + i;
          result += '<td width=50% align=center><a class="' + this.cssPrefix + 'cpText" href="javascript:' + windowref + this.returnYearFunction + '(' + currentyear + ');' + windowref + 'CP_hideCalendar(\'' + this.index + '\');" class="' + date_class + '">' + currentyear + '</a></td>';
        }
        
        result += '</tr>';
      }
      
      result += '</table></center></td></tr></table>\n';
    }
    
    if(this.type == "WINDOW")
    {
      result += "</body></html>\n";
    }
    
    return result;
}
