pidm = "1";
tempfecha = "";
var Pprimerdia = "";
var online = true;
var diaactual = "";	
var contenedor;
var anoactual;
var pTipo;
var myText;
var Initop;
var Inileft;

function goaño(Paño)
{

         var dia = tempfecha.getDate();
         var mes = tempfecha.getMonth();
         var año = Paño;

         mes = mes + 1;
         
         if (mes < "10")
         {
           mes = "0" + mes;
         }

         diaactual = dia + "/" + mes + "/" + año;
         Calendario();
}

      function gomes (Pmes)
      {
         var dia = tempfecha.getDate();
         var año = tempfecha.getFullYear();
         var mes = Pmes + 1;
         
         mes = mes + "";

         if (mes < "10")
         {
           mes = "0" + mes;
         }

         diaactual = dia + "/" + mes + "/" + año;
         Calendario();
      }

function jsChange(e)
{
	esfirefox = false;    	
   	try
	{
		oo = event.srcElement;
			
    } catch(e)
    {
		esfirefox = true;
        oo = e.target;
	}
    //var oo = event.srcElement;
	var a;
	if (esfirefox == false)
	{
		if (oo.tipo == "mes")
		{
			a = oo.options[oo.selectedIndex].value * 1;
			gomes (a);
		}

		if (oo.tipo == "año")
		{
			
			a = oo.options[oo.selectedIndex].value * 1;
			goaño (a);
		}
	}
	else
	{
		if (e.target.tipo == "mes")
		{
			a = e.target.options[e.target.selectedIndex].value * 1;
			gomes (a);
		}

		if (e.target.tipo == "año")
		{
			a = e.target.options[e.target.selectedIndex].value * 1;
			goaño (a);
		}
	}

    
}

function Calendario (pInitop, pInileft, Initipo, Inifecha,pObj,Idioma)
{
	if (Idioma > 0 && Idioma < 5)
	{
		pidm = Idioma + "";
	}

	if (!pInileft) {pInileft = Inileft;}
	if (!pInitop) {pInitop = Initop;}

	if (pObj)
	{
		myText = document.getElementById(pObj);
	}
	
	tempfecha = "";

	if (Inifecha)
	{
		diaactual = Inifecha;
	}

	pTipo = "EUR";
	if (Initipo == "US")
	{
		pTipo = "US";
	}



	if (diaactual)
	{
		if ( pTipo == "US")
		{
			var fechaini = diaactual.split("/");
			var ano = fechaini[2];
			if ((ano*1) < 100)
			{
			ano = "20" + ano;
			}
			
			var diasmes = jsDameDias(fechaini[0]-1 + "", ano + "")
			if (fechaini[1]*1 > diasmes) fechaini[1] = diasmes;
			

			var fechaINI = new Date (ano,fechaini[0]-1,fechaini[1]);
			tempfecha = fechaINI;	
		}
		else
		{
			var fechaini = diaactual.split("/");
			var ano = fechaini[2];
			if ((ano*1) < 100)
			{
			ano = "20" + ano;
			}
			
			var diasmes = jsDameDias(fechaini[1]-1 + "", ano + "")
			if (fechaini[0]*1 > diasmes) fechaini[0] = diasmes;
			

			var fechaINI = new Date (ano,fechaini[1]-1,fechaini[0]);
			tempfecha = fechaINI;	
		}
	}
	else
	{	
		tempfecha = new Date();
	}

	dia = tempfecha;

	year			= tempfecha.getFullYear();
	month			= tempfecha.getMonth();
	monthname		= jsDameNombreMes (month+"");
	fecha			= tempfecha.getDate();
			
    primerdiain = new Date (year, month, 1);
	primerdia   = primerdiain.getDay();
	if (primerdia == 0) primerdia = 7;
	Pprimerdia = primerdia;
    dias        = jsDameDias (month+"", year+"");
    if (!contenedor)
    {
    	contenedor = jsCrEl (document.body, "div", "");
	}
	contenedor.innerHTML = "";
	jsRefresh   (primerdia, dias, fecha, monthname, year, pInileft, pInitop );
	jsMuestra();
}

