﻿$(document).ready(function(){
	
	Cufon.replace(
		"#top_menu ul li a, #facebook .box_header h3, #home_bottom_left_header h4, #gallery h4, #my_life span, #calendar_header h5", 
		{ 
			fontFamily: "Gotham Bold", 
			hover: true 
		}
	)
	Cufon.now();
	
	
	if($("#main_page_content.homepage").length > 0){
		$("#featured_contents .featured_content").fadingThrough({
			"navigation": $("#featured_contents_navigation li"),
			"time": 3000

		});
		
		$("#home_video_elements .gallery_item").fadingThrough({
			"time": 3000,
			"left_arrow": $("#gallery .videos_header .arrow_left"),
			"right_arrow": $("#gallery .videos_header .arrow_right")
		});
		
		$("#home_gallery_elements .gallery_item").fadingThrough({
			"time": 3000,
			"left_arrow": $("#gallery .galleries_header .arrow_left"),
			"right_arrow": $("#gallery .galleries_header .arrow_right")
		});
		
		$("#events_lists").fadingThroughMap({
			"left_arrow": $("#calendar_header .arrow_left"),
			"right_arrow": $("#calendar_header .arrow_right")
		});
	}
	
	if($("#content_subpage.album #gallery_content").length > 0){
		
		$("#gallery_content").gallery({
			"main_image": $("#gallery_content .wrapper img"),
			"thumbnails": $("#gallery_content #thumbnails a"),
			"prev": $("#gallery_sub_navigation .previous"),
			"next": $("#gallery_sub_navigation .next")
		});
		
	}
	
	$("a[class*=lightbox]").not("#thumbnails a").lightBox({
		imageLoading: '/wordpress/wp-content/themes/tomasz_lenz/images/loading.gif',
		imageBtnClose: '/wordpress/wp-content/themes/tomasz_lenz/images/close.gif',
		imageBtnPrev: '/wordpress/wp-content/themes/tomasz_lenz/images/prev.gif',
		imageBtnNext: '/wordpress/wp-content/themes/tomasz_lenz/images/next.gif'							 
	});
	
});


(function($){
	$.fn.gallery = function(options){
		
		var settings = {
			
		}
		
		$.extend(settings, options);
		
		var o_index = 0;
		
		var main = $(this).eq(0);
		
		var visible_index = 0;
		
		add_events();
		set_image(0);
		
		function add_events(){
			settings.thumbnails.click(function(event){
				event.preventDefault();
				set_image(settings.thumbnails.index(this));
			});
			
			settings.prev.click(function(event){
				event.preventDefault();
				prev();
			});
			
			settings.next.click(function(event){
				event.preventDefault();
				next();
			});
		}
		
		function set_image(index){
			settings.thumbnails.removeClass("selected");
			settings.thumbnails.eq(index).addClass("selected");
			settings.main_image.attr("src", settings.thumbnails.eq(index).attr("href")).load();
			settings.main_image.parent().attr("href", settings.thumbnails.eq(index).attr("href")).load();

			o_index = index;
		}
		
		function prev(){
			if(o_index == 0){
				o_index = settings.thumbnails.length-1;
			}
			else {
				o_index -= 1;
			}
			
			set_image(o_index);
		}
		
		function next(){
			if(o_index == settings.thumbnails.length-1){
				o_index = 0;
			}
			else {
				o_index += 1;
			}
			
			set_image(o_index);
		}
		
	};
})(jQuery);

