var username = false;
var password1 = false;
var password2 = false;
var first_name = false;
var last_name = false;
var address_1 = false;
var city = false;
var telefon = false;
var user_email1 = false;
var user_email2 = false;
var datenschutz = false;
var payment = false;
var name = false;
var number = false;
var cvc = false;
var expire = false;
var rueckgabe = false;
var agb = false;

function checkUsername() {
  username = false;
  var filter  = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$/;
  if (filter.test(document.getElementById("username").value) && document.getElementById("username").value.length > 4 && document.getElementById("username").value.length <= 20) {
    document.getElementById("checkusername").innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    username = true;
  }
  else {
    document.getElementById("checkusername").innerHTML = "<table border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" align=\"middle\" /></td><td>&nbsp;Keine Sonderzeichen, min. 5 Buchstaben</td></tr></table>";
  }
}

var http_request_username = false;
var http_request_email = false;

function checkUsernameExists() {
  http_request_username = false;
  if (window.XMLHttpRequest) {
    http_request_username = new XMLHttpRequest();
    if (http_request_username.overrideMimeType) {
      http_request_username.overrideMimeType('text/plain');
    }
  }
  else if (window.ActiveXObject) {
    try {
      http_request_username = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
      try {
        http_request_username = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) {}
    }
  }
  if (!http_request_username) {
    return false;
  }
  http_request_username.onreadystatechange = function printName() {
    if (http_request_username.readyState == 4) {
      if (http_request_username.status == 200) {
        var response = http_request_username.responseText;
        if (response == "1") {
          username = false;
          document.getElementById("checkusername").innerHTML = "<table border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" align=\"middle\" /></td><td>&nbsp;Username existiert bereits</td></tr></table>";
        }
      }
    }
  }
  http_request_username.open('GET', 'https://www.hype-rc.de/checkusername.php?username='+document.getElementById('username').value, true);
  http_request_username.send(null);
}

function checkPassword1() {
  password1 = false;
  var filter  = /^([a-zA-Z0-9_\.\-\=\&\!\:])+$/;
  var filter2 = /.*([0-9])+.*$/;
  var filter3 = /.*([a-zA-Z])+.*$/;
  if (filter.test(document.getElementById("password1").value) && document.getElementById("password1").value.length > 7 && document.getElementById("password1").value.length <= 20 && filter2.test(document.getElementById("password1").value) && filter3.test(document.getElementById("password1").value)) {
    document.getElementById("checkpassword1").innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    password1 = true;
  }
  else {
    document.getElementById("checkpassword1").innerHTML = "<table border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" align=\"middle\" /></td><td>&nbsp;8 Zeichen, darunter Zahlen und Buchstaben</td></tr></table>";
  }
}

