JavaScript Widgets -- Banners : Banner « Ajax Layer « JavaScript DHTML

JavaScript DHTML
1. Ajax Layer
2. Data Type
3. Date Time
4. Development
5. Document
6. Dojo toolkit
7. Event
8. Event onMethod
9. Ext JS
10. Form Control
11. GUI Components
12. HTML
13. Javascript Collections
14. Javascript Objects
15. Javascript Properties
16. jQuery
17. Language Basics
18. Mochkit
19. Mootools
20. Node Operation
21. Object Oriented
22. Page Components
23. Rico
24. Scriptaculous
25. Security
26. SmartClient
27. Style Layout
28. Table
29. Utilities
30. Window Browser
31. YUI Library
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
JavaScript DHTML » Ajax Layer » Banner 
JavaScript Widgets -- Banners


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML>
<HEAD>
<TITLE>JavaScript Widgets -- Examples/Banners</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2963" name=GENERATOR>
<style title="Website Style" type=text/css rel=stylesheet>
DIV.footnote {
  BORDER-RIGHT: black 2px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 2px solid; PADDING-LEFT: 5px; Z-INDEX: 2; LEFT: 10px; VISIBILITY: hidden; PADDING-BOTTOM: 5px; OVERFLOW: hidden; BORDER-LEFT: black 2px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 2px solid; POSITION: absolute; TOP: 10px; BACKGROUND-COLOR: white; TEXT-ALIGN: justify
}
A.note {
  FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: blue; FONT-STYLE: normal; POSITION: relative
}
A.topic {
  FONT-WEIGHT: bold; COLOR: black; TEXT-DECORATION: none
}
A.topic:hover {
  COLOR: red
}
SPAN.topic {
  FONT-WEIGHT: bold; COLOR: blue
}
DIV.menuBar {
  BORDER-RIGHT: silver 2px outset; PADDING-RIGHT: 1px; BORDER-TOP: silver 2px outset; PADDING-LEFT: 1px; VISIBILITY: visible; PADDING-BOTTOM: 1px; BORDER-LEFT: silver 2px outset; PADDING-TOP: 1px; BORDER-BOTTOM: silver 2px outset; WHITE-SPACE: nowrap; POSITION: absolute; BACKGROUND-COLOR: blue; TEXT-ALIGN: center
}
IMG.menuBar {
  BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 1px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px
}
DIV.menuBody {
  BORDER-RIGHT: silver 2px outset; BORDER-TOP: blue 0px solid; Z-INDEX: 1; VISIBILITY: hidden; BORDER-LEFT: silver 2px outset; BORDER-BOTTOM: silver 2px outset; POSITION: absolute; BACKGROUND-COLOR: blue
}
DIV.menuItem {
  BORDER-RIGHT: silver 0px outset; PADDING-RIGHT: 0px; BORDER-TOP: blue 2px solid; PADDING-LEFT: 2px; FONT-SIZE: 10pt; LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: silver 0px outset; CURSOR: pointer; COLOR: white; PADDING-TOP: 2px; BORDER-BOTTOM: silver 0px outset; FONT-FAMILY: "Times New Roman", Times, serif; WHITE-SPACE: nowrap; POSITION: absolute; TOP: 0px; BACKGROUND-COLOR: blue; TEXT-ALIGN: left
}

