
/**
* @TODO:
* - documentation
* - remove global vars: $element 120, $foldout 94, elementData 167
*/
/**
* @jslint: 2008-10-31
*/
audi_ngw.namespace(audi_ngw, 'myaudi');

// width of the thumbnails for the gallery
audi_ngw.myaudi.imageWidth = 93;
audi_ngw.myaudi.separator = ' | ';

audi_ngw.myaudi.getCookieDomain = function() {
	var host = window.location.hostname;
	var domain = '';
	if (host.indexOf('.')>=0) {
		var re = new RegExp('co\.uk');
		if (re.test(host)) {
			re =new RegExp('([^\\.]+\\.[^\\.]+\\.[^\\.]+)$');
			match = re.exec(host);
			domain = match[1];
		} else {
			re =new RegExp('([^\\.]+\\.[^\\.]+)$');
			match = re.exec(host);
			domain = match[1];
		}
	}
	return domain;
};

/**
* Initializes the myAudi-user-status. for details see DAU-1158
*/
audi_ngw.myaudi.initMyAudiStatus = function() {
	
	if (!audi_ngw.config.myAudiEnabled || !audi_ngw.config.myAudiSSOEnabled) {
		return;
	}
	jQuery.cookie('cookies_enabled', true, {path: '/', domain: audi_ngw.myaudi.getCookieDomain()});
	if (!jQuery.cookie('cookies_enabled')) {
		if (jQuery('.myaudi_ablage_cookie_check').length > 0) {
			window.location.href = audi_ngw.config.myAudiNoCookiesUrl;
		}
		return false;
		
	}
	jQuery.cookie('cookies_enabled', null, {path: '/', domain: audi_ngw.myaudi.getCookieDomain()});
	login_uuid = jQuery.cookie(audi_ngw.config.myAudiCookieLoginUUID);
	login_tokenid = jQuery.cookie(audi_ngw.config.myAudiCookieLoginTokenID);
	if (!login_uuid && !login_tokenid) {
		_call = (audi_ngw.url.isHTTPSContext()) ? audi_ngw.config.myAudiAnonSSORegisterCallUrlHttps : audi_ngw.config.myAudiAnonSSORegisterCallUrl;
		jQuery.getJSON(_call+'?cb=?', function(data) {
			audi_ngw.myaudi.checkStatus();
			// DANG-2155: if status-bar-updates are disabled we need to to handle the agent urls from the anonSSO-Call
			// because no getstatus-call will be triggered in checkStatus...
			if (!audi_ngw.config.myAudiStatusEnabled) {
				audi_ngw.myaudi.handleAgentUrls(data);
			}
		});
	} else {
		audi_ngw.myaudi.checkStatus();
	}
};


