var CAL_BACKEND = "../terminplaner/php/termine_backend.php";
function calDB_getScheduleArray(m, y, callback) {
	var poststr = "site=get&year="+y+"&month="+m;
	calDB_Request(CAL_BACKEND, poststr, function(r){calDB_RequestDone(r, callback);});
}


function calDB_Request(url, parameters, cb) {
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
		// set type accordingly to anticipated content type
		http_request.overrideMimeType('text/xml');
		//http_request.overrideMimeType('application/xhtml+xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}

	http_request.onreadystatechange = function(){
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				var result = http_request.responseXML;
				cb(result);
			} else {
				alert('There was a problem with the request.');
			}
		}
	};
	http_request.open('POST', url+"?"+parameters, true);
	http_request.send(null);
}

//sends the schedule array to the callback fct given to calDB_getScheduleArray
function calDB_RequestDone(result, callback) {
	/*if(result.getElementsByTagName("entries").length == 0)
		return;*/
	var all_XML_Dates = result.getElementsByTagName("entries")[0].getElementsByTagName("date");

	var calendar = new Array();	//ganzer kalender

	for(var i=0; i < all_XML_Dates.length; i++){
	//------------------------ ein tag
		var newDate_XML = all_XML_Dates[i];
		var newDate_OBJ = new Object();

			if(typeof(newDate_XML.attributes) != "undefined")
			for(var j = 0; j < newDate_XML.attributes.length; j++){
				var newAttribute = newDate_XML.attributes[j];
				newDate_OBJ[newAttribute.nodeName] = newAttribute.nodeValue;
			}
	//------------------------ einzelne events an diesem tag
		newDate_OBJ.events = new Array();
		var all_XML_Events = newDate_XML.getElementsByTagName("event");

		for(var j = 0; j < all_XML_Events.length; j++){
			var newEvent_XML = all_XML_Events[j];
			var newEvent_OBJ = new Object();

				if(typeof(newEvent_XML.attributes) != "undefined")
				for(var k = 0; k < newEvent_XML.attributes.length; k++){
					var newAttribute = newEvent_XML.attributes[k];
					newEvent_OBJ[newAttribute.nodeName] = newAttribute.nodeValue;
				}

				//------------------------ siblings für dieses einzelne event
				newEvent_OBJ.siblings = new Array();

				var newSibling_XML = null;
				if(newEvent_XML.getElementsByTagName("siblings")[0])
					newSibling_XML = newEvent_XML.getElementsByTagName("siblings")[0].getElementsByTagName("sibling");
				if(newSibling_XML)
				for(var l = 0; l < newSibling_XML.length; l++){
					var newSibling_OBJ = new Object();
					if(typeof(newSibling_XML[l].attributes) != "undefined")
					for(var k = 0; k < newSibling_XML[l].attributes.length; k++){
						var newAttribute = newSibling_XML[l].attributes[k];
						newSibling_OBJ[newAttribute.nodeName] = newAttribute.nodeValue;
					}
					newEvent_OBJ.siblings.push(newSibling_OBJ);
				}

			newDate_OBJ.events.push(newEvent_OBJ);
		}
		calendar.push(newDate_OBJ);
	}
	if(typeof(callback) != "undefined")
		callback(calendar);

	/*
	var array = new Array();

	for(var i = 0; i < dts.length; i++) {
		var newDt = new Object();
		var dt = dts[i];
		var parent = dt.getElementsByTagName("parent")[0];
		var siblings = dt.getElementsByTagName("siblings");
		if(typeof(siblings) != "undefined")
			if(siblings.length > 0)
				siblings = siblings[0].getElementsByTagName("sibling");

		if(dt.getAttribute("ID"))
			newDt.id = dt.getAttribute("ID");
		else if(parent)
			newDt.id = parent.getAttribute("ID");

		if(dt.getAttribute("erstellt"))
			newDt.erstellt = dt.getAttribute("erstellt");
		else if(parent)
			newDt.erstellt = parent.getAttribute("erstellt");

		if(dt.getAttribute("datum"))
			newDt.datum = dt.getAttribute("datum");
		else if(parent)
			newDt.datum = parent.getAttribute("datum");

		if(dt.getAttribute("begin"))
			newDt.begin = dt.getAttribute("begin");
		else if(parent)
			newDt.begin = parent.getAttribute("begin");

		if(dt.getAttribute("end"))
			newDt.end = dt.getAttribute("end");
		else if(parent)
			newDt.end = parent.getAttribute("end");

		if(dt.getAttribute("plz"))
			newDt.plz = dt.getAttribute("plz");
		else if(parent)
			newDt.plz = parent.getAttribute("plz");

		if(dt.getAttribute("ort"))
			newDt.ort = dt.getAttribute("ort");
		else if(parent)
			newDt.ort = parent.getAttribute("ort");

		if(dt.getAttribute("strasse"))
			newDt.strasse = dt.getAttribute("strasse");
		else if(parent)
			newDt.strasse = parent.getAttribute("strasse");

		if(dt.getAttribute("nr"))
			newDt.nr = dt.getAttribute("nr");
		else if(parent)
			newDt.nr = parent.getAttribute("nr");

		if(dt.getAttribute("beschreibung"))
			newDt.beschreibung = dt.getAttribute("beschreibung");
		else if(parent)
			newDt.beschreibung = parent.getAttribute("beschreibung");

		if(dt.getAttribute("veranstalter"))
			newDt.veranstalter = dt.getAttribute("veranstalter");
		else if(parent)
			newDt.veranstalter = parent.getAttribute("veranstalter");

		if(dt.getAttribute("tel"))
			newDt.tel = dt.getAttribute("tel");
		else if(parent)
			newDt.tel = parent.getAttribute("tel");

		if(dt.getAttribute("fax"))
			newDt.fax = dt.getAttribute("fax");
		else if(parent)
			newDt.fax = parent.getAttribute("fax");

		if(dt.getAttribute("mobil"))
			newDt.mobil = dt.getAttribute("mobil");
		else if(parent)
			newDt.mobil = parent.getAttribute("mobil");

		if(dt.getAttribute("mail"))
			newDt.mail = dt.getAttribute("mail");
		else if(parent)
			newDt.mail = parent.getAttribute("mail");

		if(dt.getAttribute("href"))
			newDt.href = dt.getAttribute("href");
		else if(parent)
			newDt.href = parent.getAttribute("href");

		if(dt.getAttribute("lng"))
			newDt.lng = dt.getAttribute("lng");
		else if(parent)
			newDt.lng = parent.getAttribute("lng");

		if(dt.getAttribute("lat"))
			newDt.lat = dt.getAttribute("lat");
		else if(parent)
			newDt.lat = parent.getAttribute("lat");

		if(dt.getAttribute("flags"))
			newDt.flags = dt.getAttribute("flags");
		else if(parent)
			newDt.flags = parent.getAttribute("flags");

		if(dt.getAttribute("timestring"))
			newDt.timeString = dt.getAttribute("timestring");
		else if(parent)
			newDt.timeString = parent.getAttribute("timestring");

		if(siblings.length > 0){
			var l = siblings.length;
			var sib_array = new Array();
			for(var s = 0; s < l; s++){
				var sib = new Object();
				sib.id = siblings[s].getAttribute("ID");
				sib.datum = siblings[s].getAttribute("datum");
				sib.begin = siblings[s].getAttribute("begin");
				sib.end = siblings[s].getAttribute("end");
				sib.startdatum = siblings[s].getAttribute("startdatum");
				sib.enddatum = siblings[s].getAttribute("enddatum");
				sib_array.push(sib);
			}
			newDt.siblings = sib_array;
		}

		array.push(newDt);
	}

	//alert(array);
	if(typeof(callback) != "undefined")
		callback(array);*/
}

