﻿var errors = false;
var errNum = 0;
var radioGroup = null;


//new fitures by Delphin® Copiright 20.09.2003;

function errorMessageTitle(form, s){
	return (form.elements["errormessage"]!=null && form.elements["errormessage"].value != "")?form.elements["errormessage"].value:s;
}

function parseForm(form){
	var s = errorMessageTitle(form, "При заполнении формы найдены следующие ошибки:");
	errors = false;
	errNum = 0;
	radioGroup = null;
	for(i=0;i<form.elements.length;i++){
		if(form.elements[i].name.substring(0,2)=="y_"){
			if(form.elements[i-1].type == "radio"){
				if(radioGroup != form.elements[i-1].name){
					radioGroup = form.elements[i-1].name;
					s += parseRadioGroup(form,form.elements[i-1]);
				}
			}else{
				s += parseElement(form,form.elements[i],form.elements[i+1]);
			}
		}
	}
	if(errors){
		alert(s);
		return false;
	}else{
		return true;
	}
}

function resetForm(el){
	for(var i = 0; i < document.forms.length; i++){
		for(var j=0; j < document.forms[i].elements.length; j++){
			if(el == document.forms[i].elements[j]){
				document.forms[i].reset();
				break;
			}
		}
	}
}

function parseRadioGroup(form,obj){
	var v=false;
	var s = "";
	for(var i = 0; i < form.elements.length; i++){
		if(form.elements[i].name == obj.name && form.elements[i].checked){
			v=true;
			break;
		}
	}
	if(!v){
		errors = true;
		errNum++;
		s = "\n" + errNum + ". Выберите один из вариантов:";
		for(var i = 0; i < form.elements.length; i++){
			if(form.elements[i].name == obj.name){
				s+="\n - " + form.elements[i+1].value.split("|")[0];
			}
		}
	}
	return s;
}

function parseElement(form,obj,hid){
	if(obj!=null){
		if(hid!=null){
			params = hid.value.split("|");
			switch (params[1]){
			case "0":
				if(!isFill(obj)){
					errors = true;
					errNum++;
					return "\n" + errNum + ". " + params[0] + " : " + (params[2]!=''?params[2]:"поле пусто");
				}
				break;
			case "1":
				if(!isDigits(obj.value)){
					errors = true;
					errNum++;
					return "\n" + errNum + ". " + params[0] + " : " + (params[2]!=''?params[2]:"не является числом");
				}
				break;
			case "2":
				var res = isEmail(obj.value);
				if(res!=""){
					errors = true;
					errNum++;
					return "\n" + errNum + ". " + params[0] +  " : " + (params[2]!=''?params[2]:res);
				}
				break;
			case "3":
				if(!isURL(obj.value)){
					errors = true;
					errNum++;
					return "\n" + errNum + ". " + params[0] + " : " + (params[2]!=''?params[2]:"не является ссылкой");
				}
				break;
			}
		}
		return "";
	}
	return "";
}

function isFill(obj){
	var v = true;
	if(obj.value=="") v=false;
	if((obj.type=="checkbox")&&(!obj.checked)) v=false;
	return v;
}

function isDigits(s){
	var yes = true;
	if(!((s.substr(0,1) > "0") && (s.substr(0,1) < "9") || (s.substr(0,1) == ".") || (s.substr(0,1) == " ") || (s.substr(0,1) == "-") || (s.substr(0,1) == "+"))){
		return false;
	}
	for(var numOfDig = 1; numOfDig < s.length; numOfDig++){
		if(!((s.substr(numOfDig,1) > "0") && (s.substr(numOfDig,1) < "9") || (s.substr(numOfDig,1) == ".") || (s.substr(numOfDig,1) == " ") || (s.substr(numOfDig,1) == "-"))){
			yes = false;
		}
	}
	return yes;
}

function isEmail(s){
	if(s.indexOf("@")>-1){
		var name = s.split("@")[0];
		var serv = s.split("@")[1];
		if(name != ""){
			if(serv != ""){
				if(serv.indexOf(".")>0){
					var xxx = serv.split(".");
					for(var i = 0; i < xxx.length; i++){
						if(xxx[i].length < 2) return "сервер введён не верно (пример: name@serv.ru)";
					}
					return "";
				}else return "сервер введён не верно (пример: name@serv.ru)";
			}else return "сервер не введён (пример: name@serv.ru)";
		}else return "имя не задано (пример: name@serv.ru)";
	}else return "символ \"@\" не введён (пример: name@serv.ru)";
}
/*-------for service faq-----*/
function sendMessage(){
	/*if(document.forms['forma'].MYNAME.value != '' && document.forms['forma'].MYEMAIL.value != '' && document.forms['forma'].MYTEXT.value != ''){
		document.forms['forma'].submit();
	}else{
		return alert('Необходимые поля не заполнены');
	}*/

	var s = document.forms['forma'].MYEMAIL.value;
	var allOk = true;
	if(document.forms['forma'].MYNAME.value != '' && document.forms['forma'].MYEMAIL.value != '' && document.forms['forma'].MYTEXT.value != ''){
		if(s.indexOf("@")>-1){
			var name = s.split("@")[0];
			var serv = s.split("@")[1];
			if(name != ""){
				if(serv != ""){
					if(serv.indexOf(".")>0){
						var xxx = serv.split(".");
						for(var i = 0; i < xxx.length; i++){
							if(xxx[i].length < 2) {
								alert('сервер введён не верно (пример: name@serv.ru)');
								allOk = false;
							}
						}
						if (allOk) {
							if (document.getElementById('txtCaptcha') != null) {
									if (ValidCaptcha()) {
										document.forms['forma'].submit();
									} else {
									alert('неправильное значение')
								}
							} else {
								document.forms['forma'].submit();
							}
						}
					}else alert('сервер введён не верно (пример: name@serv.ru)');
				}else alert('сервер не введён (пример: name@serv.ru)');
			}else alert('имя не задано (пример: name@serv.ru)');
		}else alert('символ \"@\" не введён (пример: name@serv.ru)');
	}else alert('Необходимые поля не заполнены');
}
/*----------------------------------*/
function isURL(s){
	if(s.indexOf(".")>-1){
		var xxx = s.split(".");
		for(var i = 0; i < xxx.length; i++){
			if(xxx[i].length < 2) return false;
		}
		return true;
	}else return false;
}

function fillSelectLists(){
	for(var f = 0; f < document.forms.length; f++){
		if(document.forms[f].elements!=null && document.forms[f].elements.length>0){
			for(var i = 0; i < document.forms[f].elements.length; i++){
				if(document.forms[f].elements[i].type == "select-one" && document.forms[f].elements[i-1] != null){
					var opt = null;
					var val = document.forms[f].elements[i-1].value;
					var a = val.split(",");
					var selRef = document.forms[f].elements[i];
					for (var j=0; j<a.length; j++){
					     opt = new Option(a[j], a[j], false,false);
					     selRef.options[j] = opt;
					}
					selRef.selectedIndex = 0;
				}
			}
		}
	}
}

