/************************************************************************************************************/
// error handling. nachricht escapen. alle forms machen.

alertWidth=300; //Alertbox-Mindest-Breite
alertHeight=200; //Alertbox-Mindest-Höhe
xAlertStart=500,
yAlertStart=200; //Wo die Alertbox erscheinen soll
xAlert=300,
yAlert=100; //Wo die Alertbox erscheinen soll


      //Titelzeile:
      alertTitle="<p align='center'><b>Formular</b></p>";

      //Haupttext:
      alertText="<p align='center'>Test</p>";
function show_error(where){
		var message="<img src='images/error.jpg'>";
		switch (where) {
		  case "name":
		    message+="name";
		    break;
		  case "vname":
		    message+="vname";
		    break;
		  case "str":
		    message+="str";
		    break;
		  case "ort":
		    message+="ort";
		    break;
		  case "mitgliedschaft":
		    message+="mitgliedschaft";
		    break;
		  case "mail":
		    message+="mail";
		    break;
		  default:
		    break;
		}
                message="<img src='images/error.jpg'>";
		document.getElementById(where+"_err").innerHTML=message;
}
function hide_error(where){
		var message="<div><img src='images/ok.jpg'>";
		switch (where) {
		  case "name":
		    message+="name ok !";
		    break;
		  case "vname":
		    message+="vname ok !";
		    break;
		  case "str":
		    message+="str ok !";
		    break;
		  case "ort":
		    message+="ort ok !";
		    break;
		  case "mitgliedschaft":
		    message+="mitgliedschaft ok !";
		    break;
		  case "mail":
		    message+="mail ok !";
		    break;
		  default:
		    break;
		}
		message="<div><img src='images/ok.jpg'>";
		document.getElementById(where+"_err").innerHTML=message;
}
function hide_status(where){
		var message="";
		document.getElementById(where+"_err").innerHTML=message;
}
function okAlert() {
        document.getElementById("alert").style.visibility="hidden"; //Alertbox verstecken
        //ggf. weitere Anweisungen
}
function alertAlternative() {
        alert(alertText);
        //ggf. weitere Anweisungen
}
var act=null;
var error=null;
var parm=null;
	function check(){
		alert(check_string(this,0));
	}
	function check_string(obj,dep){
		if(dep==0){
			if(obj.value!=""){
				hide_error(obj.name);
				return true;
			}else{
                                show_error(obj.name);
				return false;
                        }
		}
		if(dep==1){
			if(!ValidateForm()){
				show_error("mail");
				return false;
			}else{
				hide_error("mail");
				return true;
                        }
		}
		if(dep==2){
var ok=false;
for (counter = 0; counter < act.arbeit.length; counter++)
			{
		        if(act.arbeit[counter].checked) {
  ok=true;
}
} 
			if(ok){
				hide_error("arbeit");
				return false;
			}else{
				show_error("arbeit");
				return true;
                        }
		}
		return true;
	}
	
	function valid()
	{
	var err=false;
		if(act.which.value=="mitglied"){
			if(!check_string(act.name,0)){
				show_error("name");
				err=true;
			}else{
				name=act.name.value;
			}
			
			if(!check_string(act.vname,0)){
				show_error("vname");
				err=true;
			}else{
				vname=act.vname.value;
			}

			if(!check_string(act.ort,0)){
				show_error("ort");
				err=true;
			}else{
				ort=act.ort.value;
			}

			if(!check_string(act.str,0)){
				show_error("str");
				err=true;
			}else{
				str=act.str.value;
			}
			
			
			
			mail=act.mail.value;
			if(!ValidateForm()){
				show_error("mail");
				err=true;
			}
			
			
			opt="nicht ausgewählt!";
			for (counter = 0; counter < act.mitgliedschaft.length; counter++)
			{
			if (act.mitgliedschaft[counter].checked)
				opt=act.mitgliedschaft[counter].value;
			}
			if(opt=="nicht ausgewählt!"){
				show_error("mitgliedschaft");
				err=true;
			}
			
			
			if(err){
				return false;
			}else{
				parm="name="+name;
				parm+="&vname="+vname;
				parm+="&ort="+ort;
				parm+="&str="+str;
				parm+="&mail="+mail;
				parm+="&opt="+opt;
				parm+="&which=mitglied";
				return true;
			}
		}

		if(act.which.value=="mitteilungen"){
			if(!check_string(act.name,0)){
				show_error("name");
				err=true;
			}else{
				name=act.name.value;
			}
			
			if(!check_string(act.vname,0)){
				show_error("vname");
				err=true;
			}else{
				vname=act.vname.value;
			}

			if(!check_string(act.str,0)){
				show_error("str");
				err=true;
			}else{
				str=act.str.value;
			}

			if(!check_string(act.ort,0)){
				show_error("ort");
				err=true;
			}else{
				ort=act.ort.value;
			}

			if(!check_string(act.betreff,0)){
				show_error("betreff");
				err=true;
			}else{
				betreff=act.betreff.value;
			}
	
			if(!check_string(act.nachricht,0)){
				show_error("nachricht");
				err=true;
			}else{
				nachricht=act.nachricht.value;
			}		
			
			
			mail=act.mail.value;
			if(!ValidateForm()){
				show_error("mail");
				err=true;
			}
			
			
			anrede="nicht ausgewählt!";
                        anrede=act.anrede.options[act.anrede.selectedIndex].value;			
			
			if(err){
				return false;
			}else{
				parm="name="+name;
				parm+="&vname="+vname;
				parm+="&betreff="+betreff;
				parm+="&str="+str;
				parm+="&ort="+ort;
				parm+="&mail="+mail;
				parm+="&anrede="+anrede;
				parm+="&nachricht="+nachricht;
				parm+="&which=mitteilungen";
				return true;
			}
		}
		if(act.which.value=="mitarbeit"){
			if(!check_string(act.name,0)){
				show_error("name");
				err=true;
			}else{
				name=act.name.value;
			}
			
			if(!check_string(act.vname,0)){
				show_error("vname");
				err=true;
			}else{
				vname=act.vname.value;
			}

			if(!check_string(act.ort,0)){
				show_error("ort");
				err=true;
			}else{
				ort=act.ort.value;
			}

			if(!check_string(act.str,0)){
				show_error("str");
				err=true;
			}else{
				str=act.str.value;
			}
			
			
			
			mail=act.mail.value;
			if(!ValidateForm()){
				show_error("mail");
				err=true;
			}
			
			
		        check_string(act.arbeit,2);
			arbeit="";
			for (counter = 0; counter < act.arbeit.length; counter++)
			{
                        if(act.arbeit[counter].value=="eigenerVorschlag"){
                                if(act.eigener.value!="Ihre eigene Idee..."){
				     arbeit+=act.eigener.value+",";
                                }
			}else{
			  if (act.arbeit[counter].checked){
				arbeit+=act.arbeit[counter].value+",";
			  }
                        }
			}
		        if(err){
				return false;
			}else{
				parm="name="+name;
				parm+="&vname="+vname;
				parm+="&ort="+ort;
				parm+="&str="+str;
				parm+="&mail="+mail;
				parm+="&arbeit="+arbeit;
				parm+="&which=mitarbeit";
				return true;
			}
		}
	}
	function getType(event) {
 event = event || window.event;
 return event.type;
 }
	function forms()
	{
		if(document.forms.length>=1){
			pic1= new Image(16,16); 
			pic1.src="images/error.jpg";
			pic2= new Image(16,16); 
			pic2.src="images/ok.jpg";
			pic3= new Image(16,16); 
			pic3.src="images/info.jpg";
			
			act=document.forms[0];		

			act.action="javascript:submit()";

                        if(act.which.value=="mitglied"){

act.name.onchange = act.name.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.mail.onchange = act.mail.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,1);
}
} 
act.vname.onchange = act.vname.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.str.onchange = act.str.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.ort.onchange = act.ort.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
for (counter = 0; counter < act.mitgliedschaft.length; counter++)
			{
		        act.mitgliedschaft[counter].onchange = act.mitgliedschaft[counter].onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
}
        }

                        if(act.which.value=="mitteilungen"){

act.name.onchange = act.name.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.vname.onchange = act.vname.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.str.onchange = act.str.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.ort.onchange = act.ort.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.betreff.onchange = act.betreff.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.nachricht.onchange = act.nachricht.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.mail.onchange = act.mail.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,1);
}
} 
                        }
                        if(act.which.value=="mitarbeit"){

act.name.onchange = act.name.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.vname.onchange = act.vname.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.str.onchange = act.str.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
act.ort.onchange = act.ort.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,0);
}
} 
for (counter = 0; counter < act.arbeit.length; counter++)
			{
		        act.arbeit[counter].onchange = act.arbeit[counter].onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,2);
}
} 
}
act.mail.onchange = act.mail.onblur = function(event) {
  if (getType(event) == "change") {
		check_string(this,1);
}
} 
                        }
		}else{

		}
	}

	function submit()
	{
		if(valid()){
			makePOSTRequestform('sendmail.php', parm);
                        if(act.which.value=="mitglied"){
				hide_status("name");
				hide_status("vname");
				hide_status("mail");
				hide_status("str");
				hide_status("ort");
				hide_status("mitgliedschaft");
                        }
                        if(act.which.value=="mitteilungen"){
				hide_status("name");
				hide_status("vname");
				hide_status("mail");
				hide_status("str");
				hide_status("ort");
				hide_status("betreff");
				hide_status("nachricht");
                        }
                        if(act.which.value=="mitarbeit"){
				hide_status("name");
				hide_status("vname");
				hide_status("mail");
				hide_status("str");
				hide_status("ort");
				hide_status("arbeit");
                        }
			success();
		}else{
			not_success();
			//error
		}
	}
	
	function success(){
		document.getElementById("status").innerHTML="<img src='images/info.jpg'> Formular wird gesendet!";
		act.getElementsByTagName("input")[act.getElementsByTagName("input").length-1].disabled=true;
	}
	
	function not_success(){
		document.getElementById("status").innerHTML="<img src='images/info.jpg'> Formular fehlerhaft!";
	}
function changeText(text,status){
if(status==1){
		document.getElementById("status").innerHTML="<font color='darkgreen'> "+text+"</font>";
}else{
		document.getElementById("status").innerHTML="<img src='images/info.jpg'> "+text+"";
}
}

function makePOSTRequestform(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = savingform;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
}

function savingform()
{

	if (http_request.readyState == 4) {

	        if (http_request.status == 200) {

			var response = http_request.responseText.split('#');
			if(response[0]=="ok"){
				changeText("Formular wurde gesendet!",1);
			}else{
				changeText("Anfrage fehlerhaft!: <br />"+http_request.responseText,0);
			}
		}
	}
}


function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   //alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   //alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    //alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    //alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}


function ValidateForm(){
	var emailID=act.mail;
	
	if ((emailID.value==null)||(emailID.value=="")){
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.focus()
		return false
	}
	return true
}
