var errorColor = "#ff0000";
var okColor = "#00ff00";
var normalColor = "#666666";
var pos; // variable for posting information
var submitmail=true;
preloadImages("images/loading.gif");
 
function green(elem){
	elem.style.color=okColor;
	return true;
}
function red(elem){
	elem.style.color=errorColor;
	return true;
}
function blue(elem){
	elem.style.color=normalColor;	
}

function str_replace(str){
	str = str.replace(/&/g,"**am**");
	str = str.replace(/=/g,"**eq**");
	str = str.replace(/\+/g,"**pl**");
	return str;
}

function validateFields() {
	if (!submitmail) return false;
	var error = false;
	var mes="";
	var whiteSpace = /^[\s]+$/;
	var my_mail = /^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/;

	/*Name*/
	if (posName.value == '' || whiteSpace.test(posName.value))
		error = red(labName);
	else
		blue(labName);
	/* email */	
	if (posMail.value == '' || whiteSpace.test(posMail.value))
		error = red(labeMail);   
    else{
	    if (!my_mail.test(posMail.value)){
		    mes+='Принять адрес Вашей электронной почты мы не можем!<br />';
		    error=red(labeMail);
		}else
		    blue(labeMail);		
	}
    /* text */
	
	if (posText.value == '' || whiteSpace.test(posText.value)) 
		error = red(labText);
	else
		blue(labText);
	
	if (error===true){
		FormMes.innerHTML=("<span class='redtext'>"+"Заполните все обязательные для заполнения поля!"+(mes?"<br />"+mes:"")+"</span>");
	}else{
		sendPosEmail();
	}
	
}

function sendPosEmail() {	
    
	var page = "index.php";
	
	showContactTimer();
	
	/*преобразуем спецсимволы (&, +, =), что необходимо для метода пост*/
	
	var str1 = str_replace(posName.value);
	var str2 = str_replace(posOrg.value);
	var str3 = str_replace(posAdr.value);
	var str4 = str_replace(posTel.value);
	var str5 = str_replace(posMail.value);
	var str6 = str_replace(posText.value);
	
	var stuff = "mod=back&act=sendmail&name="+str1+"&org="+str2+"&adr="+str3+"&tel="+str4+"&mail="+str4+"&mail="+str5+"&text="+str6;
	loadXMLPosDoc(page,stuff);                                                                       
}

function showContactTimer () {
	FormMes.innerHTML = "<img src='images/loading.gif' align='middle' /> Передача данных... Пожалуйста подождите....";
	document.getElementById('sbm').disabled=true;
	sentTimer = setTimeout("hideContactTimer()",1000);
}

function hideContactTimer () {
	document.getElementById('sbm').disabled=false;
    clearTimeout (sentTimer);
}

function loadXMLPosDoc(url,posData) {
    if (!pos) pos = createXmlHttpRequestObject();	    
	pos.onreadystatechange = processPosChange;
    pos.open("POST", url, false);
	pos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    pos.setRequestHeader("Accept-Charset", "windows-1251;koi8-r;q=0.7,*;q=0.7");
	pos.send(posData);
}

function grabPosXML (tagName) {
     return pos.responseXML.documentElement.getElementsByTagName(tagName)[0].childNodes[0].nodeValue; 
}

function processPosChange(){
    if (pos.readyState == 4){
		// page is "OK"
        if (pos.status == 200){
            var error = false;
			
            if (grabPosXML("status_name")=="NOK")    
                error = red(labName);
                     
            if (grabPosXML("status_mail")=="NOK")    
                error = red(labeMail);
                
            if (grabPosXML("status_text")=="NOK")    
                error = red(labText);
			
			if(grabPosXML("status_full")=="NOK"){
				error = true;
				submitmail = false;
			}
                
            if (error==false){    // всё ок 
                var conf2 = grabPosXML("confirmation2");
                mess = (('<span style="color:green;">'+grabPosXML("confirmation")+(conf2=="none"?"":("<br />"+conf2))+'</span>'));
                clear_field(mess);
            }else{     // чёт не так
                var conf2 = grabPosXML("confirmation2"); 
                FormMes.innerHTML = ('<span style="color:red;">'+grabPosXML("confirmation")+(conf2=="none"?"":("<br />"+conf2))+'</span>');        
            }
                                    
		}else{
			FormMes.innerHTML = '<span style="color:red;">Ошибка передачи данных! Обратитесь к модератору сайта по e-mail, указанному на сайте</span>';		
		}
	}
}

function clear_field(mess){
	var fieldArea = document.getElementById('myform');
	var inputs = fieldArea.getElementsByTagName('input');
	var inputsLen = inputs.length;
	//alert(inputs.length);
	var tAreas = fieldArea.getElementsByTagName('textarea');
	var tAreasLen = tAreas.length;
	
	for ( i=0;i<inputsLen;i++) {
		if (inputs[i].getAttribute('type') == 'text') {
			inputs[i].value = '';
		}
	}
	for ( j=0;j<tAreasLen;j++ ) {
		tAreas[j].value = '';
	}
	mess = mess?mess:"";
	FormMes.innerHTML = mess;
	blue(labeMail);
	blue(labName);
	blue(labText);
	document.getElementById('sbm').disabled=false;
}

function createXmlHttpRequestObject(){ 
  var xmlHttp; 
  try{ 
    xmlHttp = new XMLHttpRequest(); 
  } 
  catch(e){ 
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0", 
                                    "MSXML2.XMLHTTP.5.0", 
                                    "MSXML2.XMLHTTP.4.0", 
                                    "MSXML2.XMLHTTP.3.0", 
                                    "MSXML2.XMLHTTP", 
                                    "Microsoft.XMLHTTP"); 
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++){ 
      try{ 
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]); 
      } 
      catch (e) {} 
    } 
  }  
  if (!xmlHttp){ 
    FormMes.innerHTML = '<span style="color:red;font-width:bold">AJAX не запущен, отправка данных невозможна!</span>';
	document.getElementById('sbm').disabled=true;
	submitmail = false;
  } 
  else{ 
    return xmlHttp;}
}

window.onload=function(){
    FormMes = document.getElementById('formmessage');
    posName = document.getElementById('user');
	labName = document.getElementById('labuser'); 
    posOrg = document.getElementById('org');
    posAdr = document.getElementById('adr'); 
    posTel = document.getElementById('tel');  
    posMail = document.getElementById('email');
	labeMail = document.getElementById('labemail');
    posText = document.getElementById('comments');
	labText = document.getElementById('labcomments');
    pos = createXmlHttpRequestObject();
}


