//bigTarget.js - A jQuery Plugin
//Version 1.0.1
//Written by Leevi Graham - Technical Director - Newism Web Design & Development
//http://newism.com.au
//Notes: Tooltip code from fitted.js - http://www.trovster.com/lab/plugins/fitted/

//create closure
(function($) {
// plugin definition
$.fn.bigTarget = function(options) {
 debug(this);
 // build main options before element iteration
 var opts = $.extend({}, $.fn.bigTarget.defaults, options);
 // iterate and reformat each matched element
 return this.each(function() {
   // set the anchor attributes
   var $a = $(this);
   var href = $a.attr('href');
   var title = $a.attr('title');
   // build element specific options
   var o = $.meta ? $.extend({}, opts, $a.data()) : opts;
   // update element styles
   $a.parents(o.clickZone)
     .hover(function() {
       $h = $(this);
       $h.addClass(o.hoverClass);
       if(typeof o.title != 'undefined' && o.title === true && title != '') {
         $h.attr('title',title);
       }
     }, function() {
       
       $h.removeClass(o.hoverClass);
       if(typeof o.title != 'undefined' && o.title === true && title != '') {
         $h.removeAttr('title');
       }
     })
     // click
     .click(function() {
       if(getSelectedText() == "")
       {
         if($a.is('[rel*=external]')){
           window.open(href);
           return false;
         }
         else {
           //$a.click(); $a.trigger('click');
           window.location = href;
         }
       }
     });
 });
};
// private function for debugging
function debug($obj) {
 if (window.console && window.console.log)
 window.console.log('bigTarget selection count: ' + $obj.size());
};
// get selected text
function getSelectedText(){
 if(window.getSelection){
   return window.getSelection().toString();
 }
 else if(document.getSelection){
   return document.getSelection();
 }
 else if(document.selection){
   return document.selection.createRange().text;
 }
};
// plugin defaults
$.fn.bigTarget.defaults = {
 hoverClass  : 'hover',
 clickZone : 'div:eq(0)',
 title   : true
};
//end of closure
})(jQuery);
