function showLo() {
	$('loading').style.display = 'block';
}
function hideLo() {
	$('loading').style.display = 'none';
}
function buildCal( m, y )
{
	new Ajax.Request( CFG.URL, {
		method: 'post',
		parameters: { mes: m, any: y, accio: 'calendari_actes' },
		onLoading: this.showLo.bind(this), 
		onComplete: this.hideLo.bind(this),
		onSuccess: buildCal_cb.bind( this ),
		onFailure: function(){alert("ups, no puc connectar-me!");}
	} );

}
function buildCal_cb( resposta )
{
 	var ajax_data = resposta.responseText;
	
	eval("var aOb = ("+ajax_data+")");
	var dies_actes = new Array();

	for( var i = 1; i <= 31; i++ )
	{
		dies_actes[i] = false;
	}

	if( aOb.dies )
	{
		for(var i = 0; i < aOb.dies.length; i++)
		{
			var tmp = aOb.dies[i].dia;
			dies_actes[tmp] = true;
		}
	}
	
	m = aOb.data[0].mes;
	y = aOb.data[0].any;
	mes_actual = m;
	any_actual = y;
	
	var mn=['gener','febrer','mar&#231;','abril','maig','juny','juliol','agost','setembre','octubre','novembre','desembre'];
	var dies=['dl','dt','dc','dj','dv','ds','dg'];
	var dim=[31,0,31,30,31,30,31,31,30,31,30,31]; /* dies dels mesos */
	var dim_ant=[31,31,0,31,30,31,30,31,31,30,31,30]; /* dies dels mesos anteriors */
	var dim_seg=[0,31,30,31,30,31,31,30,31,30,31,31]; /* dies dels mesos posteriors */

	var oD = new Date(y, m-1, 1);
	oD.od = oD.getDay(); /* dia de la setmana 0 - dg, 6 - ds */

	var data_avui = new Date();
	var avui = (y == data_avui.getFullYear() && m == data_avui.getMonth() + 1) ? data_avui.getDate() : 0;
	var setmana_avui = parseInt( (avui-1) / 7 ) + 1; /* la setmana del dia d'avui, més una setmana del mes anterior */
	setmana_actual = setmana_avui;
	
	// dies que té el febrer
	dim[1] = (((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
	dim_ant[2] = dim[1];
	dim_seg[0] = dim[1];
	
	var t = '';
	t += '<table class="calendari" cols="7" cellpadding="3" cellspacing="0">';
	t += '<tr class="cal_cap">';
	t += '<td class="mes_ant" colspan="2" onmousedown="mes_anterior();" style="cursor: pointer; text-align: right"><!--img src="/img/icones/fletxa_e.png" alt="fletxa" /--></td>';
	t += '<td class="mes_act" colspan="3" onmousedown="selecciona_mes();" style="border: 0px; color: #85bc19">'+mn[m-1]+' '+y+'</td>';
	t += '<td class="mes_seg" colspan="2" onmousedown="mes_seguent();" style="cursor: pointer; text-align: left"><!--img src="/img/icones/fletxa_d.png" alt="fletxa" /--></td>';
	t += '</tr>';
	t += '<tr class="cal_cap_dia">';
	
	for( s = 0; s < 7; s++ )
	{
		t += '<td class="">'+dies[s]+'</td>';
	}
	
	t += '</tr><tr>';
	
	var dia = 1;
	var setmana = 0;
	var classes = '';
	
	/* posa els dies del mes anterior */
	for( i = ( dim_ant[m-1] - oD.od + 2 ); i <= dim_ant[m-1]; i++ )
	{
		t += '<td height="0"></td>';
		if( dia%7 == 0 )
		{
			t += '</tr><tr>';
			setmana++;
		}
		dia++;
	}
	for( i = 1; i <= dim[m-1]; i++ )
	{
		classes = '';
		var x = i;
		
		if( dia%7 == 0 ) classes += 'cal_fest';
		
		if( setmana == setmana_actual )
		{
			if( classes != '' ) classes += ' ';
			if( dia%7 == 0 ) classes += 'cal_fest';
		}

		if( x == avui )
		{
			if( classes != '' ) classes += ' ';
			classes += 'cal_avui';
		}

		if( dies_actes[x] == true )
		{
			t += '<td class="'+classes+' cal_acte"><a href="agenda.php?mes='+ m +'&any='+ y +'#a-'+ x +'">' + x + '</a></td>';
		}
		else
			t += '<td class="'+classes+'">' + x + '</td>';

		if( dia%7 == 0 )
		{
			t += '</tr><tr>';
			setmana++;
		}
		dia++;
	}
	var ultim_dia = oD.od + dim[m-1]%7;
	
	
	for( i = 1; i < 14 - ultim_dia + 2; i++ )
	{
		t += '<td style="border: none"></td>';
		if( dia%7 == 0 )
		{
			t += '</tr><tr>';
			setmana++;
		}
		dia++;
	}
	
	t += '</tr></table>';
	
	$('calendari').innerHTML = t;
}
function canvia_dia( el, dia_sel, mes_sel, any_sel )
{
	for( var i = 0; i <= 31; i++ )
		Element.removeClassName($('id-' + i ), 'cal_sel_dia');
	
	Element.addClassName($('id-' + dia_sel ), 'cal_sel_dia');

	new Ajax.Request( CFG.URL, {
		method: 'post',
		parameters: { dia: dia_sel, mes: mes_sel, any: any_sel, accio: 'hemeroteca' },
		onLoading: this.showLo.bind(this), 
		onComplete: this.hideLo.bind(this),
		onSuccess: canvia_dia_cb.bind(),
		onFailure: function(){alert("ups, no puc connectar-me!");}
	} );
}

function canvia_dia_cb( resposta )
{
	var ajax_data = resposta.responseText;
	
	$('resultat').innerHTML = ajax_data;
}

function selecciona_mes()
{

}
function mes_anterior()
{
	if( mes_actual == 1 )
	{
		mes_actual = 12;
		any_actual--;
	}
	else mes_actual--;
	buildCal( mes_actual, any_actual );
	
	veure_actes(mes_actual, any_actual)
}
function mes_seguent()
{
	if( mes_actual == 12 )
	{
		mes_actual = 1;
		any_actual++;
	}
	else mes_actual++;
	buildCal( mes_actual, any_actual );
	
	veure_actes(mes_actual, any_actual)
}


function veure_acte( id_acte )
{
	new Ajax.Request( CFG.URL, {
		method: 'post',
		parameters: { id_acte: id_acte, accio: 'veure_acte' },
		onLoading: this.showLo.bind(this), 
		onComplete: this.hideLo.bind(this),
		onSuccess: veure_acte_cb.bind(),
		onFailure: function(){alert("ups, no puc connectar-me!");}
	} );
}
function veure_acte_cb( resposta )
{
	var ajax_data = resposta.responseText;
	
	var res = ajax_data.split("||");

	$('acte-' + res[0] ).innerHTML = res[1];
}