function parametrosIniciales()
{
	
}

function addEvent(obj, evType, fn)
{
  if (obj.addEventListener != undefined)
  {
  	obj.addEventListener(evType, fn, false);
    return true;
  }
  else if (obj.attachEvent)
  {
  	var r = obj.attachEvent("on"+evType, fn);
  }
  else
  {
    return false;
  }
}

function jsRefresh(Pprimerdia, Pultimafecha, Pfecha, PnombreMes, Ppaño, left, top)
{
		Initop = top;
		Inileft = left;
		parametrosIniciales();
		pbordercolor = "#94C3E7";
		pcabcolor = "#94C3E7";
		pwdayscolor = "#94C3E7"; 
		pbordercolord = "#94C3E7";
		pbordercolord1 = "#94C3E7";
		pbordercolor1 = "#94C3E7";
		pndayscolor = "#EEEEEE";
		psdaycolor = "#ffffff";
		psfinsemana	 = "#ffffff";
		pdayscolor = "#ffffff";


		//addEvent(contenedor, "click", jsClick);
		contenedor.style.left = left;
		contenedor.style.top = top;
		contenedor.style.position = "absolute";
		contenedor.style.visibility='visible';
	    var tabla      = jsCrEl (contenedor, "TABLE", "border-top:solid 1px " + pbordercolor + ";border-bottom:solid 1px " + pbordercolor + ";border-left:solid 1px " + pbordercolor + ";border-right:solid 1px " + pbordercolor + ";font-family:Verdana; font-size: 7 pt; font-style:normal");
	    tabla.style.fontSize = 7;
		tabla.cellSpacing = 0;
        tabla.cellPadding = 0;
        tabla.border = 0;
        var cuerpo     = jsCrEl (tabla, "TBODY", "");
        var tr         = jsCrEl (cuerpo, "TR", "background-color:" + pcabcolor + ";font-family:Verdana;font-size: 7pt; font-style:normal;");
        var td         = jsCrEl (tr, "TD", "");
        td.colSpan = 3;
		
		oo = jsCrEl (td,"select","font-family:Verdana; font-size: 7 pt;border-left:#ffba00;border-right:#ffba00;border-top:#ffba00;border-bottom:#ffba00;");
		addEvent(oo,"change",jsChange);
		oo.tipo = "mes";
	    for (i=0; i <= 11; i++)
        {
		   ee = document.createElement("OPTION");
		   ee.text = jsDameNombreMes (i+"");
           ee.value = i;
           if (oo.addEventListener != undefined)
           {
           	oo.add (ee,null);
           }
           else
           {
           	 oo.add (ee);
           }
        }
	
		oo.options[tempfecha.getMonth()].selected = true;

        oo = jsCrEl (td,"select","font-family:Verdana; font-size: 7 pt;");
        addEvent(oo,"change",jsChange);
        
        oo.tipo = "año";
        //oo.onChange = "jsPep()";
        //addEvent(oo,"change",jsChange);
        
		
		hoy = new Date();
		tt = hoy.getFullYear();
		Paño = tt;
		anoactual = tt;

		if (!Ppaño)
		{
			Ppaño = Paño;
		}


		count = 0;
		
		for (i=Paño-100; i <= Paño; i++)
         {
            ee = document.createElement("OPTION");
		    ee.text = i
            ee.value = i;
            if (oo.addEventListener != undefined)
           {
           	oo.add (ee,null);
           }
           else
           {
           	 oo.add (ee);
           }

		   count = count + 1;

		   if (i == Ppaño)
		   {
			   elano = count-1;
		   }
         }
		 //oo.options[tempfecha.getFullYear()-(tempfecha.getFullYear()-100)].selected = true;
		 oo.options[elano].selected = true;

         var td         = jsCrEl (tr, "TD", "");
         td.align = "RIGHT";
         td.colSpan = 1;
         var img        = jsCrEl (td, "IMG", "position:relative;top:1;");
         img.src = "/img/prev.gif";
         img.tipo = "prev";
         switch (pidm)
         {
            case '1':
               img.alt = "Mes anterior";
               break;
            case '3':
               img.alt = "Letzten Monat";
               break;
            case '4':
               img.alt = "Mois antérieur";
               break;
            case '2':
               img.alt = "Previous month";
         }
		 addEvent(img, "click", jsClick);
         var pnull      = jsCrEl (td, "B", "");
         pnull.innerHTML = "&nbsp;";
         var img        = jsCrEl (td, "IMG", "position:relative;top:1;");
         img.src = "/img/next.gif";
         img.tipo = "next";
		 addEvent(img, "click", jsClick);
		 
         switch (pidm)
         {
            case '1':
               img.alt = "Mes posterior";
               break;
            case '3':
               img.alt = "Nächster Monat";
               break;
			case '4':
               img.alt = "Mois suivant";
               break;
            case '2':
               img.alt = "Next month";
         }
         var pnull      = jsCrEl (td, "B", "");
         pnull.innerHTML = "&nbsp;&nbsp;"
         /*var img        = jsCrEl (td, "IMG", "");
         img.src = "/img/cierre.gif";
         img.tipo = "cierre";*/
		 /*var tr         = jsCrEl (cuerpo, "TR", "");
		 var td			= jsCrEl (tr, "TR", ""); */
		 var tr = jsCrEl (cuerpo,"TR","");
		 var td         = jsCrEl (tr, "TD", "");
		 td.colSpan = 4;
		 var table1		= jsCrEl (td, "TABLE", "border-top:solid 1px " + pbordercolor1 + ";border-bottom:solid 1px " + pbordercolor1 + ";border-left:solid 1px " + pbordercolor1 + ";border-right:solid 1px " + pbordercolor1 + ";font-family:Verdana; font-size: 7 pt; font-style:normal");
		 table1.style.fontSize = 11;
		 table1.cellSpacing = 0;
		 table1.cellPadding = 0;
         table1.border = 0;
		 
		 var cuerpo1     = jsCrEl (table1, "TBODY", "");

         
         var tr         = jsCrEl (cuerpo1, "TR", "");

		 for (dianum = 0; dianum < 7; ++dianum)
         {
			
            if (dianum == 0)
            {
			   
               var td = jsCrEl (tr, "TD", "color:#ffffff;background-color:" + pwdayscolor + ";font-family:Verdana;font-size: 7pt; font-style:normal;border-top:solid 1px " + pbordercolord + ";border-bottom:solid 1px " + pbordercolord + ";border-left:solid 1px " + pbordercolord + ";border-right:solid 1px " + pbordercolord + ";font-family:Verdana; font-size: 7 pt; font-style:normal");
			   
            }
            else
            {
			   
               if (dianum == 7)
               {
                  var td = jsCrEl (tr, "TD", "color:#ffffff;background-color:" + pwdayscolor + ";font-family:Verdana;font-size: 7pt; font-style:normal;border-top:solid 1px " + pbordercolord + ";border-bottom:solid 1px " + pbordercolord + ";border-right:solid 1px " + pbordercolord + ";font-family:Verdana; font-size: 7 pt; font-style:normal");
               }
               else
               {
                  var td = jsCrEl (tr, "TD", "color:#ffffff;background-color:" + pwdayscolor + ";font-family:Verdana;font-size: 7pt; font-style:normal;border-top:solid 1px " + pbordercolord + ";border-bottom:solid 1px " + pbordercolord + ";border-right:solid 1px " + pbordercolord + ";font-family:Verdana; font-size: 7 pt; font-style:normal");
               }
            }

            td.width = "26";
            td.align = "CENTER";
			var pnull      = jsCrEl (td, "B", "")
			
			dia = jsDameNombreDia (dianum+"");
			pnull.innerHTML = dia;

         }
         
         var diadelmes = 1;
         var celdaactual = 1;

		 for (var celda = 1; celda <= Math.ceil ((Pultimafecha + Pprimerdia -1) / 7); ++ celda)
         {
            var tr = jsCrEl (cuerpo1, "TR", "");
            for (var col = 1; col <= 7; ++col)
            {
               if ((celdaactual < Pprimerdia) || (diadelmes > Pultimafecha))
               {
                  var td = jsCrEl (tr, "TD", "background-color:" + pndayscolor + ";border-top:solid 1px " + pbordercolor + ";border-bottom:solid 1px " + pbordercolor + ";border-left:solid 1px " + pbordercolor + ";border-right:solid 1px " + pbordercolor + ";font-family:Verdana; font-size: 7 pt; font-style:normal");
                  td.align = "CENTER";
                  td.innerHTML = "&nbsp";

                  if (celdaactual < Pprimerdia)
                  {
                     td.tipo = "prev";
                  }
                  else
                  {
                     td.tipo = "next";
                  }

                  celdaactual ++;
               }
               else
               {
				  if (diadelmes == Pfecha && online == true)
                  {
					 var td = jsCrEl (tr, "TD", "cursor:pointer;color:#4191CE;background-color:" + psdaycolor + ";border-top:solid 1px " + pbordercolor + ";border-bottom:solid 1px " + pbordercolor + ";border-left:solid 1px " + pbordercolor + ";border-right:solid 1px " + pbordercolor + ";color:#000000;font-family:Verdana; font-size: 7 pt; font-style:normal");
                     td.align = "CENTER";
                     addEvent(td, "click", jsClick);
					 var pnull = jsCrEl(td, "B","");
					 addEvent(pnull, "click", jsClick);
                     pnull.innerHTML = diadelmes;
					 pnull.tipo = "dia";
                     td.tipo = "dia";
                  }
                  else
                  {						
                     if (col == 6 || col == 7)
                     {  
						var td = jsCrEl (tr, "TD", "cursor:pointer;color:#4191CE;background-color:" + psfinsemana + ";border-top:solid 1px " + pbordercolor + ";border-bottom:solid 1px " + pbordercolor + ";border-left:solid 1px " + pbordercolor + ";border-right:solid 1px " + pbordercolor + ";font-family:Verdana; font-size: 7 pt; font-style:normal");
                     }
                     else
                     {
						var td = jsCrEl (tr, "TD", "cursor:pointer;color:#4191CE;background-color:" + pdayscolor + ";border-top:solid 1px " + pbordercolor + ";border-bottom:solid 1px " + pbordercolor + ";border-left:solid 1px " + pbordercolor + ";border-right:solid 1px " + pbordercolor + ";font-family:Verdana; font-size: 7 pt; font-style:normal");
					 }
                     td.align = "CENTER";
                     td.innerHTML = diadelmes;
                     addEvent(td, "click", jsClick);
                     td.tipo = "dia";
                  }
                  diadelmes++;
			   }
            }
		 }
}


