// Funktion welche beim Submit alle im Eltern Element vorhanden Inputs mit 
// der Klassen ".input-fill-by-title" kontrolliert
var inputByTitleSubmit = function(parentElement){
    var inputs = parentElement.find('.input-fill-by-title');
    inputs.each(function(index, element){
        var input = $(element);
        var title = input.attr('title');
        var value = input.val();
        
        if (title == value) {
            input.val('');
		};
	});
};

// Funktion welche beim Reset alle im Eltern Element vorhanden Inputs mit 
// der Klassen ".input-fill-by-title" kontrolliert
var inputByTitleReset = function(parentElement){
    var inputs = parentElement.find('.input-fill-by-title');
    inputs.each(function(index, element){
        var input = $(element);
        var title = input.attr('title');
        var value = input.val();
        
        if (value == '') {
            input.val(title);
		};
	});
};

$(document).ready(function(){
	/*---------------------------------------------------------------------------------------------------- */
    /* SITECHIPS PRUEFUNGEN */
	var scCB = (location.href.match('/redaktion/') != null);
	var scMSIE = ($.browser.msie == true) ? true : false ;
	var scMOZILLA = ($.browser.mozilla == true) ? true : false ;
	var scOPERA = ($.browser.opera == true) ? true : false ;
	var scWEBKIT = ($.browser.webkit == true) ? true : false ;
	var scCHROME = (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) ? true : false ;
	
	/*---------------------------------------------------------------------------------------------------- */
	/* FORMULAR BEHANDLUNG */
	
	/*---------------------------------------------------------------------------------------------------- */
	/* Automatisch Inputs Values mit Titel fuellen */
	var inputsByTitle = $('.input-fill-by-title');
	if (inputsByTitle.length > 0) {
		
		// Schreiben der Titel ins Value  <input value="[title]"/>
		inputsByTitle.each(function(index, value){
			$(value).val($(value).attr('title'));
		});
		
		// wenn Feld ausgewählt
		inputsByTitle.focusin(function(){
            if ($(this).val() == $(this).attr('title')) {
                $(this).val('');
            };
		});
		
		inputsByTitle.focusout(function(){
			var input = $(this);
			if(input.val() == '') {
				input.val(input.attr('title'));
			};
		});		
	};
	
	/*---------------------------------------------------------------------------------------------------- */
	/* input mit Klasse "submit" in ein button mit Klassen "btn" umwandeln */
	var input_submits = $('input.submit');
	if (input_submits.length > 0) {
		input_submits.each(function(index, value){
			var input = $(value);
			input.after('<!-- input transformed by wiro.js -->');
			input.after('<button type="' + input.attr('type') + '" class="' + input.attr('class') + ' btn"><span><span>' + input.val() + '</span></span></button>');
			input.remove();
		});
	};

	/*---------------------------------------------------------------------------------------------------- */
	/* ANSPRECHPARTNER FORMULAR */
	if ($('.open-contact-form').length > 0) {
	
		/* EVENT - Oeffnen des Ansprechpartner Formulars */
		$('.open-contact-form').click(function(e){
			e.preventDefault();
			
			var siderow = $(this).parent();
			siderow.addClass('active');
			
			var form_container = $(this).parent().next();
			
			if (form_container.is(':hidden')) {
				if (!scMSIE) {
					form_container.slideDown();
				}
				else {
					form_container.show();
				};
							}
			else {
				if (!scMSIE) {
					form_container.slideUp(function(){
						siderow.removeClass('active');
					});
				}
				else {
					form_container.hide();
					siderow.removeClass('active');
				};
			};
		});
		
		/* EVENT - Schliessen des Ansprechpartner Formulars */
		$('.close-contact-form').click(function(e){
			e.preventDefault();
			$(this).parent().parent().prev().find('.open-contact-form').trigger('click');
		});
		
		/* EVENT - Senden des Ansprechpartner Formulars */
		$('.contact_form').submit(function(e){
			var form = $(this);
			form.append('<input type="hidden" name="module" value="contact"/>');
			inputByTitleSubmit(form);		// Felder leeren
			form.find('.error').val('');	// Felder die Kennzeichen fehlerhaft besitzen leeren
		});
		
		/* Ansprechpartner Formular - Pruefen ob Fehler vorhanden sind */
		var contact_form_errors = $('.contact_container_form').find('.errors');
		if (contact_form_errors.length > 0) {
			contact_form_errors.each(function(index, element){
			
				var errors = $(this).find('li');
				
				errors.each(function(index, element){
					var err_element = $(element)
					var form_element = err_element.parent().parent().parent().find('[name=' + $(element).attr('rel') + ']');
					form_element.addClass('error');
					form_element.val(err_element.html());
				});
				
				$(this).parent().parent().prev().find('.open-contact-form').trigger('click');
			});
			
			/* EVENT - Fehlerhafte Ansprechpartner Eingabefelder werden bei Fokus resetet. */
			$('.contact_form .error').focus(function(e){
				$(this).removeClass('error');
				$(this).val('');
			});
		};
		
		/* Ansprechpartner Formular - Pruefen ob Unbekante Fehler vorhanden sind */
		var contact_form_errors = $('.contact_container_form').find('.unkown_errors');
		if (contact_form_errors.length > 0) {
			contact_form_errors.each(function(index, element){
				$(this).parent().parent().prev().find('.open-contact-form').trigger('click');
				
				var form = $(this).parent();
				
				form.find('select').attr('disabled','disabled').addClass('disabled');
				form.find('input').attr('disabled','disabled').addClass('disabled');
				form.find('textarea').attr('disabled','disabled').addClass('disabled');
				form.find('button').attr('disabled','disabled').addClass('disabled');
			});
		};
	};
	
	/*---------------------------------------------------------------------------------------------------- */
	/* Rechnungserklärung - Beschreibungen per Mouseover einblenden */
	$('a.link').mouseover(function() {
		var abc = $(this).attr('rel');
		
		$('div.box').attr('style','display:none');
		$('div#'+abc).attr('style','display:block');
		
		});

	$('a.link').mouseout(function() {
		
		$('div.box').attr('style','display:none');
		
		});
		
	/*---------------------------------------------------------------------------------------------------- */	
    
    /**
     * Handle alternate invoice address
     */
        
    function srd_forms_disable(identifier) {        
        var currentFieldset = $('fieldset#' + identifier);             
        $('fieldset#' + identifier + ' input').each(function(index){            
            $(this).attr('disabled', true);               
        });
        currentFieldset.hide(400);
    }
    
    function srd_forms_enable(identifier) {        
        var currentFieldset = $('fieldset#' + identifier);
        $('fieldset#' + identifier + ' input').each(function(index){
            $(this).removeAttr('disabled');               
        });
        currentFieldset.show(400);
    }
    
    // handle checkbox en/disabling
    function srd_forms_optional(identifier) {        
        var currentInput = $('input#' + identifier + "_check");         
        currentInput.change(function(){
            if(currentInput.is(":checked")) {
                srd_forms_enable(identifier);
            } else {            
                srd_forms_disable(identifier);
            }
        });
    };
    
    // needed identfiers, checkbox and fieldset need to have this id
    var requiredFieldsets = {
        'anmeldung' : 'an_alt_adresse',
        'ummeldung' : 'um_an_alt_adresse',
        'abmeldung' : 'ab_alt_adresse'
    };
    
    // bind handlers accordingly
    $.each(requiredFieldsets, function(index, value) {       
        srd_forms_optional(value);
    });
    
    // put errors where they belong
    $('ul#srd_form_errors li').each(function(index){
        var identifier = $(this).attr('rel');
        $('input#' + identifier).addClass('srd_form_error').after('<div class="srd_form_error">' + $(this).text() +'</div>');    
        $(this).remove();
    });   
    
    /**
     * EN: make checkboxes with checked="" unchecked in from.onlineservice
     * DE: Checkboxen mit Attribut checked="" sollen komplett unchecked sein in Fomularklasse "onlineservice"     * 
     */ 
     
     // /*
     $('form.onlineservice input.js-trigger').each(function(index){           
        if($(this).val()=="new") {            
            $(this).removeAttr('checked').change();            
        }
     });     
     // */ 
     
    /**
	 * Umschalten von Tabs für Formulare "Onlineservice"
	 */
	var tabContainers = $('div.tab-content');
	tabContainers.hide();
	
    if(window.location.search.search(/meldung=ummeldung/) > 0) {
        $('div#ummeldung').attr('style','display:block');
        $('a.ummeldung').addClass('selected');         
    } else if(window.location.search.search(/meldung=abmeldung/) > 0) {
        $('div#abmeldung').attr('style','display:block');
        $('a.abmeldung').addClass('selected');
    } else {
        $('div#anmeldung').attr('style','display:block');
        $('a.anmeldung').addClass('selected');
    }	
	
	$('div.tabs ul.tabNavigation a').click(function () {
		tabContainers.hide();
		tabContainers.filter(this.hash).show();
		$('div.tabs ul.tabNavigation a').removeClass('selected');
		$(this).addClass('selected');
        srd_forms_optional();
		
		return false;
	});
});

