/**
 * bindet die Dynamik der Profildarstellung
 * @package HIT.net - Javascript
 **/
function initProfileExtensions()
{
	window.addEvent('domready', function() {
		// zuweisen des Sliders zu allen Extensions und schliessen
		$each($$("span.buttonShowProfileExtension"), function(extensionShowButton, index)
		{
			// Slider erstellen und speichern
			extensionFieldName = extensionShowButton.getProperty('rel');
			
			// suchen des entsprechenden Button für das Verstecken der Extension
			$each($$("span.buttonHideProfileExtension"), function(extensionHideButton, index)
			{
				if(extensionHideButton.getProperty('rel') == extensionFieldName)
				{
					extensionShowButton.hideButton = extensionHideButton;
					extensionHideButton.showButton = extensionShowButton;
				};
			});
			
			var extensionID 	= "profileFieldExtension_" + extensionFieldName;
			var extensionSlider = $(extensionID);
			
			// erzeugen des Sliders
			extensionSlider.sliderObject = new Fx.Slide(extensionSlider, {duration: 1000, transition: Fx.Transitions.Pow.easeOut});
			
			// ausblenden des Elements
			extensionSlider.sliderObject.hide();
			
			extensionShowButton.slider = extensionSlider;
			extensionShowButton.hideButton.slider = extensionSlider;
			
			extensionShowButton.addEvent("click", function()
				{
					// anzeigen der ProfileExtension
					this.slider.sliderObject.cancel();
					this.slider.sliderObject.slideIn();

					this.setStyle('display', 'none');
					this.hideButton.setStyle('display', 'block');
				});

			extensionShowButton.hideButton.addEvent("click", function()
				{
					// verstecken der ProfileExtension
					this.slider.sliderObject.cancel();
					this.slider.sliderObject.slideOut();
					
					this.setStyle('display', 'none');
					this.showButton.setStyle('display', 'block');
				});
				
			extensionShowButton.setStyle('display', 'block');
		});
	});
}

function addMultipleSelectField(checkboxID, functionElements)
{
	if(!$defined($('activeElement_' + checkboxID)))
	{
		$(checkboxID).setProperty('checked', true);
	
		// erstellen eines aktiven Elements
		var activeItemElement			= new Element('div', {
												'class'	: 'hitProfile_MultipleSelectActive',
												'id'	: 'activeElement_' + checkboxID
										});
		var activeItemElementImage 		= new Element('img', {
	 													'src': 'fileadmin/templates/images/profilecontent_removeitem.jpg'
											});
		var activeItemElementLink 		= new Element('a', {
	 													'href': 'javascript:return(false);',    													
	 													'rel' : checkboxID,
											    'events': {
											        'click': function(){
											            $(this.checkboxID).setProperty('checked', false);
											            $('activeElement_' + this.checkboxID).dispose();
											        }
											    }
										  });
		activeItemElementLink.checkboxID = checkboxID;
		
		var checkboxLabel = $('label_' + checkboxID).getProperty('html');
		var activeItemElementContent	= new Element('span', {
	 													'html': checkboxLabel    													
										  });
		activeItemElementImage.inject(activeItemElementLink);
		activeItemElementLink.inject(activeItemElement);
		activeItemElementContent.inject(activeItemElement);
		activeItemElement.inject(functionElements);
	};	
}

function initMultipleSelectFieldsets()
{
	window.addEvent('domready', function() {
	
		$each($$("fieldset.profileMultipleSelect"), function(fieldsetMultipleSelect, index)
		{
			var functionElements  = new Element('div', {
													'id': 'hitElements_' + fieldsetMultipleSelect.getProperty('rel')
												});
			functionElements.inject(fieldsetMultipleSelect, 'before');
			
			// verstecken aller Checkboxen
			fieldsetMultipleSelect.setStyle('display', 'none');
			
			// initialisieren der Werte und Labels			
			functionElements.values = new Object();

			var selectorOptions = '';
			
			$each(fieldsetMultipleSelect.getElements('input'), function(checkbox, index)
			{ 
				// erzeugen der Funktionselemente
				var checkboxID = checkbox.getProperty('id');
				var checkboxLabel = $('label_' + checkboxID).getProperty('html');
				
				functionElements.values[checkboxID] = checkboxLabel;
				if(checkbox.getProperty('checked'))
				{
					addMultipleSelectField(checkboxID, functionElements);
				}
				
				selectorOptions = selectorOptions + '<option value="' + checkboxID + '">' + checkboxLabel + '</option>';
				
			});
			
			
			// erstellen der Auswahl
			var functionSelector  			= new Element('div', {
													'id': 'hitSelector_' + fieldsetMultipleSelect.getProperty('rel')
												});
			var addSelectorItemImage 		= new Element('img', {
															'src' : 'fileadmin/templates/images/profilecontent_additem.jpg'
													});
			var addSelectorItemLink 		= new Element('a', {
		 													'href': 'javascript:return(false);',    													
		 													'rel' : fieldsetMultipleSelect.getProperty('rel'),		 													
												    'events': {
												        'click': function(){
												        	var selectorValue = $('selector_' + this.getProperty('rel')).getProperty('value'); 
												        	addMultipleSelectField(selectorValue, this.functionElements);
												        }
												    }
											  });
			addSelectorItemLink.functionElements= functionElements;
			var addSelectorItemContent		= new Element('select', {
		 													'html': selectorOptions,
		 													'id': 'selector_' + fieldsetMultipleSelect.getProperty('rel')
											  });
			addSelectorItemImage.inject(addSelectorItemLink);
			addSelectorItemLink.inject(functionSelector);
			addSelectorItemContent.inject(functionSelector);
			functionSelector.inject(functionElements, 'before');			
		});
	});
}