var calendrier_cible = false;

var noms_mois = ['', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];

function calendrier(event)
{
	var bloc, table, tr, jours, jour, mois, tmp, cible;
	if (typeof(event) == 'number')
	{
		bloc = plume('calendrier');
		var deployer = bloc ? bloc.getElementsByTagName('tbody') : false;
		deployer = deployer && deployer.length ? deployer[deployer.length - 1].getElementsByTagName('tr').length : false;
		jours = document.getElementById('calendrier_jours').value;
		jour = document.getElementById('calendrier_actif').value;
		mois = document.getElementById('calendrier_visuel').value;
		switch (event)
		{
		case 2:
			deployer = ! deployer;
			break;
		case 1:
		case -1:
			mois = mois.split(/-0?/);
			mois[1] = parseInt(mois[1]) + event;
			switch (mois[1])
			{
			case 0:
				-- mois[0];
				mois[1] = 12;
				break;
			case 10:
			case 11:
			case 12:
				break;
			case 13:
				++ mois[0];
				mois[1] = '01';
				break;
			default:
				mois[1] = '0' + mois[1];
			}
			mois = mois[0] + '-' + mois[1];
			document.getElementById('calendrier_visuel').value = mois;
		}
		tmp = new RegExp(mois + ':([^,]*)');
		jours = tmp.test(jours) ? tmp.exec(jours)[1] : '';
		jour = jour.indexOf(mois) < 0 ? 0 : jour.split(/-0?/)[2];
		jours = ' ' + jour + ' ' + jours + ' ';
		mois = mois.split(/-0?/);
		jour = new Date();
		
		var titre_premier = mois[1] - 1 == jour.getMonth() && mois[0] == jour.getFullYear();
		var titre_mois = noms_mois[mois[1]] + ' ' + mois[0];
if (document.all) {	// le colspan ne fonctionne pas en DOM sous IE :(
		bloc.innerHTML = '<table onmouseover="calendrier(event)" onmouseout="calendrier(event)" onclick="calendrier(event)" class="' + (deployer ? 'cal_open' : 'cal_close') + '"><thead><tr>' + (titre_premier ? '<td></td>' : '<td id="cal_avant" class="cal_titre">&lt;&lt;</td>') + '<td id="cal_mois" colspan="5" class="cal_mois">' + titre_mois + '</td>' + '<td id="cal_apres" class="cal_titre">&gt;&gt;</td></tr></thead></table>';
		table = plume(bloc.getElementsByTagName('table')[0]);
} else {
		while (bloc.lastChild)
			bloc.removeChild(bloc.lastChild);
		
		table = bloc.bebe('table', { 'onmouseover' : "calendrier(event)", 'onmouseout' : "calendrier(event)", 'onclick' : "calendrier(event)", 'class' : deployer ? 'cal_open' : 'cal_close' });
		
		bloc = table.bebe('thead');
		tr = bloc.bebe('tr');
		if (titre_premier)
			tr.bebe('td');
		else
			tr.bebe('td',  { 'id' : 'cal_avant', 'class' : "cal_titre" }).innerHTML = "&lt;&lt;";
		tr.bebe('td', { 'id' : 'cal_mois', 'colspan' : '5', 'class' : "cal_mois" }).innerHTML = titre_mois;
		tr.bebe('td', { 'id' : 'cal_apres', 'class' : "cal_titre" }).innerHTML = ">>";
}
		
		table.style.position = deployer ? 'absolute' : '';
		bloc = table.bebe('tbody');
		if (! deployer)
			return;
		jour.setTime(Date.UTC(mois[0], mois[1] - 1, 1));
		jour = jour.getDay();
		jour = jour ? 2 - jour : -5;
		mois = [0, 31, mois[0] % 4 ? 28 : 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][mois[1]];
		
		var mois_annee = document.getElementById('calendrier_visuel').value.split("-");
		mois_annee = "_" + noms_mois[parseInt(mois_annee[1], 10)].toLowerCase() + "_" + mois_annee[0];
		
		while (jour <= mois) {
			tr = bloc.bebe('tr');
			for (table = 1; table <= 7; ++ table) {
				if (jour >= 1 && jour <= mois) {
					tmp = jours.indexOf(" " + jour + " ") + 1;
					if (! tmp && jours.indexOf(" * ") >= 0)
						tmp = 2;
					var url = tmp == 1 ? "aujourd'hui" : "le_" + parseInt(jour, 10) + mois_annee;
					tr.bebe('td', [ false, { 'class' : "cal_actif" }, { 'class' : "cal_ok" } ][tmp > 1 ? 2 : tmp]).bebe('a', { href : url, src : url }).innerHTML = jour;
					mois
				} else
					tr.bebe('td');
				++ jour;
			}
		}
		return;
	}
	event = window.event || event;
	cible = event.target || event.srcElement;
	if (cible.tagName != 'TD' && cible.tagName != 'TH')
		return;
	switch (event.type) {
	case 'mouseover':
		tmp = cible.className ? '_souris' : '';
		if (tmp && cible.className.indexOf('_souris') < 0)
			cible.className += tmp;
		if (calendrier_cible && calendrier_cible != cible)
			calendrier_cible.className = calendrier_cible.className.replace('_souris/', '');
		if (tmp)
			calendrier_cible = cible;
		return;
	case 'mouseout':
		if (cible.className.indexOf('_souris') >= 0)
			cible.className = cible.className.replace('_souris', '');
		if (calendrier_cible && calendrier_cible == cible)
			calendrier_cible = false;
		return;
	}
	switch (cible.id) {
	case "cal_mois":
		calendrier(2);
		return;
	case "cal_avant":
		calendrier(-1);
		return;
	case "cal_apres":
		calendrier(1);
		return;
	}
	if (cible.className) {
		if (document.getElementById('rubriques'))
			document.getElementById('rubriques').selectedIndex = -1;
		if (document.getElementById('motcle'))
			document.getElementById('motcle').value = '';
		if (tmp = cible.getElementsByTagName('a'))
			window.location.href = tmp[0].href ? tmp[0].href : tmp[0].src;
		else
		{
			tmp = document.getElementById('calendrier_visuel').value + '-' + (cible.innerHTML < 10 ? '0' : '') + cible.innerHTML;
			jour = document.getElementById('calendrier_actif'); jour.value = tmp; jour.form.submit();
		}
	}
	return;
}

