/**
* ESPACE DE NOM
*/

var F6 = window.F6 || {};


/**
* FONCTION DE DEBUG
*/

F6.trace = function() {
	if(window.console) {
		console.info.apply(console, arguments);
	}
};

/**
* OBJET DE STOCKAGE
* pour eviter les mutliples appels au DOM
*/

F6.obj = {};

/**
* COMPOSANT DE NOTIFICATION D'EVENEMENTS
* @desc Chef d'orchestre de l'application
*/

F6.Notifier = new Class(new Events);
F6.Notifier = F6.Notifier.extend(F6.Utils);


/**
 * APPLICATION AssoAndCo
 */

F6.AssoAndCo = (function() {

	$(document.documentElement).addClass('hasJS');

	var initialize = function() {

		this.Notifier = new F6.Notifier;
		this.Nav = new F6.Nav(this.Notifier);

	};

	return new Class({

		Implements: Events,
		initialize: initialize

	});

})();


/**
 * INITIALISATION AU CHARGEMENT DE LA PAGE
 */
$(window).addEvent(
	'domready', function() {
	    new F6.AssoAndCo;
	    F6.BlockInit();
	    F6.SkinSelector.init();
	    F6.popInLayer.init();
		F6.browserInit();
	}
);

F6.browserInit = function(){
	var strChUserAgent = navigator.userAgent;
	var intSplitStart = strChUserAgent.indexOf("(",0);
	var intSplitEnd = strChUserAgent.indexOf(")",0);
	var strChStart = strChUserAgent.substring(0,intSplitStart);
	var strChMid = strChUserAgent.substring(intSplitStart, intSplitEnd);
	var strChEnd = strChUserAgent.substring(strChEnd);
	
	var msg = "Votre navigateur est obsolète et l'affichage de la plateforme asso&co ne sera pas optimisé. Voulez vous télécharger la dernier version de Firefox?";
	
	if(strChEnd.indexOf("Firefox/2") != -1){
		if (window.confirm(msg)) {
			window.location.href='http://www.mozilla.com/firefox/'
		}
	}
		
}


/**
 * COMPOSANT DE NAVIGATION
 */

