$(document).ready(function() {


	var url = window.location.href;

	/* message acc�s refus� */
	if ($('#msg-acces-refuse').length > 0) {
		if ($('#frm-user-login').length > 0) {
			$('#msg-donnees-adh').show();
		}
	}

	/* site public */
	if (url.indexOf('espace-adherents') == -1) {
		init_ombrages();

		// cosmétique
		$('#liens-bottom-nav a:last').css('border-right', 'none');

		/* evite les "cadres" autour des liens qui ont le focus sous firefox */
		$('a').bind('focus', function (){$(this).blur();});

		/* navigation supérieure, hover pour cause de plantage IE7 impossible à faire en CSS */
		$('#top-nav li div').bind('mouseover', function (){
			$(this).addClass('current');
		});

		$('#top-nav li div').bind('mouseout', function (){
			if (!$(this).hasClass('active')){
				$(this).removeClass('current');
			}
		});

		// mise en forme
		$('#agenda-home .liste .item:last').css('border', 'none');
		$('#block-contact p:last').css('border', 'none');
		$('#bloc-liens li:last').css('border', 'none');

		// bouton ajouter aux favoris
		$('#bloc-liens-col-droite').prepend('<li><a href="javascript:void(0)" title="Ajouter cette page à vos favoris">Ajouter aux favoris</a></li>')
		$('#bloc-liens-col-droite a:first').bind('click', function(){
			create_bookmark();
			return false;
		})

		if($('.liste-avec-filtre').length) {
			$('.liste-avec-filtre').each(function (){
				if ($(this).find('.filtre-liste').length) {
					$(this).css('padding-top', '30px');
					$(this).find('.conteneur-filtres-liste:first').css('top', '0px');
				}
			});
		}

		/* liens "+" dans listes */
		var lib_savoir_plus	= '';
		$('.liste .lien-afficher-texte').bind('click', function (){
			var conteneur_texte = $(this.parentNode).find('.texte');
			if (conteneur_texte.length > 0) {
				if (conteneur_texte.css('display') == 'none') {
					lib_savoir_plus = $(this).find('a').text();
					$(this).find('a').html('Masquer');
					conteneur_texte.show();
				} else {
					conteneur_texte.hide();
					$(this).find('a').html(lib_savoir_plus);
				}
			}
			init_ombrages();
		});
		init($('body').attr('id'));
	} else {
		/* espace adhérents */

		/* mise en forme */
		$('#bloc-agenda p:last').css('border', 'none');
		$('#bloc-news p:last').css('border', 'none');

		var lien_favs = $('.premier-lien-bloc-favoris a');
		if (lien_favs.length > 0) {
			lien_favs.bind('click', function (){
				var titre = $('title').html() + ' - UNFEA';
				if (jQuery.browser.msie){
					window.external.AddFavorite(url, titre);
				} else {
					window.sidebar.addPanel(titre, url, "");
				}
				return false;
			});
		}
	}
});

function create_bookmark() {
	title = $('title').text();
	url = window.location.href;
	if (window.sidebar) {
		window.sidebar.addPanel(title, url, "");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title);
	} else if(window.opera && window.print) { // Opera Hotlist
		return true;
	}
}

/* met en place les ombrages autour de la page */
function init_ombrages(){
	/* ajuste la hauteur des ombrages sur la taille de la fenêtre de contenu */
	// merdouillage IE !!!
	if (jQuery.browser.msie && parseInt(jQuery.browser.version) < 7) {
		$('.site-inner-container-sides').css('height', ($('#site-outer-container').height() - 1) + 'px');
	} else {
		$('.site-inner-container-sides').css('height', ($('#site-outer-container').height()) + 'px');
	}
	$('.site-inner-container-sides').show();
}

