
 calendar.js
calendar.js var dateFormat = 'yyyy-mm-dd';
var dateFormat = 'yyyy-mm-dd';
 if(typeof vLangue == 'undefined')
if(typeof vLangue == 'undefined') vLangue = 1
    vLangue = 1 if(typeof vWeekManagement == 'undefined')
if(typeof vWeekManagement == 'undefined') vWeekManagement = 1
    vWeekManagement = 1 
    

 var    fixedX = -1                    // x position (-1 if to appear below control)
var    fixedX = -1                    // x position (-1 if to appear below control) var    fixedY = -1                    // y 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 startAt = parseFloat(vWeekManagement)   // 0 - sunday ; 1 - monday var showWeekNumber = 1            // 0 - don't show; 1 - show
var showWeekNumber = 1            // 0 - don't show; 1 - show var showToday = 1                // 0 - don't show; 1 - show
var showToday = 1                // 0 - don't show; 1 - show var imgDir = "../Images/"                    // directory for images
var imgDir = "../Images/"                    // directory for images  e.g. var imgDir="/Images/"
 e.g. var imgDir="/Images/"
 var gotoString = "Go To Current Month"
var gotoString = "Go To Current Month" var todayString = "Today is"
var todayString = "Today is" var weekString = "Wk"
var weekString = "Wk" var scrollLeftMessage = "Click to scroll to previous month. Hold mouse button to scroll automatically."
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 scrollRightMessage = "Click to scroll to next month. Hold mouse button to scroll automatically." var selectMonthMessage = "Click to select a month."
var selectMonthMessage = "Click to select a month." var selectYearMessage = "Click to select a year."
var selectYearMessage = "Click to select a year." var selectDateMessage = "Select [date] as date." // do not replace [date], it will be replaced by date.
var selectDateMessage = "Select [date] as date." // do not replace [date], it will be replaced by date. var altCloseCalendar = "Close the Calendar"
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("January","February","March","April","May","June","July","August","September","October","November","December")
 dayName = new Array    ("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
dayName = new Array    ("Sun","Mon","Tue","Wed","Thu","Fri","Sat") arrTemp = dayName.slice(startAt,7)
arrTemp = dayName.slice(startAt,7) dayName = arrTemp.concat(dayName.slice(0,startAt))
dayName = arrTemp.concat(dayName.slice(0,startAt)) 
                 if (vLangue==0) //FRENCH
if (vLangue==0) //FRENCH

 {
{ gotoString = "Aller au mois en cours"
    gotoString = "Aller au mois en cours" todayString = "Aujourd'hui : "
    todayString = "Aujourd'hui : " weekString = "Sem"
    weekString = "Sem" scrollLeftMessage = "Cliquer pour le mois prcdent. Tenir enfonc?pour droulement automatique."
    scrollLeftMessage = "Cliquer pour le mois prcdent. Tenir enfonc?pour droulement automatique." scrollRightMessage = "Cliquer pour le mois suivant. Tenir enfonc?pour droulement automatique."
    scrollRightMessage = "Cliquer pour le mois suivant. Tenir enfonc?pour droulement automatique." selectMonthMessage = "Cliquer pour choisir un mois."
    selectMonthMessage = "Cliquer pour choisir un mois." selectYearMessage = "Clicquer pour choisir une anne."
    selectYearMessage = "Clicquer pour choisir une anne." selectDateMessage = "Choisir [date] comme date." // do not replace [date], it will be replaced by date.
    selectDateMessage = "Choisir [date] comme date." // do not replace [date], it will be replaced by date. altCloseCalendar = "Fermer le calendrier"
    altCloseCalendar = "Fermer le calendrier" monthName =    new    Array("Janvier","Fvrier","Mars","Avril","Mai","Juin","Juillet","Aot","Septembre","Octobre","Novembre","Dcembre")
    monthName =    new    Array("Janvier","Fvrier","Mars","Avril","Mai","Juin","Juillet","Aot","Septembre","Octobre","Novembre","Dcembre")
 dayName = new Array    ("Dim","Lun","Mar","Mer","Jeu","Ven","Sam")
    dayName = new Array    ("Dim","Lun","Mar","Mer","Jeu","Ven","Sam") fullDayName = new Array    ("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi")
    fullDayName = new Array    ("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi") 
     arrTemp = dayName.slice(startAt,7)
    arrTemp = dayName.slice(startAt,7) dayName = arrTemp.concat(dayName.slice(0,startAt))
    dayName = arrTemp.concat(dayName.slice(0,startAt)) 
     arrTemp = fullDayName.slice(startAt,7)
    arrTemp = fullDayName.slice(startAt,7) fullDayName = arrTemp.concat(fullDayName.slice(0,startAt))
    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    crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear
 var    bPageLoaded=false
var    bPageLoaded=false var    ie=document.all
var    ie=document.all var    dom=document.getElementById
var    dom=document.getElementById
 var    ns4=document.layers
var    ns4=document.layers var    today =    new    Date()
var    today =    new    Date() var    dateNow     = today.getDate()
var    dateNow     = today.getDate() var    monthNow = today.getMonth()
var    monthNow = today.getMonth() var    yearNow     = today.getYear()
var    yearNow     = today.getYear() var    imgsrc = new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif")
var    imgsrc = new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif") var    img    = new Array()
var    img    = new Array()
 var bShow = false;
var bShow = false;

 /**//* hides <select> and <applet> objects (for IE only) */
/**//* hides <select> and <applet> objects (for IE only) */ function hideElement( elmID, overDiv )
function hideElement( elmID, overDiv )

 {
{ if( ie )
    if( ie )
 
     {
{ for( i = 0; i < document.all.tags( elmID ).length; i++ )
        for( i = 0; i < document.all.tags( elmID ).length; i++ )
 
         {
{ obj = document.all.tags( elmID )[i];
            obj = document.all.tags( elmID )[i]; if( !obj || !obj.offsetParent )
            if( !obj || !obj.offsetParent )
 
             {
{ continue;
                continue; }
            } 
             // Find the element's offsetTop and offsetLeft relative to the BODY tag.
            // Find the element's offsetTop and offsetLeft relative to the BODY tag. objLeft   = obj.offsetLeft;
            objLeft   = obj.offsetLeft; objTop    = obj.offsetTop;
            objTop    = obj.offsetTop; objParent = obj.offsetParent;
            objParent = obj.offsetParent; 
                 while( objParent.tagName.toUpperCase() != "BODY" )
            while( objParent.tagName.toUpperCase() != "BODY" )
 
             {
{ objLeft  += objParent.offsetLeft;
                objLeft  += objParent.offsetLeft; objTop   += objParent.offsetTop;
                objTop   += objParent.offsetTop; objParent = objParent.offsetParent;
                objParent = objParent.offsetParent; }
            } 
             objHeight = obj.offsetHeight;
            objHeight = obj.offsetHeight; objWidth = obj.offsetWidth;
            objWidth = obj.offsetWidth; 
             if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
            if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft ); else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
            else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop ); else if( overDiv.offsetTop >= ( objTop + objHeight ));
            else if( overDiv.offsetTop >= ( objTop + objHeight )); else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
            else if( overDiv.offsetLeft >= ( objLeft + objWidth )); else
            else
 
             {
{ obj.style.visibility = "hidden";
                obj.style.visibility = "hidden"; }
            } }
        } }
    } }
} 
                
 /**//*
/**//* * unhides <select> and <applet> objects (for IE only)
* unhides <select> and <applet> objects (for IE only) */
*/ function showElement( elmID )
function showElement( elmID )

 {
{ if( ie )
    if( ie )
 
     {
{ for( i = 0; i < document.all.tags( elmID ).length; i++ )
        for( i = 0; i < document.all.tags( elmID ).length; i++ )
 
         {
{ obj = document.all.tags( elmID )[i];
        obj = document.all.tags( elmID )[i]; 
             if( !obj || !obj.offsetParent )
        if( !obj || !obj.offsetParent )
 
         {
{ continue;
            continue; }
        } 
         obj.style.visibility = "";
        obj.style.visibility = ""; }
        } }
    } }
}
 function HolidayRec (d, m, y, desc)
function HolidayRec (d, m, y, desc)

 {
{ this.d = d
    this.d = d this.m = m
    this.m = m this.y = y
    this.y = y this.desc = desc
    this.desc = desc }
}
 var HolidaysCounter = 0
var HolidaysCounter = 0 var Holidays = new Array()
var Holidays = new Array()
 function addHoliday (d, m, y, desc)
function addHoliday (d, m, y, desc)

 {
{ Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc )
    Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc ) }
}
 if (dom)
