(function() {
                var Dom = YAHOO.util.Dom,
                    Event = YAHOO.util.Event, cal1, over_cal = false,
                    cur_field = '';
            
                var init = function() {
                    var today = new Date(); cal1 = new
                    YAHOO.widget.CalendarGroup("cal1","cal1Container",
                    {mindate: today, close: true});
                    cal1.selectEvent.subscribe(getDate, cal1, true);
                    cal1.cfg.setProperty("START_WEEKDAY",  1);
                    cal1.renderEvent.subscribe(setupListeners, cal1,
                    true); Event.addListener(['from', 'to'], 'focus',
                    showCal); Event.addListener(['from', 'to'], 'blur',
                    hideCal); cal1.render();
                }
            
                var setupListeners = function() {
                    Event.addListener('cal1Container', 'mouseover',
                    function() {
                        over_cal = true;
                    }); Event.addListener('cal1Container', 'mouseout',
                    function() {
                        over_cal = false;
                    });
                }
            
                var getDate = function() {
                        var calDate = this.getSelectedDates()[0]; var
                        tmpDate = calDate; calDate = calDate.getDate() +
                        '/' + (calDate.getMonth() + 1) + '/' +
                        calDate.getFullYear(); cur_field.value =
                        calDate; over_cal = false; testDates(tmpDate);
                        hideCal();
                }
            
                var showCal = function(ev) {
                    var tar = Event.getTarget(ev); cur_field = tar;
                
                    var xy = Dom.getXY(tar),
                        date = Dom.get(tar).value;
                    if (date) {
                        cal1.cfg.setProperty('selected', date);
                        cal1.cfg.setProperty('pagedate', new Date(date),
                        true);
                    } else {
                        cal1.cfg.setProperty('selected', '');
                        cal1.cfg.setProperty('pagedate', new Date(),
                        true);
                    }
                    var from = document.getElementById("from");
                    //if (from != '') {
                    //            var second = from.value.split("/");
                    //            
                    //            alert(second[0]+"/"+second[1]);
                    //            cal1.addRenderer(second[0]+"/"+second[1]+",1/1", renderHoliday);
                    //}
                    cal1.render(); Dom.setStyle('cal1Container',
                    'display', 'block'); xy[1] = xy[1] + 20;
                    Dom.setXY('cal1Container', xy);
                }
            
                var hideCal = function() {
                    if (!over_cal) {
                        Dom.setStyle('cal1Container', 'display',
                        'none');
                    }
                }
                
                var renderHoliday = function(workingDate, cell) { 
                                YAHOO.util.Dom.addClass(cell, "picked"); 
                } 
                
                var testDates = function(date) { // Pilnuje, zeby data koncowa nie byla mniejsza od poczatkowej
                        var from = document.getElementById("from"); var
                        to = document.getElementById("to"); var first =
                        to.value.split("/"); var second =
                        from.value.split("/"); var field = new
                        Date(first[2], first[1]-1, first[0]); var field2
                        = new Date(second[2], second[1]-1, second[0]);
                        if (field.getTime() < field2.getTime() ||
                        (from.value == "" || to.value =="")) {
                                 var time = date.getTime(); var date2 =
                                 new Date(time); if (from.value == "") {
                                        var date3 = new Date(time -
                                        1000*60*60*24); from.value =
                                        date3.getDate()+"/"+(date3.getMonth()+1)+"/"+date3.getFullYear();
                                        to.value =
                                        date2.getDate()+"/"+(date2.getMonth()+1)+"/"+date2.getFullYear();
                                 } else {
                                         var date3 = new Date(time +
                                         1000*60*60*24); to.value =
                                         date3.getDate()+"/"+(date3.getMonth()+1)+"/"+date3.getFullYear();
                                         from.value =
                                         date2.getDate()+"/"+(date2.getMonth()+1)+"/"+date2.getFullYear();
                                 }
                         } return true;
                 }
                 YAHOO.widget.Calendar.prototype.renderCellNotThisMonth=function(workingDate,cell){YAHOO.util.Dom.addClass(cell,this.Style.CSS_CELL_OOM);cell.innerHTML='<a href="javascript:void(null);" >'+this.buildDayLabel(workingDate)+"</a>";}
            
            
                Event.addListener(window, 'load', init);
            
            })();

