


/********************************************************************************************************************
 *
 * GALLERY APPLICATION
 *
 ****************************************************************************************************************** /


/**
 * Global gallery namespace.
 */
var GALLERY = {
	params: {
		navigator            : '#cgNavigator',
		navArrowDisabledClass: 'nav-arrow_diabled',
		navArrowDisabledClass2: 'nav-arrow_diabled2',
		navSpeed             : 500,
		display              : '#cgDisplay',
		info                 : '#cgInfo'
	}
};

/**
 * Initialisierung.
 *
 * @param wrapper Object Galeriecontainer.
 * @param params Object Parameter abweichend zu den Standardparametern.
 *
 * @return Object (this)
 */
GALLERY.Init = function(wrapper, params) {
	this.params = $.extend(this.params, params||{});

	// Kein Wrapper-, Navigator- oder Displayelement -> Abbruch.
	// ---------------------------------------------------------

	if($(wrapper).length < 1 || $(wrapper).find(this.params.navigator).eq(0) < 1 || $(wrapper).find(this.params.display).eq(0) < 1) {
		return;
	}

	// Sämtliche Aktionen sind abhäng vom Navigator. Sie werden mit
	// dem Starten des Navigators bereitgestellt, initialisiert, etc..
	// -------------------------------------------------------------------------

	this.wrapper        = $(wrapper);
	this.navigator      = this.wrapper.find(this.params.navigator).eq(0);
	this.currentNavItem = null;
	this.display        = this.wrapper.find(this.params.display).eq(0);

	var self = this;

	// Navigator initialisieren.
	// -------------------------

	// Events für die Items anbinden.
	
	this.navigator.find('.scrollable a').each(function() {

		$(this).hover( // Mouseover, -out
			function(ev) {
				if(!($(this).data('active') == 1)) {
					$(this).fadeTo(300, 0.8);
				}
			},
			function(ev) {
				if(!($(this).data('active') == 1)) {
					$(this).fadeTo(300, 0.5);
				}
			}
		)
		.bind('deactivate', function(ev) { // Aktivieren des Eintrages
			$(this).data('active', 0).fadeTo(300, 0.5).removeClass('current');
		})
		.bind('activate', function(ev) { // Deaktivieren des Eintrages
			$(this).data('active', 1).fadeTo(300, 1).addClass('current'); 
			self.updateDisplay($(this));
			
		})
		.click(function(ev) { // Display laden
			ev.preventDefault();
			$(this).trigger('activate');
		})
		.css('opacity', 0.5);

		if($(this).hasClass('current') && self.currentNavItem == null) {
			$(this).trigger('activate');
		} else {
			$(this).removeClass('current');
		}
		
	}).end();


	
	// Navigator scrollbar machen.
	this.navigator.scrollable({
		'disabledClass': self.params.navArrowDisabledClass,
		'speed'        : self.params.navSpeed
	}).navigator(
		".navi"
	);
		
	// ...
	// ---
	

	return this;
};

/**
 * Display mit bestimmtem Content ('el'-abhängi) aktualisieren.
 *
 * @param el Object Aktuell gewähltes Element.
 *
 * @return /
 */
GALLERY.updateDisplay = function(el) {
	var self = this;

	// Vorheriges Navigationselement ausschalten.
	if($(this.currentNavItem) != null) {
		$(this.currentNavItem).trigger('deactivate');
	}

	// Aktuelles Navigationselement speichern.
	this.currentNavItem = $(el);

	// Display komplett leeren und mit Indicator-Class versehen.
	this.display.empty().addClass('indicator');
	
	// Request starten und bei Erfolg innere Galerie initialisieren.
	
	$.get(el.attr('href'), {}, function(data) {
		
		if(data != '') {
		
			//self.display.removeClass('indicator').wrapInner(data);
			self.display.removeClass('indicator').html(data);
			//setTimeout(function(){self.display.removeClass('indicator').wrapInner(data);},1400);
			self.updateInnerGallery();
			//self.updateInnerGallery();
			//setTimeout(function(){self.updateInnerGallery();},11400);
		}
	});
	
	/*$.get(el.attr('href'), {}, 
	
		$.createQueueCallback(self, function(data){
								self.display.removeClass('indicator').wrapInner(data);
								self.updateInnerGallery();
							})
	
	);*/
	
	
;
};

