// JavaScript Document
var preloader = new Image();
preloader.src = 'images/loading.gif';

var flickr_set_description = '';
var photosets = new Array();

function fadeSenator(){
	$('#senator').css('opacity', 0.10);
}

function unfadeSenator(){
	$('#right_col').empty();
	$('#senator').css('opacity', 1);
}

function getContact(){
	
	photoElementsRemove();
	if($('#senator').css('opacity') > 0.10) fadeSenator();
	$('#right_col').empty();
	$('#right_col').load('tpl/kontakt.tpl');
	$('#left_col').empty();
	$('#left_col').load('tpl/map.tpl');
	
}

function photoElementsRemove(){
	
	$('.icons').remove();
	$('#photoframe').remove();
	
}

function getImprint(){
	
	photoElementsRemove();
	unfadeSenator();
	$('#left_col').load('tpl/impressum.tpl?x=' + Math.random());
	
}

function totalBlogEntries(){
	
	$.get('php/JShub.php?q=te', function(data){
										 return data;
										 });
	
}

function getBlog(blogindex){
	
	photoElementsRemove();
	if($('#senator').css('opacity') > 0.10) fadeSenator();
	$('#left_col').empty();
	var control = 0;
	$.getJSON('php/JShub.php?q=bl&i=' + blogindex, function(data){
											 
											 $.each(data, function(index){
																   
																   var timestamp = data[index].Datum;
																   var timestamp_teile = timestamp.split(' ');
																   var datum_teile = timestamp_teile[0].split('-');
																   var datum_page = datum_teile[2] + '.' + datum_teile[1] + '.' + datum_teile[0];
																   
																   var be = $('<a>' + datum_page + '&nbsp;&ndash;&nbsp;' + data[index].Titel + '</a>')
																   .attr('href', 'javascript:getBlogEntry(' + data[index].id + ')')
																   .attr('id', 'be_' + data[index].id)
																   .addClass('blog_link');
																   if(control == 0){
																	   be.addClass('blog_link_shown');
																	   control++;
																   }
																   be.appendTo('#left_col');																   

																		 });
														$.get('php/JShub.php?q=te', function(tbe){
																							 
															 if(tbe > 10){
																 var tbec = Math.ceil(tbe/10);
																 var navistrip = '';
																 for(var j = 0; j<tbec; j++){
																	 var low = 1 + (j*10);
																	 if(low + 9 > tbe){
																		 if(low != tbe){
																		 	var high = tbe;
																		 	naviatom = low + ' - ' + high;
																		 }else{
																			naviatom = low;
																		 }
																	 }else{
																		 var high = low + 9;
																		 naviatom = low + ' - ' + high;
																	 }
																	 var getter = low-1;
																	 if(blogindex != getter){
																	 	navistrip += '<a href="javascript:getBlog('+ getter +')">' + naviatom + '</a>';
																	 }else{
																		 navistrip += '<span class="naviactive">' + naviatom + '</span>';
																	 }
																	 if(j < tbec-1) navistrip += ' | ';
																 }
																 var blognavi = $('<div>' + navistrip + '</div>')
																 .attr('id', 'blognavi')
																 .appendTo('#left_col');
															 }
																											 
										
										 				});
											 
											 });
	$('#right_col').empty();
	
	$.getJSON('php/JShub.php?q=le', function(data){
										 
										 $('#right_col').html('<h1>'+data.Titel+'</h1>'
															  +'<p class="intro">'+data.Intro+'</p>'
															  +'<p>'+data.Inhalt+'</p>');
										 
										 });
	
}

function getBlogEntry(id){
	
	$('.blog_link').removeClass('blog_link_shown');
	$.getJSON('php/JShub.php?q=ge&id=' + id, function(data){
													  $('#be_' + id)
													  .addClass('blog_link_shown');
													  $('#right_col').html('<h1>'+data[0].Titel+'</h1>'
															  +'<p class="intro">'+data[0].Intro+'</p>'
															  +'<p>'+data[0].Inhalt+'</p>');
													  
													  });
	
}

function getMedia(){
	
	photoElementsRemove();
	if($('#senator').css('opacity') > 0.10) fadeSenator();
	$('#right_col').empty();
	$('#right_col').load('tpl/media.tpl?x=' + Math.random(), function(){																	
																	  $.getJSON('php/JShub.php?q=gl', function(data){
																											   
																											   $.each(data, function(index){
																																	 var linkitem = $('<a>' + data[index].Name + '</a>').attr('href', data[index].URL).addClass('media_link').appendTo('#links');

																																	 });
																											   });
																	  var linklist = items.join('');
																	  $('#links').append(linklist);
																	  });	
	$('#left_col').empty();
	$('#left_col').load('tpl/video.tpl');
	
}

