//***********************************************************************************************************
// Allgemeine Funktionen
//***********************************************************************************************************
//Events registrieren
addEvent(window,'resize',function(){setTimeout("resizeLayout()",500)});	
addEvent(window,'scroll',function(){setTimeout("resizeLayout()",500)});	

//Layout an Browserfenstergrösse anpassen
function resizeLayout()
{
  //Alle Detail-Dialoge mittig ausrichten
  $('.detail-dialog').each(function()
  { 
	positionDetailsDialog($(this).attr('id'));
  });  
}

//Gedrückte Tasten überwachen
if (document.attachEvent)
	document.attachEvent("onkeydown",keyDownEvents);
else if (document.addEventListener)
	document.addEventListener("keydown",keyDownEvents,false);

//Wenn die Seite in einem Frame/iframe geladen wird, ausbrechen
if (window.location != window.parent.location)
  window.parent.location = window.location;

//Gedrückte Tasten an Funktionen zuordnen
function keyDownEvents(e)
{
  if (window.event)
    var keynum = window.event.keyCode;
  else if (e.which)
    var keynum = e.which;
  
  //ENTER Taste, Funktion ausführen die im "btnSubmit" definiert ist
  if (keynum == 13)
  {
	if (document.getElementById('btnSubmit'))
	{
	  if (document.getElementById('btnSubmit').disabled == false)
	  {
		var onclick = String(document.getElementById('btnSubmit').onclick);
		onclick = onclick.replace('function onclick(event) {','');
		onclick = onclick.replace('function onclick()','');
		onclick = onclick.replace('function anonymous()','');
		onclick = onclick.replace('function (event)','');
		onclick = onclick.replace('}','');
		onclick = onclick.replace('{','');
		eval(onclick);
      }
	}
  }
  
  //ESC Taste, Dialog schliessen
  if (keynum == 27)
  {
	if (document.getElementById('frmDialogForm'))
	  hideDetailsDialog('');
  }
}

//Eingabe überprüfen
function checkInputValue(element,url,param)
{
  //Aktueller Wert zur URL hinzufügen
  var inputValue = element.value;
  url = url + '?Value=' + inputValue + '&ElementID=' + element.id;
  
  //Zusätzliche Parameter
  param = param.replace(',','&');
  if (param != '')
     url += '&' + param;

  //URL aufrufen
  $.ajax({
	url: url,
	context: document.body,
	success: function(data)
	{
	  $('#divTemp').html(data);
	}
  });	
}



//***********************************************************************************************************
// Dialog Funktionen
//***********************************************************************************************************
//Dialog und Blackscreen ausblenden
function hideDetailsDialog(dialogName)
{
  //dialogName Variable für spätere Verwendungszwecke falls es mal ein Thema wird dass mehrere Dialoge gleichzeitig existieren
  if (dialogName == '')
    dialogName = 'divDialog';
  
  //Dialog entfernen
  $('#' + dialogName).remove();
  
  //Layout Höhe anpassen
  $('#divLayout').css('height','auto');
  
  //Overlay entfernen
  if (dialogName == 'divDialog')
  {
	//Overlay aus Body entfernen
	$('body .overlay').remove();
  }
  else
  {
    $('#divDialog').fadeToggle(500);
	positionDetailsDialog('divDialog');
  }
}

//Aktuelle Browser-Operation stoppen und Dialog und Blackscreen ausblenden
function stopAndHideDetailsDialog()
{  
  //Detail Dialog ausblenden
  hideDetailsDialog('');
}

//Dialog und Blackscreen anzeigen
function showDetailsDialog(dialogName,dialogForm,dialogBreite)
{  
  if (dialogName == '')
    dialogName = 'divDialog';
	
  if (dialogForm == '')
    dialogForm = 'frmDialogForm';

  if (dialogBreite == '')
    dialogBreite = 800;

  //Falls Dialog noch vorhanden zuerst entfernen
  if (document.getElementById(dialogName))
	$('#' + dialogName).remove();
    
  //Details Form dynamisch erstellen
  attachNode('body','div',dialogName,'standard',0,0);
    
  //Dialog anpassen
  $('#' + dialogName).attr('class','detail-dialog');
  $('#' + dialogName).css('width',dialogBreite);
  $('#' + dialogName).css('left',(document.body.offsetWidth-dialogBreite)/2);
  
  //Form innerhalb des Dialogs erstellen
  attachNode(dialogName,'form',dialogForm,'standard',0,0);
  $('#' + dialogForm).attr('onsubmit','return false');
  $('#' + dialogForm).attr('action','');
  $('#' + dialogForm).css('display','block');
  
  //Schliessen Grafik einbinden
  $('#' + dialogName).append('<img id="imgClose_' + dialogName + '" src="/images/dialog/dialog-close.png" alt="" class="image-close" />');
  document.getElementById('imgClose_' + dialogName).onclick = new Function("hideDetailsDialog('" + dialogName + "')");
  $('#element').attr('src','');
  $('#imgClose_' + dialogName).show();
  
  //Anzeigen
  $('#' + dialogName).show();
  
  //Mittig positionieren
  setTimeout("positionDetailsDialog('" + dialogName + "')",1000);
  
  //Overlay hinzufügen oder divDialog ausblenden
  if (dialogName == 'divDialog')
	addOverlay();
  else
    $('#divDialog').fadeToggle(500);
}

