/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
(function($, undefined) {
    
    //DOMYSLNE USTAWIENIA
    var prevButtonText = '';
    var nextButtonText = '';
    var todayButtonText = 'dzisiaj';
    var weekButtonText = 'tydzie\u0144';
    var dayButtonText = 'dzie\u0144';
    
    var calHeaderDateFormat = 'd mmmm yyyy';
    //var dayColDateFormat = 'ddd d.mm';
    var dayColDateFormat = 'dddd';
	
    var firstDay = 1;
    var defaultDate = new Date();
	var whichDay = 0; //zmienna odpowiadająca różnice miedzy dniem dzisiejszym a dniem rysowanym (0- dzisiaj, 1-jutro, -1: -wczoraj) itp;
	var topMargin = 960; //potrzebny przy rysowaniu kalendarza od konkretnej godziny (650 - 8:00), potrzebny do przesunięcia całej tabeli z zawartością kalendarza a także zdarzeń
	var rowHeight = 60;
	var allHeight = 1520;
	
    var days = new Array('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat');
    	
    var tempDate;
    var startData;
    var endData;
    
    var view = {week: true,
                day: false};
    
    
    
    var roomsCount = 0;
	var event_color = "";
	var kategorieID = 0;
	var kids_wiek  = 0;
	var lokalizacja = 0;
    
    var slotMinutes = 30;
    var rowCount = 24*(60/slotMinutes)-1;
    
    var date = new Date();
	var d = date.getDate();
	var m = date.getMonth();
	var y = date.getFullYear();
    
	var events = [];
    var rooms = [];
	var instructors = [];
    var groups = [];
    var styles = [];
	var eg_styles = [];
    var stages = [];
    var age_groups = [];
	var statuses = [];
	var price_list = [];
    var podzial;
    var powiazania = new Object();
    
	//============= GŁOWNA FUNKCJA ==================
    $.fn.MyCalendar = function(_events,_rooms,_instructors,_groups,_styles,_stages,_age_groups,_color,_kategoria,_wiek,_lokalizacja,_statusy,_price_list, _podzial,_firstAndLastEventsHour) {
        events = _events;
        rooms = _rooms;
		roomsCount = rooms.length;
		instructors = _instructors;
		groups = _groups;
		eg_styles = _styles;
		stages = _stages;
		age_groups = _age_groups;
		event_color = _color;
		kategorieID = _kategoria;
		podzial = _podzial;
		kids_wiek = _wiek;
		lokalizacja = _lokalizacja;
		statuses = _statusy;
		price_list = _price_list;
		if(events.length>0)
		{
			calculateTopMargin(_firstAndLastEventsHour);
		}
		
        delete _events;
		delete _rooms;
		delete _groups;
		delete _styles;
		delete _stages;
		delete _age_groups;
		delete _statusy;
		delete _price_list;

        this.html(calendarToHtml(defaultDate));
        buildCalendarSceleton(defaultDate);
        renderCalendarHeader(defaultDate);
        renderCalendarHeaderDays(defaultDate);
        renderTableContent(defaultDate);
        //highlightToday(defaultDate);
        renderBottomFilters();
		//alert("l:"+lokalizacja+"k:"+kategorieID);
        
    }
	//============ KONIEC GŁOWNEJ FUNKCJI ===========
        
    $.fn.settings = function(){
		//alert(location.href);
        $('#button-prev').button({icons: {primary:'ui-icon-circle-triangle-w',secondary:''}, label: '&nbsp'});
        $('#button-next').button({icons: {primary:'ui-icon-circle-triangle-e',secondary:''}, label: '&nbsp'});
        $('#button-today').button({disabled: true, label: todayButtonText});
        $('#button-prev').removeClass('ui-corner-all').addClass('ui-corner-left');
        $('#button-next').removeClass('ui-corner-all').addClass('ui-corner-right');
        $('#button-prev').click(prevClickK);
        $('#button-next').click(nextClickK);
        $('#button-today').click(todayClick);
        $('#button-week').button({disabled: true, label: weekButtonText});
        $('#button-week').removeClass('ui-state-disabled');
        $('#button-week').addClass('ui-state-active');
        $('#button-week').removeClass('ui-corner-all');
        $('#button-week').addClass('ui-corner-left');
        $('#button-day').button({label: dayButtonText});
        $('#button-day').removeClass('ui-corner-all');
        $('#button-day').addClass('ui-corner-right');
        $('#new-event').button({label: 'NE'});
        $('#button-week').click(weekClick);
        $('#button-day').click(dayClick);
		
		//$('.cal_header').css('display','none'); //wyłanczamy sterowanie
		
		for(var i=0;i<rooms.length;i++)
        {
            var nn = "#check"+i;
            //$(nn).button();
            $(nn).click(filtrClick);
			$(nn).css('display','none');
        }
		if(kategorieID==1)
		{
			/*for(var i=0;i<age_groups.length-1;i++)
			{
				var nn = "#grupa"+(i+1);
				$(nn).button();
				if(kids_wiek!=0 && (i+1)!=kids_wiek)
					$(nn).click();
				$(nn).click(groupClick);				
			}*/
			document.getElementById('wiek').selectedIndex = kids_wiek;
			/*nn = "#grupa0"; //dorośli
			$(nn).button();			
			$(nn).click();
			$(nn).click(groupClick);*/
		}
		else
		{
			/*for(var i=0;i<age_groups.length-1;i++)
			{
				var nn = "#grupa"+(i+1);
				$(nn).button();
				$(nn).click();
				$(nn).click(groupClick);
			}*/
			//document.getElementById('wiek').selectedIndex = 0;
			/*nn = "#grupa0";
			$(nn).button();
			$(nn).click(groupClick);*/
		}
        $('.check').button();
        $('.check').change(groupClick);
        $('#instructor').change(function(){
                renderEvents(defaultDate);
           });
		$('#wiek').change(function(){
				document.getElementById('instructor').selectedIndex = 0;
				document.getElementById('stopien').selectedIndex = 0;
				document.getElementById('styl').selectedIndex = 0;
				document.getElementById('g_instructor').selectedIndex = 0;
				document.getElementById('g_stopien').selectedIndex = 0;
				document.getElementById('g_styl').selectedIndex = 0;
                renderEvents(defaultDate);
				przytnijInstruktorowP(kategorieID);
				przytnijStopienP(kategorieID);
				przytnijStyleP(kategorieID);
				$('#g_wiek').val($('#wiek').val());
				przytnijInstruktorow(kategorieID);
				przytnijStopien(kategorieID);
				przytnijStyle(kategorieID);
           }); 
        $('#styl').change(function(){
				document.getElementById('instructor').selectedIndex = 0;
				document.getElementById('stopien').selectedIndex = 0;
				document.getElementById('g_instructor').selectedIndex = 0;
				document.getElementById('g_stopien').selectedIndex = 0;
                renderEvents(defaultDate);
				przytnijInstruktorowP(kategorieID);
				przytnijStopienP(kategorieID);
				$('#g_wiek').val($('#wiek').val());
				$('#g_styl').val($('#styl').val());
				przytnijInstruktorow(kategorieID);
				przytnijStopien(kategorieID);
           });
       $('#stopien').change(function(){
				document.getElementById('instructor').selectedIndex = 0;
				document.getElementById('g_instructor').selectedIndex = 0;
				renderEvents(defaultDate);
				przytnijInstruktorowP(kategorieID);
				$('#g_wiek').val($('#wiek').val());
				$('#g_styl').val($('#styl').val());
				$('#g_stopien').val($('#stopien').val());
				przytnijInstruktorow(kategorieID);
       });
	   
	   for(i=0; i<events.length; i++)
	   {
			switch(events[i].status)
			{
				case 1:
					events[i].status_active = true;
					events[i].status_grafika = "<img src='/Zasoby/IMG/status_zapisy.png' height='20px' width='60px' />";
					events[i].status_symbol="Z";
					break;
				case 2:
					events[i].status_active = true;
					events[i].status_grafika = "<img src='/Zasoby/IMG/status_ostatnie.png' height='20px' width='60px' />";
					events[i].status_symbol="O";
					break;
				case 3:
					events[i].status_active = false; 
					events[i].status_grafika = "<img src='/Zasoby/IMG/status_brak.png' height='20px' width='60px' />";
					events[i].status_symbol="B";
					break;
				case 4:
					events[i].status_active = false;
					events[i].status_grafika = "<img src='/Zasoby/IMG/status_odwolane.png' height='20px' width='60px' />";
					events[i].status_symbol="ZO";
					break;
				case 5:
					events[i].status_active = false;
					events[i].status_grafika = "<img src='/Zasoby/IMG/status_grupazamknieta.png' height='20px' width='60px' />";
					events[i].status_symbol="GZ";
					break;
				case 6:
					events[i].status_active = false; 
					events[i].status_grafika = "<img src='/Zasoby/IMG/status_brak.png' height='20px' width='60px' />";
					events[i].status_symbol="B";
					break;
			}
		}
		//setScrollTop();
		
		//renderEvents(defaultDate);
		dayClick();
		modifyHeaders(whichDay);
		//weekClick();
    }
    function buildCalendarSceleton(){
        $('#calendar').html("<table class=\"cal_header\"></table>" +
                "<div class=\"cal_content\">"+
                    "<table class=\"cal_header_days\"></table>" +
                    "<div class=\"div-table-content\" id=\"div-table-content\">" +
                        "<table class=\"table-content\"></table>" +
                        "<div class=\"events\"></div>" +
                    "</div>" +
                "</div>");
    }
    function renderCalendarHeader(date){
         var s = "<tbody>" +
                    "<tr>" +
                        "<td class=\"cal_header_left\" style=\"display: none;\">" +
                            "<button id=\"button-prev\" type=\"button\"></button>" +
                            "<button id=\"button-next\" type=\"button\"></button>" +
                            "<button id=\"button-today\" type=\"button\"></button>"+
                            renderFilters() +                            
                        "</td>";
                                                    
                        if(view.week)
                        {
							tempDate = giveFirstDate(date);
                            startData = new Date(tempDate);
                            endData = new Date(tempDate);
                            endData.setDate(endData.getDate()+6);

                            //s+="<td class=\"cal_header_center\">"+ startData.format(calHeaderDateFormat) + " - " + endData.format(calHeaderDateFormat)+ "</td>";
							s+="<td class=\"cal_header_center\">"+ " " + "  " + " " + "</td>";
                        }                            
                        else
                            //s+="<td class=\"cal_header_center\">"+ date.format(calHeaderDateFormat) + "</td>";
							s+="<td class=\"cal_header_center\">"+ " " + "</td>";
                        
                        s+="<td class=\"cal_header_right\">" +
                            "<div id=\"radioset\">" +
                            "<button id=\"button-week\" type=\"button\"/>" +
                            "<button id=\"button-day\" type=\"button\"/>" +
                        "</div></td>" +
                    "</tr>" +
                "</tbody>";
            $('.cal_header').html(s);
    }
    function renderCalendarHeaderDays(date){
              var s = "<thead>" +
                        "<tr>" +
                        "<th class=\"first_col ui-widget-header\">&#173;</th>";

                        if(view.week)
                        {
                            tempDate = giveFirstDate(date);
                            startData = new Date(tempDate);
                            endData = new Date(tempDate);
                            endData.setDate(endData.getDate()+6);
                            for(var i=0; i<7; i++, tempDate.setDate(tempDate.getDate()+1))
                            {
                                s+= "<th class=\"day_col "+ days[tempDate.getDay()] + "_col ui-widget-header\" style=\"" +(100-8.6)/7 + "%;\"><span>" + tempDate.format(dayColDateFormat) + "</span></th>";

                            }
                            //$('td.cal_header_center').replaceWith("<td class=\"cal_header_center\">"+ startData.format(calHeaderDateFormat) + " - " + endData.format(calHeaderDateFormat)+ "</td>");
                        }
                        else if(view.day)
                        {
                            s+= "<th class=\"day_col "+ days[date.getDay()] + "_col day-view ui-widget-header\" style=\"" +(100-8.6) + "%;\"><div id=\"prev-day-all\"><span id=\"prev-day-text\"></span><div class=\"prev-day\"></div></div><span>" + date.format(dayColDateFormat) + "</span><div id=\"next-day-all\"><div class=\"next-day\"></div><span id=\"next-day-text\"></span></div></th>";
                            //$('td.cal_header_center').replaceWith("<td class=\"cal_header_center\">"+ date.format(calHeaderDateFormat) + "</td>");
                        }

                          //s+=   "<th class=\"last_col ui-widget-header\">&#173;</th>"; 
                        s+= "</tr>";
                         
                         
                         //Jeśli jest podział na sale dokładamy jeszcze jeden wiersz z nagłówkami sal
                         if(podzial)
                         {
                            //rysowanie nagłówka z nazwami sal
                            s+= "<tr>" +                        
                            "<th class=\"first_col ui-widget-header\">&#173;</th>";
                            var amount=0;
                            if(view.day)
                                amount=1;
                            if(view.week)
                                amount=7;
                            for(i=0; i<amount; i++){
                                s+="<th class=\"ui-widget-header\"><table class=\"rooms-headers\"><thead><tr>";
                                for(j=0;j<roomsCount-1;j++)
                                {
                                    if(rooms[j].display)
                                    s+="<td id=\""+ rooms[j].name +"\" class=\"ui-widget-header ramka-right room-name\" style=\"width: "+ 100/(amountOfRooms()*amount)+"%;\"><div class=\"room-name\"><span>" + rooms[j].name + "</span></div></td>";
                                }
                                if(rooms[roomsCount-1].display)
                                    s+="<td id=\""+ rooms[roomsCount-1].name +"\" class=\"ui-widget-header ramka-none room-name\" style=\"width: "+ 100/(amountOfRooms()*amount)+"%;\"><div class=\"room-name\"><span>" + rooms[roomsCount-1].name + "</span></div></td>";
                                s+="</tr></thead></table></th>";
                            }

                            //s+=   "<th class=\"last_col ui-widget-header\">&#173;</th>";
							s+= "</tr>";
                         }
                        s+= "</thead>";
              $('.cal_header_days').html(s);
			if(view.day)
			{
				$('.prev-day').click(prevClickK);
				$('.next-day').click(nextClickK);
			}
    }
    function renderTableContent(date){
        var s ="<tbody><tr><td class=\"first_col ui-widget-content\"><table class=\"hours\"><thead>";
           var time = new Date();
           time.setHours(0);
           time.setMinutes(0);

           for (i =0; i <= rowCount; i++)
           {
               if(i%2==0)
               {
                   s+="<tr><th class=\"ui-widget-header\"><span>"+ time.format('HH:MM')+ "</span></th></tr>";                                   
               }
               else
                s+="<tr><th class=\"ui-widget-header\">&#173;</th></tr>";
                time.setMinutes(time.getMinutes()+slotMinutes);
           }
            s+="</thead></table></td>";


            if(view.week)
            {
               tempDate = new Date(startData);
               for(var j=0; j<7; j++, tempDate.setDate(tempDate.getDate()+1)) 
                {
                    s+=giveDaySections(tempDate,j);

                } 
            }
            else if(view.day)
            {
                s+=giveDaySections(date,0);
            }

        s+="</tr></tbody>";
        $('.table-content').html(s);
    }
    function resetEditEvents(){
        for(var i=0;i<events.length;i++)
        {
            events[i].ready = false;
			 events[i].overlap = false;
        }
    }
    function editEvents(){
        var tab = [];
        //alert(tab.toString());
        for(var k=0;k<events.length;k++)
        {
            if(!events[k].overlap)
            {                
                tab = findOverlappingEvents(k);
                //showTable("Przed: ",tab);
                tab.sort(compareStartTime);
                //alert(tab.toString());
                for(var kl in tab)
                    powiazania[tab[kl]] = tab;
                //showTable("Po: ",tab);
            }
        }
//        for(var klucz in powiazania)
//        {
//            alert(klucz + ": " + powiazania[klucz].toString());
//        }
        calculateEventsParameters();
        resetEditEvents();
    }
    //Funkcja zwracająca kod html całego kalendarza
    calendarToHtml = function(date){
       var s = "<table class=\"cal_header\">" +
                    "<tr>" +
                        "<td class=\"cal_header_left\">" +
                            "<button id=\"button-prev\"></button>" +
                            "<button id=\"button-next\"></button>" +
                            "<button id=\"button-today\"></button>"+
                            renderFilters() +                            
                        "</td>";
                            tempDate = giveFirstDate(date);
                            startData = new Date(tempDate);
                            endData = new Date(tempDate);
                            endData.setDate(endData.getDate()+6);
                        //s+="<td class=\"cal_header_center\">"+ startData.format(calHeaderDateFormat) + " - " + endData.format(calHeaderDateFormat)+ "</td>" +
						s+="<td class=\"cal_header_center\">"+ " " + "  " + " " + "</td>" +
                        "<td class=\"cal_header_right\">" +
                            "<div id=\"radioset\">" +
                            "<button id=\"button-week\"/>" +
                            "<button id=\"button-day\"/>" +
                        "</div></td>" +
                    "</tr>" +
                "</table>";
                s+=renderCalendarContent(date);

        return s;
    }   
   
   //Funkcja odpowiedzialna za wyrysowanie całej zawartości kalendarza
    renderCalendarContent = function(date){
      var s =  "<div class=\"cal_content\">" +
                "<table class=\"cal_header_days\">" +
                        "<thead>" +
                            "<tr>" +
                                "<th class=\"first_col ui-widget-header\">&#173;</th>";

                            if(view.week)
                            {
                                tempDate = giveFirstDate(date);
                                startData = new Date(tempDate);
                                endData = new Date(tempDate);
                                endData.setDate(endData.getDate()+6);
                                for(var i=0; i<7; i++, tempDate.setDate(tempDate.getDate()+1))
                                {
                                    s+= "<th class=\"day_col ui-widget-header\" style=\"" +(100-8.6)/7 + "%;\"><span>" + tempDate.format(dayColDateFormat) + "</span></th>";

                                }
                                //$('td.cal_header_center').replaceWith("<td class=\"cal_header_center\">"+ startData.format(calHeaderDateFormat) + " - " + endData.format(calHeaderDateFormat)+ "</td>");
                            }
                            else if(view.day)
                            {
                                s+= "<th class=\"day_col day-view ui-widget-header\" style=\"" +(100-8.6) + "%;\"><div id=\"prev-day-all\"><span id=\"prev-day-text\"></span><div class=\"prev-day\"></div></div><span>" + date.format(dayColDateFormat) + "</span><div id=\"next-day-all\"><div class=\"next-day\"></div><span id=\"next-day-text\"></span></div></th>";
                                //$('td.cal_header_center').replaceWith("<td class=\"cal_header_center\">"+ date.format(calHeaderDateFormat) + "</td>");
                            }

                            //s+= "<th class=\"last_col ui-widget-header\">&#173;</th>";							  
							s+="</tr>"; 

                        if(podzial)
                        {
                            //rysowanie nagłówka z nazwami sal
                            s+="<tr>" +                        
                            "<th class=\"first_col ui-widget-header\">&#173;</th>";
                            var amount=0;
                            if(view.day)
                                amount=1;
                            if(view.week)
                                amount=7;
							
                            for(i=0; i<amount; i++){
                                s+="<th class=\"ui-widget-header\"><table class=\"rooms-headers\"><thead><tr>";
                                for(j=0;j<roomsCount-1;j++)
                                {
                                    if(rooms[j].display)
                                    s+="<td id=\""+ rooms[j].name +"\" class=\"ui-widget-header ramka-right room-name\" style=\"width: "+ 100/(amountOfRooms()*amount)+"%;\"><div class=\"room-name\"><span>" + rooms[j].name + "</span></div></td>";
                                }
                                if(rooms[roomsCount-1].display)
                                    s+="<td id=\""+ rooms[roomsCount-1].name +"\" class=\"ui-widget-header ramka-none room-name\" style=\"width: "+ 100/(amountOfRooms()*amount)+"%;\"><div class=\"room-name\"><span>" + rooms[roomsCount-1].name + "</span></div></td>";
                                s+="</tr></thead></table></th>";
                            }

                             //s+=   "<th class=\"last_col ui-widget-header\">&#173;</th>";
							 s+= "</tr>";
                        }
                      
                      s+="</thead></table>";


                      //poczatek rysowania zawartosci kalendarza
                      s+= "<div class=\"div-table-content\" id=\"div-table-content\">" + 

    //                          rysujZdarzenia(112) +

                          "<table class=\"table-content\"><tbody><tr><td class=\"first_col ui-widget-content\"><table class=\"hours\"><thead>";
                           var time = new Date();
                           time.setHours(0);
                           time.setMinutes(0);
//                           var minuty = 0;
//                           var godziny = 0;
//                           var th_id = "";
                           
                           for (i =0; i <= rowCount; i++)
                           {
//                               godziny = time.getHours();
//                               minuty = time.getMinutes();
//                               if(minuty==0)
//                                   th_id = godziny+":00";
//                               else
//                                   th_id = godziny+":"+minuty;
                               
                               if(i%2==0)
                               {
                                   s+="<tr><th class=\"ui-widget-header\"><span>"+ time.format('HH:MM')+ "</span></th></tr>";                                   
                               }
                               else
                                s+="<tr><th class=\"ui-widget-header\">&#173;</th></tr>";
                                time.setMinutes(time.getMinutes()+slotMinutes);
                           }
                           s+="</thead></table></td>";


                           if(view.week)
                           {
                               tempDate = new Date(startData);
                               for(var j=0; j<7; j++, tempDate.setDate(tempDate.getDate()+1)) 
                                {
                                    s+=giveDaySections(tempDate,j);

                                } 
                            }
                           else if(view.day)
                            {
                                s+=giveDaySections(date,0);
                            }

    //                           s+= "<td class=\"last_col ui-widget-content\"><table class=\"hours\">";
    //                           
    //                           for(j=0; j<rowCount+1; j++)
    //                           {
    //                               s+="<tr><td class=\"last_col ui-widget-header\">&nbsp;</td></tr>";
    //                           }
                        s+="</tr></tbody>" +
                    "</table><div class=\"events\"></div></div>"
                +"</div>";
       return s;
    }
    
	function givePopUpText(zad){
		var text = "";
			text += "" + zad.start_time.format('HH:MM') + " - " + zad.end_time.format('HH:MM') + "<br/>" +
                                    zad.groupName + "<br/>"
									//+"Sala: " + zad.roomId
									+ "Instruktor: <a href=\"/?P0=413&P1="+kategorieID+"&P2="+lokalizacja+ "&PI="+zad.instructor_nr+"\"><span style=\"text-decoration: underline;\">" + zad.instructorName + "</span></a><br />Zajecia: "+ zad.dni_zajec +"Data rozpoczęcia: " + zad.dataStart.format('dd.mm.yyyy')+ "<br />Styl: "+giveStrukturaId(eg_styles,zad.style_nr) +"<br />Stopień: " + giveNameFromId(stages,zad.stage_nr) + "<br />Sala: "+ giveNameFromId(rooms,zad.roomId) + "<br />";
			if(kategorieID==1)
				text+="Grupa wiekowa: " + age_groups[zad.age_group-1] + "<br />";
			
			if(zad.duration_time!=90)
				text+="<a href=\"/?P0=380&P1="+kategorieID+"&P2="+lokalizacja+ "&PC=" + givePriceListPosition(zad.duration_time) +"\"><span style=\"text-decoration: underline;\">Cennik</span></a>";
		
		return text;
	}
	
	closePopUp = function(){
		$('.qtip').css('display','none');
	}
	
	function calculateTopMargin(hour)
	{
		
		if(hour.first == 24)
			hour.first = 20;
		if(hour.last == -1)
			hour.last = hour.first+4;
		
		//alert(hour.first + " " + hour.last);
		//allHeight = (23-hour)*2*rowHeight;
		topMargin = rowHeight*2*hour.first;
		allHeight = 3000 - (2*rowHeight*(24-hour.last))-topMargin+rowHeight;		
		
		//alert(allHeight + " " + topMargin);
	}
	
	function getHourOfTheEarliestEvent()
	{
		var ret = { first: 24,
					last:  -1 };
		var temp;
		
		if(view.day)
		{
			for(var i=0;i<events.length;i++)
			{
				//alert(ktoryZKolei(events[i].roomId));
				if(rooms[ktoryZKolei(events[i].roomId)-1].display && isTheSameDay(defaultDate,events[i].start_time) && (document.getElementById('instructor').selectedIndex == 0 || document.getElementById('instructor').value == events[i].instructor_nr) && (document.getElementById('styl').selectedIndex == 0 || document.getElementById('styl').value == events[i].style_nr) && (document.getElementById('stopien').selectedIndex == 0 || document.getElementById('stopien').value == events[i].poziom) &&  checkAgeGroup(events[i]))
				{
					temp = events[i].start_time.getHours();
					temp2 = events[i].end_time.getHours();
					
					if(temp<ret.first)
						ret.first = temp;
					if(temp2>ret.last)
						ret.last = temp2;
				}
			}
		}
		else if(view.week)
		{
			startData.setHours(0, 0, 0,0);
            endData.setHours(23, 59, 59,999);
			for(var i=0;i<events.length;i++)
			{
				if((startData<events[i].start_time) && (events[i].start_time<endData) && (document.getElementById('instructor').selectedIndex == 0 || document.getElementById('instructor').value == events[i].instructor_nr) && (document.getElementById('styl').selectedIndex == 0 || document.getElementById('styl').value == events[i].style_nr) && (document.getElementById('stopien').selectedIndex == 0 || document.getElementById('stopien').value == events[i].poziom) && checkAgeGroup(events[i]))
				{
					temp = events[i].start_time.getHours();
					temp2 = events[i].end_time.getHours();
					
					if(temp<ret.first)
						ret.first = temp;
					if(temp2>ret.last)
						ret.last = temp2;
				}
			}
		}
		
		return ret;
	}
	
	//Funkcja odpowiedzialna za rysowanie zdarzeń
	renderEvents = function(date,hours_width,day_width){

		calculateTopMargin(getHourOfTheEarliestEvent());
		setScrollTop();
		
        //odpowiada za odpowiednie rysowanie fragmentu nad scrollem
        var x = parseInt($('.div-table-content').css('width').replace("px",""),10);
        var y = parseInt($('.table-content').css('width').replace("px",""),10);
        var p = (x-y)*100/x;
        if($.browser.opera)
            $('th.last_col').css('width',Math.round(p)+'%');
        else
            $('th.last_col').css('width',p+'%');
        
		//var kkkk = rysujZdarzenia(date);
		//alert(kkkk);
       $('.events').replaceWith(rysujZdarzenia(date,hours_width,day_width));
       var ws = $('.day-section').css('width');
       //var info = "Szeroko\u015bć komorki: " + ws;
       ws = ws.replace("px","");
       var w = 0;
	   if(view.day)
			w = 975/roomsCount;
	   else
			w = 138;//parseInt(ws);
       
       //różnica wynikająca z różnego odczytywania szerokości elementu przez różne przeglądarki
       if($.browser.msie || $.browser.webkit)
           w--;
       
       var hs = $('td.ui-widget-content.ramka-bottom').css('height');
       //info+="\nWysokość: " + hs;
        hs = hs.replace("px","");
        var h = parseInt(hs,10)+1; 
        
        //Chrome potrzebuje modyfikacji bo nie inaczej odczytuje wysokość elementu
        if($.browser.webkit)
        {h++;}
       //alert(info);
       //activeEvents(w,h);
      
        for(var i=0; i<events.length; i++){
            if(rooms[ktoryZKolei(events[i].roomId)-1].display)
            {
                x = "#draggable"+i;
                //if($.browser.webkit)
                    $(x).css({'overflow': 'hidden', 'width': w-3+"px", 'height': giveHightFromDuration(events[i].start_time, events[i].end_time), 'float': 'left', 'margin': '0px 0px 0px 0px'});
                    $(x).qtip({
                          content: {
							text: givePopUpText(events[i])
                          },
                          show: {
                            when: 'mouseover', // Show it on click
                            solo: true, // And hide all other tooltips
							delay: 100
                            },						  
						  hide: {
							when: 'mouseout',
							fixed: true
						  },
                          style: {
                              textAlign: 'center',
                              name: 'light',
                              border: {
                                 width: 1,
								 color: '#666666',
                                 radius: 0
                              },
							  color: 'black'
                          },
                          position: {
                              corner: {
                                 target: 'leftMiddle',
                                 tooltip: 'rightMiddle'
                              }
                           }						   
					   });
						
					if(events[i].status_active)
                       $(x).qtip(
                        {
                            content: {
                            title: 
                            {
                                text: "<span style=\"font-weight: normal; font-size: 18px;\" >ZAPISZ SIĘ NA KURS</span>",
                                button: "<span style=\"color: black;\">X</span>"								
                            },
                            text: giveSignUpForm(events[i])
                             },
                            position: {
                                target: $(document.body), // Position it via the document body...
                                corner: 'center' // ...at the center of the viewport
                            },
                            show: {
                                when: 'click', // Show it on click
                                solo: true // And hide all other tooltips
                            },
                            hide: false,
                            style: {
                                width: {max: 900},
                                padding: '5px',
                                border: {
                                    width: 0,
                                    radius: 0
                                }
                            },
                            api: {
                                beforeShow: function()
                                {
									// Fade in the modal "blanket" using the defined show speed
                                    $('.qtip-title').css('background-image',"url('/Zasoby/IMG/t5_lokalizacje_bg.jpg')");
									$('.qtip-title').css('text-align','center');
									$('.qtip-title').css('color','white');
									$('#overlay').css('display','block');
                                    $('#qtip-blanket').fadeIn(this.options.show.effect.length);
									$('.FormError').css('display','none');                                    
                               },
                                beforeHide: function()
                                {
                                    // Fade out the modal "blanket" using the defined hide speed
                                    $('#qtip-blanket').fadeOut(this.options.hide.effect.length);
									$('#overlay').css('display','none');
                                }
                          }
                       });
                //else
                  //  $(x).css({'overflow': 'hidden', 'width': w-3+"px", 'height': giveHightFromDuration(events[i].start_time, events[i].end_time), 'float': 'left', 'margin': '0px 0px 0px 0px'});
            }
        }
        editEvents();		
    }
	
    function givePriceListPosition(czas){
		var ret = 0;
		
		if(kategorieID==1)
		{
			if(czas == 45)
				ret = 0;
			else if(czas == 60)
				ret = 1;
			else if(czas == 75)
				ret = 2;
			else if(czas == 150)
				ret = 3;
		}
		else
		{
			if(czas == 60)
				ret = 0;
			else if(czas == 75)
				ret = 1;
			else if(czas == 150)
				ret = 2;
		}		
			
		return ret;
	}
	//Zwraca datę pierwszego dnia rysowanego w kalendarzu
    giveFirstDate = function(date){
       var ret = new Date(date);
	   var temp = 0;
	   
	   if(ret.getDay()-firstDay < 0)
		temp = 7;
       ret.setDate(ret.getDate()- ret.getDay()+ firstDay - temp);

		//alert(ret);
		return ret;
    }
    
	//Wywoływana po naciśnięciu przycisku prev
    prevClickK = function(){
		//alert(defaultDate.format('ddd'));		
	   if(view.week)
	   {
			defaultDate.setDate(defaultDate.getDate()-7);
			whichDay-=7;
		}
		else if(view.day)
		{
			if(defaultDate.format('ddd')=="Pon")
			{
				defaultDate.setDate(defaultDate.getDate()+6);
				whichDay+=6;
			}
			else
			{
				defaultDate.setDate(defaultDate.getDate()-1);
				whichDay-=1;
			}
		}
	   //$('div.cal_content').replaceWith(renderCalendarContent(defaultDate));
	   renderCalendarHeaderDays(defaultDate);
	   $('#button-today').button('enable');
	   modifyHeaders(whichDay);
	   $('#prev-day-all').click(prevClickK);
		$('#next-day-all').click(nextClickK);
	   $('#next-day-all').mouseenter(function(){$('.next-day').addClass('next-day-active');$('#next-day-text').addClass('next-day-text-active')}).mouseleave(function(){$('.next-day').removeClass('next-day-active'); $('#next-day-text').removeClass('next-day-text-active')});
		$('#prev-day-all').mouseenter(function(){$('.prev-day').addClass('prev-day-active');$('#prev-day-text').addClass('prev-day-text-active')}).mouseleave(function(){$('.prev-day').removeClass('prev-day-active');$('#prev-day-text').removeClass('prev-day-text-active')});
	   //activeEvents();
	   highlightToday(defaultDate);	   
	   renderEvents(defaultDate);
	   //setScrollTop();
    }
    
	//Wywoływan po naciśnięciu przycisku next
    nextClickK = function() {
		
			if(view.week)
			{
				defaultDate.setDate(defaultDate.getDate()+7);
				whichDay+=7;
			}
			else if(view.day)
			{
				if(defaultDate.format('ddd')=="Nd")
				{
					defaultDate.setDate(defaultDate.getDate()-6);
					whichDay-=6; //to ni ejest do końca prawda - trzeba obliczyć jak daleko w polozeniu od donia dzisiejszego jest poniedziałek i na taką wartość ustawić whichDay - ale teraz nie jest używane
				}
				else
				{
					defaultDate.setDate(defaultDate.getDate()+1);
					whichDay+=1;
				}
			}
			//$('div.cal_content').replaceWith(renderCalendarContent(defaultDate));
			renderCalendarHeaderDays(defaultDate);
			$('#button-today').button('enable');
			modifyHeaders(whichDay);
			$('#prev-day-all').click(prevClickK);
			$('#next-day-all').click(nextClickK);
			$('#next-day-all').mouseenter(function(){$('.next-day').addClass('next-day-active');$('#next-day-text').addClass('next-day-text-active')}).mouseleave(function(){$('.next-day').removeClass('next-day-active'); $('#next-day-text').removeClass('next-day-text-active')});
			$('#prev-day-all').mouseenter(function(){$('.prev-day').addClass('prev-day-active');$('#prev-day-text').addClass('prev-day-text-active')}).mouseleave(function(){$('.prev-day').removeClass('prev-day-active');$('#prev-day-text').removeClass('prev-day-text-active')});
			//activeEvents();
			highlightToday(defaultDate);		
			renderEvents(defaultDate);
			//setScrollTop();
    }
    
	//Wywoływana po naciśnieciu przycisku "dzisiaj"
    todayClick = function() {
       defaultDate = new Date();
       //$('div.cal_content').replaceWith(renderCalendarContent(defaultDate));
       renderCalendarHeaderDays(defaultDate);
       $('#button-today').button('disable');
       //activeEvents();
	   //$('.cal_header_left').css('display', 'block');       
	   highlightToday(defaultDate);
		//setScrollTop();
       renderEvents(defaultDate);
	   
    }
	
    function modifyHeaders(day)
	{
		/*if(day==0)
		{
			$('#next-day-text').html('jutro');
			$('#prev-day-text').html('wczoraj');			
		}
		else if(day==1)
		{
			$('#next-day-text').html('następny dzień');
			$('#prev-day-text').html('dziś');			
		}
		else if(day==-1)
		{
			$('#next-day-text').html('dziś');
			$('#prev-day-text').html('poprzedni dzień');			
		}
		else if(day==2)
		{
			$('#next-day-text').html('następny dzień');
			$('#prev-day-text').html('jutro');			
		}
		else if(day==-2)
		{
			$('#next-day-text').html('wczoraj');
			$('#prev-day-text').html('poprzedni dzień');			
		}
		else
		{
			$('#next-day-text').html('następny dzień');
			$('#prev-day-text').html('poprzedni dzień');			
		}*/
		$('#next-day-text').html('następny dzień');
		$('#prev-day-text').html('poprzedni dzień');
		
		//Jeśli niedziela to nie ma następnego dnia - niezapętlony kalendarz
		/*if(defaultDate.format('ddd')=="Nd")
			$('#next-day-all').css('display','none');
		else
			$('#next-day-all').css('display','inline');
		
		if(defaultDate.format('ddd')=="Pon")
			$('#prev-day-all').css('display','none');
		else
			$('#prev-day-all').css('display','inline'); */
	}
	
	//Wywoływana przy zmianie na widok tygodnia
    weekClick = function (){
		view.week = true;
		view.day = false;
	   
		podzial = false;
		$('#button-week').button( "disable" );
		$('#button-week').removeClass('ui-state-disabled');
		$('#button-week').addClass('ui-state-active');
		$('#button-day').button( "enable" );
		$('#button-day').removeClass('ui-state-active');
		$('.cal_header_left').css('display', 'none');
		
		$('div.cal_content').replaceWith(renderCalendarContent(defaultDate));
		//activeEvents();
		highlightToday(defaultDate);	   
		renderEvents(defaultDate);	
		//setScrollTop();
    }
    
	//Wywoływana przy zmianie na widok dnia
    dayClick = function(){
       view.week = false;
       view.day = true;
	   podzial = true;
	   
       $('#button-day').button( "disable" );
       $('#button-day').removeClass('ui-state-disabled');
       $('#button-day').addClass('ui-state-active');
       $('#button-week').button( "enable" );
       $('#button-week').removeClass('ui-state-active');
	   //$('.cal_header_left').css('display', 'block');	   
	   
       $('div.cal_content').replaceWith(renderCalendarContent(defaultDate));
      // activeEvents();
       highlightToday(defaultDate);
       renderEvents(defaultDate);
	   //setScrollTop();
	   
	   modifyHeaders(whichDay);
	   $('#prev-day-all').click(prevClickK);
	   $('#next-day-all').click(nextClickK);
	   $('#next-day-all').mouseenter(function(){$('.next-day').addClass('next-day-active');$('#next-day-text').addClass('next-day-text-active')}).mouseleave(function(){$('.next-day').removeClass('next-day-active'); $('#next-day-text').removeClass('next-day-text-active')});
		$('#prev-day-all').mouseenter(function(){$('.prev-day').addClass('prev-day-active');$('#prev-day-text').addClass('prev-day-text-active')}).mouseleave(function(){$('.prev-day').removeClass('prev-day-active');$('#prev-day-text').removeClass('prev-day-text-active')});
    }
    
	//Rysuje włąściwą tabele w każdej sekcji odnoszącej sie do sali
    wstawTabele = function (date){
       var s="";       

       for(var i=0;i<rowCount+1;i++)
       {
           //alert(date.format('classDate'));
           s+="<tr style=\"width:100%\"><td class=\"ui-widget-content ramka-bottom " + days[tempDate.getDay()] + "_col\">&#173;</td></tr>";
//           if(isToday(date))
//                s+="<tr style=\"width:100%;\"><td class=\"ui-widget-content ramka-bottom is-today\">&#173;</td></tr>";
//            else
//                s+="<tr style=\"width:100%\"><td class=\"ui-widget-content ramka-bottom\">&#173;</td></tr>";
       }    

       return s;
    }   
    
    function highlightToday(date){
    /*    $('.is-today').removeClass('is-today');
        var s="";
        var today = new Date();        
        if(view.week)
        {
            tempDate = giveFirstDate(date);
            startData = new Date(tempDate);
            endData = new Date(tempDate);
            endData.setDate(endData.getDate()+6);
            startData.setHours(0, 0, 0,0);
            endData.setHours(23, 59, 59,999);
            
            if(today >= startData && today <= endData)
            {
                
                s = "."+days[tempDate.getDay()] + "_col";
                $(s).addClass('is-today');
            }
        }
        else if(view.day)
        {
            if(isToday(date))
            {
                s = "."+days[tempDate.getDay()] + "_col";
                $(s).addClass('is-today');
            }
        }
        
      */  
    }
    
	//Sprawdza czy podana data jest dniem dzisiejszym - wykorzystane do wyróżnienia w kalendarzu obecnego dnia
    isToday = function(date){
       var today = new Date();
       var todayY = today.getFullYear();
       var todayM = today.getMonth();
       var todayD = today.getDate();
       var dateY = date.getFullYear();
       var dateM = date.getMonth();
       var dateD = date.getDate();
       if(todayD==dateD && todayM==dateM && todayY==dateY)
           return true;
       else
           return false;
    }   
   
   // Funkcja odpowiedzialna za budowanie wszystkich sal w danym dniu tygodnia
    giveDaySections = function(date,j){
        var s = "<td class=\"ui-widget-content\">"+
                "<table class=\"day-sections\"><thead>" +
                "<tr>";
        
        if(!podzial)
        {
            s+= giveDaySection("",0,date,j);
        }
        else
        {
            var temp = 0;
            for(var i=0;i<roomsCount;i++)
            {
               if(rooms[i].display)
               {
                   if(temp==0)
                   {
                       s+= giveDaySection("ramka-none",i, date, j);
                       temp++;
                   }
                   else
                       s+= giveDaySection("ramka-left",i, date, j);                   
               }
            }
        }
        s+="</tr></thead></table></td>";
        return s;
   }   
    
	//Funkcja budujaca sekcje zawierającą pojedyncza sale
    giveDaySection = function(ramka, nr, date, j){
       
       var s="";
       if(!podzial)
       {
           s+="<td \"class=\"ui-widget-content\" style=\"width: 100%;\">" +
                                          "<table id=\"droppable"+j+"\" class=\"day-section ramka-none ui-droppable snap\">" +
                                            "<thead>" +
                                                 wstawTabele(date) +
                                            "</thead>" +
                                         "</table></td>";
       }
       else
       {
           var amount=0;
           if(view['day'])
               amount=1;
           else if (view['week'])
               amount=7;
           s="<td id=\""+ rooms[nr].name +"\"class=\""+ ramka+ " ui-widget-content\" style=\"width: "+ 100/(roomsCount*amount)+"%;\">" +
                                          "<table id=\"droppable"+(j*roomsCount+nr)+"\" class=\"day-section ramka-none ui-droppable snap\">" +
                                            "<thead>" +
                                                 wstawTabele(date) +
                                            "</thead>" +
                                         "</table></td>";
       }
       
       return s;
    }    
    function checkAgeGroup(event){
		var flaga = false;
		if(kategorieID==1)
		{
			if(document.getElementById('wiek').selectedIndex == 0 || (document.getElementById('wiek').selectedIndex != 0 && document.getElementById('wiek').value==event.age_group))
				flaga = true;
		}
		else
		{
			flaga = true;
		}
		
		return flaga;
	}
	//Funkcja rysująca zdarzenia  //112 25
    rysujZdarzenia = function(date,hours_width,day_width){
        var s="<div class=\"events\">";
        var i=0;
        if(view.day)
        {
            for(i=0;i<events.length; i++)
                if(rooms[ktoryZKolei(events[i].roomId)-1].display && isTheSameDay(date,events[i].start_time) && (lokalizacja == events[i].location) && /*(kategorieID==events[i].category) &&(document.getElementById('select_grupy').selectedIndex == 0 || document.getElementById('select_grupy').selectedIndex-1 == events[i].color) && */ (document.getElementById('instructor').selectedIndex == 0 || document.getElementById('instructor').value == events[i].instructor_nr) &&
                    (document.getElementById('styl').selectedIndex == 0 || document.getElementById('styl').value == events[i].style_nr) && (document.getElementById('stopien').selectedIndex == 0 || document.getElementById('stopien').value == events[i].poziom) &&  checkAgeGroup(events[i]))
					//(document.getElementById('age_groups').selectedIndex == 0 || document.getElementById('age_groups').selectedIndex-1 == events[i].age_group) - gdy wiek jest jako select box
                {
                    s+= "<div id=\"draggable"+ i +"\" class=\"fc-event fc-event-skin fc-event-vert fc-event-draggable fc-corner-top fc-corner-bottom ui-draggable ui-resizable\" style=\"position:absolute; left:"+giveEventLeftPosition(events[i].roomId,0,72)+"px; top:"+pozycjaOdGodziny(events[i].start_time)+"; border: 1px solid white;\">"+
                            "<div class=\"fc-event-inner fc-event-skin\">"+
                                "<div class=\"fc-event-head fc-event-skin\">"+
                                    "<div class=\"fc-event-time\"><span id=\"start\" class=\"start\">"+events[i].start_time.format('HH:MM')+"</span> - <span id=\"end\" class=\"end\">"+events[i].end_time.format('HH:MM')+"</span><span class=\"fc-event-status-symbol\">" + events[i].status_symbol +"</span></div>"+
                                    //"<div class=\"fc-event-group\" style=\"background-color: " + groups[events[i].color].color+ ";\"></div>" +									
                                "</div>"+
                                "<div class=\"fc-event-content\">"+
									"<div class=\"fc-event-txt\"><span>Styl: " + giveNameFromId(eg_styles,events[i].style_nr) + "<br />" + events[i].groupName + "<br />Instruktor: " + events[i].instructorName +"<br />Najbliższe zajęcia: " + events[i].dataStart.format('dd.mm.yyyy') +"</span></div>" +
									"<div class=\"fc-event-status-grafika\">"+ events[i].status_grafika +"</div>" +
                                    //"<div class=\"fc-event-title\"><p><h4>"+events[i].title+"</h4></p></div>"+ events[i].content+"</div>"+
                                "<div class=\"fc-event-title\"><p><h4></h4></p></div> </div>";
                                if(events[i].status_active)
										s+="<div class=\"fc-event-bg\"></div>";
									else
										s+="<div class=\"fc-event-disactive-bg\"></div>";
                            s+="</div>"+
                        "</div>";
                }
        }
        else if(view.week)
        {
            startData.setHours(0, 0, 0,0);
//            startData.setDate(startData.getDate()-1);
//            startData.setHours(23, 59, 59,999);
            endData.setHours(23, 59, 59,999);
            var d = -1;
            
            for(i=0;i<events.length; i++)
            {
                //alert(document.getElementById('instructor').value);
                
                if(rooms[ktoryZKolei(events[i].roomId)-1].display)
                {
                    d = giveDifference(startData, events[i].start_time);
                    //alert("Zdarzenie: "+i+"/"+ events.length +"\nS: "+startData.format('dd.mm.yyyy')+"\nE: "+ events[i].start_time.format('dd.mm.yyyy') + "\nd:"+d);
                    //alert($("[name=age_group" +events[i].age_group+"]").attr('checked'));
                    
					//alert("" + (startData<events[i].start_time) + "\n" + (events[i].start_time<endData) +"\n"+ (lokalizacja == events[i].location) +"\n"+ (document.getElementById('instructor').selectedIndex == 0 || document.getElementById('instructor').value == events[i].instructor_nr) +"\n"+(document.getElementById('styl').selectedIndex == 0 || document.getElementById('styl').value == events[i].style_nr) +"\n"+ (document.getElementById('stopien').selectedIndex == 0 || document.getElementById('stopien').value == events[i].stage_nr) +"\n"+ ($("[name=age_group" +events[i].age_group+"]").attr('checked')=='checked'));
                    
					if((startData<events[i].start_time) && (events[i].start_time<endData) && (lokalizacja == events[i].location) && (document.getElementById('instructor').selectedIndex == 0 || document.getElementById('instructor').value == events[i].instructor_nr) && (document.getElementById('styl').selectedIndex == 0 || document.getElementById('styl').value == events[i].style_nr) && (document.getElementById('stopien').selectedIndex == 0 || document.getElementById('stopien').value == events[i].poziom) && checkAgeGroup(events[i]))
					//(document.getElementById('age_groups').selectedIndex == 0 || document.getElementById('age_groups').selectedIndex-1 == events[i].age_group)
                    {
                        s+= "<div id=\"draggable"+ i +"\" class=\"fc-event fc-event-skin fc-event-vert fc-event-draggable fc-corner-top fc-corner-bottom ui-draggable ui-resizable\" style=\"z-index: 0; position:absolute; left:"+giveEventLeftPosition(events[i].room_nr,d,hours_width,day_width)+"px; top:"+pozycjaOdGodziny(events[i].start_time)+";  border: 1px solid white;\">"+
                                "<div class=\"fc-event-inner fc-event-skin\">"+
                                    "<div class=\"fc-event-head fc-event-skin\">"+
                                        "<div class=\"fc-event-time\"><div class=\"fc-event-status-symbol\">" + events[i].status_symbol +"</div><span id=\"start\" class=\"start\">"+events[i].start_time.format('HH:MM')+"</span> - <span id=\"end\" class=\"end\">"+events[i].end_time.format('HH:MM')+"</span></div>"+
                                        //"<div class=\"fc-event-group\" style=\"background-color: " + groups[events[i].color].color+ ";\"></div>" +										
                                    "</div>"+
                                    "<div class=\"fc-event-content\">"+										
                                        //"<div class=\"fc-event-title\"><p><h4>"+events[i].title+"</h4></p></div>"+ events[i].content+"</div>"+
										"<div class=\"fc-event-txt\"><span>" + giveNameFromId(eg_styles,events[i].style_nr) + "<br />" + events[i].groupName + "<br />Prowadzi: " + events[i].instructorName +"<br />Najbliższe zajęcia: " + events[i].dataStart.format('dd.mm.yyyy') +"</span></div>" +
										"<div class=\"fc-event-status-grafika\">"+ events[i].status_grafika +"</div>" +
									"</div>";
									if(events[i].status_active)
										s+="<div class=\"fc-event-bg\"></div>";
									else
										s+="<div class=\"fc-event-disactive-bg\"></div>";
                                s+="</div>"+
                            "</div>";
                    }
                }
            }
        }
        s+="</div>";
        return s;
    } 
    
	//Funkcja uaktywnia przeciąganie zadań
    activeEvents = function(w,h){
        var x;
        for(i=0; i<events.length; i++){
            if(rooms[events[i].room_nr-1].display)
            {
                x = "#draggable"+i;
                    var $drag_counter = $(x);			
                    makeEvents($drag_counter,w,h);
            }
        }
    
        var amount=0;
       if(view['day'])
           amount=roomsCount;
       else if (view['week'])
           amount=7*roomsCount;
        for(var i=0; i<amount; i++){
                x="#droppable"+i; 
                $(x).droppable({
                    drop: function( event, ui ) {}});
         }
    }
    
	//Zwraca pozycje y w zależności od godziny rozpoczęcia zdarzenia
    pozycjaOdGodziny = function(data){
        var pozycjaY = 3;
        var hours = data.getHours();
        var minutes = data.getMinutes();
        //var hs = $('td.ui-widget-content.ramka-bottom').css('height');
        //hs = hs.replace("px","");
        var h = rowHeight;//parseInt(hs,10)+1;        

        //Chrome potrzebuje modyfikacji bo inaczej odczytuje wysokość elementu
        if($.browser.webkit)
        {h++;}
        if($.browser.msie)
        {h+=0.9;}
        pozycjaY += Math.round((hours*(60/slotMinutes)+ minutes/slotMinutes)*h);

        return (pozycjaY-topMargin)+"px";        
    }
    
	//Zwraca pozycje x (odsunięcie od lewej krawędzi kalendarza) w zależności od dnia zdarzenia i sali w której sie odbywa
    giveEventLeftPosition = function(nr, diff,hours_width,day_width){
        var left =0;
		if(!hours_width)
		{
			var left_s = $('td.first_col.ui-widget-content').css('width');
			left_s = left_s.replace("px","");
			//alert(left_s);
			 left = parseInt(left_s,10);
		}
		else
		{
			left = hours_width;
		}
		
        if($.browser.mozilla)
            left+=2;
        else if($.browser.msie)
            left+=3;
        else
            left+=4;
        
        
        //alert("room size: " + room_size_s);
        var day_size = 0;
		if(!day_width)
		{
			var day_size_s = $('.day-sections').css('width');
			if(day_size_s)
				day_size_s = day_size_s.replace("px","");
			
			day_size = parseInt(day_size_s,10);
			//alert("day size: "+day_size_s);
		}
		else
			day_size = day_width;
		
		var room_size_s = $('.day-section').css('width');
        if(room_size_s)
           room_size_s = room_size_s.replace("px", "");
                
        var room_size = 975/roomsCount;//parseInt(room_size_s,10);
        
        
        if($.browser.mozilla || $.browser.msie)
            room_size+=1;
               
        day_size+=1;
        
        if(podzial)
        {
            if(view.day)
            {            
                if($.browser.webkit)
                    room_size-=0.5;
                left+=(ktoryZKolei(nr)-1)*room_size;
            }
            else if(view.week)
            {
                if($.browser.webkit || $.browser.opera)
                    day_size+=0.75;
                if($.browser.webkit)
                    room_size-=0.25;
                left+=diff*day_size + (ktoryZKolei(nr)-1)*room_size;
            }
        }
        else
        {
            if(view.day)
            {            
//                if($.browser.webkit)
//                    room_size-=0.5;
//                left+=(ktoryZKolei(nr)-1)*room_size;
            }
            else if(view.week)
            {
                if($.browser.webkit || $.browser.opera)
                    day_size+=0.75;
                if($.browser.webkit)
                    room_size-=0.25;
                left+=diff*day_size;
            }
        }
        //$('#param1').append("<span>"+event.title+": "+left+"</span><br />"); 
        return left;
    }
    
	//Funkcja zwraca liczbe dni różniącą dwie daty
    giveDifference = function(date1,date2){
        var days = 0;
        var difference = 0;
        
        if(date2>date1)
        {
            difference = date2 - date1;
        }
        else
        {
            difference = date1 - date2;
        }        
        days = Math.floor(difference/(1000*60*60*24));
        //$('#param2').replaceWith("<div id=\"param2\"><span>Date1: "+date1.toString()+"<br />Date2: "+date2.toString()+ "<br />Diff: "+days.toString()+"<br /></span></div>");
        return days;
    }
    
	//Funkcja sprawdza czy podane daty to ten sam dzień
    isTheSameDay = function(date1,date2){
       var y1 = date1.getFullYear();
       var m1 = date1.getMonth();
       var d1 = date1.getDate();
       var y2 = date2.getFullYear();
       var m2 = date2.getMonth();
       var d2 = date2.getDate();

       if(y1==y2 && m1==m2 && d1==d2)
           return true;
       else
           return false;
    }
    
    giveHightFromDuration = function(startTime, endTime){
        var x = pozycjaOdGodziny(startTime);
        var y = pozycjaOdGodziny(endTime);
        x = x.replace("px","");
        y = y.replace("px","");
        var z = parseInt(y) - parseInt(x)-4;
        return z + "px";
    }    
    
	//ustawienie przenoszenia i rozszerzania
    makeEvents = function($thisres,w,h){
        var old_pos = 0;
        var cur_pos = 0;
        var new_pos = 0;
        var old_left = 0;
        var cur_left = 0;
        var new_left = 0;
        var old_size = 0;
        var new_size = 0;
		var new_res = 0;
		
		//$('.div-table-content').scrollBy(0,21);		
        //rozszerzanie wydarzenia
        $thisres.resizable({
                grid: h, minHeight:h, minWidth: w, maxWidth: w, handles: 's',
                containment: '.table-content',
                start: function(event,ui) {
                    //var $div = $('.div-table-content');
                    //var ss = $('.div-table-content').scrollTop();
                    ui.position.top += $('.div-table-content').scrollTop();
                    old_size = ui.originalSize.height;						
                },/*
				resize: function(event,ui) {
                        new_size = ui.size.height;

                        if((new_size-old_size)*(new_size-old_size) <= 81)
                                new_size = old_size;

                        if(new_size!=old_size)
                        {
                                var zmiana = new_size - old_size;
                                var ile = Math.round(zmiana/h);
                                zmien_godzine_end($thisres,ile);
                        }
                },*/
                stop: function(event,ui) {
                    new_size = ui.size.height;
                    new_res = ui.position.top+new_size;

                    if((new_size-old_size)*(new_size-old_size) <= 81)
                        new_size = old_size;
						
                    if(new_res>(h*48)){
                        $( "span.end", $thisres ).text( "23:59" );
                        //uaktualnij tablice events[] - nie trzeba przeładowywać strony aby zobaczyć zmiany
                        uaktualnij_tablice($thisres);
                        //events[($thisres[0].id).substring(9,($thisres[0].id).length)].end_time = $( "span.end", $thisres ).text();
                        //mamy uaktualniona tablice events[] - mozemy edytowac baze
                        uaktualnij_baze($thisres);
                        }
                        //Jesli rozne od starej godziny to EDYCJA BAZY
                    else
                    {
                        if(new_size!=old_size)
                        {
                            var zmiana = new_size - old_size;
                            var ile = Math.round(zmiana/h);
                            zmien_godzine_end($thisres,ile);

                            //Edycja w tablice events[] - nie trzeba przeładowywać strony aby zobaczyć zmiany
                            uaktualnij_tablice($thisres);
                            //var ge = $( "span.end", $thisres ).text().split(':');
                            //events[($thisres[0].id).substring(9,($thisres[0].id).length)].end_time.setHours(ge[0]);
                            //events[($thisres[0].id).substring(9,($thisres[0].id).length)].end_time.setMinutes(ge[1]);

                            //mamy uaktualniona tablice events[] - mozemy edytowac baze
                            uaktualnij_baze($thisres);
                        }
                    }
                }
        });

        //przeciaganie wydarzenia
        $thisres.draggable({
            revert: 'invalid', opacity: '0.35', grid: [w, h], snap: '.snap', snapMode: 'inner', snapTolerance: '15',
            containment: '.table-content',
            start: function(event,ui) {                    
                    old_pos = ui.position.top;
                    old_left = ui.position.left;
            },
            drag: function(event,ui) {
                    new_pos = ui.position.top;

                    if(cur_pos>0)
                        old_pos = cur_pos;

                    if(new_pos%h/h>10)
                        new_pos = (parseInt(new_pos/h))*h+h+2;
                    else
                        new_pos = h*(parseInt(new_pos/h))+2;

                    if(((new_pos-old_pos)*(new_pos-old_pos) <= 81)&&(old_pos>h))
                        new_pos = old_pos;

                    if (old_pos!=new_pos){
                        var zmiana = new_pos-old_pos;
                        var ile = Math.round(zmiana/h);
                    if(ile != 0)
                        zmien_godzine_start($thisres, ile );
                    }

                    cur_pos = new_pos;
            },
            stop: function(event,ui) {
                //alert(this.attr('id'));
                new_pos = ui.position.top;
                new_left = ui.position.left;

                if(cur_pos>0)			//zabezpieczenie gdyby jakims cudem udalo sie zatrzymac powyzej kalendarza
                    old_pos = cur_pos;

                if(new_pos%h/h>10)		//zabezpieczenie
                    new_pos = (parseInt(new_pos/h))*h+h+2;
                else
                    new_pos = h*(parseInt(new_pos/h))+2;

                                        //zabezpiecznie - trzeba przeniesc o kilka pixeli, żeby się nie zmieniało gdy przeciągniemy o 1px
                if(((new_pos-old_pos)*(new_pos-old_pos) <= 81)&&(old_pos>h))
                    new_pos = old_pos;

                if (old_pos!=new_pos){
                    var zmiana = new_pos-old_pos;
                    var ile = Math.round(zmiana/h);

                    if(ile != 0)
                    {
                        zmien_godzine_start($thisres, ile );
                    }
                }

                //fragment odpowiadajacy za zmiany w poziomie - zmiana sali i dnia przy przeciaganiu
                //TODO: przeniesc do funkcji
                if (old_left!=new_left){
                    if(new_left<62)
                        new_left = old_left;
                    var zmiana_l = new_left-old_left;
                    var ile_l = Math.round(zmiana_l/w);

                    if(ile_l != 0)
                    {
                        zmien_sale_dzien($thisres,ile_l);	
                    }
                        //alert(events[($thisres[0].id).substring(9,($thisres[0].id).length)].start_time.getDate()+"\n"+events[($thisres[0].id).substring(9,($thisres[0].id).length)].room_nr);
                }
                //uaktualnij tablice events[] - nie trzeba przeładowywać strony aby zobaczyć zmiany
                uaktualnij_tablice($thisres);
                //mamy uaktualniona tablice events[] - mozemy edytowac baze
                uaktualnij_baze($thisres);

                cur_pos = new_pos;
                //alert(events[($thisres[0].id).substring(9,($thisres[0].id).length)].start_time);
//                var amount = [];
//                for(var i=0;i<events.length;i++)
//                {
//                    if((i.toString() != ($thisres[0].id).substring(9,($thisres[0].id).length)) && isTheSameDay(events[i].start_time, events[($thisres[0].id).substring(9,($thisres[0].id).length)].start_time) && (events[i].room_nr == events[($thisres[0].id).substring(9,($thisres[0].id).length)].room_nr))
//                    {
//                        amount.push("draggable" + i);
//                    }                    
//                    //else
//                        //$thisres.css('width','22px');
//                }
//                for(i=0;i<amount.length;i++)
//                {
//                    var x = "#" + amount[i];
//                    var dl_s = $(x).css('width');
//                    var dl = parseInt(dl_s.substring(0, dl_s.length-2));
//                    var left_s = $(x).css('left');
//                    var left = parseInt(left_s.substring(0, left_s.length-2));
//                    
//                    dl-=amount.length*5;                    
//                    $(x).css('width',dl+"px");
//                    
//                    left+=(i+1)*10;
//                    $(x).css('left', left+"px");
//                }
            }
        });
    }
    
    function findOverlappingEvents(zad){
        var amount = new Array(); //do tej tablicy dodajemy htmlowe id zdarzeń które sie nakładają
        var napis = "";
        var flaga = false;
        //alert("Sprawdzam: "+ zad);
        
        amount.push("draggable"+zad);
        events[zad].overlap = true;
        
        //Sprawdzamy wszystkie zdarzenia
		if(view.day)
		{
			for(var i=0;i<events.length;i++)
			{
				//alert("Sprawdzam: "+ zad + "-"+i+ "\ni != zad : "+ (i != zad)+ "\nTen sam dzien: "+ isTheSameDay(events[i].start_time, events[zad].start_time) +
				//"\nPoczatek: " + (events[i].start_time.getTime() >= events[zad].start_time.getTime() && events[i].start_time.getTime() < events[zad].end_time.getTime()));
				//alert("zad-s: " +events[zad].start_time+"\ni-s: " + events[i].start_time + "\nzad-e: " +events[zad].end_time+"\ni-e: " + events[i].end_time +  "\nzad-s: "+ events[zad].start_time.getTime() + "\nzad-e: " + events[zad].end_time.getTime() + "\ni-s:      " + events[i].start_time.getTime()+ "\ni-e: " + events[i].end_time.getTime());
				//1. Zdarzeń nakładających się szukamy do konkretnego zdarzenia, więc to zdarzenie względem którego szukamy innych opuszczamy
				//2. Sprawdzamy czy zdarzenie jest z tego samego dnia
				//3. jeśli początek zdarzenia mieści się między poczatkiem a końcem zdarzenia dla którego szukamy zdarzeń nakładających się lub czy koniec mieści sie między początkiem a końcem 
				//alert("alert"+ "i:"+i+"zad:"+zad +"\n"+ (i != zad) +"\n"+ isTheSameDay(events[i].start_time, events[zad].start_time) +"\n"+ (lokalizacja==events[zad].location) +"\n"+ (lokalizacja==events[i].location) +"\n"+ (kategorieID==events[i].category) +"\n"+ (kategorieID==zad.category) +"\n"+ (document.getElementById('instructor').selectedIndex == 0 || document.getElementById('instructor').value == events[i].instructor_nr) +"\n"+ (document.getElementById('styl').selectedIndex == 0 || document.getElementById('styl').value == events[i].style_nr) +"\n"+ (document.getElementById('stopien').selectedIndex == 0 || document.getElementById('stopien').value == events[i].stage_nr) +"\n"+ ($("[name=age_group" +events[i].age_group+"]").attr('checked')=='checked') +"\n"+ compareTwoEvents(events[i],events[zad]));
				if((i != zad) && isTheSameDay(events[i].start_time, events[zad].start_time) && (lokalizacja==events[zad].location) && (lokalizacja==events[i].location) && (kategorieID==events[i].category) && (kategorieID==events[zad].category) && (events[zad].roomId == events[i].roomId) && (document.getElementById('instructor').selectedIndex == 0 || document.getElementById('instructor').value == events[i].instructor_nr) && (document.getElementById('styl').selectedIndex == 0 || document.getElementById('styl').value == events[i].style_nr) && (document.getElementById('stopien').selectedIndex == 0 || document.getElementById('stopien').value == events[i].poziom) && checkAgeGroup(events[i]) && checkAgeGroup(events[zad]) && compareTwoEvents(events[i],events[zad]))
				{
					//jeśli zdarzenie nie było jeszcze dodawane do listy
					if(!events[i].overlap)
					{
						//jeśli to pierwsze wejście dodajemy do tablicy zdarzenie dla którego szukamy zdarzeń nakładających się
	//                    if(!flaga)
	//                    {
	//                        
	//                        flaga = true;
	//                    }
						napis = "draggable" + i
						events[i].overlap = true;
						amount.push(napis);
						//alert("Dodaje do tablicy draggable" + i);
						//szukamy zdarzeń nakładających się względem zdarzenia które przed chwilą dodaliśmy
						//var temp = findOverlappingEvents(i);   
						//łączymy tablice sprawdzając zeby nie dadawać elementów które juz są dodane
						//for(var j=0; j<temp.length; j++)
							//if(!findElement(amount, temp[j]))
							  //  amount.push(temp[j]);
					}
				}
			}
		}
		else
		{
			for(var i=0;i<events.length;i++)
			{
				//alert("Sprawdzam: "+ zad + "-"+i+ "\ni != zad : "+ (i != zad)+ "\nTen sam dzien: "+ isTheSameDay(events[i].start_time, events[zad].start_time) +
				//"\nPoczatek: " + (events[i].start_time.getTime() >= events[zad].start_time.getTime() && events[i].start_time.getTime() < events[zad].end_time.getTime()));
				//alert("zad-s: " +events[zad].start_time+"\ni-s: " + events[i].start_time + "\nzad-e: " +events[zad].end_time+"\ni-e: " + events[i].end_time +  "\nzad-s: "+ events[zad].start_time.getTime() + "\nzad-e: " + events[zad].end_time.getTime() + "\ni-s:      " + events[i].start_time.getTime()+ "\ni-e: " + events[i].end_time.getTime());
				//1. Zdarzeń nakładających się szukamy do konkretnego zdarzenia, więc to zdarzenie względem którego szukamy innych opuszczamy
				//2. Sprawdzamy czy zdarzenie jest z tego samego dnia
				//3. jeśli początek zdarzenia mieści się między poczatkiem a końcem zdarzenia dla którego szukamy zdarzeń nakładających się lub czy koniec mieści sie między początkiem a końcem 
				//alert("alert"+ "i:"+i+"zad:"+zad +"\n"+ (i != zad) +"\n"+ isTheSameDay(events[i].start_time, events[zad].start_time) +"\n"+ (lokalizacja==events[zad].location) +"\n"+ (lokalizacja==events[i].location) +"\n"+ (kategorieID==events[i].category) +"\n"+ (kategorieID==zad.category) +"\n"+ (document.getElementById('instructor').selectedIndex == 0 || document.getElementById('instructor').value == events[i].instructor_nr) +"\n"+ (document.getElementById('styl').selectedIndex == 0 || document.getElementById('styl').value == events[i].style_nr) +"\n"+ (document.getElementById('stopien').selectedIndex == 0 || document.getElementById('stopien').value == events[i].stage_nr) +"\n"+ ($("[name=age_group" +events[i].age_group+"]").attr('checked')=='checked') +"\n"+ compareTwoEvents(events[i],events[zad]));
				if((i != zad) && isTheSameDay(events[i].start_time, events[zad].start_time) && (lokalizacja==events[zad].location) && (lokalizacja==events[i].location) && (kategorieID==events[i].category) && (kategorieID==events[zad].category) && (document.getElementById('instructor').selectedIndex == 0 || document.getElementById('instructor').value == events[i].instructor_nr) && (document.getElementById('styl').selectedIndex == 0 || document.getElementById('styl').value == events[i].style_nr) && (document.getElementById('stopien').selectedIndex == 0 || document.getElementById('stopien').value == events[i].poziom) && checkAgeGroup(events[i]) && checkAgeGroup(events[zad]) && compareTwoEvents(events[i],events[zad]))
				{
					//jeśli zdarzenie nie było jeszcze dodawane do listy
					if(!events[i].overlap)
					{
						//jeśli to pierwsze wejście dodajemy do tablicy zdarzenie dla którego szukamy zdarzeń nakładających się
	//                    if(!flaga)
	//                    {
	//                        
	//                        flaga = true;
	//                    }
						napis = "draggable" + i
						events[i].overlap = true;
						amount.push(napis);
						//alert("Dodaje do tablicy draggable" + i);
						//szukamy zdarzeń nakładających się względem zdarzenia które przed chwilą dodaliśmy
						//var temp = findOverlappingEvents(i);   
						//łączymy tablice sprawdzając zeby nie dadawać elementów które juz są dodane
						//for(var j=0; j<temp.length; j++)
							//if(!findElement(amount, temp[j]))
							  //  amount.push(temp[j]);
					}
				}
			}
		}
        return amount;
    }
    
    function compareStartTime(a, b) {        
        return events[parseInt(a.substring(9,a.length))].start_time - events[parseInt(b.substring(9,b.length))].start_time;
    }

    function compareTwoEvents(a,b){
        flaga = false;
        if((a.start_time.getTime() >= b.start_time.getTime() && a.start_time.getTime() < b.end_time.getTime())
                //|| (a.end_time.getTime() > b.start_time.getTime() && a.end_time.getTime() <= b.end_time.getTime())
                || (b.start_time.getTime() >= a.start_time.getTime() && b.start_time.getTime() < a.end_time.getTime()))
                //||  (b.end_time.getTime() > a.start_time.getTime() && b.end_time.getTime() <= a.end_time.getTime()))
            flaga = true;
        return flaga;
    }
    function showTable(y,x){
        var s="";
        for(var i=0;i<x.length;i++)
            s+=x[i] + ": " + events[parseInt(x[i].substring(9,x[i].length))].start_time + "\n";
        alert(y + s);
    }

    function cmpareEventsTimes(a, b)
    {
        var has = a.start_time.getHours(); //zdarzenie a godzina rozpoczęcia
        var hbs = b.start_time.getHours(); //zdarzenie b godzina rozoczeęcia
        var mas = a.start_time.getMinutes(); // zdarzenie a minuty rozpoczecia
        var mbs = b.start_time.getMinutes(); //zdarzenie b minuty rozpoczęcia
        var hae = a.end_time.getHours(); //to samo co wyżej tylko dla zdarzenia końcowego
        var hbe = b.end_time.getHours();
        var mae = a.end_time.getMinutes();
        var mbe = b.end_time.getMinutes();
        
        if((has < hbs && hae > hbs) || (has<hbs && hae==hbs && mae<=mbs))
        {         
            return true;
        }
        else if(has==hbs && mas <= mbs)
        {
            return true;
        }
        else
            return false;
    }

    function calculateEventsParameters(){
//        startData.setHours(0, 0, 0,0);
//        endData.setHours(23, 59, 59,999);
//        var d = -1;
        for(var i=0;i<events.length;i++)
        {
            if(!events[i].ready)
            {
                var element = "draggable"+i;
                var dl = powiazania[element].length;
                if(dl>1)
                {
                    //alert("Sprawdzam "+ element);
                    //alert(powiazania[element].toString());
                    var left = [];
                    var width = [];
                    var zindex = [];
                    var licznik = 0;
                    for(var k=0;k<dl;k++)
                    {                        
                        var x = "";
                        var posk_s = powiazania[element][k];
                        var posk = parseInt(posk_s.substring(9,posk_s.length));
                        var posx = 0;
                        if(k==0)
                            for(var kk=0;kk<dl;kk++)
                            {
                                x = powiazania[element][kk];
                                posx = parseInt(x.substring(9,x.length));
                                if(posk!=posx && compareTwoEvents(events[posx],events[posk]))
                                    licznik++;
                            }
                        var dom_element = "#"+powiazania[element][k];
//                        var left_s = $(dom_element).css("left");
                        var left_s = $(dom_element).css("left");
                        var width_s = $(dom_element).css('width');
                        
                        if(left_s && width_s)
                        {
                            left_s = left_s.replace("px","");                        
                            if(view.day)
								width_s = 975/roomsCount;
							else
								width_s = 139;//width_s.replace("px","");
                            //var pp = width_s*0.15;
							var pp = width_s*0.15;
                            
                            zindex.push(0);
                            left.push(parseInt(left_s));
                            width.push(parseInt(width_s));
                            //width[k] -= 20*licznik;
                            if(k>0)
                            {
                                var y = "";
                                var pos = 0;
                                for(var j=0; j<k; j++)
                                {
                                    y = powiazania[element][j];
                                    pos = parseInt(y.substring(9,y.length));

                                    if(posk!=pos)
                                    {
                                        if(compareTwoEvents(events[pos],events[posk]))
                                        {
                                            zindex[k]=zindex[j]+1;
                                        }

                                        else
                                        {
                                            zindex[k]=zindex[j];
                                            break;
                                        }
                                    }
                                }
                                left[k]+=zindex[k]*pp;
    //                            if(zindex[k]!= 0 && zindex[k]<licznik)
    //                                width[k] -= 20*zindex[k];
    //                            else
                                    //width[k] -= 20*(licznik-zindex[k]);
                                //var max = findMaxValue(zindex);
                                //width[k] -= 20*(zindex[k]+1);
                            }
                            //if(k==1) licznik--;
                            width[k] -= pp*licznik;
                            $("#"+powiazania[element][k]).css('left',left[k]+"px");
                            $("#"+powiazania[element][k]).css('width',width[k]+"px");
							$("#"+powiazania[element][k]).css('z-index',0);
                            if(zindex[k]>0)
								$("#"+powiazania[element][k]).css('z-index',zindex[k]);
								
                            var el = powiazania[element][k];
                            //alert("Oznacze jako gotowe: " + el);
                            events[parseInt(el.substring(9,el.length))].ready = true;
                        }
                    }
                }
                events[i].ready = true;
//                else
//                {
//                    d = giveDifference(startData, events[i].start_time);
//                    events[i].left = giveEventLeftPosition(events[i].room_nr,d);
//                    events[i].top = pozycjaOdGodziny(events[i].start_time);
//                    events[i].ready = true;
//                    events[i].zindex=0;
//                }
            }
        }
    }
    function findMaxValue(tab){
        var temp=tab[0];
        var dl = tab.length;
        if(dl>1)
            for(var i=1;i<dl;i++)
            {
                if(tab[i]>temp)
                {
                    temp=tab[i];
                }
            }
        return temp;
    }
	//zmiana czasu rozpoczecia wydarzenia
    zmien_godzine_start = function($event_counter, licznik){
        var x=new Date();	//nowy obiekt daty
        var minuty_s = ($( "span.start", $event_counter ).text()).substring(3,5);
        var godzina_s = ($( "span.start", $event_counter ).text()).substring(0,2);
        var zmieniamy_end = true;
        var godzina = "";
        
        x.setHours(godzina_s);	//ustawiamy godzine z naszego wydarzenia na obiekt

        if(licznik%2==0) //zmniejszamy o parzysta ilosc 'półgodzin' - nie dotykamy minut - zmieniamy godzine
        {
            if(x.getHours()+parseInt((licznik)/2)<10)
                godzina="0"+(x.getHours()+parseInt((licznik)/2))+":"+minuty_s;
            else
                godzina=(x.getHours()+parseInt((licznik)/2))+":"+minuty_s;
        }
        else
        {
            if(licznik>0)
            {//zwiekszamy o nieparzysta ilosc 'półgodzin' - zmieniamy minuty i (może)godziny
                if(minuty_s=='30')
                {
                    minuty_s='00';
                    if(x.getHours()+parseInt((licznik)/2)+1<10)
                        godzina="0"+(x.getHours()+parseInt((licznik)/2)+1)+":"+minuty_s;
                    else
                        godzina=(x.getHours()+parseInt((licznik)/2)+1)+":"+minuty_s;
                }
                else
                {
                    minuty_s='30';
                    if(x.getHours()+parseInt((licznik)/2)<10)
                        godzina="0"+(x.getHours()+parseInt((licznik)/2))+":"+minuty_s;
                    else
                        godzina=(x.getHours()+parseInt((licznik)/2))+":"+minuty_s;
                }
            }
            else
            {//zmniejszamy o nieparzysta ilosc 'półgodzin' - zmieniamy minuty i (może)godziny
                if(minuty_s=='30')
                {
                    minuty_s='00';
                    if(x.getHours()+parseInt((licznik)/2)<10)
                        godzina="0"+(x.getHours()+parseInt((licznik)/2))+":"+minuty_s;
                    else
                        godzina=(x.getHours()+parseInt((licznik)/2))+":"+minuty_s;
                }
                else
                {	
                    minuty_s='30';
                    if(x.getHours()+parseInt((licznik)/2)-1<10)
                    {
                        if(x.getHours()+parseInt((licznik)/2)-1>=0)
                            godzina="0"+(x.getHours()+parseInt((licznik)/2)-1)+":"+minuty_s;
                        else
                        {
                            godzina="00:00";
                            zmieniamy_end = false;
                        }
                    }
                    else
                        godzina=(x.getHours()+parseInt((licznik)/2)-1)+":"+minuty_s;
                }
            }
        }
        $( "span.start", $event_counter ).text( godzina );
        if(zmieniamy_end)
            zmien_godzine_end($event_counter, licznik );
    }
    
	//zmiana czasu zakonczenia wydarzenia
    zmien_godzine_end = function( $event_counter, licznik ) {
        var x=new Date();	//nowy obiekt daty
        var minuty_s = ($( "span.end", $event_counter ).text()).substring(3,5);
        var godzina_s = ($( "span.end", $event_counter ).text()).substring(0,2);
        var start_m = ($( "span.start", $event_counter ).text()).substring(3,5);
        var start_g = ($( "span.start", $event_counter ).text()).substring(0,2);
        var godzina = "";
        
        x.setHours(godzina_s);	//ustawiamy godzine z naszego wydarzenia na obiekt

        if(licznik%2==0)	//zmieniamy o parzysta ilosc 'półgodzin' - nie dotykamy minut - zmieniamy godzine
        {
            if(minuty_s=='59')//if(godzina_s=='24')
            {
                if(24+parseInt((licznik)/2)<10)
                {
                    godzina="0"+(24+parseInt((licznik)/2))+":00";//godzina="0"+(24+parseInt((licznik)/2))+":"+minuty_s;
                }
                else
                    godzina=(24+parseInt((licznik)/2))+":00";//godzina=(24+parseInt((licznik)/2))+":"+minuty_s;
            }
            else
            {
                if(x.getHours()+(licznik/2)<10)
                    godzina="0"+(x.getHours()+(licznik/2))+":"+minuty_s;
                else
                    godzina=(x.getHours()+(licznik)/2)+":"+minuty_s;
            }

            if(x.getHours()+(licznik/2)>=24)
                    godzina = "23:59";
        }
        else	//zmnieniamy o nieparzysta ilosc 'półgodzin' - zmieniamy minuty i (może)godziny
        {
            if(licznik<0)	
            {
                if(minuty_s=='30')
                {
                    minuty_s='00';
                    if(x.getHours()+parseInt((licznik)/2)<10)
                        godzina="0"+(x.getHours()+parseInt((licznik)/2))+":"+minuty_s;
                    else
                        godzina=(x.getHours()+parseInt((licznik)/2))+":"+minuty_s;
                }
                else
                {
                    //minuty_s='30';
                    if(minuty_s=='59')//if(godzina_s=='24')
                    {
                        if(23+parseInt((licznik)/2)<10)
                            godzina="0"+(23+parseInt((licznik)/2))+":30";
                        else
                            godzina=(23+parseInt((licznik)/2))+":30";
                    }
                    else
                    {
                        if(x.getHours()+parseInt((licznik)/2)-1<10)
                            godzina="0"+(x.getHours()+parseInt((licznik)/2)-1)+":30";
                        else
                            godzina=(x.getHours()+parseInt((licznik)/2)-1)+":30";
                    }
                }
            }
            else
            {
                if(minuty_s=='30')
                {
                    minuty_s='00';
                    if(x.getHours()+parseInt((licznik)/2)+1<10)
                    {
                        if(x.getHours()+parseInt((licznik)/2)>=start_g)
                            godzina="0"+(x.getHours()+parseInt((licznik)/2)+1)+":"+minuty_s;
                        else
                            godzina = "23:59";
                    }		
                    else
                        godzina=(x.getHours()+parseInt((licznik)/2)+1)+":"+minuty_s;

                    if(x.getHours()+parseInt((licznik)/2)+1>=24)
                        godzina = "23:59";
                }
                else
                {	
                    minuty_s='30';
                    if(x.getHours()+parseInt((licznik)/2)<10)
                    {
                        if(x.getHours()+parseInt((licznik)/2)>=start_g && x.getHours()+parseInt((licznik)/2)<24)
                            godzina="0"+(x.getHours()+parseInt((licznik)/2))+":"+minuty_s;
                        else
                            godzina="23:59";
                    }
                    else
                    {
                        if(x.getHours()+parseInt((licznik)/2)<24 && x.getHours()+parseInt((licznik)/2)>=start_g)
                            godzina=(x.getHours()+parseInt((licznik)/2))+":"+minuty_s;
                        else
                            godzina="23:59";
                    }

                    if(x.getHours()+parseInt((licznik)/2)>=24)
                        godzina = "23:59";
                }
            }
        }
        $( "span.end", $event_counter ).text( godzina );
        } 
        
    renderFilters = function(){
        var s = "";
        for(var i=0;i<rooms.length;i++)
        {
            s+="<input type=\"checkbox\" id=\"check" + i +"\" checked=" + rooms[i].display +" name=\"" + rooms[i].name +"\"/><label for=\"check" + i+ "\" style=\"display: none;\">" + rooms[i].name + "</label>";
        }
        //s+= "<a id=\"new-event\"/>";
        return s;
    }
	
    renderBottomFilters = function(){
        //var s="<div class=\"groups\" style=\"display: none;\">";
		var s="<div class=\"groups\">";
			//rysuje grupy jako przyciski
//			for(var i=0;i<groups.length;i++)
//            {
//                s+= "<div class=\"group\"><input id=\"group" + i + "\" type=\"checkbox\" name=\"" + groups[i].color + "\" class=\"check\" checked=\"true\"/><label for=\"group"+i+"\">" + groups[i].name + "</label></div>";
//            }
			//Wiek
			var len = age_groups.length-1;
			//alert(kategorieID)
			if(kategorieID==1)
			{
				/*s+= "<span class=\"select-text\">Wiek:</span>";
				for(i=0;i<len-1;i++)
				{
					s+= "<div class=\"group age\"><input type=\"checkbox\" name=\"age_group" + (i+1) + "\" class=\"check\" id=\"grupa" + (i+1) + "\" checked=\"true\"/><label for=\"grupa" + (i+1) + "\">" + age_groups[i] + "</label></div>";
				}
				s+= "<div class=\"group age\" style=\"display: none;\"><input type=\"checkbox\" name=\"age_group0\" class=\"check\" id=\"grupa0\" checked=\"true\"/><label for=\"grupa0\">" + age_groups[len-1] + "</label></div>";*/
				s+="<span class=\"select-text\">Wiek:</span>" +
            "<div class=\"group\">" +
            "<select id=\"wiek\" class=\"wiek\" name=\"wiek\">" +
                "<option value=\"0\" selected=\"selected\">Wszystkie</option>";
                for(i=0;i<len-1;i++)
                {
                    s+="<option value=\""+ (i+1) + "\">" + age_groups[i] + "</option>";
                }
            s+="</select></div>";
			}
			/*else
			{
				s+= "<span class=\"select-text\" style=\"display: none;\">Wiek:</span>";
				for(i=0;i<len-1;i++)
				{
					s+= "<div class=\"group age\" style=\"display: none;\"><input type=\"checkbox\" name=\"age_group" + (i+1) + "\" class=\"check\" id=\"grupa" + (i+1) + "\" checked=\"true\"/><label for=\"grupa" + (i+1) + "\">" + age_groups[i] + "</label></div>";
				}
				s+= "<div class=\"group age\" style=\"display: none;\"><input type=\"checkbox\" name=\"age_group0\" class=\"check\" id=\"grupa0\" checked=\"true\"/><label for=\"grupa0\">" + age_groups[len-1] + "</label></div>";	
			}*/
			//Wiek
			/*s+="<span class=\"select-text\">Wiek:</span>" +
            "<div class=\"group\">" +
            "<select id=\"wiek\" class=\"wiek\" name=\"wiek\">" +
                "<option value=\"1\" selected=\"selected\"></option>";
                for(i=0;i<age_groups.length;i++)
                {
                    s+="<option value=\""+ age_groups[i].id + "\">" + age_groups[i].name + "</option>";
                }
            s+="</select></div>";*/
			
			
			//Styl
			s+="<span class=\"select-text\">Styl:</span>" +
            "<div class=\"group\">" +
            "<select id=\"styl\" class=\"styl\" name=\"styl\">" +
                "<option value=\"0\" selected=\"selected\">Wszystkie</option>";
                for(i=0;i<eg_styles.length;i++)
                {
                    s+="<option value=\""+ eg_styles[i].id + "\">" + eg_styles[i].name + "</option>";
                }
            s+="</select></div>";
			
			//Stopień
			var stages_short = [];
			for(i=0;i<stages.length;i++)
				if(!findElement(stages_short,stages[i].name))
					stages_short.push(stages[i].name);
			s+="<span class=\"select-text\">Poziom:</span>"+
            "<div class=\"group\">" +
            "<select id=\"stopien\" class=\"stopien\" name=\"stopien\">" +
                "<option value=\"0\" selected=\"selected\">Wszstkie</option>";
                for(i=0;i<stages_short.length;i++)
                {
                    s+="<option>" + stages_short[i] + "</option>";
                }
            s+="</select></div>";
			
			//Instruktor
			s+= "<span class=\"select-text\">Instruktor:</span>" +
            "<div class=\"group\">" +
            "<select id=\"instructor\" class=\"instructor\" name=\"instructor\">"+
                "<option value=\"0\" selected=\"selected\">Wszyscy</option>";
            for(i=0;i<instructors.length;i++)
            {
                s+= "<option value=\""+ instructors[i].id +"\">" + instructors[i].name + "</option>";
            }			
            s+="</select></div>";
			
			//rysuje grupy jako liste rozwijaną 
			// s+= "<span class=\"select-text\">Nazwa Grupy:</span>" +
            //"<div class=\"group\">" +
            //"<select id=\"select_grupy\" class=\"select_grupy\" name=\"select_grupy\">"+
            //    "<option value=\"1\" selected=\"selected\"></option>";
			//for(var i=0;i<groups.length;i++)
            //{
            //    s+= "<option value=\""+ (i+2) +"\">" + groups[i].name + "</option>";
				//s+= "<div class=\"group\"><input id=\"group" + i + "\" type=\"checkbox\" name=\"" + groups[i].color + "\" class=\"check\" checked=\"true\"/><label for=\"group"+i+"\">" + groups[i].name + "</label></div>";
            //}
			//s+="</select></div>";
			
			 //s+= "<span class=\"select-text\">Wiek:</span>"+
            //"<div class=\"group\">" +
            //"<select id=\"age_groups\" class=\"age_groups\" name=\"age_groups\">"+
             //   "<option value=\"1\" selected=\"selected\"></option>";
			//for(i=0;i<age_groups.length;i++)
            //{
             //   s+= "<option value=\""+ (i+2) +"\">" + age_groups[i] + "</option>";
            //}
			//s+="</select></div>";			
			
        s+="</div>"; //kończy diva z grupami!
        
        $('.groups').replaceWith(s);
    }
    
    filtrClick = function(){
        //alert($(this).attr("name"));
        var name = $(this).attr("name");
        var i=0;
        
        //alert($(this).attr('checked'));
        
        if($(this).attr('checked'))
        {
            for(i=0; i<rooms.length; i++)
                if(rooms[i].name == name)
                {
                    rooms[i].display = true;
                    break;
                }
        }
        else
        {
            for(i=0; i<rooms.length; i++)
                if(rooms[i].name == name)
                {
                    rooms[i].display = false;
                    break;
                }
        }
        $('div.cal_content').replaceWith(renderCalendarContent(defaultDate));
        renderEvents(defaultDate);
        
    }
    
    groupClick = function(){
        renderEvents(defaultDate);
    }
    
    ktoryZKolei = function(sala_id){
        var ret = 0;
        for(var i=0;i<rooms.length;i++)
        {
            //if(rooms[i].name != ("S"+nr) && rooms[i].display==true)
              //  ret++;
			if(rooms[i].id == sala_id)
				ret = i+1;
        }
        return ret;
    }
    
    amountOfRooms = function(){
        var ret = 0;
        for(var i=0; i< rooms.length; i++)
            if(rooms[i].display)
                ret++;
        return ret;
    }
    
    giveNewEventForm = function(){
        var now = new Date();
        now.setMinutes(30);
        var temp = new Date;
        temp.setHours(0);
        temp.setMinutes(0);
        var s =""; 
            s+="<div id=\"form_container\"><form name=\"formularz\" class=\"appnitro\" method=\"post\" action=\"index.php\" onsubmit=\"return validate(\'formularz\');\">" +
                    "<ul>" +					
                        "<li id=\"li_5\">" +
                            "<input type=\"hidden\" name=\"action\" value=\"new\"/>" +
                            "<label class=\"description\" for=\"title\">Tytuł </label>" +
                            "<input id=\"title\" name=\"title\" class=\"element text medium\" type=\"text\" maxlength=\"255\" value=\"\"/>" + 
                        "</li>" +
                        "<li id=\"li_1\">" +
                            "<label class=\"description\" for=\"datapicker\">Data </label>" +
                            "<span>" +
                                "<input type=\"text\" id=\"datepicker\" name=\"datepicker\">" +
                            "</span>" +                                    
                        "</li>" +
                        "<li id=\"li_2\">" +
                        "<label class=\"description\" for=\"start_time\">Godzina rozpoczęcia </label>" +
                        "<select id=\"start_time\" name=\"start_time\">";
                        for(var i=0; i<=rowCount; i++)
                        {
                            if(temp.getHours() == now.getHours()+1 && temp.getMinutes()==0)
                                s+="<option value=\""+ temp.format('HH:MM') +"\" selected=\"selected\">" + temp.format('HH:MM') +"</option>";
                            else
                                s+="<option>"+ temp.format('HH:MM') +"</option>";

                            temp.setMinutes(temp.getMinutes()+slotMinutes);
                        }
                        s+= "</select>" +
                        "</li>" +
                        "<li id=\"li_3\">" +
                            "<label class=\"description\" for=\"end_time\">Godzina zakończenia </label> " +
                            "<select id=\"end_time\" name=\"end_time\">";

                            temp.setHours(0);
                            temp.setMinutes(30);
                            for(i=0; i<=rowCount; i++)
                            {
                                if(temp.getHours() == now.getHours()+1 && temp.getMinutes() == now.getMinutes())
                                    s+="<option value=\""+ temp.format('HH:MM') +"\" selected=\"selected\">" + temp.format('HH:MM') + "</option>";
                                else
                                    s+="<option>"+ temp.format('HH:MM') +"</option>";

                                temp.setMinutes(temp.getMinutes()+slotMinutes);
                            }
                            s+= "</select>" +
                        "</li>" +
                        "<li id=\"li_6\">" +
                            "<label class=\"description\" for=\"room\">Sala</label>" +
                            "<select id=\"room\" name=\"room\">" +
                            "<option value=\"" + rooms[0].name + "\" selected=\"selected\">" + rooms[0].name + "</option>" ;
                            for(i=1;i<rooms.length;i++)
                            {
                                s+="<option>"+ rooms[i].name + "</option>";
                            }
                            s+="</select>" + 
                        "</li>" +
                        "<li id=\"li_4\" >" +
                            "<label class=\"description\" for=\"content\">Opis </label>" +
                                "<textarea id=\"content\" name=\"content\" class=\"element textarea small\"></textarea>" + 
                        "</li>" +
                        "<li class=\"buttons\">" +
                            "<input id=\"saveForm\" class=\"button_text\" type=\"submit\" name=\"submit\" value=\"Dodaj\" />" +
                        "</li>" +
                    "</ul>" +
                "</form></div>";
            return s;
    }
    
    giveEditEventForm = function(event){
        var now = new Date();
        now.setMinutes(30);
        var temp = new Date;
        temp.setHours(0);
        temp.setMinutes(0);
        var s =""; 
            s+="<div id=\"form_container\"><form name=\"formularz_" + event.room_nr +"\" class=\"appnitro\" method=\"post\" action=\"index.php\" onsubmit=\"return validate(\'formularz_" + event.room_nr +"\');\">" +
                    "<ul>" +					
                        "<li id=\"li_5\">" +
                            "<input type=\"hidden\" name=\"id\" value=\"" + event.id +"\" />" +
                            "<input type=\"hidden\" name=\"action\" value=\"edit\"/>" +
                            "<label class=\"description\" for=\"title\">Tytuł </label>" +
                                "<input id=\"title\" size=\"20\" name=\"title\" class=\"element text medium\" type=\"text\" maxlength=\"255\" value=\""+ event.title +"\"/>" + 
//                            "<p class=\"guidelines\" id=\"guide_5\"><small>Podaj tytuł wydarzenia.</small></p>" + 
                        "</li>" +
                        "<li id=\"li_1\">" +
                            "<label class=\"description\" for=\"datapicker\">Data </label>" +
                            "<span>" +
                                 "<input type=\"text\" id=\"datepicker\" name=\"datepicker\" size=\"20\" value=\"" + event.start_time.format('dd.mm.yyyy')+"\">" +
                            "</span>" +                           
                        "</li>" +
                        "<li id=\"li_2\">" +
                        "<label class=\"description\" for=\"start_time\">Godzina rozpoczęcia </label>" +
                        "<select id=\"start_time\" name=\"start_time\">";
                        for(var i=0; i<=rowCount; i++)
                        {
                            if(temp.getHours() == event.start_time.getHours() && temp.getMinutes()==event.start_time.getMinutes())
                                s+="<option value=\""+ temp.format('HH:MM') +"\" selected=\"selected\">" + temp.format('HH:MM') +"</option>";
                            else
                                s+="<option>"+ temp.format('HH:MM') +"</option>";

                            temp.setMinutes(temp.getMinutes()+slotMinutes);
                        }
                        s+= "</select>" +
                        "</li>" +
                        "<li id=\"li_3\">" +
                            "<label class=\"description\" for=\"end_time\">Godzina zakończenia </label> " +
                            "<select id=\"end_time\" name=\"end_time\">";

                            temp.setHours(0);
                            temp.setMinutes(30);
                            for(i=0; i<=rowCount; i++)
                            {
                                if(temp.getHours() == event.end_time.getHours() && temp.getMinutes()==event.end_time.getMinutes())
                                    s+="<option value=\""+ temp.format('HH:MM') +"\" selected=\"selected\">" + temp.format('HH:MM') + "</option>";
                                else
                                    s+="<option>"+ temp.format('HH:MM') +"</option>";

                                temp.setMinutes(temp.getMinutes()+slotMinutes);
                            }
                            s+= "</select>" +
                        "</li>" +
                        "<li id=\"li_6\">" +
                            "<label class=\"description\" for=\"room\">Sala</label>" +
                            "<select id=\"room\" name=\"room\">";
                            
                            for(i=0;i<rooms.length;i++)
                            {
                                if(i==event.room_nr)
                                    s+="<option value=\"" + rooms[i].name + "\" selected=\"selected\">" + rooms[i].name + "</option>" ;
                                else
                                    s+="<option>"+ rooms[i].name + "</option>";
                            }
                            s+="</select>" + 
                        "</li>" +
                        "<li id=\"li_4\" >" +
                            "<label class=\"description\" for=\"content\">Opis </label>" +
                                "<textarea id=\"content\" name=\"content\" class=\"element textarea small\">" + event.content +"</textarea>" + 
                        "</li>" +
                        "<li class=\"buttons\">" +
                            "<input id=\"saveForm\" class=\"button_text\" type=\"submit\" name=\"submit\" value=\"Edytuj\" />" +
                        "</li>" +
                        "<li class=\"buttons\">" +
                            "<input id=\"deleteForm\" class=\"button_text\" type=\"submit\" name=\"delete\" value=\"Usuń\" />" +
                        "</li>" +
                    "</ul>" +
                "</form></div>";
            return s;
    }
	function givePriceTable(time)
	{
		var which_index = -1;
		for(var i=0;i<price_list.length;i++)
			if(parseInt(price_list[i].time.substr(0,price_list[i].time.length - 4)) == time)
			{	
				which_index = i;
				break;
			}
		
		var ret = "";
		if(which_index>=0)
		{
			for(i=0;i<price_list[which_index].packageOfClasses.length; i++)
			{
				ret+= "<tr><td>" + (price_list[which_index].packageOfClasses[i]) + "</td><td>" + ((price_list[which_index].price[i]/price_list[which_index].packageOfClasses[i]).toFixed(2)) +" z\u0142 </td><td>" + (price_list[which_index].price[i]) +" z\u0142 </td><td>oszczędzasz "+ ((price_list[which_index].price[0]*price_list[which_index].packageOfClasses[i])- price_list[which_index].price[i]) +" z\u0142 </td></tr>";
			}
		}
		
		return ret;
	}
	//zwraca kod html formularza do zapisywania się na zajęcia
	giveSignUpForm = function(zad){
        var now = new Date();
        now.setMinutes(30);
        var temp = new Date;
        temp.setHours(0);
        temp.setMinutes(0);
		var doZapisu = "";
		var tempZajecia = zad.dni_zajec.replace(/<br \/>/i,"$");
		//alert(zad.dni_zajec.substr(0,zad.dni_zajec.length-1));
		var courseDaysTab = tempZajecia.split("$");
		var courseDays = "<table>";
		
		for(var i =0;i<courseDaysTab.length;i++)
			courseDays+= "<tr><td>"+ courseDaysTab[i] +"</td></tr>";
				
		courseDays+="</table>";
		
		var cennik = givePriceTable(zad.duration_time);

		//alert(courseDays);
		//alert(zad.start_time.format('dddd'));
		doZapisu = "event_id="+ zad.id + "&event_title=" + zad.title + "&event_room_nr=" + zad.room_nr + "&event_content=" + zad.content + "&event_day=" + zad.start_time.format('dddd') + "&event_start_hour=" + zad.start_time.format('HH:MM') + "&event_end_hour=" + zad.end_time.format('HH:MM')+ "&event_start_date=" + zad.dataStart.format('dd.mm.yyyy') + "&event_lokalizacja=" + zad.location + "&event_grupa="+ zad.groupName+"&event_instruktor=" + zad.instructorName + "&event_styl="+giveNameFromId(eg_styles,zad.style_nr) + "&event_poziom="+ giveNameFromId(stages,zad.stage_nr) +"&event_grupa_wiek="+age_groups[zad.age_group]+"&event_dni_zajec="+courseDays+"&event_priceList="+cennik;
		//doZapisu = doZapisu.replace(/ /gi,"_");
		
		//alert(doZapisu);
		var s = "<div id=\"signUp"+ zad.id +"\" class=\"signUp\">" +
					"<div id=\"signUp-Info\">" +
						"<div id=\"signUp-InfoTitle\"><span>Wybrany kurs:<span></div>"+
						"<table>" +
							"<tr>" +
								"<th>Styl:</th><td>"+ giveNameFromId(eg_styles,zad.style_nr) +"</td>" +
							"</tr>"+
							"<tr>" +
								"<th>Nazwa grupy:</th><td>"+ zad.groupName +"</td>" +
							"</tr>"+
							"<tr>" +
								"<th>Instruktor:</th><td>"+ zad.instructorName +"</td>" +
							"</tr>"+
							"<tr>" +
								"<th>Termin kolejnych zajęć:</th><td>"+ zad.dataStart.format("dd.mm.yyyy") +"</td>" +
							"</tr>"+
							"<tr>" +
								"<th>Poziom zaawansowania:</th><td>"+ giveNameFromId(stages,zad.stage_nr) +"</td>" +
							"</tr>"+
							"<tr>" +
								"<th>Dni kursu:</th><td>"+ zad.dni_zajec +"</td>" +
							"</tr>"+
							/*"<tr>" +
								"<th>Godziny:</th><td>"+ zad.start_time.format("HH:MM") +" - " + zad.end_time.format("HH:MM") +"</td>" +
							"</tr>"+*/
							/*"<tr>" +
								"<th>Lokalizacja:</th><td>"+tab_lokalizacje[zad.location-1]+"</td>" +
							"</tr>"+*/
						"</table>" +
					"</div>" +
					"<div id=\"signUp-DataForm\">" +
						"<div id=\"signUp-DataFormTitle\"><span>Dane do zapisu:</span></div>"+
						"<form id=\"signUpForm\" name=\"signUpForm\" action=\"#\" method=\"post\">" +
							"<table>" +
								"<tr>" +
									"<th>Imię: (*)</th><td><input id=\"firstName"+ zad.id +"\" size=\"30\" name=\"firstName\" class=\"\" type=\"text\" maxlength=\"50\" /></td>" +
								"</tr><tr id=\"signUpInfoImie"+ zad.id +"\" class=\"FormError\" style =\"display: none;\"><th></th><td></td></tr>" +
								"<tr>" +
									"<th>Nazwisko: (*)</th><td><input id=\"lastName"+ zad.id +"\" size=\"30\" name=\"lastName\" class=\"\" type=\"text\" maxlength=\"50\" /></td>" +
								"</tr><tr id=\"signUpInfoNazwisko"+ zad.id +"\" class=\"FormError\" style =\"display: none;\"><th></th><td></td></tr>";
								if(zad.category==4){
									s += "<tr><th>Imię i nazwisko partnera/partnerki:</th><td><input id=\"partnerName\" size=\"30\" name=\"partnerName\" class=\"\" type=\"text\" maxlength=\"50\" /></td></tr>";
								}
								s += "<tr>" +
									"<th>E-mail: (*)</th><td><input id=\"email"+ zad.id +"\" size=\"30\" name=\"email\" class=\"\" type=\"text\" maxlength=\"50\" /></td>" +
								"</tr><tr id=\"signUpInfoEmail"+ zad.id +"\" class=\"FormError\" style =\"display: none;\"><th></th><td></td></tr>" +
								"<tr>" +
									"<th>Adres</th><td></td>" +
								"</tr>" +
								"<tr>" +
									"<th class=\"txt_normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ul. i nr lokalu: (*)</th><td><input id=\"adress"+ zad.id +"\" size=\"30\" name=\"adress\" class=\"\" type=\"text\" maxlength=\"50\" /></td>" +
								"</tr><tr id=\"signUpInfoAdres"+ zad.id +"\" class=\"FormError\" style =\"display: none;\"><th></th><td></td></tr>" +
								"<tr>" +
									"<th class=\"txt_normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kod pocztowy: (*)</th><td><input id=\"zipCode"+ zad.id +"\" size=\"30\" name=\"zipCode\" class=\"\" type=\"text\" maxlength=\"6\" /></td>" +
								"</tr><tr id=\"signUpInfoKodPocztowy"+ zad.id +"\" class=\"FormError\" style =\"display: none;\"><th></th><td></td></tr>" +
								"<tr>" +
									"<th class=\"txt_normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;miejscowość (*)</th><td><input id=\"place"+ zad.id +"\" size=\"30\" name=\"place\" class=\"\" type=\"text\" maxlength=\"50\" /></td>" +
								"</tr><tr id=\"signUpInfoMiejscowosc"+ zad.id +"\" class=\"FormError\" style =\"display: none;\"><th></th><td></td></tr>" +
								"<tr>" +
									"<th>Telefon kontaktowy (*)</th><td></td>" +
								"</tr>" +
								"<tr>" +
									"<th class=\"txt_normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;komórkowy: </th><td><input id=\"cellPhone"+ zad.id +"\" size=\"10\" name=\"cellPhone\" class=\"\" type=\"text\" maxlength=\"15\" /></td>" +
								"</tr>" +
								"<tr>" +
									"<th class=\"txt_normal\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stacjonarny: </th><td><input id=\"phone"+ zad.id +"\" size=\"10\" name=\"phone\" class=\"\" type=\"text\" maxlength=\"15\" value=\"22\" /></td>" +
								"</tr>" +
								"</tr><tr id=\"signUpInfoTelefon"+ zad.id +"\" class=\"FormError\" style =\"display: none;\"><th></th><td></td></tr>" +
								"<tr>" +
									"<th class=\"txt_normal\"></th><td></td>" +
								"</tr>" +
								"<tr>" +
									"<th class=\"txt_normal\">(*) - pola wymagane</th><td></td>" +
								"</tr>" +
							"</table>" +
						"</form>" +
						"<div id=\"signUpFormWyslij"+ zad.id +"\" class=\"signUpFormWyslij\" onClick=\"signUpFormValidate('"+ doZapisu +"',"+ zad.id +");\" value=\"1\"></div><div class=\"signUpFormReset\" onClick=\"signUpFormReset("+ zad.id +");\">" +
					"</div>" +
				"</div>";
		
         return s;
	}
    
    //aktualizuj wydarzenia w bazie - godzina przy przeciaganiu
    uaktualnij_baze = function($event){
        //EDYCJA W BAZIE						
        var ev_id = events[($event[0].id).substring(9,($event[0].id).length)].id;
        var new_start = events[($event[0].id).substring(9,($event[0].id).length)].start_time;
        var new_end = events[($event[0].id).substring(9,($event[0].id).length)].end_time;
        var new_start_s = new_start.getFullYear()+"-"+(new_start.getMonth()+1)+"-"+new_start.getDate()+" "+new_start.getHours()+":"+new_start.getMinutes()+":00.000";
        var new_end_s = new_end.getFullYear()+"-"+(new_end.getMonth()+1)+"-"+new_end.getDate()+" "+new_end.getHours()+":"+new_end.getMinutes()+":00.000";
        var new_sala = events[($event[0].id).substring(9,($event[0].id).length)].room_nr;
        //alert(events[($event[0].id).substring(9,($event[0].id).length)].start_time);

        //AJAX
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                //document.getElementById("param1").innerHTML=xmlhttp.responseText;
                //location.reload(true);
            }
        }
        xmlhttp.open("GET","index.php?q="+ev_id+"&news="+new_start_s+"&newe="+new_end_s,true);
        xmlhttp.send();
        // Koniec edycji w bazie
    }
	
    //aktualizuj wydarzenia w tablicy events - godzina przy przeciaganiu
    uaktualnij_tablice = function($event){
        var gs = $( "span.start", $event ).text().split(':');
        var ge = $( "span.end", $event ).text().split(':');
        //alert(($event[0].id).substring(9,($event[0].id).length));
        events[($event[0].id).substring(9,($event[0].id).length)].start_time.setHours(gs[0]);
        events[($event[0].id).substring(9,($event[0].id).length)].start_time.setMinutes(gs[1]);
        events[($event[0].id).substring(9,($event[0].id).length)].end_time.setHours(ge[0]);
        events[($event[0].id).substring(9,($event[0].id).length)].end_time.setMinutes(ge[1]);
    }

    //uaktualnij sale
    zmien_sale_dzien = function($event, ile_l){
        var zm_s_d = events[($event[0].id).substring(9,($event[0].id).length)].start_time.getDate();
        var zm_e_d = events[($event[0].id).substring(9,($event[0].id).length)].end_time.getDate();

        if(ile_l%roomsCount==0)
        {
            //zmieniamy tylko dzien. sala zostaje ta sama
            events[($event[0].id).substring(9,($event[0].id).length)].start_time.setDate(zm_s_d+Math.round(ile_l/roomsCount));
            events[($event[0].id).substring(9,($event[0].id).length)].end_time.setDate(zm_e_d+Math.round(ile_l/roomsCount));
        }
        else
        {
            //zmieniamy sale
            var z = (events[($event[0].id).substring(9,($event[0].id).length)].room_nr)/roomsCount+ile_l/roomsCount;
            if(0<z && z<=1)
            {
                //zmieniamy tylko sale
                events[($event[0].id).substring(9,($event[0].id).length)].room_nr = roomsCount*z;
            }
            else
            {
                //zmieniamy i sale i dzien
                var nnrr = parseInt(events[($event[0].id).substring(9,($event[0].id).length)].room_nr);
                z = ((z*roomsCount)%roomsCount);
                if(z<=0) z+=4;
                events[($event[0].id).substring(9,($event[0].id).length)].start_time.setDate(zm_s_d+Math.floor((ile_l-1+nnrr)/roomsCount));
                events[($event[0].id).substring(9,($event[0].id).length)].end_time.setDate(zm_e_d+Math.floor(ile_l/roomsCount));
                events[($event[0].id).substring(9,($event[0].id).length)].room_nr = z;
            }
        }
    }
    
    validate = function(name) {
        var errfound = false;
        var bledy = "";

        if (document.forms[name].title.value == "")
            bledy += "Podaj tytu\u0142!\n";            
        if (document.forms[name].content.value == "") 
            bledy += "Podaj opis!\n";
        if((document.forms[name].end_time.value<=document.forms[name].start_time.value))
            bledy+= "Godzina zakonczenia wydarzenia musi by\u0107 późniejsza niż godzina jego rozpoczęcia!\n";
        if(document.forms[name].datepicker.value=="")
            bledy+= "Podaj date wydarzenia!";
        else
        {
            var date_tab = document.forms[name].datepicker.value.split('.');

            if (parseInt(date_tab[1].value) > 12 || parseInt(date_tab[1].value) < 1 || parseInt(date_tab[0].value) < 1 || parseInt(date_tab[2].value) < 1989)
                bledy += "B\u0142ędna data!\n";
            else
            {
//                    date = new Date(date_tab[2].value, date_tab[1].value, date_tab[0].value);
                //miesiace 31               
                if((parseInt(date_tab[0])>31 && parseInt(date_tab[1]) == 1)||(parseInt(date_tab[0])>31 && parseInt(date_tab[1]) == 3)||(parseInt(date_tab[0])>31 && parseInt(date_tab[1]) == 5)||(parseInt(date_tab[0])>31 && parseInt(date_tab[1]) == 7)||(parseInt(date_tab[0])>31 && parseInt(date_tab[1]) == 8)||(parseInt(date_tab[0])>31 && parseInt(date_tab[1]) == 10)||(parseInt(date_tab[0])>31 && parseInt(date_tab[1]) == 12))
                    bledy += "B\u0142ędna data!\n"
                //miesiace 30
                if((parseInt(date_tab[0])>30 && parseInt(date_tab[1]) == 4)||(parseInt(date_tab[0])>30 && parseInt(date_tab[1]) == 6)||(parseInt(date_tab[0])>30 && parseInt(date_tab[1]) == 9)||(parseInt(date_tab[0])>30 && parseInt(date_tab[1]) == 11))
                    bledy += "B\u0142ędna data!\n"
                //luty	
                if((parseInt(date_tab[1]) == 2 && ((((parseInt(date_tab[2])%4 == 0 && parseInt(date_tab[2])%100 != 0) || parseInt(date_tab[2])%400 == 0)&&(parseInt(date_tab[0])>29))||((!(parseInt(date_tab[2])%4 == 0 && parseInt(date_tab[2])%100 != 0) || parseInt(date_tab[2])%400 == 0)&&(parseInt(date_tab[0])>28)))))
                    bledy += "B\u0142ędna data!\n"
            }
        }

        if (bledy != "")
        {  
            alert(bledy); 
            errfound = true;
        }

        return !errfound;
	}  
    
	function setScrollTop(){
		//document.getElementById('div-table-content').scrollTop = 410;
		$('.table-content').css('position','relative');
		$('.table-content').css('top','-'+ topMargin +'px');
		$('#all').css('height',allHeight);
		//alert(document.getElementById('div-table-content').scrollTop);
	}
	
    $.fn.dod2 = function(tablica){			
        events.push(tablica);
        renderEvents(defaultDate);
        //activeEvents(parseInt(w));
        alert("Wewnatrz funkcji dod2():\nAktualna ilosc zdarzen: "+events.length+"\nStart: "+tablica.start_time+"\nEnd: "+tablica.end_time+"\nOpis nowego zdarzenia: "+tablica.content);
    }
	
	
   
})(jQuery);

//$('#param1').replaceWith("<div id=\"param1\"><span>In:"  + date + "</span></div>");
//$('#param2').replaceWith("<div id=\"param2\"><span>New:" + tempDate+ "</span></div>");
//$('#param3').replaceWith("<div id=\"param3\"><span>Out:" + tempDate+ "</span></div>");
//       $('#param1').append("<span>W</span>");
