var number_defined = false
var number = ''

var make_translit = false
var rus_maxlen = 160
var maxlen = 160
var show_message_len_alert = false

function mainform_reset()
{
	$('header_logo').innerHTML = '<span></span>'

	$('mainform').reset()
	number_defined = false
	number = ''
	$('mno-group').className = 'mno-group hidden'
	$('fieldset').className = ''
	$('send-div').className = 'send-div'
	$('send').value = 'Отправить СМС'
	$('mainform').className = 'mainform' 
	$('feedback').className = 'hidden' 
	
	$('light').style.display = 'none'
	$('fade').style.display = 'none'

	$('message_signature').removeClassName('hidden')
	$('message_len_alert').addClassName('hidden')

	ph1.onBlur(); ph2.onBlur(); ph3.onBlur(); ph4.onBlur();
}

function send_number(phone_number)
{
	if (phone_number == 'dzjuck' 
		|| phone_number == 'Рыжий' || phone_number == 'рыжий' 
		|| phone_number == 'Лавров' || phone_number == 'лавров' )
		$('phone').value = phone_number = '8 905 85 90048'
	else if (phone_number == 'Найк' || phone_number == 'Найку' || phone_number == 'найк' || phone_number == 'найку')
		$('phone').value = phone_number = '922 203 4756'
	else if (phone_number == 'synergy' || phone_number == 'Synergy')
		$('phone').value = phone_number = '950 649 39 88'
	else if (phone_number == 'pit' || phone_number == 'Pit')
		$('phone').value = phone_number = '9221469496'
	else if (phone_number == 'бус' || phone_number == 'Бус')
		$('phone').value = phone_number = '912 26 96165'
	else if (phone_number == 'kolmerg' || phone_number == 'Kolmerg')
		$('phone').value = phone_number = '8 912 69 278 34'
	else if (phone_number == 'Маша' || phone_number == 'маша')
		$('phone').value = phone_number = '9226002979'
	else if (phone_number == 'Миша' || phone_number == 'миша')
		$('phone').value = phone_number = '8 902 87 98472'
	else if (phone_number == 'Infuse' || phone_number == 'infuse')
		$('phone').value = phone_number = '8 906 81 15605'
	else if (phone_number == 'Жаков' || phone_number == 'жаков')
		$('phone').value = phone_number = '912 20 99 538'
	else if (phone_number == 'Smolka' || phone_number == 'smolka')
		$('phone').value = phone_number = '8 922 619 01 86'
	else if (phone_number == 'Олька' || phone_number == 'олька')
		$('phone').value = phone_number = '8 909 00 58664'
	else if (phone_number == 'Спиридон' || phone_number == 'спиридон' || phone_number == 'СПИРИДОН' )
		$('phone').value = phone_number = '8 902 26 17582'
	else if (phone_number == ':-)')
		$('phone').value = phone_number = '8 915 19 90446'
	else if (phone_number == '13')
		$('phone').value = phone_number = '9151715209'
	else if (phone_number == 'Скрипник' || phone_number == 'скрипник')
		$('phone').value = phone_number = '9126937992'
	else if (phone_number == 'Геша' || phone_number == 'геша')
		$('phone').value = phone_number = '8 922 20 76943'
	else if (phone_number == 'nop')
		$('phone').value = phone_number = '9222006076'
	else if (phone_number == 'raijin')
		$('phone').value = phone_number = '89028768850'
	else if (phone_number == 'Insy' || phone_number == 'insy')
		$('phone').value = phone_number = '9058030018'
	else if (phone_number == 'Tammy' || phone_number == 'tammy')
		$('phone').value = phone_number = '9022694806'
	else if (phone_number == 'Ant' || phone_number == 'ant')
		$('phone').value = phone_number = '9089002975'
	else if (phone_number == 'Rp' || phone_number == 'rp')
		$('phone').value = phone_number = '9089047691'
	else if (phone_number == 'Dw' || phone_number == 'dw')
		$('phone').value = phone_number = '9086300180'
	else if (phone_number == 'Olg' || phone_number == 'olg')
		$('phone').value = phone_number = '9506543029'
	else if (phone_number == 'Mini' || phone_number == 'mini')
		$('phone').value = phone_number = '9506461470'
	else if (phone_number == 'Dev' || phone_number == 'dev')
		$('phone').value = phone_number = '9045469897'
	else if (phone_number == 'Ms' || phone_number == 'ms')
		$('phone').value = phone_number = '9068056016'
	else if (phone_number == 'Mr' || phone_number == 'Ms')
		$('phone').value = phone_number = '9049807994'
	else if (phone_number == 'Stas' || phone_number == 'stas')
		$('phone').value = phone_number = '9090089846'
	else if (phone_number == 'Bjornd' || phone_number == 'bjornd')
		$('phone').value = phone_number = '8 912 6 577 188'

                                           
	var phone_number = phone_number.replace(/[^0-9]/g, '').replace(/^(8|7)/, '').substring(0, 7)
	if (number == phone_number)
		return
	if (number_defined)
	{
		number_defined = false
		number = ''
		undefine_opsos()
	}
	if (phone_number.length < 7)
		return

	number_defined = true
	number = phone_number
	$('phone').className = "waiting"

	_send_number(phone_number, 'captcha_div')
}

