(function ($)
{
    $.fn.fadeIn = function (speed, callback)
    {
        return this.animate(
        {
            opacity: 'show'
        }, speed, function ()
        {
            if ($.browser.msie)
            {
                this.style.removeAttribute('filter');
            }
            if ($.isFunction(callback))
            {
                callback.call(this);
            }
        });
    };

    $.fn.fadeOut = function (speed, callback)
    {
        return this.animate(
        {
            opacity: 'hide'
        }, speed, function ()
        {
            if ($.browser.msie)
            {
                this.style.removeAttribute('filter');
            }
            if ($.isFunction(callback))
            {
                callback.call(this);
            }
        });
    };

    $.fn.fadeTo = function (speed, to, callback)
    {
        return this.animate(
        {
            opacity: to
        }, speed, function ()
        {
            if (to === 1 && $.browser.msie)
            {
                this.style.removeAttribute('filter');
            }
            if ($.isFunction(callback))
            {
                callback.call(this);
            }
        });
    };
})(jQuery);

var element_count;
var element_interval;
var old_element = 0;
var current_element = 0;

function element_rotate()
{
    current_element = (old_element + 1) % element_count;
    $('.brands li a').removeClass('active');
    $('.brands li:eq(' + current_element + ') a').addClass('active');
    $('.banner').stop().fadeTo('slow', 0);
    $.getJSON($('.brands li:eq(' + current_element + ') a').attr('href') + '?json=1', function (json)
    {
        var imageObj = new Image();
        var logo_image = json.page.thumbnail.replace("-70x70", "");

        $(imageObj).attr('src', logo_image).load(function ()
        {
            $('.banner h1').html(json.page.title_plain);
            $('.banner .excerpt').html(json.page.excerpt);
            $('.banner .url').attr('href', json.page.url);
            $('.banner').attr('style', 'background-image: url(' + logo_image + ');');
            $('.banner').stop().fadeTo('slow', 1);
        });
    });
    old_element = current_element;
}



$(function ()
{ /* !hover */

    if ($.browser.msie)
    {
    }
    else
    {
        $('.hover li').hover(function ()
        {
            $(this).stop().animate(
            {
                opacity: 1.0
            }, 200);
            $('.hover li').not(this).stop().animate(
            {
                opacity: 0.5
            }, 200);
        }, function ()
        {
            $('.hover li').stop().animate(
            {
                opacity: 1
            }, 500);
        });
    }



    /* !banner */
    if ($('.banner').length > 0)
    {

        element_count = $('.brands li').size();

        $('.brands li a').removeClass('active');
        $('.brands li:eq(' + current_element + ') a').addClass('active');

        if ($.browser.msie)
        {
            $('.banner').stop().addClass('hidden');
        }
        else
        {
            $('.banner').stop().fadeTo('slow', 0);
        }

        $.getJSON($('.brands li:eq(' + current_element + ') a').attr('href') + '?json=1', function (json)
        {
            var imageObj = new Image();
            var logo_image = json.page.thumbnail.replace("-70x70", "");

            $(imageObj).attr('src', logo_image).load(function ()
            {
                $('.banner h1').html(json.page.title_plain);
                $('.banner .excerpt').html(json.page.excerpt);
                $('.banner .url').attr('href', json.page.url);
                $('.banner').attr('style', 'background-image: url(' + logo_image + ');');

                if ($.browser.msie)
                {
                    $('.banner').stop().removeClass('hidden');
                    $('.banner .hidden').removeClass('hidden');
                }
                else
                {
                    $('.banner').stop().fadeTo('slow', 1);
                    $('.banner .hidden').fadeTo('slow', 1);
                }
            });
        });

        element_interval = setInterval(element_rotate, 10000);
        $('.banner').hover(function ()
        {
            clearInterval(element_interval);
        }, function ()
        {
            element_interval = setInterval(element_rotate, 10000);
        });

        $('.brands li a').click(function ()
        {
            clearInterval(element_interval);
            if (!$(this).hasClass('active'))
            {
                $('.brands li a').removeClass('active');
                $(this).addClass('active');

                if ($.browser.msie)
                {
                    $('.banner').stop().addClass('hidden');
                }
                else
                {
                    $('.banner').stop().fadeTo('slow', 0);
                }

                $.getJSON($(this).attr('href') + '?json=1', function (json)
                {
                    var imageObj = new Image();
                    var logo_image = json.page.thumbnail.replace("-70x70", "");

                    $(imageObj).attr('src', logo_image).load(function ()
                    {
                        $('.banner h1').html(json.page.title_plain);
                        $('.banner .excerpt').html(json.page.excerpt);
                        $('.banner .url').attr('href', json.page.url);
                        $('.banner').attr('style', 'background-image: url(' + logo_image + ');');

                        if ($.browser.msie)
                        {
                            $('.banner').stop().removeClass('hidden');
                        }
                        else
                        {
                            $('.banner').stop().fadeTo('slow', 1);
                        }

                    });
                });
                return false;
            }
        });

    }

    /* !search */
    $('#search_trigger').live('mouseenter', function ()
    {
        $('#search').fadeTo(1, 0).show().fadeTo(200, 1);
    });

    $('#search').click(function (event)
    {
        event.stopPropagation();
    });

    $(document).click(function (event)
    {
        if (!$(event.target).is('#search > *'))
        {
            $('#search').fadeTo(200, 0).hide();
        }
    });

    var count = 0;

    $("#search_field").live("keyup", function ()
    {
        if ($(this).val() !== "" && $(this).val().length > 2)
        {
            $(".sitemap").hide();
            $(".search").show();

            $.getJSON('http://revala.com/?json=1&s=' + $(this).val(), function (json)
            {
                var html = '';
                count = json.count;

                for (var i = 0; i < count; i++)
                {
                    html += '<li><a href="' + json.posts[i].url + '"><strong>' + json.posts[i].title_plain + '</strong> ' + json.posts[i].excerpt + '</a></li>';
                }

                $('.search').html(html);
            });

        }
        else
        {
            $(".sitemap").show();
            $(".search").hide();
        }
    });

    // FancyBox
    $(".gallery a:has(img)").fancybox(
    {
        titleShow: false
    });
});

