function findObj(n, d) {
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
	if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function validate()
{
    var mess1 = "Не все поля формы заполнены"
    var mess2 = "Ваши данные успешно отправлены"
    var rexp = new RegExp(".+\@(.{2})+\.(.{2,})$");
    if (frm = findObj('gbform'))
		{
			numel = frm.elements.length
            var res = true
            	// --- проверка всех полей на null
            	for (i=0; i<numel; i++)
					{if ((frm.elements[i].type=="text" || frm.elements[i].type=="textarea" || frm.elements[i].type=="password") && (frm.elements[i].value==null || frm.elements[i].value=="")){alert(mess1);frm.elements[i].focus();frm.elements[i].select();res=false;return res;}}
                // --- если есть поле с именем e-mail
                // --- проверяем его на подлинность
                if (f = findObj('emailfrom'))
                {
					if (f.value && !rexp.test(f.value)) {
					alert('Вы указали ошибочный e-mail');
					f.focus();
					f.select();
					return false;}
                }
                if (f = findObj('emailto'))
                {
					if (f.value && !rexp.test(f.value)) {
					alert('Вы указали ошибочный e-mail');
					f.focus();
					f.select();
					return false;}
                }
                return true;
		}
}

