/*
 Color animation jQuery-plugin
 http://www.bitstorm.org/jquery/color-animation/
 Copyright 2011 Edwin Martin <edwin@bitstorm.org>
 Released under the MIT and GPL licenses.
*/
(function(d){
    function i(){
        var b=d("script:first"),a=b.css("color"),c=false;
        if(/^rgba/.test(a))c=true;else try{
            c=a!=b.css("color","rgba(0, 0, 0, 0.5)").css("color");
            b.css("color",a)
            }catch(e){}
            return c
        }
        function g(b,a,c){
        var e="rgb"+(d.support.rgba?"a":"")+"("+parseInt(b[0]+c*(a[0]-b[0]),10)+","+parseInt(b[1]+c*(a[1]-b[1]),10)+","+parseInt(b[2]+c*(a[2]-b[2]),10);
        if(d.support.rgba)e+=","+(b&&a?parseFloat(b[3]+c*(a[3]-b[3])):1);
        e+=")";
        return e
        }
        function f(b){
        var a,c;
        if(a=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(b))c=
            [parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16),1];
        else if(a=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(b))c=[parseInt(a[1],16)*17,parseInt(a[2],16)*17,parseInt(a[3],16)*17,1];
        else if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))c=[parseInt(a[1]),parseInt(a[2]),parseInt(a[3]),1];
        else if(a=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(b))c=[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10),parseFloat(a[4])];
        return c
        }
    d.extend(true,d,{
        support:{
            rgba:i()
            }
        });
var h=["color","backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","outlineColor"];
d.each(h,function(b,a){
    d.fx.step[a]=function(c){
        if(!c.init){
            c.a=f(d(c.elem).css(a));
            c.end=f(c.end);
            c.init=true
            }
            c.elem.style[a]=g(c.a,c.end,c.pos)
        }
    });
d.fx.step.borderColor=function(b){
    if(!b.init)b.end=f(b.end);
    var a=h.slice(2,6);
    d.each(a,function(c,e){
        b.init||(b[e]={
            a:f(d(b.elem).css(e))
            });
        b.elem.style[e]=g(b[e].a,b.end,b.pos)
        });
    b.init=true
    }
})(jQuery);