if (dom)

 {
{ for    (i=0;i<imgsrc.length;i++)
    for    (i=0;i<imgsrc.length;i++)
 
     {
{ img[i] = new Image
        img[i] = new Image img[i].src = imgDir + imgsrc[i]
        img[i].src = imgDir + imgsrc[i] }
    } document.write ("<div onclick='bShow=true' id='calendar'    style='z-index:+999;position:absolute;visibility:hidden;'><table    width="+((showWeekNumber==1)?250:220)+" style='font-family:arial;font-size:11px;border-width:1;border-style:solid;border-color:#a0a0a0;font-family:arial; font-size:11px}' bgcolor='#ffffff'><tr bgcolor='#0000aa'><td><table width='"+((showWeekNumber==1)?248:218)+"'><tr><td style='padding:2px;font-family:arial; font-size:11px;'><font color='#ffffff'><B><span id='caption'></span></B></font></td><td align=right><a href='javascript:hideCalendar()'><IMG SRC='"+imgDir+"close.gif' name=close WIDTH='15' HEIGHT='13' BORDER='0' ALT='" + altCloseCalendar + "'></a></td></tr></table></td></tr><tr><td style='padding:5px' bgcolor=#ffffff><span id='content'></span></td></tr>")
    document.write ("<div onclick='bShow=true' id='calendar'    style='z-index:+999;position:absolute;visibility:hidden;'><table    width="+((showWeekNumber==1)?250:220)+" style='font-family:arial;font-size:11px;border-width:1;border-style:solid;border-color:#a0a0a0;font-family:arial; font-size:11px}' bgcolor='#ffffff'><tr bgcolor='#0000aa'><td><table width='"+((showWeekNumber==1)?248:218)+"'><tr><td style='padding:2px;font-family:arial; font-size:11px;'><font color='#ffffff'><B><span id='caption'></span></B></font></td><td align=right><a href='javascript:hideCalendar()'><IMG SRC='"+imgDir+"close.gif' name=close WIDTH='15' HEIGHT='13' BORDER='0' ALT='" + altCloseCalendar + "'></a></td></tr></table></td></tr><tr><td style='padding:5px' bgcolor=#ffffff><span id='content'></span></td></tr>") 
         if (showToday==1)
    if (showToday==1)
 
     {
{ document.write ("<tr bgcolor=#f0f0f0><td style='padding:5px' align=center><span id='lblToday'></span></td></tr>")
        document.write ("<tr bgcolor=#f0f0f0><td style='padding:5px' align=center><span id='lblToday'></span></td></tr>") }
    } 
         document.write ("</table></div><div id='selectMonth' style='z-index:+999;position:absolute;visibility:hidden;'></div><div id='selectYear' style='z-index:+999;position:absolute;visibility:hidden;'></div>");
    document.write ("</table></div><div id='selectMonth' style='z-index:+999;position:absolute;visibility:hidden;'></div><div id='selectYear' style='z-index:+999;position:absolute;visibility:hidden;'></div>"); }
}
 var    styleAnchor="text-decoration:none;color:black;"
