function d(s) {
    console.log(s);
}

/*window.dhtmlHistory.create( {
    debugMode : false,
    toJSON: function(o) {
        return $.toJSON(o);
    }
    , 
    fromJSON: function(s) {
        return $.parseJSON(s);
    }

}); 

window.onload = function() {
    dhtmlHistory.initialize();
    dhtmlHistory.addListener(yourListener);
};

var yourListener = function(newLocation, historyData) { 
    showContentProductOnHashChange();
    showContentProductFromHashUri();
} */

/**
 * Zobrazeni produktu z hash parametru v uri
 */
/*function showContentProductOnHashChange () {
    var slug = window.location.hash.slice(1);
    if(slug == '')
        return;
        
    var selectElement = $('#category_items a.category_item[href="#'+slug+'"]');
    var content = selectElement.next().next();
    
    if(selectElement != '' && content != '')
        setAjaxContentProducts(selectElement, content, '', slug, true);
           
}*/
   

/**
 * Nacteni produktu
 */
function generateProducts() {
    /*hashListener.onHashChanged = function () {
        showContentProductOnHashChange();
    };*/

    $('#category_items div.products').hide();

    // Zobrazeni produktu z hash uri
    showProductsFromHashUri();
    
    // Zobrazeni produktu po kliknuti na polozku kategorie v menu kategorii 
    $('#category_items a.category_item').click(showProducts);
    
    // Efekt po prejeti
    /*$('#category_items a.category_item').bind({
        mouseover: effectText,
        mouseout: effectText 
    }); */  
}

/**
 * Animace po prejeti na polozku kategorie
 */
function effectText () {
    var moveText = 10;
    var durationText = 400;
    
    if(arguments[0].type == 'mouseover')
        moveText = moveText;
    else if($(this).attr('rel') == 'over' && arguments[0].type == 'mouseout')
        moveText = moveText;
    else
        moveText = 0;

    var paddingLeft = (arguments[0].type == 'mouseover' ? '+='+moveText+'px' : '-='+moveText+'px');

    if($(this).next().next().css('display') == 'none') { 
        $(this).animate({ 'padding-left': paddingLeft }, durationText, 'easeInOutQuad');
        
        if(arguments[0].type == 'mouseover') {
            $(this).attr('rel', 'over');
        } else {
            $(this).attr('rel', null);
        }
    }
} 

/**
 * Zobrazeni produktu po kliknuti na polozku kategorie v menu kategorii
 */
function showProducts (categoryId) {
    selectElement = $(this); 
    
    categoryId = selectElement.next().attr('value'); 
    if(selectElement != '' && categoryId > 0)    
        setAjaxContentProducts(selectElement, categoryId, true, 1);
}
    
/**
 * Zobrazeni produktu z hash parametru v uri
 */
function showProductsFromHashUri () {
    var slug = window.location.hash.slice(1);
    var slugArr = slug.split('/'); 
    var slugCategory = slugArr[0];   
    
    var displayRound = 1;
    if(slugArr.length > 1) {
        displayRound = 0;
    }
    
    if(slug == '' || slugCategory == '' || slugCategory === undefined)
        return;

    var selectElement = $('#category_items a.category_item[href="#'+slugCategory+'"]');
    var categoryId = selectElement.next().attr('value'); 
    
    if(selectElement != '' && categoryId > 0 ) {
        setAjaxContentProducts(selectElement, categoryId, false, displayRound);  
    } else {
        if(slugCategory != 'sign-in')
            window.location = location.protocol + '//' + location.host + '/';
    }
}

/**
 * Ziskani dat pomoci ajaxu a nastaveni elementu obsahem
 */
