function rand(min, max)
{
    if (max == 0)
        return 0;
    return Math.floor( Math.random() * (parseInt(max) - parseInt(min) + 1) ) + parseInt(min);
}

function preload_image(images, default_path)
{
    if (typeof document.body == "undefined")
        return;
    try 
    {
        var div = document.createElement("div");
        div.id = 'images_preload';
        document.body.appendChild(div);
        div.innerHTML = '<img src="' + images.join('" /><img src="') + '" />';
    }
    catch(e)
    {
        // do nothing
    }
}

var accordion = 
{
    options: 
    {
        path: '/markup/images/picbox/',
        height: 64,
        active_height: 110,

        accordion:
        {
            item1: 
            [
                {
                    image: 'cellphone_providers.jpg',
                    text: 'Строительство сетей связи',
                    url: '/services/by_consumers/for_cell_providers/'
                }
            ],

            item2: 
            [
                {
                    image: 'railway_companies.jpg',
                    text: 'Строительство кабельных линий в полосе отвода железной дороги',
                    url: '/services/by_consumers/for_railway_enterprises/'
                }
            ],
            
            item3: 
            [
                {
                    image: 'energy_companies.jpg',
                    text: 'Строительство сетей электроснабжения',
                    url: '/services/by_consumers/for_energy_enterprises/'
                }
    
               
            ],
            
            item4: 
            [
                {
                    image: 'building_companies.jpg',
                    text: 'Строительство сетей связи',
                    url: '/services/by_consumers/for_developers/'
                }
            ]
        }
    },

    init: function()
    {
        var _this = this;
        var path = this.options.path;
        var selected_item;

        // preload images
        var images = [];
        var c = 0;
        for (var key in this.options.accordion)
        {
            if (c == 0)
                selected_item = key;

            for (var i = 0, len = this.options.accordion[key].length; i < len; i++)
            {
                images[c] = path + this.options.accordion[key][i].image;
                c++;
            }
        }
        preload_image(images);
        window['selected_point'] = selected_item;


        // handle events
        var $accordion_div = jQuery('#accordion div');
        $accordion_div.click(function()
        {
            _this.setActive(this);
            if (t)
                clearInterval(t);
        });


        // set first tab active
        this.setActive(document.getElementById(window.selected_point), 'onload');


        // timer function
        t = setInterval(function() {
            var current_point = parseInt(window.selected_point.replace(/item/, ''));
            current_point++;

            if (current_point > 4)
                current_point = 1;

            _this.setActive(document.getElementById('item' + current_point), 'click');
        }, 4000);
    },


    setActive: function(_this, mode)
    {
        var mode = mode || 'click';
        var path = this.options.path;
        var height = this.options.height;
        var active_height = this.options.active_height;
        var source_obj = jQuery(_this);

        if (!source_obj.hasClass('active'))
        {
            var id = source_obj.attr('id');

            var max = this.options.accordion[id].length;
            var element_num = rand(0, max);
            if (element_num > 0)
                element_num--;

            jQuery('#accordion div').removeClass('active');
            source_obj.addClass('active');
            // handle modes
            if ('onload' == mode)
            {
                source_obj.css({ height: active_height + 'px' });
            }
            else if ('click' == mode)
            {
                source_obj.animate({ height: active_height + 'px' }, 'fast');
                jQuery('#' + window['selected_point']).animate({ height: height + 'px' }, 'fast');
            }
            window['selected_point'] = id;

            try {
                // accordion item element
                var element = this.options.accordion[id][element_num];

                jQuery('#picbox_block').html('<a href="'+ element.url +'"><img src="'+ path + element.image +'" alt="" /></a>');
                jQuery('#picbox_caption').html('<a href="'+ element.url +'">'+ element.text +'</a>');
            }
            catch(e) {
                // do nothing
            }
        }
    }
}


