var azbCore = {
	fadeIn : function(elem)
	{
		$(elem).fade({duration: 0.8, from: 0, to: 1});
	},

	scrollToElement : function(elem)
	{
		



	}
};

var Form = {};
Form.Error = {
	add : function(arrElements, strMessage, blnSingle)
	{
		arrElements = $A(arrElements);
		var c = arrElements.length;
		for(var i = 0; i < c; i++)
		{
			var aElement = $(arrElements[i]);
			aElement.addClassName('error');

			if(i == 0 || !blnSingle)
			{
				var aBR = $(document.createElement('br'));
				var aSpan = $(document.createElement('span'));
				aSpan.addClassName('hinweis');
				aSpan.addClassName('error');
				aSpan.appendChild(document.createTextNode(strMessage));
				aElement.parentNode.insertBefore(aSpan, aElement);
				aElement.parentNode.insertBefore(aBR,   aElement);
			}
		}
	}
};


var Berichtsheft = {
	clickDelete : function(buttonElement)
	{
		if(confirm('Soll dieser Eintrag wirklich gelöscht werden?\n\nDas kann NICHT rückgängig gemacht werden!'))
		{
			$('formAction').value = 'delete';
			$(buttonElement).up('form').submit();
		}
	}
};

Berichtsheft.Weekly = {
	addRow : function(btnElement, intTag)
	{
		/*
		 * Row bestimmen und kopieren
		 */
		intTag			= parseInt(intTag);
		btnElement		= $(btnElement);
		var ctrElement	= $(btnElement.up('tr'));

		/*
		 * Püfen ob weitere Rows für diesen Tag möglich sind
		 */
		var rowLimit = 10;
		var currentRowCount = $A(document.getElementsByClassName('row_tag_'+intTag)).length;
		if(currentRowCount >= rowLimit)
		{
			alert("Du kannst maximal "+rowLimit+" einzelne Einträge je Tag speichern.");
			return;
		}

		/*
		 * Neue Row durch klonen der alten Row erstellen.
		 */
		var ntrElement	= ctrElement.cloneNode(true);

		/*
		 * Daten der Kopie anpassen
		 */
		$(ntrElement.down('th')).update('&nbsp;');
		$(ntrElement.down('td', 0).down('textarea')).value = '';
		var nselElement = $(ntrElement.down('td', 1).down('select'));
		var count = nselElement.childNodes.length;
		for(var i = 0; i < count; i++)
		{
			var tElement = $(nselElement.childNodes[i]);
			if(tElement.selected)
			{
				tElement.selected = false;
			}
		}
		$(ntrElement.down('td', 0).down('input')).value = '0'; // Neue Row!
		$(ntrElement.down('td', 2).down('input')).value = '';

		/*
		 * Element anhängen
		 */
		ctrElement.parentNode.insertBefore(ntrElement, ctrElement.nextSibling);

		/*
		 * Fade-in
		 */
		azbCore.fadeIn(ntrElement);
		azbCore.scrollToElement(ntrElement);

		/*
		 * Textarea
		 */
		var TA = $(ntrElement.down('td', 0).down('textarea'));
		if(typeof TxtAutoGrowReg != 'undefined')
		{
			TxtAutoGrowReg[TA.identify()] = new AutoGrow(TA);
			TxtAutoGrowReg[TA.identify()].setMinHight();
		}
		TA.focus();



		/*
		 * geklickten Button bearbeiten
		 */
		$(btnElement).update('- Eintrag entfernen');
		$(btnElement).addClassName('colorRed');
		$(btnElement).onclick = function(){Berichtsheft.Weekly.removeRow(btnElement);};
	},

	removeRow : function(btnElement)
	{
		/*
		 * Row bestimmen und kopieren
		 */
		if(confirm("Möchtest Du diese Zeile wirklich löschen?\n(Der Eintrag wird erst dann richtig gelöscht, wenn du unten auf 'Speichern' klickst!)"))
		{
			/*
			 * Wochentag ggf. Verschieben!
			 */
			btnElement = $(btnElement);
			var ctrElement = $(btnElement.up('tr'));
			var cthContent = $(ctrElement.down('th')).innerHTML;
			if(cthContent != '&nbsp;')
			{
				var utrElement = ctrElement;
				var blnTrFound = false;
				var blnElementFound = false;
				do
				{
					utrElement = $(utrElement.nextSibling);
					blnElementFound = (typeof utrElement != 'undefined');

					if(blnElementFound && utrElement.nodeName.toUpperCase() == 'TR')
					{
						blnTrFound = true;
						break;
					}
				}
				while(blnElementFound);

				if(blnTrFound)
				{
					$(utrElement.down('th')).update(cthContent);
				}
			}
			ctrElement.remove();
		}
	}
}

