

// todo
// label__
// z.B. Gage__von !!!





function getobject(obj){
if (document.getElementById)
return document.getElementById(obj)
else if (document.all)
return document.all[obj]
}





// Feldtypdefinitionen für Formularprüfung
// Defintion erfolgt über die id des Feldes


Pflichtfeld = new Array("testform1CatLinks.CategoryID", "testform1Title", "testform1Description", "testform1Suchworte", "testform1Gage__von", "formyName", "formyemail", "formy-rechtsName", "formy-rechtsemail", "kontaktsendername", "kontaktsendermail", "kontaktnachricht", "kontaktContact_Email", "kontaktsendertel", "kontaktContact_Comments", "TEST", "FormIdStichworte", "FormIdVeranstaltungsdatum", "FormIdVeranstaltungsanlass", "FormIdVeranstaltungsort", "FormIdBudget_bis", "FormIdBeschreibung", "FormIdFirma", "FormIdName", "FormIdStrasse", "FormIdOrt", "FormIdTelefon", "FormIdTelefax", "FormIdemail",  "FormIdHomepage", "FormIdHerkunft", "kontaktSessionID", "kontaktContact_Comments__LinkxxxTESTwegxxx", "kontaktContact_Comments__1" );

MinDreiChars = new Array("testform1Title", "testform1Bild");

Ganzzahl = new Array("testform1Gage_von", "testform1Gage__bis");

URL = new Array("testform1URL");

Email = new Array("testform1Aktionscode");

Kleinerals = new Array("testform1Gage__von");

Groesserals = new Array("testform1Gage__bis");



function getPrueffeldtyp(id)
{


Prueffeldtyp = new Array();


  for(var i = 0; i < Pflichtfeld.length; i = i + 1)
  {

   if (Pflichtfeld[i] == id)	{
  //alert("getPrueffeldtyp - " + id + " " + "Pflichtfeld");
	Prueffeldtyp.push("Pflichtfeld");	}
  }


  for(var i = 0; i < MinDreiChars.length; i = i + 1)
  {

   if (MinDreiChars[i] == id)   {
  //alert("getPrueffeldtyp - " + id + " " + "MinDreiChars");
	Prueffeldtyp.push("MinDreiChars");   }
  }


  for(var i = 0; i < Ganzzahl.length; i = i + 1)
  {

   if (Ganzzahl[i] == id)	{
  //alert("getPrueffeldtyp - " + id + " " + "Ganzzahl");
	Prueffeldtyp.push("Ganzzahl");	}
  }



  for(var i = 0; i < URL.length; i = i + 1)
  {

   if (URL[i] == id)	{
  //alert("getPrueffeldtyp - " + id + " " + "URL");
	Prueffeldtyp.push("URL");	}
  }




  for(var i = 0; i < Email.length; i = i + 1)
  {

   if (Email[i] == id)	{
  //alert("getPrueffeldtyp - " + id + " " + "Email");
	Prueffeldtyp.push("Email");	}
  }



  for(var i = 0; i < Kleinerals.length; i = i + 1)
  {

   if (Kleinerals[i] == id)	{
  //alert("getPrueffeldtyp - " + id + " " + "Kleinerals");
	Prueffeldtyp.push("Kleinerals");	}
  }


return Prueffeldtyp


}





function sollGeprueftWerden(id)
{

// alert(getPrueffeldtyp("testform1Title"));

getPrueffeldtyp(id);


// alert (Prueffeldtyp.length);


  for(var i = 0; i < Prueffeldtyp.length; i = i + 1)
  {
    alert (id + " - " + i + ": " + Prueffeldtyp[i]);

  }


}






function markMistakes(label,fehlerfelder)
{

// alert("label,fehlerfelder " + label + " :: " + fehlerfelder);

	if (label.indexOf("__") >= 0)
	{
		labeldiv = label.substring(0,label.indexOf("__"));
		//getobject(labeldiv).className = "rotlabel";

		getobject(labeldiv).style.color = "#cc0000";

		if (fehlerfelder.indexOf(getobject(labeldiv).innerHTML) < 0)	{
		fehlerfelder = fehlerfelder + getobject(labeldiv).innerHTML + "<br />";	}
	}


	else
	{
		getobject(label).className = "rot";

		if (fehlerfelder.indexOf(getobject(label).innerHTML) < 0)	{
		fehlerfelder = fehlerfelder + getobject(label).innerHTML + "<br />";	}
	}


extfehlerfelder = fehlerfelder;

return extfehlerfelder

}







