$(function(){
  $("#select-tariff input[type=radio]").bind("click", function()
  {
	  var tariff_id = $(this).val();
	  $('#tariffId').val(tariff_id);
  }).eq(0).trigger("click");
	
  $("input:radio[name=currency]").bind("click change", function(e)
  {
		var val = $(this).val();
		setModeType(val);
		showTariffs1($(this));
		showCurrency(val);
  });
//  .eq(0).trigger("click");
  
  $("input:radio[name=paytype]").bind("click change", function(e)
	{	
	  $("input:radio[name=currency]").attr("checked", "false");
		var row, radio = $(this);
		radio.closest("ul").find("li.active").removeClass("active");
		row = radio.closest("li").addClass("active");
		e.stopPropagation();
		$("#subscription_error2").addClass("hidden");
		var val = $(this).val();
		setModeType(val);
		showTariffs(val);
		showCurrency(val);
	}).eq(0).trigger("click");
  

	
	$(".payType ul li").bind("click", function(e)
	{
		$("input:radio", this).trigger("click");
	});

	$("#content ul.tariffs li input:radio").bind("click change", function(e)
	{
		e.stopPropagation();
	});

	$("#content ul.tariffs li").bind("click", function(e)
	{
		$("input:radio", this).trigger("click");
	});
	
	if(defaultCountryId != "0" && defaultOperatorId != "0")
	{
		$('#select-country option[value='+defaultCountryId+']').attr('selected', 'yes');
		$('#select-operator option[value='+defaultOperatorId+']').attr('selected', 'yes');
	}
	else
	{
		onCountrySelect();
	}
	$('#select-country').change(onCountrySelect);
	$('#select-operator').change(onOperatorSelect);
	$('#select-sms-tariff input:radio:first').click();
	$('#select-tariff input:radio:first').click();
	
	bindSmsTariffSelect();
	
	$('#activationForm').submit(function()
	{
		hidden_error();
		
		var fileId;
		if(document.getElementById('fileId'))
		{
			fileId = document.getElementById('fileId').value;
		}
		var code = document.getElementById('code').value;
		//alert("1");
		
		if(code && code.length > 0)
		{
			//alert("2");
			appendScript(document.getElementById('activationForm').action + '?code=' + code + (fileId && fileId.length > 0 ? '&fileId='+fileId : '') + '&_dc=' + new Date().getTime());
			$('#activateButton').enable(false);
		}
		//alert("3");
		return false;
	});
	
	$('#day_activation_form_after_getting_code input[name=iagree]').click(function()
	{
		var checked = $(this)[0].checked;
		$('#subscribeButton2').attr('disabled', !checked);
	});
	
	$('#day_activation_form').submit(function()
	{	
		var code = $(this).find('input[name=code]').val();
		var phone = $(this).find('input[name=phone]').val();
		
		
		if (getNumber(phone))
		{
			if(code && code.length > 0 )
			{
				appendScript(document.getElementById('day_activation_form').action + '?code=' + code +  "&phone=" + phone + '&_dc=' + new Date().getTime());
				$(this).find('input[type=submit]').enable(false);
			}
			else
			{
				$("#subscription_error").removeClass('hidden');							
				$("#subscription_error").html("Вы ввели некорректный код");		
					
			}
				
		}
		else
		{
			$("#subscription_error").removeClass('hidden');						
			$("#subscription_error").html("Вы ввели некорректный номер мобильного телефона");	
		}
		return false;
	});
	
	$('#day_activation_form_after_getting_code').submit(function()
			{	
				var code = $(this).find('input[name=code]').val();	
				var agree = $(this).find('input[name=iagree]')[0].checked;		
				var phone = $(this).find('input[name=phone]').val();
				
				if (getNumber(phone))
				{
				
					if(code && code.length > 0 && agree)
					{
						
						appendScript(document.getElementById('day_activation_form_after_getting_code').action + '?code=' + code + "&phone=" + phone + '&_dc=' + new Date().getTime());
						$(this).find('input[type=submit]').enable(false);
					
					}
					else
					{
						$("#subscription_error").removeClass('hidden');		
						if (agree)
						{
						
							$("#subscription_error").html("Вы ввели некорректный код");		
						}
						else
						{
							$("#subscription_error").html("Вы не согласились с правилами подписки");			
						}	
							
					}
						
				}
				else
				{
					$("#subscription_error").removeClass('hidden');						
					$("#subscription_error").html("Вы ввели некорректный номер мобильного телефона");	
				}
				return false;
			});
	
	$('#have-code span').click(function()
	{
		hidden_error();
		setFormMode(true);
		$('#day_activation_form').removeClass('hidden');
		$('#phone_form').addClass('hidden');
		$('#have-code').addClass('hidden');
		
		
	});
	
	$('#not-activate span').click(function()
			{
				$('#phone_form').removeClass('hidden');
				$('#day_activation_form').addClass('hidden');	
				$('#day_activation_form_after_getting_code').addClass('hidden');
				$('#have-code').removeClass('hidden');	
				
				
				hidden_error();
				
			});
	
	$('#phone_form').ajaxForm({
		type: 'POST',
		dataType: 'json',
		beforeSubmit: function(){
			var val = $('#phone_form input[type=text]').val();
			if (val && val.length > 0)
			{
				$('#phone_form input[type=submit]').enable(false);
				return true;
			}
			return false;
		},
		success: function(data)
		{
			$('#phone_form input[type=submit]').enable(true);
			setFormMode(false);
			if (data.success)
			{
				$('#phone_form').addClass('hidden');
				$('#have-code').addClass('hidden');
				hidden_error();
//				$('#day_activation_form').removeClass('hidden');				
				$('#my_phone').val(data.phone);
				$('#day_activation_form_after_getting_code').removeClass('hidden');
			}
			else
			{
				$('#activate_result .subscription_error').removeClass("hidden");
				$('#activate_result .subscription_error').html(subscriptionErrors[data.error]);
			}
		}
	});
	
	$("#show-all-paytypes").click(function(){
		//$(this).parent("div").find("ul li.hidden").show('fast',function(){
		$(this).parent("div").find("ul li").removeClass("hidden");
		//});
		$(this).addClass("hidden");
		return false;
	});
	
});
function hidden_error(){
	$('#activate_result div').addClass("hidden");
}
function is_undefined(obj)
{
 	return (typeof(obj) == 'undefined' || obj == null)
}