/**
 * Galerie im Display initialisieren.
 *
 * @return /
 */
GALLERY.updateInnerGallery = function() {


	
	var self      = this;
	var inner_gal = $('#cgInnerGallery .scrollable').eq(0).scrollable({
		disabledClass: self.params.navArrowDisabledClass,
		keyboard     : 'static',
		onSeek       : function() {
			var curr_item = this.getItems().eq(this.getIndex());
			
			self.updateSidebar($(curr_item));
		},
		speed        : self.params.navSpeed
	}).navigator('.navi');

	inner_gal.data('scrollable').begin(0);

	$('#cgInnerGallery').find('.navi span:first-child').addClass('is-first');

	this.initZoom(this.display.find("a[rel='#jqtGalleryZoomOverlay']"));

	
};

/**
 * Info im Rand inkl. Zoomaktion aktualisieren.
 *
 * @return /
 */
GALLERY.updateSidebar = function(el) {
	
	if($(this.params.info).length > 0) {

		$(this.params.info).empty().wrapInner(el.find('.info').html());
		$(this.params.info).find('div.options ul li:first-child').addClass('is-first').end();;

		this.initZoom($(this.params.info).find("a[rel='#jqtGalleryZoomOverlay']"));
		this.initError($(this.params.info).find("a[rel='#jqtErrorOverlay']"));

	}
	APP.Overlays();
	
}

GALLERY.initError = function(els) {

	els.overlay({
		close       : '.jqt-close',
		closeOnClick: false,
		top         : 'center',
		mask        : {
			color    : APP.params.ovlyMaskColor,
			loadSpeed: APP.params.ovlyMaskLoadSpeed,
			opacity  : APP.params.ovlyMaskOpacity
		},
		onBeforeLoad: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').addClass('indicator');
			this.getOverlay().find('.jqt-ovly_content').eq(0).css('opacity', 0).end();
		},
		onClose: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
			this.getOverlay().find('.jqt-ovly_content').eq(0).empty().end();
			if(APP.activeGalleryOverlay) {
				APP.activeGalleryOverlay.load();
			}
		},
		onLoad: function() {
			var self = this;
			var wrap = this.getOverlay().find('.jqt-ovly_content').eq(0).end();
			var href = this.getTrigger().attr('href')

			$(this.getOverlay()).animate({
				'left' : 0,
				'width': $('#exposeMask').css('width')
  			}, 300, function() {

				$.get(href, {}, function(data) {
					if(data != '') {

						self.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
						wrap.wrapInner(data).animate({
							'opacity' : 1
  						}, 400, function() {});

					}
				});

  			});
		}
	});
	
}



GALLERY.initZoom = function(els) {

	
	els.overlay({
		close       : '.jqt-close',
		closeOnClick: false,
		closeOnEsc  : false,
		top         : 'center',
		oneInstance : false,
		mask        : {
			color     : APP.params.ovlyMaskColor,
			closeSpeed: 0,
			loadSpeed : APP.params.ovlyMaskLoadSpeed,
			opacity   : APP.params.ovlyMaskOpacity
		},
		onBeforeLoad: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').addClass('indicator');
			this.getOverlay().find('.jqt-ovly_body').eq(0).css('opacity', 0).end();
		},
		onClose: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
			this.getOverlay().find('.jqt-ovly_body').eq(0).empty().end();

			if(APP.activeGalleryOverlay) {
				APP.activeGalleryOverlay.load();
			}
		},
		onLoad: function() {
			var self = this;
			var wrap = this.getOverlay().find('.jqt-ovly_body').eq(0).end();
			var href = this.getTrigger().attr('href')

			APP.activeGalleryOverlay.close();

			$(this.getOverlay()).animate({
				'left' : 0,
				'width': $('#exposeMask').css('width')
  			}, 300, function() {

				$.get(href, {}, function(data) {
					if(data != '') {

						$('#jqtGalleryOverlay').css('left', '-10000px');

						self.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator').end().css('z-index', '1000');
						wrap.wrapInner(data);
						wrap.animate({
							'opacity' : 1
  						}, 400, function() {
  							wrap.find('div.options ul li:first-child').addClass('is-first');
  						});

					}
				});

  			});
		}
	});
	APP.JGZoom();
	
};