function _send_number(phone_number, captcha_div_id)
{
	new Ajax.Request('scripts/send_number.php', 
	{
		method: 'get',
		parameters: {phone: phone_number},
		onSuccess: function(transport) 
		{
			$('phone').className = ""

//	$('send_result').innerHTML = '<pre>' + transport.responseText + '</pre>'
//alert(transport.responseText)
			var res = transport.responseText.evalJSON()
			if (res.success != '0')
			{
				$('mno-text').style.background = 'url(css/mno/' + res.opsos + '.png) no-repeat 0 2px;' 
				$('mno-text').className = 'mno-text opsos'
				$('mno-text').innerHTML = '<strong>' + res.opsos_name + '</strong>'
				$('mno-group').className = 'mno-group'

				make_translit = res.make_translit
				rus_maxlen = res.rus_maxlen
				maxlen = res.maxlen
				calc_len()
			}
			else
			{
				if (res.error_msg)
					show_error(res.error_msg)
				else
					show_error('Не удалось определить оператора :(<br />Проверьте правильность номера или, пожалуйста, сообщите нам об ошибке.')

				return 
			}
			
			$('session_id').value = res.session_id
			$('opsos').value = res.opsos
			$('params').value = res.params
			synch_forms_from_main_to_captcha()

			if (res.captcha != "")
			{
				$(captcha_div_id).innerHTML = '<a href="javascript:;">' + res.captcha + '</a>'
				$(captcha_div_id).style.display = "block"
				$('captcha').style.display = "block"
			}
			else
			{
				$(captcha_div_id).style.display = "none"
				$('captcha').style.display = "none"
			}
		},
		onFailure: function(transport) { alert('Не удалось определить оператора :(<br />Проверьте правильность номера или, пожалуйста, сообщите нам об ошибке.') }
	})
}

function undefine_opsos()
{
	$('mno-group').className = 'mno-group hidden'
	$('opsos').value = ''
	$('captcha').value = ''
	$('captcha_div').innerHTML = ''
}

function show_error(msg, reshow_captcha)
{
	$('captcha_error').style.display = 'none'
	$('light_msg').style.display = 'block'
	$('light_msg').innerHTML = msg
	$('light').style.display = 'block'
	$('fade').style.display = 'block'

	if (reshow_captcha)
		$('close_light_id').onclick = function(event){ close_light(true) }
	else
		$('close_light_id').onclick = function(event){ close_light() }

	$('close_light_id').blur()
}

function synch_forms_from_main_to_captcha()
{
	//init captcha form
	var form_values = $('mainform').getInputsValues()
	var form_captcha = $('mainform-captcha')
	form_values.each
	(
		function(pair) 
		{
			if (form_captcha[pair.key] != undefined && pair.key != 'captcha')
				form_captcha[pair.key].value = pair.value
		}
	)
}