function demarkMistakes(label)
{

	if (label.indexOf("__") >= 0)
	{
		labeldiv = label.substring(0,label.indexOf("__"));
		//getobject(labeldiv).className = "rotlabel";

		if (fehlerfelder.indexOf(getobject(labeldiv).innerHTML) < 0)	{
		getobject(labeldiv).style.color = "#000";	}
		
	}


	else
	{

		if (fehlerfelder.indexOf(getobject(label).innerHTML) < 0)	{
		getobject(label).className = "";	}
	}

}











function checkForm(Formular)
{

// alert("dann mal los! " + Formular.name + "  " + Formular.length + "  " + Formular.elements[2].name);


fehlermeldung = Formular.id + "fehlermeldung";

fehlerfelder = "";

jsError = 0;



fehlerArray = new Array();

     	  for(var i = 0; i < Formular.length; i = i + 1)
     	  {


// alert(Formular.elements[i].name);
// alert(Formular.elements[i].type);
// alert(Formular.elements[i]);




	// nur Eintragsfelder verarbeiten - nicht undefined, hidden, submit

	if (Formular.elements[i].type != undefined && Formular.elements[i].type != "hidden" && Formular.elements[i].type != "submit")
	{


	    fehlerArray.push(Formular.elements[i].name);

	    //label = Formular.name + "label" + Formular.elements[i].name;
	    label = Formular.id + "label" + Formular.elements[i].name;



 //alert(Formular.elements[i].id);


// sollGeprueftWerden(Formular.elements[i].id);


getPrueffeldtyp(Formular.elements[i].id);


// alert (Prueffeldtyp.length);


  for(var j = 0; j < Prueffeldtyp.length; j = j + 1)
  {
   // alert (Formular.elements[i].id + " - " + j + ": " + Prueffeldtyp[j]);





    if (Prueffeldtyp[j] == "Pflichtfeld")	{


if (Formular.elements[i].type == "text" || Formular.elements[i].type == "textarea")
{




	if (Formular.elements[i].value.length < 1)
	{
		// alert("überprüfe auf Pflichtfeld " +  Formular.elements[i].id + "  neg");

		markMistakes(label,fehlerfelder);

		fehlerfelder = extfehlerfelder;

		jsError = jsError + 1;
	}


	else
	{
		//alert("überprüfe auf Pflichtfeld " +  Formular.elements[i].id + "  pos");
		
		demarkMistakes(label);

	}

}


if (Formular.elements[i].type == "select-one")
{

	if (Formular.elements[i][Formular.elements[i].selectedIndex].value == "")
	{
		//alert("überprüfe auf Pflichtfeld" +  Formular.elements[i].id + "  neg");

		markMistakes(label,fehlerfelder);

		fehlerfelder = extfehlerfelder;

		jsError = jsError + 1;
	}


	else
	{
		//alert("überprüfe auf Pflichtfeld" +  Formular.elements[i].id + "  pos");

		demarkMistakes(label);
	}
}



if (Formular.elements[i].type == "radio")
{

label = label + "__";


felder = Formular.elements.length;

var felderi
var radiochecked = 0;

radioname = Formular.elements[i].name;


	for (felderi = 0; felderi < Formular.elements.length; felderi++)
	{

	// alert(Formular.elements[felderi].name +  "  " + radioname  +  "  " + Formular.elements[felderi].checked);

	  if (Formular.elements[felderi].name == radioname && Formular.elements[felderi].checked)
	  {
	    radiochecked++
	  }
	}




	if (radiochecked < 1)
	{
		//alert("überprüfe auf Pflichtfeld" +  Formular.elements[i].id + "  neg");

		markMistakes(label,fehlerfelder);

		fehlerfelder = extfehlerfelder;

		jsError = jsError + 1;
	}


	else
	{
		//alert("überprüfe auf Pflichtfeld" +  Formular.elements[i].id + "  pos");

		demarkMistakes(label);
	}
}



if (Formular.elements[i].type == "checkbox")
{

alert("checkbox ");
// + Formular.elements[i].value + " Name "  + Formular.elements[i].name + " checked " + Formular.elements[i].checked);

//alert(" value " +  Formular.elements[Formular.elements[i].name].checked);


	if (Formular.elements[i].value.length < 1)
	{
		//alert("überprüfe auf Pflichtfeld" +  Formular.elements[i].id + "  neg");

		markMistakes(label,fehlerfelder);

		fehlerfelder = extfehlerfelder;

		jsError = jsError + 1;
	}


	else
	{
		//alert("überprüfe auf Pflichtfeld" +  Formular.elements[i].id + "  pos");

		demarkMistakes(label);
	}
}





    }





    if (Prueffeldtyp[j] == "MinDreiChars")	{

	if (Formular.elements[i].value.length < 3)
	{
		//alert("überprüfe auf min3" +  Formular.elements[i].id + "  neg");

		markMistakes(label,fehlerfelder);

		fehlerfelder = extfehlerfelder;

		jsError = jsError + 1;
	}


	else
	{
		//alert("überprüfe auf min3" +  Formular.elements[i].id + "  pos");

		demarkMistakes(label);
	}

    }




    if (Prueffeldtyp[j] == "Ganzzahl")	{

	if (Formular.elements[i].value != parseInt(Formular.elements[i].value))
	{
		//alert("überprüfe auf Ganzzahl " +  Formular.elements[i].id + "  neg");


		markMistakes(label,fehlerfelder);

		fehlerfelder = extfehlerfelder;

		jsError = jsError + 1;
	}


	else
	{
		//alert("überprüfe auf Ganzzahl " +  Formular.elements[i].id + "  pos");

		demarkMistakes(label);

	}

    }




    if (Prueffeldtyp[j] == "URL")	{

	if (Formular.elements[i].value.indexOf("http://") != 0)
	{
		//alert("überprüfe auf URL " +  Formular.elements[i].id + "  neg");


		markMistakes(label,fehlerfelder);

		fehlerfelder = extfehlerfelder;

		jsError = jsError + 1;
	}


	else
	{
		//alert("überprüfe auf URL " +  Formular.elements[i].id + "  pos");

		demarkMistakes(label);

	}

    }





    if (Prueffeldtyp[j] == "Email")	{


	// {2,4} = 2 bis 4 Zeichen nach dem Punkt, z.B. .info

	var filter=/^.+@.+\..{2,4}$/;


	if (!filter.test(Formular.elements[i].value))
	{
		//alert("überprüfe auf Email " +  Formular.elements[i].id + "  neg");


		markMistakes(label,fehlerfelder);

		fehlerfelder = extfehlerfelder;

		jsError = jsError + 1;
	}


	else
	{
		//alert("überprüfe auf Email " +  Formular.elements[i].id + "  pos");

		demarkMistakes(label);

	}

    }




    if (Prueffeldtyp[j] == "Kleinerals")	{


	if (Formular.elements[i+1].value != "" && parseInt(Formular.elements[i].value) >= parseInt(Formular.elements[i+1].value))
	{
		// alert("überprüfe auf Kleinerals " +  Formular.elements[i].id + "  neg");


		markMistakes(label,fehlerfelder);

		fehlerfelder = extfehlerfelder;

		jsError = jsError + 1;
	}


	else
	{
		//alert("überprüfe auf Kleinerals " +  Formular.elements[i].id + "  pos");

		demarkMistakes(label);
	}


    }




  }











	  }


     	  }



// alert(fehlerArray.length + " Felder gefunden und in array geschrieben");


if (jsError > 0)
{


// Fehlerfelder


//alert(fehlerfelder);

// IE schreibt TAGS gross

while (fehlerfelder.indexOf("SPAN") > 0)	{
  fehlerfelder = fehlerfelder.replace(/SPAN/,"span");	}

//alert(fehlerfelder);


while (fehlerfelder.indexOf("<span") > 0)
{

	//alert (fehlerfelder);

	spanstart = fehlerfelder.indexOf("<span");
	spanend = fehlerfelder.indexOf("</span>") + 7;

	fehlerfeldervorspan = fehlerfelder.substring(0,spanstart);
	fehlerfeldernachspan = fehlerfelder.substring(spanend, fehlerfelder.length);

	//alert(fehlerfeldervorspan);
	//alert(fehlerfeldernachspan);

	fehlerfelder = fehlerfeldervorspan + fehlerfeldernachspan;

	// alert (fehlerfelder);

}




//  fehlertext = "<div>per javascript generierter Standard-Fehlertext:<br />Bitte überprüfen Sie Ihre Eingaben bei den folgenden Feldern: <br />" + fehlerfelder + "</div>";

  fehlertext = "<div>Bitte überprüfen Sie Ihre Eingaben bei den folgenden Feldern:  <div>" + fehlerfelder + "</div>&nbsp;</div>";
  getobject(fehlermeldung).innerHTML = fehlertext;





// zum Formularanfang springen

//location.hash = Formular.name;
location.hash = Formular.id;

//location.hash = "fehler_in_" + Formular.name;
location.hash = "fehler_in_" + Formular.id;

// location.hash = "#top";



return false;

}




else
{
  fehlertext = "";

  if (getobject(fehlermeldung).innerHTML.indexOf("<div>") >= 0 || getobject(fehlermeldung).innerHTML.indexOf("<DIV>") >= 0)
  {
    getobject(fehlermeldung).innerHTML = fehlertext;
    getobject(fehlermeldung).style.display = "none";
  }

return true;
}




}




