audi_ngw.myaudi.checkStatus = function() {
	
	if (!audi_ngw.config.myAudiEnabled || !audi_ngw.config.myAudiSSOEnabled) {
		return;
	}
	
	// opt_in_activation_needed => url to resend activation mail
	if (audi_ngw.config.myAudiCookieOptInActivationNeeded && audi_ngw.config.myAudiOptInActivationNeeded) {
		var opt_in_activation_needed = jQuery.cookie(audi_ngw.config.myAudiCookieOptInActivationNeeded);

		if (opt_in_activation_needed != '' && opt_in_activation_needed != null) {
			audi_ngw.question.showDialog(jQuery( audi_ngw.config.myAudiOptInActivationNeeded ), {
				posCallback: function() {
					jQuery.cookie(audi_ngw.config.myAudiCookieOptInActivationNeeded, null, { path: '/' } );
					window.location.href = opt_in_activation_needed;
					return false;
				},
				negCallback: function() {
					jQuery.cookie(audi_ngw.config.myAudiCookieOptInActivationNeeded, null, { path: '/' } );
					return false;
				}
			});
		}
	}
	
	opt_in_confirm = jQuery.cookie(audi_ngw.config.myAudiCookieOptInConfirm);
	if (opt_in_confirm) {
		_url = (opt_in_confirm == 1) ? audi_ngw.config.myAudiOptInConfirm : audi_ngw.config.myAudiOptInConfirmLoginNeeded;
		audi_ngw.question.showDialog(jQuery(_url), {});
	}
	jQuery.cookie(audi_ngw.config.myAudiCookieOptInConfirm, null, {path: '/', domain: audi_ngw.myaudi.getCookieDomain()});
	// Merge Account-Data?
	show_merge_data_dialog = jQuery('#'+audi_ngw.config.myAudiMergeDataId);
	if (show_merge_data_dialog.length > 0) {
		var _meta = show_merge_data_dialog.metadata();
		audi_ngw.question.showDialog(jQuery(audi_ngw.config.myAudiMergeDataDialog), {posCallback: function() {
			audi_ngw.api.openModal(_meta.url, {});
			return false;
		}});
		jQuery.cookie(audi_ngw.config.myAudiCookieMergeData, null, {path: '/', domain: audi_ngw.myaudi.getCookieDomain()});
	}
	login_status = jQuery.cookie(audi_ngw.config.myAudiCookieStatus);
	if (!login_status && audi_ngw.config.myAudiStatusEnabled) {
		_call = (audi_ngw.url.isHTTPSContext()) ? audi_ngw.config.myAudiGetStatusCallHttps : audi_ngw.config.myAudiGetStatusCall;
		jQuery.getJSON(_call+'?cb=?', function(data) {
			audi_ngw.myaudi.handleAgentUrls(data);
			if (audi_ngw.config.myAudiStatusEnabled || audi_ngw.config.myAudiLoginEnabled) {
				audi_ngw.myaudi.getUserData();
			}
		});
	} else {
		if (audi_ngw.config.myAudiStatusEnabled || audi_ngw.config.myAudiLoginEnabled) {
			audi_ngw.myaudi.getUserData();
		}
	}


};
audi_ngw.myaudi.getUserData = function() {
	if (!audi_ngw.config.myAudiEnabled || !audi_ngw.config.myAudiSSOEnabled || !audi_ngw.config.myAudiLoginEnabled) {
		return;
	}
	login_status = jQuery.evalJSON(jQuery.cookie(audi_ngw.config.myAudiCookieStatus));
	if (login_status && audi_ngw.config.myAudiStatusEnabled && login_status.partnerID) {
		jQuery('#audi_navigation_footer a.dealersearchlink').attr('href', jQuery('#audi_navigation_footer a.dealersearchlink').attr('href')+'?ID='+login_status.partnerID).show();
		jQuery('#audi_navigation_footer a.dealersearchlink').attr('title', audi_ngw.dictionary.MY_DEALER);
		jQuery('#audi_navigation_footer a.dealersearchlink').html(audi_ngw.dictionary.MY_DEALER);
	}
	if (login_status && audi_ngw.config.myAudiStatusEnabled && login_status.status) {
		jQuery('#audi_navigation_footer_status').show();
	}
	login_tokenid = jQuery.cookie(audi_ngw.config.myAudiCookieLoginTokenID);
	if (login_tokenid) {
		// DANG-2155: Always get userdata from https-domain
		_call = audi_ngw.config.myAudiUserDataCallHttps;
		oldCache = jQuery.ajaxSettings.cache;
		jQuery.ajaxSetup({cache: true});
		jQuery.getJSON(_call+'?cb=?',	function(data) {
			audi_ngw.myaudi.handleUserData(data);
		});
	}
};

