var firstParticipant = 0;
var participants = 0;
var boxesChecked = 0;

function checkSeminarStep1()
{
	var seminar1Boxes = document.getElementById('seminar1').getElementsByTagName('input');
	var seminar1BoxesSorted = new Array();
	
	for ( var i = 0 ;  i < seminar1Boxes.length ; i++ ) {
		seminar1BoxesSorted[i] = seminar1Boxes.item(i);
	}
	
	seminar1BoxesSorted.sort(nameAsc);

	var name = seminar1BoxesSorted[0].name;
	var checked = false;
	var result = true;
	var min = 0;
	var minName = "teil1";

	for ( var i = 0 ; i < seminar1BoxesSorted.length ; i++ ) {
		var obj = seminar1BoxesSorted[i];
		if ( obj.id <= min && obj.name != minName )  {
			obj.checked = false;
			obj.disabled = true;
		} 

		if ( obj.id > min && obj.name != minName ) {
			obj.disabled = false;
		}
		
		if ( obj.name != name && checked == false) {
			result = false;
		} else if ( obj.name != name ) {
			name = obj.name;
			checked = false;
		}
		
		if ( obj.checked == true ) {
			checked = true;
			min = obj.id;
			minName = obj.name;
		}
		
	}
	
	if ( result == false || checked == false )
		return;
	
	initSeminar2(min);
}


function initSeminar2(min)
{
	document.getElementById('seminar2').className = 'visibleElement';
	
	var seminar2Boxes = document.getElementById('seminar2').getElementsByTagName('input');
	var seminar2BoxesSorted = new Array();
	
	for ( var i = 0 ;  i < seminar2Boxes.length ; i++ ) {
		seminar2BoxesSorted[i] = seminar2Boxes.item(i);
	}
	
	seminar2BoxesSorted.sort(nameAsc);
	for ( var i = 0 ; i < seminar2BoxesSorted.length ; i++ ) {
		var obj = seminar2BoxesSorted[i];
		
		obj.disabled = ( obj.id <= min ) ? true : false;
		obj.checked  = ( obj.id <= min ) ? false : obj.checked;
	}
}

function initStep2()
{
	var seminar3Boxes = document.getElementById('seminar3').getElementsByTagName('input');
	var seminar3BoxesSorted = new Array();
	
	for ( var i = 0 ;  i < seminar3Boxes.length ; i++ ) {
		seminar3BoxesSorted[i] = seminar3Boxes.item(i);
	}
	
	seminar3BoxesSorted.sort(nameAsc);
	
	for ( var i = 0 ; i < seminar3BoxesSorted.length ; i++ ) {
		var obj = seminar3BoxesSorted[i];
		if ( obj.checked == true ) {
			boxesChecked++;
			var tmp = document.getElementById(obj.name + "Prototyp");

			if ( tmp === null )
				continue;

			tmp.className = 'visibleElement';
		}
	}
	
	if ( boxesChecked == 0 ) {
			alert("Bitte waehlen Sie mindestens eine Veranstaltung aus.");
			return false;
	}
	

	var sem2Test = document.getElementById('seminar2');
	if ( sem2Test ) {
		var seminar2Boxes = document.getElementById('seminar2').getElementsByTagName('input');
		var seminar2BoxesSorted = new Array();
		for ( var i = 0 ;  i < seminar2Boxes.length ; i++ ) {
			seminar2BoxesSorted[i] = seminar2Boxes.item(i);
		}
		
		seminar2BoxesSorted.sort(nameAsc);
		for ( var i = 0 ; i < seminar2BoxesSorted.length ; i++ ) {
			var obj = seminar2BoxesSorted[i];
			
			if ( obj.checked == true ) {
				document.getElementById(obj.name + 'Prototyp').className = 'visibleElement';
			}
		}
	}
	
	var sem1Test = document.getElementById('seminar1');
	
	if ( sem1Test ) {
		var seminar1Boxes = document.getElementById('seminar1').getElementsByTagName('input');
		var seminar1BoxesSorted = new Array();
		for ( var i = 0 ;  i < seminar1Boxes.length ; i++ ) {
			seminar1BoxesSorted[i] = seminar1Boxes.item(i);
		}
		
		seminar1BoxesSorted.sort(nameAsc);
		for ( var i = 0 ; i < seminar1BoxesSorted.length ; i++ ) {
			var obj = seminar1BoxesSorted[i];
			
			if ( obj.checked == true ) {
				document.getElementById(obj.name + 'Prototyp').className = 'visibleElement';
			}
		}
	}
	
	addParticipant();
	return true;
}


