function bless ( element ) {
    element.style.background = "#f0ffb0";
}

function curse ( element ) {
    element.style.background = "#ffb0b0";
    element.focus();
}

function isEmpty( element ) {
	if ( element.value.match(/^\s*$/) )
	{
		return true;
	}
	return false;
}

//assumes existing defaultText
function isStillDefault( element ) {
	if ( element.value == element.defaultText )
	{
		return true;
	}
	return false;
}

function isNotEntered ( element ) {
    if( isEmpty( element ) ){
		return true;
    }
    else if( element.defaultText != null && isStillDefault( element ) ) {
		return true;
    }
    return false;
}

////////////////////////////////////////////////////////

function isNotEmpty( element, element_name ) {
	if ( ! element.value.match(/\S/) ) {
        curse( element );
		alert('Das Feld "'+element_name+'" darf nicht leer sein.');
		return false;
	}
    bless ( element );
	return true;
}

function isSelected( element, element_name ) {
    idx = element.selectedIndex;
    if ( (idx == -1) || !(element.options[idx].value.match(/\S/)) ) {
        curse( element );
		alert('Das Feld "'+element_name+'" muss ausgewählt sein.');
		return false;
	}
    bless ( element );
	return true;
}

function isEntered ( element, element_name ) {
    if( isNotEntered( element ) ){
		curse ( element );
		alert('Das Feld "'+element_name+'" muss angegeben werden.');
		return false;
    }
    bless ( element );
    return true;
}

function isChecked( element, element_name ) {
	if ( ! element.checked )
	{
		curse ( element );
		alert('Das Feld "'+element_name+'" muss angekreuzt sein.');
		return false;
	}
    bless ( element );
	return true;
}

function isName( element, element_name ) {
	if ( ! element.value.match(/\S/) )
	{
		curse ( element );
		alert('Das Feld "'+element_name+'" darf nicht leer sein.');
		return false;
	}
    bless ( element );
	return true;
}

function isEmail( element, element_name ) {
	if ( ! element.value.match(/^\s*\S+(\.\S+)*@(\S+\.\S+)+\s*$/) )
	{
		curse ( element );
		alert('Die Emailadresse von Feld "'+element_name+'" scheint nicht korrekt zu sein.');
		return false;
	}
    bless ( element );
	return true;
}

function isDate( element, element_name ) {
	if ( ! element.value.match(/^\s*\d{4}-[10]\d-[0123]\d\s*$/) )
	{
		curse ( element );
		alert('Das Datumsformat von Feld "'+element_name+'" ist nicht korrekt.\n JJJJ-MM-TT ist vorgeschrieben. Führende Nullen sind anzugeben.');
		return false;
	}
    bless ( element );
	return true;
}

function isNum( element, element_name ) {
	if ( ! element.value.match(/^\s*\d+(,\d+){0,1}\s*$/) )
	{
		curse ( element );
		alert('Das Feld "'+element_name+'" darf nur Ziffern enthalten.');
		return false;
	}
    bless ( element );
	return true;
}

function isNumOpt( element, element_name ) {
	if ( element.value.match(/\S/) && ! element.value.match(/^\s*\d+(,\d+){0,1}\s*$/) )
	{
		curse ( element );
		alert('Das Feld "'+element_name+'" darf nur Ziffern enthalten.');
		return false;
	}
    bless ( element );
	return true;
}

function isMoney( element, element_name ) {
	//if ( ! element.value.match(/^\s*\d+(.\d+){0,1}\s*$/) )
	if ( ! element.value.match(/^\d+(\.){0,1}\d*$/) )
	{
		curse ( element );
		alert('Das Feld "'+element_name+'" darf nur Ziffern und einen Punkt enthalten.');
		return false;
	}
    bless ( element );
	return true;
}

function isPercentage( element, element_name ) {
	if ( ! element.value.match(/^\s*(100|(\d{0,1}\d))\s*$/) )
	{
		curse ( element );
		alert('Das Feld "'+element_name+'" muss zwischen 0 und 100 Prozent liegen.');
		return false;
	}
    bless ( element );
	return true;
}

function isLogin( element, element_name ) {
	if ( ! element.value.match(/^\s*\w+\s*$/) )
	{
		curse ( element );
		alert('Das Feld "'+element_name+'" darf nur Alphanumerische Zeichen enthalten.');
		return false;
	}
    bless ( element );
	return true;
}

function isPwd( element, element_name ) {
	if ( ! element.value.match(/^\s*\w+\s*$/) )
	{
		curse ( element );
		alert('Das Feld "'+element_name+'" darf nur Alphanumerische Zeichen enthalten.');
		return false;
	}
    bless ( element );
	return true;
}