F6.Nav = (function() {

	var _aMembers = [];

	// METHODE PRIVEE DE PREPARATION ET DE RECUPERATION DES ELEMENTS DE CHAQUE MENU

	var _getPrepareMembers = function() {

		$(document).getElements('.nav > li').each(
			function(oMenu) {

				var _oCtrlSsNav = $(oMenu).getElement('.ctrlSsNav');

				// METHODE PRIVEE D'ANNULATION DE LA TEMPORISATION DE FERMETURE DE SOUS-MENU

				var _clearTimeout = (function(oMenu) {

					return function() {

						if(oMenu.timeout) {
							$clear(oMenu.timeout);
						}

					};

				})(oMenu);

				if(_oCtrlSsNav) {
					oMenu.addEvent('mouseenter', _clearTimeout);
					_insBkgWithNoColor(oMenu.getElements('.ssNav'));
					_aMembers.push([
						_oCtrlSsNav.addEvent('mouseover', _mouseoverOpen),
						_oCtrlSsNav.getParent().addEvent('mouseleave', _mouseleaveClose)
					]);
				}

			}
		);
		return _aMembers;

	};

	// METHODE PRIVEE INSERANT UNE IMAGE DE FOND DERRIERE CHAQUE SOUS-MENU

	var _insBkgWithNoColor = function(aSsNav) {

		if(aSsNav) {
			aSsNav.each(
				function(oSsNav) {

					new Element('img', {
						'src': '/Themes/LBP/images/Main/testImgActives.gif',
						'alt': '',
						'styles': {
							'position': 'absolute',
							'display': 'none',
							'visibility': 'hidden'
						}
					}).inject(oSsNav, 'before');


				}
			);
		}

	};

	// METHODE PRIVEE D'OUVERTURE LORSQU'ON SURVOLE UN CONTROLE DE SOUS-NAVIGATION

	var _mouseoverOpen = function(e) {

		var _target = $((e.target || e.srcElement));
		while(_target && !_target.hasClass('ctrlSsNav')) {
			_target = _target.getParent();
		}
		if(!_target) {
			return;
		}
		_aMembers.each(
			function(oCouple) {

				if(_target === oCouple[0]) {
					return open(oCouple[1]);
				}
				else if(oCouple[1].hasClass('show')) {
					return close(oCouple[1]);
				}

			}
		);

	};

	// METHODE PRIVEE DE FERMETURE LORSQU'ON QUITTE UNE SOUS-NAVIGATION

	var _mouseleaveClose = function(e) {

		var _target = $((e.target || e.srcElement));
		while(_target && !_target.getElement('.ctrlSsNav')) {
			_target = _target.getParent();
		}
		if(!_target) {
			return;
		}
		_aMembers.each(
			function(oCouple) {

				if(_target === oCouple[1]) {
					return oCouple[1].timeout = function() {

						close(oCouple[1]);

					}.delay(800);
				}

			}
		);

	};

	// METHODE PUBLIQUE D'INITIALISATION

	var initialize = function(oNotifier) {

		this.addEvents({
			'initialize': this.initialize.bind(this),
			'open': this.open.bind(this),
			'close': this.close.bind(this),
			'clearMemory': this.clearMemory.bind(this)
		});
		this.members = _getPrepareMembers();

	};

	// METHODE PUBLIQUE D'OUVERTURE

	var open = function(oMenu) {

		if(oMenu) {
			if(!oMenu.hasClass('show')) {
				oMenu.addClass('show');
				var _oSsNav = oMenu.getElement('.ssNav');
				if(_oSsNav) {
					new Fx.Morph(_oSsNav.setStyles({
						overflow: 'hidden',
						opacity: 0,
						height: 0
					}), {
						onComplete: function(oSsNav) {

							oSsNav.getPrevious().setStyles({
								display: 'block',
								width: oSsNav.scrollWidth,
								height: oSsNav.scrollHeight
							});

						},
						duration: 'short',
						transition: Fx.Transitions.Sine.easeOut
					}).start({
						height: [0, _oSsNav.scrollHeight],
						opacity: [0, 1]
					});
				}
			}
		}

	};

	// METHODE PUBLIQUE DE FERMETURE

	var close = function(oMenu) {

		if(oMenu && !oMenu.runIn) {
			oMenu.runIn = true;
			var _oSsNav = oMenu.getElement('.ssNav');
			if(_oSsNav) {
				new Fx.Morph(_oSsNav, {
					onStart: function(oSsNav) {

						oSsNav.getPrevious().setStyles({
							display: 'none',
							width: 0,
							height: 0
						});

					},
					onComplete: function(oSsNav) {

						oSsNav.setStyles({
							overflow: 'hidden',
							opacity: 0,
							height: 0
						});
						oSsNav.getParent().removeClass('show');
						oSsNav.getParent().runIn = false;

					},
					duration: 'short',
					transition: Fx.Transitions.Sine.easeOut
				}).start({
					height: [_oSsNav.scrollHeight, 0],
					opacity: [1, 0]
				});
			}
			else {
				oMenu.removeClass('show');
				oMenu.runIn = false;
			}
		}

	};

	// METHODE PUBLIQUE DE LIBERATION DE MEMOIRE

	var clearMemory = function() {

		$(document).getElements('.nav li').each(
			function(oMenu) {

				$(oMenu).removeEvent('mouseenter', _clearTimeout);
				var _oCtrlSsNav = $(oMenu).getElement('.ctrlSsNav');
				if(_oCtrlSsNav) {
					_oCtrlSsNav.removeEvent('mouseover', _mouseoverOpen);
				}
				var _oSsNav = $(oMenu).getElement('.ssNav');
				if(_oSsNav) {
					_oSsNav.getParent().removeEvent('mouseleave', _mouseleaveClose);
				}

			}
		);
		_aMembers = null;

	};

	// CLASSE RESULTANTE

	return new Class({

		Implements: Events,
		initialize: initialize,
		open: open,
		close: close,
		clearMemory: clearMemory

	});

})();