//Detail Dialog mittig auf dem Bildschirm plazieren
function positionDetailsDialog(dialogName)
{
  if (dialogName == '')
    dialogName = 'divDialog';

  if (document.getElementById(dialogName))
  {
	var dialogWidth = document.getElementById(dialogName).offsetWidth;
	var dialogHeight = document.getElementById(dialogName).offsetHeight;
	var layoutHeight = document.getElementById('divLayout').offsetHeight;
	var bodyHeight = document.body.offsetHeight;
	var dialogMarginTop = 20;
	var dialogMarginBottom = 20;
	var dialogTop = 0;
	var dialogLeft = 0;
	
	//Dialog-Top berechnen
	if ((dialogHeight+dialogMarginTop) < bodyHeight)
	{
	  //Scroll Höhe berücksichtigen
	  var scrollTop = document.documentElement.scrollTop;
	  if (scrollTop == 0)
		scrollTop = document.body.scrollTop;
	  
	  //Top Positionierung berechnen
	  dialogTop = Math.round((document.body.offsetHeight-dialogHeight)/2)+scrollTop;
	}
	
	//Negative Dialog-Top Positionen korrigieren
	if (dialogTop <= 0)
	  dialogTop = dialogMarginTop;
	
	//Horizontale Ausrichtung berechnen
	dialogLeft = Math.round((document.body.offsetWidth-dialogWidth)/2);

	//Positionen dem Dialog zuweisen
	document.getElementById(dialogName).style.left = dialogLeft + 'px';
	document.getElementById(dialogName).style.top = dialogTop + 'px';
    
	//Overlay anpassen
    $('body .overlay').css('width',document.body.offsetWidth + 'px');
	if (dialogHeight > layoutHeight)
	  $('body .overlay').css('height',dialogHeight+dialogMarginTop+dialogMarginBottom + 'px');
	else
	  $('body .overlay').css('height',layoutHeight + 'px');
    
	//Layout Höhe anpassen
	if (dialogHeight > layoutHeight)
	  $('#divLayout').css('height',dialogHeight+dialogMarginTop+dialogMarginBottom + 'px');
	else
	  $('#divLayout').css('height','auto');

	//Dialog anzeigen
	document.getElementById(dialogName).style.visibility = 'visible';
  }
}

//Overlay einblenden
function addOverlay()
{
  $('body').append('<div class="overlay"></div>');
  $('body .overlay').fadeIn(100);
}

//Detail Dialog sperren
function lockDetailDialog(dialogName)
{  
  if (dialogName == '')
    dialogName = 'divDialog';

  $('#' + dialogName).append('<div class="dialog-overlay"></div>');
  $('#' + dialogName + ' .dialog-overlay').css('width',$('#' + dialogName).outerWidth()-10);
  $('#' + dialogName + ' .dialog-overlay').css('height',$('#' + dialogName).outerHeight()-10);
  $('#' + dialogName + ' .dialog-overlay').show();
  $('#' + dialogName + ' .image-close').css('display','none');
}

//Detail Dialog entsperren
function unlockDetailDialog(dialogName)
{ 
  if (dialogName == '')
    dialogName = 'divDialog';

  $('#' + dialogName + ' .dialog-overlay').remove();
  $('#' + dialogName + ' .image-close').css('display','block');
}



