MYXER.util.Help = {
    myHelpOverlay: null,
    config: {
        container: "divHelp",
        /* params Array of Arrays [(0) - id of hidden div where help text lives,
        (1) - element id to attach mouse events too 
        (2) - postion element will be attached to the overlay 
        (3) - postion overlay will attach to element e.g. tl (top left), br (bottom right) etc.] */
        params: null, //[["divContents", "lnkAction", "tl", "tr"], ["divContents", "A1", "tr", "bl"]],
        fadeDuration: 0.10
    },
    initHelp: function() {
    
        // create overlay add listeners for params
        this.myHelpOverlay = new YAHOO.widget.Overlay(this.config.container);
        for (var i = 0; i < this.config.params.length; i++) {
            YAHOO.util.Event.on(this.config.params[i][1], 'mouseover', MYXER.util.Help.handleHelp,
    { show: true, content: this.config.params[i][0], context: this.config.params[i][1],
        containerAlign: this.config.params[i][2], contextAlign: this.config.params[i][3]
    }, true); 
            YAHOO.util.Event.on(this.config.params[i][1], 'mouseout', MYXER.util.Help.handleHelp,
    { show: false, content: this.config.params[i][0], context: this.config.params[i][1],
        containerAlign: this.config.params[i][2], contextAlign: this.config.params[i][3]
    }, true);
        }
    },
    handleHelp: function(ev, obj) {
        if (this.show) {
            MYXER.util.Help.myHelpOverlay.cfg.setProperty("context", [this.context, this.containerAlign, this.contextAlign, ["beforeShow", "windowResize"]]);
            MYXER.util.Help.myHelpOverlay.cfg.setProperty("effect", [{ effect: YAHOO.widget.ContainerEffect.FADE, duration: MYXER.util.Help.config.fadeDuration}]);
            MYXER.util.Help.myHelpOverlay.setBody(document.getElementById(this.content).innerHTML);
            MYXER.util.Help.myHelpOverlay.render();
            MYXER.util.Help.myHelpOverlay.align();
            MYXER.util.Help.myHelpOverlay.show();
        }
        else {
            MYXER.util.Help.myHelpOverlay.hide();
        }
    },
    setSettings: function(cfg) {
        for (var key in cfg) {
            if (!cfg.hasOwnProperty(key))  { 
                continue; 
            }
            this.config[key] = cfg[key];
        }
    }
}


var stpLaunchBubble = function(launch) {
    try {
        MYXER.util.Bubble.buttonClickCleanup();
        if (launch.cust == "Y")
            Myxer.SendToPhoneLoader({ targetId: launch.contentid, targetType: 'content', iphone: launch.iphone, refreshParent: false });
        else if (launch.iphone == "Y")
            Myxer.SendToPhoneLoader({ step: '4', targetId: launch.contentid, targetType: 'content', iphone: 'Y', refreshParent: false });
        else {
            Myxer.SendToPhoneLoader({ step: '1', targetId: launch.contentid, targetType: 'content', refreshParent: false });
        }

        if (navigator.userAgent.indexOf("Firefox") >= 0) {
            // dig into the iframe and make sure the action on the form is what we want. if it's not then the Firefox iframe bug has been
            // hit and in an attempt to circumvent it we will refresh the iframe src
            var ifr = document.getElementById('iframeSTP');
            if (ifr != null && (ifr.contentDocument == null || ifr.contentDocument.forms == null || ifr.contentDocument.forms[0].action.indexOf("/send/wizard/") < 0)) {
                document.getElementById('iframeSTP').src = document.getElementById('iframeSTP').src;
            }
        }

    }
    catch (err) { }
    return false;
}

