/*
 * Fonction de validation du formulaire de login en page d'accueil
 */
var bool = true;
var couleur_erreur = '#ffff00';
var couleur_originale = '#ffffff';

function alertAndFocus(id, msg) {
	findObj(id).style.background = couleur_erreur;
	findObj(id).focus();
	alert(msg);
	return false;
}

/**
 * avertissement et focus
 * @param {String} id
 * @param {String} msg
 */
function alertAndFocus2(id, msg) {
	$('#' + id).css('background', '#ffff00').fadeOut('slow', function() {
		$(this).fadeIn('slow').focus();
	});
	alert(msg);
}

function formLoginFOSubmit() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	findObj('identifiant').style.background = couleur_originale;
	findObj('motDePasse').style.background = couleur_originale;
	if (trim(findObj('identifiant').value) == '') {
		alertAndFocus('identifiant', 'Vous devez saisir un identifiant valide.');
		bool = false;
	} else if (trim(findObj('motDePasse').value) == '') {
		alertAndFocus('motDePasse', 'Vous devez saisir un mot de passe valide.');
		bool = false;
	}
	findObj('identifiant').value = trim(findObj('identifiant').value);
	//cookie mémoriser identifiant/mot de passe
	if (bool && findObj('formCbMemo').checked == true) {
		date = new Date;
		date.setMonth(date.getMonth() + 1); // expire dans un mois
		setCookie('geophone_login', findObj('identifiant').value, date);
		setCookie('geophone_password', findObj('motDePasse').value, date);
		setCookie('geophone_memo', 1, date);
	} else {
		delCookie('geophone_login');
		delCookie('geophone_password');
		delCookie('geophone_memo');
	}
	if (bool) {
		findObj('formLogin').submit();
	}
}

function formLoginFOSubmit4() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	findObj('login').style.background = couleur_originale;
	findObj('password').style.background = couleur_originale;
	if (trim(findObj('login').value) == '') {
		alertAndFocus('login', 'Vous devez saisir un identifiant valide.');
		bool = false;
	} else if (trim(findObj('password').value) == '') {
		alertAndFocus('password', 'Vous devez saisir un mot de passe valide.');
		bool = false;
	}
	findObj('login').value = trim(findObj('login').value);
	//cookie mémoriser identifiant/mot de passe
	if (bool && findObj('formCbMemo').checked == true) {
		date = new Date;
		date.setMonth(date.getMonth() + 1); // expire dans un mois
		setCookie('geophone_login', findObj('login').value, date);
		setCookie('geophone_password', findObj('password').value, date);
		setCookie('geophone_memo', 1, date);
	} else {
		delCookie('geophone_login');
		delCookie('geophone_password');
		delCookie('geophone_memo');
	}
	if (bool) {
		findObj('formLogin').submit();
	}
}

function formLoginFOSubmit4() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	findObj('login').style.background = couleur_originale;
	findObj('password').style.background = couleur_originale;
	if (trim(findObj('login').value) == '') {
		alertAndFocus('login', 'Vous devez saisir un identifiant valide.');
		bool = false;
	} else if (trim(findObj('password').value) == '') {
		alertAndFocus('password', 'Vous devez saisir un mot de passe valide.');
		bool = false;
	}
	findObj('login').value = trim(findObj('login').value);
	//cookie mémoriser login/mot de passe
	if (bool && findObj('formCbMemo').checked == true) {
		date = new Date;
		date.setMonth(date.getMonth() + 1); // expire dans un mois
		setCookie('geophone_login', findObj('login').value, date);
		setCookie('geophone_password', findObj('password').value, date);
		setCookie('geophone_memo', 1, date);
	} else {
		delCookie('geophone_login');
		delCookie('geophone_password');
		delCookie('geophone_memo');
	}
	if (bool) {
		findObj('formLogin').submit();
	}
}

/*
 * Fonction de validation du formulaire de mot de passe oublié en page d'accueil
 */