(function($){
	$.fn.fadingThrough = function(options){
		
		var settings = {
			"play_control": null,
			"dir": null,
			"left_arrow": null, 
			"right_arrow": null,
			"navigation": null,
			"navigation_center": false
		}
		
		$.extend(settings, options);
		
		var current_index = 0;
		var length = this.length;
		var elements = $(this);
		
		elements.css("display", "none");
		elements.first().css("display", "block");
		
		if(settings["navigation"]){
			settings["navigation"].eq(0).addClass("active");
		}
			
		add_events();
		
		if(settings["navigation_center"]){
			count_news_navigation_width();
		}
		
		if(settings["time"]){
			var interval = setInterval(move_next, settings["time"]);
			is_playing = true;
		}
		
		function add_events(){
			if(settings["left_arrow"]){	
				settings["left_arrow"].click(function(event){
					event.preventDefault();
					
					if(settings["time"]){
						refresh_interval();
					}
					
					move_prev();
				});
			}
			
			if(settings["right_arrow"]){	
				settings["right_arrow"].click(function(event){
					event.preventDefault();
					
					if(settings["time"]){
						refresh_interval();
					}
					
					move_next();
				});
			}
			
			if(settings["navigation"]){
				settings["navigation"].each(function(index, el){
					$(el).click(function(event){
						event.preventDefault();
						
						if(settings["time"]){
							refresh_interval();
						}
						
						move_to(index);
					});
				});
			}
			
			if(settings["play_control"]){
				settings["play_control"].click(function(event){
					event.preventDefault();
					refresh_interval()
					toggle_play();
				});
			}
		}
		
		function refresh_interval(){
			if(is_playing == true){
				clearInterval(interval);
				interval = setInterval(move_next, settings["time"]);
			}
		}
		
		function move_next(){
			var cur_el = current_index;
			if(current_index == length-1){
				current_index = 0;
			}
			else {
				current_index += 1;
			}
			
			animation(cur_el, current_index);
		}
		
		function move_prev(){
			var cur_el = current_index;
			if(current_index == 0){
				current_index = length-1;
			}
			else {
				current_index -= 1;
			}
			
			animation(cur_el, current_index);
		}
		
		function move_to(to){
			animation(current_index, to);
			current_index = to;
		}
		
		function toggle_play(){
			if(is_playing){
				is_playing = false;
				clearInterval(interval);
				settings["play_control"].addClass("play");
			}
			else {
				is_playing = true;
				interval = setInterval(move_next, settings["time"]);
				settings["play_control"].removeClass("play");
			}
		}
		
		function animation(prev, next){
			if(settings["navigation"]){
				settings["navigation"].removeClass("active");
				settings["navigation"].eq(next).addClass("active");
			}
			
			$($(elements).get(prev)).fadeOut(500);
			$($(elements).get(next)).fadeIn(500);
		}
		
		function count_news_navigation_width(){
			var els = $("#news_navigation a");
			var width = 0;
			
			els.each(function(index, el){
				width += el.offsetWidth;
				width += parseInt($(el).css("margin-left"));
				width += parseInt($(el).css("margin-right"));
			});
			
			$("#news_navigation").css("width", width);
		}
		
	};
})(jQuery);

