(function($){
    $.fn.sifr=function(prefs){
        var t=true,u=undefined,s,p;s=arguments.callee.prefs=arguments.callee.prefs||{
            asHex:function(x){
                var d=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];return isNaN(x)?'00':d[(x-x%16)/16]+d[x%16];
            },
            colors:{
                aqua:[0,255,255],
                azure:[240,255,255],
                beige:[245,245,220],
                black:[0,0,0],
                blue:[0,0,255],
                brown:[165,42,42],
                cyan:[0,255,255],
                darkblue:[0,0,139],
                darkcyan:[0,139,139],
                darkgrey:[169,169,169],
                darkgreen:[0,100,0],
                darkkhaki:[189,183,107],
                darkmagenta:[139,0,139],
                darkolivegreen:[85,107,47],
                darkorange:[255,140,0],
                darkorchid:[153,50,204],
                darkred:[139,0,0],
                darksalmon:[233,150,122],
                darkviolet:[148,0,211],
                fuchsia:[255,0,255],
                gold:[255,215,0],
                green:[0,128,0],
                indigo:[75,0,130],
                khaki:[240,230,140],
                lightblue:[173,216,230],
                lightcyan:[224,255,255],
                lightgreen:[144,238,144],
                lightgrey:[211,211,211],
                lightpink:[255,182,193],
                lightyellow:[255,255,224],
                lime:[0,255,0],
                magenta:[255,0,255],
                maroon:[128,0,0],
                navy:[0,0,128],
                olive:[128,128,0],
                orange:[255,165,0],
                pink:[255,192,203],
                purple:[128,0,128],
                violet:[128,0,128],
                red:[255,0,0],
                silver:[192,192,192],
                white:[255,255,255],
                yellow:[255,255,0],
                transparent:[255,255,255]
                },
            toHex:function(color){
                var rgb;if(!color){
                    return u;
                }return(rgb=color.match(/rgb\(([0-9]+),\s([0-9]+),\s([0-9]+)\)/))?'#'+this.asHex(rgb[1])+this.asHex(rgb[2])+this.asHex(rgb[3]):(rgb=this.colors[color])?'#'+this.asHex(rgb[0])+this.asHex(rgb[1])+this.asHex(rgb[2]):(color.length===4)?color.replace(/\#([0-9a-z])([0-9a-z])([0-9a-z])/,'#$1$1$2$2$3$3'):color;
            }
            };p=$.extend({},s,(prefs===false)?{
            unsifr:true
        }:prefs);if(p.save===t){
            arguments.callee.prefs=$.extend(p,{
                save:false
            });
        }if(this[0]===document){
            return;
        }if(!p.unsifr&&typeof p.before==='function'){
            p.before.apply(this,[p]);
        }this.each(function(){
            var ele=$(this),txt,alt,fir,embedOptions;fir=ele.children('.sIFR-alternate');if(fir){
                ele.html(fir.html());if(p.unsifr){
                    return;
                }
                }if(typeof p.beforeEach==='function'){
                p.beforeEach.apply(this,[t,p]);
            }fir=ele.addClass('sIFR-replaced').wrapInner('<span class="sIFR-alternate" style="position: relative; "></span>').children('.sIFR-alternate');alt=ele.append('<span class="sIFR-jquery" style="position: relative; ">'+$.trim(fir.text())+'</span>').children('.sIFR-jquery');txt=$.trim(fir.html()).replace(/(>)\s+|\s+(<)/g,'$1$2').replace(/(id|name)=[A-Za-z0-9]+/g,'');if(p.textTransform){
                p.textTransform=p.textTransform.toLowerCase();if(p.textTransform==='uppercase'){
                    txt=txt.toUpperCase();
                }if(p.textTransform==='lowercase'){
                    txt=txt.html().toLowerCase();
                }if(p.textTransform==='capitalize'){
                    var cap=txt.split(/(\s|\>)/);txt='';for(var i in cap){
                        txt+=cap[i].charAt(0).toUpperCase()+cap[i].substr(1);
                    }
                    }
                }txt=ele.attr('href')?'<a href="'+ele.attr('href')+'">'+txt+'</a>':txt;embedOptions={
                flashvars:$.extend({
                    h:alt.height()*(p.zoom||1),
                    offsetLeft:p.offsetLeft||u,
                    offsetTop:p.offsetTop||u,
                    textAlign:p.textAlign||ele.css('textAlign').match(/left|center|right/)||'center',
                    textColor:p.toHex(p.color||ele.css('color'))||u,
                    txt:p.content||txt,
                    underline:(p.underline===t||ele.css('textDecoration')==='underline')?t:u,
                    w:alt.width()*(p.zoom||1)
                    },p.flashvars),
                height:p.height||alt.height(),
                src:(p.path||'').replace(/([^\/])$/,'$1/')+(p.font||ele.css('fontFamily').replace(/^\s+|\s+$|,[\S|\s]+|'|"|(,)\s+/g,'$1')).replace(/([^\.][^s][^w][^f])$/,'$1.swf'),
                style:'margin: 0px 0px 0px; position: relative; vertical-align: text-top;',
                width:p.width||alt.width(),
                wmode:'transparent'
            };embedOptions.flashvars.linkColor=p.toHex(p.link||ele.find('a').css('color'))||embedOptions.flashvars.textColor;embedOptions.flashvars.hoverColor=p.toHex(p.hover)||embedOptions.flashvars.linkColor;if(p.zoom){
                embedOptions.flashvars.offsetTop=((p.offsetTop||0)+((alt.height()-(alt.height()*p.zoom))/2))*(p.zoomTop||1);embedOptions.flashvars.offsetLeft=((p.offsetLeft||0)+((alt.width()-(alt.width()*p.zoom))/2))*(p.zoomLeft||1);
            }$().flash($.extend(embedOptions,p.embedOptions),$.extend({
                expressInstall:p.expressInstall||false,
                version:p.version||7,
                update:p.update||false
                },p.pluginOptions),function(options){
                fir.attr('style','visibility: hidden;');alt.remove();ele.prepend($.fn.flash.transform(options));
            });if(typeof p.afterEach==='function'){
                p.afterEach.apply(this,[t,p]);
            }
            });if(!p.unsifr&&typeof p.after==='function'){
            p.after.apply(this,[p]);
        }
        };$.fn.unsifr=function(){
        return this.each(function(){
            $(this).sifr(false);
        });
    };$.sifr=function(prefs){
        $(document).sifr($.extend({
            save:true
        },prefs));
    };$.sifr();
})(jQuery);