var alertText;

function checkInteger(integerValue) {
	return (!(isNaN(integerValue)) && ((integerValue % 1) == 0));
}

function checkDouble(doubleValue) {
	return !(isNaN(doubleValue));
}

function checkEMail(eMail) {
	var isCorrect = true;
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/; 
	if (!filter.test(eMail)) isCorrect = false; 
	if (eMail.length == 0) isCorrect = true;
	return isCorrect;
}

function checkElement(element) {
	var name = element.name;
	var isCorrect = true;
	if ((name.indexOf("_notNull") > 0) && ((element.value.length < 1) || (isBlank(element.value)))) {
		isCorrect = false;
		alertText = alertText + '\n - ' + element.title;
	}
	if ((name.indexOf("_notUnselected") > 0) && (checkInteger(element.value) ==false)) {
		isCorrect = false;
		alertText = alertText + '\n - ' + element.title;
	}
	if ((name.indexOf("_email") > 0) && (!checkEMail(element.value))) {
		isCorrect = false;
		alertText = alertText + '\n - ' + element.title;
	}
	if ((name.indexOf("_integer") > 0) && (!checkInteger(element.value))) {
		isCorrect = false;
		alertText = alertText + '\n - ' + element.title;
	}
	if ((name.indexOf("_double") > 0) && (!checkDouble(element.value))) {
		isCorrect = false;
		alertText = alertText + '\n - ' + element.title;
		if (element.value != parseFloat(element.value)) element.value = 0;
	}
	return isCorrect;
}



function checkForm() {
	alertText = "Eingabe unvollständig:";
	var alertElement = null;
	for (var x=0;x<document.forms.length;x++) {
		formToCheck = document.forms[x];
		for (var i=0;i<formToCheck.elements.length;i++) {
			if (!checkElement(formToCheck.elements[i])) alertElement = formToCheck.elements[i];
		}
	}
	if (alertElement != null) {
		alert(alertText);
		alertElement.select();
		return false;
	}
	/*
	if ((hasSubmitted == true) || (isFormChanged() == true) || (singleSelected == true)) {
		 var check=confirm('Wollen Sie Ihre Änderungen verwerfen?');
		 return check;
	}
	*/
 	else return true;		
}


function checkLength(element,max) {
	if (element.value.length >= max) { 
		return alert('Sie können hier maximal ' + max + ' Zeichen eingeben!'); 
	}
}

function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){
			return false;
		}
	}
	return true;
}

function resize(element, height) {
	return element.style.height = height + 'px';
}


function openFile(file) {
	var winParameter = "width=700,height=500,menubar=0,resizable=0,scrollbars=1,status=0,titlebar=1,toolbar=0,left=10,top=10";
	var helpWindow = window.open(file,"HelpWindow",winParameter);
	helpWindow.focus();
}


function isFormChanged() {
	var rtnVal = false; 
	var frm = document.forms[0];
	 if ( frm != null) {
		var ele = frm.elements;
		for ( i=0; i < ele.length; i++ ) {
		  if ( ele[i].type.length > 0 ) {
			if ( isElementChanged( ele, i ) ) {
			     rtnVal = true;
			     break;
    			}
   		  }
  		}
	}
	return rtnVal;
}

function isElementChanged( ele, i ) {
	var isEleChanged = false; 
	switch ( ele[i].type ) { 
	  	case "text" : 
		if ( ele[i].value != ele[i].defaultValue ) return true;
		  break;

		case "textarea" : 
		if ( ele[i].value != ele[i].defaultValue ) return true;
		break;

		case "radio" :
   		val = "";
   		if ( ele[i].checked != ele[i].defaultChecked ) return true;
		break;

		/*
		case "select-one" : 
		for ( var x =0 ; x <ele[i].length; x++ ) {
			if ( ele[i].options[ x ].selected != ele[i].options[ x ].defaultSelected ) return true;
   		}
		break;
  		*/

		case "select-multiple" :
		for ( var x =0 ; x <ele[i].length; x++ ) {
			if ( ele[i].options[ x ].selected != ele[i].options[ x ].defaultSelected ) return true;
		}
		break;

		case "checkbox" :
		if ( ele[i].checked != ele[i].defaultChecked ) return true;
  
  		default:
		return false;
		break;
	}
}