function checkStep2()
{
	for ( var i = 0 ; i < firstParticipant; i++ ) {
		var container = document.getElementById('teilnehmerDaten' + i);
		
		if ( !container || container.className == "invisibleElement" )
			continue;
			
		var vorname = document.getElementById("vorname"+i);
		var name = document.getElementById("name"+i);
		var mail = document.getElementById("email"+i);
		var notebooks = document.getElementsByName("notebook"+i);
		
		if ( !vorname || !name || !mail )
			continue;
		
		
		for ( var a = 0 ; a < notebooks.length ; a++ ) {
			
			var notebook = notebooks[a];
			
			if ( notebook !== null && notebook.checked == false ) {
				var parent = document.getElementById(notebook.className);
				
				if ( parent !== null && parent.checked == true && parent.parentNode.parentNode.className != 'invisibleElement' ) {
					alert("Bitte bestätigen Sie, dass Sie den Notebook-Hinweis zur Kenntnis genommen haben");
					notebook.focus();
					return false;			
				}
			}
		}
		
		if ( notEmpty( vorname ) == false ) {
			alert("Bitte füllen Sie alle Pflichtfelder korrekt aus");
			vorname.focus();
			return false;
		}
		
		if ( notEmpty( name ) == false ) {
			alert("Bitte füllen Sie alle Pflichtfelder korrekt aus");
			name.focus();
			return false;
		}
		
		if ( validMail( mail ) == false ) {
			alert("Bitte füllen Sie alle Pflichtfelder korrekt aus");
			mail.focus();
			return false;
		}
	}
	
	return true;
}	

function checkSeminar2()
{
	var seminar2Boxes = document.getElementById('seminar2').getElementsByTagName('input');
	var seminar2BoxesSorted = new Array();
	
	for ( var i = 0 ;  i < seminar2Boxes.length ; i++ ) {
		seminar2BoxesSorted[i] = seminar2Boxes.item(i);
	}
	
	seminar2BoxesSorted.sort(nameAsc);
	
	var min = 6;
	var tmp = new Array();
	var count = new Array();
	var lastName = "";
	
	for ( var i = 0 ; i < seminar2BoxesSorted.length ; i++ ) {
		var obj = seminar2BoxesSorted[i];
		
		
		if ( obj.name != lastName ) 
			count[count.length] = 1;
		
		if ( obj.checked == true ) {
			tmp[tmp.length] = obj.name;
		}
		
		lastName = obj.name;
	}
	
	if ( tmp.length < count.length ) {
		if ( tmp.length == 0 ) {
			alert("Bitte waehlen Sie mindestens eine Veranstaltung aus.");
			return;
		}
		
		if ( !confirm("Sie haben nur " + tmp.length + " von " + count.length + " moeglichen Veranstaltungen ausgewaehlt. Fortfahren?"))
			return false;
	}
	
	boxesChecked++;
	initStep2();
	return true;
}

