/*
*
* Script: vera.js
*
* Jerome Manceau <jerome@widevision.de>
*
* November / December 2005
*/

/*
*		----	CONSTANTS -------------------
*/
var linkPath			= "images/Links/";

var visi_Body		=	'';
var visi_TEXT		=	'';
var selectedButton = '';
var selectedLink = '';
var selectedDiv  = '';
var MapDetail			= 'B';  // 'B' for 'Big' and 'S' for 'Small'
var selectedSonderDiv = '';
var pExamenInfo = 0;			// Variable to output ProbeExamen-Kunzinfo or Ausführliche Info
var activeDiv = '';
var noInfoLink = 0;
var normalLink = 0;
var previousInfo = '';
var previousInfoelem = '';
var SonderDivId = 1; 
var SonderDiv 	= 'TA'; 			// used to know which sonderVeranstaltung was klickt (DEFAULT is the first: 1 - actually 'TA')
var SonderHowMany 	= 5; 			// used to know the number of targets for this default 'sonderveranstaltung'
var closeSonder = 0;


// KONSTANTEN FÜR DEN SSL GEBRAUCH
// https://sslsites.de/widevision.de   -  (widevision)
// https://localhost 		- (localhost)
// https://www.ssl-id.de	(STRATO)
// http://www.veralaun.de  (STRATO)
var HTTPS_SERVER 	= 'https://www.ssl-id.de/veralaun.de';
var HTTP_SERVER 	= 'http://www.veralaun.de';


function infoLinks( divname, elem ) {
	if (selectedLink != 'NavL' && selectedLink != 'NavI' && selectedLink != 'NavK')
			noInfoLink = 1;	
	else 
			noInfoLink = 0;
	probeExamen('','');
	if (selectedSonderDiv) {
		document.getElementById(selectedSonderDiv).style.visibility = 'hidden';
		document.getElementById(selectedSonderDiv).style.position = 'absolute';
	}
	// unset page and nav if 'nav' was set
	// see 'index.php' ('CLOSE SUPERSIZE')
	if (nav != '') {
		page = '';
		nav	 = '';
	}
	// This is the case when Maps or Form was open
	// and user clicked on a "normal" Navigation like 'Intensivkurse' or so..
	if (page != '') {
		checkSuperSize( divname, elem );
	}else {
			// Check if we changed from a Navigation Link to another
			// Hide the first one in this case
			if (selectedLink != '' && elem != selectedLink && noInfoLink) {
				document.getElementById( selectedLink + 'link' ).src = linkPath + selectedLink + '.gif'; 
				document.getElementById( selectedLink + 'point' ).src = emptyPoint; 
			}

			// Check if a Div (right side) is open and should be closed
			if (selectedDiv != '' && divname != selectedDiv) {
  			document.getElementById( selectedDiv ).style.position 	= 'absolute';
  			document.getElementById( selectedDiv ).style.visibility = 'hidden';
			}

			// Close Body and Text of Intensiv if there are open
			if (visi_Body == 'visible') {
					document.getElementById( 'DivBodyText' ).style.visibility 	= 'hidden';
					document.getElementById( selectedButton ).style.visibility 	= 'hidden';
			}

			// Now these are the selected Element (i.e. Nav1) and selected Divname (i.e. DivIntensiv)
			selectedLink 		= elem;
			selectedDiv			= divname;

			// set variables
			visi 						= document.getElementById( divname ).style.visibility;
			linkID 					= elem + "link";
			previousID			= previousInfoelem + "link";
			previousImg			= linkPath + previousInfoelem + ".gif";
			linkimg					= linkPath + elem + ".gif";
			linkimgActive 	= linkPath + elem + "_active.gif";
			pointID					= elem + "point";
			emptyPoint			= linkPath + "emptySquare.gif";
			fullPoint				= linkPath + "AktivPoint.gif";

			// now show or hide the Div on right Side of page 
			activeDiv = (visi == 'visible') ? '' : divname;
			if (previousInfo){
  			document.getElementById( previousInfo ).style.position 	= 'absolute';
  			document.getElementById( previousInfo ).style.visibility =  'hidden';
				document.getElementById( previousID ).src = previousImg; 
			}
  		document.getElementById( divname ).style.position 	= (visi == 'visible') ? 'absolute' : 'relative';
  		document.getElementById( divname ).style.visibility = (visi == 'visible') ? 'hidden' : 'visible';
			document.getElementById( linkID ).src = (visi == 'visible') ? linkimg : linkimgActive; 
	}

	previousInfo = divname;	
	previousInfoelem = elem;	
}