function setModeType(mode_type)
{
	$("#payForm #mode_type").val(mode_type);
}

function setFormMode(have_code)
{
	if(have_code)
	{
		
		$('#day_activation_form label').css('display', 'inline-block');
		$('#day_activation_form input[type=submit]').val("Войти").enable(true);
	}
	else
	{
		$('#day_activation_form label').css('display', 'inline-block');
		$('#day_activation_form input[type=submit]').val("ПОДПИСАТЬСЯ").enable(false);
		
		
	}
}

function showCurrency(payment)
{
	var system = paymentSystems[payment];
	if (system == null)
	{
		system = paymentSystemsupGroup[payment];
	}
	if (system)
	{
		var currency = system.currency;
		$("#select-tariff li .cost span").html("");
		if(currency != "RUB")
		{
			var rate = system.rate;
			$("#select-tariff .tariff-holder").each(function(){
				var tariff = tariffs[$(this).find('input').val()];
				var cost = Math.round(100 * tariff.amount * rate) / 100; 
				$(this).find('.cost span').html(cost + " " + currency);
			});
		}
	}
	else
	{
//		else if(payment == "WebMoney" || payment == "Card" || payment == "MobilePayment" || payment == "Bank")
		
	}
}

function showTariffs(payment)
{
	var payButton = document.getElementById('payButton');
	$(".tariffs-holder .mygroups").addClass("hidden");
	$(".tariffs-holder .operator-choice").addClass("hidden");
	$("#select-sms-tariff").addClass("hidden");
	$("#select-tariff").removeClass("hidden");
	$("#smscode-form").addClass("hidden");
	$("#pay-form").removeClass("hidden");
	$("#freegold").addClass("hidden");
	$("#payButton").removeClass("hidden");
	payButton.disabled = false;
	var re = new RegExp(/^\d+$/);
	var m = re.exec(payment);
	if (m == null)
	{
		if(payment == "freegold")
		{
			$("#select-tariff").addClass("hidden");
			$("#payButton").addClass("hidden");
			$("#pay-form").addClass("hidden");
			$(".tariffs-holder #freegold").removeClass("hidden");
		}
		else
		{
			$(".tariffs-holder ." + payment).removeClass("hidden");
//			$("div ." + payment + " input:radio[name=currency]:first").click();
			payButton.disabled = true;
		}	
	}
	else
	{
		if (payment == "0") // смс
		{
			$(".tariffs-holder .operator-choice").removeClass("hidden");
			$("#select-sms-tariff").removeClass("hidden");
			$("#select-tariff").addClass("hidden");
			$("#pay-form").addClass("hidden");
			$("#smscode-form").removeClass("hidden");
		}
	}	
	
	
	
	


	

	var form = payButton.parentNode;
	var divs = form.getElementsByTagName('div');
	var toDelete = [];
	for (var i = 0; i < divs.length; i++)
	{
		var parts = divs[i].id.split('_');
		if (parts.length == 2 && parts[0] == 'additional')
		{
			toDelete.push(divs[i]);
		}
	}
	for (var i = 0; i < toDelete.length; i++)
	{
		form.removeChild(toDelete[i]);
	}
//	payButton.disabled = !payment;
	
	if (paymentSystems[payment])
	{
		var attr = paymentSystems[payment].fields;
		var fields = attr.split(';');
		if (fields.length > 1)
		{
			for (var i = 0; i < fields.length; i += 2)
			{
				var input = document.createElement('input');
				input.type = 'text';
				input.name = fields[i + 1];
				
				var div = document.createElement('div');
				div.id = 'additional_' + (1 + (i / 2));
				div.appendChild(document.createTextNode(fields[i] + ': '));
				div.appendChild(input);
				form.insertBefore(div, payButton);
			}
		}
	}
}


