//**************************************
// Top Menus
//**************************************
var MediaLibMenu=new menu("cd.gif","Media Library");
var MLArtistMenu=   MediaLibMenu.AddItemAndGenSubMenu(new item("person.gif","Artist")).SubMenu;
var MLAlbumMenu=    MediaLibMenu.AddItemAndGenSubMenu(new item("cd.gif"    ,"Album" )).SubMenu;
var MLSongsMenu=    MediaLibMenu.AddItemAndGenSubMenu(new item("mp3.gif"   ,"Song" )).SubMenu;
var MLGenreMenu=    MediaLibMenu.AddItemAndGenSubMenu(new item("genre.gif" ,"Genre")).SubMenu;
var MLVideoMenu=    MediaLibMenu.AddItemAndGenSubMenu(new item("avi.gif"   ,"Video")).SubMenu;
var MLPhotosMenu=   MediaLibMenu.AddItemAndGenSubMenu(new item("image.gif" ,"Photos")).SubMenu;
var MLPlayListsMenu=MediaLibMenu.AddItemAndGenSubMenu(new item("playlist.gif" ,"Play Lists")).SubMenu;
var MLOthersMenu=   MediaLibMenu.AddItemAndGenSubMenu(new item("unknowntype.gif" ,"Other Files")).SubMenu;

MediaLibMenu.Notes=   MediaLibMenuNotes;
MLArtistMenu.Notes=   MLArtistMenuNotes;
MLAlbumMenu.Notes=    MLAlbumMenuNotes;
MLSongsMenu.Notes=    MLSongsMenuNotes;
MLGenreMenu.Notes=    MLGenreMenuNotes;
MLVideoMenu.Notes=    MLVideoMenuNotes;
MLPhotosMenu.Notes=   MLPhotosMenuNotes;
MLPlayListsMenu.Notes=MLPlayListsMenuNotes;
MLOthersMenu.Notes=   MLOthersMenuNotes;



var FilesTopMenu=new menu("folder.gif","Root Folder");
FilesTopMenu.Notes=FilesTopMenuNotes;

//***************************
// Add files to System
//***************************
function AddFileWithDirs(Menu,FilePath,FileItem,FolderIcon)
    {
    if (!Menu) alert("AddFileWithDirs() Menu not set");
//    alert("AddFileWithDirs() Menu: "+Menu.Name);
    while(FilePath.length>0)
        {
        var Index=FilePath.indexOf("/");
        if (Index<0) Index=FilePath.length;
        var Dir=FilePath.substring(0,Index);
//        alert("Dir="+Dir);

        FilePath=FilePath.substring(Index+1,FilePath.length);
        var NewM=Menu.AddItemAndGenSubMenu(new item(FolderIcon,Dir)).SubMenu;
        Menu.SortMenu();
        Menu=NewM;
//        alert(Menu);
        }
    Menu.AddItem(FileItem);
    }

function AddFileToFiles(FileStruct)
    {

    var Icon;
            if (FileStruct.Extension=="mp3")    Icon="mp3.gif";
    else    if (FileStruct.Extension=="avi")    Icon="avi.gif";
    else    if (FileStruct.Extension=="jpg")    Icon="image.gif";
    else                                Icon="unknowntype.gif";
    var FileItem=new item(Icon ,FileStruct.FileName);
    FileItem.File=FileStruct;

    //Add To Demo Playlist
    if (FileStruct.Extension=="mp3" && FileStruct.TrackNumber==2)
        {
        var Path=Get2DirPath("/Playlists/2ndSongs.m3u");
        AddFileWithDirs(FilesTopMenu,Path,FileItem,"folder.gif");
        var Playlists=FilesTopMenu.GetItemByName("Playlists");
        Playlists.SubMenu.Items[0].Icon="playlist.gif";
        Playlists.SubMenu.Items[0].SubMenu.Icon="playlist.gif";
        }

    var FilePath=FileStruct.Path;
    FilePath=FilePath.substring(FilePath.indexOf("/")+1,FilePath.length);
    AddFileWithDirs(FilesTopMenu,FilePath,FileItem,"folder.gif");
    }

