// add.js - contains all common functions for adding html to page body

// Declare Universal Globals for PowerSpec site
var init = false;
var btnList, imgBtn, imgBtnOn, gMenuList;

// Read EngineId and append to URL requests as appropriate
var engId    = top.getRequestPar("engId");
var engIdBlk = (engId!="") ? "?engId="+engId : "";

// Initialize globals - bmkr-todo-not needed anymore.  Remove all references to it.
function doInitAdd() { return (init=true); }


// html for single NavBar button
function addNavBtn(type,name,enable) { 
	if (enable) { return addBtn(name,16,48,"javascript:doNav('"+type+"')"); }
	else { return "<img src=../img/btn/nav"+type+"_gray.gif width=48 height=16 border=0>"; }
}

// add next/back button pair
function addBackNext (navopt,prefix) {
	var backopt = true;
	var nextopt = true;
	if (navopt == "next" || navopt == "none") { backopt = false; }
	if (navopt == "back" || navopt == "none") { nextopt = false; }
	return 	addNavBtn('back',prefix+'back', backopt) + addNavBtn('next',prefix+'next',nextopt);
}

// html for top navigation bar
function addNavBar (navopt, width) {
	doInitAdd();
	var fullWidth = width + 154;
	return "" +
	"<table border=0 cellspacing=0 cellpadding=0 width="+width+">\n"+
	"<tr><td height=17 width="+fullWidth+">"+addSpacer(1,fullWidth)+
	addBackNext(navopt,'nav') +
	"<img src=\"../img/misc/navbar_fil.gif\" width="+width+" height=16 border=0>"+
	addBtn('navhelp',16,58,"javascript:doNav('help')")+
	"</td></tr>\n"+
	"</table>\n";
}

// HTML for bottom navigation bar
function addNavBarBottom (navopt,width,gap) {
	if (width==null) { width="100%"; }
	if (gap==null)   { gap=10; }
  	return "" +
	"<table border=0 cellspacing=0 cellpadding=0 width="+width+">\n"+
	"<tr><td align=center width="+width+">"+
	addSpacer(gap,width)+addBackNext(navopt,'btm')+
	"</td></tr></table>\n";
}

// html to start body with waterfall graphics (narrow version)
function addHdrStart (bnr_name,notFeat) {
	var featImg = (notFeat) ? "../img/pxl/pxlclear.gif" : "../img/hdrbar/features.gif";
	
	return "" +
	"<table border=0 cellspacing=0 cellpadding=0><tr><td>"+addSpacer(5,760)+"</td></tr></table>\n"+
	"<table border=0 cellspacing=0 cellpadding=0>\n"+
	"<tr>\n"+
	"<td valign=top width=32 height=320 background=\"../img/hdrbar/wf_left.jpg\" bgcolor=white>"+addSpacer(320,32)+"</td>\n"+
	"<td valign=top width=542>\n"+
	"<table border=0 cellspacing=0 cellpadding=0><tr>\n"+
	"<td valign=top width=542 height=30 background=\"../img/hdrbar/hdrbar_bg.jpg\">"+
	"<img border=0 height=30 src=../img/hdrbar/"+bnr_name+".gif><img border=0 height=30 src="+featImg+">"+
	"</td></tr></table>\n";
}

// html to end body with righthand waterfall
function addHdrEnd () {
	return "" +
	"</td>\n"+
	"<td valign=top width=186 height=320 background=\"../img/hdrbar/wf_right.jpg\" bgcolor=white>"+addSpacer(320,186)+"</td>\n"+
	"</tr>\n"+
	"</table>\n"; 
}

// HTML for caption above NavBar
function addHdrCaption (hdrtxt,height,width) {
	return "" +
	"<table border=0 cellspacing=0 cellpadding=0>\n"+
	"<tr><td valign=center width="+width+" height="+height+" class=headtxt>"+addSpacer(5,width)+"\n"+hdrtxt+"</td></tr>\n"+
	"</table>\n";
}

// html to end div or layer
function addEndBlk () { return (isNS) ? "</layer>\n" : "</div>\n"; }

// Add HTML Text string for JHTML pages that employ document.write()
// BUG-ATG: needed for JHTML where "\"" is rejected by Dynamo inside document.write()
function addText (text) { return "\""+text+"\""; }

