// JavaScript Document
/*
	class calendar writen by "Mr. Linux" => T.S.U. Francisco González Nava.
*/

function ClassCalendar(config,d_mes,d_year,prop)
{
	var NowDate  = new Date();
	var fecha  = {dia:NowDate.getDay(), mes: NowDate.getMonth(), year: NowDate.getYear()};

	if( parseInt( d_year ) < 300){ d_year += 1900; }
	if( fecha.year < 300 ){ fecha.year += 1900; }

	var year   = (d_year > 1953) ? parseInt(d_year) : parseInt( fecha.year );

	if( d_mes == -1 ){ d_mes = 11; year--; }
	if( d_mes == 12 ){ d_mes = 0; year++; }

	var mes    = ( ( parseInt( d_mes ) > -1 ) && ( parseInt( d_mes ) < 12 ) ) ? parseInt( d_mes ) : parseInt( fecha.mes );
	var did = eval("'entervalue_"+config.nameid+"'");
	
	var defaultMsg = "&nbsp;";
	var config = config;
	var pathImg = "_tools/_js/";
	var spaceLine = '&nbsp;';
		
	ClassCalendar.prototype.Bisiesto = function( _year ){
		
		return ( ( _year % 4 == 0 ) && ( _year % 100 != 0 )  ) ? 1 : 0;
	};
	
	ClassCalendar.prototype.NumDays = function( _mes ){
		
		var DiasMes = new Array(31, (this.Bisiesto(year) == 0 ? 28 : 29), 31, 30, 31, 30, 31, 30, 31, 31, 30, 31);
		return DiasMes[_mes];	
	};
	
	ClassCalendar.prototype.NomMeses = function( _mes ){
		
		var N_meses = new Array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
		return N_meses[_mes];
	};
	
	ClassCalendar.prototype.NomDias = function( _dia ){
		
		var N_dias = new Array('Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado');
		return N_dias[_dia];
	};
	
	ClassCalendar.prototype.getCalendario = function(){
		 
			var f_doble = new Date(year,mes,1);
			var num_sema = f_doble.getDay();
			var dia_semana = this.NomDias(num_sema);
		
			strips = '';
			
			html = "<table border='0' cellspacing='0' cellpadding='0' class='main_table'>";
			html+= "<tr><td colspan='6' class='calendar_title' id='drag"+config.nameid+"'>"+config.title+"</td><td class='calendar_title'><a href='javascript:;' onclick='Visible(\"CALENDAR_"+config.nameid+"\",false);'><img src='"+pathImg+"error_icon_mini.gif' border='0' style='float:right'></a></td></tr>"
			html+= "<tr><td colspan='7'>";
			html+= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"table\">";
			html+= "<tr>";
			html+= "<td width=\"36\" align=\"left\"><a href=\"javascript:;\" onclick=\"javascript:new ClassCalendar({nameid: '"+ config.nameid +"', title: '"+ config.title +"'}, '"+ mes +"', '"+ (year-1) +"');\" onmouseover=\"js_Writen('"+ did + "', '"+ this.NomMeses(mes) + spaceLine + (year-1) +"');\" onmouseout=\"js_Writen('"+ did +"', '"+ defaultMsg +"');\">&lt;&lt;</a></td>";
			html+= "<td width=\"36\" align=\"left\"><a href=\"javascript:;\" onclick=\"javascript:new ClassCalendar({nameid: '"+ config.nameid +"', title: '"+ config.title +"'}, '"+ (mes-1) +"', '"+ year +"');\" onmouseover=\"js_Writen('"+ did +"', '"+ this.NomMeses(mes == 0 ? 11 : mes-1) + spaceLine + ( mes == 0 ? year-1 : year ) +"');\" onmouseout=\"js_Writen('"+ did +"', '"+ defaultMsg +"');\">&lt;</a></td>";
			
			html+= "<td width=\"80\" align=\"center\"><div align=\"center\" class=\"name_mes_year\">"+ this.NomMeses( mes )+ spaceLine + year +"</div></td>";
		
			html+= "<td width=\"36\" align=\"right\"><a href=\"javascript:;\" onclick=\"javascript:new ClassCalendar({nameid: '"+ config.nameid +"', title: '"+ config.title +"'}, '"+ (mes+1) +"', '"+ year +"');\" onmouseover=\"js_Writen('"+ did +"', '"+ this.NomMeses(mes == 11 ? 0 : mes+1 ) + spaceLine + ( mes == 11 ? year+1 : year ) +"');\" onmouseout=\"js_Writen('"+ did +"', '"+ defaultMsg +"');\">&gt;</a></td>";
			html+= "<td width=\"36\" align=\"right\"><a href=\"javascript:;\" onclick=\"javascript:new ClassCalendar({nameid: '"+ config.nameid +"', title: '"+ config.title +"'}, '"+ mes +"', '"+ (year+1) +"');\" onmouseover=\"js_Writen('"+ did + "', '"+ this.NomMeses(mes) + spaceLine + (year+1) +"');\" onmouseout=\"js_Writen('"+ did +"', '"+ defaultMsg +"');\">&gt;&gt;</a></td>";
			html+= "</tr>";
			html+= "</table>";
			html+= "</td></tr>";
				
			html+= "<tr align='center' class='f_calendar_days'><td width=\"28\">D</td><td width=\"28\">L</td><td width=\"28\">M</td><td width=\"28\">M</td><td width=\"28\">J</td><td width=\"28\">V</td><td width=\"28\">S</td></tr><tr class=\"f_calendar\">";
			
			for(q = 1; q <= num_sema; q++)
			{
				if(q == num_sema+1) break; else html+="<td class='calendar_clean'></td>";
			}
			
			var f_actual = new Date();
			
			for(x = 1, a = q; x < this.NumDays(mes) + 1; x++, a++)
			{
				if(a == 8 ){ html+= '</tr><tr class="f_calendar">'; a = 1; }
			
				if( year == fecha.year && mes == fecha.mes && x == f_actual.getDate() )
				{	
					html+= "<td width=\"28\" class=\"calendar_nameDay_dark\" onmouseover=\"this.className='calendar_nameDay_dark_hover'\" onmouseout=\"this.className='calendar_nameDay_dark'\" align=\"center\"><a href=\"javascript:;\" onclick=\"javascript:js_Writen('"+ config.nameid +"', '"+ year +"/"+( mes+1 < 10 ? '0'+(mes+1) : mes+1 )+"/"+( x < 10 ? '0'+x : x)+"');  Visible('CALENDAR_"+ config.nameid +"',false); \">"+ x +"</a></td>";
				}
				else
				{
					html+= "<td width=\"28\" class=\"calendar_nameDay\" onmouseover=\"this.className='calendar_nameDay_hover'\" onmouseout=\"this.className='calendar_nameDay'\"  align=\"center\"><a href=\"javascript:;\" onclick=\"javascript:js_Writen('"+ config.nameid +"', '"+ year +"/"+( mes+1 < 10 ? '0'+(mes+1) : mes+1 )+"/"+( x < 10 ? '0'+x : x)+"'); Visible('CALENDAR_"+ config.nameid +"',false); \">"+ x +"</a></td>";
				}
				
				if( a < 8 && x == this.NumDays(mes)){
				  for(y = a; y < 8; y++)
				  {
					html+= "<td class='calendar_clean'></td>";
				  }
				}	
			
			}
			html+= "<tr class=\"f_calendar_next\"><td colspan='7' align='center' id='entervalue_"+config.nameid+"'>"+ defaultMsg +"</td></tr>"
			
			html+= '</table>';
			
			d.getElementById('CALENDAR_'+ config.nameid).innerHTML = html;
	};
	

	this.getCalendario();

};