function checkStep3()
{
	var kontaktTmp = document.getElementById('kontaktperson').getElementsByTagName('input');
	var kontaktElemente = new Array();
	
	for ( var i = 0 ;  i < kontaktTmp.length ; i++ ) {
		kontaktElemente[i] = kontaktTmp.item(i);
	}

	if ( document.getElementById('abweichendeRechnungsadresse').checked == true ) {
		var rechnungTmp = document.getElementById('rechnungsadresse').getElementsByTagName('input');
		var rechnungElemente = new Array();
		
		for ( var i = 0 ;  i < rechnungTmp.length ; i++ ) {
			rechnungElemente[i] = rechnungTmp.item(i);
		}
		
		kontaktElemente.concat(rechnungElemente);
	}
	
	for ( var i = 0 ; i < kontaktElemente.length ; i++ ) {
		var obj = kontaktElemente[i];
		
		if ( obj.className == 'inputfeldlang inputTodo' || obj.className == 'inputfeldlang inputWrong' ) {
			alert('Bitte füllen Sie alle Pflichtfelder korrekt aus');
			obj.focus();
			return;
		}
	}
	
	if ( document.getElementById('agb').checked == false ) {
		alert('Bitte akzeptieren sie die AGB');
		return;
	}
	
	if ( document.getElementById('anmeldeTyp1').checked == false &&
		 document.getElementById('anmeldeTyp2').checked == false ) {
			
			alert('Bitte wählen Sie, ob Sie sich privat oder gewerblich anmelden');
			return false;
	}
	
	return true;
}


function idAsc(a, b )
{
	return ( a.id - b.id );
}


function nameAsc(a, b )
{
	 var number = a.name.substring( a.name.length - 1 ) - b.name.substring( b.name.length - 1 );
	 if ( !isNumeric(number) )
		return 0;

	 return number;
}

function stepState( currentStep, nextStep )
{
	document.getElementById('step' + currentStep + 'Nav').className = 'inactiveStep';
	document.getElementById('step' + currentStep ).className = 'invisibleStep';
	
	document.getElementById('step' + nextStep + 'Nav').className = 'activeStep';
	document.getElementById('step' + nextStep ).className = 'visibleStep';
	
	document.getElementById('stepCounter').innerHTML = nextStep;
}


function activatePart ( id ) 
{
	document.getElementById(id + '_person').className = 'visibleElement';
}


function deactivatePart ( id ) 
{
	document.getElementById(id + '_person').className = 'invisibleElement';
	document.forms['anmeldung'].elements[id][0].checked = false;
	document.forms['anmeldung'].elements[id][1].checked = false;
}

function toggleElement ( id ) 
{
	var obj = document.getElementById(id);
	
	if ( obj.className == "visibleElement" ) {
		obj.className = "invisibleElement";
		return;
	}
	
	obj.className = "visibleElement";
}

function addParticipant()
{
	var obj = document.getElementById('teilnehmer'+firstParticipant);
	var obj2 = document.getElementById('teilnehmerPrototyp');
	
	var tmp = obj2.innerHTML.replace(/##num##/g, firstParticipant).replace(/##numNext##/, ++firstParticipant);
	obj.innerHTML = obj.innerHTML + tmp;
	participants++;
}


function removeParticipant(id)
{
	var obj = document.getElementById("teilnehmerDaten"+id);
	
	if ( !obj )
		return;
		
	if ( participants == 1 ) {
		alert("Es muss mindestens ein Teilnehmer angemeldet werden.");
		return;
	}
		
	participants--;
	obj.className = "invisibleElement";
	obj.innerHTML = "";
}

function notEmpty( obj )
{
	if ( obj.value && obj.value.length > 0 ) {
		obj.className = "inputOkay inputfeldlang";
		return true;
	} else {
		obj.className = "inputWrong inputfeldlang";
		return false;
	}
}

function isNumeric( obj )
{
	if ( obj.value != parseInt(obj.value) ) {
		obj.className = "inputWrong inputfeldlang";	
		return false;
	} else {
		obj.className = "inputOkay inputfeldlang";
		return true;
	}
}

function validMail( obj ) {

   email = obj.value
   if ( email == "" ) {
      obj.className = "inputWrong inputfeldlang";
	  return false;
	}

   var usr    = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^x80-xff?15?12\"]|[^x80-xff])+\")";
   var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*.)*[a-zA-Z0-9][a-zA-Z0-9._-]*.[a-zA-Z]{2,5}";
   var regex  = "^" + usr + "@" + domain + "$";
   var rgx    = new RegExp(regex);




   var bool = rgx.exec(email);
   
   if ( bool ) {
		obj.className = "inputOkay inputfeldlang";
		return true;
   } else {
		obj.className = "inputWrong inputfeldlang";
		return false;
   }
}

