/*
 * External links plugin (c) iPressroom Inc, 2010
 * v 1.0.2
 *  
 * Default usage .prExternal() -- marks externals and pdf
 * Custom usage .prExternal("ext", function(){})
 * Filter names: "ext" -- external links, "pdf" -- pdf files
 * You can pass your own function as argument to process links, 
 * similar to jQuery .each() function    
 */
    
jQuery.fn.prExternal = function(filters) {
  // pressroom path 
  var path_arr = location.pathname.match(/\/pr\/[\w-]+\//g); 
  var prPath = (path_arr) ? path_arr[0] : "";
  // predefined filters
  var _filters = defineFilters();  

  // arguments defaults
  if (!arguments.length)
   arguments = ["ext","pdf"];
  
  // common fitering links array
  var links = this.filter(function(){
   return this.className == "" &&
          $(this).children("img").length == 0 &&
          $(this).html() != "" 
  });

  // applying filters  
  for (var i=0;i<arguments.length;i++) {
   // predefined filters
   if (typeof(arguments[i]) == "string" && _filters[arguments[i]])
    links.each(_filters[arguments[i]]);
   // custom filters
   if (typeof(arguments[i]) == "function")
    links.each(arguments[i])
  }
  
  // define standard filters
  function defineFilters() {
   return {
    // external links
    "ext": 
    function () {
     if(this.hostname && this.hostname != location.hostname) {
       var a = $(this);              
       a.attr("target","_blank");
       a.addClass("external")
        .append('&nbsp;<img src="'+prPath+'images/icon_ext.gif" alt="External link" title="External link" />');
     }
    },
    // pdf files
    "pdf":
    function () {
      var a = $(this);              
      if(a.is("[href*='.pdf']")) {
        a.attr("target","_blank");
        a.addClass("pdf")
         .append('&nbsp;<img src="'+prPath+'images/icon_pdf.gif" alt="PDF file" title="PDF file" />');
      }
    }
   }
  }
}
 
  



