﻿var isDivLoaded = new Array();
isDivLoaded[0] = false;
isDivLoaded[1] = false;
isDivLoaded[2] = false;
isDivLoaded[3] = false;
isDivLoaded[4] = false;

var loadedCurrentList = new Array();
loadedCurrentList[0] = '';
loadedCurrentList[1] = '';
loadedCurrentList[2] = '';
loadedCurrentList[3] = '';
loadedCurrentList[4] = '';

function pageOnload()
{
    setInterval('rotateImages()', 6000);
}

function getNextElementNumberToFade()
{
    var iRandomNumber = Math.floor(Math.random()*5);
    if(isDivLoaded[iRandomNumber] == false)
    {
        isDivLoaded[iRandomNumber] = true;
        return iRandomNumber;
    }
    else
    {
        for(i = 0; i < isDivLoaded.length; i++)
        {
            if(isDivLoaded[i] == false)
            {
                isDivLoaded[i] = true;
                return i;
            }
        }
        return iRandomNumber;
    }
}

function fadeElement(iElementNumber, iOpacityBegin, iOpacityEnd, iMilliseconds)
{
    var iSpeed = Math.round(iMilliseconds / 100);
    var iTimer = 0;
    
    if(iOpacityBegin > iOpacityEnd)
    {
        // fade out
        for(iOpacity = iOpacityBegin; iOpacity >= iOpacityEnd; iOpacity--)
        {
            var iFadeSpeed = (iTimer * iSpeed);
            setTimeout("changeOpacity(" + iOpacity + ", " + iElementNumber + ")", iFadeSpeed);
            iTimer++;
        }
    }
    else if(iOpacityBegin < iOpacityEnd)
    {
        // fade in
        for(iOpacity = iOpacityBegin; iOpacity <= iOpacityEnd; iOpacity++)
        {
            var iFadeSpeed = (iTimer * iSpeed);
            setTimeout("changeOpacity(" + iOpacity + ", " + iElementNumber + ")", iFadeSpeed);
            iTimer++;
        }
    }
}

function changeOpacity(iOpacity, iElementNumber)
{
    var sElementIdToFade = 'divUser' + iElementNumber;
    var elementToChange = $get(sElementIdToFade);
    if(elementToChange != null)
    {
        elementToChange.style.opacity = (iOpacity / 100);
        elementToChange.style.MozOpacity = (iOpacity / 100);
        elementToChange.style.KhtmlOpacity = (iOpacity / 100);
        elementToChange.style.filter = 'alpha(opacity=' + iOpacity + ')';
        
        if(iOpacity == 0)
        {
            var iNextElement = Math.floor(Math.random()*isShownList.length);
            for(i = 0; i < isShownList.length; i++)
            {
                if(isShownList[i] == false)
                {
                    isShownList[i] = true;
                    iNextElement = i;
                    break;
                }
            }
            
            while(checkIsInCurrentList(lnkUserList[iNextElement]) == true)
            {
                iNextElement = Math.floor(Math.random()*isShownList.length);
            }
            
            loadedCurrentList[iElementNumber] = lnkUserList[iNextElement];
            
            var imgUser = $get('ctl00_ContentPlaceHolder1_imgUser' + iElementNumber);
            imgUser.src = imgList[iNextElement];
            var lnkUserImage = $get('ctl00_ContentPlaceHolder1_lnkUserImage' + iElementNumber);
            lnkUserImage.href = lnkUserUrlList[iNextElement];
            var lnkUser = $get('ctl00_ContentPlaceHolder1_lnkUser' + iElementNumber);
            lnkUser.innerHTML = trimRight(lnkUserList[iNextElement], iNextElement);
            lnkUser.href = lnkUserUrlList[iNextElement];
            var lnkUserSong = $get('ctl00_ContentPlaceHolder1_lnkUserSong' + iElementNumber);
            lnkUserSong.innerHTML = lnkSongList[iNextElement];
            lnkUserSong.href = lnkSongUrlList[iNextElement];
            var lnkUserArtist = $get('ctl00_ContentPlaceHolder1_lnkUserArtist' + iElementNumber);
            lnkUserArtist.innerHTML = lnkArtistList[iNextElement];
            lnkUserArtist.href = lnkArtistUrlList[iNextElement];
            fadeElement(iElementNumber, 1, 100, 1000);
        }
    }
}

function checkIsInCurrentList(userName)
{
    for(i = 0; i < loadedCurrentList.length; i++)
    {
        if(loadedCurrentList[i] == userName)
        {
            return true;
        }
    }
    return false;
}

function rotateImages()
{
    var iRandomElement = getNextElementNumberToFade();
    fadeElement(iRandomElement, 100, 0, 1000);
}

function trimRight(sText, iIndex)
{
    var iTextLength = sText.length;
    var sIndex = iIndex.toString();
    var iEnd = iTextLength - sIndex.length;
    return sText.substring(0, iEnd);
}