/*
jquery.lazytooltiper
4/26/2010
v.1.0001
*/
(function($) {
$.fn.lazytooltiper=function(o){
       options = $.extend({}, defaults, o || {});
       return this.each(function(){

                    return new $.lazytool(this,options);
         });
};

$.lazytool=function(el,o) {
                   
    var dtip=$(o.div_to_show);         
   
    if (o.method=='hover'){
        $(el).hover(function(){
          position(dtip,$(el),'enter');
        },
        function(){
        return false;
        });
       }
       else
       {
        $(el).click(function(){
             position(dtip,$(el),'enter');
             return false;
            });
       }     
         $(o.close_button).click(function(){
              position(dtip,$(el),'out');    
              return false;         
        });
        if (o.close_anywhere){
                $(o.overlay).click(function(){
                       position(dtip,$(el),'out');    
                      return false; 
                });
        }
}
var defaults={
        default_info:'heading',
        offset_left:10,
        offset_top:0,
        div_to_show:'#locationlocationlocation',
        overlay:'#overlay',
        close_button:'#close-location',
        default_left:-1400,
        method:'click',
        default_top:300,
        close_anywhere:true
};
$lazytooltiper=$.fn.lazytooltiper;
function viewport(){
                return {
                    x: $(window).scrollLeft(),
                    y: $(window).scrollTop(),
                    cx: $(window).width(),
                    cy: $(window).height()
                };
            };
function position(t,el,action){
    
        var de = document.documentElement;
        var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
        var v=viewport();
                       
        if (action === 'enter')
        {           
                        
            var left=el.offset().left;
            var top=el.offset().top;
            var ov_width=$('body').css('width');
            var ov_height=$('body').css('height');
            $(options.overlay).css({width:ov_width,height:ov_height,opacity:0.6,display:'block',background: '#000',position: 'absolute',top:0,left:0});
               if (v.x + v.cx < left + t.outerWidth()) {
                    left =left - (left + t.outerWidth() -v.x-v.cx);
                    if (left<0||left<v.x)
                    {
                        left=v.x;
                    }
               }
               if (v.y + v.cy < top + t.outerHeight()) {
                   top=top-(top+t.outerHeight()-v.y-v.cy);
                    if (top<0||top<v.y)
                    {
                        top=v.y;
                    }
               }
                                  
                t.animate({left:left,top:top},500,function(){});   
        }
        else
        {
               $(options.overlay).css({display:'none'});    
            t.animate({left:options.default_left+'px',top:options.default_top+'px'});
        }
};
})(jQuery);