// Usage:
//
// new Fb20ExtHrefBlank(set, a, whitelist, url, ...);
//
// Exemple:
//
// Event.onReady(function() {
//     new Fb20ExtHrefBlank('http://www.google.fr', 'http://www.yahoo.com');
// });

var Fb20ExtHrefBlank = Class.create({
   initialize: function() {
       this.formatArgs(arguments);
       this.parse();
   },
   parse: function() {
       var whitelist = this.whitelist;
       $$('a').each(function(link) {
           var set_blank = true;
           whitelist.each(function(whitelink) {
               if(link.href.indexOf(whitelink) >= 0) {
                   set_blank = false;
                   throw $break;
               }
           });
           if (set_blank) { link.setAttribute('target', '_blank'); }
       });       
   },
   formatArgs: function(args) {
       this.whitelist = new Array
       for (var i = 0; i < args.length; i++)
            this.whitelist.push(args[i]);
        this.whitelist.push(document.documentURI); // site url
        this.whitelist.push('mailto:');            // mail
        this.whitelist.push('s3.amazonaws.com')    // S3 images
   }
});
