janweinen of Flashtalking Studio DE
8/29/2017 - 10:37 AM

Sitebar Extension

FT Creative Manager Extension Sitebar

// cm.sitebar
(function(){
    o.html5sitebar = {
        adexpanded : false,
        minWidth : parseInt("160"),
        minHeight : parseInt("600"),
        noVScale:false,
        posFix:false,
        getWindowDim: function(){
            var wd = o.w.innerWidth|| o.w.document.documentElement.clientWidth || o.w.document.body.clientWidth,
            ht = o.w.innerHeight|| o.w.document.documentElement.clientHeight || o.w.document.body.clientHeight;
            return {
                width: wd,
                height: ht
                };
        },
        scrollBarSize:function () {
            var outer = document.createElement("div"), widthNoScroll = 0, widthWithScroll = 0, inner = "";
 
            outer.style.visibility = "hidden";
            outer.style.width = "100px";
            outer.style.msOverflowStyle = "scrollbar";
 
            o.w.document.body.appendChild(outer);
            outer.style.overflow = "scroll";
 
            inner = o.w.document.createElement("div");
            inner.style.width = "100%";
            outer.appendChild(inner);
 
            widthNoScroll = outer.offsetWidth;
            widthWithScroll = inner.offsetWidth;
 
            outer.parentNode.removeChild(outer);
 
            return widthNoScroll - widthWithScroll;
        },
        resizeAd:function(){
            var p = o.html5sitebar,
            addiv = o.$(o.divID), innerdiv = o.$(o.inDivID), frame = o.$(o.frameID),
            sideWidth = p.getWindowDim().width - p.scrollBarSize() - o.$().x(), sideHeight = p.getWindowDim().height - o.$().y(),
            newWidth = sideWidth,
            newHeight = sideHeight;
 
            if(newWidth<p.minWidth){
                newWidth = p.minWidth;
            }
            if(newHeight<p.minHeight || p.noVScale){
                newHeight = p.minHeight;
            }
            addiv.style.width = frame.style.width = Math.round(newWidth) + "px";
            addiv.style.height = frame.style.height = Math.round(newHeight) + "px";
        },
        scrollTop:function (){
            return o.w.document.body.scrollTop || o.w.document.documentElement.scrollTop;
        },
        init:function(){
            o.addEventListener("start", function(){
                var p =  o.html5sitebar,
                domain = o.w.location.hostname;
                if(typeof o.qs("ftx","")!=="undefined" && typeof o.qs("fty","")!=="undefined" && o.qs("ftx","")!=="" && o.qs("fty","")!==""){
                    o.attachtobody = false;
                    o.customPos = true;
                }
                    var f = function(){
                    try {
                        o.dispatchEvent("scroll");
                    }catch(e){}
                };
                if(o.w.addEventListener) {
                        o.w.addEventListener("scroll",f,false);
                    }else{
                        o.w.attachEvent("onscroll",f);
                    }
                    o.addEventListener("scroll", function() {
                });
            });
            o.addEventListener("adonpage", function(){
                var p =  o.html5sitebar,
                addiv = o.$(o.divID), innerdiv = o.$(o.inDivID), frame = o.$(o.frameID), posdiv = o.$(o.phID);
                if (o.bver("Safari") && !o.bver("chrome")) {
                    addiv.style.position = 'absolute';
                }else{
                    addiv.style.position = 'fixed';
                }
                posdiv.style.height = 1 + 'px';
                p.resizeAd();
                if(p.posFix){
                        var rp = setInterval(function(){
                                if(o.$().x() === 0){
                                    o.dispatchEvent('resize');
                            }else{
                                clearInterval(rp);
                            }
                        }, 150);
                }
 
                //safeFrame Fix
                if(o.safeFrame) {
                    document.querySelector('iframe').style.width = '100%';
                    document.querySelector('iframe').style.height = '100%';
                }

                if(typeof o.qs("ftz","")==="undefined" || o.qs("ftz","")===""){
                    o.$().style.zIndex = 2;
                }
 
            });
            o.addEventListener("resize", function(){
                var p =  o.html5sitebar;
                p.resizeAd();
            });
            o.addEventListener("scroll", function(){
                var p =  o.html5sitebar;
                //p.resizeAd();
            });
            o.addEventListener("adready", function(){
                var p =  o.html5sitebar;
                p.resizeAd();
            });
            setTimeout("o.dispatchEvent('resize')",200);
        }()
    };
    o.customPosFunc = function(){
        var p =  o.html5sitebar;
        if(typeof o.qs("ftx","")!=="undefined" && typeof o.qs("fty","")!=="undefined" && o.qs("ftx","")!=="" && o.qs("fty","")!==""){
            if(typeof o.qs("ftscw","")!=="undefined" && o.qs("ftscw","")!==""){
                o.$().style.left = (p.getWindowDim().width/2 + parseInt(o.qs("ftscw",""))/2) + parseInt(o.qs("ftx",""))+"px";
                o.$().style.top = parseInt(o.qs("fty",""))+"px";
            }else{
                o.$().style.left = parseInt(o.qs("ftx",""))+"px";
                o.$().style.top = parseInt(o.qs("fty",""))+"px";
                }
        }
    };
})();  
 
o.contract = function(){
    //do nothing
};