// variablen
/*
var_address
var_adress
var_allowFullname
var_anz_check_items
var_ajax_string

var_checkdata_default_parameter_temp
var_checkdata_default_parameter
var_checkdata_form_elemente_temp
var_checkdata_form_elemente
var_checkdata_temp
var_checkdata_type_ele
var_checkdata_type_func
var_checkdata_type
var_checkdata_line
var_check_alert_text_temp
var_check_alert_text
var_check_zaehler
var_check_type
var_check_min_anz
var_check_field_name_2
var_check_field_name
var_check_field_alert_text
var_check_field_id_2
var_check_field_id
var_check_field_value

var_emailBegin
var_emailEnd
var_email

var_fail
var_fullname
var_field_id2
var_field_id
var_field_name

var_hostname

var_iC
var_iL
var_is_selected
var_ipnr
var_i

var_j

var_mustBeQuoted

var_nr

var_send_array_counter
var_send_array_in
var_send_array
var_send_string_func
var_send_string
var_str1
var_str2
var_str3
var_sNr
var_seperate
var_status

var_username

var_value_string

var_zeichen
*/

// functions
/*
func_notIn
func_checkUsername
func_checkEmailAdr
func_checkEmail
*/


function check_form(var_checkdata_line){
	var_send_array_counter=0;
	var_send_string="";
	
	var_checkdata_temp=var_checkdata_line.split("-||||-");
	var_checkdata_type_func=var_checkdata_temp[0].split("-|||-");
	var_checkdata_type=var_checkdata_type_func[0].split("-||-");
	var_checkdata_type_ele=var_checkdata_type_func[1].split("-||-");

	var_checkdata_default_parameter_temp=var_checkdata_temp[1].split("-||-");
	var_checkdata_default_parameter=new Array();
	for(i=0;i<var_checkdata_default_parameter_temp.length;i++){
		if(var_checkdata_default_parameter_temp[i]!=""&&var_checkdata_default_parameter_temp[i]!=" "){
			var_checkdata_default_parameter[i]=var_checkdata_default_parameter_temp[i].split("=");
		}
	}
	
	var_checkdata_form_elemente_temp=var_checkdata_temp[2].split("-|||-");
	var_checkdata_form_elemente=new Array();
	for(i=0;i<var_checkdata_form_elemente_temp.length;i++){
		var_checkdata_form_elemente[i]=var_checkdata_form_elemente_temp[i].split("-||-");
	}
	
	var_check_alert_text=var_checkdata_type[1]+"\n\n";
	var_check_alert_text_temp=var_check_alert_text;
	
	var_anz_check_items=var_checkdata_form_elemente.length-1;
	
	var_send_array=new Array();
	for(var_check_zaehler=0;var_check_zaehler<=var_anz_check_items;var_check_zaehler++){
		var_check_type=var_checkdata_form_elemente[var_check_zaehler][0];
		var_check_min_anz=var_checkdata_form_elemente[var_check_zaehler][1];
		var_check_field_name=var_checkdata_form_elemente[var_check_zaehler][2];
		var_check_field_name_2=var_checkdata_form_elemente[var_check_zaehler][3];
		var_check_field_id=var_checkdata_form_elemente[var_check_zaehler][4];
		var_check_field_id_2=var_checkdata_form_elemente[var_check_zaehler][5];
		var_check_field_alert_text=var_checkdata_form_elemente[var_check_zaehler][6];
		var_check_field_value='';
		
		var_field_id = document.getElementById(var_check_field_id);
		var_field_id2 = document.getElementById(var_check_field_id_2);
		var_field_name = document.getElementsByName(var_check_field_name);
		if(var_check_type=="empty"){
			if(var_field_id.value==""){
				var_check_alert_text=var_check_alert_text+"- "+var_check_field_alert_text+"\n";
			}
			var_check_field_value=escape(var_field_id.value);
		}
		else if(var_check_type=="email"){
			var_email=var_field_id.value;
			if(!func_checkEmail(var_email,true)&&var_email!=""){
				var_check_alert_text=var_check_alert_text+"- "+var_check_field_alert_text+"\n";
			}
			var_check_field_value=escape(var_field_id.value);
		}
		else if(var_check_type=="checked"){
			if(var_field_id.checked==false){
				var_check_alert_text=var_check_alert_text+"- "+var_check_field_alert_text+"\n";
			}
			var_check_field_value=escape(var_field_id.value);
		}
		else if(var_check_type=="checked_radio"){
			var_is_selected=0;
			for(i=0;i<var_field_name.length;i++){
				if(var_field_name.checked==true){
					var_is_selected=1;
					var_check_field_value=escape(var_field_name[i].value);
				}
			}
			if(var_is_selected==0){
				var_check_alert_text=var_check_alert_text+"- "+var_check_field_alert_text+"\n";
			}
		}
		else if(var_check_type=="selected"){
			var_is_selected=0;
			for(i=0;i<var_field_id.options.length;i++){
				if(var_field_id.options[i].selected==true&&var_field_id.options[i].value!="hidden"){
					var_is_selected=1;
					var_check_field_value=escape(var_field_id.options[i].value);
				}
			}
			if(var_is_selected==0){
				var_check_alert_text=var_check_alert_text+"- "+var_check_field_alert_text+"\n";
			}
		}
		else if(var_check_type=="samevalue"){
			if(var_field_id.value!=var_field_id2.value){
				var_check_alert_text=var_check_alert_text+"- "+var_check_field_alert_text+"\n";
			}
			var_check_field_value=escape(var_field_id.value);
			
			var_send_array_in=0;
			for(i=0;i<var_send_array.length;i++){
				if(var_send_array[i]['id']==var_check_field_id_2&&var_send_array[i]['name']==var_check_field_name_2){
					var_send_array_in=1;
				}
			}
			if(var_send_array_in==0){
				var_send_array[var_send_array_counter]=new Array();
				var_send_array[var_send_array_counter]['id']=var_check_field_id_2;
				var_send_array[var_send_array_counter]['name']=var_check_field_name_2;
				var_send_array[var_send_array_counter]['value']=escape(var_field_id2.value);
				var_send_array_counter++;
			}
		}
		else if(var_check_type=="tel"){
			var_fail=0;
			var_value_string=""+var_field_id.value;//Umwandlung in eine Zeichenkette
			var_zeichen="0123456789+-()[]/ ";//Gültige Zeichen
			for(i=0;i<var_value_string.length;i++){
				if(var_zeichen.indexOf(var_value_string.charAt(i))==-1)	{
					var_fail=1;
				}
			}
			if(var_fail==1){
				var_check_alert_text=var_check_alert_text+"- "+var_check_field_alert_text+"\n";
			}
			var_check_field_value=escape(var_field_id.value);
		}
		else if(var_check_type=="number"){
			var_fail=0;
			var_value_string=""+var_field_id.value;//Umwandlung in eine Zeichenkette
			var_zeichen="0123456789";//Gültige Zeichen
			for(i=0;i<var_value_string.length;i++){
				if(var_zeichen.indexOf(var_value_string.charAt(i))==-1)	{
					var_fail=1;
				}
			}
			if(var_fail==1){
				var_check_alert_text=var_check_alert_text+"- "+var_check_field_alert_text+"\n";
			}
			var_check_field_value=escape(var_field_id.value);
		}
		else if(var_check_type=="min"){
			if(var_field_id.value==""||var_field_id.value.length<var_check_min_anz){
				var_check_alert_text=var_check_alert_text+"- "+var_check_field_alert_text+"\n";
			}
			var_check_field_value=escape(var_field_id.value);
		}
		else if(var_check_type=="no"){
			if(var_check_min_anz=="text"){
				var_check_field_value=escape(var_field_id.value);
			}
			else if(var_check_min_anz=="radio"){
				for(i=0;i<var_field_name.length;i++){
					if(var_field_name[i].checked==true){
						var_check_field_value=escape(var_field_name[i].value);
					}
				}
			}
			else if(var_check_min_anz=="checkbox"){
				var_check_field_value=escape(var_field_id.value);
			}
			else if(var_check_min_anz=="select"){
				for(i=0;i<var_field_id.options.length;i++){
					if(var_field_id.options[i].selected==true&&var_field_id.options[i].value!="hidden"){
						var_check_field_value=escape(var_field_id.options[i].value);
					}
				}
			}
			else if(var_check_min_anz=="hidden"){
				var_check_field_value=escape(var_field_id.value);
			}
			else if(var_check_min_anz=="textarea"){
				var_check_field_value=escape(var_field_id.value);
			}
		}
		
		var_send_array_in=0;
		for(i=0;i<var_send_array.length;i++){
			if(var_send_array[i]['id']==var_check_field_id&&var_send_array[i]['name']==var_check_field_name){
				var_send_array_in=1;
			}
		}
		if(var_send_array_in==0){
			var_send_array[var_send_array_counter]=new Array();
			var_send_array[var_send_array_counter]['id']=var_check_field_id;
			var_send_array[var_send_array_counter]['name']=var_check_field_name;
			var_send_array[var_send_array_counter]['value']=var_check_field_value;
			var_send_array_counter++;
		}
	}
	
	if(var_check_alert_text!=var_check_alert_text_temp){
		alert(var_check_alert_text);
		return false;
	}
	else{
		if(var_checkdata_type[2]=="submit"){
			document.getElementById(checkdata[0]['check_form_id']).submit();
			return true;
		}
		else if(var_checkdata_type[2]=="ajax"){
			for(var_i=0;var_i<var_send_array.length;var_i++){
				if(var_send_string==""){
					var_send_string=var_send_string+var_send_array[var_i]['name']+"="+var_send_array[var_i]['value'];
				}
				else{
					var_send_string=var_send_string+"&"+var_send_array[var_i]['name']+"="+var_send_array[var_i]['value'];
				}
			}
			for(var_i=0;var_i<var_checkdata_default_parameter.length;var_i++){
				if(var_send_string==""){
					var_send_string=var_send_string+escape(var_checkdata_default_parameter[var_i][0])+"="+escape(var_checkdata_default_parameter[var_i][1]);
				}
				else{
					var_send_string=var_send_string+"&"+escape(var_checkdata_default_parameter[var_i][0])+"="+escape(var_checkdata_default_parameter[var_i][1]);
				}
			}
			var_ajax_string=var_checkdata_type[3]+"('"+var_checkdata_type[4]+"','"+var_send_string+"','"+var_checkdata_type[5]+"')";
			//alert(var_send_string);
			//alert(var_ajax_string);
			eval(var_ajax_string);
			return false;
		}
		else if(var_checkdata_type[2]=="function"){
			for(var_i=0;var_i<var_send_array.length;var_i++){
				if(var_send_string==""){
					var_send_string=var_send_string+var_send_array[var_i]['name']+"="+var_send_array[var_i]['value'];
				}
				else{
					var_send_string=var_send_string+"&"+var_send_array[var_i]['name']+"="+var_send_array[var_i]['value'];
				}
			}
			for(var_i=0;var_i<var_checkdata_default_parameter.length;var_i++){
				if(var_send_string==""){
					var_send_string=var_send_string+escape(var_checkdata_default_parameter[var_i][0])+"="+escape(var_checkdata_default_parameter[var_i][1]);
				}
				else{
					var_send_string=var_send_string+"&"+escape(var_checkdata_default_parameter[var_i][0])+"="+escape(var_checkdata_default_parameter[var_i][1]);
				}
			}
			var_send_string_func="";
			for(var_i=0;var_i<var_checkdata_type_ele.length;var_i++){
				var_send_string_func=var_send_string_func+",'"+escape(var_checkdata_type_ele[var_i])+"'";
			}
			//var_ajax_string=var_checkdata_type[3]+"('"+var_checkdata_type[4]+"','"+var_send_string+"','"+var_checkdata_type[5]+"')";
			var_ajax_string=var_checkdata_type[3]+"('"+var_send_string+"'"+var_send_string_func+")";
			//alert(var_send_string);
			//alert(var_ajax_string);
			eval(var_ajax_string);
			return false;
		}
	}
}
function func_notIn(var_str1,var_str2){
	var_i=0;
	var_j=var_str2.length;
	for(;var_i<var_j;var_i++){
		var_str3=var_str2.charAt(var_i);
		if(var_str1.indexOf(var_str3)!=-1){
			return false;
		}
	}
	return true;
}
function func_checkUsername(var_username,var_mustBeQuoted){
	var_i=0;
	var_j=var_username.length;
	if(var_username.charAt(0)!='"'){
		if((var_username.charAt(0)<' ')||(var_username.charAt(0)>'~')||!func_notIn(var_mustBeQuoted,var_username.charAt(0))){
			return false;
		}
		for(i=1;var_i<var_j;var_i++){
			if(((var_username.charAt(var_i)<' ')||(var_username.charAt(var_i)>'~')||!func_notIn(var_mustBeQuoted,var_username.charAt(var_i)))&&(var_username.charAt(var_i-1)!='\\')){
				return false;
			}
		}
	}
	else{
		if(var_username.charAt(var_j-1)!='"'){
			return false;
		}
		for(var_i=1;var_i<var_j-1;var_i++){
			if(((var_username.charAt(var_i)=='\n')||(var_username.charAt(var_i)=='\r')||(var_username.charAt(var_i)=='\"'))&&(var_username.charAt(var_i-1)!='\\')){
				return false;
			}
		}
	}
	return true;
}
function func_checkEmailAdr(var_address){
	var_status=true;
	var_username="";
	var_hostname="";

	if(var_address.length<8){
		return false;
	}

	var_seperate=var_address.lastIndexOf("@");
	if(var_seperate==-1){
		return false;
	}

	var_username=var_address.substring(0,var_seperate);
	if(!func_checkUsername(var_username,"<>()[],;:@\" ")){
		return false;
	}

	var_hostname=var_address.substring(var_seperate+1,var_address.length);
	
	
	if(var_hostname.charAt(0)=='['){
		if(var_hostname.charAt(var_hostname.length-1)!=']'){
			return false;
		}
		var_ipnr=var_hostname.substring(1,var_hostname.length-1);
		
		var_iL=0;
		var_iC=0;
		var_i=0;
		var_sNr="";
	
		for(;var_i<var_ipnr.length;var_i++){
			if(var_ipnr.charAt(var_i)=='.'){
				if(!var_iL||(var_iL>3)||parseInt(var_sNr,10)>255){
					return false;
				}
				var_iC++;
				var_iL=0;
				var_sNr="";
				continue;
			}
			if((var_ipnr.charAt(var_i)>='0')&&(var_ipnr.charAt(var_i)<='9')){
				var_iL++;
				var_sNr=var_sNr+var_ipnr.charAt(var_i);
				continue;
			}
			return false;
		}
	
		if(parseInt(var_sNr,10)>255){
			return false;
		}
		if(((var_iC==3)&&(var_iL>=1)&&(var_iL<=3))||((var_iC==4)&&(!var_iL))){
			return true;
		}
		else{
			return false;
		}
	}
	if(var_hostname.charAt(0)=='#'){
		var_nr=var_hostname.substring(1,var_hostname.length);
		var_i=0;
		var_j=var_nr.length;
		if(var_j<1){
			return false;
		}
	
		for(;var_i<var_j;var_i++){
			if((var_nr.charAt(var_i)<'0')||(var_nr.charAt(var_i)>'9')){
				return false;
			}
		}
		return true;
	}
	
	var_iL=0;
	var_iC=0;
	var_i=var_hostname.length-1;

	if((var_hostname.charAt(0)=='.')||(var_hostname.charAt(0)=='-')){
		return false;
	}
	if(var_hostname.charAt(var_i)=='.'){
		var_i=var_i-1;
	}

	for(;var_i>=0;var_i--){
		if(var_hostname.charAt(var_i)=='.'){
			if(var_iL<2&&var_iC<2){
				return false;
			}
			if(var_hostname.charAt(var_i-1)=='-'){
				return false;
			}
			var_iC++;
			var_iL=0;
			continue;
		}
		if((((var_hostname.charAt(var_i)>='a')&&(var_hostname.charAt(var_i)<='z'))||((var_hostname.charAt(var_i)>='A')&&(var_hostname.charAt(var_i)<='Z')))||(var_hostname.charAt(var_i)>='0')&&(var_hostname.charAt(var_i)<='9')){
			var_iL++;
			continue;
		}
		if(var_hostname.charAt(var_i)=='-'){
			if(!var_iL){
				return false;
			}
			var_iL++;
			continue;
		}
		return false;
	}

	if(!var_iC||(var_iL==1&&var_iC<2)||(!var_iL&&var_iC==1)){
		return false;
	}
	return true;
}
function func_checkEmail(var_email,var_allowFullname){
	var_status=true;
	var_fullname="";
	var_adress="";
	if(var_email.length<8){
		return false;
	}
	var_emailBegin=var_email.indexOf("<");
	var_emailEnd=var_email.lastIndexOf(">");

	if((var_emailBegin==-1)&&(var_emailEnd==-1)){
		return func_checkEmailAdr(var_email);
	}

	if(((var_emailBegin==-1)&&(var_emailEnd!=-1))||((var_emailBegin!=-1)&&(var_emailEnd==-1))){
		return false;
	}

	var_adress=var_email.substring(var_emailBegin+1,var_emailEnd);

	if(!func_checkEmailAdr(var_adress)){
		return false;
	}

	if(var_email.length==var_adress.length+2){
		return true;
	}
	else{
		if(!var_allowFullname){
			return false;
		}
	}

	if(var_emailEnd==var_email.length-1){
		if(var_emailBegin==0){
			return true;
		}
		if(var_email.charAt(var_emailBegin-1)!=' '){
			return false;
		}
		var_fullname=var_email.substring(0,var_emailBegin-1);
		return func_checkUsername(var_fullname,"<>()[],;:@\"");
	}
	return false;
}