function formMotDePasseOublieFOSubmit() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	findObj('identifiantOublie').style.background = couleur_originale;
	findObj('emailOublie').style.background = couleur_originale;
	if (trim(findObj('identifiantOublie').value) == '') {
		alertAndFocus('identifiantOublie',
				'Vous devez saisir un identifiant valide.');
		bool = false;
	} else if (!checkMail(trim(findObj('emailOublie').value))) {
		alertAndFocus('emailOublie',
				'Vous devez saisir une adresse email valide.');
		bool = false;
	}
	findObj('identifiantOublie').value = trim(findObj('identifiantOublie').value);
	if (bool) {
		findObj('formMotDePasseOublie').submit();
	}
}

/*
 * Fonction de validation du formulaire d'abonnement
 */
function formAbonnementFOSubmit() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	findObj('nom').style.background = couleur_originale;
	findObj('prenom').style.background = couleur_originale;
	findObj('adresse1').style.background = couleur_originale;
	findObj('email').style.background = couleur_originale;
	findObj('cp').style.background = couleur_originale;
	findObj('ville').style.background = couleur_originale;
	findObj('telFixe').style.background = couleur_originale;
	findObj('telMobile').style.background = couleur_originale;
	findObj('login').style.background = couleur_originale;
	if (findObj('groupe').value != 1) {
		findObj('numAlerte1').style.background = couleur_originale;
		findObj('numAlerte2').style.background = couleur_originale;
		findObj('nomMobile').style.background = couleur_originale;
	} else {
		findObj('nomGroupe').style.background = couleur_originale;
	}
	findObj('cgv').style.background = couleur_originale;
	//teste l'existence du login
	var loginExiste = chargeFichierGET('verifLogin.ajax.php?login=' + escape(findObj('login').value));
	var groupeExiste = chargeFichierGET('verifGroupeExiste.ajax.php?nomGroupe=' + escape(findObj('nomGroupe').value));
	if (loginExiste == 1) {
		alertAndFocus('login', 'Cet identifiant est deja utilisé');
		bool = false;
	} else if (groupeExiste > 1 && findObj('groupe').value == 1) {
		alertAndFocus('nomGroupe', 'Ce nom de groupe est deja utilisé');
		bool = false;
	} else if (trim(findObj('nom').value) == '') {
		alertAndFocus('nom', 'Vous devez saisir un nom.');
		bool = false;
	} else if (trim(findObj('prenom').value) == '') {
		alertAndFocus('prenom', 'Vous devez saisir un prénom.');
		bool = false;
	} else if (trim(findObj('adresse1').value) == '') {
		alertAndFocus('adresse1', 'Vous devez saisir une adresse.');
		bool = false;
	} else if (!checkMail(trim(findObj('email').value))) {
		alertAndFocus('email', 'Vous devez saisir une adresse email valide.');
		bool = false;
	} else if (!checkCP(trim(findObj('cp').value))) {
		alertAndFocus('cp', 'Vous devez saisir un code postal valide.');
		bool = false;
	} else if (trim(findObj('ville').value) == '') {
		alertAndFocus('ville', 'Vous devez saisir une commune.');
		bool = false;
	} else if (trim(findObj('telFixe').value) != ''
			&& !checkTelFixe(trim(findObj('telFixe').value))) {
		alertAndFocus('telFixe',
				'Le numéro de téléphone fixe n\'est pas correct.');
		bool = false;
	} else if (trim(findObj('telMobile').value) != ''
			&& !checkGSM(trim(findObj('telMobile').value))) {
		alertAndFocus('telMobile',
				'Le numéro de téléphone mobile n\'est pas correct.');
		bool = false;
	} else if (trim(findObj('login').value) == ''
			|| findObj('login').value.length < 5) {
		alertAndFocus('login', 'Vous devez saisir un identifiant valide.');
		bool = false;
	} else if (findObj('groupe').value != 1
			&& trim(findObj('numAlerte1').value) == '') {
		alertAndFocus('numAlerte1',
				'Vous devez saisir un numéro de téléphone d\'alerte 1.');
		bool = false;
	} else if (findObj('groupe').value != 1
			&& trim(findObj('numAlerte1').value) != ''
			&& !checkTelFixe(trim(findObj('numAlerte1').value))) {
		alertAndFocus(
				'numAlerte1',
				'Le numéro de téléphone d\'alerte 1 n\'est pas correct.\nIl doit correspondre à un numéro de téléphone mobile.');
		bool = false;
	} else if (findObj('groupe').value != 1
			&& trim(findObj('numAlerte2').value) != ''
			&& !checkTelFixe(trim(findObj('numAlerte2').value))) {
		alertAndFocus('numAlerte2',
				'Le numéro de téléphone d\'alerte 2 n\'est pas correct.');
		bool = false;
	} else if (findObj('groupe').value != 1
			&& trim(findObj('nomMobile').value) == '') {
		alertAndFocus('nomMobile', 'Vous devez saisir un nom de géophone.');
		bool = false;
	} else if (findObj('groupe').value == 1
			&& trim(findObj('nomGroupe').value) == '') {
		alertAndFocus('nomGroupe', 'Vous devez saisir un nom de groupe.');
		bool = false;
	} else if (findObj('cgv').checked == false) {
		alertAndFocus('cgv',
				'Vous devez accepter les conditions générales de vente.');
		bool = false;
	}
	findObj('nom').value = trim(findObj('nom').value).toUpperCase();
	findObj('societe').value = trim(findObj('societe').value).toUpperCase();
	findObj('ville').value = trim(findObj('ville').value).toUpperCase();
	findObj('login').value = trim(findObj('login').value).toLowerCase();
	findObj('email').value = trim(findObj('email').value).toLowerCase();
	if (bool) {
		findObj('formAbonnement').submit();
	}
}

