function executeResponse(json) {
	json.each(
		function(command) {
			switch (command.type) {
				case 'SCRIPT' :
					eval(command.script);
					break;
				case 'HTML' :
					var aim = $(command.id);
					if (aim) {
						switch (command.mode) {
							case 'PREPEND' :
								aim.innerHTML = command.html + aim.innerHTML;
								break;
							case 'REPLACE' :
								aim.innerHTML = command.html;
								break;
							case 'APPEND' :
								aim.innerHTML +=  command.html;
								break;
							default :
								break;
						}
					}
					break;
				default :
					break;
			}
		}
	);
}

function setup(cal){
	cal.cfg.setProperty("DATE_FIELD_DELIMITER", ".");

	cal.cfg.setProperty("MDY_DAY_POSITION", 1);
	cal.cfg.setProperty("MDY_MONTH_POSITION", 2);
	cal.cfg.setProperty("MDY_YEAR_POSITION", 3);
	
	cal.cfg.setProperty("MD_DAY_POSITION", 1);
	cal.cfg.setProperty("MD_MONTH_POSITION", 2);
	
	// Date labels for German locale
	cal.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Feb", "M\u00E4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]);
	cal.cfg.setProperty("MONTHS_LONG",    ["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]);
	cal.cfg.setProperty("WEEKDAYS_1CHAR", ["S", "M", "D", "M", "D", "F", "S"]);
	cal.cfg.setProperty("WEEKDAYS_SHORT", ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]);
	cal.cfg.setProperty("WEEKDAYS_MEDIUM",["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"]);
	cal.cfg.setProperty("WEEKDAYS_LONG",  ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]);
}


function addStartDate(type,args,obj)
{
	var datedata = args[0][0];
	var year = datedata[0];
  	var month = datedata[1];
  	var day = datedata[2];
	  	  		
	$("startField").value = day+'.'+month+'.'+year;
  	obj.hide();
	updateCount();
}
		
function addEndDate(type,args,obj)
{
	var datedata = args[0][0];
  	var year = datedata[0];
  	var month = datedata[1];
  	var day = datedata[2];
  
  var newDate = day+'.'+month+'.'+year;
	$("endField").value = newDate;
  	obj.hide();
	if (isDatePossiblyValid(newDate)) {pdateCount()}
}


function isDatePossiblyValid(Datum){
	var Ausdruck = /[3 0-1]|[0-2 0-9].[1 0-2]|[0-9].[19|20][0-9][0-9]/;
  if (Ausdruck.test(Datum)) {alert('valid');}
  return Ausdruck.test(Datum);
}


init = function() 
{
	//initialisiere Anfangsdatum kalender
	calStart = new YAHOO.widget.Calendar("calStart","calStartDiv");
	setup(calStart);
	calStart.render();
	calStart.hide();
	updateCount();
			
	YAHOO.util.Event.addListener("calStartButton", "click", calStart.show, calStart, true);
	calStart.selectEvent.subscribe(addStartDate, calStart);

			
	//initialisiere enddatum kalender
	calEnd = new YAHOO.widget.Calendar("calEnd","calEndDiv");
	setup(calEnd);
	calEnd.render();
	calEnd.hide();
			
	YAHOO.util.Event.addListener("calEndButton", "click", calEnd.show, calEnd, true);
	calEnd.selectEvent.subscribe(addEndDate, calEnd);
}

YAHOO.util.Event.onDOMReady(init);