function getNews(){
	
	var top = 0;
	var left = 0;
	var width = 286;
	var box = $('<div></div>').addClass('news_box').css({top: top, left: left+12, width: width, zIndex: 10}).hide();
	box.load('tpl/news.tpl', function(){
									  box.appendTo('#left_col');
									  var background = $('<div></div>').addClass('background_box news_box').css({top: top, left: left, width: width+24, height: box.height()+12, zIndex: 5});
									  background.appendTo('#left_col');
									  box.show();

									  });		
	
}

function getVideo(nr){
	
	photoElementsRemove();
	$('#right_col').empty();
	$('#left_col').empty();
	$('#left_col').load('tpl/video_'+nr+'.tpl');
	
}

function selector(set, set_page){
	
	var batch = 12;
	var lastbatch = set.photos % batch;
	var fullbatches = Math.floor(set.photos / batch);
	var output = $('<div></div>').addClass('selection');
	var lowend;
	var highend;
	
	for(var i = 0; i < fullbatches; i++){
		
		var link_page = i + 1;
		var lowend = 1 + i*batch;
		var highend = lowend + batch - 1;
		if(set_page == i+1){
			output.append('<b>' + lowend + ' - ' + highend + '</b>');
		}else{			
			selection = $('<a>' + lowend + ' - ' + highend + '</a>')
			.attr('href', '#')
			.bind('click', {lp: link_page}, function(event){
													 getPhotos(set, event.data.lp);
													 });
			selection.appendTo(output);
		}
		if(i < fullbatches) output.append(' | ');
		
	}

	if(lastbatch > 0){
		
		if(lastbatch == 1){
			if(set_page == fullbatches + 1){
				output.append('<b>' + set.photos + '</b>');
			}else{
				selection = $('<a>' + set.photos + '</a>')
				.attr('href', '#')
				.bind('click', function(){
										getPhotos(set, fullbatches+1);
										});
				selection.appendTo(output);
			}
		}else{
			lowend = 1 + (fullbatches+1)*batch;
			if(set_page == fullbatches+1){
				output.append('<b>' + lowend + ' - ' + highend + '</b>');
			}else{
				selection = $('<a>' + lowend + ' - ' + highend + '</a>')
				.attr('href', '#')
				.bind('click', function(){
										getPhotos(set, fullbatches+1);
										});
				selection.appendTo(output);

			}
		}

	}
	
	return output;
	
}

function loadPhotos(set, set_page){
	
	var key = 'bf33f7d5240f8e05997d1ea5544fbe04';
	var NSID = '57399003@N07';
	var url  =  'http://api.flickr.com/services/rest/';
	var req_1 = url + '?format=json&method=flickr.photosets.getPhotos&api_key=' + key +'&photoset_id=' + set.id + 'page=1&jsoncallback=?';
	
	//globale Entsprechung des sets finden
	var global_index = null;
	for(var i = 0; i < photosets.length; i++){
		
		if(photosets[i].id == set.id){
			photosets[i].single_photos = Array();
			global_index = i;
			break;
		}
		
	}

	$.getJSON(req_1, 
			  function(data){
				  				  
				  $.each(data.photoset.photo, 
						 function(index){
							var p = data.photoset.photo[index];
							photosets[global_index].single_photos.push(p);
							
						 }
						 );
				  getPhotos(photosets[global_index], set_page);
				  
				  });
	
	
}

function getPhotos(set, set_page){

	if(set_page == null) set_page = 1;
	var batch = 12;
	$('#left_col').empty();
	$('#photoframe').remove();
	$('#right_col').html(flickr_set_description + '<p><a href="http://www.flickr.com/photos/senatorwatrin/sets/' + set.id + '/">Dieses Album bei Flickr</a></p>');

	if(set.single_photos == null || set.single_photos.length == 0){
		loadPhotos(set, set_page);
	}else{
		
		var upper_limit;
		if(batch * set_page > set.single_photos.length){
			upper_limit = set.single_photos.length;
		}else{
			upper_limit = batch * set_page;
		}
		for(var i = batch * set_page - batch; i < upper_limit; i++){
			
			var p = set.single_photos[i];
			var src_s = 'http://farm' + p.farm + '.static.flickr.com/' + p.server + '/' + p.id + '_' + p.secret + '_t.jpg';
			var src_b = 'http://farm' + p.farm + '.static.flickr.com/' + p.server + '/' + p.id + '_' + p.secret + '.jpg';
			var photo = $('<img />').attr('src', preloader.src).addClass('photo_thumbnail');
			photo.bind('click', {index: i, src: src_b, set: set, page: set_page}, function(event){showPhoto(event.data.index, event.data.src, event.data.set, event.data.page)});
			photo.appendTo('#left_col');
			photo.attr('src', src_s);
		
		}
		if(set.photos > batch){
			var bar = selector(set, set_page);
			bar.appendTo('#left_col');
		}
		
	}


}

