var mes_actual='';
var anho_actual='';
var dia_actual='';
var mes_inicial='';
var anho_inicial='';
var dias_mes=[31,28,31,30,31,30,31,31,30,31,30,31];
var nom_mes=["Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"];
var cont_sig=0;var max_sig=3;
var input_salida;
var div;
function mostrar()
{
	var inicio_mes=new Date(anho_actual,mes_actual,1);
	var dia_semana=inicio_mes.getDay();

	var texto="<div style='font-weight:bold;width:163px;heigth:35px;'><div style='float:left;width:20px;padding:12px 0 12px 0;cursor:pointer;' onClick='ant_mes()'><</div><div style='float:left;width:123px;padding:5px 0 5px 0'>"+nom_mes[mes_actual]+"<br />"+anho_actual+"</div><div style='float:left;width:20px;padding:12px 0 12px 0;cursor:pointer;' onClick='sig_mes();'>></div></div>";
	texto+="<div style='clear:both;'><table bgcolor='#FFFFFF'><tr style='background-color:#FFF;color:#546A04;height:19px;'><td>S</td><td>M</td><td>D</td><td>M</td><td>D</td><td>F</td><td>S</td>";
	var i=0;
	var dia=1;
	while(i<50)
	{
		if(i%7==0)
			texto+="</tr><tr>";
		if(i<dia_semana||dia>dias_mes[mes_actual])
			texto+="<td style='background-color:#DDD;width:19px;height:19px;'>&nbsp;</td>";
		else
		{
			if( (dia<dia_actual&&cont_sig==0))
			{
				texto+="<td style='background-color:#DDD;width:19px;height:19px;'>"+dia+"</td>";
			}else
			{
				if(dia==dia_actual&&cont_sig==0)
				{
					texto+="<td style='font-weight: bold;background-color:#333366;'>"+dia+"</td>";
				}else
				{
					texto+="<td onClick='establecer_fecha(this)' onMouseOver='colorear(this,true)' onMouseOut='colorear(this,false)' style='color:#000;background-color:#CCC;cursor:pointer;width:19px;height:19px;'>"+dia+"</td>";
				}
			}
			dia++;
		}
		i++;

		if((dia>dias_mes[mes_actual] )&& (i%7==0))
			break;
	}
	texto+="</tr></table></div>";
	texto+="<div style='padding:8px 0 8px 0;'><span onClick='limpiar()' style='cursor:pointer;'>l&ouml;schen</span> | <span onClick='cancelar()' style='cursor:pointer;'>schlie&szlig;en</span></div>";
	
	div.innerHTML=texto;
}
function mostrar_calendario(input,anho,mes,dia)
{
	var fecha_input=input.value;
	if(mes_actual==='')
	{
		mes_actual=mes-1;
		mes_inicial=mes_actual;
		anho_actual=anho;
		anho_inicial=anho_actual;
		dia_actual=dia;
		cont_sig=0;
		
		input_salida=input;
		comprobar_bisiestos();
		div=document.createElement("div");
		div.style.position="absolute";
		div.style.backgroundColor="#333366";
		div.style.color="#FFF";
		div.style.left=getLeft(input)+"px";
		div.style.fontFamily="arial,verdana,helvetica,sans-serif";
		div.style.width="163px";
		div.style.fontSize="8pt";
		div.style.border="1px solid #000";
		div.style.textAlign="center";
		var top=getTop(input)+input.offsetHeight;
		div.style.top=top+"px";
		document.body.appendChild(div);
	}
	else
	{
		div.style.display='';
	}
	mostrar();
}
function sig_mes()
{
	if(cont_sig==max_sig)
		return;
	cont_sig++;
	mes_actual++;

	if(mes_actual==12)
	{
		mes_actual=0;
		anho_actual++;
		comprobar_bisiestos();
	}
	mostrar();
}
function ant_mes()
{
	if(cont_sig==0)
		return;
	cont_sig--;
	mes_actual--;
	if(mes_actual==-1)
	{
		mes_actual=11;
		anho_actual--;
		comprobar_bisiestos();
	}
	mostrar();
}
function establecer_fecha(td_sel)
{
	dia=td_sel.innerHTML;
	mes=1+mes_actual;
	var valor=f_num(dia)+"."+f_num(mes)+"."+anho_actual;
	input_salida.value=valor;
	cerrar();
}
function cancelar()
{
	mes_actual=mes_inicial;
	anho_actual=anho_inicial;
	cont_sig=0;
	cerrar();
}
function cerrar()
{
	div.style.display="none";
}
function limpiar()
{
	input_salida.value="";
	cancelar();
}
function comprobar_bisiestos()
{
	if(anho_actual%4==0)
		dias_mes[1]=29;
	else
		dias_mes[1]=28;
}
function f_num(num)
{
	num+="";
	if(num.length==1)
		return "0"+num;
	return num;
}
function getLeft(elm)
{
	var x = 0;
	while (elm != null) 
	{
		x+= elm.offsetLeft;
		elm = elm.offsetParent;
	}
	return parseInt(x);
 }
function getTop(elm) 
{
	var y=0;
	while (elm != null) {
		y+= elm.offsetTop;
		elm = elm.offsetParent;
	}
	return parseInt(y);
}
function colorear(elemento,c)
{
if(c)
{
	elemento.style.backgroundColor="#333366";
	elemento.style.color="#FFF";
}else{
	elemento.style.backgroundColor="#CCC";
	elemento.style.color="#000";
}
}
