// JavaScript Document

// NOTE VL : Pour modifier la date de fin des plannings de Résa, voir la ligne 55 de ce fichier, dans la fonction ds_template_main_above(), modifié l'intitulé du mois
//                  et ligne 80, modifier les 3 variables mois, année et jour

var ds_i_date = new Date();
ds_c_month = ds_i_date.getMonth() + 1;
ds_c_year = ds_i_date.getFullYear();

function ds_getel(id) {
	return document.getElementById(id);
}

function ds_getleft(el) {
	var tmp = el.offsetLeft + 716;
	return tmp;
}
function ds_gettop(el) {
	var tmp = el.offsetTop + 63;
	return tmp;
}

var ds_oe = ds_getel('c_calclass');
var ds_ce = ds_getel('c_class');

var ds_ob = ''; 
function ds_ob_clean() {
	ds_ob = '';
}
function ds_ob_flush() {
	ds_oe.innerHTML = ds_ob;
	ds_ob_clean();
}
function ds_echo(t) {
	ds_ob += t;
}

var ds_element;

var ds_monthnames = [
'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'
]; 

var ds_daynames = [
'Dim', 'Lun', 'Mar', 'Me', 'Jeu', 'Ven', 'Sam'
];


function ds_template_main_above(t) {
	var ligne_haut = '';
	ligne_haut = '<table cellpadding="1" cellspacing="1" class="c_tab">';
	ligne_haut += '<tr>';
	ligne_haut += '<td class="c_entete" style="cursor: pointer" onclick="ds_pm();">&lt;</td>';
	ligne_haut += '<td class="c_entete" style="cursor: pointer" colspan="4">' + t + '</td>';
	if (t != "Octobre 2010") {
		ligne_haut += '<td class="c_entete" style="cursor: pointer" onclick="ds_nm();">&gt;</td>';
	} else {
		ligne_haut += '<td class="c_entete"></td>';
	}
	ligne_haut += '<td class="c_entete" style="cursor: pointer" onclick="ds_hi();"><img src=\"../interface/c_close.gif\" alt=\"Fermer le calendrier\" /></td>';
	ligne_haut += '</tr>';
	ligne_haut += '<tr>';
	
	return ligne_haut;
}

function ds_template_day_row(t) {
	return '<td class="c_soustitre">' + t + '</td>';
}

function ds_template_new_week() {
	return '</tr><tr>';
}

function ds_template_blank_cell(colspan) {
	return '<td colspan="' + colspan + '"></td>'
}

function ds_template_day(d, m, y, j) {
		if (m == 10 && y == 2010 && d > 31){
			return '<td class="c_cellule_inactive" onclick="window.alert(\'Les plannings ne sont pas encore ouverts pour cette période\')">' + d + '</td>';
		} else {
			if (j == 6){
				return '<td class="c_cellule_samedi" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
			} else {
				return '<td class="c_cellule" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
			}
		}
}

function ds_template_main_below() {
	return '</tr>'
	     + '</table>';
}

function ds_draw_calendar(m, y) {
	ds_ob_clean();
	ds_echo (ds_template_main_above(ds_monthnames[m - 1] + ' ' + y));
	for (i = 0; i < 7; i ++) {
		ds_echo (ds_template_day_row(ds_daynames[i]));
	}
	var ds_dc_date = new Date();
	ds_dc_date.setMonth(m - 1);
	ds_dc_date.setFullYear(y);
	ds_dc_date.setDate(1);
	if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
		days = 31;
	} else if (m == 4 || m == 6 || m == 9 || m == 11) {
		days = 30;
	} else {
		days = (y % 4 == 0) ? 29 : 28;
	}
	var first_day = ds_dc_date.getDay();
	var first_loop = 1;
	ds_echo (ds_template_new_week());
	if (first_day != 0) {
		ds_echo (ds_template_blank_cell(first_day));
	}
	var j = first_day;
	for (i = 0; i < days; i ++) {

		if (j == 0 && !first_loop) {
			ds_echo (ds_template_new_week());
		}

		ds_echo (ds_template_day(i + 1, m, y, j));
		first_loop = 0;
		j ++;
		j %= 7;
	}
	// Do the footer
	ds_echo (ds_template_main_below());
	ds_ob_flush();
}