function jsCrEl (pobj,petq,pest)
{
	var oo = document.createElement (petq);
    if (pest != "")
    {
		oo.style.cssText = pest;
	}

    pobj.insertBefore (oo, null);
    return oo;
}


/////////////////////////////////////////////////////////////////////////
      // Función jsDameDias.
      // Función de uso interno que a partir de un número de mes y de año nos
      // retorna el número de dias que tiene el mes.
      /////////////////////////////////////////////////////////////////////////
		function jsDameDias(Pmes, Paño)
		{
				switch (Pmes)
				{
					case '0':
						return 31;
						break;
					case '1':
						var bisiesto = jsEsBisiesto (Paño);
						if (bisiesto == true)
						{
							return 29;
						}
						else
						{
							return 28;
						}
						break;
					case '2':
						return 31;
						break;
					case '3':
						return 30;
						break;
					case '4':
						return 31;
						break;
					case '5':
						return 30;
						break;
					case '6':
						return 31;
						break;
					case '7':
						return 31;
						break;
					case '8':
						return 30;
						break;
					case '9':
						return 31;
						break;
					case '10':
						return 30;
						break;
					case '11':
						return 31;
						break;
				}
		}

      /////////////////////////////////////////////////////////////////////////
      // Función jsDameNombreMes.
      // Función de uso interno que nos proporciona el nombre del mes en el 
      // idioma del usuario, por defecto en español.
      /////////////////////////////////////////////////////////////////////////
		function jsDameNombreMes (Pmes)
		{
			switch (pidm)
			{
				case '1':
					switch (Pmes)
					{
						case '0':
							return "Enero";
							break;
						case '1':
							return "Febrero";
							break;
						case '2':
							return "Marzo";
							break;
						case '3':
							return "Abril";
							break;
						case '4':
							return "Mayo";
							break;
						case '5':
							return "Junio";
							break;
						case '6':
							return "Julio";
							break;
						case '7':
							return "Agosto";
							break;
						case '8':
							return "Setiembre";
							break;
						case '9':
							return "Octubre";
							break;
						case '10':
							return "Noviembre";
							break;
						case '11':
							return "Diciembre";
							break;
					}
					break;
				case '4':
					switch (Pmes)
					{
						case '0':
							return "Janvier";
							break;
						case '1':
							return "Février";
							break;
						case '2':
							return "Mars";
							break;
						case '3':
							return "Avril";
							break;
						case '4':
							return "Mai";
							break;
						case '5':
							return "Juin";
							break;
						case '6':
							return "Juillet";
							break;
						case '7':
							return "Août";
							break;
						case '8':
							return "Septembre";
							break;
						case '9':
							return "Octobre";
							break;
						case '10':
							return "Novembre";
							break;
						case '11':
							return "Décembre";
							break;
					}
					break;
				case '2':
					switch (Pmes)
					{
						case '0':
							return "January";
							break;
						case '1':
							return "February";
							break;
						case '2':
							return "March";
							break;
						case '3':
							return "April";
							break;
						case '4':
							return "May";
							break;
						case '5':
							return "June";
							break;
						case '6':
							return "July";
							break;
						case '7':
							return "August";
							break;
						case '8':
							return "September";
							break;
						case '9':
							return "October";
							break;
						case '10':
							return "November";
							break;
						case '11':
							return "December";
							break;
					}
					break;
				case '3':
					switch (Pmes)
					{
						case '0':
							return "Januar";
							break;
						case '1':
							return "Februar";
							break;
						case '2':
							return "März";
							break;
						case '3':
							return "April";
							break;
						case '4':
							return "Mai";
							break;
						case '5':
							return "Juni";
							break;
						case '6':
							return "Juli";
							break;
						case '7':
							return "August";
							break;
						case '8':
							return "September";
							break;
						case '9':
							return "Oktober";
							break;
						case '10':
							return "November";
							break;
						case '11':
							return "Dezember";
							break;
					}
					break;
			}
		}

      
		function jsDameNombreDia(Pdia)
		{
			
			switch (pidm)
			{
			   case '3':
               switch (Pdia)
               {
                  case "0":
                     return "Mo";
                  case "1":
                     return "Di";
                  case "2":
                     return "Mi";
                  case "3":
                     return "Do";
                  case "4":
                     return "Fr";
                  case "5":
                     return "Sa";
                  case "6":
                     return "So";
               }
					break;
				case '4':
               switch (Pdia)
               {
                  case "0":
                     return "Lu";
                  case "1":
                     return "Ma";
                  case "2":
                     return "Me";
                  case "3":
                     return "Je";
                  case "4":
                     return "Ve";
                  case "5":
                     return "Sa";
                  case "6":
                     return "Di";
               }
					break;
				case '1':
               switch (Pdia)
               {
                  case "0":
                     return "Lu";
                  case "1":
                     return "Ma";
                  case "2":
                     return "Mi";
                  case "3":
                     return "Ju";
                  case "4":
                     return "Vi";
                  case "5":
                     return "Sa";
                  case "6":
                     return "Do";
               }
					break;
				case '2':
               switch (Pdia)
               {
                  case "0":
                     return "Mo";
                  case "1":
                     return "Tu";
                  case "2":
                     return "We";
                  case "3":
                     return "Th";
                  case "4":
                     return "Fr";
                  case "5":
                     return "Sa";
                  case "6":
                     return "Su";
               }
					break;
			}
		}

		function jsEsBisiesto (Paño)
		{
			// Un año es bisiesto si es su modulo base cuatro es cero y si al mismo tiempo su modulo base 100 es diferente de cero o
			// bien si el el modulo base 400 es cero.
			if (((Paño % 4 == 0) && (Paño % 100 != 0)) || (Paño % 400 == 0))
			{
				return true;
			}
			return false;
		}

		function jsIniDay(Pday)
		{
			diaactual = Pday;
		}
		
		function jsClick(e)
		{
      	 esfirefox = false;    	
      	 try
      	 {
         	oo = event.srcElement;
			
         } catch(e)
         {
			esfirefox = true;
         	oo = e.target;
         }

		 if (esfirefox == false)
		 {
			 if (oo.tagName == "TD" || oo.tagName == "B")
			 {
				if (oo.tipo == "dia")
				{
				   zz = oo.innerHTML;
				   rExp = /<B tipo="dia">/gi;
				   zz = zz.replace (rExp,"");
				   rExp = /<\/B>/gi;
				   zz = zz.replace (rExp,"");
				   fechasel = construyefecha(zz);
				   myText.value = fechasel;
				   myText.onchange();
				}
			 }

			 if (oo.tipo == "next")
			 {
			   gonextmonth();      
			 }
			 if (oo.tipo == "prev")
			 {
				goprevmonth();
			 }

			 if (oo.tipo == "cierre")
			 {
				jsOculta();
			 }
		 }        
		 else
		{

			 a = e.target;
			 if (a == "[object HTMLTableCellElement]" || a == "[object HTMLSpanElement]")
			 {
				if (a.tipo == "dia")
				{
				   zz = a.innerHTML;
				   rExp = /<B tipo="dia">/gi;
				   zz = zz.replace (rExp,"");
				   rExp = /<\/B>/gi;
				   zz = zz.replace (rExp,"");
				   fechasel = construyefecha(zz);
				   //fechasel = construyefecha(zz);
				   myText.value = fechasel;
				   myText.onchange();
				}
			 }

			 if (a.tipo == "next")
			 {
			   gonextmonth();      
			 }
			 if (a.tipo == "prev")
			 {
				goprevmonth();
			 }

			 if (a.tipo == "cierre")
			 {
				jsOculta();
			 }
		}

         //window.status = oo.tagName;
      }
      
      function construyefecha (Pdia)
      {
         var dia = Pdia;
         var mes = tempfecha.getMonth();
         var año = tempfecha.getFullYear();

         mes = mes + 1;

         if (mes < "10")
         {
            mes = "0" + mes;
         }

		 if (dia < "10")
		 {
			 dia = "0" + dia;
		 }

		 tempsel = dia + "/" + mes + "/" + año;
		 if (pTipo == "US")
		 {
		    tempsel = mes + "/" + dia + "/" + año;
		 }
         
         jsOculta();
		 return tempsel;
      }
      
      function gonextmonth()
      {
         var dia = tempfecha.getDate();
         var mes = tempfecha.getMonth();
         var año = tempfecha.getFullYear();
         if (mes == 11)
         {
            mes = "1";
			if ((año+1) > anoactual )
			{ año = anoactual-100; }
			else
			{ año = año + 1; }
         }
         else
         {
            mes = mes + 2;
         }
         
         if (mes < "10")
         {
            mes = "0" + mes;
         }

         diaactual = dia + "/" + mes + "/" + año;
         Calendario();
      }
      
      function goprevmonth()
      {
         var dia = tempfecha.getDate();
         var mes = tempfecha.getMonth();
         var año = tempfecha.getFullYear();
         
         if (mes == 0)
         {
            mes = "12";
			if ((año -1) <= (anoactual-100))
			{
				año = anoactual;
			}
			else
			{
				año = año - 1;
			}
         }
         else
         {
            mes = mes;
         }
              

         if (mes < "10")
         {
           mes = "0" + mes;
         }

         diaactual = dia + "/" + mes + "/" + año;
         
         Calendario();
      }
      
      function jsOculta()
      {	 
		 try
		 {
			contenedor.style.visibility='hidden';	
		 }
		 catch (e){}
         
      }

      function jsMuestra()
      {
         contenedor.style.visibility='visible';
      }