var    styleAnchor="text-decoration:none;color:black;" var    styleLightBorder="border-style:solid;border-width:1px;border-color:#a0a0a0;"
var    styleLightBorder="border-style:solid;border-width:1px;border-color:#a0a0a0;"
 function swapImage(srcImg, destImg)
function swapImage(srcImg, destImg)

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

 {
{ if (!ns4)
    if (!ns4)
 
     {
{
 if (!ie)
        if (!ie)  { yearNow += 1900    }
{ yearNow += 1900    }
 crossobj=(dom)?document.getElementById("calendar").style : ie? document.all.calendar : document.calendar
        crossobj=(dom)?document.getElementById("calendar").style : ie? document.all.calendar : document.calendar hideCalendar()
        hideCalendar()
 crossMonthObj=(dom)?document.getElementById("selectMonth").style : ie? document.all.selectMonth    : document.selectMonth
        crossMonthObj=(dom)?document.getElementById("selectMonth").style : ie? document.all.selectMonth    : document.selectMonth
 crossYearObj=(dom)?document.getElementById("selectYear").style : ie? document.all.selectYear : document.selectYear
        crossYearObj=(dom)?document.getElementById("selectYear").style : ie? document.all.selectYear : document.selectYear
 monthConstructed=false;
        monthConstructed=false; yearConstructed=false;
        yearConstructed=false;
 if (showToday==1)
        if (showToday==1)
 
         {
{ if (vLangue)
            if (vLangue) document.getElementById("lblToday").innerHTML =    todayString + " <a onmousemove='window.status=\""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();'>"+dayName[firstdayofweek(today.getDay())]+", " + dateNow + " " + monthName[monthNow].substring(0,3)    + "    " +    yearNow    + "</a>"
                document.getElementById("lblToday").innerHTML =    todayString + " <a onmousemove='window.status=\""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();'>"+dayName[firstdayofweek(today.getDay())]+", " + dateNow + " " + monthName[monthNow].substring(0,3)    + "    " +    yearNow    + "</a>" else
            else document.getElementById("lblToday").innerHTML =    todayString + " <a onmousemove='window.status=\""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();'>"+fullDayName[firstdayofweek(today.getDay())]+" le " + ((dateNow==1)?"1<sup>er</sup>":dateNow) + " " + monthName[monthNow].toLowerCase()    + "    " +    yearNow    + "</a>"
                document.getElementById("lblToday").innerHTML =    todayString + " <a onmousemove='window.status=\""+gotoString+"\"' onmouseout='window.status=\"\"' title='"+gotoString+"' style='"+styleAnchor+"' href='javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();'>"+fullDayName[firstdayofweek(today.getDay())]+" le " + ((dateNow==1)?"1<sup>er</sup>":dateNow) + " " + monthName[monthNow].toLowerCase()    + "    " +    yearNow    + "</a>" }
        }
 sHTML1="<span id='spanLeft'    style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer' onmouseover='swapImage(\"changeLeft\",\"left2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+scrollLeftMessage+"\"' onclick='javascript:decMonth()' onmouseout='clearInterval(intervalID1);swapImage(\"changeLeft\",\"left1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)'    onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'> <IMG id='changeLeft' SRC='"+imgDir+"left1.gif' width=10 height=11 BORDER=0> </span> "
        sHTML1="<span id='spanLeft'    style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer' onmouseover='swapImage(\"changeLeft\",\"left2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+scrollLeftMessage+"\"' onclick='javascript:decMonth()' onmouseout='clearInterval(intervalID1);swapImage(\"changeLeft\",\"left1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)'    onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'> <IMG id='changeLeft' SRC='"+imgDir+"left1.gif' width=10 height=11 BORDER=0> </span> " sHTML1+="<span id='spanRight' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer'    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=\"\"' onclick='incMonth()' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartIncMonth()\",500)'    onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'> <IMG id='changeRight' SRC='"+imgDir+"right1.gif'    width=10 height=11 BORDER=0> </span> "
        sHTML1+="<span id='spanRight' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer'    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=\"\"' onclick='incMonth()' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartIncMonth()\",500)'    onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'> <IMG id='changeRight' SRC='"+imgDir+"right1.gif'    width=10 height=11 BORDER=0> </span> " sHTML1+="<span id='spanMonth' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer'    onmouseover='swapImage(\"changeMonth\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectMonthMessage+"\"' onmouseout='swapImage(\"changeMonth\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onclick='popUpMonth()'></span> "
        sHTML1+="<span id='spanMonth' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer'    onmouseover='swapImage(\"changeMonth\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectMonthMessage+"\"' onmouseout='swapImage(\"changeMonth\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"' onclick='popUpMonth()'></span> " sHTML1+="<span id='spanYear' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer' onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectYearMessage+"\"'    onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"'    onclick='popUpYear()'></span> "
        sHTML1+="<span id='spanYear' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer' onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectYearMessage+"\"'    onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"'    onclick='popUpYear()'></span> " 
         document.getElementById("caption").innerHTML  =    sHTML1
        document.getElementById("caption").innerHTML  =    sHTML1
 bPageLoaded=true
        bPageLoaded=true }
    } }
} function firstdayofweek(day)
function firstdayofweek(day)

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

 {
{ crossobj.visibility="hidden"
    crossobj.visibility="hidden"
 if (crossMonthObj != null)
    if (crossMonthObj != null) {crossMonthObj.visibility="hidden"}
{crossMonthObj.visibility="hidden"}
 if (crossYearObj !=    null)
    if (crossYearObj !=    null) {crossYearObj.visibility="hidden"}
{crossYearObj.visibility="hidden"}
 showElement( 'SELECT' );
    showElement( 'SELECT' ); showElement( 'APPLET' );
    showElement( 'APPLET' ); }
}

 function padZero(num)
