function resize(event) { // Do we trust the sender of this message? (might be // different from what we originally opened, for example). if (event.origin == "https://notes.pioneerreg.com" || event.origin.indexOf("localhost:") > 0 || event.origin == "https://dev.bikereg.com" || event.origin == "https://dev3.bikereg.com" || event.origin == "https://dev2.bikereg.com" || event.origin == "https://www.bikereg.com") athleteRegResizeIframe(event.data); else if (event.origin == "https://dev.runreg.com" || event.origin == "https://www.runreg.com") athleteRegResizeIframe(event.data); else if (event.origin == "https://dev.trireg.com" || event.origin == "https://www.trireg.com") athleteRegResizeIframe(event.data); else if (event.origin == "https://dev.skireg.com" || event.origin == "https://www.skireg.com") athleteRegResizeIframe(event.data); else return; } function insertAfter(referenceNode, newNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); } window.addEventListener('scroll', function () { var iframe = document.getElementById('regFrame'); if (iframe) { var bodyRect = document.body.getBoundingClientRect(), elemRect = iframe.getBoundingClientRect(), offset = elemRect.top - bodyRect.top; if (offset >= 0) { //page current scroll var currentScrol = document.documentElement.scrollTop || document.body.scrollTop; var fakeiframescroll = currentScrol - offset; if (fakeiframescroll >= 0) { document.getElementById('regFrame').contentWindow.postMessage('FakeIframeScroll:' + fakeiframescroll, '*'); } } } }); function getPosition(element) { var rect = element.getBoundingClientRect(); return { x: rect.left, y: rect.top }; } window.addEventListener("load", function () { var thisScript = document.CurrentScript || document.getElementById('athleteRegWidget'); if (thisScript && !document.getElementById('regFrame')) { var eventID_vanity = thisScript.getAttribute('data-event'); if (eventID_vanity) { var frame = document.createElement("iframe"); var frameDiv = document.createElement("div"); var iframeaddr = thisScript.src; var domainstart = iframeaddr.indexOf("//"); var domainend = iframeaddr.indexOf("/", domainstart + 2); var addr = iframeaddr.substring(0, domainend); frame.setAttribute("src", addr + '/' + eventID_vanity + "?if=1"); frame.setAttribute("id", "regFrame"); frame.setAttribute("onload", "checkThirdParty()"); frame.frameBorder = 0; frame.style.width = 100 + "%"; frame.style.height = 2000 + "px"; frameDiv.appendChild(frame); insertAfter(thisScript, frameDiv); var div = document.createElement("div"); div.style.width = 100 + "%"; div.style.textAlign = "center"; var loadingImg = document.createElement("img"); loadingImg.setAttribute("src", addr + "/i/DoubleRing-200px.gif"); loadingImg.setAttribute("style", "vertical-align: middle; "); div.setAttribute("id", "loadingRegFrame"); loadingImg.style.width = 50 + 'px'; div.appendChild(loadingImg); var loadingmessage = document.createElement("i"); loadingmessage.setAttribute("style", "font-family: 'Open Sans',arial,helvetica,sans-serif; font-weight: bold; vertical-align: middle;"); loadingmessage.innerHTML = " Loading Registration..."; div.appendChild(loadingmessage); insertAfter(thisScript, div); if (!HasMetaViewport()) { var viewportMeta = document.createElement("meta"); viewportMeta.name = 'viewport'; viewportMeta.content = "width=device-width"; document.getElementsByTagName('head')[0].appendChild(viewportMeta); } } } if (top != self && top.location.href.indexOf("brag") <= 0) top.location.href = location.href; AppendScript(GetSiteAddr() + '/users/Public/ReadWriteCookie.aspx?rw=w'); }); function HasMetaViewport() { var metas = document.getElementsByTagName('meta'); for (var i = 0; i < metas.length; i++) { if (metas[i].getAttribute("property") == "viewport") { return true; } } return false; } function checkThirdParty() { if (window.SendThirdPartyMessage) { window.SendThirdPartyMessage = false; document.getElementById('regFrame').contentWindow.postMessage('NoThirdPartiesCookiesAllowed', '*'); } } window.SendThirdPartyMessage = false; window.ThirdPartyCookiesNotAllowed = function () { window.SendThirdPartyMessage = true; // mark it in case the window isn't ready document.getElementById('regFrame').contentWindow.postMessage('NoThirdPartiesCookiesAllowed', '*'); }; window.Step2 = function stepTwo() { AppendScript(GetSiteAddr() + '/users/Public/ReadWriteCookie.aspx?rw=r'); }; function AppendScript(scriptURL) { var resultsEl = document.getElementById('regFrame') var step2El = document.createElement('script'); step2El.type = "application/javascript"; step2El.setAttribute('src', scriptURL); resultsEl.appendChild(step2El); } if (!window.addEventListener) { window.attachEvent("onmessage", resize); window.attachEvent("onscroll", ScrollMessage); } else { window.addEventListener("message", resize, false); window.addEventListener("scroll", ScrollMessage); } function ScrollMessage() { //console.log(document.body.scrollTop); if (document.getElementById('regFrame') != null) { document.getElementById('regFrame').contentWindow.postMessage('getscroll:' + document.body.scrollTop, '*'); } } function athleteRegResizeIframe(newHeight) { if (typeof newHeight == 'string' && newHeight.indexOf('scrollto') != -1) { var tokens = newHeight.split(':'); var newoffset = 0; if (tokens.length > 1) { newoffset = parseInt(tokens[1]); } setTimeout(function () { var bodyRect = document.body.getBoundingClientRect(); var iframe = document.getElementById('regFrame').getBoundingClientRect(); document.body.scrollTop = document.documentElement.scrollTop = (iframe.top - bodyRect.top) + newoffset; }, 50); } if (typeof newHeight == 'string' && newHeight.indexOf('NewHeight:') != -1) { var myHeight = newHeight.replace('NewHeight:', ''); myHeight = parseInt(myHeight, 10); if (!isNaN(myHeight)) { // if (myHeight < 1500) { // myHeight = 1500; // } document.getElementById('regFrame').style.height = myHeight + 'px'; } return; } if (typeof newHeight == 'string' && newHeight.indexOf('GetCurrentURL') != -1) { var splittedDomain = location.hostname.split("."); if (splittedDomain.length > 2) { document.getElementById('regFrame').contentWindow.postMessage('SITE|' + splittedDomain[splittedDomain.length - 2] + '.' + splittedDomain[splittedDomain.length - 1], '*'); } else { document.getElementById('regFrame').contentWindow.postMessage('SITE|' + location.hostname, '*'); } } if (typeof newHeight == 'string' && newHeight.indexOf('SendToBaseSite') != -1) { var EventIdOrVanity = document.getElementById('regFrame').src.replace(GetSiteAddr(), '').replace('?if=1', ''); var baseAddr = GetSiteAddr() + EventIdOrVanity + '?nif=1'; var theWindow = window; while (theWindow.parent != null && theWindow.parent != theWindow) { theWindow = theWindow.parent } theWindow.location.href = baseAddr; } if (newHeight == 'redirect') { var cartAddr = "[SITE]/Registration/Cart/CheckoutCart.aspx?rd=" + window.location.href; if (document.getElementById('regFrame').src.indexOf('dev.bikereg') != -1) cartAddr = cartAddr.replace('[SITE]', 'https://dev.bikereg.com'); else if (document.getElementById('regFrame').src.indexOf('www.bikereg') != -1) cartAddr = cartAddr.replace('[SITE]', 'https://www.bikereg.com'); else if (document.getElementById('regFrame').src.indexOf('dev3.bikereg') != -1) cartAddr = cartAddr.replace('[SITE]', 'https://dev3.bikereg.com'); else if (document.getElementById('regFrame').src.indexOf('www.runreg') != -1) cartAddr = cartAddr.replace('[SITE]', 'https://www.runreg.com'); else if (document.getElementById('regFrame').src.indexOf('www.skireg') != -1) cartAddr = cartAddr.replace('[SITE]', 'https://www.skireg.com'); else if (document.getElementById('regFrame').src.indexOf('www.trireg') != -1) cartAddr = cartAddr.replace('[SITE]', 'https://www.trireg.com'); else if (document.getElementById('regFrame').src.indexOf('localhost') != -1) cartAddr = cartAddr.replace('[SITE]', 'http://localhost:56255'); var theWindow = window; while (theWindow.parent != null && theWindow.parent != theWindow) { theWindow = theWindow.parent } theWindow.location.href = cartAddr; } var height = parseInt(newHeight, 10); if (!isNaN(height)) { document.getElementById('regFrame').style.height = height + 'px'; var loadingImg = document.getElementById('loadingRegFrame'); if (loadingImg) { loadingImg.style.display = 'none'; } } } function getParameterByName(name) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } //window.onload = CheckQS(); //if (window.addEventListener) // window.addEventListener('load', CheckQS, false) //else if (window.attachEvent) // window.attachEvent('onload', CheckQS) var timer; timer = setTimeout(CheckQS, 50); function CheckQS() { if (document.getElementById('regFrame') != null) { clearTimeout(timer); if (getParameterByName('cf') != '') { document.getElementById('regFrame').src = GetSiteAddr() + '/Confirmation?if=1'; } if (getParameterByName('who') != '') { document.getElementById('regFrame').src = GetSiteAddr() + '/confirmed/' + getParameterByName('who') + '?if=1'; } } } function GetSiteAddr() { if (document.getElementById('regFrame')) { var iframeaddr = document.getElementById('regFrame').src; var domainstart = iframeaddr.indexOf("//"); var domainend = iframeaddr.indexOf("/", domainstart + 2); return iframeaddr.substring(0, domainend); } else { return 'https://www.bikereg.com' } //var addr = "[SITE]"; //if (document.getElementById('regFrame').src.indexOf('dev.bikereg') != -1) // return addr.replace('[SITE]', 'https://dev.bikereg.com'); //else if (document.getElementById('regFrame').src.indexOf('www.bikereg') != -1) // return addr.replace('[SITE]', 'https://www.bikereg.com'); //else if (document.getElementById('regFrame').src.indexOf('www.runreg') != -1) // return addr.replace('[SITE]', 'https://www.runreg.com'); //else if (document.getElementById('regFrame').src.indexOf('www.skireg') != -1) // return addr.replace('[SITE]', 'https://www.skireg.com'); //else if (document.getElementById('regFrame').src.indexOf('www.trireg') != -1) // return addr.replace('[SITE]', 'https://www.trireg.com'); //else if (document.getElementById('regFrame').src.indexOf('localhost') != -1) // return addr.replace('[SITE]', 'http://localhost:56255'); }