/*
 * Fonction de validation du formulaire de mot de passe oublié en page d'accueil
 */
function formGenereIdentifiantFO() {
	var login = trim(findObj('nom').value)
			+ trim(findObj('prenom').value).substr(0, 3)
			+ trim(findObj('cp').value).substr(0, 2);
	findObj('login').value = login.toLowerCase();
}

/*
 * Fonction de validation du formulaire de login en page d'accueil
 */
function formContactFOSubmit() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	findObj('formTxEmail').style.background = couleur_originale;
	findObj('formTxSujet').style.background = couleur_originale;
	findObj('formTaMessage').style.background = couleur_originale;
	if (!checkMail(trim(findObj('formTxEmail').value))) {
		alertAndFocus('formTxEmail',
				'Vous devez saisir une adresse email valide.');
		bool = false;
	} else if (trim(findObj('formTxSujet').value) == '') {
		alertAndFocus('formTxSujet', 'Vous devez saisir un sujet.');
		bool = false;
	} else if (trim(findObj('formTaMessage').value) == '') {
		alertAndFocus('formTaMessage', 'Vous devez saisir un message.');
		bool = false;
	}
	if (bool) {
		findObj('formContact').submit();
	}
}

/*
 * Fonction de validation du formulaire d'abonnement
 */
