
var dynamicMessage,
  acceptButton,
  closeButton1,
  closeButton2,
  privacyStatement,
  privacyPartners,
  partnersLink,
  privacyLink,
  privacyLink2,
  topView,
  wrapper,
  gdprHeader = checkGDPR(),
  urlRedirect,
  a,
  ap,
  stub = false;

document.addEventListener("DOMContentLoaded", function (event) {
  dynamicMessage = document.querySelector(".dynamic-message");
  acceptButton = document.querySelector(".btn");
  closeButton1 = document.querySelector(".close1");
  closeButton2 = document.querySelector(".close2");
  privacyStatement = document.querySelector(".privacy-statement");
  privacyPartners = document.querySelector(".privacy-partners");
  privacyLink = document.querySelector(".privacy-link");
  privacyLink2 = document.querySelector(".privacy-partners .privacy-link");
  partnersLink = document.querySelector(".partners-link");
  ap = document.querySelector(".gdpr-partners-header a");
  topView = document.querySelector(".top-view");
  a = document.querySelectorAll(".dynamic-message a");
  wrapper = document.querySelector(".wrapper");
  acceptButton.onclick = acceptConsent;
  closeButton1.onclick = closeAll;
  closeButton2.onclick = closeAll;
  privacyLink.onclick = showPrivacy;
  if( privacyLink2 ){
    privacyLink2.onclick = showPrivacy;
  }
  partnersLink.onclick = showPartners;
  ap.onclick = handleAnchor;
  //a.forEach(function (item) { item.onclick = handleAnchor; });
  for(var i = 0; i<a.length;i++){
    a[i].onclick = handleAnchor;
  }
  init();
});


function handleAnchor(e) {
  if(e.preventDefault){
    e.preventDefault();
  }else{
    e.returnValue = false;
  }
}
function getCookie(name) {
  var v = document.cookie.match("(^|;) ?" + name + "=([^;]*)(;|$)");
  return v ? v[2] : null;
}

function setCookie(name, value, days) {
  var d = new Date;
  d.setTime(d.getTime() + 24 * 60 * 60 * 1000 * days);
  document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString();
}

function init() {
  var cookie = getCookie("gdpr_consent");
  urlRedirect = window.location.search.split("?redirect=")[1] || window.location.origin;
  if (!cookie) {
    wrapper.classList.add("show-plack");
  } else {
    successAction();
  }
}

function checkGDPR() {
  var req = new XMLHttpRequest();
  req.open("GET", document.location, false);
  req.send(null);
  return req.getResponseHeader("gdpr-source");
}

function acceptConsent(evt) {
  setCookie("gdpr_consent", "YES", 100000);
  if (getCookie("gdpr_consent")) {
    successAction();
  }
}
function buttonText(){
  var buttonHtml =  "Redirecting to Site <div class=\"loadinganim showbox\">"
  + "<div class=\"loader\">"
  + "<svg class=\"circular\" viewBox=\"25 25 50 50\">"
  + "<circle class=\"path\" cx=\"50\" cy=\"50\" r=\"15\" fill=\"none\" strokeWidth=\"4\" strokeMiterlimit=\"10\"/>"
  + "</svg> </div> </div>";
  return buttonHtml;
}
function successAction() {
  //var message = (gdprHeader) ? "You are from EU or DE. \r\n" + "You would be redirected to " + urlRedirect : "You are not from EU or DE. \r\n" + "You would be redirected to " + urlRedirect;
  //dynamicMessage.innerText = "Redirect paused for development purposes, however your cookie is set. \r\n " + message;
  //dynamicMessage.innerText = "Thank you.  You are being redirected now...one moment please"
  //acceptButton.classList.add("hide-plack");
  acceptButton.onclick = null;
  acceptButton.innerHTML = buttonText();
  acceptButton.classList.add("redirect");
  // renderRedirectButton()
  window.location.href = urlRedirect;
}

// function renderRedirectButton(){
//   var redirectBut = document.createElement("button");
//   redirectBut.classList.add("btn2");
//   var newContent = document.createTextNode("Internal test redirect button");
//   redirectBut.appendChild(newContent);
//   topView.append(redirectBut, privacyStatement);
//   redirectBut.onclick = redirectMe;
// }

function redirectMe(){
  window.location.href = urlRedirect;
}

function showPrivacy(evt) {
  topView.classList.add("hide-plack");
  topView.classList.remove("show-plack");
  privacyStatement.classList.remove("hide-plack");
  privacyStatement.classList.add("show-plack");
  privacyPartners.classList.add("hide-plack");
  privacyPartners.classList.remove("show-plack");
}

function showPartners(evt) {
  topView.classList.add("hide-plack");
  topView.classList.remove("show-plack");
  privacyPartners.classList.remove("hide-plack");
  privacyPartners.classList.add("show-plack");
}

function closeAll() {
  privacyStatement.classList.remove("show-plack");
  privacyPartners.classList.remove("show-plack");
  topView.classList.remove("hide-plack");
  privacyStatement.classList.add("hide-plack");
  privacyPartners.classList.add("hide-plack");
  topView.classList.add("show-plack");
}
