var OverrideTitle="";

var JBMMCurrentlyOn=false;

//var CurrentJBMMUI=GetBrowserUIObject();
var CurrentJBMMUI;

var NumAdded;
var TimeAdded;
var TotalPlaylistTime=0;
var AddedJBMMUI;
var MomentaryReturnUI;

var SetupReturnJBMMUI;
var PlayReturnJBMMUI;
var HoldReturnJBMMUI;

var ReturnFromRecordIsPlaying;
var RecordReturnJBMMUI;

var VolumeReturnJBMMUI;
var CurrentlyBrowsingUI;
var ReturnFromMenuUI;
var PlayingMenuUI;
var RecordingMenuUI;

//var ImageEditorUI;
var PlayingPlaylist=false;

var LoadingUI;
var OffUI;
var VolumeMenuUI;
var TopUI;
var MediaLibUI;
var FilesUI;
var PlaylistUI;
var PlayUI;
var RecordUI;
var BrowserMenuUI;
var PlaylistMenuUI;

var PlayingScreen=0;

var TotalFileCount=0;
var TotalFileSize=0;

var TotalAVICount=0;
var TotalAVISize=0;

var TotalJPGCount=0;
var TotalJPGSize=0;

var TotalMP3Count=0;
var TotalMP3Size=0;

var TotalOtherCount=0;
var TotalOtherSize=0;
var HoldLevel=0;

var JpgPath="jpgs/";

var CurrentBookmarkMode=new value(new Array("Load","Save"),0);
var CurrentVis=new value(new Array("(none)","Levels","O-scope","Freq. Analyzer"),3);

var SlideShowDelaySeconds=new Array(1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,120,300,10000000);
var CurrentSlideShowDelay=new value(new Array("1s","2s","3s","4s","5s","6s","7s","8s","9s","10s","15s","20s","25s","30s","45s","1m","2m","5m","Manual"),9);
var TimeOutsArray=new Array("5s","10s","30s","1m","5m","10m","15m","30m","Never");
var CurrentBatteryPowerTimeout=new value(TimeOutsArray,4);
var CurrentBatteryLCDTimeout=new value(TimeOutsArray,2);
var CurrentBatteryHDTimeout=new value(TimeOutsArray,0);
var CurrentACPowerTimeout=new value(TimeOutsArray,8);
var CurrentACLCDTimeout=new value(TimeOutsArray,8);
var CurrentACHDTimeout=new value(TimeOutsArray,4);


var CurrentLanguage=new value(new Array("English","French","German","Spanish"),0);
var CurrentPitch=new value(new Array(
    "-12","-11","-10","-9","-8","-7","-6","-5","-4","-3","-2","-1",
    "0",
    "+1","+2","+3","+4","+5","+6","+7","+8","+9","+10","+11","+12"
    ),12);

var CurrentSpeed=new value(new Array(
    "25%",
    "50%",
    "55%",
    "60%",
    "65%",
    "70%",
    "75%",
    "80%",
    "85%",
    "90%",
    "95%",
    "100%",
    "105%",
    "110%",
    "115%",
    "120%",
    "125%",
    "150%",
    "175%",
    "200%"
    ),11);

var CurrentMultimediaShowMode=new value(new Array("JPG times","MP3 times"),0);
var CurrentPlayMode=new value(new Array("From Start","Until End","From PL Start","Until PL End"),0);
var CurrentRepeatMode=new value(new Array("Off","On"),0);
var CurrentShuffleMode=new value(new Array("Off","On"),0);
var CurrentScanMode=new value(new Array("Off","5s beginning","5s middle", "10s beginning", "10s middle"),0);

var FontsArray=new Array("6 lines","8 lines");
var CurrentLCDFont=new value(FontsArray,0);
var CurrentTVFont=new value(FontsArray,1);

var CurrentMomentaryDelay=new value(new Array("0s","1s","2s","3s","4s","5s","6s","7s","8s","9s","10s"),3);

var CurrentPlaylistSort=new value(new Array("Song Name","File Date","File Size","Artist","Album","Path+File","File Name","Last Played","Times PLayed","Random"),0);
var CurrentFileDisplayMode=new value(new Array("Song Name","File Date","File Size","Artist","Album","File Info1","File Info2","Path","File Name","Last Played","Times Played"),0);
var CurrentPlaylistDisplayMode=new value(new Array("Song Name","File Date","File Size","Artist","Album","File Info1","File Info2","Path","File Name","Last Played","Times Played"),0);

