
var sIFRContainer = Class.create({
    log: function (str) {
        if (! Object.isUndefined(site)) {
            site.log('sIFRContainer: ' + str);
        }
    },
    initialize: function (sifr) {
        this.sifr = sifr;
        
        // Extend the original sIFR class
        this.sifr = Object.extend(this.sifr, {
            rgbToHex: function (rgbval) {
                var s = rgbval.match(/rgb\s*\x28((?:25[0-5])|(?:2[0-4]\d)|(?:[01]?\d?\d))\s*,\s*((?:25[0-5])|(?:2[0-4]\d)|(?:[01]?\d?\d))\s*,\s*((?:25[0-5])|(?:2[0-4]\d)|(?:[01]?\d?\d))\s*\x29/);
                if (s) {
                    s = s.splice(1);
                    if (s && s.length == 3) {
                        d = '#';
                        for (i = 0; i < s.length; i++) {
                            var e = '00' +(parseInt(s[i], 10).toString(16));
                            d += e.substring(e.length - 2, e.length);
                        }
                        return d;
                    }
                }
                return rgbval;
            },
            commonReplace: function (fontObj, optionObj) {
                var parentobj = this;
                this.replace(fontObj, Object.extend({
                    wmode: 'transparent',
                    css:[ '.sIFR-root { text-transform: uppercase; }'],
                    modifyCss: function (css, contentNode, selector) {
                        if ((undefined != contentNode.style.color) && (contentNode.style.color != '')) {
                            this.css.push('.sIFR-root { color: ' + parentobj.rgbToHex(contentNode.style.color) + '; }');
                        }
                        return this.css.join('');
                    },
                    forceSingleLine: true,
                    fitExactly: true
                },
                optionObj));
            }
        });
        
        this.sifr.useDomLoaded = false;
        
        // Fonts
        this.fonts = {
            bliss2_regular: {
                src: '/files/system/flash/sifr/Bliss2Regular-sIFR3-r436.swf'
            },
            bliss2_bold: {
                src: '/files/system/flash/sifr/Bliss2Bold-sIFR3-r436.swf'
            },
            bliss2_heavy: {
                src: '/files/system/flash/sifr/Bliss2Heavy-sIFR3-r436.swf'
            },
            cendia_regular: {
                src: '/files/system/flash/sifr/CendiaRegular-sIFR3-r436.swf'
            },
            cendia_italic: {
                src: '/files/system/flash/sifr/CendiaItalic-sIFR3-r436.swf'
            },
            georgia_regular: {
                src: '/files/system/flash/sifr/GeorgiaRegular-sIFR3-r436.swf'
            }
        }
        
        $H(this.fonts).each((function (pair) {
            this.log('Activating font: ' + pair.key);
            this.sifr.activate(pair.value);
        }).bind(this));
        
        this.log('Initialized');
    },
    update: function () {
        this.log('Updating');
        //Sektionsunderforside top
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: 'h1.sifr-bliss2-regular.sifr-25px',
            tuneHeight: - 10
        });
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.sifr-bliss2-regular'
        });
        this.sifr.commonReplace(this.fonts.bliss2_bold, {
            selector: '.sifr-bliss2-bold'
        });
        this.sifr.commonReplace(this.fonts.bliss2_heavy, {
            selector: '.sifr-bliss2-heavy'
        });
        this.sifr.commonReplace(this.fonts.cendia_regular, {
            selector: '.sifr-cendia-regular'
        });
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.sifr-cendia-italic'
        });
        this.sifr.commonReplace(this.fonts.georgia_regular, {
            selector: '.sifr-georgia-regular'
        });
        
        // Specific classes
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.sifr-bliss2-regular'
        });
        
        this.sifr.commonReplace(this.fonts.bliss2_bold, {
            selector: '.sifr-bliss2-bold'
        });
        
        this.sifr.commonReplace(this.fonts.bliss2_heavy, {
            selector: '.sifr-bliss2-heavy'
        });
        this.sifr.commonReplace(this.fonts.cendia_regular, {
            selector: '.sifr-cendia-regular'
        });
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.sifr-cendia-italic'
        });
        this.sifr.commonReplace(this.fonts.georgia_regular, {
            selector: '.sifr-georgia-regular'
        });
        
        // Chaos
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: 'H1.produktnavn'
        });
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: 'H1.produktnavn'
        });
        
        // Områdeindgang header
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.omraadeindgang H2 A'
        });
        
        // Footer Section Header
        this.sifr.commonReplace(this.fonts.bliss2_bold, {
            selector: '.footersectionheader'
        });
        
        //Fryd 1  Title1
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.fryd1 H1 .title1',
            css:[ '.sIFR-root { text-transform: uppercase; font-size:28px; }'],
            tuneHeight: - 8
        });
        
        // Fryd1 H1 Title2
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.fryd1 H1 .title2',
            css:[ '.sIFR-root { text-transform: none; font-size:28px;}'],
            tuneHeight: - 8,
            offsetTop: 0
        });
          //Fryd 6  Title1
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.fryd6 H1 .title1',
            css:[ '.sIFR-root { text-transform: uppercase; font-size:26px; }'],
            tuneHeight: -8,
            offsetTop: 0
        });
        
        // Fryd6 H1 Title2
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.fryd6 H1 .title2',
            css:[ '.sIFR-root { text-transform: none; font-size:27px;}'],
            tuneHeight: -8,
            offsetTop: 2
        });
        // Fryd2/3 H1 Title1
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.fryd23 H1 .title1',
            css:[ '.sIFR-root { text-transform: uppercase; color: #00adef; font-size:39px; }'] // blue
        });
        
        // Fryd2 H1 Title2
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.fryd23 H1 .title2',
            css:[ '.sIFR-root { text-transform: uppercase; color: #00adef; font-size:39px;  }'] // blue
        });
        
        // Fryd5 H1 Title1
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.fryd5 H1 .title1',
            css:[ '.sIFR-root {text-transform: uppercase; font-size:24px; }'],
            tuneHeight: - 10
        });
        
        // Fryd5 H1 Title2
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.fryd5 H1 .title2',
            css:[ '.sIFR-root {text-transform: uppercase; font-size:40px; }'],
            tuneHeight: -18,
            offsetTop: 0
        });
        
        
        //----------------------------------------------------------
        //NL added
        // Fryd H1 Title1 - green
        sIFR.replace(this.fonts.bliss2_regular, {
            wmode: 'transparent',
            selector: 'H1 .title1_green',
            css: '.sIFR-root { text-transform: uppercase; color: #76ac7a; }', // green
            tuneHeight: - 10,
            fitExactly: true
        });
        
        //----------------------------------------------------------
        
        // Fryd4 H1 Title1
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.fryd4 H1 .title1',
            css:[ '.sIFR-root { text-transform: uppercase; font-size:28px; }'],
            tuneHeight: 0,
            offsetTop: -2
        });
        
        // Fryd4 H1 Title2
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.fryd4 H1 .title2',
            css:[ '.sIFR-root { text-transform: none; font-size:28px;}'],
            tuneHeight: 0,
            offsetTop: 0
        });
        
        //----------------------------------------------------------
        
        // Fryd H1 Title1
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.fryd H1 .title1',
            tuneHeight: - 10
        });
        
        // Fryd H1 Title2
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.fryd H1 .title2',
            tuneHeight: - 10,
            offsetTop: 0
        });
        
        //----------------------------------------------------------
        
        // Fryd H2 Title1
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.fryd H2 .title1',
            tuneHeight: - 10
        });
        
        // Fryd H2 Title2
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.fryd H2 .title2',
            tuneHeight: - 10
        });
        
        //----------------------------------------------------------
        
        // Fryd Faktaboks Title1
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.faktaboks .title1',
            tuneHeight: - 8
        });
        
        // Fryd Faktaboks Title2
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.faktaboks .title2',
            tuneHeight: - 10
        });
        
        //----------------------------------------------------------
        
        // Fryd Faktaboks H3
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.faktaboks H3',
            css:[ '.sIFR-root { text-transform: uppercase; }'],
            tuneHeight: - 5
        });
        
        //
        //sIFR.replace(this.fonts.bliss2_regular,{
        //	selector: '.contentsectioncontainer H1',
        //	css: '.sIFR-root { text-transform: uppercase; }',
        //	wmode: 'transparent',
        //	forceWidth: true
        //});
        
        //Inspiration teaser, added by NileZ
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.insp_teaser_h1',
            tuneHeight: - 8
        });
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.insp_teaser_h2',
            tuneHeight: - 10
        });
        
        //----------------------------------------------------------
        
        // Fryd billedslider overskrift
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '#frydbilleder .relatedproductstitle',
            css:[ '.sIFR-root { text-transform: uppercase; }'],
            tuneHeight: - 5
        });
        
        //----------------------------------------------------------
        // Butiksside
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.butiksside h1.bliss'
        });
        
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.butiksside h2.bliss'
        });
        
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.butiksside h3.bliss'
        });
        
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.colorscheme3 .butiksside h1.cendia',
            css:[ '.sIFR-root { text-transform: uppercase; color: #009de0; }'],
            tuneHeight: - 5
        });
        
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.colorscheme1 .butiksside h1.cendia',
            css:[ '.sIFR-root { text-transform: uppercase; color: #f18a00; }'],
            tuneHeight: - 5
        });
        
        //------------------------------------------------------------------
        
        //Produktside
        
        this.sifr.commonReplace(this.fonts.cendia_italic, {
            selector: '.besparelse h2.title1',
            css:[ '.sIFR-root { text-transform: lowercase; }'],
            tuneHeight: - 12,
            offsetTop: 0
        });
        
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.stilinfo H4'
        });
        
        
        //404-side
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.404container H1',
            css:[ '.sIFR-root { text-transform: uppercase; font-size:40px;}']
        });
        
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.404container H2',
            css:[ '.sIFR-root { text-transform: uppercase; font-size:16px;}']
        });
        
        //------------------------------------------------------------------
        // Related articles
        
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.sp_infotitle'
        });
        
        // Related products
        
        this.sifr.commonReplace(this.fonts.bliss2_regular, {
            selector: '.relatedproductstitle'
        });
    },
    
    refresh: function () {
        this.log('Refreshing');
        this.update();
    }
});


// sifr in global scope
var sifr;

if ((site.hasFlash()) && (window.location.search.match(/[?&]nosifr/) === null)) {
    sifr = new sIFRContainer(sIFR);
    chainPostTransition.addFunction(function () {
        sifr.update();
    },
    'sIFR');
}