function formModifCoordonneesFOSubmit() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	findObj('nom').style.background = couleur_originale;
	findObj('prenom').style.background = couleur_originale;
	findObj('adresse1').style.background = couleur_originale;
	findObj('email').style.background = couleur_originale;
	findObj('cp').style.background = couleur_originale;
	findObj('ville').style.background = couleur_originale;
	findObj('telFixe').style.background = couleur_originale;
	findObj('telMobile').style.background = couleur_originale;
	if (trim(findObj('nom').value) == '') {
		alertAndFocus('nom', 'Vous devez saisir un nom.');
		bool = false;
	} else if (trim(findObj('prenom').value) == '') {
		alertAndFocus('prenom', 'Vous devez saisir un prénom.');
		bool = false;
	} else if (trim(findObj('adresse1').value) == '') {
		alertAndFocus('adresse1', 'Vous devez saisir une adresse.');
		bool = false;
	} else if (!checkMail(trim(findObj('email').value))) {
		alertAndFocus('email', 'Vous devez saisir une adresse email valide.');
		bool = false;
	} else if (!checkCP(trim(findObj('cp').value))) {
		alertAndFocus('cp', 'Vous devez saisir un code postal valide.');
		bool = false;
	} else if (trim(findObj('ville').value) == '') {
		alertAndFocus('ville', 'Vous devez saisir une commune.');
		bool = false;
	} else if (trim(findObj('telFixe').value) != ''
			&& !checkTelFixe(trim(findObj('telFixe').value))) {
		alertAndFocus('telFixe',
				'Le numéro de téléphone fixe n\'est pas correct.');
		bool = false;
	} else if (trim(findObj('telMobile').value) != ''
			&& !checkGSM(trim(findObj('telMobile').value))) {
		alertAndFocus('telMobile',
				'Le numéro de téléphone mobile n\'est pas correct.');
		bool = false;
	}
	findObj('nom').value = trim(findObj('nom').value).toUpperCase();
	findObj('societe').value = trim(findObj('societe').value).toUpperCase();
	findObj('ville').value = trim(findObj('ville').value).toUpperCase();
	findObj('email').value = trim(findObj('email').value).toLowerCase();
	if (bool) {
		findObj('formModifCoordonnees').submit();
	}
}

function formModifAbonnementFOSubmit() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	findObj('numAlerte1').style.background = couleur_originale;
	findObj('numAlerte2').style.background = couleur_originale;
	findObj('nomMobile').style.background = couleur_originale;
	findObj('codeGroupe').style.background = couleur_originale;
	if (trim(findObj('numAlerte1').value) == '') {
		alertAndFocus('numAlerte1',
				'Vous devez saisir un numéro de téléphone d\'alerte 1.');
		bool = false;
	} else if (trim(findObj('numAlerte1').value) != ''
			&& !checkTelFixe(trim(findObj('numAlerte1').value))) {
		alertAndFocus(
				'numAlerte1',
				'Le numéro de téléphone d\'alerte 1 n\'est pas correct.\nIl doit correspondre à un numéro de téléphone mobile.');
		bool = false;
	} else if (trim(findObj('numAlerte2').value) != ''
			&& !checkTelFixe(trim(findObj('numAlerte2').value))) {
		alertAndFocus('numAlerte2',
				'Le numéro de téléphone d\'alerte 2 n\'est pas correct.');
		bool = false;
	} else if (trim(findObj('nomMobile').value) == '') {
		alertAndFocus('nomMobile', 'Vous devez saisir un nom de géophone.');
		bool = false;
	}
	findObj('codeGroupe').value = trim(findObj('codeGroupe').value)
			.toLowerCase();
	if (bool) {
		findObj('formModifAbonnement').submit();
	}
}

function formAbonnementSetGroupeFO() {
	var retour = chargeFichierGET('verifCodeGroupe.ajax.php?codeGroupe=' + escape(findObj('codeGroupe').value));
	if (retour != '') {
		findObj('divNomGroupe').innerHTML = 'Rattachement au groupe : ' + retour;
		findObj('nomGroupe').value = retour;
	} else {
		findObj('divNomGroupe').innerHTML = 'Ce code groupe n\'est pas reconnu.';
		findObj('nomGroupe').value = '';
	}
	findObj('divNomGroupe').style.display = 'block';
}

