var rtCalendarSmart = {};
(function(){
	var OVERLAY_WINDOW_ID = "calendarOverlayWindow"
	  , cacheOverlayWindow = "";
	
	//初期設定
	rtCalendarSmart = {
		//祝日を設定
		init : function(){
			RakutenCalendar.setHoliday(calendarHoliday);

			//デフォルトスタイルを初期化
			if(!!RakutenCalendar.styles){
				var s = RakutenCalendar.styles;
				for(var i in s){
					s[i] = {};
				};
			};
			//文言変更
			if(!!this.words){
				var wd = this.words;
				for(var i in wd){
					RakutenCalendar.words[i] = wd[i];
				}
			}
		},
		//半透明ウィンドウを作成する
		createOverlayWindow : function(){
			var ow = document.getElementById(OVERLAY_WINDOW_ID),
			    that = this;
			if(!ow){
				var d = document.createElement("div")
				  , b = document.body
				  , h = b.clientHeight;
				d.id = OVERLAY_WINDOW_ID;
				d.style.height = h + "px";  
				cacheOverlayWindow = d;
				b.appendChild(cacheOverlayWindow);
			} else {
				ow.style.display = "block";
			}
			//半透明ウィンドウがクリックされたら半透明ウィンドウとカレンダーを閉じる
			$("#" + OVERLAY_WINDOW_ID).bind("click",function(){
				that.closeCalendar();
			});
		},
		//半透明ウィンドウを隠す
		hideOverlayWindow : function(){
			var d = document.getElementById(OVERLAY_WINDOW_ID);
			if(d) d.style.display = "none";
		},
		//カレンダーを閉じる
		closeCalendar : function(){
			RakutenCalendar.closeCalendar();
			this.hideOverlayWindow();
		},
		//カレンダーを作る＋半透明ウィンドウ重ねる＋削除ボタンに半透明ウィンドウ削除を追加
		createCalendar : function(onclickFunc,_date){
			var yOffset = window.pageYOffset
			  , yWindowOffset = $(window).height()
			  , y = Math.round(yOffset + yWindowOffset / 25) // 縦画面時、横画面時それぞれで上部にスペースをやや空けるため
			  , headId  = RakutenCalendar.ids["HEADER_AREA_ID"]
			  , selector = "#" + headId + " a.cal_closeBtn";
			RakutenCalendar.createCalendar(document.body,{'top': y + 'px','left':'0px'},_date,onclickFunc,null,1,1,null,1);
			$(selector).bind("click",this.hideOverlayWindow);
			this.createOverlayWindow();
		},
		createStringDate : function(date){
			var showDate = date instanceof Date ? date : new Date()
			, y = showDate.getFullYear()
			, m = showDate.getMonth() + 1
			, d = showDate.getDate()
			, day = y + '/' + m + '/' + d;
			return day;
		}
	}
})();

