function setCookie(name, value, expires, path, domain, secure)
{
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name)
{
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0)
            return null;
    }
    else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain)
{
    if (getCookie(name))
    {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

function cookieOn()
{
	var returnValue;
	var cookieTestExpire = new Date();
	cookieTestExpire.setTime(cookieTestExpire.getTime() + 5000);
	setCookie("TestCookie", 1, cookieTestExpire);
	returnValue = (getCookie("TestCookie") == 1);
	return(returnValue);
}

/* For create a capping 1 per session use set 0 to capping param */
function cappingPermission(capping, expireIn, cookieName){
	if (!cookieOn()) { return false; }
	var cookieValue = getCookie(cookieName);
	if (0 == capping) {
		if (cookieValue) { return false; }
		setCookie(cookieName, "1"); // cookie expire at session end
		return true;
	} 
	if (!cookieValue) {
		var counter = 1;
		var cookieExpire = new Date();
		cookieExpire.setTime(cookieExpire.getTime() + expireIn);
	} else {
		var ArrayOfCookieValues = cookieValue.split('[exipreDate=');
		var counter = Number(ArrayOfCookieValues[0])+1;
		var cookieExpire = new Date(Date.parse(ArrayOfCookieValues[1]));
	}
	if (counter <= capping){
		cookieValue = counter+"[exipreDate="+cookieExpire;
		setCookie(cookieName, cookieValue, cookieExpire,"/");
		return true;
	}
	return false;
}

jQuery.extend({
	destroyOverlay: function (opt, iScrollTop) {
		jQuery('#'+ opt.overlayBgId +', #' +  opt.overlayBoxId).remove();
		document.documentElement.scrollTop = iScrollTop || 0;
		jQuery(document.documentElement).removeClass(opt.overlayWorksClass);
		return true;
	},
	createOverlayBox: function (content, opt, iScrollTop) {
		return jQuery('<div id="' + opt.overlayBoxId + '" class="'+ opt.overlayBoxClass +'"><p class="'+ opt.closerClass +'"><a href="#">Close</a></p></div>')
			.prependTo(document.body)
			.append(content)
			.css('top', iScrollTop + opt.topPosition + 'px')
			.css('margin-left', '-'+jQuery('#'+opt.overlayBoxId).width()/2+'px');
	},
	createOverlayBg: function (opt) {
		return jQuery('<div id="' + opt.overlayBgId + '"></div>')
			.prependTo(document.body)
			.css('opacity', opt.opacity);
	}
});

jQuery.fn.extend({
	becomeCloser: function (events, opt, iScrollTop) {
		/*
		this.find('.'+opt.closerClass +' a').bind(events,
			function(e){
				e.preventDefault();
			}
		);
		*/
		return this.bind(events,
			function(e){
				e.preventDefault();
				jQuery.destroyOverlay(opt, iScrollTop);
			}
		);
	},
	putInOverlayBox: function (opt, iScrollTop) {
		jQuery.createOverlayBox (this, opt, iScrollTop);
		return this;
	},
	displayInOverlay :function (opt) {
		var iScrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
		if ('object' != typeof (opt)) {
			var opt = {};
		}
		opt.overlayBoxId = opt.overlayBoxId || 'overlayBox';
		opt.overlayBoxClass = opt.overlayBoxClass || 'defaultOverlay';
		opt.overlayBgId = opt.overlayBgId || 'overlayBg';
		opt.closerClass = opt.closerClass || 'closer';
		opt.overlayWorksClass = opt.overlayWorksClass || 'overlayWorks';
		opt.opacity = opt.opacity || '0.5';
		opt.selfCloser = !!(opt.selfCloser);
		opt.topPosition = opt.topPosition || 150;
		var closerSelector = '#'+ opt.overlayBoxId +' .'+ opt.closerClass +' a, #'+ opt.overlayBgId;
		if (opt.selfCloser) {
			closerSelector += ', #'+ opt.overlayBoxId;
		}
		this.putInOverlayBox(opt, iScrollTop);
		jQuery.createOverlayBg(opt);
		jQuery(closerSelector).becomeCloser("click", opt, iScrollTop);
		jQuery(document.documentElement).addClass(opt.overlayWorksClass);
		document.documentElement.scrollTop = iScrollTop;
		return this;
	}
});

function pubExists(oElem){
	if (!oElem){return false};
	if (oElem.offsetHeight > 20 || oElem.height > 20) {
		return true;
	} else if (jQuery('object',oElem)[0]) {
		if (jQuery('object',oElem)[0].height > 20) {
			return true;
		}
	} else if (jQuery('img',oElem)[0]) {
		if (jQuery('object',oElem)[0].height > 20) {
			return true;
		}
	}
	return false;
}

function adsDisplayer(oElem){
	if (!oElem){return false};
	if (pubExists(oElem)) {
		jQuery(oElem).removeClass('noPub');
		return true;
	}
	return false;
}

function splashDisplayer() {
	if (navigator.userAgent.indexOf('AppleWebKit/') > -1) {return false;} //if safari
	if (adsDisplayer(jQuery('#splash')[0])) {
		jQuery('#splash').find('*:not(script):not(noscript)').displayInOverlay({opacity: '0.7'});
		setTimeout("jQuery.destroyOverlay({overlayBgId:'overlayBg',overlayBoxId:'overlayBox',overlayWorksClass:'overlayWorks'})",45000);
	}
}

/*
function setCookie(name, value, expires, path, domain, secure)
{
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name)
{
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0)
            return null;
    }
    else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain)
{
    if (getCookie(name))
    {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

var SpiderNames = new Array("opera", "googlebot", "architextspider", "scooter", "infoseek", "ultraseek", "lycos_spider", "gulliver", "fast-webcrawler", "slurp");
// note: opera ajouté ŕ la liste car bouclage de la splash ŕ cause du code javascript Beweb incompatible

function spiders()
{
	var returnValue;
	var signature;
	var i;
	signature = navigator.userAgent.toLowerCase();
	for(i = 0; (i < SpiderNames.length && !returnValue); i++)
		returnValue = (signature.indexOf(SpiderNames[i]) >= 0);
	return(returnValue);
}

function cookieOn()
{
	var returnValue;
	var cookieTestExpire = new Date();
	cookieTestExpire.setTime(cookieTestExpire.getTime() + 5000);
	setCookie("TestCookie", 1, cookieTestExpire);
	returnValue = (getCookie("TestCookie") == 1);
	return(returnValue);
}



function showSplash(splashURL)
{
	var SplashExpire = 10800000;    // 3 heures
	var SplashCookieName = "Splash";
	var SplashCookieValue;
	if ((typeof(getCookie) == 'function') && !spiders() && cookieOn())
	{
		SplashCookieValue = getCookie(SplashCookieName);
		if (SplashCookieValue != 1)
		{
		    if (SplashExpire == 0)
			    setCookie(SplashCookieName, 1);
		    else {
		    	var cookieExpire = new Date();
	        	cookieExpire.setTime(cookieExpire.getTime() + SplashExpire);
			    setCookie(SplashCookieName, 1, cookieExpire, "/");
			}
	        self.location.href = splashURL;
		}
	}
}*/