audi_ngw.myaudi.handleUserData = function(data) {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	login_tokenid = jQuery.cookie(audi_ngw.config.myAudiCookieLoginTokenID);
	if (login_tokenid && data.name) {
		jQuery('#audi_navigation_footer .myaudi_username').text(data.name);
		jQuery('#audi_navigation_footer .myaudi_status').show();
		if (data.r8owner === true) {
			jQuery('ul#audi_teaser_area li.myaudi_teaser_loggedin').show().addClass('myaudi_teaser_myaudi_active');
			jQuery('ul#audi_teaser_area li.myaudi_teaser_myaudi_loggedin').hide().removeClass('myaudi_teaser_myaudi_active');
			jQuery('ul#audi_teaser_area li.myaudi_teaser_login').hide().removeClass('myaudi_teaser_myaudi_active');
		} else {
			jQuery('ul#audi_teaser_area li.myaudi_teaser_myaudi_loggedin').show().addClass('myaudi_teaser_myaudi_active');
			jQuery('ul#audi_teaser_area li.myaudi_teaser_loggedin').hide().removeClass('myaudi_teaser_myaudi_active');
			jQuery('ul#audi_teaser_area li.myaudi_teaser_login').hide().removeClass('myaudi_teaser_myaudi_active');
		}
	} else {
		jQuery('ul#audi_teaser_area li.myaudi_teaser_login').show().addClass('myaudi_teaser_myaudi_active');
		jQuery('ul#audi_teaser_area li.myaudi_teaser_loggedin').hide().removeClass('myaudi_teaser_myaudi_active');
		jQuery('ul#audi_teaser_area li.myaudi_teaser_myaudi_loggedin').hide().removeClass('myaudi_teaser_myaudi_active');
	}
	audi_ngw.myaudi.handleAgentUrls(data);
};
audi_ngw.myaudi.handleAgentUrls = function(data) {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	// check for protocol - call http agenturls only on http
	if (window.location.protocol === 'http:' && data.agenturls) {
		jQuery(data.agenturls).each(function() {
			jQuery('body').append('<img src="'+this+'" alt="" />');
		});
	}
	if (data.sslagenturls) {
		jQuery(data.sslagenturls).each(function() {
			jQuery('body').append('<img src="'+this+'" alt="" />');
		});
	}
};
audi_ngw.myaudi.handleLoginResponse = function(_sId) {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	if (jQuery(_sId).find('#myaudi_login_success').length) {
		setTimeout(audi_ngw.myaudi.hideLoginLayer, 5000);
	}
};
audi_ngw.myaudi.hideLoginLayer = function() {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	audi_ngw.layer.modal.hide();
	audi_ngw.myaudi.initMyAudiStatus();
};
audi_ngw.myaudi.initQuestionLink = function() {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	$link = jQuery(this);
	audi_ngw.question.showDialog($link.attr('href'), {
		posCallbackBeforeClose: function() {
			$func = $link.metadata().savehandler;
			$func($link);
		},
		posCallback: function() {
			$func = $link.metadata().validationHandler;
			$func($link);
		}
	});
	return false;
};
audi_ngw.myaudi.reShowFormHandler = function($link) {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	// TODO: check for error and redisplay form if needed
	audi_ngw.question.showConfirmation(jQuery({
		confirmHeadline: $formData.saveConfirmHeadline,
		confirmMessage: $formData.saveConfirmMessage,
		yesButton: $formData.saveYesButton,
	noButton: $formData.saveNoButton}));
};
audi_ngw.myaudi.createNewCar = function() {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	$form = jQuery('form.create_new_car_form');
	$form.submit(function(e) {
		_form = jQuery(this);
		audi_ngw.question.showModalForm(_form.attr('action'), {sErrorClass: audi_ngw.config.myAudiFormErrorIndicatorClass});
		return false;
	});
};
audi_ngw.myaudi.initDeleteAccount = function() {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	$form = jQuery('form.myaudi_delete_account');
	$form.submit(function() {
		$formData = jQuery($form.metadata());
		audi_ngw.question.showDialog($formData, {posCallbackBeforeClose: function() {
			window.location.href = $form.attr('action');
		}});
		return false;
	});
};
audi_ngw.myaudi.saveNote = function($link) {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	$form = jQuery('#audi_modal_container form');
	if ($form) {
		jQuery.post($form.attr('action'), $form.serializeArray());
		// TODO: Notiz auf der Seite aktualisieren - in neues Attr schreiben und beim Auslesen dieses beachten!
	}
};
audi_ngw.myaudi.initMyAudiProfileFormListener = function() {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	jQuery('form.form_listener_tab').each(function() {
		$form = jQuery(this);
		$form.attr('predata', jQuery.md5($form.serialize()));
		$form.find('.audi_tab_navigation a[rel="tabForm"]').bind('click.changeForm', audi_ngw.myaudi.handleFormChangeLink);
	});
};
audi_ngw.myaudi.handleFormChangeLink = function(event) {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	var _$element = jQuery(event.target) || jQuery(event);
	changedForm = false;
	jQuery('form.form_listener_tab').each(function() {
		var $form = jQuery(this);
		if ($form.attr('predata') && (jQuery.md5($form.serialize()) != $form.attr('predata'))) {
			changedForm = $form;
		}
	});
	if (changedForm) {
		$form = changedForm;
		$formData = $form.metadata();
		audi_ngw.question.showDialog(jQuery($formData), {
			posCallback: function() {
				// Save
				// Auf den "Save-Link" klicken
				_$element.siblings('.form_savelink').click();				
				return false;
			},
			negCallback: function() {
				// Auf den "Cancel-Link" klicken
				_$element.siblings('.form_cancellink').click();
				return false;
			}
		});
	} else {
		// Auf den "Cancel-Link" klicken
		_$element.siblings('.form_cancellink').click();
	}
	return false;
};

