/**
 * Plik zawiera powszechne funkcje, usprawnienia interfejsu, itp...
 *
 * @project Bedeo.pl
 * @lastmodified 13:37 2009-04-08
 *
 */

// ------------------------------------------------- 

/**
 * clickable plugin
 * Plugin uaktywnia "klikalność" elementu według pierwszego <a href /> znalezionego wewnątrz 
 *
 * @example $('ul.objects li').clickable()
 */
(function($){
$.fn.clickable = function() {
	return this.each(
		function() {
			var $t = $(this);
			$t.click( function() {
				window.location = $t.find('a').eq(0).attr('href')
			}).css('cursor','pointer') 
		}
	);	
}
})(jQuery);

/**
 * pictureViewer plugin
 * Zdjęcia
 *
 * @requires jQuery prettyPhoto 
 */
(function($){
$.fn.pictureViewer = function() {
	$("a[rel^=fullpicture]").prettyPhoto({'showTitle' : false});
 
	var rel = null;

	return this.each( function() {
		var $root = $(this);
		
		var $picture = $('.pv-picture', $root)
		var $thumbs = $('.pv-thumbs', $root)
		rel = $('.pv-picture-link', $picture).attr('rel');
 
		//$thumbs.find('.active .pv-link2full').removeAttr('rel')
 
		$thumbs.find('a.pv-link2thumb').click(function () {
			var self = $(this);
			$picture.find('img').attr('src', self.attr('href'))  
			$picture.find('a').attr('href', self.next('a.pv-link2full').attr('href')) 
			
			var $item =  self.parent('li');
			$item.addClass('active').siblings().removeClass() 
			
			return false
 
		}) // click
	});	// each
}
})(jQuery);

/**
 * tabz plugin
 * Prościutkie zakładki
 **/
(function($){
$.fn.tabz = function(options) {
	var settings = $.extend({
			clActive: 'active'
		}, options);	
	
	return this.each( function() {
		var $root = $(this),
		activeID = $root.find('.'+settings.clActive+' a').attr('href');
		
		$root.find('a').click(function () {
			$(activeID).hide(); 
			$(this).parents('li').addClass(settings.clActive).siblings().removeClass(settings.clActive);
			activeID = $(this).attr('href');
			$(activeID).show()
			return false
		}) // click
		
	});	// each
}
})(jQuery);

 
// ------------------------------------------------- 
$(document).ready(function() {
	 
/**
 * Przełączanie trybu SearchBox'a
 */ 
var $searchbox = $('#searchbox');
$('p.switch a', $searchbox).click( function(e) {
	var $switch = $(this)
	
	if ($searchbox.hasClass('basic')) {
	// widoczna wyszukiwarka prosta
		$searchbox
		.find('ul.extended').slideDown('slow', function () {
			$switch.text( 'wyszukiwanie podstawowe' )
		})
		.end().removeClass('basic');
	} else {
	// widoczna wyszukiwarka zlozona
		$searchbox
		.find('ul.extended').slideUp('fast', function () {
			$switch.text( 'wyszukiwanie zaawansowane' )
		})
		.end().addClass('basic');
	}

	e.preventDefault()
})
/* @todo wypadałoby to zmienić wersję PHP: */
if ($('input:hidden[name=advanced_search]', $searchbox).val() == 'true' && $searchbox.hasClass('basic')) {
	$('p.switch a', $searchbox).click()
}

/**
 * Zaznaczanie checkboxów poprzez klik na ikonce (IE, Opera)
 */ 
$('.icons img', $searchbox).click(function () {
	// v1:
	/*
	var $inp = $(this).siblings(':checkbox');
	$inp.attr('checked', $inp.attr('checked') ? '' : 'checked' );
	*/
	
	// v2:
	$(this).siblings(':input').click()
	
	return false // potrzebne, aby nie zadziałało w przeglądarkach mających takie działanie 'w standardzie'
})
 
/**
 * Wywołanie clickable() dla elemenów
 */ 
$('div#button_add, ul.objects li, ul.objects_result li, ul.objects_rated > li').clickable();

/**
 * Inicjalizacja zakładek (prostych)
 * @requires plugin tabz
 */
$('#folder-nav').tabz();

/**
 * Inicjalizacja zakładek (z jQuery UI)
 * @requires plugin UI.tabs
 */
// v1: if (typeof($.fn.tabs) == 'function') 
//if ($.isFunction($.fn.tabs))
/* 	$('#folder-nav').tabs(defaults = {selectedClass: 'active'}) */


/**
 * Rozwijane FAQ
 */ 
var $faq = $('dl.faq');

$faq.children('dt')
	.click(function () {
		$('+ dd' ,this).toggle();
		$(this).toggleClass('on').toggleClass('off');
	})
	.filter(':not(".on")')
	.addClass('off')
	.next()
	.hide();

}) // -end- $(document).ready 