/* 
*		NAVIGATION
*	 	Links - Active - inActive
*		divname : Name of Div which appears on the right side
*		elem		: Prefix of Link (e.g. 'Nav1')
*/
function LinkActive( divname, elem ) {
	if (elem != 'NavL' && elem != 'NavI' && elem != 'NavK')
		normalLink = 1;
	else 
		normalLink = 0;
	probeExamen('','');
	if (selectedSonderDiv) {
		document.getElementById(selectedSonderDiv).style.visibility = 'hidden';
		document.getElementById(selectedSonderDiv).style.position = 'absolute';
	}
	// unset page and nav if 'nav' was set
	// see 'index.php' ('CLOSE SUPERSIZE')
	if (nav != '') {
		page = '';
		nav	 = '';
	}
	// This is the case when Maps or Form was open
	// and user clicked on a "normal" Navigation like 'Intensivkurse' or so..
	if (page != '') {
		checkSuperSize( divname, elem );
	}else {
			// Check if we changed from a Navigation Link to another
			// Hide the first one in this case
			if (selectedLink != '' && elem != selectedLink && (normalLink && !noInfoLink)) {
				document.getElementById( selectedLink + 'link' ).src = linkPath + selectedLink + '.gif'; 
				if (!previousInfo)
				document.getElementById( selectedLink + 'point' ).src = emptyPoint; 
			}

			// Check if a Div (right side) is open and should be closed
			if (selectedDiv != '' && divname != selectedDiv) {
  			document.getElementById( selectedDiv ).style.position 	= 'absolute';
  			document.getElementById( selectedDiv ).style.visibility = 'hidden';
			}

			// Close Body and Text of Intensiv if there are open
			if (visi_Body == 'visible') {
					document.getElementById( 'DivBodyText' ).style.visibility 	= 'hidden';
					document.getElementById( selectedButton ).style.visibility 	= 'hidden';
			}

			// Now these are the selected Element (i.e. Nav1) and selected Divname (i.e. DivIntensiv)
			selectedLink 		= elem;
			selectedDiv			= divname;

			// set variables
			visi 						= document.getElementById( divname ).style.visibility;
			linkID 					= elem + "link";
			linkimg					= linkPath + elem + ".gif";
			linkimgActive 	= linkPath + elem + "_active.gif";
			pointID					= elem + "point";
			emptyPoint			= linkPath + "emptySquare.gif";
			fullPoint				= linkPath + "AktivPoint.gif";

			// now show or hide the Div on right Side of page 
			activeDiv = (visi == 'visible') ? '' : divname;
  		document.getElementById( divname ).style.position 	= (visi == 'visible') ? 'absolute' : 'relative';
  		document.getElementById( divname ).style.visibility = (visi == 'visible') ? 'hidden' : 'visible';
			document.getElementById( linkID ).src = (visi == 'visible') ? linkimg : linkimgActive; 
			document.getElementById( pointID ).src = (visi == 'visible') ? emptyPoint : fullPoint; 
	}
	// Click on 'Sonderveranstaltungen'
	if (elem == 'Nav4' && page == '') {
		if (selectedSonderDiv) closeSonder = 1;
		sonderText('TA', 1, 5); // default settings for sonderveranstaltungen
	}
	else {
		selectedSonderDiv = '';
		closeSonder = 0;
	}
	previousInfo = '';	
}

/*
*	OVER MAP LINK
*/
function MapOver() {
	if (page != 'anfahrt' ) {
		link 		= linkPath + "Nav7_over.gif";
		document.getElementById( 'Nav7link' ).src = link; 
	}
}

/*
*	OUT OF MAP LINK
*/
function MapOut() {
	if (page != 'anfahrt' ){
		link					= linkPath + "Nav7.gif";
		document.getElementById( 'Nav7link' ).src = link; 
	} 
}

/*
*	OVER FORM LINK
*/
function FormOver() {
	if (page != 'anmeldung' ) 
	{
		link 		= linkPath + 'Nav8_over.gif';
		document.getElementById( 'Nav8link' ).src = link; 
	}
}

