/*
 * akslider
 *
 * Author:  Adam Krupa <poczta@adamkrupa.com> http://adamkrupa.com/
 * Version: 0.1 (17/10/2011)
 * License: http://creativecommons.org/licenses/by-nd/3.0/pl/legalcode
 */

(function($) {
    var json_file = '/index.php/pl/slider';
    var loader_file = '/site_files/jscripts/akslider/loading.gif';

    $.fn.akslider = function(){
        var width = $(this).width();
        var height = $(this).height();
        var id = '#' + $(this).attr('id');
        var menu_text = id + ' .text';
        var timeout;

        loader_on = function(){
//            var loader = Image();
//            loader.src = loader_file;
            var append =  '<img class="loader_file" src="'+loader_file+'" style="display: block; position: absolute; left: '+Math.round((width-49)/2)+'px; top: '+Math.round((height-49)/2)+'px;" />';
            $(id).append(append);
        }

        show_item = function (i, items){
            //wyswietlenie obrazka z loaderem
            $(menu_text + ' span').removeClass('selected');
            $(id + ' .info').remove();
//            loader_on();
            
            //pobranie i wyswietlenie obrazka
            $(id).append('<img class="slide_in" src="/uploads/sliders/'+items[i].image_file+'" style="display: none;" alt="" />');
            $(id+' .slide_in').load(function (){
                $(id + ' .loader_file').remove();
                $(id + ' .slide_in').fadeIn('slow');
                if (items[i].title != '' || items[i].description != '' || items[i].link != ''){
                    $(id).append('<div class="info" style="display: none;"></div>');
                    if (items[0].title != '') $(id + ' .info').append('<p class="h">'+items[i].title+'</p>');
                    if (items[i].description != '') $(id + ' .info').append('<p>'+items[i].description+'</p>');
                    if (items[i].link != '') $(id + ' .info').append('<p><a href="'+items[i].link+'">Więcej</a></p>');
                    $(id + ' .info').fadeIn('slow');
                }
                $(menu_text + ' .click_'+ i).addClass('selected');
            });
            timeout = setTimeout(function(){
                $(id+ ' img').remove();
                i++;
                if (i >= items.length){
                    i = 0;
                }
                show_item(i, items);
            }, 7000);
        }

        error = function (){
            //hide menu
            $(id + ' .menu').hide();
            $(id).append('<div style="position: absolute; width: 100%; height: 20px; margin-top: '+Math.round((height-20)/2)+'px; text-align: center; color: red; font-style: italic; font-size: 12px;">no data</div>');
        }
        
        //pobranie danych
        $.ajax({
            'url' : json_file,
            'async' : false,
            'dataType' : 'json',
            'success' : function (json_data) {
                //sprawdzenie liczby elementow w tablicy
                if (json_data.length > 0) {
                    //utworzenie menu
                    $.each(json_data, function(i, item) {
                        if (i > 0){
                            $(menu_text).append('&nbsp;&nbsp;|&nbsp;&nbsp;<span class="click_' + i + '">' + item.title + '</span> ');
                        } else {
                            $(menu_text).append('<span class="click_' + i + '">' + item.title + '</span> ');
                        }
                    });
                    //wyswietlenie pierwszego
                    show_item(0, json_data);
                    //nasluch na klkniecie
                    $(menu_text + ' span').click(function() {
                        $(id+ ' img').remove();
                        var i = $(this).attr('class').substring(6);
                        clearTimeout(timeout);
                        show_item(i, json_data);
                    });
                } else {
                    error();
                }
            },
            'error' : function(){
                error();
            }
        });

        //show and hide menu
        $(id+' .click').mouseenter(function (){
            $(menu_text+':hidden').slideDown(300);
        });
        $(id+' .menu').mouseleave(function (){
            $(menu_text).slideUp(300);
        });
        $(menu_text).css({'display' : 'none'});
    }
})(jQuery);
