jQuery(function($) {
	
	$.extend($.expr[':'],{
		inView: function(a) {
			var st = (document.documentElement.scrollTop || document.body.scrollTop),
			ot = $(a).offset().top,
			wh = (window.innerHeight && window.innerHeight < $(window).height()) ? window.innerHeight : $(window).height();
			return ot > st && ($(a).height() + ot) < (st + wh);
		}
	});

	
	// Konfiguration:
	// nur ein offener slider 0/1
	// var ws_referenzen_exclusive = 1
	// var ws_referenzen_effect = 'slide';
	
	// Falls die Konstante nicht gesetzt wurde...
	if(typeof ws_referenzen_exclusive == 'undefined') {
		ws_referenzen_exclusive = 1;
	}
	if(typeof ws_referenzen_effect == 'undefined') {
		ws_referenzen_effect = 'slide';
	}
	
    // Versteckte Inhalte nicht anzeigen
    $('.ws-referenzen-panel.close .ws-referenzen-content').hide();
    
    // Hide-Handler nicht anzeigen
    $('.ws-referenzen-panel.close .ws-referenzen-hide').hide();
	
	// Für ein paar Effekte
	$('.ws-referenzen-panel .ws-referenzen-handler').hover(function() {
		$(this).parents('.ws-referenzen-panel').addClass('hover');
	}, function() {
		$(this).parents('.ws-referenzen-panel').removeClass('hover');
	});
	
	// Eventhandler
	$('.ws-referenzen-show').click(function(event, data) {
		var options = {};
		
		$panel = $(this).parents('.ws-referenzen-panel');
		var refUidArray = $panel.attr("id").split('-');	// JS-Äquivalent zu explode();
		var refUid = refUidArray[2];

		$content = $panel.find('.ws-referenzen-content');		
		if($panel.is('.close')) {
			

			
			//Dieses Panel aufklappen
			switch(ws_referenzen_effect) {
				case 'slide':
					$content.slideDown();
					// jQuery UI + entsprechende Effekte aktivieren!!!
					//$content.effect('pulsate',{ times:3 },150);
					//$content.effect('shake',options,200);
					break;
				case 'fade':
					$content.fadeIn();
					break;
				default:
					$content.show();				
			}
			
			$panel.removeClass('close').addClass('open');
            $panel.find('.ws-referenzen-hide').show();
            $panel.find('.ws-referenzen-show').hide();
			

			
			
			//$panel.find('.ws-referenzen-content-inner').load('index.php?id=507&type=500&tx_wsreferenzen_pi1[showUid]='+refUid);
			$panel.find('.ws-referenzen-content-inner').load('index.php?id='+singleViewUid+'&type=500&tx_wsreferenzen_pi1[showUid]='+refUid, function() {
				//alert('Load was performed.');
				$ajaxcontent = $panel.find('#txwsreferenzenpi1-teaser-'+refUid);
				//alert('$ajaxcontent txwsreferenzenpi1-content-'+refUid+ ' is not in View: '+$ajaxcontent.is(':not(:inView)'));
				if ($ajaxcontent.is(':not(:inView)')) {
					$('html,body').animate({ 
						scrollTop: $panel.find('#txwsreferenzenpi1-content-'+refUid).offset().top 
					}, 3000);
				}
			});
			
						//Wenn nur ein offenes Panel erlaubt ist, andere Panels schließen
			if(ws_referenzen_exclusive) {
				$('.ws-referenzen-panel.open .ws-referenzen-hide').trigger('click', {clicked: $('.ws-referenzen-panel').index($panel)});
			}
			
		}
	});
    
    $('.ws-referenzen-hide').click(function(event, data) {
		var options = {};

		$panel = $(this).parents('.ws-referenzen-panel');
		$content = $panel.find('.ws-referenzen-content');		
		if($panel.is('.open')) {
			if(!data) {
				data = { clicked: -1 };
			}
			if(data.clicked != $('.ws-referenzen-panel').index($panel)) {
				//Diesen Panel zuklappen
				switch(ws_referenzen_effect) {
					case 'slide':
						//$content.slideUp();
						// jQuery UI + entsprechende Effekte aktivieren!!!
						//$content.effect('shake',options,200);
						$content.effect('explode',options,300);
						break;
					case 'fade':
						$content.fadeOut();
						break;
					default:
						$content.hide();				
				}
				$panel.removeClass('open').addClass('close');
                $panel.find('.ws-referenzen-hide').hide();
                $panel.find('.ws-referenzen-show').show();
			}
		}
	});	
});