/********************************************************************************************************************
 *
 * MAIN APPLICATION
 *
 ****************************************************************************************************************** /


/**
 * Global application namespace.
 */
var APP = {
	params: {
		ovlyMaskColor    : '#000',
		ovlyMaskOpacity  : 0,
		ovlyMaskLoadSpeed: 600
	}
};
APP.Pane = function(){
	if(jQuery().jScrollPane){
	
//	$('.scroll-pane').jScrollPane({showArrows:true});
	
//	$('#scroll-pane1').jScrollPane({showArrows:true});
	}
}
APP.NoScroll = function(){

	
	$("body").css('overflow','hidden'); 
}


APP.Scroll = function(){
  
	$("body").css('overflow','auto'); 
	
}

/**
 * Setup Navigation
 *
 * @return /
 */
APP.Navigation = function() {
	// Mark the first navigation item.
//	$('#navigation .inner').children('ul').find('li:first').addClass('is-first');
	$('#navigation .inner > ul').find('li:first').addClass('is-first');

	// Count submenus.
	var subs = $('#navigation').find('ul.navigation-sub').filter(function(idx) {
		return ($(this).css('display') != 'none');
	});

	// Submenu exists and navigation has no class 'sub-is-shown' > add the class.
	if(subs.length > 0 && !$('#navigation').hasClass('sub-is-shown')) {
		$('#navigation').addClass('sub-is-shown');
	}

	// Only one submenu allowed.
	if(subs.length > 1) {
		$('#navigation').find('ul.navigation-sub:gt(0)').remove();
	}
};

/**
 * Setup Menus
 *
 * @return /
 */
APP.Menus = function() {
	$('ul.menu').superfish({
		hoverClass	: 'hovered',
		delay		: 50,
		animation	: {
			height : 'show'
		},
		speed		: 180,
		autoArrows	: false,
		dropShadows : false
	}).find('ul').bgIframe({
		opacity: false
	});
};

/**
 *
 */
APP.MarkFirstElements = function() {
	// Menu - Mark the menu item that are the first child of their parent.
	
	
	$('ul.menu').find('li:first-child').addClass('is-first');

	// Chapter Item - Mark the first element.
	$('#pageContent div.chapter-item:eq(0)').addClass('chapter-item_first');

	// Chapter Content Item - Mark the first element in each row
	$('#pageContent').find('div.chapter-content_item').each(function(idx) {
		if(idx%5 == 0) {
			$(this).addClass('chapter-content_item_first');
		}
	});
};

/**
 *
 */
APP.SearchTabs = function() {
	if($('#searchTabs li a.current').length > 0) {

		$('#searchTabs li a.current').css('border-left-color', '#ccc9cc');
		$('#searchTabs li a.current').parent('li').next().find('a').css('border-left-color', '#ccc9cc');

	}
};





APP.JGZoom = function() {
	
		
		
		if(jQuery().jqueryzoom){
		$(".jqzoom").jqueryzoom({
				xzoom: 215, //zooming div default width(default width value is 200)
				yzoom: 215, //zooming div default width(default height value is 200)
 				preload:0,
				lens:1
			});
	
		}
		if(!$.browser.msie){
			setTimeout(function(){APP.middle();},400);
			//APP.middle();
		}
		else{
			//setTimeout(function(){APP.middle2();},400);
			APP.middle2();
		}
};

APP.middle = function() {
		
		
		
		if($('.jqzoomm').length > 0){
		
		//while(!$('.jqzoom').children('img').get(0).offsetHeight>0){
		//}
		
		var imageHeight = $('.jqzoom').children('img').get(0).offsetHeight;
		var imageWidth =  $('.jqzoom').children('img').get(0).offsetWidth;
		
	
		if(imageHeight>100){
			
			
			
					$('.jqzoomm').css('padding-top', ((418 - imageHeight)/2 )+'px');
					//$('.jqzoomm').css('padding-left', ((620 - imageWidth)/2 )+'px');
				
			} 
		}
		else{
			
			$('.jqzoomm').css('padding-top', '10px');
			$('.jqzoomm').css('padding-left', '10px');
		}
		
};

