var ltie7 = ($.browser.msie && $.browser.version < 7);
var ltie8 = ($.browser.msie && $.browser.version < 8);
var ltie9 = ($.browser.msie && $.browser.version < 9);

$(function() {
	home.init();
	homeRetraite.init();
	champsRecherche.init();
	accessibilityButton.init();
	metiersTabs.init();
});

var home = function(){
	function _init(){
		homeTabs.init();
		dicoRubriques.init();
	};

	var homeTabs = function(){
		var tabsClassName, tabs, actusClassName, actus, tabsCtrl, tabCtrlPrev, tabCtrlNext, actuPrev, actuNext, actuPrevLink, actuNextLink, lienTous;
		var hopEtVousLinks; // la partie hôpital et vous
		var metiersClassName, metiers, metiersPrev, metiersNext; // la partie les métiers de l'hôpital
		function _init() {
			tabsClassName = 'tabs-content-box';
			tabs = $('.'+tabsClassName);
			actusClassName = 'tabActu';
			actus = $('.'+actusClassName);
			tabsCtrl = $('.tabs-menu a');
			tabCtrlPrev = $('.scroll-left');
			tabCtrlNext = $('.scroll-right');
			actuPrev = $('.link-left');
			actuNext = $('.link-right');
			actuPrevLink = $('a',actuPrev);
			actuNextLink = $('a',actuNext);
			lienTous = $('.scroll-content');

			actus.css('padding','0').hide().filter(':first').show();
			lienTous.hide().filter(':first').show(); // géré en CSS mais IE...

			// onglets
			tabsCtrl.click(function(){
				tabIndex = tabsCtrl.index(this);
				rotateTabs(tabs.filter(':eq('+tabIndex+')'),0);
				lienTous.hide().filter(':eq('+tabIndex+')').show();
				return false;
			});

			// boutons "chevrons"
			tabCtrlPrev.click(function(){
				rotateActu(actus.filter(':visible'),-1);
				return false;
			});
			tabCtrlNext.click(function(){
				rotateActu(actus.filter(':visible'),1);
				return false;
			});

			// liens changement d'actu
			actuPrevLink.click(function(){
				rotateActu(actus.filter(':visible'),-1);
				return false;
			});
			actuNextLink.click(function(){
				rotateActu(actus.filter(':visible'),1);
				return false;
			});


			// Hôpital et vous
			hopEtVousLinks = $('.h-r-block-01 .h-r-content h3 a');
			hopEtVousLinks.click(function(){
				hopEtVousLinks.parents('li').removeClass('active');
				$(this).parents('li').addClass('active');
				return false;
			}).focus(function(){
				hopEtVousLinks.parents('li').removeClass('active');
				$(this).parents('li').addClass('active');
				return false;
			});


			// Les métiers de l'hôpital
			metiersClassName = 'pic-summary';
			metiers = $('.'+metiersClassName);
			metiersPrev = $('.scroll-wrap .previous');
			metiersNext = $('.scroll-wrap .next');

			metiers.hide().filter(':first').show(); // géré en CSS mais IE...

			metiersPrev.click(function(){
				rotateMetier(metiers.filter(':visible'),-1);
				return false;
			});
			metiersNext.click(function(){
				rotateMetier(metiers.filter(':visible'),1);
				return false;
			});

		};

		function rotateTabs (elmt,direction) {

			var incoming; // le prochain onglet affiché
			if(direction == 1) {
				incoming = elmt.next('.'+tabsClassName);
				if (!incoming.size()) incoming = elmt.siblings('.'+tabsClassName+':first');
			} else if (direction == 0) {
				incoming = elmt; // dans le cas du clic sur un onglet par exemple.
			} else {
				incoming = elmt.prev('.'+tabsClassName);
				if (!incoming.size()) incoming = elmt.siblings('.'+tabsClassName+':last');
			}
			tabs.hide();
			incoming.show();

			// gestion de l'affichage de la première actu du nouvel onglet
			actus.hide();
			incoming.find('.'+actusClassName+':first').show();

			// gestion de l'onglet mis en évidence.
			tabsCtrl.parent().removeClass('active');
			tabsCtrl.filter(':eq('+tabs.index(incoming)+')').parent().addClass('active');

			return false;
		}

		function rotateActu (elmt,direction) {
			var incoming; // la prochaine actu affichée
			if(direction == 1) {
				incoming = elmt.next('.'+actusClassName);
				if (!incoming.size()) incoming = elmt.siblings('.'+actusClassName+':first');
			} else {
				incoming = elmt.prev('.'+actusClassName);
				if (!incoming.size()) incoming = elmt.siblings('.'+actusClassName+':last');
			}

			if (incoming.size()) {
				elmt.hide();
				incoming.show();
			}

			return false;
		}

		function displayRotateActu(tab) {
			if (tab.find('.'+actusClassName).size() < 2) {
				actuPrev.hide();
				actuNext.hide();
				return;
			} else {
				actuPrev.show();
				actuNext.show();
			}
		}

		function rotateMetier (elmt,direction) {
			var incoming; // la prochaine actu affichée
			if(direction == 1) {
				incoming = elmt.next('.'+metiersClassName);
				if (!incoming.size()) incoming = elmt.siblings('.'+metiersClassName+':first');
			} else {
				incoming = elmt.prev('.'+metiersClassName);
				if (!incoming.size()) incoming = elmt.siblings('.'+metiersClassName+':last');
			}

			if (incoming.size()) {
				elmt.hide();
				incoming.show();
			}

			return false;
		}

		return {init:_init};
	}();

	var dicoRubriques = function(){
		function _init(){
			form = $('#dicoRubriques');
			select = $('select', form)
			form.submit(function() {
				window.location=select.val();
				return false;
			});
		}
		return {init:_init};
	}();

	return {init:_init};
}();

