예제 #1
0
function musicLookup($type, $itemid)
{
    global $mpd;
    mp3act_connect();
    switch ($type) {
        case 'browse':
            $output = "<div class=\"head\">";
            $output .= "<h2>Browse the Music Database</h2></div>";
            $output .= "<p>";
            $output .= "<strong>By Artist Beginning With</strong><br/>" . letters() . "<br/></p>\n";
            $output .= "<p><strong>By Genre</strong><br/>\n";
            $output .= genreForm() . "<br/><br/>\n";
            $output .= "<input type='button' value='Browse All Albums' onclick=\"updateBox('all','All'); return false;\" class='btn2' />\n";
            $output .= "</p>\n";
            break;
        case 'search':
            $output = "<div class=\"head\">";
            $output .= "<h2>Search the Music Database</h2></div>";
            $output .= "<form onsubmit='return searchMusic(this)' method='get' action=''>\n";
            $output .= "<p>\n\t\t\t\t<strong>Keywords</strong><br/>\n\t\t\t\t<input type='text' onfocus='this.select()' name='searchbox' size='35' id='searchbox' value='[enter your search terms]' />\n    \t\t<br/><br/>\n    \t\t<strong>Narrow Your Search</strong>\n    \t\t<br/>\n    \t\t<select name='search_options' size='1'>\n    \t\t\t<option value='all'>All Fields</option>\n    \t\t\t<option value='artists'>Artists</option>\n    \t\t\t<option value='albums'>Albums</option>\n    \t\t\t<option value='songs'>Songs</option>\n    \t\t</select><br/><br/>\n    \t\t<input type='submit' value='submit search' class='btn' /></form>";
            $output .= "</p>\n";
            break;
        case 'letter':
            if (inMpdMode()) {
                if (mpd_connect() == 0) {
                    $head = "<div class=\"head\">";
                    $head .= "<h2>Can't connect to MPD server</h2></div>";
                    return $head;
                }
                /* got a list of artists, filter */
                $output = "<div class=\"head\">";
                $output .= "<h2>Artists Beginning with '" . strtoupper($itemid) . "'</h2></div>";
                $output .= "<p><strong>Artist Listing</strong></p><ul>";
                /* Retrieve all artists then filter locally */
                if (!is_null($artists = $mpd->GetArtists())) {
                    $count = 1;
                    $artistid = 0;
                    $c = count($artists);
                    for ($i = 0; $i < $c; $i++) {
                        $artist = $artists[$i];
                        $artist_upr = strtoupper($artist);
                        $item_upr = strtoupper($itemid);
                        $firstletter = $artist_upr[0];
                        $checkfor = $item_upr[0];
                        if ($checkfor == '#' && ctype_digit($firstletter) || $checkfor == $firstletter) {
                            $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                            $output .= "<li {$alt}><a href=\"#\" onclick=\"updateBox('artist','{$i}'); return false;\" title=\"View Albums for {$artist}\">{$artist}</a></li>\n";
                            $count++;
                        }
                    }
                }
                $output .= "</ul>\n";
            } else {
                if ($itemid == "#") {
                    $query = "SELECT * FROM mp3act_artists \n\t\t                WHERE artist_name \n\t\t                LIKE '0%' \n\t\t                OR artist_name LIKE '1%' \n\t\t                OR artist_name LIKE '2%' \n\t\t                OR artist_name LIKE '3%' \n\t\t                OR artist_name LIKE '4%' \n\t\t                OR artist_name LIKE '5%' \n\t\t                OR artist_name LIKE '6%' \n\t\t                OR artist_name LIKE '7%' \n\t\t                OR artist_name LIKE '8%'\n\t\t                OR artist_name LIKE '9%'\n\t\t                ORDER BY artist_name";
                } else {
                    $query = "SELECT * FROM mp3act_artists\n\t\t                WHERE artist_name LIKE '{$itemid}%'\n\t\t                ORDER BY artist_name";
                }
                $result = mysql_query($query);
                $output = "<div class=\"head\">";
                $output .= "<h2>Artists Beginning with '" . strtoupper($itemid) . "'</h2></div>";
                $output .= "<p>\n\t\t\t\t\t\t<strong>Artist Listing</strong></p>\n\t\t\t\t\t\t<ul>";
                $count = 1;
                while ($row = mysql_fetch_array($result)) {
                    $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                    $output .= "<li {$alt}><a href=\"#\" onclick=\"updateBox('artist','{$row['artist_id']}'); return false;\" title=\"View Albums for {$row['prefix']} {$row['artist_name']}\">{$row['prefix']} {$row['artist_name']}</a></li>\n";
                    $count++;
                }
                $output .= "</ul>\n";
            }
            break;
        case 'all':
            if (inMpdMode()) {
                if (mpd_connect() == 0) {
                    $head = "<div class=\"head\">";
                    $head .= "<h2>Can't connect to MPD server</h2></div>";
                    return $head;
                }
                $output = "<div class=\"head\">";
                $output .= "<h2>All Albums</h2></div> ";
                $output .= "<p><strong>Album Listing</strong></p><ul>";
                $count = 1;
                // we want a combination of artist/album
                if (is_null($artistalbums = mpdGetAllArtistAlbums())) {
                    $output .= "</ul>";
                    return $output;
                }
                $numalbums = count($artistalbums);
                for ($albumidx = 0; $albumidx < $numalbums; $albumidx++) {
                    $album = $artistalbums[$albumidx];
                    $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                    $album_name = $album['Artist'] . " - " . $album['Album'];
                    $album_id = $album['AlbumId'];
                    $output .= "<li {$alt}><a href=\"#\" onclick=\"pladd('album','{$album_id}'); return false;\" title=\"Add Album to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('album', '{$album_id}'); return false;\" title=\"Play this Album Now\"><img src=\"img/play.gif\" /></a> <a href=\"#\" onclick=\"updateBox('album', '{$album_id}'); return false;\" title=\"View Details of {$album_name}\"> {$album_name}</a></li>\n";
                    /* XXX add album year here if available! */
                    $count++;
                }
                $output .= "</ul>\n";
            } else {
                $output = "<div class=\"head\">";
                $output .= "<h2>All Albums</h2></div> ";
                $output .= "<p>\n\t\t\t\t<strong>Album Listing</strong></p>\n\t\t\t\t<ul>";
                $start = $itemid;
                $query = "SELECT mp3act_artists.artist_name,mp3act_artists.prefix,mp3act_albums.* FROM mp3act_albums,mp3act_artists WHERE mp3act_albums.artist_id=mp3act_artists.artist_id ORDER BY artist_name,album_name";
                /* LIMIT $start,30"; */
                $result = mysql_query($query);
                $count = 1;
                while ($row = mysql_fetch_array($result)) {
                    $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                    $output .= "<li {$alt}><a href=\"#\" onclick=\"pladd('album'," . $row['album_id'] . "); return false;\" title=\"Add Album to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('album'," . $row['album_id'] . "); return false;\" title=\"Play this Album Now\"><img src=\"img/play.gif\" /></a> <a href=\"#\" onclick=\"updateBox('album','" . $row['album_id'] . "'); return false;\" title=\"View Details of " . $row['album_name'] . "\">" . $row['prefix'] . " " . $row['artist_name'] . " - " . $row['album_name'] . " " . ($row['album_year'] != 0 ? "<em>(" . $row['album_year'] . ")</em>" : "") . "</a></li>\n";
                    $count++;
                }
                $output .= "</ul>\n";
            }
            break;
        case 'album':
            // This is basically showing all the details of an album, including all the songs.
            if (inMpdMode()) {
                if (mpd_connect() == 0) {
                    $head = "<div class=\"head\">";
                    $head .= "<h2>Can't connect to MPD server</h2></div>";
                    return $head;
                }
                // This query is a lot harder in MPD mode than in local-db mode...
                // stuff to retrieve
                //  - artist name
                //  - genre
                //  - album art (not yet implemented in MPD mode)
                //  - number of tracks
                //  - all album tracks and their duration
                //  - total duration
                //
                // input into this function is an album ID which in MPD case is
                // basically 'artist number, album number'
                //
                // so the first thing we do is extract the album/artist number,
                // then find the album name, then do a query for the album name
                // to find all artists, and select the right one from the list.
                //
                list($artistnum, $albumnum) = split(',', $itemid, 2);
                if (is_null($ar = $mpd->GetAlbums())) {
                    $output = "MPD error: album not found\n";
                    return $output;
                } else {
                    $album = $ar[$albumnum];
                }
                $artists = $mpd->GetArtists();
                if (count($artists) == 0 || $artistnum >= count($artists)) {
                    $output .= "MPD error: artist for album {$album} not found\n";
                    return $output;
                } else {
                    $artist = $artists[$artistnum];
                }
                //
                // now find all the tracks on this album name and filter for
                // our artist
                //
                if (is_null($ar = $mpd->Find(MPD_SEARCH_ALBUM, $album))) {
                    $output .= "MPD error: find failed<br/>\n";
                    return $output;
                } else {
                    // got results, iterate and filter for the right artist
                    $genre = "";
                    $count = 1;
                    $numtracks = 0;
                    $totalplaytime = 0;
                    if (count($ar) > 0) {
                        foreach ($ar as $track) {
                            // we now have:
                            // $track['Album']
                            // $track['Artist']
                            // $track['Track']
                            // $track['Title']
                            // $track['Genre']
                            // $track['Time']
                            // $track['file']
                            if ($track['Artist'] == $artist) {
                                // this is one of ours!
                                if ($genre == "") {
                                    $genre = $track['Genre'];
                                }
                                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                                $song_id = "{$itemid},{$numtracks}";
                                // artistnr, albumnr, songnr
                                $trackno = $track['Track'];
                                // if (($trackno == "") || ($trackno == null)) $trackno = "1";
                                $time = $track['Time'];
                                $min = (int) ($time / 60);
                                $sec = (int) ($time % 60);
                                $length = $min . ":" . ($sec < 10 ? "0" : "") . $sec;
                                $name = $track['Title'];
                                $tracklist .= "<li {$alt} ondblclick=\"pladd('song','{$song_id}'); return false;\" ><a href=\"#\" onclick=\"pladd('song','{$song_id}'); return false;\" title=\"Add Song to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('song','{$song_id}'); return false;\" title=\"Play this Song Now\"><img src=\"img/play.gif\" /></a> " . ($trackno != "" ? "{$trackno}. " : "") . "{$name}<p>0 Plays<br/><em>{$length}</em></p></li>\n";
                                $count++;
                                $numtracks++;
                                $totalplaytime += $time;
                            }
                        }
                    }
                }
                $output = "<div class=\"head\">";
                $output .= "<div class=\"right\"><a href=\"#\" onclick=\"play('album','{$itemid}'); return false;\" title=\"Play this Album Now\">play</a> <a href=\"#\" onclick=\"pladd('album','{$itemid}'); return false;\" title=\"Add Album to Current Playlist\">add</a> " . (getSystemSetting("downloads") == 1 || getSystemSetting("downloads") == 2 && accessLevel(5) ? "<a href=\"#\" onclick=\"newWindow('download','{$itemid}'); return false;\" title=\"Download this Album Now\">download</a>" : "") . "</div>";
                $output .= "<h2>{$album}</h2>{$artist}</div>";
                $output .= "<p>\n";
                $output .= "\t<strong>Tracks:</strong> {$numtracks}<br/>\n";
                //$output .= (($row['album_year'] != 0) ? ("<strong>Year:</strong> " . $row['album_year'] . "<br/>\n") : (""));
                $output .= "\t<strong>Genre:</strong> <a href=\"#\" onclick=\"updateBox('genre','{$genre}'); return false;\" title=\"View Artists from {$genre} Genre\">{$genre}</a><br/>\n";
                $min = (int) ($totalplaytime / 60);
                $sec = (int) ($totalplaytime % 60);
                $length = $min . ":" . ($sec < 10 ? "0" : "") . $sec;
                $output .= "\t<strong>Play Time:</strong> {$length}\n";
                $output .= "\t<br/><br/>\n";
                $output .= "\t<strong>Album Tracks</strong></p>\n";
                $output .= "<ul>\n";
                //$output .= "<img id='bigart' src=\"art/$row[album_art]\" />\n";
                $output .= $tracklist;
                $output .= "</ul>\n";
            } else {
                // NOTE: albums.genre_id fixed here.
                $query = "SELECT mp3act_genres.genre, mp3act_albums.*,mp3act_artists.artist_name,mp3act_artists.prefix,COUNT(mp3act_songs.song_id) as tracks,SEC_TO_TIME(SUM(mp3act_songs.length)) as time FROM mp3act_albums,mp3act_artists,mp3act_songs,mp3act_genres WHERE mp3act_albums.album_genre_id = mp3act_genres.genre_id AND mp3act_albums.album_id={$itemid} AND mp3act_albums.artist_id=mp3act_artists.artist_id AND mp3act_songs.album_id={$itemid} GROUP BY mp3act_songs.album_id";
                $result = mysql_query($query);
                $row = mysql_fetch_array($result);
                $album_art = '';
                if ($row['album_art'] == "") {
                    $row['album_art'] = art_insert($row['album_id'], $row['artist_name'], $row['album_name']);
                    if ($row['album_art'] != '') {
                        $album_art = "<img onmouseover=\"showAlbumArt('block'); return false;\" onmouseout=\"showAlbumArt('none'); return false;\" src=\"art/{$row['album_art']}\" />\n";
                    }
                } elseif ($row['album_art'] != "fail") {
                    $album_art = "<img onmouseover=\"showAlbumArt('block'); return false;\" onmouseout=\"showAlbumArt('none'); return false;\" src=\"art/{$row['album_art']}\" />\n";
                }
                $output = "<div class=\"head\">";
                $output .= "<div class=\"right\"><a href=\"#\" onclick=\"play('album'," . $row['album_id'] . "); return false;\" title=\"Play this Album Now\">play</a> <a href=\"#\" onclick=\"pladd('album',{$row['album_id']}); return false;\" title=\"Add Album to Current Playlist\">add</a> " . (getSystemSetting("downloads") == 1 || getSystemSetting("downloads") == 2 && accessLevel(5) ? "<a href=\"#\" onclick=\"newWindow('download',{$row['album_id']}); return false;\" title=\"Download this Album Now\">download</a>" : "") . "</div>";
                $output .= "<h2>" . $row['album_name'] . "</h2>" . $row['prefix'] . " " . $row['artist_name'] . "</div>";
                $output .= "<p>{$album_art}\n";
                $output .= "\t<strong>Tracks:</strong> {$row['tracks']}<br/>\n";
                $output .= $row['album_year'] != 0 ? "<strong>Year:</strong> " . $row['album_year'] . "<br/>\n" : "";
                $output .= "\t<strong>Genre:</strong> <a href=\"#\" onclick=\"updateBox('genre','{$row['album_genre_id']}'); return false;\" title=\"View Artists from {$row['genre']} Genre\">{$row['genre']}</a><br/>\n";
                $output .= "\t<strong>Play Time:</strong> {$row['time']}\n";
                $output .= "\t<br/><br/>\n";
                $output .= "\t<strong>Album Tracks</strong></p>\n";
                $output .= "<ul>\n";
                $output .= "<img id='bigart' src=\"art/{$row['album_art']}\" />\n";
                $query = "SELECT *,SEC_TO_TIME(length) as length FROM mp3act_songs WHERE album_id={$itemid} ORDER BY track";
                $result = mysql_query($query);
                $count = 1;
                while ($row = mysql_fetch_array($result)) {
                    $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                    $output .= "<li {$alt} ondblclick=\"pladd('song',{$row['song_id']}); return false;\" ><a href=\"#\" onclick=\"pladd('song',{$row['song_id']}); return false;\" title=\"Add Song to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('song',{$row['song_id']}); return false;\" title=\"Play this Song Now\"><img src=\"img/play.gif\" /></a> {$row['track']}. {$row['name']}<p>{$row['numplays']} Plays<br/><em>{$row['length']}</em></p></li>\n";
                    $count++;
                }
                $output .= "</ul>\n";
            }
            break;
        case 'genre':
            // list artists for a given genre
            if (inMpdMode()) {
                if (mpd_connect() == 0) {
                    $head = "<div class=\"head\">";
                    $head .= "<h2>Can't connect to MPD server</h2></div>";
                    return $head;
                }
                // a genre ID in this case is a genre name!! maybe change to a number later. name is ok since it's short and probably not with strange characters
                $artistsforgenre = $mpd->GetArtistsForGenre($itemid);
                if ($artistsforgenre == NULL) {
                    $output = "MPD error: can't get artist list for genre {$itemid}";
                    return $output;
                } else {
                    $artists = $mpd->GetArtists();
                    if ($artists == NULL) {
                        $output = "MPD error: can't get artist list";
                        return $output;
                    }
                    /* list of artists returned, find their number in the global artist list */
                    $output = "<div class=\"head\">";
                    $output .= "<h2>Artists for Genre '{$itemid}'</h2></div>";
                    $output .= "<p><strong>Artist Listing</strong></p><ul>";
                    $count = 1;
                    foreach ($artistsforgenre as $ga) {
                        // find $ga in the big artist table
                        $artistnum = binary_search($artists, $ga);
                        if ($artistnum != -1) {
                            $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                            $output .= "<li {$alt}><a href=\"#\" onclick=\"updateBox('artist','{$artistnum}'); return false;\" title=\"View Albums for {$ga}\">{$ga}</a></li>\n";
                            $count++;
                        } else {
                            $output .= "<li {$alt}>search failed, cant find artist {$ga} ?!</li>\n";
                        }
                    }
                    $output .= "</ul>\n";
                }
            } else {
                // NOTE: albums genre_id fixed here (CHECK IT we're assuming a genre ID input, whereas we might have been given a name!!)
                $query = "SELECT mp3act_genres.genre FROM mp3act_genres WHERE mp3act_genres.genre_id={$itemid}";
                $result = mysql_query($query);
                $row = mysql_fetch_array($result);
                $output = "<div class=\"head\">";
                $output .= "<h2>Artists for Genre '" . $row['genre'] . "'</h2></div>";
                $output .= "<p><strong>Artist Listing</strong></p><ul>";
                $query = "SELECT mp3act_artists.artist_id,mp3act_artists.artist_name,mp3act_artists.prefix FROM mp3act_artists,mp3act_songs WHERE mp3act_songs.genre_id={$itemid} AND mp3act_artists.artist_id=mp3act_songs.artist_id GROUP BY artist_id ORDER BY artist_name";
                $result = mysql_query($query);
                $count = 1;
                while ($row = mysql_fetch_array($result)) {
                    $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                    $output .= "<li {$alt}><a href=\"#\" onclick=\"updateBox('artist','{$row['artist_id']}'); return false;\" title=\"View Albums for {$row['artist_name']}\">{$row['prefix']} {$row['artist_name']}</a></li>\n";
                    $count++;
                }
                $output .= "</ul>\n";
            }
            break;
        case 'artist':
            // list albums for artist, $itemid is the artist number
            if (inMpdMode()) {
                if (mpd_connect() == 0) {
                    $head = "<div class=\"head\">";
                    $head .= "<h2>Can't connect to MPD server</h2></div>";
                    return $head;
                }
                // find artist name
                if (is_null($artists = $mpd->GetArtists())) {
                    $output = "MPD error: Can't find artist name\n";
                }
                $artist = $artists[$itemid];
                if (is_null($allalbums = $mpd->GetAlbums())) {
                    return "MPD error: can't get list of all albums";
                }
                $output = "<div class=\"head\">";
                $output .= "<h2>{$artist}</h2></div>";
                $output .= "<p>\n";
                $output .= "<strong>Album Listing</strong></p>\n";
                $output .= "<ul>\n";
                // list albums for this artist
                if (!is_null($albums = $mpd->GetAlbumsForArtist($artist))) {
                    if (count($albums) > 0) {
                        $count = 1;
                        foreach ($albums as $album) {
                            $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                            $albumnum = binary_search($allalbums, $album);
                            $album_id = "{$itemid},{$albumnum}";
                            $output .= "<li {$alt}><a href=\"#\" onclick=\"pladd('album', '{$album_id}'); return false;\" title=\"Add Album to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('album', '{$album_id}'); return false;\" title=\"Play this Album Now\"><img src=\"img/play.gif\" /></a> <a href=\"#\" onclick=\"updateBox('album', '{$album_id}'); return false;\" title=\"View Details of {$album}\">{$album}</a></li>\n";
                            $count++;
                        }
                    }
                }
                $output .= "</ul>\n";
            } else {
                $query = "SELECT artist_id,artist_name,prefix FROM mp3act_artists WHERE artist_id={$itemid}";
                $result = mysql_query($query);
                $row = mysql_fetch_array($result);
                $output = "<div class=\"head\">";
                $output .= "<h2>{$row['prefix']} {$row['artist_name']}</h2></div>";
                $output .= "<p>\n";
                $output .= "<strong>Album Listing</strong></p>\n";
                $output .= "<ul>\n";
                $query = "SELECT mp3act_albums.* FROM mp3act_albums WHERE mp3act_albums.artist_id={$itemid} ORDER BY mp3act_albums.album_name";
                $result = mysql_query($query);
                $count = 1;
                while ($row = mysql_fetch_array($result)) {
                    $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                    $output .= "<li {$alt}><a href=\"#\" onclick=\"pladd('album'," . $row['album_id'] . "); return false;\" title=\"Add Album to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('album'," . $row['album_id'] . "); return false;\" title=\"Play this Album Now\"><img src=\"img/play.gif\" /></a> <a href=\"#\" onclick=\"updateBox('album','" . $row['album_id'] . "'); return false;\" title=\"View Details of " . $row['album_name'] . "\">" . $row['album_name'] . " " . ($row['album_year'] != 0 ? "<em>(" . $row['album_year'] . ")</em>" : "") . "</a></li>\n";
                    $count++;
                }
                $output .= "</ul>\n";
            }
            break;
        case 'admin':
            $output = "<div class=\"head\">";
            $output .= "<h2>Administration Panel</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>System Settings</strong><br/>\n";
            $output .= "<a href='#' onclick=\"editSettings(0); return false;\" title='Edit System Systems'>Edit System Settings</a><br/>\n";
            $output .= "</p>\n";
            $output .= "<p>\n";
            $output .= "<strong>Database Functions</strong><br/>\n";
            if (inMpdMode()) {
                $output .= "<a href='#' onclick=\"mpd_updatedb(); return false;\" title='Update the MPD database'>Update the MPD database</a><br/>\n";
            }
            $output .= "<a href='#' onclick=\"newWindow('add',0); return false;\" title='Add Music to the Database'>Add New Music to the Database</a><br/>\n";
            $output .= "<a href='#' onclick=\"clearDB(); return false;\" title='Clear out the Database'>Clear Out the Music Database and Play History</a><br/>\n";
            $output .= "</p>";
            $output .= "<p>\n";
            $output .= "<strong>User Functions</strong><br/>\n";
            $output .= "<a href='#' onclick=\"adminEditUsers(0,'',''); return false;\" title='Edit User Permissions'>Edit User Accounts</a><br/>\n";
            $output .= "<a href='#' onclick=\"adminAddUser(0); return false;\" title='Add New User Account'>Add New User Account</a><br/>\n";
            $output .= "</p>";
            if (getSystemSetting("invite_mode") == 1) {
                $output .= "<form onsubmit='return sendInvite(this)' method='get' action=''>\n";
                $output .= "<p id='invite'>";
                $output .= "<br/><strong>Send an Invitation for Registration<br/>\n";
                $output .= "<input type='text' onfocus='this.select()' name='email' id='email' value='Enter Email Address of Recipient' size='32' /><br/>\n";
                $output .= "<br/><input type='submit' value='send invite' class='btn' /></form>";
                $output .= "</p>";
            }
            break;
        case 'prefs':
            $query = "SELECT DATE_FORMAT(mp3act_users.date_created,'%M %D, %Y') as date_created FROM mp3act_users WHERE mp3act_users.user_id={$_SESSION['sess_userid']}";
            $query2 = "SELECT COUNT(play_id) as playcount FROM mp3act_playhistory WHERE user_id={$_SESSION['sess_userid']} GROUP BY user_id";
            $result = mysql_query($query);
            $result2 = mysql_query($query2);
            $row = mysql_fetch_array($result);
            $row2 = mysql_fetch_array($result2);
            if (mysql_num_rows($result2) == 0) {
                $row2['playcount'] = 0;
            }
            $dayssince = (time() - strtotime($row['date_created'])) / (60 * 60 * 24);
            $output = "<div class=\"head\">";
            $output .= "<h2>{$_SESSION['sess_firstname']} {$_SESSION['sess_lastname']}'s Account ({$_SESSION['sess_username']})</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>Date Joined:</strong> {$row['date_created']}<br/>\n";
            $output .= "<strong>Songs Played:</strong> {$row2['playcount']}<br/>\n";
            $output .= "<strong>Daily Average:</strong> " . round($row2['playcount'] / $dayssince, 2) . " songs/day<br/><br/>\n";
            $output .= "<a href='#' onclick=\"editUser('info',0); return false;\" >Edit User Info</a><br/>";
            $output .= "<a href='#' onclick=\"editUser('settings',0); return false;\" >Edit User Settings</a><br/>";
            $output .= "<a href='#' onclick=\"editUser('pass',0); return false;\" >Change Password</a><br/><br/>";
            if (hasScrobbler($_SESSION['sess_userid'])) {
                $as = getScrobblerStats($_SESSION['sess_userid']);
                $output .= "<strong>AudioScrobbler Submission Queue:</strong> {$as['count']} songs " . ($as['count'] > 0 ? "<a href='#' onclick=\"submitScrobbler({$_SESSION['sess_userid']}); return false;\" title='Force Submission to AudioScrobbler'>[submit]</a>" : "") . "<br/>\n";
                $output .= "<strong>AudioScrobbler Response:</strong> {$as['last_result']}<br/>\n";
                $output .= "<a href='http://www.audioscrobbler.com/user/{$as['username']}' target='_new' title='View Your AudioSrobbler Statistics Page'>View Your AudioSrobbler Statistics Page</a><br/><br/>\n";
            }
            $output .= "</p>";
            break;
        case 'random':
            $output = "<div class=\"head\">";
            $output .= "<h2>Random Mix Maker</h2></div>";
            $output .= "<form onsubmit='return randPlay(this)' method='get' action=''>\n<p>";
            if ($_SESSION['sess_playmode'] == "streaming" || inMpdMode()) {
                $output .= "<strong>Number of Songs</strong><br/>\n\n\t\t\t\t<select name='random_count'>\n\t\t\t\t<option value=10>10 </option>\n\t\t\t\t<option value=20>20 </option>\n\t\t\t\t<option value=30>30 </option>\n\t\t\t\t<option value=40>40 </option>\n\t\t\t\t<option value=50>50 </option>\n         </select><br/>\n";
            }
            $output .= "<strong>Random Type</strong><br/>\n\n\t\t\t\t<select name='random_type' onchange=\"getRandItems(this.options[selectedIndex].value); return false;\" >\n\t\t\t\t<option value='' >Choose Type...</option>\n\t\t\t\t<option value='artists' >Artists</option>\n\t\t\t\t<option value='genre' >Genre</option>\n\t\t\t\t<option value='albums' >Albums</option>\n\t\t\t    <option value='all' >Everything</option>\n         \t\t</select><br/>\n";
            $output .= "<strong>Random Items</strong>\n<span id='rand_items'></span>\n\t\t\t<br/><br/>";
            $output .= "<input type='submit' value='play mix' class='btn' />";
            $output .= "</form></p>\n";
            break;
        case 'playlists':
            if (inMpdMode()) {
                if (mpd_connect() == 0) {
                    $head = "<div class=\"head\">";
                    $head .= "<h2>Can't connect to MPD server</h2></div>";
                    return $head;
                }
                $playlists = $mpd->GetPlaylists();
                $output = "<div class=\"head\">";
                $output .= "<h2>Saved Playlists</h2></div>";
                //$output .= "<p><strong>Public Playlists</strong></p>\n";
                $output .= "<ul>\n";
                $numplaylists = count($playlists);
                if ($numplaylists == 0) {
                    $output .= "No Saved Playlists";
                }
                for ($i = 0; $i < $numplaylists; $i++) {
                    $plid = $i;
                    $plname = $playlists[$i];
                    $output .= "<li><a href=\"#\" onclick=\"pladd('playlist',{$plid}); return false;\" title='Load this Saved Playlist'><img src=\"img/add.gif\" /></a> " . (accessLevel(10) ? "<a href=\"#\" onclick=\"deletePlaylist({$plid}); return false;\" title='DELETE this Saved Playlist'><img src=\"img/rem.gif\" /></a>" : "") . " {$plname}</li>";
                }
                $output .= "</ul>\n";
            } else {
                $query = "SELECT *,SEC_TO_TIME(time) AS time2 FROM mp3act_saved_playlists WHERE private=0";
                $result = mysql_query($query);
                $output = "<div class=\"head\">";
                $output .= "<h2>Saved Playlists</h2></div>";
                $output .= "<p><strong>Public Playlists</strong></p>\n";
                $output .= "<ul>\n";
                if (mysql_num_rows($result) == 0) {
                    $output .= "No Public Playlists";
                }
                while ($row = mysql_fetch_array($result)) {
                    $output .= "<li><a href=\"#\" onclick=\"pladd('playlist',{$row['playlist_id']}); return false;\" title='Load this Saved Playlist'><img src=\"img/add.gif\" /></a> " . (accessLevel(10) ? "<a href=\"#\" onclick=\"deletePlaylist({$row['playlist_id']}); return false;\" title='DELETE this Saved Playlist'><img src=\"img/rem.gif\" /></a>" : "") . " <a onclick=\"updateBox('saved_pl','{$row['playlist_id']}'); \" title='Click to View Playlist' href='#'>{$row['playlist_name']} - {$row['songcount']} Songs ({$row['time2']})</a></li>";
                }
                $output .= "</ul>\n";
                $output .= "<p><strong>Your Private Playlists</strong></p>\n";
                $query = "SELECT *,SEC_TO_TIME(time) AS time2 FROM mp3act_saved_playlists WHERE private=1 AND user_id={$_SESSION['sess_userid']} ORDER BY playlist_id DESC";
                $result = mysql_query($query);
                $output .= "<ul>\n";
                if (mysql_num_rows($result) == 0) {
                    $output .= "No Private Playlists";
                }
                while ($row = mysql_fetch_array($result)) {
                    $output .= "<li><a href=\"#\" onclick=\"pladd('playlist',{$row['playlist_id']}); return false;\" title='Load this Saved Playlist'><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"deletePlaylist({$row['playlist_id']}); return false;\" title='DELETE this Saved Playlist'><img src=\"img/rem.gif\" /></a> <a onclick=\"updateBox('saved_pl','{$row['playlist_id']}'); \" title='Click to View Playlist' href='#'>{$row['playlist_name']} - {$row['songcount']} Songs ({$row['time2']})</a></li>";
                }
                $output .= "</ul>\n";
            }
            break;
        case 'saved_pl':
            if (inMpdMode()) {
                // TODO: implement view saved playlist
                // or maybe it's not supported in MPD??
            } else {
                $query = "SELECT *,SEC_TO_TIME(time) AS time2 FROM mp3act_saved_playlists WHERE playlist_id={$itemid}";
                $result = mysql_query($query);
                $row = mysql_fetch_array($result);
                $output = "<div class=\"head\">";
                $output .= "<div class=\"right\"><a href=\"#\" onclick=\"pladd('playlist',{$row['playlist_id']}); return false;\" title=\"Load Playlist\">load playlist</a></div>";
                $output .= "<h2>View Saved Playlist</h2></div>";
                $output .= "<p><strong>Playlist Info</strong><br/>{$row['songcount']} Songs<br/>{$row['time2']}</p>\n";
                $output .= "<p><strong>Playlist Songs</strong></p>\n";
                $output .= "<ul>\n";
                $songs = explode(",", $row['playlist_songs']);
                $count = 0;
                foreach ($songs as $song) {
                    $query = "SELECT mp3act_songs.*,SEC_TO_TIME(mp3act_songs.length) AS length,mp3act_artists.artist_name FROM mp3act_artists,mp3act_songs WHERE mp3act_songs.song_id={$song} AND mp3act_artists.artist_id=mp3act_songs.artist_id";
                    $result = mysql_query($query);
                    $row = mysql_fetch_array($result);
                    $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                    $output .= "<li {$alt}>{$row['artist_name']} - {$row['name']}<p>{$row['numplays']} Plays<br/><em>{$row['length']}</em></p></li>";
                    $count++;
                }
                $output .= "</ul>\n";
            }
            break;
        case 'about':
            $output = "<div class=\"head\">";
            $output .= "<h2>mp3act Music System - v" . getSystemSetting("version") . "</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>Date: </strong>July 31, 2005<br/>\n";
            $output .= "<strong>Author: </strong><a href='http://www.jonbuda.com' target='_blank'>Jon Buda</a> | <a href='http://www.visiblebits.com' target='_blank'>A VisibleBits Production</a><br/>\n";
            $output .= "<strong>Website: </strong><a href='http://www.mp3act.net' target='_blank'>http://www.mp3act.net</a><br/>\n";
            $output .= "<strong>Support: </strong><a href='http://www.mp3act.net/support/' target='_blank'>http://www.mp3act.net/support/</a><br/>\n";
            $output .= "<form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" target='_blank'>\n<input type=\"hidden\" name=\"cmd\" value=\"_s-xclick\">\n<input class='noborder' title='Donate to mp3act!' type=\"image\" src=\"img/paypal_donate.gif\" border=\"0\" name=\"submit\" alt=\"Make payments with PayPal - it's fast, free and secure!\">\n<input type=\"hidden\" name=\"encrypted\" value=\"-----BEGIN PKCS7-----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-----END PKCS7-----\">\n</form>\n";
            $output .= "</p>";
            $output .= "<h3>Thanks to Contributors and Testers</h3>\n";
            $output .= "<p>Ben Callam<br/>Joe Doss<br/>All of 708 Park St.</p>\n";
            break;
        case 'stats':
            $query = "SELECT * FROM mp3act_stats";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $query = "SELECT COUNT(user_id) AS users FROM mp3act_users";
            $result = mysql_query($query);
            $row2 = mysql_fetch_array($result);
            $query = "SELECT COUNT(play_id) AS songs FROM mp3act_playhistory";
            $result = mysql_query($query);
            $row3 = mysql_fetch_array($result);
            $output = "<div class=\"head\">";
            $output .= "<h2>Server Statistics</h2></div>";
            $output .= "<p>\n";
            $output .= "<a href='#' onclick=\"updateBox('recentadd','0'); return false;\" >Recently Added Albums</a><br/>";
            $output .= "<a href='#' onclick=\"updateBox('recentplay','0'); return false;\" >Recently Played Songs</a><br/>";
            $output .= "<a href='#' onclick=\"updateBox('topplay','0'); return false;\" >Top Played Songs</a><br/>";
            $output .= "</p>\n";
            $output .= "<h3>Local Server Statistics</h3>\n";
            $output .= "<p><strong>Songs:</strong> {$row['num_songs']}<br/>\n";
            $output .= "<strong>Albums:</strong> {$row['num_albums']}<br/>\n";
            $output .= "<strong>Artists:</strong> {$row['num_artists']}<br/>\n";
            $output .= "<strong>Genres:</strong> {$row['num_genres']}<br/><br/>\n";
            $output .= "<strong>Total Time:</strong> {$row['total_time']}<br/>\n";
            $output .= "<strong>Total Size:</strong> {$row['total_size']}<br/><br/>\n";
            $output .= "<strong>Registered Users:</strong> {$row2['users']}<br/>\n";
            $output .= "<strong>Songs Played:</strong> {$row3['songs']}<br/></p>\n";
            break;
        case 'recentadd':
            $query = "SELECT mp3act_albums.album_name,mp3act_albums.album_id,\n\t\t\tmp3act_artists.artist_name, \n\t\t\tDATE_FORMAT(mp3act_songs.date_entered,'%m.%d.%Y') as pubdate   \n\t\t\tFROM mp3act_songs,mp3act_albums,mp3act_artists \n\t\t\tWHERE mp3act_songs.album_id=mp3act_albums.album_id \n\t\t\tAND mp3act_artists.artist_id=mp3act_songs.artist_id \n\t\t\tGROUP BY mp3act_songs.album_id ORDER BY mp3act_songs.date_entered DESC LIMIT 40";
            $result = mysql_query($query);
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"switchPage('stats'); return false;\" title=\"Return to Statistics Page\">back</a></div>";
            $output .= "<h2>Recently Added Albums</h2></div><ul>";
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}><small>{$row['pubdate']}</small> <a href=\"#\" onclick=\"pladd('album',{$row['album_id']}); return false;\" title=\"Add Album to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('album',{$row['album_id']}); return false;\" title=\"Play this Album Now\"><img src=\"img/play.gif\" /></a> <a href=\"#\" onclick=\"updateBox('album','{$row['album_id']}'); return false;\" title=\"View Details of {$row['album_name']}\"><em>{$row['artist_name']}</em> - {$row['album_name']}</a></li>";
                $count++;
            }
            $output .= "</ul>";
            break;
        case 'topplay':
            $query = "SELECT mp3act_albums.album_name, mp3act_songs.numplays, mp3act_songs.name, \n\t\t\tmp3act_artists.artist_name,mp3act_songs.song_id \n\t\t\tFROM mp3act_songs,mp3act_albums,mp3act_artists \n\t\t\tWHERE mp3act_songs.album_id=mp3act_albums.album_id \n\t\t\tAND mp3act_artists.artist_id=mp3act_songs.artist_id \n\t\t\tAND mp3act_songs.numplays > 0 \n\t\t\tORDER BY mp3act_songs.numplays DESC LIMIT 40";
            $result = mysql_query($query);
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"switchPage('stats'); return false;\" title=\"Return to Statistics Page\">back</a></div>";
            $output .= "<h2>Top Played Songs</h2></div><ul>";
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}><small>{$row['numplays']} Plays</small> <a href=\"#\" onclick=\"pladd('song',{$row['song_id']}); return false;\" title=\"Add Song to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('song',{$row['song_id']}); return false;\" title=\"Play this Song Now\"><img src=\"img/play.gif\" /></a> <em>{$row['artist_name']}</em> - {$row['name']}</li>";
                $count++;
            }
            $output .= "</ul>";
            break;
        case 'recentplay':
            $query = "SELECT mp3act_songs.name, mp3act_songs.song_id, \n\t\t\tmp3act_artists.artist_name,\n\t\t\tDATE_FORMAT(mp3act_playhistory.date_played,'%m.%d.%Y') as playdate \n\t\t\tFROM mp3act_songs,mp3act_artists,mp3act_playhistory \n\t\t\tWHERE mp3act_songs.song_id=mp3act_playhistory.song_id\n\t\t\tAND mp3act_artists.artist_id=mp3act_songs.artist_id \n\t\t\tORDER BY mp3act_playhistory.play_id DESC LIMIT 40";
            $result = mysql_query($query);
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"switchPage('stats'); return false;\" title=\"Return to Statistics Page\">back</a></div>";
            $output .= "<h2>Recently Played Songs</h2></div><ul>";
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}><small>{$row['playdate']}</small> <a href=\"#\" onclick=\"pladd('song',{$row['song_id']}); return false;\" title=\"Add Song to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('song',{$row['song_id']}); return false;\" title=\"Play this Song Now\"><img src=\"img/play.gif\" /></a> <em>{$row['artist_name']}</em> - {$row['name']}</li>";
                $count++;
            }
            $output .= "</ul>";
            break;
    }
    return $output;
}
예제 #2
0
function musicLookup($type, $itemid)
{
    mp3act_connect();
    switch ($type) {
        case 'browse':
            $output = "<div class=\"head\">";
            $output .= "<h2>Browse the Music Database</h2></div>";
            $output .= "<p>";
            $output .= "<strong>By Artist Beginning With</strong><br/>" . letters() . "<br/></p>\n";
            $output .= "<p><strong>By Genre</strong><br/>\n";
            $output .= genreForm() . "<br/><br/>\n";
            $output .= "<input type='button' value='Browse All Albums' onclick=\"updateBox('all','All'); return false;\" class='btn2' />\n";
            $output .= "</p>\n";
            break;
        case 'search':
            $output = "<div class=\"head\">";
            $output .= "<h2>Search the Music Database</h2></div>";
            $output .= "<form onsubmit='return searchMusic(this)' method='get' action=''>\n";
            $output .= "<p>\n        <strong>Keywords</strong><br/>\n        <input type='text' onfocus='this.select()' name='searchbox' size='35' id='searchbox' value='[enter your search terms]' />\n        <br/><br/>\n        <strong>Narrow Your Search</strong>\n        <br/>\n        <select name='search_options' size='1'>\n        <option value='all'>All Fields</option>\n        <option value='artists'>Artists</option>\n        <option value='albums'>Albums</option>\n        <option value='songs'>Songs</option>\n        </select><br/><br/>\n        <input type='submit' value='submit search' class='btn' /></form>";
            $output .= "</p>\n";
            break;
        case 'letter':
            if ($itemid == "#") {
                $query = "SELECT *  FROM mp3act_artists \n                            WHERE artist_name \n                            LIKE '0%' \n                            OR artist_name LIKE '1%' \n                            OR artist_name LIKE '2%' \n                            OR artist_name LIKE '3%' \n                            OR artist_name LIKE '4%' \n                            OR artist_name LIKE '5%' \n                            OR artist_name LIKE '6%' \n                            OR artist_name LIKE '7%' \n                            OR artist_name LIKE '8%'\n                            OR artist_name LIKE '9%'\n                            ORDER BY artist_name";
            } else {
                $query = "SELECT *  FROM mp3act_artists\n                            WHERE artist_name LIKE '{$itemid}%'\n                            ORDER BY artist_name";
            }
            $result = mysql_query($query);
            $output = "<div class=\"head\">";
            $output .= "<h2>Artists Beginning with '" . strtoupper($itemid) . "'</h2></div>";
            $output .= "<p>\n        <strong>Artist Listing</strong></p>\n        <ul>";
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}><a href=\"#\" onclick=\"updateBox('artist',{$row['artist_id']}); return false;\" title=\"View Albums for {$row['prefix']} {$row['artist_name']}\">{$row['prefix']} {$row['artist_name']}</a></li>\n";
                $count++;
            }
            $output .= "</ul>\n";
            break;
        case 'all':
            $output = "<div class=\"head\">";
            //$output .= "<div class=\"right\"><a href='#' onclick=\"updateBox('all',$itemid-30); return false;\">Prev Page</a> <a href='#' onclick=\"updateBox('all',$itemid+30); return false;\">Next Page</a> </div>";
            $output .= "<h2>All Albums</h2></div> ";
            $output .= "<p>\n        <strong>Album Listing</strong></p>\n        <ul>";
            $start = $itemid;
            $query = "SELECT mp3act_artists.artist_name,mp3act_artists.prefix,mp3act_albums.* FROM mp3act_albums,mp3act_artists WHERE mp3act_albums.artist_id=mp3act_artists.artist_id ORDER BY artist_name,album_name";
            /* LIMIT $start,30"; */
            $result = mysql_query($query);
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}><a href=\"#\" onclick=\"pladd('album'," . $row['album_id'] . "); return false;\" title=\"Add Album to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('album'," . $row['album_id'] . "); return false;\" title=\"Play this Album Now\"><img src=\"img/play.gif\" /></a> <a href=\"#\" onclick=\"updateBox('album'," . $row['album_id'] . "); return false;\" title=\"View Details of " . $row['album_name'] . "\">" . $row['prefix'] . " " . $row['artist_name'] . " - " . $row['album_name'] . " " . ($row['album_year'] != 0 ? "<em>(" . $row['album_year'] . ")</em>" : "") . "</a></li>\n";
                $count++;
            }
            $output .= "</ul>\n";
            break;
        case 'album':
            $query = "SELECT mp3act_albums.*,mp3act_artists.artist_name,mp3act_artists.prefix,COUNT(mp3act_songs.song_id) as tracks,SEC_TO_TIME(SUM(mp3act_songs.length)) as time FROM mp3act_albums,mp3act_artists,mp3act_songs WHERE mp3act_albums.album_id={$itemid} AND mp3act_albums.artist_id=mp3act_artists.artist_id AND mp3act_songs.album_id={$itemid} GROUP BY mp3act_songs.album_id";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $album_art = '';
            if ($row['album_art'] == "") {
                $row['album_art'] = art_insert($row['album_id'], $row['artist_name'], $row['album_name']);
                if ($row['album_art'] != '') {
                    $album_art = "<img onmouseover=\"showAlbumArt('block'); return false;\" onmouseout=\"showAlbumArt('none'); return false;\" src=\"art/{$row['album_art']}\" />\n";
                }
            } elseif ($row['album_art'] != "fail") {
                $album_art = "<img onmouseover=\"showAlbumArt('block'); return false;\" onmouseout=\"showAlbumArt('none'); return false;\" src=\"art/{$row['album_art']}\" />\n";
            }
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"play('album'," . $row['album_id'] . "); return false;\" title=\"Play this Album Now\">play</a> <a href=\"#\" onclick=\"pladd('album',{$row['album_id']}); return false;\" title=\"Add Album to Current Playlist\">add</a> " . (getSystemSetting("downloads") == 1 || getSystemSetting("downloads") == 2 && accessLevel(5) ? "<a href=\"#\" onclick=\"newWindow('download',{$row['album_id']}); return false;\" title=\"Download this Album Now\">download</a>" : "") . "</div>";
            $output .= "<h2>" . $row['album_name'] . "</h2>" . $row['prefix'] . " " . $row['artist_name'] . "</div>";
            $output .= "<p>{$album_art}\n";
            $output .= "\t<strong>Tracks:</strong> {$row['tracks']}<br/>\n";
            $output .= $row['album_year'] != 0 ? "<strong>Year:</strong> " . $row['album_year'] . "<br/>\n" : "";
            $output .= "\t<strong>Genre:</strong> <a href=\"#\" onclick=\"updateBox('genre','{$row['album_genre']}'); return false;\" title=\"View Artists from {$row['album_genre']} Genre\">{$row['album_genre']}</a><br/>\n";
            $output .= "\t<strong>Play Time:</strong> {$row['time']}\n";
            $output .= "\t<br/><br/>\n";
            $output .= "\t<strong>Album Tracks</strong></p>\n";
            $output .= "<ul>\n";
            $output .= "<img id='bigart' src=\"art/{$row['album_art']}\" />\n";
            $query = "SELECT *,SEC_TO_TIME(length) as length FROM mp3act_songs WHERE album_id={$itemid} ORDER BY track";
            $result = mysql_query($query);
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt} ondblclick=\"pladd('song',{$row['song_id']}); return false;\" ><a href=\"#\" onclick=\"pladd('song',{$row['song_id']}); return false;\" title=\"Add Song to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('song',{$row['song_id']}); return false;\" title=\"Play this Song Now\"><img src=\"img/play.gif\" /></a> {$row['track']}. {$row['name']}<p>{$row['numplays']} Plays<br/><em>{$row['length']}</em></p></li>\n";
                $count++;
            }
            $output .= "</ul>\n";
            break;
        case 'genre':
            $query = "SELECT mp3act_artists.artist_id,mp3act_artists.artist_name,mp3act_artists.prefix FROM mp3act_artists,mp3act_albums WHERE mp3act_albums.album_genre='{$itemid}' AND mp3act_artists.artist_id=mp3act_albums.artist_id GROUP BY mp3act_artists.artist_id ORDER BY mp3act_artists.artist_name";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $output = "<div class=\"head\">";
            $output .= "<h2>Artists for Genre '{$itemid}'</h2></div>";
            $output .= "<p>\n        <strong>Artist Listing</strong></p>\n        <ul>";
            $result = mysql_query($query);
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}><a href=\"#\" onclick=\"updateBox('artist',{$row['artist_id']}); return false;\" title=\"View Albums for {$row['artist_name']}\">{$row['prefix']} {$row['artist_name']}</a></li>\n";
                $count++;
            }
            $output .= "</ul>\n";
            break;
        case 'artist':
            $query = "SELECT artist_id,artist_name,prefix FROM mp3act_artists WHERE artist_id={$itemid}";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $output = "<div class=\"head\">";
            $output .= "<h2>{$row['prefix']} {$row['artist_name']}</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>Album Listing</strong></p>\n";
            $output .= "<ul>\n";
            $query = "SELECT mp3act_albums.* FROM mp3act_albums WHERE mp3act_albums.artist_id={$itemid} ORDER BY mp3act_albums.album_name";
            $result = mysql_query($query);
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}><a href=\"#\" onclick=\"pladd('album'," . $row['album_id'] . "); return false;\" title=\"Add Album to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('album'," . $row['album_id'] . "); return false;\" title=\"Play this Album Now\"><img src=\"img/play.gif\" /></a> <a href=\"#\" onclick=\"updateBox('album'," . $row['album_id'] . "); return false;\" title=\"View Details of " . $row['album_name'] . "\">" . $row['album_name'] . " " . ($row['album_year'] != 0 ? "<em>(" . $row['album_year'] . ")</em>" : "") . "</a></li>\n";
                $count++;
            }
            $output .= "</ul>\n";
            break;
        case 'admin':
            $output = "<div class=\"head\">";
            $output .= "<h2>Administration Panel</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>System Settings</strong><br/>\n";
            $output .= "<a href='#' onclick=\"editSettings(0); return false;\" title='Edit System Systems'>Edit System Settings</a><br/>\n";
            $output .= "</p>\n";
            $output .= "<p>\n";
            $output .= "<strong>Database Functions</strong><br/>\n";
            $output .= "<a href='#' onclick=\"newWindow('add',0); return false;\" title='Add Music to the Database'>Add New Music to the Database</a><br/>\n";
            $output .= "<a href='#' onclick=\"clearDB(); return false;\" title='Clear out the Database'>Clear Out the Music Database and Play History</a><br/>\n";
            $output .= "</p>";
            $output .= "<p>\n";
            $output .= "<strong>User Functions</strong><br/>\n";
            $output .= "<a href='#' onclick=\"adminEditUsers(0,'',''); return false;\" title='Edit User Permissions'>Edit User Accounts</a><br/>\n";
            $output .= "<a href='#' onclick=\"adminAddUser(0); return false;\" title='Add New User Account'>Add New User Account</a><br/>\n";
            $output .= "</p>";
            if (getSystemSetting("invite_mode") == 1) {
                $output .= "<form onsubmit='return sendInvite(this)' method='get' action=''>\n";
                $output .= "<p id='invite'>";
                $output .= "<br/><strong>Send an Invitation for Registration<br/>\n";
                $output .= "<input type='text' onfocus='this.select()' name='email' id='email' value='Enter Email Address of Recipient' size='32' /><br/>\n";
                $output .= "<br/><input type='submit' value='send invite' class='btn' /></form>";
                $output .= "</p>";
            }
            break;
        case 'prefs':
            $query = "SELECT DATE_FORMAT(mp3act_users.date_created,'%M %D, %Y') as date_created FROM mp3act_users WHERE mp3act_users.user_id={$_SESSION['sess_userid']}";
            $query2 = "SELECT COUNT(play_id) as playcount FROM mp3act_playhistory WHERE user_id={$_SESSION['sess_userid']} GROUP BY user_id";
            $result = mysql_query($query);
            $result2 = mysql_query($query2);
            $row = mysql_fetch_array($result);
            $row2 = mysql_fetch_array($result2);
            if (mysql_num_rows($result2) == 0) {
                $row2['playcount'] = 0;
            }
            $dayssince = (time() - strtotime($row['date_created'])) / (60 * 60 * 24);
            $output = "<div class=\"head\">";
            $output .= "<h2>{$_SESSION['sess_firstname']} {$_SESSION['sess_lastname']}'s Account ({$_SESSION['sess_username']})</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>Date Joined:</strong> {$row['date_created']}<br/>\n";
            $output .= "<strong>Songs Played:</strong> {$row2['playcount']}<br/>\n";
            $output .= "<strong>Daily Average:</strong> " . round($row2['playcount'] / $dayssince, 2) . " songs/day<br/><br/>\n";
            $output .= "<a href='#' onclick=\"editUser('info',0); return false;\" >Edit User Info</a><br/>";
            $output .= "<a href='#' onclick=\"editUser('settings',0); return false;\" >Edit User Settings</a><br/>";
            $output .= "<a href='#' onclick=\"editUser('pass',0); return false;\" >Change Password</a><br/><br/>";
            if (hasScrobbler($_SESSION['sess_userid'])) {
                $as = getScrobblerStats($_SESSION['sess_userid']);
                $output .= "<strong>AudioScrobbler Submission Queue:</strong> {$as['count']} songs " . ($as['count'] > 0 ? "<a href='#' onclick=\"submitScrobbler({$_SESSION['sess_userid']}); return false;\" title='Force Submission to AudioScrobbler'>[submit]</a>" : "") . "<br/>\n";
                $output .= "<strong>AudioScrobbler Response:</strong> {$as['last_result']}<br/>\n";
                $output .= "<a href='http://www.audioscrobbler.com/user/{$as['username']}' target='_new' title='View Your AudioSrobbler Statistics Page'>View Your AudioSrobbler Statistics Page</a><br/><br/>\n";
            }
            $output .= "</p>";
            break;
        case 'random':
            $output = "<div class=\"head\">";
            $output .= "<h2>Random Mix Maker</h2></div>";
            $output .= "<form onsubmit='return randPlay(this)' method='get' action=''>\n<p>";
            if ($_SESSION['sess_playmode'] == "streaming") {
                $output .= "<strong>Number of Songs</strong><br/>\n\n        <select name='random_count'>\n        <option value=10>10 </option>\n        <option value=20>20 </option>\n        <option value=30>30 </option>\n        <option value=40>40 </option>\n        <option value=50>50 </option>\n          </select><br/>\n";
            }
            $output .= "<strong>Random Type</strong><br/>\n\n        <select name='random_type' onchange=\"getRandItems(this.options[selectedIndex].value); return false;\" >\n        <option value='' >Choose Type...</option>\n        <option value='artists' >Artists</option>\n        <option value='genre' >Genre</option>\n        <option value='albums' >Albums</option>\n        <option value='all' >Everything</option>\n        </select><br/>\n";
            $output .= "<strong>Random Items</strong>\n<span id='rand_items'></span>\n      <br/><br/>";
            $output .= "<input type='submit' value='play mix' class='btn' />";
            $output .= "</form></p>\n";
            break;
        case 'playlists':
            $query = "SELECT *,SEC_TO_TIME(time) AS time2 FROM mp3act_saved_playlists WHERE private=0";
            $result = mysql_query($query);
            $output = "<div class=\"head\">";
            $output .= "<h2>Saved Playlists</h2></div>";
            $output .= "<p><strong>Public Playlists</strong></p>\n";
            $output .= "<ul>\n";
            if (mysql_num_rows($result) == 0) {
                $output .= "No Public Playlists";
            }
            while ($row = mysql_fetch_array($result)) {
                $output .= "<li><a href=\"#\" onclick=\"pladd('playlist',{$row['playlist_id']}); return false;\" title='Load this Saved Playlist'><img src=\"img/add.gif\" /></a> " . (accessLevel(10) ? "<a href=\"#\" onclick=\"deletePlaylist({$row['playlist_id']}); return false;\" title='DELETE this Saved Playlist'><img src=\"img/rem.gif\" /></a>" : "") . " <a onclick=\"updateBox('saved_pl',{$row['playlist_id']}); \" title='Click to View Playlist' href='#'>{$row['playlist_name']} - {$row['songcount']} Songs ({$row['time2']})</a></li>";
            }
            $output .= "</ul>\n";
            $output .= "<p><strong>Your Private Playlists</strong></p>\n";
            $query = "SELECT *,SEC_TO_TIME(time) AS time2 FROM mp3act_saved_playlists WHERE private=1 AND user_id={$_SESSION['sess_userid']} ORDER BY playlist_id DESC";
            $result = mysql_query($query);
            $output .= "<ul>\n";
            if (mysql_num_rows($result) == 0) {
                $output .= "No Private Playlists";
            }
            while ($row = mysql_fetch_array($result)) {
                $output .= "<li><a href=\"#\" onclick=\"pladd('playlist',{$row['playlist_id']}); return false;\" title='Load this Saved Playlist'><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"deletePlaylist({$row['playlist_id']}); return false;\" title='DELETE this Saved Playlist'><img src=\"img/rem.gif\" /></a> <a onclick=\"updateBox('saved_pl',{$row['playlist_id']}); \" title='Click to View Playlist' href='#'>{$row['playlist_name']} - {$row['songcount']} Songs ({$row['time2']})</a></li>";
            }
            $output .= "</ul>\n";
            break;
        case 'saved_pl':
            $query = "SELECT *,SEC_TO_TIME(time) AS time2 FROM mp3act_saved_playlists WHERE playlist_id={$itemid}";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"pladd('playlist',{$row['playlist_id']}); return false;\" title=\"Load Playlist\">load playlist</a></div>";
            $output .= "<h2>View Saved Playlist</h2></div>";
            $output .= "<p><strong>Playlist Info</strong><br/>{$row['songcount']} Songs<br/>{$row['time2']}</p>\n";
            $output .= "<p><strong>Playlist Songs</strong></p>\n";
            $output .= "<ul>\n";
            $songs = explode(",", $row['playlist_songs']);
            $count = 0;
            foreach ($songs as $song) {
                $query = "SELECT mp3act_songs.*,SEC_TO_TIME(mp3act_songs.length) AS length,mp3act_artists.artist_name FROM mp3act_artists,mp3act_songs WHERE mp3act_songs.song_id={$song} AND mp3act_artists.artist_id=mp3act_songs.artist_id";
                $result = mysql_query($query);
                $row = mysql_fetch_array($result);
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}>{$row['artist_name']} - {$row['name']}<p>{$row['numplays']} Plays<br/><em>{$row['length']}</em></p></li>";
                $count++;
            }
            $output .= "</ul>\n";
            break;
        case 'about':
            $output = "<div class=\"head\">";
            $output .= "<h2>GrammaFone Music System - svn version</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>Date: </strong>October 27, 2007<br/>\n";
            $output .= "<strong>Website: </strong><a href='http://www.grammafone.com' target='_blank'>http://www.grammafone.com</a><br/>\n";
            $output .= "<strong>Support: </strong><a href='http://trac.grammafone.com' target='_blank'>http://trac.grammafone.com</a><br/>\n";
            $output .= "<form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" target='_blank'>\n<input type=\"hidden\" name=\"cmd\" value=\"_s-xclick\">\n<input type=\"image\" src=\"https://www.paypal.com/en_US/i/btn/x-click-but21.gif\" border=\"0\" name=\"submit\" alt=\"Make payments with PayPal - it's fast, free and secure!\">\n<img alt=\"\" border=\"0\" src=\"https://www.paypal.com/en_AU/i/scr/pixel.gif\" width=\"1\" height=\"1\">\n<input type=\"hidden\" name=\"encrypted\" value=\"-----BEGIN PKCS7-----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-----END PKCS7-----\n\"></form>\n";
            $output .= "</p>";
            $output .= "<h3>Thanks to:</h3>\n";
            $output .= "<p>Jon Buda</p>\n";
            break;
        case 'stats':
            $query = "SELECT * FROM mp3act_stats";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $query = "SELECT COUNT(user_id) AS users FROM mp3act_users";
            $result = mysql_query($query);
            $row2 = mysql_fetch_array($result);
            $query = "SELECT COUNT(play_id) AS songs FROM mp3act_playhistory";
            $result = mysql_query($query);
            $row3 = mysql_fetch_array($result);
            $output = "<div class=\"head\">";
            $output .= "<h2>Server Statistics</h2></div>";
            $output .= "<p>\n";
            $output .= "<a href='#' onclick=\"updateBox('recentadd',0); return false;\" >Recently Added Albums</a><br/>";
            $output .= "<a href='#' onclick=\"updateBox('recentplay',0); return false;\" >Recently Played Songs</a><br/>";
            $output .= "<a href='#' onclick=\"updateBox('topplay',0); return false;\" >Top Played Songs</a><br/>";
            $output .= "</p>\n";
            $output .= "<h3>Local Server Statistics</h3>\n";
            $output .= "<p><strong>Songs:</strong> {$row['num_songs']}<br/>\n";
            $output .= "<strong>Albums:</strong> {$row['num_albums']}<br/>\n";
            $output .= "<strong>Artists:</strong> {$row['num_artists']}<br/>\n";
            $output .= "<strong>Genres:</strong> {$row['num_genres']}<br/><br/>\n";
            $output .= "<strong>Total Time:</strong> {$row['total_time']}<br/>\n";
            $output .= "<strong>Total Size:</strong> {$row['total_size']}<br/><br/>\n";
            $output .= "<strong>Registered Users:</strong> {$row2['users']}<br/>\n";
            $output .= "<strong>Songs Played:</strong> {$row3['songs']}<br/></p>\n";
            break;
        case 'recentadd':
            $query = "SELECT mp3act_albums.album_name,mp3act_albums.album_id,\n\t\t\tmp3act_artists.artist_name, \n\t\t\tDATE_FORMAT(mp3act_songs.date_entered,'%m.%d.%Y') as pubdate   \n\t\t\tFROM mp3act_songs,mp3act_albums,mp3act_artists \n\t\t\tWHERE mp3act_songs.album_id=mp3act_albums.album_id \n\t\t\tAND mp3act_artists.artist_id=mp3act_songs.artist_id \n\t\t\tGROUP BY mp3act_songs.album_id ORDER BY mp3act_songs.date_entered DESC LIMIT 40";
            $result = mysql_query($query);
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"switchPage('stats'); return false;\" title=\"Return to Statistics Page\">back</a></div>";
            $output .= "<h2>Recently Added Albums</h2></div><ul>";
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}><small>{$row['pubdate']}</small> <a href=\"#\" onclick=\"pladd('album',{$row['album_id']}); return false;\" title=\"Add Album to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('album',{$row['album_id']}); return false;\" title=\"Play this Album Now\"><img src=\"img/play.gif\" /></a> <a href=\"#\" onclick=\"updateBox('album',{$row['album_id']}); return false;\" title=\"View Details of {$row['album_name']}\"><em>{$row['artist_name']}</em> - {$row['album_name']}</a></li>";
                $count++;
            }
            $output .= "</ul>";
            break;
        case 'topplay':
            $query = "SELECT mp3act_albums.album_name, mp3act_songs.numplays, mp3act_songs.name, \n\t\t\tmp3act_artists.artist_name,mp3act_songs.song_id \n\t\t\tFROM mp3act_songs,mp3act_albums,mp3act_artists \n\t\t\tWHERE mp3act_songs.album_id=mp3act_albums.album_id \n\t\t\tAND mp3act_artists.artist_id=mp3act_songs.artist_id \n\t\t\tAND mp3act_songs.numplays > 0 \n\t\t\tORDER BY mp3act_songs.numplays DESC LIMIT 40";
            $result = mysql_query($query);
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"switchPage('stats'); return false;\" title=\"Return to Statistics Page\">back</a></div>";
            $output .= "<h2>Top Played Songs</h2></div><ul>";
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}><small>{$row['numplays']} Plays</small> <a href=\"#\" onclick=\"pladd('song',{$row['song_id']}); return false;\" title=\"Add Song to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('song',{$row['song_id']}); return false;\" title=\"Play this Song Now\"><img src=\"img/play.gif\" /></a> <em>{$row['artist_name']}</em> - {$row['name']}</li>";
                $count++;
            }
            $output .= "</ul>";
            break;
        case 'recentplay':
            $query = "SELECT mp3act_songs.name, mp3act_songs.song_id, \n\t\t\tmp3act_artists.artist_name,\n\t\t\tDATE_FORMAT(mp3act_playhistory.date_played,'%m.%d.%Y') as playdate \n\t\t\tFROM mp3act_songs,mp3act_artists,mp3act_playhistory \n\t\t\tWHERE mp3act_songs.song_id=mp3act_playhistory.song_id\n\t\t\tAND mp3act_artists.artist_id=mp3act_songs.artist_id \n\t\t\tORDER BY mp3act_playhistory.play_id DESC LIMIT 40";
            $result = mysql_query($query);
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"switchPage('stats'); return false;\" title=\"Return to Statistics Page\">back</a></div>";
            $output .= "<h2>Recently Played Songs</h2></div><ul>";
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $count % 2 == 0 ? $alt = "class=\"alt\"" : ($alt = '');
                $output .= "<li {$alt}><small>{$row['playdate']}</small> <a href=\"#\" onclick=\"pladd('song',{$row['song_id']}); return false;\" title=\"Add Song to Current Playlist\"><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"play('song',{$row['song_id']}); return false;\" title=\"Play this Song Now\"><img src=\"img/play.gif\" /></a> <em>{$row['artist_name']}</em> - {$row['name']}</li>";
                $count++;
            }
            $output .= "</ul>";
            break;
    }
    return $output;
}
예제 #3
0
function musicLookup($type, $itemid)
{
    mp3act_connect();
    switch ($type) {
        case 'browse':
            $output = "<div class=\"head\">";
            $output .= "<h2>Browse the Music Database</h2></div>";
            $output .= "<p>";
            $output .= "<strong>By Artist Beginning With</strong><br/>" . letters() . "<br/></p>\n";
            $output .= "<p><strong>By Genre</strong><br/>\n";
            $output .= genreForm() . "<br/><br/>\n";
            $output .= "<input type='button' value='Browse All Albums' onclick=\"updateBox('all','All'); return false;\" class='btn2' />\n";
            $output .= "</p>\n";
            break;
        case 'search':
            $output = "<div class=\"head\">";
            $output .= "<h2>Search the Music Database</h2></div>";
            $output .= "<form onsubmit='return searchMusic(this)' method='get' action=''>\n";
            $output .= "<p>\n\t\t\t\t<strong>Keywords</strong><br/>\n\t\t\t\t<input type='text' onfocus='this.select()' name='searchbox' size='35' id='searchbox' value='[enter your search terms]' />\n    \t\t<br/><br/>\n    \t\t<strong>Narrow Your Search</strong>\n    \t\t<br/>\n    \t\t<select name='search_options' size='1'>\n    \t\t\t<option value='all'>All Fields</option>\n    \t\t\t<option value='artists'>Artists</option>\n    \t\t\t<option value='albums'>Albums</option>\n    \t\t\t<option value='songs'>Songs</option>\n    \t\t</select><br/><br/>\n    \t\t<input type='submit' value='submit search' class='btn' /></form>";
            $output .= "</p>\n";
            break;
        case 'letter':
            if ($itemid == "#") {
                $query = "SELECT * FROM mp3act_artists \n                WHERE artist_name \n                LIKE '0%' \n                OR artist_name LIKE '1%' \n                OR artist_name LIKE '2%' \n                OR artist_name LIKE '3%' \n                OR artist_name LIKE '4%' \n                OR artist_name LIKE '5%' \n                OR artist_name LIKE '6%' \n                OR artist_name LIKE '7%' \n                OR artist_name LIKE '8%'\n                OR artist_name LIKE '9%'\n                ORDER BY artist_name";
            } else {
                $query = "SELECT * FROM mp3act_artists\n                WHERE artist_name LIKE '{$itemid}%'\n                ORDER BY artist_name";
            }
            $result = mysql_query($query);
            $output = "<div class=\"head\">";
            $output .= "<h2>Artists Beginning with '" . strtoupper($itemid) . "'</h2></div>";
            $output .= "<p>\n\t\t\t\t<strong>Artist Listing</strong></p>\n\t\t\t\t<ul>";
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $alt = getAlt($count);
                $output .= "<li {$alt}><a href=\"#\" onclick=\"updateBox('artist',{$row['artist_id']}); return false;\" title=\"View Albums for {$row['prefix']} {$row['artist_name']}\">{$row['prefix']} {$row['artist_name']}</a></li>\n";
                $count++;
            }
            $output .= "</ul>\n";
            break;
        case 'all':
            $output = "<div class=\"head\">";
            //$output .= "<div class=\"right\"><a href='#' onclick=\"updateBox('all',$itemid-30); return false;\">Prev Page</a> <a href='#' onclick=\"updateBox('all',$itemid+30); return false;\">Next Page</a> </div>";
            $output .= "<h2>All Albums</h2></div> ";
            $output .= "<p>\n\t\t\t\t<strong>Album Listing</strong></p>";
            // $start = $itemid;
            $query = "SELECT mp3act_artists.artist_name,mp3act_artists.prefix,mp3act_albums.* FROM mp3act_albums,mp3act_artists WHERE mp3act_albums.artist_id=mp3act_artists.artist_id ORDER BY artist_name,album_name";
            /* LIMIT $start,30"; */
            $output = buildAlbumList($output, $query);
            break;
        case 'album':
            $query = "SELECT mp3act_albums.*,mp3act_artists.artist_name,mp3act_artists.prefix,COUNT(mp3act_songs.song_id) as tracks,SEC_TO_TIME(SUM(mp3act_songs.length)) as time FROM mp3act_albums,mp3act_artists,mp3act_songs WHERE mp3act_albums.album_id={$itemid} AND mp3act_albums.artist_id=mp3act_artists.artist_id AND mp3act_songs.album_id={$itemid} GROUP BY mp3act_songs.album_id";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $album_art = '';
            if ($row['album_art'] == "") {
                $row['album_art'] = art_insert($row['album_id'], $row['artist_name'], $row['album_name']);
                if ($row['album_art'] != '') {
                    $album_art = "<img onmouseover=\"showAlbumArt('block'); return false;\" onmouseout=\"showAlbumArt('none'); return false;\" src=\"art/{$row['album_art']}\" />\n";
                }
            } elseif ($row['album_art'] != "fail") {
                $album_art = "<img onmouseover=\"showAlbumArt('block'); return false;\" onmouseout=\"showAlbumArt('none'); return false;\" src=\"art/{$row['album_art']}\" />\n";
            }
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"play('album'," . $row['album_id'] . "); return false;\" title=\"Play this Album Now\">play</a> <a href=\"#\" onclick=\"pladd('album',{$row['album_id']}); return false;\" title=\"Add Album to Current Playlist\">add</a> " . (getSystemSetting("downloads") == 1 || getSystemSetting("downloads") == 2 && accessLevel(5) ? "<a href=\"#\" onclick=\"newWindow('download',{$row['album_id']}); return false;\" title=\"Download this Album Now\">download</a>" : "") . "</div>";
            $output .= "<h2>" . $row['album_name'] . "</h2>" . $row['prefix'] . " " . $row['artist_name'] . "</div>";
            $output .= "<p>{$album_art}\n";
            $output .= "\t<strong>Tracks:</strong> {$row['tracks']}<br/>\n";
            $output .= $row['album_year'] != 0 ? "<strong>Year:</strong> " . $row['album_year'] . "<br/>\n" : "";
            $output .= "\t<strong>Genre:</strong> <a href=\"#\" onclick=\"updateBox('genre','{$row['album_genre']}'); return false;\" title=\"View Artists from {$row['album_genre']} Genre\">{$row['album_genre']}</a><br/>\n";
            $output .= "\t<strong>Play Time:</strong> {$row['time']}\n";
            $output .= "\t<br/><br/>\n";
            $output .= "\t<strong>Album Tracks</strong></p>\n";
            $output .= "<img id='bigart' src=\"art/{$row['album_art']}\" />\n";
            $query = "SELECT *,SEC_TO_TIME(length) as length FROM mp3act_songs WHERE album_id={$itemid} ORDER BY track";
            $output = buildSongList($output, mysql_query($query));
            break;
        case 'genre':
            $query = "SELECT mp3act_artists.artist_id,mp3act_artists.artist_name,mp3act_artists.prefix FROM mp3act_artists,mp3act_albums WHERE mp3act_albums.album_genre='{$itemid}' AND mp3act_artists.artist_id=mp3act_albums.artist_id GROUP BY mp3act_artists.artist_id ORDER BY mp3act_artists.artist_name";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $output = "<div class=\"head\">";
            $output .= "<h2>Artists for Genre '{$itemid}'</h2></div>";
            $output .= "<p>\n\t\t\t\t<strong>Artist Listing</strong></p>\n\t\t\t\t<ul>";
            $result = mysql_query($query);
            $count = 1;
            while ($row = mysql_fetch_array($result)) {
                $alt = getAlt($count);
                $output .= "<li {$alt}><a href=\"#\" onclick=\"updateBox('artist',{$row['artist_id']}); return false;\" title=\"View Albums for {$row['artist_name']}\">{$row['prefix']} {$row['artist_name']}</a></li>\n";
                $count++;
            }
            $output .= "</ul>\n";
            break;
        case 'artist':
            $query = "SELECT artist_id,artist_name,prefix FROM mp3act_artists WHERE artist_id={$itemid}";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $output = "<div class=\"head\">";
            $output .= "<h2>{$row['prefix']} {$row['artist_name']}</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>Album Listing</strong></p>\n";
            $query = "SELECT mp3act_albums.* FROM mp3act_albums WHERE mp3act_albums.artist_id={$itemid} ORDER BY mp3act_albums.album_name";
            $output = buildAlbumList($output, $query);
            break;
        case 'admin':
            $output = "<div class=\"head\">";
            $output .= "<h2>Administration Panel</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>System Settings</strong><br/>\n";
            $output .= "<a href='#' onclick=\"editSettings(0); return false;\" title='Edit System Systems'>Edit System Settings</a><br/>\n";
            $output .= "</p>\n";
            $output .= "<p>\n";
            $output .= "<strong>Database Functions</strong><br/>\n";
            $output .= "<a href='#' onclick=\"newWindow('add',0); return false;\" title='Add Music to the Database'>Add New Music to the Database</a><br/>\n";
            $output .= "<a href='#' onclick=\"clearDB(); return false;\" title='Clear out the Database'>Clear Out the Music Database and Play History</a><br/>\n";
            $output .= "</p>";
            $output .= "<p>\n";
            $output .= "<strong>User Functions</strong><br/>\n";
            $output .= "<a href='#' onclick=\"adminEditUsers(0,'',''); return false;\" title='Edit User Permissions'>Edit User Accounts</a><br/>\n";
            $output .= "<a href='#' onclick=\"adminAddUser(0); return false;\" title='Add New User Account'>Add New User Account</a><br/>\n";
            $output .= "</p>";
            if (getSystemSetting("invite_mode") == 1) {
                $output .= "<form onsubmit='return sendInvite(this)' method='get' action=''>\n";
                $output .= "<p id='invite'>";
                $output .= "<br/><strong>Send an Invitation for Registration<br/>\n";
                $output .= "<input type='text' onfocus='this.select()' name='email' id='email' value='Enter Email Address of Recipient' size='32' /><br/>\n";
                $output .= "<br/><input type='submit' value='send invite' class='btn' /></form>";
                $output .= "</p>";
            }
            break;
        case 'prefs':
            $query = "SELECT DATE_FORMAT(mp3act_users.date_created,'%M %D, %Y') as date_created FROM mp3act_users WHERE mp3act_users.user_id={$_SESSION['sess_userid']}";
            $query2 = "SELECT COUNT(play_id) as playcount FROM mp3act_playhistory WHERE user_id={$_SESSION['sess_userid']} GROUP BY user_id";
            $result = mysql_query($query);
            $result2 = mysql_query($query2);
            $row = mysql_fetch_array($result);
            $row2 = mysql_fetch_array($result2);
            if (mysql_num_rows($result2) == 0) {
                $row2['playcount'] = 0;
            }
            $dayssince = (time() - strtotime($row['date_created'])) / (60 * 60 * 24);
            $output = "<div class=\"head\">";
            $output .= "<h2>{$_SESSION['sess_firstname']} {$_SESSION['sess_lastname']}'s Account ({$_SESSION['sess_username']})</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>Date Joined:</strong> {$row['date_created']}<br/>\n";
            $output .= "<strong>Songs Played:</strong> {$row2['playcount']}<br/>\n";
            $output .= "<strong>Daily Average:</strong> " . round($row2['playcount'] / $dayssince, 2) . " songs/day<br/><br/>\n";
            $output .= "<a href='#' onclick=\"editUser('info',0); return false;\" >Edit User Info</a><br/>";
            $output .= "<a href='#' onclick=\"editUser('settings',0); return false;\" >Edit User Settings</a><br/>";
            $output .= "<a href='#' onclick=\"editUser('pass',0); return false;\" >Change Password</a><br/>";
            $output .= "</p>";
            break;
        case 'random':
            $output = "<div class=\"head\">";
            $output .= "<h2>Random Mix Maker</h2></div>";
            $output .= "<form onsubmit='return randPlay(this)' method='get' action=''>\n<p>";
            if ($_SESSION['sess_playmode'] == "streaming") {
                $output .= "<strong>Number of Songs</strong><br/>\n\n\t\t\t\t<select name='random_count'>\n\t\t\t\t<option value=10>10 </option>\n\t\t\t\t<option value=20>20 </option>\n\t\t\t\t<option value=30>30 </option>\n\t\t\t\t<option value=40>40 </option>\n\t\t\t\t<option value=50>50 </option>\n         </select><br/>\n";
            }
            $output .= "<strong>Random Type</strong><br/>\n\n\t\t\t\t<select name='random_type' onchange=\"getRandItems(this.options[selectedIndex].value); return false;\" >\n\t\t\t\t<option value='' >Choose Type...</option>\n\t\t\t\t<option value='artists' >Artists</option>\n\t\t\t\t<option value='genre' >Genre</option>\n\t\t\t\t<option value='albums' >Albums</option>\n\t\t\t\t<option value='all' >Everything</option>\n         </select><br/>\n";
            $output .= "<strong>Random Items</strong>\n<span id='rand_items'></span>\n\t\t\t<br/><br/>";
            $output .= "<input type='submit' value='play mix' class='btn' />";
            $output .= "</form></p>\n";
            break;
        case 'playlists':
            $query = "SELECT *,SEC_TO_TIME(time) AS time2 FROM mp3act_saved_playlists WHERE private=0";
            $result = mysql_query($query);
            $output = "<div class=\"head\">";
            $output .= "<h2>Saved Playlists</h2></div>";
            $output .= "<p><strong>Public Playlists</strong></p>\n";
            $output .= "<ul>\n";
            if (mysql_num_rows($result) == 0) {
                $output .= "Zero Saved Playlists";
            }
            while ($row = mysql_fetch_array($result)) {
                $output .= "<li><a href=\"#\" onclick=\"pladd('playlist',{$row['playlist_id']}); return false;\" title='Load this Saved Playlist'><img src=\"img/add.gif\" /></a> <a onclick=\"updateBox('saved_pl',{$row['playlist_id']}); \" title='Click to View Playlist' href='#'>{$row['playlist_name']} - {$row['songcount']} Songs ({$row['time2']})</a></li>";
            }
            $output .= "</ul>\n";
            $output .= "<p><strong>Your Private Playlists</strong></p>\n";
            $query = "SELECT *,SEC_TO_TIME(time) AS time2 FROM mp3act_saved_playlists WHERE private=1 AND user_id={$_SESSION['sess_userid']} ORDER BY playlist_id DESC";
            $result = mysql_query($query);
            $output .= "<ul>\n";
            if (mysql_num_rows($result) == 0) {
                $output .= "Zero Saved Playlists";
            }
            while ($row = mysql_fetch_array($result)) {
                $output .= "<li><a href=\"#\" onclick=\"pladd('playlist',{$row['playlist_id']}); return false;\" title='Load this Saved Playlist'><img src=\"img/add.gif\" /></a> <a href=\"#\" onclick=\"deletePlaylist({$row['playlist_id']}); return false;\" title='DELETE this Saved Playlist'><img src=\"img/rem.gif\" /></a> <a onclick=\"updateBox('saved_pl',{$row['playlist_id']}); \" title='Click to View Playlist' href='#'>{$row['playlist_name']} - {$row['songcount']} Songs ({$row['time2']})</a></li>";
            }
            $output .= "</ul>\n";
            break;
        case 'saved_pl':
            $query = "SELECT *,SEC_TO_TIME(time) AS time2 FROM mp3act_saved_playlists WHERE playlist_id={$itemid}";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"pladd('playlist',{$row['playlist_id']}); return false;\" title=\"Load Playlist\">load playlist</a></div>";
            $output .= "<h2>View Saved Playlist</h2></div>";
            $output .= "<p><strong>Playlist Info</strong><br/>{$row['songcount']} Songs<br/>{$row['time2']}</p>\n";
            $output .= "<p><strong>Playlist Songs</strong></p>\n";
            $output .= "<ul>\n";
            $songs = explode(",", $row['playlist_songs']);
            $count = 0;
            foreach ($songs as $song) {
                $query = "SELECT mp3act_songs.*,SEC_TO_TIME(mp3act_songs.length) AS length,mp3act_artists.artist_name FROM mp3act_artists,mp3act_songs WHERE mp3act_songs.song_id={$song} AND mp3act_artists.artist_id=mp3act_songs.artist_id";
                $result = mysql_query($query);
                $row = mysql_fetch_array($result);
                $alt = getAlt($count);
                $output .= "<li {$alt}>{$row['artist_name']} - {$row['name']}<p>{$row['numplays']} Plays<br/><em>{$row['length']}</em></p></li>";
                $count++;
            }
            $output .= "</ul>\n";
            break;
        case 'about':
            $output = "<div class=\"head\">";
            $output .= "<h2>mp3act Music System - v" . getSystemSetting("version") . "</h2></div>";
            $output .= "<p>\n";
            $output .= "<strong>Date: </strong>May 31, 2005<br/>\n";
            $output .= "<strong>Author: </strong><a href='http://www.jonbuda.com' target='_blank'>Jon Buda</a> | <a href='http://www.visiblebits.com' target='_blank'>A VisibleBits Production</a><br/>\n";
            $output .= "<strong>Website: </strong><a href='http://www.mp3act.net' target='_blank'>http://www.mp3act.net</a><br/>\n";
            $output .= "<strong>Support: </strong><a href='http://www.mp3act.net/support/' target='_blank'>http://www.mp3act.net/support/</a><br/>\n";
            $output .= "<form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" target='_blank'>\n<input type=\"hidden\" name=\"cmd\" value=\"_s-xclick\">\n<input class='noborder' title='Donate to mp3act!' type=\"image\" src=\"img/paypal_donate.gif\" border=\"0\" name=\"submit\" alt=\"Make payments with PayPal - it's fast, free and secure!\">\n<input type=\"hidden\" name=\"encrypted\" value=\"-----BEGIN PKCS7-----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-----END PKCS7-----\">\n</form>\n";
            $output .= "</p>";
            $output .= "<h3>Thanks to Contributors and Testers</h3>\n";
            $output .= "<p>Ben Callam<br/>Joe Doss<br/>All of 708 Park St.</p>\n";
            break;
        case 'stats':
            $query = "SELECT * FROM mp3act_stats";
            $result = mysql_query($query);
            $row = mysql_fetch_array($result);
            $query = "SELECT COUNT(user_id) AS users FROM mp3act_users";
            $result = mysql_query($query);
            $row2 = mysql_fetch_array($result);
            $query = "SELECT COUNT(play_id) AS songs FROM mp3act_playhistory";
            $result = mysql_query($query);
            $row3 = mysql_fetch_array($result);
            $output = "<div class=\"head\">";
            $output .= "<h2>Server Statistics</h2></div>";
            $output .= "<p>\n";
            $output .= "<a href='#' onclick=\"updateBox('recentadd',0); return false;\" >Recently Added Albums</a><br/>";
            $output .= "<a href='#' onclick=\"updateBox('recentplay',0); return false;\" >Recently Played Songs</a><br/>";
            $output .= "<a href='#' onclick=\"updateBox('topplay',0); return false;\" >Top Played Songs</a><br/>";
            $output .= "</p>\n";
            $output .= "<h3>Local Server Statistics</h3>\n";
            $output .= "<p><strong>Songs:</strong> {$row['num_songs']}<br/>\n";
            $output .= "<strong>Albums:</strong> {$row['num_albums']}<br/>\n";
            $output .= "<strong>Artists:</strong> {$row['num_artists']}<br/>\n";
            $output .= "<strong>Genres:</strong> {$row['num_genres']}<br/><br/>\n";
            $output .= "<strong>Total Time:</strong> {$row['total_time']}<br/>\n";
            $output .= "<strong>Total Size:</strong> {$row['total_size']}<br/><br/>\n";
            $output .= "<strong>Registered Users:</strong> {$row2['users']}<br/>\n";
            $output .= "<strong>Songs Played:</strong> {$row3['songs']}<br/></p>\n";
            break;
        case 'recentadd':
            $query = "SELECT mp3act_albums.album_name,mp3act_albums.album_id,\n\t\t\tmp3act_artists.artist_name, \n\t\t\tDATE_FORMAT(mp3act_songs.date_entered,'%m.%d.%Y') as pubdate   \n\t\t\tFROM mp3act_songs,mp3act_albums,mp3act_artists \n\t\t\tWHERE mp3act_songs.album_id=mp3act_albums.album_id \n\t\t\tAND mp3act_artists.artist_id=mp3act_songs.artist_id \n\t\t\tGROUP BY mp3act_songs.album_id ORDER BY mp3act_songs.date_entered DESC LIMIT 40";
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"switchPage('stats'); return false;\" title=\"Return to Statistics Page\">back</a></div>";
            $output .= "<h2>Recently Added Albums</h2></div>";
            $output = buildAlbumList($output, $query, 'pubdate');
            break;
        case 'topplay':
            $query = "SELECT mp3act_albums.album_name, mp3act_songs.numplays, mp3act_songs.name, \n\t\t\tmp3act_artists.artist_name,mp3act_songs.song_id \n\t\t\tFROM mp3act_songs,mp3act_albums,mp3act_artists \n\t\t\tWHERE mp3act_songs.album_id=mp3act_albums.album_id \n\t\t\tAND mp3act_artists.artist_id=mp3act_songs.artist_id \n\t\t\tAND mp3act_songs.numplays > 0 \n\t\t\tORDER BY mp3act_songs.numplays DESC LIMIT 40";
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"switchPage('stats'); return false;\" title=\"Return to Statistics Page\">back</a></div>";
            $output .= "<h2>Top Played Songs</h2></div>";
            $output = buildSongList($output, mysql_query($query), 'numplays');
            break;
        case 'recentplay':
            $query = "SELECT mp3act_songs.name, mp3act_songs.song_id, \n\t\t\tmp3act_artists.artist_name,\n\t\t\tDATE_FORMAT(mp3act_playhistory.date_played,'%m.%d.%Y') as playdate \n\t\t\tFROM mp3act_songs,mp3act_artists,mp3act_playhistory \n\t\t\tWHERE mp3act_songs.song_id=mp3act_playhistory.song_id\n\t\t\tAND mp3act_artists.artist_id=mp3act_songs.artist_id \n\t\t\tORDER BY mp3act_playhistory.play_id DESC LIMIT 40";
            $output = "<div class=\"head\">";
            $output .= "<div class=\"right\"><a href=\"#\" onclick=\"switchPage('stats'); return false;\" title=\"Return to Statistics Page\">back</a></div>";
            $output .= "<h2>Recently Played Songs</h2></div>";
            $output = buildSongList($output, mysql_query($query));
            break;
    }
    return $output;
}
function musicLookup($type, $itemid)
{
    global $db;
    $sql_itemid = "'" . $db->escape($itemid) . "'";
    switch ($type) {
        case 'browse':
            $output = '<div class="head">
        <h2 class="music">' . t('Browse the Music Database') . '</h2></div>
        <p>
        <strong>' . t('By Artist Beginning With') . '</strong><br/>' . letters() . '<br/></p>
        <p><strong>' . t('By Genre') . '</strong><br/>
        ' . genreForm() . '<br/><br/>
        <input type="button" value="' . t('Browse All Albums') . '" onclick="updateBox(\'all\',\'All\'); return false;" class="btn2">
        </p>';
            break;
        case 'search':
            $output = '<div class="head">
        <h2 class="music">' . t('Search the Music Database') . '</h2></div>
        <form onsubmit="return searchMusic(this)" method="get" action="">
        <p>
        <strong>' . t('Keywords') . '</strong><br/>
        <input type="text" onfocus="this.select()" name="searchbox" size="35" id="searchbox" value="[' . t('Enter your search terms') . ']">
        <br/><br/>
        <strong>' . t('Narrow Your Search') . '</strong>
        <br/>
        <select name="search_options" size="1">
          <option value="all">' . t('All Fields') . '</option>
          <option value="artists">' . t('Artists') . '</option>
          <option value="albums">' . t('Albums') . '</option>
          <option value="songs">' . t('Songs') . '</option>
        </select><br/><br/>
        <input type="submit" value="' . t('Submit Search') . '" class="btn"></form>
        </p>';
            break;
        case 'letter':
            // Define the list of prefixes we wish to ignore (perhaps define them as database item(s) somewhere so users can extend them)
            $prefixes = explode(' ', t('MythMusic_Prefixes_To_Ignore'));
            if ($itemid == "#") {
                $query = "SELECT artist_id, artist_name, " . "LOWER(CASE WHEN SUBSTRING_INDEX(artist_name, ' ', 1) IN ('" . implode("', '", $prefixes) . "') " . "THEN " . "CONCAT( SUBSTRING(artist_name, INSTR(artist_name , ' ') + 1), ' (', SUBSTRING_INDEX(artist_name, ' ', 1), ')' ) " . "ELSE artist_name END) " . "AS artist_name_sort " . "FROM music_artists " . "GROUP BY artist_name_sort " . "HAVING artist_name REGEXP '^[0-9].*' " . "ORDER BY artist_name_sort";
            } else {
                $query = "SELECT artist_id, artist_name, " . "LOWER(CASE WHEN SUBSTRING_INDEX(artist_name, ' ', 1) IN ('" . implode("', '", $prefixes) . "') " . "THEN " . "CONCAT( SUBSTRING(artist_name, INSTR(artist_name , ' ') + 1), ' (', SUBSTRING_INDEX(artist_name, ' ', 1), ')' ) " . "ELSE artist_name END) " . "AS artist_name_sort " . "FROM music_artists " . "GROUP BY artist_name_sort " . "HAVING artist_name_sort " . "LIKE '" . $db->escape($itemid . '%') . "' " . "ORDER BY artist_name_sort";
            }
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $output = '<div class="head">
        <div class="right">
        <a class="music" href="#" onclick="updateBox(\'browse\',0); return false;"
         title="' . t('Browse') . '">' . t('Back') . '</a></div>
        <h2 class="music">' . sprintf(t('Artists Beginning with %s'), "'" . strtoupper($itemid) . "'") . '</h2></div>
        <p>
        <strong>' . t('Artist Listing') . '</strong></p>
        <ul class="music">';
            $alt = false;
            while ($row = $sh->fetch_array()) {
                $output .= '<li' . ($alt ? ' class="alt"' : '') . '>
          <a class="music" href="#"
           onclick="updateBox(\'artist\',' . $row['artist_id'] . '); return false;"
           title="' . sprintf(t('View Albums by %s'), $row['artist_name']) . '">' . $row['artist_name'] . '</a></li>';
                $alt = !$alt;
            }
            $sh->finish();
            $output .= '</ul>';
            break;
        case 'all':
            $output = '<div class="head">
        <div class="right">
        <a class="music" href="#" onclick="updateBox(\'browse\',0); return false;"
         title="' . t('Browse') . '">' . t('Back') . '</a></div>
        <h2 class="music">' . t('All Albums') . '</h2></div>
        <p>
        <strong>' . t('Album Listing') . '</strong></p>
        <ul class="music">';
            $start = $itemid;
            $query = 'SELECT ma.album_id, ma.album_name, mt.artist_name ' . 'FROM music_albums AS ma ' . 'LEFT JOIN music_artists AS mt ON ma.artist_id=mt.artist_id ' . 'ORDER BY album_name, artist_name';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $alt = false;
            while ($row = $sh->fetch_array()) {
                $output .= getHtmlAlbum($row['album_id'], $row['album_name'], $row['artist_name']);
            }
            $sh->finish();
            $output .= '</ul>';
            break;
        case 'album':
            // Get some statistics about the album
            $query = 'SELECT COUNT(*), SEC_TO_TIME(SUM(music_songs.length)/1000) ' . 'FROM music_songs ' . 'WHERE music_songs.album_id=' . $sql_itemid . ' ' . 'GROUP BY music_songs.album_id;';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $row = $sh->fetch_array();
            $sh->finish();
            $num_tracks = $row[0];
            $length = $row[1];
            // Attempt to find some album art.
            $query = 'SELECT ms.filename, ms.album_id, md.path, ma.artist_name, ma.artist_id, ms.directory_id, mal.album_name
                FROM music_songs AS ms
                     LEFT JOIN music_directories AS md
                            ON ms.directory_id=md.directory_id
                     LEFT JOIN music_artists AS ma
                            ON ms.artist_id=ma.artist_id
                     LEFT JOIN music_albums AS mal
                            ON ms.album_id=mal.album_id
               WHERE ms.album_id=' . $sql_itemid . '
               LIMIT 1';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $row = $sh->fetch_array();
            $sh->finish();
            // Load album art
            $art_id = $db->query_col('SELECT ma.albumart_id
                                    FROM music_albumart AS ma
                                         LEFT JOIN music_directories AS md
                                                ON ma.directory_id=md.directory_id
                                   WHERE ma.directory_id = ?
                                   AND ma.imagetype = 1
                                   LIMIT 1', $row['directory_id']);
            $output = '<div class="head">
        <div class="right">
        <a class="music" href="#"
         onclick="play(\'album\',' . $row['album_id'] . '); return false;"
         title="' . t('Play this Album Now') . '">' . t('Play') . '</a>
        <a class="music" href="#"
         onclick="pladd(\'album\',' . $row['album_id'] . '); return false;"
         title="' . t('Add Album to Current Playlist') . '">' . t('Add') . '</a>
        <a class="music" href="#" onclick="updateBox(\'artist\',' . $row['artist_id'] . '); return false;"
         title="' . $row['artist_name'] . '">' . t('Back') . '</a>
        </div>
        <h2 class="music">' . $row['album_name'] . '</h2>
        </div>' . (!empty($art_id) ? '<center><img width="200" src="' . stream_url() . 'stream?a=' . $art_id . '" /></center><br>' : '') . '<strong>' . t('Play Time') . ':</strong> ' . $length . '<br><br>
        <strong>' . t('Album Tracks') . '</strong>
        <ul class="music">';
            $query = 'SELECT ms.song_id, ms.track, ms.name, ms.length, ms.numplays, ms.rating, ' . 'SEC_TO_TIME(ms.length/1000) AS length, artist_name, genre ' . 'FROM music_songs AS ms ' . 'LEFT JOIN music_artists ON ms.artist_id=music_artists.artist_id ' . 'LEFT JOIN music_genres ON ms.genre_id=music_genres.genre_id ' . 'WHERE ms.album_id=' . $sql_itemid . ' ' . 'ORDER BY ms.track';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            while ($row = $sh->fetch_array()) {
                $output .= getHtmlSong($row['song_id'], $row['artist_name'], '', $row['track'], $row['name'], $row['length'], $row['numplays'], $row['genre'], $row['rating']);
            }
            $sh->finish();
            $output .= '</ul>';
            break;
        case 'genre':
            $output = '<div class="head">
        <div class="right">
        <a class="music" href="#" onclick="updateBox(\'browse\',0); return false;"
         title="' . t('Browse') . '">' . t('Back') . '</a></div>
        <h2 class="music">' . t('Songs for Genre') . " '" . utf8_encode($itemid) . "'</h2></div>\n        <p><strong>" . t('Songs') . '</strong></p>
        <ul class="music">';
            $query = 'SELECT ms.song_id, ms.name, SEC_TO_TIME(ms.length/1000) AS length, ms.numplays, ms.rating, ma.artist_name, mg.genre ' . 'FROM music_songs AS ms ' . 'LEFT JOIN music_artists AS ma ON ms.artist_id=ma.artist_id ' . 'LEFT JOIN music_genres AS mg ON ms.genre_id=mg.genre_id ' . 'WHERE genre=' . utf8_encode($sql_itemid);
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            while ($row = $sh->fetch_array()) {
                $output .= getHtmlSong($row['song_id'], $row['artist_name'], '', '', $row['name'], $row['length'], $row['numplays'], '', $row['rating']);
            }
            $sh->finish();
            $output .= '</ul>';
            break;
        case 'artist':
            $query = 'SELECT artist_name ' . 'FROM music_artists ' . 'WHERE artist_id=' . $sql_itemid;
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $row = $sh->fetch_array();
            $sh->finish();
            $artist = $row['artist_name'];
            $letter = !preg_match('/^[0-9]/', $artist) ? strtoupper($artist[0]) : '#';
            $output = '<div class="head">
        <div class="right">
        <a class="music" href="#" onclick="updateBox(\'letter\',\'' . $letter . '\'); return false;"
         title="' . sprintf(t('Artists Beginning with %s'), "'" . $letter . "'") . '">' . t('Back') . '</a></div>
        <h2 class="music">' . $artist . '</h2></div>
        <p><strong>' . sprintf(t('Albums with songs by %s'), '<i>' . $artist . '</i>') . '</strong></p>
        <ul class="music">';
            $query = 'SELECT ma.album_id, album_name, ma.year, ma.artist_id, artist_name' . ',SEC_TO_TIME(SUM(ms.length)/1000) AS length, COUNT(ms.song_id) AS num_tracks ' . 'FROM music_songs AS ms ' . 'LEFT JOIN music_albums AS ma ON ms.album_id=ma.album_id ' . 'LEFT JOIN music_artists AS mt ON ma.artist_id=mt.artist_id ' . 'WHERE ms.artist_id=' . $sql_itemid . ' ' . 'GROUP BY ma.album_id;';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            while ($row = $sh->fetch_array()) {
                $artist = '';
                if ($itemid != $row['artist_id']) {
                    $artist = $row['artist_name'];
                }
                $output .= getHtmlAlbum($row['album_id'], $row['album_name'], $artist, $row['year'], $row['num_tracks'], $row['length']);
            }
            $sh->finish();
            $output .= '</ul><p><strong>' . t('Songs') . '</strong></p>
        <ul class="music">';
            $query = 'SELECT ms.song_id, ms.track, ms.name, ms.length, ms.numplays, ms.rating, ' . 'SEC_TO_TIME(ms.length/1000) AS length, music_artists.artist_name, track, ' . 'music_albums.album_name, genre ' . 'FROM music_songs AS ms ' . 'LEFT JOIN music_artists ON ms.artist_id=music_artists.artist_id ' . 'LEFT JOIN music_albums ON ms.album_id=music_albums.album_id ' . 'LEFT JOIN music_genres ON ms.genre_id=music_genres.genre_id ' . 'WHERE ms.artist_id=' . $sql_itemid . ';';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            while ($row = $sh->fetch_array()) {
                $output .= getHtmlSong($row['song_id'], '', $row['album_name'], $row['track'], $row['name'], $row['length'], $row['numplays'], $row['genre'], $row['rating']);
            }
            $sh->finish();
            $output .= '</ul>';
            break;
        case 'random':
            $output = '<div class="head">
        <h2 class="music">' . t('Random Mix Maker') . '</h2></div>
        <form onsubmit="return randAdd(this)" method="get" action="">
        <strong>' . t('Number of Songs') . '</strong><br>
        <select name="random_count">
        <option>5</option>
        <option>10</option>
        <option>20</option>
        <option>30</option>
        <option>40</option>
        <option>50</option>
        <option>100</option>
        </select><br />

        <strong>' . t('Rating') . '</strong><br />
        <select name="rating">
        <option value="all">All</option>
        <option value=">">></option>
        <option value="=">=</option>
        <option value="<"><</option>
        </select>

        <select name="rating_value">
        <option value="9">9</option>
        <option value="8">8</option>
        <option value="7">7</option>
        <option value="6">6</option>
        <option value="5">5</option>
        <option value="4">4</option>
        <option value="3">3</option>
        <option value="2">2</option>
        <option value="1">1</option>
        </select><br />

        <strong>' . t('Random Type') . '</strong><br />

        <select name="random_type" onchange="getRandItems(this.options[selectedIndex].value); return false;">
        <option value="">' . t('Choose Type') . '...</option>
        <option value="artists">' . t('Artists') . '</option>
        <option value="genre">' . t('Genre') . '</option>
        <option value="albums">' . t('Albums') . '</option>
        <option value="all">' . t('Everything') . '</option>
        </select><br>
        <strong>' . t('Random Items') . '</strong>
        <span id="rand_items"></span>
        <br><br>
        <input type="submit" value="' . t('Add Mix') . '" class="btn">
        </form>';
            break;
        case 'playlists':
            $query = 'SELECT playlist_id, playlist_name, songcount, hostname, SEC_TO_TIME(length/1000) AS length ' . 'FROM music_playlists ' . 'WHERE hostname=\'\'';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $output = '<div class="head">
        <h2 class="music">' . t('Saved Playlists') . '</h2></div><br>';
            if ($sh->num_rows == 0) {
                $output .= t('No Public Playlists');
            } else {
                $unsaved_id = 0;
                $pl = internalGetPlaylist();
                if (!empty($pl['playlist_name']) && MYTH_WEB_PLAYLIST_NAME == $pl['playlist_name']) {
                    $unsaved_id = $pl['playlist_id'];
                }
                $output .= '<ul class="music">';
                while ($row = $sh->fetch_array()) {
                    $output .= getHtmlPlaylist($row['playlist_id'], $row['playlist_name'], $row['songcount'], $row['length'], $unsaved_id);
                }
                $output .= '</ul>';
            }
            $sh->finish();
            break;
        case 'saved_pl':
            $query = 'SELECT playlist_id, playlist_name, playlist_songs, songcount, SEC_TO_TIME(length/1000) AS length ' . 'FROM music_playlists ' . 'WHERE playlist_id=' . $sql_itemid;
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $row = $sh->fetch_array();
            $sh->finish();
            $unsaved_id = 0;
            $pl = internalGetPlaylist();
            if (!empty($pl['playlist_name']) && MYTH_WEB_PLAYLIST_NAME == $pl['playlist_name']) {
                $unsaved_id = $pl['playlist_id'];
            }
            $output = '<div class="head">
        <div class="right">
        <a class="music" href="#"
          onclick="checkPlaylistLoad(\'' . $row['playlist_id'] . '\', ' . $unsaved_id . ')' . ' && pladd(\'loadplaylist\',' . $row['playlist_id'] . '); return false;"
          title="' . t('Load Playlist') . '">' . t('Load') . '</a>
        <a class="music" href="#"
          onclick="pladd(\'playlist\',' . $row['playlist_id'] . '); return false;"
          title="' . t('Append to Current Playlist') . '">' . t('Append') . '</a>
        <a class="music" href="#"
          onclick="play(\'pl\',' . $row['playlist_id'] . '); return false;"
          title="' . t('Play this Playlist Now') . '">' . t('Play') . '</a>
        </div>
        <h2 class="music">' . t('View Saved Playlist') . '</h2></div>
        <p><strong>' . t('Playlist Info') . '</strong><br>' . sprintf('%s Songs', $row['songcount']) . '<br>' . $row['length'] . '</p>
        <p><strong>' . t('Playlist Items') . '</strong></p>';
            if (empty($row['playlist_songs'])) {
                $output = '<b>' . t('There are no items in this Playlist!') . '</b>';
            } else {
                // Load the song information
                $query = 'SELECT ms.song_id, mt.artist_name, ms.name, ma.album_name, ms.track' . ', SEC_TO_TIME(ms.length/1000) AS length ' . 'FROM music_songs AS ms ' . 'LEFT JOIN music_artists AS mt ON ms.artist_id=mt.artist_id ' . 'LEFT JOIN music_albums AS ma ON ms.album_id=ma.album_id ' . 'WHERE ms.song_id IN (' . $row['playlist_songs'] . ');';
                $sh = $db->query($query);
                if (!$sh) {
                    return;
                }
                $song_info = array();
                while ($row2 = $sh->fetch_array()) {
                    $song_info[$row2['song_id']] = $row2;
                }
                $sh->finish();
                // Load the sub-playlist information
                // NB: MySQL 3.xx cannot use the CAST() function hense the negative number decimal
                // conversion hack as outlined on: http://dev.mysql.com/doc/refman/4.1/en/cast-functions.html
                $query = 'SELECT playlist_id, playlist_name, SEC_TO_TIME(length/1000) AS length, songcount ' . 'FROM music_playlists ' . 'WHERE (-1.0 * (playlist_id+0.0)) IN (' . $row['playlist_songs'] . ');';
                $sh = $db->query($query);
                if (!$sh) {
                    return;
                }
                $pl_info = array();
                while ($row2 = $sh->fetch_array()) {
                    $pl_info[$row2['playlist_id']] = $row2;
                }
                $sh->finish();
                $songs = explode(',', $row['playlist_songs']);
                $output .= '<ul class="music">';
                foreach ($songs as $song_id) {
                    if ($song_id > 0) {
                        $row = $song_info[$song_id];
                        $output .= getHtmlSong($row['song_id'], $row['artist_name'], '', '', $row['name'], $row['length'], $row['numplays'], '', '');
                    } else {
                        if ($song_id < 0) {
                            $row = $pl_info[-1 * $song_id];
                            $output .= getHtmlPlaylist($row['playlist_id'], $row['playlist_name'], $row['songcount'], $row['length'], $unsaved_id, false);
                        }
                    }
                }
                $output .= '</ul>';
            }
            break;
        case 'stats':
            $query = 'SELECT * FROM music_stats';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $row = $sh->fetch_array();
            $sh->finish();
            $query = 'SELECT COUNT(*) AS songs FROM music_songs WHERE numplays>0';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $row2 = $sh->fetch_array();
            $sh->finish();
            $output = '<div class="head">
        <h2 class="music">' . t('Server Statistics') . '</h2></div>
        <p><a class="music" href="#" onclick="updateBox(\'recentadd\',0); return false;">' . t('Recently Added Albums') . '</a><br>
        <a class="music" href="#" onclick="updateBox(\'recentplay\',0); return false;">' . t('Recently Played Songs') . '</a><br>
        <a class="music" href="#" onclick="updateBox(\'topplay\',0); return false;">' . t('Top Played Songs') . '</a><br>
        <a class="music" href="#" onclick="updateBox(\'toprated\',0); return false;">' . t('Top Rated Songs') . '</a><br>
        </p>
        <h3>' . t('Local Server Statistics') . '</h3>
        <p>';
            foreach (array('music_songs' => t('Songs'), 'music_albums' => t('Albums'), 'music_artists' => t('Artists'), 'music_genres' => t('Genres')) as $table => $title) {
                $sh = $db->query('SELECT COUNT(*) FROM ' . $table . ';');
                if (!$sh) {
                    continue;
                }
                $count = $sh->fetch_array();
                $sh->finish();
                $output .= '<strong>' . $title . ':</strong> ' . $count[0] . '<br>';
            }
            $output .= '<br><strong>' . t('Songs Played') . ':</strong> ' . $row2['songs'] . '<br>';
            $sh = $db->query('SELECT COUNT(*) AS songs FROM music_songs WHERE rating > 0;');
            if (!$sh) {
                break;
            }
            $row3 = $sh->fetch_array();
            $sh->finish();
            $output .= '<strong>' . t('Songs Rated') . ':</strong> ' . $row3['songs'] . '<br></p>';
            break;
        case 'recentadd':
            $query = 'SELECT ma.album_name, ma.album_id, mt.artist_name, UNIX_TIMESTAMP(ms.date_entered) AS pubdate ' . 'FROM music_songs AS ms ' . 'LEFT JOIN music_albums AS ma ON ms.album_id=ma.album_id ' . 'LEFT JOIN music_artists AS mt ON ms.artist_id=mt.artist_id ' . 'GROUP BY ms.album_id ' . 'ORDER BY ms.date_entered DESC ' . 'LIMIT 40';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $output = '<div class="head">
        <div class="right">
        <a class="music" href="#"
          onclick="switchPage(\'stats\'); return false;"
          title="' . t('Return to Statistics Page') . '">' . t('Back') . '</a></div>
        <h2 class="music">' . t('Recently Added Albums') . '</h2></div>
        <ul class="music">';
            while ($row = $sh->fetch_array()) {
                $output .= getHtmlAlbum($row['album_id'], $row['album_name'], $row['artist_name'], '', '', '', date('m.d.Y', $row['pubdate']));
            }
            $sh->finish();
            $output .= '</ul>';
            break;
        case 'topplay':
            $query = 'SELECT ma.album_name, ms.numplays, ms.name, mt.artist_name, ms.song_id ' . 'FROM music_songs AS ms ' . 'LEFT JOIN music_albums AS ma ON ms.album_id=ma.album_id ' . 'LEFT JOIN music_artists AS mt ON ms.artist_id=mt.artist_id ' . 'WHERE ms.numplays > 0 ' . 'ORDER BY ms.numplays DESC ' . 'LIMIT 40';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $output = '<div class="head">
        <div class="right">
        <a class="music" href="#"
          onclick="switchPage(\'stats\'); return false;"
          title="' . t('Return to Statistics Page') . '">' . t('Back') . '</a></div>
        <h2 class="music">' . t('Top Played Songs') . '</h2></div>
        <ul class="music">';
            while ($row = $sh->fetch_array()) {
                $output .= getHtmlSong($row['song_id'], $row['artist_name'], '', '', $row['name'], '', '', '', '');
            }
            $sh->finish();
            $output .= '</ul>';
            break;
        case 'recentplay':
            $query = 'SELECT ms.name, ms.song_id, mt.artist_name, UNIX_TIMESTAMP(ms.lastplay) AS playdate ' . 'FROM music_songs AS ms ' . 'LEFT JOIN music_artists AS mt ON ms.artist_id=mt.artist_id ' . 'WHERE ms.numplays > 0 ' . 'ORDER BY ms.lastplay DESC ' . 'LIMIT 40';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $output = '<div class="head">
        <div class="right">
        <a class="music" href="#"
          onclick="switchPage(\'stats\'); return false;"
          title="' . t('Return to Statistics Page') . '">' . t('Back') . '</a></div>
        <h2 class="music">' . t('Recently Played Songs') . '</h2></div>
        <ul class="music">';
            while ($row = $sh->fetch_array()) {
                $output .= getHtmlSong($row['song_id'], $row['artist_name'], '', '', $row['name'], '', '', '', '');
            }
            $output .= '</ul>';
            break;
        case 'toprated':
            $query = 'SELECT ms.name, ms.song_id, ms.rating, mt.artist_name ' . 'FROM music_songs AS ms ' . 'LEFT JOIN music_artists AS mt ON ms.artist_id=mt.artist_id ' . 'ORDER BY ms.rating DESC ' . 'LIMIT 40';
            $sh = $db->query($query);
            if (!$sh) {
                break;
            }
            $output = '<div class="head">
          <div class="right">
            <a class="music" href="#"
              onclick="switchPage(\'stats\'); return false;"
              title="' . t('Return to Statistics Page') . '">' . t('Back') . '</a></div>
            <h2 class="music">' . t('Top Rated Songs') . '</h2></div>
            <ul class="music">';
            while ($row = $sh->fetch_array()) {
                $output .= getHtmlSong($row['song_id'], $row['artist_name'], '', '', $row['name'], '', '', '', $row['rating']);
            }
            $output .= '</ul>';
            break;
    }
    return $output;
}