function showTariffs1(obj)
{
	var payment = obj.val();
	
	var payButton = document.getElementById('payButton');
	payButton.disabled = false;
	var form = payButton.parentNode;
	var divs = form.getElementsByTagName('div');
	var toDelete = [];
	for (var i = 0; i < divs.length; i++)
	{
		var parts = divs[i].id.split('_');
		if (parts.length == 2 && parts[0] == 'additional')
		{
			toDelete.push(divs[i]);
		}
	}
	for (var i = 0; i < toDelete.length; i++)
	{
		form.removeChild(toDelete[i]);
	}
//	payButton.disabled = !payment;
	
		var attr = obj.attr("fields");
		var fields = attr.split(';');
		if (fields.length > 1)
		{
			for (var i = 0; i < fields.length; i += 2)
			{
				var input = document.createElement('input');
				input.type = 'text';
				input.name = fields[i + 1];
				
				var div = document.createElement('div');
				div.id = 'additional_' + (1 + (i / 2));
				div.appendChild(document.createTextNode(fields[i] + ': '));
				div.appendChild(input);
				form.insertBefore(div, payButton);
			}
		}	
}

function onSubmit(form)
{	
	$('#subscription_error2').addClass('hidden');
	if ($("input[name = qiwi_phone]")[0] != undefined)
	{
		if (!normalizeNumber($('input[name=qiwi_phone]'), 'QIWI'))
		{
			return false;
		}
	}
	var mode_type = document.getElementById('mode_type');
	if (mode_type.value)
	{
		var payButton = document.getElementById('payButton');
		payButton.disabled = true;
		var inputs = form.getElementsByTagName('input');
		var values = {};
		for (var i = 0; i < inputs.length; i++)
		{
			if (inputs[i].name && inputs[i].value)
			{
				values[inputs[i].name] = inputs[i].value;
			}
			if (inputs[i].type != 'hidden' && !inputs[i].value)
			{
				payButton.disabled = false;
				return false;
			}
		}
		values['mode_type'] = mode_type.value;
		values['_dc'] = new Date().getTime();
		$.getJSON(get_order_id_url, values, 
			function(data)
			{
				if (data && data.order_id)
				{
					document.getElementById('order_id').value = data.order_id;
					var amountField = document.getElementById('amount');
					var rate = "";
					if (paymentSystems[mode_type.value] == null)
					{
						rate = paymentSystemsupGroup[mode_type.value].rate;//getSelectedOption(mode_type).getAttribute('rate');
					}
					else
					{
						rate = paymentSystems[mode_type.value].rate;
					}	
					var cost = 0;
					var tariff_id = $("#select-tariff input[type=radio]:checked").val();
					if(tariff_id)
					{
						cost = tariffs[tariff_id].amount;
					}
					else
					{
						cost = amountField.defaultValue;
					}
					amountField.value = cost * rate;
					form.submit();
				}
				else
				{
					payButton.disabled = false;
				}
			});
	}
}

function onCountrySelect()
{
	var country_id = $('#select-country option:selected').val();
	var operators = operators_by_country[country_id];
	addOperatorsToForm(operators);
}

function addOperatorsToForm(operators)
{
	$("#select-operator").html("");
	if(operators.length > 0)
	{
		$("#smscode-form").removeClass("hidden");
		$.each(operators, function()
		{
			$("#select-operator").append("<option value=" + this.id + " >" + this.name + "</option>");
		});
		$("#select-operator option:first").attr('selected', true);
		onOperatorSelect();
	}
	else
	{
		$("#select-sms-tariff").html(serviceUnavailable);
		$("#smscode-form").addClass("hidden");
	}
}

function onOperatorSelect()
{
	var operator_id = $('#select-operator option:selected').val();
	if($("#select-sms-tariff").size() > 0)
	{
		getTariffs(operator_id);
	}
}

function getTariffs(operator_id)
{
	var tariffs = tariffs_by_operator[operator_id];
	addTariffsToForm(tariffs);
}



