
var timeout;
var timeoutLength = 6000;

var hoverTimeout;

function InitHover() {

  jQuery('#images-holder .image-item').mouseenter(function () {

    var description = jQuery(this).parent().find('.images-description')[jQuery(this).index()];
    hoverTimeout = window.setTimeout(function () {

      jQuery(description).show();
    }, 500);
  });

  jQuery('#images-holder .image-item').mouseleave(function () {

    clearTimeout(hoverTimeout);
    jQuery(this).find('.images-description').hide();
  });
}

function InitTabs(tabSelector, contentSelector, play, playSelector, pauseSelector) {

    if (play != undefined) {

        timeout = window.setTimeout(function () { SetNextTimeout(contentSelector, tabSelector, timeoutLength); }, timeoutLength);
    }

    SetItem(contentSelector, tabSelector, 0);

    jQuery(tabSelector).click(function () {

        if (play != undefined) {

            clearTimeout(timeout);
            play = false;

            SetPlayState(play, playSelector, pauseSelector);
        }

        var index = jQuery(this).index();
        SetItem(contentSelector, tabSelector, index);

        return false;
    });

    if (playSelector != undefined) {

        jQuery(playSelector).click(function () {

            if (!play) {

                SetNextItem(contentSelector, tabSelector);
                timeout = window.setTimeout(function () { SetNextTimeout(contentSelector, tabSelector, timeoutLength); }, timeoutLength);
                play = true;

                SetPlayState(play, playSelector, pauseSelector);
            }

            return false;
        });
    }

    if (pauseSelector != undefined) {

        jQuery(pauseSelector).click(function () {

            clearTimeout(timeout);
            play = false;

            SetPlayState(play, playSelector, pauseSelector);

            return false;
        });

    }

    return false;
}

function SetItem(contentSelector, tabSelector, index) {

    if (!jQuery(contentSelector).is(':animated')) {

        var currentIndex = GetCurrentIndex(tabSelector);
        if (index != currentIndex) {

            SetActiveNavItem(tabSelector, index);

            jQuery(contentSelector).removeClass("on");
            jQuery(contentSelector).hide();

            var item = jQuery(contentSelector).get(index);
            jQuery(item).show();
            jQuery(item).addClass("on");

            if (tabSelector == '#miniNavigation li') {

                SetAdditionalPaging(contentSelector, index);
            }
        }
    }
}

function SetPlayState(play, playSelector, pauseSelector) {

  if (play) {
    jQuery(playSelector).parent().addClass('active');
    jQuery(pauseSelector).parent().removeClass('active');
  }
  else {
    jQuery(playSelector).parent().removeClass('active');
    jQuery(pauseSelector).parent().addClass('active');
  }
}

function SetActiveNavItem(tabSelector, index) {

    var currentNavItem = jQuery(tabSelector).get(index);
    jQuery(tabSelector).removeClass("active");
    jQuery(currentNavItem).addClass("active");
}

function SetNextItem(contentSelector, tabSelector) {

    var index = GetCurrentIndex(tabSelector);
    var nextIndex = GetNextIndex(tabSelector, index);
    SetItem(contentSelector, tabSelector, nextIndex);
}

function GetCurrentIndex(tabSelector) {

    var currentItem = jQuery(tabSelector + '.active')[0];
    return jQuery(currentItem).index(); ;
}

function GetNextIndex(selector, index) {

    if (jQuery(selector).size() > index + 1)
        return index + 1;
    else
        return 0;
}

function SetNextTimeout(contentSelector, tabSelector, timeoutLength) {

    SetNextItem(contentSelector, tabSelector);
    timeout = window.setTimeout(function () { SetNextTimeout(contentSelector, tabSelector, timeoutLength); }, timeoutLength);
}

function SetAdditionalPaging(contentSelector, index) {

    jQuery('#home-box-pagination ul').empty();

    var contentItems = jQuery(jQuery(contentSelector).get(index)).children();

    for (var ii = 0; ii < jQuery(contentItems).length; ii++) {

        jQuery('#home-box-pagination ul').append('<li><a href="#">' + (ii + 1) + '</a></li>');
    }

    InitTabs('#home-box-pagination ul li', contentItems);

    SetAdditionalItemClasses(contentItems);

    return false;
}

function SetAdditionalItemClasses(contentSelector) {

    for (var ii = 0; ii < jQuery(contentSelector).length; ii++) {

        var contentItems = jQuery(jQuery(contentSelector).get(ii)).children();

        for (var jj = 0; jj < jQuery(contentItems).length; jj++) {

            var item = jQuery(contentItems).get(jj);

            if (jQuery(contentItems).index(jQuery(item)) % 3 == 2) {

                jQuery(item).addClass('right-col');
            }
        }

        var nn = 0;

        for (var jj = jQuery(contentItems).length - 1; jj > 0; jj--) {

            var item = jQuery(contentItems).get(jj);                       

            if (jQuery(contentItems).length % 3 != 0) {

              if (jQuery(contentItems).index(jQuery(item)) % 3 != 2 && jQuery(contentItems).length > 3) {

                    jQuery(item).addClass('last-row');
                }
                else {

                    break;
                }
            }
                else {

                jQuery(item).addClass('last-row');
                nn += 1;

                if (nn == 3) {

                    break;
                }
            }
        }
    }
}
