/*
	Copyright (c) 2001 by Max Petrov. maxmp@mail.ru
*/

function cancelEvent()
{
	event.cancelBubble = true; event.returnValue = false;
}
function cancelBubble()
{
	event.cancelBubble=true;
}
String.prototype.chop = function()
{
	return this.replace(/^\s+/, '').replace(/\s+$/, '');
}


function testReset()
{
	if(!confirm('All form fields will be reseted!\nContinue?'))
	{
		event.returnValue = false;
	}
}

function checkDisplay(l)
{
	while(l && l != document.body)
	{
		if(l.style.display == 'none') return false;
		l = l.parentElement;
	}
	return true;
}

function validateReq(f, err)
{
	if(!err) err = 'Invalid form data: '
	var err2 = '';

	for(var i = 0; i < f.elements.length; i++)
	{
		var l = f.elements[i]
		// Check display.
		if(!checkDisplay(l)) continue;

		var fieldname = l.fieldname;

        if(l.req && (l.type == 'text' || l.type == 'password' 
		|| l.type == 'file' || l.type == 'textarea') 
		&& l.value.chop() == '')
		{
			err2 += '    *   "' + fieldname + '" is required\n'
		}
		else if(l.email && !l.value.match(/.@.+\..+/))
			err2 += '    *   "' + fieldname + '" - invalid e-mail\n'
		if(l.dig && l.type == 'text' && (isNaN(l.value*1) || l.value.chop() == ''))
		{
			err2 += '    *   "' + fieldname + '" - not a number value\n'
		}
		if(l.type == 'password' && l.link && f.elements[l.link])
		{
			if(l.value != f.elements[l.link].value)
			{
				err2 += '* Die Eingabe im Feld "' + fieldname
				 + '" und "' + f.elements[l.link].fieldname
				  + '" muss dieselbe sein.\n'
  			}
			else if(l.transferto)
			{
				f.elements[l.transferto].value = l.value;
			}
		}
		
	}

	if(err2)
	{
		alert(err + '\n' + err2)
		event.returnValue = false;
	}

	if(event.returnValue && f.elements['submitbut1']) f.elements['submitbut1'].disabled = true;
	return event.returnValue;
}