F6.BlockInit = function() {
    var oDiv = document.getElementsByTagName('div');
    var iDiv = oDiv.length - 1;
    var currentDiv = [];
    for (iDiv <= 0; iDiv--; ) {
        currentDiv[iDiv] = oDiv[iDiv];
        if (currentDiv[iDiv].className.match('\\bblockToggle\\b')) {
            F6.toggle.init(currentDiv[iDiv]);
        }
        /*
        hack pour faire apparaitre les layer dans les contenus ou le onclick est impossible
        il faut la class englobante "getTheLayerLuncher" pour ajouter les evenements aux liens
        avec la class "lunchLayerNeedConnexionTplRecruit"
        un seul appel existe pour l'instant
        */
        if (currentDiv[iDiv].className.match('\\bgetTheLayerLuncher\\b')) {
            function truc1() {
                if (!IsAuthenticatedUser) {
                    F6.popInLayer.open(F6.popInLayer.obj.tplNeedConnexion, 'CommonModalPostulateAndRecruit', this);
                    return false;
                }
            };
            function truc2() {
                if (!IsAuthenticatedUser) {
                    F6.popInLayer.open(F6.popInLayer.obj.tplNeedConnexion, 'CommonModalAssoCo', this);
                    return false;
                }
            };
            function truc3() {
                if (!IsAuthenticatedUser) {
                    F6.popInLayer.open(F6.popInLayer.obj.tplNeedConnexion, 'CommonModalYourAssoc', this);
                    return false;
                }
            };
            function truc4() {
                if (!IsAuthenticatedUser) {
                    F6.popInLayer.open(F6.popInLayer.obj.tplNeedConnexion, 'CommonModalGiveAndCollect', this);
                    return false;
                }
            };
            function truc5() {
                F6.popInLayer.open(F6.obj.oIziLayerToLunch, 'CommonModalGiveAndCollect', this);
                return false;
            };
            function truc6() {
                if (IsAuthenticatedUser) {
                    F6.popInLayer.open(F6.popInLayer.obj.tplAccessCV, 'CommonModalPostulateAndRecruit', this);
                    return false;
                }
                else {
                    F6.popInLayer.open(F6.popInLayer.obj.tplNeedConnexion, 'CommonModalPostulateAndRecruit', this);
                    return false;
                }
            };
            function truc7() {
                F6.popInLayer.open(F6.obj.oAssosJobsToLunch, 'CommonModalPostulateAndRecruit', this);
                return false;
            };
            function truc8() {
                F6.popInLayer.open(F6.obj.oComptanooLayerToLaunch, 'CommonModalComptanoo', this);
                return false;
            };
            //            function truc8() {
            //                if (!IsAuthenticatedUser) {
            //                    F6.popInLayer.open(F6.popInLayer.obj.tplNeedConnexion, 'CommonModalPostulateAndRecruit', this);
            //                    return false;
            //                }
            //            };
            //            function truc9() {
            //                if (!IsAuthenticatedUser) {
            //                    F6.popInLayer.open(F6.popInLayer.obj.tplNeedConnexion, 'CommonModalPostulateAndRecruit', this);
            //                    return false;
            //                }
            //            };
            $(currentDiv[iDiv]).getElements('.lunchLayerNeedConnexionTplRecruit').addEvent('click', truc1);
            $(currentDiv[iDiv]).getElements('.lunchLayerNeedConnexionTplAssoCo').addEvent('click', truc2);
            $(currentDiv[iDiv]).getElements('.lunchLayerNeedConnexionTplYourAssoc').addEvent('click', truc3);
            $(currentDiv[iDiv]).getElements('.lunchLayerNeedConnexionTplGiveCollect').addEvent('click', truc4);
            $(currentDiv[iDiv]).getElements('.lunchLayerIziTplGivCollect').addEvent('click', truc5);
            $(currentDiv[iDiv]).getElements('.lunchLayerAccessCVTplRecruit').addEvent('click', truc6);
            $(currentDiv[iDiv]).getElements('.lunchLayerAssosJobsTplRecruit').addEvent('click', truc7);
            $(currentDiv[iDiv]).getElements('.lunchLayerComptanooTpl').addEvent('click', truc8);
            //            $(currentDiv[iDiv]).getElements('.lunchLayerNeedConnexionTplRecruit').addEvent('click', truc8);
            //            $(currentDiv[iDiv]).getElements('.lunchLayerNeedConnexionTplRecruit').addEvent('click', truc9);
        }

    }
};

/* block toggle */

