function countdown(a_timeleft)
{
	l_days = Math.floor(a_timeleft / 86400);
	a_timeleft %= 86400;
	l_hours = Math.floor(a_timeleft / 3600);
	a_timeleft %= 3600;
	l_minutes = Math.floor(a_timeleft / 60);
	a_timeleft %= 60;
	l_seconds = a_timeleft;
	var l_datelast = l_days + " " + multitude_ending(l_days, new Array("день", "дні", "днів")) + " ";
	l_datelast += l_hours + " " + multitude_ending(l_hours, new Array("година", "години", "годин")) + " ";
	l_datelast += l_minutes + " " + multitude_ending(l_minutes, new Array("хвилина", "хвилини", "хвилин")) + " ";
	l_datelast += l_seconds + " " + multitude_ending(l_seconds, new Array("секунда", "секунди", "секунд"));
	return(l_datelast);
}

function multitude_ending(a_number, a_names)
{
	i = 0;
	a_number = parseInt(a_number);
	a_number_str = a_number.toString();
	if ((a_number_str[a_number_str.length - 1] == "1") && (a_number != 11)) {
		return a_names[0];
	} else if ( ( (a_number_str[a_number_str.length - 1] == "2") ||
				(a_number_str[a_number_str.length - 1] == "3") ||
				(a_number_str[a_number_str.length - 1] == "4")
				) && ( ( (a_number > 0) && (a_number < 10) ) || (a_number > 20) ) ) {
		return a_names[1];
	} else {
		return a_names[2];
	}
	
}

function create_options_set(a_array, a_element, a_selected)
{
	for (key in a_array){
		if (a_array[key][1] instanceof Array) {
			 var new_element = document.createElement('optgroup');
			 new_element.setAttribute('label', a_array[key][0]);
			 create_options_set(a_array[key][1], new_element);
			 a_element.appendChild(new_element);
		} else {
			var new_element = document.createElement('option');
			new_element.setAttribute('value', a_array[key][1]);
			if (a_selected == a_array[key][1]) {
				new_element.setAttribute('selected', 'selected');
			}
			new_element.appendChild(document.createTextNode(a_array[key][0]));
			a_element.appendChild(new_element);
		}
	}
}

