/* general purpose */
function isEmpty(val){
	if(val == null || jQuery.trim(val) == '' || val == undefined || val == 'undefined' )
		return true;
	return false;
}

/* get value of an input by name (different input types)*/
function getVal(inputName){
	if($("input[name='"+ inputName +"']").attr('type') == 'radio' )
		return ($("input[name='"+ inputName +"']:radio:checked").val());
	if($("input[name='"+ inputName +"']").attr('type') == 'checkbox' )
		return ($("input[name='"+ inputName +"']:checkbox:checked").val());
	if(! isEmpty($("select[name='"+ inputName +"']").val()))
		return ($("select[name='"+ inputName +"']").val());
	else if (! isEmpty($("textarea[name='"+ inputName +"']").val()))
		return ($("textarea[name='"+ inputName +"']").val());	
	return ($("input[name='"+ inputName +"']").val());
}


/* show errorMessage ERROR must be predefined  */
function showErrorMsg(ERR_code){
	if((typeof(ERROR) == "undefined"))
		return showError('Error: ' + ERR_code);
	else if((typeof((ERROR[ERR_code])) == "undefined"))
		return showError('Error: ' + ERR_code);
	else
		return showError(ERROR[ERR_code]);
}


function validateRequiredFields(requiredFields, condRequiredFields){
	requiredFields = requiredFields.split(',');
	for(i=0;i < requiredFields.length;i++){
		if( isEmpty( getVal(requiredFields[i]) ) )
			return showErrorMsg(requiredFields[i]);
		if(requiredFields[i] == 'email'){
			if( !checkemail( getVal(requiredFields[i] ) ) )
				return showErrorMsg(requiredFields[i]);
		}
	}
	if(condRequiredFields != undefined){
	   	conditions = condRequiredFields.split(';');
	   	for(i=0;i < conditions.length;i++){
			var condition = conditions[i].split(':');
			var conds = condition[0];
			var cond = conds.split('='); // falls das bedingte Feld nur bei einem bestimmten Value geprüft werden soll
			if( !isEmpty( getVal(cond[0])) && cond.length == 1 ||
				getVal(cond[0]) == cond[1] && cond.length == 2
			){
				var check = condition[1].split(',');
				for(j=0;j < check.length;j++){
					if( isEmpty( getVal(check[j]) ) )
						return showErrorMsg(check[j]);
				}
			}
		}
	}	
	return true;
}

  function checkemail(str){
     var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
     var regex = new RegExp(emailReg);
     return regex.test(str);
  }