F6.toggle =
{
	Index: -1,
	item: [],
	group: {},
	init:function(obj)
	{
		//do init
		F6.toggle.Index++;
		F6.toggle.oDiv = $(obj);
		if(F6.toggle.oDiv.id)
		{
			var oGroup = F6.toggle.oDiv.id;
			F6.toggle.group[oGroup] = {};
			F6.toggle.group[oGroup].Name = oGroup;
		}
		else if(F6.toggle.oDiv.className.contains('groupToggle'))
		{
			for (var i in F6.toggle.group)
			{
				if(F6.toggle.oDiv.className.contains(i))
				{
					var oGroup = i;
				}
			}
		}

		F6.toggle.item[F6.toggle.Index] =
		{
			'oBlockToggle':F6.toggle.oDiv,	// le block complet
			'oToggler':'',														// l'element ou on click
			'oToggled':'',														// l element qui s affiche et se cache
			'open':null,
			'Index':F6.toggle.Index,
			'group':oGroup
		};
		if(oGroup)
		{
			F6.toggle.group[oGroup].Current = F6.toggle.item[F6.toggle.Index];
		}

		var o = F6.toggle.item[F6.toggle.Index].oBlockToggle.getElementsByTagName('*');
		for(var i = 0;i < o.length ;i++)
		{
			if(o[i].className.match('\\btoggleTitle\\b'))
			{
				o[i].innerHTML = '<a href="#" onclick="return false;">' + o[i].innerHTML + '</a>'
				F6.toggle.item[F6.toggle.Index].oToggler = o[i];
			}
			if(o[i].className.match('\\bblockToggleBody\\b'))
			{
				F6.toggle.item[F6.toggle.Index].oToggled = o[i];
			}
		}
		i,o = null;
		var tmp = F6.toggle.item[F6.toggle.Index];
		function goToToggle(e)
		{
			if(!e)
			{
				var e = {};
				e.target = {};
				e.target.nodeName = "A";
			}
			F6.toggle.toggleIt(e, tmp.Index);
		}
		if(F6.toggle.oDiv.hasClass('toggleOpen'))
		{
			F6.toggle.item[F6.toggle.Index].open = true;
		}
		else
		{
			F6.toggle.item[F6.toggle.Index].open = true;
			goToToggle();
		}
	  $(tmp.oToggler).addEvent('click',goToToggle);
	},
	toggleIt:function(e, Index)
	{
		var obj = F6.toggle.item[Index];
		if(e.target || e.srcElement)
		{
			if(e.srcElement){e.target = e.srcElement;}
			if(e.target.nodeName == "A")
			{
				if(obj.open == true)
				{
					obj.oToggled.style.height = 0;
					obj.oBlockToggle.removeClass('toggleOpen');
					obj.oBlockToggle.addClass('toggleClosed');
					obj.open = false;
					if(F6.toggle.group && F6.toggle.group[obj.group])
					{
						if(obj.Index == F6.toggle.group[obj.group].Current.Index)
						{
							F6.toggle.group[obj.group].Current = null;
						}
					}
					return obj;
				}
				else
				{
					obj.oToggled.style.height = "auto";
					obj.oBlockToggle.addClass('toggleOpen');
					obj.oBlockToggle.removeClass('toggleClosed');
					obj.open = true;
					if(obj.group)
					{
						if(F6.toggle.group[obj.group].Current != null)
						{
							if(obj.Index != F6.toggle.group[obj.group].Current.Index)
							{
								F6.toggle.toggleIt(e, F6.toggle.group[obj.group].Current.Index);
							}
						}
						F6.toggle.group[obj.group].Current = obj;
					}
					return obj;
				}
			}
		}
		else
		{
			alert('ERROR on TOGGLE');
		}
	}
};

