
/*----------------------------------------------------------------------------
FORMULARCHECK.JS

Copyright by
plenum stoll & fischbach Communication GmbH,
Herrenberg, Germany

formularcheck.js 	initializes a form and contains functionality
					to check the plausibility of a form.
					The rules of the plausibility check are defined
					in the calling document.
					Remind: form plausibility has to be checked also serverside

					requires js-include with form plausibility check rules
----------------------------------------------------------------------------*/


//	setInputButtonStyle()
//
//	arguments:
//	- o_inputButton (required):	input object to be checked
//	- styleName (required):		name of style to be changed to
//
//	what:	changes style of submit/reset button for e.g. image mouseovers
//	how:	by setting new classname to input object
function setInputButtonStyle(o_inputButton,styleName)
{
	if (document.getElementById)
	{
		o_inputButton.className = styleName;
	}
}


//	submitForm()
//
//	No arguments
//
//	what:	checks form plausibility rules and submits form
//	how:	by going through the form plausibility check rules
function submitForm()
{
	var anErrorOccured = false;
	var formObj = (0 < arguments.length) ? document.forms[arguments[0]] : document.forms[0];

	for (var i = 1; i < checkRulesArray.length; i++)
	{
		var checkReturnValue = eval(checkRulesArray[i][1] + '(formObj.' + checkRulesArray[i][0] + ')');
		if (checkReturnValue == checkRulesArray[i][2])
		{
			anErrorOccured = true;
			alert(checkRulesArray[i][3]);
			if (checkRulesArray[i][4] == 'text')
			{
				eval('formObj.' + checkRulesArray[i][0] + '.focus()');
			}
			return false;
		}
	}
	if (anErrorOccured == false)
	{
		return true;
	}
}
function submitFormByLink(id)
{
	if (submitForm(id))
	{
		document.getElementById(id).submit();
	}
}


//	isEmptyField()
//
//	arguments:
//	- field (required):	field object to be checked
//
//	what:	checks, if form field is empty
function isEmptyField(field)
{
	if (formStringTrim(field.value) == "") return true;
	else return false;
}


//	isCorrectEmailAddress()
//
//	arguments:
//	- field (required):	field object to be checked
//
//	what:	checks, if form field contains a valid email address
//	how:	by looking for an @, a "." and characters between it
function isCorrectEmailAddress(field)
{
	/*
	var posad = field.value.indexOf("@");
	var pospt = field.value.lastIndexOf(".");
	if ((posad < 1) || (pospt < posad+2) || (pospt >= field.length-1)) return false;
	else return true;
	*/

	var fieldvalue = field.value;
	//var regularExpression = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/; Dieter
	//var regularExpression = /\w+([-+.]\w+)*(\.)?@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	var regularExpression = /[A-Za-z0-9_\.!#\$%&'\*\+-\/=\?\^`\{\|\}~]+@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	var regularExpressionState = regularExpression.test(fieldvalue);
	return regularExpressionState;
}


//	onlyNumbers()
//
//	arguments:
//	- field (required):	field object to be checked
//
//	what:	checks, if form field contains only numbers
//	how:	by comparing field value with numbers character by character
function onlyNumbers(field)
{
	var fieldvalue = field.value;
	var regularExpression = /\D/;
	var regularExpressionState = regularExpression.test(fieldvalue);
	return regularExpressionState;
}


//	isRadioButtonChecked()
//
//	arguments:
//	- fieldname (required):	fieldname to be checked
//
//	what:	checks, if form field type radio is checked
function isRadioButtonChecked(fieldname)
{
	var oneButtonisChecked = false;
	for (i=0;i<fieldname.length;i++)
	{
		if (fieldname[i].checked == true)
		{
			oneButtonisChecked = true;
			break;
		}
	}
	return oneButtonisChecked;
}


//	isDropdownSelected()
//
//	arguments:
//	- fieldname (required):	fieldname to be checked
//
//	what:	checks one value of a dropdown is selected
function isDropdownSelected(fieldname)
{
	if (fieldname.selectedIndex)
	{
		return true;
	}
	return false;
}


//	isCheckboxChecked()
//
//	arguments:
//	- fieldname (required):	fieldname to be checked
//
//	what:	checks, if form field type checkbox is checked
function isCheckboxChecked(fieldname)
{
	if (fieldname.checked == true)
	{
		return true;
	}
	return false;
}


//	formStringLeftTrim()
//
//	arguments:
//	- str (required):	string to be trimmed
//
//	what:	remove leading blanks from our string
function formStringLeftTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

//	formStringRightTrim()
//
//	arguments:
//	- str (required):	string to be trimmed
//
//	what:	remove trailing blanks from our string
function formStringRightTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

//	formStringTrim()
//
//	arguments:
//	- str (required):	string to be trimmed
//
//	what:	remove leading and trailing blanks from our string
function formStringTrim(str)
{
   return formStringRightTrim(formStringLeftTrim(str));
}

/*md check kundennummer motorjournal*/
function hasEightChars(field){
	if(field.value.length==8){
		return true;
	}
	return false;
}


