var aPlayer = {
    trackUrls : new Array(
        '/uploaded_files/music/track1.mp3',
        '/uploaded_files/music/track2.mp3',
        '/uploaded_files/music/track3.mp3'
    ),
    wndFriend : null,
    isMainWindow : true,
    defaultVolume : 30,

    currentSettings : {
        mute : 0,
        volume : 0,
        trackNum : 0
    },

    init : function(isParent) {
        if (isParent) {
            this.isMainWindow = true;
            var playerClosed = getCookie("playerClosed", 2);
            if (playerClosed == 2 || playerClosed == 200) {
                this.wndFriend = window.open('/player.html', 'player', 'width=270,height=24,toolbar=0,location=0,directories=0,menubar=0,scrollbars=0,resizable=0,status=0');
            }
        } else {
            setCookie("playerClosed", 0);
            
            this.isMainWindow = false;
            this.wndFriend = window.opener;
            
            if ((movie = thisMovie()) != null) {
                setCookie("playerMute", 0);
                this.wndFriend.aPlayer.markMute(0);
            }
            
            setTimeout('aPlayer.checkState()', '500');
        }
        
        this.markMute(getCookie("playerMute", 0));
        this.markVolume(getCookie("playerVolume", this.defaultVolume));
        this.markPlay(getCookie("playerTrackNum", 0));
    },
    onPlay : function(trackNum) {
        setCookie("playerTrackNum", trackNum);
        
        this.markPlay(trackNum);
        
        if (this.isMainWindow && (this.wndFriend == null || this.wndFriend.aPlayer == undefined || getCookie("playerClosed", 0) == 1)) {
            setCookie("playerClosed", 0);
            this.wndFriend = window.open('/player.html', 'player', 'width=270,height=24,toolbar=0,location=0,directories=0,menubar=0,scrollbars=0,resizable=0,status=0');
            return;
        }
        
        if (getCookie("playerMute", 0) == 1) {
            setCookie("playerMute", 0);
            
            this.markMute(0);
            this.wndFriend.aPlayer.markMute(0);
        }
        
        this.wndFriend.aPlayer.markPlay(trackNum);
    },
    onVolume : function(evt) {
        var target = (evt.target != undefined) ? evt.target : evt.srcElement;
        var xpos = (evt.layerX != null) ? evt.layerX : evt.x;
        var volume = Math.round(xpos * 100 / target.clientWidth);

        setCookie("playerVolume", volume);
        
        this.markVolume(volume);
        
        if (this.wndFriend != null && this.wndFriend.aPlayer != undefined) {
            this.wndFriend.aPlayer.markVolume(volume);
        }
    },
    onMute : function() {
        var mute = (getCookie("playerMute", 0) == 1) ? 0 : 1;
        setCookie("playerMute", mute);
        
        this.markMute(mute);

        if (this.wndFriend != null && this.wndFriend.aPlayer != undefined) {
            this.wndFriend.aPlayer.markMute(mute);
        }
    },
    onClosePlayer : function() {
        setCookie("playerClosed", 1);
        setCookie("playerMute", 1);
        
        this.markMute(1);

        if (this.wndFriend != null && this.wndFriend.aPlayer != undefined) {
            this.wndFriend.aPlayer.markMute(1);
        }
    },
    markPlay : function(trackNum) {
        $('#flashPlayer span').removeClass('selected');
        $('#flashPlayer .track' + (parseInt(trackNum) + 1)).addClass('selected');
        
        if ((movie = thisMovie()) != null) {
            thisMovie().setTrack(this.trackUrls[trackNum]);
        }
    },
    markVolume : function(volume) {
        $('#flashPlayer .indicator').width(volume + '%');
        
        if ((movie = thisMovie()) != null) {
            thisMovie().setVolume(volume / 100);
        }
    },
    markMute : function(mute) {
        if (mute == 1) {
            $('#mute').addClass('muted');
        } else {
            $('#mute').removeClass('muted');
        }
        
        if ((movie = thisMovie()) != null) {
            var volume = 0;
            if (mute == 0) {
                volume = parseInt(getCookie("playerVolume", this.defaultVolume)) / 100;
            }
            thisMovie().setVolume(volume);
        }
    },
    checkState : function() {
        var newVolume = getCookie("playerVolume", this.defaultVolume);
        var newMute = getCookie("playerMute", 0);

        if (newVolume != this.currentSettings.volume) {
            this.currentSettings.volume = newVolume;
            this.markVolume(newVolume);
        }

        if (newMute != this.currentSettings.mute) {
            this.currentSettings.mute = newMute;
            this.markMute(newMute);
        }

        setTimeout('aPlayer.checkState()', '500');
    }
}

function thisMovie() {
    return document.getElementById("simpleFlashPlayerSwf");
}

function setCookie(name, value) {
    expires = new Date('2100', '01', '01');
    document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString() +  "; path=/";
}

function getCookie(name, defaultValue) {
    cookie_name = name + "=";
    cookie_length = document.cookie.length;
    cookie_begin = 0;
    while (cookie_begin < cookie_length) {
        value_begin = cookie_begin + cookie_name.length;
        if (document.cookie.substring(cookie_begin, value_begin) == cookie_name) {
            var value_end = document.cookie.indexOf (";", value_begin);
            if (value_end == -1) {
                value_end = cookie_length;
            }
            return unescape(document.cookie.substring(value_begin, value_end));
        }
        cookie_begin = document.cookie.indexOf(" ", cookie_begin) + 1;
        if (cookie_begin == 0) {
            break;
        }
    }
    return defaultValue;
}

