// control del div calendario

var mounths		= new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
var m_variance	= 0;
var y_variance	= 0;
var form_input	= 0;

// salida en formato 2004 o 104 segun navegador 

var	today		= new Date();
if (today.getYear()<1000)	year_base = 1900;
else						year_base = 0;


function check_calendar_fecha(input)
	{
	output		= 1;
	template_	= /^([0-9]){2,2}\/([0-9]){2,2}\/([0-9]){4,4}$/;
	
	if	(template_.test(input))
		{
		dd		= 1*(input.substr(0,2));
		mm		= 1*(input.substr(3,2));
		yyyy	= 1*(input.substr(6,4));
				
		if (mm==0 || mm>12)
			{
			output = -1;
			}
		else
			{
			if (mm==4 || mm==6 || mm==9 || mm==11)	mounth_days = 30;
			else if (mm==2)							mounth_days = 28 + check_29_february(yyyy);
			else									mounth_days = 31;

			if (dd>mounth_days || dd==0)
				output = -1;
			}
		
		}
	else
		{
		output = 0;
		}

	return output;
	}


function start_calendar(this_input,x,y)
	{
	form_input	= this_input;
	form_value	= eval('document.' +this_input + '.value;');

	m_variance	= 0;
	y_variance	= 0;

	if ( check_calendar_fecha(form_value)>0 )	
		{
		base_dd   = 1*form_value.substr(0,2);
		base_mm   = 1*form_value.substr(3,2);
		base_yyyy = 1*form_value.substr(6,4);
		
		base_mm--;
		}
	else
		{
		base_dd   = 1*today.getDate();
		base_mm   = 1*today.getMonth();
		base_yyyy = 1*year_base + 1*today.getYear();
		}

	show_calendar('start',form_value);
	move_layer('div_calendar',x,y);
	}

function show_calendar(action,value)
	{
	if		(action=='next_mounth')	m_variance++;
	else if	(action=='prev_mounth')	m_variance--;
	else if	(action=='prev_year')	y_variance--;
	else if	(action=='next_year')	y_variance++;

	var	today		= new Date();
	var first_day	= new Date( base_yyyy*1 + 1*y_variance , base_mm*1 + 1*m_variance , 1);

	start = first_day.getDay();
	if (start==0)	start = 7;
	start--;

	m = first_day.getMonth();
	y = first_day.getYear();
	
	if (m==today.getMonth() && y==today.getYear())	mark_day = true;
	else											mark_day = false;

	if (m==0 || m==2 || m==4 || m==6 || m==7 || m==9 || m==11)		days = 31;
	else if (m==1)													days = 28;
	else															days = 30;

	// correccion de fechas js segun navegador
	if (y<1000)	y+=1900;

	// chequeo de aņo bisiesto	
	if (m==1)
		if (check_29_february(y)==1)
			days++;

	// calendar year
	document.getElementById("td_calendar_year").innerHTML = y;

	// calendar mounth
	document.getElementById("td_calendar_mounth").innerHTML = mounths[m];

	// calendar days
	for (i=0;i<start;i++)
		eval("document.getElementById(\"td_calendar_" + i + "\").innerHTML = '&nbsp;';");

	day = 1;	
	for (i=start;i<(days + start);i++)
		{
		eval("document.getElementById(\"td_calendar_" + i + "\").innerHTML = '" + day + "';");
		day++

		eval("document.getElementById(\"td_calendar_" + i + "\").style.fontWeight = 'normal';");
		if (mark_day == true)
			if (day==(today.getDate()+1))
				eval("document.getElementById(\"td_calendar_" + i + "\").style.fontWeight = 'bold';");
		}

	for (i=(days + start);i<42;i++)
		eval("document.getElementById(\"td_calendar_" + i + "\").innerHTML = '&nbsp;';");


	}
	
function check_29_february(year)
	{
	if (year % 4 != 0)	output = 0;
	else
		{
		if (year % 100 == 0)
			{
			if (year % 400 == 0)	output = 1;
			else					output = 0;
			}
		else output = 1;
		}

	return output;
	}

	
function mouse_click_calendar(id)
	{
	yy = y;
	mm = 1 + m;
	dd = id.innerHTML;

	if (dd>=1)
		{
		if (mm<10)	mm = '0'+mm;
		if (dd<10)	dd = '0'+dd;
	
		output_date = dd +'/'+ mm + '/' + yy;
		eval('document.'+form_input + '.value = "' + output_date + '";');
		
		// close div
		move_layer('div_calendar',-1000,-1000);
		}
	}

function mouse_over_calendar(id)
	{
	id.style.backgroundColor = "e0e0e0";
	}

function mouse_out_calendar(id)
	{
	id.style.backgroundColor = "fafafa";
	}