/*
* OUT OF FORM LINK
*/
function FormOut() {
	if (page != 'anmeldung' ) 
	{
		link					= linkPath + 'Nav8.gif';
		document.getElementById( 'Nav8link' ).src = link; 
	}
}

/*
*		NORMAL NAVIGATION
*		Mouse Over
*/
function LinkOver( divname, elem ) {
	linkID 					= elem + "link";
	linkimgOver 		= linkPath + elem + "_over.gif";
	linkimgActive 	= linkPath + elem + "_active.gif";

	document.getElementById( linkID ).src = (divname == activeDiv) ? linkimgActive : linkimgOver; 

}

/*
*		NORMAL NAVIGATION
*		Mouse Out
*/
function LinkOut( divname, elem ) {
	linkID 					= elem + "link";
	linkimg					= linkPath + elem + ".gif";
	linkimgActive 	= linkPath + elem + "_active.gif";

	document.getElementById( linkID ).src = (divname == activeDiv) ? linkimgActive : linkimg; 
}

/*
*
*
*/
function showInfo( button ) {
	visi_Body		= document.getElementById( 'DivBodyText' ).style.visibility;
	for(i=1;i<=buildButtons;i++)
	{
		b = "button_" + i;
		document.getElementById( b ).style.visibility = 'hidden';
		document.getElementById( b ).style.position = 'absolute';
	}
	visi_TEXT		= document.getElementById( button ).style;
	selectedButton = button;
	visi_TEXT.margin.top='-15px';
  visi_TEXT.margin.bottom='-15px';
  visi_TEXT.overflow='auto';
  visi_TEXT.position='relative';
  visi_TEXT.width='430px';
  visi_TEXT.height='150px';
  visi_TEXT.top='0px';
  visi_TEXT.left='0px';

	document.getElementById( 'DivBodyText' ).style.visibility = 'visible';
	document.getElementById( button ).style.visibility 				= 'visible';
	visi_Body		= document.getElementById( 'DivBodyText' ).style.visibility;
}


/*
*		function für Sonderveranstaltungen
*/
function sonderText( divname, id, num ) {
	SonderDivId = id;
	SonderDiv 	= divname;
	SonderHowMany 	= num;
	if (selectedSonderDiv) {
		document.getElementById(selectedSonderDiv).style.visibility = 'hidden';
		document.getElementById(selectedSonderDiv).style.position = 'absolute';
	}
	if (!closeSonder) {
		document.getElementById(divname).style.position = 'relative';
		document.getElementById(divname).style.visibility = 'visible';
		selectedSonderDiv = divname;
	}else { closeSonder = 0; selectedSonderDiv = ''; }
	probeExamen(divname, 0);
}

/*
*		PROBE EXAMEN 
*/
function probeExamen(divname, num) {
	pExamenInfo = num;
	elemID = 'PE_' + num;
	otherID = (num == 1) ? 'PE_0' : 'PE_1';
	if (divname == 'PE'){
			document.getElementById(otherID).style.position = 'absolute';
			document.getElementById(otherID).style.visibility = 'hidden';
			document.getElementById(elemID).style.visibility = 'visible';
			document.getElementById(elemID).style.position = 'relative';
	}else {
			document.getElementById('PE_0').style.position = 'absolute';
			document.getElementById('PE_0').style.visibility = 'hidden';
			document.getElementById('PE_1').style.position = 'absolute';
			document.getElementById('PE_1').style.visibility = 'hidden';
	}
}


