var error = new Array;
var current_balance, price;
var ajax = false;

$(document)
		.ready(
				function() {

					$('#region').change(function() {
						getCity(this.value);
					});

					$.getScript('js/plugins/jquery.maskedinput.js', function() {
						$('.phone').each(function() {
							masked(this);
						});
					});

					if ($.validator) {

						$.validator
								.addMethod(
										"phone",
										function(value, element) {

											if ($(element).rules().required) {

												var prefix = $(element).prev(
														'select').val();
												var start = codes[prefix].startNumber;

												var test = value.replace(
														/[^0-9]/g, '');
												var reg = new RegExp(
														'^' + start + '[0-9]{9}$',
														'ig');

												if (reg.test(test))
													return true;
												else
													return false;

											} else
												return true;
										}, "Для завершения регистрации укажите номер своего мобильного");

						$.validator
								.addMethod("acq_nick",
										function(value, element) {

									return true;
											var symbols_reg = new RegExp("[a-zA-Zа-яА-ЯёЁ0-9]", "i");
											var ru_reg = new RegExp("[a-zA-Z]+[0-9]", "gi");
											var en_reg = new RegExp("[а-ЯёЁ]+[0-9]", "gi");

											//console.log(symbols_reg.test(value));
											//console.log(ru_reg.test(value));
											//console.log(en_reg.test(value));

											if(ru_reg.test(value) && en_reg.test(value)) {
												return true;
											}
											return false;
										},
										'Ник может состоять только из русских или только латинских букв и цифр');
					}

					current_balance = parseInt($('#currentBalance').text());
					price = parseInt($('#price').text());

					window.setInterval(function() {
						document.location = document.URL;
					}, 1380000);
				});

function checkAjax() {

	var xmlHttp; // The request object.
	// Firefox, Opera 8.0+, Safari
	try {
		xmlHttp = new XMLHttpRequest();
	}
	// Internet Explorer
	catch (e) {
		try {
			xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e) {
				return false;
			}
		}
	}
	return true;
}
ajax = checkAjax();

function sIncrease(i, ii) { // Сортировка числового массива по возрастанию
	if (i > ii)
		return 1;
	else {
		if (i < ii)
			return -1;
		else
			return 0;
	}
}

function masked(input) {// создание поля ввода номера

	$(input).attr( {
		size : 25,
		maxlength : 25
	}).mask("(999) 999-99-99", {
		placeholder : "  "
	});

}

function translator(field, mode) {// транслитерация

	var text = $('#' + field).val();
	var cyr = [ "Щ", "щ", "Я", "я", "Ё", "ё", "Ю", "ю", "Ж", "ж", "Ч", "ч",
			"Ш", "ш", "Ц", "ц", "Э", "э", "А", "а", "Б", "б", "В", "в", "Г",
			"г", "Д", "д", "Е", "е", "З", "з", "И", "и", "Й", "й", "К", "к",
			"Л", "л", "М", "м", "Н", "н", "О", "о", "П", "п", "Р", "р", "С",
			"с", "Т", "т", "У", "у", "Ф", "ф", "Х", "х", "ъ", "Ъ", "Ы", "ы",
			"ь", "Ь" ];
	var lat = [ "Shh", "shh", "Ya", "ya", "Yo", "yo", "Yu", "yu", "Zh", "zh",
			"Ch", "ch", "Sh", "sh", "Cz", "cz", "E`", "e`", "A", "a", "B", "b",
			"V", "v", "G", "g", "D", "d", "E", "e", "Z", "z", "I", "i", "J",
			"j", "K", "k", "L", "l", "M", "m", "N", "n", "O", "o", "P", "p",
			"R", "r", "S", "s", "T", "t", "U", "u", "F", "f", "H", "h", "``",
			"``", "Y", "y", "'", "'" ];
	var reg = /[а-яёЁ]/i;
	var from_alphabeth = (reg.test(text)) ? cyr : lat;
	var to_alphabeth = (from_alphabeth == cyr) ? lat : cyr;
	var send_alphabeth = (from_alphabeth == cyr) ? 'lat' : 'cyr';

	for (i = 0; i < from_alphabeth.length; i++) {

		var letter = new RegExp(from_alphabeth[i], "g");
		text = text.replace(letter, to_alphabeth[i]);
	}

	$('#' + field).val(text);
	if (mode) {
		document.getElementById('message_alphabet').value = send_alphabeth;
		countSymbols(document.getElementById(field));
	}
	return false;
}

