//Функция подставения DNS имен и ip в поля при заказе DNS поддержки
function check(t) {
    if(eval("document.forms['"+t.form.name+"']."+t.name+".checked")) {
       eval("document.forms['"+t.form.name+"'].namedns1.value='beta.tagtech.ru';");
       eval("document.forms['"+t.form.name+"'].ipdns1.value='195.7.162.244';");
       eval("document.forms['"+t.form.name+"'].namedns2.value='gamma.tagtech.ru';");
       eval("document.forms['"+t.form.name+"'].ipdns2.value='195.42.69.18';");
     }else{
       eval("document.forms['"+t.form.name+"'].namedns1.value='';");
       eval("document.forms['"+t.form.name+"'].ipdns1.value='';");
       eval("document.forms['"+t.form.name+"'].namedns2.value='';");
       eval("document.forms['"+t.form.name+"'].ipdns2.value='';");
     }
}

function swapMenu(menuItem)
{
	if (menuItem.className == 'item')
		menuItem.className = 'over';
	else if (menuItem.className == 'over')
		menuItem.className = 'item';
}

function checkForm8() {
	var flag1 = mailcheck('form3.mail');
	var errorMessage = "Ошибка!\n";
	if (!flag1) errorMessage += "\n- Данные в поле e-mail, не соответствуют e-mail адресу'а\n";
	if (flag1){
		return true;
	}else{
		alert(errorMessage);
		return false;
	}
}

function checkForm7() {
	var flag1 = checkLen('form7.personr',1);
	var flag2 = mailcheck('form3.mail');
	var errorMessage = "Ошибка!\n";
	if (!flag1) errorMessage += "\n- Поле personr не может быть пустым\n";
	if (!flag2) errorMessage += "\n- Данные в поле e-mail, не соответствуют e-mail адресу'а\n";
	if (flag1 && flag2){
		return true;
	}else{
		alert(errorMessage);
		return false;
	}
}	

function checkForm6() {
	var checkDomainFlag = checkDomain('form6.domain');
	var flag1 = mailcheck('form6.email');
	var errorMessage = "Ошибка!\n";

	if (!flag1) errorMessage += "\n- Данные в поле e-mail не соответствуют e-mail адресу.\n";
	if (checkDomainFlag!=true) errorMessage += "\n"+checkDomainFlag+"\n";
	if (flag1 && checkDomainFlag==true){
		return true;
	}else{
		alert(errorMessage);
		return false;
	}
}

function checkForm5() {
	var flag1 = checkLen('form5.org',1);
	var flag2 = checkLen('form5.orgr',1);
	var flag3 = checkLen('form5.code',1);
	var flag4 = checkLen('form5.kpp',1);
	var flag5 = checkLen('form5.address',1);
	var flag6 = checkLen('form5.paddress',1);
	var flag7 = checkLen('form5.contacts',1);
	var flag8 = checkLen('form5.phone',1);
	var errorMessage = "Ошибка!\n";
	if (!flag1) errorMessage += "\n- Поле org не может быть пустым\n";
	if (!flag2) errorMessage += "\n- Поле orgr не может быть пустым\n";
	if (!flag3) errorMessage += "\n- Поле code не может быть пустым\n";
	if (!flag4) errorMessage += "\n- Поле kpp не может быть пустым\n";
	if (!flag5) errorMessage += "\n- Поле address не может быть пустым\n";
	if (!flag6) errorMessage += "\n- Поле p-address не может быть пустым\n";
	if (!flag7) errorMessage += "\n- Поле contact не может быть пустым\n";
	if (!flag8) errorMessage += "\n- Поле phone не может быть пустым\n";
	if (flag1 && flag2 && flag3 && flag4 && flag5 && flag6 && flag7 && flag8){
		return true;
	}else{
		alert(errorMessage);
		return false;
	}
}	

function checkForm4() {
	var flag1 = checkLen('form4.person',1);
	var flag2 = checkLen('form4.personr',1);
	var flag3 = checkLen('form4.passport',1);
	var flag4 = checkLen('form4.code',1);
	var flag5 = checkLen('form4.kpp',1);
	var flag6 = checkLen('form4.birthdate',1);
	var flag7 = checkLen('form4.paddress',1);
	var flag8 = checkLen('form4.phone',1);
	var errorMessage = "Ошибка!\n";
	if (!flag1) errorMessage += "\n- Поле person не может быть пустым\n";
	if (!flag2) errorMessage += "\n- Поле personr не может быть пустым\n";
	if (!flag3) errorMessage += "\n- Поле passport не может быть пустым\n";
	if (!flag4) errorMessage += "\n- Поле code не может быть пустым\n";
	if (!flag5) errorMessage += "\n- Поле kpp не может быть пустым\n";
	if (!flag6) errorMessage += "\n- Поле birth-date не может быть пустым\n";
	if (!flag7) errorMessage += "\n- Поле p-address не может быть пустым\n";
	if (!flag8) errorMessage += "\n- Поле phone не может быть пустым\n";
	if (flag1 && flag2 && flag3 && flag4 && flag5 && flag6 && flag7 && flag8){
		return true;
	}else{
		alert(errorMessage);
		return false;
	}
}	

