var modes = new Array();
modes[0] = new Object();
modes[0]["alias"] = "nodata";
modes[0]["name"] = "Keine Angabe";
modes[0]["active"] = 1;
modes[1] = new Object();
modes[1]["alias"] = "booked";
modes[1]["name"] = "Buchung";
modes[1]["active"] = 1;
modes[2] = new Object();
modes[2]["alias"] = "prebooked";
modes[2]["name"] = "Reservierung";
modes[2]["active"] = 1;
modes[3] = new Object();
modes[3]["alias"] = "noservice";
modes[3]["name"] = "Betriebsurlaub";
modes[3]["active"] = 0;
modes[4] = new Object();
modes[4]["alias"] = "t_no_booked";
modes[4]["name"] = "Keine Angabe/Buchung";
modes[4]["active"] = 1;
modes[5] = new Object();
modes[5]["alias"] = "t_booked_no";
modes[5]["name"] = "Buchung/Keine Angabe";
modes[5]["active"] = 1;
modes[6] = new Object();
modes[6]["alias"] = "t_no_pre";
modes[6]["name"] = "Keine Angabe/Reservierung";
modes[6]["active"] = 1;
modes[7] = new Object();
modes[7]["alias"] = "t_pre_no";
modes[7]["name"] = "Reservierung/Keine Angabe";
modes[7]["active"] = 1;
modes[8] = new Object();
modes[8]["alias"] = "t_booked_pre";
modes[8]["name"] = "Buchung/Reservierung";
modes[8]["active"] = 1;
modes[9] = new Object();
modes[9]["alias"] = "t_pre_booked";
modes[9]["name"] = "Reservierung/Buchung";
modes[9]["active"] = 1;
modes[10] = new Object();
modes[10]["alias"] = "t_booked_booked";
modes[10]["name"] = "Buchung/Buchung";
modes[10]["active"] = 1;
modes[11] = new Object();
modes[11]["alias"] = "t_pre_pre";
modes[11]["name"] = "Reservierung/Reservierung";
modes[11]["active"] = 1;

(function($) {
	Date.prototype.getDays = function(month, year) {  // 1 = Januar, usw.
		month = month == null ? this.getMonth() : month - 1;
		if (year == null) year = this.getFullYear();
		for (var x=28; x<=31; ++x)
			if (new Date(year, month, x).getMonth() != new Date(year, month, 1).getMonth()) break;
		return x - 1;
	};
	$.fn.bookcal = function(calid, year, sattext, suntext) {

		var cal = $(this);

		// Anzahl der Tage je Monat
		var d = new Date(year, 2-1, 1);
		var febdays = d.getDays();
		var days = new Array(31, febdays, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

		// Wochentag des 1. Januars
		var d = new Date(year, 1-1, 1);
		var weekday = d.getDay();

		var cell = $(this).find("tbody").find("tr:first").find("td:first");
		for (var j=1; j<=12; j++) {
			for (var i=1; i<=31; i++) {
				divelem = cell.find("div");
				cell.removeClass();
				divelem.removeClass();
				divelem.html("")
				if (i <= days[j-1]) {
					cell.addClass("hasdate");
					if (weekday == 6) divelem.html(sattext);
					if (weekday == 0) divelem.html(suntext);
					weekday = (weekday+1)%7;
				}
				if (i == 31) break;
				cell = cell.next();
			}
			if (j == 12) break;
			cell = cell.parent().next().find("td:first");
		}

		$.get("plugin/bookingcalendar/sys/ajax_yeardata.php",
			{ calid: calid, year: year },
			function(data){
				if (data.length == 0) {
					cal.find("td").addClass(modes[0]["alias"]);
					return;
				}
				var mmodes = data.split("#");
				var dmodes;
				var cell = cal.find("tbody").find("tr:first").find("td:first");
				for (var j=0; j<12; j++) {
					dmodes = mmodes[j].split("|");
					for (var i=0; i<31; i++) {
						divelem = cell.find("div");
						divelem.addClass(modes[dmodes[i]]["alias"]);
						if (i == 30) break;
						cell = cell.next();
					}
					if (j == 11) break;
					cell = cell.parent().next().find("td:first");
				}

			});
	}
})(jQuery);
