// mail - XMLHttpRequest
var request = null;

try {
  request = new XMLHttpRequest();
}
catch (trymicrosoft) {
  try {
    request = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch (othermictosoft) {
    try {
      request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (failed) {
      request = null;
    }
  }
}

// mail - odeslani
function mail_send() {
  if (request == null)
    return false;
  if (!mail_validate())
    return false;
  document.getElementsByName("button")[0].disabled = true;
  document.getElementById("mail-error").style.color = "#666";
  document.getElementById("mail-error").innerHTML =
    document.getElementsByName("language")[0].value == 'cz'
      ? "Odesílám zprávu...<br>&nbsp;"
      : "Sending message...<br>&nbsp;";
  request.open("POST", "mail.php", true);
  request.onreadystatechange = mail_sent;
  request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  request.send(""
    + "&jmeno=" + encodeURI(document.getElementsByName("jmeno")[0].value)
    + "&phone=" + encodeURI(document.getElementsByName("phone")[0].value)
    + "&email=" + encodeURI(document.getElementsByName("email")[0].value)
    + "&message=" + encodeURI(document.getElementsByName("message")[0].value)
    );
}

// mail - validace
function mail_validate() {
  document.getElementById("mail-error").style.color = "#f33";
  if (document.getElementsByName("jmeno")[0].value.length < 3)
    return mail_error(100);
  if (document.getElementsByName("phone")[0].value.length < 1) {
    if (document.getElementsByName("email")[0].value.length < 1)
      return mail_error(104);
  }
  if (document.getElementsByName("phone")[0].value.length < 9) {
    if (document.getElementsByName("email")[0].value.length == 0)
      return mail_error(101);
  }
  if (document.getElementsByName("email")[0].value.length > 0) {
    if (document.getElementsByName("email")[0].value.length < 6
      || document.getElementsByName("email")[0].value.indexOf("@") == -1
      || document.getElementsByName("email")[0].value.indexOf(".") == -1 )
        return mail_error(102);
  }
  if (document.getElementsByName("message")[0].value.length < 3)
    return mail_error(103);
  return true;
}

// mail - vypis chyby
function mail_error(type) {
  if (document.getElementsByName("language")) {
    var language = document.getElementsByName("language")[0].value == 'cz' ? 'cz' : 'en';
    if (language == 'cz') {
      if (type == 100) text = "Vyplňte, prosím, své jméno.";
      else if (type == 101) text = "Vyplňte, prosím, svůj telefon.";
      else if (type == 102) text = "Neplatný formát mailové adresy.";
      else if (type == 103) text = "Vyplňte, prosím, text zprávy.";
      else if (type == 104) text = "Vyplňte, prosím, telefon nebo mailovou adresu.";
      else if (type == 200) text = "Je nám líto, ale Vaše zpráva nebyla odeslána.";
    }
    else if (language == 'en') {
      if (type == 100) text = "Please, fill your name.";
      else if (type == 101) text = "Please, fill your phone number.";
      else if (type == 102) text = "E-mail address has not valid format.";
      else if (type == 103) text = "Please, enter your message.";
      else if (type == 104) text = "Please, fill your phone number or e-mail address.";
      else if (type == 200) text = "We are sorry, your message was not sent.";
    }
    document.getElementById("mail-error").innerHTML = text + "<br>&nbsp;";
    document.getElementsByName("button")[0].disabled = false;
    return false;
  }
}

// mail - info o zpracovani
function mail_sent() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var xml_response = request.responseXML;
      try {
        mail_status = xml_response.getElementsByTagName("mail-status")[0].firstChild.nodeValue;
        mail_text = xml_response.getElementsByTagName("mail-text")[0].firstChild.nodeValue;
        if (mail_status.toLowerCase() != 'ok') {
          document.getElementById("mail-error").style.color = "#f33";
          document.getElementById("mail-error").innerHTML = mail_text + "<br>&nbsp;";
          document.getElementsByName("button")[0].disabled = false;
        }
        else {
          document.getElementById("mail").style.color = "#666";
          document.getElementById("mail").style.textAlign = "center";
          document.getElementById("mail").style.padding = "10px";
          document.getElementById("mail").innerHTML = mail_text;
        }
      }
      catch (error) {
        mail_error(200);
      }
    }
    else {
      mail_error(200);
    }
  }
}
