    var _dts = new Object();
    var _dts_mesice = new Array('Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec');
    var _dts_mesice2 = new Array('ledna', 'února', 'března', 'dubna', 'května', 'června', 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince');
    var _dts_dny = new Array('Po', 'Út', 'St', 'Čt', 'Pá', 'So', 'Ne');
    var _dts_dny2 = new Array('Neděle', 'Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota');
    var _dts_dny3 = new Array('neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota');
    var _dts_svatky =new Array(
        new Array("Nový rok","Karina","Radmila","Diana","Dalimil","Tři králové","Vilma","Čestmír","Vladan","Břetislav","Bohdana","Pravoslav","Edita","Radovan","Alice","Ctirad","Drahoslav","Vladislav","Doubravka","Ilona","Běla","Slavomír","Zdeněk","Milena","Miloš","Zora","Ingrid","Otýlie","Zdislava","Robin","Marika"),
        new Array("Hynek","Nela","Blažej","Jarmila","Dobromila","Vanda","Veronika","Milada","Apolena","Mojmír","Božena","Slavěna","Věnceslav","Valentýn","Jiřina","Ljuba","Miloslava","Gizela","Patrik","Oldřich","Lenka","Petr","Svatopluk","Matěj","Liliana","Dora","Alexandr","Lumír","Horymír"),
        new Array("Bedřich","Anežka","Kamil","Stela","Kazimír","Miroslav","Tomáš","Gabriela","Františka","Viktorie","Anděla","Rehoř","Růžena","Rút","Ida","Elena","Vlastimil","Eduard","Josef","Světlana","Radek","Leona","Ivona","Gabriel","Marián","Emanuel","Dita","Soňa","Taťána","Arnošt","Kvido"),
        new Array("Hugo","Erika","Richard","Ivana","Miroslava","Vendula","Heřman","Ema","Dušan","Darja","Izabela","Julius","Aleš","Vincenc","Anastázie","Irena","Rudolf","Valerie","Rostislav","Marcela","Alexandra","Evženie","Vojtěch","Jiří","Marek","Oto","Jaroslav","Vlastislav","Robert","Blahoslav"),
        new Array("Svátek práce","Zikmund","Alexej","Květoslav","Klaudie","Radoslav","Stanislav","Státní svátek","Ctibor","Blažena","Svatava","Pankrác","Servác","Bonifác","Žofie","Přemysl","Aneta","Nataša","Ivo","Zbyněk","Monika","Emil","Vladimír","Jana","Viola","Filip","Valdemar","Vilém","Maxim","Ferdinand","Kamila"),
        new Array("Laura","Jarmil","Tamara","Dalibor","Dobroslav","Norbert","Iveta","Medard","Stanislava","Gita","Bruno","Antonie","Antonín","Roland","Vít","Zbyněk","Adolf","Milan","Leoš","Květa","Alois","Pavla","Zdenka","Jan","Ivan","Adriana","Ladislav","Lubomír","Petr a Pavel","Šárka"),
        new Array("Jaroslava","Patricie","Radomír","Prokop","Cyryl Metod","Jan Hus","Bohuslava","Nora","Drahoslava","Libuše","Olga","Borek","Markéta","Karolína","Jindřich","Luboš","Martina","Drahomíra","Čeněk","Ilija","Vítězslav","Magdaléna","Libor","Kristýna","Jakub","Anna","Věroslav","Viktor","Marta","Bořivoj","Ignác"),
        new Array("Oskar","Gustav","Miluše","Dominik","Kristián","Oldřiška","Lada","Soběslav","Roman","Vavřinec","Zuzana","Klára","Alena","Alan","Hana","Jáchym","Petra","Helena","Ludvík","Bernard","Johana","Bohuslav","Sandra","Bartoloměj","Radim","Luděk","Otakar","Augustýn","Evelína","Vladěna","Pavlína"),
        new Array("Linda","Adéla","Bronislav","Jindřiška","Boris","Boleslav","Regína","Mariana","Daniela","Irma","Denisa","Marie","Lubor","Radka","Jolana","Ludmila","Naděžda","Kryštof","Zita","Oleg","Matouš","Darina","Berta","Jaromír","Zlata","Andrea","Jonáš","Václav","Michal","Jeroným"),
        new Array("Igor","Galina","Bohumil","František","Eliška","Hanuš","Justýna","Věra","Štefan","Marina","Andrej","Marcel","Renáta","Agáta","Tereza","Havel","Hedvika","Lukáš","Michaela","Vendelín","Brigita","Sabina","Teodor","Nina","Beáta","Erik","Šarlota","Státní svátek","Silvie","Tadeáš","Štěpánka"),
        new Array("Felix","Svátek všech duší","Hubert","Karel","Miriam","Liběna","Saskie","Bohumír","Bohdan","Evžen","Martin","Benedikt","Tibor","Sáva","Leopold","Otmar","Mahulena","Romana","Alžběta","Nikola","Albert","Cecílie","Klement","Emílie","Kateřina","Artur","Xenie","René","Zina","Ondřej"),
        new Array("Iva","Blanka","Svatoslav","Barbora","Jitka","Mikuláš","Ambrož","Květoslava","Vratislav","Julie","Dana","Simona","Lucie","Lýdie","Radana","Albína","Daniel","Miloslav","Ester","Dagmar","Natálie","Šimon","Vlasta","Adam a Eva","1.Svátek vánoční","2.Svátek vánoční","Žaneta/Jan","Bohumila","Judita","David","Silvestr")
        );
    ////////////////////////////////////////////////////////////////////////////
    function DateTimePicker(name, value, settings)
    {
        this._name = name;
        this._settings = settings;
        this._minDate = dtp_onlyDate(this._settings.minDate);
        this._maxDate = dtp_onlyDate(this._settings.maxDate);
        for(var i = 0; i < this._settings.disableDate.length; i++)
            this._settings.disableDate[i] = dtp_onlyDate(this._settings.disableDate[i]);
        
        var _this = this;
        this.Open = dtp_open;
        this.Close = dtp_close;
        this.Init = dtp_init;
        this.SetValue = dtp_setValue;
        this.SetOpacity = dtp_setOpacity;
        this.ShowMonth = dtp_showMonth;
        this.ShowPrevMonth = dtp_showPrevMonth;
        this.ShowNextMonth = dtp_showNextMonth;
        this.ShowPrevYear = dtp_showPrevYear;
        this.ShowNextYear = dtp_showNextYear;
        this.Svatek = dtp_Svatek;
        this._box = document.getElementById('DateTimePicker_' + name);
        this._inputLabel = this._box.getElementsByTagName('input').item(0);
        this._inputHidden = this._box.getElementsByTagName('input').item(1);
        this._anchor = this._box.getElementsByTagName('a').item(0);
        this._inputLabel.onclick = this._anchor.onclick = function(e) { _dts[name].Open(e); };
        this.SetValue(new Date(value)); // nastavit this._value;
    }
    ////////////////////////////////////////////////////////////////////////////
    function dtp_init()
    {
        ///////////////////
        // box
        //  <div picker>
        //      <div control>
        //          <a prev />
        //          <a prev2 />
        //          <div labelMY />
        //          <a next2 />
        //          <a next />
        //      </div>
        //      <table>
        //          <tr><td><div item></td>...
        //      </table>
        //      <div footer>
        //          <div time><select />:<select />:<select /></div>
        //          <a today />
        //      </div>
        //  </div>
        var _this = this;
        
        this._picker = document.createElement('div');
        this._picker.className = 'dateTimePicker_box';
        this._picker.style.position = 'absolute';
        this._picker.style.zIndex = '1000';
        this._picker.style.display = 'none';
            this._titler = document.createElement('div');
            this._titler.className = 'dateTimePicker_titler';
            this._picker.appendChild(this._titler);
                var titlerText = document.createElement('span');
                //titlerText.innerHTML = 'Výběr termínu';
                titlerText.innerHTML = this._settings.title;
                this._titler.appendChild(titlerText);
            this._titler.onmousedown = function(e) { 
                this.style.cursor = 'Move'; 
                _this._onmove = true; 
                e = (!e)? window.event: e;
                _this._pos = e.pageX 
                    ? {'x':e.pageX, 'y':e.pageY} 
                    : {'x':e.clientX + document.documentElement.scrollLeft + document.body.scrollLeft, 'y':e.clientY + document.documentElement.scrollTop + document.body.scrollTop};                         
            };
            this._titler.onmouseup = function() { this.style.cursor = ''; _this._onmove = false; };
            function mouseMove(e) {
                if(!_this._onmove) return;
                e = (!e)? window.event: e;
                var pos = e.pageX 
                    ? {'x':e.pageX, 'y':e.pageY} 
                    : {'x':e.clientX + document.documentElement.scrollLeft + document.body.scrollLeft, 'y':e.clientY + document.documentElement.scrollTop + document.body.scrollTop};
                _this._absPos.x += pos.x - _this._pos.x;
                _this._absPos.y += pos.y - _this._pos.y;
                _this._pos = pos;
                _this._picker.style.left = _this._absPos.x + 'px';
                _this._picker.style.top = _this._absPos.y + 'px';
            };
            (document.addEventListener)
                ? document.addEventListener('mousemove', mouseMove, false)
                : document.attachEvent('onmousemove', mouseMove);
                var btnCloser = document.createElement('a');
                btnCloser.href = "javascript: void(0);";
                btnCloser.title = 'Zavřít';
                btnCloser.className = 'dateTimePicker_closer';
                btnCloser.onclick = function() { _this.Close(); };
                this._titler.appendChild(btnCloser);
            this._control = document.createElement('div');
            this._control.className = 'dateTimePicker_control';
            this._picker.appendChild(this._control);
                this._prev = document.createElement('a');
                this._prev.className = 'dateTimePicker_prev';
                this._prev.setAttribute('href', 'javascript: void(0);');
                this._prev.onclick = function() { _dts[_this._name].ShowPrevMonth(); };
                this._control.appendChild(this._prev);
                this._labelMY0 = document.createElement('div');
                this._labelMY0.className = 'dateTimePicker_labelMY0';
                this._control.appendChild(this._labelMY0);
                this._labelMY1 = document.createElement('div');
                this._labelMY1.className = 'dateTimePicker_labelMY1';
                this._labelMY1.innerHTML = '&nbsp;';
                this._control.appendChild(this._labelMY1);
                this._labelMY2 = document.createElement('div');
                this._labelMY2.className = 'dateTimePicker_labelMY2';
                this._labelMY2.innerHTML = '&nbsp;';
                this._control.appendChild(this._labelMY2);
                this._labelMY = new Array(this._labelMY0, this._labelMY1, this._labelMY2);
                this._next = document.createElement('a');
                this._next.className = 'dateTimePicker_next';
                this._next.setAttribute('href', 'javascript: void(0);');
                this._next.onclick = function() { _dts[_this._name].ShowNextMonth(); };
                this._control.appendChild(this._next);
            this._items = new Array();
            for(var ii = 0; ii < 3; ii++)
            {
                this._items[ii] = new Array();
                var table = document.createElement('table');
                table.className = (ii == 0)
                    ? 'dateTimePicker_firstTable'
                    : 'dateTimePicker_otherTable';
                    var thead = document.createElement('thead');
                    table.appendChild(thead);
                        var tr = document.createElement('tr');
                        thead.appendChild(tr);
                            for(var i = 0; i < 7; i ++)
                            {
                                var th = document.createElement('th');
                                th.innerHTML = _dts_dny[i];
                                tr.appendChild(th);
                            }
                    var tbody = document.createElement('tbody');
                    table.appendChild(tbody);
                        for(var y = 0; y < 6; y++)
                        {
                            var tr = document.createElement('tr');
                            tbody.appendChild(tr);
                                for(var i = 0; i < 7; i ++)
                                {
                                    var td = document.createElement('td');
                                    tr.appendChild(td);
                                    var a = document.createElement('a');
                                    a.setAttribute('href', 'javascript: void(0);');
                                    td.appendChild(a);
                                    this._items[ii][this._items[ii].length] = a;
                                }
                        }
                this._picker.appendChild(table);
            }
            var div = document.createElement('div');
            div.className = 'dateTimePicker_footer';
            this._picker.appendChild(div);
                // datum
                var d = document.createElement('div');
                d.className = 'dateTimePicker_time';
                div.appendChild(d);
                if(this._settings.format.indexOf('H') == -1)
                    d.style.display = 'none';
                    // hodiny
                    this._hours = document.createElement('select');
                        for(var i = 0; i < 24; i ++)
                        {
                            var opt = document.createElement('option');
                            opt.innerHTML = i < 10? '0' + i: i;
                            opt.value = i;
                            this._hours.appendChild(opt);
                        }
                    this._hours.onchange = function()
                    {
                        var res = new Date(_this._value.getTime());
                        res.setHours(this.value);
                        _this.SetValue(res);
                    };
                    d.appendChild(this._hours);
                    var s = document.createElement('span');
                    s.innerHTML = ':';
                    d.appendChild(s);
                    // minuty 
                    this._minutes = document.createElement('select');
                        for(var i = 0; i < 60; i ++)
                        {
                            var opt = document.createElement('option');
                            opt.innerHTML = i < 10? '0' + i: i;
                            opt.value = i;
                            this._minutes.appendChild(opt);
                        }
                    d.appendChild(this._minutes);
                    this._minutes.onchange = function()
                    {
                        var res = new Date(_this._value.getTime());
                        res.setMinutes(this.value);
                        _this.SetValue(res);
                    };
                    // sec
                    var s = document.createElement('span');
                    s.innerHTML = ':';
                    d.appendChild(s);
                    this._seconds = document.createElement('select');
                        for(var i = 0; i < 60; i ++)
                        {
                            var opt = document.createElement('option');
                            opt.innerHTML = i < 10? '0' + i: i;
                            opt.value = i;
                            this._seconds.appendChild(opt);
                        }
                    d.appendChild(this._seconds);
                    this._seconds.onchange = function()
                    {
                        var res = new Date(_this._value.getTime());
                        res.setSeconds(this.value);
                        _this.SetValue(res);
                    };
                // today
                if(this._settings.today)
                {
                    var a = document.createElement('a');
                    a.innerHTML = 'Dnes';
                    a.className = 'dateTimePicker_today';
                    a.setAttribute('href', 'javascript: void(0);');
                    a.onclick = function() { 
                        var res = new Date();
                        _this.SetValue(res);
                        _this.Close();
                    };
                    div.appendChild(a);
                }
        dtp_setOpacity(this._picker, 0);
        this._opacity = 0;
        //document.getElementsByTagName('body').item(0).appendChild(this._picker);
        document.body.appendChild(this._picker);
        function docKeyDown(e)
        {
            if(_this._state != 'open') return;
            e = (!e)? window.event: e;
            var keyCode = e.keyCode;
            // next
            if((keyCode == 39 || keyCode == 32) && _this._next.style.visibility == 'visible')
                _this.ShowNextMonth();
            // prev
            if((keyCode == 37 || keyCode == 8) && _this._prev.style.visibility == 'visible')
                _this.ShowPrevMonth();    
            // close
            if(keyCode == 27 || keyCode == 88)
                _this.Close();
            return false;
        };
        (document.addEventListener)
                ? document.addEventListener('keydown', docKeyDown, false)
                : document.attachEvent('onkeydown', docKeyDown);
    }
    ////////////////////////////////////////////////////////////////////////////
    function dtp_open(e)
    {
        
        // pozicovani ////////////
        if(this._state != 'open')
        {
            
            if(this._init != true)
            {
                this.Init();
                this._init = true;
            }
            
              // ostatni dtp se zavrou
              for(d in _dts)
                if(_dts[d]._state != 'close' && _dts[d]._init)
                    _dts[d].Close();
			  
              //schovani selectu pro MSIE6
			  if(navigator.appName == 'Microsoft Internet Explorer' && parseInt(navigator.appVersion.split('MSIE')[1]) <= 6)
				{  
					var list = document.getElementsByTagName('select');
					for(var i = 0; i < list.length; i++)
						list.item(i).style.visibility = 'hidden';
				}
				
			if (document.getElementById('gtsbanner'))
			{
				document.getElementById('gtsbanner').style.display = 'none';
				document.getElementById('gtsbannerpng').style.display = 'block';
			}
            e = e? e: event;
            var xScroll, yScroll;
        	if (document.documentElement && document.documentElement.scrollTop){	
        		yScroll = document.documentElement.scrollTop;
        		xScroll = document.documentElement.scrollLeft;
        	} else if (document.body) {
        		yScroll = document.body.scrollTop;
        		xScroll = document.body.scrollLeft;	
        	}
            this._picker.style.left = e.clientX + xScroll - 400 + 'px';
            this._picker.style.top = e.clientY + yScroll - 90 + 'px';
            this._absPos = {x: e.clientX + xScroll - 400, y: e.clientY + yScroll - 90};
            this._picker.style.display = 'block';
            this._state = 'open';
            this.ShowMonth(this._value.getMonth(), this._value.getFullYear());
            this._hours.value = this._value.getHours();
            this._minutes.value = this._value.getMinutes();
            this._seconds.value = this._value.getSeconds();  
        }
        // animace ///////////
        if(this._opacity < 1)
        {
            this._opacity += (1 - this._opacity) / 3;
            if(this._opacity > 0.95) this._opacity = 1;
            dtp_setOpacity(this._picker, this._opacity);
            window.setTimeout("_dts['" + this._name + "'].Open(0);", 10);
            return;    
        }
        var _this = this;
        this._inputLabel.onclick = this._anchor.onclick = function() { _dts[_this._name].Close(); };            
    }
    ////////////////////////////////////////////////////////////////////////////
    function dtp_close()
    {
        this._state = 'close';
        var _this = this;
        this._inputLabel.onclick = this._anchor.onclick = function(e) { _dts[_this._name].Open(e); };
        this._picker.style.display = 'none';
        this._opacity = 0;
        this._onmove = false;
		//obnoveni selectu pro MSIE6
        if(navigator.appName == 'Microsoft Internet Explorer' && parseInt(navigator.appVersion.split('MSIE')[1]) <= 6)
        {
            var list = document.getElementsByTagName('select');
            for(var i = 0; i < list.length; i++)
                list.item(i).style.visibility = 'visible';
        }
		if (document.getElementById('gtsbanner'))
		{
			document.getElementById('gtsbannerpng').style.display = 'none';
			document.getElementById('gtsbanner').style.display = 'block';
		}
	}
    ////////////////////////////////////////////////////////////////////////////
    function dtp_setValue(value)
    {                    
        this._value = value;
        var d = new Date(this._inputHidden.value * 1000);
        var d = value.getDate().toString(); if(d.length == 1) d = "0" + d;
        var j = value.getDate().toString();
        var m = (value.getMonth() + 1).toString(); if(m.length == 1) m = "0" + m;
        var n = (value.getMonth() + 1).toString();
        var F = _dts_mesice2[value.getMonth()];
        var Y = value.getFullYear().toString();
        var y = value.getFullYear().toString().substring(2,4);
        var H = value.getHours().toString(); if(H.length == 1) H = "0" + H;
        var i = value.getMinutes().toString(); if(i.length == 1) i = "0" + i;
        var s = value.getSeconds().toString(); if(s.length == 1) s = "0" + s;
        var q = _dts_dny3[value.getDay()];
        var str = this._settings.format;
        var str2 = this._settings.valueFormat;
        str = str.replace("d", d); str2 = str2.replace("d", d);
        str = str.replace("j", j); str2 = str2.replace("j", j);
        str = str.replace("m", m); str2 = str2.replace("m", m);
        str = str.replace("n", n); str2 = str2.replace("n", n);
        str = str.replace("F", F); str2 = str2.replace("F", F);
        str = str.replace("Y", Y); str2 = str2.replace("Y", Y);
        str = str.replace("y", y); str2 = str2.replace("y", y);
        str = str.replace("H", H); str2 = str2.replace("H", H);
        str = str.replace("i", i); str2 = str2.replace("i", i);
        str = str.replace("s", s); str2 = str2.replace("s", s);
        str = str.replace("q", q); str2 = str2.replace("q", q);
        this._inputHidden.value = str2;
        this._inputLabel.value = str;
        
        if(this._settings.onChange && this._settings.onChange2)
            this._settings.onChange(this._name, str2);
        
        this._settings.onChange2 = true;
    }
    ////////////////////////////////////////////////////////////////////////////
    function dtp_showNextMonth()
    {
        if(this._actualMonth == 11)
            this.ShowMonth(0, this._actualYear + 1);
        else
            this.ShowMonth(this._actualMonth + 1, this._actualYear);
    }
    function dtp_showPrevMonth()
    {
        if(this._actualMonth == 0)
            this.ShowMonth(11, this._actualYear - 1);
        else
            this.ShowMonth(this._actualMonth - 1, this._actualYear);
    }
    function dtp_showNextYear()
    {
        this.ShowMonth(this._actualMonth, this._actualYear + 1);
    }
    function dtp_showPrevYear()
    {
        this.ShowMonth(this._actualMonth, this._actualYear - 1);
    }
    function dtp_showMonth(month, year)
    {
        
        this._actualMonth = month;
        this._actualYear = year;
        var _this = this;
        var showPrev = false;    
        month -= 1;
        
        
        for(var ii = 0; ii < 3; ii++)
        {
            if(ii > 0) month ++;
            if(month == 12) { month = 0; year ++; }
            if(month == -1) {month = 11; year --; }
            
            //else month ++;
            //document.title += month + ', ';
            var dnuVMesici = dtp_dnuVMesici(month, year);
            var index = 0; // od ktereho itemu zacit plnit aktualni mesic
            var firstDay = new Date(year, month, 1);
            firstDay = firstDay.getDay();
            firstDay = (firstDay == 0) ? 6 : firstDay - 1;
            index = firstDay; //firstDay > 0? firstDay: 7;
            for(var i = 0; i < this._items[ii].length; i++)
            {
                this._items[ii][i].onclick = function() {};
                this._items[ii][i].className = 'nonActualMonthNonSelect';
            }
            // aktualni mesic
            for(var i = 0; i < dnuVMesici; i++)
            {
                var item = this._items[ii][i + index]; 
                item.innerHTML = i + 1;
                var d = new Date(year, month, i + 1, 0, 0, 0, 0);
                item.title = _dts_dny2[d.getDay()] + ' ' + d.getDate() + '. ' + _dts_mesice2[d.getMonth()] + ' ' + d.getFullYear() + ' - ' + _dts_svatky[d.getMonth()][d.getDate() - 1];
                
                disabled = false;
                for(var __i = 0; __i < this._settings.disableDate.length; __i++)
                    if(d.getTime() == this._settings.disableDate[__i].getTime()) {
                        disabled = true;
                        break;
                    }
                    else if(d.getTime() < this._settings.disableDate[__i].getTime())
                        break;
                
                if(disabled || d.getTime() < this._minDate.getTime() || d.getTime() > this._maxDate.getTime() || (this._settings.weekdays && (d.getDay() == 0 || d.getDay() == 6 || this.Svatek(d))))
                { // neni k vyberu
                    item.className = 'actualMonthNonSelect';
                    item.onclick = function() {};
                }
                else
                { // je k vyberu
                    item.className = 'actualMonth';
                    if(d.getDay() == 0 || d.getDay() == 6)
                        item.className = 'actualMonthWeek';
                    if(this._value.getMonth() == month && this._value.getFullYear() == year && this._value.getDate() == i + 1)
                    {
                        item.className = 'actualDay';
                        if(d.getDay() == 0 || d.getDay() == 6)
                            item.className = 'actualDayWeek';
                    }
                    item.setAttribute('rel', i + 1);
                    item.month = month;
                    item.year = year;
                    
                    item.onclick = function()
                    {
                        var res = new Date();
                        //alert(_this._value);
                        res.setDate(this.getAttribute('rel'));
                        res.setSeconds(_this._value.getSeconds());
                        res.setMinutes(_this._value.getMinutes());
                        res.setHours(_this._value.getHours());
                        res.setDate(this.getAttribute('rel'));
                        res.setMonth(this.month);
                        res.setFullYear(this.year);
                        //alert(this.getAttribute('rel'));
                        //alert(this.month);
                        _this.SetValue(res);
                        _this.Close();
                        
                    };
                }
            }
            this._labelMY[ii].innerHTML = _dts_mesice[month] + ' ' + year;
        }
    }
    ////////////////////////////////////////////////////////////////////////////
    // vrati T/F zda je datum svatek
    var _dts_svatky2 = new Object();
    _dts_svatky2['1'] = new Object(); _dts_svatky2['1']['1'] = true; 
    _dts_svatky2['5'] = new Object(); _dts_svatky2['5']['8'] = _dts_svatky2['5']['1'] = true;
    _dts_svatky2['7'] = new Object(); _dts_svatky2['7']['5'] = _dts_svatky2['7']['6'] = true; 
    _dts_svatky2['9'] = new Object(); _dts_svatky2['9']['28'] = true; 
    _dts_svatky2['10'] = new Object(); _dts_svatky2['10']['28'] = true; 
    _dts_svatky2['11'] = new Object(); _dts_svatky2['11']['17'] = true; 
    _dts_svatky2['12'] = new Object(); _dts_svatky2['12']['24'] = _dts_svatky2['12']['25'] = _dts_svatky2['12']['26'] = true;
    
    function dtp_Svatek(date)
    {
        if(_dts_svatky2[date.getMonth() + 1] && _dts_svatky2[date.getMonth() + 1][date.getDate()] == true) 
            return true;
        var v = dtp_Velikonoce(date.getFullYear());
        if(v.getTime() == date.getTime()) return true;
        for(var i=0; i < this._settings.disableDate.length; i++)
            if(this._settings.disableDate[i].getTime() == date.getTime()) return true;
        return false;
    }
    ////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////
    function dtp_dnuVMesici(month, year)
    {
        var dnuVMesici = 31;
        if (month == 3 || month == 5 || month == 8 || month == 10)
            dnuVMesici = 30;
        else if (month == 1) 
            dnuVMesici = (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? 29: 28;
        return dnuVMesici;
    }
    function dtp_setOpacity(el, opacity)
    {
        if(el.style.opacity != null) el.style.opacity = opacity;
        else if (el.style.filter != null) el.style.filter = "alpha(opacity="+(opacity * 100)+")";     
    }
    function dtp_onlyDate(d)
    {
        var res = new Date(d);
        res.setHours(0); 
        res.setMinutes(0); 
        res.setSeconds(0); 
        res.setMilliseconds(0);
        return res;    
    }
    var _dts_velikonoce = new Object();
    function dtp_Velikonoce(Y)
    {
        if(_dts_velikonoce[Y]) return _dts_velikonoce[Y];
        var C = Math.floor(Y/100);
        var N = Y - 19*Math.floor(Y/19);
        var K = Math.floor((C - 17)/25);
        var I = C - Math.floor(C/4) - Math.floor((C - K)/3) + 19*N + 15;
        I = I - 30*Math.floor((I/30));
        I = I - Math.floor(I/28)*(1 - Math.floor(I/28)*Math.floor(29/(I + 1))*Math.floor((21 - N)/11));
        var J = Y + Math.floor(Y/4) + I + 2 - C + Math.floor(C/4);
        J = J - 7*Math.floor(J/7);
        var L = I - J;
        var M = 3 + Math.floor((L + 40)/44);
        var D = L + 28 - 31*Math.floor(M/4);
        _dts_velikonoce[Y] = new Date(Y, M - 1, D + 1, 0, 0, 0, 0); 
        return _dts_velikonoce[Y];
    }