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

$(function(){


	// Fix png
	$('img[src$=.png], input[type=image][src$=.png]').ifixpng();

	// tabs home
	var tabOnglets	=	$('#onglets').tabs();
	if(tabOnglets)
		tabOnglets.tabs('select',1);


	$('#home_centre a.switch').each(function(){$(this).switchImage("","> img");});


	handlePrint.init();
	handleTables.init();
	contenuRepliable.init();
	questionnaire();

	$('#resultOPBC li').adjustSize();

	// Gestion menu vertical
	$('ul#menu li').not( $("ul#menu li.active") ).each(function(){
		if($(this).find('ul').html()!=null){
			$(this).find('ul').css("display","none");
			}
		});
	$('ul#menu li li').not( $("ul#menu li li.selected") ).hover(function(){
			$(this).addClass("selected");
			$(this).parent().css("display","block");
			},function(){
				$(this).removeClass("selected");
				$(this).parent().css("display","block");
			});
	$('ul#menu li').not( $("ul#menu li.active") ).focus(
		function(){
			if($(this).find('ul').html()!=null){
			$(this).find('ul').css("display","block");
			$(this).addClass("active");
			}
			});
	$('ul#menu li').not( $("ul#menu li.active") ).blur(
			function(){if($(this).find('ul').html()!=null){
			$(this).find('ul').css("display","none");
			$(this).removeClass("active");
			}});
	$('ul#menu li').not( $("ul#menu li.active") ).hover(function(){
			if($(this).find('ul').html()!=null){
			$(this).find('ul').css("display","block");
			$(this).addClass("active");
			}
			}, function(){if($(this).find('ul').html()!=null){
			$(this).find('ul').css("display","none");
			$(this).removeClass("active");
			}});


	// GESTION MENU TOP //
	$('ul#menu_top li').not( $("ul#menu_top li.active") ).hover(function(){
			$(this).addClass("active");
			}, function(){
			$(this).removeClass("active");
			});

	if($('ul#menu_top li#rubrique4').hasClass("active")) $('ul#menu_top li#rubrique4').parents('#container_menu_top').addClass("last");
	if($('ul#menu_top li#qui_sommes_nous').hasClass("active")) $('ul#menu_top li#qui_sommes_nous').parents('#container_menu_top').addClass("first");

	 $('ul#menu_top li:eq(0)').not( $("ul#menu_top li.active") ).hover(function(){
		$(this).addClass("active");
		$(this).parents('#container_menu_top').addClass("first");
		}, function(){
		$(this).removeClass("active");
		$(this).parents('#container_menu_top').removeClass("first");
		});

	$('ul#menu_top li:eq(7)').not( $("ul#menu_top li.active") ).hover(function(){
		$(this).addClass("active");
		$(this).addClass("last_active");
		$(this).parents('#container_menu_top').addClass("last");
		}, function(){
		$(this).removeClass("active");
		$(this).parents('#container_menu_top').removeClass("last");
		});
	// FIN GESTION MENU TOP //


	// Faq
	$('dd.reponse_question').hide();
	$('dt.titre_question').click(function(){
		$('dd.reponse_question').not($(this).next('dd.reponse_question')).hide();
		$(this).next('dd.reponse_question').toggle();
		return false;
		});

	// Plan du site
	/*$('ul.sous_liste_a_puce').hide();
	$('ul.liste_a_puce').find('a.item').click(function(){
		$(this).next('ul.sous_liste_a_puce').toggle();
		});
	*/

	/* Gestion des sommaires */
	if ($("#acces_direct ul.liste_acces").size()>0) {
		str='';
		$('div.body h2').each(function(indx){
			$(this).attr('id','subtitle_'+indx);
			str+="<li><a href='#subtitle_"+indx+"'>"+$(this).text()+"</a></li>"
		})
		$("#acces_direct ul.liste_acces").html(str);
		$('div.body h2').not(':first').filter(function(){return 1-$(this).parents('#periode').size()}).before("<p class='hautdepage'><a href='#content'>Haut de la page</a></p>");
		$('#periode').before("<p class='hautdepage'><a href='#content'>Haut de la page</a></p>");
	}

	/** Gestion du select des branches */
	$('#f_branches').change(function(){
		location.href=this.value;
	});

			$('ul.choix').eq(2).parent().css('border','none');


	/* gestion OPBC */
	$('#findOPBCbyDep').click(function(){
		if (!$("#OPBC_Dep_id").val()) return false;
		location.href=$(this).parents('form:first').attr('action')+"/(departement)/"+$("#OPBC_Dep_id").val();
		return false;
	});
	$('#findOPBCbyDepEncart').click(function(){
		if (!$("#findOPBCbyDepEncart_id").val()) return false;
		location.href=$(this).parents('form:first').attr('action')+"/(departement)/"+$("#findOPBCbyDepEncart_id").val();
		return false;
	});

	if (ltie7) {
		$('img[usemap]').css('border','none');
	}
	// Reglementation : ajustement hauteur des bloc
	$(".content_item").adjustSize();

	$("#popup > a, #popup_home, #popup_sitemap").click(function() {
		var url = $(this).attr("href");
		window.open(url,'votre_espace','height=768,width=1024,top=10,left=10,menubar=no,resizable=yes,scrollbars=yes');
		return false;
	});

	/* Gestion region */
	$('#region_choice').change(function(){
		location.href=$(this).val();
	});

	if($.GET('cx') == 'adhesionEmployeurs')
		$('#rubrique2').css('background','url(/design/uniformation/images/bg_b2_on.gif) repeat-x scroll left bottom');

	if($.GET('cx') == 'adhesionPrestataires')
	$('#rubrique3').css('background','url(/design/uniformation/images/bg_b3_on.gif) repeat-x scroll left bottom');



});

