//////////////////////////////////////////////////////////////////////////////////
// Lens Flare V1.0.0. a jQuery plugin.
// (c) 2010 by R Cecco. <http://www.professorcloud.com>
// MIT License
//
// Please retain this copyright header in all versions of the software
//////////////////////////////////////////////////////////////////////////////////
(function($){function Flare(f,g){this.flares=[];this.hidden=false;this.lightSource=f;this.flaresData=g;f.data('LensFlare',this);this.update=function(){var a=this.lightSource.position().left+this.lightSource.width()/2;var b=this.lightSource.position().top+this.lightSource.height()/2;var c=this.lightSource.parent();var d=new Vector2d((c.width()/2)-a,(c.height()/2)-b);var e=d.normalise()*2;for(var i=0;i<this.flares.length;i++){var v=new Vector2d(d);v.mul(this.flares[i].offset*e);this.flares[i].img.css('left',(v.vx+a-this.flares[i].halfWidth)+'px');this.flares[i].img.css('top',(v.vy+b-this.flares[i].halfHeight)+'px')}};this.show=function(){if(!this.hidden){return}this.hidden=false;for(var i=0;i<this.flares.length;i++){this.flares[i].img.css('display','block')}};this.hide=function(){if(this.hidden){return}this.hidden=true;for(var i=0;i<this.flares.length;i++){this.flares[i].img.css('display','none')}};var h=function(a){var b=a.data;var c=this.width*this.scale;var d=this.height*this.scale;var e=b.lightSource.parent().append("<img style='position:absolute;' src='"+this.src+"'"+"width='"+c+"'"+"height='"+d+"'"+"/>").find(':last');if(b.hidden){e.css('display','none')}b.flares.push({img:e,halfWidth:c/2,halfHeight:d/2,offset:this.offset});b.update()};for(var i=0;i<g.length;i++){var j=new Image();$(j).bind('load',this,h);j.scale=g[i].scale;j.offset=g[i].offset;j.src=g[i].src}}$.fn.LensFlareUpdate=function(){this.each(function(){$(this).data('LensFlare').update()})};$.fn.LensFlareShow=function(){this.each(function(){$(this).data('LensFlare').show()})};$.fn.LensFlareHide=function(){this.each(function(){$(this).data('LensFlare').hide()})};$.fn.LensFlare=function(a,b){var c=[];this.each(function(){b=$.extend({},{},b);c.push(new Flare($(this),a))});return this}})(jQuery);
