1、首先就是在web程序中上传文件到ftp并且下载,感觉这个类还是不错的:
上传:
ftpsupport.dll: 下载
当下载的时候:
当然要删除就是:ftp.DeleteFile
不过提行一点就是因为下载是用url形式出现在地址栏的所以密码和用户名只能是 字母、数字或者'_' '-' '+' 其他特殊字符比如 @#$%&都不行
ok,有人说不想暴露ftp帐号和下载文件名,那么只有直接response了,结合我以前的文章《通过注册表得到文件的ContentType》,解决办法如下:
当然还需要using Microsoft.Win32;
2、在提交的时候过程很长,为了防止用户再次点击而且为了界面友好可以用一个层遮住所有按钮再显示个提示信息,等服务器端处理完成再导航到本页(location.href='地址')就可以:
pageload里面这么写:this.Button1.Attributes.Add("onclick","document.getElementById('doing').style.visibility='visible';");
,等操作结束重定向了后页面重新加载一次,这个层也就消失了。。。
3、这个日历也不错,自己做了下修改:
然后使用:
上传:
private
string
Upload(HttpPostedFile pf,
string
ExtName)
{
FtpSupport.FtpConnection ftp = new FtpSupport.FtpConnection();
System.IO.Stream fs = pf.InputStream;
string FileName = DateTime.Now.ToString( " yyyyMMddhhmmss " );
FileName += " . " + ExtName;
ftp.Connect(ConfigurationSettings.AppSettings[ " FtpIP " ].ToString(),ConfigurationSettings.AppSettings[ " FtpUserName " ].ToString(),ConfigurationSettings.AppSettings[ " FtpPassWord " ].ToString());
ftp.SetCurrentDirectory( " / " );
ftp.PutStream(fs,FileName);
fs.Close();
ftp.Close();
return FileName;
}
{
FtpSupport.FtpConnection ftp = new FtpSupport.FtpConnection();
System.IO.Stream fs = pf.InputStream;
string FileName = DateTime.Now.ToString( " yyyyMMddhhmmss " );
FileName += " . " + ExtName;
ftp.Connect(ConfigurationSettings.AppSettings[ " FtpIP " ].ToString(),ConfigurationSettings.AppSettings[ " FtpUserName " ].ToString(),ConfigurationSettings.AppSettings[ " FtpPassWord " ].ToString());
ftp.SetCurrentDirectory( " / " );
ftp.PutStream(fs,FileName);
fs.Close();
ftp.Close();
return FileName;
}
ftpsupport.dll: 下载
当下载的时候:
private
void
FtpDown(
string
filename)
{
FtpSupport.FtpConnection ftp = new FtpSupport.FtpConnection();;
try
{
ftp.Connect(ConfigurationSettings.AppSettings[ " FtpIP " ].ToString(),ConfigurationSettings.AppSettings[ " FtpUserName " ].ToString(),ConfigurationSettings.AppSettings[ " FtpPassWord " ].ToString());
try
{
ftp.SetCurrentDirectory( " / " );
if (ftp.FileExist(filename) && filename != "" )
{
Response.Write( " <script>window.open('ftp:// " + Server.UrlEncode(ConfigurationSettings.AppSettings[ " FtpUserName " ].ToString()) + " : " + ConfigurationSettings.AppSettings[ " FtpPassWord " ].ToString() + " @ " + ConfigurationSettings.AppSettings[ " FtpIP " ].ToString() + " / " + filename + " ')</script> " );
}
else
{
ClsOper.Alert( " Can Not Find File " );
}
}
catch
{
ClsOper.Alert( " Can Not Operate FTP " );
}
finally
{
ftp.Close();
}
}
catch
{
ClsOper.Alert( " Can Not Connect FTP " );
}
}
{
FtpSupport.FtpConnection ftp = new FtpSupport.FtpConnection();;
try
{
ftp.Connect(ConfigurationSettings.AppSettings[ " FtpIP " ].ToString(),ConfigurationSettings.AppSettings[ " FtpUserName " ].ToString(),ConfigurationSettings.AppSettings[ " FtpPassWord " ].ToString());
try
{
ftp.SetCurrentDirectory( " / " );
if (ftp.FileExist(filename) && filename != "" )
{
Response.Write( " <script>window.open('ftp:// " + Server.UrlEncode(ConfigurationSettings.AppSettings[ " FtpUserName " ].ToString()) + " : " + ConfigurationSettings.AppSettings[ " FtpPassWord " ].ToString() + " @ " + ConfigurationSettings.AppSettings[ " FtpIP " ].ToString() + " / " + filename + " ')</script> " );
}
else
{
ClsOper.Alert( " Can Not Find File " );
}
}
catch
{
ClsOper.Alert( " Can Not Operate FTP " );
}
finally
{
ftp.Close();
}
}
catch
{
ClsOper.Alert( " Can Not Connect FTP " );
}
}
当然要删除就是:ftp.DeleteFile
不过提行一点就是因为下载是用url形式出现在地址栏的所以密码和用户名只能是 字母、数字或者'_' '-' '+' 其他特殊字符比如 @#$%&都不行
ok,有人说不想暴露ftp帐号和下载文件名,那么只有直接response了,结合我以前的文章《通过注册表得到文件的ContentType》,解决办法如下:
string
filename
=
"
b.rar
"
;
string fileextname = filename.Split( ' . ' )[filename.Split( ' . ' ).Length - 1 ];
string DEFAULT_CONTENT_TYPE = " application/unknown " ;
RegistryKey regkey,fileextkey;
string filecontenttype;
try
{
regkey = Registry.ClassesRoot;
fileextkey = regkey.OpenSubKey(fileextname);
filecontenttype = fileextkey.GetValue( " Content Type " ,DEFAULT_CONTENT_TYPE).ToString();
}
catch
{
filecontenttype = DEFAULT_CONTENT_TYPE;
}
Response.Clear();
Response.AddHeader( " Content-Disposition " , " attachment; filename= " + Server.UrlEncode(filename));
Response.ContentType = filecontenttype;
FtpSupport.FtpConnection conn = new FtpSupport.FtpConnection( " localhost " , " 用户名 " , "密码 " );
conn.SetCurrentDirectory( " / " );
if (conn.FileExist(filename))
{
FtpSupport.FtpStream ftpfs = conn.OpenFile(filename,FtpSupport.GenericRights.Read);
byte [] buffer = new byte [ 10240 ];
int n = ftpfs.Read(buffer, 0 ,buffer.Length);
while (n > 0 )
{
Response.BinaryWrite(buffer);
n = ftpfs.Read(buffer, 0 ,buffer.Length);
}
ftpfs.Close();
}
}
string fileextname = filename.Split( ' . ' )[filename.Split( ' . ' ).Length - 1 ];
string DEFAULT_CONTENT_TYPE = " application/unknown " ;
RegistryKey regkey,fileextkey;
string filecontenttype;
try
{
regkey = Registry.ClassesRoot;
fileextkey = regkey.OpenSubKey(fileextname);
filecontenttype = fileextkey.GetValue( " Content Type " ,DEFAULT_CONTENT_TYPE).ToString();
}
catch
{
filecontenttype = DEFAULT_CONTENT_TYPE;
}
Response.Clear();
Response.AddHeader( " Content-Disposition " , " attachment; filename= " + Server.UrlEncode(filename));
Response.ContentType = filecontenttype;
FtpSupport.FtpConnection conn = new FtpSupport.FtpConnection( " localhost " , " 用户名 " , "密码 " );
conn.SetCurrentDirectory( " / " );
if (conn.FileExist(filename))
{
FtpSupport.FtpStream ftpfs = conn.OpenFile(filename,FtpSupport.GenericRights.Read);
byte [] buffer = new byte [ 10240 ];
int n = ftpfs.Read(buffer, 0 ,buffer.Length);
while (n > 0 )
{
Response.BinaryWrite(buffer);
n = ftpfs.Read(buffer, 0 ,buffer.Length);
}
ftpfs.Close();
}
}
当然还需要using Microsoft.Win32;
2、在提交的时候过程很长,为了防止用户再次点击而且为了界面友好可以用一个层遮住所有按钮再显示个提示信息,等服务器端处理完成再导航到本页(location.href='地址')就可以:
<
div
id
="doing"
runat
="server"
style
="Z-INDEX: 12000; LEFT: 0px; VISIBILITY: hidden; WIDTH: 100%; POSITION: absolute; TOP: 300px; HEIGHT: 100%"
>
< table width ="100%" height ="100%" >
< tr align ="center" valign ="middle" >
< td >
< table width ="169" class ="font3" height ="62" bgcolor ="#6699ff" style ="FILTER: Alpha(Opacity=75); WIDTH: 169px; HEIGHT: 62px" >
< tr align ="center" valign ="middle" >
< td > 页面提交中,请等待 < br >
Please wait
</ td >
</ tr >
</ table >
</ td >
</ tr >
</ table >
</ div >
< table width ="100%" height ="100%" >
< tr align ="center" valign ="middle" >
< td >
< table width ="169" class ="font3" height ="62" bgcolor ="#6699ff" style ="FILTER: Alpha(Opacity=75); WIDTH: 169px; HEIGHT: 62px" >
< tr align ="center" valign ="middle" >
< td > 页面提交中,请等待 < br >
Please wait
</ td >
</ tr >
</ table >
</ td >
</ tr >
</ table >
</ div >
pageload里面这么写:this.Button1.Attributes.Add("onclick","document.getElementById('doing').style.visibility='visible';");
,等操作结束重定向了后页面重新加载一次,这个层也就消失了。。。
3、这个日历也不错,自己做了下修改:
var bMoveable=true;
var _VersionInfo="Version:2.01 2.01 Author: Athos;2.0 Author:walkingpoison 1.0 Author: F.R.Huang(meizz) MAIL: meizz@hzcnc.com";
var strFrame;
document.writeln(' < iframe id =meizzDateLayer Author =wayx frameborder =0 style ="position: absolute; width: 144; height: 211; z-index: 9998; display: none" ></ iframe > ');
strFrame=' < style > ';
strFrame+='INPUT.button { BORDER-RIGHT : #ff9900 1px solid ; BORDER-TOP : #ff9900 1px solid ; BORDER-LEFT : #ff9900 1px solid ; ';
strFrame+='BORDER-BOTTOM : #ff9900 1px solid ; BACKGROUND-COLOR : #fff8ec ; } ';
strFrame+='TD { FONT-SIZE : 9pt ; } ';
strFrame+=' </ style > ';
strFrame+=' < scr ' + 'ipt > ';
strFrame+='var datelayerx,datelayery; ';
strFrame+='var bDrag; ';
strFrame+='function document.onmousemove() ';
strFrame+='{if(bDrag && window.event.button==1)';
strFrame+=' {var DateLayer=parent.document.all.meizzDateLayer.style;';
strFrame+=' DateLayer.posLeft += window.event.clientX-datelayerx;';
strFrame+=' DateLayer.posTop += window.event.clientY-datelayery;}}';
strFrame+='function DragStart() ';
strFrame+='{var DateLayer=parent.document.all.meizzDateLayer.style;';
strFrame+=' datelayerx=window.event.clientX;';
strFrame+=' datelayery=window.event.clientY;';
strFrame+=' bDrag=true;}';
strFrame+='function DragEnd(){ ';
strFrame+=' bDrag=false;}';
strFrame+=' </ scr' + 'ipt > ';
strFrame+=' < div style ="z-index:9999;position: absolute; left:0; top:0;" onselectstart ="return false" >< span id =tmpSelectYearLayer Author =wayx style ="z-index: 9999;position: absolute;top: 3; left: 19;display: none" ></ span > ';
strFrame+=' < span id =tmpSelectMonthLayer Author =wayx style ="z-index: 9999;position: absolute;top: 3; left: 48;display: none" ></ span > ';
strFrame+=' < table border =1 cellspacing =0 cellpadding =0 width =142 height =160 bordercolor =#ff9900 bgcolor =#ff9900 Author ="wayx" > ';
strFrame+=' < tr Author ="wayx" >< td width =142 height =23 Author ="wayx" bgcolor =#FFFFFF >< table border =0 cellspacing =1 cellpadding =0 width =140 Author ="wayx" height =23 > ';
strFrame+=' < tr align =center Author ="wayx" >< td width =16 align =center bgcolor =#ff9900 style ="font-size:12px;cursor: hand;color: #ffffff" ';
strFrame+ =' onclick ="parent.meizzPrevM()" title ="1 Month Before" Author =meizz >< b Author =meizz > < </ b > ';
strFrame+=' </ td >< td width =30 align =center style ="font-size:12px;cursor:default" Author =meizz ';
strFrame+ ='οnmοuseοver="style.backgroundColor=/'#FFD700/'" onmouseout ="style.backgroundColor=/'white/'" ';
strFrame+ ='οnclick="parent.tmpSelectYearInnerHTML(this.innerText)" title ="Click to select year" >< span Author =meizz id =meizzYearHead ></ span ></ td > ';
strFrame+=' < td width =78 align =center style ="font-size:12px;cursor:default" Author =meizz onmouseover ="style.backgroundColor=/'#FFD700/'" ';
strFrame+ =' onmouseout ="style.backgroundColor=/'white/'" onclick ="parent.tmpSelectMonthInnerHTML(parent.athosMonthNameToNum(this.innerText))" ';
strFrame+ =' title ="Click to select month" >< span id =meizzMonthHead Author =meizz ></ span ></ td > ';
strFrame+=' < td width =16 bgcolor =#ff9900 align =center style ="font-size:12px;cursor: hand;color: #ffffff" ';
strFrame+ =' onclick ="parent.meizzNextM()" title ="1 Month Later" Author =meizz >< b Author =meizz > > </ b ></ td ></ tr > ';
strFrame+=' </ table ></ td ></ tr > ';
strFrame+=' < tr Author ="wayx" >< td width =142 height =18 Author ="wayx" > ';
strFrame+=' < table border =1 cellspacing =0 cellpadding =0 bgcolor =#ff9900 ' + (bMoveable? 'onmousedown ="DragStart()" onmouseup ="DragEnd()" ':'');
strFrame+ =' BORDERCOLORLIGHT =#FF9900 BORDERCOLORDARK =#FFFFFF width =140 height =20 Author ="wayx" style ="cursor:' + (bMoveable ? 'move':'default') + '" > ';
strFrame+=' < tr Author ="wayx" align =center valign =bottom > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Sunday" > S </ td > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Monday" > M </ td > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Tuesday" > T </ td > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Wednesday" > W </ td > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Thursday" > T </ td > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Friday" > F </ td > ';
strFrame+=' < td width =20px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Saturday" > S </ td > ';
strFrame+=' </ tr > ';
strFrame+=' </ table ></ td ></ tr > <!-- Author:F.R.Huang(meizz) http://www.meizz.com/ mail: meizz@hzcnc.com 2002-10-8 --> ';
strFrame+=' < tr Author ="wayx" >< td width =142 height =120 Author ="wayx" > ';
strFrame+=' < table border =1 cellspacing =2 cellpadding =0 BORDERCOLORLIGHT =#FF9900 BORDERCOLORDARK =#FFFFFF bgcolor =#fff8ec width =140 height =120 Author ="wayx" > ';
var n=0; for (j=0;j < 5 ;j++){ strFrame+ = ' <tr align =center Author ="wayx" > '; for (i=0;i < 7 ;i++){
strFrame+ ='<td width =20 height =20 id =meizzDay'+n+' style ="font-size:12px" Author =meizz onclick =parent.meizzDayClick(this.innerText,0) ></ td > ';n++;}
strFrame+=' </ tr > ';}
strFrame+=' < tr align =center Author ="wayx" > ';
for (i=35;i < 39 ;i++)strFrame+ ='<td width =20 height =20 id =meizzDay'+i+' style ="font-size:12px" Author =wayx onclick ="parent.meizzDayClick(this.innerText,0)" ></ td > ';
strFrame+=' < td colspan =3 align =right Author =meizz >< span onclick =parent.closeLayer() style ="font-size:12px;cursor: hand" ';
strFrame+ =' Author =meizz title ="' + _VersionInfo + '" >< u > Close </ u ></ span > </ td ></ tr > ';
strFrame+=' </ table ></ td ></ tr >< tr Author ="wayx" >< td Author ="wayx" > ';
strFrame+=' < table border =0 cellspacing =1 cellpadding =0 width =100% Author ="wayx" bgcolor =#FFFFFF > ';
strFrame+=' < tr Author ="wayx" >< td Author =meizz align =left >< input Author =meizz type =button class =button value ="<<" title ="1 Year Before" onclick ="parent.meizzPrevY()" ';
strFrame+ =' onfocus ="this.blur()" style ="font-size: 12px; height: 20px" >< input Author =meizz class =button title ="1 Month Before" type =button ';
strFrame+ =' value ="< " onclick ="parent.meizzPrevM()" onfocus ="this.blur()" style ="font-size: 12px; height: 20px" ></ td >< td ';
strFrame+ =' Author =meizz align =center > ';
strFrame+=' </ td >< td ';
strFrame+ =' Author =meizz align =right >< input Author =meizz type =button class =button value =" >" onclick ="parent.meizzNextM()" ';
strFrame+ =' onfocus ="this.blur()" title ="1 Month Later" class =button style ="font-size: 12px; height: 20px" >< input ';
strFrame+ =' Author =meizz type =button class =button value =">>" title ="1 Year Later" onclick ="parent.meizzNextY()" ';
strFrame+ =' onfocus ="this.blur()" style ="font-size: 12px; height: 20px" ></ td > ';
strFrame+=' </ tr ></ table ></ td ></ tr ></ table ></ div > ';
window.frames.meizzDateLayer.document.writeln(strFrame);
window.frames.meizzDateLayer.document.close();
var outObject;
var outButton;
var outDate="";
var odatelayer=window.frames.meizzDateLayer.document.all;
function setday(tt,obj)
{
if (arguments.length > 2){alert("Sorry, too many parameters");return;}
if (arguments.length == 0){alert("Sorry, none parameter!");return;}
var dads = document.all.meizzDateLayer.style;
var th = tt;
var ttop = tt.offsetTop;
var thei = tt.clientHeight;
var tleft = tt.offsetLeft;
var ttyp = tt.type;
while (tt = tt.offsetParent){ttop+=tt.offsetTop; tleft+=tt.offsetLeft;}
dads.top = (ttyp=="image")? ttop+thei : ttop+thei+6;
dads.left = tleft;
outObject = (arguments.length == 1) ? th : obj;
outButton = (arguments.length == 1) ? null : th;
var reg = /^(/d{1,2})//(/d{1,2})//(/d+)$/;
var r = outObject.value.match(reg);
if(r!=null){
r[0]=r[3];
r[3]=r[2];
r[2]=r[1];
r[1]=r[0];
r[2]=r[2]-1;
var d= new Date(r[1], r[2],r[3]);
if(d.getFullYear()==r[1] && d.getMonth()==r[2] && d.getDate()==r[3]){
outDate=d;
}
else outDate="";
meizzSetDay(r[1],r[2]+1);
}
else{
outDate="";
meizzSetDay(new Date().getFullYear(), new Date().getMonth() + 1);
}
dads.display = '';
event.returnValue=false;
}
var MonHead = new Array(12);
MonHead[0] = 31; MonHead[1] = 28; MonHead[2] = 31; MonHead[3] = 30; MonHead[4] = 31; MonHead[5] = 30;
MonHead[6] = 31; MonHead[7] = 31; MonHead[8] = 30; MonHead[9] = 31; MonHead[10] = 30; MonHead[11] = 31;
var meizzTheYear=new Date().getFullYear();
var meizzTheMonth=new Date().getMonth()+1;
var meizzWDay=new Array(39);
function document.onclick()
{
with(window.event)
{ if (srcElement.getAttribute("Author")==null && srcElement != outObject && srcElement != outButton)
closeLayer();
}
}
function document.onkeyup()
{
if (window.event.keyCode==27){
if(outObject)outObject.blur();
closeLayer();
}
else if(document.activeElement)
if(document.activeElement.getAttribute("Author")==null && document.activeElement != outObject && document.activeElement != outButton)
{
closeLayer();
}
}
function meizzWriteHead(yy,mm)
{
odatelayer.meizzYearHead.innerText = String(yy);
odatelayer.meizzMonthHead.innerText = athosMonthNumToName(String(mm));
}
function athosMonthNameToNum(mn)
{
switch (String(mn))
{
case "January" :
return String(1);
case "Feburary" :
return String(2);
case "March" :
return String(3);
case "April" :
return String(4);
case "May" :
return String(5);
case "June" :
return String(6);
case "July" :
return String(7);
case "August" :
return String(8);
case "September" :
return String(9);
case "October" :
return String(10);
case "November" :
return String(11);
case "December" :
return String(12);
default :
return String(0);
}
}
function athosMonthNumToName(mm)
{
switch (mm)
{
case "1":
return String("January");
case "2":
return String("Feburary");
case "3":
return String("March");
case "4":
return String("April");
case "5":
return String("May");
case "6":
return String("June");
case "7":
return String("July");
case "8":
return String("August");
case "9":
return String("September");
case "10":
return String("October");
case "11":
return String("November");
case "12":
return String("December");
default :
return String("UnknownMonth");
}
}
function tmpSelectYearInnerHTML(strYear)
{
if (strYear.match(//D/)!=null){alert("Year shall be a number.");return;}
var m = (strYear) ? strYear : new Date().getFullYear();
if (m < 1000 || m > 9999) {alert("Year shall between 1000 to 9999.");return;}
var n = m - 10;
if (n < 1000 ) n = 1000;
if (n + 26 > 9999) n = 9974;
var s = " < select Author =meizz name =tmpSelectYear style ='font-size: 12px' "
s + = "οnblur='document.all.tmpSelectYearLayer.style.display=/" none/"' "
s + = "οnchange='document.all.tmpSelectYearLayer.style.display=/" none/";"
s + = "parent.meizzTheYear = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>/r/n" ;
var selectInnerHTML = s;
for (var i = n; i < n + 26; i++)
{
if (i == m)
{selectInnerHTML + = "<option Author=wayx value='" + i + "' selected > " + i + " </ option > /r/n";}
else {selectInnerHTML += " < option Author =wayx value ='" + i + "' > " + i + " </ option > /r/n";}
}
selectInnerHTML += " </ select > ";
odatelayer.tmpSelectYearLayer.style.display="";
odatelayer.tmpSelectYearLayer.innerHTML = selectInnerHTML;
odatelayer.tmpSelectYear.focus();
}
function tmpSelectMonthInnerHTML(strMonth)
{
if (strMonth.match(//D/)!=null){alert("Month shall be a number");return;}
var m = (strMonth) ? strMonth : new Date().getMonth() + 1;
var s = " < select Author =meizz name =tmpSelectMonth style ='font-size: 12px' "
s + = "οnblur='document.all.tmpSelectMonthLayer.style.display=/" none/"' "
s + = "οnchange='document.all.tmpSelectMonthLayer.style.display=/" none/";"
s + = "parent.meizzTheMonth = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>/r/n" ;
var selectInnerHTML = s;
for (var i = 1; i < 13; i++)
{
if (i == m)
{selectInnerHTML + = "<option Author=wayx value='" +i+"' selected > "+ athosMonthNumToName(String(i)) +" </ option > /r/n";}
else {selectInnerHTML += " < option Author =wayx value ='"+i+"' > "+ athosMonthNumToName(String(i)) +" </ option > /r/n";}
}
selectInnerHTML += " </ select > ";
odatelayer.tmpSelectMonthLayer.style.display="";
odatelayer.tmpSelectMonthLayer.innerHTML = selectInnerHTML;
odatelayer.tmpSelectMonth.focus();
}
function closeLayer()
{
document.all.meizzDateLayer.style.display="none";
}
function IsPinYear(year)
{
if (0==year%4&&((year%100!=0)||(year%400==0))) return true;else return false;
}
function GetMonthCount(year,month)
{
var c=MonHead[month-1];if((month==2)& &IsPinYear (year)) c++;return c;
}
function GetDOW(day,month,year)
{
var dt=new Date(year,month-1,day).getDay()/7; return dt;
}
function meizzPrevY()
{
if(meizzTheYear > 999 && meizzTheYear < 10000 ){meizzTheYear--;}
else{alert("Year beyond (1000-9999)!");}
meizzSetDay(meizzTheYear,meizzTheMonth);
}
function meizzNextY()
{
if(meizzTheYear > 999 && meizzTheYear < 10000 ){meizzTheYear++;}
else{alert("Year beyond (1000-9999)!");}
meizzSetDay(meizzTheYear,meizzTheMonth);
}
function meizzToday()
{
var today;
meizzTheYear = new Date().getFullYear();
meizzTheMonth = new Date().getMonth()+1;
today =new Date().getDate();
//meizzSetDay(meizzTheYear,meizzTheMonth);
if(outObject){
outObject.value =meizzTheMonth + "/" + today+"/"+meizzTheYear;
}
closeLayer();
}
function meizzPrevM()
{
if(meizzTheMonth > 1){meizzTheMonth--}else{meizzTheYear--;meizzTheMonth=12;}
meizzSetDay(meizzTheYear,meizzTheMonth);
}
function meizzNextM()
{
if(meizzTheMonth==12){meizzTheYear++;meizzTheMonth=1}else{meizzTheMonth++}
meizzSetDay(meizzTheYear,meizzTheMonth);
}
function meizzSetDay(yy,mm)
{
meizzWriteHead(yy,mm);
meizzTheYear=yy;
meizzTheMonth=mm;
for (var i = 0; i < 39 ; i++){meizzWDay[i] ="" };
var day1 = 1,day2=1,firstday = new Date(yy,mm-1,1).getDay();
for (i =0;i<firstday;i++)meizzWDay[i]=GetMonthCount(mm==1?yy-1:yy,mm==1?12:mm-1)-firstday+i+1
for (i = firstday; day1 < GetMonthCount(yy,mm)+1; i++){meizzWDay[i] =day1;day1++;}
for (i =firstday+GetMonthCount(yy,mm);i<39;i++){meizzWDay[i]=day2;day2++}
for (i = 0; i < 39; i++)
{ var da = eval("odatelayer.meizzDay"+i)
if (meizzWDay[i]! ="" )
{
da.borderColorLight ="#FF9900" ;
da.borderColorDark ="#FFFFFF" ;
if(i<firstday)
{
da.innerHTML ="<b><font color=gray>" + meizzWDay[i] + "</font ></ b > ";
da.title=(mm==1?12:mm-1) +"Mn" + meizzWDay[i] + "Dt";
da.οnclick=Function("meizzDayClick(this.innerText,-1)");
if(!outDate)
da.style.backgroundColor = ((mm==1?yy-1:yy) == new Date().getFullYear() &&
(mm==1?12:mm-1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ?
"#FFD700":"#e0e0e0";
else
{
da.style.backgroundColor =((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 &&
meizzWDay[i]==outDate.getDate())? "#00ffff" :
(((mm==1?yy-1:yy) == new Date().getFullYear() && (mm==1?12:mm-1) == new Date().getMonth()+1 &&
meizzWDay[i] == new Date().getDate()) ? "#FFD700":"#e0e0e0");
if((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 &&
meizzWDay[i]==outDate.getDate())
{
da.borderColorLight="#FFFFFF";
da.borderColorDark="#FF9900";
}
}
}
else if (i>=firstday+GetMonthCount(yy,mm))
{
da.innerHTML=" < b >< font color =gray > " + meizzWDay[i] + " </ font ></ b > ";
da.title=(mm==12?1:mm+1) +"Mn" + meizzWDay[i] + "Dt";
da.οnclick=Function("meizzDayClick(this.innerText,1)");
if(!outDate)
da.style.backgroundColor = ((mm==12?yy+1:yy) == new Date().getFullYear() &&
(mm==12?1:mm+1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ?
"#FFD700":"#e0e0e0";
else
{
da.style.backgroundColor =((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 &&
meizzWDay[i]==outDate.getDate())? "#00ffff" :
(((mm==12?yy+1:yy) == new Date().getFullYear() && (mm==12?1:mm+1) == new Date().getMonth()+1 &&
meizzWDay[i] == new Date().getDate()) ? "#FFD700":"#e0e0e0");
if((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 &&
meizzWDay[i]==outDate.getDate())
{
da.borderColorLight="#FFFFFF";
da.borderColorDark="#FF9900";
}
}
}
else
{
da.innerHTML=" < b > " + meizzWDay[i] + " </ b > ";
da.title=mm +"Mn" + meizzWDay[i] + "Dt";
da.οnclick=Function("meizzDayClick(this.innerText,0)");
if(!outDate)
da.style.backgroundColor = (yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())?
"#FFD700":"#e0e0e0";
else
{
da.style.backgroundColor =(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())?
"#00ffff":((yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())?
"#FFD700":"#e0e0e0");
if(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())
{
da.borderColorLight="#FFFFFF";
da.borderColorDark="#FF9900";
}
}
}
da.style.cursor="hand"
}
else{da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"}
}
}
function meizzDayClick(n,ex)
{
var yy=meizzTheYear;
var mm = parseInt(meizzTheMonth)+ex;
if(mm < 1 ){
yy--;
mm =12+mm;
}
else if(mm > 12){
yy++;
mm=mm-12;
}
if (mm < 10 ){mm = "0" + mm;}
if (outObject)
{
if (!n) {
return;}
if ( n < 10){n = "0" + n;}
outObject.value = mm + "/" + n + "/" + yy ;
closeLayer();
}
else {closeLayer(); alert("None control to output!");}
}
var _VersionInfo="Version:2.01 2.01 Author: Athos;2.0 Author:walkingpoison 1.0 Author: F.R.Huang(meizz) MAIL: meizz@hzcnc.com";
var strFrame;
document.writeln(' < iframe id =meizzDateLayer Author =wayx frameborder =0 style ="position: absolute; width: 144; height: 211; z-index: 9998; display: none" ></ iframe > ');
strFrame=' < style > ';
strFrame+='INPUT.button { BORDER-RIGHT : #ff9900 1px solid ; BORDER-TOP : #ff9900 1px solid ; BORDER-LEFT : #ff9900 1px solid ; ';
strFrame+='BORDER-BOTTOM : #ff9900 1px solid ; BACKGROUND-COLOR : #fff8ec ; } ';
strFrame+='TD { FONT-SIZE : 9pt ; } ';
strFrame+=' </ style > ';
strFrame+=' < scr ' + 'ipt > ';
strFrame+='var datelayerx,datelayery; ';
strFrame+='var bDrag; ';
strFrame+='function document.onmousemove() ';
strFrame+='{if(bDrag && window.event.button==1)';
strFrame+=' {var DateLayer=parent.document.all.meizzDateLayer.style;';
strFrame+=' DateLayer.posLeft += window.event.clientX-datelayerx;';
strFrame+=' DateLayer.posTop += window.event.clientY-datelayery;}}';
strFrame+='function DragStart() ';
strFrame+='{var DateLayer=parent.document.all.meizzDateLayer.style;';
strFrame+=' datelayerx=window.event.clientX;';
strFrame+=' datelayery=window.event.clientY;';
strFrame+=' bDrag=true;}';
strFrame+='function DragEnd(){ ';
strFrame+=' bDrag=false;}';
strFrame+=' </ scr' + 'ipt > ';
strFrame+=' < div style ="z-index:9999;position: absolute; left:0; top:0;" onselectstart ="return false" >< span id =tmpSelectYearLayer Author =wayx style ="z-index: 9999;position: absolute;top: 3; left: 19;display: none" ></ span > ';
strFrame+=' < span id =tmpSelectMonthLayer Author =wayx style ="z-index: 9999;position: absolute;top: 3; left: 48;display: none" ></ span > ';
strFrame+=' < table border =1 cellspacing =0 cellpadding =0 width =142 height =160 bordercolor =#ff9900 bgcolor =#ff9900 Author ="wayx" > ';
strFrame+=' < tr Author ="wayx" >< td width =142 height =23 Author ="wayx" bgcolor =#FFFFFF >< table border =0 cellspacing =1 cellpadding =0 width =140 Author ="wayx" height =23 > ';
strFrame+=' < tr align =center Author ="wayx" >< td width =16 align =center bgcolor =#ff9900 style ="font-size:12px;cursor: hand;color: #ffffff" ';
strFrame+ =' onclick ="parent.meizzPrevM()" title ="1 Month Before" Author =meizz >< b Author =meizz > < </ b > ';
strFrame+=' </ td >< td width =30 align =center style ="font-size:12px;cursor:default" Author =meizz ';
strFrame+ ='οnmοuseοver="style.backgroundColor=/'#FFD700/'" onmouseout ="style.backgroundColor=/'white/'" ';
strFrame+ ='οnclick="parent.tmpSelectYearInnerHTML(this.innerText)" title ="Click to select year" >< span Author =meizz id =meizzYearHead ></ span ></ td > ';
strFrame+=' < td width =78 align =center style ="font-size:12px;cursor:default" Author =meizz onmouseover ="style.backgroundColor=/'#FFD700/'" ';
strFrame+ =' onmouseout ="style.backgroundColor=/'white/'" onclick ="parent.tmpSelectMonthInnerHTML(parent.athosMonthNameToNum(this.innerText))" ';
strFrame+ =' title ="Click to select month" >< span id =meizzMonthHead Author =meizz ></ span ></ td > ';
strFrame+=' < td width =16 bgcolor =#ff9900 align =center style ="font-size:12px;cursor: hand;color: #ffffff" ';
strFrame+ =' onclick ="parent.meizzNextM()" title ="1 Month Later" Author =meizz >< b Author =meizz > > </ b ></ td ></ tr > ';
strFrame+=' </ table ></ td ></ tr > ';
strFrame+=' < tr Author ="wayx" >< td width =142 height =18 Author ="wayx" > ';
strFrame+=' < table border =1 cellspacing =0 cellpadding =0 bgcolor =#ff9900 ' + (bMoveable? 'onmousedown ="DragStart()" onmouseup ="DragEnd()" ':'');
strFrame+ =' BORDERCOLORLIGHT =#FF9900 BORDERCOLORDARK =#FFFFFF width =140 height =20 Author ="wayx" style ="cursor:' + (bMoveable ? 'move':'default') + '" > ';
strFrame+=' < tr Author ="wayx" align =center valign =bottom > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Sunday" > S </ td > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Monday" > M </ td > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Tuesday" > T </ td > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Wednesday" > W </ td > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Thursday" > T </ td > ';
strFrame+=' < td width =18px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Friday" > F </ td > ';
strFrame+=' < td width =20px style ="font-size:12px;color:#FFFFFF" Author =meizz title ="Saturday" > S </ td > ';
strFrame+=' </ tr > ';
strFrame+=' </ table ></ td ></ tr > <!-- Author:F.R.Huang(meizz) http://www.meizz.com/ mail: meizz@hzcnc.com 2002-10-8 --> ';
strFrame+=' < tr Author ="wayx" >< td width =142 height =120 Author ="wayx" > ';
strFrame+=' < table border =1 cellspacing =2 cellpadding =0 BORDERCOLORLIGHT =#FF9900 BORDERCOLORDARK =#FFFFFF bgcolor =#fff8ec width =140 height =120 Author ="wayx" > ';
var n=0; for (j=0;j < 5 ;j++){ strFrame+ = ' <tr align =center Author ="wayx" > '; for (i=0;i < 7 ;i++){
strFrame+ ='<td width =20 height =20 id =meizzDay'+n+' style ="font-size:12px" Author =meizz onclick =parent.meizzDayClick(this.innerText,0) ></ td > ';n++;}
strFrame+=' </ tr > ';}
strFrame+=' < tr align =center Author ="wayx" > ';
for (i=35;i < 39 ;i++)strFrame+ ='<td width =20 height =20 id =meizzDay'+i+' style ="font-size:12px" Author =wayx onclick ="parent.meizzDayClick(this.innerText,0)" ></ td > ';
strFrame+=' < td colspan =3 align =right Author =meizz >< span onclick =parent.closeLayer() style ="font-size:12px;cursor: hand" ';
strFrame+ =' Author =meizz title ="' + _VersionInfo + '" >< u > Close </ u ></ span > </ td ></ tr > ';
strFrame+=' </ table ></ td ></ tr >< tr Author ="wayx" >< td Author ="wayx" > ';
strFrame+=' < table border =0 cellspacing =1 cellpadding =0 width =100% Author ="wayx" bgcolor =#FFFFFF > ';
strFrame+=' < tr Author ="wayx" >< td Author =meizz align =left >< input Author =meizz type =button class =button value ="<<" title ="1 Year Before" onclick ="parent.meizzPrevY()" ';
strFrame+ =' onfocus ="this.blur()" style ="font-size: 12px; height: 20px" >< input Author =meizz class =button title ="1 Month Before" type =button ';
strFrame+ =' value ="< " onclick ="parent.meizzPrevM()" onfocus ="this.blur()" style ="font-size: 12px; height: 20px" ></ td >< td ';
strFrame+ =' Author =meizz align =center > ';
strFrame+=' </ td >< td ';
strFrame+ =' Author =meizz align =right >< input Author =meizz type =button class =button value =" >" onclick ="parent.meizzNextM()" ';
strFrame+ =' onfocus ="this.blur()" title ="1 Month Later" class =button style ="font-size: 12px; height: 20px" >< input ';
strFrame+ =' Author =meizz type =button class =button value =">>" title ="1 Year Later" onclick ="parent.meizzNextY()" ';
strFrame+ =' onfocus ="this.blur()" style ="font-size: 12px; height: 20px" ></ td > ';
strFrame+=' </ tr ></ table ></ td ></ tr ></ table ></ div > ';
window.frames.meizzDateLayer.document.writeln(strFrame);
window.frames.meizzDateLayer.document.close();
var outObject;
var outButton;
var outDate="";
var odatelayer=window.frames.meizzDateLayer.document.all;
function setday(tt,obj)
{
if (arguments.length > 2){alert("Sorry, too many parameters");return;}
if (arguments.length == 0){alert("Sorry, none parameter!");return;}
var dads = document.all.meizzDateLayer.style;
var th = tt;
var ttop = tt.offsetTop;
var thei = tt.clientHeight;
var tleft = tt.offsetLeft;
var ttyp = tt.type;
while (tt = tt.offsetParent){ttop+=tt.offsetTop; tleft+=tt.offsetLeft;}
dads.top = (ttyp=="image")? ttop+thei : ttop+thei+6;
dads.left = tleft;
outObject = (arguments.length == 1) ? th : obj;
outButton = (arguments.length == 1) ? null : th;
var reg = /^(/d{1,2})//(/d{1,2})//(/d+)$/;
var r = outObject.value.match(reg);
if(r!=null){
r[0]=r[3];
r[3]=r[2];
r[2]=r[1];
r[1]=r[0];
r[2]=r[2]-1;
var d= new Date(r[1], r[2],r[3]);
if(d.getFullYear()==r[1] && d.getMonth()==r[2] && d.getDate()==r[3]){
outDate=d;
}
else outDate="";
meizzSetDay(r[1],r[2]+1);
}
else{
outDate="";
meizzSetDay(new Date().getFullYear(), new Date().getMonth() + 1);
}
dads.display = '';
event.returnValue=false;
}
var MonHead = new Array(12);
MonHead[0] = 31; MonHead[1] = 28; MonHead[2] = 31; MonHead[3] = 30; MonHead[4] = 31; MonHead[5] = 30;
MonHead[6] = 31; MonHead[7] = 31; MonHead[8] = 30; MonHead[9] = 31; MonHead[10] = 30; MonHead[11] = 31;
var meizzTheYear=new Date().getFullYear();
var meizzTheMonth=new Date().getMonth()+1;
var meizzWDay=new Array(39);
function document.onclick()
{
with(window.event)
{ if (srcElement.getAttribute("Author")==null && srcElement != outObject && srcElement != outButton)
closeLayer();
}
}
function document.onkeyup()
{
if (window.event.keyCode==27){
if(outObject)outObject.blur();
closeLayer();
}
else if(document.activeElement)
if(document.activeElement.getAttribute("Author")==null && document.activeElement != outObject && document.activeElement != outButton)
{
closeLayer();
}
}
function meizzWriteHead(yy,mm)
{
odatelayer.meizzYearHead.innerText = String(yy);
odatelayer.meizzMonthHead.innerText = athosMonthNumToName(String(mm));
}
function athosMonthNameToNum(mn)
{
switch (String(mn))
{
case "January" :
return String(1);
case "Feburary" :
return String(2);
case "March" :
return String(3);
case "April" :
return String(4);
case "May" :
return String(5);
case "June" :
return String(6);
case "July" :
return String(7);
case "August" :
return String(8);
case "September" :
return String(9);
case "October" :
return String(10);
case "November" :
return String(11);
case "December" :
return String(12);
default :
return String(0);
}
}
function athosMonthNumToName(mm)
{
switch (mm)
{
case "1":
return String("January");
case "2":
return String("Feburary");
case "3":
return String("March");
case "4":
return String("April");
case "5":
return String("May");
case "6":
return String("June");
case "7":
return String("July");
case "8":
return String("August");
case "9":
return String("September");
case "10":
return String("October");
case "11":
return String("November");
case "12":
return String("December");
default :
return String("UnknownMonth");
}
}
function tmpSelectYearInnerHTML(strYear)
{
if (strYear.match(//D/)!=null){alert("Year shall be a number.");return;}
var m = (strYear) ? strYear : new Date().getFullYear();
if (m < 1000 || m > 9999) {alert("Year shall between 1000 to 9999.");return;}
var n = m - 10;
if (n < 1000 ) n = 1000;
if (n + 26 > 9999) n = 9974;
var s = " < select Author =meizz name =tmpSelectYear style ='font-size: 12px' "
s + = "οnblur='document.all.tmpSelectYearLayer.style.display=/" none/"' "
s + = "οnchange='document.all.tmpSelectYearLayer.style.display=/" none/";"
s + = "parent.meizzTheYear = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>/r/n" ;
var selectInnerHTML = s;
for (var i = n; i < n + 26; i++)
{
if (i == m)
{selectInnerHTML + = "<option Author=wayx value='" + i + "' selected > " + i + " </ option > /r/n";}
else {selectInnerHTML += " < option Author =wayx value ='" + i + "' > " + i + " </ option > /r/n";}
}
selectInnerHTML += " </ select > ";
odatelayer.tmpSelectYearLayer.style.display="";
odatelayer.tmpSelectYearLayer.innerHTML = selectInnerHTML;
odatelayer.tmpSelectYear.focus();
}
function tmpSelectMonthInnerHTML(strMonth)
{
if (strMonth.match(//D/)!=null){alert("Month shall be a number");return;}
var m = (strMonth) ? strMonth : new Date().getMonth() + 1;
var s = " < select Author =meizz name =tmpSelectMonth style ='font-size: 12px' "
s + = "οnblur='document.all.tmpSelectMonthLayer.style.display=/" none/"' "
s + = "οnchange='document.all.tmpSelectMonthLayer.style.display=/" none/";"
s + = "parent.meizzTheMonth = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>/r/n" ;
var selectInnerHTML = s;
for (var i = 1; i < 13; i++)
{
if (i == m)
{selectInnerHTML + = "<option Author=wayx value='" +i+"' selected > "+ athosMonthNumToName(String(i)) +" </ option > /r/n";}
else {selectInnerHTML += " < option Author =wayx value ='"+i+"' > "+ athosMonthNumToName(String(i)) +" </ option > /r/n";}
}
selectInnerHTML += " </ select > ";
odatelayer.tmpSelectMonthLayer.style.display="";
odatelayer.tmpSelectMonthLayer.innerHTML = selectInnerHTML;
odatelayer.tmpSelectMonth.focus();
}
function closeLayer()
{
document.all.meizzDateLayer.style.display="none";
}
function IsPinYear(year)
{
if (0==year%4&&((year%100!=0)||(year%400==0))) return true;else return false;
}
function GetMonthCount(year,month)
{
var c=MonHead[month-1];if((month==2)& &IsPinYear (year)) c++;return c;
}
function GetDOW(day,month,year)
{
var dt=new Date(year,month-1,day).getDay()/7; return dt;
}
function meizzPrevY()
{
if(meizzTheYear > 999 && meizzTheYear < 10000 ){meizzTheYear--;}
else{alert("Year beyond (1000-9999)!");}
meizzSetDay(meizzTheYear,meizzTheMonth);
}
function meizzNextY()
{
if(meizzTheYear > 999 && meizzTheYear < 10000 ){meizzTheYear++;}
else{alert("Year beyond (1000-9999)!");}
meizzSetDay(meizzTheYear,meizzTheMonth);
}
function meizzToday()
{
var today;
meizzTheYear = new Date().getFullYear();
meizzTheMonth = new Date().getMonth()+1;
today =new Date().getDate();
//meizzSetDay(meizzTheYear,meizzTheMonth);
if(outObject){
outObject.value =meizzTheMonth + "/" + today+"/"+meizzTheYear;
}
closeLayer();
}
function meizzPrevM()
{
if(meizzTheMonth > 1){meizzTheMonth--}else{meizzTheYear--;meizzTheMonth=12;}
meizzSetDay(meizzTheYear,meizzTheMonth);
}
function meizzNextM()
{
if(meizzTheMonth==12){meizzTheYear++;meizzTheMonth=1}else{meizzTheMonth++}
meizzSetDay(meizzTheYear,meizzTheMonth);
}
function meizzSetDay(yy,mm)
{
meizzWriteHead(yy,mm);
meizzTheYear=yy;
meizzTheMonth=mm;
for (var i = 0; i < 39 ; i++){meizzWDay[i] ="" };
var day1 = 1,day2=1,firstday = new Date(yy,mm-1,1).getDay();
for (i =0;i<firstday;i++)meizzWDay[i]=GetMonthCount(mm==1?yy-1:yy,mm==1?12:mm-1)-firstday+i+1
for (i = firstday; day1 < GetMonthCount(yy,mm)+1; i++){meizzWDay[i] =day1;day1++;}
for (i =firstday+GetMonthCount(yy,mm);i<39;i++){meizzWDay[i]=day2;day2++}
for (i = 0; i < 39; i++)
{ var da = eval("odatelayer.meizzDay"+i)
if (meizzWDay[i]! ="" )
{
da.borderColorLight ="#FF9900" ;
da.borderColorDark ="#FFFFFF" ;
if(i<firstday)
{
da.innerHTML ="<b><font color=gray>" + meizzWDay[i] + "</font ></ b > ";
da.title=(mm==1?12:mm-1) +"Mn" + meizzWDay[i] + "Dt";
da.οnclick=Function("meizzDayClick(this.innerText,-1)");
if(!outDate)
da.style.backgroundColor = ((mm==1?yy-1:yy) == new Date().getFullYear() &&
(mm==1?12:mm-1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ?
"#FFD700":"#e0e0e0";
else
{
da.style.backgroundColor =((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 &&
meizzWDay[i]==outDate.getDate())? "#00ffff" :
(((mm==1?yy-1:yy) == new Date().getFullYear() && (mm==1?12:mm-1) == new Date().getMonth()+1 &&
meizzWDay[i] == new Date().getDate()) ? "#FFD700":"#e0e0e0");
if((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 &&
meizzWDay[i]==outDate.getDate())
{
da.borderColorLight="#FFFFFF";
da.borderColorDark="#FF9900";
}
}
}
else if (i>=firstday+GetMonthCount(yy,mm))
{
da.innerHTML=" < b >< font color =gray > " + meizzWDay[i] + " </ font ></ b > ";
da.title=(mm==12?1:mm+1) +"Mn" + meizzWDay[i] + "Dt";
da.οnclick=Function("meizzDayClick(this.innerText,1)");
if(!outDate)
da.style.backgroundColor = ((mm==12?yy+1:yy) == new Date().getFullYear() &&
(mm==12?1:mm+1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ?
"#FFD700":"#e0e0e0";
else
{
da.style.backgroundColor =((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 &&
meizzWDay[i]==outDate.getDate())? "#00ffff" :
(((mm==12?yy+1:yy) == new Date().getFullYear() && (mm==12?1:mm+1) == new Date().getMonth()+1 &&
meizzWDay[i] == new Date().getDate()) ? "#FFD700":"#e0e0e0");
if((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 &&
meizzWDay[i]==outDate.getDate())
{
da.borderColorLight="#FFFFFF";
da.borderColorDark="#FF9900";
}
}
}
else
{
da.innerHTML=" < b > " + meizzWDay[i] + " </ b > ";
da.title=mm +"Mn" + meizzWDay[i] + "Dt";
da.οnclick=Function("meizzDayClick(this.innerText,0)");
if(!outDate)
da.style.backgroundColor = (yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())?
"#FFD700":"#e0e0e0";
else
{
da.style.backgroundColor =(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())?
"#00ffff":((yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())?
"#FFD700":"#e0e0e0");
if(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())
{
da.borderColorLight="#FFFFFF";
da.borderColorDark="#FF9900";
}
}
}
da.style.cursor="hand"
}
else{da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"}
}
}
function meizzDayClick(n,ex)
{
var yy=meizzTheYear;
var mm = parseInt(meizzTheMonth)+ex;
if(mm < 1 ){
yy--;
mm =12+mm;
}
else if(mm > 12){
yy++;
mm=mm-12;
}
if (mm < 10 ){mm = "0" + mm;}
if (outObject)
{
if (!n) {
return;}
if ( n < 10){n = "0" + n;}
outObject.value = mm + "/" + n + "/" + yy ;
closeLayer();
}
else {closeLayer(); alert("None control to output!");}
}
用的时候先:
<
SCRIPT
src
="calendar.js"
></
SCRIPT
>
<script src="calendar.js"></script> <script src="calendar.js"></script> <script src="calendar.js"></script> <script src="calendar.js"></script> <script src="calendar.js"></script> <script src="calendar.js"></script> <script src="calendar.js"></script>
然后使用:
<
INPUT
onclick
="setday(this,document.all.tb_CheckInDate)"
type
="button"
value
="Select"
>
这里的tb_checkindate就是把选择的日期输入到文本框的id