﻿//sifr
hmsa.extend({
    sifr: new function() {
        var sifrs = new Array();
        var enabled = hmsa.flash.hasFlash(8);

        return {
            prepHeader: function(){
                if(enabled)
                    document.styleSheets[0].addRule(".sifr", "visibility: hidden");                
                return;                
            },
            replaceHeaders: function(){
                var h1s = hmsa.query.getElementsByClass("sifr", "h1");

                for(var i = 0; i < h1s.length; i++){
                    var h1 = h1s[i]; 

                    if(enabled){          
                        var t = h1.firstChild.nodeValue;
                        var w = (514 < h1.offsetWidth) ? 514 : h1.offsetWidth;
                        var h = h1.offsetHeight;

                        var html = hmsa.sifr.getFlashHTML(w, h, t, sifrs.length);

                        var span = document.createElement("span");
                        span.className = "alt";
                        span.innerHTML = h1.innerHTML;
                        
                        h1.innerHTML = html;
                        h1.appendChild(span);
                    }

                    h1.className = "sifr-replaced";
                    sifrs.push(h1);
                }
            },
            getFlashHTML: function(w, h, t, index){
                if(!enabled)
                    return t;

                var swf = new hmsa.flash.swf("/eat/res/flash/sifr.swf", "100%", h + 8);
                swf.setVariable("aindex", index);
                swf.setVariable("u", true);
                swf.setVariable("c", "0099cc");
                swf.setVariable("w", w);
                swf.setVariable("h", h);               
                swf.setVariable("t", hmsa.utility.escapeHex(t).replace(/\+/g, "%2B").replace(/&/g, "%26").replace(/\"/g, "%22").normalize());
                swf.setVariable("k", true);
                swf.setVariable("s", 0);
                swf.setParameter("wmode", "transparent");
                return swf.getHTML();
            },
            setHeight: function(index, height){
                var objs = sifrs[index].getElementsByTagName("object");
                objs[0].style.height = height + "px";                
            },
            revert: function(){
                if(!enabled)
                    return;

                var h1s = hmsa.query.getElementsByClass("sifr-replaced", "h1");

                for(var i = 0; i < h1s.length; i++){
                    var h1 = h1s[i];
                    var text = h1.childNodes[1].innerHTML;

                    //revert H1 back to just text
                    h1.innerHTML = text                    
                    h1.className = "sifr";
                }

                sifrs.length = 0;
            },
            redraw: function(){
                if(enabled){
                    this.revert();
                    this.replaceHeaders();
                }
                
                return;
            }
        };
    }
});

//hmsa.events.bind(null, "init", hmsa.sifr.prepHeaders);
hmsa.events.bind(window, "load", hmsa.sifr.replaceHeaders);
