/*
 * Po załadowaniu i wyświetleniu wszystkich elementów
 */
$(window).load(function() {});

/*
 * Po załadowaniu obiektu DOM
 */
$(function() {
	// korekta szerokości layoutu
	layout();
	$(window).resize(function() {
		layout();
	});
	// naprwa png
	$(document).pngFix();
	// elemnty formularza
	inputs_width();
	inputs();
	// wyszukiwanie
	search_value();
	// menu
	menu();
	// vote
	vote();
	// slider
	slider();
	// pokazywanie id partnera
	partner_id();
	// intro
	intro();
	// less than ie7
	ltie7()
	// włączenie lightboxa
	$('a[rel=lightbox]').lightBox();
});

function vote() {
	$('.partner-vote').click(function() {
		var id = $(this).attr('partner_id');
		var value = $(this).attr('value');
		$(this).load('/member/vote/' + id + '/' + value).remove();
	});
	$('.partner-hidden').click(function() {
		var id = $(this).attr('partner_id');
		var value = $(this).attr('value');
		$(this).load('/member/hidden/' + id + '/' + value).remove();
	});
}

/*
 * Kontroluje szerokość elementów blokowych
 */
function layout() {
	var layout = $('.layout');
	var width = $(window).width();
	if(width > 1200) {
		layout.width(width);
	} else {
		layout.width(1200);
	}
	$('.intro, .ltie7').height($(window).height());
}

/*
 * Naprawia szerokość blokowych elementów formularza.
 */
function inputs_width() {
	// naprawia szerokość blokowych elementów formularza
	$(".input-text, .input-textarea, .input-password, .input-select, .input-habtm-checkbox").each(function() {
		var parent_width = $(this).parent().innerWidth();
		parent_width -= parseInt($(this).parent().css("padding-right"));
		parent_width -= parseInt($(this).parent().css("padding-left"));
		var diff = $(this).outerWidth() - parent_width;
		if(diff > 0) {
			$(this).width($(this).width() - diff);
		}
	});
}

/*
 * Dodaje klasę hover związaną z event hover.
 * Zaznacza checkboxy po kliknięciu w wiersz w przyciskach typu habtm.
 * Dodaje klasę focus związaną z event focus i blur.
 * Dodaje klasę error związaną z błędnym uzupełnieniem pola formularza.
 * Wywoływana po załadowaniu DOM.
 */
function inputs() {
	// dodaje klasę hover związaną z event hover
	$(".input:not(.input-readonly)").hover(function() {
		$(this).addClass("input-hover");
	},function(){
		$(this).removeClass("input-hover");
	});
	$(".input-habtm-checkbox .checkbox").hover(function() {
		$(this).addClass("checkbox-hover");
	},function(){
		$(this).removeClass("checkbox-hover");
	});
	// dodaje klasę focus związaną z event focus i blur
	$(".input:not(.input-readonly)").focus(function() {
		$(this).addClass("input-focus");
	}).blur(function(){
		$(this).removeClass("input-focus");
	});
}

/*
 * Dodaje klasę hover związaną z event hover.
 * Dodaje klasę click związaną z event click.
 * Dodaje klasę focus związaną z event focus i blur.
 */
function buttons() {
	// dodaje klasę hover związaną z event hover
	$("A.button, INPUT.button").hover(function() {
		$(this).addClass("button-hover");
	},function(){
		$(this).removeClass("button-hover");
	});
	// dodaje klasę click związaną z event click
	$("A.button, INPUT.button").click(function() {
		$(this).addClass("button-click");
	});
	// dodaje klasę focus związaną z event focus i blur
	$("A.button, INPUT.button").focus(function() {
		$(this).addClass("button-focus");
	}).blur(function() {
		$(this).removeClass("button-focus");
	});
}

/*
 * Dodaje akcję usuwania słowa "search..."
 */
function search_value() {
	var input = $(".search-input");
	var submi = $(".search-submit");
	var def = 'szukaj...';
	input.click(function() {
		if($(this).val() == def) {
			$(this).val('');
		}
	});
	input.blur(function() {
		if($(this).val() == '') {
			$(this).val(def);
		}
	});
	/*submi.click(function() {
		if(input.val() == def) {
			input.val('');
		}
	});*/
}

/*
 * Dodaje klasę hover związaną z event hover.
 */
function menu() {
	// dodaje klasę hover związaną z event hover
	$(".menu-item").hover(function() {
		$(this).addClass("menu-item-hover");
	}, function(){
		$(this).removeClass("menu-item-hover");
	});
}

/*
 *
 */
function partner_id() {
	$('.partner-box').hover(
		function() {
			$(this).children('.partner-code, .partner-hidden, .partner-vote, .partner-alert').show();
		},
		function() {
			$(this).children('.partner-code, .partner-hidden, .partner-vote, .partner-alert').hide();
		}
	);
}

function intro() {
	$('.intro-bg').fadeTo(250, 0.75);
	$('.intro-2010').click(function () {
		$('.intro-load').load('/ajax/intro');
		$('.intro').fadeOut(500);
	});
}

function ltie7() {
	$('.ltie7-link').click(function () {
		$('.ltie7-load').load('/ajax/ltie7');
		$('.ltie7').hide();
	});
}

/*
 * Obsługa slidera.
 */
var slider_current;
function slider() {
	if($('.slider').length) {
		var slider_item = $('.slider-item');
		slider_item.eq(0).show();
		slider_current = 0;
		$('.slider-navi-title-right, .slider-navi-right').click(function() {
			slider_current = slider_get_next();
			slider_title();
			slider_show();
		});
		$('.slider-navi-title-left, .slider-navi-left').click(function() {
			slider_current = slider_get_prev();
			slider_title();
			slider_show();
		});
		slider_title();
	}
}

function slider_show() {
	var speed = 1;
	var slider_item = $('.slider-item');
	slider_item.fadeOut(1, function() {
		slider_item.eq(slider_current).fadeIn(speed)
	});
}

function slider_debug() {
	alert('prev: ' + slider_get_prev() + '; current: ' + slider_current + '; next: ' + slider_get_next());
}

function slider_get_next() {
	var slider_item = $('.slider-item');
	if(slider_current < slider_item.length - 1) {
		return slider_current + 1;
	}
	return 0;
}

function slider_get_prev() {
	var slider_item = $('.slider-item');
	if(slider_current > 0) {
		return slider_current - 1;
	}
	return slider_item.length - 1;
}

function slider_title() {
	var slider_item = $('.slider-item');
	var title = slider_item.eq(slider_current).attr('title');
	$('.slider-navi-title-center').html(title);
	var slider_next = slider_get_next();
	var slider_prev = slider_get_prev();
	if(
		slider_item.eq(slider_next).length &&
		slider_next != slider_current
	) {
		title = slider_item.eq(slider_next).attr('title');
		$('.slider-navi-title-right').html(title);
		$('.slider-navi-title-right, .slider-navi-right').show();
	} else {
		$('.slider-navi-title-right, .slider-navi-right').hide();
	}
	if(
		slider_item.eq(slider_prev).length &&
		slider_prev != slider_current &&
		slider_prev != slider_next
	) {
		title = slider_item.eq(slider_prev).attr('title');
		$('.slider-navi-title-left').html(title);
		$('.slider-navi-title-left, .slider-navi-left').show();
	} else {
		$('.slider-navi-title-left, .slider-navi-left').hide();
	}
}