﻿function sendForm(oForm, lang)
{

//alert(lang);

// define user messages array	
	var user_messages = new Array();
	user_messages['name_en'] = 'Fill in the field, please [Your Name]';
	user_messages['adress_en'] = 'Fill in the field, please [Country, town]';	
	user_messages['company_en'] = 'Fill in the field, please [Company]';	
	user_messages['phone_en'] = 'Fill in the field, please [Phone]';		
	user_messages['message_en'] = 'Fill in the field, please [Message]';

	user_messages['name_ru'] = 'Пожалуйста, заполните поле [Ваше имя]';	
	user_messages['adress_ru'] = 'Пожалуйста, заполните поле [Страна, город]';	
	user_messages['company_ru'] = 'Пожалуйста, заполните поле [Компания]';	
	user_messages['phone_ru'] = 'Пожалуйста, заполните поле [Телефон]';		
	user_messages['message_ru'] = 'Пожалуйста, заполните поле [Ваш вопрос]';		

	user_messages['name_ua'] = "Будь ласка, заповните поле [Ваше ім'я]";	
	user_messages['adress_ua'] = 'Будь ласка, заповните поле [Країна, місто]';	
	user_messages['company_ua'] = 'Будь ласка, заповните поле [Компанія]';	
	user_messages['phone_ua'] = 'Будь ласка, заповните поле [Телефон]';		
	user_messages['message_ua'] = 'Будь ласка, заповните поле [Ваше питання]';


//	var oForm = document.forms[0];

		if(oForm.name.value == "")
		{
			alert(user_messages['name_'+lang]);
			oForm.name.focus()
			return false;
		}
		
		if(oForm.adress.value == "")
		{
			alert(user_messages['adress_'+lang]);
			oForm.adress.focus()
			return false;
		}

		if(oForm.company.value == "")
		{
			alert(user_messages['company_'+lang]);
			oForm.company.focus()
			return false;
		}

		if(oForm.phone.value == "")
		{
			alert(user_messages['phone_'+lang]);
			oForm.phone.focus()
			return false;
		}
		
		if(oForm.message.value == "")
		{
			alert(user_messages['message_'+lang]);
			oForm.message.focus()
			return false;
		}
		

		//var oForm = document.forms[0];
		var sBody = getRequestBody(oForm);
		//alert("sBody = " + sBody);
        
           var oXmlHttp = zXmlHttp.createRequest();
           oXmlHttp.open("post", oForm.action, true);
           oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

            oXmlHttp.onreadystatechange = function () {
                if (oXmlHttp.readyState == 4) {
					//alert("oXmlHttp.readyState = " + oXmlHttp.readyState);
					//alert("oXmlHttp.status = " + oXmlHttp.status);					
                    if (oXmlHttp.status == 200) {
                        saveResult('action-success', lang, oForm.name.value);
                    } else {
                        saveResult('action-error', lang, oForm.name.value);
                    }
                }            
            };
            oXmlHttp.send(sBody);  


}



function getRequestBody(oForm) {
           var aParams = new Array();
            
            for (var i=0 ; i < oForm.elements.length; i++) {
                var sParam = encodeURIComponent(oForm.elements[i].name);
                sParam += "=";
                sParam += encodeURIComponent(oForm.elements[i].value);
                aParams.push(sParam);
            } 
            
            return aParams.join("&");        
        }
		

function saveResult(action, lang, username) {
	
	//alert("action = " + action);

	switch (action) {

		case "action-success":
			switch (lang) {
				case "ru":
					var message = "Сообщение отправлено!";
					var message_large = "Ваше сообщение отправлено. Мы свяжемся с Вами в ближайшее время.";
					break;
				case "ua":
					var message = "Повідомлення відправлене!";		
					var message_large = "Ваше повідомлення відправлене. Ми зв'яжемося з Вами найближчим часом.";					
					break;
				case "en":
					var message = "Message is sent!";	
					var message_large = "Your message is sent. We shall contact you in the near future.";					
					break;
			}
			break;
			
		case "action-error":
			switch (lang) {
				case "ru":
					var message = "Произошла ошибка.";
					var message_large = "В процессе отправки сообщения произошла ошибка. Просим Вас связаться с нами по телефону.";					
					break;

				case "ua":
					var message = "Виникла помилка.";		
					var message_large = "У процесі відправлення повідомлення виникла помилка. Просимо Вас зв'язатися з нами по телефону.";	
					break;
					
				case "en":
					var message = "There was a error";		
					var message_large = "During sending the message there was a error. We ask you to call us.";	
					break;
			}
			break;			

	}

	var divStatus = document.getElementById("contact-form-result");
	divStatus.innerHTML = message;
	//alert(username + ", " + message);		
	alert(message_large);		
	
}



function divAction(subobj, action) {

	if (action == 'open' || action == 'undefined') {
		document.getElementById(subobj).style.display = 'block';	
	} else {
		document.getElementById(subobj).style.display = 'none';
	}

}



// Function show 'Add confession comments' form
function showContactForm(curobj, subobj, position) {

	if (position == 'undefined') {
		position = 'bottom';
	}

	if (document.getElementById) {

		var subobj = document.getElementById(subobj);
		subobj.style.left = getposOffset(curobj, position, 'left') + 'px';
		subobj.style.top = getposOffset(curobj, position, 'top') + 'px';
		
		// retrieve the name typed by the user on the form
		document.getElementById("name").value = "";
		document.getElementById("adress").value = "";	
		document.getElementById("company").value = "";			
		
		subobj.style.display = 'block';
		return false;

	} else {
		return true;
	}

}



// Function calculates positions 'Comments form' on the screen
function getposOffset(overlay, position, offsettype) {
	
	var leftPositionMinus = 95;			
	if (position == 'top') {
		var topPositionMinus = -20;	
	} else {
		var topPositionMinus = 298;			
	}
	
    var totaloffset = (offsettype == 'left') ? (overlay.offsetLeft - leftPositionMinus) : (overlay.offsetTop - topPositionMinus);
    var parentEl = overlay.offsetParent;
    while (parentEl != null) {

	totaloffset = (offsettype == 'left') ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
	parentEl = parentEl.offsetParent;
    }
    return totaloffset;
}