function setAjaxContentProducts(selectElement, categoryId, animation, displayRound) {
    var content = selectElement.next().next();
    var lengthModels = content.find('.models').length;
    
    if(content.css('display') == 'none' || lengthModels > 0) {
        var url = '';

        if($('div.represented_companies').length > 0)           
            url = '?r=catalog/getRepresentedCompaniesProducts';
        else
            url = '?r=catalog/getProducts';
        
        var duration = 400;
        var easing = 'easeInOutQuad';
        $.ajax({
            url: url,
            type: 'GET',
            cache: false,
            data : {
                'category_id': categoryId, 
                'display_round': displayRound
            },
            success: function(html) {  
                if(lengthModels > 0)
                    removePreloader();
                
                content.html(html);
                
                if(animation) {
                    if(lengthModels == 0)
                        removePreloader();
                    
                    $('#homepage_news').fadeOut('fast');

                    if(!selectElement.hasClass('active') || lengthModels == 0) {
                        content.slideToggle(duration, easing).siblings('div:visible').animate({
                            height: 'toggle', 
                            opacity: 'toggle'
                        }, duration, easing, function() {
                            $('.products .models').remove();
                        });                      
                    }
                    
                } else {
                    $('#homepage_news').css('display', 'none');
                    content.css('display', 'block'); 
                }
                
                $('#category_items').css('width', '100%');
                $('#category_items a.category_item span').removeClass('active');
                $('#category_items a.category_item').removeClass('egoe_garden_active');
                selectElement.find('span').addClass('active');
                
                // Pokud se jedna o polozku zahradni nabytek egoe manipuluje se s dalsima stylama
                if(selectElement.hasClass('egoe_garden')) {
                    selectElement.removeClass('egoe_garden_active_before');
                    selectElement.removeClass('egoe_garden_active_model_before');
                    selectElement.addClass('egoe_garden_active');
                }
                
            }, 
            beforeSend: function() {
                if((content.css('display') == 'none' || lengthModels > 0) && animation) {
                    showPreloader();
                }
                
                $('#category_items a.category_item').removeClass('active');
                selectElement.addClass('active'); 
                
                // Pokud se jedna o polozku zahradni nabytek egoe manipuluje se s dalsima stylama 
                if(selectElement.hasClass('egoe_garden') && lengthModels == 0)
                    selectElement.addClass('egoe_garden_active_before'); 
                
                if(selectElement.hasClass('egoe_garden') && lengthModels > 0)
                    selectElement.addClass('egoe_garden_active_model_before'); 
            }                   
        }); 
    } else {
        setTimeout(function(){ 
            $('#category_items a.category_item, #category_items a.category_item span').removeClass('active egoe_garden_active');
            $('#category_items').css('width', '210');
            $('#homepage_news').fadeIn('fast');
        }, 410);
        content.slideToggle(duration).siblings('div:visible').slideUp(duration);              
    }
}
    
/**
 * Zobrazeni preloaderu
 */
function showPreloader(filePreloader, widthPreloader, heightPreloader, opacity) {
    var sizeWidthLoader = (widthPreloader === undefined ? 130 : widthPreloader);
    var sizeHeightLoader = (heightPreloader === undefined ? 130 : heightPreloader);
    
    var left = $('#catalog').position().left;
    var top = $('#catalog').position().top;
        
    var width = $('#catalog').width();
    var height = $('#catalog').height();    
        
    $('#catalog').append('<div id="loader_block"></div>');
   
    if(filePreloader === undefined)
        $('#catalog').append('<img id="loader_img" src="/images/catalog/preloader50px.gif" alt="" />');
    else
        $('#catalog').append('<img id="loader_img" src="'+filePreloader+'" alt="" />');
    
    $('#loader_block').css({
        'position': 'absolute', 
        'opacity': (opacity === undefined ? 0 : opacity), 
        'background-color': '#000', 
        'left': left + 'px', 
        'top': top + 'px', 
        'width': width + 'px', 
        'height': height + 'px'
    });    
    
    top = $(window).height()/2;
    if($(window).scrollTop() < $('#header').height()) {
        if($(window).height() > $('#header').height()+$('#catalog').height()) {
            top = ($('#header').height() + ($('#catalog').height()/2)) - (sizeHeightLoader/2);
        } else {
            top += $('#header').height() - sizeHeightLoader;
        }
    } else {
        top += $(window).scrollTop() - sizeHeightLoader;
    }

    $('#loader_img').css({
        'position': 'absolute', 
        'left': (left + width/2 - (sizeWidthLoader/2)) + 'px', 
        'top': top  + 'px'
    });    
}
    
/**
 * Odstraneni preloaderu
 */
function removePreloader() {
    if($('#loader_block') !== undefined)
        $('#loader_block').remove();
            
    if($('#loader_img') !== undefined)
        $('#loader_img').remove();                  
}  

$(document).ready(function() {
    generateProducts()
});

Array.max = function( array ){return Math.max.apply( Math, array );};