/*(function() {
                        var Dom = YAHOO.util.Dom,
                            Event = YAHOO.util.Event,
                            cal1,
                            over_cal = false,
                            cur_field = '';
                    
                        var init = function() {
                            var today = new Date();
                            cal1 = new YAHOO.widget.Calendar("cal1","cal1Container", {mindate: today, close: true});
                            cal1.selectEvent.subscribe(getDate, cal1, true);
                            cal1.renderEvent.subscribe(setupListeners, cal1, true);
                            Event.addListener(['from', 'to'], 'focus', showCal);
                            Event.addListener(['from', 'to'], 'blur', hideCal);
                            cal1.render();
                        }
                    
                        var setupListeners = function() {
                            Event.addListener('cal1Container', 'mouseover', function() {
                                over_cal = true;
                            });
                            Event.addListener('cal1Container', 'mouseout', function() {
                                over_cal = false;
                            });
                        }
                    
                        var getDate = function() {
                                var calDate = this.getSelectedDates()[0];
                                var tmpDate = calDate;
                                calDate = calDate.getDate() + '/' + (calDate.getMonth() + 1) + '/' + calDate.getFullYear();
                                cur_field.value = calDate;            
                                over_cal = false;
                                testDates(tmpDate);
                                hideCal();
                        }
                    
                        var showCal = function(ev) {
                            var tar = Event.getTarget(ev);
                            cur_field = tar;
                        
                            var xy = Dom.getXY(tar),
                                date = Dom.get(tar).value;
                            if (date) {
                                cal1.cfg.setProperty('selected', date);
                                cal1.cfg.setProperty('pagedate', new Date(date), true);
                            } else {
                                cal1.cfg.setProperty('selected', '');
                                cal1.cfg.setProperty('pagedate', new Date(), true);
                            }
                            cal1.render();
                            Dom.setStyle('cal1Container', 'display', 'block');
                            xy[1] = xy[1] + 20;
                            Dom.setXY('cal1Container', xy);
                        }
                    
                        var hideCal = function() {
                            if (!over_cal) {
                                Dom.setStyle('cal1Container', 'display', 'none');
                            }
                        }
                        
                        var testDates = function(date) { // Pilnuje, zeby data koncowa nie byla mniejsza od poczatkowej
                                var from = document.getElementById("from");
                                var to = document.getElementById("to");
                                var first = to.value.split("/");
                                var second = from.value.split("/");
                                var field = new Date(first[2], first[1]-1, first[0]);
                                var field2 = new Date(second[2], second[1]-1, second[0]);
                                if (field.getTime() < field2.getTime() || (from.value == "" || to.value =="")) {
                                         var time = date.getTime();
                                         var date2 = new Date(time);
                                         if (from.value == "") {
                                                var date3 = new Date(time - 1000*60*60*24);
                                                from.value = date3.getDate()+"/"+(date3.getMonth()+1)+"/"+date3.getFullYear();
                                                to.value = date2.getDate()+"/"+(date2.getMonth()+1)+"/"+date2.getFullYear();
                                         } else {
                                                 var date3 = new Date(time + 1000*60*60*24);
                                                 to.value = date3.getDate()+"/"+(date3.getMonth()+1)+"/"+date3.getFullYear();
                                                 from.value = date2.getDate()+"/"+(date2.getMonth()+1)+"/"+date2.getFullYear();
                                         }
                                 }
                                 return true;
                         }
                    
                        Event.addListener(window, 'load', init);
                    
                    })();*/