audi_ngw.myaudi.loadWicketContent = function(event) {
	var _$element = jQuery(event.target) || jQuery(event);
	var _$option = _$element.find('option:selected');
	var meta = _$option.metadata();
	jQuery('#'+meta.clickLink).click();
	return false;
};

audi_ngw.myaudi.loadDummyWicketContent = function(link, sID) {
	audi_ngw.myaudi.startWicketLoading(sID);
	link = jQuery(link);
	jQuery('#'+sID).parent().load(link.attr('href')+' #'+sID, function() {
		audi_ngw.myaudi.endWicketLoading(sID);
	});
};

audi_ngw.myaudi.startWicketLoading = function(sID) {
	jQuery('#'+sID+' object').hide();
	audi_ngw.animation.setLoading({
		sId: sID,
		sCN: 'preload'
	});
};

audi_ngw.myaudi.endWicketLoading = function(sID) {
	audi_ngw.event.trigger('ajaxSnippetReady',[{'sId': '#'+sID}]);
	audi_ngw.animation.unsetLoading('#'+sID);
};

audi_ngw.myaudi.startWicketLoadingNoAnimation = function(sID) {
  jQuery('#'+sID+' object').hide();
};

audi_ngw.myaudi.endWicketLoadingNoAnimation = function(sID) {
  audi_ngw.event.trigger('ajaxSnippetReady',[{'sId': '#'+sID}]);
};

/**
* Custom Event: wil be fired as soon as we injected the xhr-snippet
* @param {Object} event
* @param {Object} data {sId: new HTML parent Id}
*/
audi_ngw.myaudi.onAjaxSnippetReady = function(event,data){
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	// execute funtions on new content
	var $scope = jQuery(data.sId);
	audi_ngw.myaudi.initiate($scope);
	if (jQuery('#myaudi_update_user_status').length) {
		audi_ngw.myaudi.initMyAudiStatus();
	}
	// trigger event
	//audi_ngw.myaudi.initMyAudiAblage($scope);
	audi_ngw.event.trigger('ajaxSnippetPrepared');
};

audi_ngw.myaudi.onAjaxSnippedPrepared = function(event) {
	// ready
	audi_ngw.myaudi.initMyAudiAblage();
};

audi_ngw.myaudi.onAjaxModalContentReady = function(event, data) {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	if (jQuery('#myaudi_update_user_status').length) {
		audi_ngw.myaudi.initMyAudiStatus();
	}
	audi_ngw.myaudi.initAblageDetailsView();
	audi_ngw.event.trigger('ajaxModalContentPrepared');
};