/*
************************************************************************
======== Here we SuperSize the page for Maps and Form or Close it ======
************************************************************************
*/
function checkSuperSize( name, elem ) {
		for(i=1; i <= (CourseChoice.length - 1); i++) { // this ' - 1 ' is necessary not to confuse javascript
			eval("document.NaviForm.elements['Course[" + i + "]'].value = " + CourseChoice[i]);
		}
		for(i=1; i <= (ChoiceChecks.length - 1); i++) { // this ' - 1 ' is necessary not to confuse javascript
			for(j=1; j <= (ChoiceChecks[i].length - 1); j++) {
				eval("document.NaviForm.elements['ChoiceCheck[" + i + "][" + j + "]'].value = " + ChoiceChecks[i][j]);
			}
		}
		for(i=1; i <= (SonderChoice.length - 1); i++) { // this ' - 1 ' is necessary not to confuse javascript
			eval("document.NaviForm.elements['SonderV[" + i + "]'].value = " + SonderChoice[i]);
		}
		for(i=1; i <= (SonderChecks.length - 1); i++) { // this ' - 1 ' is necessary not to confuse javascript
			for(j=1; j <= (SonderChecks[i].length - 1); j++) {
				eval("document.NaviForm.elements['SonderCheck[" + i + "][" + j + "]'].value = " + SonderChecks[i][j]);
			}
		}
	document.NaviForm.SuperSize.value = (elem == '') ? 1 : 0;
	document.NaviForm.page.value = name;
	document.NaviForm.doWhat.value = (elem == '') ? 'open' : 'close';
	document.NaviForm.nav.value = (elem == '') ? '' : elem;
	// https://sslsites.de/widevision.de (widevision)
	// https://localhost
	checkPfad = document.NaviForm.action;
	neuPfad = document.NaviForm.action;
	//if (checkPfad.substr(0,4) == 'http') {
		neuPfad = checkPfad.replace(/.+veralaun\.de(.+)/, '$1');
		neuPfad = neuPfad.replace(/.+repetitorium\-muenchen\.de(.+)/, '$1');
		neuPfad = neuPfad.replace(/.+repetitorium\-bayern\.de(.+)/, '$1');
		neuPfad = neuPfad.replace(/.+juristisches\-repetitorium\-muenchen\.de(.+)/, '$1');
	//}
	if (name == 'anmeldung') {
		document.NaviForm.action = HTTPS_SERVER + neuPfad;
	}
	else {
		document.NaviForm.action = HTTP_SERVER + neuPfad;
	}
	document.NaviForm.submit();
}


/*
************************************************************************
======== ANFAHRT - MAPS ======
************************************************************************
*/
function mapDetail() {
	document.getElementById('mapImg').src = 'images/Maps/Anfahrt' + MapDetail + '.jpg';
	MapDetail = (MapDetail == 'S') ? 'B' : 'S';
}



/*
************************************************************************
======== ANMELDUNG ======
************************************************************************

/*
*		When user make a choice for a course
*/
function checkCourse( courseid, howMany, anmelden ) {
	cnt = 0;
	for (i=1; i <= howMany; i++) {
		if (ChoiceChecks[courseid][i] == 1 ) cnt = 1;
	}
	for (i=1; i <= howMany; i++) {
		if (cnt == 0) {
			ChoiceChecks[courseid][i] = 1;
			eval('document.getElementsByName("button_' + courseid + '_' + i + '")[0].checked = true');
		} 
	}
	
	// SPECIAL CASE: Coming from 'checkTarget' below and removing...
	if (cnt == 0 && anmelden == 6) {
		RemoveCourse( courseid, howMany );
	}else {
		checkP = 'checkPoint_' + courseid;
		img = document.getElementById(checkP);
		img.style.width = '15px';
		img.src = 'images/buttons/checkpointGrey.gif';
		CourseChoice[courseid] = 1; // variable zum vormerken
		if (anmelden == '1') {
			checkSuperSize('anmeldung', '');
		}
	}
}

/*
*		TARGETS FOR COURSES
*/
function checkTarget( courseid, targetid, targetsnum ){
	if (ChoiceChecks[courseid][targetid] != 1 ) {
		ChoiceChecks[courseid][targetid] = 1;
	} 
	else {
	 	ChoiceChecks[courseid][targetid] = 0;
	}
	checkCourse(courseid, targetsnum, 6); 
}

/*
*		When user removes a choice
*/
function RemoveCourse( courseid, howMany ) {
	cnt = 0;
	for (i=1; i <= howMany; i++) {
		if (ChoiceChecks[courseid][i] == 1 ){
	 		ChoiceChecks[courseid][i] = 0;
			eval('document.getElementsByName("button_' + courseid + '_' + i + '")[0].checked = false'); // checkbox for Target Date
			cnt = 1;
		} 
	}
	checkP = 'checkPoint_' + courseid;
	img = document.getElementById(checkP);
	img.style.width = '5px';
	img.src = 'images/Links/emptySquare.gif';
	CourseChoice[courseid] = 0;
}

