	jQuery.fn.fadeToggle = function(speed, easing, callback) { return this.animate({opacity: 'toggle'}, speed, easing, callback); };
	
	var sideBarUpdateRequests=0;

	$(document).ready (function () {		
		$.getJSONs ([{url:'_pictureBar/pictureBar.json', data:''}, {url:'/_lib/img/pictureBarFills/pictureBar.json', data:''}], function (data) {	
		
			function shakeArray (array) {			
				var retValue=[];				
				var element;
				while (array.length) {
					element=Math.round (Math.random ()*(array.length-1));
					retValue.push (array[element]);
					array.splice (element, 1);
				}
				return (retValue);				
			}
			
			
			if (data[0]['request']['url']=='_pictureBar/pictureBar.json') {
				for (var i=0; i<data[1]['response']['images'].length; i++) data[1]['response']['images'][i]['name']=(environment=='development'?('http://localhost/_pictureBar/'+data[1]['response']['images'][i]['name']):'/_lib/img/pictureBarFills/'+data[1]['response']['images'][i]['name']);
				if (data[0]['response']!=null) {
					for (var i=0; i<data[0]['response']['images'].length; i++) data[0]['response']['images'][i]['name']='_pictureBar/'+data[0]['response']['images'][i]['name'];
					jQuery.ideagento.data.pictureBar.images=shakeArray (data[0]['response']['images']).concat (shakeArray (data[1]['response']['images']));
				} else {
					jQuery.ideagento.data.pictureBar.images=shakeArray (data[1]['response']['images']);
				}				
			} else {
				for (var i=0; i<data[0]['response']['images'].length; i++) data[0]['response']['images'][i]['name']=(environment=='development'?('http://localhost/_pictureBar/'+data[0]['response']['images'][i]['name']):'/_lib/img/pictureBarFills/'+data[0]['response']['images'][i]['name']);
				if (data[1]['response']!=null) {
					for (var i=0; i<data[1]['response']['images'].length; i++) data[1]['response']['images'][i]['name']='_pictureBar/'+data[1]['response']['images'][i]['name'];
					jQuery.ideagento.data.pictureBar.images=shakeArray (data[1]['response']['images']).concat (shakeArray (data[0]['response']['images']));
				} else {
					jQuery.ideagento.data.pictureBar.images=shakeArray (data[0]['response']['images']);
				}
			}
			
			
			$('#sidebar').bind ('refresh', function () {

				$('#content a[href^=http]').each (function () {
					if (!$(this).hasClass ('internalLink')) {
						$(this).attr ('target', '_blank');
					}
				});
			
				if (typeof (getCSS ('#fillImages', 'display'))!='undefined' && getCSS ('#fillImages', 'display')=='none') {
				} else {
				if (sideBarUpdateRequests==0) {
					$('#footer').css ('visibility', 'hidden');
					$('#navigateTop').remove ();
					jQuery.ideagento.browser.dim.mainHeight=jQuery.ideagento.browser.dim.windowHeight-$('#header').outerHeight (true)-$('#menuMain').outerHeight (true)-$('#footer').outerHeight (true);
					$('#main').css ('height', '');
					var maxHeight=Math.max ($('#main').outerHeight (true), ($('#sidebar').outerHeight (true)-$('#fillImages').outerHeight (true)));
					if (jQuery.ideagento.browser.dim.mainHeight>maxHeight) {
						$('#main').css ('height', jQuery.ideagento.browser.dim.mainHeight-(maxHeight-$('#main').height ()));
					} else if ((jQuery.ideagento.browser.dim.mainHeight+$('#header').outerHeight (true))<maxHeight) {
						$('#main').append ('<A href="#top" id="navigateTop">nach oben</A>');
						maxHeight=Math.max ($('#main').outerHeight (true), ($('#sidebar').outerHeight (true)-$('#fillImages').outerHeight (true)));
						$('#main').css ('height', maxHeight+'px');
					} else {
						$('#main').css ('height', maxHeight+'px');
					}
				$('#footer').css ('visibility', 'visible');
				
				if (document.getElementById ('fillImages')==null) {
					$('#sidebar').append ('<DIV id="fillImages"><DIV class="header"></DIV><DIV class="content"><DIV class="contentBorder"></DIV></DIV><DIV class="footer"></DIV></DIV>')					
				}

				var stageHeight=$('#main').height ();
				var sideBarHeight=$('#sidebar').height ();
				var sideBarWidthFactor=$('#sidebar').width ()/300;
				
				var fillImagesHeight=0
				for (var i=0; i<$('.pictureBarImage').length; i++) {
					$('#imageLayer'+i).css ('height', sideBarWidthFactor*parseInt (jQuery.ideagento.data.pictureBar.images[i]['height'])+'px');
					$('#imageLayer'+i).css ('top', fillImagesHeight+'px');
					fillImagesHeight+=sideBarWidthFactor*parseInt (jQuery.ideagento.data.pictureBar.images[i]['height']);
				}
				
				
				if (stageHeight>=sideBarHeight) {
					for (var i=$('.pictureBarImage').length; i<jQuery.ideagento.data.pictureBar.images.length; i++) {
						if ((sideBarHeight+sideBarWidthFactor*parseInt (jQuery.ideagento.data.pictureBar.images[i]['height']))>stageHeight) break;
						
						if (typeof (jQuery.ideagento.data.pictureBar.images[i]['link'])!='undefined' || typeof (jQuery.ideagento.data.pictureBar.images[i]['tooltip'])!='undefined') {
							var $imageLayer=$('<DIV id="imageLayer'+i+'" class="imageLayer" style="top: '+fillImagesHeight+'px; height: '+sideBarWidthFactor*parseInt (jQuery.ideagento.data.pictureBar.images[i]['height'])+'px">');
							if (typeof (jQuery.ideagento.data.pictureBar.images[i]['link'])!='undefined') {
								$imageLayer.click ({link: jQuery.ideagento.data.pictureBar.images[i]['link']}, function (event) { location.href=event.data.link; });
							} 
							$imageLayer.appendTo ('#fillImages .content')
						}
						if (typeof (jQuery.ideagento.data.pictureBar.images[i]['tooltip'])!='undefined') {
								$imageLayer.qtip ({
									content: jQuery.ideagento.data.pictureBar.images[i]['tooltip']['content'],
									position: {
										my: 'left bottom',
										target: 'mouse',
										adjust: {
											x: 10
										}
									}
								});
						}
						
						var $image=$('<IMG class="pictureBarImage" src="'+jQuery.ideagento.data.pictureBar.images[i]['name']+'" style="display: none;">');
						$image.appendTo ('#fillImages .content');
						$image.fadeToggle ('slow');
						sideBarHeight+=sideBarWidthFactor*parseInt (jQuery.ideagento.data.pictureBar.images[i]['height']);
						fillImagesHeight+=sideBarWidthFactor*parseInt (jQuery.ideagento.data.pictureBar.images[i]['height']);
					}
				} else {
					for (var i=$('.pictureBarImage').length; i>0; i--) {
						$('#imageLayer'+(i-1)).remove ();
						$('#sidebar .pictureBarImage:eq('+(i-1)+')').fadeToggle ('slow', function () {
							$(this).remove ();
							if ($('.pictureBarImage').length==0) {
								$('#fillImages').remove ();
							} 
						});
						sideBarHeight-=sideBarWidthFactor*parseInt (jQuery.ideagento.data.pictureBar.images[i-1]['height']);
						if (sideBarHeight<stageHeight) break;
					}
				}
				if ($('.pictureBarImage').length==0) {
					$('#fillImages').remove ();
				} 
				
			}}});
			
			$('#sidebar').trigger ('refresh');		
		});		
	});
		
		
		
	$(window).load (function () { $('#sidebar').trigger ('refresh'); });
	// $(window).resize (function () { $('#sidebar').trigger ('refresh'); });