function show_captcha_error()
{
	reload_captcha('captcha_div-captcha')

	ph4.onBlur();

	$('captcha_error').style.display = 'block'
	$('light').style.display = 'block'
	$('fade').style.display = 'block'

	$('close_light_id').onclick = function(event){ close_light(true) }
}

function reshow_captcha_error()
{
	$('fieldset-captcha').className = ''
	$('send-div-captcha').className = 'send-div'
	$('send-captcha').value = 'Отправить СМС'

	$('mainform-captcha').captcha.value = ''
//	$('captcha_div-captcha').innerHTML = $('captcha_div').innerHTML
	reload_captcha('captcha_div-captcha')

//	synch_forms_from_main_to_captcha()
	var form_captcha = $('mainform-captcha')
	form_captcha.captcha.value = ''

	ph4.onBlur();
}

function close_light(reshow_captcha)
{
	$('light_msg').innerHTML = ''
	$('light_msg').style.display = 'none'
	$('light').style.display = 'none'
	$('fade').style.display = 'none'

	$('fieldset').className = ''
	$('send-div').className = 'send-div'
	$('send').value = 'Отправить СМС'

	if (reshow_captcha)
	{
		$('captcha').value = ''
		ph3.onBlur()
		reload_captcha('captcha_div')
	}
}

function send_sms()
{
	if (!check_form())
		return

	$('fieldset').className = 'disabled'
	$('send-div').className = 'send-div progress'
	$('send').value = 'Отправка...'

	new Ajax.Request('scripts/send_sms.php', 
	{
		method: 'post',
		parameters: {params: $('mainform').getInputsValues().toJSON()},
		onSuccess: function(transport) 
		{
//alert(transport.responseText)
//	$('send_result').innerHTML = '<pre>' + transport.responseText + '</pre>'
			var res = transport.responseText.evalJSON()
//			show_error(res.error_msg)
//return

			//успешно
			if (res.result != '0')
			{                            
				$('header_logo').innerHTML = '<a href="/"></a>'
				$('mainform').className = 'hidden'
				$('feedback').className = ''
			}
			else
			{
				//captcha error
				if (res.captcha_error == '1')
					show_captcha_error()
				else
					if (res.error_msg != undefined)
						show_error(res.error_msg, true)
					else
						show_error('Отправить не удалось :(', true)
				return ;
			}
		},
		onFailure: function(transport) { show_error('Отправить не удалось :(<br />Попробуйте чуть позже', true) }
	})
}

function send_sms_captcha()
{
	if (!check_form_captcha())
		return

	$('fieldset-captcha').className = 'disabled'
	$('send-div-captcha').className = 'send-div progress'
	$('send-captcha').value = 'Отправка...'

	new Ajax.Request('scripts/send_sms.php', 
	{
		method: 'post',
		parameters: {params: $('mainform-captcha').getInputsValues().toJSON()},
		onSuccess: function(transport) 
		{
//alert(transport.responseText)
			var res = transport.responseText.evalJSON()

			//успешно
			if (res.result != '0')
			{                            
				$('mainform').className = 'hidden'
				$('mainform-captcha').className = 'hidden'
				$('captcha_error').style.display = 'none'
				$('light').style.display = 'none'
				$('fade').style.display = 'none'
				$('feedback').className = ''
			}
			else
			{
				//captcha error
				if (res.captcha_error == '1')
					reshow_captcha_error()
				else
					show_error('Отправить не удалось :(', true)
				return ;
			}
		},
		onFailure: function(transport) { show_error('Отправить не удалось :(<br />Попробуйте чуть позже') }
	})
}

