jQuery.fn.highlightFade=function(a){var b=a&&a.constructor==String?{start:a}:a||{},c=jQuery.highlightFade.defaults,e=b.interval||c.interval,d=b.attr||c.attr;a={linear:function(f,h,i,g){return parseInt(f+g/i*(h-f))},sinusoidal:function(f,h,i,g){return parseInt(f+Math.sin(g/i*90*(Math.PI/180))*(h-f))},exponential:function(f,h,i,g){return parseInt(f+Math.pow(g/i,2)*(h-f))}};var j=b.iterator&&b.iterator.constructor==Function?b.iterator:a[b.iterator]||a[c.iterator]||a.linear;if(c.iterator&&c.iterator.constructor==
Function)j=c.iterator;return this.each(function(){if(!this.highlighting)this.highlighting={};var f=this.highlighting[d]?this.highlighting[d].end:jQuery.highlightFade.getBaseValue(this,d)||[255,255,255],h=jQuery.highlightFade.getRGB(b.start||b.colour||b.color||c.start||[255,255,128]),i=jQuery.speed(b.speed||c.speed),g=b["final"]||this.highlighting[d]&&this.highlighting[d].orig?this.highlighting[d].orig:jQuery.curCSS(this,d);if(b.end||c.end)g=jQuery.highlightFade.asRGBString(f=jQuery.highlightFade.getRGB(b.end||
c.end));if(typeof b["final"]!="undefined")g=b["final"];this.highlighting[d]&&this.highlighting[d].timer&&window.clearInterval(this.highlighting[d].timer);this.highlighting[d]={steps:i.duration/e,interval:e,currentStep:0,start:h,end:f,orig:g,attr:d};jQuery.highlightFade(this,d,b.complete,j)})};
jQuery.highlightFade=function(a,b,c,e){a.highlighting[b].timer=window.setInterval(function(){var d=e(a.highlighting[b].start[0],a.highlighting[b].end[0],a.highlighting[b].steps,a.highlighting[b].currentStep),j=e(a.highlighting[b].start[1],a.highlighting[b].end[1],a.highlighting[b].steps,a.highlighting[b].currentStep),f=e(a.highlighting[b].start[2],a.highlighting[b].end[2],a.highlighting[b].steps,a.highlighting[b].currentStep);jQuery(a).css(b,jQuery.highlightFade.asRGBString([d,j,f]));if(a.highlighting[b].currentStep++>=
a.highlighting[b].steps){jQuery(a).css(b,a.highlighting[b].orig||"");window.clearInterval(a.highlighting[b].timer);a.highlighting[b]=null;c&&c.constructor==Function&&c.call(a)}},a.highlighting[b].interval)};jQuery.highlightFade.defaults={start:[255,255,128],interval:50,speed:400,attr:"backgroundColor"};
jQuery.highlightFade.getRGB=function(a,b){var c;if(a&&a.constructor==Array&&a.length==3)return a;return(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(a))?[parseInt(c[1]),parseInt(c[2]),parseInt(c[3])]:(c=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(a))?[parseFloat(c[1])*2.55,parseFloat(c[2])*2.55,parseFloat(c[3])*2.55]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(a))?[parseInt("0x"+c[1]),parseInt("0x"+
c[2]),parseInt("0x"+c[3])]:(c=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(a))?[parseInt("0x"+c[1]+c[1]),parseInt("0x"+c[2]+c[2]),parseInt("0x"+c[3]+c[3])]:jQuery.highlightFade.checkColorName(a)||b||null};jQuery.highlightFade.asRGBString=function(a){return"rgb("+a.join(",")+")"};
jQuery.highlightFade.getBaseValue=function(a,b,c){var e,d;c=c||false;d=b=b||jQuery.highlightFade.defaults.attr;do{e=jQuery(a).css(d||"backgroundColor");if(e!=""&&e!="transparent"||a.tagName.toLowerCase()=="body"||!c&&a.highlighting&&a.highlighting[b]&&a.highlighting[b].end)break;d=false}while(a=a.parentNode);if(!c&&a.highlighting&&a.highlighting[b]&&a.highlighting[b].end)e=a.highlighting[b].end;if(e==undefined||e==""||e=="transparent")e=[255,255,255];return jQuery.highlightFade.getRGB(e)};
jQuery.highlightFade.checkColorName=function(a){if(!a)return null;switch(a.replace(/^\s*|\s*$/g,"").toLowerCase()){case "aqua":return[0,255,255];case "black":return[0,0,0];case "blue":return[0,0,255];case "fuchsia":return[255,0,255];case "gray":return[128,128,128];case "green":return[0,128,0];case "lime":return[0,255,0];case "maroon":return[128,0,0];case "navy":return[0,0,128];case "olive":return[128,128,0];case "purple":return[128,0,128];case "red":return[255,0,0];case "silver":return[192,192,192];
case "teal":return[0,128,128];case "white":return[255,255,255];case "yellow":return[255,255,0]}};