/* block tabs : base ruoferrac */
F6.blockTabs = {
	iInit: 0,
	obj:{
		'aObj':[]
	},
	init : function(elm)
	{
		var iArrayToUse = tabs.iInit;
		elm = $(elm);
		var uls = elm.getElements('.tabs');
		var allTabContent = elm.getElements('.tabCtn');
		var theLinks = uls.getElements('a');
		var iAllTabContent = allTabContent.length;
		var iTheLinks = theLinks[0].length;
		var as = [];
		var bRotate = elm.hasClass('rotate');
		theLinks.each(function(array) {
			as = as.extend(array);
		})
		F6.blockTabs.obj.aObj[iArrayToUse] = {
			'theLinks':theLinks[0],
			'tabctn':allTabContent,
			'length':iTheLinks,
			'current':0
		};
		as.each(function(link, index, array) {
/*	si		: la class "nochange" est sur le lien, alors on ne switch pas
		et si	: le nombre de liens et le nombre de tabCtn ne sont pas egalescorrespondent , alors pas de switch non plus
*/
			if (!link.hasClass('nochange')){
			if (iAllTabContent == iTheLinks){
				link.parentNode.indexOfTab = index;
				link.parentNode.numberOfTabs = array.length;
				link.parentNode.allTabs = array.map(function(link) {return link.parentNode});
				link.parentNode.allTabsContent = allTabContent;
					link.parentNode.onclick = function() {
					F6.blockTabs.change(this, link.parentNode.indexOfTab, F6.blockTabs.obj.aObj[iArrayToUse]);
					return false;
				};
				link.onclick = function() {this.parentNode.onclick()};
				$e.add(link, 'click', $e.stop);
			}}
		})
		function rotate()
		{
			setInterval(
				function()
				{
				 	F6.blockTabs.change(null, null, F6.blockTabs.obj.aObj[iArrayToUse]);
				},
				4000
			);
		}
		if(bRotate){
			window.addEvent('load',rotate);
		}
		afterLoad.add(function() {F6.blockTabs.sizeContents(elm)});
		F6.blockTabs.iInit++;
	},
	change : function(elm, iIndex, obj) {
		if(iIndex == null)
		{

			if(obj.current == obj.length - 1)
			{
			  iIndex = 0;
			}
			else
			{
				iIndex = obj.current + 1;
			}
		}
		if(elm == null)
		{
			elm = obj.theLinks[iIndex].parentNode;
		}
		elm.allTabs.each(function(tab, iIndex) {
      $(tab).removeClass('current');
      tab.allTabsContent.removeClass('tabCurrent');
		});
		elm.addClass('current');
		elm.allTabsContent[elm.indexOfTab].addClass('tabCurrent');
		obj.current = iIndex;
	}
};

/*F6.ProfilType =
{
	hover: {
		obj: {},
		init: function(obj)
		{
			var oListProfil = $(obj);
			var aoListProfilLink = oListProfil.getElements('a');
			function()
			{
			  F6.ProfilType.hover.hover();
			};
	    aoListProfilLink.each(
				function(Index,oLink)
				{
				//  oLink.addEvent('click',)
				}
			);
		},
		hover: function()
		{
		}
	}
};*/

