function calendar(objName,name,date,width,height){
this.objName=objName;
this.calendarName=name!=null?name.toString():'calendar';
this.width=width!=null?width:'100%';
this.height=height!=null?height:'100%';
this.dayName=['日','一','二','三','四','五','六'];
this.nowDate=new Date();
this.dateTime=date!=null?date:new Date();
this.str='';
this.dateTable='';
this.days=31;
this.pastDays=0;
this.generated=false;
this.channel='news';
this.generate=generate;
this.getTable=getTable;
this.focusDate=focusDate;
this.attachLink=attachLink;
this.refresh=refresh;
this.previewMonth=previewMonth;
this.nextMonth=nextMonth;
this.setDate=setDate;
this.afterRefresh=function(){};
function generate(date){
//蓝色边框
this.str='
| '
+this.dayName.join(' | ')+' | ';
this.dateTime=date!=null?new Date(date):this.dateTime;
this.days=new Date(this.dateTime.getYear(),this.dateTime.getMonth()+1,0).getDate();
this.pastDays=new Date(this.dateTime.getFullYear()+'/'+(this.dateTime.getMonth()+1)+'/1').getDay();
this.str+='| ';
//区取中间的table
this.getTable();
this.str+=this.dateTable+' |
|
';
this.generated=true;
return this.str;
}
function getTable(){
//
this.dateTable=''
+new Array(this.pastDays+1).join(' | ');
for(var i=1;i<=this.days;i++){
var monthValue = (this.dateTime.getMonth()+1);
if(monthValue <10) monthValue="0"+monthValue;
var dayValue = i;
if(i<10) dayValue ="0"+dayValue;
var openurl = ''+''+i+' | ';
var ropenurl = ''+''+i+' | ';
var closeurl=''+i+' | ';
if(this.dateTime.getFullYear() > this.nowDate.getFullYear())
{
this.dateTable+=closeurl;
}
else
if(this.dateTime.getFullYear()== this.nowDate.getFullYear())
{
if(this.dateTime.getMonth() > this.nowDate.getMonth())
{
this.dateTable+=closeurl;
}
else
if(this.dateTime.getMonth() == this.nowDate.getMonth())
{
if(i<=this.nowDate.getDate())
{
if(i == this.nowDate.getDate())
{
this.dateTable+=ropenurl;
}
else
this.dateTable+=openurl;
}
else
{
this.dateTable+=closeurl;
}
}
else
{
this.dateTable+=openurl;
}
}
else
this.dateTable+=openurl;
if((i+this.pastDays)%7==0)this.dateTable+='
';
}
for(var i=1;i<=37-this.days-this.pastDays;i++){
this.dateTable+=' | ';
if((i+this.pastDays+this.days)%7==0)this.dateTable+='
';
}
if((this.dateTime.getFullYear()<=2004) && (this.dateTime.getMonth()<9))
{
this.dateTable+=' | '
+''+this.dateTime.getFullYear().toString()+' | '
+''+(this.dateTime.getMonth()+1).toString()+' | '
+' | '
+'
';
}
else
{
this.dateTable+=' | '
+''+this.dateTime.getFullYear().toString()+' | '
+''+(this.dateTime.getMonth()+1).toString()+' | '
+' | '
+'';
}
return this.dateTable;
}
function focusDate(date){
try{
eval(this.calendarName+(date!=null?date|0:new Date().getDate())+'.className="focus"');
return(true);
} catch(e) { return(false); }
}
function attachLink(date,link,target,title){
try{
eval(this.calendarName+(date!=null?date|0:new Date().getDate())
+'.innerHTML="'+date.toString()+'"');
return(true);
} catch(e) { alert(e.message);return(false); }
}
function refresh(){
try{
eval(this.calendarName+'Td.filters[0].apply()');
eval(this.calendarName+'Td.innerHTML=\''+this.getTable()+'\'');
eval(this.calendarName+'Td.filters[0].play()');
this.afterRefresh();
return(true);
} catch(e) { return(false); }
}
function previewMonth(){
try{
this.dateTime.setMonth(this.dateTime.getMonth()-1)
this.generate();
this.refresh();
return(true);
} catch(e) { return(false); }
}
function nextMonth(){
try{
this.dateTime.setMonth(this.dateTime.getMonth()+1)
this.generate();
this.refresh();
return(true);
} catch(e) { return(false); }
}
function setDate(dateStr){
try{
this.dateTime=new Date(dateStr);
return(true);
} catch(e) { return(false); }
}
}