/*
 * This is part of the JiFR 0.54beta3 package
 * (c) 2009 J.B. van der Burgh
 * 
 * This product is currently in beta. 
 * Use this product at your own risk.
 *
 */
/*
 * $Id: jquery-jifr.js 2753 2009-05-24 16:08:24Z nxt $
 * 
 * JiFR 0.54beta3, a sIFR alternative
 * Requires: jQuery 1.3+
 *           swfobject 2.1+
 *
 * (c) J.B. van der Burgh
 */
(function(z,u,t,Q){var P=" .",f="#",M=".",J='"',o="jQuery.jifr.",j="]",l="false",i=",",g="",N='", ',p="color",K="{",k="true",O="html",I="}",n="undefined",R="0.54beta3",B={logFlash:false,logFunction:"console.log",resizeMode:"both",rollbackOnError:false,autoGenerateCSS:true,fontSize:12,swf:false,color:"#000000",bgColor:"#FFFFFF",wmode:"windowless",multiline:true,wordwrap:false,antiAliasType:"default",minFlashVersion:"9.0.18",detectColors:true,embeddedFont:true,condenseWhitespace:true},c="swf:created",C="swf:removed",a=z.swfobject,F={},S={},y=0,r=new Q(),x="jifr-",q=x+"replaced",s=x+"flash",T=x+"alternate",A=x+"active",w=/rgb\((\d+)\s*\,\s*(\d+)\s*\,\s*(\d+)\s*\)\s*/,v=/\#([A-F0-9]{6,6})/,H=false;function d(W){var V=Number(W).toString(16);if(V.length<2){return"0"+V}return V}function h(X,W){var V=W;if(X==g){return W}if(S[X]&&S[X]!=g){return S[X]}if(X&&X!=g){m=w.exec(X);if(m==null){m=v.exec(X);if(m!=null&&m.length==2){V=f+m[1]}S[X]=V}else{if(m.length>3){V=f+d(parseInt(m[1]))+g+d(parseInt(m[2]))+g+d(parseInt(m[3]));S[X]=V}}}return V}function b(V){var W=F[V];if(typeof W!=n){return W}F[V]=a.hasFlashPlayerVersion(V);return F[V]}function G(aa){var X,Z,W,V,Y;if(H){Z=b(aa.minFlashVersion)&&typeof(a)!=n;if(Z){_jqueryWindowObj=z(O);if(!_jqueryWindowObj.hasClass(A)){_jqueryWindowObj.addClass(A)}}return Z}if(!a){a=z.swfobject;if(!a&&typeof(swfobject)!=n){a=swfobject}}if(!a){return false}Y=b(aa.minFlashVersion);H=true;if(!Y){return false}z(O).addClass(A);if(B.autoGenerateCSS){V=z("head");if(V.length==0){return}X='<style type="text/css"> ';X+=M+A+P+q+P+T+" { \n";X+="\t display:none;\n";X+="} ";X+="</style>\n";W=V.children();if(W.length==0){V.html(X)}else{z(L(W)).after(X)}}return true}function e(V){if(V&&V.length>0){return V.get(0)}return false}function L(V){if(V&&V.length>0){return V.get(V.length-1)}return false}function E(){return z.jifr.events}function U(V){var X,Y,W;X=z(f+V);if(X.length>0){X.css("display","none");Y=X.parent(M+q);W=Y.children(M+T);W.after(W.html());W.remove();X.parent().removeClass(q);z(f+V).remove()}}z.jifr={version:R,log:function(V){},init:function(V){B=z.extend({},B,V)},getDefaults:function(){return B},callback:function(W,Y,V){var X=e(z(f+W));if(X){X.height=V;X.width=Y}}};z.jifr.rollback=function(W){var X,V=new Q(),Y=E();if(!W){for(X=0;X<r.length;X++){U(r[X]);if(Y){Y.dispatchEvent(C,r[X])}}z(O).removeClass(A)}else{U(W);if(Y){Y.dispatchEvent(C,W)}for(X=0;X<r.length;X++){if(r[X]!=W){V[V.length]=r[X]}}}r=V};z.fn.jifr=function(W){var X,Z,V,Y=z.extend({},B,W);if(!Y.swf){return z(this)}if(!G(Y)){return}Y.color=new String(g+Y.color);if(Y.color.indexOf(f)==0){Y.color="0x"+Y.color.substring(1)}Z=t.round(t.random()*10000+1000);X=new Q();V=this.each(function(){var aa=z(this);X[X.length]=D(Z,aa,Y)});V.jifrIdArray=X;return V};function D(ai,W,ab){if(W.length<1){return}if(W.hasClass(q)){return}var an,af,am,ag,ap=E(),Z=W.width(),aj=W.height(),ak=W.html(),ae=((z.fn.jifr_xhtml)?W.jifr_xhtml():ak),ad="jifr_replaced_"+ai+"_"+y,aa=ad+"swf",ac,ao,X,V;y++;r[r.length]=aa;if(ab.detectColors){am=g+W.css(p);ab.color=h(am,ab.color)}W.addClass(q);function al(av,au,aq,at){if(at){for(var ar=0;ar<aq.length;ar++){if(av[aq[ar]]){au[aq[ar]]=((av[aq[ar]])?k:l)}}}else{for(var ar=0;ar<aq.length;ar++){if(av[aq[ar]]){au[aq[ar]]=u(av[aq[ar]])}}}}ak='<span class="'+T+'">'+ak+"</span>";W.html('<span id="'+ad+'"></span>'+ak);ac={id:(aa),elementWidth:Z,elementHeight:aj,callback:(o+"callback"),rollback:(o+"rollback"),log:((ab.logFlash)?k:l),condenseWhite:(ab.condenseWhitespace?k:l),html:u(ae)};al(ab,ac,["sharpness","thickness","cssURL","resizeMode",p,"fontSize","antiAliasType","logFunction"],false);al(ab,ac,["multiline","wordwrap","embeddedFont","rollbackOnError"],true);if(typeof(ab.externalFonts)=="object"){function Y(aq){if(!aq){return}var au,av;au=K;au+=' "url" : "'+aq.url+N;au+=' "name" : "'+aq.name+N;au+='"fonts" : [ ';for(var at=0;at<aq.fonts.length;at++){av=aq.fonts[at];if(at>0){au+=i}au+=K;au+=' "className" : "'+av.className+'" ';if(av.fields&&av.fields.length>0){au+=', "fields" : [';for(var ar=0;ar<av.fields.length;ar++){if(ar>0){au+=i}au+=J+av.fields[ar]+J}au+=j}au+=I}au+=g;au+=j;au+=I;return au}an=g;if(ab.externalFonts.length&&ab.externalFonts.length>0){an="[";for(var ah=0;ah<ab.externalFonts.length;ah++){if(ah>0){an+=i}an+=Y(ab.externalFonts[ah])}an+=j}else{an=Y(ab.externalFonts)}ac.externalFonts=u(an)}ao={menu:l,scale:"noScale",allowFullscreen:l,allowScriptAccess:"always",bgcolor:ab.bgColor,align:"tl",wmode:ab.wmode};X={id:aa,"class":s};if(ap){ap.dispatchEvent(c,aa)}a.embedSWF(ab.swf,ad,Z,aj,ab.minFlashVersion,g,ac,ao,X);return aa}})(jQuery,((encodeURIComponent)?encodeURIComponent:escape),Math,Array);