var sendToFriendBubble = function(contentid) {
    try {
            Myxer.SendToFriend(contentid, 'content', false);
            MYXER.util.Bubble.buttonClickCleanup();
            if (navigator.userAgent.indexOf("Firefox") >= 0) {
                // dig into the iframe and make sure the action on the form is what we want. if it's not then the Firefox iframe bug has been
                // hit and in an attempt to circumvent it we will refresh the iframe src
                var ifr = document.getElementById('iframeSTAF');
                if (ifr != null && (ifr.contentDocument == null || ifr.contentDocument.forms == null || ifr.contentDocument.forms[0].action.indexOf("/send/sendtoafriend") < 0))
                {
                    document.getElementById('iframeSTAF').src = document.getElementById('iframeSTAF').src;
                }
            }
        }
        catch (err) { }
        return false;
    }

   
/// 
/// Creates/Manages hover flyout for item badges
///
    MYXER.util.Bubble = {
        bubbleContainer: null,
        bubbleDialog: null,
        buildParams: null,
        overTimer: null,
        outTimer: null,
        isBubbled: false,
        isSwfObejctEmbeded: false,
        isPlaying: false,
        targetUrl: null,
        loadedImageTracker: null,
        currentEl: null,
        videoPlayer: null,
        autoPlay: false,
        settings: {
            bubbleWidth: 280,
            outTime: 300,
            overWait: 300,
            animateTime: 0.50,
            offsetX: 68,
            offsetY: 32,
            useContainerOffsetX: true,
            useContainerOffsetY: true,
            debugMode: false,
            useAjax: false,
            useLinks: true,
            showTail: true,
            useDynamicButtons: false,
            ajaxUrlFragement: null,
            videoHeight: 200,
            videoWidth: 240,
            ringtoneWidth: 150,
            songWidth: 150,
            wallpaperWidth: 240,
            screensaverWidth: 240,
            contentContainerId: "flyover-content-container"
        },
        init: function() { this.createBubbleContainer(); },
        showBubble: function(el) {
            if (this.isPlaying || (MYXER.util.PreviewMan.isPlaying())) {
                return;
            }
            if (this.outTimer) clearTimeout(this.outTimer);
            this.overTimer = setTimeout(function() {
                MYXER.util.Bubble.createBubbleInner(el);
                if (YAHOO.env.ua.ie === 6) {
                    MYXER.util.Bubble.toggleSelects('hide');
                }
            },
        this.settings.overWait);
        },
        hideBubble: function() {
            if (this.isBubbled || this.isPlaying || MYXER.util.PreviewMan.isPlaying()) {
                return;
            }
            if (this.overTimer) {
                clearTimeout(this.overTimer);
            }
            if (this.outTimer) {
                clearTimeout(this.outTimer);
            }
            if (this.bubbleDialog != null) {
                this.outTimer = setTimeout(function() {
                    MYXER.util.Bubble.bubbleDialog.hide();
                    if (YAHOO.env.ua.ie === 6) {
                        MYXER.util.Bubble.toggleSelects('show');
                    }
                },
        this.settings.outTime);
            }
        },
        createBubbleContainer: function() {
            var div = document.createElement("DIV");
            div.id = "bubble-container";
            div.style.display = "none";
            var bodyDiv = document.createElement("DIV");
            bodyDiv.className = "bd";
            div.appendChild(bodyDiv);
            document.body.appendChild(div);
            bodyDiv.innerHTML = this.createBubbleInnerWrapper("");
            this.bubbleContainer = div;
        },
        createBubbleInnerWrapper: function(content) {
            var imageName;
            var markup = "<table id=\"divFlyover\" class=\"flyover\">";
            markup += "<tbody>"
            markup += "<tr><td id=\"topleft\" class=\"corner\"></td><td class=\"top\"></td><td id=\"topright\" class=\"corner\"></td></tr>";
            markup += "<tr><td class=\"left\"></td><td style=\"background-color:#FFF;\"><div id=\"" + this.settings.contentContainerId + "\">" + content + "</div></td><td class=\"right\"></td></tr>";
            markup += "<tr><td id=\"bottomleft\" class=\"corner\"></td><td class=\"bottom\">";
            if (this.settings.showTail) {
                /* code to change image type based on browser (IE 6 needs a gif)*/
                if (YAHOO.env.ua.ie === 6) {
                    markup += "<div align=\"center\"><img src=\"" + 'http://cdn2.myxer.com/m2/images/bubble/bTail2_gray.gif?0313170509' + "\"/></div>";

                }
                else {
                    markup += "<div align=\"center\"><img src=\"" + 'http://cdn2.myxer.com/m2/images/bubble/bTail2.png?0313170508' + "\"/></div>";
                }
            }
            markup += "</td><td id=\"bottomright\" class=\"corner\"></td></tr>"
            markup += "</tbody></table>"
            return markup;
        },
        createBubbleInner: function(el) {
            if (!el) { return; }
            this.currentEl = el;
            if (this.bubbleDialog === null) {
                if (!this.bubbleContainer) {
                    return;
                }
                var bubEl = this.bubbleContainer;
                bubEl.style.display = "none";
                bubEl.onmouseover = MYXER.util.Bubble.handleOver;
                bubEl.onmouseout = MYXER.util.Bubble.handleOut;
                var bubbleConfig;
                if (YAHOO.env.ua.ie > 6) {
                    bubbleConfig = {
                        width: this.settings.bubbleWidth + "px",
                        /*height: '320px',*/
                        fixedcenter: false,
                        underlay: "none",
                        draggable: false,
                        zIndex: 1000,
                        iframe: true
                    };
                }
                else {
                    bubbleConfig = {
                        width: this.settings.bubbleWidth + "px",
                        /*height: '320px',*/
                        fixedcenter: false,
                        underlay: "none",
                        effect: {
                            effect: YAHOO.widget.ContainerEffect.FADE,
                            duration: this.settings.animateTime
                        },
                        draggable: false,
                        zIndex: 1000,
                        iframe: true
                    };
                }
                this.bubbleDialog = new YAHOO.widget.Dialog(bubEl, bubbleConfig);
                if (this.settings.debugMode === false) {
                    this.bubbleDialog.hideEvent.subscribe(function() {
                        document.getElementById(MYXER.util.Bubble.settings.contentContainerId).innerHTML = "";
                    });
                }
            }

            this.bubbleContainer.style.display = "none";

            var innerContainer = document.getElementById(this.settings.contentContainerId);
            innerContainer.innerHTML = '';
            /* This code need to get atrib from element and build correct bubble: contentId & contentType */
            var buildParams = {
                "container": innerContainer,
                "contentType": el.getAttribute('contenttype'),
                "contentId": el.getAttribute('contentid'),
                "cdnDate": el.getAttribute('cdndate'),
                "price": el.getAttribute('price'),
                "bubbleType": el.getAttribute('bubbleType'),
                "streamUrl": el.getAttribute('streamUrl'),
                "imageUrl": el.getAttribute('imageUrl'),
                "swfUrl": el.getAttribute('swfUrl'),
                "eventCategory": el.getAttribute('eventCategory'),
                "eventLabel": el.getAttribute('eventLabel')
            };

            this.buildParams = buildParams;

            // Do this now in size containter

            /* grab href from element */
            if (el.tagName === "A") {
                this.targetUrl = el.href;
            }
            else {
                var itemChildNodes = el.childNodes;
                for (var i = 0; this.targetUrl === null && i < itemChildNodes.length; i++) {
                    var itemChildNode = itemChildNodes[i];
                    if (itemChildNode.tagName === "A") {
                        this.targetUrl = itemChildNode.href;
                    }
                }
            }

            /* add logic to get badge from via Ajax or display according to content type */

            if (buildParams.contentType === 'wallpaper' || buildParams.contentType === 'screensaver') {
                this.buildImageContents(buildParams);
            }
            else if (buildParams.contentType === 'ringtone') {
                if (buildParams.bubbleType === 'feature') {
                    this.bubbleContainer.style.display = "none";
                    this.hideBubble();
                    return;
                }
                this.buildRingtoneContents(buildParams);
            }
            else if (buildParams.contentType === 'video') {
                this.buildVideoContents(buildParams);
            }
            this.sizeContainer(buildParams);
        },
        sizeContainer: function(parms) {
            var innerContaier = document.getElementById(this.settings.contentContainerId);
            this.bubbleContainer.style.display = '';
            //alert("innerContaier.offsetHeight:" + innerContaier.offsetHeight + " - " + "innerContaier.offsetWidth:" + innerContaier.offsetWidth);
            if (parms.contentType === 'ringtone') {
                if (parms.price === 'free' && (innerContaier.offsetHeight < 210 || innerContaier.offsetHeight > 255 || innerContaier.offsetWidth < 140)) {
                    this.loadedImageTracker = setTimeout(function() {
                        MYXER.util.Bubble.sizeContainer(parms)
                    }, 100);
                    this.bubbleContainer.style.display = 'none';
                    return;
                }
                else if (parms.price !== 'free' && (innerContaier.offsetHeight < 155 || innerContaier.offsetHeight > 200 || innerContaier.offsetWidth < 140)) {
                    this.loadedImageTracker = setTimeout(function() {
                        MYXER.util.Bubble.sizeContainer(parms)
                    }, 100);
                    this.bubbleContainer.style.display = 'none';
                    return;
                }
            }
            else if (parms.contentType !== 'ringtone' && innerContaier.offsetHeight < 120) {
                this.loadedImageTracker = setTimeout(function() { MYXER.util.Bubble.sizeContainer(parms) }, 100);
                this.bubbleContainer.style.display = 'none';
                return;
            }

            this.bubbleContainer.style.display = '';
            innerContaier.style.display = '';
            this.bubbleDialog.render();
            this.bubbleDialog.align();
            this.bubbleDialog.show();

            var bubbleEl = this.bubbleDialog.element;
            var el = this.currentEl;
            var bubXY = YAHOO.util.Dom.getXY(el)
            var bubX = (this.settings.useContainerOffsetX) ? bubXY[0] - (innerContaier.offsetWidth / 2) + this.settings.offsetX : bubXY[0] + this.settings.offsetX;
            var bubY = (this.settings.useContainerOffsetY) ? bubXY[1] - innerContaier.offsetHeight + this.settings.offsetY : bubXY[1] + this.settings.offsetY;
            /* if (bubX < 0) { bubX = 0; } //Move bubble in view (not to be used w/ tail)
            if (bubY < 0) { bubY = 0; } */
            YAHOO.util.Dom.setX(bubbleEl, bubX);
            YAHOO.util.Dom.setY(bubbleEl, bubY);
            //alert("innerContaier.offsetHeight:" + innerContaier.offsetHeight + " - " + "innerContaier.offsetWidth:" + innerContaier.offsetWidth);
        },
        buildImageContents: function(parms) {
            //Build Title (grab from markup)
            if (parms.bubbleType === "feature") {
                this.buildImage(parms);
                this.buildSTFbutton(parms);
                return;
            }
            var titleDiv = document.createElement("DIV");
            titleDiv.className = "title";
            titleDiv.style.marginBottom = "10px";
            titleDiv.innerHTML = (YAHOO.util.Dom.getFirstChild(YAHOO.util.Dom.getNextSibling(this.currentEl.parentNode))).innerHTML;
            parms.container.appendChild(titleDiv);

            this.buildImage(parms);
            this.buildOptionButtons(parms);
        },
        buildRingtoneContents: function(parms) {

            parms.container.style.width = this.settings[parms.contentType + 'Width'] + "px";
            //Build Title (grab from markup)
            var titleDiv = document.createElement("DIV");
            titleDiv.className = "title";
            titleDiv.innerHTML = (YAHOO.util.Dom.getFirstChild(YAHOO.util.Dom.getNextSibling(this.currentEl.parentNode))).innerHTML;
            parms.container.appendChild(titleDiv);

            var topDiv = document.createElement("DIV");
            topDiv.className = "topCluster";

            //Build Ringtone Image
            var img = document.createElement("IMG");

            img.src = parms.imageUrl;

            img.className = "thumb";
            topDiv.appendChild(img);

            var playerDiv = document.createElement("DIV");
            playerDiv.className = "playContain";

            var sp = document.createElement("SPAN");
            sp.innerHTML = "Preview";

            var clearDiv0 = document.createElement("BR");

            var progDiv = document.createElement("DIV");
            progDiv.className = "progressBar";
            var img = document.createElement("IMG");

            img.setAttribute("externalid", "");
            img.setAttribute("previewUrl", parms.streamUrl);

            img.src = 'http://cdn2.myxer.com/images/buttons/play-big.gif?0409151111';
            img.className = "preview";
            img.setAttribute("alt", "Play/Stop");


            playerDiv.appendChild(sp);
            playerDiv.appendChild(clearDiv0)
            playerDiv.appendChild(progDiv);
            playerDiv.appendChild(img);

            topDiv.appendChild(playerDiv);

            parms.container.appendChild(topDiv);

            var clearDiv1 = document.createElement("DIV");
            clearDiv1.style.clear = "both";
            parms.container.appendChild(clearDiv1);

            //Only show these options if free
            if (parms.price === 'free') {
                //STF button
                var divSTF = document.createElement("DIV");
                divSTF.className = "divSTF";
                var aSTF = document.createElement("A");
                aSTF.onclick = function(ev) {
                    sendToFriendBubble(parms.contentId);
                    return false;
                }
                var imgSTF = document.createElement("IMG");
                imgSTF.src = 'http://cdn2.myxer.com/images/icons/nodes.gif?0320171656';
                imgSTF.style.marginRight = "2px"; //OK here
                var spSTF = document.createElement("SPAN");
                spSTF.innerHTML = "Send to Friend";
                aSTF.appendChild(imgSTF);
                aSTF.appendChild(spSTF);
                divSTF.appendChild(aSTF);
                parms.container.appendChild(divSTF);


                //Iphone button
                var divIphone = document.createElement("DIV");
                divIphone.className = "divIphone";
                var aIphone = document.createElement("A");
                aIphone.onclick = function(ev) {
                    stpLaunchBubble({
                        contentid: parms.contentId,
                        cust: 'Y',
                        iphone: 'Y'
                    });
                    return false;
                }
                var imgIphone = document.createElement("IMG");
                imgIphone.src = 'http://cdn2.myxer.com/images/iPhone.gif?0213102704';
                imgIphone.style.marginRight = "-3px"; //OK here
                var spIphone = document.createElement("SPAN");
                spIphone.innerHTML = "iPhone Download";
                aIphone.appendChild(imgIphone);
                aIphone.appendChild(spIphone);
                divIphone.appendChild(aIphone);
                parms.container.appendChild(divIphone);
            }

            //STP/BUY button
            var stpDiv = document.createElement("DIV");
            var btnText = "SEND TO PHONE";
            if (parms.price !== 'free') { btnText = "BUY NOW"; }
            stpDiv.className = "STP";
            stpDiv.setAttribute("align", "center");
            if (this.settings.useDynamicButtons) {
                stpDiv.appendChild(this.btnFactory(btnText, function(ev) {
                    stpLaunchBubble({
                        contentid: parms.contentId,
                        cust: 'N',
                        iphone: 'N'
                    });
                    return false;
                }))
            }
            else {
                var lnkSTP = document.createElement("A");
                lnkSTP.className = "stpLnk";
                lnkSTP.onclick = function(ev) {
                    stpLaunchBubble({
                        contentid: parms.contentId,
                        cust: 'N',
                        iphone: 'N'
                    });
                }
                var imgSTP = document.createElement("IMG");
                imgSTP.className = "imgSTP";
                if (parms.price !== 'free') {
                    imgSTP.src = 'http://cdn2.myxer.com/images/buttons/buyNow-gray-black.gif?0409151110';
                }
                else {
                    imgSTP.src = 'http://cdn2.myxer.com/images/buttons/sendtoPhone-gray-black.gif?0409151112';
                }
                lnkSTP.appendChild(imgSTP);
                stpDiv.appendChild(lnkSTP);
            }
            parms.container.appendChild(stpDiv);

            MYXER.util.PreviewMan.initPreviewScoped(parms.container);
            //This call is used to re-activate the sIFR (dynmic button font)
            if (this.settings.useDynamicButtons) {
                try {
                    replaceButtonText();
                }
                catch (ex) {
                }
            }
        },
        buildVideoContents: function(parms) {

            if (parms.bubbleType !== 'feature') {
                //Build Title (grab from markup)
                var titleDiv = document.createElement("DIV");
                titleDiv.className = "title";
                titleDiv.style.marginBottom = "10px";
                titleDiv.innerHTML = (YAHOO.util.Dom.getFirstChild(YAHOO.util.Dom.getNextSibling(this.currentEl.parentNode))).innerHTML;
                parms.container.appendChild(titleDiv);
            }

            //Build video preview
            var videoDiv = document.createElement("DIV");
            videoDiv.id = "divVideoPreview_" + parms.contentId;
            parms.container.appendChild(videoDiv);


            //add player script to content container
            var playerScript = document.createElement("SCRIPT");
            playerScript.setAttribute("type", "text/javascript");
            var embedScript = "";
            if (YAHOO.env.ua.ie > 0) {
                embedScript += " window[\"SWPlayer\"] = new Object(); ";
            }
            embedScript += " var s1 = new SWFObject('" + parms.swfUrl + "','SWPlayer','" + this.settings.videoWidth + "','" + this.settings.videoHeight + "','9'); ";
            embedScript += " s1.addVariable(\"type\", \"flv\"); ";
            embedScript += " s1.addVariable(\"file\",'" + parms.streamUrl + "'); ";
            embedScript += " s1.addVariable(\"image\", '" + parms.imageUrl + "'); ";
            embedScript += " s1.addParam(\"allowScriptAccess\", \"always\"); ";
            embedScript += " s1.addParam(\"allowFullScreen\", \"true\"); ";
            embedScript += " s1.addParam(\"wmode\", \"opaque\"); ";
            embedScript += " s1.write(\"divVideoPreview_" + parms.contentId + "\"); ";


            playerScript.text = embedScript;
            var container = document.getElementById(this.settings.contentContainerId);
            container.appendChild(playerScript);
            if (parms.bubbleType !== 'feature') {
                this.buildOptionButtons(parms);
            }
            else {
                this.buildSTFbutton(parms);
                this.autoPlay = true;
            }
        },
        buildImage: function(parms) {
            if (this.settings.useLinks && this.targetUrl.length > 0) {
                var lnk = document.createElement("A");
                lnk.href = this.targetUrl;
                var img = document.createElement("IMG");
                if (parms.imageUrl && parms.imageUrl.length > 0) {
                    img.src = parms.imageUrl;
                }
                else {
                    img.src = this.settings.imageCdnBase + this.settings.bigImageUrlFragmentBegin + parms.contentId + this.settings.bigImageUrlFragmentEnd + parms.cdnDate;
                }
                lnk.appendChild(img);
                parms.container.appendChild(lnk);
            }
            else {
                var img = document.createElement("IMG");
                if (parms.imageUrl && parms.imageUrl.length > 0) {
                    img.src = parms.imageUrl;
                }
                else {
                    img.src = this.settings.imageCdnBase + this.settings.bigImageUrlFragmentBegin + parms.contentId + this.settings.bigImageUrlFragmentEnd + parms.cdnDate;
                }
                parms.container.appendChild(img);
            }
        },
        buildOptionButtons: function(parms) {
            //Create Button Container
            parms.container.style.width = this.settings[parms.contentType + 'Width'] + "px";
            var optDiv = document.createElement("DIV");
            optDiv.className = "bubbleOptions";
            optDiv.setAttribute("align", "center");

            //Send to Phone Create
            //STF button
            if (parms.price === 'free') {
                var divSTF = document.createElement("DIV");
                divSTF.className = "divSTF-v";
                var aSTF = document.createElement("A");
                aSTF.onclick = function(ev) {
                    sendToFriendBubble(parms.contentId);
                    return false;
                }
                var imgSTF = document.createElement("IMG");
                imgSTF.src = 'http://cdn2.myxer.com/images/icons/nodes.gif?0320171656';
                imgSTF.style.marginRight = "2px"; //OK here
                var spSTF = document.createElement("SPAN");
                spSTF.innerHTML = "Send to Friend";
                aSTF.appendChild(imgSTF);
                aSTF.appendChild(spSTF);
                divSTF.appendChild(aSTF);
                optDiv.appendChild(divSTF);


                //Iphone button
                var divIphone = document.createElement("DIV");
                divIphone.className = "divIphone-v";
                divIphone.style.marginLeft = "10px";
                var aIphone = document.createElement("A");
                aIphone.onclick = function(ev) {
                    stpLaunchBubble({ contentid: parms.contentId, cust: 'Y', iphone: 'Y' }); return false;
                }
                var imgIphone = document.createElement("IMG");
                imgIphone.src = 'http://cdn2.myxer.com/images/iPhone.gif?0213102704';
                imgIphone.style.marginRight = "-3px"; //OK here
                var spIphone = document.createElement("SPAN");
                spIphone.innerHTML = "iPhone Download";
                aIphone.appendChild(imgIphone);
                aIphone.appendChild(spIphone);
                divIphone.appendChild(aIphone);
                optDiv.appendChild(divIphone);

            }
            //STP button
            var stpDiv = document.createElement("DIV");
            var btnText = "SEND TO PHONE";
            if (parms.price !== 'free') { btnText = "BUY NOW"; }
            stpDiv.className = "STP-v";
            stpDiv.setAttribute("align", "center");
            if (this.settings.useDynamicButtons) {
                stpDiv.appendChild(this.btnFactory(btnText, function(ev) { stpLaunchBubble({ contentid: parms.contentId, cust: 'N', iphone: 'N' }); return false; }))
            }
            else {
                var lnkSTP = document.createElement("A");
                lnkSTP.onclick = function(ev) {
                    stpLaunchBubble({
                        contentid: parms.contentId,
                        cust: 'N',
                        iphone: 'N'
                    });
                }
                var imgSTP = document.createElement("IMG");
                imgSTP.className = "imgSTP";
                if (parms.price !== 'free') {
                    imgSTP.src = 'http://cdn2.myxer.com/images/buttons/buyNow-gray-black.gif?0409151110';
                }
                else {
                    imgSTP.src = 'http://cdn2.myxer.com/images/buttons/sendtoPhone-gray-black.gif?0409151112';
                }
                lnkSTP.appendChild(imgSTP);
                stpDiv.appendChild(lnkSTP);
            }


            parms.container.appendChild(optDiv);
            parms.container.appendChild(stpDiv);

            if (this.settings.useDynamicButtons) {
                try {
                    replaceButtonText();
                }
                catch (ex) {
                }
            }
        },
        buildSTFbutton: function(parms) {
            var stpDiv = document.createElement("DIV");
            var btnText = "SEND TO PHONE";
            if (parms.price !== 'free') { btnText = "BUY NOW"; }
            stpDiv.className = "STP-v";
            stpDiv.setAttribute("align", "center");
            var lnkSTP = document.createElement("A");
            // Add code here make regular link vs / wizard
            if (this.targetUrl && this.targetUrl.length > 1) {
                lnkSTP.href = this.targetUrl;
            }
            else {
                lnkSTP.onclick = function(ev) {
                    stpLaunchBubble({
                        contentid: parms.contentId,
                        cust: 'N',
                        iphone: 'N'
                    });
                }
            }
            var imgSTP = document.createElement("IMG");
            imgSTP.className = "imgSTP";
            if (parms.price !== 'free') {
                imgSTP.src = 'http://cdn2.myxer.com/m2/images/buttons/buynow_17_74_lc.png?0513160755';
            }
            else {
                imgSTP.src = 'http://cdn2.myxer.com/m2/images/buttons/getit_17_74_lc.png?0513160756';
            }
            lnkSTP.appendChild(imgSTP);
            stpDiv.appendChild(lnkSTP);
            parms.container.appendChild(stpDiv);

        },
        btnFactory: function(text, handleClick) {
            var contDiv = document.createElement("DIV");
            contDiv.className = "btnContain";
            contDiv.onclick = handleClick;

            var divLeft = document.createElement("DIV");
            divLeft.className = "btnLeft"
            contDiv.appendChild(divLeft);

            var divCenter = document.createElement("DIV");
            divCenter.className = "btnCenter";
            divCenter.style.paddingLeft = "5px";
            divCenter.style.paddingRight = "5px";

            var spText = document.createElement("SPAN");
            spText.className = "spReplaceMe";
            spText.innerHTML = text;
            divCenter.appendChild(spText);

            contDiv.appendChild(divCenter);

            var divRight = document.createElement("DIV");
            divRight.className = "btnRight"

            contDiv.appendChild(divRight);

            return contDiv;
        },
        handleOver: function() {
            if (MYXER.util.Bubble.overTimer) {
                clearTimeout(MYXER.util.Bubble.overTimer);
            }
            if (MYXER.util.Bubble.outTimer) {
                clearTimeout(MYXER.util.Bubble.outTimer);
            }
            MYXER.util.Bubble.isBubbled = true;
        },
        handleOut: function() {
            MYXER.util.Bubble.isBubbled = false;
            MYXER.util.Bubble.outTimer = setTimeout(function() {
                MYXER.util.Bubble.hideBubble();
            });
        },
        handleClick: function(el) {
            this.isPlaying = false;
            if( MYXER.util.PreviewMan.isPlaying() )
                MYXER.util.PreviewMan.stoper();
                
            if (this.outTimer) clearTimeout(this.outTimer);
            MYXER.util.Bubble.createBubbleInner(el);
            if (YAHOO.env.ua.ie === 6) {
                MYXER.util.Bubble.toggleSelects('hide');
            }
        },
        handleVideoPlay: function(e) {
            this.isPlaying = !this.isPlaying;
            if (this.isPlaying) {
                var eventType = this.buildParams.contentType.substring(0, 1).toUpperCase() + this.buildParams.contentType.substring(1).toLowerCase() + " Preview";
                MYXER.tracking.ReportEvent(this.buildParams.eventCategory, eventType, this.buildParams.eventLabel);
            }
        },
        handleVideoStop: function(e) {
            this.isPlaying = false;
        },
        handlePlayerIsReady: function(e, args) {
            var videoPlayer = args[0].Player;
            MYXER.util.Bubble.videoPlayer = videoPlayer;
            videoPlayer.addViewListener("PLAY", "MYXER.util.Bubble.handleVideoPlay");
            videoPlayer.addControllerListener("STOP", "MYXER.util.Bubble.handleVideoStop");
        },
        buttonClickCleanup: function() {
            this.isPlaying = false;
            this.hideBubble();
            this.bubbleContainer.style.display = "none";
            document.getElementById(this.settings.contentContainerId).innerHTML = "";
        },
        toggleSelects: function(action) {
            var selects = document.getElementsByTagName('select');
            var displayStr = '';
            if (action === 'hide') {
                displayStr = 'none';
            }
            for (i = 0; i < selects.length; i++) {
                selects[i].style.display = displayStr;
            }
        },
        setSettings: function(cfg) {
            for (var key in cfg) {
                if (!cfg.hasOwnProperty(key)) { continue; }
                this.settings[key] = cfg[key];
            }
        }
    };

    YAHOO.util.Event.onDOMReady(function() 
    {
        MYXER.util.Bubble.init();
    });

    // This script wires up the video player
    var onBubbleVideoPlayerReady = new YAHOO.util.CustomEvent("onBubbleVideoPlayerReady");
    function bubble_PlayerReady(obj)
    {
         obj.Player = document.getElementById(obj['id']); 
        onBubbleVideoPlayerReady.fire(obj);
    } 
    if (!playerReady) 
        var playerReady = bubble_PlayerReady;
    else { 
        var oldPlayerReady = playerReady; 
        playerReady = function(obj) { bubble_PlayerReady(obj); oldPlayerReady(obj); };
    }
    onBubbleVideoPlayerReady.subscribe( MYXER.util.Bubble.handlePlayerIsReady);