function ds_sh(t,q,f) {
	document.getElementById('nb_personne').style.visibility = 'hidden';
	quelChamp = q;
	quelForm = f;
	ds_element = t;
	var ds_sh_date = new Date();
	ds_c_month = ds_sh_date.getMonth() + 1;
	ds_c_year = ds_sh_date.getFullYear();
	
	c_date_deb = document.getElementById("date_deb").value;
	ds_draw_calendar(ds_c_month, ds_c_year);
	
	if (c_date_deb != ''){
		la_date = c_date_deb.split("/");
		if (la_date[2] > ds_c_year) {
			dif_month = (12 - parseInt(ds_c_month)) + parseInt(la_date[1]) + 12*(la_date[2] - ds_c_year - 1);
		} else {
			dif_month = parseInt(la_date[1]) - parseInt(ds_c_month);
		}
		
		dif_month = dif_month + 1;
		
		var compteurs = 1;
		
		while (compteurs < dif_month){
			ds_nm();
			compteurs++;
		}
	}
	
	ds_ce.style.display = '';
	lenavigateur = navigator.appName;
	laversion = navigator.appVersion;
	the_left = ds_getleft(t);
	the_top = ds_gettop(t) + t.offsetHeight;
	if (lenavigateur == "Microsoft Internet Explorer" ){
		the_top = the_top + 93;
		the_left = the_left + 11;
		if(laversion == "4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)"){
		the_top = the_top + 11;
		the_left = the_left +7;
		}
	}
	ds_ce.style.left = the_left + 'px';
	ds_ce.style.top = the_top + 'px';
}

function ds_hi() {
	ds_ce.style.display = 'none';
	document.getElementById('nb_personne').style.visibility = 'visible';
}

function ds_nm() {
	ds_c_month ++;

	if (ds_c_month > 12) {
		ds_c_month = 1; 
		ds_c_year++;
	}
	ds_draw_calendar(ds_c_month, ds_c_year);
}

function ds_pm() {
	ds_c_month = ds_c_month - 1;
	if (ds_c_month < 1) {
		ds_c_month = 12; 
		ds_c_year = ds_c_year - 1;
	}
	ds_draw_calendar(ds_c_month, ds_c_year);
}

function ds_ny() {
	ds_c_year++;
	ds_draw_calendar(ds_c_month, ds_c_year);
}

function ds_py() {
	ds_c_year = ds_c_year - 1;
	ds_draw_calendar(ds_c_month, ds_c_year);
}

function ds_format_date(d, m, y) {
	m2 = '00' + m;
	m2 = m2.substr(m2.length - 2);
	d2 = '00' + d;
	d2 = d2.substr(d2.length - 2);
	return d2 + '/' + m2 + '/' + y;
}

function ds_onclick(d, m, y) {
	ds_hi();
	if (typeof(ds_element.value) != 'undefined') {
		if (quelChamp == 2){
			laNouvDate = ds_format_date(d, m, y);
			if (quelForm == 2){
				date1 = document.getElementById('date_deb_ch').value;
			} else {
				date1 = document.getElementById('date_deb').value;
			}
			if (quelForm == 2){
				date2 = document.getElementById('date_fin_ch').value;
			} else {
				date2 = document.getElementById('date_fin').value;
			}
			ds_element.value = laNouvDate;
			nb_jour(date1,laNouvDate,quelForm);
		} else {
			ds_element.value = ds_format_date(d, m, y);
		}
	} else if (typeof(ds_element.innerHTML) != 'undefined') {
		ds_element.innerHTML = ds_format_date(d, m, y);
	} else {
		alert (ds_format_date(d, m, y));
	}
}