 /* Copyright (c) 2008 Kean Loong Tan http://www.gimiti.com/kltan
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * Copyright notice and license must remain intact for legal use
 * jFade
 * Version: 1.0 (Jun 30, 2008)
 * Requires: jQuery 1.2.6+
 * Original Code Copyright (c) 2008 by Michael Leigeber
 * Website: http://www.leigeber.com */
(function($){$.fn.jFade=function(options,useBitmap,bitmap){var opts=$.extend({},$.fn.jFade.defaults,options);var startrgb,endrgb,er,eg,eb,rint,gint,bint,step;var target=this;var init=function(){var tgt=target;opts.steps=opts.steps||20;opts.duration=opts.duration||20;clearInterval(tgt.timer);endrgb=colorConv(opts.end);er=endrgb[0];eg=endrgb[1];eb=endrgb[2];if(!tgt.r){startrgb=colorConv(opts.start);r=startrgb[0];g=startrgb[1];b=startrgb[2];tgt.r=r;tgt.g=g;tgt.b=b}rint=Math.round(Math.abs(tgt.r-er)/opts.steps);gint=Math.round(Math.abs(tgt.g-eg)/opts.steps);bint=Math.round(Math.abs(tgt.b-eb)/opts.steps);if(rint==0){rint=1}if(gint==0){gint=1}if(bint==0){bint=1}tgt.step=1;tgt.timer=setInterval(function(){animateColor(tgt,opts.property,opts.steps,er,eg,eb,rint,gint,bint)},opts.duration);function animateColor(obj,property,steps,er,eg,eb,rint,gint,bint){var tgt=obj;var color;if(tgt.step<=steps){var r=tgt.r;var g=tgt.g;var b=tgt.b;if(r>=er){r=r-rint}else{r=parseInt(r)+parseInt(rint)}if(g>=eg){g=g-gint}else{g=parseInt(g)+parseInt(gint)}if(b>=eb){b=b-bint}else{b=parseInt(b)+parseInt(bint)}color='rgb('+r+','+g+','+b+')';if(useBitmap==true){$(obj).css(property,color+' '+bitmap)}else{$(obj).css(property,color)}tgt.r=r;tgt.g=g;tgt.b=b;tgt.step=tgt.step+1}else{clearInterval(tgt.timer);color='rgb('+er+','+eg+','+eb+')';if(useBitmap==true){$(obj).css(property,color+' '+bitmap)}else{$(obj).css(property,color)}}}function colorConv(color){var rgb=[parseInt(color.substring(0,2),16),parseInt(color.substring(2,4),16),parseInt(color.substring(4,6),16)];return rgb}};if(opts.trigger=="load")init();else $(this).bind(opts.trigger,function(){target=this;init()});return this};$.fn.jFade.defaults={trigger:"load",property:'background',start:'FFFFFF',end:'000000',steps:5,duration:30}})(jQuery);