	function cal1SelectHandler(type,args,obj) {		
	        var selected = args[0]; 
	        var selDate = selected[0];
			var year = selDate[0], month = selDate[1], day = selDate[2];
	 		obj.hide();
	 		document.getElementById('start_date').value = day+'/'+month+'/'+year;
	 		
	 		var endmonth = month + 3;
	 		var endyear = year;
	 		
	 		if (endmonth > 12){
	 			endmonth = endmonth - 12;
	 			endyear++;
	 		}
	 			 		
	 		document.getElementById('end_date').value = day+'/'+endmonth+'/'+endyear;
	};

	function cal2SelectHandlerHandler(type,args,obj) { 
	        var selected = args[0]; 
	        var selDate = selected[0]; 
	        var year = selDate[0], month = selDate[1], day = selDate[2];
	 		obj.hide();
	 		document.getElementById('end_date').value = day+'/'+month+'/'+year; 
	};
		
	YAHOO.namespace("royal.calendar");

	YAHOO.royal.calendar.init = function() {
		// initialise calendar the first time
		var d = new Date();
		
		// using american date format here.. as the date are not yet localize till later 
		var today = (d.getMonth()+1)+"/"+d.getDate()+"/"+d.getFullYear();

		YAHOO.royal.calendar.cal1 = new YAHOO.widget.Calendar("cal1","cal1Container", {pagedate:today,mindate: ""+today+"",start_weekday:"1"});		
		YAHOO.royal.calendar.cal1.cfg.setProperty("DATE_FIELD_DELIMITER", "/");  
		YAHOO.royal.calendar.cal1.cfg.setProperty("MDY_DAY_POSITION", 1); 
		YAHOO.royal.calendar.cal1.cfg.setProperty("MDY_MONTH_POSITION", 2); 
		YAHOO.royal.calendar.cal1.cfg.setProperty("MDY_YEAR_POSITION", 3); 
	    YAHOO.royal.calendar.cal1.selectEvent.subscribe(cal1SelectHandler, YAHOO.royal.calendar.cal1, true);  
		YAHOO.royal.calendar.cal1.render();
		document.getElementById("cal1Container").style.display = 'none'; // hide container by default
		
		YAHOO.royal.calendar.cal2 = new YAHOO.widget.Calendar("cal2","cal2Container", {pagedate:today,mindate:""+today+"",start_weekday:"1"});
		YAHOO.royal.calendar.cal2.cfg.setProperty("DATE_FIELD_DELIMITER", "/");  
		YAHOO.royal.calendar.cal2.cfg.setProperty("MDY_DAY_POSITION", 1); 
		YAHOO.royal.calendar.cal2.cfg.setProperty("MDY_MONTH_POSITION", 2); 
		YAHOO.royal.calendar.cal2.cfg.setProperty("MDY_YEAR_POSITION", 3); 
	    YAHOO.royal.calendar.cal2.selectEvent.subscribe(cal2SelectHandlerHandler, YAHOO.royal.calendar.cal2, true);  
		YAHOO.royal.calendar.cal2.render();
		document.getElementById("cal2Container").style.display = 'none'; // hide container by default
	}
	
	function show_start_cal()
	{
    	var d = new Date();	
 		var txtDate1 = (d.getMonth()+1)+"/"+d.getDate()+"/"+d.getFullYear();
    	
	    if (txtDate1.value != "") { 
	    	
	        YAHOO.royal.calendar.cal1.select(txtDate1.value); 
	        var selectedDates = YAHOO.royal.calendar.cal1.getSelectedDates(); 
	        if (selectedDates.length > 0) {
	            var firstDate = selectedDates[0]; 
	            YAHOO.royal.calendar.cal1.cfg.setProperty("pagedate", (firstDate.getMonth()+1) + "/" + firstDate.getFullYear()); 
	            YAHOO.royal.calendar.cal1.render(); 
	        }else{
	        	  YAHOO.royal.calendar.cal1.cfg.setProperty("pagedate", (d.getMonth()+1) + "/" + d.getFullYear()); 
		            YAHOO.royal.calendar.cal1.render(); 
	        }	
	    } 	
		document.getElementById("cal1Container").style.display = '';
		document.getElementById("cal2Container").style.display = 'none';
	}
	
	function show_end_cal(){
    	var txtDate1 = document.getElementById("end_date"); 
	    if (txtDate1.value != "") { 
	        YAHOO.royal.calendar.cal2.select(txtDate1.value); 
	        var selectedDates = YAHOO.royal.calendar.cal2.getSelectedDates(); 
	        if (selectedDates.length > 0) { 
	            var firstDate = selectedDates[0]; 
	            YAHOO.royal.calendar.cal2.cfg.setProperty("pagedate", (firstDate.getMonth()+1) + "/" + firstDate.getFullYear()); 
	            YAHOO.royal.calendar.cal2.render(); 
	        }
	    }	
		document.getElementById("cal2Container").style.display = '';
		document.getElementById("cal1Container").style.display = 'none';
	}
	
	YAHOO.util.Event.onDOMReady(YAHOO.royal.calendar.init);
	YAHOO.util.Event.addListener(["start_date"], "click", show_start_cal);
	YAHOO.util.Event.addListener(["end_date"], "click", show_end_cal);