diff --git a/exec/load/lightbar.js b/exec/load/lightbar.js
index 0c0ac714ecd0d0d79f073da01e27cccfd38d12bf..6637685b2a8dbc0117befdedbbdcb7e3a31193ef 100644
--- a/exec/load/lightbar.js
+++ b/exec/load/lightbar.js
@@ -33,6 +33,10 @@ if(this.SYS_CLOSED==undefined)
  *         should be left-aligned, a 1 indicates it should be right-aligned, and
  *         a 2 indicates it should be centered.
  *  force_width: forces the width of all items to this value.
+ *  lpadding: this string is displayed before each item, and is not highlighted
+ *  rpadding: this string is displayed AFTER each item, and is not highlighted
+ *      NOTE: Padding is not included in width
+ *  hblanks: The number of horizontal blanks between items for horizontal menus.
  */
 function Lightbar(items)
 {
@@ -53,13 +57,16 @@ function Lightbar(items)
 	this.clear=Lightbar_clearitems;
 	this.add=Lightbar_additem;
 	this.failsafe_getval=Lightbar_failsafe_getval;
+	this.lpadding=null;
+	this.rpadding=null;
+	this.hblanks=2;
 	if(items==undefined)
 		this.items=new Array();
 	else
 		this.items=items;
 }
 
-function Lightbar_additem(txt, retval, width)
+function Lightbar_additem(txt, retval, width, lpadding, rpadding)
 {
 	var item=new Object;
 
@@ -72,6 +79,10 @@ function Lightbar_additem(txt, retval, width)
 		item.retval=retval;
 	if(width!=undefined)
 		item.width=width;
+	if(lpadding!=undefined)
+		item.lpadding=lpadding;
+	if(rpadding!=undefined)
+		item.rpadding=rpadding;
 	this.items.push(item);
 }
 
@@ -215,6 +226,15 @@ function Lightbar_getval(current)
 				if(this.items[i].width!=undefined)
 					width=this.items[i].width;
 			}
+
+			var lpadding=this.lpadding;
+			var rpadding=this.rpadding;
+			if(this.items[i].lpadding!=undefined)
+				lpadding=this.items[i].lpadding;
+			if(this.items[i].rpadding!=undefined)
+				rpadding=this.items[i].rpadding;
+			if(lpadding != undefined && lpadding != null)
+				curx+= lpadding.length;
 			if(i==this.current || i==last_cur) {
 				console.gotoxy(curx, cury);
 				if(i==this.current) {
@@ -268,10 +288,14 @@ function Lightbar_getval(current)
 					k++;
 				}
 			}
-			if(this.direction==0)
+			if(rpadding != undefined && rpadding != null)
+				curx+= rpadding.length;
+			if(this.direction==0) {
 				cury++;
+				curx=this.xpos;
+			}
 			else
-				curx+=width+1;
+				curx+=width+this.hblanks;
 			if(this.items[i].retval!=undefined)
 				item_count++;
 		}
@@ -468,7 +492,18 @@ function Lightbar_draw(current)
 			if(this.items[i].width!=undefined)
 				width=this.items[i].width;
 		}
+		var lpadding=this.lpadding;
+		var rpadding=this.rpadding;
+		if(this.items[i].lpadding!=undefined)
+			lpadding=this.items[i].lpadding;
+		if(this.items[i].rpadding!=undefined)
+			rpadding=this.items[i].rpadding;
 		console.gotoxy(curx, cury);
+		if(lpadding != undefined && lpadding != null) {
+			console.attributes=attr;
+			console.write(lpadding);
+			curx+= lpadding.length;
+		}
 		if(i==this.current) {
 			cursx=curx;
 			cursy=cury;
@@ -519,12 +554,22 @@ function Lightbar_draw(current)
 			console.write(" ");
 			k++;
 		}
-		if(this.direction==0)
+		if(rpadding != undefined && rpadding != null) {
+			console.attributes=attr;
+			console.write(rpadding);
+			curx+= rpadding.length;
+		}
+		if(this.direction==0) {
 			cury++;
+			curx=this.xpos;
+		}
 		else {
 			console.attributes=attr;
-			console.write(" ");
-			curx+=width+1;
+			curx+=width;
+			for(j=0; j<this.hblanks; j++) {
+				console.write(" ");
+				curx++;
+			}
 		}
 		if(this.items[i].retval!=undefined)
 			item_count++;