/* ========================================================================== */
/* Roundabout */

var roundaboutIterator = 0;
var startIteration = 0;
var secondPageStartIteration = 0;
var roundaboutInProgress = true;

if (navigator.userAgent.indexOf('WebKit') == -1) {
    $(window).load(roundaboutInit);
} else {
    /* Safari and Chrome fires onLoad BEFORE images loaded */
    $(window).load(function() {
        setTimeout('roundaboutInit()', 1500);
    });
}

function roundaboutInit() {
    /* Vertical-align: middle */
    $('#roundabout_items_holder .roundabout_item img').each(function() {
        if (this.offsetHeight > 0) {
            $(this).css('top', Math.round((90 - this.offsetHeight) / 2) + 'px');
        } else {
            $(this).css('top', '10px');
        }
    });

    /* Resize event */
    roundaboutResize();
    $(window).resize(roundaboutResize);
    roundaboutInProgress = false;
}

function roundaboutResize() {
    if (navigator.userAgent.indexOf('WebKit') != -1) {
        $('#roundabout_items_holder .roundabout_item img').each(function() {
            if (this.offsetHeight > 0) {
                $(this).css('top', Math.round((90 - this.offsetHeight) / 2) + 'px');
            } else {
                $(this).css('top', '10px');
            }
        });
    }

    var wrapper = $('#roundabout_holder');
    var holder = $('#roundabout');
    var page1 = $('#roundabout_slider_page1');
    var page2 = $('#roundabout_slider_page2');
    var items = $('#roundabout_items_holder .roundabout_item');
    var outerWidth = 0;
    var summWidth = 0;
    var i = 0;

    if ((wrapper.length == 1) && (holder.length == 1) && (page1.length == 1) && (page2.length == 1) && (items.length > 0)) {
        /* Set width */
        outerWidth = wrapper.attr('offsetWidth') - 310;
        holder.css('width', outerWidth + 'px');
        page1.css('width', outerWidth + 'px');
        page2.css('width', outerWidth + 'px');
        page2.css('left', outerWidth + 'px');

        /* Reset lists */
        page1.html('');
        page2.html('');

        /* Fill page 1 */
        roundaboutIterator = startIteration;
        while (true) {
            if (items[roundaboutIterator] && (typeof(items[roundaboutIterator]) != 'undefined')) {
                $(items[roundaboutIterator]).clone().appendTo(page1);
                summWidth += items[roundaboutIterator].offsetWidth;
            }

            if (roundaboutIterator < (items.length - 1)) {
                roundaboutIterator++;
            } else {
                roundaboutIterator = 0;
            }

            if ((summWidth + items[roundaboutIterator].offsetWidth) > outerWidth) {
                break;
            }
        }
        recountPaddings(page1, summWidth);
        page1.find('.roundabout_item:last-child').css('padding-right', 0);
        page1.append('<div class="clear"><!-- --></div>');

        /* Fill page 2 */
        summWidth = 0;
        secondPageStartIteration = roundaboutIterator;
        while (true) {
            if (items[roundaboutIterator] && (typeof(items[roundaboutIterator]) != 'undefined')) {
                $(items[roundaboutIterator]).clone().appendTo(page2);
                summWidth += items[roundaboutIterator].offsetWidth;
            }

            if (roundaboutIterator < (items.length - 1)) {
                roundaboutIterator++;
            } else {
                roundaboutIterator = 0;
            }

            if ((summWidth + items[roundaboutIterator].offsetWidth) > outerWidth) {
                break;
            }
        }
        recountPaddings(page2, summWidth);
        page2.find('.roundabout_item:last-child').css('padding-right', 0);
        page2.append('<div class="clear"><!-- --></div>');
    }
}

function recountPaddings(page, summWidth) {
    if (summWidth > 0) {
        var additWidth = page.attr('offsetWidth') - summWidth;

        if (additWidth > 0) {
            var list = page.find('.roundabout_item');
            if (list.length > 0) {
                var additPadding = Math.floor(additWidth / list.length);

                list.each(function() {
                    var padding = $(this).css('padding-right');
                    if (/^(\d+)px$/.test(padding)) {
                        $(this).css('padding-right', RegExp.$1 - 0 + additPadding + 'px');
                    } else {
                        $(this).css('padding-right', additPadding + 'px');
                    }
                });
            }
        }
    }
}

function roundaboutMove() {
    if (!roundaboutInProgress) {
        var page1 = $('#roundabout_slider_page1');
        var page2 = $('#roundabout_slider_page2');

        if ((page1.length == 1) && (page2.length == 1)) {
            roundaboutInProgress = true;
            page1.animate({"left": '-=' + page1.attr('offsetWidth')}, 750);
            page2.animate({"left": '-=' + page2.attr('offsetWidth')}, 750, null, resetAnimation);
        }
    }
}

function resetAnimation() {
    var page1 = $('#roundabout_slider_page1');
    var page2 = $('#roundabout_slider_page2');

    if ((page1.length == 1) && (page2.length == 1)) {
        page1.html(page2.html());
        page1.css('left', 0);
        page2.css('left', page2.attr('offsetWidth') + 'px');
        startIteration = secondPageStartIteration;
        roundaboutResize();
        roundaboutInProgress = false;
    }
}

function roundaboutHoverImg(elem, id) {
    if (imgClientsArr && (typeof(imgClientsArr) != 'undefined') && imgClientsArr[id] && (typeof(imgClientsArr[id]) != 'undefined')) {
        $(elem).find('img').attr('src', imgClientsArr[id][1].src);
    }
}

function roundaboutDefaultImg(elem, id) {
    if (imgClientsArr && (typeof(imgClientsArr) != 'undefined') && imgClientsArr[id] && (typeof(imgClientsArr[id]) != 'undefined')) {
        $(elem).find('img').attr('src', imgClientsArr[id][0].src);
    }
}

/* /Roundabout */
/* ========================================================================== */

function gaSendEvent(data) {
    $.ajax({
        "type": 'GET',
        "url": '/ga_events.php',
        "data": data,
        "dataType": 'html',
    });
}

function gaSendEvent2(evnt) {
    var path = location.href;
    var re = /\?/i;

    path += (re.test(path) ? '&' : '?') + 'eventName=' + evnt;

    pageTracker._trackPageview(path);
}
