弹出式时间选择器II

 选择     
    <SCRIPT language="javascript" src="../../Script/Calendar.js">SCRIPT>

<TD class="TD_LEFT" width="15%">客户生日TD>
<TD class="TD_BG">
<INPUT class="easytext" id="txtCustomer_Birthday" onclick="javascript:setDate(this);" readOnly type="text" align="left" size="16" name="txtCustomer_Birthday" runat="server" style="CURSOR:pointer">

../Script/Calendar.js文件
//    written    by Tan Ling    Wee    on 2 Dec 2001
//
    last updated 23 June 2002
//
    email :    fuushikaden@yahoo.com

    
if(typeof vLangue == 'undefined')
        vLangue 
= 1
    
if(typeof vWeekManagement == 'undefined')
        vWeekManagement 
= 1
        
    
var    fixedX = -1                    // x position (-1 if to appear below control)
    var    fixedY = -1                    // y position (-1 if to appear below control)
    var startAt = parseFloat(vWeekManagement)   // 0 - sunday ; 1 - monday
    var showWeekNumber = 1            // 0 - don't show; 1 - show
    var showToday = 1                // 0 - don't show; 1 - show
    var imgDir = "../../image/"                    // directory for images  e.g. var imgDir="/img/"
    var dateFormat='yyyy-mm-dd'

    
var gotoString = "当前日期"
    
var todayString = "今日为:"
    
var weekString = ""
    
var scrollLeftMessage = "Click to scroll to previous month. Hold mouse button to scroll automatically."
    
var scrollRightMessage = "Click to scroll to next month. Hold mouse button to scroll automatically."
    
var selectMonthMessage = "Click to select a month."
    
var selectYearMessage = "Click to select a year."
    
var selectDateMessage = "选中 [date] "//"Select [date] as date." // do not replace [date], it will be replaced by date.
    var altCloseCalendar = "Close the Calendar";
    
//var    monthName =    new    Array("January","February","March","April","May","June","July","August","September","October","November","December")
    var    monthName =    new    Array("1","2","3","4","5","6","7","8","9","10","11","12");
    
    
//dayName = new Array    ("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
    dayName = new Array    ("","","","","","","")
    arrTemp 
= dayName.slice(startAt,7)
    dayName 
= arrTemp.concat(dayName.slice(0,startAt))
    
    
    
if (vLangue==0//FRENCH
        {
        gotoString 
= "Aller au mois en cours"
        todayString 
= "Aujourd'hui : "
        weekString 
= "Sem"
        scrollLeftMessage 
= "Cliquer pour le mois pr閏閐ent. Tenir enfonc?pour d閞oulement automatique."
        scrollRightMessage 
= "Cliquer pour le mois suivant. Tenir enfonc?pour d閞oulement automatique."
        selectMonthMessage 
= "Cliquer pour choisir un mois."
        selectYearMessage 
= "Clicquer pour choisir une ann閑."
        selectDateMessage 
= "Choisir [date] comme date." // do not replace [date], it will be replaced by date.
        altCloseCalendar = "Fermer le calendrier"
        monthName 
=    new    Array("Janvier","F関rier","Mars","Avril","Mai","Juin","Juillet","Ao鹴","Septembre","Octobre","Novembre","D閏embre")

        dayName 
= new Array    ("Dim","Lun","Mar","Mer","Jeu","Ven","Sam")
        fullDayName 
= new Array    ("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi")
        
        arrTemp 
= dayName.slice(startAt,7)
        dayName 
= arrTemp.concat(dayName.slice(0,startAt))
        
        arrTemp 
= fullDayName.slice(startAt,7)
        fullDayName 
= arrTemp.concat(fullDayName.slice(0,startAt))
        }

    
    
var    crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear
    
    
var frmObj;

    
var    bPageLoaded=false
    
var    ie=document.all
    
var    dom=document.getElementById

    
var    ns4=document.layers
    
var    today =    new    Date()
    
var    dateNow     = today.getDate()
    
var    monthNow = today.getMonth()
    
var    yearNow     = today.getFullYear()
    
var    imgsrc = new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif")
    
var    img    = new Array()

    
var bShow = false;

    
/* hides  and  objects (for IE only)
    */
    
function showElement( elmID )
    
{
        
if( ie )
        
{
            
for( i = 0; i < document.all.tags( elmID ).length; i++ )
            
{
                obj 
= document.all.tags( elmID )[i];
                
if!obj || !obj.offsetParent )
                
{
                    
continue;
                }

                
                
                obj.style.visibility 
= "";
            }

        }

    }


    
