var FLIR={version:"1.2",options:{path:"",classnameIgnore:false,findEmbededFonts:false,ignoredElements:"BR,HR,IMG,INPUT,SELECT"},onreplacing:null,onreplaced:null,onreplacingchild:null,onreplacedchild:null,flirElements:{},flirPlugins:[],isCraptastic:true,isIE:true,defaultStyle:null,classStyles:{},embededFonts:{},dpi:96,init:function(a,b){if(this.isFStyle(a)){this.defaultStyle=a}else{if(typeof a!="undefined"){this.loadOptions(a)}if(typeof b=="undefined"){this.defaultStyle=new FLIRStyle()}else{if(this.isFStyle(b)){this.defaultStyle=b}else{this.defaultStyle=new FLIRStyle(b)}}}this.calcDPI();if(this.options.findEmbededFonts){this.discoverEmbededFonts()}this.isIE=(navigator.userAgent.toLowerCase().indexOf("msie")>-1&&navigator.userAgent.toLowerCase().indexOf("opera")<0);this.isCraptastic=(typeof document.body.style.maxHeight=="undefined");if(this.isIE){this.flirIERepObj=[];this.flirIEHovEls=[];this.flirIEHovStyles=[]}FLIR._call_plugin("init",arguments)},loadOptions:function(a){for(var b in a){this.options[b]=a[b]}},installPlugin:function(a){this.flirPlugins.push(a)},_call_plugin:function(d,c){var a=c;for(var b=0;b<this.flirPlugins.length;b++){if(typeof this.flirPlugins[b][d]=="function"){var e=this.flirPlugins[b][d](a);if(typeof e=="undefined"){continue}if(typeof e=="boolean"&&e==false){return false}if(typeof e!="boolean"){a=c}}}var a=typeof a!="object"?[a]:a;if(a.length&&a[0]&&a[0].callee){return a[0]}else{return a}},auto:function(c){if(!(args=FLIR._call_plugin("auto",arguments))){return}c=args[0];var a=typeof c=="undefined"?["h1","h2","h3","h4","h5"]:(c.indexOf&&c.indexOf(",")>-1?c.split(","):c);var d;for(var b=0;b<a.length;b++){d=this.getElements(a[b]);if(d.length>0){this.replace(d)}}},hover:function(l){var b=FLIR.evsrc(l);var n=b;var r=b.flirHasHover;var j=b;var m=(l.type=="mouseover");while(b!=document.body&&!b.flirMainObj){b=FLIR.getParentNode(b);if(!r){r=b.flirHasHover;j=b}}if(b==document.body){return}var c=FLIR.getFStyle(b);if(m&&c!=c.hoverStyle){c=c.hoverStyle}if(!(args=FLIR._call_plugin("hover",[m,n,b,j]))){return}m=args[0];n=args[1];b=args[2];j=args[3];var k=FLIR.getChildren(j);if(k.length==0||(k.length==1&&(k[0].flirImage||k[0].flirHasHover))){k=[j]}else{if(k.length==1&&!FLIR.isIgnoredElement(k[0])){var f=FLIR.getChildren(k[0]);if(f.length>0){if((f.length==1&&!f[0].flirImage)||f.length>1){k=f}}}}var p;for(var h=0;h<k.length;h++){p=k[h];if(p.nodeName=="IMG"){continue}if(!p.innerHTML){continue}if(FLIR.isIE){var q=FLIR.flirIEHovEls.length;FLIR.flirIERepObj[q]=p;FLIR.flirIEHovStyles[q]=c;if(!FLIR.isCraptastic){if(c.useBackgroundMethod&&FLIR.getStyle(p,"display")=="block"){FLIR.flirIEHovEls[q]=p;setTimeout("FLIR.flirIERepObj["+q+'].style.background = "url("+('+m+" ? FLIR.flirIEHovStyles["+q+"].generateURL(FLIR.flirIERepObj["+q+"]) : FLIR.flirIERepObj["+q+'].flirOrig)+") no-repeat";',0)}else{FLIR.flirIEHovEls[q]=p.flirImage?p:FLIR.getChildren(p)[0];if(!FLIR.flirIEHovEls[q].flirOrigWidth){FLIR.flirIEHovEls[q].flirOrigWidth=FLIR.flirIEHovEls[q].width;FLIR.flirIEHovEls[q].flirOrigHeight=FLIR.flirIEHovEls[q].height}var d="FLIR.flirIEHovEls["+q+"].src = "+m+" ? FLIR.flirIEHovStyles["+q+"].generateURL(FLIR.flirIERepObj["+q+"], FLIR.flirIEHovEls["+q+"].alt) : FLIR.flirIERepObj["+q+"].flirOrig;";d+="FLIR.flirIEHovEls["+q+"].onload = function() { ";if(m&&!FLIR.flirIEHovEls[q].flirHoverWidth){d+="        FLIR.flirIEHovEls["+q+"].flirHoverWidth = this.width; ";d+="        FLIR.flirIEHovEls["+q+"].flirHoverHeight = this.height; "}d+="    this.style.width = FLIR.flirIEHovEls["+q+"]."+(m?"flirHoverWidth":"flirOrigWidth")+'+"px"; ';d+="    this.style.height = FLIR.flirIEHovEls["+q+"]."+(m?"flirHoverHeight":"flirOrigHeight")+'+"px"; ';d+="}; ";setTimeout(d,0)}}else{FLIR.flirIEHovEls[q]=p.flirImage?p:FLIR.getChildren(p)[0];setTimeout("  FLIR.flirIEHovEls["+q+"].style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"'+FLIR.flirIEHovStyles["+q+"].generateURL(FLIR.flirIERepObj["+q+"], FLIR.flirIEHovEls["+q+'].alt)+\'", sizingMethod="image")\';  ',0)}}else{if(c.useBackgroundMethod&&FLIR.getStyle(p,"display")=="block"){var a=p.flirHoverURL?p.flirHoverURL:c.generateURL(p);p.style.background="url("+(m?a:p.flirOrig)+") no-repeat"}else{var g=p.flirImage?p:FLIR.getChildren(p)[0];var a=p.flirHoverURL?p.flirHoverURL:c.generateURL(p,g.alt);g.src=m?a:p.flirOrig}}}},addHover:function(a){if(!(args=FLIR._call_plugin("addHover",arguments))){return}a=args[0];a.flirHasHover=true;if(a.addEventListener){a.addEventListener("mouseover",FLIR.hover,false);a.addEventListener("mouseout",FLIR.hover,false)}else{if(a.attachEvent){a.attachEvent("onmouseover",function(){FLIR.hover(window.event)});a.attachEvent("onmouseout",function(){FLIR.hover(window.event)})}}},prepare:function(e){if(!(args=FLIR._call_plugin("prepare",arguments))){return}e=args[0];if(e&&e.hasChildNodes()&&e.childNodes.length>1){for(var b in e.childNodes){var d=e.childNodes[b];if(d&&d.nodeType==3){var c=document.createElement("SPAN");c.style.margin=c.style.padding=c.style.border="0px";c.className="flir-span";c.flirSpan=true;var a=d.nodeValue.replace(/[\t\n\r]/g," ").replace(/\s\s+/g," ");c.innerHTML=!FLIR.isIE?a:d.nodeValue.replace(/^\s+|\s+$/g,"&nbsp;");e.replaceChild(c,d)}}}},replace:function(c,b){if(!(args=FLIR._call_plugin("replace",arguments))){return}c=args[0];b=args[1];if(!c||c.flirReplaced){return}if(!this.isFStyle(b)){b=this.getFStyle(c)}if(typeof c=="string"){c=this.getElements(c)}if(typeof c.length!="undefined"){if(c.length==0){return}for(var a=0;a<c.length;a++){this.replace(c[a],b)}return}if(typeof FLIR.onreplacing=="function"){c=FLIR.onreplacing(c,b)}c.flirMainObj=true;this.setFStyle(c,b);this.saveObject(c);if(this.options.findEmbededFonts&&typeof this.embededFonts[b.getFont(c)]!="undefined"){return}FLIR.prepare(c);this._replace_tree(c,b);if(typeof FLIR.onreplaced=="function"){FLIR.onreplaced(c,b)}},_replace_tree:function(e,c){if(typeof __flir_replacetree_recurse=="undefined"){__flir_replacetree_recurse=1}else{__flir_replacetree_recurse++}if(__flir_replacetree_recurse>1000){console.error("Facelift: Too much recursion.");return}var d=!e.hasChildNodes()||(e.hasChildNodes()&&e.childNodes.length==1&&e.childNodes[0].nodeType==3)?[e]:e.childNodes;var a;for(var b=0;b<d.length;b++){a=d[b];if(typeof FLIR.onreplacingchild=="function"){a=FLIR.onreplacingchild(a,c)}if(!a.innerHTML||a.nodeType!=1){continue}if(FLIR.isIgnoredElement(a)){continue}if(a.flirReplaced){continue}if(a.nodeName=="A"&&!a.flirHasHover){FLIR.addHover(a)}if(a.hasChildNodes()&&(a.childNodes.length>1||a.childNodes[0].nodeType!=3)){FLIR.prepare(a);FLIR._replace_tree(a,c);continue}if(a.innerHTML==""){continue}if(!FLIR.isCraptastic){if(c.useBackgroundMethod){FLIR.replaceMethodBackground(a,c)}else{FLIR.replaceMethodOverlay(a,c)}}else{FLIR.replaceMethodCraptastic(a,c)}a.className+=" flir-replaced";a.flirReplaced=true;if(typeof FLIR.onreplacedchild=="function"){FLIR.onreplacedchild(e,c)}}},replaceMethodBackground:function(e,d){if(!(args=FLIR._call_plugin("replaceMethodBackground",arguments))){return}e=args[0];d=args[1];var c=this.saveObject(e);var a=d.generateURL(e);if(FLIR.getStyle(e,"display")!="block"){e.style.display="block"}var b=new Image();b.onload=function(){FLIR.flirElements[c].style.width=this.width+"px";FLIR.flirElements[c].style.height=this.height+"px";if(d!=d.hoverStyle){var f=new Image();e.flirHoverURL=f.src=d.hoverStyle.generateURL(e)}};b.src=a;e.style.background='url("'+a.replace(/ /g,"%20")+'") no-repeat';e.flirOrig=a;e.oldTextIndent=e.style.textIndent;e.style.textIndent="-9999px"},replaceMethodOverlay:function(d,c){if(!(args=FLIR._call_plugin("replaceMethodOverlay",arguments))){return}d=args[0];c=args[1];var b=this.saveObject(d);var a=document.createElement("IMG");a.alt=this.sanitizeHTML(d.innerHTML);if(c!=c.hoverStyle){a.onload=function(){var e=new Image();d.flirHoverURL=e.src=c.hoverStyle.generateURL(d,a.alt)}}if(a.onerror){a.onerror=function(){var e=document.createElement("SPAN");e.innerHTML=a.alt;try{d.replaceChild(e,a)}catch(f){}}}a.flirImage=true;a.className="flir-image";a.src=c.generateURL(d);a.style.border="none";d.flirOrig=a.src;d.innerHTML="";d.appendChild(a)},replaceMethodCraptastic:function(e,d){if(!(args=FLIR._call_plugin("replaceMethodCraptastic",arguments))){return}e=args[0];d=args[1];var c=this.saveObject(e);var b=d.generateURL(e);var a=document.createElement("IMG");a.alt=this.sanitizeHTML(e.innerHTML);if(d!=d.hoverStyle){a.onload=function(){var f=new Image();e.flirHoverURL=f.src=d.hoverStyle.generateURL(e,a.alt)}}a.flirImage=true;a.className="flir-image";a.src=this.options.path+"spacer.png";a.style.width=e.offsetWidth+"px";a.style.height=e.offsetHeight+"px";a.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+b+'", sizingMethod="image")';e.flirOrig=b;e.innerHTML="";e.appendChild(a)},saveObject:function(a){if(typeof a.flirId=="undefined"){a.flirId=this.getUID();this.flirElements[a.flirId]=a}return a.flirId},getUID:function(){var b="flir-";var c=b+Math.random().toString().split(".")[1];var a=0;while(typeof this.flirElements[c]!="undefined"){if(a>100000){console.error("Facelift: Unable to generate unique id.")}c=b+Math.random().toString().split(".")[1];a++}return c},getElements:function(r){if(!(args=FLIR._call_plugin("getElements",arguments))){return}switch(args.length){case 1:r=args[0];break;case 2:return args[0];break}var q=[];if(document.querySelectorAll){var e=false;try{q=document.querySelectorAll(r);e=true}catch(f){e=false}if(e){return q}}var i,n,l,j,r,d,h,o,k;d=r;o=false;if(d.indexOf(" ")>-1){var g=d.split(" ");d=g[0];o=g[1]}else{if(d[0]=="#"){return document.getElementById(d.substr(1))}}var c=false;if(d.indexOf("#")>-1){c=d.split("#")[1];r=d.split("#")[0]}var m=false;if(d.indexOf(".")>-1){m=d.split(".")[1];r=d.split(".")[0]}i=document.getElementsByTagName(r);for(var a=0;a<i.length;a++){if(i[a].nodeType!=1){continue}h=false;l=i[a].className?i[a].className:"";if(c&&i[a].id&&i[a].id==c){h=true}if(m&&FLIR.hasClass(i[a],m)){h=true}if(!c&&!m){h=true}if(!h){continue}if(this.options.classnameIgnore&&l.indexOf(this.options.classnameIgnore)>-1){continue}n=false!=o?i[a].getElementsByTagName(o):[i[a]];for(var b=0;b<n.length;b++){k=n[b];if(this.options.classnameIgnore&&k.className&&k.className.indexOf(this.options.classnameIgnore)>-1){continue}q.push(k)}}return q},discoverEmbededFonts:function(){this.embededFonts={};for(var c in document.styleSheets){if(!document.styleSheets[c].cssRules){continue}for(var d in document.styleSheets[c].cssRules){if(!document.styleSheets[0].cssRules[d]){continue}var e=document.styleSheets[0].cssRules[d];if(e.type&&e.type==e.FONT_FACE_RULE){var a=e.style.getPropertyValue("src").match(/url\("?([^"\)]+\.[ot]tf)"?\)/i)[1];var b=e.style.getPropertyValue("font-family");if(b.indexOf(",")){b=b.split(",")[0]}b=b.replace(/['"]/g,"").toLowerCase();if(b!=""&&a!=""){this.embededFonts[b]=a}}}}},getStyle:function(a,c){if(a.currentStyle){if(c.indexOf("-")>-1){c=c.split("-")[0]+c.split("-")[1].substr(0,1).toUpperCase()+c.split("-")[1].substr(1)}var b=a.currentStyle[c]}else{if(window.getComputedStyle){var b=document.defaultView.getComputedStyle(a,"").getPropertyValue(c)}}return b},getChildren:function(c){var b=[];if(c&&c.hasChildNodes()){for(var a in c.childNodes){if(c.childNodes[a]&&c.childNodes[a].nodeType==1){b[b.length]=c.childNodes[a]}}}return b},getParentNode:function(b){var a=b.parentNode;while(a!=document&&a.nodeType!=1){a=a.parentNode}return a},hasClass:function(a,b){return(a&&a.className&&a.className.indexOf(b)>-1)},evsrc:function(a){var b;if(a.target){b=a.target}else{if(a.srcElement){b=a.srcElement}}if(b.nodeType==3){b=b.parentNode}return b},calcDPI:function(){if(screen.logicalXDPI){var a=screen.logicalXDPI}else{var c="flir-dpi-div-test";if(document.getElementById(c)){var b=document.getElementById(c)}else{var b=document.createElement("DIV");b.id=c;b.style.position="absolute";b.style.visibility="hidden";b.style.border=b.style.padding=b.style.margin="0";b.style.left=b.style.top="-1000px";b.style.height=b.style.width="1in";document.body.appendChild(b)}var a=b.offsetHeight}this.dpi=parseInt(a)},isIgnoredElement:function(b,a){return((","+this.options.ignoredElements).indexOf(","+b.nodeName)>-1)},sanitizeHTML:function(a){return a.replace(/<[^>]+>/g,"")},getFStyle:function(c,b){var a=this.getClassStyle(c);if(this.isFStyle(a)){b=a}if(this.isFStyle(b)){return b}else{if(this.isFStyle(c.flirStyle)){return c.flirStyle}else{return this.defaultStyle}}},setFStyle:function(b,a){b.flirStyle=a},isFStyle:function(a){if(!a){return false}return(a.toString()=="[FLIRStyle Object]")},addClassStyle:function(b,a){if(this.isFStyle(a)){this.classStyles[b]=a}},getClassStyle:function(d){if(!(args=FLIR._call_plugin("getClassStyle",arguments))){return}switch(args.length){case 1:d=args[0];break;case 2:return args[0];break}var e=d.className;if(this.classStyles.length==0||typeof e=="undefined"||e==""){return false}var b=e.split(" ");for(var a in this.classStyles){for(var c=0;c<b.length;c++){if(b[c]==a){return this.classStyles[a]}}}return false}};function FLIRStyle(a){this.useBackgroundMethod=false;this.inheritStyle=true;this.useExtendedStyles=false;this.hoverStyle=(arguments[1]&&FLIR.isFStyle(arguments[1]))?arguments[1]:this;this.options={mode:"wrap",output:"auto",cSize:null,cColor:null,cFont:null,realFontHeight:false,dpi:96};this.cssStyles={"background-color":"Background",color:"Color","font-family":"Font","font-size":"Size","letter-spacing":"Spacing","line-height":"Line","text-align":"Align","text-transform":"Transform"};this.extendedStyles={"font-stretch":"Stretch","font-style":"FontStyle","font-variant":"Variant","font-weight":"Weight",opacity:"Opacity","text-decoration":"Decoration"};for(var b in a){if(b.indexOf("css")==0){b="c"+b.substr(3)}if(typeof this[b]!="undefined"){this[b]=a[b]}else{this.options[b]=a[b]}}this.options.dpi=FLIR.dpi;if(this.useExtendedStyles){for(var b in this.extendedStyles){this.cssStyles[b]=this.extendedStyles[b]}}for(var b=0;b<FLIR.flirPlugins.length;b++){if(FLIR.flirPlugins[b].FLIRStyleExtend&&typeof FLIR.flirPlugins[b].FLIRStyleExtend.init){FLIR.flirPlugins[b].FLIRStyleExtend.init.call(this)}}}FLIRStyle.prototype.generateURL=function(c){var b=(arguments[1]?arguments[1]:c.innerHTML);var a=this.options.cTransform;if(a==null){a=FLIR.getStyle(c,"text-transform")}switch(a){case"capitalize":b=b.replace(/\w+/g,function(d){return d.charAt(0).toUpperCase()+d.substr(1).toLowerCase()});break;case"lowercase":b=b.toLowerCase();break;case"uppercase":b=b.toUpperCase().replace(/&[a-z0-9]+;/gi,function(d){return d.toLowerCase()});break}b=encodeURIComponent(b.replace(/&/g,"{amp}").replace(/\+/g,"{plus}"));if(FLIR.isCraptastic){b=escape(b)}return FLIR.options.path+"generate.php?text="+b+"&h="+c.offsetHeight+"&w="+c.offsetWidth+"&fstyle="+this.serialize(c)};FLIRStyle.prototype.buildURL=function(e,d,a,c){var b=encodeURIComponent(e.replace(/&/g,"{amp}").replace(/\+/g,"{plus}"));return FLIR.options.path+"generate.php?text="+b+"&h="+(c?c:"200")+"&w="+(a?a:"800")+"&fstyle="+(d?this.serialize(d):this.serialize())};FLIRStyle.prototype.serialize=function(e){var d="";var b=this.copyObject(this.options);if(e&&this.inheritStyle){for(var c in this.cssStyles){var a=this.cssStyles[c];if(this.options["c"+a]==null||a=="Size"){this.options["c"+a]=this.get(e,c,a)}}}for(var c in this.options){if(this.options[c]==null||typeof this.options[c]=="undefined"||this.options[c]=="NaN"){continue}d+=',"'+c+'":"'+this.options[c].toString().replace(/"/g,"'")+'"'}d="{"+d.substr(1)+"}";this.options=b;return escape(d)};FLIRStyle.prototype.get=function(d,a,c){var b="get"+c;while(d.flirSpan&&d!=document.body){d=FLIR.getParentNode(d)}return typeof this[b]=="function"?this[b](d):FLIR.getStyle(d,a)};FLIRStyle.prototype.getFontStyle=function(a){return a.nodeName=="EM"||FLIR.getParentNode(a).nodeName=="EM"?"italic":FLIR.getStyle(a,"font-style")};FLIRStyle.prototype.getWeight=function(b){var a=b.nodeName=="STRONG"||FLIR.getParentNode(b).nodeName=="STRONG"?"bold":FLIR.getStyle(b,"font-weight");switch(a.toString()){case"100":case"200":case"300":case"lighter":return"lighter";case"400":case"normal":return"";case"500":case"600":case"700":case"bold":return"bold";case"800":case"900":case"bolder":return"bolder"}};FLIRStyle.prototype.getFont=function(b){var a=FLIR.getStyle(b,"font-family");if(a.indexOf(",")){a=a.split(",")[0]}return a.replace(/['"]/g,"").toLowerCase()};FLIRStyle.prototype.getColor=function(b){var a=FLIR.getStyle(b,"color");if(a.substr(0,1)=="#"){a=a.substr(1)}return a.replace(/['"]/g,"").toLowerCase()};FLIRStyle.prototype.getSize=function(o){if(this.options.cSize!=null&&"*/+-".indexOf(this.options.cSize[0])<0){return this.options.cSize}var raw=FLIR.getStyle(o,"font-size");var pix;if(raw.indexOf("px")>-1){pix=Math.round(parseFloat(raw))}else{if(raw.indexOf("pt")>-1){var pts=parseFloat(raw);pix=pts/(72/this.options.dpi)}else{if(raw.indexOf("em")>-1||raw.indexOf("%")>-1){pix=this.calcFontSize(o)}}}if(this.options.cSize&&"*/+-".indexOf(this.options.cSize[0])>-1){try{pix=this.roundFloat(parseFloat(eval(pix.toString().concat(this.options.cSize))))}catch(err){}}o.flirFontSize=pix;return pix};FLIRStyle.prototype.getSpacing=function(c){var e=FLIR.getStyle(c,"letter-spacing");var a;if(e!="normal"){if(e.indexOf("em")>-1){var d=c.flirFontSize?c.flirFontSize:this.getSize(c);a=(parseFloat(e)*d)}else{if(e.indexOf("px")>-1){a=parseFloat(e)}else{if(e.indexOf("pt")>-1){var b=parseFloat(e);a=b/(72/this.options.dpi)}}}return this.roundFloat(a)}return""};FLIRStyle.prototype.getLine=function(c){var e=FLIR.getStyle(c,"line-height");var b=parseFloat(e);var d=c.flirFontSize?c.flirFontSize:this.getSize(c);if(e.indexOf("em")>-1){ret=(b*d)/d}else{if(e.indexOf("px")>-1){ret=b/d}else{if(e.indexOf("pt")>-1){var a=b;ret=(a/(72/this.options.dpi))/d}else{if(e.indexOf("%")>-1){return 1}else{ret=b}}}}return this.roundFloat(ret)};FLIRStyle.prototype.roundFloat=function(a){return Math.round(a*10000)/10000};FLIRStyle.prototype.calcFontSize=function(b){var c=document.createElement("DIV");c.style.border="0";c.style.padding="0";c.style.position="absolute";c.style.visibility="hidden";c.style.left=c.style.top="-1000px";c.style.left=c.style.top="10px";c.style.lineHeight="100%";c.innerHTML="Flir_Test";b.appendChild(c);var a=c.offsetHeight;b.removeChild(c);return a};FLIRStyle.prototype.copyObject=function(b){var c={};for(var a in b){c[a]=b[a]}return c};FLIRStyle.prototype.toString=function(){return"[FLIRStyle Object]"};