			var calendarstart;
			var calendarend;
			
			// blocked days for each room
			var blockeddays = [];
			
			blockeddays[1] = [];
			blockeddays[2] = [];
			blockeddays[3] = [];
			
       		// set onclick handler for select element
       		document.forms.bookingform.room.onchange = callAjax;
       		
       		// extend DOM array object with inArray functionality
       		Array.prototype.inArray = function (value) {
            	var i;
            	for (i=0; i < this.length; i++) {
            		if (this[i].equals(value)) {
            			return true;
            		}
            	}
            	return false;
            };
            
            Date.prototype.equals = function(date) {
				return ((this.getFullYear() == date.getFullYear()) &&
        		(this.getMonth() == date.getMonth()) && // zero based!
        		(this.getDate() == date.getDate()));
        	};
            
        	function dateStatusHandler(date, year, month ,day) {
        		var room = document.getElementById('room').value;
        		 
      			return blockeddays[room].inArray(date);
         	}
        	
            function catcalc1(calendar, date) {
                var date = calendar.date;
                
                var startfield, endfield;
				var mindate = 1;
                
                if (document.getElementById('room').value == 3) // studio
                	mindate = 4;
                
                if (calendar.dateClicked) {
                	startfield = document.getElementById('startdate');
                	endfield = document.getElementById('enddate');
                    
                    if (calendar == calendarstart) {
                		startfield.value = date.print("%Y-%m-%d");                    
                    	//date.setDate(date.getDate()+mindate);
                    	//endfield.value = date.print("%Y-%m-%d");
                    } else {
                		endfield.value = date.print("%Y-%m-%d");
                	}
                }
            }
            
			function isUnsupportedIE(){
				if (window.XMLHttpRequest) {
					// IE 7, mozilla, safari, opera 9
					return false;
				} else {
					// IE6, older browsers
					return true;
				}			
			}
			
            function callAjax() {
				if (isUnsupportedIE()) return;
			
            	var room = document.getElementById('room').value;
            	var req = new Ajax.Request('/bedandbreakfast/blockeddays/room/' + room,
                    { 	onComplete: handleComplete, 
                    	onLoading: handleLoading
					 });
            }
            
            function handleLoading(transport) {
             	$('ajaxinfo').innerHTML= 'Loading data...';
            }

            function handleComplete(transport)
            {
       			var room = document.getElementById('room').value;
       			
       			blockeddays[room] = parseResponse(transport.responseText);
       			$('ajaxinfo').innerHTML= '&nbsp;';
	            //$('ajaxinfo').innerHTML = (transport.responseText);
       			
       			calendarstart.setDate(new Date('2000-01-01')); //update blocked days
       			calendarstart.setDate(new Date());
       			calendarend.setDate(new Date('2000-01-01'));
       			calendarend.setDate(new Date());
           }
            
            function dateFilter(v) {
            	return v.match(/\d\d\d\d-\d\d-\d\d/g);

			}
            
            function parseResponse(responseText){
               	var json = dateFilter(responseText);
               	var resp = [];
               	for (var i = 0; i < json.length; i++){
               		resp[i] = new Date();
               		var parts = json[i].split('-');
               		resp[i].setFullYear(parts[0]);
               		resp[i].setMonth(parts[1] - 1); // zero based in JS!
               		resp[i].setDate(parts[2]);
               	} 
            	return resp;
            }
            
            function handleException(transport){
            	$('ajaxinfo').innerHTML= 'Error retrieving data';
            }
            
            calendarstart = new Calendar(1, null, catcalc1, null);
            calendarstart.create(document.getElementById('calendarcontainer1'));
            calendarstart.getDateStatus = dateStatusHandler;
            calendarstart.setDateFormat("%Y-%m-%d");

            calendarend = new Calendar(1, null, catcalc1, null);
            calendarend.create(document.getElementById('calendarcontainer2'));
            calendarend.getDateStatus = dateStatusHandler;
            calendarend.setDateFormat("%Y-%m-%d");
            
            window.onload = function () { callAjax(); }        
