var request = null;

function createRequest() {
  try {
    request = new XMLHttpRequest();
  }
  catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (failed) {
        request = null;
      }
    }
  }
  if (request == null) alert ("Error creating request object!");
}


function is_valid(text) {
  //alert(text);
  if (text.search(/[^-\.a-zA-Z0-9_]/) == -1) return true;
  //if (text.search(/(([a-zA-Z0-9])+([-\._])?([a-zA-Z0-9]))+/)) return true;
  //if (text.search(/(([a-zA-Z0-9])+([-\._])([a-zA-Z0-9])+)+/)) return true;
  else return false;
}

function is_valid_email(email){
  if (!email.match(/^[-A-Z0-9._%+]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i)){
      return false;
  }
  else {
    return true;
  }
}

function checkUserAlias() {

  var userAlias = document.getElementById("users_alias").value;
  createRequest();
  var url = "ajax-test.php?user-alias="+escape(userAlias);
  request.open("GET", url, true);
  request.onreadystatechange = updateInfoSpan;
  request.send(null);
}


function checkEmail() {

  var emailEl = document.getElementById("users_email");
  var email = emailEl.value;
  if (is_valid_email(email)) {
    emailEl.style.backgroundColor = "#99ff99";
  }
  else {
    emailEl.style.backgroundColor = "#ff9999";
    overlib('Bitte geben Sie eine GÜLTIGE E-Mail-Adresse ein!',ANCHOR,'users_email',NOANCHORWARN,ANCHORALIGN,'UL','LL',ANCHORX,20,ANCHORY,5);
  }
}


function checkEmailRepeat(event) {

  var email1El = document.getElementById("users_email");
  var email2El = document.getElementById("users_email_repeat");
  var email1 = email1El.value;
  var email2 = email2El.value;
  if (email2.length < email1.length) {
    if (email1.substr(0, email2.length) == email2) {
      if (email2.length > 0) nd();
      email2El.style.backgroundColor = "#ffff66";
    }
    else {
      email2El.style.backgroundColor = "#ff9999";
      overlib('Die E-Mail-Adresse und die Wiederholung stimmen nicht überein!',ANCHOR,'users_email_repeat',NOANCHORWARN,ANCHORALIGN,'LL','UL',ANCHORX,20,ANCHORY,-5);
    }
  }
  else if (email2.length == email1.length) {
    if (email2 == email1) {
      nd();
      email2El.style.backgroundColor = "#99ff99";
    }
    else {
      email2El.style.backgroundColor = "#ff9999";
      overlib('Die E-Mail-Adresse und die Wiederholung stimmen nicht überein!',ANCHOR,'users_email_repeat',NOANCHORWARN,ANCHORALIGN,'LL','UL',ANCHORX,20,ANCHORY,-5);
    }
  }
  else {
    email2El.style.backgroundColor = "#ff9999";
    overlib('Die E-Mail-Adresse und die Wiederholung stimmen nicht überein!',ANCHOR,'users_email_repeat',NOANCHORWARN,ANCHORALIGN,'LL','UL',ANCHORX,20,ANCHORY,-5);
  }
}


function checkPass() {

  var pass1El = document.getElementById("users_password");
  var pass2El = document.getElementById("users_password_repeat");
  var pass1 = pass1El.value;
  var pass2 = pass2El.value;

  if (pass2.length < pass1.length) {
    if (pass1.substr(0, pass2.length) == pass2) {
      if (pass2.length > 0) nd();
      pass2El.style.backgroundColor = "#ffffff"; //"#ffff66";  weiss statt gelb
    }
    else {
      pass2El.style.backgroundColor = "#ff9999";
      overlib('Das Passwort und die Wiederholung stimmen nicht überein!',ANCHOR,'users_password_repeat',NOANCHORWARN,ANCHORALIGN,'LL','UL',ANCHORX,20,ANCHORY,-5);
    }
  }
  else if (pass2.length == pass1.length) {
    if (pass2 == pass1) {
      nd();
      pass2El.style.backgroundColor = "#99ff99";
    }
    else {
      pass2El.style.backgroundColor = "#ff9999";
      overlib('Das Passwort und die Wiederholung stimmen nicht überein!',ANCHOR,'ausers_password_repeat',NOANCHORWARN,ANCHORALIGN,'LL','UL',ANCHORX,20,ANCHORY,-5);
    }
  }
  else {
    pass2El.style.backgroundColor = "#ff9999";
    overlib('Das Passwort und die Wiederholung stimmen nicht überein!',ANCHOR,'users_password_repeat',NOANCHORWARN,ANCHORALIGN,'LL','UL',ANCHORX,20,ANCHORY,-5);
  }
}


function updateInfoSpan() {

  var userAliasEl = document.getElementById("users_alias");
  var userAlias = userAliasEl.value;
  if  (userAlias.length < 1) userAliasEl.style.backgroundColor="#FFFFFF";
  else {
    if (userAlias.length < 3) {
      if (is_valid(userAlias)) {
       userAliasEl.style.backgroundColor="#FFFF66";
       overlib('Der Benutzername kann aus 3 bis 16 Zeichen bestehen: nur Buchstaben (klein/gro&szlig;, keine Umlaute), Ziffern, Punkt, Bindestrich sowie Unterstrich sind erlaubt.',ANCHOR,'users_alias',NOANCHORWARN,ANCHORALIGN,'UR','LL');
      }
      else {
       userAliasEl.style.backgroundColor="#FF9999";
       overlib('Der Benutzername darf nur Buchstaben (gro&szlig;/klein, keine Umlaute), Ziffern, Punkt, Bindestrich sowie Unterstrich enthalten!',ANCHOR,'users_alias',NOANCHORWARN,ANCHORALIGN,'UR','LL');
      }
    }
    else {
      if (request.readyState == 4) {
        if (!is_valid(userAlias) ) { // || request.responseText == true) {
         userAliasEl.style.backgroundColor="#FF9999";
         overlib('Der Benutzername kann aus 3 bis 16 Zeichen bestehen: nur Buchstaben (klein/gro&szlig;, keine Umlaute), Ziffern, Punkt, Bindestrich sowie Unterstrich sind erlaubt.',ANCHOR,'users_alias',NOANCHORWARN,ANCHORALIGN,'UR','LL');
        }
        else if (request.responseText == true) {
         userAliasEl.style.backgroundColor="#FF9999";
         overlib('Der Benutzer mit diesem Namen existiert schon!',ANCHOR,'users_alias',NOANCHORWARN,ANCHORALIGN,'UR','LL');
        }
        else {
          userAliasEl.style.backgroundColor="#99FF99";
          nd();
        }
      }
    }
  }
}