function checkPassword2() {
  password2 = false;
  if (document.getElementById("password1").value == document.getElementById("password2").value && document.getElementById("password1").value.length > 4) {
    document.getElementById("checkpassword2").innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    password2 = true;
  }
  else {
    document.getElementById("checkpassword2").innerHTML = "<img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
}

function checkUpdatePassword1() {
  password1 = false;
  var filter  = /^([a-zA-Z0-9_\.\-\=\&\!\:])+$/;
  var filter2 = /.*([0-9])+.*$/;
  var filter3 = /.*([a-zA-Z])+.*$/;
  if (document.getElementById("password_1").value == "") {
    document.getElementById("checkpassword_1").innerHTML = "";
    password1 = true;
  }
  else if (filter.test(document.getElementById("password_1").value) && filter2.test(document.getElementById("password_1").value) && filter3.test(document.getElementById("password_1").value) && document.getElementById("password_1").value.length > 4 && document.getElementById("password_1").value.length <= 20) {
    document.getElementById("checkpassword_1").innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    password1 = true;
  }
  else {
    document.getElementById("checkpassword_1").innerHTML = "<table border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" align=\"middle\" /></td><td>&nbsp;8 Zeichen, darunter Zahlen und Buchstaben</td></tr></table>";
  }
}

function checkUpdatePassword2() {
  password2 = false;
  if (document.getElementById("password_1").value == "" && document.getElementById("password_2").value == "") {
    document.getElementById("checkpassword_2").innerHTML = "";
    password2 = true;
  }
  else if (document.getElementById("password_1").value == document.getElementById("password_2").value && document.getElementById("password_1").value.length > 4) {
    document.getElementById("checkpassword_2").innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    password2 = true;
  }
  else {
    document.getElementById("checkpassword_2").innerHTML = "<img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
}

function checkText(id,min) {
  result = false;
  if (document.getElementById(id).value.length >= min) {
    document.getElementById("check"+id).innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    result = true;
  }
  else {
    document.getElementById("check"+id).innerHTML = "<img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
  switch (id) {
    case "first_name": first_name = result; break;
    case "last_name": last_name = result; break;
    case "address_1": address_1 = result; break;
    case "address_type_name": name = result; break;
    case "phone_1": telefon = result; break;
  }
}

function checkCity() {
  city = false;
  var checkzip = false;
  var checkcity = false;

  var filter  = /^[0-9]{4,5}$/;
  checkzip = filter.test(document.getElementById("zip").value)
  checkcity = document.getElementById("city").value.length > 2;

  if (checkzip && checkcity) {
    document.getElementById("checkcity").innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    city = true;
  }
  else if (!checkzip && checkcity) {
    document.getElementById("checkcity").innerHTML = "<table border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" align=\"middle\" /></td><td>&nbsp;PLZ muss aus 4 oder 5 Ziffern bestehen</td></tr></table>";
  }
  else if (checkzip && !checkcity && document.getElementById("city").value.length > 0) {
    document.getElementById("checkcity").innerHTML = "<table border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" align=\"middle\" /></td><td>&nbsp;Stadt muss min. 3 Buchstaben haben</td></tr></table>";
  }
  else {
    document.getElementById("checkcity").innerHTML = "<img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
}

function checkEmail1() {
  user_email1 = false;
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  if (filter.test(document.getElementById("user_email1").value)) {
    document.getElementById("checkuser_email1").innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    user_email1 = true;
  }
  else {
    document.getElementById("checkuser_email1").innerHTML = "<img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
}

function checkEmail2() {
  user_email2 = false;
  if (user_email1 && document.getElementById("user_email1").value == document.getElementById("user_email2").value) {
    document.getElementById("checkuser_email2").innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    user_email2 = true;
  }
  else {
    document.getElementById("checkuser_email2").innerHTML = "<img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
}

function checkEmailExists() {
  http_request_email = false;
  if (window.XMLHttpRequest) {
    http_request_email = new XMLHttpRequest();
    if (http_request_email.overrideMimeType) {
      http_request_email.overrideMimeType('text/plain');
    }
  }
  else if (window.ActiveXObject) {
    try {
      http_request_email = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
      try {
        http_request_email = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) {}
    }
  }
  if (!http_request_email) {
    return false;
  }
  http_request_email.onreadystatechange = function printName() {
    if (http_request_email.readyState == 4) {
      if (http_request_email.status == 200) {
        var response = http_request_email.responseText;
        if (response == "1") {
          user_email1 = false;
          document.getElementById("checkuser_email1").innerHTML = "<table border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" align=\"middle\" /></td><td>&nbsp;E-Mailadresse existiert bereits</td></tr></table>";
        }
      }
    }
  }
  http_request_email.open('GET', 'https://www.hype-rc.de/checkemail.php?email='+document.getElementById('user_email1').value, true);
  http_request_email.send(null);
}

function checkUpdateEmail(error) {
  user_email1 = false;
  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  if (filter.test(document.getElementById("user_email").value)) {
    document.getElementById("checkuser_email").innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    user_email1 = true;
  }
  else {
    document.getElementById("checkuser_email").innerHTML = "<img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
}

function checkDatenschutz() {
  datenschutz = false;
  if (document.getElementById("datenschutz").checked) {
    datenschutz = true;
    document.getElementById("datenschutztext").style.color = "#000000";
    document.getElementById("datenschutzlink").style.color = "#000000";
  }
  else {
    document.getElementById("datenschutztext").style.color = "#FF0000";
    document.getElementById("datenschutzlink").style.color = "#FF0000";
  }
}

function checkJavascript() {
  document.getElementById("orderhinweis").style.visibility = "hidden";
  document.getElementById("orderhinweis").style.display = "none";
}

function checkOrderNumber(id,min,max) {
  result = false;
  var filter  = /^([0-9])+$/;
  if (document.getElementById(id).value.length >= min && document.getElementById(id).value.length <= max && filter.test(document.getElementById(id).value)) {
    document.getElementById("check"+id).innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    result = true;
  }
  else {
    document.getElementById("check"+id).innerHTML = "<img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
  switch (id) {
    case "number": number = result; break;
    case "cvc": cvc = result; break;
  }
  checkOrderButton();
}

function checkOrderText(id,min) {
  result = false;
  if (document.getElementById(id).value.length >= min) {
    document.getElementById("check"+id).innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
    result = true;
  }
  else {
    document.getElementById("check"+id).innerHTML = "<img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
  switch (id) {
    case "name": name = result; break;
  }
  checkOrderButton();
}

function checkOrderExpire(month,year) {
  expire = false;
  var filtermonth  = /^([0-9]{1,2})$/;
  var filteryear  = /^([0-9]{4})$/;
  var inputmonth = document.getElementById("expiremonth").value;
  var inputyear = document.getElementById("expireyear").value;
  if (inputmonth.substring(0,1) == "0") inputmonth = inputmonth.substring(1,2);
  if (filtermonth.test(inputmonth) && filteryear.test(inputyear) && inputmonth <= 12 && inputmonth >= 1 && (inputyear > year || (inputyear == year && inputmonth >= month))) {
    expire = true;
    document.getElementById("checkexpire").innerHTML = "<img src=\"./ps_image/order/ok.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
  else {
    document.getElementById("checkexpire").innerHTML = "<img src=\"./ps_image/order/error.gif\" width=\"18\" height=\"17\" border=\"0\" alt=\"\" />";
  }
  checkOrderButton();
}

function checkOrderRueckgabe() {
  rueckgabe = false;
  if (document.getElementById("rueckgabe").checked) {
    rueckgabe = true;
    document.getElementById("rueckgabetext").style.color = "#000000";
    document.getElementById("rueckgabelink").style.color = "#000000";
  }
  else {
    document.getElementById("rueckgabetext").style.color = "#FF0000";
    document.getElementById("rueckgabelink").style.color = "#FF0000";
  }
  checkOrderButton();
}

function checkOrderPayment(month,year) {
  if (document.getElementById('payment').checked) {
    payment = false;
    checkOrderText('name',2);
    checkOrderNumber('number',16,16);
    checkOrderNumber('cvc',3,4);
    checkOrderExpire(month,year);
    document.getElementById("orderkredit").style.visibility = "visible";
  }
  else {
    payment = true;
    document.getElementById("checkname").innerHTML = "";
    document.getElementById("checknumber").innerHTML = "";
    document.getElementById("checkcvc").innerHTML = "";
    document.getElementById("checkexpire").innerHTML = "";
    document.getElementById("orderkredit").style.visibility = "hidden";
  }
  checkOrderButton();
}

function checkOrderAGB() {
  agb = false;
  if (document.getElementById("agb").checked) {
    agb = true;
    document.getElementById("agbtext").style.color = "#000000";
    document.getElementById("agblink").style.color = "#000000";
  }
  else {
    document.getElementById("agbtext").style.color = "#FF0000";
    document.getElementById("agblink").style.color = "#FF0000";
  }
  checkOrderButton();
}

function checkButton() {
  if (username && password1 && password2 && first_name && last_name && address_1 && city && user_email1 && user_email2 && datenschutz && telefon) {
    document.getElementById("button_ok").style.visibility = "visible";
    document.getElementById("button_ok").style.display = "block";
    document.getElementById("button_error").style.visibility = "hidden";
    document.getElementById("button_error").style.display = "none";
  }
  else {
    document.getElementById("button_ok").style.visibility = "hidden";
    document.getElementById("button_ok").style.display = "none";
    document.getElementById("button_error").style.visibility = "visible";
    document.getElementById("button_error").style.display = "block";
  }
}

function checkOrderButton() {
  if ((payment || (name && number && cvc && expire)) && rueckgabe && agb) {
    if (document.getElementById('payment').checked) document.Checkout.action = ccAction;
    else document.Checkout.action = ffAction;
    document.getElementById("button_ok").style.visibility = "visible";
    document.getElementById("button_ok").style.display = "block";
    document.getElementById("button_error").style.visibility = "hidden";
    document.getElementById("button_error").style.display = "none";
  }
  else {
    document.getElementById("button_ok").style.visibility = "hidden";
    document.getElementById("button_ok").style.display = "none";
    document.getElementById("button_error").style.visibility = "visible";
    document.getElementById("button_error").style.display = "block";
  }
}

function checkDataButton() {
  if (name && first_name && last_name && address_1 && city) {
    document.getElementById("button_ok").style.visibility = "visible";
    document.getElementById("button_ok").style.display = "block";
    document.getElementById("button_error").style.visibility = "hidden";
    document.getElementById("button_error").style.display = "none";
  }
  else {
    document.getElementById("button_ok").style.visibility = "hidden";
    document.getElementById("button_ok").style.display = "none";
    document.getElementById("button_error").style.visibility = "visible";
    document.getElementById("button_error").style.display = "block";
  }
}

function checkUpdateButton() {
  if (password1 && password2 && first_name && last_name && address_1 && city && user_email1) {
    document.getElementById("button_ok").style.visibility = "visible";
    document.getElementById("button_ok").style.display = "block";
    document.getElementById("button_error").style.visibility = "hidden";
    document.getElementById("button_error").style.display = "none";
  }
  else {
    document.getElementById("button_ok").style.visibility = "hidden";
    document.getElementById("button_ok").style.display = "none";
    document.getElementById("button_error").style.visibility = "visible";
    document.getElementById("button_error").style.display = "block";
  }
}