/* счётчик оставшихся символов */
function countSymbols(field, count_id, parts_id, price_id, mode) {
	if (isNaN(price))
		price = parseInt($(price_id).text());// if price isNaN

	var reg = /[а-яёЁ]/gi;
	var text = $(field).val();
	var max_part_length = (reg.test(text) && mode) ? 70 : 160;
	var max_parts = Math.floor(current_balance / price);

	if (max_parts > 10)
		max_parts = 10;// Максимальное количество частей

	/* максимальный размер одной части и какая часть */
	if (text.length > max_part_length) {

		max_part_length = max_part_length - 3;
		part = Math.ceil(text.length / max_part_length);
		start_offset = part * max_part_length - max_part_length;

	} else {
		part = 1;
		start_offset = 0;
	}

	var current_max = text.substring(start_offset, start_offset
			+ max_part_length).length;
	var rest_symbols = max_part_length - current_max;

	$(count_id).html(
			rest_symbols
					+ ruPostfix( [ '<br />символов', '<br />символ',
							'<br />символа' ], rest_symbols));
	$(parts_id).html(
			part
					+ ruPostfix(
							[ '<br />часть', '<br />часть', '<br />часть' ],
							part));
	$(price_id).text(part * price);
	$(price_id).next('span').text(
			ruPostfix( [ 'баллов', 'балл', 'балла' ], part * price));
}

function ruPostfix(postfix, value) {

	var reg_1 = /(0|5|6|7|8|9|11|12|13|14)$/;
	var reg_2 = /1$/;

	if (reg_1.test(value))
		return postfix[0];
	else {
		if (reg_2.test(value))
			return postfix[1];
		else
			return postfix[2];
	}
}

function toggleElems(hiddens, views, elem) {

	if (hiddens)
		$(hiddens).addClass('hidden').css('display', 'none');
	if (views)
		$(views).slideDown('fast');
	if (elem)
		$(elem).addClass('hidden').css('display', 'none');

	return false;
}

function create_element(name, attr, style, text, child) {// создание
															// элементов на
															// странице

	var elem = document.createElement(name);

	if (elem) {

		if (attr) {
			for (key in attr) {

				if (key == 'class' || key == 'className') {
					elem.className = attr[key];
				} else {
					if (key == 'id') {
						elem.id = attr[key];
					} else {
						elem.setAttribute(key, attr[key]);
					}
				}
			}
		}
		if (style) {
			for (key in style) {
				elem.style[key] = style[key];
			}
		}
		if (text) {
			elem.appendChild(document.createTextNode(text));
		}
		if (child) {

			if (typeof (child) == 'object') {

				if (!child.length) {
					elem.appendChild(child);
				} else {
					for (i = 0; i < child.length; i++) {
						elem.appendChild(child[i]);
					}
				}
			} else {
				elem.innerHTML = elem.innerHTML + child;
			}
		}

		return elem;

	} else
		return false;
}

function getCity(region) {

	$.ajax( {
		url : 'ajax/getCity.php',
		type : 'POST',
		dataType : 'xml',
		data : {
			region : region
		},
		beforeSend : function() {
			$('#city').children('option').remove();
		},
		success : function(result) {

			if (typeof result == 'string') {
				// если это IE то создаем ActiveX объект и приобразуем строковую
				// переменную в XML
		data = new ActiveXObject('Microsoft.XMLDOM');
		data.async = false;
		data.loadXML(result);
	} else {
		data = result;
	}

	var count = 0;
	$('item', data).each(function(i, item) {

		var option = create_element('option', {
			value : $(item).attr('value')
		}, false, $(item).text());
		$('#city').append(option);
		count = i;
	});

	if ($('#city').is(':disabled'))
		$('#city').attr('disabled', 0);
	if (count <= 1)
		$('#city').attr('disabled', 1);
}
	});
}

String.prototype.get_mail = function(name, fake_1, domain, fake_2, host) {

	var href = name + '@' + domain + '.' + host;
	document.write('<a href="mailto:' + href + '">' + href + '</a>');
}

function confirm_mail(link) {

	$.ajax( {
		url : $(link).attr('href'),
		type : 'GET',
		dataType : 'json',
		success : function(result) {
			alert(result.result);
		}
	});

	return false;
}

function buy_status(type) {
	$.ajax( {
		url : 'ajax/chat/buy_status.php',
		type : 'POST',
		dataType : 'json',
		data : {
			type : type
		},
		beforeSend : function() {
		},
		success : function(result) {
			if (result.result) {
				$('#currentBalance').html(result.balance);
				$('#status_status').html("V.I.P.-пользователь");
				// $('#buy_status'+type).replaceWith(result.message);
	} else {
		$('#buy_status_msg' + type).html(result.message);
	}
}
	});
}

