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