/*
*		TARGETS FOR SONDERVERANSTALTUNGEN
*/
function checkSonderTarget( SonderId, targetid, targetsnum ){
	if (SonderChecks[SonderId][targetid] != 1 ) {
		SonderChecks[SonderId][targetid] = 1;
	} 
	else {
	 	SonderChecks[SonderId][targetid] = 0;
	}
	checkSonderV(SonderId, targetsnum, 6);  // '6' means, dont go directly to the form (only '1' does) - see below
}

/*
*		When user make a choice for a SonderVeranstaltung
*/
function checkSonderV( SonderId, howMany, anmelden ) {
	cnt = 0;
	if (howMany == 0) 	howMany 	= SonderHowMany;
	if (SonderId == 0) 	SonderId = SonderDivId;
	for (i=1; i <= howMany; i++) {
			if (SonderChecks[SonderId][i] == 1 ) { cnt = 1; }
	}
	if (anmelden == '') {
		for (i=1; i <= howMany; i++) {
				SonderChecks[SonderId][i] = 1;
				eval('document.getElementsByName("sonder_' + SonderId + '_' + i + '")[0].checked = true'); // check the checkboxes
		}
	}
	else if (anmelden == 1 && cnt == 0) {
		for (i=1; i <= howMany; i++) {
				SonderChecks[SonderId][i] = 1;
				eval('document.getElementsByName("sonder_' + SonderId + '_' + i + '")[0].checked = true'); // check the checkboxes
		}
	}
	else {
		for (i=1; i <= howMany; i++) {
			if (SonderChecks[SonderId][i] == 1 ) 
			{
				SonderChecks[SonderId][i] = 1;
				eval('document.getElementsByName("sonder_' + SonderId + '_' + i + '")[0].checked = true'); // check the checkboxes
			} 
		}
	}
	
	// SPECIAL CASE: Coming from 'checkTarget' below and removing...
	if (cnt == 0 && anmelden == 6) {
		RemoveSonder( SonderId, SonderDiv, howMany );
	}else {
		checkP = 'checkPoint_' + SonderDiv;
		img = document.getElementById(checkP);
		img.style.width = '15px';
		img.src = 'images/buttons/checkpointGrey.gif';
		SonderChoice[SonderId] = 1; // variable zum vormerken
		if (anmelden == '1') {
			checkSuperSize('anmeldung', '');
		}
	}
}

/*
*		When user removes a choice from SONDERVERANSTALTUNGEN
*/
function RemoveSonder( SonderId, SonderName, howMany ) {
	cnt = 0;
	for (i=1; i <= howMany; i++) {
		if (SonderChecks[SonderId][i] == 1 ){
	 		SonderChecks[SonderId][i] = 0;
			eval('document.getElementsByName("sonder_' + SonderId + '_' + i + '")[0].checked = false'); // checkbox for Target Date
			cnt = 1;
		} 
	}
	checkP = 'checkPoint_' + SonderName;
	img = document.getElementById(checkP);
	img.style.width = '5px';
	img.src = 'images/Links/emptySquare.gif';
	SonderChoice[SonderId] = 0;
}

