	   adblockblock = function() {
	      if (window.addEventListener) {
	         window.addEventListener('load', this.bind(this.initialize), false);
	      } else if (window.attachEvent) {
	         window.attachEvent('onload', this.bind(this.initialize));
	      }
	   };

	   adblockblock.prototype = {

	      initialize: function() {
	         this.interval = setInterval(this.bind(this.test), 1000);
	         this.test();
	      },

	      test: function() {

	         var element=document.getElementById('adblocktest');

	         /* On test si l'element a ete supprime par le bloqueur
	         * Maxthon?, Konqueror
	         */
	         if(!element)
	         {
	            this.logger('Element image non trouve');
	            return this.block();
	         }

	         /* On test si l'image n'a tout pas ete chargee dutout
	         * Adblock, /etc/hosts, proxies, etc
	         * Gecko: element.complete==true, meme si image non trouvee / mauvaise image et onerror||onload appellee
	         * IE: element.complete==false quand image non trouvee.
	         */
	         if (element.complete && !element.imgloaded)
	         {
	            this.logger('Image non chargee');
	            return this.block();
	         }

	         /* On test si l'element a ete cache par le bloqueur
	         * (display:none, ou visibility:hidden, ou position:absolute et top/left hors de la page)
	         * Old adblock
	         */
	         var display = this.getStyle(element, 'display');
	         var visibility = this.getStyle(element, 'visibility');
	         var position = this.getStyle(element, 'position');
	         if (display != 'inline' || (visibility != 'visible' && visibility != 'inherit') || position != 'static')
	         {
	            this.logger('Image cachee: display='+display+' visibility='+visibility+' position='+position);
	            return this.block();
	         }

	         /* On test si l'image a ete remplacee
	         * Pour une image non chargee, naturalWidth/Height doit etre indefini ou 0
	         */
	         if ((element.naturalWidth && element.naturalWidth > 0) || (element.naturalHeight && element.naturalHeight > 0)) {
	            this.logger('Image remplacee');
	            return this.block();
	         }
	         /* Pour Konqueror
	         */
	         if (element.width && element.width == 64) {
	            this.logger('Image remplacee (Konqueror)');
	            return this.block();
	         }
	      },

	      getStyle: function(element, key) {
	         if (document.defaultView && document.defaultView.getComputedStyle) {
	            return document.defaultView.getComputedStyle(element, '').getPropertyValue(key);
	         } else {
	            return element.currentStyle[key];
	         }
	      },

	      block: function(blockMethod) {
	         // Ne pas supprimer cette ligne
	         if (this.interval) clearInterval(this.interval);

	         // Mettez ce que vous voulez ici
	        g_block = true;
	      },

	      bind: function(func) {
	         var obj = this;
	         return function() {
	            return func.apply(obj, []);
	         };
	      },

	      logger: function(str) {
	         if (typeof console == 'undefined') return;
	         if (typeof console.log == 'undefined') return;
	         console.log(str);
	      }
	   };

	   /*Decommenter pour debugger (ou utiliser firebug)
	   if (typeof console == 'undefined') {
	      console={};
	      console.log = function(str) {
	         var el = document.createElement('div');
	         el.appendChild(document.createTextNode(str));
	         document.body.appendChild(el);
	      };
	   }
	   */

	   new adblockblock();
