Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/09/2010, 22:51
echi_la22
 
Fecha de Ingreso: diciembre-2008
Mensajes: 101
Antigüedad: 17 años, 10 meses
Puntos: 0
Calendario emergente, problema firefox

Hola amigos, tengo un calendario emergente que anda muy bien en IE, pero en firefox no me funciona.
Lo inspeccione con el firebug debbuger y dice que "crossobj is not defined".
La instruccion donde se define es la siguiente:

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

tal vez hay q modificar algo en ella.. la verdad nose.
Dejo las primeras lineas del codigo por si alguien encuentra el verdadero problema y me puede ayudar a q el calendario funcione en firefox.

Código PHP:
    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 = "images/"            // directory for images ... e.g. var imgDir="/img/"

    
var gotoString = "Go To Current Month"
    
var todayString = "Hoy es"
    
var weekString = "Sem"
    
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 )
    {
      if( 
ie )
      {
        for( 
i = 0; i < document.all.tags( elmID ).length; i++ )
        {
          
obj = document.all.tags( elmID )[i];
          if( !
obj || !obj.offsetParent )
          {
            continue;
          }
      
          
// Find the element's offsetTop and offsetLeft relative to the BODY tag.
          
objLeft   = obj.offsetLeft;
          
objTop    = obj.offsetTop;
          
objParent = obj.offsetParent;
          
          while( 
objParent.tagName.toUpperCase() != "BODY" )
          {
            
objLeft  += objParent.offsetLeft;
            
objTop   += objParent.offsetTop;
            
objParent = objParent.offsetParent;
          }
      
          
objHeight = obj.offsetHeight;
          
objWidth = obj.offsetWidth;
      
          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 background='images/calback.jpg'><td background='images/calback.jpg'><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' 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>");
    }

//---------------------------------------------TRADUCCION EN ESPA�OL-----------------------------------------------------------------------------
    
var    monthName =    new    Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Augosto","Septiembre","Octubre","Noviembre","Diciembre")
    var    
monthName2 = new Array("ENE","FEB","MAR","ABR","MAY","JUN","JUL","AGO","SEP","OCT","NOV","DIC")
    if (
startAt==0)
    {
        
dayName = new Array    ("Lun","Mar","Mie","Jue","Vie","Sab","Dom")
    }
    else
    {
        
dayName = new Array    ("Lun","Mar","Mie","Jue","Vie","Sab","Dom")
    }
    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,15)    + "    " +    yearNow    + "</a>"
            
}

            
sHTML1="<span id='spanLeft'    style='border-style:solid;border-width:1;border-color:#ffffff;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=\"#ffffff\";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:#ffffff;cursor:pointer'    onmouseover='swapImage(\"changeRight\",\"right2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+scrollRightMessage+"\"' onmouseout='clearInterval(intervalID1);swapImage(\"changeRight\",\"right1.gif\");this.style.borderColor=\"#ffffff\";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:#ffffff;cursor:pointer'    onmouseover='swapImage(\"changeMonth\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectMonthMessage+"\"' onmouseout='swapImage(\"changeMonth\",\"drop1.gif\");this.style.borderColor=\"#ffffff\";window.status=\"\"' onclick='popUpMonth()'></span>&nbsp;"
            
sHTML1+="<span id='spanYear' style='border-style:solid;border-width:1;border-color:#fffffff;cursor:pointer' onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.style.borderColor=\"#88AAFF\";window.status=\""+selectYearMessage+"\"'    onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.style.borderColor=\"#ffffff\";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' );
    }