</style>
<!-- browser.js -->
<SCRIPT language=JavaScript>
function Is() {
  var appName = navigator.appName.toLowerCase();
  var version = navigator.appVersion.toLowerCase();
  var agent   = navigator.userAgent.toLowerCase();
  var platform = navigator.platform.toLowerCase();
  this.major = parseInt(version);
  this.minor = parseFloat(version);
  this.nsa = (agent.indexOf('netscape') != -1);
  this.mza = (agent.indexOf('mozilla') != -1);
  this.gla = (agent.indexOf('galeon') != -1);
  this.mza = (this.mza && !this.nsa);

  if (this.mza) {
    version = agent.substring(agent.indexOf("rv:")+3,agent.indexOf(")"));
    this.nsa = false;
    if (agent.indexOf("rv:"!= -1) {
      this.major = parseInt(version);
      this.minor = parseFloat(version);
      this.mz1 = (this.mza && (this.major == 1));
    else {
      this.mza = false;
      version = this.minor;
    }
  }

    if (this.gla) {
      version = agent.substring(agent.indexOf("galeon/")+7,agent.indexOf("(")-1);
      this.nsa = false;
      if (agent.indexOf("galeon/"!= -1) {
        this.major = parseInt(version);
        this.minor = parseFloat(version);
        this.gl1 = (this.gla && (this.major == 1));
      else {
        this.gla = false;
        version = this.version;
      }
    }

  this.version = version;

  this.nsn = (appName.indexOf('netscape') != -1);
  this.ns2 = (this.nsn && (this.major == 2));
  this.ns3 = (this.nsn && (this.major == 3));
  this.ns4 = (this.nsn && (this.major == 4));
  this.ns6 = (this.nsa && (this.major >= 5));
  if (this.ns6) {
    this.version = agent.slice(agent.indexOf("netscape6/")+10,agent.length);
  }

  this.ie = ((appName.indexOf("internet explorer"!= -1)
    && (agent.indexOf("opera"== -1));
  this.ie3 = (this.ie && (this.major == 3));
  this.ie4 = (this.ie && (this.major == 4)
    && (agent.indexOf("msie 4."!= -1));
  this.ie5 = (this.ie && (this.major == 4)
    && (agent.indexOf("msie 5."!= -1));
  this.ie6 = (this.ie && (this.major == 4)
    && (agent.indexOf("msie 6."!= -1));
  if (this.ie4 || this.ie5 || this.ie6) {
    this.version = agent.slice(agent.indexOf("msie ")+5,agent.length);
    this.version = this.version.slice(0,this.version.indexOf(";"));
  }
  this.ieX = (this.ie && !this.ie3 && !this.ie4);

  this.op  = (agent.indexOf('opera') != -1);
  this.op4 = (this.op && (this.major == 4)
    && (agent.indexOf("opera 4."!= -1));
  this.op5 = (this.op && (this.major == 4)
    && (agent.indexOf("opera 5."!= -1));
  this.op6 = (this.op && (this.major == 4)
    && (agent.indexOf("opera 6."!= -1));
  if (this.op) {
    this.ie = false;
    this.ie4 = false;
    this.ie5 = false;
    this.ie6 = false;
    this.version = agent.slice(agent.indexOf("opera")+6,agent.length)
    this.version = parseFloat(this.version);
  }

  this.kq  = (agent.indexOf("konqueror"!= -1);
  if (this.kq) {
    this.version = agent.substring(agent.indexOf("konqueror/")+10,agent.length);
    this.version = this.version.substring(0,this.version.indexOf(";"));
    this.major = parseInt(this.version);
    this.minor = parseFloat(this.version);
    this.mza = false;
  }
  this.kq2 = (this.kq && (this.major == 2));
  this.kq3 = (this.kq && (this.major == 3));

  this.w3c = (!(!(document.getElementById)));
  this.win32 = (platform.indexOf("win32"!= -1);
  this.linux = (platform.indexOf("linux"!= -1);
  this.bsd   = (platform.indexOf("bsd"!= -1);
}

var is = new Is();

function setTagFontColor(tag, color) {

  if (is.ie4 || is.w3c) {
    tag.style.color = color;
  else if (is.ns4) {
    tag.color = color;
  else {
    return;
  }
}

function setTagFontStyle(tag, style) {

  if (is.ie4 || is.w3c) {
    tag.style.fontStyle = style;
  else if (is.ns4) {
    tag.fontStyle = style;
  else {
    return;
  }
}

function mousePosLeft(event) {

  var leftPos;

  if (is.ie4 || (is.w3c && !(is.ns6 || is.mza))) {
    leftPos = event.clientX;
    //alert("event.clientX = " + event.clientX);
  else if (is.ns4 || is.ns6 || is.mza) {
    leftPos = event.pageX;
  }
  return leftPos;
}

function mousePosTop(event) {

  var topPos;

  if (is.ie4 || (is.w3c && !(is.ns6 || is.mza))) {
    topPos = event.clientY;
    //alert("mousePosTop is clientY = " + event.clientY);
  else if (is.ns4 || is.ns6 || is.mza) {
    topPos = event.pageY;
    //alert("mousePosTop is pageX = " + event.pageX);
  }
  return topPos;
}
</SCRIPT>
<!-- layers.js -->
<SCRIPT language=JavaScript>
function getNSLayer(inNode, inName) {

  var node, i;

  node = inNode[inName];
  for (i = 0; !node && inNode.layers && i < inNode.layers.length; i++) {
    node = getNSLayer(inNode.layers[i].document,inName);
  }
  return node;
}

function getLayer(inNode,inName) {

  var node;

  if (inNode.getElementById) {
    node = inNode.getElementById(inName);
  else if (inNode.all) {
    node = inNode.all[inName];
  else if (inNode.layers) {
    node = getNSLayer(inNode, inName);
  }
  if (!nodealert("Could not find layer " + inName + ".");
  return node;
}

function getStyle(inNode) {

  var style;

  if (is.w3c || is.ie4) {
    style = inNode.style;
  else if (is.ns4) {
    style = inNode;
  else {
    style = 0;
  }
  return style;
}

function setLayerPos(inNode, left, top) {

  if (is.ie4 || is.w3c) {
    inNode.style.left = left + "px";
    inNode.style.top  = top + "px";
  else if (is.ns4) {
    inNode.left = left;
    inNode.top  = top;
  }
}

function showLayer(mNode) {

  var style;

  style = getStyle(mNode);
  if (stylestyle.visibility = "visible";
}

function hideLayer(mNode) {

  var style;

  style = getStyle(mNode);
  if (stylestyle.visibility = "hidden";
}

function isPositioned(mNode) {

  return (mNode.left || mNode.style.left);
}

function layerWidth(mNode) {

  var nWidth;

  if (is.ie4 || is.w3c) {
    //alert("Node width = " + mNode.style.width);
    nWidth  = parseInt(mNode.style.width);
  else if (is.ns4) {
    nWidth  = parseInt(mNode.width);
  }
  return nWidth;
}

function expandLayer(mNode) {

  var style;

  style = getStyle(mNode);
  if (stylestyle.display = "block";
}

function contractLayer(mNode) {

  var style;

  style = getStyle(mNode);
  if (stylestyle.display = "none";
}

function insertLayer(mNode) {

  var style;

  style = getStyle(mNode);
  if (stylestyle.display = "inline";
}

function setLayerColor(tag,bgColor,tColor) {

  var elLayer;

  elLayer = getLayer(document,tag);
  elStyle = getStyle(elLayer);
  if (elStyle) {
    if (is.ns4) {
      elStyle.bgColor = bgColor;
      //Netscape 4.xx browsers don't support this!
      //elStyle.fgColor = tColor;
    else {
      elStyle.backgroundColor = bgColor;
      elStyle.color = tColor;
    }
  }
}

var NSVisType = new Array();
  NSVisType["visible""show";
  NSVisType["hidden"]  "hide";
  NSVisType["inherit""inherit";

function setStyle(divType, fontSize, left, top, width, height, zIndex, bgColor, visibility) {

   var dStyle;

   if (divType == "layer") {
    dStyle  = 'left="' + left;
    dStyle += '" top="' + top;
    dStyle += '" width="' + width;
    dStyle += '" height="' + height;
    if (zIndex) dStyle += '" z-index="' + zIndex;
    if (bgColor) {
        dStyle += '" bgColor="' + bgColor;
    } else {
        dStyle += '" bgColor="#000000';
    }
    if (visibility) dStyle += '" visibility="' + NSVisType[visibility];
    dStyle += '" ';
   else {
    dStyle  = 'style="font-size : ' + fontSize + 'pt; ';
    dStyle += 'left : ' + left + 'px; ';
    dStyle += 'top : ' + top + 'px; ';
    dStyle += 'width : ' + width + 'px; ';
    dStyle += 'height : ' + height + 'px; ';
    if (zIndex) dStyle += 'z-index : ' + zIndex + '; ';
    if (bgColor) dStyle += 'background-color : ' + bgColor + '; ';
    if (visibility) dStyle += 'visibility : ' + visibility + '; ';
    dStyle += '" ';
   }
   //alert("dStyle = " + dStyle);
   return dStyle;
}

</SCRIPT>
<!-- brmenu.js -->
<SCRIPT language=JavaScript>
function BrowserMenuInfo() {

  //alert("Creating instance of BrowserLayerInfo.");
  if (is.ns4) {
    if (is.win32) {
      this.itemHeight = 16;
    else if (is.linux) {
      this.itemHeight = 15;
    else {
      this.itemHeight = 15;
    }
    this.cellOffset  = 2;
    this.leftOffset  = 2;
    this.mTopOffset  = 2;
    this.wBarPadding = 4;
    this.hBarPadding = 6;
    this.itemPadding = 10;
    this.itemSpacing = 2;
    this.menuPadding = -2;
    this.mBarOffset  = 4;
    this.bBarOffset  = -2;
    this.dividerHeight = 2;
    this.bwPadding = 4;
    this.bhPadding = 4;
    this.fontSize = 12;
    if (is.win32) {
      this.charWidth = 7;
    else if (is.linux) {
      this.charWidth = 6;
    else {
      this.charWidth = 6;
    }
    this.divType = "layer";
    //Now set foreground/background colors -- Netscape 4.xx only.
    window.mtActive   = "#FFFF00";
    window.mtPassive  = "#FFFFFF";
    window.mbActive   = "#FF0000";
    window.mbPassive  = "#081C92";
  else if (is.kq) {
    this.itemHeight  = 18;
    this.cellOffset  = 4;
    this.leftOffset  = 0;
    this.mTopOffset  = 0;
    this.wBarPadding = 2;
    this.hBarPadding = 6;
    this.itemSpacing = 0;
    this.itemPadding = 2;
    this.menuPadding = 0;
    this.mBarOffset  = 4;
    this.bBarOffset  = 4;
    this.dividerHeight = 1;
    this.bwPadding = 2;
    this.bhPadding = 4;
    this.fontSize = 10;
    this.charWidth = 7;
    this.divType = "div";
  else if (is.op5 || is.op6) {
    this.itemHeight  = 17;
    this.cellOffset  = 4;
    this.leftOffset  = 2;
    this.mTopOffset  = 0;
    this.wBarPadding = 2;
    this.hBarPadding = 6;
    this.itemPadding = 10;
    this.itemSpacing = 2;
    this.menuPadding = 2;
    this.mBarOffset  = 6;
    this.bBarOffset  = 4;
    this.dividerHeight = 1;
    this.bwPadding = 2;
    this.bhPadding = 4;
    this.fontSize = 10;
    this.charWidth = 6;
    this.divType = "div";
  else if (is.ie4) {
    this.itemHeight  = 18;
    this.cellOffset  = 0;
    this.leftOffset  = 0;
    this.mTopOffset  = 0;
    this.wBarPadding = 4;
    this.hBarPadding = 5;
    this.itemPadding = 10;
    this.itemSpacing = 2;
    this.menuPadding = -2;
    this.mBarOffset  = 3;
    this.bBarOffset  = -3;
    this.dividerHeight = 1;
    this.bwPadding = 4;
    this.bhPadding = 2;
    this.fontSize = 10;
    this.charWidth = 6;
    this.divType = "div";
  else if (is.ie5) {
    this.itemHeight  = 20;
    this.cellOffset  = 0;
    this.leftOffset  = 0;
    this.mTopOffset  = 0;
    this.wBarPadding = 4;
    this.hBarPadding = 8;
    this.itemPadding = 11;
    this.itemSpacing = 0;
    this.menuPadding = 2;
    this.mBarOffset  = 4;
    this.bBarOffset  = -2;
    this.dividerHeight = 1;
    this.bwPadding = 4;
    this.bhPadding = 2;
    this.fontSize = 10;
    this.charWidth = 6;
    this.divType = "div";
  else if (is.ie6) {
    this.itemHeight  = 18;
    this.cellOffset  = 4;
    this.leftOffset  = 0;
    this.mTopOffset  = 0;
    this.wBarPadding = 0;
    this.hBarPadding = 6;
    this.itemPadding = 11;
    this.itemSpacing = 2;
    this.menuPadding = 2;
    this.mBarOffset  = 4;
    this.bBarOffset  = 4;
    this.dividerHeight = 1;
    this.bwPadding = 2;
    this.bhPadding = 4;
    this.fontSize = 10;
    this.charWidth = 6;
    this.divType = "div";
  else if (is.mza || is.gla || is.ns6) {
    this.itemHeight = 18;
    this.cellOffset  = 4;
    this.leftOffset  = 0;
    this.mTopOffset  = 0;
    this.wBarPadding = 2;
    this.hBarPadding = 6;
    this.itemSpacing = 0;
    this.itemPadding = 2;
    this.menuPadding = 0;
    this.mBarOffset  = 4;
    this.bBarOffset  = 4;
    this.dividerHeight = 1;
    this.bwPadding = 2;
    this.bhPadding = 4;
    if (is.win32) {
      this.fontSize = 10;
    else if (is.linux) {
      this.fontSize = 12;
    else {
      this.fontSize = 10;
    }
    this.charWidth = 7;
    this.divType = "div";
  else if (is.w3c) {
    this.itemHeight  = 19;
    this.cellOffset  = 0;
    this.leftOffset  = 0;
    this.mTopOffset  = 0;
    this.wBarPadding = 0;
    this.hBarPadding = 0;
    this.itemSpacing = 6;
    this.itemPadding = 2;
    this.menuPadding = 0;
    this.mBarOffset  = 3;
    this.bBarOffset  = 5;
    this.dividerHeight = 1;
    this.bwPadding = 0;
    this.bhPadding = 0;
    this.fontSize = 10;
    this.charWidth = 7;
    this.divType = "div";
  else {
    alert("This should never happen.");
    return 0;
  }
}
</SCRIPT>
<!-- menu.js -->
<SCRIPT language=JavaScript>
var blInfo     = new BrowserMenuInfo();

//  Create a test cell to read the style.
    document.write("<" + blInfo.divType + ' id="test.cell"');
    document.write('" class="menuItem" ');
    document.write(setStyle(blInfo.divType, blInfo.fontSize, 0010020,null,null,"hidden"">");
    document.write("test.cell");
    document.writeln('</' + blInfo.divType + '>');
//  Read the style during activateMenus();


function startSiteMap(mName,mTarget) {

  window.menuName   = mName;
  window.menuTarget = mTarget;
  window.menuPntr   = "/images/tri.gif";
  window.menuCells  = new Array();
  window.menuPopups = 0;
  window.menuHeads  = 0;
  window.menuLevel  = 0;
  window.menuMain   = 0;
  window.menuLayers = new Object();
  window.menuStack  = new Array();
  window.menuBody   = new Array();
  window.bodyCells  = new Array();
  window.mbActive   = "#FF0000";
  window.mtActive   = "#FFFF00";
}

function menuItem(label,action,width,level,popup) {

  if (label == 0) {
    this.label = label;
  else {
    this.label = "&nbsp;" + label;
  }
  this.action = action;
  this.width  = width;
  this.level  = level;
  this.popup  = popup;
}

function bodyItem(cells,popup,level,left,top,width,height) {

  this.cells  = cells;
  this.popup  = popup;
  this.level  = level;
  this.left   = left;
  this.top    = top;
  this.width  = width;
  this.height = height;
}

function stackMenuBody(queue,bPopup,bLevel,bLeft,bTop,bWidth,bHeight) {

  var mBody,i;

  mBody = new bodyItem(window.bodyCells.length,bPopup,bLevel,bLeft,bTop,bWidth,bHeight);
  window.menuBody[window.menuBody.length= mBody;
  for (i = 0; i < queue.length; i++) {
    window.bodyCells[window.bodyCells.length= queue[i];
  }
  window.bodyCells[window.bodyCells.length0;
}

function addMenuDivider() {

  var mItem,mLevel;

  mLevel = window.menuLevel;
  mItem  = new menuItem(0,0,0,mLevel,0);
  window.menuCells[window.menuCells.length= mItem;
}

var alphaWidth = Array();

alphaWidth["a"= blInfo.charWidth;
alphaWidth["b"= blInfo.charWidth;
alphaWidth["c"= blInfo.charWidth;
alphaWidth["d"= blInfo.charWidth;
alphaWidth["e"= blInfo.charWidth;
alphaWidth["f"= blInfo.charWidth;
alphaWidth["g"= blInfo.charWidth;
alphaWidth["h"= blInfo.charWidth;
alphaWidth["i"= Math.floor(blInfo.charWidth*0.4);
alphaWidth["j"= Math.floor(blInfo.charWidth*0.7);
alphaWidth["k"= blInfo.charWidth;
alphaWidth["l"= Math.floor(blInfo.charWidth*0.4);
alphaWidth["m"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["n"= blInfo.charWidth;
alphaWidth["o"= blInfo.charWidth;
alphaWidth["p"= blInfo.charWidth;
alphaWidth["q"= blInfo.charWidth;
alphaWidth["r"= blInfo.charWidth;
alphaWidth["s"= blInfo.charWidth;
alphaWidth["t"= blInfo.charWidth;
alphaWidth["u"= blInfo.charWidth;
alphaWidth["v"= blInfo.charWidth;
alphaWidth["w"= Math.floor(blInfo.charWidth*1.8);
alphaWidth["x"= blInfo.charWidth;
alphaWidth["y"= blInfo.charWidth;
alphaWidth["z"= blInfo.charWidth;
alphaWidth["A"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["B"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["C"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["D"= Math.floor(blInfo.charWidth*2.0);
alphaWidth["E"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["F"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["G"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["H"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["I"= Math.floor(blInfo.charWidth);
alphaWidth["J"= Math.floor(blInfo.charWidth);
alphaWidth["K"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["L"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["M"= Math.floor(blInfo.charWidth*2);
alphaWidth["N"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["O"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["P"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["Q"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["R"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["S"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["T"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["U"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["V"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["W"= Math.floor(blInfo.charWidth*3);
alphaWidth["X"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["Y"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["Z"= Math.floor(blInfo.charWidth*1.6);
alphaWidth["0"= blInfo.charWidth;
alphaWidth["1"= blInfo.charWidth;
alphaWidth["2"= blInfo.charWidth;
alphaWidth["3"= blInfo.charWidth;
alphaWidth["4"= blInfo.charWidth;
alphaWidth["5"= blInfo.charWidth;
alphaWidth["6"= blInfo.charWidth;
alphaWidth["7"= blInfo.charWidth;
alphaWidth["8"= blInfo.charWidth;
alphaWidth["9"= blInfo.charWidth;
alphaWidth["."= blInfo.charWidth;
alphaWidth[","= blInfo.charWidth;
alphaWidth["'"= blInfo.charWidth;
alphaWidth[" "= blInfo.charWidth;
alphaWidth["\""= blInfo.charWidth;
alphaWidth["/"= blInfo.charWidth;
alphaWidth["\\"= blInfo.charWidth;
alphaWidth["<"= blInfo.charWidth;
alphaWidth[">"= blInfo.charWidth;
alphaWidth["?"= blInfo.charWidth;
alphaWidth["~"= blInfo.charWidth;
alphaWidth["!"= blInfo.charWidth;
alphaWidth["#"= blInfo.charWidth;
alphaWidth["$"= blInfo.charWidth;
alphaWidth["%"= blInfo.charWidth;
alphaWidth["^"= blInfo.charWidth;
alphaWidth["&"= blInfo.charWidth;
alphaWidth["*"= blInfo.charWidth;
alphaWidth["("= blInfo.charWidth;
alphaWidth[")"= blInfo.charWidth;
alphaWidth["-"= blInfo.charWidth;
alphaWidth["_"= blInfo.charWidth;
alphaWidth["="= blInfo.charWidth;
alphaWidth["+"= blInfo.charWidth;
alphaWidth["{"= blInfo.charWidth;
alphaWidth["}"= blInfo.charWidth;
alphaWidth["["= blInfo.charWidth;
alphaWidth["]"= blInfo.charWidth;
alphaWidth["|"= blInfo.charWidth;
alphaWidth[";"= blInfo.charWidth;
alphaWidth[":"= blInfo.charWidth;


function estLabelWidth(label) {

   var lWidth = 0, i;
   
   for (i=0; i < label.length; i++) {
       lWidth += alphaWidth[label.charAt(i)];
   }
   lWidth += 5;
   //alert("Width of " + label + " = " + lWidth + ".  label.charAt(0) = " + label.charAt(0) + ".");
   return lWidth;
}

function addMenuItem(label,action,popup) {

  var mLabel,mAction,mPopup,mItem,mWidth,mLevel;

  mLevel = window.menuLevel;
  mWidth = estLabelWidth(label)+4;
  if (label) {
    mLabel = label;
  else {
    alert("No label given for action " + action + ".");
    mLabel = "no label";
  }
  if (action) {
    mAction = "location='" + action + "'";
  else {
    mAction = "clearMenus(" + mLevel + ")";
  }
  mPopup = popup;
  if (mPopup && (mLevel > 0)) mWidth += 15;  // Add margin for window.menuPntr.
  if (mLevel == 0window.menuHeads++;
  mItem  = new menuItem(mLabel,mAction,mWidth,mLevel,mPopup);
  window.menuCells[window.menuCells.length= mItem;
}

function startMenu(label,action) {

  addMenuItem(label,action,"popup" + window.menuPopups++);
  window.menuLevel++;
}

function endMenu() {

  window.menuLevel--;
}

function menuLayer(label,action) {

  this.name   = name;
  this.label  = label;
  this.action = action;
}

function buildMenuCell(index,left,top,width,height) {

  var mName,mLabel,mLeft,mTop,mWidth,mHeight,mAction,mLevel;

  mName  = "cell" + index;
  mClass = "menuItem";
  mLevel = window.menuCells[index].level;
  mLeft   = left;
  mTop    = top;
  mWidth  = width;
  mHeight = height;
  mLabel  = window.menuCells[index].label;
  mAction = window.menuCells[index].action;
  document.write("<" + blInfo.divType + ' id="' + mName);
  document.write('" class="' + mClass + '" ');
  document.write(setStyle(blInfo.divType, blInfo.fontSize, mLeft, mTop, mWidth, mHeight, 0, window.mbPassive, "inherit"));
  document.write(' onclick="' + mAction + '" ');
  mPopup = window.menuCells[index].popup;
  if (mPopup) {
    document.write('onmouseover="popMenu(' + mLevel + ",'" + mName + "','" + mPopup + "'" ');" ');
    document.write('onmouseout="setColorPassive(' + "'" + mName + "'" ');">');
  } else {
    document.write('onmouseover="unPopMenus(' + mLevel + ",'" + mName + "'" ');" ');
    document.write('onmouseout="setColorPassive(' + "'" + mName + "'" ');">');
  }
  window.menuLayers[mName] = new menuLayer(mLabel,mAction);
  if (blInfo.divType == "layer") {
    document.write(mLabel.fontcolor(mtPassive));
  } else {
    document.write(mLabel);
  }
  if (mPopup && (mLevel >= 1)) {
    document.write('&nbsp;<img src="' + window.menuPntr + '" border="0">');
  }
  document.writeln('</' + blInfo.divType + '>');
}

function buildMenuBody(cQueue,bName,bLevel,bLeft,bTop,bWidth,bHeight) {

  var i,bClass,geometry,zIndex,level,bLayer;
  var lWidth,lHeight,mLeft,mTop;

  bClass   = "menuBody";
  lWidth   = bWidth + blInfo.bwPadding;
  lHeight  = bHeight + blInfo.bhPadding;
  document.write("<" + blInfo.divType + ' id="' + bName + '" class="' + bClass + '" ');
  document.write(setStyle(blInfo.divType, blInfo.fontSize, bLeft, bTop, lWidth, lHeight, bLevel+1"#000000""hidden"));
  document.writeln(">");
  mLeft = blInfo.leftOffset;
  mTop  = blInfo.mTopOffset;
  for (i = 0; i < cQueue.length; i++) {
    mLabel = window.menuCells[cQueue[i]].label;
    if (mLabel) {
      buildMenuCell(cQueue[i],mLeft,mTop,bWidth,blInfo.itemHeight);
      mTop += blInfo.itemHeight + blInfo.cellOffset;
    else if (mLabel == 0) {
      mTop += blInfo.dividerHeight;
    else {
      alert("Expecting label in buildMenuBody.");  // This should never happen!
      return 0;
    }
  }
  document.writeln("</" + blInfo.divType + ">");
}

function buildMenuBodies() {

  var i,cQueue,bName,bLevel,bLeft,bTop,bWidth,bHeight,bCells;
  
  for (i = 0; i < window.menuBody.length; i++) {
    bCells  = window.menuBody[i].cells;
    bName   = window.menuBody[i].popup;
    bLevel  = window.menuBody[i].level;
    bLeft   = window.menuBody[i].left;
    bTop    = window.menuBody[i].top;
    bWidth  = window.menuBody[i].width;
    bHeight = window.menuBody[i].height;
    cQueue  = new Array();
    cCount  = 0;
    while ((bCells < window.bodyCells.length&& (window.bodyCells[bCells0))
    {
      cQueue[cCount++= window.bodyCells[bCells++];
    }
    buildMenuBody(cQueue,bName,bLevel,bLeft,bTop,bWidth,bHeight);
    cQueue  = null;
  }
}

function queueMenuBuilds(mIndex,mLevel,mPopup,mLeft,mTop) {

  var queue = new Array();
  var i,sPopup,sLeft,sTop,sWidth,sHeight;

  sTop    = mTop;
  sWidth  = 0;
  sHeight = 0;
  i = mIndex;
  while ((i < window.menuCells.length&& (window.menuCells[i].level >= mLevel)) {
    if (window.menuCells[i].level == mLevel) {
      sWidth = Math.max(sWidth,window.menuCells[i].width);
    }
    i++
  }
  sLeft   = mLeft + sWidth + 2;
  i = mIndex;
  while ((i < window.menuCells.length&& (window.menuCells[i].level >= mLevel)) {
    queue[queue.length= i;
    if (window.menuCells[i].popup) {
      sPopup = window.menuCells[i].popup;
      i++;
      i = queueMenuBuilds(i,mLevel+1,sPopup,sLeft,sTop);
      sTop    += blInfo.itemHeight + blInfo.cellOffset;
      sHeight += blInfo.itemHeight + blInfo.cellOffset;
    else if (window.menuCells[i].label) {
      i++;
      sTop    += blInfo.itemHeight + blInfo.cellOffset;
      sHeight += blInfo.itemHeight + blInfo.cellOffset;
    else {  // This must be a menu divider.
      i++;
      sTop    += blInfo.dividerHeight;
      sHeight += blInfo.dividerHeight;
    }
  }
  if (queue.length > 0stackMenuBody(queue,mPopup,mLevel,mLeft,mTop,sWidth,sHeight-blInfo.cellOffset);
  queue = null;
  return i;
}

function endSiteMap() {

}

function drawHMenuBar(left, top, width, height, padding, graphic) {

  var bLeft,bTop,bWidth,bHeight,iPadding,bGraphic;
  var i,geometry,zIndex,iWidth,iLeft,mTop;

  bLeft   = left;
  bTop    = top;
  bWidth  = width + blInfo.wBarPadding;
  bHeight = height + blInfo.itemHeight + blInfo.hBarPadding;
  iPadding = padding + blInfo.itemPadding;
  bGraphic = graphic;
  document.write('<' + blInfo.divType + ' id="menuBar" class="menuBar" ');
  document.write(setStyle(blInfo.divType, blInfo.fontSize, bLeft, bTop, bWidth, bHeight, 0, null, "visible"));
  document.writeln('>');
  document.writeln('<img name="menuImage" src="' + bGraphic + '" class="menuBar" border="1" width="' + width + '" height="' + height + '">');
  iLeft = blInfo.leftOffset;
  mTop  = height + blInfo.mBarOffset;
  bTop += blInfo.bBarOffset;
  i = 0;
  while (i < window.menuCells.length) {
    iWidth = window.menuCells[i].width + iPadding;
    iWidth = Math.min(iWidth, bWidth-iLeft+blInfo.menuPadding);
    buildMenuCell(i,iLeft,mTop,iWidth,blInfo.itemHeight);
    if (window.menuCells[i].popup) {
      mPopup = window.menuCells[i].popup;
      i++;
      i = queueMenuBuilds(i,1,mPopup,bLeft,bTop+bHeight);
    }
    bLeft += iWidth + blInfo.itemSpacing;
    iLeft += iWidth + blInfo.itemSpacing;
  }
  document.writeln('</' + blInfo.divType + '>');
  buildMenuBodies();
  document.close();
}

function drawVMenuBar(left, top, width, height, padding, graphic) {

  var bLeft,bTop,bWidth,bHeight,mHeight,iPadding,bGraphic;
  var i,geometry,zIndex,iWidth,iLeft,mTop,nTopItems;

  bLeft   = left;
  bTop    = top;
  bWidth  = width + blInfo.wBarPadding;
  bHeight = height;// + blInfo.itemHeight + blInfo.hBarPadding;
  nTopItems = 0;
  i = 0;
  while (i < window.menuCells.length) {
    if (window.menuCells[i].level == 0) {
      nTopItems++;
    }
    i++;
  }
  mHeight = nTopItems*(blInfo.itemHeight + blInfo.cellOffset);
  i = 0;
  iPadding = padding + blInfo.itemPadding;
  bGraphic = graphic;
  document.write('<' + blInfo.divType + ' id="menuBar" class="menuBar" ');
  document.write(setStyle(blInfo.divType, blInfo.fontSize, bLeft, bTop, bWidth, bHeight+mHeight, 0, null, "visible"));
  document.writeln('>');
  document.writeln('<img name="menuImage" src="' + bGraphic + '"class="menuBar" border="1" width="' + width + '" height="' + height + '">');
  iLeft = blInfo.leftOffset;
  mTop  = height + blInfo.mBarOffset;
  bTop += blInfo.bBarOffset;
  while (i < window.menuCells.length) {
    iWidth = window.menuCells[i].width + iPadding;
    iWidth = Math.min(iWidth, bWidth-iLeft+blInfo.menuPadding);
    buildMenuCell(i,iLeft,mTop,iWidth,blInfo.itemHeight);
    if (window.menuCells[i].popup) {
      mPopup = window.menuCells[i].popup;
      i++;
      i = queueMenuBuilds(i,1,mPopup,bLeft+iWidth,bTop+bHeight);
    }
    mTop    += blInfo.itemHeight + blInfo.cellOffset;
    bTop    += blInfo.itemHeight + blInfo.cellOffset;
  }
  document.writeln('</' + blInfo.divType + '>');
  buildMenuBodies();
  document.close();
}

function loadMe() {

  eval(this.action);
}

function activateMenus() {

  var mName,mAction,mNode,tStyle;

  tStyle = getStyle(getLayer(document, "test.cell"));
  if (!is.ns4) {
      //Netscape 4.xx doesn't support this.
      window.mtPassive = tStyle.color;
      window.mbPassive = tStyle.backgroundColor;
      return;       // Nothing further to do for non Netscape 4.xx browsers.
  }

  for (mName in window.menuLayers) {
    mAction = window.menuLayers[mName].action;
    mNode = getLayer(document,mName);
    mNode.captureEvents(Event.MOUSEDOWN);
    mNode.onmousedown = loadMe;
    mNode.action = mAction;
    mNode.fgColor = window.mtPassive;
  }
}

var nameStack = new Array();
var nodeStack = new Array();
var stackDepth = 0;

function findNode(elMain,mName) {

  var elNode,elIndex;

  elNode  = getLayer(elMain,mName);
  elIndex = 0;
  while ((!elNode&& (elIndex < stackDepth)) {
    elNode = getLayer(nodeStack[elIndex],mName);
    elIndex++;
  }
  return elNode;
}

function clearMenus(mNum) {

  while (stackDepth > mNum) {
    stackDepth--;
    hideLayer(nodeStack[stackDepth]);
    nameStack[stackDepth0;
    nodeStack[stackDepth0;
  }
}

function unPopMenus(mNum,tag) {

  setLayerColor(tag,window.mbActive,window.mtActive);
  clearMenus(mNum);
  if (is.ns4document.releaseEvents(Event.MOUSEDOWN);
}

function setColorPassive(tag) {

  setLayerColor(tag,window.mbPassive,window.mtPassive);
  if (is.ns4document.captureEvents(Event.MOUSEDOWN);
}

function popMenu(mNum,tag,mName) {

  var style,elLayer;

  clearMenus(mNum);
  setLayerColor(tag,window.mbActive,window.mtActive);
  elLayer = getLayer(document,mName);
  if (elLayer) {
    showLayer(elLayer);
    nameStack[stackDepth= mName;
    nodeStack[stackDepth= elLayer;
    stackDepth++
  }
  if (is.ns4document.releaseEvents(Event.MOUSEDOWN);
}

function clearAll(e) {

  clearMenus(0);
}

if (is.ns4) {
  document.captureEvents(Event.MOUSEDOWN);
  document.onmousedown=clearAll;
}

</SCRIPT>
<!-- site-map.js -->
<SCRIPT language=JavaScript>

</SCRIPT>

<STYLE type=text/css>P {
  TEXT-ALIGN: justify
}
DIV.pad50 {
  MARGIN-LEFT: 50px; MARGIN-RIGHT: 50px
}
DIV.centered {
  TEXT-ALIGN: center
}
STRONG {
  COLOR: blue
}
{
  FONT-WEIGHT: bold; COLOR: blue; FONT-STYLE: normal
}
A:hover {
  FONT-WEIGHT: bold; COLOR: red; FONT-STYLE: normal
}
INPUT.formBanner {
  BORDER-RIGHT: blue 4px outset; PADDING-RIGHT: 5px; BORDER-TOP: blue 4px outset; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: blue 4px outset; PADDING-TOP: 5px; BORDER-BOTTOM: blue 4px outset
}
</STYLE>

<SCRIPT language=JavaScript src="banner_files/banner.js">
  </SCRIPT>

<SCRIPT language=JavaScript>
  <!--
        function stopCycling() {
    if (is.w3cstopTitleBanner();
    stopStatusBanner();
    if (is.w3cstopFormBanner("Test");
        }

        function restartCycling(name) {
    if (is.w3crestartTitleBanner();
    restartStatusBanner();
    if (is.w3crestartFormBanner("Test");
        }

  function clearBanners(name) {
    if (is.w3cclearTitleBanner();
    clearStatusBanner();
    if (is.w3cclearFormBanner("Test");
  }

  function stopAfter2(name) {
    setTimeout("stopCycling('" + name + "');"2000);
  }
 
  function clearAfter2(name) {
    setTimeout("clearBanners('" + name + "');"2000);
  }
  //-->
  </SCRIPT>

<SCRIPT language=JavaScript>
  <!--
  //For almost all examples, some initialization may be necessary 
  //for maximum cross-browser compatibility.
  function initialize() {
    activateMenus();
  }
  //-->
  </SCRIPT>
</HEAD>
<BODY background=banner_files/researchbg.gif onload=initialize();>
<SCRIPT language=JavaScript>
<!--

  if (is.w3c || is.ie4 || (is.ns4 && !is.hj)) {
    var barTop = 20;
    var barLeft = 50;
    var barWidth = 370;
    var barHeight = 44;
    var itemPadding = 5;
    var barImage = "/images/title.png";
    drawHMenuBar(barLeft,barTop,barWidth,barHeight,itemPadding,barImage);
  }
  if (is.w3c) {
    document.writeln('<div style="position : relative; top : 15px; float : right; padding-right : 42px; text-align : right">');
    document.writeln('<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=33495&amp;type=5" width="210" height="62" border="0" alt="SourceForge Logo"></a>');
    document.writeln('</div>');
  else if (is.ns4) {
    document.writeln('<layer top="20" left="400">');
    document.writeln('<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=33495&amp;type=5" width="210" height="62" border="0" alt="SourceForge Logo"></a>');
    document.writeln('</layer>');
  }
//-->
</SCRIPT>

<DIV onmouseover=clearAll()
style="LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 100px">
<DIV class=pad50>
<H2>Examples/Banners</H2>
<P>In this example, there is a form banner, a title banner and a status-line 
banner. </P>
<DIV align=center>
<SCRIPT language=JavaScript>
<!--
        if (is.w3csetupFormBanner("Test""This is a form message."40true);
        if (is.w3csetupTitleBanner("This is a title message."true);
        setupStatusBanner("This is a status message."true);

  if (is.w3c) {
    document.writeln("<p>Notice that the form banner above is displayed in outset border style.  You can specify the style yourself by defining <b>input.formBanner</b> in the <b>&lt;style&gt;</b> section of your page.</p>");
  }

        if (is.kq) {
                document.writeln("<p>Note: the scrolling title example does not work at all with Konqueror, and the scrolling status example works only partially.</p>");
        else if (is.mza || is.op) {
                document.writeln("<p>Note: the scrolling status example works most logically in Mozilla and Opera.");
    if (is.op) {
      document.writeln("Unfortunately, Opera doesn't support full control of the form banner style. (But it almost works!)</p>");
    else if (is.mza) {
      document.writeln("Mozilla supports both the default status logic and form banner style control.");
    }
        else if (is.ie) {
                document.writeln("<p>Note: the scrolling status example works only partially in Internet Explorer.  Form banner style control also works here.</p>");
        else if (is.ns4) {
    document.writeln("<p>Note: only the scrolling status message works in Netscape 4.xx.  Even that works only partially, as you can see by moving your mouse over the dummy link while the status message is scrolling.</p>");
  }
//-->
</SCRIPT>

<FORM>
<TABLE align=center>
  <TBODY>
  <TR>
    <TD><INPUT onclick="stopCycling('Test');" type=button value="Stop Cycling" name=stop></TD>
    <TD><INPUT onclick="restartCycling('Test');" type=button value="Restart Cycling" name=restart></TD>
    <TD><INPUT onclick="clearBanners('Test');" type=button value="Clear Banners" name=clear></TD></TR></TBODY></TABLE></FORM>
<P>Put your mouse over the <A href="javascript:void(0);">dummy link</A> to test 
the behavior of the status line banner.</P>
<P>Final note: the logic of the "clear scroll" functions includes a call to 
<B>clearTimeout()</B>. This ensures that race conditions are avoided when 
cycling is turned off. It is therefore easily possible to implement a scroll 
timeout via a call to <B>setTimeout()</B> with the appropriate "stop" or "clear" 
function.</P>
<P>Check this out here. Clicking on "Stop after 2 seconds." will cause cycling 
to stop after seconds. Clicking on "Clear after 2 seconds." will cause cycling 
to stop the message and to clear it after seconds.</P>
<FORM>
<TABLE align=center>
  <TBODY>
  <TR>
    <TD><INPUT onclick="stopAfter2('Test');" type=button value="Stop after 2 seconds." name=StopAfter2></TD>
    <TD><INPUT onclick="clearAfter2('Test');" type=button value="Clear after 2 seconds." name=ClearAfter2></TD></TR></TBODY></TABLE></FORM></DIV></DIV></DIV></BODY></HTML>

           
       
Related examples in the same category
1. JavaScript Widgets -- Examples/Notes
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.