function padZero(num)  {
{ return (num    < 10)? '0' + num : num ;
    return (num    < 10)? '0' + num : num ; }
}
 function constructDate(d,m,y)
function constructDate(d,m,y)

 {
{ sTmp = dateFormat
    sTmp = dateFormat sTmp = sTmp.replace    ("dd","<e>")
    sTmp = sTmp.replace    ("dd","<e>") sTmp = sTmp.replace    ("d","<d>")
    sTmp = sTmp.replace    ("d","<d>") sTmp = sTmp.replace    ("<e>",padZero(d))
    sTmp = sTmp.replace    ("<e>",padZero(d)) sTmp = sTmp.replace    ("<d>",d)
    sTmp = sTmp.replace    ("<d>",d) sTmp = sTmp.replace    ("mmm","<o>")
    sTmp = sTmp.replace    ("mmm","<o>") sTmp = sTmp.replace    ("mm","<n>")
    sTmp = sTmp.replace    ("mm","<n>") sTmp = sTmp.replace    ("m","<m>")
    sTmp = sTmp.replace    ("m","<m>") sTmp = sTmp.replace    ("<m>",m+1)
    sTmp = sTmp.replace    ("<m>",m+1) sTmp = sTmp.replace    ("<n>",padZero(m+1))
    sTmp = sTmp.replace    ("<n>",padZero(m+1)) sTmp = sTmp.replace    ("<o>",monthName[m])
    sTmp = sTmp.replace    ("<o>",monthName[m]) return sTmp.replace ("yyyy",y)
    return sTmp.replace ("yyyy",y) }
}

 function closeCalendar()
function closeCalendar()  {
{ var    sTmp
    var    sTmp
 hideCalendar();
    hideCalendar(); ctlToPlaceValue.value =    constructDate(dateSelected,monthSelected,yearSelected)
    ctlToPlaceValue.value =    constructDate(dateSelected,monthSelected,yearSelected) }
}

 /**//*** Month Pulldown    ***/
/**//*** Month Pulldown    ***/
 function StartDecMonth()
function StartDecMonth()

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

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

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

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

 function constructMonth()
