/**
 * Die maximale Anzahl an Items pro Container.
 */
var maxNumberOfItems = 5;

/**
 * Einblenden
 */
function fadeIn(el) {
	el.set('opacity', 0);
	el.fade('in');
}

/**
 * Ausblenden
 */
function fadeOut(el) {
	el.fade('out');
	el.setStyle('display', 'none');
}

/**
 * Es wird der entsprechende Inhalt eines Tabs angezeigt.
 */
function showTab(tabname){
	var el = $(tabname);
	$$('.tab').each(function(item) {
		item.removeClass('active');
	});
	$$('.tabcontent').each(function(item) {
		item.setStyle('display', 'none');
	});
	if(el) el.addClass('active');
	$('tabcontent_' + tabname).setStyle('display', 'block');
	Cookie.write('selectedTab', tabname);
}

/**
 * Setzt die Click-Events für die Tabs.
 */
function setTabActions(admin) {
	if (1==1){
		$$('.tab').each(function(item) {
			item.addEvent('click', function(e) {
				e.stop();
				showTab(item.get('id'));
			});
		});
	}
}

/**
 * Setzt den zuletzt ausgewählten Tab (wird aus dem Cookie ausgelesen).
 */
function setSelectedTab() {
	var selectedTabName = Cookie.read('selectedTab');
	if(selectedTabName == 'undefined' || selectedTabName == '' || selectedTabName == null) selectedTabName = 'pre';
	showTab(selectedTabName);
}

/**
 * Fügt ein Container-Item hinzu.
 */
function addContainerItem(className, maxNumberOfItems, firstItem, itemData,hinweistext) {
	var cons = $$('div.' + className + '.containerItem.item');
	if(cons.length < maxNumberOfItems || !maxNumberOfItems) {
		var itemDummy = $$('div.' + className + '.containerItem.dummy')[0];
		var newCon = itemDummy.clone();
		newCon.removeClass('dummy');
		newCon.addClass('item');
		newCon.inject(itemDummy.getNext('.container'), 'bottom');
		cons = $$('div.' + className + '.containerItem.item');
		setElementNames(className);
		if(itemData) {
			newCon.getElement('select').selectedIndex = itemData[0];
			newCon.getElements('input[type=radio]').each(function(subItem) {
				if(itemData[0] > 0) subItem.disabled = false;
				if(subItem.get('value') == itemData[1]) subItem.checked = true;
			});
		}
		updateContainerItemLink(cons, maxNumberOfItems);
		newCon.getElement('.removeContainerItemLink').setStyle('display', 'inline');
		if (hinweistext==undefined || !(hinweistext.length>0)){
			hinweistext = 'Der Vertrag wird hiermit gelöscht!';
		}
		if(firstItem) newCon.getElement('.removeContainerItemLink').set('onclick','confirm(\''+hinweistext+'\');selectfield = this.getParent().getElement(\'select\');selectfield.selectedIndex = 0;this.getParent().getElements(\'input[type=radio]\').each(function(subItem){subItem.disabled = true;});');
	}
}

/**
 * Aktualisiert den Link zum Hinzufügen eines neuen ContainerItems. Zeigt an, wie viele Items noch hinzugefügt werden können.
 */
function updateContainerItemLink(cons, maxNumberOfItems) {
	var tabcontentCon = cons[0].getParent('.parentContainer');
	var display = 'inline';
	if(maxNumberOfItems > 0 && cons.length >= maxNumberOfItems) display = 'none';
	tabcontentCon.getElement('.addContainerItemLink').setStyle('display', display);
	var span = tabcontentCon.getElement('.addContainerItemLink').getElement('span');
	if(maxNumberOfItems > 0 && span) span.set('html', '(noch ' + (maxNumberOfItems - cons.length) + ')');
}

/**
 * Nummeriert alle ContainerItems (name-Attribute) neu durch.
 */
function setElementNames(className) {
	$$('div.' + className + '.containerItem.item').each(function(item, index) {
		item.getElements('*').each(function(subItem) {
			if(subItem.get('name')) subItem.set('name', subItem.get('name').replace(/\[con\d+\]/, '[con' + (parseInt(index)+1) + ']'));
		});
	});
}

/**
 * Beim Ändern eines Select-Elements werden diese Anweisungen ausgeführt.
 */
function doSelectAction(el) {
	var disableRadios = true;
	if(!(el.getSelected().get('value') == '')) {
		disableRadios = false;
		showContainerMessage(el);
	}
	var containerItem = el.getParent('.containerItem');
	if (containerItem.getElement('.kfzart')){
		containerItem.getElement('.kfzart').getElements('input[type=radio]').each(function(item) {
			item.disabled = disableRadios;
			if (item.value == 1){
				item.checked=true;
			}
		});
	}
}

/**
 * Zeigt den Hinweis in einem Container an.
 */
function showContainerMessage(el) {
	var messageCon = el.getParent('.parentContainer').getElement('.containerMessage');
	if(messageCon.getStyle('display') != 'block') {
		messageCon.setStyle('display', 'block');
		fadeIn(messageCon);
	}
	//el.getParent('.parentContainer').getChildren('.message').each(function(item) {
	//	item.setStyle('display', 'none');
	//});
	if ($('message'+el.getSelected().get('value'))){
		$('message'+el.getSelected().get('value')).setStyle('display', 'block');
		fadeIn($('message'+el.getSelected().get('value')));
	}
}

/**
 * Löscht ein ContainerItem.
 */
function removeContainerItem(el, className, maxNumberOfItems,hinweistext) {
	if (hinweistext==undefined || !(hinweistext.length>0)){
		hinweistext = 'Der Vertrag wird hiermit gelöscht!';
	}
	if(confirm(hinweistext)) {
		el.getParent('.containerItem').destroy();
		setElementNames(className);
		updateContainerItemLink($$('div.' + className + '.containerItem.item'), maxNumberOfItems);
	}
}

/**
 * Überträgt Daten von einem Tabinhalt zu einen anderen
 */
function transferDataFrom(fromTabName, toTabName, maxNumberOfItems) {
	if(confirm('Hiermit werden Ihre bereits getätigten Eingaben überschrieben!')) {
		$('tabcontent_' + toTabName).getElement('.container').empty();
		var firstItem = true;
		$('tabcontent_' + fromTabName).getElements('.containerItem.item').each(function(item, index) {
			if(index > 0) firstItem = false;
			var radioValue = undefined;
			item.getElements('input[type=radio]').each(function(subItem) {
				if(subItem.checked) radioValue = subItem.get('value');
			});
			var itemData = [
				item.getElement('select').selectedIndex,
				radioValue
			];
			addContainerItem('service', maxNumberOfItems, firstItem, itemData);
		});
	}
}

//dsc_kg
function switchHinweisVisibility(el) {
	var target = $('betriebgesperrt_hinweis');
	if(el.get('checked')) target.setStyle('display', 'inline');
	else target.setStyle('display', 'none');
}

window.addEvent('domready',function(){
	var div = $('section-advanced-betriebsart');
	if(div) {
		var checks = div.getElements('input[type=checkbox]');
		checks[1].addEvent('click',function(){
			if(!checks[1].get('checked')) {
				checks[2].set('checked',false);
				//checks[3].set('checked',false);
			}
		});
		checks[2].addEvent('click',function(){if(checks[2].get('checked')) checks[1].set('checked',true);});
		//checks[3].addEvent('click',function(){if(checks[3].get('checked')) checks[1].set('checked',true);});
	}
});
