YAHOO.namespace ("bmh.Calendar");

YAHOO.bmh.Calendar = function() {
	function build(inputBox, calContainer){
		

		var oCalendarMenu;
		
		var onButtonClick = function () {
			var navConfig = {
				strings : {
					month:	"Monat",		//	"Choose Month",
					year:	"Jahr",		//	"Enter Year",
					submit: "OK",
					cancel: "Cancel",
					invalidYear: "Please enter a valid year"
 				},
				monthFormat: YAHOO.widget.Calendar.SHORT,
				initialFocus: "year"
  			};
		
			//var oCalendar = new YAHOO.widget.Calendar("cal1",oCalendarMenu.body.id,{navigator:navConfig});
			var oCalendar = new YAHOO.widget.Calendar(oCalendarMenu.body.id,{navigator:navConfig});
			
			var setdate = YAHOO.util.Dom.get( inputBox ).value;
			if(setdate.search(".") >= 0){
				setdate = setdate.split(".");
				setdate = setdate[1]+" "+setdate[0]+", "+setdate[2];
			
				date = new Date(setdate);
				var day = date.getDate();
				var month = date.getMonth() + 1;
				var year = date.getFullYear();
				//alert("date: "+date+"\n\nday: "+day+"\nmonth: "+month+"\nyear: "+year);
				if( ! isNaN(day) && ! isNaN(month) && ! isNaN(year) ){
					date = month + "/" + day + "/" + year;
					oCalendar.select(date);
					oCalendar.cfg.setProperty("pagedate", month + "/" + year);
					// oCalendar.render();
				}
			}
			oCalendar.render();


				oCalendar.selectEvent.subscribe(function (p_sType, p_aArgs) {
					/*var msg="";	var obj = p_aArgs[0][0];
					for(var e in obj){
						msg+=e+": "+obj[e]+"\n";
					}
					alert(msg);*/
					var aDate;
					if (p_aArgs) {
						aDate = p_aArgs[0][0];
						var dStr = aDate[2];
						if(dStr < 10){ dStr = "0"+""+dStr;}	// force double digits
						var mStr = aDate[1];
						if(mStr < 10){ mStr = "0"+""+mStr;}	// force double digits
						var yStr = aDate[0];
						YAHOO.util.Dom.get( inputBox ).value = dStr + "." + mStr + "." + yStr;
					}
					oCalendarMenu.hide();
				});

			// Unsubscribe from the "click" event so that this code is 
			// only executed once
			this.unsubscribe("click", onButtonClick);
		};
		
		/* MAIN */
		oCalendarMenu = new YAHOO.widget.Overlay("calendarmenu", { visible: false });
		var oButton = new YAHOO.widget.Button({ 
												type: "menu", 
												id: "calendarpicker", 
												label: "Choose A Date", 
												menu: oCalendarMenu, 
												container: calContainer });
		oButton.on("appendTo", function () {
			// Create an empty body element for the Overlay instance in order 
			// to reserve space to render the Calendar instance into.
			oCalendarMenu.setBody("&#32;");
			oCalendarMenu.body.id = "calendarcontainer"+inputBox;
		});
		oButton.on("click", onButtonClick);
		
	}

	return {
		build:build
	}
}();