function afficher(image) {
	image = image.src;
	window.open(image, "Image");
}

function rechercher(input) {
	if (input.id == 'rubriques') {
		if (input.selectedIndex < 0)
			return;
		if (document.getElementById('motcle'))
			document.getElementById('motcle').value = '';
		var url;
		if (url = input.options[input.selectedIndex].getAttribute('url'))
		{
			window.location.href = url;
			return;
		}
	} else {
		if (document.getElementById('rubriques'))
			document.getElementById('rubriques').selectedIndex = -1;
	}
	input.form.submit();
}

var publicite_nbr = -1;
function publicite() {
	if (typeof(pajax) != 'object') {
		pajax = window.XMLHttpRequest ? new XMLHttpRequest() : (window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : false);
	}
	if (pajax) {
		if (pajax.readyState && pajax.readyState != 4)
			pajax.abort();
		if (publicite_nbr < 0)
		{
			publicite_nbr = 0;
			while (document.getElementById('banniere' + (++ publicite_nbr)))
				;
			-- publicite_nbr;
		}
		if (! publicite_nbr) return;
		pajax.open('GET', window.location.href.replace(/\?[^\/]*$/, '') + '?publicite=' + (0 - publicite_nbr), true);
		pajax.onreadystatechange = function() {
			var idx, info, infos, delai = 0;
			if (pajax && pajax.readyState == 4) {
				if (pajax.responseText) {
					var id = 0;
					infos = pajax.responseText.split(/\n/);
					for (idx in infos) {
						info = infos[idx];
						if (/^(-?\d+):(.*)$/.test(info)) {
							info = /^(-?\d+):(.*)$/.exec(info);
							if (delai < info[1] || info[1] < 0)
								delai = info[1];
							try { document.getElementById('banniere' + (++ id)).innerHTML = info[2]; } catch (err) {};
						}
					}
				}
				if (delai >= 0)
					window.setTimeout('publicite()', delai == 0 ? 15000 : info[1] * 1000);
			}
		}
		pajax.send(null);
	}
}

function init() {
	plume('liste').attribuer('style', 'height:' + window.innerHeight + 'px');
	return;
}
/*
function et_aussi_ce_mois_ci()
{
	var input = document.getElementById('et_aussi_ce_mois_ci');
	input.value = input.value >  0 ? 0 : 1;
	input.form.submit();
}
*/