function Get2DirPath(Path)
    {
    var Index=Path.lastIndexOf('/');
    Index=Path.lastIndexOf('/',Index-1);
    if (Index<0)
        {
        Path="Root Folder/"+Path;
        }
    else
        Path=Path.substring(Index+1,Path.length);
    return Path;
    }

function AddFileToML(FileStruct)
    {
    if (FileStruct.Extension=="mp3")
        {
        TotalMP3Count++;
        TotalMP3Size+=FileStruct.Size*1;
        var FileItem=new item("mp3.gif" ,FileStruct.SongName);
    //    var FileItem=new item("mp3.gif" ,FileStruct.SongName.substring(0,15));
        FileItem.File=FileStruct;

        var ArtistMenu=MediaLibMenu.GetItemByName("Artist").SubMenu;
        ArtistMenu.AddItemAndGenSubMenu(new item("person.gif" ,FileStruct.Artist));
        ArtistMenu.SortMenu();
        var CurArtistMenu=ArtistMenu.GetItemByName(FileStruct.Artist).SubMenu;
        CurArtistMenu.AddItemAndGenSubMenu(new item("cd.gif" ,FileStruct.Album));
        CurArtistMenu.SortMenu();
        var AlbumMenu=CurArtistMenu.GetItemByName(FileStruct.Album).SubMenu;


        AlbumMenu.AddItem(FileItem);

        var GenreTopMenu=MediaLibMenu.GetItemByName("Genre").SubMenu;
        var NoGenreMenu=GenreTopMenu.AddItemAndGenSubMenu(new item("genre.gif" ,"(no genre set)")).SubMenu;
        NoGenreMenu.AddItem(FileItem);
        NoGenreMenu.SortMenu();

        var AlbumTopMenu=MediaLibMenu.GetItemByName("Album").SubMenu;
        AlbumTopMenu.AddItemAndGenSubMenu(new item("cd.gif" ,FileStruct.Album));
        AlbumTopMenu.SortMenu();
        var AlbumMenu=AlbumTopMenu.GetItemByName(FileStruct.Album).SubMenu;
        AlbumMenu.AddItem(FileItem);

        var SongTopMenu=MediaLibMenu.GetItemByName("Song").SubMenu;
        var SongLetterMenuText=FileStruct.SongName.substring(0,1).toUpperCase()+" songs";
        var LetterMenu=SongTopMenu.AddItemAndGenSubMenu(new item("mp3.gif" ,SongLetterMenuText)).SubMenu;
        LetterMenu.AddItem(FileItem);
        LetterMenu.SortMenu();

/*        var AllSongsMenuText="(all songs)";
        var AllSongsMenu=SongTopMenu.AddItemAndGenSubMenu(new item("mp3.gif" ,AllSongsMenuText)).SubMenu;
        AllSongsMenu.AddItem(FileItem);
        AllSongsMenu.SortMenu();*/

        SongTopMenu.SortMenu();

        FileStruct.FileInfo1="192kb MP3, 44.1-S"
        FileStruct.TimeLength=Math.floor(FileStruct.Size/(192*1024/8));
//        alert("FileStruct.TimeLength="+FileStruct.TimeLength);
        FileStruct.FileInfo2="Len: "+GetTimeStr(FileStruct.TimeLength);

        //Add To Demo Playlist
        if (FileStruct.TrackNumber==2)
            {
            var Path=Get2DirPath("/Playlists/2ndSongs.m3u");
            AddFileWithDirs(MLPlayListsMenu,Path,FileItem,"folder.gif");
            MLPlayListsMenu.Items[0].SubMenu.Items[0].Icon="playlist.gif";
            MLPlayListsMenu.Items[0].SubMenu.Items[0].SubMenu.Icon="playlist.gif";
            }
        }
    else
    if (FileStruct.Extension=="avi")
        {
        TotalAVICount++;
        TotalAVISize+=FileStruct.Size*1;
        var FileItem=new item("avi.gif",FileStruct.FileName);
        FileItem.File=FileStruct;
        var Path=Get2DirPath(FileStruct.Path);
        AddFileWithDirs(MLVideoMenu,Path,FileItem,"folder.gif");

        FileStruct.TimeLength=Math.floor(FileStruct.Size/(1200*1024/8));
        FileStruct.FileInfo1="1200k AVI, Mpeg4";
        FileStruct.FileInfo2="Len: "+GetTimeStr(FileStruct.TimeLength);
        }
    else
    if (FileStruct.Extension=="jpg")
        {
        TotalJPGCount++;
        TotalJPGSize+=FileStruct.Size*1;
        var FileItem=new item("image.gif",FileStruct.FileName);
        FileItem.File=FileStruct;
        var Path=Get2DirPath(FileStruct.Path);
        AddFileWithDirs(MLPhotosMenu,Path,FileItem,"folder.gif");
        FileStruct.FileInfo1="JPEG";
        FileStruct.FileInfo2="Res: 640x480";
        }
    else
        {
        TotalOtherCount++;
        TotalOtherSize+=FileStruct.Size*1;
        var FileItem=new item("unknowntype.gif",FileStruct.FileName);
        FileItem.File=FileStruct;
        var Path=Get2DirPath(FileStruct.Path);
        AddFileWithDirs(MLOthersMenu,Path,FileItem,"folder.gif");
        }
    }