function formGeofenceFOSubmit() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	var heureDebut = findObj('geofence_heureDebutHeure').value + ''
			+ findObj('geofence_heureDebutMinute').value;
	var heureFin = findObj('geofence_heureFinHeure').value + ''
			+ findObj('geofence_heureFinMinute').value;

	findObj('geofence_adresse').style.background = couleur_originale;
	findObj('geofence_cp').style.background = couleur_originale;
	findObj('geofence_ville').style.background = couleur_originale;
	findObj('geofence_nomZone').style.background = couleur_originale;
	findObj('geofence_messageEntree').style.background = couleur_originale;
	findObj('geofence_messageSortie').style.background = couleur_originale;
	findObj('geofence_numAlerte1').style.background = couleur_originale;
	findObj('geofence_numAlerte2').style.background = couleur_originale;
	findObj('geofence_heureDebut').style.background = couleur_originale;
	findObj('geofence_heureFin').style.background = couleur_originale;

	if (findObj('geofence_h24').checked == false) {
		findObj('geofence_heureDebut').value = findObj('geofence_heureDebutHeure').value
				+ ':' + findObj('geofence_heureDebutMinute').value + ':00';
		findObj('geofence_heureFin').value = findObj('geofence_heureFinHeure').value
				+ ':' + findObj('geofence_heureFinMinute').value + ':00';
	}

	if (trim(findObj('geofence_nomZone').value) == '') {
		alertAndFocus2('geofence_nomZone', 'Vous devez saisir un nom de zone');
		bool = false;
		/*
		 } else if (trim(findObj('geofence_numAlerte1').value)=='') {
		 bool = alertAndFocus2('geofence_numAlerte1', 'Le numéro de téléphone d\'alerte 1 est obligatoire.');
		 */
	} else if (trim(findObj('geofence_numAlerte1').value) != ''
			&& !checkTelFixe(trim(findObj('geofence_numAlerte1').value))) {
		bool = alertAndFocus2('geofence_numAlerte1',
				'Le numéro de téléphone d\'alerte 1 n\'est pas correct.');
	} else if (!checkTelFixe(trim(findObj('geofence_numAlerte2').value))) {
		bool = alertAndFocus2('geofence_numAlerte2',
				'Le numéro de téléphone d\'alerte 2 n\'est pas correct.');
	} else if (trim(findObj('geofence_messageEntree').value) == ''
			&& trim(findObj('geofence_messageSortie').value) == '') {
		alertAndFocus2('geofence_messageEntree',
				'Vous devez saisir un message d\'entrée et/ou sortie.');
		bool = false;
	} else if (trim(findObj('geofence_heureDebut').value) != ''
			&& !checkTime(trim(findObj('geofence_heureDebut').value))) {
		bool = alertAndFocus2('geofence_heureDebutHeure',
				'L\'heure de début n\'est pas correcte.');
	} else if (trim(findObj('geofence_heureFin').value) != ''
			&& !checkTime(trim(findObj('geofence_heureFin').value))) {
		bool = alertAndFocus2('geofence_heureFinHeure',
				'L\'heure de fin n\'est pas correcte.');
	} else if (parseInt(heureDebut, 10) >= parseInt(heureFin, 10)) {
		bool = alertAndFocus2('geofence_heureDebutHeure',
				'L\'heure de fin ne peut être inférieure ou égale à l\'heure de début.');
	}
	findObj('geofence_ville').value = trim(findObj('geofence_ville').value)
			.toUpperCase();

	if (bool) {
		findObj('formGeofence').submit();
	}
}

function deleteGeofence() {
	if (confirm('Etes vous sûr de vouloir supprimer ce geofence ?')) {
		findObj('actionGeofence').value = 'supprimer';
		findObj('formGeofence').submit();
	}
}

