499 lines
18 KiB
JavaScript
499 lines
18 KiB
JavaScript
|
|
<!--
|
|
var cal;
|
|
var isFocus=false;
|
|
var pickMode={
|
|
"second":1,
|
|
"minute":2,
|
|
"hour":3,
|
|
"day":4,
|
|
"month":5,
|
|
"year":6};
|
|
var topY=0,leftX=0;
|
|
function SelectDateById(id,strFormat,x,y)
|
|
{
|
|
var obj=document.getElementById(id);
|
|
if(obj==null){return false;}
|
|
obj.focus();
|
|
if(obj.onclick!=null){obj.onclick();}
|
|
else if(obj.click!=null){obj.click();}
|
|
else{SelectDate(obj,strFormat,x,y)}
|
|
}
|
|
function SelectDate(obj,strFormat,lang,x,y)
|
|
{
|
|
leftX=(x==null)?leftX:x;
|
|
topY=(y==null)?topY:y;
|
|
if(document.getElementById("ContainerPanel")==null){InitContainerPanel();}
|
|
var date=new Date();
|
|
var by=date.getFullYear()-50;
|
|
var ey=date.getFullYear()+50;
|
|
cal=(cal==null)?new Calendar(by,ey,lang):cal;
|
|
cal.DateMode=pickMode["second"];
|
|
if(strFormat.indexOf('s')<0){cal.DateMode=pickMode["minute"];}
|
|
if(strFormat.indexOf('m')<0){cal.DateMode=pickMode["hour"];}
|
|
if(strFormat.indexOf('h')<0){cal.DateMode=pickMode["day"];}
|
|
if(strFormat.indexOf('d')<0){cal.DateMode=pickMode["month"];}
|
|
if(strFormat.indexOf('M')<0){cal.DateMode=pickMode["year"];}
|
|
if(strFormat.indexOf('y')<0){cal.DateMode=pickMode["second"];}
|
|
cal.dateFormatStyleOld=cal.dateFormatStyle;
|
|
cal.dateFormatStyle=strFormat;
|
|
cal.show(obj);
|
|
}
|
|
String.prototype.toDate=function(style){
|
|
var y=this.substring(style.indexOf('y'),style.lastIndexOf('y')+1);
|
|
var M=this.substring(style.indexOf('M'),style.lastIndexOf('M')+1);
|
|
var d=this.substring(style.indexOf('d'),style.lastIndexOf('d')+1);
|
|
var h=this.substring(style.indexOf('h'),style.lastIndexOf('h')+1);
|
|
var m=this.substring(style.indexOf('m'),style.lastIndexOf('m')+1);
|
|
var s=this.substring(style.indexOf('s'),style.lastIndexOf('s')+1);
|
|
if(s==null||s==""||isNaN(s)){s=new Date().getSeconds();}
|
|
if(m==null||m==""||isNaN(m)){m=new Date().getMinutes();}
|
|
if(h==null||h==""||isNaN(h)){h=new Date().getHours();}
|
|
if(d==null||d==""||isNaN(d)){d=new Date().getDate();}
|
|
if(M==null||M==""||isNaN(M)){M=new Date().getMonth()+1;}
|
|
if(y==null||y==""||isNaN(y)){y=new Date().getFullYear();}
|
|
var dt;
|
|
eval("dt = new Date('"+y+"', '"+(M-1)+"','"+d+"','"+h+"','"+m+"','"+s+"')");
|
|
return dt;
|
|
}
|
|
Date.prototype.format=function(style){
|
|
var o={
|
|
"M+":this.getMonth()+1,
|
|
"d+":this.getDate(),
|
|
"h+":this.getHours(),
|
|
"m+":this.getMinutes(),
|
|
"s+":this.getSeconds(),
|
|
"w+":"天一二三四五六".charAt(this.getDay()),
|
|
"q+":Math.floor((this.getMonth()+3)/3),
|
|
"S":this.getMilliseconds()
|
|
}
|
|
if(/(y+)/.test(style)){
|
|
style=style.replace(RegExp.$1,
|
|
(this.getFullYear()+"").substr(4-RegExp.$1.length));
|
|
}
|
|
for(var k in o){
|
|
if(new RegExp("("+k+")").test(style)){
|
|
style=style.replace(RegExp.$1,
|
|
RegExp.$1.length==1?o[k]:
|
|
("00"+o[k]).substr((""+o[k]).length));
|
|
}
|
|
}
|
|
return style;
|
|
}
|
|
Calendar.prototype.ReturnDate=function(dt){
|
|
if(this.dateControl!=null){this.dateControl.value=dt;}
|
|
calendar.hide();
|
|
if(this.dateControl.onchange==null){return;}
|
|
var ev=this.dateControl.onchange.toString();
|
|
ev=ev.substring(
|
|
((ev.indexOf("ValidatorOnChange();")>0)?ev.indexOf("ValidatorOnChange();")+20:ev.indexOf("{")+1)
|
|
,ev.lastIndexOf("}"));
|
|
var fun=new Function(ev);
|
|
this.dateControl.changeEvent=fun;
|
|
this.dateControl.changeEvent();
|
|
}
|
|
function Calendar(beginYear,endYear,lang,dateFormatStyle){
|
|
this.beginYear=1950;
|
|
this.endYear=2050;
|
|
this.lang=0;
|
|
this.dateFormatStyle="yyyy-MM-dd hh:mm:ss";
|
|
if(beginYear!=null&&endYear!=null){
|
|
this.beginYear=beginYear;
|
|
this.endYear=endYear;
|
|
}
|
|
if(lang!=null){
|
|
this.lang=lang
|
|
}
|
|
if(dateFormatStyle!=null){
|
|
this.dateFormatStyle=dateFormatStyle
|
|
}
|
|
this.dateControl=null;
|
|
this.panel=this.getElementById("calendarPanel");
|
|
this.container=this.getElementById("ContainerPanel");
|
|
this.form=null;
|
|
this.date=new Date();
|
|
this.year=this.date.getFullYear();
|
|
this.month=this.date.getMonth();
|
|
this.day=this.date.getDate();
|
|
this.hour=this.date.getHours();
|
|
this.minute=this.date.getMinutes();
|
|
this.second=this.date.getSeconds();
|
|
this.colors={
|
|
"cur_word":"#FFFFFF",
|
|
"cur_bg":"#00FF00",
|
|
"sel_bg":"#FFCCCC",
|
|
"sun_word":"#FF0000",
|
|
"sat_word":"#0000FF",
|
|
"td_word_light":"#333333",
|
|
"td_word_dark":"#CCCCCC",
|
|
"td_bg_out":"#EFEFEF",
|
|
"td_bg_over":"#FFCC00",
|
|
"tr_word":"#FFFFFF",
|
|
"tr_bg":"#666666",
|
|
"input_border":"#CCCCCC",
|
|
"input_bg":"#EFEFEF"
|
|
}
|
|
}
|
|
Calendar.language={
|
|
"year":[[""],[""]],
|
|
"months":[["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],
|
|
["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"]
|
|
],
|
|
"weeks":[["日","一","二","三","四","五","六"],
|
|
["SUN","MON","TUR","WED","THU","FRI","SAT"]
|
|
],
|
|
"hour":[["时"],["H"]],
|
|
"minute":[["分"],["M"]],
|
|
"second":[["秒"],["S"]],
|
|
"clear":[["清空"],["CLS"]],
|
|
"today":[["今天"],["TODAY"]],
|
|
"pickTxt":[["确定"],["OK"]],
|
|
"close":[["关闭"],["CLOSE"]]
|
|
}
|
|
Calendar.prototype.draw=function(){
|
|
calendar=this;
|
|
var mvAry=[];
|
|
mvAry[mvAry.length]=' <div name="calendarForm" style="margin: 0px;">';
|
|
mvAry[mvAry.length]=' <table width="100%" border="0" cellpadding="0" cellspacing="1" style="font-size:12px;">';
|
|
mvAry[mvAry.length]=' <tr>';
|
|
mvAry[mvAry.length]=' <th align="left" width="1%"><input style="border: 1px solid '+calendar.colors["input_border"]+';background-color:'+calendar.colors["input_bg"]+';width:16px;height:20px;';
|
|
if(calendar.DateMode>pickMode["month"]){mvAry[mvAry.length]='display:none;';}
|
|
mvAry[mvAry.length]='" name="prevMonth" type="button" id="prevMonth" value="<" /></th>';
|
|
mvAry[mvAry.length]=' <th align="center" width="98%" nowrap="nowrap"><select name="calendarYear" id="calendarYear" style="font-size:12px;"></select><select name="calendarMonth" id="calendarMonth" style="font-size:12px;';
|
|
if(calendar.DateMode>pickMode["month"]){mvAry[mvAry.length]='display:none;';}
|
|
mvAry[mvAry.length]='"></select></th>';
|
|
mvAry[mvAry.length]=' <th align="right" width="1%"><input style="border: 1px solid '+calendar.colors["input_border"]+';background-color:'+calendar.colors["input_bg"]+';width:16px;height:20px;';
|
|
if(calendar.DateMode>pickMode["month"]){mvAry[mvAry.length]='display:none;';}
|
|
mvAry[mvAry.length]='" name="nextMonth" type="button" id="nextMonth" value=">" /></th>';
|
|
mvAry[mvAry.length]=' </tr>';
|
|
mvAry[mvAry.length]=' </table>';
|
|
mvAry[mvAry.length]=' <table id="calendarTable" width="100%" style="border:0px solid #CCCCCC;background-color:#FFFFFF;font-size:12px;';
|
|
if(calendar.DateMode>=pickMode["month"]){mvAry[mvAry.length]='display:none;';}
|
|
mvAry[mvAry.length]='" border="0" cellpadding="3" cellspacing="1">';
|
|
mvAry[mvAry.length]=' <tr>';
|
|
for(var i=0;i<7;i++){
|
|
mvAry[mvAry.length]=' <th style="font-weight:normal;background-color:'+calendar.colors["tr_bg"]+';color:'+calendar.colors["tr_word"]+';">'+Calendar.language["weeks"][this.lang][i]+'</th>';
|
|
}
|
|
mvAry[mvAry.length]=' </tr>';
|
|
for(var i=0;i<6;i++){
|
|
mvAry[mvAry.length]=' <tr align="center">';
|
|
for(var j=0;j<7;j++){
|
|
if(j==0){
|
|
mvAry[mvAry.length]=' <td style="cursor:default;color:'+calendar.colors["sun_word"]+';"></td>';
|
|
}else if(j==6){
|
|
mvAry[mvAry.length]=' <td style="cursor:default;color:'+calendar.colors["sat_word"]+';"></td>';
|
|
}else{
|
|
mvAry[mvAry.length]=' <td style="cursor:default;"></td>';
|
|
}
|
|
}
|
|
mvAry[mvAry.length]=' </tr>';
|
|
}
|
|
mvAry[mvAry.length]=' <tr style="';
|
|
if(calendar.DateMode>=pickMode["day"]){mvAry[mvAry.length]='display:none;';}
|
|
mvAry[mvAry.length]='"><td align="center" colspan="7">';
|
|
mvAry[mvAry.length]=' <select name="calendarHour" id="calendarHour" style="font-size:12px;"></select>'+Calendar.language["hour"][this.lang];
|
|
mvAry[mvAry.length]='<span style="'
|
|
if(calendar.DateMode>=pickMode["hour"]){mvAry[mvAry.length]='display:none;';}
|
|
mvAry[mvAry.length]='"><select name="calendarMinute" id="calendarMinute" style="font-size:12px;"></select>'+Calendar.language["minute"][this.lang]+'</span>';
|
|
mvAry[mvAry.length]='<span style="'
|
|
if(calendar.DateMode>=pickMode["minute"]){mvAry[mvAry.length]='display:none;';}
|
|
mvAry[mvAry.length]='"><select name="calendarSecond" id="calendarSecond" style="font-size:12px;"></select>'+Calendar.language["second"][this.lang]+'</span>';
|
|
mvAry[mvAry.length]=' </td></tr>';
|
|
mvAry[mvAry.length]=' </table>';
|
|
mvAry[mvAry.length]=' <div align="center" style="padding:4px 4px 4px 4px;background-color:'+calendar.colors["input_bg"]+';">';
|
|
mvAry[mvAry.length]=' <input name="calendarClear" type="button" id="calendarClear" value="'+Calendar.language["clear"][this.lang]+'" style="border: 1px solid '+calendar.colors["input_border"]+';background-color:'+calendar.colors["input_bg"]+';width:40px;height:20px;font-size:12px;cursor:pointer;"/>';
|
|
mvAry[mvAry.length]=' <input name="calendarToday" type="button" id="calendarToday" value="'
|
|
mvAry[mvAry.length]=(calendar.DateMode==pickMode["day"])?Calendar.language["today"][this.lang]:Calendar.language["pickTxt"][this.lang];
|
|
mvAry[mvAry.length]='" style="border: 1px solid '+calendar.colors["input_border"]+';background-color:'+calendar.colors["input_bg"]+';width:60px;height:20px;font-size:12px;cursor:pointer"/>';
|
|
mvAry[mvAry.length]=' <input name="calendarClose" type="button" id="calendarClose" value="'+Calendar.language["close"][this.lang]+'" style="border: 1px solid '+calendar.colors["input_border"]+';background-color:'+calendar.colors["input_bg"]+';width:40px;height:20px;font-size:12px;cursor:pointer"/>';
|
|
mvAry[mvAry.length]=' </div>';
|
|
mvAry[mvAry.length]=' </div>';
|
|
this.panel.innerHTML=mvAry.join("");
|
|
var obj=this.getElementById("prevMonth");
|
|
obj.onclick=function(){calendar.goPrevMonth(calendar);}
|
|
obj.onblur=function(){calendar.onblur();}
|
|
this.prevMonth=obj;
|
|
obj=this.getElementById("nextMonth");
|
|
obj.onclick=function(){calendar.goNextMonth(calendar);}
|
|
obj.onblur=function(){calendar.onblur();}
|
|
this.nextMonth=obj;
|
|
obj=this.getElementById("calendarClear");
|
|
obj.onclick=function()
|
|
{calendar.ReturnDate("");
|
|
}
|
|
this.calendarClear=obj;
|
|
obj=this.getElementById("calendarClose");
|
|
obj.onclick=function(){calendar.hide();}
|
|
this.calendarClose=obj;
|
|
obj=this.getElementById("calendarYear");
|
|
obj.onchange=function(){calendar.update(calendar);}
|
|
obj.onblur=function(){calendar.onblur();}
|
|
this.calendarYear=obj;
|
|
obj=this.getElementById("calendarMonth");
|
|
with(obj)
|
|
{
|
|
onchange=function(){calendar.update(calendar);}
|
|
onblur=function(){calendar.onblur();}
|
|
}this.calendarMonth=obj;
|
|
obj=this.getElementById("calendarHour");
|
|
obj.onchange=function(){calendar.hour=this.options[this.selectedIndex].value;}
|
|
obj.onblur=function(){calendar.onblur();}
|
|
this.calendarHour=obj;
|
|
obj=this.getElementById("calendarMinute");
|
|
obj.onchange=function(){calendar.minute=this.options[this.selectedIndex].value;}
|
|
obj.onblur=function(){calendar.onblur();}
|
|
this.calendarMinute=obj;
|
|
obj=this.getElementById("calendarSecond");
|
|
obj.onchange=function(){calendar.second=this.options[this.selectedIndex].value;}
|
|
obj.onblur=function(){calendar.onblur();}
|
|
this.calendarSecond=obj;
|
|
obj=this.getElementById("calendarToday");
|
|
obj.onclick=function(){
|
|
var today=(calendar.DateMode!=pickMode["day"])?
|
|
new Date(calendar.year,calendar.month,calendar.day,calendar.hour,calendar.minute,calendar.second)
|
|
:new Date();
|
|
calendar.ReturnDate(today.format(calendar.dateFormatStyle));
|
|
}
|
|
this.calendarToday=obj;
|
|
}
|
|
Calendar.prototype.bindYear=function(){
|
|
var cy=this.calendarYear;
|
|
cy.length=0;
|
|
for(var i=this.beginYear;i<=this.endYear;i++){
|
|
cy.options[cy.length]=new Option(i+Calendar.language["year"][this.lang],i);
|
|
}
|
|
}
|
|
Calendar.prototype.bindMonth=function(){
|
|
var cm=this.calendarMonth;
|
|
cm.length=0;
|
|
for(var i=0;i<12;i++){
|
|
cm.options[cm.length]=new Option(Calendar.language["months"][this.lang][i],i);
|
|
}
|
|
}
|
|
Calendar.prototype.bindHour=function(){
|
|
var ch=this.calendarHour;
|
|
if(ch.length>0){return;}
|
|
var h;
|
|
for(var i=0;i<24;i++){
|
|
h=("00"+i+"").substr((""+i).length);
|
|
ch.options[ch.length]=new Option(h,h);
|
|
}
|
|
}
|
|
Calendar.prototype.bindMinute=function(){
|
|
var cM=this.calendarMinute;
|
|
if(cM.length>0){return;}
|
|
var M;
|
|
for(var i=0;i<60;i++){
|
|
M=("00"+i+"").substr((""+i).length);
|
|
cM.options[cM.length]=new Option(M,M);
|
|
}
|
|
}
|
|
Calendar.prototype.bindSecond=function(){
|
|
var cs=this.calendarSecond;
|
|
if(cs.length>0){return;}
|
|
var s;
|
|
for(var i=0;i<60;i++){
|
|
s=("00"+i+"").substr((""+i).length);
|
|
cs.options[cs.length]=new Option(s,s);
|
|
}
|
|
}
|
|
Calendar.prototype.goPrevMonth=function(e){
|
|
if(this.year==this.beginYear&&this.month==0){return;}
|
|
this.month--;
|
|
if(this.month==-1){
|
|
this.year--;
|
|
this.month=11;
|
|
}
|
|
this.date=new Date(this.year,this.month,1);
|
|
this.changeSelect();
|
|
this.bindData();
|
|
}
|
|
Calendar.prototype.goNextMonth=function(e){
|
|
if(this.year==this.endYear&&this.month==11){return;}
|
|
this.month++;
|
|
if(this.month==12){
|
|
this.year++;
|
|
this.month=0;
|
|
}
|
|
this.date=new Date(this.year,this.month,1);
|
|
this.changeSelect();
|
|
this.bindData();
|
|
}
|
|
Calendar.prototype.changeSelect=function(){
|
|
var cy=this.calendarYear;
|
|
var cm=this.calendarMonth;
|
|
var ch=this.calendarHour;
|
|
var cM=this.calendarMinute;
|
|
var cs=this.calendarSecond;
|
|
cy[this.date.getFullYear()-this.beginYear].selected=true;
|
|
cm[this.date.getMonth()].selected=true;
|
|
ch[this.hour].selected=true;
|
|
cM[this.minute].selected=true;
|
|
cs[this.second].selected=true;
|
|
}
|
|
Calendar.prototype.update=function(e){
|
|
this.year=e.calendarYear.options[e.calendarYear.selectedIndex].value;
|
|
this.month=e.calendarMonth.options[e.calendarMonth.selectedIndex].value;
|
|
this.date=new Date(this.year,this.month,1);
|
|
this.bindData();
|
|
}
|
|
Calendar.prototype.bindData=function(){
|
|
var calendar=this;
|
|
if(calendar.DateMode>=pickMode["month"]){return;}
|
|
var dateArray=this.getMonthViewArray(this.date.getFullYear(),this.date.getMonth());
|
|
var tds=this.getElementById("calendarTable").getElementsByTagName("td");
|
|
for(var i=0;i<tds.length;i++){
|
|
tds[i].style.backgroundColor=calendar.colors["td_bg_out"];
|
|
tds[i].onclick=function(){return;}
|
|
tds[i].onmouseover=function(){return;}
|
|
tds[i].onmouseout=function(){return;}
|
|
if(i>dateArray.length-1)break;
|
|
tds[i].innerHTML=dateArray[i];
|
|
if(dateArray[i]!=" "){
|
|
tds[i].bgColorTxt="td_bg_out";
|
|
var cur=new Date();
|
|
tds[i].isToday=false;
|
|
if(cur.getFullYear()==calendar.date.getFullYear()&&cur.getMonth()==calendar.date.getMonth()&&cur.getDate()==dateArray[i]){
|
|
tds[i].style.backgroundColor=calendar.colors["cur_bg"];
|
|
tds[i].bgColorTxt="cur_bg";
|
|
tds[i].isToday=true;
|
|
}
|
|
if(calendar.dateControl!=null)
|
|
{
|
|
cur=calendar.dateControl.value.toDate(calendar.dateFormatStyle);
|
|
if(cur.getFullYear()==calendar.date.getFullYear()&&cur.getMonth()==calendar.date.getMonth()&&cur.getDate()==dateArray[i]){
|
|
calendar.selectedDayTD=tds[i];
|
|
tds[i].style.backgroundColor=calendar.colors["sel_bg"];
|
|
tds[i].bgColorTxt="sel_bg";
|
|
}
|
|
}
|
|
tds[i].onclick=function(){
|
|
if(calendar.DateMode==pickMode["day"])
|
|
{
|
|
calendar.ReturnDate(new Date(calendar.date.getFullYear(),
|
|
calendar.date.getMonth(),
|
|
this.innerHTML).format(calendar.dateFormatStyle));
|
|
}
|
|
else
|
|
{
|
|
if(calendar.selectedDayTD!=null)
|
|
{
|
|
calendar.selectedDayTD.style.backgroundColor=(calendar.selectedDayTD.isToday)?calendar.colors["cur_bg"]:calendar.colors["td_bg_out"];
|
|
}
|
|
this.style.backgroundColor=calendar.colors["sel_bg"];
|
|
calendar.day=this.innerHTML;
|
|
calendar.selectedDayTD=this;
|
|
}
|
|
}
|
|
tds[i].style.cursor="pointer";
|
|
tds[i].onmouseover=function(){
|
|
this.style.backgroundColor=calendar.colors["td_bg_over"];
|
|
}
|
|
tds[i].onmouseout=function(){
|
|
if(calendar.selectedDayTD!=this){
|
|
this.style.backgroundColor=calendar.colors[this.bgColorTxt];}
|
|
}
|
|
tds[i].onblur=function(){calendar.onblur();}
|
|
}
|
|
}
|
|
}
|
|
Calendar.prototype.getMonthViewArray=function(y,m){
|
|
var mvArray=[];
|
|
var dayOfFirstDay=new Date(y,m,1).getDay();
|
|
var daysOfMonth=new Date(y,m+1,0).getDate();
|
|
for(var i=0;i<42;i++){
|
|
mvArray[i]=" ";
|
|
}
|
|
for(var i=0;i<daysOfMonth;i++){
|
|
mvArray[i+dayOfFirstDay]=i+1;
|
|
}
|
|
return mvArray;
|
|
}
|
|
Calendar.prototype.getElementById=function(id){
|
|
if(typeof(id)!="string"||id=="")return null;
|
|
if(document.getElementById)return document.getElementById(id);
|
|
if(document.all)return document.all(id);
|
|
try{return eval(id);}catch(e){return null;}
|
|
}
|
|
Calendar.prototype.getElementsByTagName=function(object,tagName){
|
|
if(document.getElementsByTagName)return document.getElementsByTagName(tagName);
|
|
if(document.all)return document.all.tags(tagName);
|
|
}
|
|
Calendar.prototype.getAbsPoint=function(e){
|
|
var x=e.offsetLeft;
|
|
var y=e.offsetTop;
|
|
while(e=e.offsetParent){
|
|
x+=e.offsetLeft;
|
|
y+=e.offsetTop;
|
|
}
|
|
return{"x":x,"y":y};
|
|
}
|
|
Calendar.prototype.show=function(dateObj,popControl){
|
|
if(dateObj==null){
|
|
throw new Error("arguments[0] is necessary")
|
|
}
|
|
this.dateControl=dateObj;
|
|
var now=new Date();
|
|
this.date=(dateObj.value.length>0)?new Date(dateObj.value.toDate(this.dateFormatStyle)):now.format(this.dateFormatStyle).toDate(this.dateFormatStyle);
|
|
if(this.panel.innerHTML==""||cal.dateFormatStyleOld!=cal.dateFormatStyle)
|
|
{
|
|
this.draw();
|
|
this.bindYear();
|
|
this.bindMonth();
|
|
this.bindHour();
|
|
this.bindMinute();
|
|
this.bindSecond();
|
|
}
|
|
this.year=this.date.getFullYear();
|
|
this.month=this.date.getMonth();
|
|
this.day=this.date.getDate();
|
|
this.hour=this.date.getHours();
|
|
this.minute=this.date.getMinutes();
|
|
this.second=this.date.getSeconds();
|
|
this.changeSelect();
|
|
this.bindData();
|
|
if(popControl==null){
|
|
popControl=dateObj;
|
|
}
|
|
var xy=this.getAbsPoint(popControl);
|
|
this.panel.style.left=(xy.x+leftX)+"px";
|
|
this.panel.style.top=(xy.y+topY+dateObj.offsetHeight)+"px";
|
|
this.panel.style.display="";
|
|
this.container.style.display="";
|
|
if(!this.dateControl.isTransEvent)
|
|
{
|
|
this.dateControl.isTransEvent=true;
|
|
if(this.dateControl.onblur!=null){
|
|
this.dateControl.blurEvent=this.dateControl.onblur;}
|
|
this.dateControl.onblur=function()
|
|
{calendar.onblur();if(typeof(this.blurEvent)=='function'){this.blurEvent();}
|
|
}
|
|
}
|
|
this.container.onmouseover=function(){isFocus=true;}
|
|
this.container.onmouseout=function(){isFocus=false;}
|
|
}
|
|
Calendar.prototype.hide=function(){
|
|
this.panel.style.display="none";
|
|
this.container.style.display="none";
|
|
isFocus=false;
|
|
}
|
|
Calendar.prototype.onblur=function(){
|
|
if(!isFocus){this.hide();}
|
|
}
|
|
function InitContainerPanel()
|
|
{
|
|
var str='<div id="calendarPanel" style="position: absolute;display: none;z-index:9999; background-color: #FFFFFF;border: 1px solid #CCCCCC;width:175px;font-size:12px;"></div>';
|
|
if(document.all)
|
|
{
|
|
str+='<iframe style="position:absolute;z-index:2000;width:expression(this.previousSibling.offsetWidth);';
|
|
str+='height:expression(this.previousSibling.offsetHeight);';
|
|
str+='left:expression(this.previousSibling.offsetLeft);top:expression(this.previousSibling.offsetTop);';
|
|
str+='display:expression(this.previousSibling.style.display);" scrolling="no" frameborder="no"></iframe>';
|
|
}
|
|
var div=document.createElement("div");
|
|
div.innerHTML=str;
|
|
div.id="ContainerPanel";
|
|
div.style.display="none";
|
|
document.body.appendChild(div);
|
|
}
|