(function($){
	$.fn.fadingThroughMap = function(options){
	
		var settings = {
			"play_control": null,
			"dir": null,
			"left_arrow": null,
			"right_arrow": null,
			"navigation": null,
			"navigation_center": false
		}
		
		$.extend(settings, options);
		
		var current_index = 0;
		
		create_structure($(this));
		
		var elements = $(".events_list");
		var length = $(".events_list").length;
		
		elements.css("display", "none");
		elements.first().css("display", "block");
		
		if(settings["navigation"]){
			settings["navigation"].eq(0).addClass("active");
		}
			
		add_events();
		
		if(settings["navigation_center"]){
			count_news_navigation_width();
		}
		
		var coords = new Array();
		get_coords();		
	
	
		function continue_init(){
			if(settings["time"]){
				var interval = setInterval(move_next, settings["time"]);
				is_playing = true;
			}
			
			draw_map(0);
			$("#content #home_bottom_right #calendar #events_lists").css("height", $($(elements).get(0)).outerHeight());
		}
		
		function create_structure(main){
			var events = main.find(".event");
			var events_length = events.length;
			
			var events_group = new Array();
			var events_lists = new Array();
			
			events.each(function(index, el){
				events_group.push(el);
				
				if(index % 3 == 2 || index == events_length - 1){
					var event_list = $('<div/>', { class: 'events_list' })
					
					$(events_group).each(function(index, el){
						$(el).appendTo(event_list);
					});
					
					events_group = new Array();
					events_lists.push(event_list);
				}
				
			});
			
			main.html("");
			
			$(events_lists).each(function(index, el){
				$(el).appendTo(main);
			});
		}
		
		function add_events(){
			if(settings["left_arrow"]){	
				settings["left_arrow"].click(function(event){
					event.preventDefault();
					
					if(settings["time"]){
						refresh_interval();
					}
					
					move_prev();
				});
			}
			
			if(settings["right_arrow"]){	
				settings["right_arrow"].click(function(event){
					event.preventDefault();
					
					if(settings["time"]){
						refresh_interval();
					}
					
					move_next();
				});
			}
			
			if(settings["navigation"]){
				settings["navigation"].each(function(index, el){
					$(el).click(function(event){
						event.preventDefault();
						
						if(settings["time"]){
							refresh_interval();
						}
						
						move_to(index);
					});
				});
			}
			
			if(settings["play_control"]){
				settings["play_control"].click(function(event){
					event.preventDefault();
					refresh_interval()
					toggle_play();
				});
			}
		}
		
		function get_coords(){
			var geocoder = new GClientGeocoder();
			$(".event").each(function(index, el){
				var address = $(el).find(".event_location").html();
				geocoder.getLatLng(
					address,
					function(point){
						if(point){
							coords.push(new Array(point.y, point.x, address));
						
							if(coords.length == $(".event").length){
								continue_init();
							}
						}
						else {
							coords.push(new Array(0, 0, 0));
						
							if(coords.length == $(".event").length){
								continue_init();
							}
						}
						
					}
				);
			});
		}
		
		function refresh_interval(){
			if(is_playing == true){
				clearInterval(interval);
				interval = setInterval(move_next, settings["time"]);
			}
		}
		
		function move_next(){
			var cur_el = current_index;
			if(current_index == length-1){
				current_index = 0;
			}
			else {
				current_index += 1;
			}
			
			animation(cur_el, current_index);
		}
		
		function move_prev(){
			var cur_el = current_index;
			if(current_index == 0){
				current_index = length-1;
			}
			else {
				current_index -= 1;
			}
			
			animation(cur_el, current_index);
		}
		
		function move_to(to){
			animation(current_index, to);
			current_index = to;
		}
		
		function toggle_play(){
			if(is_playing){
				is_playing = false;
				clearInterval(interval);
				settings["play_control"].addClass("play");
			}
			else {
				is_playing = true;
				interval = setInterval(move_next, settings["time"]);
				settings["play_control"].removeClass("play");
			}
		}
		
		function animation(prev, next){
			if(settings["navigation"]){
				settings["navigation"].removeClass("active");
				settings["navigation"].eq(next).addClass("active");
			}
			
			$($(elements).get(prev)).fadeOut(500);
			$($(elements).get(next)).fadeIn(500);
			
			$("#content #home_bottom_right #calendar #events_lists").css("height", $($(elements).get(next)).outerHeight());
			
			draw_map(next);
		}
		
		function count_news_navigation_width(){
			var els = $("#news_navigation a");
			var width = 0;
			
			els.each(function(index, el){
				width += el.offsetWidth;
				width += parseInt($(el).css("margin-left"));
				width += parseInt($(el).css("margin-right"));
			});
			
			$("#news_navigation").css("width", width);
		}
		
		function draw_map(index){
			var map = new GMap2(document.getElementById("tl_map"));
			
			var pl_coords = new GLatLng(52.160455, 19.511719);
			
			map.setCenter(pl_coords, 4);
			map.setUIToDefault();
			if(coords[(index*3)][0] != 0){
				var c1 = new GLatLng(coords[(index*3)][0], coords[(index*3)][1]);
				var m1 = new GMarker(c1);
				GEvent.addListener(
					m1, "click", function() {
					m1.openInfoWindowHtml(coords[(index*3)][2]);
				});
				map.addOverlay(m1);
			}
			
			
			if(coords[(index*3)+1]){
				if(coords[(index*3)+1][0] != 0){
					var c2 = new GLatLng(coords[(index*3)+1][0], coords[(index*3)+1][1]);
					var m2 = new GMarker(c2);
					GEvent.addListener(
						m2, "click", function() {
						m2.openInfoWindowHtml(coords[(index*3+1)][2]);
					});
					map.addOverlay(m2);
				}
				
				
				if(coords[index+2]){
					if(coords[(index*3)+2][0] != 0){
						var c3 = new GLatLng(coords[(index*3)+2][0], coords[(index*3)+2][1]);
						var m3 = new GMarker(c3);
						GEvent.addListener(
							m3, "click", function() {
							m3.openInfoWindowHtml(coords[(index*3)+2][2]);
						});
						map.addOverlay(m3);
					}
				}
			}			
		}
		
	};
})(jQuery);

Array.prototype.max = function() {
	var max = this[0];
	var len = this.length;
	for (var i = 1; i < len; i++) if (this[i] > max) max = this[i];
	return max;
}


