var http = createRequestObject();
var real;

function createRequestObject() {
	var xmlhttp;
	try { xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); }
  catch(e) {
    try { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
    catch(f) { xmlhttp=null; }
  }
  if(!xmlhttp&&typeof XMLHttpRequest!="undefined") {
  	xmlhttp=new XMLHttpRequest();
  }
	return  xmlhttp;
}

function sendRequest() {
	var rnd = Math.random();
	var name = escape(document.getElementById("name").value);
	var email = escape(document.getElementById("email").value);
	var subject = escape(document.getElementById("subject").value);
	var body = escape(document.getElementById("body").value);
         showContactTimer();
	try{
    http.open('POST', 'js/formsend.php');
    http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http.onreadystatechange = handleResponse;
    http.send('name='+name+'&email='+email+'&subject='+subject+'&body='+body+'&rnd='+rnd+'&valid='+valid);
	}
	catch(e){
         document.getElementById("send_info").innerHTML = "Ошибка отправки письма!";
         hideContactTimer();
       }
	finally{
 }
}

function showContactTimer() {
 document.getElementById("form_contacts").disabled = true;
 document.getElementById("loading").style.display = "block";  //Visible Image status
 document.getElementById("konvert").src = 'img/gray_konvert.png';
 document.getElementById("email_check").src = 'img/mail_vgray.png';
 document.getElementById("name_check").src = 'img/mail_vgray.png';
 document.getElementById("subject_check").src = 'img/mail_vgray.png';
 document.getElementById("body_check").src = 'img/mail_vgray.png';
 document.getElementById("valid_check").src = 'img/mail_vgray.png';
 document.getElementById("send_info").innerHTML = "Идет отправка письма. Пожалуйста, подождите...";
 sentTimer = setTimeout("hideContactTimer()",6000);
}

function GetRandomNum() {
var areal = Math.random() + "";    
 real = areal.substring(2,6);
 document.getElementById('spambot').innerHTML = real;
}


function ClearContactForm() {
 document.getElementById("konvert").src = 'img/color_konvert.png';
 document.getElementById("name").value = "";
 document.getElementById("email").value = "";
 document.getElementById("subject").value = "";
 document.getElementById("body").value = "";
 document.getElementById("valid").value = "";
 document.getElementById("email_check").src = 'img/mail_x.png';
 document.getElementById("name_check").src = 'img/mail_x.png';
 document.getElementById("subject_check").src = 'img/mail_x.png';
 document.getElementById("body_check").src = 'img/mail_x.png';
 document.getElementById("valid_check").src = 'img/mail_x.png';
 GetRandomNum();
}

function hideContactTimer() {
  document.getElementById("loading").style.display = "none"; //скрываем картинку статуса
  document.getElementById("form_contacts").disabled = false;
  ClearContactForm();

 if (document.getElementById("send_info").innerHTML == "Ошибка отправки письма!") {
  } else {
   document.getElementById("send_info").innerHTML = "Письмо успешно отправлено!";
 }
}

function CheckMail(){
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
var returnval=emailfilter.test(document.getElementById('email').value)
if (returnval==false) {
 document.getElementById('email_check').src = 'img/mail_x.png';
  } else {
 document.getElementById('email_check').src = 'img/mail_v.png';
  }
if (document.getElementById('name').value != '') {
 document.getElementById('name_check').src = 'img/mail_v.png';
  } else {
 document.getElementById('name_check').src = 'img/mail_x.png';
  }
if (document.getElementById('subject').value != '') {
 document.getElementById('subject_check').src = 'img/mail_v.png';
  } else {
 document.getElementById('subject_check').src = 'img/mail_x.png';
  }
if (document.getElementById('body').value != '') {
 document.getElementById('body_check').src = 'img/mail_v.png';
  } else {
 document.getElementById('body_check').src = 'img/mail_x.png';
  }
if (real !== document.getElementById("valid").value) {
 document.getElementById('valid_check').src = 'img/mail_x.png';
  } else {
 document.getElementById('valid_check').src = 'img/mail_v.png';
  }
}

function check_values() {
	var valid = '';

if (document.getElementById("name").value != "") {
} else {
 document.getElementById("send_info").innerHTML = "Введите свое имя.";
 document.getElementById("name").focus();
return false;
}
if (document.getElementById("email").value != "") {
} else {
 document.getElementById("send_info").innerHTML = "Введите почтовый адрес.";
 document.getElementById("email").focus();
return false;
}
if(isEmail(document.getElementById("email").value)) {
} else {
 document.getElementById("send_info").innerHTML = "Проверьте правильность почтового адреса.";
 document.getElementById("email").focus();
return false;
}
if (document.getElementById("subject").value != "") {
} else {
  document.getElementById("send_info").innerHTML = "Введите тему сообщения.";
 document.getElementById("subject").focus();
return false;
}
if (document.getElementById("body").value != "") {
} else {
 document.getElementById("send_info").innerHTML = "Введите текст письма.";
 document.getElementById("body").focus();
return false;
}
if(real !== document.getElementById("valid").value) {
 document.getElementById("send_info").innerHTML = "Введите отображаемое число.";
 document.getElementById("valid").focus();
return false;
}
sendRequest();
}

function handleResponse() {
	try{
    if((http.readyState == 4)&&(http.status == 200)){
    	var response = http.responseText;
//      document.getElementById("send_info").innerHTML = response;
//      document.getElementById("send_info").innerHTML = "Идет отправка письма. Пожалуйста, подождите...";

		}
  }
	catch(e){}
	finally{}
}

function isUndefined(a) {
   return typeof a == "undefined";
}

function trim(a) {
	return a.replace(/^s*(S*(s+S+)*)s*$/, "$1");
}

function isEmail(a) {
   return (a.indexOf(".") > 0) && (a.indexOf("@") > 0);
}
