// Tableau pour les noms des mois
var mois = new Array("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre");

/*
 * Validation de la saisie du champ commune / code postal
 */
function validerCommune() {
	$('resultats').innerHTML = '';
	$('resultats').removeClassName('res_error');
	$('commune_valide').innerHTML = '<img src="_images/loading.gif" alt="Recherche en cours..." />'
	cacherSuiteFormulaire();

	var f = $('frm_recherche');
	new Ajax.Updater($('commune_valide'), '_includes/ajaxQuery.php', {
		method: 'post',
		parameters: 'action=validerCommune&value='+$F('commune'),
		onComplete: function() {
			// Si on a 'concerne' dans le texte, alors c'est qu'une commune est sélectionné
			// On peut donc affiché la suite
			if ($('commune_valide').innerHTML.indexOf('concerne') != -1)
				afficherSuiteFormulaire();
		}
	});
	return false;
}

/*
 * 
 */
function suggereCommune() {
	if ($('commune')) {
		new Ajax.Autocompleter('commune', 'commune_choix', '_includes/ajaxQuery.php?action=suggererCommune', {
			paramName: 'value'
		});
	}
}

/*
 * Validation d'une commune à partir d'un menu déroulant
 */
function selectionnerCommune() {
	var d, c;
	if ($F('com').indexOf('#') != -1) {
		d = $F('com').substring($F('com').indexOf('#')+1, $F('com').length);
		c = $F('com').substring(0, $F('com').indexOf('#'));
	} else {
		d = $F('dep');
		c= $F('com');
	}
	$('commune_valide').innerHTML = "<input type='hidden' id='dep' name='dep' value='"+d+"' />" +
									"<input type='hidden' id='com' name='com' value='"+c+"' />" +
									"Votre recherche concerne "+$('com').options[$('com').selectedIndex].text;
	afficherSuiteFormulaire();
}

/*
 * Validation d'un arrondissement à partir d'un menu déroulant
 */
function selectionnerArrond() {
	$('commune_valide').innerHTML = "<input type='hidden' id='dep' name='dep' value='75' />" +
									"<input type='hidden' id='com' name='com' value='56' />" +
									"<input type='hidden' id='arron' name='arron' value='"+$F('arron')+"' />" +
									"Votre recherche concerne le "+($F('arron')==1?"1er":$F('arron')+"ème")+" arrondissement de PARIS";
	afficherSuiteFormulaire();
}

/*
 * Masquage et reset de la seconde partie du formulaire
 */
function cacherSuiteFormulaire() {
	$('form_part2').style.display = 'none';
	$('form_quartier').style.display = 'none';
	$('periode_debut').options.length = 0;
	$('periode_fin').options.length = 0;
}

/*
 * Affichage et set de la seconde partie du formulaire
 */
function afficherSuiteFormulaire() {
	$('form_part2').style.display = 'block';

	// On réinitialise tout
	$('form_quartier').innerHTML = '';
	$('periode_debut').options.length = 0;
	$('periode_fin').options.length = 0;
	$('numvoie').value = '';
	$('libvoie').value = '';
	$('periode_auto').selectedIndex = 0;
	$('pieces_min').selectedIndex = 0;
	$('pieces_max').selectedIndex = 0;
	$('surface_min').value = '';
	$('surface_max').value = '';
	
	// On sélectionne le bon rayon et on charge les menus pour la période
	switch ($F('dep')) {
		case '75':
			$('rayon').options.selectedIndex = 0;
			chargerMenuPeriode($('periode_debut'), $('periode_fin'), 15);
			// On est à Paris, on affiche les quartiers
			chargerQuartiers($F('arron'));
			break;
		case '92': case '93': case '94':
			$('rayon').options.selectedIndex = 1;
			chargerMenuPeriode($('periode_debut'), $('periode_fin'), 15);
			break;
		case '77': case '78': case '91': case '95':
			$('rayon').options.selectedIndex = 2;
			chargerMenuPeriode($('periode_debut'), $('periode_fin'), 10);
			break;
	}
	
}

function chargerQuartiers(arron) {
	$('form_quartier').style.display = 'block';
	new Ajax.Updater('form_quartier', '_includes/ajaxQuery.php', {
		method: 'post',
		parameters: 'action=chargerQuartiers&value='+arron,
		onSucces: function() {
			$('form_quartier').style.display = 'block';
		}
	});
}

function chargerMenuPeriode(ed, ef, limit) {
	var start = new Date();
	var yearLimit = start.getYear() - limit - 1;

	start.setDate(1);
	start.setMonth(start.getMonth() - 2);
	if (start.getMonth() < 0) {
		start.setMonth(12 + start.getMonth());
		start.setYear(start.getYear() - 1);
	}
	
	var j = 0;
	while (start.getYear() > yearLimit) {
		m = start.getMonth()+1;
		text = mois[start.getMonth()] + " " + start.getFullYear();
		value = start.getFullYear()+"-"+(m<10?"0":"")+m+"-01";
		nd = new Option(text, value);
		value = start.getFullYear()+"-"+(m<10?"0":"")+m+"-";
		switch(m) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				value += "31";
				break;
			case 2:
				value += "28";
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				value += "30";
				break;
		}
		
		nf = new Option(text, value);
		// On n'affiche pas les 5 premiers du menu de début (période min)
		if (j < 5)
			j++;
		else
	 		ed.options[ed.options.length] = nd;
 		ef.options[ef.options.length] = nf;
 		start.setMonth(start.getMonth() - 1);
 		if (start.getMonth() < 0) {
 			start.setYear(start.getYear() - 1);
 			start.setMonth(11);
 		}
	}
	
	// On retire les 5 derniers du menu de fin (période minimum)
	ef.options.length = ef.options.length - 5;
}

