var currentCd = 0;
var totalCd   = 0;

function changeCd(index)
{
    var newindex = currentCd + index;
    if (newindex > 0 && newindex <= totalCd) {
        changezIndex(newindex);
    }
    else if (newindex == 0) {
        changezIndex(totalCd);
    }
    else if (newindex - 1 == totalCd) {
        changezIndex(1);
    }
}

function changezIndex(layer)
{
    var i = 1;
    var j = totalCd;
    for (i; i <= totalCd; i++)
    {
        var object = $('cd' + i);
        if (object)
        {
            if (i == layer)
            {
                object.style.zIndex = 500;
                var cd = $('cd' + layer);
                if (cd) {
                    var cdid = cd.getAttribute('cdid');
                    getCdData(cdid);
                }
            }
            else
            {
                if (i < layer)
                {
                    object.style.zIndex = i * 3;
                }
                else
                {
                    object.style.zIndex = j * 3;
                }
            }
        }
        j--;
    }
    currentCd = layer;
}

clientWidth = '';
clientX = '';

function getClientInfos(ev)
{
    if (!ev)
    {
        ev = window.event;
    }

    if (document.documentElement && document.documentElement.clientWidth)
    {
        clientWidth = document.documentElement.clientWidth;
    }
    else if (document.body) {
        clientWidth = document.body.clientWidth;
    }
    else {
        clientWidth = '';
    }

    clientX = ev.clientX;
}

function getCdData(id)
{
    try {
        var requestUrl  = absCorrect + 'de/cddata.html';

        var pars        = 'catalog2.detail_id=' + id + '&SID=' + SID;
        var myAjax      = new Ajax.Request(requestUrl, { method: 'post', parameters: pars, asynchronous: false } );

        var response = myAjax.transport.responseXML;
        
        var tracks   = response.getElementsByTagName('track');
        var track    = new Array();
        var disc     = new Array();

        for (var j = 0; j < tracks.length; j++) {
            track[j] = new Array();

            for (var i = 0; i < tracks[j].childNodes.length; i++) {
                if (tracks[j].childNodes[i].nodeName == '#text') {
                    continue;
                }

                if (tracks[j].childNodes[i].nodeName == '#comment') {
                    continue;
                }

                if (tracks[j].childNodes[i].firstChild && tracks[j].childNodes[i].firstChild.nodeValue) {
                    track[j][tracks[j].childNodes[i].nodeName] = tracks[j].childNodes[i].firstChild.nodeValue;
                } else {
                    track[j][tracks[j].childNodes[i].nodeName] = '';
                }
            }
        }

        for (var j = 0; j < response.childNodes.length; j++) {
            for (var i = 0; i < response.childNodes[j].childNodes.length; i++) {
                if (response.childNodes[j].childNodes[i].nodeName == '#text') {
                    continue;
                }

                if (response.childNodes[j].childNodes[i].nodeName == '#comment') {
                    continue;
                }

                if (response.childNodes[j].childNodes[i].firstChild && response.childNodes[j].childNodes[i].firstChild.nodeValue) {
                    disc[response.childNodes[j].childNodes[i].nodeName] = response.childNodes[j].childNodes[i].firstChild.nodeValue;
                } else {
                    disc[response.childNodes[j].childNodes[i].nodeName] = '';
                }
            }
        }

        var songbar = $('songbar');
        songbar.style.display = 'block';

        var songbarinnerText = '';

        for (var i = 0; i < track.length; i++) {
            songbarinnerText += '<div class="song" id="song' + i + '" style="width: ' + track[i]['ratio'] + '%;"></div>';
        }
        songbar.innerHTML = songbarinnerText;

        for (var i = 0; i < track.length; i++) {
            $('song' + i).track = track[i];

            $('song' + i).domouseover = function(ev) {
                var songdetails = $('songdetails');

                for (var i in this.track) {
                    var cddata = $('cddata_track_' + i);
                    if (cddata) {
                        cddata.innerHTML = this.track[i];
                    }
                    var cddata_cutout = $('cddata_track_' + i + '_cutout');
                    if ((this.track[i].length == 0 || this.track[i] == 0) && cddata_cutout) {
                        cddata_cutout.style.display = 'none';
                    }
                    else if (cddata_cutout) {
                        cddata_cutout.style.display = 'block';
                    }
                }
                if (this.track['sound'] != 0) {
                    var cddata_sound = $('cddata_track_demo');
                    cddata_sound.href = this.track['sound'];
                }
                songdetails.style.display = 'block';
            }

            $('song' + i).domousemove = function(ev) {
                var songdetails = $('songdetails');
                getClientInfos(ev);

                if (clientWidth > 0) {
                    songdetails.style.right = clientWidth - clientX - 20 + 'px';
                }
            }

            $('song' + i).domouseout = function(ev) {
                var songdetails = $('songdetails');
                songdetails.style.display = 'none';
            }

            Event.observe($('song' + i), 'mouseover', $('song' + i).domouseover.bind($('song' + i)));
            Event.observe($('song' + i), 'mousemove', $('song' + i).domousemove.bind($('song' + i)));
            Event.observe($('song' + i), 'mouseout', $('song' + i).domouseout.bind($('song' + i)));
        }

        $('songdetails').domouseover = function(ev) {
            this.style.display = 'block';
        }

        $('songdetails').domouseout = function(ev) {
            this.style.display = 'none';
        }

        Event.observe($('songdetails'), 'mouseover', $('songdetails').domouseover.bind($('songdetails')));
        Event.observe($('songdetails'), 'mouseout', $('songdetails').domouseout.bind($('songdetails')));

        for (var i in disc) {
            var cddata = $('cddata_' + i);
            if (cddata) {
                cddata.innerHTML = disc[i];
            }
        }
    }
    catch (e) {
        alert(e.message);
    }
}