
function GetOpenFont(Color,Width)
    {
    var FontSize=4;
    if (GetNumLines()==8) FontSize=2;
    return "<font size="+FontSize+" color="+Color+" face=\"Arial, Helvetica, sans-serif\"><b>"+
        "<DIV STYLE=\"width: "+Width+"px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap\">";
    }

var CloseFont="</div></b></font>";

function GetAltTabFontTag() {return "<font size=2 color="+CurrentItemColor.GetHTMLText()+" face=\"Times New Roman\"><b>";}
function GetTabFontTag() {return "<font size=2 color="+CurrentMenuTextColor.GetHTMLText()+" face=\"Times New Roman\"><b>";}
var TabCloseFontTag="</b></font>";
//var CloseFont="</font></b>";

var CursorImage="cursor.gif";
var BlankImage="blank.gif";

function GenerateTableLineHTML(Text)
    {
    var Height=23;
    if (GetNumLines()==8) Height=17;
    return "<tr><td height="+Height+">"+Text+"</td></tr>\n";
    }

function ShowScrollBar(ScreenSize,TotalSize,CurrentPosition)
    {
    //alert("ShowScrollBar");
    if (is_nav4up) return;
    if (TotalSize>ScreenSize)
        {
        /*alert
            (
            "ScreenSize="+ScreenSize+"\n"+
            "TotalSize="+TotalSize+"\n"+
            "CurrentPosition="+CurrentPosition
            );*/
        var Width=6;
        var Height=128;
        var Scale=Height/TotalSize;
        var SBarHeight=Math.max(Math.ceil(ScreenSize*Scale),18);
        var SBarPos=Math.floor((CurrentPosition/(TotalSize-ScreenSize))*(Height-SBarHeight));
/*        alert(
            "SBarHeight="+SBarHeight+
            " SBarPos"+SBarPos+
            " Scale="+Scale+
            " Height="+Height+
            " TotalSize="+TotalSize
            );*/

        var ScrollBarX;
        var ScrollBarY;
        if (JBMMHTMLVersion==0)
            {
            ScrollBarX=424;
            ScrollBarY=179;
            }
        else
            {
            ScrollBarX=290-2;
            ScrollBarY=70-1;
            }
        var Left=ScrollBarX+5;
        var Top=ScrollBarY+5;

        RewriteInnerHTML
            (
            "ScrollBar",
            "<div id=\"ScrollBarBG\" style=\"position:absolute; left:"+ScrollBarX+"px; top:"+ScrollBarY+"px; width:16; height:138; z-index:2; visibility: visible; background-color: "+CurrentMenuBGColor.GetHTMLText()+"\"><img src=\"overlays/scrollshade.gif\"></div>"+
            "<div id=\"ScrollBar\" style=\"position:absolute; left:"+Left+"px; top:"+(Top+SBarPos)+"px; width:"+Width+"px; height:+"+SBarHeight+"px; z-index:3; visibility: visible; background-color: "+CurrentScrollBarColor.GetHTMLText()+"; layer-background-color: "+CurrentScrollBarColor.GetHTMLText()+"; border: 0px none #000000\"></div>"
            );
        }
    else
        {
        RewriteInnerHTML("ScrollBar","");
        }
    }

function GenTabHTMLText(Tab1Text,Tab2Text,Tab3Text)
    {
    return "<table width=100% height=23 border=0 cellspacing=0 cellpadding=0>\n"+
"                    <tr>\n"+
"                      <td width=33% background=\"overlays/taboverlay.gif\" valign=middle align=center bgcolor=\""+CurrentMenuBGColor.GetHTMLText()+"\">"+GetTabFontTag()+Tab1Text+TabCloseFontTag+"</td>"+
"                      <td width=33% background=\"overlays/taboverlay.gif\" valign=middle align=center bgcolor=\""+CurrentMenuBGColor.GetHTMLText()+"\">"+GetTabFontTag()+Tab2Text+TabCloseFontTag+"</td>"+
"                      <td width=33% background=\"overlays/taboverlay.gif\" valign=middle align=center bgcolor=\""+CurrentMenuBGColor.GetHTMLText()+"\">"+GetTabFontTag()+Tab3Text+TabCloseFontTag+"</td>"+
"                    </tr>\n"+
"                  </table>\n";
    }

function GenHTMLText(Text, Color, DisplayWidth)
    {
    if (is_ie && !is_ie5_5up)
        {
        var W;
        if (GetNumLines()==8)
            W=DisplayWidth/13;
        else
            W=DisplayWidth/11;
        if (Text.length>=W)
            Text=Text.substring(0,W);//+"...";
        }

    return GetOpenFont(Color,DisplayWidth)+Text+CloseFont;
    }