function addRule (width,margintop,marginbot) {
	return addSpacer(margintop, width)+"<br>"+
	"<img src=../img/misc/rule_fil.gif height=3 width="+width+" border=0><br>"+
	addSpacer(marginbot, width)+"<br>";
}

// Add Spacer images and <TD>
function addSpacer (height, width) { return "<img src=../img/pxl/pxlclear.gif height="+height+" width="+width+" border=0>"; }
function addSpacerTD (height, width) { return "<td width="+width+">"+addSpacer(height,width)+"</td>\n"; }
function addFill (color, height, width) { return "<img src=../img/pxl/pxl"+color+".gif height="+height+" width="+width+" border=0>"; }

// HTML for bottom navigation bar
function addCopyright (width,gap,align,note) {
	if (width==null) { width="100%"; }
	if (gap==null)   { gap=10; }
	if (align==null) { align="left"; }
	if (note==null)  { note=""; }
	
  	return "" +
	"<table border=0 cellspacing=0 cellpadding=0 width="+width+">"+
	"<tr><td align="+align+" class=foottxt width="+width+">"+
	addSpacer(gap,width)+"<br>&copy;2008-2010 Cummins Inc, Box 3005, Columbus, IN 47202-3005 USA. &nbsp;"+note+"\n"+
	"</td></tr></table>\n";
}

////////////////////////////////////////////////////////////////////////////
// Add Banner with black menu bar (requires predefined global gMenuList)
function addBanner(imgSrc,type) {
	if (type==null) type = "home";
	var gifLnk, hrefLnk, lnkBlk;
	doInitAdd();
		
	// Set Banner parameters based on arguments
	switch (type) {
		case "blank": // no link
			lnkBlk = addSpacer(16,120);
			break;
		case "home": // home link
			gifLnk = (isOffline()) ? "bnr_mainmenu" : "bnr_homelink"; 
			hrefLnk = "../home/"+ ((isOffline()) ? "mainmenu.htm" : "index.html");
			lnkBlk = addBtn(gifLnk,16,120,hrefLnk,"_top");
			break;
		case "close": // close window link
			hrefLnk = (isOffline()) ? "../vbattn.htm?action=closewin" : "javascript:window.close()";
			lnkBlk = addBtn("bnr_close",16,120,hrefLnk,"_top");
			break;
		default: // use type as the link
			lnkBlk = type
	}
	
	return ""+
	"<table cellspacing=0 cellpadding=0 border=0>\n"+
	"<tr><td background=\"../img/bnr/bnr_powerspec.jpg\" width=760 height=64>"+
	addSpacer(40,760)+"<br>\n"+
	addSpacer(24,300)+
	"<img src=../img/bnr/bnrcap_"+imgSrc+".gif height=24 width=200 border=0>"+
	addSpacer(24,140)+lnkBlk+
	"</td></tr>\n"+
	addBlkBar()+
	"</table>\n";
}

// Add black menu bar
function addBlkBar() {
    if (!gMenuList) return "";
    var bb, bbBlk;
    setting = " bgcolor=black align = center ";
    vBar = "<img src=../img/btn/mnu_vbar.gif width=1 height=16 border=0>";
    
    bbBlk = "<table cellpadding=0 cellspacing=0 width=760><tr>";
    for (var i=0; i < gMenuList.length; i++) {
	bb = gMenuList[i];

        bbBlk+=	"<td class=menuWtxt"+ setting +"width="+ bb.width +
                " onmouseover=\"changeCellOver(this)\" onmouseout=\"changeCellOut(this)\" onclick=\"MenuBarClick(\'"+bb.url+"\')\">"+
                bb.name + "</td>";
    //add width to all VBar cells except the last one so it wont add space inbetween two cells
    if(i!= gMenuList.length-1)
    bbBlk+="<td width=1>"+ vBar+"</td>\n";
    else 
    bbBlk+="<td>"+ vBar+"</td>\n";
    }
    bbBlk += "</tr></table>";
    return "<tr><td bgcolor=black>"+addSpacer(1,760)+bbBlk+addSpacer(1,760)+"</td></tr>\n";
}

function MenuBarClick(url)
{
  location.href = url;
}