function HolidayRec (d, m, y, desc)
    
{
        
this.d = d
        
this.m = m
        
this.y = y
        
this.desc = desc
    }


    
var HolidaysCounter = 0
    
var Holidays = new Array()

    
function addHoliday (d, m, y, desc)
    
{
        Holidays[HolidaysCounter
++= new HolidayRec ( d, m, y, desc )
    }


    
if (dom)
    
{
        
for    (i=0;i<imgsrc.length;i++)
        
{
            img[i] 
= new Image
            img[i].src 
= imgDir + imgsrc[i]
        }

        
        
//原边框颜色a0a0a0
        //document.write ("
")
        
        
var strFrame;
        strFrame
='<style>';
        strFrame
+='TD{FONT-SIZE: 9pt;font-family:宋体;line-height:14px;}';
        strFrame
+='style>';
        document.write(strFrame);
        
        document.write (
""+((showWeekNumber==1)?250:220)+" style='border-width:1;border-style:solid;border-color:#a0a0a0;}' bgcolor='#ffffff'>"StartDecMonth()\",500)'onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'> < "#D7E1F0\";' onmouseout='this.style.backgroundColor=\"#D5D5D5\"' align='center' title='请点击选择年份' onclick='popUpYear()' style='cursor:pointer;' onclick='popUpYear()'>"#D7E1F0\";' onmouseout='this.style.backgroundColor=\"#D5D5D5\"' style='cursor:pointer;' title='请点击选择月份' onclick='popUpMonth()'>"StartIncMonth()\",500)' onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'id='spanRight'> > ")
        
        
//关闭
        //
            
        
if (showToday==1)
        
{
            
//显示今日信息
            document.write ("清空关闭
")
        }

            
        document.write (
"");
        
        
//添加iframe,提高层等级
        //document.write("");
        
    }


    
var    styleAnchor="text-decoration:none;color:black;"
    
var    styleLightBorder="border-style:solid;border-width:1px;border-color:#a0a0a0;"

    
function swapImage(srcImg, destImg){
        
if (ie)    { document.getElementById(srcImg).setAttribute("src",imgDir + destImg) }
    }


    
function init()    
    
{
        
if (!ns4)
        
{
            
//if (!ie) { yearNow += 1900    }

            crossobj
=(dom)?document.getElementById("calendar").style : ie? document.all.calendar : document.calendar
            hideCalendar()

            crossMonthObj
=(dom)?document.getElementById("selectMonth").style : ie? document.all.selectMonth    : document.selectMonth

            crossYearObj
=(dom)?document.getElementById("selectYear").style : ie? document.all.selectYear : document.selectYear
            
            
if (frmCalendar!=null)
            
{
                frmObj
=(dom)?document.getElementById("frmCalendar").style : ie? document.all.frmCalendar : document.frmCalendar
            }


            monthConstructed
=false;
            yearConstructed
=false;

            
if (showToday==1)
            
{
                
if (vLangue)
                    
//底部今日信息
                    document.getElementById("lblToday").innerHTML =    todayString + ""+gotoString+"' onmousemove='window.status=\"\"' onmouseout='window.status=\"\"' style='"+styleAnchor+";' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();dateSelected=dateNow;closeCalendar();'>" + yearNow + "-" + monthName[monthNow].substring(0,3+ "-" + dateNow + ""
                    
//+dayName[firstdayofweek(today.getDay())]+",
                    //onmousemove='window.status=\""+gotoString+"\"'
                else
                    document.getElementById(
"lblToday").innerHTML =    todayString + " ""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();dateSelected=dateNow;closeCalendar();'>"+fullDayName[firstdayofweek(today.getDay())]+" le " + ((dateNow==1)?"1er":dateNow) + " " + monthName[monthNow].toLowerCase()    + "    " +    yearNow    + ""
            }


            
//向前翻一月

            
//sHTML1=""
            
            
//onmouseover='swapImage(\"changeLeft\",\"left2.gif\");this.style.borderColor=\"#88AAFF\"; window.status=\""+scrollLeftMessage+"\"'
            //onmouseout='clearInterval(intervalID1);swapImage(\"changeLeft\",\"left1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"'
            //
            
            
//选择年份
            //sHTML3="年 "

            
            
//选择月份
            //sHTML2=" "

            //onmouseover='swapImage(\"changeMonth\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectMonthMessage+"\"'
            //onmouseout='swapImage(\"changeMonth\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"'
            //title='选择月份' onclick='popUpMonth()'
            //style='border-style:solid;border-width:1;border-color:#3366FF; background-color:#D7E1F0;cursor:pointer;color:#000000;'
            
            
//onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectYearMessage+"\"'
            //onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"'
            
            
//向后翻一月

            
//sHTML4=""
            //onmouseover='swapImage(\"changeRight\",\"right2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+scrollRightMessage+"\"'
            //onmouseout='clearInterval(intervalID1);swapImage(\"changeRight\",\"right1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"'
            //
            
            
//document.getElementById("caption").innerHTML  =    sHTML1
            //document.getElementById("spanLeft").innerHTML  =    sHTML1
            //document.getElementById("spanMonth").innerHTML  =    sHTML2
            //document.getElementById("spanYear").innerHTML  =    sHTML3
            //document.getElementById("spanRight").innerHTML  =    sHTML4

            bPageLoaded
=true
        }

    }

    
function firstdayofweek(day)
    
{
        day 
-= startAt
        
if (day < 0){day = 7 + day}
        
return day
    }


    
//关闭日历
    function hideCalendar()
    
{
        crossobj.zIndex
=999;
        crossobj.visibility
="hidden"
        
        
//alert(typeof(frmObj))
        if(frmObj != null)
        
{
            
if(typeof(frmObj)=="object")
            
{
                
//alert('asdf');
                frmObj.zIndex=998;
                frmObj.left
=-100;
                frmObj.top
=-100;
                frmObj.visibility
="hidden";
            }

        }

        
        
if (crossMonthObj != null)
        
{
            crossMonthObj.zIndex
=999;
            crossMonthObj.visibility
="hidden";
        }

        
if (crossYearObj !=    null)
        
{
            crossYearObj.zIndex
=999;
            crossYearObj.visibility
="hidden"
        }

        
        
//showElement( 'SELECT' );
        //showElement( 'APPLET' );
    }

    
    
//清空日历
    function clearCalendar()
    
{
        hideCalendar();
        ctlToPlaceValue.value 
='';
    }


    
function padZero(num) {
        
return (num    < 10)? '0+ num : num ;
    }


    
function constructDate(d,m,y)
    
{
        sTmp 
= dateFormat
        sTmp 
= sTmp.replace    ("dd","")
        sTmp 
= sTmp.replace    ("d","")
        sTmp 
= sTmp.replace    ("",padZero(d))
        sTmp 
= sTmp.replace    ("",d)
        sTmp 
= sTmp.replace    ("mmm","")
        sTmp 
= sTmp.replace    ("mm","")
        sTmp 
= sTmp.replace    ("m","")
        sTmp 
= sTmp.replace    ("",m+1)
        sTmp 
= sTmp.replace    ("",padZero(m+1))
        sTmp 
= sTmp.replace    ("",monthName[m])
        
return sTmp.replace ("yyyy",y)
    }


    
function closeCalendar() {
        
var    sTmp

        hideCalendar();
        ctlToPlaceValue.value 
=    constructDate(dateSelected,monthSelected,yearSelected)
    }


    
/*** Month Pulldown    ***/

    
function StartDecMonth()
    
{
        intervalID1
=setInterval("decMonth()",80)
    }


    
function StartIncMonth()
    
{
        intervalID1
=setInterval("incMonth()",80)
    }


    
function incMonth () {
        monthSelected
++
        
if (monthSelected>11{
            monthSelected
=0
            yearSelected
++
        }

        constructCalendar()
    }


    
function decMonth () {
        monthSelected
--
        
if (monthSelected<0{
            monthSelected
=11
            yearSelected
--
        }

        constructCalendar()
    }


    
function constructMonth() {
        popDownYear()
        
if (!monthConstructed) {
            sHTML 
=    ""
            
for    (i=0; i<12;    i++{
                sName 
=    monthName[i];
                
if (i==monthSelected){
                    sName 
=    "" +    sName +    "
"
                }

                sHTML 
+= "" + i + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'> " + sName + " "
            }


            document.getElementById(
"selectMonth").innerHTML = ""popDownMonth()\",100);event.cancelBubble=true'>" +    sHTML +    ""

            monthConstructed
=true
        }

    }


    
function popUpMonth() {
        constructMonth()
        crossMonthObj.zIndex
=10000;
        crossMonthObj.visibility 
= (dom||ie)? "visible"    : "show"
        crossMonthObj.left 
= parseInt(crossobj.left) + 150;
        crossMonthObj.top 
=    parseInt(crossobj.top) + 26;

        
//hideElement( 'SELECT', document.getElementById("selectMonth") );
        //hideElement( 'APPLET', document.getElementById("selectMonth") );            
    }


    
function popDownMonth()    
    
{
        crossMonthObj.zIndex
=999;
        crossMonthObj.visibility
= "hidden"
    }


    
/*** Year Pulldown ***/

    
function incYear() {
        
for    (i=0; i<7; i++){
            newYear    
= (i+nStartingYear)+1
            
if (newYear==yearSelected)
            
{ txtYear =    " "    + newYear +    " " }

            
else
            
{ txtYear =    " " + newYear + " " }
            document.getElementById(
"y"+i).innerHTML = txtYear
        }

        nStartingYear 
++;
        bShow
=true
    }


    
function decYear() {
        
for    (i=0; i<7; i++){
            newYear    
= (i+nStartingYear)-1
            
if (newYear==yearSelected)
            
{ txtYear =    " "    + newYear +    " " }

            
else
            
{ txtYear =    " " + newYear + " " }
            document.getElementById(
"y"+i).innerHTML = txtYear
        }

        nStartingYear 
--;
        bShow
=true
    }


    
function selectYear(nYear) {
        yearSelected
=parseInt(nYear+nStartingYear);
        yearConstructed
=false;
        constructCalendar();
        popDownYear();
    }


    
function constructYear() {
        popDownMonth()
        sHTML 
=    ""
        
if (!yearConstructed) {

            sHTML 
=    ""#FFCC99\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer'onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-"

            j 
=    0
            nStartingYear 
=    yearSelected-3
            
for    (i=(yearSelected-3); i<=(yearSelected+3); i++{
                sName 
=    i;
                
if (i==yearSelected){
                    sName 
=    "" +    sName +    "
"
                }


                sHTML 
+= "" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true'> " + sName + " "
                j 
++;
            }


            sHTML 
+= ""#FFCC99\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'    onmouseup='clearInterval(intervalID2)'>+"

            document.getElementById(
"selectYear").innerHTML    = ""popDownYear()\",100)' cellspacing=1>"    + sHTML    + ""

            yearConstructed    
= true
        }

    }


    
function popDownYear() {
        clearInterval(intervalID1)
        clearTimeout(timeoutID1)
        clearInterval(intervalID2)
        clearTimeout(timeoutID2)
        crossYearObj.zIndex
=999;
        crossYearObj.visibility
= "hidden"
    }


    
function popUpYear() {
        
var    leftOffset

        constructYear()
        crossYearObj.zIndex
=10000;
        crossYearObj.visibility    
= (dom||ie)? "visible" : "show"
        leftOffset 
= parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft
        
if (ie)
        
{
            leftOffset 
+= 6
        }

        crossYearObj.left 
=    leftOffset + 15
        crossYearObj.top 
= parseInt(crossobj.top) +    26
    }


    
/*** calendar ***/
   
function WeekNbr(n) {
      
// Algorithm used:
      // From Klaus Tondering's Calendar document (The Authority/Guru)
      // hhtp://www.tondering.dk/claus/calendar.html
      // a = (14-month) / 12
      // y = year + 4800 - a
      // m = month + 12a - 3
      // J = day + (153m + 2) / 5 + 365y + y / 4 - y / 100 + y / 400 - 32045
      // d4 = (J + 31741 - (J mod 7)) mod 146097 mod 36524 mod 1461
      // L = d4 / 1460
      // d1 = ((d4 - L) mod 365) + L
      // WeekNumber = d1 / 7 + 1
 
      year 
= n.getFullYear();
      month 
= n.getMonth() + 1;
      
/*
      if (startAt == 0) {
         day = n.getDate() + 1;
      }
      else {
         day = n.getDate();
      }
*/

      day 
= n.getDate() + 1-startAt;
 
      a 
= Math.floor((14-month) / 12);
      y 
= year + 4800 - a;
      m 
= month + 12 * a - 3;
      b 
= Math.floor(y/4- Math.floor(y/100+ Math.floor(y/400);
      J 
= day + Math.floor((153 * m + 2/ 5+ 365 * y + b - 32045;
      d4 
= (((J + 31741 - (J % 7)) % 146097% 36524% 1461;
      L 
= Math.floor(d4 / 1460);
      d1 
= ((d4 - L) % 365+ L;
      week 
= Math.floor(d1/7+ 1;
 
      
return week;
   }


    
function constructCalendar () {
        
var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)

        
var dateMessage
        
var    startDate =    new    Date (yearSelected,monthSelected,1)
        
var endDate

        
if (monthSelected==1)
        
{
            endDate    
= new Date (yearSelected,monthSelected+1,1);
            endDate    
= new Date (endDate    - (24*60*60*1000));
            numDaysInMonth 
= endDate.getDate()
        }

        
else
        
{
            numDaysInMonth 
= aNumDays[monthSelected];
        }


        datePointer    
= 0
        
//dayPointer = startDate.getDay()
        dayPointer = firstdayofweek(startDate.getDay())
        
/*
        switch (startAt)
            {
            case (0): dayPointer = dayPointer
            break;
            case (1): dayPointer--
            break;
            case (6): dayPointer++
            break;
            }    
            
*/

        
//dayPointer = startDate.getDay()// - startAt
        
        
if (dayPointer<0)
        
{
            
//dayPointer = 6
        }


        
//主体内容
        sHTML =    ""

        
if (showWeekNumber==1)
        
{
            sHTML 
+= "" + weekString + "
"
            
//src='"+imgDir+"divider.gif'
        }


        
for    (i=0; i<7; i++)    {
            sHTML 
+= ""+ dayName[i]+"
"
        }

        sHTML 
+=""
        
        
if (showWeekNumber==1)
        
{
            sHTML 
+= "" + WeekNbr(startDate) + " "
        }


        
for    ( var i=1; i<=dayPointer;i++ )
        
{
            sHTML 
+= " "
        }

    
        
for    ( datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
        
{
            dayPointer
++;
            sHTML 
+= ""
            sStyle
=styleAnchor
            
if ((datePointer==odateSelected) &&    (monthSelected==omonthSelected)    && (yearSelected==oyearSelected))
            
{ sStyle+=styleLightBorder }

            sHint 
= ""
            
for (k=0;k<HolidaysCounter;k++)
            
{
                
if ((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)==(monthSelected+1)))
                
{
                    
if ((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0)))
                    
{
                        sStyle
+="background-color:#FFDDDD;"
                        sHint
+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc
                    }

                }

            }


            
var regexp= /\"/g
            sHint=sHint.replace(regexp,
"&quot;")

            dateMessage = 
"onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\""

            if ((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow))
            { sHTML += 
"<b><"+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#ff0000>&nbsp;" + datePointer + "font>&nbsp;a>b>"}
            else if    (dayPointer % 7 == (startAt * -1)+1)
            { sHTML += 
"<"+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;<font color=#909090>" + datePointer + "font>&nbsp;a>" }
            else
            { sHTML += 
"<"+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;" + datePointer + "&nbsp;a>" }

            sHTML += 
""
            if ((dayPointer+startAt) % 7 == startAt) { 
                sHTML += 
"tr><tr>" 
                if ((showWeekNumber==1)&&(datePointer                {
                    sHTML += 
"<td align=right>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + "&nbsp;td>"
                }
            }
        }

        document.getElementById(
"content").innerHTML   = sHTML
        
        //月份
        document.getElementById(
"spanMonth").innerHTML = "&nbsp;" +    monthName[monthSelected] + "&nbsp;月"
        //"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>
        
        //年份
        document.getElementById(
"spanYear").innerHTML =    "&nbsp;" + yearSelected    + "&nbsp;年"
        //"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>    
    }

    //调用日历选择
    //function popUpCalendar(ctl, ctl2, format, top, left)
    function setDate(ctl) 
    {
        var format='yyyy-mm-dd';
        var top=-1;
        var left=-1;
        var    leftpos = left
        var    toppos = top
        
        if (isNaN(left))
            leftpos = -235 //-208
            
        if (isNaN(top))
            toppos = 0

        if (bPageLoaded)
        {
            if ( crossobj.visibility ==    
"hidden" ) 
            {
                ctlToPlaceValue    = ctl//ctl2
                dateFormat=format;

                formatChar = 
" "
                aFormat    = dateFormat.split(formatChar)
                if (aFormat.length<3)
                {
                    formatChar = 
"/"
                    aFormat    = dateFormat.split(formatChar)
                    if (aFormat.length<3)
                    {
                        formatChar = 
"."
                        aFormat    = dateFormat.split(formatChar)
                        if (aFormat.length<3)
                        {
                            formatChar = 
"-"
                            aFormat    = dateFormat.split(formatChar)
                            if (aFormat.length<3)
                            {
                                // invalid date    format
                                formatChar=
""
                            }
                        }
                    }
                }
        
                tokensChanged =    0
                if ( formatChar    != 
"" )
                {
                    // use user's date
                    aData =    ctl.value.split(formatChar)//ctl2.value.split(formatChar)

                    for    (i=0;i<3;i++)
                    {
                        if ((aFormat[i]==
"d") || (aFormat[i]=="dd"))
                        {
                            dateSelected = parseInt(aData[i], 10)
                            tokensChanged ++
                        }
                        else if    ((aFormat[i]==
"m") || (aFormat[i]=="mm"))
                        {
                            monthSelected =    parseInt(aData[i], 10) - 1
                            tokensChanged ++
                        }
                        else if    (aFormat[i]==
"yyyy")
                        {
                            yearSelected = parseInt(aData[i], 10)
                            tokensChanged ++
                        }
                        else if    (aFormat[i]==
"mmm")
                        {
                            for    (j=0; j<12;    j++)
                            {
                                if (aData[i]==monthName[j])
                                {
                                    monthSelected=j
                                    tokensChanged ++
                                }
                            }
                        }
                    }
                }

                if ((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected))
                {
                    dateSelected = dateNow
                    monthSelected =    monthNow
                    yearSelected = yearNow
                }

                odateSelected=dateSelected
                omonthSelected=monthSelected
                oyearSelected=yearSelected

                aTag = ctl
                do {
                    aTag = aTag.offsetParent;
                    leftpos    += aTag.offsetLeft;
                    toppos += aTag.offsetTop;
                } while(aTag.tagName!=
"BODY");

                crossobj.left =    fixedX==-1 ? ctl.offsetLeft    + leftpos :    fixedX
                crossobj.top = fixedY==-1 ?    ctl.offsetTop +    toppos + ctl.offsetHeight +    2 :    fixedY
                crossobj.zIndex = 10000;
                constructCalendar (1, monthSelected, yearSelected);
                crossobj.visibility=(dom||ie)? 
"visible" : "show"
                
                frmObj.top = crossobj.top;
                frmObj.left = crossobj.left;
                frmObj.posWidth = crossobj.offsetWidth;
                frmObj.posHeight = crossobj.offsetHeight;
                frmObj.zIndex = 9999;
                frmObj.visibility = (dom||ie)? 
"visible" : "show";

                //hideElement( 'SELECT', document.getElementById(
"calendar") );
                //hideElement( 'APPLET', document.getElementById(
"calendar") );            

                bShow = true;
            }
            else
            {
                hideCalendar()
                if (ctlNow!=ctl) {popUpCalendar(ctl)}
            }
            ctlNow = ctl
        }
    }

    document.onkeypress = function hidecal1 () 
    { 
        if (event.keyCode==27) 
        {
            hideCalendar()
        }
    }
    document.onclick = function hidecal2 () 
    {         
        if (!bShow)
        {
            hideCalendar()
        }
        bShow = false
    }

    if(ie)
    {
        init()
    }
    else
    {
        window.onload=init
    }
posted @ 2006-02-05 13:45  blueKnight  Views(626)  Comments(0Edit  收藏  举报