// pngFixLoader
// @function : objet pour permet le lancement des modifications des png via pngFix en dÃŠcalÃŠ sur le onload de la page.
// cela permet de contourner un bug d'internet explorer qui affiche un message d'erreur si le DOM est modifiÃŠ pendant le chargement de la page.
F6.pngFixLoader = {
	useOnload: true, // true : active l'execution du fixPng sur le load, et false, execute le fixPng des qu'il est appele par la CSS
	functions: [], // toutes les fonctions a executer sur le onload de la page
	addFunc: function(func) {
		F6.pngFixLoader.functions.push(func);
	},
	launch: function() {
		F6.pngFixLoader.useOnload = false; //une fois la page chargee, il faut laisser s'executer automatiquement la fonction pour d'autres actions (ex : ouverture layer)
		var counter = 1;
		while (F6.pngFixLoader.functions.length > 0) {
			//setTimeout(pngFixLoader.functions.pop(), 20*counter);
			F6.pngFixLoader.functions.pop()();
			counter++;
		}
	},
	init: function() {
		if (F6.pngFixLoader.useOnload && window.attachEvent && document.all) {
			window.attachEvent(
					'onload',
					function() {
						setTimeout(F6.pngFixLoader.launch, 10);
					}
				);
		}
	}
};
F6.pngFixLoader.init();
F6.pngFix = function(elm, noOverflow) {
	elm.style.filter = ' ';
	if (!(document.all && window.print && /MSIE [56]/.test(navigator.userAgent))) {
		return;
	}
	var exec = (function(elm, noOverflow, scale) {
		return function() {
			var options = { noOverflow: noOverflow };
			var repeat = elm.currentStyle.backgroundRepeat.toLowerCase() == 'repeat';
			elm.style.filter = ' ';
			// si l'ÃŠlÃŠment est un tag img, on va en faire creer une balise qui encadrera cette image et ensuite traiter la balise comme si c'etait un ÃŠlÃŠment qui avait une image de fond
			if (elm.nodeName.match(/^(IMG|INPUT)$/)) {
				if (!elm.src.match(/.*\.png$/)) {
					return;
				}
				elm.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod='image', src='" + elm.src + "')";
				elm.width = elm.offsetWidth;
				elm.height = elm.offsetHeight;
				// recuperation de l'url du pixel transparent
				var url = elm.currentStyle.backgroundImage.match(/^url\(["'](.*\.gif)["']\)$/); //seulement les .png
				elm.src = url[1];
				elm.className = elm.className.replace(/pngFix/g, '');
			}
			else {
				if (elm.currentStyle.backgroundImage == "" || elm.currentStyle.backgroundImage == "url()") {
					return;
				}
				var url = elm.currentStyle.backgroundImage.match(/^url\(["'](.*\.png)["']\)$/); //seulement les .png
				if (!url || url.length < 2) {
					return;
				}
				var pngLayer = document.createElement('i'); // on genere un <i> en position:absolute (layer), qui viendra se placer sous le contenu du div qui avait besoin du style.
				with (pngLayer.style) {
					if (options.noOverflow) {
						width = elm.offsetWidth + 'px';
						height = elm.offsetHeight + 'px';
					}
					else {
						width = '32000px';
						height = '32000px';
					}
					position = 'absolute';
					zIndex = -1;
					fontSize = '1%';
					filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod='";
					filter += options.noOverflow ?
							'crop' :
							'image';
					filter += "', src='" + url[1] + "')";
					background = 'none'; //forcing car parfois il peut arriver qu'on ai une CSS qui vienne rajouter des images / couleurs de fond
					// positionnement de l'image en fonction du background-position sur l'element
					if (!repeat) {
						switch ((elm.currentStyle.backgroundPositionX + '').toLowerCase()) {
							case 'left':
								left = 0;
								break;
							case 'right':
								right = 0;
								break;
							case 'center':
								left = '50%';
								setTimeout(
										function(pngLayer) {
											return function() {
												pngLayer.style.marginLeft = -(pngLayer.offsetWidth / 2) + 'px';
											}
										} (pngLayer),
										50
									);
								break;
							default:
								left = elm.currentStyle.backgroundPositionX;
						}
						switch ((elm.currentStyle.backgroundPositionY + '').toLowerCase()) {
							case 'top':
								top = 0;
								break;
							case 'bottom':
								bottom = 0;
								break;
							case 'center':
								top = '50%';
								setTimeout(
										function(pngLayer) {
											return function() {
												pngLayer.style.marginTop = -(pngLayer.offsetHeight / 2) + 'px';
											}
										} (pngLayer),
										100
									);
								break;
							default:
								top = elm.currentStyle.backgroundPositionY || 0;
						}
					}
					else {
						left = 0; //elm.currentStyle.backgroundPositionX +'';
						top = 0; //elm.currentStyle.backgroundPositionY +'';
					}
				}
				// gestion automatique du sizingMethod='scale' ou sizingMethod='image', ne pouvant pas tester le backgroundRepeat correctement, on passe par une methode un peu plus tricky
				setTimeout(
						function(elmN, pngLayerN, repeatN) {
							return function() {
								if (!elmN || elmN.parentNode || !pngLayerN || !pngLayerN.parentNode) {
									return;
								}
								if (pngLayerN.filters['DXImageTransform.Microsoft.AlphaImageLoader'].sizingMethod == 'image') {
									if (pngLayerN.offsetWidth < elmN.offsetWidth && repeatN) {
										pngLayerN.filters['DXImageTransform.Microsoft.AlphaImageLoader'].sizingMethod = 'scale';
									}
									else if (
										pngLayerN.offsetWidth > elmN.offsetWidth &&
										elm.currentStyle.backgroundPositionX.match(/^(left|0%|0px|0)$/) ||
										elm.currentStyle.backgroundPositionY.match(/^(top|0%|0px|0)$/)
									) {
										pngLayerN.filters['DXImageTransform.Microsoft.AlphaImageLoader'].sizingMethod = 'crop';
									}
								}
								else {
									pngLayerN.sizingMethod = 'image';
								}
								if (elm.currentStyle.width.match(/^(0|[12](%|px)?)$/)) {
									pngLayerN.filters['DXImageTransform.Microsoft.AlphaImageLoader'].sizingMethod = 'image';
								}
								if (pngLayerN.style.right != 'auto' && pngLayerN.style.right != '') {
									setTimeout(
										function() {
											pngLayerN.style.right = parseInt(pngLayerN.style.right) - (elm.offsetWidth % 2 ? 1 : 0) + 'px';
										},
										50
									)
								}
							};
						} (elm, pngLayer, repeat),
						200
					);
				with (elm.style) {
					position = elm.currentStyle.position == "static" || elm.currentStyle.position == "" ?
							'relative' :
							position;
					if (elm.currentStyle.overflow != 'auto' && elm.currentStyle.overflow != 'hidden') {
						overflow = options.noOverflow ?
								'visible' :
								(
									elm.currentStyle.width.match(/^(0|[12](%|px)?)$/) ?
										'visible' :
										'hidden'
								);
					}
					backgroundImage = 'none';
				}
				elm.appendChild(pngLayer);
			}
		}
	})(elm, noOverflow);
	try {
		F6.pngFixLoader.useOnload ? F6.pngFixLoader.addFunc(exec) : exec();
	} catch (e) { };
};

/*  ifrlayer : 
Cette fonction corrige un probleme sous IE6 lorsqu'un layer passe par dessus un select, le select sera toujours au dessus. Pour corriger ce probl&egrave;me.
ex : 	
- afficher un bloc : 
myBlock.style.display='block';
ifrlayer.make(myBlock); //genere ou affiche l'iframe
- cacher un bloc :
myBlock.style.display='none';
ifrlayer.hide(myBlock); //cache l'iframe associee au bloc
-deplacer un bloc : 
myBlock.style.left = "100px";
ifrlayer.move(myBlock); // deplace l'iframe associee au bloc
*/
F6.ifrlayer = {
    make: function(obj) {
        if (!obj) return; obj = (typeof (obj) == "string") ? document.getElementById(obj) : obj; if (!obj) return;
        if (document.all && window.print && document.getElementById && !obj.iframelayer) {
            if (obj.parentNode && !obj.iframelayer) var ifr = obj.parentNode.insertBefore(document.createElement("iframe"), obj);
            ifr.src = "javascript:false";
            if (obj.currentStyle.zIndex != "" && parseInt(obj.currentStyle.zIndex) > 1) {
                ifr.style.zIndex = parseInt(obj.currentStyle.zIndex) - 1;
            }
            with (ifr.style) {
                filter = "mask()";
                position = "absolute";
            }
            obj.iframelayer = ifr;
        }
        if (obj.iframelayer) {
            obj.iframelayer.style.visibility = "visible";
            F6.ifrlayer.move(obj, true);
        }
    },
    hide: function(obj) {
        if (!obj) return; obj = typeof (obj) == "string" ? document.getElementById(obj) : obj; if (!obj) return;
        if (obj.iframelayer) {
            obj.iframelayer.style.visibility = "hidden";
        }
    },
    kill: function(obj) {
        if (!obj) return; obj = typeof (obj) == "string" ? document.getElementById(obj) : obj; if (!obj) return;
        if (obj.iframelayer) {
            obj.iframelayer.parentNode.removeChild(obj.iframelayer);
            obj.iframelayer = null;
        }
    },
    move: function(obj, size) {
        if (obj && obj.iframelayer) {
            with (obj.iframelayer.style) {
                top = obj.offsetTop + "px";
                left = obj.offsetLeft + "px";
                if (size) {
                    width = obj.offsetWidth + "px";
                    height = obj.offsetHeight + "px";
                }
            }
        }
    }
}


F6.SkinSelector =
{
    // possible value: ["cork","wood","cloth","board"]
    obj:
	{
	    html: $(document) //shortcut
	},
    sCurrentId: "",
    init: function() {
        // get body className value
        // if not set, set first skin cork
        var oaSkinSelectorList = F6.SkinSelector.obj.html.getElements('.skinSelector a');
        this.sCurrentId = this.obj.html.body.className;
        oaSkinSelectorList.each(
			function(oLink, Index) {
			    function addClick() {
			        //console.log(oLink);
			        F6.SkinSelector.change(oLink);
			    };
			    oLink.addEvent('click', addClick);
			}
		);
        if (Cookie) {
            return Cookie.value;
        }
        return oaSkinSelectorList[0].hash.substring(1);
    },
    change: function(oLink) {
        /*
        get the link clicker
        get the hash and delete #
        */
        var sClassToAdd = oLink.hash.substring(1);
        $(F6.SkinSelector.obj.html.body).removeClass(F6.SkinSelector.sCurrentId);
        $(F6.SkinSelector.obj.html.body).addClass(sClassToAdd);
        F6.SkinSelector.sCurrentId = sClassToAdd;
        F6.SkinSelector.updateCookie(F6.SkinSelector.sCurrentId);
    },
    updateCookie: function() {
        Cookie.write('SkinToUse', F6.SkinSelector.sCurrentId, { 'path': '/' });
    }
};


F6.popInLayer =
{
    obj: {},
    init: function() {
        F6.popInLayer.obj.master = $('layer');
        F6.popInLayer.obj.mask = $('CommonModalMask');
        F6.popInLayer.obj.tplNeedConnexion = $('layerNeedConnexion');
        F6.popInLayer.obj.tplNeedListAsso = $('layerNeedListAsso');
        F6.popInLayer.obj.tplAccessIziAsso = $('layerAccessIziAsso');
        F6.popInLayer.obj.tplAccessComptanooAsso = $('layerAccessComptanooAsso');
        F6.popInLayer.obj.tplNoAsso = $('layerNoAsso');
        F6.popInLayer.obj.tplAccessAssosJobs = $('layerAccessAssosJobs');
        F6.popInLayer.obj.tplAccessCV = $('layerAccessCV');
        F6.popInLayer.obj.tplWaldec = $('layerWaldec');
        F6.popInLayer.obj.tplAwareness = $('awarness');
        F6.popInLayer.obj.currentLinkCall = null;
        F6.popInLayer.obj.currentTpl = null;
        F6.popInLayer.obj.currentLayer = null;
        function hideOnEscape(e) {
            if (e.key == 'esc') {
                F6.popInLayer.close();
            }
            if (e.type == 'click') {
                //console.info('test')
                F6.popInLayer.close();
            }
        };
        F6.popInLayer.obj.master.addEvent('keydown', hideOnEscape)
        F6.popInLayer.obj.mask.addEvent('click', hideOnEscape)
    },
    current: $('layerNeedConnexion'),
    /*
    param sIdTpl, string idTemplate que l'on veut afficher
    param sContext, string du contexte que l'on souhaite afficher ['CommonModalTransverse', 'CommonModalAssoCo', 'CommonModalYourAssoc', 'CommonModalForum', 'CommonModalAssocFinder', 'CommonModalGiveAndCollect', 'CommonModalPostulateAndRecruit', 'CommonModalInformate']
    param oLinkCall, on recupere le this du lien qui fait le onclick
    */
    open: function(oTpl, sContext, oLinkCall) {
        oTpl.removeClass('hiddenText').setStyle('marginTop', oTpl.getScrollHeight() / 2 - oTpl.getScrollHeight()).getElement('.CommonTitleLink').focus();
        F6.popInLayer.obj.mask.setStyle('height', $(document).getScrollHeight());
        F6.popInLayer.obj.mask.setStyle('display', 'block');
        F6.popInLayer.obj.mask.setStyle('opacity', 0);
        F6.popInLayer.obj.mask.get('tween', { property: 'opacity', duration: 100 }).start(.5);
        F6.popInLayer.obj.master.addClass(sContext);
        F6.ifrlayer.make(F6.popInLayer.obj.mask);
        F6.popInLayer.obj.currentLinkCall = oLinkCall;
        F6.popInLayer.obj.currentTpl = sContext;
        F6.popInLayer.obj.currentLayer = oTpl;
        return false;
    },
    close: function() {
        if (F6.popInLayer.obj.currentLinkCall.offsetHeight != 0) {
            F6.popInLayer.obj.currentLinkCall.focus();
        }
        F6.popInLayer.obj.mask.get('tween', { property: 'opacity', duration: 100 }).start(0);
        //        F6.popInLayer.obj.mask.setStyle('display', 'none');
        F6.popInLayer.obj.currentLayer.addClass('hiddenText');
        F6.popInLayer.obj.master.removeClass(F6.popInLayer.obj.currentTpl);
        F6.ifrlayer.hide(F6.popInLayer.obj.mask);
        return false;
    }
};

