
var zones = "";
for(el in allowed_domains){
	if(allowed_domains[el] != "рф"){
		zones += allowed_domains[el] + "|";
	}
}
zones = zones.substring(0,zones.length-1);

function checkDomainName(name){

	var msg = "";

	var correctRe = new RegExp('^[A-Za-z0-9]([A-Za-z0-9-]){2,}[A-Za-z0-9]([\.](' + zones + '))?$', 'i');
	//подлатать чтобы были только буквы и цифры в начале
	var correctReRf = new RegExp('^[А-Яа-я0-9-]{3,}\.(рф)?$', 'i');
		
	var name = $.trim(name);
	
	if(name == ""){
		msg = "Введите имя домена!";
	}
	else if(!correctRe.test(name)){

		if($.inArray("рф", allowed_domains) == -1 || !correctReRf.test(name)){
			msg = "Имя домена некорректно!";
		}
	}
	
	//alert(msg); return;
	return msg;	
}

function whoisSubmit(){

	var form = $("#whois_form");	
	var domain_name = $("input[name=domain_name]", form);
		
	var domains_checkboxes = $("input[type='checkbox'][name*=domains]", form);

	if(domains_checkboxes.size() == 0){
		
		msg = checkDomainName(domain_name.attr("value"));
				
		if(msg != ""){
			//alert('dfdfdfd');
			jAlert(msg, 'Ошибка!');
			return false;
		}
				
		form.append(" <input type='hidden' name='domains_default' value='1' /> ");

		form.unbind();
		form.submit();
	}
	else{
				
		var domains_checked = $("input[type='checkbox'][name*=domains]:checked", form);
		
		//либо имя домена без имени зоны, либо имя домена с одной из дозволенных зон
		//var correctRe = new RegExp('^[A-Za-z0-9-]+([\.](' + zones + '))?$', 'i');
		
		//проверяем имя домена
		msg = checkDomainName(domain_name.attr("value"));
		
		//console.log(msg); return false;
		
		if(msg != ""){
			//alert(msg);
			jAlert(msg, 'Ошибка!');
			return false;
		}
		else{
			
			
			//если выбрано кириллическое имя домена и некириллические зоны, снимаем галки со всех зон кроме рф
			var invalid_cyr_re = new RegExp('^[А-Яа-я-]+([\.](' + zones + '))?$', 'i');
			
			//если выбрано некириллическое имя домена и зона рф, то снимаем галку с зоны рф
			var invalid_uncyr_re = new RegExp('^[A-Za-z-]+([\.](рф))?$', 'i');
			
			if(invalid_cyr_re.test($.trim(domain_name.attr("value"))) == true){
				
				var rf_checked = false;
				
				domains_checked.each(
					function(){
						if(this.value != "рф"){
							//alert(this.value + this.checked);
							this.checked = false;
							updateButton();
							bind();
						}
						else{
							rf_checked = true;
						}
					}
				);
				
				if(rf_checked == false){
					jAlert('Выберите хотя бы одну доменную зону', 'Ошибка!');
					return false;
				}
			}
						
			if(invalid_uncyr_re.test($.trim(domain_name.attr("value"))) == true){
				
				//console.log(domain_name.attr("value"));
				//console.log("88888"); return false;
				
				var uncyr_checked = false;
				
				domains_checked.each(
					function(){
						if(this.value == "рф"){
							//alert(this.value + this.checked);
							this.checked = false;
							
							//проверить, что все правильно...
							updateButton();
							bind();
							//Custom.init;
						}
						else{
							uncyr_checked = true;
						}
					}
				);
				
				if(uncyr_checked == false){
					jAlert('Выберите хотя бы одну доменную зону', 'Ошибка!');
					return false;
				}
			}
			
			
			//lert($.dump(invalid_cyr_re.test($.trim(domain_name.attr("value")))));
			//return false;
			
			//alert($.trim(domain_name.attr("value")));
			
			var rre = new RegExp('^.+\\.('+ zones +')$', 'i');
			var res = rre.exec($.trim(domain_name.attr("value")));
						
			//для рф доменов
			if(res == null){
				var rreRf = new RegExp('^[А-Яа-я-]+\.(рф)$', 'i');
				res = rreRf.exec($.trim(domain_name.attr("value")));
			}
			
			/* console.log(domain_name.attr("value"), '1111');
			console.log(res, '2222');
			console.log(domains_checked.size(), '3333');
			alert(1); */
			
			if(res){
								
				var input_domain = res[1].toLowerCase();
				
				console.log("Зашли");
				
				//alert(input_domain); return;
				
				$("input[type='checkbox'][name*=domains]").attr("checked", false);
				$("input[type='checkbox'][value=" + input_domain + "]").attr("checked", true);
			}
			else if(domains_checked.size() == 0){
								
				//alert("Выберите хотя бы одну доменную зону!");
				jAlert("Выберите хотя бы одну доменную зону!", 'Ошибка');
				return false;
			}
			
			
			form.unbind();
			form.submit();
		}
	}
	
}

$(
	function(){
	
		var form = $("#whois_form");
		form.bind(
			"submit",
			whoisSubmit
		);
		
		var whois_button = $("#a-1");
		whois_button.bind(
			"click",
			whoisSubmit
		);
	}
);