function updateMenuPeriode(menu) {
	var ind = $('periode_debut').options.selectedIndex;
	var inf = $('periode_fin').options.selectedIndex;
	
	if (menu == 'fin' && ind < inf)
		$('periode_fin').options.selectedIndex = ind;
	if (menu == 'debut' && inf > ind)
		$('periode_debut').options.selectedIndex = inf;

	$('periode_debut').removeClassName('inactive');
	$('periode_fin').removeClassName('inactive');
	$('periode_auto').options.selectedIndex = 0;
	$('periode_auto').addClassName('inactive');
}

function updateMenuPeriodeAuto() {
	if ($('periode_auto').options.selectedIndex == 0) {
		$('periode_debut').removeClassName('inactive');
		$('periode_fin').removeClassName('inactive');
		$('periode_auto').addClassName('inactive');
	} else {
		$('periode_auto').removeClassName('inactive');
		$('periode_debut').addClassName('inactive');
		$('periode_fin').addClassName('inactive');
	}
}

function updateMenuPiece(menu) {
	var imin = $('pieces_min').options.selectedIndex;
	var imax = $('pieces_max').options.selectedIndex;
	
	if (menu == 'max' && imin > imax)
		$('pieces_max').options.selectedIndex = 0;
	if (menu == 'min' && imin > imax)
		$('pieces_min').options.selectedIndex = 0;
}

function verifierSurface(input) {
	var diff = parseInt($F('surface_max')) - parseInt($F('surface_min'));

	if (!isNaN(diff) && diff < 20) {
		$('surface_'+input).value = '';
	}
}

function checkNum(input) {
	if ($F(input).length > 0) {
		var reg = /^\d*([,.]?\d*)?$/;
		if (reg.test($F(input)) == false)
			$(input).value = $F(input).substr(0, $F(input).length - 1);
	}
}

function rechercherMutations() {
	afficherCache();
	$('formulaire').style.display = 'none';
	$('resultats').innerHTML = '';
	$('resultats').removeClassName('res_error');
	new Ajax.Request('_includes/ajaxQuery.php', {
		method: 'post',
		parameters: 'action=rechercherMutations&'+Form.serializeElements($('frm_recherche').getElements()),
		onComplete: function(transport) {
			eval("var res = "+transport.responseText)
			switch (res.statut) {
				case 'erreur': 
				case 'exception': 
				case 'horsbornes': 
					$('resultats').innerHTML = res.message;
					$('resultats').addClassName('res_error');
					$('formulaire').style.display = 'block';
					window.location.href = "#resultats";
					break;
				case 'previsualisation':
					$('resultats').innerHTML = res.message;
					break;
				case 'commande':
					break;
			}
			masquerCache();
		}
	});
	return false;
}

function commanderSelection(reqid, nombre) {
	$('formulaire').style.display = 'none';
	$('resultats').innerHTML = '';

	new Ajax.Updater('paiement', 'bien_paiement.php', {
		method: 'post',
		parameters: 'step=1&reqid='+reqid+'&nb='+nombre+'&'+Form.serializeElements($('frm_recherche').getElements())
	})
}

function afficherCache() {
//	$('loading').style.width = $('formulaire').offsetWidth+'px';
//	$('loading').style.height = $('formulaire').offsetHeight+'px';
//	$('loading_img').style.marginTop = ($('formulaire').offsetHeight-$('loading_img').offsetHeight)/2 + 'px';
	$('loading').style.display = 'block';
}

function masquerCache() {
	$('loading').style.display = 'none';
}

function modifierSelection() {
	$('resultats').innerHTML = '';
	$('paiement').innerHTML = '';
	$('formulaire').style.display = 'block';
}

function checkCGV() {
	if (! $('valid_cgv').checked) {
		alert("Vous devez accepter les Conditions Générales de Ventes.");
		return false;
	}
	else
		return true;
}

function trim(s) {
    return s.replace(/^\s+/, '').replace(/\s+$/, '');
}

function checkOgone() {
	var err = true;
	if (trim($F('nom')) == "") {
		$('nom_err').style.display = 'block';
		err = false;
	}
	else
		$('nom_err').style.display = 'none';

	if (trim($F('prenom')) == "") {
		$('prenom_err').style.display = 'block';
		err = false;
	}
	else
		$('prenom_err').style.display = 'none';

	if (trim($F('email')) == "") {
		$('email_err').style.display = 'block';
		err = false;
	}
	else
		$('email_err').style.display = 'none';

	if (trim($F('adresse')) == "") {
		$('adresse_err').style.display = 'block';
		err = false;
	}
	else
		$('adresse_err').style.display = 'none';

	if (trim($F('cp')) == "") {
		$('cp_err').style.display = 'block';
		err = false;
	}
	else
		$('cp_err').style.display = 'none';

	if (trim($F('ville')) == "") {
		$('ville_err').style.display = 'block';
		err = false;
	}
	else
		$('ville_err').style.display = 'none';

	$('CN').value = trim($F('nom'))+' '+trim($F('prenom'));
	$('paramplus').value = $('paramplus').value + "&nom=" + $F('CN') + "&email=" + $F('email');
	$('paramplus').value = $('paramplus').value + "&adresse=" + $F('adresse') + "&cp=" + $F('cp') + "&ville=" + $F('ville');

	return err;
}