function addTariffsToForm(tariffs)
{
	if(tariffs.length > 0)
	{
		$("#smscode-form").removeClass("hidden");
		$("#select-sms-tariff").html("");
		var i = 1;
		$.each(tariffs, function()
		{																	 //<br />(за сутки)   /// ' + this.name + ' <- перенёс из дива class=name
			var li= $('<li><div class="tariff-holder">\
		                   <label><input type="radio" name="tariff" value="' + this.id + '" />' +
		                        + this.days + (this.days > 1 ? ' дней' : ' день') + '</label>\
		                   <div class="cost">' + this.price + ' <small>руб.</small></div>\
		                   <div class="name">(за сутки)</div>\
		               </div></li>');
			
			$("#select-sms-tariff").append(li);
			i++;
			if(is_undefined(sms_tariffs[this.id]))
			{
				sms_tariffs[this.id] = this;
			}
		});
		bindSmsTariffSelect();
		$("#select-sms-tariff input:radio:first").trigger('click');
	}
	else
	{
		$("#select-sms-tariff").html(serviceUnavailable);
		$("#smscode-form").addClass("hidden");
	}
}




function bindSmsTariffSelect()
{
	$('#select-sms-tariff input:radio').click(function()
	{
		var tariff = sms_tariffs[$(this).val()];
		$('#smscode-form span.prefix').html(tariff.prefix + " " + postfix);
		$('#smscode-form span.phone').html(tariff.phone);
		$('#smscode-form a.payhelp').attr('href', tariffUrls.payhelp_home_url + "/num/" + tariff.phone);
	});
}

function onSuccessSubmit(success, error)//?
{
	//alert("daaaaaa");
	hidden_error();
	if (success)
	{
		$('#activate_result .green').removeClass("hidden");
		if(freeDownload)	// находимся на странице бесплатного скачивания
		{
			oneTimeDownload();// gold-downloading
		}
	}
	else
	{
		if(error == "WAITING")
		{
			$('#activate_result .waiting').removeClass("hidden");
			var code = $('#activationForm input[name=code]').val();
			var fileId = $('#activationForm input[name=fileId]').val();
			waitForPayment(code, fileId);
		}
		else if(error == "NOFILE")
		{
			$('#activate_result .nofile').removeClass("hidden");
		}
		else
		{
			$('#activateButton').enable(true);
			$('#subscribeButton').enable(true);
			$('#subscribeButton2').enable(true);
			if(error == "FAIL")
			{
				$('#activate_result .fail').removeClass("hidden");
			}
			else // "NOTFOUND"
			{
				$('#activate_result .notfound').removeClass("hidden");
			}
		}
	}
}

function getNumber(str)
{
	str = str.replace(/[^0-9]/g, "");
	var re =  /^(8|7|)[0-9]{10}$/;
	result = str.match(re);
	return result;
}


function normalizeNumber(obj, way){  //проверяем телефон
	result = getNumber(obj.val());
	
	if (result == null)
	{
		if (way == "setPhone")
		{
			$("#subscription_error").removeClass("hidden");
			$("#subscription_error").html("Некорректный номер");			
			
		}	
		
		if (way == "QIWI")
		{
			$("#subscription_error2").removeClass("hidden");
			$("#subscription_error2").html("Некорректный номер");									
		}
		return false;
	}
	else
	{ 	
		if (way == "setPhone")
		{
			$('input[name=abonent]').val("+7" + result[0].substr(-10,10));	
		}
		if (way == "QIWI")
	    {
			$('input[name=qiwi_phone]').val(result[0].substr(-10,10));	
		}
		
		
		return true;
   }
}
function showSubscriptionResult(success, error)
{
	//alert(success);
	hidden_error();
	if (success)
	{
//		$('#activate_result .green').show();
		$('#activate_result .green').removeClass("hidden");
		if(freeDownload)	// находимся на странице бесплатного скачивания
		{
			oneTimeDownload();// gold-downloading
		}
	}
	else
	{
		$('#subscribeButton2').enable(true);
		$('#activate_result .subscription_error').removeClass("hidden");
		$('#activate_result .subscription_error').html(subscriptionErrors[error]);
	}
}

function waitForPayment(code, fileId)
{
	setTimeout(function()
	{
		checkPayment(code, fileId);
	}, 65000);
}


function checkPayment(code, fileId)
{
	appendScript(document.getElementById('activationForm').action + '?code=' + code + (fileId && fileId.length > 0 ? '&fileId='+fileId : '') + '&_dc=' + new Date().getTime());
}


function oneTimeDownload()
{
	jQuery.get(urls.get_file_url_url, {"gold": true}, function(data, textStatus)
	{
		var expr = /^http:\/\//i;
		if(expr.test(data))
		{
			$(".clock .before, .clock .button").remove();
			$(".clock .after").removeClass("hidden");
			$(".clock .download").attr("href", data);
			if(hasVirus == "true")
			{
				if(confirm(virusConfirm))
				{
					document.location = data;
				}
			}
			else
			{
				document.location = data;
			}
		}
	});
}
