		var goodDates;
		var cal1;

		var handleSelect = function (type,args,obj) {
			var dates = args[0];
			var date = dates[0];
			var year = date[0], month = date[1], day = date[2];

			var selDay = document.getElementById("selDay"); 
			var selMonth = document.getElementById("selMonth"); 
			var selYear = document.getElementById("selYear"); 

			selMonth.selectedIndex = month;
			selDay.selectedIndex = day;

			
			for( var i = 0; i < selYear.options.length; i++ ) {
				if( selYear.options[i].text == year ) {
					selYear.selectedIndex = i;
					break;
				}
			}
			cal1.hide();
		}
		
		var changePageHandler  = function (type,args,obj) {
			var pageDate = cal1.cfg.getProperty("pagedate");
			var month = pageDate.getMonth() + 1; 
			var year = pageDate.getFullYear();
			var clubName = Form.Element.getValue("forClubname");
			urlString = 
				"userAction=get&clubname="+clubName+"&formMonth=" +month + "&formYear=" + year;

			protoCall(urlString, month,year);
			return 	
		}

		var userChangePageHandler  = function (type,args,obj) {
			var pageDate = cal1.cfg.getProperty("pagedate");
			var month = pageDate.getMonth() + 1; 
			var year = pageDate.getFullYear();
			var clubName = Form.Element.getValue("clubName");
			urlString = 
				"userAction=getDays&clubname="+clubName+"&formMonth=" +month + "&formYear=" + year;

			renderUserCal(urlString, month,year);
			return 	
		}
		function saveDates(){
			var dates = cal1.getSelectedDates();
			var jsonDates = Object.toJSON(dates);
			var clubName = Form.Element.getValue("forClubname");

			var urlString = "userAction=save&clubname=" + clubName + "&dates=" + jsonDates;


			new Ajax.Request("/cgi-bin/getCalendar.pl", {
				onSuccess:function(resp) {
					alert("Saved");	
				},
				onFailure : function(resp) {
					alert("Failed");
				},
				parameters: urlString
			});
		}
		function renderUserCal(urlString,month,year) {
			new Ajax.Request("/cgi-bin/getCalendar.pl", {
                                        onSuccess: function(resp) {
                                                var json = resp.responseText.evalJSON();
                                                goodDates = json;
                                                popUserCalendar(month,year);
                                        },
                                        onFailure : function(resp) {
                                                alert("Oops, there's been an error.");
                                        },
                                        parameters : urlString
                                });
		}
		function protoCall(urlString,month,year) {
				var startDate = month + "/" + year;
				new Ajax.Request("/cgi-bin/getCalendar.pl", {
					onSuccess: function(resp) {
						var json = resp.responseText.evalJSON();
						goodDates = json;
						populateCalendar(startDate,month,year);
                                		cal1.render();
					},
					onFailure : function(resp) {
						alert("Oops, there's been an error.");
					},
					parameters : urlString 
				});
		}
		function popUserCalendar(month,year) {

                       //cal1 = new YAHOO.widget.Calendar("cal1","calContainer",{close:true});
			
                       //cal1.addRenderer("6/1/2007-6/30/2007", cal1.renderBodyCellRestricted);
                       for( var i = 1; i <= 31; i++ ) {
                       		goodDate = month+"/"+i+"/"+year;
                       	        if( !isGoodDate(i) ) {
                       		         cal1.addRenderer(goodDate, cal1.renderBodyCellRestricted);
                                }
                       }
                                // Subscribe an event to the selection of a date in the calendar
                       cal1.render();

                }
		function userCalInit() { 
			var startDate = "06/2007";
			cal1 = 
				new YAHOO.widget.Calendar("cal1", "calContainer",
							 {pageDate:startDate,close:true} ); 
			var month = cal1.today.getMonth() + 1; 
			var year = cal1.today.getFullYear(); 
			cal1.setMonth(month - 1);
			cal1.setYear(year);
			var clubname = Form.Element.getValue("clubName");

			var urlString = 
				"userAction=getDays&clubname="+clubname+"&formMonth="+month+"&formYear="+year;
	
			renderUserCal(urlString,month,year);
			cal1.hide();
			cal1.changePageEvent.subscribe(userChangePageHandler,cal1,true);
                        cal1.selectEvent.subscribe(handleSelect, cal1,true);
			
		}
		
                function init( urlString,month,year ) {
				var startDate = month + "/" + year;
                 		cal1 = new YAHOO.widget.Calendar("cal1",
					"calContainer",
					{pageDate:startDate,close:true,MULTI_SELECT:true});
                                protoCall(urlString,month,year);

                                // Subscribe an event to the selection of a date in the calendar
                                // cal1.selectEvent.subscribe(handleSelect, cal1,true);
				cal1.changePageEvent.subscribe(changePageHandler,cal1,true);
                                YAHOO.util.Event.addListener("dateButton", "click",cal1.show,cal1,true );
                        }
                        function populateCalendar(startDate,month,year) {
				for(var cnt=0; cnt < goodDates.length; cnt++ ) {
					cal1.select(goodDates[cnt]);
				}
			}
                        function isGoodDate(i) {
                                for( var cnt = 0; cnt < goodDates.length; cnt++ ) {
                                        if( goodDates[cnt] == i) {
                                               return true;
                                        }
                                }
                                return false;
                        }
			function showCal() {
				cal1.show();
				return false;
			}