function formTacheFOSubmit() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	//teste si horaire libre
	if (typeof (indexTache) != 'undefined') {
		for ( var cle in indexTache) {
			if (tabTache[indexTache[cle]]['date'] == findObj('tache_date').value
					&& tabTache[indexTache[cle]]['heure'] == findObj('tache_heure').value
							+ ':' + findObj('tache_minute').value + ':00'
					&& tabTache[indexTache[cle]]['idTache'] != findObj('tache_idTache').value) {
				alert('Une tâche existe déjà à la même date et heure.');
				bool = false;
			}
		}
	}
	findObj('tache_epoch').value = findObj('tache_date').value.substring(6, 10)
			+ '-' + findObj('tache_date').value.substring(3, 5) + '-'
			+ findObj('tache_date').value.substring(0, 2) + ' '
			+ findObj('tache_heure').value + ':'
			+ findObj('tache_minute').value + ':00';
	findObj('tache_objet').style.background = couleur_originale;
	//suppression des espaces en debut de chaine et des retours chariot
	findObj('tache_objet').value = trim(findObj('tache_objet').value);
	findObj('tache_objet').value = findObj('tache_objet').value.replace(
			new RegExp("(\r\n|\r|\n)", "g"), ' ');
	remplaceCaracteres('tache_objet');
	if (trim(findObj('tache_objet').value) == '') {
		alertAndFocus('tache_objet', 'Vous devez saisir un objet');
		bool = false;
	} else if (trim(findObj('tache_numAlerte1').value) != ''
			&& !checkTelFixe(trim(findObj('tache_numAlerte1').value))) {
		bool = alertAndFocus('tache_numAlerte1',
				'Le numéro de téléphone d\'alerte 1 n\'est pas correct.');
	} else if (!checkTelFixe(trim(findObj('tache_numAlerte2').value))) {
		bool = alertAndFocus('tache_numAlerte2',
				'Le numéro de téléphone d\'alerte 2 n\'est pas correct.');
	}
	if (bool) {
		findObj('formTache').submit();
	}
}

function deleteTache() {
	if (confirm('Etes vous sûr de vouloir supprimer cette tâche ?')) {
		findObj('actionTache').value = 'supprimer';
		findObj('formTache').submit();
	}
}

function deleteAdresse() {
	if (confirm('Etes vous sûr de vouloir supprimer cette adresse ?')) {
		findObj('actionAdresse').value = 'supprimer';
		findObj('formRepertoire').submit();
	}
}

function formMessageFOSubmit() {
	if (findObj('message').value.length != 0) {
		remplaceCaracteres('message');
		chargeFichierPOST('envoiMessage.ajax.php', 'mid='
				+ findObj('mid').value + '&message=' + findObj('message').value);
	} else {
		alertAndFocus('message', 'Vous devez saisir un message.');
	}
}

function remplaceCaracteres(id) {
	var sortie = "";
	var sortie1 = "";
	var minus = "àâäçéèêëîïôöùûÀÂÄÉÈÊËÎÏÔÖÙÛ"
	var majus = "aaaceeeeiioouuAAAEEEEIIOOUU"
	var caracteresAutorises = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789?.!;:'"
	for ( var i = 0; i < findObj(id).value.length; i++) {
		var car1 = findObj(id).value.substr(i, 1);
		sortie1 += (minus.indexOf(car1) != -1) ? majus.substr(minus
				.indexOf(car1), 1) : car1;
		var car = sortie1.substr(i, 1);
		sortie += (caracteresAutorises.indexOf(car) != -1) ? car : ' ';
	}
	findObj(id).value = sortie;
}

/*
 * Fonction de validation du formulaire d'abonnement
 */
function formRepertoireFOSubmit() {
	var bool = true;
	var couleur_erreur = '#ffff00';
	var couleur_originale = '#ffffff';
	findObj('repertoire_libelle').style.background = couleur_originale;
	findObj('repertoire_adresse').style.background = couleur_originale;
	findObj('repertoire_cp').style.background = couleur_originale;
	findObj('repertoire_ville').style.background = couleur_originale;
	//suppression des espaces en debut de chaine et des retours chariot
	findObj('repertoire_libelle').value = trim(findObj('repertoire_libelle').value);
	if (trim(findObj('repertoire_libelle').value) == '') {
		alertAndFocus('repertoire_libelle', 'Vous devez saisir un libellé');
		bool = false;
	}
	if (bool) {
		findObj('formRepertoire').submit();
	}
}
