var objPrevElement = new Object();
var campofecha = new Object();

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; 
    }
}

function fGetDaysInMonth(iMonth, iYear) {
var dPrevDate = new Date(iYear, iMonth, 0);
return dPrevDate.getDate();
}

function abrircalendario(campo)
{

	x = (document.layers) ? e.pageX : document.body.scrollLeft+event.clientX;
	y = (document.layers) ? e.pageY : document.body.scrollTop+event.clientY;
	capa(x+20,y-5,campo);

}

function carga_annos()
{
var inicio;
var fin;
var total;
var i;
var now = new Date();  
var yea;
var mon;
inicio =1970;
fin = 2010;
yea = now.getYear(); 
mon = now.getMonth(); 
total= fin-inicio;

for (i=0;i<total+1;i++)
{
      document.forms.calenda.anno.options[i]= new Option(inicio);
      document.forms.calenda.anno.options[i].value = inicio;
      if (yea ==inicio)
      	document.forms.calenda.anno.options[i].selected = "true";
      inicio = inicio +1 ;
}
document.forms.calenda.mes.options[mon].selected = "true";
}

function fToggleColor(myElement) {
var toggleColor = "#ff0000";
if (myElement.id == "calDateText") {
if (myElement.color == toggleColor) {
myElement.color = "";
} else {
myElement.color = toggleColor;
   }
} else if (myElement.id == "calCell") {
for (var i in myElement.children) {
if (myElement.children[i].id == "calDateText") {
if (myElement.children[i].color == toggleColor) {
myElement.children[i].color = "";
} else {
myElement.children[i].color = toggleColor;
            }
         }
      }
   }
}


function capa (izq,sup,campo)
{
var cad='';
cad = calendario.style.visibility;

campofecha = campo;
if (cad == 'hidden')
{
carga_annos();
MM_showHideLayers('calendario','','show');
}
else
MM_showHideLayers('calendario','','hidden');

calendario.style.left= izq;
calendario.style.top= sup;
}

function calcularmes(ano,mes,estilo)
{
var aMonth = new Array();
aMonth[0] = new Array(7);
aMonth[1] = new Array(7);
aMonth[2] = new Array(7);
aMonth[3] = new Array(7);
aMonth[4] = new Array(7);
aMonth[5] = new Array(7);
aMonth[6] = new Array(7);
var dCalDate = new Date(ano, mes-1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDayOfFirst = iDayOfFirst-1;
if (iDayOfFirst< 0)
 iDayOfFirst=6;
var iDaysInMonth = fGetDaysInMonth(mes,ano);
var iVarDate = 1;
var i, d, w;

if (estilo == 2) {
aMonth[0][0] = "Lunes";
aMonth[0][1] = "Martes";
aMonth[0][2] = "Miercoles";
aMonth[0][3] = "Jueves";
aMonth[0][4] = "Viernes";
aMonth[0][5] = "Sabado";
aMonth[0][6] = "Domingo";
} else if (estilo == 1) {
aMonth[0][0] = "Lun";
aMonth[0][1] = "Mar";
aMonth[0][2] = "Mie";
aMonth[0][3] = "Juv";
aMonth[0][4] = "Vie";
aMonth[0][5] = "Sab";
aMonth[0][6] = "Dom";
} else {
aMonth[0][0] = "Lu";
aMonth[0][1] = "Ma";
aMonth[0][2] = "Mi";
aMonth[0][3] = "Ju";
aMonth[0][4] = "Vi";
aMonth[0][5] = "Sa";
aMonth[0][6] = "Do";
}
for (d = iDayOfFirst; d < 7; d++) {
aMonth[1][d] = iVarDate;
iVarDate++;
}

for (w = 2; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (iVarDate <= iDaysInMonth) {
aMonth[w][d] = iVarDate;
iVarDate++;
      }
   }
}
return aMonth;
}

function selecte(campo,numero){ 
var cam;
cam = (numero + '/' + document.forms.calenda.mes.value + '/' + document.forms.calenda.anno.value);
campofecha.value = cam;
MM_showHideLayers('calendario','','hidden');
}



function pintacal(ano,mes,estilo)
{
var calen;
var dat = new Date();
var dCalDate = new Date(ano, mes-1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDayOfFirst = iDayOfFirst -1 ;
if (iDayOfFirst< 0)
 iDayOfFirst=6;
das = dat.getDate(); 
calen = calcularmes(ano,mes,estilo);
document.write("<table>");
document.write("<tr>");
document.write("<td class=semana>");
document.write(calen[0][0]);
document.write("</td>");

document.write("<td class=semana>");
document.write(calen[0][1]);
document.write("</td>");

document.write("<td class=semana>");
document.write(calen[0][2]);
document.write("</td>");

document.write("<td class=semana>");
document.write(calen[0][3]);
document.write("</td>");

document.write("<td class=semana>");
document.write(calen[0][4]);
document.write("</td>");

document.write("<td class=semana>");
document.write(calen[0][5]);
document.write("</td>");

document.write("<td class=semana>");
document.write(calen[0][6]);
document.write("</td>");
document.write("</tr>");

for (w = 1; w < 7; w++) {
document.write("<tr>");
for (d = 0; d < 7; d++) {
document.write("<td><font ");
document.write("style='CURSOR:Hand;color:#6E6E78;text-decoration:none;'");
document.write(">");
document.write("<a id=calDateText href='javascript:selecte(document.forms.calenda.campo.value,");
document.write(calen[w][d]);
document.write(");' class=diasa>");
if (!isNaN(calen[w][d])) {     
document.write(calen[w][d]);
}
document.write("</a>");
document.write("</font>");
document.write("</font></td>");
}
document.write("</tr>");
}
document.write("</table>");
}

function actualizar(ano, mes) {
var z;
var dCalDate = new Date(ano, mes-1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDayOfFirst = iDayOfFirst -1 ;
if (iDayOfFirst< 0)
 iDayOfFirst=6;
myMonth = calcularmes(ano, mes);

for (d = iDayOfFirst; d < 7; d++) {
if (!isNaN(myMonth[1][d])) {
calDateText[((7*1)+d)-7].innerText = myMonth[1][d];
} else {
calDateText[((7*1)+d)-7].innerText = " ";
         }
}

for (w = 1; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (!isNaN(myMonth[w][d])) {
calDateText[((7*w)+d)-7].innerText = myMonth[w][d];
calDateText[((7*w)+d)-7].href = ('javascript:selecte(document.forms.calenda.campo.value,' + myMonth[w][d] + ');');
} else {
calDateText[((7*w)+d)-7].innerText = "";
         }
      }
   }
}