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

$(function(){
	if (ltie7) {
		$.ifixpng('../_img/pixel.gif');
		$('img[src$=.png]').ifixpng();
		$('input[src$=.png]').ifixpng();
		$('img[usemap]').css('border','none');
		$('input[type="radio"], input[type="checkbox"], input[type="file"], input[type="image"]').css('border','none');
	}
	gestionMenu.init();
	gestionWidthMenu.init();
	
});

var gestionMenu = function(){
	var menu, menuItem;
	var displayClass='menuSsListVisible';
	function init(){
		$('#menu .item_menu').each(function(){$(this).switchImage("","> a > img");});
		menu=$('#menu');
		menuItem=$('.item_menu',menu);
	  	menuLinks = $('.menuLink');
	  	ssMenuLink = $('.ssMenuLink');
		menuItem.hover(function(){
			if ($(this).is('.item_menu')) { $(this).find('.menuSslist').addClass(displayClass);}
		},function(){
			$(this).find('.menuSslist').removeClass(displayClass);
		});
		menuLinks.focus(function(){
			$(this).parent().find('.menuSslist').addClass(displayClass);
			$(this).parent().siblings().find('.menuSslist').removeClass(displayClass);
		}).blur(function(){ 
		});
	/*	$(menuLinks).each(function(){
		   $(this).switchImage("","> img");
		  });*/
		 $(ssMenuLink).each(function(){
		   $(this).parents('.item_menu').each(function(){$(this).switchImage("","> a > img")});
		  });
	}
	return {init:init}
}();

var gestionWidthMenu = function(){
	function init(){
	$('.menuSslist').each(function(){
								   var largeur = $(this).prev().width();
								   $(this).width(largeur);
								   }
						  );
	}
	return {init:init}
}();

$.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) {
		e.each(function(){
			getSrcElmts.init($(this));
			if (getSrcElmts.fileName().indexOf(settings.stringDefault) != -1) {
				$(this).attr('src', getSrcElmts.filePath()+'/'+getSrcElmts.replaceFileName(settings.stringDefault, settings.stringHover));
				if ($.ifixpng && ltie7) $(this).ifixpng();
			}
		});
	}

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

	var getSrcElmts = function() {
		var src,srcPathSplit, srcPathSplitLength;
		function init(e){
			if ($.ifixpng && ltie7) e.iunfixpng();
			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);
		if ($.ifixpng && ltie7) $(this).ifixpng();
	});

	return this;
};
$.fn.adjustSize=function(options) {
	var settings = {
		periode: 3,
		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+'px');
			else $(this).css('minHeight',blockComputedHeight+'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;
};


