function initSchadenmeldung( accessAnonymous ) {
  if (typeof(document.getElementsByName('captcha')[0]) == 'undefined') {
    document.getElementById('xxxEMail').onkeydown = setTabKeyPressed;
    //document.getElementById('xxxEMail').onblur = focusFirstSchadenFormFieldIfNecessary;
  } else {
    document.getElementsByName('captcha')[0].onkeydown = setTabKeyPressed;
    document.getElementsByName('captcha')[0].onblur = focusFirstSchadenFormFieldIfNecessary;
  }
  if (accessAnonymous == true) {
      switchFieldsKunde('false');
  } else {  // Kunde ist angemeldet

    	$("#flexKaskoschaden").show();
    	$("#flexKaskoursache").show();
    	$("#flexHaftpflichtschaden").show();
    	$("#flexHaftpflichtursache").show();
    	$("#flexSchutzbrief").show();
    	$("#flexFahrerschutz").show();
  }
  $('.info-icon').click(function(){
		infoIconAction(this);
	} );
  bindClickHandlerAtRemoveUpload();
}

function switchFieldsKunde( initFields ) {
  setAllSchadenmeldungErrorMessagesInvisible( initFields );
  if (initFields == true) {
      initSchadenmeldungFields();
  }
  if (document.getElementsByName('kontaktNachricht.kunde')[0].checked == true) {
    	$("#flexAKZKunde").show();
    	$("#flexKaskoschaden").show();
    	$("#flexKaskoursache").show();
    	$("#flexHaftpflichtschaden").show();
    	$("#flexHaftpflichtursache").show();
    	$("#flexSchutzbrief").show();
    	$("#flexFahrerschutz").show();
		$("#flexAKZGast").hide();
  } else {  // Benutzer ist Gast
      $("#flexAKZGast").show();
      $("#flexHaftpflichtursache").show();
      $("#flexAKZKunde").hide();
      $("#flexKaskoschaden").hide();
      $("#flexKaskoursache").hide();
      $("#flexHaftpflichtschaden").hide();
      $("#flexSchutzbrief").hide();
      $("#flexFahrerschutz").hide();
  }
}

function switchKaskoschaden() {
  if (document.getElementById('Kaskoschaden').checked == false) {
      for (i=0; i < document.getElementsByName('kontaktNachricht.kaskoursache').length; i++) {
         document.getElementsByName('kontaktNachricht.kaskoursache')[i].checked = false;
      }
  }
}

function switchKaskoursache() {
  document.getElementById('Kaskoschaden').checked = true;
}

function switchHaftpflichtschaden() {
  if (document.getElementById('Haftpflichtschaden').checked == false) {
      for (i=0; i < document.getElementsByName('kontaktNachricht.haftpflichtursache').length; i++) {
         document.getElementsByName('kontaktNachricht.haftpflichtursache')[i].checked = false;
      }
  }
}

function switchHaftpflichtursache() {
  document.getElementById('Haftpflichtschaden').checked = true;
}

// ----------------------------------------------------------
// Initialisierungen Feldinhalte Formular Schadenmeldung
// ----------------------------------------------------------

function initSchadenmeldungFields() {
      initSchadenmeldungField(document.getElementById('Kaskoschaden'));
      initSchadenmeldungField(document.getElementById('Haftpflichtschaden'));
      initSchadenmeldungField(document.getElementById('Schutzbriefleistung'));
      initSchadenmeldungField(document.getElementById('Fahrerschutz'));
      switchKaskoschaden();
      switchHaftpflichtschaden();
}

function initSchadenmeldungField(fld) {

    if (fld.type == 'text'
        || fld.type == 'hidden'
        || fld.type == 'select-one'
        || fld.type == 'checkbox') {

      if (fld.name == 'kontaktNachricht.kaskoschaden'
          || fld.name == 'kontaktNachricht.haftpflichtschaden'
          || fld.name == 'kontaktNachricht.schutzbriefschaden'
          || fld.name == 'kontaktNachricht.fahrerschutzschaden') {
          fld.checked = false;
          return;
      }
        ;
    } else {  // Felder mit Gruppenelementen
        ;
    }
    // default
    fld.value = "";
}

function setAllSchadenmeldungErrorMessagesInvisible(initFields) {

    var id;
    // komplette Liste der IDs zu Fehlermeldungen aus der kontakt_schaden-JSP
    var idList = new Array('flexErrSchadendatumH01')
    // korrespondierende Liste der div-IDs, in denen das zugehörige Eingabefeld enthalten ist
    var idDivList = new Array('flexDivSchadendatum')

    if (initFields == true) {
        // grundsätzlich zurücksetzen
        for (var i = 0; i < idList.length; i++) {
            element_hide(idList[i]);
            div_reset_error_class(idDivList[i]);
        }

    } else {  // inaktive Fehlermeldungen müssen versteckt werden

        for (var i = 0; i < idList.length; i++) {
            id = idList[i];
            if (document.getElementsByName(id + 'Style')[0].value == 'display:none;') {
                element_hide(id);
                // Achtung: kein Reset des Error-Styles, da hier ggf. Struts-Validierungsfehler existieren
            } else {
                element_show(id);
                div_set_error_class(idDivList[i]);
            }
        }
    }
}

function focusFirstSchadenFormFieldIfNecessary() {

  if (tabKeyPressed) {
    tabKeyPressed = false;
    focusFirstFormField("schadenForm");
  }
}

var bindClickHandlerAtRemoveUpload = function() {
    $('a.remove_upload').click(function() {
        $('#ajaxuploaded-filenames')
    		.append('<input type="hidden" name="ajaxupload" value="true">')
    		.append('<input id="removable_uploadname" type="hidden" name="removableUploadName">');
    	$('#removable_uploadname').attr('value', $(this).attr('title'));
    	$('#submitButton').click();
    });
}