function constructMonth()  {
{ popDownYear()
    popDownYear()
 if (!monthConstructed)
    if (!monthConstructed)  {
{ sHTML =    ""
        sHTML =    ""
 for    (i=0; i<12;    i++)
        for    (i=0; i<12;    i++)  {
{ sName =    monthName[i];
            sName =    monthName[i];
 if (i==monthSelected)
            if (i==monthSelected) {
{ sName =    "<B>" +    sName +    "</B>"
                sName =    "<B>" +    sName +    "</B>" }
            } sHTML += "<tr><td id='m" + i + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'> " + sName + " </td></tr>"
            sHTML += "<tr><td id='m" + i + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'> " + sName + " </td></tr>" }
        }
 document.getElementById("selectMonth").innerHTML = "<table width=70    style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;' bgcolor='#FFFFDD' cellspacing=0 onmouseover='clearTimeout(timeoutID1)'    onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" +    sHTML +    "</table>"
        document.getElementById("selectMonth").innerHTML = "<table width=70    style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;' bgcolor='#FFFFDD' cellspacing=0 onmouseover='clearTimeout(timeoutID1)'    onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" +    sHTML +    "</table>"
 monthConstructed=true
        monthConstructed=true }
    } }
}

 function popUpMonth()
function popUpMonth()  {
{ constructMonth()
    constructMonth() crossMonthObj.visibility = (dom||ie)? "visible"    : "show"
    crossMonthObj.visibility = (dom||ie)? "visible"    : "show" crossMonthObj.left = parseInt(crossobj.left) + 50
    crossMonthObj.left = parseInt(crossobj.left) + 50 crossMonthObj.top =    parseInt(crossobj.top) + 26
    crossMonthObj.top =    parseInt(crossobj.top) + 26
 hideElement( 'SELECT', document.getElementById("selectMonth") );
    hideElement( 'SELECT', document.getElementById("selectMonth") ); hideElement( 'APPLET', document.getElementById("selectMonth") );
    hideElement( 'APPLET', document.getElementById("selectMonth") );             }
}

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

 /**//*** Year Pulldown ***/
/**//*** Year Pulldown ***/

 function incYear()
function incYear()  {
{
 for    (i=0; i<7; i++)
    for    (i=0; i<7; i++) {
{ newYear    = (i+nStartingYear)+1
        newYear    = (i+nStartingYear)+1 if (newYear==yearSelected)
        if (newYear==yearSelected)
 
         { txtYear =    " <B>"    + newYear +    "</B> " }
{ txtYear =    " <B>"    + newYear +    "</B> " } else
        else
 
         { txtYear =    " " + newYear + " " }
{ txtYear =    " " + newYear + " " } document.getElementById("y"+i).innerHTML = txtYear
        document.getElementById("y"+i).innerHTML = txtYear }
    } nStartingYear ++;
    nStartingYear ++; bShow=true
    bShow=true }
}

 function decYear()
function decYear()  {
{
 for    (i=0; i<7; i++)
    for    (i=0; i<7; i++) {
{ newYear    = (i+nStartingYear)-1
        newYear    = (i+nStartingYear)-1 if (newYear==yearSelected)
        if (newYear==yearSelected)
 
         { txtYear =    " <B>"    + newYear +    "</B> " }
{ txtYear =    " <B>"    + newYear +    "</B> " } else
        else
 
         { txtYear =    " " + newYear + " " }
{ txtYear =    " " + newYear + " " } document.getElementById("y"+i).innerHTML = txtYear
        document.getElementById("y"+i).innerHTML = txtYear }
    } nStartingYear --;
    nStartingYear --; bShow=true
    bShow=true }
}

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

 function constructYear()
function constructYear()  {
{ popDownMonth()
    popDownMonth() sHTML =    ""
    sHTML =    ""
 if (!yearConstructed)
    if (!yearConstructed)  {
{
 sHTML =    "<tr><td align='center'    onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer'    onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"
        sHTML =    "<tr><td align='center'    onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer'    onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"
 j =    0
        j =    0 nStartingYear =    yearSelected-3
        nStartingYear =    yearSelected-3
 for    (i=(yearSelected-3); i<=(yearSelected+3); i++)
        for    (i=(yearSelected-3); i<=(yearSelected+3); i++)  {
{ sName =    i;
            sName =    i;
 if (i==yearSelected)
            if (i==yearSelected) {
{ sName =    "<B>" +    sName +    "</B>"
                sName =    "<B>" +    sName +    "</B>" }
            }
 sHTML += "<tr><td id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true'> " + sName + " </td></tr>"
            sHTML += "<tr><td id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true'> " + sName + " </td></tr>" j ++;
            j ++; }
        }
 sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'    onmouseup='clearInterval(intervalID2)'>+</td></tr>"
        sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'    onmouseup='clearInterval(intervalID2)'>+</td></tr>"
 document.getElementById("selectYear").innerHTML    = "<table width=44 style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;'    bgcolor='#FFFFDD' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"    + sHTML    + "</table>"
        document.getElementById("selectYear").innerHTML    = "<table width=44 style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;'    bgcolor='#FFFFDD' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"    + sHTML    + "</table>"
 yearConstructed    = true
        yearConstructed    = true }
    } }
}

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

 function popUpYear()
function popUpYear()  {
{ var    leftOffset
    var    leftOffset
 constructYear()
    constructYear() crossYearObj.visibility    = (dom||ie)? "visible" : "show"
    crossYearObj.visibility    = (dom||ie)? "visible" : "show" leftOffset = parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft
    leftOffset = parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft if (ie)
    if (ie)
 
     {
{ leftOffset += 6
        leftOffset += 6 }
    } crossYearObj.left =    leftOffset
    crossYearObj.left =    leftOffset crossYearObj.top = parseInt(crossobj.top) +    26
    crossYearObj.top = parseInt(crossobj.top) +    26 }
}

 /**//*** calendar ***/
/**//*** calendar ***/ function WeekNbr(n)
function WeekNbr(n) 

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

 {
{ var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)
    var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)
 var dateMessage
    var dateMessage var    startDate =    new    Date (yearSelected,monthSelected,1)
    var    startDate =    new    Date (yearSelected,monthSelected,1) var endDate
    var endDate
 if (monthSelected==1)
    if (monthSelected==1)
 
     {
{ endDate    = new Date (yearSelected,monthSelected+1,1);
        endDate    = new Date (yearSelected,monthSelected+1,1); endDate    = new Date (endDate    - (24*60*60*1000));
        endDate    = new Date (endDate    - (24*60*60*1000)); numDaysInMonth = endDate.getDate()
        numDaysInMonth = endDate.getDate() }
    } else
    else
 
     {
{ numDaysInMonth = aNumDays[monthSelected];
        numDaysInMonth = aNumDays[monthSelected]; }
    }
 datePointer    = 0
    datePointer    = 0 
     dayPointer = firstdayofweek(startDate.getDay())
    dayPointer = firstdayofweek(startDate.getDay()) 
     if (dayPointer<0)
    if (dayPointer<0)
 
     {
{ //dayPointer = 6
        //dayPointer = 6 }
    }
 sHTML =    "<table     border=0 style='font-family:verdana;font-size:10px;'><tr>"
    sHTML =    "<table     border=0 style='font-family:verdana;font-size:10px;'><tr>"
 if (showWeekNumber==1)
    if (showWeekNumber==1)
 
     {
{ sHTML += "<td width=27><b>" + weekString + "</b></td><td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'><img src='"+imgDir+"divider.gif' width=1></td>"
        sHTML += "<td width=27><b>" + weekString + "</b></td><td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'><img src='"+imgDir+"divider.gif' width=1></td>" }
    }

 for    (i=0; i<7; i++)
    for    (i=0; i<7; i++)     {
{ sHTML += "<td width='27' align='right'><B>"+ dayName[i]+"</B></td>"
        sHTML += "<td width='27' align='right'><B>"+ dayName[i]+"</B></td>" }
    } sHTML +="</tr><tr>"
    sHTML +="</tr><tr>" 
     if (showWeekNumber==1)
    if (showWeekNumber==1)
 
     {
{ sHTML += "<td align=right>" + WeekNbr(startDate) + " </td>"
        sHTML += "<td align=right>" + WeekNbr(startDate) + " </td>" }
    }
 for    ( var i=1; i<=dayPointer;i++ )
    for    ( var i=1; i<=dayPointer;i++ )
 
     {
{ sHTML += "<td> </td>"
        sHTML += "<td> </td>" }
    }
 for    ( datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
    for    ( datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
 
     {
{ dayPointer++;
        dayPointer++; sHTML += "<td align=right>"
        sHTML += "<td align=right>" sStyle=styleAnchor
        sStyle=styleAnchor if ((datePointer==odateSelected) &&    (monthSelected==omonthSelected)    && (yearSelected==oyearSelected))
        if ((datePointer==odateSelected) &&    (monthSelected==omonthSelected)    && (yearSelected==oyearSelected))
 
         { sStyle+=styleLightBorder }
{ sStyle+=styleLightBorder }
 sHint = ""
        sHint = "" for (k=0;k<HolidaysCounter;k++)
        for (k=0;k<HolidaysCounter;k++)
 
         {
{ if ((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)==(monthSelected+1)))
            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)))
                if ((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0)))
 
                 {
{ sStyle+="background-color:#FFDDDD;"
                    sStyle+="background-color:#FFDDDD;" sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc
                    sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc }
                } }
            } }
        }
 var regexp= /\"/g
        var regexp= /\"/g sHint=sHint.replace(regexp,""")
        sHint=sHint.replace(regexp,""")
 dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "
        dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "
 if ((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow))
        if ((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow)) { sHTML += "<b><a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#ff0000> " + datePointer + "</font> </a></b>"}
        { sHTML += "<b><a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#ff0000> " + datePointer + "</font> </a></b>"} else if    (dayPointer % 7 == (startAt * -1)+1)
        else if    (dayPointer % 7 == (startAt * -1)+1) { sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'> <font color=#909090>" + datePointer + "</font> </a>" }
        { sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'> <font color=#909090>" + datePointer + "</font> </a>" } else
        else { sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'> " + datePointer + " </a>" }
        { sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'> " + datePointer + " </a>" }
 sHTML += ""
        sHTML += "" if ((dayPointer+startAt) % 7 == startAt) {
        if ((dayPointer+startAt) % 7 == startAt) {  sHTML += "</tr><tr>"
            sHTML += "</tr><tr>"  if ((showWeekNumber==1)&&(datePointer<numDaysInMonth))
            if ((showWeekNumber==1)&&(datePointer<numDaysInMonth)) {
            { sHTML += "<td align=right>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + " </td>"
                sHTML += "<td align=right>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + " </td>" }
            } }
        } }
    }
 document.getElementById("content").innerHTML   = sHTML
    document.getElementById("content").innerHTML   = sHTML document.getElementById("spanMonth").innerHTML = " " +    monthName[monthSelected] + " <IMG id='changeMonth' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
    document.getElementById("spanMonth").innerHTML = " " +    monthName[monthSelected] + " <IMG id='changeMonth' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>" document.getElementById("spanYear").innerHTML =    " " + yearSelected    + " <IMG id='changeYear' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
    document.getElementById("spanYear").innerHTML =    " " + yearSelected    + " <IMG id='changeYear' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>" }
}
 //弹出日历控件窗口(,接收数据控件名,日期格式,top,left)
//弹出日历控件窗口(,接收数据控件名,日期格式,top,left) function popUpCalendar(ctl,    ctl2, format, top, left)
function popUpCalendar(ctl,    ctl2, format, top, left)  {
{ var    leftpos = left
    var    leftpos = left var    toppos = top
    var    toppos = top 
     if (isNaN(left))
    if (isNaN(left)) leftpos = -235 //-208
        leftpos = -235 //-208 
         if (isNaN(top))
    if (isNaN(top)) toppos = 0
        toppos = 0
 if (bPageLoaded)
    if (bPageLoaded) {
    { if ( crossobj.visibility ==    "hidden" )
        if ( crossobj.visibility ==    "hidden" )  {
        { ctlToPlaceValue    = ctl2
            ctlToPlaceValue    = ctl2 dateFormat=format;
            dateFormat=format;
 formatChar = " "
            formatChar = " " aFormat    = dateFormat.split(formatChar)
            aFormat    = dateFormat.split(formatChar) if (aFormat.length<3)
            if (aFormat.length<3) {
            { formatChar = "/"
                formatChar = "/" aFormat    = dateFormat.split(formatChar)
                aFormat    = dateFormat.split(formatChar) if (aFormat.length<3)
                if (aFormat.length<3) {
                { formatChar = "."
                    formatChar = "." aFormat    = dateFormat.split(formatChar)
                    aFormat    = dateFormat.split(formatChar) if (aFormat.length<3)
                    if (aFormat.length<3) {
                    { formatChar = "-"
                        formatChar = "-" aFormat    = dateFormat.split(formatChar)
                        aFormat    = dateFormat.split(formatChar) if (aFormat.length<3)
                        if (aFormat.length<3) {
                        { // invalid date    format
                            // invalid date    format formatChar=""
                            formatChar="" }
                        } }
                    } }
                } }
            } 
     tokensChanged =    0
            tokensChanged =    0 if ( formatChar    != "" )
            if ( formatChar    != "" ) {
            { // use user's date
                // use user's date aData =    ctl2.value.split(formatChar)
                aData =    ctl2.value.split(formatChar)
 for    (i=0;i<3;i++)
                for    (i=0;i<3;i++) {
                { if ((aFormat[i]=="d") || (aFormat[i]=="dd"))
                    if ((aFormat[i]=="d") || (aFormat[i]=="dd")) {
                    { dateSelected = parseInt(aData[i], 10)
                        dateSelected = parseInt(aData[i], 10) tokensChanged ++
                        tokensChanged ++ }
                    } else if    ((aFormat[i]=="m") || (aFormat[i]=="mm"))
                    else if    ((aFormat[i]=="m") || (aFormat[i]=="mm")) {
                    { monthSelected =    parseInt(aData[i], 10) - 1
                        monthSelected =    parseInt(aData[i], 10) - 1 tokensChanged ++
                        tokensChanged ++ }
                    } else if    (aFormat[i]=="yyyy")
                    else if    (aFormat[i]=="yyyy") {
                    { yearSelected = parseInt(aData[i], 10)
                        yearSelected = parseInt(aData[i], 10) tokensChanged ++
                        tokensChanged ++ }
                    } else if    (aFormat[i]=="mmm")
                    else if    (aFormat[i]=="mmm") {
                    { for    (j=0; j<12;    j++)
                        for    (j=0; j<12;    j++) {
                        { if (aData[i]==monthName[j])
                            if (aData[i]==monthName[j]) {
                            { monthSelected=j
                                monthSelected=j tokensChanged ++
                                tokensChanged ++ }
                            } }
                        } }
                    } }
                } }
            }
 if ((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected))
            if ((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected)) {
            { dateSelected = dateNow
                dateSelected = dateNow monthSelected =    monthNow
                monthSelected =    monthNow yearSelected = yearNow
                yearSelected = yearNow }
            }
 odateSelected=dateSelected
            odateSelected=dateSelected omonthSelected=monthSelected
            omonthSelected=monthSelected oyearSelected=yearSelected
            oyearSelected=yearSelected
 aTag = ctl
            aTag = ctl do {
            do { aTag = aTag.offsetParent;
                aTag = aTag.offsetParent; leftpos    += aTag.offsetLeft;
                leftpos    += aTag.offsetLeft; toppos += aTag.offsetTop;
                toppos += aTag.offsetTop; } while(aTag.tagName!="BODY");
            } while(aTag.tagName!="BODY"); 
             //var intleft = ctl.offsetLeft;
            //var intleft = ctl.offsetLeft; //var inttop = ctl.offsetTop;
            //var inttop = ctl.offsetTop; //var intheight = ctl.offsetHeight;
            //var intheight = ctl.offsetHeight; //var intwidth = ctl.offsetWidth;
            //var intwidth = ctl.offsetWidth; 
             //如果右边显示不够,则显示在左边
            //如果右边显示不够,则显示在左边 if((screen.width - (ctl.offsetLeft + leftpos))< 254)
            if((screen.width - (ctl.offsetLeft + leftpos))< 254) {
            { crossobj.left =    (ctl.offsetLeft + leftpos - 254);
                crossobj.left =    (ctl.offsetLeft + leftpos - 254); }
            } else
            else {
            { crossobj.left =    fixedX==-1 ? ctl.offsetLeft    + leftpos :    fixedX //width=254
                crossobj.left =    fixedX==-1 ? ctl.offsetLeft    + leftpos :    fixedX //width=254 }
            } crossobj.top = fixedY==-1 ?    ctl.offsetTop +    toppos + ctl.offsetHeight +    2 :    fixedY //height=196
            crossobj.top = fixedY==-1 ?    ctl.offsetTop +    toppos + ctl.offsetHeight +    2 :    fixedY //height=196 constructCalendar (1, monthSelected, yearSelected);
            constructCalendar (1, monthSelected, yearSelected); crossobj.visibility=(dom||ie)? "visible" : "show"
            crossobj.visibility=(dom||ie)? "visible" : "show"
 hideElement( 'SELECT', document.getElementById("calendar") );
            hideElement( 'SELECT', document.getElementById("calendar") ); hideElement( 'APPLET', document.getElementById("calendar") );
            hideElement( 'APPLET', document.getElementById("calendar") );            
 bShow = true;
            bShow = true; }
        } else
        else {
        { hideCalendar()
            hideCalendar() if (ctlNow!=ctl) {popUpCalendar(ctl, ctl2, format)}
            if (ctlNow!=ctl) {popUpCalendar(ctl, ctl2, format)} }
        } ctlNow = ctl
        ctlNow = ctl }
    } }
}
 document.onkeypress = function hidecal1 ()
document.onkeypress = function hidecal1 ()  {
{  if (event.keyCode==27)
    if (event.keyCode==27)  {
    { hideCalendar()
        hideCalendar() }
    } }
}
 document.onclick = function hidecal2 ()
document.onclick = function hidecal2 ()  {
{          if (!bShow)
    if (!bShow) {
    { hideCalendar()
        hideCalendar() }
    } bShow = false
    bShow = false }
}
 if(ie)
if(ie) {
{ init()
    init() }
} else
else {
{ window.onload=init
    window.onload=init }
}
 //判断是否为合法日期
//判断是否为合法日期 //日期格式:YYYY-MM-DD
//日期格式:YYYY-MM-DD function isdate(strDate)
function isdate(strDate) {
{ var strSeparator = "-"; //日期分隔符
    var strSeparator = "-"; //日期分隔符 var strDateArray;
    var strDateArray; var intYear;
    var intYear; var intMonth;
    var intMonth; var intDay;
    var intDay; var boolLeapYear;
    var boolLeapYear;
 strDateArray = strDate.split(strSeparator);
    strDateArray = strDate.split(strSeparator);
 if(strDateArray.length!=3) return false;
    if(strDateArray.length!=3) return false;
 intYear = parseInt(strDateArray[0],10);
    intYear = parseInt(strDateArray[0],10); intMonth = parseInt(strDateArray[1],10);
    intMonth = parseInt(strDateArray[1],10); intDay = parseInt(strDateArray[2],10);
    intDay = parseInt(strDateArray[2],10);
 if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false;
    if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false;
 if(intMonth>12||intMonth<1) return false;
    if(intMonth>12||intMonth<1) return false;
 if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)) return false;
    if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)) return false;
 if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) return false;
    if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) return false;
 if(intMonth==2)
    if(intMonth==2) {
    { if(intDay<1) return false;
        if(intDay<1) return false;
 boolLeapYear = false;
        boolLeapYear = false; if((intYear%100)==0)
        if((intYear%100)==0) {
        { if((intYear%400)==0) boolLeapYear = true;
            if((intYear%400)==0) boolLeapYear = true; }
        } else
        else {
        { if((intYear%4)==0) boolLeapYear = true;
            if((intYear%4)==0) boolLeapYear = true; }
        }
 if(boolLeapYear)
        if(boolLeapYear) {
        { if(intDay>29) return false;
            if(intDay>29) return false; }
        } else
        else {
        { if(intDay>28) return false;
            if(intDay>28) return false; }
        } }
    }
 return true;
    return true; }
}
 function addDate(type,NumDay,dtDate)
function addDate(type,NumDay,dtDate) {
{ dtDate = dtDate.replace(/\-/g,"/");
    dtDate = dtDate.replace(/\-/g,"/"); var date = new Date(dtDate)
    var date = new Date(dtDate) var type = parseInt(type); //类型
    var type = parseInt(type); //类型 var lIntval = parseInt(NumDay); //间隔
    var lIntval = parseInt(NumDay); //间隔 switch(type)
    switch(type) {
    { case 6 ://年
        case 6 ://年 date.setYear(date.getYear() + lIntval);
            date.setYear(date.getYear() + lIntval); break;
            break; case 7 ://季度
        case 7 ://季度 date.setMonth(date.getMonth() + (lIntval * 3));
            date.setMonth(date.getMonth() + (lIntval * 3)); break;
            break; case 5 ://月
        case 5 ://月 date.setMonth(date.getMonth() + lIntval);
            date.setMonth(date.getMonth() + lIntval); break;
            break; case 4 ://天
        case 4 ://天 date.setDate(date.getDate() + lIntval);
            date.setDate(date.getDate() + lIntval); break
            break case 3 ://时
        case 3 ://时 date.setHours(date.getHours() + lIntval);
            date.setHours(date.getHours() + lIntval); break
            break case 2 ://分
        case 2 ://分 date.setMinutes(date.getMinutes() + lIntval);
            date.setMinutes(date.getMinutes() + lIntval); break
            break case 1 ://秒
        case 1 ://秒 date.setSeconds(date.getSeconds() + lIntval);
            date.setSeconds(date.getSeconds() + lIntval); break;
            break; default:
        default: break;
            break; }
    }  return formatDate(date,0);
    return formatDate(date,0); //return date.getYear() + '-' +  (date.getMonth() + 1) + '-' +date.getDate() + ' '+ date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds();
    //return date.getYear() + '-' +  (date.getMonth() + 1) + '-' +date.getDate() + ' '+ date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds(); }
} 
 function formatDate(sDate)
function formatDate(sDate)  {
{     var sScrap = "";
    var sScrap = ""; var dScrap = new Date(sDate);
    var dScrap = new Date(sDate); if (dScrap == "NaN") return sScrap;
    if (dScrap == "NaN") return sScrap; 
     iDay = dScrap.getDate();
    iDay = dScrap.getDate(); iMon = dScrap.getMonth()+1;
    iMon = dScrap.getMonth()+1; iYea = dScrap.getFullYear();
    iYea = dScrap.getFullYear();     if (iDay<10) iDay="0"+iDay;
        if (iDay<10) iDay="0"+iDay; if (iMon<10) iMon="0"+iMon;
        if (iMon<10) iMon="0"+iMon; sScrap = iYea + "-" + iMon + "-" + iDay;
        sScrap = iYea + "-" + iMon + "-" + iDay; return sScrap;
    return sScrap; }
}调用时只要加入onclick="popUpCalendar(this, this, dateFormat,-1,-1)"
相关的图片
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号