var nasledujiciAkce = "";

function printEvent(id) {
  var elm = document.getElementById("kalendar_event");
  //  alert (id);
  var rozdelene = id.split(",", "9999");
  var i;
  if (!elm) return; 
  
	elm.innerHTML = "";  

	for (i=0; i<rozdelene.length; i++)
		elm.innerHTML += "<strong>"+arrvents[rozdelene[i]][0]+"</strong><br />"+arrvents[rozdelene[i]][1]+"<br />"+arrvents[rozdelene[i]][2]+"";

};

function CalEvent() {
  this.id    = "";
  this.day   = "";
  this.month = "";
  this.year  = "";
  this.text  = "";
};

CalEvent.factory = function(id, day, month, year, text) {
  var newCalEvent = new CalEvent();
  
  newCalEvent.id    = id;
  newCalEvent.day   = day;
  newCalEvent.month = month;
  newCalEvent.year  = year;
  newCalEvent.text  = text;
  
  return newCalEvent;
}

function CalEvents() {
  this.events = {};
  
  this.add = function(id, day, month, year, text) {
     var calEvent = CalEvent.factory(id, day, month, year, text);
     
     if(!this.events[year]) this.events[year] = {};
     if(!this.events[year][month]) this.events[year][month] = {};
     this.events[year][month][day] = calEvent;
  }
  
  this.get = function(day, month, year) {
    if (!this.events[year] || !this.events[year][month]) return null;
    var event = this.events[year][month][day];
    if (!event) return null;
    return event;
  }
}

var Calendar = {
  showYear : true,
  showMonth : true,
  showDays : true,

  useLongDayName : false,
  
  dayShortNames : ["Po", "Út", "St", "Čt", "Pá", "So", "Ne"],
  dayLongNames : ["Pondělí­", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"],
  
  monthNames : [
    "Leden", "Únor", "Březen", "Duben", "Květen",
    "Červen", "Červenec", "Srpen", "Září­", "Ří­jen", "Listopad", "Prosinec"
  ],
  
  create : function (month, year, events) {
    var daysInMonth = 32 - new Date(year, month - 1, 32).getDate();
    var day = new Date(year, month - 1, 1);
    var dayOfWeek = day.getDay() - 1;

    if (dayOfWeek < 0) dayOfWeek = 6; // 0 Po, 6 Ne
    
    var min = 1 - dayOfWeek;
    var max = Math.ceil((daysInMonth - min)/7)*7 - 1;
    var dayInWeek = 0;
    

    
    var html = "<table class=\"calendar\">";

    if (this.showYear) html += "<tr><td class=\"calYear\" colspan=\"7\">" + year + "</td></tr>";

    if (this.showMonth) html += "<tr><td class=\"calMonthName\" colspan=\"7\">" + this.monthNames[month - 1] + "</td></tr>";

    if (this.showDays) {
      var dayNames = this.dayShortNames;
      if (this.useLongDayName) dayNames = this.dayLongNames;

      html += "<tr>";
      for (var i=0; i<7; i++) html += "<td class=\"calDayName\">" + dayNames[i] + "</td>";
      html += "</tr>";
    }

    for (var i=min; i<=max; i++) {
      if (dayInWeek == 0) html += "<tr>";
           
     html += "<td class=\"calDay";
     
     var endOfTd = "\">";
     var event = "";
     var incDay = "";

     
     if (i>0 && i<=daysInMonth) {
       incDay = i;

       if (events) {
         var eventObj = events.get(i, month, year);
         if(eventObj) {
		var currentTime = new Date();
	 	var today = currentTime.getDate();
		var tomonth = currentTime.getMonth()+1;
		
		if (today <= i && tomonth == month && nasledujiciAkce == "")
			{ 
				nasledujiciAkce = eventObj.id; 
				
			}
	        incDay = "<a href=\"javascript:void(printEvent('" + eventObj.id + "'))\">"+ i +"</a>";
           event = "<div class=\"calEvent\">" + eventObj.text + "</div>";
           endOfTd = " calHighligth\">";
         }
       }
     }
     
     html += endOfTd + incDay + event + "</td>";
      
      dayInWeek++;
      if (dayInWeek > 6) {
        html += "</tr>";
        dayInWeek = 0;
      }
    }

    html += "</table>";
    
    return html;
  },

  show : function (id, month, year) {
    var calElement = document.getElementById(id);
    if (!calElement) return;
    var events = null;
    if (arguments.length > 3) events = arguments[3];
    calElement.innerHTML = this.create(month, year, events);
  }
};


       







       function mapaSvet(a,b,s) {
	       if (GBrowserIsCompatible()) {
		       var map = new GMap2(document.getElementById("map"));
		       //map.setMapType(G_SATELLITE_MAP);
		       var mapControl = new GMapTypeControl();
		       map.addControl(mapControl);
		       map.addControl(new GLargeMapControl());
		       map.setCenter(new GLatLng(a, b), s);
		        }}
