// 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    : 'li:eq(0)',
        title        : true
    };
// end of closure
})(jQuery);

$(document).ready(function(){
    $("ol.bigTarget h4 a").bigTarget();
});
