Web Ring :
This is the web ring domain qnet9.com When the iframe code is placed onto your site, it will come here with your choice of web ring and show that web ring. In this simple view the page is sharing that iframe code for you to place onto your own web site.
Save this green screen code to an HTML file on your system then include it in your web page. EG: Save-as web-ring.html
Place it just before the closing <body> tag
<!-- WEB RING biscuits-25c START -->
<a id="wrSwitch" class="wr-button" title="" onclick="webRingOb.toggleView();">&#10685;</a>

<div id="wr-container" class="wr-visible">
    <a class="wr-hidden" style="color: brown; float: right; margin-right: 30px;" onclick="webRingOb.swapDivClassesById('wr-iframe', 'wr-hidden', 'wr-visible');"> &#128065; </a> 
    <div id="wr-status"> Status Monitor </div>
    <iframe id="wr-iframe" src="https://qnet9.com"> IFRAMES NOT SUPPORTED inBrowser </iframe>
</div>


<style>
    iframe {
        display: block;
        background: #000;
        border: none;
        height: 100vh;
        width: 96%;
        margin: 2%;
    }

    #wr-container {
        width: 90%;
        color: black;
        padding: 40px;
        margin: 50px;
        border: 2px solid #eeeeee;
        background-color: #ffffff;
    }

    #wr-iframe {
        border: 2px solid green;
        background-color: #f5e17d;
    }

    .wr-hidden {display: none;}
    .wr-visible {display: block;}
    .wr-button {font-size: 40px;}

</style>



<script>
    webRingOb = {
        domain: 'https://qnet9.com',
        ring: false, // Set this is in "My Web Ring Fixes" BELOW 
        domSet: function () {
            // You canedit this function to configure some bits of the web ring
            document.getElementById('wrSwitch').title = "Brother & Sister Sites!";
            // this.setHeights();
            this.setSrc();
        },
        setSrc: function () {
            // Prepare to pass CROSS-DOMAIN information
            // TO: the web-ring FROM: your domain where this code is fiddling the IFRAME 
            /// var ETiFrames = document.getElementsByClassName('bi-web-ring');
            iFrameElem = document.getElementById('wr-iframe');
            //
            //lert("AAA SRC : " + iFrameElem.src);
            // This raw data past to the web ring has to be cleaned up in the webRingMethods code 
            // EG: the referrer may contain protocol and Slashes but a filename format referrer must be stripped from it
            //
            // NOTE: this.ring is not initially set SO set it externally and then call this.domSet()
            //
            if (iFrameElem) {
                getDataFromUs = '?hostname=' + window.location.hostname;
                getDataFromUs += '&referrer=' + document.referrer;
                getDataFromUs += '&ring=' + this.ring; // Change "RING" to join suitable web ring by name         
                getDataFromUs += '&protocol=' + window.location.protocol;
                iFrameElem.src += getDataFromUs;
                //lert("ZZZ SRC set to " + iFrameElem.src);
                this.monitor("<b><i> Web ring get data from </i></b> <span>" + window.location.hostname + "</span> to web ring : <br>" + getDataFromUs);
            } else {
                this.monitor("Web Ring JS CODE ERROR !! setSrc() web-ring-iframe.php");
            }
        },
        setHeight: function () {
            var frame = document.getElementById("wr-iframe");
            var frameContainer = document.getElementById("wr-container");
            alert('Frame container height ' + frameContainer.style.height);
            frame.style.height = frameContainer.style.height;

        },
        toggleView: function () {
            iframeContainer = document.getElementById('wr-container');
            if (iframeContainer) {
                //lert("web ring toggleView() CLASS NOW " + iframeContainer.class);
                if (iframeContainer.class === "wr-hidden") {
                    text = 'removing wr-hidden ';
                    iframeContainer.classList.replace('wr-hidden', 'wr-visible');
                    iframeContainer.class = "wr-visible";
                } else {
                    text = 'adding wr-hidden ';
                    iframeContainer.classList.replace('wr-visible', 'wr-hidden');
                    iframeContainer.class = "wr-hidden";
                }
                //alert('Web ring iframe ' + text);
                this.monitor('Web ring iframe ' + text + iframeContainer.class);
            } else {
                this.monitor("WEB RING CODE ERROR!! toggleView()");
            }
        },
        swapDivClassesById: function (id, class1, class2) {
            elem = document.getElementById(id);
            this.swapDivClasses(elem, class1, class2);
        },
        swapDivClasses: function (elem, class1, class2) {
            if (elem.classList.contains(class1)) {
                elem.classList.replace(class1, class2);
                //elem.class = class2;
            } else {
                elem.classList.replace(class2, class1);
                //elem.class = class1;
            }
        },
        monitor: function (text) {
            document.getElementById('wr-status').innerHTML = text;
        }
    };
</script>

<script>
    // My web ring fixes 
    webRingOb.ring = 'east-kent-music';
    webRingOb.domSet(); // Do this last when the js obj is set.
</script>

<script>
    // 2019-03-05 Biscuits VERSION put into URL for iframe
    // This is the parent domain's javascript to go alongside the parent iframe
    // the Web ring code also has it's own javascript:

    if (window.addEventListener) {
        window.addEventListener("message", handleMessage);
    } else {
        window.attachEvent("onmessage", handleMessage);
    }

    // Handle a message that was sent from some window.
    // @param {MessageEvent} event The MessageEvent object holding the message/data.

    function handleMessage(event) {
        //lert(new Error().lineNumber + " " + arguments.callee.name + " Received a message from " + event.origin + ".");

        // When one window sends a message, or data, to another window via
        // `parent.postMessage()`, the message (the first argument) in the
        // `parent.postMessage()` call is accessible via `event.data` here.
        var messageObject = event.data;
        contentHeight = messageObject.contentHeight;
        // Now the parent can do something with the data.

        webRingIframeElem = documentGetElementById(web - ring - iframe - id);
        resizeIframe(webRingIframeElem, contentHeight);
        //lert(new Error().lineNumber + " " + arguments.callee.name + ' => ' + contentHeight);
    }
    loadIframes();

</script>

<!-- WEB RING END  -->
To add your site, page or blog to the rings, contact Leon via chat on EnglishTap or by email.