audi_ngw.myaudi.initInlineLoginForm = function() {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	if (jQuery('.my_audi_login_inline').length > 0) {
		jQuery('input.myaudi_login_checkbox').bind('click.myaudilogin', function() {
			_chkbox = jQuery(this);
			if(_chkbox.is(":checked")) {
				jQuery('.my_audi_login_inline').show();
			} else {
				jQuery('.my_audi_login_inline').hide();
			}
			return true;
		});
	}
};
audi_ngw.myaudi.initiate = function($scope) {
	if (!audi_ngw.config.myAudiEnabled) {
		return;
	}
	logoutHandler = jQuery.cookie('myAudiLogoutHandler');
	if (logoutHandler) {
		jQuery.cookie('myAudiLogoutHandler', null, {path: '/', domain: audi_ngw.myaudi.getCookieDomain()});
		audi_ngw.myaudi.handleAgentUrls(jQuery.evalJSON(logoutHandler));
		audi_ngw.myaudi.initMyAudiStatus();
	} else {
		audi_ngw.myaudi.initMyAudiStatus();
	}
	audi_ngw.myaudi.initMyAudiProfileFormListener();
	audi_ngw.myaudi.initMyAudiAblage($scope);
	audi_ngw.myaudi.createNewCar();
	audi_ngw.myaudi.initDeleteAccount();
	audi_ngw.myaudi.initInlineLoginForm();
	audi_ngw.myaudi.initMyAudiCard();
	//audi_ngw.myaudi.initMyAudiCarConnectForm();
	audi_ngw.myaudi.initDeleteLinkQuestion($scope);
	jQuery('.myaudi_container_main').append(jQuery('<div class="clearAll"></div>'));
};
audi_ngw.myaudi.initDeleteLinkQuestion = function($scope) {
	jQuery('.con_table_costmanagement .delete_link', $scope).bind('click.deleteLink', function() {
		var $link = jQuery(this);
		audi_ngw.question.showDialog(jQuery(audi_ngw.config.myAudiDeleteCostTableEntryDialog), {posCallback: function() {
			window.location = $link.attr('href');
			return false;
		}});
		return false;
	});
	jQuery('.myaudi_my_dealer a.delete', $scope).bind('click.deleteLink', function() {
		var $link = jQuery(this);
		audi_ngw.question.showDialog(jQuery(audi_ngw.config.myAudiDeleteDealerDialog), {posCallback: function() {
			window.location = $link.attr('href');
			return false;
		}});
		return false;
	});
	jQuery('.myaudi_mein_fahrzeug_block li.delete a', $scope).bind('click.deleteLink', function() {
		var $link = jQuery(this);
		var meta = $link.metadata();
		if (meta.showConfirm === 'true') {
			audi_ngw.question.showDialog(jQuery(meta), {posCallback: function() {
				window.location = $link.attr('href');
				return false;
			}});
			return false;
		}
		return true;
	});
};
audi_ngw.myaudi.handleLogoutRequest = function($link) {
	var url = $link.attr('href') + '?cb=?';
	url = audi_ngw.url.addAjaxFragment(url, audi_ngw.fragmentSelector);
	
	jQuery.getJSON(url, function(data) {
		jQuery.cookie('myAudiLogoutHandler', jQuery.toJSON(data), {path: '/', domain: audi_ngw.myaudi.getCookieDomain()});
		
		// if a modal Layer was closed the hash needs to be deleted because it would be open again after a reload 
		if( '' !== window.location.hash ) {
			window.location.hash = '';
		}
		
		window.location.reload();
	});
};
audi_ngw.myaudi.initMyAudiCard = function() {
	jQuery('form.clipboardform input').each(function() {
		jQuery(this).attr('value2', jQuery(this).attr('value'));
	});
	jQuery('form.clipboardform input').bind('click.copyText, focus, keyup, keydown', function() {
		inp = jQuery(this);
		inp.val(inp.attr('value2'));
		inp.select();
		return false;
	});
	jQuery('.myaudi_card_options .bookmark').click(function() {
		if (jQuery.browser.msie) {
			_link = jQuery(this);
			return window.external.AddFavorite(this, _link.attr('title'));
		}
	});
};
audi_ngw.myaudi.initMyAudiCarConnectForm = function() {
	jQuery('#audi_content_wrapper.myaudi_car_connect form div.myaudi_carconnect_address').hide();
	var $select = jQuery('#audi_content_wrapper.myaudi_car_connect form #address_type');
	$selected = $select.val();
	jQuery('#audi_content_wrapper.myaudi_car_connect form div#address_type_'+$selected).show();
	$select.bind('change.carconnectAddress', function() {
		jQuery('#audi_content_wrapper.myaudi_car_connect form div.myaudi_carconnect_address').hide();
		$selected = jQuery(this).val();
		jQuery('#audi_content_wrapper.myaudi_car_connect form div#address_type_'+$selected).show();
	})
};
audi_ngw.myaudi.initMyAudiAblage = function($scope) {
	var _active = jQuery('.myaudi_ablage .audi_tab_navigation li.active a[rel="tabAblage"]', $scope);
	if (!_active.length) {
		_active = jQuery('.myaudi_ablage .audi_tab_navigation li:first a[rel="tabAblage"]', $scope);
	} 
	_active.trigger('click');
};
audi_ngw.myaudi.initMyAudiAblageActive = function(event) {
	var _$element = jQuery(event.target) || jQuery(event);
	if (_$element.parents('a[rel="tabAblage"]').length > 0) {
		_$element = _$element.parents('a[rel="tabAblage"]');
	}
	audi_ngw.navigation.tab._doSimpleClick(_$element);
	meta = _$element.metadata();
	var tab = meta.tabOptions.sSelectorRelated;
	$tab = jQuery(tab);
	if (jQuery('.ablage_enhanced', $tab).length > 0) {
		audi_ngw.myaudi.initEnhancedAblage($tab, _$element);
	}
	if (jQuery('.ablage_listing', $tab).length > 0) {
		audi_ngw.myaudi.initListingAblage($tab, _$element);
	}
	return false;
};
audi_ngw.myaudi.initListingAblage = function($tab, $tabElement) {
	var anzahl = $tab.find('.ablage_listing .ablage_items > li').length;
	if (anzahl) {
		jQuery('.con_textimage_combo1_2col', $tab).hide();
		jQuery('a.delete', $tab).unbind('click.deleteAblageItem').bind('click.deleteAblageItem', function() {
			_activeItem = jQuery(this).parents('li.ablage_entry');
			jQuery.ajax({url: jQuery(this).attr('href')});
			empty = true;
			if ((_activeItem.next().length === 0) && (_activeItem.prev().length === 0)) {
				audi_ngw.myaudi.switchToAblageEmpty($tab, $tabElement);
			}
			_activeItem.remove();
			$tabElement.find('span').text(jQuery('.ablage_listing .ablage_items > li', $tab).length);
			return false;
		});
	} else {
		audi_ngw.myaudi.switchToAblageEmpty($tab, $tabElement);
	}
};
audi_ngw.myaudi.initEnhancedAblage = function($tab, $tabElement) {
	var first = true;
	var anzahl = $tab.find('.ablage_enhanced .ablage_items > li').length;
	if (anzahl) {
		jQuery('.con_textimage_combo1_2col', $tab).hide();
		// Breite setzen
		containerWidth = (anzahl*audi_ngw.myaudi.imageWidth)+94;
		var ul = $tab.find('.ablage_enhanced .ablage_items');
		ul.width(containerWidth);
		// Slider init
		slideWidth = containerWidth - 704;
		if (slideWidth > 0) {
			jQuery('.ablage_slider', $tab).show();
			var slider = jQuery('.ablage_slider', $tab).slider({
				handle: '.ablage_slider_handle',
				animate: true,
				min: 0,
				max: slideWidth,
				slide: function (ev, ui) {
					ul.css('left', '-' + ui.value + 'px');
				}
			});
		} else {
			jQuery('.ablage_slider', $tab).hide();
		}
		ul.find('> li > a, > li > div').hover(
			function() {
				jQuery(this).addClass('hover');
			},
			function() {
				jQuery(this).removeClass('hover');
			}
		);
		jQuery('> li > a > img', ul).each(function() {
			img = jQuery(this);
			img.wrap('<div />').parent().css('background-image', 'url('+img.attr('src')+')');
			img.hide();
		});
		jQuery('> li > a, > li > div.ablage_deleted', ul).unbind('click.ablage_item').bind('click.ablage_item', function(event) {
			_item = jQuery(event.target) || jQuery(event);
			event.stopPropagation();
			event.preventDefault();
			_item = jQuery(this);
			_listItem = _item.parent();
			if (_listItem.hasClass('active') && !_listItem.hasClass('deleted') && !first) {
				jQuery('a.details', _listItem).click();
				return false;
			}
			first = false;
			jQuery('> li > a.active, > li > div.ablage_deleted.active', ul).removeClass('active');
			jQuery('> li.active', ul).removeClass('active');
			jQuery('.ablage_toolbar', ul).hide();
			_item.addClass('active');
			_item.siblings('.ablage_toolbar').show();
			_activeItem = _item.parents('li');
			_activeItem.addClass('active');
			activeItemsCount = _item.parent('li').prevAll().length + 1;
			jQuery('.ablage_slider_status', $tab).text(activeItemsCount+audi_ngw.myaudi.separator+anzahl);
			jQuery('span', $tabElement).text(anzahl);
			
			// 0 -> 227 -> 0 bis 516
			if (slider) {
				var elemLeft = jQuery('.ablage_entry.active').position().left;
				var elemRight = elemLeft + 186;
				var visibleLeft = parseInt(ul.css('left'), 10) * -1;
				var visibleRight = visibleLeft+704;
				if (elemRight > visibleRight) {
					scrollPosition = 704-elemRight;
					// TODO: Slider setzen funktioniert erst mit UI 1.7/jQuery 1.3
					//slider.slider('option', 'value', -scrollPosition);
					ul.css('left', scrollPosition+'px');
				} else if (elemLeft < visibleLeft) {
					scrollPosition = elemLeft;
					// TODO: Slider setzen funktioniert erst mit UI 1.7/jQuery 1.3
					//slider.slider('option', 'value', scrollPosition);
					ul.css('left', '-'+scrollPosition+'px');
				}
			}
			return false;
		});
		activeItem = ul.find('li > a.active, > li > div.ablage_deleted.active');
		if (activeItem.length == 1) {
			activeItem.click();
		} else {
			ul.find('li > a:first').click();
		}
		jQuery('.ablage_toolbar a.delete', $tab).unbind('click.deleteAblageItem').bind('click.deleteAblageItem', function(event) {
			_link  = jQuery(event.target) || jQuery(event);
			_activeItem = _link.parents('li.ablage_entry');
			jQuery.ajax({url: _link.attr('href')});
			if (_activeItem.next().length > 0) {
				_next = _activeItem.next().find('> a, > div');
				_activeItem.remove();
				anzahl--;
				_next.click();
			} else if (_activeItem.prev().length > 0) {
				_prev = _activeItem.prev().find('> a, > div');
				_activeItem.remove();
				anzahl--;
				_prev.click();
			} else {
				_activeItem.remove();
				anzahl--;
				audi_ngw.myaudi.switchToAblageEmpty($tab, $tabElement);
			}
			return false;
		});
	} else {
		audi_ngw.myaudi.switchToAblageEmpty($tab, $tabElement);
	}
};