function loadPhotoSets(viewindex){

	var key = 'bf33f7d5240f8e05997d1ea5544fbe04';
	var NSID = '57399003@N07';
	var url  =  'http://api.flickr.com/services/rest/';
	var request = url + '?format=json&method=flickr.photosets.getList&api_key=' + key +'&user_id=' + NSID + '&jsoncallback=?';
	$.getJSON(request, 
			  function(data){
				  $.each(data.photosets.photoset, function(i){
														   photosets[photosets.length] = data.photosets.photoset[i];
														   });
				  getPhotoSets(viewindex);
			  });
	
}

function getPhotoSets(viewindex){
	
	if(viewindex == null) viewindex = 0;
	if($('#senator').css('opacity') > 0.10) fadeSenator();
	$('#right_col').empty();
	$('#left_col').empty();
	$('#photoframe').remove();
	if(photosets.length == 0){
		loadPhotoSets(viewindex);
	}else{
		
		for(var i = 0; i < photosets.length; i++){
			
			first_photo = $('<img />').attr('src', preloader.src).addClass('photo_thumbnail');
			first_photo.appendTo('#left_col');
			var ps = photosets[i + viewindex];
			var url = 'http://farm' + ps.farm + '.static.flickr.com/' + ps.server + '/' + ps.primary + '_' + ps.secret + '_t.jpg';														   
			first_photo.bind('mouseenter', {p: ps}, function(event){
												   flickr_set_description = '<h1>'+event.data.p.title._content+'</h1><p>Bilder: '+event.data.p.photos+'</p><p>'+event.data.p.description._content+'</p>';
												   $('#right_col').html(flickr_set_description);
												   
												   });
			first_photo.bind('mouseleave', function(){
												   $('#right_col').empty();
												   });
			first_photo.bind('click', {p: ps}, function(event){
											  getPhotos(event.data.p, 1);
											  });
			first_photo.attr('src', url);
			
		}
		
	}
	
}

function showPhoto(index, src, set, set_page){
	
	$('#left_col').empty();
	$('#right_col').empty();
	if($('#stage').has('#photoframe').length > 0){
		$('#photoframe').empty();
	}else{
		var frame = $('<div></div>')
					.attr('id', 'photoframe')
					.appendTo('#stage');
		
	}
	
	var pl = $('<img />')
				.attr('src', preloader.src)
				.css('marginTop', 152)
				.appendTo('#photoframe');
	var frame_position = $('#photoframe').position();		
	if(index > 0){
		var icon_arrow_left = $('<img />')
								.attr('src', 'images/arrow_left.gif')
								.addClass('icons icon_left')
								.css({top: frame_position.top+30, left: frame_position.left-11})
								.bind('click', function(){
														var p = set.single_photos[index-1];
														var nsrc = 'http://farm' + p.farm + '.static.flickr.com/' + p.server + '/' + p.id + '_' + p.secret + '.jpg';
														
														$('#photoframe').remove();
														showPhoto(index-1, nsrc, set, set_page);})
								.appendTo('#stage');
	}else{
		$('.icon_left').remove();
	}
	if(index < set.photos-1){
		var icon_arrow_right = $('<img />')
								.attr('src', 'images/arrow_right.gif')
								.addClass('icons icon_right')
								.css({top: frame_position.top+30, left: frame_position.left+$('#photoframe').width()+2})
								.bind('click', function(){
														var p = set.single_photos[index+1];
														var psrc = 'http://farm' + p.farm + '.static.flickr.com/' + p.server + '/' + p.id + '_' + p.secret + '.jpg';
														$('#photoframe').remove();
														showPhoto(index+1, psrc, set, set_page);
														})
								.appendTo('#stage');							
	}else{
		$('.icon_right').remove();
	}
	if(icon_cross == null){
		var icon_cross = $('<img />')
								.attr('src', 'images/cross.gif')
								.addClass('icons icon_right')
								.css({top: frame_position.top+10, left: frame_position.left+$('#photoframe').width()+2})
								.bind('click', function(){
														$('.icons').remove();
														$('#photoframe').remove();
														getPhotos(set, set_page);
														})							
								.appendTo('#stage');
	}
								
	var photo = $('<img />').attr('src', src).addClass('photo_large');
	photo.load(function(){
						$('#photoframe').empty();
						photo.appendTo('#photoframe');
						//vertikales Zentrieren über js
						if(photo.height() < $('#photoframe').height()){
							var top = Math.round(($('#photoframe').height() - photo.height()) / 2);
							photo.css('marginTop', top);
						}
						});
	
}