var CurrentRecordSource=new value(new Array("Intenal Mic","Line-In","Digital-In"),0);
//var CurrentRecordChannels=new value(new Array("Mono","Stereo"),1);
var CurrentRecordQuality=new value(new Array(
    "32k vbr MP3",
    "64k vbr MP3",
    "92k vbr MP3",
    "128k vbr MP3",
    "160k vbr MP3",
    "192k vbr MP3",
    "256k vbr MP3",
    "1440k WAV"),4);




function GenScrollBarArray(Step)
    {
    var I=0;
    var A=new Array();
    while (I<=1.000000001)
        {
        A[A.length]=I;
        I+=Step;
        }
    return A;
    }

var ScrollBarArray=GenScrollBarArray(.05);

var CurrentImageEditCrop=new value(new Array("Left/Top","Right/Bottom"),0);
var CurrentImageEditRotate=new value(new Array("None","90d cw","180d","90d ccw"),0);
var CurrentImageEditZoom=new value(new Array("25%","50%","100%","200%","300%","400%","600%","800%","1000%","1600%","3200%"),2);
var CurrentImageEditBrightness=new value(ScrollBarArray,10);
var CurrentImageEditContrast=new value(ScrollBarArray,10);
var CurrentImageEditHue=new value(ScrollBarArray,10);
var CurrentImageEditSaturation=new value(ScrollBarArray,10);

var CurrentRecordLevel=new value(ScrollBarArray,10);
var CurrentVolume=new value(ScrollBarArray,10);
var CurrentBalance=new value(ScrollBarArray,10);
var CurrentEQ20     =new value(ScrollBarArray,10);
var CurrentEQ100    =new value(ScrollBarArray,10);
var CurrentEQ250    =new value(ScrollBarArray,10);
var CurrentEQ500    =new value(ScrollBarArray,10);
var CurrentEQ1000   =new value(ScrollBarArray,10);
var CurrentEQ2500   =new value(ScrollBarArray,10);
var CurrentEQ5000   =new value(ScrollBarArray,10);
var CurrentEQ10000  =new value(ScrollBarArray,10);
var CurrentEQ15000  =new value(ScrollBarArray,10);

var CurrentLCDBacklight=new value(ScrollBarArray,10);
var CurrentLCDBrightness=new value(ScrollBarArray,10);
var CurrentLCDContrast=new value(ScrollBarArray,10);
var CurrentLCDGamma=new value(ScrollBarArray,10);
var CurrentLCDXPos=new value(ScrollBarArray,10);
var CurrentLCDXSize=new value(ScrollBarArray,10);
var CurrentLCDYPos=new value(ScrollBarArray,10);
var CurrentLCDYSize=new value(ScrollBarArray,10);

var CurrentTVOutMode=new value(new Array("NTSC","PAL"),0);
var CurrentTVBrightness=new value(ScrollBarArray,10);
var CurrentTVContrast=new value(ScrollBarArray,10);
var CurrentTVGamma=new value(ScrollBarArray,10);
var CurrentTVXPos=new value(ScrollBarArray,10);
var CurrentTVXSize=new value(ScrollBarArray,10);
var CurrentTVYPos=new value(ScrollBarArray,10);
var CurrentTVYSize=new value(ScrollBarArray,10);

var ColorGranularity=20;

function PrependZeros(Str,Len)
    {
    Str+="";
    while(Str.length<Len)
        Str="0"+Str;
    return Str;
    }

function color_SetFromHTMLText(Text)
    {
    this.Red.CurrentValue=parseInt("0x"+Text.substring(1,3))/255.0;
    this.Green.CurrentValue=parseInt("0x"+Text.substring(3,5))/255.0;
    this.Blue.CurrentValue=parseInt("0x"+Text.substring(5,7))/255.0;
    this.Red.CurrentIndex=Math.floor(this.Red.CurrentValue*ColorGranularity+.0001);
    this.Green.CurrentIndex=Math.floor(this.Green.CurrentValue*ColorGranularity+.0001);
    this.Blue.CurrentIndex=Math.floor(this.Blue.CurrentValue*ColorGranularity+.0001);
    }

