(function($) {

  $.fn.tableGrabber = function(options) {
    
    var settings = {
      target: '',
      linkText: 'Enquire',
      popup: ''
    }

    return this.each(function() {

      if(options) $.extend(settings,options);

      var $target = $(settings['target']);
      if(!$target) return; // Can't find target element

      var $popup = $(settings['popup']);
      var popup = settings['popup'];
      if(!$popup) return; // Can't find popup element

      // Get some bearings...
      var $table = $(this);
      var $rows = $(this).find('tr');
      if($rows.length < 2) return; // Only 1 row - abort.
      var $firstrow = $rows.eq(0);
      var $firstrowcols = $firstrow.find('td');
      var $otherrows = $rows.slice(1);
      var $cols = $firstrow.find('td');
      var colcount = $cols.length;

      // Add a link to the final column, and hook up a click event...
      $otherrows.each(function() {
        var $row = $(this);
        var $finalcol = $(this).find('td').last().html('');
        var link = $('<a></a>').attr('href',settings['popup']).text(settings['linkText']).click(function() {
          var text = ''; var html = ''; var cur_title = '';
          $(this).parents('td').siblings('td').each(function() {
            var cur = $(this).text();
            if(cur.length == 0) {
              if($img = $(this).find('img')) cur = $img.attr('alt');
            }
            
            if(cur.length > 0) {
              cur_title = $firstrowcols.eq($row.find('td').index(this)).text();
              text +=  cur_title + ": "+cur+".\n";
              html += '<strong>'+cur_title+'</strong>: '+cur+".<br>\n";
            }
          });
          $target.val(text);
    
          $target.parents('form').find('p.lenderdetails').remove();
    
          var $p = $('<p></p>').addClass('lenderdetails').html(html);
          $target.parents('form').find('h1').after($p);

          $.nmManual(popup);
          return false;
        }).appendTo($finalcol);
      });
    });
  }
})(jQuery);




// usage: log('inside coolFunc',this,arguments);
// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
window.log = function(){
  log.history = log.history || [];   // store logs to an array for reference
  log.history.push(arguments);
  if(this.console){
    console.log( Array.prototype.slice.call(arguments) );
  }
};



// catch all document.write() calls
(function(doc){
  var write = doc.write;
  doc.write = function(q){ 
    log('document.write(): ',arguments); 
    if (/docwriteregexwhitelist/.test(q)) write.apply(doc,arguments);  
  };
})(document);