var CurrentPath;

function AddFile(DirEntry)
    {
    var File=new Object;
    var AlbumStartPos=CurrentPath.lastIndexOf('/');
    var ArtistStartPos=CurrentPath.lastIndexOf('/',AlbumStartPos-1);

    var Path,FileName,Extension,DateStr,TimeStr,Size,SongName,Artist,Album,Genre,TrackNumber,TimeLength=0;

    Extension=DirEntry.substring(DirEntry.lastIndexOf('.')+1,DirEntry.length);
    Path    =CurrentPath;
    DateStr =DirEntry.substring(0,10);
    TimeStr =DirEntry.substring(12,18);
    Size    =DirEntry.substring(19,38);
    FileName=DirEntry.substring(39,DirEntry.length);

    while(Size.indexOf(',')>=0)
        Size=Size.substring(0,Size.indexOf(','))+Size.substring(Size.indexOf(',')+1,Size.length);

    Artist  =CurrentPath.substring(ArtistStartPos+1,AlbumStartPos);
    Album   =CurrentPath.substring(AlbumStartPos+1,CurrentPath.length);
    if (Extension=="mp3")
        {
        SongName=FileName.substring(FileName.lastIndexOf('-')+2,FileName.lastIndexOf('.'));
        TrackNumber=FileName.substring(0,2);
//        TimeLength=4*60+47;
        TimeLength=15;
        }
    else
        {
        SongName=FileName;
//        Artist  ="Size: "+GetFileSizeStringWithFormat(Size,100);
//        Album   ="Date: "+DateStr+" "+TimeStr;
        TrackNumber="";
        }

    if (Extension=="avi")
        TimeLength=1*3600+24*60+1;

    var File=new file(Path,FileName,Extension,DateStr,TimeStr,Size,SongName,Artist,Album,Genre,TrackNumber,TimeLength);

    TotalFileCount++;
    TotalFileSize+=File.Size*1;
//    alert("TotalFileCount: "+TotalFileCount+"\n"+"TotalFileSize:  "+Math.floor(TotalFileSize));



    AddFileToML(File);
    AddFileToFiles(File);
/*    alert
        (
        "CurrentPath="+CurrentPath+"\n"+
        "AlbStart="+AlbumStartPos+"\n"+
        "ArtStart="+ArtistStartPos+"\n"+
        "Artist  : "+ File.Artist  +"\n"+
        "Album   : "+ File.Album   +"\n"+
        "FileName: "+ File.FileName+"\n"+
        "SongName: "+ File.SongName+"\n"+
        "Path    : "+ File.Path    +"\n"+
        "DateStr : "+ File.DateStr +"\n"+
        "TimeStr : "+ File.TimeStr +"\n"+
        "TrackNum: "+ File.TrackNumber+"\n"+
        "Size    : "+ File.Size    +"\n"
        );*/
    }