function GenHTMLIcon(IconName)
    {
    if (IconName && IconName!="")
        {
        var ImageOpen="<img src=\"";
        var Align="absmiddle";
        if (GetNumLines()==8) Align="top";
        var ImageClose="\" width=23 height=17 align="+Align+" border=0>";
        var IconString=GetIconsPath()+ IconName;
        IconString=IconString.toLowerCase();
//alert(IconString);
        return ImageOpen+IconString +ImageClose;
        }
    return "";
    }

function GenerateTopLine(Icon,Text,DontShowBattery)
    {
    //alert("GenerateTopLine Icon="+Icon+" Text="+Text);

    var PlayingI=GetCurrentPlayingImage();
//    alert(PlayingI);
    return "    <tr><td id=TopLine align=left valign=top background=\"overlays/shadedbg.gif\">\n"+
        "    <table width=100% border=0 cellspacing=0 cellpadding=0 height=23>\n"+
        "    <tr>\n"+
        "        <td width=100%>\n"+
        "            "+GenHTMLText(GenHTMLIcon(Icon)+Text,CurrentTitleTextColor.GetHTMLText(),(DontShowBattery?212:170))+"\n"+
        "        </td>\n"+
        "        <td valign=center height=23>"+
                    "<table cellspacing=0 cellpadding=0><tr><td><img src=\""+GetIconsPath()+PlayingI+"\" width=23 height=17></td><td>"+
                    (DontShowBattery?"":"<img src=\""+GetIconsPath()+"batteryfull.gif\" width=40 height=23 vspace=0 hspace=0>")+
                    "</td></tr></table>"+
                "</td>\n"+
        "    </tr>\n"+
        "    </table>\n"+
        "    </td></tr>\n";
    }

function GenerateDisplayTable(InnerHTML)
    {
//    if (CurrentJBMMUI!=OffUI && CurrentJBMMUI!=PlayUI && IsPlaying=="stopped") CurrentDisplayingImage=null;
    var Image=CurrentDisplayingImage;
    var BGString;
    if (!Image)
        {
        Image=CurrentBGImage.CurrentValue;
        }
    if (Image.substring(0,1)=="(")
        BGString="bgcolor="+CurrentBackgroundColor.GetHTMLText();
    else
        BGString="background=\"jpgs/"+Image.toLowerCase()+"\"";
//alert(BGString);
    var Ret="<table WIDTH=237 HEIGHT=184 border=0 cellspacing=0 cellpadding=0 "+BGString+">\n"+
        InnerHTML+
        "</table>\n";
//    alert(Ret);
    return Ret;
    }

function GenerateXUpTD(ItemNum,Height,Width1,Width2,NumUp)
    {
    var CursorImage;
    if (CurrentJBMMUI.CurrentMenu.CursorPos==ItemNum)
        CursorImage="cursor.gif";
    else
        CursorImage="blank.gif";
    var Thumb="";
    if (ItemNum<CurrentJBMMUI.CurrentMenu.GetNumItems())
        {
        Item=CurrentJBMMUI.CurrentMenu.Items[ItemNum];
        if (!Item) alert("ItemNum="+ItenNum+" item not set");
        if (Item.File && Item.File.Extension=="jpg")
            {
            var ImageName=Item.File.FileName.substring(0,Item.File.FileName.indexOf('.'))+".jpg";
            Thumb="<img src=\"jpgs/Thumbs"+NumUp+"/"+ImageName+"\">"
            }
        else
            {
            Thumb=GenHTMLIcon(Item.Icon);
            }
        }
    return  "<td width="+Width1+" height="+Height+"><img src=\""+GetIconsPath()+CursorImage+"\"></td>"+
            "<td width="+Width2+" align=\"center\" valign=\"middle\">"+Thumb+"</td>";
    }

function Generate4UpTD(ItemNum) {return GenerateXUpTD(ItemNum,67,23,82,4);}
function Generate9UpTD(ItemNum) {return GenerateXUpTD(ItemNum,45,23,50,9);}