function check_form()
{
	if (!number_defined)
	{
		show_error('Не указан номер абонента')
		return false
	}
	
	var phone_number = $('phone').value.replace(/[^0-9]/g, '').replace(/^(8|7)/, '')
	if (phone_number.length < 10)
	{
		var len_comment = ''
		switch (phone_number.length)
		{
		case 9: len_comment = '1-ой цифры'; break;
		default: len_comment = (10 - phone_number.length) + '-х цифр'; break;
		}
		show_error('Слишком короткий номер.<br />Не хватает ' + len_comment + '.', false)
		return ;
	}
	else if (phone_number.length > 10)
	{
		var len_comment = ''
		switch (phone_number.length - 10)
		{
		case 1: len_comment = '1-а лишняя цифра'; break;
		default: len_comment = (phone_number.length - 10) + ' лишних цифры'; break;
		}
		show_error('Слишком длиный номер.<br />' + len_comment + '.', false)
		return ;
	}

	if (!$('message').value || $('message').value == $('message').getAttribute('placeholder'))
	{
		show_error('Введите текст сообщения')
		return false
	}
		
	if (show_message_len_alert)
	{
		show_error($('message_len_alert').innerHTML)
		return false
	}

	if ($('captcha').style.display != 'none' && (!$('captcha').value || $('captcha').value == $('captcha').getAttribute('placeholder')))
	{
		show_error('Введите код с картинки')
		return false
	}

	return true		
}

function check_form_captcha()
{
	if (!$('captcha-captcha').value || $('captcha-captcha').value == $('captcha-captcha').getAttribute('placeholder'))
	{
		alert('Введите код с картинки')
		return false
	}

	return true		
}

function reload_captcha(captcha_div)
{
//	var inner = $(captcha_div).innerHTML
//	inner = inner.replace(/rand=[0-9]+/, 'rand=' + Math.round(Math.random()*10000000+1))
//	$(captcha_div).innerHTML = inner
	_send_number(number, captcha_div)
//	synch_forms_from_main_to_captcha()
}

//var show_thx = 0

function send_response_form()
{
	if (!$('response_text').value)
	{
		hide_feedback()
		return false
	}

	$('fb-form').style.display = 'none'
	$('fb-wait').style.display = 'block'

	new Ajax.Request('scripts/send_response.php', 
	{
		method: 'post',
		parameters: {params: $('response_form').getInputsValues().toJSON()},
		onSuccess: function(transport) 
		{
			$('fb-wait').style.display = 'none'
			$('fb-thx').style.display = 'block'
//			show_thx = 1
		},
		onFailure: function(transport) { alert(':(') }
	})
	
}

function show_feedback()
{
	$('fb-link').style.display = 'none'
	$('fb-form').style.display = 'block'
}

function show_feedback_again()
{
	$('fb-thx').style.display = 'none'
	$('response_text').value = ''
	$('fb-form').style.display = 'block'
}

function hide_feedback()
{
	$('fb-form').style.display = 'none'
//	if (show_thx)
//		$('fb-thx').style.display = 'block'
//	else
		$('fb-link').style.display = 'block'
}

function calc_len()
{
	var res = 0
	if ($('message').value != "текст сообщения")
		res = $('message').value.length
	if (make_translit && res>rus_maxlen)
	{
		var msg = $('message').value
		var i;
		var longs = ['ё', 'ж', 'х', 'ч', 'ш', 'щ', 'э', 'ю', 
		             'Ё', 'Ж', 'Х', 'Ч', 'Ш', 'Щ', 'Э', 'Ю']
		for (i=0; i<msg.length; i++)
		{
			if (longs.indexOf(msg.charAt(i)) != -1)
					res += 1;
		}
	}

	if (res > maxlen)
	{
		$('message_signature').addClassName('hidden')
		$('message_len').innerHTML = res - maxlen
		$('message_len_name').innerHTML = pluralForm(res-maxlen, 'символ', 'символа', 'символов')
		$('message_len_alert').removeClassName('hidden')
		show_message_len_alert = true
	}
	else if (show_message_len_alert)
	{
		$('message_signature').removeClassName('hidden')
		$('message_len_alert').addClassName('hidden')
		show_message_len_alert = false
	}
}

function pluralForm(n, form1, form2, form5)
{
    n = Math.abs(n) % 100;
    var n1 = n % 10;
    if (n > 10 && n < 20) return form5;
    if (n1 > 1 && n1 < 5) return form2;
    if (n1 == 1) return form1;
    return form5;
}