function init(body_id){
	/*if ($('.message-warning:first').length > 0) {
		message_utilisateur($('.message-warning').html());
	}*/
	switch(body_id){
	case 'secteur-65':
		/* rep adhérent */

		$('#frm-recherche-adherent .conteneur-liste').each(function(){
		$(this).find('input:first').bind('focus', function (){$(this).blur()});
		$(this).find('input:first').bind('click', function (){
			affiche_liste_select($(this.parentNode).find('.contenu-liste'));
		});
		});

		$('#frm-recherche-adherent .block').each(function(){
		$(this).find('.select-btn').bind('click', function (){
			$(this).attr('href', 'javascript:void(0)');
			affiche_liste_select($(this.parentNode).find('.contenu-liste'));
			return false;
		});
		});

		$('#frm-recherche-adherent .conteneur-liste .contenu-liste a').bind('click', function (){
			$(this).attr('href', 'javascript:void(0)');
			$(this.parentNode).hide();
			return false;
		});

		/* initialisation des valeurs cochées dans les liste */
		//alert($('#frm-recherche-adherent .contenu-liste').length);
		$('#frm-recherche-adherent .contenu-liste').each(function (idx){
			/* ne parcours pas le 1er niveau des listes à 2 niveaux (traité plus loins) */

			var list_id	= $(this).attr('id').replace(/cl-/, '');
			/* parcours toutes les cases à cocher et détermine si elles le sont (cochées :)) */
			$(this).find('input[type=checkbox]').each(function (){
				if (list_id != false && $('#' + list_id).length > 0 && $(this.parentNode).find('ul').length == 0) {
					var val_select = $('#' + list_id).val();
					if (val_select.match(new RegExp('' + $(this).val() + '', 'g')) != null) {
						//alert($(this).val() + ' trouvé dans ' + list_id);
						$(this).attr('checked', 'checked');
					}
				}
			});

			/* parcours toutes les cases à cocher et détermine si elles le sont (cochées :)) */
			$(this).find('input[type=checkbox]').each(function (){
				if (list_id != false && $('#' + list_id).length > 0 && $(this.parentNode).find('ul').length > 0) {
					if ($(this.parentNode).find('li input[type=checkbox]').length == $(this.parentNode).find('li input[type=checkbox][checked]').length) {
						$(this).attr('checked', 'checked');
					} else {
						if ($(this.parentNode).find('li input[type=checkbox]').length > $(this.parentNode).find('li input[type=checkbox][checked]').length) {
							$(this).attr('checked', false);
						}
					}
				}
			});

		});
		//$('#frm-recherche-adherent .conteneur-liste .contenu-liste:eq(2)').show();
		//affiche_liste_select($('#frm-recherche-adherent .conteneur-liste .contenu-liste:eq(2)'));

		$('#frm-recherche-adherent').bind('submit', function(){
			$('.contenu-liste').hide();
			var nb = 0;
			$('#frm-recherche-adherent .block input[type=text]').each(function (){
				if ($(this).val() != '') {
					nb++;
				}
			});

			if (nb == 0) {
				alert('Merci d\'indiquer au moins 1 critère de recherche');
				return false;
			}

			/* évite d'envoyer des tas de paramètres inutiles */
			$(this).find('input[type=checkbox]').attr('checked', false);
		});

		$('#btn-effacer-filtres').bind('click', function (){
			/* efface les ctrls texte */
			$('#frm-recherche-adherent .block input[type=text]').each(function (){
				$(this).val('');
			});

			$('#frm-recherche-adherent .block input[type=checkbox]').each(function (){
				$(this).attr('checked', false);
			});
		});

		/* affichage des mini-fiches */
		$('#liste-resultats li a').bind('mouseover', function (){
			$('#liste-resultats li .mini-fiche').hide();
			var mini_fiche = $(this.parentNode).find('.mini-fiche');
			if (mini_fiche.find('.lien-detail').length == 0){
				mini_fiche.append('<a href="' + $(this.parentNode).find('a').attr('href') + '" class="lien-detail">plus d\'informations</a>');
			}
			mini_fiche.css('top', '-' + (mini_fiche.height() + 13) + 'px');
			//alert(mini_fiche.attr('id'));
			mini_fiche.show();
			eval('setTimeout(function (){cache_mini_fiche(\''+mini_fiche.attr('id')+'\')}, 2000);')
			mini_fiche.bind('mouseout', function (){
				if ($(this).hasClass('hover')) {
					$(this).removeClass('hover');eval('setTimeout(function (){cache_mini_fiche(\''+$(this).attr('id')+'\')}, 1000);');}
				}
			);
			mini_fiche.bind('mouseover', function (){$(this).addClass('hover');});
		});

		/* envoi du formulaire repertoire adherents, transforme les valeurs en parametres de vue */
		$('#frm-recherche-adherent').bind('submit', function (){
			url = $('#frm-recherche-adherent').attr('action');
			url	+= '/(societe)/' + $('#societe').val();
			url	+= '/(categories)/' + $('#categories').val();
			url	+= '/(activites)/' + $('#activites').val();
			url	+= '/(departements)/' + $('#departements').val();
			url	+= '/(produits)/' + $('#produits').val();
			url	+= '/(marches)/' + $('#marches').val();
			$('#frm-recherche-adherent').attr('action', url);
		})
	break;
	case 'secteur-555' :
		// formulaire contact
		$('#frm-contact input[type=text]').bind('blur', function(){
			if ($(this).val() != '') {
				$(this).parent().removeClass('error');
			} else {
				$(this).parent().addClass('error');
			}
		});

		$('#frm-contact textarea').bind('blur', function(){
			if ($(this).val() != '') {
				$(this).parent().removeClass('error');
			} else {
				$(this).parent().addClass('error');
			}
		});

		$('#frm-contact').bind('submit', function(){
			var nb_errs = 0;
			$('#frm-contact input[type=text]').each(function(){
				if ($(this).val() != '') {
					$(this).parent().removeClass('error');
				} else {
					nb_errs++;
					$(this).parent().addClass('error');
				}
			});

			$('#frm-contact textarea').each(function(){
				if ($(this).val() != '') {
					$(this).parent().removeClass('error');
				} else {
					nb_errs++;
					$(this).parent().addClass('error');
				}
			});

			if (nb_errs > 0) {
				message_utilisateur('Vérifiez que tous les champs obligatoires ont bien été renseignés.');
				return false;
			}
			return true;
		});
	break;
	case 'newsletter-register-subscription' :
		$('#frm-newsletter-register-subscription input[type=text]').bind('blur', function(){
			if ($(this).val() != '') {
				$(this).parent().removeClass('error');
			} else {
				$(this).parent().addClass('error');
			}
		});

		$('#frm-newsletter-register-subscription').bind('submit', function(){
			var nb_errs = 0;
			if ($('input[name=Firstname]').val() == '') {
				$('input[name=Firstname]').parent().addClass('error');
				nb_errs++;
			} else {
				$('input[name=Firstname]').parent().removeClass('error');
			}

			if ($('input[name=Name]').val() == '') {
				$('input[name=Name]').parent().addClass('error');
				nb_errs++;
			} else {
				$('input[name=Name]').parent().removeClass('error');
			}

			if ($('input[name=Email]').val() == '') {
				$('input[name=Email]').parent().addClass('error');
				nb_errs++;
			} else {
				$('input[name=Email]').parent().removeClass('error');
			}

			if (nb_errs > 0) {
				message_utilisateur('Vérifiez que tous les champs obligatoires ont bien été renseignés.');
				return false;
			}
			return true;
		});
	break;
	case 'newsletter-user-settings':
		if ($('#user_msg').length > 0 && $('#user_msg').val() != '') {
			message_utilisateur($('#user_msg').val());
		}
		$('#newsletter-user-settings input[type=text]').bind('blur', function(){
			var ctrl_name = $(this).attr('Name');
			if (ctrl_name == 'FirstName' || ctrl_name == 'Name' || ctrl_name == 'Email') {
				if ($(this).val() != '') {
					$(this).parent().removeClass('error');
				} else {
					$(this).parent().addClass('error');
				}
			}
		});

		$('#newsletter-user-settings').bind('submit', function(){
			var nb_errs = 0;
			if ($('input[name=FirstName]').val() == '') {
				$('input[name=FirstName]').parent().addClass('error');
				nb_errs++;
			} else {
				$('input[name=FirstName]').parent().removeClass('error');
			}

			if ($('input[name=Name]').val() == '') {
				$('input[name=Name]').parent().addClass('error');
				nb_errs++;
			} else {
				$('input[name=Name]').parent().removeClass('error');
			}

			if ($('input[name=Email]').val() == '') {
				$('input[name=Email]').parent().addClass('error');
				nb_errs++;
			} else {
				$('input[name=Email]').parent().removeClass('error');
			}

			if (nb_errs > 0) {
				message_utilisateur('Vérifiez que tous les champs obligatoires ont bien été renseignés.');
				return false;
			}
			return true;
		});
	break;
	case 'user-forgotpassword' :
		$('form#forgotpassword #UserEmail').bind('blur', function(){
			if ($(this).val() != '') {
				$(this).parent().removeClass('error');
			} else {
				$(this).parent().addClass('error');
			}
		});
		$('form#forgotpassword').bind('submit', function(){
			var nb_errs = 0;
			if ($('#UserEmail').val() == '') {
				$('#UserEmail').parent().addClass('error');
				nb_errs++;
			} else {
				$('#UserEmail').parent().removeClass('error');
			}

			if (nb_errs > 0) {
				message_utilisateur('Merci d\'indiquer votre adresse email.');
				return false;
			}
			return true;
		});
	break;
	case 'user-login' :
		$('#id11').focus();
		$('form#frm-user-login input[type=text]').bind('blur', function(){
			if ($(this).val() != '') {
				$(this).parent().removeClass('error');
			} else {
				$(this).parent().addClass('error');
			}
		});

		$('form#frm-user-login').bind('submit', function(){
			var nb_errs = 0;
			if ($('#id11').val() == '') {
				$('#id11').parent().addClass('error');
				nb_errs++;
			} else {
				$('#id11').parent().removeClass('error');
			}

			if ($('#id12').val() == '') {
				$('#id12').parent().addClass('error');
				nb_errs++;
			} else {
				$('#id12').parent().removeClass('error');
			}

			if (nb_errs > 0) {
				message_utilisateur('Merci d\'indiquer votre adresse email ainsi que le mot de passe qui vous a été communiqué.');
				return false;
			}
			return true;
		});


	break;
	}


}