APP.middle2 = function() {
		
		
		
		if($('.jqzoomm').length > 0){
		
		//while(!$('.jqzoom').children('img').get(0).offsetHeight>0){
		//}
		
		var imageHeight = $('.jqzoom').children('img').get(0).offsetHeight;
		var imageWidth =  $('.jqzoom').children('img').get(0).offsetWidth;
		
	
		if(imageHeight>100){
			
			
			//alert(imageWidth);
					$('.jqzoomm').css('padding-top', ((418 - imageHeight)/2 )+'px');
					$('.jqzoom').css('display', 'inline');
				
			} 
		}
		else{
			
			$('.jqzoomm').css('padding-top', '10px');
			$('.jqzoomm').css('padding-left', '10px');
		}
		
};




 APP.pageselectCallback = function(page_index, jq){
		var new_content = jQuery('#hiddenresult div.result:eq('+page_index+')').clone();
                $('#Searchresult').empty().append(new_content);
				APP.Overlays();
                return false;
            }



  APP.getOptions = function(){
             	
				var opt = {callback: APP.pageselectCallback,
								
							items_per_page:1,
							num_display_entries:10,
							current_page:0,
							num_edge_entries:0,
							link_to:"#",
							prev_text:"&#x8B;",
							next_text:"&#x9B;",
							first_text:"&laquo;",
							last_text:"&raquo;",
							ellipse_text:"...",
							prev_show_always:true,
							next_show_always:true,
							last_show_always:true,
							first_show_always:true,
							renderer:"defaultRenderer"
				};
              	
				
                return opt;
            }




 APP.Pagination =    function init() {
                // count entries inside the hidden content
                var num_entries = jQuery('#hiddenresult div.result').length;
                
		// Create content inside pagination element
                $(".Pagination").pagination(num_entries,APP.getOptions());
				//$("#Pagination2").pagination(num_entries,APP.getOptions());
             }

/**
 *
 */