function GenSliderLine(CursorIcon,Icon,Text,Color,SliderVal,TextPercentSize,TotalWidth)  //sliderval is 0-1
    {
    var TextWidth=Math.floor(TotalWidth*TextPercentSize);
    var SliderWidth=TotalWidth-TextWidth;

    var SliderEndsSize=5;
    var SliderSize=6;
    var InnerSliderWidth=SliderWidth-2*SliderEndsSize-SliderSize;
    var HTMLText;
    HTMLText=GenHTMLIcon(CursorIcon);
    HTMLText+=GenHTMLIcon(Icon)+Text;
    HTMLText=GenHTMLText(HTMLText, Color,TextWidth);
    var TextTD="<td width="+TextWidth+">"+HTMLText+"</td>";

    var LeftBGSize=Math.floor(InnerSliderWidth*SliderVal + .001)+1;
    var RightBGSize=Math.ceil(InnerSliderWidth*(1-SliderVal) - .001)+1;
    if (LeftBGSize+RightBGSize!=InnerSliderWidth+2)
    alert(
        "LeftBGSize="+LeftBGSize+"\n"+
        "RightBGSize="+RightBGSize+"\n"+
        "LeftBGSize+RightBGSize="+(LeftBGSize+RightBGSize)+"\n"+
        "InnerSliderWidth="+(InnerSliderWidth)+"\n"
        );
    var SliderIcon;
    if ((SliderVal+.00000001>.5 && SliderVal-.00000001<.5) || SliderVal<.00001 || SliderVal>.999999)
        SliderIcon="sliderbalanced.gif";
    else
        SliderIcon="slider.gif";
    var OpenSliderTD    ="<td width="+SliderEndsSize+"><img src=\""+GetIconsPath()+  "sliderbgleft.gif\" width=5 height=14 align=absmiddle></td>";
    var LeftSliderBGTD  ="<td width="+LeftBGSize+    "><img src=\""+GetIconsPath()+"sliderbgmiddle.gif\" width="+LeftBGSize+" height=14 align=absmiddle></td>";
    var SliderTD        ="<td width="+SliderSize+    "><img src=\""+GetIconsPath()+SliderIcon+"\" width=6 height=14 align=absmiddle></td>";
    var RightSliderBGTD ="<td width="+RightBGSize+   "><img src=\""+GetIconsPath()+"sliderbgmiddle.gif\" width="+RightBGSize+" height=14 align=absmiddle></td>";
    var CloseSliderTD   ="<td width="+SliderEndsSize+"><img src=\""+GetIconsPath()+ "sliderbgright.gif\" width=5 height=14 align=absmiddle></td>";

    return "<table border=0 cellspacing=0 cellpadding=0 width="+(TextWidth+SliderWidth)+"><tr>"+
        TextTD+
        OpenSliderTD+
        LeftSliderBGTD+
        SliderTD+
        RightSliderBGTD+
        CloseSliderTD+
        "</tr></table>";
/*              <tr>
                <td id="Line1">
                  <table border=0 cellspacing=0 cellpadding=0 width=220>
                    <tr>
                      <td width=100><img src="Icons/Cursor.gif" width="23" height="17" align="top"><b><img src="Icons/CD.gif" width="23" height="17" align="absmiddle"></b><font size="4" color="#FFFF00" face="Arial Narrow, Helvetica, sans-serif"><b><font face="Arial, Helvetica, sans-serif">Daft</font></b></font></td>
                      <td width=0><img src="Icons/SliderBGLeft.gif" width="5" height="14" align="abstop"></td>
                      <td width=0><img src="Icons/SliderBGMiddle.gif" width="100" height="14" align="absmiddle"></td>
                      <td width=0><img src="Icons/Slider.gif" width="6" height="14" align="top"></td>
                      <td width=0><img src="Icons/SliderBGMiddle.gif" width="1" height="14" align="absmiddle"></td>
                      <td width=0><img src="Icons/SlideBGRight.gif" width="5" height="14" align="absmiddle"></td>
                    </tr>
                  </table></td>
              </tr>*/

    }

function GenLoadingLine(CursorIcon,Icon,Text,Color,LoaderVal,LoaderWidth,TotalWidth)  //sliderval is 0-1
    {
    var TextWidth=Math.floor(TotalWidth-LoaderWidth-2);

    var LoaderEndsSize=5;
    var LoaderSize=6;
    var HTMLText;
    var InnerLoaderWidth=LoaderWidth-2;
    HTMLText=GenHTMLIcon(CursorIcon);
    HTMLText+=GenHTMLIcon(Icon)+Text;
    HTMLText=GenHTMLText(HTMLText, Color,TextWidth);
    var TextTD="<td width="+TextWidth+">"+HTMLText+"</td>";

    var LeftBGSize=Math.max(Math.floor(LoaderWidth*LoaderVal + .001),1);
    var RightBGSize=LoaderWidth-LeftBGSize;
    var LeftLoaderBGTD  ="<td width="+LeftBGSize+" background=\""+GetIconsPath()+"ui-loadingbar.gif\" height=23> </td>";
    var RightLoaderBGTD ="<td width="+RightBGSize+" height=23> </td>";

    return "<table border=0 cellspacing=0 cellpadding=0 width="+(TextWidth+LoaderWidth)+" height=23><tr>"+
        TextTD+
        LeftLoaderBGTD+
        RightLoaderBGTD+
        "</tr></table>";
    }