function message_utilisateur(msg, titre){
	if ($('#user-msg').length == 0) {
		$('#page-content').append('<div id="user-msg" title=""></div>');
	}

	$('#user-msg').html(msg);
	$('#user-msg').attr('title', titre);

	$("#user-msg").dialog("destroy");
	$("#user-msg").dialog({
		modal: false,
		buttons: {
			Ok: function() {
				$(this).dialog('close');
			}
		},
		open: function(event, ui) {return false;$(this).parent().focus();}
	});
}

function cache_mini_fiche(id){
	if(!$('#' + id).hasClass('hover')) {
		$('#' + id).hide();
	}
}

function affiche_liste_select(div_contenu_liste){
	//return;
	is_visible = (div_contenu_liste.css('display') == 'block');
	$('.contenu-liste').hide();
	if (is_visible) {
		return;
	}
	$(div_contenu_liste).show();
	if ($(div_contenu_liste).height() > 120){
		$(div_contenu_liste).find('div').css('overflow-x', 'hidden');
		$(div_contenu_liste).find('div').css('overflow-y', 'scroll');
		$(div_contenu_liste).find('div:first').css('height', (120) + 'px');
	}

	//height = $(div_contenu_liste).css('height', height + 'px');

	/* gestion du click sur les cases à cocher */
//	alert(jQuery.browser.msie);
	$(div_contenu_liste).find('input').bind((jQuery.browser.msie ? 'click' : 'change'), function (){
		var list_id	= get_list_id(this);
		/* si liste à 2 niveaux && 1er niveau */
		if ($(this.parentNode).find('ul').length > 0){
			var top_checked = $(this).attr('checked');
			/* coche / décoche les cases de la liste de second niveau */
			$(this.parentNode).find('ul li input').each(function (){

				if ($(this).attr('checked') != top_checked) {
					if (jQuery.browser.msie) {
						$(this).attr('checked', (top_checked ? 'checked' : false));
						$(this).trigger('click'); // signale le changement de valeur
						$(this).attr('checked', (top_checked ? 'checked' : false));
					} else {
						$(this).attr('checked', (top_checked ? 'checked' : false));
						$(this).trigger('change'); // signale le changement de valeur
					}
				}
			});
			// on est dans une liste à 2 niveaux, le 1er niveau n'est pas enregistré dans le champ texte
			return;
		}

		val_select = $('#' + list_id).val();
		var this_val = $(this).val().replace(/-/, '\\-');
		if ($(this).attr('checked')) {
			if (val_select.match(new RegExp('(^|;)' + this_val + '(;|$)', 'g')) == null) {
				if (val_select != '') {val_select += ';'}
				val_select += $(this).val();

				/* tente de déterminer si on est à un second niveau et si valeur non cohérente avec la valeur principale */
				if ($('#cl-' + list_id + ' ul ul').length > 0) {
					/* détermine si toutes les cases du 2e niveau sont cochées */
					if ($(this.parentNode.parentNode.parentNode).find('li input[type=checkbox]').length == $(this.parentNode.parentNode.parentNode).find('li input[type=checkbox][checked]').length) {
						$(this.parentNode.parentNode.parentNode).find('input[type=checkbox]:first').attr('checked', 'checked');
					}
				}
			}
		} else {
			val_select = val_select.replace(new RegExp('(^|;)' + this_val + '(;|$)', 'g'), ';');
			val_select = val_select.replace(new RegExp('^;', 'g'), '');
			val_select = val_select.replace(new RegExp(';$', 'g'), '');
			/* tente de déterminer si on est à un second niveau et si valeur non cohérente avec la valeur principale */
			if ($('#cl-' + list_id + ' ul ul').length > 0) {
				/* détermine si toutes les cases du 2e niveau sont cochées */
				if ($(this.parentNode.parentNode.parentNode).find('li input[type=checkbox]').length > $(this.parentNode.parentNode.parentNode).find('li input[type=checkbox][checked]').length) {
					$(this.parentNode.parentNode.parentNode).find('input[type=checkbox]:first').attr('checked', false);
				}
			}
		}
		$('#' + list_id).val(val_select);
	});
}

/* retourne le  */
function get_list_id(checkbox_input){

	var conteneur_liste = $(checkbox_input).parent();
	var i = 0;
	while(i < 15 && !$(conteneur_liste).hasClass('contenu-liste')) {
		conteneur_liste = $(conteneur_liste).parent();
		i++;
	}

	if ($(conteneur_liste).hasClass('contenu-liste')) {
		var list_id = $(conteneur_liste).attr('id').replace('cl-', '');
		if ($('#' + list_id).length == 0) {
			alert('erreur "' + list_id + '" introuvable');
			return false;
		}
	} else {
		alert('erreur liste 2 niveaux ' + $(conteneur_liste).html());
		return false;
	}
	return list_id;
}