APP.Overlays = function() {
	// Info overlays
	
	
	
	
	$("a[rel='#jqtErrorOverlay']").overlay({
		close       : '.jqt-close',
		closeOnClick: false,
		top         : 'center',
		mask        : {
			color    : APP.params.ovlyMaskColor,
			loadSpeed: APP.params.ovlyMaskLoadSpeed,
			opacity  : APP.params.ovlyMaskOpacity
		},
		onBeforeLoad: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').addClass('indicator');
			this.getOverlay().find('.jqt-ovly_content').eq(0).css('opacity', 0).end();
		},
		onClose: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
			this.getOverlay().find('.jqt-ovly_content').eq(0).empty().end();
		},
		onLoad: function() {
			var self = this;
			var wrap = this.getOverlay().find('.jqt-ovly_content').eq(0).end();
			var href = this.getTrigger().attr('href')

			$(this.getOverlay()).animate({
				'left' : 0,
				'width': $('#exposeMask').css('width')
  			}, 300, function() {

				$.get(href, {}, function(data) {
					if(data != '') {

						self.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
						wrap.wrapInner(data).animate({
							'opacity' : 1
  						}, 400, function() {});

					}
				});

  			});
		}
	});
	
		
	
	$("a[rel='#jqtInfoOverlay']").overlay({
		close       : '.jqt-close',
		closeOnClick: false,
		top         : 'center',
		mask        : {
			color    : APP.params.ovlyMaskColor,
			loadSpeed: APP.params.ovlyMaskLoadSpeed,
			opacity  : APP.params.ovlyMaskOpacity
		},
		onBeforeLoad: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').addClass('indicator');
			this.getOverlay().find('.jqt-ovly_content').eq(0).css('opacity', 0).end();
		},
		onClose: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
			this.getOverlay().find('.jqt-ovly_content').eq(0).empty().end();
		},
		onLoad: function() {
			var self = this;
			var wrap = this.getOverlay().find('.jqt-ovly_content').eq(0).end();
			var href = this.getTrigger().attr('href')
			
			$(this.getOverlay()).animate({
				'left' : 0,
				'width': $('#exposeMask').css('width')
  			}, 300, function() {

				$.get(href, {}, function(data) {
					if(data != '') {

						self.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
						wrap.wrapInner(data).animate({
							'opacity' : 1
  						}, 400, function() {});

					}
				});

  			});
			
		}
	});

	
	
	
	
	// Gallery overlays
	
	$("a[rel='#jqtGalleryOverlay']").overlay({

		close       : '.jqt-close',
		closeOnClick: false,
		closeOnEsc  : false,
		top         : 'center',
		oneInstance : false,
		mask        : {
			color     : APP.params.ovlyMaskColor,
			closeSpeed: 0,
			loadSpeed : APP.params.ovlyMaskLoadSpeed,
			opacity   : APP.params.ovlyMaskOpacity
		},
		onBeforeLoad: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').addClass('indicator');
			this.getOverlay().find('.jqt-ovly_body').eq(0).css('opacity', 0).end();

			APP.activeGalleryOverlay = this;
		},
		onClose: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
			this.getOverlay().find('.jqt-ovly_body').eq(0).empty().end();
			APP.Scroll();
		},
		onLoad: function() {
			APP.NoScroll();
			var self = this;
			var wrap = this.getOverlay().find('.jqt-ovly_body').eq(0).end();
			var href = this.getTrigger().attr('href')

			$(this.getOverlay()).animate({
				'left' : 0
				//'width': $('#exposeMask').css('width')
  			}, 300, function() {

				$.get(href, {}, function(data) {
					if(data != '') {

						self.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
						wrap.wrapInner(data);
						APP.Gallery.Init('#chapterGallery', '#cgNavigator', '#Display');
						wrap.animate({
							'opacity' : 1
  						}, 400, function() {});

					}
				});

  			});
			
		}
	});
	
	// Zoom overlay

	$('a.zoom').overlay({
		
		close       : '.jqt-close',
		closeOnClick: false,
		closeOnEsc  : false,
		top         : 'center',
		target      : $('#jqtGalleryZoomOverlay'),
		mask        : {
			color    : APP.params.ovlyMaskColor,
			loadSpeed: APP.params.ovlyMaskLoadSpeed,
			opacity  : APP.params.ovlyMaskOpacity
		},
		onBeforeLoad: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').addClass('indicator');
			this.getOverlay().find('.jqt-ovly_body').eq(0).css('opacity', 0).end();
			;	
		
		},
		onClose: function() {
			this.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
			this.getOverlay().find('.jqt-ovly_body').eq(0).empty().end();
			APP.Scroll()
		},
		onLoad: function() {
			APP.NoScroll();
			var self = this;
			var wrap = this.getOverlay().find('.jqt-ovly_body').eq(0).end();
			var href = this.getTrigger().attr('href')

			$(this.getOverlay()).animate({
				'left' : 0
				//'width': $('#exposeMask').css('width')
  			}, 300, function() {

				$.get(href, {}, function(data) {
					if(data != '') {

						self.getOverlay().find('.jqt-ovly_wrapper').removeClass('indicator');
						wrap.wrapInner(data);
						wrap.animate({
							'opacity' : 1
  						}, 400, function() {
  							wrap.find('div.options ul li:first-child').addClass('is-first');
  						});

					}
				});

  			});
			
				
		}
	});
	APP.Pane();
	
};

/**
 * Main-Initialisierung.
 */

 $(document).ready(function() {
    $('a').live('click', function() { // Fix Rahmen um Links.
		this.blur();
	});
	APP.Pagination();
	APP.Navigation(); // Init Navigation.
	APP.MarkFirstElements();
	APP.Menus();      // Init Menus
	APP.SearchTabs(); // Highlight Suchergebnistabs.
	APP.Overlays(); // Init Overlays (Info, Gallery, ...).
	APP.Gallery = GALLERY;
		

$('a.initclick').click();
});
 

 function pwdFocus() {

            $('#fakepass').hide();
            $('#pass').show();
            $('#pass').focus();
}


// Helper fuer die Queue
	$.createQueueCallback = function(jElm, fn, type){
							type = type ||
								'fx';
							return function(){
								var that = this,
									args = arguments;
						 
								jElm = $(jElm);
								jElm.queue(type, function(){
									fn.apply(that, args);
									jElm.dequeue(type);
								});
							};
						};
          
