function createXHR() {
	try { return new XMLHttpRequest(); } catch(e) {}
	try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {}
	try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) {}
	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
	alert("XMLHttpRequest not supported");
	return null;
}
function sendRequestXML(request, url, out_name) {
	var xhr = createXHR();
	if(xhr)
	{
		xhr.open("POST", url, true);
		xhr.setRequestHeader("Content-Type", "text/xml");
		xhr.onreadystatechange = function() {handleResponse(xhr, out_name);};
		xhr.send(request);
	}
}
function handleResponse(xhr, out_name) {
	if(xhr.readyState == 4 && xhr.status == 200) {
		var output = document.getElementById(out_name);
		output.innerHTML = xhr.responseText;
	}
}
function sendFormData() {
	var data = false;
	if(data = checkFormData()) {
		var url = '/order_form/controller.php';
		var out_name = 'output';
		sendRequestXML(data, url, out_name);
		document.order_data.name.value = '';
		document.order_data.phone.value = '';
		document.order_data.email.value = '';
		document.order_data.add_info.value = '';
	}
}
function checkFormData() {
	var warnings = false;
	var name = killSpecialChars(document.order_data.name.value);
	if(name == '') {
		warnings = true;
		var warning = document.getElementById('name_warn');
		warning.style.display = 'block';
		warning.style.color = 'red';
		warning.innerHTML = 'Поле &laquo;Ф. И. О.&raquo; должно быть заполнено!';
	}
	else {
		var warning = document.getElementById('name_warn');
		warning.style.display = 'none';
		var data = '<?xml version="1.0" encoding="UTF-8" ?><root><name>' + name + '</name>';
	}
	var phone = document.order_data.phone.value;
	if(phone == '') {
		warnings = true;
		var warning = document.getElementById('phone_warn');
		warning.style.display = 'block';
		warning.style.color = 'red';
		warning.innerHTML = 'Поле &laquo;Телефон&raquo; должно быть заполнено!';
	}
	else if(phone.search(/^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$/i) == -1) {
		warnings = true;
		var warning = document.getElementById('phone_warn');
		warning.style.display = 'block';
		warning.style.color = 'red';
		warning.innerHTML = 'Пожалуйста, введите корректный номер телефона.';
	}
	else {
		var warning = document.getElementById('phone_warn');
		warning.style.display = 'none';
		if(!warnings) {
			data += '<phone>' + phone + '</phone>';
		}
	}
	var email = document.order_data.email.value;
	if(email.search(/^[\w'#$%&'*+-/=?*_'.{|}~]+@(?:[a-z\d][a-z\d-]*(?:\.[a-z\d][a-z\d-]*)?)+\.(?:[a-z][a-z\d-]+)$/i) == -1 && email != '') {
		warnings = true;
		var warning = document.getElementById('email_warn');
		warning.style.display = 'block';
		warning.style.color = 'red';
		warning.innerHTML = 'Пожалуйста, введите корректный email.';
	}
	else {
		var warning = document.getElementById('email_warn');
		warning.style.display = 'none';
		if(!warnings) {
			data += '<email>' + email + '</email>';
		}
	}
	if(warnings) {
		return false;
	}
	else {
		var add_info = killSpecialChars(document.order_data.add_info.value);
		var project_url = document.order_data.project_url.value;
		data += '<add_info>' + add_info + '</add_info><url>' + project_url + '</url></root>';
		return data;
	}
}
function killSpecialChars(text) {
	text = text.replace(/&/g, '&amp;');
	text = text.replace(/>/g, '');
	text = text.replace(/</g, '');
	return text;
}
function showOrderForm(url) {
	var win_url = '/order_form/view.php?url=' + url;
	window.open(win_url, 'order_form', "width=400,height=430,status=yes,resizable=yes, top=200, left=200");
}
