/*

Script Habillage dynamique

# Structure HTML généré en javascript :
<div id="lcTop">
	<div id="lcTContainer">
		<div id="lcTb"></div><!-- Expand banner -->
		<div id="lcBb"></div><!-- Slim banner -->
	</div>
</div>

*/

if (typeof jQuery !== 'undefined') {
	(function($){
	
		// Namespace
		if (typeof LABO === 'undefined') var LABO = {};
		
		// Outils divers (browser sniffing, flash detection,...)
		if (typeof LABO.util === 'undefined') {
		    LABO.util = {
		        browser: false,
		        version: false,
		        OS: false,
		        flash: false,
		        capping: 0,
		        idCapping: '',
		        capped: false,
		        dataOS: [{
		            string: navigator.platform,
		            subString: "Win",
		            identity: "Windows"
		        }, {
		            string: navigator.platform,
		            subString: "Mac",
		            identity: "Mac"
		        }, {
		            string: navigator.platform,
		            subString: "Linux",
		            identity: "Linux"
		        }],
		        dataBrowser: [{
		            string: navigator.userAgent,
		            subString: "Chrome",
		            identity: "Chrome"
		        }, {
		            string: navigator.vendor,
		            subString: "Apple",
		            identity: "Safari",
		            versionSearch: "Version"
		        }, {
		            string: navigator.userAgent,
		            subString: "Firefox",
		            identity: "Firefox"
		        }, {
		            string: navigator.userAgent,
		            subString: "MSIE",
		            identity: "Explorer",
		            versionSearch: "MSIE"
		        }],
		        insertFlash: function(_w, _h, _m, _i, _t, _s, _v) {
		            return '<object clas' + 'sid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="' + _i + '" width="' + _w + '" height="' + _h + '"><param name="movie" value="' + _m + '"><param name="flashvars" value="' + _v + '"><param name="wmode" value="' + _t + '"><param name="AllowScriptAccess" value="' + _s + '"><param name="quality" value="high"><embed id="' + _i + '" name="' + _i + '" src="' + _m + '?' + _v + '" wmode="' + _t + '" width="' + _w + '" height="' + _h + '" AllowScriptAccess="' + _s + '" type="application/x-shockwave-flash" swLiveConnect="true" quality="high" /></object>';
		        },
		        thisMovie: function(movieName) {
		            if (navigator.appName.indexOf("Microsoft") != -1) {
		                return window[movieName];
		            } else {
		                return document[movieName];
		            }
		        },
		        init: function(_c, _i) {
		            this.capping = _c;
		            this.idCapping = _i;
		            if (this.capping > 0) this.setCapping();
		            this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		            this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version";
		            this.OS = this.searchString(this.dataOS) || "an unknown OS";
		            this.flash = this.flashVer();
		        },
		        searchVersion: function(dataString) {
		            var index = dataString.indexOf(this.versionSearchString);
		            if (index == -1) return;
		            return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
		        },
		        searchString: function(data) {
		            for (var i = 0; i < data.length; i++) {
		                var dataString = data[i].string;
		                var dataProp = data[i].prop;
		                this.versionSearchString = data[i].versionSearch || data[i].identity;
		                if (dataString) {
		                    if (dataString.indexOf(data[i].subString) != -1) return data[i].identity;
		                } else if (dataProp) {
		                    return data[i].identity;
		                }
		            }
		        },
		        setCapping: function() {},
		        flashVer: function() {
		            var i, a, o, p, s = "Shockwave",
		                f = "Flash",
		                t = " 2.0",
		                u = s + " " + f,
		                v = s + f + ".",
		                rSW = RegExp("^" + u + " (\\d+)");
		            if ((o = navigator.plugins) && (p = o[u] || o[u + t]) && (a = p.description.match(rSW))) return a[1];
		            else if ( !! (window.ActiveXObject)) for (i = 10; i > 0; i--)
		            try {
		                if ( !! (new ActiveXObject(v + v + i))) return i
		            } catch (e) {}
		            return 0;
		        }
		    };
		};
		
		// Gestion de l'affichage du header dynamique
		if (typeof LABO.hd === 'undefined') {
		    LABO.hd = {
		        m: '',
		        p: '', // Chemin des créas !
		        ts: '', // Nom créa Expand banner !
		        tw: 1000, // Largeur créa Expand banner
		        th: 300, // Hauteur créa Expand banner
		        bs: '', // Nom créa Slim banner !
		        bw: 1000, // Largeur créa Slim banner
		        bh: 60, // Hauteur créa Slim banner
		        u1: '', // Clic command créa 1000x300 !
		        u2: '', // Clic command créa 1000x60 !
		        px1: '', // Pixel de comptage !
		        px2: '', // Pixel de comptage
		        fl: 8, // Version de flash requise
		        ct: 'clickTag', // Nom de la variable de clickTag
		        tr: 'opaque', // Mode d'affichage du flash
		        cap: 2, // Capping
		        cookieName: '', // Nom du cookie !
		        delay: 5000, // Délais avant fermerure de l'expand
		        idc: '',
		        cp: {
		            Windows: {
		                Explorer: 6,
		                Firefox: 3,
		                Chrome: 5
		            },
		            Mac: {
		                Firefox: 3,
		                Safari: 4,
		                Chrome: 5
		            },
		            Linux: {
		                Explorer: 6
		            }
		        },
		        create: function(params){
		        	$.extend(this, params);
		        	this.init();
		        },
		        vo: false,
		        init: function() {
		            document.getElementById('gn').style.zIndex = 10;
		            var url = location.hostname;
		            if (url.match(/voila.fr/)) this.vo = true;
		            /*
		            if (this.u1 == '') this.u1 = this.u;
		            if (this.u2 == '') this.u2 = this.u;
		            if (this.m == 'dfp') {
		                this.u = '%c' + this.u;
		                this.u1 = '%c' + this.u1;
		                this.u2 = '%c' + this.u2;
		            }
		            */
		            this.ts = this.p + this.ts;
		            this.tb = this.p + this.tb;
		            this.bs = this.p + this.bs;
		            this.bb = this.p + this.bb;
		            this.px = this.px1 + this.px2;
		            LABO.util.init(this.cap, this.idc);
		            
		            // On vérirife le navigateur (+ version)
		            if (this.cp[LABO.util.OS][LABO.util.browser] !== 'undefined' && this.cp[LABO.util.OS][LABO.util.browser] <= LABO.util.version) {
		            	
		            	// On positionnne les éléments conteneurs
		                var d = document.createElement('div');
		                d.setAttribute('id', 'lcTop');
		                document.getElementById('overall').insertBefore(d, document.getElementById('body1'));
		                d = document.getElementById('lcTop');
		                d.style.height = '0';
		                d.style.width = this.tw + 'px';
		                d.style.position = 'relative';
		                d.style.padding = '0';
		                if (this.vo) d.style.margin = '0';
		                else d.style.margin = '0 0 6px 0';
		                d.style.background = 'transparent';
		                d.style.zIndex = '1';
		                var h = '\
		                	<div id="lcTContainer" style="position:absolute;top:0;left:0;width:' + this.tw + 'px;height:0px;overflow:hidden;">\
		                		<div id="lcTb" style="position:absolute;top:0;left:0;width:' + this.tw + 'px;height:' + this.th + 'px;z-index:2;"></div>\
		                		<div id="lcBb" style="position:absolute;top:0;left:0;width:' + this.bw + 'px;height:' + this.bh + 'px;z-index:1;visibility:hidden;"></div>\
		                		<div id="lcPx" style="position:absolute;left:-1121983em">' + this.px + '</div>\
		                	</div>';
		                d.innerHTML = h;
		                d = document;
		                
						var cookieVal = ($.cookie(this.cookieName) === null) ? 0 : parseInt($.cookie(this.cookieName), 10),
							lcTop = d.getElementById('lcTop'),
							lcTContainer = d.getElementById('lcTContainer'),
							lcTb = d.getElementById('lcTb'),
							lcBb = d.getElementById('lcBb');
		                
		                // Si nombre d'affichage < capping
		                if (cookieVal < this.cap) {
		                	lcTop.style.height = this.th + 'px';
		                	lcTContainer.style.height = this.th + 'px';
			                if (this.ts.indexOf('.swf') > -1 && this.fl <= LABO.util.flash) {            	
			                    lcTb.innerHTML = LABO.util.insertFlash(this.tw, this.th, this.ts, 'lcFlaT', this.tr, 'always', this.ct + '=' + escape(this.u1));
		    	                setTimeout(LABO.hd.hide, LABO.hd.delay);
		        	        } else {
		            	        lcTb.innerHTML = '<a href="' + this.u1 + '" target="_blank"><img src="' + this.ts + '" border="0" width="' + this.tw + '" height="' + this.th + '" alt="" galleryimg="no" /><\/a>';
		                	    setTimeout(LABO.hd.hide, LABO.hd.delay);
			                }
			                $.cookie(this.cookieName, (cookieVal+1), { expires: 1, path: '/' });
			            }
			            // Sinon
		                else {
		                	lcTop.style.height = this.bh + 'px';
		                	lcTContainer.style.height = this.bh + 'px';
		                	
		                	lcTb.style.visibility = 'hidden';
		                    lcTb.innerHTML = '';
		                    lcBb.style.visibility = 'visible';
		                	if (this.bs.indexOf('.swf') > -1 && this.fl <= LABO.util.flash) {            	
		                		lcBb.innerHTML = LABO.util.insertFlash(this.bw, this.bh, this.bs, 'lcFlaB', this.tr, 'always', this.ct + '=' + escape(this.u2));
		                	}
		                	else {
			                	lcBb.innerHTML = '<a href="' + this.u2 + '" target="_blank"><img src="' + this.bs + '" border="0" width="' + this.bw + '" height="' + this.bh + '" alt="" galleryimg="no" /><\/a>';
			                }
		                }
		            }
		            d = false;
		        },
		        hide: function() {
		            var _e = document.getElementById('lcTop');
		            var _e2 = document.getElementById('lcTContainer');
		            var steps = ['300', '250', '200', '150', '115', '80', '60'];
		            var i = 0;
		            var anim = function() {
						if (typeof steps[i] !== 'undefined') {
		                	_e2.style.height = steps[i] + 'px';
		                    _e.style.height = steps[i] + 'px';
		                    i++;
		                    setTimeout(anim, 100);
						}
						else {
							var f = function() {
		                    	document.getElementById('lcBb').style.visibility = 'visible';
		                        setTimeout(f2, 200);
							};
		                    var f2 = function() {
		                    	document.getElementById('lcTb').style.visibility = 'hidden';
		                        document.getElementById('lcTb').innerHTML = '';
		                        _e = false;
		                        _e2 = false;
							};
							setTimeout(f, 200);
						}
					};
					
		            if (LABO.hd.bs.indexOf('.swf') > -1 && LABO.hd.fl <= LABO.util.flash) {
		                document.getElementById('lcBb').innerHTML = LABO.util.insertFlash(LABO.hd.bw, LABO.hd.bh, LABO.hd.bs, 'lcFlaB', LABO.hd.tr, 'always', LABO.hd.ct + '=' + escape(LABO.hd.u2));
		            } else {
		                document.getElementById('lcBb').innerHTML = '<a href="' + LABO.hd.u2 + '" target="_blank"><img src="' + LABO.hd.bs + '" border="0" width="' + LABO.hd.bw + '" height="' + LABO.hd.bh + '" alt="" galleryimg="no" /><\/a>';
		            }
		            setTimeout(anim, 100);
		        }
		    };
		};
		
		window['LABO'] = LABO;
		
	})(jQuery);
}
