function mailtext(lhs,rhs)
	{
	   document.write("<A HREF=\"mailto");
	   document.write(":" + lhs + "@");
	   document.write(rhs + "\" class=>" + lhs + "@" + rhs + "<\/a>");
	}
// Email
	
	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);
	}

	for(i = 0; !x && i < d.forms.length; i++)
	{
		x = d.forms[i][n];
	}
	if(!x)
	{
		if(!(x = d[n]) && d.all)
		{
			x = d.all[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 changeLocation(theURL)
{
	document.location.href = theURL;

	return false;
}

// ..................................................................

function confirm_submit(obj, str)
{
	form = findObj(obj);

	if(confirm(str))
	{
		form.submit();
	}
}

// ..................................................................

function formSetRequirements(obj, req, check)
{
	obj = findObj(obj);

	if(obj)
	{
		obj.validateReq		= req;
		obj.validateCheck	= check;
	}
}

// ..................................................................

function formSetUnique(obj, unique)
{
	obj = findObj(obj);
	
	if(obj)
	{
		obj.validateCheckUnique	= true;
		obj.validateUnique	= unique;
	}
}

// ..................................................................

function formSetNotequal(obj1, obj2)
{
	obj1 = findObj(obj1);
	obj2 = findObj(obj2);
	
	if(obj1 && obj2)
	{
		obj1.validateNotequal = obj2;
	}
}

// ..................................................................

function formUpdate(obj)
{
	err = false;

	if(obj.type == 'select-one')
	{
		val = obj.options[obj.selectedIndex].value;
	}
	else
	{
		val = obj.value;
	}

	if(val == '' && obj.validateReq == true)
	{
		err = true;
	}

	if(err == false && val != '')
	{
		if(obj.validateCheck == 'url' && val.indexOf('http://') != 0)
		{
			err = true;
		}
		else if(val == 'http://')
		{
			err = true;
		}

		if(obj.validateCheck == 'email')
		{  
			var not_valid = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
			var valid = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;

			if(val == "") err = true;
			else if(not_valid.test(val) || !valid.test(val)) { err = true; alert('Invalid email format!')}
		}

		if(obj.validateCheck == 'oneword')
		{
			var not_valid = /( )/;
			var valid = /^([a-zA-Z0-9\-\.]+)$/;

			if(val == "") err = true;
			else if(not_valid.test(val) || !valid.test(val)) err = true;
		}
		
		if(obj.validateCheck == 'ident')
		{
			var not_valid = /( )/;
			var valid = /^([a-z]+[a-z0-9_]*)$/;

			if(val == "") err = true;
			else if(not_valid.test(val) || !valid.test(val)) err = true;
		}

		if(obj.validateCheck == 'urlword')
		{
			var not_valid = /( )/;
			var valid = /^([a-zA-Z0-9\-\._]+)$/;

			if(not_valid.test(val) || !valid.test(val)) err = true;
		}

		if(obj.validateCheck == 'natural' && (isNaN(val) || val <= 0))
		{
			err = true;
		}

		if(obj.validateCheck == 'number*' && (isNaN(val) && val != '*' || val < 0))
		{
			err = true;
		}

		if(obj.validateCheck == 'number+' && (isNaN(val) && val != '-'  || val < 0))
		{
			err = true;
		}

		if(obj.validateCheckUnique == true)
		{
			needle = obj.value.toLowerCase();
			haystack = obj.validateUnique.toLowerCase();

			if(haystack.indexOf('|' + needle + '|') > -1)
			{
				err = true;
			}
		}

		if(obj.validateNotequal)
		{
			obj2 = obj.validateNotequal;
			if(obj2.type == 'select-one')
			{
				val2 = obj2.options[obj2.selectedIndex].value;
			}
			else
			{
				val2 = obj2.value;
			}

			if(val == val2)
			{
				err = true;
				alert('Объекты должны быть разными');
			}
		}
	}

	return(err);
}

// ..................................................................

function formCheck(f)
{
	var noerrors = true;
	var first	 = false;
	var fields   = new Array();

	for(var i = 0; i < f.elements.length; i++)
	{
		if(f.elements[i].validateCheck || f.elements[i].validateReq)
		{
			err = formUpdate(obj = f.elements[i]);

			if(err)
			{
				if(first == false)
				{
					first = i;
				}

				noerrors = false;
			}
		}
	}

	if(noerrors == false)
	{
		if(f.elements[first].type != 'select-one')
		{
			f.elements[first].select();
		}

		f.elements[first].focus();
	}

	return(noerrors);
}