function charsLeft(Feld, Maxlaenge)
{

	// var Textlaenge = document.forms["sign99"].elements["Titel"].value.length;
	//var Text = document.forms["sign99"].elements["Titel"].value;



FeldId = Feld.id;
FeldName = Feld.name;
FormularName = Feld.id.substr(0,Feld.id.length-Feld.name.length);

maxlengthfeld = FormularName + "maxlenght" + FeldName;




	var Textlaenge = Feld.value.length;
	var Text = Feld.value;



char3 = Text.charCodeAt(3);

char3 = Text.charCodeAt(document.forms[FormularName].elements[FeldName].value.length-1);


j = 0;

// var Ausgabe = "";
 for(var i = 1; i < Textlaenge + 1; i++)
{

  curChar = Text.charCodeAt(i);

  // if (parseFloat(curChar) == curChar )
  if (curChar != 10 && curChar != 13 )
  {
	j++
  }

}

 //alert(i + " " + j);



	var maxlength = Maxlaenge - j;



	if (maxlength < 0)
	{
	  // getobject(maxlengthfeld).style.backgroundColor = "#bbb";
	  // verbZeichen = "<pan class=\"rot\"><b>Sie haben die maximale Anzahl an Zeichen überschritten. Bitte löschen Sie " + Math.abs(maxlength) + " Zeichen aus diesem Feld!</b></span>";
	  verbZeichen = "<span class=\"rot\" style=\"color: #cc0000;\"><b>Sie haben die maximale Anzahl an Zeichen überschritten. " + Math.abs(maxlength) + " Zeichen wurden gelöscht!</b></span>";


	    document.forms[FormularName].elements[FeldName].value = document.forms[FormularName].elements[FeldName].value.substr(0,Maxlaenge);

	}


	else
	{


	  if (maxlength == 0)

	  //if (maxlength <= 0)
	  {
	    // getobject(maxlengthfeld).style.backgroundColor = "#eee";
	    verbZeichen = "Sie haben die maximale Anzahl an Zeichen eingegeben.";

	    //document.forms[FormularName].elements[FeldName].value = document.forms[FormularName].elements[FeldName].value.substr(0,Maxlaenge);
	  }


	  else
	  {
	    // getobject(maxlengthfeld).style.backgroundColor = "#fff";
	    // verbZeichen = "Sie d&uuml;rfen noch " + maxlength + " Zeichen in dieses Feld schreiben!" + " " + char3 + " " + i + " " + j;
	    verbZeichen = "Sie d&uuml;rfen <b>noch " + maxlength + " Zeichen</b> in dieses Feld schreiben!";

	  }

	}	






	getobject(maxlengthfeld).innerHTML = verbZeichen;

	// document.getElementById("maxlenght").innerHTML = verbZeichen;

}

// charsLeft();





function checkUSTId(him)
{


  if (him.value != "D")		{
    getobject("div-userUstID").style.display = "block";	}


  else	{
    getobject("div-userUstID").style.display = "none";	}


}

