//var ltie7 = ($.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent));
var ltie7 = ($.browser.msie && $.browser.version < 7);


$(function(){

	if (ltie7) {

		$('img[@usemap]').css('border','none');
		$('input[type="radio"], input[type="checkbox"], input[type="file"]').css('border','none');
		$('.footerItem:first-child').css({borderLeft: 'none', paddingLeft: 0});

		// hack pas propre pour les coins arrondis du menu.
		$('#menu').find('.coinHD:odd').css('right','-1px');

		// Corriger les png sous IE6.
		$.ifixpng('_media/img/pixel.gif');
		//$.iunfixpng('_media/img/pixel.gif');
		$('img[src$=.png]').ifixpng();
		$('input[type=image][src$=.png]').ifixpng();

		$('.rubrique_article:first-child, .itemAnnexes:first-child').css('margin-top: 16px');
	}
	$('#menu_droite > li').not('.on').each(function(){$(this).switchImage("","> a > img",{stringHover :'_hover'});});
	$('#linkNewsletter a, #conteneur_nav a, .postuler a').each(function(){$(this).switchImage("","img");});
	vignette_portfolio();

	$('.filiale .contact').adjustSize();

	slideShow.init('#images_portfolio');
	contenu_colonnes.init();
	corriger_email_safari.init();
});

// Target est un sélecteur jQuery qui permet d'indiquer quel est l'élement (image ou input) qui doit changer.
// Sa valeur par défaut est '$myself', ce qui indique que l'objet est sa propre cible.
// Ex : $('#menu > li').each(function(){$(this).switchImage("","> a > img");});

$.fn.switchImage=function(eventTargetSelector, changeTargetSelector, options) {
	var eventTargetSelector, changeTargetSelector, eventTarget, changeTarget;
	if (!eventTargetSelector) eventTargetSelector = '?myself';
	if (!changeTargetSelector) changeTargetSelector = '?myself';
	var settings = {
		stringDefault: '_off',
		stringHover: '_on'
	};
	if (options) {
		jQuery.extend(settings, options);
	}
	if (eventTargetSelector == '?myself') eventTarget=$(this);
	else eventTarget = $(this).find(eventTargetSelector);
	if (changeTargetSelector == '?myself') changeTarget=$(this);
	else changeTarget = $(this).find(changeTargetSelector);
	eventTarget.filter(function(index){
		return (changeTarget.is("input[@type=image][@src]") || changeTarget.is("img[@src]"));
	}).mouseover(function(){switchToHover(changeTarget)}).focus(function(){switchToHover(changeTarget)}).mouseout(function(){switchToDefault(changeTarget)}).blur(function(){switchToDefault(changeTarget)});

	function switchToHover(e) {
		getSrcElmts.init(e);
		if (getSrcElmts.fileName().indexOf(settings.stringDefault) != -1) {
			e.attr('src', getSrcElmts.filePath()+'/'+getSrcElmts.replaceFileName(settings.stringDefault, settings.stringHover));
		}
	}
	function switchToDefault(e) {
		getSrcElmts.init(e);
		if (getSrcElmts.fileName().indexOf(settings.stringHover) != -1) {
			getSrcElmts.replaceFileName(settings.stringHover, settings.stringDefault);
			e.attr('src', getSrcElmts.filePath()+'/'+getSrcElmts.replaceFileName(settings.stringHover, settings.stringDefault));
		}
	}

	var getSrcElmts = function() {
		var src,srcPathSplit, srcPathSplitLength;
		function init(e){
			src = e.attr('src');
			srcPathSplit = src.split('/');
			srcPathSplitLength = srcPathSplit.length;
		}
		function filePath(){
			if (srcPathSplitLength)	return srcPathSplit.slice(0,-1).join('/');
		}
		function fileName(){
			if (srcPathSplitLength)	return srcPathSplit[srcPathSplitLength-1];
		}
		function replaceFileName(stFrom,stTo){
			elemts=fileName().split(stFrom);
			end=elemts.pop();
			begin=elemts.join(stFrom);
			return begin+stTo+end;
		}
		return {init:init,filePath:filePath,fileName:fileName,replaceFileName:replaceFileName}
	}()

	changeTarget.each(function(){
		// preload
		getSrcElmts.init($(this));
		var preload = new Image;
		preload.src=getSrcElmts.filePath()+'/'+getSrcElmts.replaceFileName(settings.stringDefault, settings.stringHover);
	});


	return this;
}