var homeRetraite = function(){
	var actuClasse, actus, actuPrev, actuNext, actuPrevLink, actuNextLink;
	function _init(){
		if (ltie7) $('.lactu_box_top + .lactu_box_center').show();
		actusClassName = 'lactu_box_center';
		actus = $('.'+actusClassName);
		actuPrev = $('.scroll_left_btn a');
		actuNext = $('.scroll_right_btn a');
		actuPrevLink = $('.al_left a');
		actuNextLink = $('.al_right a');

		// boutons "chevrons"
		actuPrev.click(function(){
			rotateActu(actus.filter(':visible'),-1);
			return false;
		});
		actuNext.click(function(){
			rotateActu(actus.filter(':visible'),1);
			return false;
		});

		// liens changement d'actu
		actuPrevLink.click(function(){
			rotateActu(actus.filter(':visible'),-1);
			return false;
		});
		actuNextLink.click(function(){
			rotateActu(actus.filter(':visible'),1);
			return false;
		});
	}


	function rotateActu (elmt,direction) {
		var incoming; // la prochaine actu affichée
		if(direction == 1) {
			incoming = elmt.next('.'+actusClassName);
			if (!incoming.size()) incoming = elmt.siblings('.'+actusClassName+':first');
		} else {
			incoming = elmt.prev('.'+actusClassName);
			if (!incoming.size()) incoming = elmt.siblings('.'+actusClassName+':last');
		}

		if (incoming.size()) {
			elmt.hide();
			incoming.show();
		}

		return false;
	}

	return {init:_init};
}();

var champsRecherche = function(){
	function _init(){
		handleInput($('#text-01'),  'Entrer votre recherche');
		handleInput($('#text-02'),  'Entrer un departement, une region, une ville');
		handleInput($('#research'), 'Entrer votre recherche');
		handleInput($('#researchDico'), 'Entrer votre recherche');
		handleInput($('#SearchText'), 'Rechercher');
	}

	function handleInput(e,s) {
		// e : objet jquery, typiquement $(this) ; s : string
		e.click(function(){
			if (e.val() == s) e.val('');
		}).blur(function(){
			if (e.val() == '') e.val(s);
		});
	}

	return {init:_init}
}();

var accessibilityButton = function(){
	var textSmaller, textBigger, printButton;
	function _init(){
		var aim = $('.center');

		// FIXME : récupérer la valeur dans un cookie s'il y en a un ? Ou le mettre dans le head ?
		var aimFontSize = parseInt(aim.css('font-size'));

		textSmaller = $('.text-lower');
		textBigger = $('.text-bigger');
		printButton = $('.print');

		textSmaller.click(function(){
			aimFontSize = aimFontSize*10/11;
			aim.css('font-size',aimFontSize+'px');
		});

		textBigger.click(function(){
			aimFontSize = aimFontSize*11/10;
			aim.css('font-size',aimFontSize+'px');
		});

		printButton.click(function(){
			window.print();
			return false;
		});
	}
	return {init:_init}
}();


var metiersTabs = function(){
	var tabs, tabsCtrl;
	function _init() {
		tabs = $('.panes > div');
		tabsCtrl = $('.tabs a');

		tabs.not(':first').hide();
		tabsCtrl.filter(':first').addClass('active');

		// onglets
		tabsCtrl.click(function(){
			tabIndex = tabsCtrl.index(this);
			rotateTabs(tabs.filter(':eq('+tabIndex+')'),0);
			return false;
		});

	};

	function rotateTabs (elmt,direction) {
		tabs.hide();
		elmt.show();
		// gestion de l'onglet mis en évidence.
		tabsCtrl.removeClass('active');
		tabsCtrl.filter(':eq('+tabs.index(elmt)+')').addClass('active');

		return false;
	}

	return {init:_init};
}();

