
var MiniPlayButtons = function() {

    try {
        debug("mp3 init elements");
        this.initElements();
    } catch (e) {
        alert(e);
    }

}

MiniPlayButtons.prototype = {

    initElements : function() {

        var self = this;

        $("[mp3]").each(function() {
            debug("mp3 "+this);
            try {
            self.prepareElement($(this));
            } catch (e) {
                alert("bla "+e);
            }
        });

        window.playerclient.registerEventListener(this);

    },

    clearCurrent : function() {
        if (!this.track$) return;
        this.track$.removeClass("paused");
        this.track$.removeClass("stopped");
        this.track$.removeClass("playing");
    },

    onplay : function(track) {
        this.clearCurrent();
        this.track$.addClass("playing");
    },

    onstop : function(track) {
        this.clearCurrent();
        this.track$.addClass("stopped");
    },

    onpause : function(track) {
        this.clearCurrent();
        this.track$.addClass("paused");
    },

    playTrack : function(mp3, track$) {
        this.clearCurrent();
        this.track$ = track$;
        window.playerclient.playTrack(mp3);
    },

    pause : function(track$) {
        this.track$ = track$;
        window.playerclient.pause();
    },

    stop : function(track$) {
        this.track$ = track$;
        window.playerclient.stop();
    },

    prepareElement : function(a$) {

        var mp3 = a$.attr("mp3");

        if (!mp3) return;

        try {

            var self = this;

            var trackselector = a$.attr("track");

            var track$ = null;

            if (!trackselector) {
                var trackid = "mp3-" + (new Date().getTime());
                a$.attr("track", "#" + trackid);
                a$.wrap('<span id="'+trackid+'" class="mp3-track"/>');
                track$ = $("#" + trackid);
                trackselector = "#"+trackid;
            } else {
                track$ = $(trackselector);
            }

            a$.attr("action", "sound-play");

            a$.click(function() {
                self.playTrack(mp3, $($(this).attr("track")));
                return false;
            });



            debug("mp3: "+mp3+", "+a$.attr("no-icon"));

            if (!a$.attr("no-icon")) {

                var play$ = $("<a>");
                play$.attr("track", trackselector);
                play$.addClass("mp3-play-");
                play$.attr("action", "sound-play");
                play$.html('<img src="img/common/Play_weiss.png"/>');

                track$.append(play$);
                play$.click(function() {
                    self.playTrack(mp3, $($(this).attr("track")));
                    return false;
                });

                var pause$ = $("<a>");
                pause$.attr("class", "mp3-pause-");
                pause$.attr("track", trackselector);
                pause$.attr("action", "sound-pause");
                pause$.html('<img src="img/common/Pause_off.png"/>');

                track$.append(pause$);
                pause$.click(function() {
                    self.pause($($(this).attr("track")));
                    return false;
                });

            }

            $("[action='sound-stop']", track$).click(function() {
                self.stop($($(this).attr("track")));
                return false;
            })

        } catch (e) {
            alert(e);
        }

    }


}