//***********************************************************************************************************
// Swico-Mitgliedschaft beantragen
//***********************************************************************************************************
//Abweichende Rechnungsdaten für Swico-Mitgliedschaft
function forceMitgliedAltRechnungsdaten()
{
  if ($('#cbxAbweichendeRechnungdaten').attr('checked') == 'checked')
  {
	$('#tbxRechnungFirma').prop('disabled',false);
	$('#tbxRechnungAdresse').prop('disabled',false);
	$('#tbxRechnungPLZ').prop('disabled',false);
	$('#tbxRechnungOrt').prop('disabled',false);
	$('#ddlRechnungAnrede').prop('disabled',false);
	$('#tbxRechnungTitel').prop('disabled',false);
	$('#tbxRechnungVorname').prop('disabled',false);
	$('#tbxRechnungNachname').prop('disabled',false);
	$('#tbxRechnungEmail').prop('disabled',false);
	$('#tbxRechnungTelefon').prop('disabled',false);
	$('#tbxRechnungFax').prop('disabled',false);
	
	//Erforderliche Felder ergänzen
	addRequiredField('tbxRechnungFirma');
	addRequiredField('tbxRechnungAdresse');
	addRequiredField('tbxRechnungPLZ');
	addRequiredField('tbxRechnungOrt');
	addRequiredField('ddlRechnungAnrede');
	addRequiredField('tbxRechnungVorname');
	addRequiredField('tbxRechnungNachname');
	addRequiredField('tbxRechnungEmail');
	
	//Fokus auf 1. Feld setzen
	$('#tbxRechnungFirma').focus();
  }
  else
  {
	$('#tbxRechnungFirma').prop('disabled',true).val('');
	$('#tbxRechnungAdresse').prop('disabled',true).val('');
	$('#tbxRechnungPLZ').prop('disabled',true).val('');
	$('#tbxRechnungOrt').prop('disabled',true).val('');
	$('#ddlRechnungAnrede').prop('disabled',true).val('');
	$('#tbxRechnungTitel').prop('disabled',true).val('');
	$('#tbxRechnungVorname').prop('disabled',true).val('');
	$('#tbxRechnungNachname').prop('disabled',true).val('');
	$('#tbxRechnungEmail').prop('disabled',true).val('');
	$('#tbxRechnungTelefon').prop('disabled',true).val('');
	$('#tbxRechnungFax').prop('disabled',true).val('');
	
	//Erforderliche Felder entfernen
	removeRequiredField('tbxRechnungFirma');
	removeRequiredField('tbxRechnungAdresse');
	removeRequiredField('tbxRechnungPLZ');
	removeRequiredField('tbxRechnungOrt');
	removeRequiredField('ddlRechnungAnrede');
	removeRequiredField('tbxRechnungVorname');
	removeRequiredField('tbxRechnungNachname');
	removeRequiredField('tbxRechnungEmail');
  }
}

//Mitgliedschaft Formular abschicken
function submitMitgliedAnmeldung()
{
  if ($('#cbxAGB').attr('checked') == 'checked')
    submitForm('frmMitgliedschaft',saveHTTPContent,'/de/mitgliedschaft/anmeldung-submit.asp','divSubmit');	
  else
    alert('Bitte stimmen Sie den SWICO Statuten und dem Beitragsreglement zu und schicken Sie dann das Formular erneut ab.');
}



//***********************************************************************************************************
// AHV Beitrag Berechnung Formular
//***********************************************************************************************************
//AHV Beitrag Rechner Formular öffnen
function openAHVBerechnungForm()
{
  showDetailsDialog('','','');
  getHTTPContent('/de/business-services/ahv-berechnung/ahv-berechnung.asp','frmDialogForm','');	
}

//Handelsregistereintrag Felder (de-)aktivieren
function enableHROptionen()
{
  if ($('#cbxHandelsregistereintrag').attr('checked') == 'checked')
  {
	$('#tbxHRDatum').prop('disabled',false);
	$('#tbxGeschaeftstaetigSeit').prop('disabled',false);
	
	//Erforderliche Felder ergänzen
	addRequiredField('tbxHRDatum');
	addRequiredField('tbxGeschaeftstaetigSeit');
	
	//Fokus auf 1. Feld setzen
	$('#tbxHRDatum').focus();
  }
  else
  {
	$('#tbxHRDatum').prop('disabled',true).val('');
	$('#tbxGeschaeftstaetigSeit').prop('disabled',true).val('');
	
	//Erforderliche Felder entfernen
	removeRequiredField('tbxHRDatum');
	removeRequiredField('tbxGeschaeftstaetigSeit');
  }
}

//Mit anderer Firma liiert Felder (de-)aktivieren
function enableAndereFirmaLiiert()
{
  if ($('#cbxAndereFirmaLiiert').attr('checked') == 'checked')
  {
	$('#tbxLiiertFirmaName').prop('disabled',false);
	$('#tbxLiiertFirmaOrt').prop('disabled',false);
	
	//Erforderliche Felder ergänzen
	addRequiredField('tbxLiiertFirmaName');
	addRequiredField('tbxLiiertFirmaOrt');
	
	//Fokus auf 1. Feld setzen
	$('#tbxLiiertFirmaName').focus();
  }
  else
  {
	$('#tbxLiiertFirmaName').prop('disabled',true).val('');
	$('#tbxLiiertFirmaOrt').prop('disabled',true).val('');
	
	//Erforderliche Felder entfernen
	removeRequiredField('tbxLiiertFirmaName');
	removeRequiredField('tbxLiiertFirmaOrt');
  }
}
