0

HI

while clicking calendar button calendar is displaying in IE6 and IE8 but in IE7 browser calendar is not displaying, java script error like obj null iam getting pls help me in this

//  written by Tan Ling Wee on 2 Dec 2001
//  last updated 20 June 2003
//  email : 
    var fixedX = -1         // x position (-1 if to appear below control)
    var fixedY = -1         // y position (-1 if to appear below control)
    var startAt = 1         // 0 - sunday ; 1 - monday
    var showWeekNumber = 1  // 0 - don't show; 1 - show
    var showToday = 1       // 0 - don't show; 1 - show
    var imgDir = "http://humres.merck.com/images/"          // directory for images ... e.g. var imgDir="/img/"

    var gotoString = "Go To Current Month"
    var todayString = "Today is"
    var weekString = "Wk"
    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 = "Select [date] as date." // do not replace [date], it will be replaced by date.

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

    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.getYear()
    var imgsrc = new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif")
    var img = new Array()

    var bShow = false;

    /* hides <select> and <applet> objects (for IE only) */
    function hideElement( elmID, overDiv )
    {
    //alert("elmid"+elmID);
      if( ie )
      {
        for( i = 0; i < document.all.tags( elmID ).length; i++ )
        {
          obj = document.all.tags( elmID )[i];
alert("in for"+obj);
          if( !obj || !obj.offsetParent )
          {
            continue;
          }

          // Find the element's offsetTop and offsetLeft relative to the BODY tag.
          objLeft   = obj.offsetLeft;
          objTop    = obj.offsetTop;
//      alert(objTop);
          objParent = obj.offsetParent;
        alert("before while"+objParent);
//         alert("before  while ");
          while(objParent.tagName.toUpperCase() != "BODY" )
          {
alert(objParent.tagName);
//  alert("in while ");
            objLeft  += objParent.offsetLeft;
//      alert("obj leftp" +objLeft);
            objTop   += objParent.offsetTop;
        //alert("obj top" +objTop);
            objParent = objParent.offsetParent;
//      alert("obj par" +objParent);
          }

          objHeight = obj.offsetHeight;
        //alert("objheight"+objHeight);
          objWidth = obj.offsetWidth;
 //             alert("objWidth"+objWidth);
          if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
          else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
          else if( overDiv.offsetTop >= ( objTop + objHeight ));
          else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
          else
          {
            obj.style.visibility = "hidden";
          }
        }
      }
    }

    /*
    * unhides <select> and <applet> 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]
        }
        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='#acb8b1'><td><table width='"+((showWeekNumber==1)?248:218)+"'><tr><td style='padding:2px;font-family:arial; font-size:11px;'><font color='#000000'><B><span id='caption'></span></B></font></td><td align=right><a href='javascript:hideCalendar()'><IMG SRC='"+imgDir+"close.gif' WIDTH='15' HEIGHT='13' BORDER='0' ALT='Close the Calendar'></a></td></tr></table></td></tr><tr><td style='padding:5px' bgcolor=#ffffff><span id='content'></span></td></tr>")

        if (showToday==1)
        {
            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>");
    }

    var monthName = new Array("January","February","March","April","May","June","July","August","September","October","November","December")
    var monthName2 = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC")
    if (startAt==0)
    {
        dayName = new Array ("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
    }
    else
    {
        dayName = new Array ("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
    }
    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

            monthConstructed=false;
            yearConstructed=false;

            if (showToday==1)
            {
                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[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + dateNow + " " + monthName[monthNow].substring(0,3) + " " + yearNow + "</a>"
            }

            sHTML1="<span id='spanLeft'  style='border-style:solid;border-width:1;border-color:#000000;cursor:pointer' onmouseover='swapImage(\"changeLeft\",\"left2.gif\");this.style.borderColor=\"#5D6962\";window.status=\""+scrollLeftMessage+"\"' onclick='javascript:decMonth()' onmouseout='clearInterval(intervalID1);swapImage(\"changeLeft\",\"left1.gif\");this.style.borderColor=\"#000000\";window.status=\"\"' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)'  onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG id='changeLeft' SRC='"+imgDir+"left1.gif' width=10 height=11 BORDER=0>&nbsp</span>&nbsp;"
            sHTML1+="<span id='spanRight' style='border-style:solid;border-width:1;border-color:#000000;cursor:pointer'  onmouseover='swapImage(\"changeRight\",\"right2.gif\");this.style.borderColor=\"#5D6962\";window.status=\""+scrollRightMessage+"\"' onmouseout='clearInterval(intervalID1);swapImage(\"changeRight\",\"right1.gif\");this.style.borderColor=\"#000000\";window.status=\"\"' onclick='incMonth()' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartIncMonth()\",500)'  onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG id='changeRight' SRC='"+imgDir+"right1.gif'    width=10 height=11 BORDER=0>&nbsp</span>&nbsp"
            sHTML1+="<span id='spanMonth' style='border-style:solid;border-width:1;border-color:#000000;cursor:pointer'  onmouseover='swapImage(\"changeMonth\",\"drop2.gif\");this.style.borderColor=\"#5D6962\";window.status=\""+selectMonthMessage+"\"' onmouseout='swapImage(\"changeMonth\",\"drop1.gif\");this.style.borderColor=\"#000000\";window.status=\"\"' onclick='popUpMonth()'></span>&nbsp;"
            sHTML1+="<span id='spanYear' style='border-style:solid;border-width:1;border-color:#000000;cursor:pointer' onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.style.borderColor=\"#5D6962\";window.status=\""+selectYearMessage+"\"'  onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.style.borderColor=\"#000000\";window.status=\"\"'  onclick='popUpYear()'></span>&nbsp;"

            document.getElementById("caption").innerHTML  = sHTML1

            bPageLoaded=true
        }
    }

    function hideCalendar() {
        crossobj.visibility="hidden"
        if (crossMonthObj != null){crossMonthObj.visibility="hidden"}
        if (crossYearObj != null){crossYearObj.visibility="hidden"}

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

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

    function constructDate(d,m,y)
    {
        sTmp = dateFormat
        sTmp = sTmp.replace ("dd","<e>")
        sTmp = sTmp.replace ("d","<d>")
        sTmp = sTmp.replace ("<e>",padZero(d))
        sTmp = sTmp.replace ("<d>",d)
        sTmp = sTmp.replace ("mmmm","<p>")
        sTmp = sTmp.replace ("mmm","<o>")
        sTmp = sTmp.replace ("mm","<n>")
        sTmp = sTmp.replace ("m","<m>")
        sTmp = sTmp.replace ("<m>",m+1)
        sTmp = sTmp.replace ("<n>",padZero(m+1))
        sTmp = sTmp.replace ("<o>",monthName[m])
        sTmp = sTmp.replace ("<p>",monthName2[m])
        sTmp = sTmp.replace ("yyyy",y)
        return sTmp.replace ("yy",padZero(y%100))
    }


    function closeCalendar() {
        var sTmp

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

        // terry added for visual only
        NicemonthSelected = (monthSelected + 1);
        ctlToPlaceValueNice.value = NicemonthSelected+"-"+dateSelected+"-"+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 = "<B>" +  sName + "</B>"
                }
                sHTML += "<tr><td id='m" + i + "' onmouseover='this.style.backgroundColor=\"#C8D0CB\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</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='#FBF7EB' cellspacing=0 onmouseover='clearTimeout(timeoutID1)' onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" + sHTML + "</table>"

            monthConstructed=true
        }
    }

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

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

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

    /*** Year Pulldown ***/

    function incYear() {
        for (i=0; i<7; i++){
            newYear = (i+nStartingYear)+1
            if (newYear==yearSelected)
            { txtYear = "&nbsp;<B>"  + newYear + "</B>&nbsp;" }
            else
            { txtYear = "&nbsp;" + newYear + "&nbsp;" }
            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 = "&nbsp;<B>"  + newYear + "</B>&nbsp;" }
            else
            { txtYear = "&nbsp;" + newYear + "&nbsp;" }
            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 = "<tr><td align='center'   onmouseover='this.style.backgroundColor=\"#C8D0CB\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"

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

                sHTML += "<tr><td id='y" + j + "' onmouseover='this.style.backgroundColor=\"#C8D0CB\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
                j ++;
            }

            sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#C8D0CB\"' 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='#FBF7EB' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>" + sHTML + "</table>"

            yearConstructed = true
        }
    }

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

    function popUpYear() {
        var leftOffset

        constructYear()
        crossYearObj.visibility = (dom||ie)? "visible" : "show"
        leftOffset = parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft
        if (ie)
        {
            leftOffset += 6
        }
        crossYearObj.left = leftOffset
        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();
      }

      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() - startAt

        if (dayPointer<0)
        {
            dayPointer = 6
        }

        sHTML = "<table   border=0 style='font-family:verdana;font-size:10px;'><tr>"

        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>"
        }

        for (i=0; i<7; i++)  {
            sHTML += "<td width='27' align='right'><B>"+ dayName[i]+"</B></td>"
        }
        sHTML +="</tr><tr>"

        if (showWeekNumber==1)
        {
            sHTML += "<td align=right>" + WeekNbr(startDate) + "&nbsp;</td>"
        }

        for ( var i=1; i<=dayPointer;i++ )
        {
            sHTML += "<td>&nbsp;</td>"
        }

        for ( datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
        {
            dayPointer++;
            sHTML += "<td align=right>"
            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><a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#800000>&nbsp;" + datePointer + "</font>&nbsp;</a></b>"}
            else if (dayPointer % 7 == (startAt * -1)+1)
            { sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;<font color=#909090>" + datePointer + "</font>&nbsp;</a>" }
            else
            { sHTML += "<a "+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<numDaysInMonth))
                {
                    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;<IMG id='changeMonth' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
        document.getElementById("spanYear").innerHTML = "&nbsp;" + yearSelected + "&nbsp;<IMG id='changeYear' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
    }

    function popUpCalendar(ctl, ctl2, format, ctl3) {

        var leftpos=0
        var toppos=0

        if (bPageLoaded)
        {
            if ( crossobj.visibility == "hidden" ) {
                ctlToPlaceValue = ctl2
                ctlToPlaceValueNice = ctl3

                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 = 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 ++
                                }
                            }
                        }
                        else if (aFormat[i]=="mmmm")
                        {
                            for (j=0; j<12;  j++)
                            {
                                if (aData[i]==monthName2[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
                constructCalendar (1, monthSelected, yearSelected);
                crossobj.visibility=(dom||ie)? "visible" : "show"

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

                bShow = true;
            }
            else
            {
                hideCalendar()
                if (ctlNow!=ctl) {popUpCalendar(ctl, ctl2, format)}
            }
            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
    }

Edited by Dani: Formatting fixed

2
Contributors
4
Replies
5
Views
6 Years
Discussion Span
Last Post by MartinRinehart
0

Raviaaa,

That's a massive amount of code. Do you want to hire a consultant to work through it, or can you narrow it down so we can discuss a specific issue?

0

in this line
while(objParent.tagName.toUpperCase() != "BODY" )
iam getting object required js error at char 11

can u pls help me in this

0

the code is working correctly for IE6 but IE8 with compatability view on is not displaying calendar, without comapatability check it is working correct

0

Sure.

"object required" means that, in xxx.Whatever, 'xxx' is not an object. What you should do, so you don't need outside help, is put an 'alert()' call right before the offending line:

alert( objParent );

It will tell you what 'objParent' is (or, in the common case, it will tell you nothing if 'objParent' is undefined, but that way you know it's undefined).

By the by, none of the browsers seems to provide a sensible "at char 11" or similar. Just pay attention to the line.

Now, what do you do once you know that 'objParent' is undefined, or a number or whatever? Backtrack to see where it was assigned. It may help to replace the alert with a throw:

throw objParent;

That will crash in all browsers. If you try it in Opera you will get an informative "backtrace" that shows you, step-by-step, where 'objParent' was assigned values prior to the location of the 'throw'. (MSIE does the same, but its info re the backtrace ranges from nil to not much.)

Good luck!

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.