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