function get_checked_value(radioObj) {
	if (!radioObj)
		return "";
	var radioLength = radioObj.length;
	if (radioLength == undefined) {
		if (radioObj.checked) {
			return radioObj.value;
		} else {
			return "";
		}
	}
	for (var i = 0; i < radioLength; i++) {
		if (radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}


function get_xml_http_object()
{
	try {
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function clean_field(a_id)
{
	document.getElementById("last_name[" + a_id + "]").value = '';
	document.getElementById("name[" + a_id + "]").value = '';
	document.getElementById("patronymic[" + a_id + "]").value = '';
	document.getElementById("photo[" + a_id + "]").disabled = '';
	document.getElementById("alert[" + a_id + "]").innerHTML = '';
}

function state_changed()
{
	if (xmlHttp.readyState == 4) {
		var xmlDoc = xmlHttp.responseXML.documentElement;
		var l_id = xmlDoc.getElementsByTagName("registration_players_id")[0].childNodes[0].nodeValue;
		if (xmlDoc.getElementsByTagName("registration_status")[0].childNodes[0].nodeValue == "true") {
// 			if (xmlDoc.getElementsByTagName("registration_players_combatants")[0].childNodes[0].nodeValue == get_checked_value(document.getElementById("registration").elements["country"])) {
				clean_field(l_id);
				document.getElementById("last_name[" + l_id + "]").value =
					xmlDoc.getElementsByTagName("registration_players_last_name")[0].childNodes[0].nodeValue;
				document.getElementById("name[" + l_id + "]").value =
					xmlDoc.getElementsByTagName("registration_players_name")[0].childNodes[0].nodeValue;
				document.getElementById("patronymic[" + l_id + "]").value =
					xmlDoc.getElementsByTagName("registration_players_patronymic")[0].childNodes[0].nodeValue;
				document.getElementById("photo[" + l_id + "]").disabled = "disabled";
// 			} else {
// 				clean_field(l_id);
// 				document.getElementById("alert[" + l_id + "]").innerHTML = "Учасник з даним ІПН зарєєстрований за іншу сторону";
// 			}
		} else {
// 			document.getElementById("alert[" + l_id + "]").innerHTML = "";
		}
	}
}

var xmlHttp = false;

function check_in(a_element)
{
	var l_id = a_element.id.replace("identification_number[", "");
	l_id = l_id.replace("]", "");
	if (a_element.value.length == 10) {
		var xmlHttp = get_xml_http_object();
		if (!xmlHttp) {
			alert ("Ваш браузер не підтримує AJAX!");
			return;
		}
		xmlHttp.onreadystatechange = state_changed;
		xmlHttp.open("GET", base + 'registration/check_in/' + a_element.value + "_" + l_id + '.html', true);
		xmlHttp.send(null);
	} else {
		document.getElementById("photo[" + l_id + "]").disabled = '';
// 		document.getElementById("alert[" + l_id + "]").innerHTML = '';
	}
}

function check_in_all()
{
	var l_player_count = document.getElementById("player_count");
	num = 1;
	while (num <= l_player_count.value) {
		$element = document.getElementById("identification_number[" + num + "]");
		setTimeout("check_in(document.getElementById(\"identification_number[" + num + "]\"))", num * 300);
		num++;
	}
}

function is_int(a_element)
{
	if ((a_element.value.length > 0) && (a_element.value != 0)) {
		if(isNaN(Math.floor(a_element.value))){
			a_element.value = '';
		} else {
			a_element.value = Math.floor(a_element.value);
		}
	} else {
		a_element.value = '';
	}
}

function pattern_roll(a_img)
{
	l_img = document.getElementById("pattern_img");
	a_img_name = "resources/images/pattern/" + a_img.value + ".gif";
	l_img.title = a_img.value;
	l_img.alt = a_img.value;
	l_img.src = a_img_name;
}

function form_submit(a_form_name)
{
	function value_length(a_error, a_value, a_message, a_min_length)
	{
		if ((a_value.value.length == 0) || (a_value.value.length < a_min_length)) {
			alert("Помилка: Не вказано '" + a_message + "'.");
			return true;
		} else {
			return a_error;
		}
	}

	function count_value(a_error, a_value, a_message)
	{
		if (a_value.value == 0) {
			alert("Помилка: Не вказано '" + a_message + "'.");
			return true;
		} else {
			return a_error;
		}
	}

	function email_validate(a_error, a_email, a_message)
	{
		var reg_email = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		var reg_gmail = /^([A-Za-z0-9\.]{6,30})$/;
		if (reg_gmail.test(a_email)) {
			return a_error;
		} else {
			alert("Помилка: Не коректно вказана '" + a_message + "'.");
			return true;
		}
	}

	function mobile_validate(a_error, a_mobile, a_message)
	{
		var reg_ua = /^\+(38) \(([\d]{3})\) ([\d]{3})-([\d]{2})-([\d]{2})$/;
		var reg_md = /^\+(373) \(([\d]{2})\) ([\d]{2})-([\d]{2})-([\d]{2})$/;
		var reg_by = /^\+(37) \(([\d]{3})\) ([\d]{3})-([\d]{2})-([\d]{2})$/;
		if ((reg_ua.test(a_mobile)) || (reg_md.test(a_mobile)) || (reg_by.test(a_mobile))) {
			return a_error;
		} else {
			alert("Помилка: Не коректно вказаний '" + a_message + "'.");
			return true;

		}
	}

	if (l_form = document.getElementById(a_form_name)){
		l_error = false;
		l_team_name = document.getElementById("team_name");
		l_contact_email = document.getElementById("contact_email");
		l_city = document.getElementById("city");
		l_camo_type = document.getElementById("camo_type");
		l_commander_contacts_name = document.getElementById("commander_contacts_name");
		l_commander_contacts = document.getElementById("commander_contacts");
		l_cocommander_contacts_name = document.getElementById("cocommander_contacts_name");
		l_cocommander_contacts = document.getElementById("cocommander_contacts");
		l_player_count = document.getElementById("player_count");
		l_ok = document.getElementById("ok");
		l_error = value_length(l_error, l_team_name, "Назва команди (або Внекомандник - нік)", 2);
		l_error = email_validate(l_error, l_contact_email.value, "Контактна ел.пошта");
		l_error = value_length(l_error, l_city, "Місто", 2);
		l_error = value_length(l_error, l_commander_contacts_name, "Прізвище ім'я по-батькові (нік) командира", 1);
		l_error = mobile_validate(l_error, l_commander_contacts.value, "Номер телефону командира");
		//l_error = value_length(l_error, l_cocommander_contacts_name, "Прізвище ім'я по-батькові (нік) зам.командира", 1);
		//l_error = value_length(l_error, l_cocommander_contacts, "Номер телефону зам.командира", 1);
		num = 1;
		while(num <= l_player_count.value) {
			l_error = value_length(l_error, document.getElementById("last_name[" + num + "]"), "Прізвище учасника " + num, 2);
			l_error = value_length(l_error, document.getElementById("name[" + num + "]"), "Ім'я учасника " + num, 2);
			l_error = value_length(l_error, document.getElementById("patronymic[" + num + "]"), "По-батькові учасника " + num, 2);
			l_error = value_length(l_error, document.getElementById("identification_number[" + num + "]"), "ІПН учасника " + num, 10);
			if (!document.getElementById("photo[" + num + "]").disabled) {
				l_error = value_length(l_error, document.getElementById("photo[" + num + "]"), "Фото учасника " + num, 1);
			}
			num++;
		}

		if (l_ok.checked == "") {
			alert("Помилка: Не відміченний пункт згоди з правилами.");
			l_error = true;
		}

		if (l_error) {
			l_ok.checked = "";
			return false;
		} else {
			l_form.submit();
		}
	}
}

function calc()
{
	var sum = 0;
	var l_cost = document.getElementById("cost");
	var l_player_count = document.getElementById("player_count");
	var l_ok = document.getElementById("ok");
	l_ok.checked = "";
	num = 1;
	while (num <= l_player_count.value) {
		for (var key in events) {
			if (events[key]['required'] == 1) {
				sum += events[key]['price'];
			} else if (element = document.getElementById(key + "[" + num + "]")) {
				if (element.checked) {
					sum += events[key]['price'];
				} else if ((element.value > 0) && (element.type != 'checkbox')) {
					sum += events[key]['price'] * element.value;
				} else if ((element.type == 'select-one') && (element.value != "-")) {
					sum += events[key]['price'];
				}
			}
		}
		num++;
	}
	l_cost.innerHTML = sum;
}

function addremoveElement(a_status)
{
	var tbody = document.getElementById('game_names');
	player_count_current = document.getElementById('player_count_current').value;
	player_count_current = player_count_current * 1;
	player_count = document.getElementById('player_count').value;
	player_count = player_count * 1;
	if (player_count < player_count_current) {
		num = player_count_current;
		while (player_count < num) {
			for (k = 0; k <= 4; k++) {
				if (rm_element_tr = document.getElementById('player[' + num + "][" + k + "]")) {
					tbody.removeChild(rm_element_tr);
				}
			}
			num--;
		}
	}
	if ((a_status) && (nodes_p!=undefined)) {
		createElements(tbody, nodes_p, false);
		for (j = player_count_current + 1; j <= player_count; j++) {
			var element = document.getElementById('identification_number[' + j + ']');
			is_int(element);
			check_in(element);
		}
	} else {
		for (j = player_count_current + 1; j <= player_count; j++) {
			createElements(tbody, nodes_n, j);
		}
	}
	document.getElementById('player_count_current').value = document.getElementById('player_count').value;
}

function createElements(a_parent, a_nodes, id)
{
	for (var key in a_nodes) {
		var new_element = document.createElement(a_nodes[key].element);
		if ((a_nodes[key].attributes != undefined) && (typeof(a_nodes[key].attributes) == 'object')) {
			for (var attribute in a_nodes[key].attributes) {
				if ((id) && (((attribute == 'id') || (attribute == 'name') || (attribute == 'for')))) {
					if (a_nodes[key].element == 'tr') {
						new_element.setAttribute(attribute, a_nodes[key].attributes[attribute] + "[" + id + "][" + key + "]");
					} else {
						new_element.setAttribute(attribute, a_nodes[key].attributes[attribute] + "[" + id + "]");
					}
				} else {
					new_element.setAttribute(attribute, a_nodes[key].attributes[attribute]);
				}
			}
		}

		if (a_nodes[key].listeners != undefined) {
			for (var event in a_nodes[key].listeners) {
				var func = a_nodes[key].listeners[event];
				if (new_element.addEventListener) {
					new_element.addEventListener(event, a_nodes[key].listeners[event], false);
				} else if (new_element.attachEvent) {
					new_element.attachEvent('on' + event, a_nodes[key].listeners[event]);
				}
			}
		}

		if (a_nodes[key].onkeyup_ipn_func != undefined) {
			new_element.onkeyup = function() {is_int(this);check_in(this);};
		}

		if (a_nodes[key].textnode != undefined) {
			if (typeof(a_nodes[key].textnode) == 'object') {
				createElements(new_element, a_nodes[key].textnode, id);
			} else if (a_nodes[key].textnode != '') {
				if (a_nodes[key].textnode == 'id') {
					var text_node = document.createTextNode(id);
				} else {
					var text_node = document.createTextNode(a_nodes[key].textnode);
				}
				new_element.appendChild(text_node);
			}
		}
		a_parent.appendChild(new_element);
	}
}