function color_GetHTMLText()
    {
    var Ret="#"+
        PrependZeros(Math.floor(.5+this.Red.CurrentValue*255).toString(16),2)+
        PrependZeros(Math.floor(.5+this.Green.CurrentValue*255).toString(16),2)+
        PrependZeros(Math.floor(.5+this.Blue.CurrentValue*255).toString(16),2);
/*    alert(
        "Red="+this.Red+"\n"+
        "Green="+this.Green+"\n"+
        "Blue="+this.Blue+"\n"+
        Ret);*/
    return Ret;
    }

function color_LoadValue(Val)
    {
    this.SetFromHTMLText(Val);
    }

function color_SaveValue()
    {
    return this.GetHTMLText();
    }

function GenerateColorValue(InitialValue)
    {
    var Ret=new Object();
    Ret.Red=new value(ScrollBarArray,10);
    Ret.Green=new value(ScrollBarArray,10);
    Ret.Blue=new value(ScrollBarArray,10);
    Ret.GetHTMLText=color_GetHTMLText;
    Ret.SetFromHTMLText=color_SetFromHTMLText;
    Ret.SetFromHTMLText(InitialValue);
    Ret.LoadValue=color_LoadValue;
    Ret.SaveValue=color_SaveValue;
//    alert(Ret.SaveValue());
    return Ret;
    }


var CurrentVisColor1=           GenerateColorValue("#FF0000");
var CurrentVisColor2=           GenerateColorValue("#FFFF00");
var CurrentTitleTextColor=      GenerateColorValue("#9999FF");
var CurrentItemColor=           GenerateColorValue("#FFFF00");
var CurrentSelectedItemColor=   GenerateColorValue("#00FF00");
var CurrentScrollBarColor=      GenerateColorValue("#FFFF00");
var CurrentMenuBGColor=         GenerateColorValue("#9999FF");
var CurrentBackgroundColor=     GenerateColorValue("#000000");
var CurrentMenuTextColor=       GenerateColorValue("#000000");

var CurrentGatherMode=new value(new Array("Album","Artist","Selected"),0);
var CurrentSelectMode=new value(new Array("None","All","ToggleAll"),0);

var CurrentIconSet=new value(new Array("Default","Matrix","Yellow"),0);
function GetIconsPath() {return (CurrentIconSet.CurrentValue+"Icons/").toLowerCase();}

var CurrentBGImage=new value(new Array(
    "(none)",
    "BGBubble.jpg",
    "BGMatrix.jpg",
    "candy.jpg",
    "cds.jpg",
    "purplesheet.jpg",
    "redsheet.jpg",
    "(user)"
    ),1);
var CurrentDisplayingImage=null;

var IsPlaying="stopped";  //"playing", "pause"

var CurrentPlayingAudioItem=null;
var CurrentAudioTimeRemaining=0;
var CurrentAudioPlayingItemLength=1;

var CurrentPlayingVideoItem=null;
var CurrentVideoTimeRemaining=0;
var CurrentVideoPlayingItemLength=1;

var CurrentPlayingItem=null;

var PlayingListIsAllMP3s=true;
var PlayingList=null;
var PlayingListCursorPoses=null;
var PlayingListCursorPosesValid=false;

var CurrentRecordingTime=0;

var PlayingListFinalized=false;
var PlayingListPosition;
var PlayingListTimeLength=1;
var PlayingListTimePos=0;
/*
var CurrentBGImage="BGMatrix.jpg";
var GetIconsPath()="MatrixIcons/";
var CurrentTitleTextColor="#007F00";
var CurrentItemColor="#00FF00";
var CurrentSelectedItemColor="#FFFF00";
*/

var Thumbs4Up=false;
var Thumbs9Up=false;
var ScrollGranularity=1;

function GetNumLines()
    {
    if (CurrentLCDFont.CurrentIndex==1)
        return 8;
    else
        return 6;
    }

function GetPlayingPosStr()
    {
    if (PlayingList.length==0) return "";
    return (PlayingListPosition+1)+"/"+PlayingList.length;
    }

var RecordItem=new item("mp3.gif","Rec-01.mp3");
RecordItem.File=new file("/record","Rec-01.mp3","mp3","","","0","Rec","Artist","Album","Genre",1,0);

var DefaultSettings=new Object();   //associative array
var UserASettings=new Object();   //associative array
var UserBSettings=new Object();   //associative array

//var EditingImageItem;