$.fn.adjustSize=function(options) {
	var settings = {
		periode: 2,
		mode: 'height',
		minHeight: 0,
		minWidth: 0
	};
	var ltie7 = $.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent);
	if (options) {
		jQuery.extend(settings, options);
	}
	var totalSize = $(this).size();
	var nbPeriodes = Math.ceil(totalSize/settings.periode);
	var index = 0;
	if (settings.mode == 'height' || settings.mode == 'both') {
		var maxTotalHeightArray = new Array();
		$(this).each(function(){
			var blockId = Math.floor(index/settings.periode);
			if (!maxTotalHeightArray[blockId]) maxTotalHeightArray[blockId]=0;
			var blockTotalHeight = $(this).height();
			if (blockTotalHeight > maxTotalHeightArray[blockId]) {
				if (settings.minHeight && settings.minHeight > blockTotalHeight) blockTotalHeight = settings.minHeight;
				maxTotalHeightArray[blockId] = blockTotalHeight;
			}
			index++;
		});
		var index = 0;
		$(this).each(function(){
			var blockId = Math.floor(index/settings.periode);
			var blockComputedHeight = maxTotalHeightArray[blockId];
			if (ltie7) $(this).height(blockComputedHeight+1+'px');
			else $(this).css('minHeight',blockComputedHeight+1+'px');
			index++;
		});
	}
	if (settings.mode == 'width' || settings.mode == 'both') {
		var maxTotalWidthArray = new Array();
		$(this).each(function(){
			var blockId = Math.floor(index/settings.periode);
			if (!maxTotalWidthArray[blockId]) maxTotalWidthArray[blockId]=0;
			var blockTotalWidth = $(this).width() ? $(this).width() : $(this).attr('offsetWidth') ;
			if (blockTotalWidth > maxTotalWidthArray[blockId]) {
				if (settings.minWidth && settings.minWidth > blockTotalHeight) blockTotalWidth = settings.minWidth;
				maxTotalWidthArray[blockId] = blockTotalWidth;
			}
			index++;
		});
		var index = 0;
		$(this).each(function(){
			var blockId = Math.floor(index/settings.periode);
			var blockComputedWidth = maxTotalWidthArray[blockId];
			if (ltie7) $(this).width(blockComputedWidth+'px');
			else $(this).css('minWidth',blockComputedWidth+'px');
			index++;
		});
	}
	return this;
}

//*******//

function vignette_portfolio() {
	if 	($('#rubrique_portfolio > ul > li > a > img').size() == 0) return false;

	$('#rubrique_portfolio > ul > li').not('.on').mouseover(function() {
		$(this).addClass('on');
	}).mouseout(function() {
		$(this).removeClass('on');
	});
}

var slideShow = function(){
	var base, nav, aImages, ticker, nbImages, indexImageActuelle, newIndex, aAddress, image_actuelle;
	var duree=5000;
	var fadeDuree=2000;
	function init(selecteur){
		base = $(selecteur);
		aImages=$('li',base);
		nbImages = aImages.size();
		if(nbImages == 0) return;
		nav = $('#barre_nav li');

		// Cacher toutes les images sauf la première.
		aImages.slice('1').hide();

		indexImageActuelle=0;
		newIndex='';

		// Cas d'un id_document dans l'URL.
		image_actuelle = nav.filter('.on')
		if (image_actuelle.size() > 0) {
			newIndex=nav.index(image_actuelle.get(0));
			aImages.eq(0).hide().end().eq(newIndex).show();
		}

		if (newIndex === '') {
			nav.eq(0).addClass('on');
			start();
		}

		nav.click(function (){
			nav.removeClass('on');
			$(this).addClass('on');
			stop();
			aImages.hide()
			newIndex=nav.index(this);

			next();

			return false;
		});
	};

	function stop(){
		clearInterval(ticker);
	}

	function start(){
		ticker=window.setInterval(next, duree);
	}

	function next(){
		aImages.eq(indexImageActuelle).hide();
		nav.eq(indexImageActuelle).removeClass('on');

		if (newIndex === '') {
			indexImageActuelle++;
		} else indexImageActuelle = newIndex;

		if (indexImageActuelle > nbImages-1) indexImageActuelle= 0;

		aImages.eq(indexImageActuelle).fadeIn(fadeDuree);
		nav.eq(indexImageActuelle).addClass('on');
	}

	return{init:init,stop:stop,start:start};
}();

