/**
 **/

(function($){

    var $$;

    /**
 * 
 * @desc
 * @author
 * @version 1.0
 *
 * @name Galleria
 * @type jQuery
 *
 * @example $('ul.gallery').galleria({options});
  * @options
  *
**/

    $$ = $.fn.gallery = function($options) {


        // extend the options
        var $opts = $.extend($$.defaults, $options);
	
        // bring the options to the galleria object
        for (var i in $opts) {
            if (i) {
                $.gallery[i]  = $opts[i];
            }
        }

    //$$.load($$.defaults.iPage);

    };



    /**
 *
 * @name onPageLoad
 *
 * @desc The function that displays the image and alters the active classes
 *
 * Note: This function gets called when:
 *
**/


    $$.load = function(_page) {

        var sDvResults = $$.defaults.sDvResults + $$.defaults.sKey;
        var sDvCount = $$.defaults.sDvCount + $$.defaults.sKey;
        var sDvNavigation = $$.defaults.sDvNavigation + $$.defaults.sKey;
        var sTplItem = $$.defaults.sTplItem + $$.defaults.sKey;
        var sTplItemList = $$.defaults.sTplItemList + $$.defaults.sKey;
        var sTplItemNoPreview = $$.defaults.sTplItem+'_no_preview'+ $$.defaults.sKey;
  

        var jTemplate = $.template( $('#'+sTplItem).html() );
        var jTemplateList = $.template( $('#'+sTplItemList).html() );
        var jTemplateNoPreview = $.template( $('#'+sTplItemNoPreview).html() );

        var sKey = $$.defaults.sKey;
    
        if($$.defaults.iLimit>10 && $$.defaults.sTypeView == 'list'){
            $$.defaults.iLimit = 24;
        }

        $.ajax({
            type: "POST",
            url: '/_json_/galleries?timestamp=' + Number(new Date()),
            dataType: "json",
            data: $.extend({
                edit: $$.defaults.bEdit,
                page : _page,
                limit : $$.defaults.iLimit,
                oid : $$.defaults.iObjectId,
                file_type : $$.defaults.sFileType,
                file_container_type : $$.defaults.iFileContainerType,
                talent_id : $$.defaults.iTalentId,
                order:$$.defaults.sOrder
            },
            $$.makeExtraParams()),

            beforeSend: function(){
				showGlobalLoader();
            },
            success: function(json){
				
				hideGlobalLoader();

                if(json.results_total){
                    $('#'+sDvResults).html('');

                    $.each(json.results, function(i,item){


                        if(item.PROCESSING==1 || item.PROCESSING==3){
                            $('#'+sDvResults).append(jTemplateNoPreview,{
                                file_id : item.ID,
                                name: item.NAME_SHORT,
                                user: (item.FIRSTNAME + ' ' + item.SURNAME),
                                description: item.DESCRIPTION,
                                date: item.DATE_ADDED,
                                img_thumb_path: item.IMG_THUMB_PATH,
                                img_thumb_x: item.IMG_THUMB_X,
                                img_thumb_y: item.IMG_THUMB_Y,
                                img_avatar_path: item.IMG_AVATAR_PATH,
                                img_avatar_x: item.IMG_AVATAR_X,
                                img_avatar_y: item.IMG_AVATAR_Y,
                                img_mid_path: item.IMG_MID_PATH,
                                rating: item.RATING,
                                hits: item.HITS,
                                comments: item.COMMENTS,
                                favourite: item.FAVOURITE,
                                page_detail: item.PAGE_DETAIL
                            });
                           
                            
                        }
                        else{

                            var _jTemplate;

                            if($$.defaults.sTypeView == 'list'){
                                _jTemplate = jTemplateList;
                            }
                            else{
                                if(item.IMG_MID_PATH){
                                    _jTemplate = jTemplate;
                                }
                                else{
                                    _jTemplate = jTemplateNoPreview;
                                }
                            }

                           

                            $('#'+sDvResults).append(_jTemplate,{
                                file_id : item.ID,
								name: item.NAME ? item.NAME : '',
								name_list: item.NAME_LIST ? item.NAME_LIST : '',
								name_photo: item.NAME_LIST ? item.NAME_PHOTO : '',
								person: item.PERSON ? item.PERSON : '',
								person_list: item.PERSON_LIST ? item.PERSON_LIST : '',
								login: item.LOGIN,
								login_list: item.LOGIN_LIST,
								description_list: item.DESCRIPTION_LIST ? item.DESCRIPTION_LIST : '',
                                date: item.DATE_ADDED,
                                file_category_name: item.FILE_CATEGORY_NAME ? item.FILE_CATEGORY_NAME : '',
                                rating: item.RATING,
                                hits: item.HITS,
                                comments: item.COMMENTS,
                                favourite: item.FAVOURITE,
                                img_avatar_path: item.IMG_AVATAR_PATH,
                                img_avatar_x: item.IMG_AVATAR_X,
                                img_avatar_y: item.IMG_AVATAR_Y,
                                img_thumb_path: item.IMG_THUMB_PATH,
                                img_thumb_x: item.IMG_THUMB_X,
                                img_thumb_y: item.IMG_THUMB_Y,
                                img_mid_path: item.IMG_MID_PATH,
                                page_detail: item.PAGE_DETAIL,
                                page_profile: item.PAGE_PROFILE
                            });

                        }
                    });

                    $('a.highslide').each(function() {
                        this.onmouseout = function() {
                            clearTimeout(hsTimer);
                        };
                    });

                    // genNavigation(json.results_displayed, json.results_total, json.page_all, _page, '$$.load{'+sKey+'}', sDvNavigation);
                    genNavigation(json.results_displayed, json.results_total, json.page_all, _page, '$.gallery.getPage', sDvNavigation, 'black');


                    if($$.defaults.sTypeView == 'list'){
                        $('#'+sDvResults).css({
                            "padding" : "0",
                            "margin" : "0",
                            "background" : "none",
                            "background-color" : "#ececec"
                        });
                    }
                    else{
                        $('#'+sDvResults).css({
                            "padding-top" : "10px",
                            "background" : "none",
                            "background-color" : "#fff"
                        });
                    }

				    $('#'+sDvResults).append('<div class="ltr"></div>');
                    $('#'+sDvCount).html(json.results_total);
                   
                }
                else{
					$('#'+sDvCount).html('0');
                    $('#'+sDvNavigation).html('');
                    $('#'+sDvResults)
                    .css({"padding" : "10px", "background" : "none", "font-size" : "10px", "text-align" : "center" })
                    .html('Brak publikacji');
                }

            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                $('#'+sDvNavigation).html('');
                $('#'+sDvResults).append('Błąd '+XMLHttpRequest+' <br /> Komunikat: '+textStatus+' <br /> Rodzaj:'+ errorThrown);
            }

        });
    };



    /**
 *
 * @name $$.makeExtraParams
 *
 * @desc ustawianie parametrów extra
 *
 *
**/
    $$.makeExtraParams = function(){
        var extraParams = {};

        $.each($$.defaults.oExtraParams, function(key, param) {
            extraParams[key] = typeof param == "function" ? param() : param;
        });

        return extraParams;
    };


    /**
 *
 * @name $$.defaults
 *
 * @desc Domyslne zmienne dla obiektu
 *
 *
**/

    $$.defaults = {
        iObjectId     : 0,
        iPage         : 1,
        iLimit        : 12,
        sTypeView     : 'gallery',
        sDvResults    : 'gallery_results',
        sDvNavigation : 'divGalleryNavigation_',
        sDvCount      : 'gallery_count',
        sTplItem      : 'gallery_item_tpl',
        sTplItemList  : 'gallery_item_tpl_list',
        iFileContainerType   : null,
        sFileType            : null,
        sKey                 : null,
        oExtraParams  : {}
    };



    /**
 *
 * @name jQuery.gallery
 *
 * @desc The global galleria object holds four constant variables and four public methods:
 *       $.gallery.activate(_src) = displays an image from _src in the galleria container.
 *
**/


    $.extend({
        gallery : {
            getPage : function(_page) {
                $$.load(_page);
            },
            next : function() {
                alert("next");
            },
            prev : function() {
                alert("prev");
            }
        }
    });

})(jQuery);