function checkForm3() {
	var flag1 = checkLen('form3.person',1);
	var flag2 = checkLen('form3.personr',1);
	var flag3 = checkLen('form3.passport',1);
	var flag4 = checkLen('form3.birthdate',1);
	var flag5 = checkLen('form3.paddress',1);
	var flag6 = checkLen('form3.phone',1);
	var errorMessage = "Ошибка!\n";
	if (!flag1) errorMessage += "\n- Поле person не может быть пустым\n";
	if (!flag2) errorMessage += "\n- Поле personr не может быть пустым\n";
	if (!flag3) errorMessage += "\n- Поле passport не может быть пустым\n";
	if (!flag4) errorMessage += "\n- Поле birth-date не может быть пустым\n";
	if (!flag5) errorMessage += "\n- Поле p-address не может быть пустым\n";
	if (!flag6) errorMessage += "\n- Поле phone не может быть пустым\n";
	if (flag1 && flag2 && flag3 && flag4 && flag5 && flag6){
		return true;
	}else{
		alert(errorMessage);
		return false;
	}
}	


//Проверка формы номер два, сборка разных функций и вывод алерта
function checkForm2() {
	var checkValueFlag = checkLen('form2.domain',1);
	var mailcheckFlag = mailcheck('form2.domain');
	var checkDomainInMailFlag = checkDomainInMail('form2.domain', "mail");
	var errorMessage = "Ошибка!\n";
	if (!checkValueFlag) errorMessage += "\n- Поле не может быть пустым\n";
	if (!mailcheckFlag) errorMessage += "\n- Данные в поле e-mail, не соответствуют e-mail адресу'а\n";
	if (checkValueFlag && mailcheckFlag){
		if (checkDomainInMailFlag && confirm("Вы уверены, что правильно указали домен в e-mail'е?")) {
			return true;
		} else if (!checkDomainInMailFlag) {
			return true;
		} else {
			return false;
		}
	} else {
		alert(errorMessage);
		return false;
	}
}
//Проверка значения поля по шаблону
function checkPattern(obj, pat) {
	var re = new RegExp(pat, "gi");
	return (!obj.value.match(re))? true : false;
}
//Проверка e-mail
function mailcheck(obj) {
    obj = eval(obj);
	var re =/^[\w-](\.?[\w-])*@([A-Za-z]{2,}|[\w-](\.?[\w-])*\.[A-Za-z]{2,4})$/i;
	return (re.test(obj.value))? true : false;
}
//Проверка наличия имени домена в указанном поле типа e-mail
function checkDomainInMail(obj, domain) {
	obj = eval(obj);
	return (checkPattern(obj, ".*@"+domain+"\.?.*"))? false : true;
}
//Проверка формы номер один, сборка разных функций и вывод алерта
function checkForm() {
	var errorMessage = "Ошибка!\n";
	var checkDomainFlag = checkDomain('form1.domain');
	if (checkDomainFlag!=true) {
		errorMessage += "\n "+checkDomainFlag+"\n"
		alert(errorMessage);
		return false;
	} else { return true; }
}
//Проверка поля на домен, сборка функций по проверке домена
function checkDomain(obj) {
	obj = eval(obj);
	var checkLenFlag = checkLen(obj, 2);
	var checkPatternFlag = checkPattern(obj, "[^a-z0-9-]");
	var checkDomainSyntaxFlag = checkDomainSyntax(obj);
	var errorMessage="";
	if(!checkLenFlag) errorMessage += "- Длина имени домена должна быть не менее 2 символов.\n";
	
	if(!checkPatternFlag) errorMessage += "\n- В  имени   домена    разрешены   лишь  латинские буквы\n  от \"a\"  до \"z\",  цифры от 0 до  9 и  символ \"-\". Остальные\n  символы запрещены для ввода.\n";	
	
	if (checkDomainSyntaxFlag!=true) errorMessage += "\n- "+checkDomainSyntaxFlag;
	
	if(checkLenFlag && checkPatternFlag && checkDomainSyntaxFlag==true) { return true; } else { return errorMessage; }
}
//Проверка на длину поля
function checkLen(obj,len) {
	obj = eval(obj);
	return (obj.value.length>=len)? true : false;
}
//Проверка синтаксиса поля с типом Домен
function checkDomainSyntax(obj) {
	var re = new RegExp("^-.*", "gi");
	var re2 = new RegExp(".*-$", "gi");
	var re3 = new RegExp("-{2}", "gi");
	var errorMessage = "Недопустимо использование:";
	if (obj.value.match(re))  errorMessage += "\n    * дефиса в начале имени домена";
	if (obj.value.match(re2)) errorMessage += "\n    * дефиса в конце имени домена";
	if (obj.value.match(re3)) errorMessage += "\n    * двух дефисов подряд в имени домена";
	return (!obj.value.match(re) && !obj.value.match(re2) && !obj.value.match(re3))? true : errorMessage;
}