// Add generic button (with mouseover)
function addBtn (name,height,width,link,target) {
	if (!imgBtn) { imgBtn = new Array(); imgBtnOn = new Array(); }
	
	target = (target!=null) ? " target="+target : "";

	// Preload images for buttons (off and on)
	loadImg('imgBtn',name,"../img/btn/"+name+".gif");
	loadImg('imgBtnOn',name,"../img/btn/"+name+"_on.gif");
        return "<a href=\""+link+"\" "+target+" onMouseover=\"img"+name+".src='../img/btn/"+name+"_on.gif'\" "+
	"onMouseout=\"img"+name+".src='../img/btn/"+name+".gif'\">"+
	"<img name=img"+name+" src=../img/btn/"+name+".gif width="+width+" height="+height+" border=0></a>";
}


function changeCellOut(cell)
{
    cell.style.background = "#000000";
    cell.style.color = "white";
    document.body.style.cursor="default";
}


function changeCellOver(cell)
{
    
    cell.style.background = "#ffffff";
    cell.style.color = "black";
    document.body.style.cursor="pointer";
}

// Add HTML link (for javascript: calls, place in onclick attribute instead of href)
function addLink(href,text,caption) { 
	caption = (caption && caption!="") ? " title=\""+caption+"\"" : "";
	return "<a class=linktxt href=\""+href+"\""+caption+">"+text+"</a>"; 
}

//Add Offline-style option row
function addOptionTableStart(caption) { 
	return  addSpacer(10,542)+"<br>\n"+
	"<font class=boldtxt>"+caption+"</font>\n"+
	addSpacer(5,542)+"<br>\n"+
	"<table border=0 cellspacing=15 cellpadding=0>\n"; 
}

function addOptionTableEnd() { return "</table>\n"; }

function addOption(name,link,hdrText,bodyText) {
	return ""+
	"<tr><a href=\""+link+"\">"+
	"<td id=\"td"+name+"\" class=tdopt background=../img/btn/optbg.gif height=40 width=190 align=center "+
	"onmouseover=\"td"+name+".background='../img/btn/optbg_on.gif'\""+
	" onmouseout=\"td"+name+".background='../img/btn/optbg.gif'\">"+
	"<a class=opttxt href=\""+link+"\"><b>"+hdrText+"</b></a>"+
	"</td></a>"+
	"<td>"+addSpacer(40,1)+"</td>"+
    "<td class=tdopt>"+bodyText+"</td></tr>\n";
	
}

// Add Table Link with Stretched Image inside
function addTDLink(name,href,text,width) {
	width = (width) ? " width="+width : "";
	return ""+
	"<a href=\""+href+"\">"+
	"<td"+width+" align=center id=\"td"+name+"\" bgcolor=#777777 "+
	"onmouseover=\"td"+name+".bgColor='#CC0000';\""+
	" onmouseout=\"td"+name+".bgColor='#777777'\">"+
	"<a href=\""+href+"\"><b><font color=white style=\"text-decoration:none\">"+text+"</font></b></a>"+
	"</td></a>";
}
// Add Table Link with Stretched Image inside
function addTDLink_sd(name,href,text,width) {
	width = (width) ? " width="+width : "";
	return ""+
	"<a href=\""+href+"\">"+
	"<td"+width+" align=center id=\"td"+name+"\" bgcolor=#777777 "+
	"onmouseover=\"td"+name+".bgColor='#CC0000';\""+
	" onmouseout=\"td"+name+".bgColor='#777777'\"; border=.1 bordercolor='#D3D3D3'>"+
	"<a href=\""+href+"\"><b><font color=white style=\"text-decoration:none\">"+text+"</font></b></a>"+
	"</td></a>";
}
// Return blk for text on top of navigation bar for engine, app and app question pages.
function addTopCaption (hdrtxt) {
  return ""+
	"<table border=0 cellspacing=0 cellpadding=0>\n"+
	"<tr><td class=bottom width=542 height=25><font class=headtxt>"+hdrtxt+"</font></td></tr>\n"+
	"<tr><td width=542 height=5>"+addSpacer(8,542)+"</td></tr>\n"+
	"</table>\n";
}
////////////////////////////////////////////////////////////////////////////