function gotoFormular( newsletter ) {
	for(i=1; i <= (CourseChoice.length - 1); i++) { // this ' - 1 ' is necessary not to confuse javascript
		eval("document.NaviForm.elements['Course[" + i + "]'].value = " + CourseChoice[i]);
	}
		for(i=1; i <= (ChoiceChecks.length - 1); i++) { // this ' - 1 ' is necessary not to confuse javascript
			for(j=1; j <= (ChoiceChecks[i].length - 1); j++) {
				eval("document.NaviForm.elements['ChoiceCheck[" + i + "][" + j + "]'].value = " + ChoiceChecks[i][j]);
			}
		}
	// sonderVeranstaltungen
	for(i=1; i <= (SonderChoice.length - 1); i++) { // this ' - 1 ' is necessary not to confuse javascript
		eval("document.NaviForm.elements['SonderV[" + i + "]'].value = " + SonderChoice[i]);
	}
		for(i=1; i <= (SonderChecks.length - 1); i++) { // this ' - 1 ' is necessary not to confuse javascript
			for(j=1; j <= (SonderChecks[i].length - 1); j++) {
				eval("document.NaviForm.elements['SonderCheck[" + i + "][" + j + "]'].value = " + SonderChecks[i][j]);
			}
		}
	if (newsletter) {
		document.NaviForm.newsletter.value = 1;
	}
	checkPfad = document.NaviForm.action;
	neuPfad = document.NaviForm.action;
	//if (checkPfad.substr(0,4) == 'http') {
		neuPfad = checkPfad.replace(/.+veralaun\.de(.+)/, '$1');
		neuPfad = neuPfad.replace(/.+repetitorium\-muenchen\.de(.+)/, '$1');
		neuPfad = neuPfad.replace(/.+repetitorium\-bayern\.de(.+)/, '$1');
		neuPfad = neuPfad.replace(/.+juristisches\-repetitorium\-muenchen\.de(.+)/, '$1');
	//}
	document.NaviForm.SuperSize.value = 1;
	document.NaviForm.page.value = 'anmeldung';
	document.NaviForm.doWhat.value = 'gotoForm';
	document.NaviForm.action = HTTPS_SERVER + neuPfad;
	document.NaviForm.submit();
}

function checkFormular(dispatch) {
	d = document.anmeldeForm;
	f = '';
	if (dispatch == 'forgotPass') {					// USER ASKS FOR NEW PASSWORD
		d.forgotPass.value = '1';
		d.doWhat.value = 'gotoForm';
		d.SuperSize.value = 1;
		d.registering.value = 'y';
		d.page.value = 'anmeldung';
		d.submit();
	}
	else if (dispatch == 'newPass') {					// USER SENDS FOR NEW PASSWORD
		if (d.email.value != d.repEmail.value)   f += '- Email und Email-Wiederholung stimmen nicht überein \n';
		if (f) {
			alert(f);
		}else {
			d.doWhat.value = 'gotoForm';
			d.forgotPass.value = '';
			d.SuperSize.value = 1;
			d.page.value = 'anmeldung';
			d.sendPass.value = '1';
			d.registering.value = 'y';
			d.submit();
		}
	}
	else
	{
			if (!dispatch && (d.passwort1.value != '' && 
							d.email1.value == '' || 
					d.email1.value != '' && d.passwort1.value == '')) {
				alert("Bitte fühlen Sie beide oberen Felder aus.");	
			}	
			else
			if (!dispatch && (d.passwort1.value == '' && d.email1.value == '')) {
				if (d.firstname.value == '') 	f += '- Vornamen\n';
				if (d.lastname.value == '')  	f += '- Nachnamen\n';
				if (d.phone.value == '') 			f += '- Telefonnummer\n';
				if (d.street.value == '') 		f += '- Strasse \n';
				if (d.zipcode.value == '') 		f += '- PLZ \n';
				if (d.city.value == '') 			f += '- Ort \n';
				if (d.examenDate.value == '') f += '- Voraus. Examentermin \n';
				if (d.email.value == '') 			f += '- Email-Adresse \n';
				if (d.repEmail.value == '') 	f += '- Email-Wiederholung \n';
				if ( !dispatch && d.passwort.value == '' ) 	f += '- Passwort \n';
				if ( !dispatch && d.repPass.value == '' )		f += '- Passwort-Wiederholung \n';
				if ( !dispatch && d.passwort.value != d.repPass.value ) f += '- Passwort und Wiederholung stimmen nicht überein \n';
				if (d.email.value != d.repEmail.value)   f += '- Email und Email-Wiederholung stimmen nicht überein \n';
				if (f != '') {
					f = 'Überprüfen Sie bitte folgendes: \n' + f;
					alert(f);
				}
				else {
					d.doWhat.value = 'gotoForm';
					d.registering.value = 'y';
					d.anmeldung.value = '1';
					d.sendForm.value = (d.update.value != '') ? 'update' : 'neuanmelden';
					d.submit();
				}
			}
			else if (!dispatch) {
					d.sendForm.value = 'getDatas';
					d.registering.value = 'y';
					d.submit();
			}
			else {
					d.doWhat.value = 'gotoForm';
					d.registering.value = 'y';
					d.anmeldung.value = '1';
					d.sendForm.value = (d.update.value != '') ? 'update' : 'neuanmelden';
					d.submit();
			}
	}

}
