/**
* Formularfunktionen
*/
var arrErrorValues = new Array();
$(document).ready(function(){
	/**
	* Alle Eingabeelemente mit der Klasse "error" so modifizieren, das diese bei onFocus verschwindet
	*/
	$('input.error, textarea.error, select.error').focus(function(){
		arrErrorValues[$(this).attr('name')] = $(this).attr('value');
		$(this).removeClass('error');
	});
	$('input.error, textarea.error, select.error').blur(function(){
		if(arrErrorValues[$(this).attr('name')] == $(this).attr('value')){
			$(this).addClass('error');
		}
	});
});

/**
* Eingabefelder, welche nicht mehr ausgeblendet werden sollen in "Friedhof" legen
*
* @param String p_strKey				- Schlüssel für Eingabeliste (Grabnummer)
* @param mixed  p_mixInputElements		- Betreffende Eingabefelder
*/
function addInputToCementery(p_strKey, p_mixInputElements){
	/**
	* Gibt es schon einen Friedhof
	*/
	if($('#formInputCementery').length === 0){
		/**
		* neu anlegen
		*/
		$('body').append('<div id="formInputCementery"></div>');
	}

	$('#formInputCementery').append('<div id="' + p_strKey + '"></div>');
	$('#formInputCementery #' + p_strKey).append(p_mixInputElements);
}

/**
* Eingabefelder wieder "auferstehen lassen"
*
* @param String p_strKey				- Schlüssel für Eingabeliste (Grabnummer)
* @return mixed
*/
function removeInputToCementery(p_strKey){
	mixInputElements = $('#formInputCementery #' + p_strKey).children();
	$('#formInputCementery #' + p_strKey).remove();
	return mixInputElements;
}

/**
* Editor anzeigen
*
* @param String p_strId			- JQueryId-String
*/
function showEditor(p_strId){
	closeOpenEditor();

	/**
	* Editor anzeigen
	*/
	$(p_strId).removeClass('hide').addClass('showEditor');
}

/**
* gerade geöffnete Editormaske schliessen
*/
function closeOpenEditor(){
	/**
	* evtl geöffneten Editor schliessen
	*/
	$('.showEditor').removeClass('showEditor').addClass('hide');
}

/**
* Zeilenumbrüche in BR's umwandeln
*
* @param String p_strText			- Text
* @param Boolean p_blnIsXhtml		- Ist X-Html
*/
function nl2br (p_strText, p_blnIsXhtml) {
    // Converts newlines to HTML line breaks
    //
    // version: 911.1619
    // discuss at: http://phpjs.org/functions/nl2br    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Philip Peterson
    // +   improved by: Onno Marsman
    // +   improved by: Atli Þór
    // +   bugfixed by: Onno Marsman    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   improved by: Maximusya
    // *     example 1: nl2br('Kevin\nvan\nZonneveld');    // *     returns 1: 'Kevin\nvan\nZonneveld'
    // *     example 2: nl2br("\nOne\nTwo\n\nThree\n", false);
    // *     returns 2: '<br>\nOne<br>\nTwo<br>\n<br>\nThree<br>\n'
    // *     example 3: nl2br("\nOne\nTwo\n\nThree\n", true);
    // *     returns 3: '\nOne\nTwo\n\nThree\n'
    var strBreakTag = (p_blnIsXhtml || typeof p_blnIsXhtml === 'undefined') ? '' : '<br />';

    return (p_strText + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ strBreakTag +'$2');
}