var handlePrint = function(){
	var printLink;
	function init(){
		printLink=$('#imprimer');
		printLink.click(function(){doPrint();})
	}
	function doPrint(){
		window.print();
	}
	return {init:init, doPrint:doPrint}
}();

var handleTables = function(){
	var tables;
	function init(){
		tables=$('.introduction table, .body table');
		tables.each(function(){
			$(this).find('> tr, > tbody > tr').filter(function(){
				if ($(this).find('> th').size()) return false;
				return true;
			}).filter(':odd').addClass('impair');
		});
	}
	return {init:init}
}();

var contenuRepliable = function(){
	var aH2;
	function init(){
		aH2=$('#content.repliable h2');
		aH2.wrapInner("<a class=\"deplieCtrl\" href=\"#\" title=\"Cliquez pour lire le contenu\"></a>");
		aH2.each(function(){switchNexts($(this));});
		aH2.find('a.deplieCtrl').click(function(){
			switchNexts($(this).parents('h2:first'));
		});
	}
	function switchNexts(elmtH2){
		var nextNode=elmtH2.next();
		while (nextNode && nextNode.not('h2').size() && nextNode.filter(function(){
			if ($(this).not('a') || $(this).attr('id') != $(this).attr('name')) {
				return true;
			}
			return false;
		}).size()) {
			if (nextNode.is('.replie')) nextNode.removeClass('replie');
			else nextNode.addClass('replie');
			var nextNode=nextNode.next();
		}
		return this;
	}
	return {init:init}
}();


// Nouvelle fonction jquery de retaillage de blocks
$.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;
}


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

	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;
};

/** Plugins GET */
/* Recuperer en Javascript les parametres en GET */
jQuery.GET = function(key) {
  var paramsArray = new Array();
		if (location.href.split('?').length > 1)
			paramsArray = location.href.split('?')[1].split('&');
		var paramsArrayCount = paramsArray.length;
		var resultArray = new Array();
		if (paramsArrayCount != 0) for (var i = 0; i<paramsArrayCount; i++) {
			var keyAndValue = paramsArray[i].split('=');
			if ((keyAndValue[0]==key) && (keyAndValue[0]!="")) { return keyAndValue[1]; }
			var hash  = {
				key    : keyAndValue[0],
				value  : keyAndValue[1]
			}
			resultArray.push(hash);
		}
		return resultArray;
};

function questionnaire (){

	$(".choix_oui").click(function() {
		var elmt = $(this).find('.proposition');

		if ($(elmt).is(':visible'))
			$(elmt).hide();
		else
			$(elmt).show();
	return false;
	});

	$(".choix_non").click(function() {

		var elmt = $(this).find('.proposition');
		if ($(elmt).is(':visible'))
			$(elmt).hide();
		else
			$(elmt).show();

		return false;
	});

}