var contenu_colonnes = function(){
	var aLi, aAdjust, aImages, maxHeight, maxImageHeight;
	function init(){
		aUl = $('#articlesColonnes');
		aLi = $('.itemColonnes', aUl);

		// Emuler un li:nth-child(odd)
		// Cas spécial avec les 3 li de Healthing Ways
		var aLiContainsAjuster = aLi.filter(function(){
			return $(this).find('.ajusterverticalement').size();
		});
		aLiContainsAjuster.addClass('containsAjusterVerticalement');
		if (!aUl.is('.Healthing-Ways')) {
			aLi.filter(':odd').css({marginRight: 0, marginLeft: '9px'});
			// Caller les flashs de healting ways ?
			aAdjust = aLi.filter(function(){
				var images=$(this).find('.ajusterverticalement');
				return images.size();
			});
			aImages = aAdjust.find('.ajusterverticalement img, .ajusterverticalement object');

			maxHeight=maxImageHeight=0;
			aAdjust.each(function(){
				var height=parseInt($(this).height());
				if (height>maxHeight) maxHeight=height;
			});
			aImages.each(function(){
				var height=parseInt($(this).height());
				if (height>maxImageHeight) maxImageHeight=height;
			});

			ltie7 ? aAdjust.height(maxHeight+'px') : aAdjust.css('minHeight',maxHeight+'px');
			aAdjust.css('paddingBottom',(maxImageHeight+10)+'px');
		} else {
			// Healthing Ways
			aLi.not(':first').css({marginRight: 0, marginLeft: '9px'});
			aImages = aLi.find('.ajusterverticalement img, .ajusterverticalement object');

			maxImageHeight=0;
			aImages.each(function(){
				var height=parseInt($(this).height());
				if (height>maxImageHeight) maxImageHeight=height;
			});

			var firstLi = aLi.filter(':first');
			var nextLis = aLi.not(':first');

			var firstHeight = firstLi.height();
			var nextHeight = 0;
			var nextHeightButLast = 0;
			nextLis.each(function(){
				nextHeight=nextHeight+$(this).height();
			}).not(':last').each(function(){
				nextHeightButLast=nextHeightButLast+$(this).height();
			});

			if (firstHeight>nextHeight) {
				console.log('sup');
				ltie7 ? nextLis.filter(':last').height((firstHeight-nextHeightButLast)+'px') : nextLis.filter(':last').css('minHeight',(firstHeight-nextHeightButLast)+'px');
				aLiContainsAjuster.css('paddingBottom',(maxImageHeight+1)+'px');
			} else {
				ltie7 ? firstLi.height(nextHeight+'px') : firstLi.css('minHeight',nextHeight+'px');
				aLiContainsAjuster.css('paddingBottom',(maxImageHeight+1)+'px');
			}
		}
	}
	return {init:init}
}();

var corriger_email_safari = function(){
	var aMailto;
	function init(){
		if (navigator.appVersion.indexOf("Mac")==-1) return;
		aMailto=$('a[href^=mailto:]');
		aMailto.each(function(){
			var href=accentsReplace($(this).attr('href'));
			$(this).attr('href',href);
		});
	}

	function accentsReplace(string){
		string=string.replace(/%E0/g,'à');
		string=string.replace(/%E2/g,'â');
		string=string.replace(/%E4/g,'ä');
		string=string.replace(/%E9/g,'é');
		string=string.replace(/%E8/g,'è');
		string=string.replace(/%EA/g,'ê');
		string=string.replace(/%EB/g,'ë');
		string=string.replace(/%EF/g,'ï');
		string=string.replace(/%EE/g,'î');
		string=string.replace(/%F4/g,'ô');
		string=string.replace(/%F6/g,'ö');
		string=string.replace(/%F9/g,'ù');
		string=string.replace(/%FB/g,'û');
		string=string.replace(/%FC/g,'ü');
		string=string.replace(/%C0/g,'À');
		string=string.replace(/%C4/g,'Ä');
		string=string.replace(/%C2/g,'Â');
		string=string.replace(/%C9/g,'É');
		string=string.replace(/%C8/g,'È');
		string=string.replace(/%CB/g,'Ë');
		string=string.replace(/%CA/g,'Ê');
		string=string.replace(/%CF/g,'Ï');
		string=string.replace(/%CE/g,'Î');
		string=string.replace(/%D9/g,'Ù');
		string=string.replace(/%DC/g,'Ü');
		string=string.replace(/%DB/g,'Û');
		return string;
	}

	return {init:init}
}();