(function(window, undef) {

	// test pour que cette portion ne puisse être exécutée qu'une seule fois
	window.OAS_url || (
	// test pour s'assurer que les variables necessaires sont déclarées
	typeof OAS_sitepage === 'string' &&
	typeof OAS_listpos === 'string' &&
	(function() {

		// Calcul de l'URL pour le chargement des pubs
		window.OAS_url ='http://pub.ftv-publicite.fr/RealMedia/ads/'
			+'adstream_mjx.ads/'
			+ OAS_sitepage
			+'/1'
			+ (Math.random()+'').substring(2, 11)
			+'@'
			+ OAS_listpos;

		// Appel du script de chargement des pubs
		document.write('<script type="text/javascript" src="' + window.OAS_url + '"><\/script>');

		window.OAS_AD = function(pos) {
			var reg = new RegExp(pos+'(,|$)');
			if(typeof OAS_RICH === 'function' &&
			  typeof OAS_listpos === 'string' &&
			  reg.test(OAS_listpos)) {
				try {
					OAS_RICH(pos);
				} catch(e) {}
				OAS_listpos = OAS_listpos.replace(reg, '');
			}
		};

	})());

	// Gestion du déplacement des pubs dans leur position finale dans la page, après le chargement
	// complet de la page. Cette partie dépend de jQuery
	(function($) {
		if($ === undef) {
			throw new Error('Dépendence non satisfaite : jQuery');
		}

		// Fonction qui va déplacer une pub (spécifié par sa position OAS) vers sa destination dans le DOM.
		window.OAS_moveAd = function(position, addFrom, addTo) {
			var from = '#eGetPub' + position,
			to = '#eShowPub' + position + ' .adCtnt';
			if( addFrom ) {
				from+= ',' + (addFrom instanceof Array ? addFrom.join(',') : addFrom);
			}
			if( addTo ) {
				to+= ',' + (addTo instanceof Array ? addTo.join(',') : addTo);
			}

			$(to)
				.eq(0)
				.append(
					$(from)
						.eq(0)
						.contents()
							.not('script')
				)
				.each(function() {
					if($.browser.msie) {
						$(this)
							.css('visibility', 'visible');
						if(position === 'Top' || position === 'x01' || position === 'x02' ) {
							$(this)
								.css('zoom','1');
						}
					}
				});
		};

		var listPos = OAS_listpos.split(','),

		// Définition des sélecteurs permettant d'identifier la zone
		// de génération et la zone de destination de chaque pub (définie par sa position OAS)
		// Il est possible de spécifier plusieurs sélécteurs pour chaque zone. Ces sélecteur seront
		// testés les uns après les autres, et le premier correspondant à un noeud DOM sera utilisé
		positionsMoves = {
			'Top'				: { from: '#adTop01', to: ['#eAdBlkLargeBanner .adCtnt', '#aTopPubBlk .adCtnt'] },
			'Middle'			: { from: '#adMiddle01', to: ['#adVdoBlk .ctnt', '#adVdoBlkMiddle .adCtnt', '#pubMiddle', '#adMiddle'] },
			'Middle2'			: { from: '#adMiddle02', to: '#AdSquare02 .ctnt' },
			'Position1'			: { from: '#adButton01', to: '#adButtonPos01' },
			'Position2'			: { from: '#adButton02', to: '#adButtonPos02' },
			'Position3'			: { from: '#adButton03', to: '#adButtonPos03' },
			'x01'				: { from: '#adSky01', to: '#adSkyscrapper01' },
			'x02'				: { from: '#adX02', to: '#adSkyscrapper02' },
			'BottomRight'		: { from: '#adBottomRight', to: ['#AdBottomRight .ctnt', '#adBottom .ctnt'] }
		};

		// On attend la fin du chargement de la page pour repositionner les pubs
		$(window).load(function() {
			for(var i = 0; i < listPos.length; i++) {
				if(positionsMoves[listPos[i]] !== undef) {
					window.OAS_moveAd(listPos[i], positionsMoves[listPos[i]].from, positionsMoves[listPos[i]].to);
				}
			}
		});

	})(window.jQuery);
})(this);