audi_ngw.myaudi.initAblageDetailsView = function() {
	// find all the elements we need for the toolbox
	$element = jQuery('.ablage_details_view');
	var i;
	if ($element.length > 0) {
		elementData = $element.metadata();
		var $toolbox = $element.find('.toolbox');
		var $wallpaper = $toolbox.find('.wallpaper');
		$wallpaper.find('a').css('display', 'inline');
		var $wallpaperUl = $wallpaper.find('ul').empty();
		// update the wallpaper-links
		$wallpaper.find('.open .close').click();
		$toolbox.find('li').hide().css('display', 'none');
		// update the wallpaper-element
		if( 'undefined' !== typeof(elementData.wallpaper) ) {
			for (i = 0; elementData.wallpaper[i]; i++) {
				$wallpaperUl.append('<li><a href="' + elementData.wallpaper[i].href + '" rel="wallpaper" target="_blank">' + elementData.wallpaper[i].title + '</a></li>');
			}
			$wallpaperUl.find('li:first').addClass('firstChild');
			$wallpaper.css('display', 'inline');
			audi_ngw.layer.statics.register({
				sIdContainer:			'#func_toolbox_wallpaper',
				sClassElement:			'.overlay',
				sClassClose:			'.close'
			});
		} else {
			$wallpaper.hide();
		}
		// update the other toolbox-links
		if( 'undefined' !== typeof(elementData.toolbox) ) {
			for (i = 0; elementData.toolbox[i]; i++) {
				var $tmpElement = $toolbox.find('.' + elementData.toolbox[i].identifier);
				if( 1 == $tmpElement.size() ) {
					$tmpElement.find('a').attr('href', elementData.toolbox[i].href).css('display', 'inline').parent().css('display', 'inline').find('span').text(elementData.toolbox[i].title);
				}
			}
		}
	}
};
audi_ngw.myaudi.switchToAblageEmpty = function(tab, tabElement) {
	jQuery('.con_textimage_combo1_2col', tab).show();
	jQuery('.ablage_enhanced', tab).hide();
	jQuery('.ablage_listing', tab).hide();
	jQuery('span', tabElement).text('0');
};

audi_ngw.myaudi.languageChoser = function () {
	var $languageChoser = jQuery('.myaudi_language_choser');
	$languageChoser.bind('change', function() {
		
		var $this = jQuery(this);
		$this.parents('ul').find('.myaudi_registerlink2 a').attr('href', $this.val());
		
		
		
	});
	
}

audi_ngw.myaudi.prepare = function() {
		
	if (audi_ngw.config.myAudiEnabled) {
		audi_ngw.myaudi.languageChoser();
		audi_ngw.myaudi.initiate(jQuery('body'));
		audi_ngw.event.bind('ajaxSnippetReady',audi_ngw.myaudi.onAjaxSnippetReady);
		audi_ngw.event.bind('ajaxModalContentReady.updateMyAudiStatus', audi_ngw.myaudi.onAjaxModalContentReady);
		audi_ngw.event.bind('ajaxSnippetPrepared', audi_ngw.myaudi.onAjaxSnippedPrepared);
	}
};

