/***** NOT DIRECTLY EDIT. CHECK OUT FROM CVS *****/
var SHOW_END_DATE = new Date( getHanbaiEndDate().year, getHanbaiEndDate().month - 1, getHanbaiEndDate().day ) ;
var START_OK_DAY= 2 ;
var RakutenCalendarDP = {
dayOfWeek : {"0":"日","1":"月","2":"火","3":"水","4":"木","5":"金","6":"土"},
holiday : {},
setHoliday : function(arg){
for(var i = 0,len = arg.length;i<len;i++){
this.holiday[arg[i]] = arg[i];
}
},
styles : {
BASE_DIV_STYLE : {"position":"absolute","zIndex":"100000","backgroundColor":"#E3F2D7","border":"1px solid #5CA71F","padding":"0px","margin":"0px","paddingBottom":"0px"}
,HEADER_DIV_STYLE : {"position":"absolute","top":"0px","left":"0px","padding":"0px","fontSize":"10pt","height":"23px","backgroundColor":"#5CA71F","color":"#FFFFFF"}
,HEADER_TITLE_SPAN_STYLE : {"cssFloat":"left","styleFloat":"left","margin":"3px"}
,CLOSE_BTN_SPAN_STYLE : {"cssFloat":"right","styleFloat":"right","margin":"3px","padding":"0px"}
,CLOSE_BTN_A_STYLE : {"fontSize":"10pt","color":"#FFFFFF"}
,CONTROL_DIV_STYLE : {"fontSize":"10pt","height":"20px","margin":"0px","padding":"0px"}
,PREV_A_STYLE:{"cssFloat":"left","styleFloat":"left","margin":"3px","marginBottom":"0px","cursor":"hand","color":"#000000"}
,NEXT_A_STYLE:{"cssFloat":"right","styleFloat":"right","margin":"3px","marginBottom":"0px","cursor":"hand","color":"#000000"}
,CONTENTS_AREA_BASE_STYLE : {"position":"absolute","top":"23px","left":"0px","margin":"0px","padding":"0px"}
,CALENDAR_BASE_DIV : {"position":"absolute","margin":"0px","padding":"1px","width":"160px","height":"170px"}
,CALENDAR_LABLE : {"fontSize":"10pt","fontWeight":"bold","textAlign":"center","color":"#333333"}
,CALENDAR_TABLE : {"margin":"0px","zIndex":"100002","borderCollapse":"collapse","border":"1px solid #AAAAAA","padding":"1px 2px","textAlign":"center","fontSize":"10pt","width":"145px"}
,CALENDAR_TABLE_TH : {"fontSize":"10pt","fontWeight":"bold","border":"1px solid #AAAAAA","padding":"2px 3px","height":"15px","width":"13px"}
,CALENDAR_SUNDAY : {"color":"#BB2030","backgroundColor":"#E1E1E1"}
,CALENDAR_SATURDAY : {"color":"#284B77","backgroundColor":"#E1E1E1"}
,CALENDAR_WEEKDAY : {"color":"#333333","backgroundColor":"#E1E1E1"}
,CALENDAR_TXT_BEFORE_TODAY : {"color":"#999999"}
,CALENDAR_TXT_TODAY : {"fontWeight":"bold","color":"#B15314"}
,CALENDAR_TXT_USUAL : {"color":"#000000"}
,CALENDAR_TD_HOLIDAY :{"background":"#FFCECE"}
,CALENDAR_TD_SATURDAY : {"background":"#B0D8FF"}
,CALENDAR_TD_WEEKDAY :{"background":"#FFFFFF"}
,CALENDAR_TD_UNUSE : {"background":"#FFFFFF","color":"#FFFFFF"}
,CALENDAR_TD_BASE : {"border":"1px solid #AAAAAA","padding":"2px 3px","height":"16px","width":"13px"}
},
setStyles : function(styleObj){
for(p in styleObj){
var toObj = this.styles[p];
if(toObj){
var fromObj = styleObj[p];
for(p2 in fromObj){
toObj[p2] = fromObj[p2];
}
}
}
},
replaceStyles : function(styleObj){
this.styles = {};
this.styles = styleObj;
},
words : {
DEFAULT_HEADER_MESSAGE : '日付を選択してください。'
,PREV_LINK : '<< 前の月'
,NEXT_LINK : '次の月 >>'
,YEAR : '年'
,MONTH : '月'
,CLOSE_BTN : "[×閉じる]"
},
ids : {
BASE_ID : "rakutenCalendar"
,HEADER_AREA_ID : "rakutenCalendar_top"
,CONTENTS_AREA_ID : "rakutenCalendar_contents"
},
createCalendar : function(element,dispParam,date,func,funcParam,num,culumn,headerMessage,mode,selecteddate){
_selecteddate = new Date(selecteddate.getFullYear(),selecteddate.getMonth(),selecteddate.getDate());
this.closeCalendar();
if(!date) date = new Date();
date.setDate(1);
if(!num) num = 1;
if(!culumn) culumn = 1;
if(!mode) mode = 0;
if(!funcParam) funcParam = [];
this.parentElement = element;
var div = $$$H('div');
div.id = this.ids.BASE_ID;
var linenum = num / culumn;
if(num % culumn != 0) linenum ++;
this.styles.BASE_DIV_STYLE.height = (parseInt(this.styles.HEADER_DIV_STYLE.height) + 30 + (linenum * (parseInt(this.styles.CALENDAR_BASE_DIV.height) + 2))) + 'px';
this.styles.BASE_DIV_STYLE.width = ((parseInt(this.styles.CALENDAR_BASE_DIV.width) + 5) * culumn) + 'px';
$$$setStyles(div,this.styles.BASE_DIV_STYLE);
if(dispParam["top"]) div.style.top = dispParam["top"];
if(dispParam["left"]) div.style.left = dispParam["left"];
if(headerMessage == null) headerMessage = this.words.DEFAULT_HEADER_MESSAGE;
if(isIE() && !window.XMLHttpRequest){
var iframe = $$$E('iframe',{src:'javascript:false;',width:'100%',height:'100%'});
$$$setStyles(iframe,{'filter':'alpha(opacity=0)','zoom':'1'});
div.appendChild(iframe);
}
var header = $$$E('div',{"id":this.ids.HEADER_AREA_ID});
this.styles.HEADER_DIV_STYLE.width = this.styles.BASE_DIV_STYLE.width;
this.styles.CONTROL_DIV_STYLE.width = this.styles.BASE_DIV_STYLE.width;
$$$setStyles(header,this.styles.HEADER_DIV_STYLE);
var headerTitle = $$$E('span',null,headerMessage);
$$$setStyles(headerTitle,this.styles.HEADER_TITLE_SPAN_STYLE);
header.appendChild(headerTitle);
var closebtnSpan = $$$E('span');
$$$setStyles(closebtnSpan,this.styles.CLOSE_BTN_SPAN_STYLE);
var closebtn = $$$E('a',{"href":"javascript:RakutenCalendarDP.closeCalendar();"},this.words.CLOSE_BTN);
$$$setStyles(closebtn,this.styles.CLOSE_BTN_A_STYLE);
closebtnSpan.appendChild(closebtn);
header.appendChild(closebtnSpan);
div.appendChild(header);
var contents = $$$E('div',{"id":this.ids.CONTENTS_AREA_ID},null);
$$$setStyles(contents,this.styles.CONTENTS_AREA_BASE_STYLE);
this.createCalendarContentsArea(contents,dispParam,date,func,funcParam,num,culumn,headerMessage,mode,_selecteddate);
div.appendChild(contents);
element.appendChild(div);
},
createCalendarContentsArea : function(contents,dispParam,date,func,funcParam,num,culumn,headerMessage,mode,selecteddate){
_selecteddate = new Date(selecteddate.getFullYear(),selecteddate.getMonth(),selecteddate.getDate());
var cont = $$$E('div',null,null);
$$$setStyles(cont,this.styles.CONTROL_DIV_STYLE);
var prevDate = new Date(date.getTime());
prevDate.setMonth(prevDate.getMonth() - num);
var prev = $$$E('a',{"href":"javascript:void(0);","onclick":function(){RakutenCalendarDP.pagingCalendar(contents,dispParam,prevDate,func,funcParam,num,culumn,headerMessage,mode,_selecteddate)}},this.words.PREV_LINK);
$$$setStyles(prev,this.styles.PREV_A_STYLE);
if(mode == 1){
var startTime = new Date();
startTime.setTime(date.getTime());
startTime.setDate(1);
startTime = startTime.getTime();
var endTime = new Date();
endTime.setTime(date.getTime());
endTime.setMonth(endTime.getMonth() + num);
endTime = endTime.getTime() - (24 * 3600000);
var todayTime = new Date().getTime();
if(startTime <= todayTime && todayTime <= endTime) prev.style.display = 'none';
}
var nextDate = new Date(date.getTime());
nextDate.setMonth(nextDate.getMonth() + num);
var next = $$$E('a',{"href":"javascript:void(0);","onclick":function(){RakutenCalendarDP.pagingCalendar(contents,dispParam,nextDate,func,funcParam,num,culumn,headerMessage,mode,_selecteddate)}},this.words.NEXT_LINK);
$$$setStyles(next,this.styles.NEXT_A_STYLE);
cont.appendChild(prev);
cont.appendChild(next);
contents.appendChild(cont);
for(var i = 0;i<num;i++){
var year = date.getFullYear();
var month = date.getMonth();
var caldiv = this.createCalendarBody(year,month + 1,func,funcParam,mode,_selecteddate);
caldiv.style.top = (function(culumn,i,topmargin,height){
return ( parseInt(topmargin) + (parseInt(i / culumn) * parseInt(height))) + 'px' ;
})(culumn,i,parseInt(this.styles.HEADER_DIV_STYLE.height) + 5,this.styles.CALENDAR_BASE_DIV.height);
caldiv.style.left = (function(culumn,i,leftmargin,width){
return (parseInt(leftmargin) + ((i % culumn) * parseInt(width))) + 'px';
})(culumn,i,10,this.styles.CALENDAR_BASE_DIV.width);
contents.appendChild(caldiv);
date.setDate(1);
date.setMonth(month + 1);
}
return contents;
},
pagingCalendar : function(contents,dispParam,date,func,funcParam,num,culumn,headerMessage,mode,selecteddate){
_selecteddate = new Date(selecteddate.getFullYear(),selecteddate.getMonth(),selecteddate.getDate());
var div = $$$(this.ids.BASE_ID);
div.removeChild(contents);
contents = $$$E('div',{"id":this.ids.CONTENTS_AREA_ID},null);
$$$setStyles(contents,this.styles.CONTENTS_AREA_BASE_STYLE);
this.createCalendarContentsArea(contents,dispParam,date,func,funcParam,num,culumn,headerMessage,mode,_selecteddate);
div.appendChild(contents);
},
createFloatCalendar :function(element,dispParam,date,func,funcParam,num,culumn,headerMessage,mode,selecteddate){
_selecteddate = new Date(selecteddate.getFullYear(),selecteddate.getMonth(),selecteddate.getDate());
this.createCalendar(element,dispParam,date,func,funcParam,num,culumn,headerMessage,mode,_selecteddate);
var win = new RakutenWindow(this.ids.BASE_ID);
win.dragable(this.ids.HEADER_AREA_ID);
},
createRakutenTravelCalendar : function(element,dispParam,func,funcParam){
this.createCalendar(element,dispParam,null,func,funcParam,2,2,null,1);
},
createRakutenTravelFloatCalendar : function(element,dispParam,func,funcParam){
this.createRakutenTravelCalendar(element,dispParam,func,funcParam);
var win = new RakutenWindow(this.ids.BASE_ID);
win.dragable(this.ids.HEADER_AREA_ID);
},
closeCalendar : function(){
try{this.parentElement.removeChild($$$(this.ids.BASE_ID));}catch(e){};
},
createCalendarBody : function(year,month,func,funcParam,mode,selecteddate){
_selecteddate = new Date(selecteddate.getFullYear(),selecteddate.getMonth(),selecteddate.getDate());
var kyouDate = new Date();
var checkDate = _selecteddate;
var dispDate = new Date(year,month - 1,1);
var start = dispDate.getDay();
var month = dispDate.getMonth();
dispDate.setDate(dispDate.getDate() - start);
var div = $$$H('div');
$$$setStyles(div,this.styles.CALENDAR_BASE_DIV);
var lbl = $$$E('label',null,year + this.words.YEAR + (month + 1) + this.words.MONTH);
$$$setStyles(lbl,this.styles.CALENDAR_LABLE)
var tbl = $$$E('table');
$$$setStyles(tbl,this.styles.CALENDAR_TABLE)
if(navigator.userAgent.match(/Mac|PPC/)){
$$$setStyles(tbl,{"fontSize":"8pt"});
}
var tblbody = $$$H('tbody');
for(var i = 0;i<7;i++){
var tr  = $$$E('TR');
if(i == 0){
for(var j = 0;j<7;j++){
var th = $$$E('th',null,this.dayOfWeek[j])
if(j==0){
$$$setStyles(th,this.styles.CALENDAR_SUNDAY);
}else if(j==6){
$$$setStyles(th,this.styles.CALENDAR_SATURDAY);
}else{
$$$setStyles(th,this.styles.CALENDAR_WEEKDAY);
}
$$$setStyles(th,this.styles.CALENDAR_TABLE_TH);
tr.appendChild(th);
}
}else{
for(var j = 0;j<7;j++){
var txt;
var td = $$$E('TD',null);
if((start && start <= j) ||(!start && month == dispDate.getMonth())){
if(mode == 1 && dispDate.getTime() < (kyouDate.getTime() + START_OK_DAY * 86400000)){
txt = $$$E('label',null,dispDate.getDate()+'');
$$$setStyles(txt,this.styles.CALENDAR_TXT_BEFORE_TODAY);
}else if(mode == 1 && dispDate.getTime() > SHOW_END_DATE.getTime()) {
txt = $$$E('label',null,dispDate.getDate()+'');
$$$setStyles(txt,this.styles.CALENDAR_TXT_BEFORE_TODAY);
}else{
txt = $$$E('a',{"href":"javascript:void(0);","d":new Date(dispDate.getTime()),"onclick":function(){func.apply(this.d,funcParam);}},dispDate.getDate()+'');
if(mode == 1 && checkDate.getFullYear() == dispDate.getFullYear()&& checkDate.getMonth() == dispDate.getMonth()&& checkDate.getDate() == dispDate.getDate()){
$$$setStyles(txt,this.styles.CALENDAR_TXT_TODAY);
}else{
$$$setStyles(txt,this.styles.CALENDAR_TXT_USUAL);
}
}
start = false;
var dateString = dispDate.getFullYear() + $$$padZeroLeft(dispDate.getMonth() + 1,2) + $$$padZeroLeft(dispDate.getDate(),2);
if(dispDate.getDay() == 0 || dateString in this.holiday){
$$$setStyles(td,this.styles.CALENDAR_TD_HOLIDAY);
}else if(dispDate.getDay() == 6){
$$$setStyles(td,this.styles.CALENDAR_TD_SATURDAY);
}else {
$$$setStyles(td,this.styles.CALENDAR_TD_WEEKDAY);
}
}else{
txt = document.createTextNode(dispDate.getDate()+'');
$$$setStyles(td,this.styles.CALENDAR_TD_UNUSE);
}
td.appendChild(txt);
$$$setStyles(td,this.styles.CALENDAR_TD_BASE);
tr.appendChild(td);
var d = dispDate.getDate() - 0 + 1;
dispDate.setDate(d);
}
}
tblbody.appendChild(tr);
}
tbl.appendChild(tblbody);
div.appendChild(lbl);
div.appendChild(tbl)
return div;
}
}


