/**
 **/

(function($){
var $$;

$$ = $.fn.services = function($options) {

    // extend the options
	var $opts = $.extend($$.defaults, $options);

    for (var i in $opts) {
		if (i) {
			$.services[i]  = $opts[i];
		}
	}

    $$.load();
};


$$.load = function() {
    var sParentDvResults = $$.defaults.sParentDvResults;
    var sChildsDvResults = $$.defaults.sChildsDvResults;
    var sParentTplItem = $$.defaults.sParentTplItem;
    var sChildsTplItem = $$.defaults.sChildsTplItem;

    var aAddresses = new Array();
//    var sDvCount = $$.defaults.sDvCount;
//    var sDvNavigation = $$.defaults.sDvNavigation;


    var jTemplate = $.template( $('#'+sParentTplItem).html());
    var parentTemplate = jTemplate;
    var childTemplate = $.template( $('#'+sChildsTplItem).html());

    $.ajax({
            type: "POST",
            url: '/_json_/services?timestamp=' + Number(new Date()),
            dataType: "json",
            data: $.extend({oid : $$.defaults.iObjectId}, $$.makeExtraParams()),

            beforeSend: function(){
                var height = $('#'+sParentDvResults).height();

                $('#'+sParentDvResults)
                    .html('<div style="height:'+height+'px"></div>')
                    .css({
                        "background" : "transparent url(/img/loader_services.gif) no-repeat center center"
                    });

            },
            success: function(json){

                if(json.results.count){
                    var results = json.results.data;
                    var childs = json.results.childs;
                    
                    $('#'+sParentDvResults).html('');

                    $.each(results, function(i,item){
 
                        if(childs>0){
                          var spacer = 'width:100%;';
                          var clean = '<div class="ltr">&nbsp;</div>';
                          var bonus = '';
                        }
                        else{
                          var spacer = 'width:150px;float:left;"';
                          var clean = '';
                          var bonus = '&raquo; ';
                        }

                        if(item.type=='child'){
                          var childsContainer = '';
                          var sDvResults = sChildsDvResults+'_'+item.PARENT_ID;
                          jTemplate = childTemplate;
                          var address = aAddresses[item.PARENT_ID]+','+item.ID;
                        }
                        else{
                          if(childs>0){
                            var childsContainer = '<div style="width:100%;" id="childsContainer_'+item.ID+'"></div>';
                          }
                          else{
                            var childsContainer = '';
                          }
                          var sDvResults = sParentDvResults;
                          jTemplate = parentTemplate;
                          aAddresses[item.ID] = oGlobal.BASE_URL+item.SERVICE_URL+item.ID;
                          var address = aAddresses[item.ID];
                        }
                       
                        $('#'+sDvResults).append(jTemplate,{
                          childName : bonus+item.TITLE,
                          childsContainer : childsContainer,
                          url: address+'.html',
                          spacer: spacer,
                          clean: clean
                        });

                    });

                   $('#'+sParentDvResults).css({ 'padding' : '0px', background : "none" });

                }
                else{
                    $('#'+sParentDvResults)
                        .css({ padding : '0px', background : "none" })
                        .html('Brak podkategorii');
                        
                }

           },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                $('#'+sParentDvResults).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,
    sTypeView     : '',
    sType         : '',
    iPage         : 1,
    iLimit        : 20,
    bRateAvailable: true,
    sDvResults    : 'comments_results',
    sDvNavigation : 'comments_navigation',
    sDvCount      : 'comments_count',
    sTplItem      : 'comments_item_tpl',
    oExtraParams  : {}
};




/**
 *
 * @name jQuery.comments
 *
 * @desc The global galleria object holds four constant variables and four public methods:
 *       $.comments.activate(_src) = displays an image from _src in the galleria container.
  *
**/

$.extend({services : {
        getChilds : function(_page){
            $$.load(_page);
        }
    }
});

})(jQuery);
