

var initReady = false;
var menuTimer;
var childTimer;
var lastChild;
var lastPartners; 
var lastCapabilities; 
var lastCasestudy;

var theJournal;
function journal(msg) {
    if (typeof(theJournal) != "undefined") {
        theJournal.value = theJournal.value + '\n' + msg;
    } else {
        createDebugWin(msg);
    }
}

function createDebugWin(msg) {
    debugWin = window.open('','debugWin','width=600,height=450,scrollbars=no,statusbar=yes,resizable=yes')
    debugWin.document.open('text/html');
    debugWin.document.write('\
    <html><head><title>SiteDev Debug Window</title></head>\
    <body>\
    <form name="journalform">\
    <font size="2" face="arial,geneva"><textarea name="journaltext" cols=90 rows=30 style="font:9px geneva,arial;" wrap="off"></textarea></font><br>\
    <a href="javascript:document.journalform.journaltext.value=\'\'">Reset</a>\
    </form>\
    </body></html>\
    ');
    debugWin.document.close();
    //debugWin.blur();
    debugWin.opener.focus();

    theJournal=debugWin.document.journalform.journaltext;
    journal(msg);
}

// browser variables
var ns6 = (navigator.userAgent.substring(0,9) == 'Mozilla/5');
var ns4 = (document.layers) && (navigator.userAgent.substring(0,9) == 'Mozilla/4');
var ns = (ns4 || ns6)? true:false;
var ie4 = (navigator.appVersion.indexOf('Windows') != -1) && (navigator.appVersion.substring(17,23) == 'MSIE 4')? true:false;
var ie5 = (document.all) && (navigator.appVersion.substring(17,23) == 'MSIE 5')? true:false;
var ie6 = (document.all) && (navigator.appVersion.substring(17,23) == 'MSIE 6')? true:false;
var ieMac = (document.all) && (navigator.userAgent.indexOf('Mac')!=-1)? true:false;
var ie = (ie4 || ie5 || ie6 || ieMac)? true:false;
var ie5Mac = (ie5 && ieMac)? true:false;
// Variable List
//..................
var agt=navigator.userAgent.toLowerCase();
var is_aol   = (agt.indexOf("aol") != -1);

    var is_aol5  = (agt.indexOf("aol 5") != -1);
    var is_aol6  = (agt.indexOf("aol 6") != -1);
if ( is_aol5 || is_aol6) {
var arrowGif = "<img src='./art/menu/rt_arrow_ffffff.gif' alt='' width='3' height='5' hspace='0' vspace='0' border='0'>"
} else {
var arrowGif = "<img src='./art/menu/rt_arrow_ffffff.gif' alt='' width='3' height='5' hspace='0' vspace='0' border='0'>"
}

// buttonTop is a variable that is used to place the menus, x pixels from the top, depending upon the section
var buttonTop = 49;
var containerTop = buttonTop +21;
var containerHomeTop = buttonTop +21;
var capabilitiesTop = 101;
var partnersTop = 117;
var casestudyTop= 117;


// Data Elements
// ......................................array for menu attributes
menuAttributes = new Array(6)
for(var i=0;i<6;i++){
    menuAttributes[i] = new Array(30)
    }
menuAttributes[0][0] = 20				// menu button left-position in pixels
menuAttributes[0][1] = 20               // menu container left-position in pixels
menuAttributes[0][2] = 120              // menu button width
menuAttributes[0][3] = "#333399"		// menu bg color
menuAttributes[0][4] = 0               // height of container: Home 0 is place holder
menuAttributes[0][5] = "./index.html"   // URL

menuAttributes[1][0] = 140  
menuAttributes[1][1] = 140   
menuAttributes[1][2] = 120
menuAttributes[1][3] = "#333399"   
menuAttributes[1][4] = 64              // height of container: story|capabilites
menuAttributes[1][5] = "./stor.html"   // URL

menuAttributes[2][0] = 260
menuAttributes[2][1] = 260
menuAttributes[2][2] = 120
menuAttributes[2][3] = "#333399"    
menuAttributes[2][4] = 64               // height of container: well
menuAttributes[2][5] = "./well.html"	// URL

menuAttributes[3][0] = 380
menuAttributes[3][1] = 380
menuAttributes[3][2] = 120
menuAttributes[3][3] = "#333399"    
menuAttributes[3][4] = 0                // height of container: touch 0 is place holder
menuAttributes[3][5] = "./touc.html"	// URL

menuAttributes[4][0] = 500
menuAttributes[4][1] = 500
menuAttributes[4][2] = 120
menuAttributes[4][3] = "#333399"    
menuAttributes[4][4] = 0	            // height of container: demo 0 is place holder
menuAttributes[4][5] = "./demo.html"	// URL

menuAttributes[5][0] = 620
menuAttributes[5][1] = 620
menuAttributes[5][2] = 120
menuAttributes[5][3] = "#333399"    
menuAttributes[5][4] = 0         		// height of container: clients 0 is place holder
menuAttributes[5][5] = "./clie.html"	// URL


// ......................................array for menu data
menuData = new Array(6)
for (i=0; i < 6; i++) {
    menuData[i] = new Array(47)
    for (j=0; j < 47; j++) {
        menuData[i][j] = new Array(5)}}

// enter navigation data into array
// home

menuData[0][0][0]="title";					// name of menu item
menuData[0][0][1]="#";						// url of menu item
menuData[0][0][2]=15;						// height of menu item in pixels

// story
menuData[1][0][0]="clients";				// name of menu item
menuData[1][0][1]="./cli2.html"				// url of menu item
menuData[1][0][2]=15;						// height of menu item in pixels
menuData[1][1][0]="news";
menuData[1][1][1]="./news.html";
menuData[1][1][2]=15;
menuData[1][2][0]="capabilites &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;" + arrowGif;
menuData[1][2][1]='./capa.html';
menuData[1][2][2]=15;
menuData[1][3][0]="partners &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;" + arrowGif;
menuData[1][3][1]="./part.html";
menuData[1][3][2]=15;

// well
menuData[2][0][0]="awards";				// name of menu item
menuData[2][0][1]="./awar.html";		// URL
menuData[2][0][2]=15;					// height of menu item in pixels
menuData[2][1][0]="clients";
menuData[2][1][1]="./cli1.html";
menuData[2][1][2]=15;
menuData[2][2][0]="projects";
menuData[2][2][1]="./proj.html";
menuData[2][2][2]=15;
menuData[2][3][0]="case studies &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;" + arrowGif;
menuData[2][3][1]="./case.html";
menuData[2][3][2]=15;

// touch
menuData[3][0][0]="title";				// name of menu item
menuData[3][0][1]="#";					// URL
menuData[3][0][2]=15;					// height of menu item in pixels

// demo
menuData[4][0][0]="title";				// name of menu item
menuData[4][0][1]="#";					// URL
menuData[4][0][2]=15;					// height of menu item in pixels

// clients
menuData[5][0][0]="title";				// name of menu item
menuData[5][0][1]="#";					// URL
menuData[5][0][2]=15;					// height of menu item in pixels

//..............................array for edit casestudy info ids, and an array for edit casestudy info names - these must be kept in sync and in order
//..............................first column is the casestudy ID, second column is the casestudy name
//..............................if the order of these is rearranged, make sure the index numbers
//..............................(casestudyIDs[0],casestudyIDs[1],casestudyIDs[2],etc. AND casestudyNames[0],casestudyNames[1],casestudyNames[2],etc.) are numbered correctly from 0 on up
casestudyIDs = new Array();      				casestudyNames = new Array();
casestudyIDs[0] ="./hirs.html";					casestudyNames[0] = "Hirschfeld";
casestudyIDs[1] ="./garb.html";					casestudyNames[1] = "Garbage In, Garbage Out";
casestudyIDs[2] ="./isle.html";					casestudyNames[2] = "Islands of Development";
casestudyIDs[3] ="./toei.html";					casestudyNames[3] = "TOEIC";
casestudyIDs[4] ="./misc.html";					casestudyNames[4] = "Eradicating Sexual Harassment";


//..............................array for capabilities IDs, and an array for capabilitiesNames - these must be kept in sync and in order
//..............................first column is the capabilities ID, second column is the capabilities name
//..............................if the order of these is rearranged, make sure the index numbers
//..............................(capabilitiesIDs[0],capabilitiesIDs[1],capabilitiesIDs[2],etc. AND capabilitiesNames[0],capabilitiesNames[1],capabilitiesNames[2],etc.) are numbered correctly from 0 on up
capabilitiesIDs = new Array();					capabilitiesNames = new Array();
capabilitiesIDs[0] = "./scri.html";				capabilitiesNames[0] = "scripting";
capabilitiesIDs[1] = "./prod.html";				capabilitiesNames[1] = "production";
capabilitiesIDs[2] = "./post.html";				capabilitiesNames[2] = "post-production";
capabilitiesIDs[3] = "./mult.html";				capabilitiesNames[3] = "multimedia";

//..............................array for partners IDs, and an array for partnersNames - these must be kept in sync and in order
//..............................first column is the partners ID, second column is the partners name
//..............................if the order of these is rearranged, make sure the index numbers
//..............................(partnersIDs[0],partnersIDs[1],partnersIDs[2],etc. AND partnersNames[0],partnersNames[1],partnersNames[2],etc.) are numbered correctly from 0 on up
partnersIDs = new Array();						partnersNames = new Array();
partnersIDs[0] = "./dick.html";					partnersNames[0] = "Dick Blofson";
partnersIDs[1] = "./scot.html";					partnersNames[1] = "Scott Nielsen";
partnersIDs[2] = "./danp.html";					partnersNames[2] = "Dan Preston";


// ......................................Menu Object creation code

// dHTML obj creator....creates pointer obj. for different DOMs.
// arguments are the id of the div in parens, and the id of the parent div (if any) for a nested div.
function dynObj(id,nestref) {
    //journal('dynObj(id,nestref) :: ' + new Array(id,nestref).toString())
    //window.alert('id :'+  id);
    //window.alert('nestref :'+ nestref);
    if (ns4) {
        this.elm = (nestref)? eval("document."+nestref+".document."+id) : document.layers[id]
        this.css = this.event = this.elm
        this.x = this.css.left
        this.y = this.css.top
        this.w = this.css.clip.width
        this.h = this.css.clip.height
        this.doc = this.css.document
        }
    else if (ns6) {
        this.elm = document.getElementById(id)
        this.css = this.elm.style
        this.x = this.elm.offsetLeft
        this.y = this.elm.offsetTop
        this.w = this.elm.offsetWidth
        this.h = this.elm.offsetHeight
        this.doc = document
        }
    else {
        this.elm = this.event = document.all[id]
        this.css = this.elm.style
        this.x = this.elm.offsetLeft
        this.y = this.elm.offsetTop
        this.w = this.elm.offsetWidth
        this.h = this.elm.offsetHeight
        this.doc = document
        }

    this.obj = id + "obj"
    eval(this.obj + "=this")
} // close dynObj       

// dynObj methods.....
function dynObjShow() {
    //journal('dynObjShow() :: ' + new Array().toString())
    this.css.visibility = (ns4)? "show" : "visible"
}
function dynObjHide() {
    //journal('dynObjHide() :: ' + new Array().toString())
    this.css.visibility = (ns4)? "hide" : "hidden"
}
dynObj.prototype.show = dynObjShow
dynObj.prototype.hide = dynObjHide

function DynLayerMoveTo(x,y) {
    //journal('DynLayerMoveTo(x,y) :: ' + new Array(x,y).toString())
    if (x!=null) {
        this.x = x
        if (ns) this.css.left = this.x
        else this.css.pixelLeft = this.x
    }
    if (y!=null) {
        this.y = y
        if (ns) this.css.top = this.y
        else this.css.pixelTop = this.y
    }
}
    
function DynLayerMoveBy(x,y) {
    //journal('DynLayerMoveBy(x,y) :: ' + new Array(x,y).toString())
    this.moveTo(this.x+x,this.y+y)
}
dynObj.prototype.moveTo = DynLayerMoveTo
dynObj.prototype.moveBy = DynLayerMoveBy

function changeBG(color) {
    //journal('changeBG(color) :: ' + new Array(color).toString())
    if (ns4) {
        this.elm.bgColor = color
    } else {
        this.css.backgroundColor = color
    }
}// close changeBG
dynObj.prototype.setBG = changeBG


// Clip Methods
function DynLayerClipInit(clipTop,clipRight,clipBottom,clipLeft) {
    //journal('DynLayerClipInit(clipTop,clipRight,clipBottom,clipLeft) :: ' + new Array(clipTop,clipRight,clipBottom,clipLeft).toString())
    if (ie) {
        if (arguments.length==4) this.clipTo(clipTop,clipRight,clipBottom,clipLeft)
        else if (ie4) this.clipTo(0,this.css.pixelWidth,this.css.pixelHeight,0)
    }
}
function DynLayerClipTo(t,r,b,l) {
    //journal('DynLayerClipTo(t,r,b,l) :: ' + new Array(t,r,b,l).toString())
    if (t==null) t = this.clipValues('t')
    if (r==null) r = this.clipValues('r')
    if (b==null) b = this.clipValues('b')
    if (l==null) l = this.clipValues('l')
    if (ns) {
        this.css.clip.top = t
        this.css.clip.right = r
        this.css.clip.bottom = b
        this.css.clip.left = l
    }
    else if (ie) this.css.clip = "rect("+t+"px "+r+"px "+b+"px "+l+"px)"
}
function DynLayerClipBy(t,r,b,l) {
    //journal('DynLayerClipBy(t,r,b,l) :: ' + new Array(t,r,b,l).toString())
    this.clipTo(this.clipValues('t')+t,this.clipValues('r')+r,this.clipValues('b')+b,this.clipValues('l')+l)
}
function DynLayerClipValues(which) {
    //journal('DynLayerClipValues(which) :: ' + new Array(which).toString())
    if (ie) {
        var clipv = new Array();
        if (this.css.clip == "auto") {
            clipv[0] = 0;
            clipv[1] = this.w;
            clipv[2] = this.h;
            clipv[3] = 0;
        } else {
            clipv = this.css.clip.split("rect(")[1].split(")")[0].split("px")
        }
    }
    if (which=="t") return (ns)? this.css.clip.top : Number(clipv[0])
    if (which=="r") return (ns)? this.css.clip.right : Number(clipv[1])
    if (which=="b") return (ns)? this.css.clip.bottom : Number(clipv[2])
    if (which=="l") return (ns)? this.css.clip.left : Number(clipv[3])
}
dynObj.prototype.clipInit = DynLayerClipInit
dynObj.prototype.clipTo = DynLayerClipTo
dynObj.prototype.clipBy = DynLayerClipBy
dynObj.prototype.clipValues = DynLayerClipValues

// Slide Methods
function DynLayerSlideTo(endx,endy,inc,speed,fn) {
    //journal('DynLayerSlideTo(endx,endy,inc,speed,fn) :: ' + new Array(endx,endy,inc,speed,fn).toString())
    if (endx==null) endx = this.x
    if (endy==null) endy = this.y
    var distx = endx-this.x
    var disty = endy-this.y
    this.slideStart(endx,endy,distx,disty,inc,speed,fn)
}
function DynLayerSlideBy(distx,disty,inc,speed,fn) {
    //journal('DynLayerSlideBy(distx,disty,inc,speed,fn) :: ' + new Array(distx,disty,inc,speed,fn).toString())
    var endx = this.x + distx
    var endy = this.y + disty
    this.slideStart(endx,endy,distx,disty,inc,speed,fn)
}
function DynLayerSlideStart(endx,endy,distx,disty,inc,speed,fn) {
    //journal('DynLayerSlideStart(endx,endy,distx,disty,inc,speed,fn) :: ' + new Array(endx,endy,distx,disty,inc,speed,fn).toString())
    if (this.slideActive) return
    if (!inc) inc = 10
    if (!speed) speed = 20
    var num = Math.sqrt(Math.pow(distx,2) + Math.pow(disty,2))/inc
    if (num==0) eval(fn)
    var dx = distx/num
    var dy = disty/num
    if (!fn) fn = null
    this.slideActive = true
    this.slide(dx,dy,endx,endy,num,1,speed,fn)
}
function DynLayerSlide(dx,dy,endx,endy,num,i,speed,fn) {
    //journal('DynLayerSlide(dx,dy,endx,endy,num,i,speed,fn) :: ' + new Array(dx,dy,endx,endy,num,i,speed,fn).toString())
    if (!this.slideActive) return
    if (i++ < num) {
        this.moveBy(dx,dy)
        this.onSlide()
        if (this.slideActive) setTimeout(this.obj+".slide("+dx+","+dy+","+endx+","+endy+","+num+","+i+","+speed+",\""+fn+"\")",speed)
        else this.onSlideEnd()
    }
    else {
        this.slideActive = false
        this.moveTo(endx,endy)
        this.onSlide()
        this.onSlideEnd()
        eval(fn)
    }
}
dynObj.prototype.slideInit = new Function("")
dynObj.prototype.slideTo = DynLayerSlideTo
dynObj.prototype.slideBy = DynLayerSlideBy
dynObj.prototype.slideStart = DynLayerSlideStart
dynObj.prototype.slide = DynLayerSlide
dynObj.prototype.onSlide = new Function("")
dynObj.prototype.onSlideEnd = new Function("")

// Wipe Methods
function DynLayerWipeInit(clipTop,clipRight,clipBottom,clipLeft) {
    //journal('DynLayerWipeInit(clipTop,clipRight,clipBottom,clipLeft) :: ' + new Array(clipTop,clipRight,clipBottom,clipLeft).toString())
    if (arguments.length==4) this.clipInit(clipTop,clipRight,clipBottom,clipLeft)
    else this.clipInit()
}
function DynLayerWipeTo(endt,endr,endb,endl,num,speed,fn) {
    //journal('DynLayerWipeTo(endt,endr,endb,endl,num,speed,fn) :: ' + new Array(endt,endr,endb,endl,num,speed,fn).toString())
    var distt = (endt!=null)? endt-this.clipValues('t'):0
    var distr = (endr!=null)? endr-this.clipValues('r'):0
    var distb = (endb!=null)? endb-this.clipValues('b'):0
    var distl = (endl!=null)? endl-this.clipValues('l'):0
    this.wipeStart(distt,distr,distb,distl,endt,endr,endb,endl,num,speed,fn)
}
function DynLayerWipeBy(distt,distr,distb,distl,num,speed,fn) {
    //journal('DynLayerWipeBy(distt,distr,distb,distl,num,speed,fn) :: ' + new Array(distt,distr,distb,distl,num,speed,fn).toString())
    this.wipeStart(distt,distr,distb,distl,distt+this.clipValues('t'),distr+this.clipValues('r'),distb+this.clipValues('b'),distl+this.clipValues('l'),num,speed,fn)
}
function DynLayerWipeStart(distt,distr,distb,distl,endt,endr,endb,endl,num,speed,fn) {
    //journal('DynLayerWipeStart(distt,distr,distb,distl,endt,endr,endb,endl,num,speed,fn) :: ' + new Array(distt,distr,distb,distl,endt,endr,endb,endl,num,speed,fn).toString())
    if (this.wipeActive) return
    if (!fn) fn = null
    this.wipeActive = true
    this.wipe(distt/num,distr/num,distb/num,distl/num,endt,endr,endb,endl,this.clipValues('t'),this.clipValues('r'),this.clipValues('b'),this.clipValues('l'),num,1,speed,fn)
}
function DynLayerWipe(dt,dr,db,dl,endt,endr,endb,endl,st,sr,sb,sl,num,i,speed,fn) {
    //journal('DynLayerWipe(dt,dr,db,dl,endt,endr,endb,endl,st,sr,sb,sl,num,i,speed,fn) :: ' + new Array(dt,dr,db,dl,endt,endr,endb,endl,st,sr,sb,sl,num,i,speed,fn).toString())
    if (!this.wipeActive) return
    if (i++ < num) {
        this.clipTo(st+i*dt,sr+i*dr,sb+i*db,sl+i*dl)
        setTimeout(this.obj+".wipe("+dt+","+dr+","+db+","+dl+","+endt+","+endr+","+endb+","+endl+","+st+","+sr+","+sb+","+sl+","+num+","+i+","+speed+",\""+fn+"\")",speed)
    }
    else {
        this.wipeActive = false
        this.clipTo(endt,endr,endb,endl)
        eval(fn)    
    }
}
dynObj.prototype.wipeInit = DynLayerWipeInit
dynObj.prototype.wipeTo = DynLayerWipeTo
dynObj.prototype.wipeBy = DynLayerWipeBy
dynObj.prototype.wipeStart = DynLayerWipeStart
dynObj.prototype.wipe = DynLayerWipe

// Write Method
function DynLayerWrite(html) {
    //journal('DynLayerWrite(html) :: ' + new Array(html).toString())
    if (ns) {
        this.doc.open()
        this.doc.write(html)
        this.doc.close()
    }
    else if (ie) {
        this.event.innerHTML = html
    }
}
dynObj.prototype.write = DynLayerWrite


//cache image function
function cacheImg(imgObj,imgSrc) {
    //journal('cacheImg(imgObj,imgSrc) :: ' + new Array(imgObj,imgSrc).toString())
    if (document.images) {
        eval(imgObj+' = new Image()')
        eval(imgObj+'.src = "'+imgSrc+'"')
    }
}
//swap image function
function swapImg(layer,imgName,imgObj) { if (initReady) {
    //journal('swapImg(layer,imgName,imgObj) :: ' + new Array(layer,imgName,imgObj).toString())
    if (document.images) {
        if (document.layers && layer!=null) eval('document.' + layer+'.document.images["'+imgName+'"].src = '+imgObj+'.src')
        else document.images[imgName].src = eval(imgObj+".src")
    }
}}

// ....write styles for global nav elements
function css(id,left,top,width,height,color,vis,z,other) {
    //journal('css(id,left,top,width,height,color,vis,z,other) :: ' + new Array(id,left,top,width,height,color,vis,z,other).toString())
    if (id=="START") return '<STYLE TYPE="text/css">\n'
    else if (id=="END") return '</STYLE>'
    var str = (left!=null && top!=null)? '#'+id+' {position:absolute; left:'+left+'px; top:'+top+'px;' : '#'+id+' {position:relative;'
    if (arguments.length>=4 && width!=null) str += ' width:'+width+'px;'
    if (arguments.length>=5 && height!=null) {
        str += ' height:'+height+'px;'
        if (arguments.length<9 || other.indexOf('clip')==-1) str += ' clip:rect(0px '+width+'px '+height+'px 0px);'
    }
    if (arguments.length>=6 && color!=null) str += (document.layers)? ' layer-background-color:'+color+';' : ' background-color:'+color+';'
    if (arguments.length>=7 && vis!=null) str += ' visibility:'+vis+';'
    if (arguments.length>=8 && z!=null) str += ' z-index:'+z+';'
    if (arguments.length==9 && other!=null) str += ' '+other
    str += '}\n'
    return str
}

// ......................................Write Styles for Menus
// syntax: function css(id,left,top,width,height,color,vis,z,other)
// create string for styles
var str = css('START')
//......................................button styles
for(var x=0;x<6;x++){
    if(menuAttributes[x][1]!=null){
        str += css('menu'+x+'Button',menuAttributes[x][0],buttonTop,menuAttributes[x][2],34)    
     }
}
// ......................................container styles
for(var x=0;x<6;x++){
    if(menuAttributes[x][1]!=null){

        //if (secNo == 0) {
        //    str += css('menu'+x+'Container',menuAttributes[x][1],containerHomeTop,131,menuAttributes[x][4],'#FFFFFF','hidden',20)   
        //} else {
            str += css('menu'+x+'Container',menuAttributes[x][1],containerTop,131,menuAttributes[x][4],'#FFFFFF','hidden',20)           
        //}
     }
}

// syntax: function css(id,left,top,width,height,color,vis,z,other)
// ......................................child styles
for(x=0;x<6;x++){
var menuHeightPointer = 0; 
var menuBGColor ="";
  if(menuData[x][0][0]!=null){
    for (y = 0; y < 15; y++){
    menuBGColor = menuAttributes[x][3]; 
        if(menuData[x][y][0]!=null){
        str += css('menu'+x+'Child'+y,0,menuHeightPointer,131,menuData[x][y][2],menuBGColor,'inherit',30)
        menuHeightPointer += menuData[x][y][2]+1;
     } // close null
   }// close y
 } // close null
} // close x     

// ......................................partners Container style
str+= css('partnersContainer',271,partnersTop,132,49,'#ffffff','hidden',20)


//......................................partners styles
        var menuHeightPointer = 1; 
        for (z = 0; z < 4; z++){
            if(partnersNames[z]!=null){
            str += css('partnersNo'+z,1,menuHeightPointer,130,15,'#333399','inherit',30)
            menuHeightPointer += 16;
            }
        }

// ......................................capabilities Container style
str+= css('capabilitiesContainer',271,capabilitiesTop,132,65,'#ffffff','hidden',20)


//......................................capabilities styles
        var menuHeightPointer = 1; 
        for (z = 0; z < 4; z++){
            if(capabilitiesNames[z]!=null){
            str += css('capabilitesNo'+z,1,menuHeightPointer,130,15,'#333399','inherit',30)
            menuHeightPointer += 16;
            }
        }
        
// ...................................... casestudy Container style
if (ns6) {
str+= css('CasestudyContainer',391,casestudyTop,182,81,'#ffffff','hidden',20)
} else { 
str+= css('CasestudyContainer',391,casestudyTop,182,81,'#ffffff','hidden',20)
}

//alert(str);


//......................................casestudy styles
        var menuHeightPointer = 1; 
        for (z = 0; z < 30; z++){
            if(casestudyNames[z]!=null){
			    if (ns6) {
                str += css('casestudyNo'+z,1,menuHeightPointer,180,15,'#333399','inherit',30) 
				} else {            
				str += css('casestudyNo'+z,1,menuHeightPointer,180,15,'#333399','inherit',30) 
				}
                menuHeightPointer += 16;
            }
        }
        
str+=css('END')
// alert(str);
document.write(str) 


// cache graphics for global nav
if (menuState == 'home') {
    cacheImg('menu0_off', './art/menu/home_d.gif');
    cacheImg('menu0_on',  './art/menu/home_d.gif');
    cacheImg('menu0_dn',  './art/menu/home_r.gif');
    
    cacheImg('menu1_off', './art/menu/stor_u.gif');
    cacheImg('menu1_on',  './art/menu/stor_d.gif');
    cacheImg('menu1_dn',  './art/menu/stor_r.gif');
    
    cacheImg('menu2_off', './art/menu/well_u.gif');
    cacheImg('menu2_on',  './art/menu/well_d.gif');
    cacheImg('menu2_dn',  './art/menu/well_r.gif');
    
    cacheImg('menu3_off', './art/menu/touc_u.gif');
    cacheImg('menu3_on',  './art/menu/touc_d.gif');
    cacheImg('menu3_dn',  './art/menu/touc_r.gif');

    cacheImg('menu4_off', './art/menu/demo_u.gif');
    cacheImg('menu4_on',  './art/menu/demo_d.gif');
    cacheImg('menu4_dn',  './art/menu/demo_r.gif');

    cacheImg('menu5_off', './art/menu/clie_u.gif');
    cacheImg('menu5_on',  './art/menu/clie_d.gif');
    cacheImg('menu5_dn',  './art/menu/clie_r.gif');
} 

if (menuState == 'story') {
    cacheImg('menu0_off', './art/menu/home_u.gif');
    cacheImg('menu0_on',  './art/menu/home_d.gif');
    cacheImg('menu0_dn',  './art/menu/home_r.gif');
    
    cacheImg('menu1_off', './art/menu/stor_d.gif');
    cacheImg('menu1_on',  './art/menu/stor_d.gif');
    cacheImg('menu1_dn',  './art/menu/stor_r.gif');
    
    cacheImg('menu2_off', './art/menu/well_u.gif');
    cacheImg('menu2_on',  './art/menu/well_d.gif');
    cacheImg('menu2_dn',  './art/menu/well_r.gif');
    
    cacheImg('menu3_off', './art/menu/touc_u.gif');
    cacheImg('menu3_on',  './art/menu/touc_d.gif');
    cacheImg('menu3_dn',  './art/menu/touc_r.gif');

    cacheImg('menu4_off', './art/menu/demo_u.gif');
    cacheImg('menu4_on',  './art/menu/demo_d.gif');
    cacheImg('menu4_dn',  './art/menu/demo_r.gif');

    cacheImg('menu5_off', './art/menu/clie_u.gif');
    cacheImg('menu5_on',  './art/menu/clie_d.gif');
    cacheImg('menu5_dn',  './art/menu/clie_r.gif');
}
if (menuState == 'well') {
    cacheImg('menu0_off', './art/menu/home_u.gif');
    cacheImg('menu0_on',  './art/menu/home_d.gif');
    cacheImg('menu0_dn',  './art/menu/home_r.gif');
    
    cacheImg('menu1_off', './art/menu/stor_u.gif');
    cacheImg('menu1_on',  './art/menu/stor_d.gif');
    cacheImg('menu1_dn',  './art/menu/stor_r.gif');
    
    cacheImg('menu2_off', './art/menu/well_d.gif');
    cacheImg('menu2_on',  './art/menu/well_d.gif');
    cacheImg('menu2_dn',  './art/menu/well_r.gif');
    
    cacheImg('menu3_off', './art/menu/touc_u.gif');
    cacheImg('menu3_on',  './art/menu/touc_d.gif');
    cacheImg('menu3_dn',  './art/menu/touc_r.gif');

    cacheImg('menu4_off', './art/menu/demo_u.gif');
    cacheImg('menu4_on',  './art/menu/demo_d.gif');
    cacheImg('menu4_dn',  './art/menu/demo_r.gif');

    cacheImg('menu5_off', './art/menu/clie_u.gif');
    cacheImg('menu5_on',  './art/menu/clie_d.gif');
    cacheImg('menu5_dn',  './art/menu/clie_r.gif');
}
if (menuState == 'touch') {
    cacheImg('menu0_off', './art/menu/home_u.gif');
    cacheImg('menu0_on',  './art/menu/home_d.gif');
    cacheImg('menu0_dn',  './art/menu/home_r.gif');
    
    cacheImg('menu1_off', './art/menu/stor_u.gif');
    cacheImg('menu1_on',  './art/menu/stor_d.gif');
    cacheImg('menu1_dn',  './art/menu/stor_r.gif');
    
    cacheImg('menu2_off', './art/menu/well_u.gif');
    cacheImg('menu2_on',  './art/menu/well_d.gif');
    cacheImg('menu2_dn',  './art/menu/well_r.gif');
    
    cacheImg('menu3_off', './art/menu/touc_d.gif');
    cacheImg('menu3_on',  './art/menu/touc_d.gif');
    cacheImg('menu3_dn',  './art/menu/touc_r.gif');

    cacheImg('menu4_off', './art/menu/demo_u.gif');
    cacheImg('menu4_on',  './art/menu/demo_d.gif');
    cacheImg('menu4_dn',  './art/menu/demo_r.gif');

    cacheImg('menu5_off', './art/menu/clie_u.gif');
    cacheImg('menu5_on',  './art/menu/clie_d.gif');
    cacheImg('menu5_dn',  './art/menu/clie_r.gif');
}
if (menuState == 'demo') {
    cacheImg('menu0_off', './art/menu/home_u.gif');
    cacheImg('menu0_on',  './art/menu/home_d.gif');
    cacheImg('menu0_dn',  './art/menu/home_r.gif');
    
    cacheImg('menu1_off', './art/menu/stor_u.gif');
    cacheImg('menu1_on',  './art/menu/stor_d.gif');
    cacheImg('menu1_dn',  './art/menu/stor_r.gif');
    
    cacheImg('menu2_off', './art/menu/well_u.gif');
    cacheImg('menu2_on',  './art/menu/well_d.gif');
    cacheImg('menu2_dn',  './art/menu/well_r.gif');
    
    cacheImg('menu3_off', './art/menu/touc_u.gif');
    cacheImg('menu3_on',  './art/menu/touc_d.gif');
    cacheImg('menu3_dn',  './art/menu/touc_r.gif');

    cacheImg('menu4_off', './art/menu/demo_d.gif');
    cacheImg('menu4_on',  './art/menu/demo_d.gif');
    cacheImg('menu4_dn',  './art/menu/demo_r.gif');

    cacheImg('menu5_off', './art/menu/clie_u.gif');
    cacheImg('menu5_on',  './art/menu/clie_d.gif');
    cacheImg('menu5_dn',  './art/menu/clie_r.gif');
}
if (menuState == 'clients') {
    cacheImg('menu0_off', './art/menu/home_u.gif');
    cacheImg('menu0_on',  './art/menu/home_d.gif');
    cacheImg('menu0_dn',  './art/menu/home_r.gif');
    
    cacheImg('menu1_off', './art/menu/stor_u.gif');
    cacheImg('menu1_on',  './art/menu/stor_d.gif');
    cacheImg('menu1_dn',  './art/menu/stor_r.gif');
    
    cacheImg('menu2_off', './art/menu/well_u.gif');
    cacheImg('menu2_on',  './art/menu/well_d.gif');
    cacheImg('menu2_dn',  './art/menu/well_r.gif');
    
    cacheImg('menu3_off', './art/menu/touc_u.gif');
    cacheImg('menu3_on',  './art/menu/touc_d.gif');
    cacheImg('menu3_dn',  './art/menu/touc_r.gif');

    cacheImg('menu4_off', './art/menu/demo_u.gif');
    cacheImg('menu4_on',  './art/menu/demo_d.gif');
    cacheImg('menu4_dn',  './art/menu/demo_r.gif');

    cacheImg('menu5_off', './art/menu/clie_d.gif');
    cacheImg('menu5_on',  './art/menu/clie_d.gif');
    cacheImg('menu5_dn',  './art/menu/clie_r.gif');
} 
    cacheImg('arrow_right', './art/menu/rt_arrow_ffffff.gif');


// ....................init function called in Body tag onload event....
// ....................creates the div objects, and event handlers
function init() {
    //journal('init() :: ' + new Array().toString())
// build  Button and Container objects
    for(var x=0;x<6;x++){
            if(menuAttributes[x][1]!=null){
            eval('menu'+x+'Buttonobj = new dynObj("menu'+x+'Button")')
            eval('menu'+x+'Containerobj = new dynObj("menu'+x+'Container")')
            eval('menu'+x+'Containerobj.hide()');  // gets around bug in IE of initial CSS states...you must script them first...
            }
        }    

// build Div objects
    for(x=0;x<6;x++){
         if(menuData[x][0][0]!=null){
        for (y = 0; y < 10; y++){
            if(menuData[x][y][0]!=null){
            eval('menu'+x+'Child'+y+'obj = new dynObj("menu'+x+'Child'+y+'","menu'+x+'Container")')
            }//y!=null
        }//y for    
    }// x!=null 
 } // x for     


// build CasestudyContainer object
    CasestudyContainerobj = new dynObj("CasestudyContainer");
    CasestudyContainerobj.hide(); // initial value for ie bug
// build casestudy objects
        for (z = 0; z < 30; z++){
            if(casestudyNames[z]!=null){
            eval('casestudyNo'+z+'obj = new dynObj("casestudyNo'+z+'","CasestudyContainer")');
            }
        }   
    
// build capabilitiesContainer object
    capabilitiesContainerobj = new dynObj("capabilitiesContainer");
    capabilitiesContainerobj.hide(); // initial value for ie bug
// build capabilities objects
        for (z = 0; z < 30; z++){
            if(capabilitiesNames[z]!=null){
            eval('capabilitesNo'+z+'obj = new dynObj("capabilitesNo'+z+'","capabilitiesContainer")');
            }
        }  

// build partnersContainer object
    partnersContainerobj = new dynObj("partnersContainer");
    partnersContainerobj.hide(); // initial value for ie bug
// build partners objects
        for (z = 0; z < 30; z++){
            if(partnersNames[z]!=null){
            eval('partnersNo'+z+'obj = new dynObj("partnersNo'+z+'","partnersContainer")');
            }
        }
        
//...................................... Non-NS6 Event Handlers 
if(!ns6){       
// write out Button + Container event handlers
    for(var x=0;x<6;x++){
        if(menuAttributes[x][1]!=null){
            
            eval('menu'+x+'Buttonobj.elm.onmouseover = new Function("ButtonOverHandler(\'menu'+x+'\')")');
            eval('menu'+x+'Buttonobj.elm.onmouseout = new Function("SetMenuTimer(\\\"ButtonOutHandler(\'menu'+x+'\')\\\")")');
            //eval('menu'+x+'Containerobj.elm.onmouseover = new Function("ButtonOverHandler(\'menu'+x+'\')")');
            eval('menu'+x+'Containerobj.elm.onmouseout = new Function("SetMenuTimer(\\\"ButtonOutHandler(\'menu'+x+'\')\\\")")');
            } //close !=null
        }// close for loop   
    
//  Children mouse events
    for(x=0;x<6;x++){
         if(menuData[x][0][0]!=null){
        for (y = 0; y < 10; y++){
            if(menuData[x][y][0]!=null){
            eval('menu'+x+'Child'+y+'obj.elm.onmouseover = new Function("ChildOverHandler(\'menu'+x+'Child'+y+'\')")');
            eval('menu'+x+'Child'+y+'obj.elm.onmouseout = new Function("SetChildTimer(\\\"ChildOutHandler(\'menu'+x+'Child'+y+'\')\\\")")');
            if(ns4)eval('menu'+x+'Child'+y+'obj.elm.captureEvents(Event.MOUSEUP)');
            eval('menu'+x+'Child'+y+'obj.elm.onmouseup = new Function("GoTo(\''+menuData[x][y][1]+'\')")');
            
            }//y!=null
        }//y for    
    }// x!=null 
 } // x for     
    

// CasestudyContainer event handler
    CasestudyContainerobj.elm.onmouseover = CasestudyContainerOverHandler; // no arguments needed
    CasestudyContainerobj.elm.onmouseout = new Function("SetMenuTimer('CasestudyContainerOutHandler()')");

// casestudy event handler
        for (z = 0; z < 30; z++){
            if(casestudyNames[z]!=null){
            eval('casestudyNo'+z+'obj.elm.onmouseover = new Function("CasestudyOverHandler(\'casestudyNo'+z+'\')")');
            eval('casestudyNo'+z+'obj.elm.onmouseout = new Function("SetChildTimer(\\\"CasestudyOutHandler(\'casestudyNo'+z+'\')\\\")")');
            if(ns4)eval('casestudyNo'+z+'obj.elm.captureEvents(Event.MOUSEUP)');
            
            
            eval('casestudyNo'+z+'obj.elm.onmouseup = new Function("GoTo(\'' + casestudyIDs[z] + '\')")');          
            } // end if stmt

        } // end for loop


// capabilitiesContainer event handler
    capabilitiesContainerobj.elm.onmouseover = capabilitiesContainerOverHandler; // no arguments needed
    capabilitiesContainerobj.elm.onmouseout = new Function("SetMenuTimer('capabilitiesContainerOutHandler()')");
    
// capabilities event handler
        for (z = 0; z < 30; z++){
            if(capabilitiesNames[z]!=null){
            eval('capabilitesNo'+z+'obj.elm.onmouseover = new Function("CapabilitesOverHandler(\'capabilitesNo'+z+'\')")');
            eval('capabilitesNo'+z+'obj.elm.onmouseout = new Function("SetChildTimer(\\\"CapabilitiesOutHandler(\'capabilitesNo'+z+'\')\\\")")');
            if(ns4)eval('capabilitesNo'+z+'obj.elm.captureEvents(Event.MOUSEUP)');                     
            eval('capabilitesNo'+z+'obj.elm.onmouseup = new Function("GoTo(\'' + capabilitiesIDs[z] + '\')")');         
            } // end if stmt

        } // end for loop
        
// partnersContainer event handler
    partnersContainerobj.elm.onmouseover = partnersContainerOverHandler; // no arguments needed
    partnersContainerobj.elm.onmouseout = new Function("SetMenuTimer('partnersContainerOutHandler()')");
    
// partners event handler
        for (z = 0; z < 30; z++){
            if(partnersNames[z]!=null){
            eval('partnersNo'+z+'obj.elm.onmouseover = new Function("PartnersOverHandler(\'partnersNo'+z+'\')")');
            eval('partnersNo'+z+'obj.elm.onmouseout = new Function("SetChildTimer(\\\"partnersOutHandler(\'partnersNo'+z+'\')\\\")")');
            if(ns4)eval('partnersNo'+z+'obj.elm.captureEvents(Event.MOUSEUP)');                     
            eval('partnersNo'+z+'obj.elm.onmouseup = new Function("GoTo(\'' + partnersIDs[z] + '\')")');         
            } // end if stmt

        } // end for loop
}  // **********************  close !NS6    
    
else if(ns6){
        for(var x=0;x<6;x++){
            if(menuAttributes[x][1]!=null){
                eval('menu'+x+'Buttonobj.elm.onmouseover = NS6ButtonOverHandler');  
                eval('menu'+x+'Buttonobj.elm.onmouseout = NS6ButtonOutHandler');    
                eval('menu'+x+'Containerobj.elm.className = "normal" ');    
                eval('menu'+x+'Containerobj.elm.onmouseover = NS6ContainerOverHandler');    
                eval('menu'+x+'Containerobj.elm.onmouseout = NS6ContainerOutHandler');  
            } //close !=null
        }  //close loop
        
                menu2Buttonobj.css.zIndex = 10;
                menu2Containerobj.css.zIndex = 10;
        
                CasestudyContainerobj.elm.className = "normal";
                CasestudyContainerobj.elm.onmouseover = NS6CasestudyOverHandler;
                CasestudyContainerobj.elm.onmouseout = NS6CasestudyOutHandler;
                CasestudyContainerobj.css.zIndex = 1;

                capabilitiesContainerobj.elm.className = "normal";
                capabilitiesContainerobj.elm.onmouseover = NS6capabilitiesOverHandler;
                capabilitiesContainerobj.elm.onmouseout = NS6capabilitiesOutHandler;
                capabilitiesContainerobj.css.zIndex = 1;

				partnersContainerobj.elm.className = "normal";
                partnersContainerobj.elm.onmouseover = NS6partnersOverHandler;
                partnersContainerobj.elm.onmouseout = NS6partnerOutHandler;
                partnersContainerobj.css.zIndex = 1;
}  // **********************  close NS6 
    
    initReady = true;
    //journal('end init()')
} // close init


//***************************************************************************
//Non-Mozilla Menu functions
//*************************************************** Button functions
function ButtonOverHandler(elm) { if (initReady) {
    //journal('ButtonOverHandler(elm) :: ' + new Array(elm).toString())
    
    clearTimeout(menuTimer);
    partnersContainerOutHandler();
    capabilitiesContainerOutHandler();
    CasestudyContainerOutHandler();
    
    swapImg(elm + 'Button' , elm , elm + '_dn');
    if (ns4) {
        eval('document.layers["'+elm+'Container"].visibility = "show" ')
    } else {
        if (eval('document.all["'+elm+'Container"].style.visibility == "hidden" ')) {
            eval('document.all["'+elm+'Container"].style.visibility = "visible" ')
        }   
    }
    
    for (i=0; i<6; i++) {
        if (elm.indexOf('menu' + i) == -1) {
            ButtonOutHandler('menu' + i);
        }
    }
    
}} // close ButtonOver

function ButtonOutHandler(elm) { if (initReady) {
    //journal('ButtonOutHandler(elm) :: ' + new Array(elm).toString())
     CasestudyContainerobj.hide();
	 
    eval(elm + 'Containerobj').hide();
    swapImg(elm + 'Button' , elm , elm + '_off')
    
}}  // close function

function ChildOverHandler(elm) { if (initReady) {
    //journal('ChildOverHandler(elm) :: ' + new Array(elm).toString())
    clearTimeout(menuTimer);
    clearTimeout(childTimer);
    
    if (lastChild) ChildOutHandler(lastChild);
    
    eval(elm + 'obj').setBG('000066');


    // menu item with grandchidren
    if (elm == 'menu2Child3') {
        if (!ie4) {
            CasestudyContainerobj.show();
        } else if(ie4) {
            if(CasestudyContainerobj.css.visibility == 'hidden'){
                CasestudyContainerobj.show();
            }
        }
    }
    

    // menu item with grandchidren
    if (elm == 'menu1Child2') {
        if (!ie4) {
            capabilitiesContainerobj.show();
        } else if(ie4) {
            if(capabilitiesContainerobj.css.visibility == 'hidden'){
                capabilitiesContainerobj.show();
            }
        }
    }

   // menu item with grandchidren
    if (elm == 'menu1Child3') {
        if (!ie4) {
            partnersContainerobj.show();
        } else if(ie4) {
            if(partnersContainerobj.css.visibility == 'hidden'){
                partnersContainerobj.show();
            //   menu2Buttonobj.hide();
            }
        }
    }

    lastChild = elm;
    
}} // close function

function ChildOutHandler(elm) { if (initReady) {
    //journal('ChildOutHandler(elm) :: ' + new Array(elm).toString())
    //replace appropriate background color
    if (elm.substring(0,5) == 'menu2') {
        eval(elm + 'obj').setBG('333399');
    } else if (elm.substring(0,5) == 'menu1') {
        eval(elm + 'obj').setBG('333399');
    } else if (elm.substring(0,5) == 'menu0') {
        eval(elm + 'obj').setBG('333399');
    }
    if (elm == 'menu1Child3') {
        if (lastPartners) partnersOutHandler(lastPartners);
        partnersContainerobj.hide();
        menu2Buttonobj.show();
    }
    if (elm == 'menu1Child2') {
        if (lastCapabilities) CapabilitiesOutHandler(lastCapabilities);
        capabilitiesContainerobj.hide();
        menu2Buttonobj.show();
    }
    if (elm == 'menu2Child3') {
        if (lastCasestudy) CasestudyOutHandler(lastCasestudy);
        CasestudyContainerobj.hide();
        menu3Buttonobj.show();
    }
}} // close function

		// HELP here??
function partnersContainerOverHandler() { if (initReady) {
	
    //journal('partnersContainerOverHandler() :: ' + new Array().toString())
    clearTimeout(menuTimer);
    clearTimeout(childTimer);
	
    if (!ie4) {        
        menu1Child3obj.setBG('000066');
        partnersContainerobj.show();
        menu1Containerobj.show();
        swapImg('menu1Button' , 'menu1' , 'menu1_dn');
    } else if (ie4) {
        if(partnersContainerobj.css.visibility == 'hidden') {   
            menu1Child3obj.setBG('000066');
            partnersContainerobj.show();
            menu1Containerobj.show();
            swapImg('menu1Button' , 'menu1' , 'menu1_dn');
        } // visibility
    } // close ie4
}} // close function
		// HELP end
		
function capabilitiesContainerOverHandler() { if (initReady) {
    //journal('capabilitiesContainerOverHandler() :: ' + new Array().toString())
    clearTimeout(menuTimer);
    clearTimeout(childTimer);
	
    if (!ie4) {
        menu1Child2obj.setBG('000066');
        capabilitiesContainerobj.show();
        menu1Containerobj.show();
        swapImg('menu1Button' , 'menu1' , 'menu1_dn');
    } else if (ie4) {
        if(capabilitiesContainerobj.css.visibility == 'hidden') {
            menu1Child2obj.setBG('000066');
            capabilitiesContainerobj.show();
            menu1Containerobj.show();
            swapImg('menu1Button' , 'menu1' , 'menu1_dn');
        } // visibility
    } // close ie4
}} // close function

function CasestudyContainerOverHandler() { if (initReady) {
    //journal('CasestudyContainerOverHandler() :: ' + new Array().toString())
    clearTimeout(menuTimer);
    clearTimeout(childTimer);
    if (!ie4) {
		menu2Child3obj.setBG('000066');
        CasestudyContainerobj.show();
        menu2Containerobj.show();
        swapImg('menu2Button' , 'menu2' , 'menu2_dn');
    } else if (ie4) {
        if(CasestudyContainerobj.css.visibility == 'hidden') {
            menu2Child3obj.setBG('000066');
            CasestudyContainerobj.show();
            menu2Containerobj.show();
            swapImg('menu2Button' , 'menu2' , 'menu2_dn');
        } // visibility
    } // close ie4
}} // close function

		// HELP here??
function partnersContainerOutHandler() { if (initReady) {
    //journal('partnersContainerOutHandler() :: ' + new Array().toString())
    var elm = "menu1"   
    menu1Child3obj.setBG('333399');
    menu2Buttonobj.show();
    partnersContainerobj.hide();
    menu1Containerobj.hide();
    swapImg(elm + 'Button' , elm , elm + '_off')

}} // close  function
		// HELP end
		
function capabilitiesContainerOutHandler() { if (initReady) {
    //journal('capabilitiesContainerOutHandler() :: ' + new Array().toString())
    var elm = "menu1"   
    menu1Child2obj.setBG('333399');
    menu2Buttonobj.show();
    capabilitiesContainerobj.hide();
    menu1Containerobj.hide();
        swapImg(elm + 'Button' , elm , elm + '_off')
}} // close  function
function CasestudyContainerOutHandler() { if (initReady) {
    //journal('CasestudyContainerOutHandler() :: ' + new Array().toString())
    var elm = "menu2"
    CasestudyContainerobj.hide(); 
    menu2Child3obj.setBG('333399');
    menu2Buttonobj.show();
    menu2Containerobj.hide();
        swapImg(elm + 'Button' , elm , elm + '_off')
}} // close  function
	
function PartnersOverHandler(elm) { if (initReady) {
    //journal('PartnersOverHandler(elm) :: ' + new Array(elm).toString())
    clearTimeout(menuTimer);
    clearTimeout(childTimer);
    
    if (lastPartners) partnersOutHandler(lastPartners);
    
    eval(elm + 'obj').setBG('000066');
    menu1Child3obj.setBG('000066'); // keep 'handle' turned on
    
    lastPartners = elm;

}}

function CapabilitesOverHandler(elm) { if (initReady) {
    //journal('CapabilitesOverHandler(elm) :: ' + new Array(elm).toString())
    clearTimeout(menuTimer);
    clearTimeout(childTimer);
    
    if (lastCapabilities) CapabilitiesOutHandler(lastCapabilities);
    
    eval(elm + 'obj').setBG('000066');
    menu1Child2obj.setBG('000066'); // keep 'handle' turned on
    
    lastCapabilities = elm;

}}

function CasestudyOverHandler(elm) { if (initReady) {
    //journal('CasestudyOverHandler(elm) :: ' + new Array(elm).toString())
    clearTimeout(menuTimer);
    clearTimeout(childTimer);
    
    if (lastCasestudy) CasestudyOutHandler(lastCasestudy);
    
    eval(elm + 'obj').setBG('000066');
    menu2Child3obj.setBG('000066'); // keep 'handle' turned on
    
    lastCasestudy = elm;

}}
		// HELP Here??
function partnersOutHandler(elm) { if (initReady) {
    //journal('partnersOutHandler(elm) :: ' + new Array(elm).toString())
    eval(elm + 'obj').setBG('333399');
}}
		// HELP end
function CapabilitiesOutHandler(elm) { if (initReady) {
    //journal('CapabilitiesOutHandler(elm) :: ' + new Array(elm).toString())
    eval(elm + 'obj').setBG('333399');
}}

function CasestudyOutHandler(elm) { if (initReady) {
    //journal('CasestudyOutHandler(elm) :: ' + new Array(elm).toString())
    eval(elm + 'obj').setBG('333399');
}}

//***************************************************************************
// *** these should only be served up for NS6 browsers....  Mozilla Menu functions
function NS6ButtonOverHandler(e) { if (initReady) {
    //journal('NS6ButtonOverHandler(e) :: ' + new Array(e).toString())
    clearTimeout(menuTimer);
    if(e.target.name.indexOf('menu') != -1){   // its a button-img (name)
        eval(e.target.name + 'Containerobj').show();
        eval(e.target.name + 'Containerobj').elm.className = 'active';
        swapImg( e.target.name + 'Button',e.target.name,e.target.name + '_dn');
    }   
}}

function NS6ButtonOutHandler(e) { if (initReady) {
    //journal('NS6ButtonOutHandler(e) :: ' + new Array(e).toString())
    eval(e.target.name + 'Containerobj').hide();
}}
// used 

		//HELP Here ??
function partnersChildrenOn() { if (initReady) {
    //journal('partnersChildrenOn() :: ' + new Array().toString())
    partnersContainerobj.show();
    partnersContainerobj.css.zIndex = 25;
    partnersContainerobj.elm.className == 'active';
    menu1Containerobj.show();
    menu1child3obj.setBG('000066');
    swapImg('menu1Button','menu1','menu1_dn');
}}
// used 
		//HELP end
function CapabilitesChildrenOn() { if (initReady) {
    //journal('CapabilitesChildrenOn() :: ' + new Array().toString())
    capabilitiesContainerobj.show();
    capabilitiesContainerobj.css.zIndex = 25;
    capabilitiesContainerobj.elm.className == 'active';
    menu1Containerobj.show();
    menu1child2obj.setBG('000066');
    swapImg('menu1Button','menu1','menu1_dn');
}}

// used 
function casestudyChildrenOn() { if (initReady) {
    //journal('casestudyChildrenOn() :: ' + new Array().toString())
    CasestudyContainerobj.show();
    CasestudyContainerobj.css.zIndex = 25;
    CasestudyContainerobj.elm.className == 'active';
    menu2Containerobj.show();
    menu2Child3obj.setBG('000066');
    swapImg('menu0Button','menu0','menu0_dn');
}}

function NS6ContainerOverHandler(e) { if (initReady) {
    //journal('NS6ContainerOverHandler(e) :: ' + new Array(e).toString())
    clearTimeout(menuTimer);
    if(e.target.parentNode.id.indexOf('menu') != -1){ // its a container (div-id)
        if(eval(e.target.id.substring(0,5) + 'Containerobj').elm.className == 'active'){
            eval(e.target.id.substring(0,5) + 'Containerobj').show();
            if(e.target.id.indexOf('Container')==-1)eval(e.target.id + 'obj').setBG('000066');
            swapImg( e.target.id.substring(0,5) + 'Button',e.target.id.substring(0,5) ,e.target.id.substring(0,5) + '_dn');
        }   //close active
        if(e.target.id == "menu2Child3"&& menu0Containerobj.css.visibility == 'visible'){
            casestudyChildrenOn();
        }   //close check for menu2Child3
        if(e.target.id == "menu1Child2"&& menu1Containerobj.css.visibility == 'visible'){
            CapabilitesChildrenOn();
        }   //close check for menu1child2
    }//close container 
            
    if(e.target.parentNode.parentNode.id.indexOf('menu') != -1){   // its the child div
        if(eval(e.target.parentNode.parentNode.parentNode.id + 'obj').elm.className == 'active'){
            eval(e.target.parentNode.parentNode.parentNode.id + 'obj').show();
            swapImg(e.target.parentNode.parentNode.id.substring(0,5) + 'Button',e.target.parentNode.parentNode.id.substring(0,5) ,e.target.parentNode.parentNode.id.substring(0,5) + '_dn');                    
            eval(e.target.parentNode.parentNode.id + 'obj').setBG('000066');   //and then turn on the appropriate one...
        }
        if(e.target.parentNode.parentNode.id == "menu2Child3" && menu0Containerobj.css.visibility == 'visible'){
            casestudyChildrenOn();
        }   //close check for menu2Child3   
        if(e.target.parentNode.parentNode.id == "menu1Child2" && menu1Containerobj.css.visibility == 'visible'){
            CapabilitesChildrenOn();
        }   //close check for menu1child2   
    }   // close child
}}//close function

function NS6ContainerOutHandler(e) { if (initReady) {

    //journal('NS6ContainerOutHandler(e) :: ' + new Array(e).toString())
    if(e.target.parentNode.tagName == 'A'){
	    var elm = e.target.parentNode.parentNode.id.substring(0,5);
        if(elm == 'menu0')eval(e.target.parentNode.parentNode.id + 'obj').setBG('333399');
        else if(elm == 'menu1')eval(e.target.parentNode.parentNode.id + 'obj').setBG('333399');
        else if(elm == 'menu2')eval(e.target.parentNode.parentNode.id + 'obj').setBG('3366CC');
        var leftedge = eval(elm + 'Containerobj.x')+2;
        var rightedge = eval(elm + 'Containerobj.x') + eval(elm + 'Containerobj.w') - 2
        var topedge = eval(elm + 'Containerobj.y') + 2 -34; //subtract button
        var bottomedge = eval(elm + 'Containerobj.y') + eval(elm + 'Containerobj.h')-2 ;
            
        if (e.clientY > bottomedge || e.clientY < topedge || e.clientX < leftedge || e.clientX > rightedge){
                    
            // now deal with menu2Child3
            if(e.target.parentNode.parentNode.id == "menu2Child3" || e.target.id == "menu2Child3" && e.clientY > containerTop + 34 && e.clientY < containerTop +  45 && e.clientX >276){
			
            // now turn off events for the area leading to the grandchildren
            CasestudyContainerobj.css.zIndex = 25;
            CasestudyContainerobj.elm.className = 'active'; 
            return; // mouse has left through panhandle
        }   
        else{   //else turn everything off...
		
            CasestudyContainerobj.hide();
            CasestudyContainerobj.css.zIndex = 1;
            CasestudyContainerobj.elm.className == 'normal'; 
            eval(elm+ 'Containerobj').hide();
            eval(elm + 'Containerobj').elm.className = 'normal';
             }       

            // now deal with menu2child2
            if(e.target.parentNode.parentNode.id == "menu1Child2" || e.target.id == "menu1Child2" && e.clientY > containerTop + 34 && e.clientY < containerTop +  45 && e.clientX >276){
			// now turn off events for the area leading to the grandchildren
            capabilitiesContainerobj.css.zIndex = 25;
            capabilitiesContainerobj.elm.className = 'active'; 
            return; // mouse has left through panhandle
        }   
        else{   //else turn everything off...
            capabilitiesContainerobj.hide();
            capabilitiesContainerobj.css.zIndex = 1;
            capabilitiesContainerobj.elm.className == 'normal'; 
            eval(elm+ 'Containerobj').hide();
            eval(elm + 'Containerobj').elm.className = 'normal';
            }       
        }// close container rect. if    
    }//close A tag
    else{ // div tag
        var elm = e.target.id.substring(0,5);
        var leftedge = eval(elm + 'Containerobj.x')+2;
        var rightedge = eval(elm + 'Containerobj.x') + eval(elm + 'Containerobj.w') - 2
        var topedge = eval(elm + 'Containerobj.y') + 2 -34; //subtract button
        var bottomedge = eval(elm + 'Containerobj.y') + eval(elm + 'Containerobj.h')-2 ;
        if (e.clientY > bottomedge || e.clientY < topedge || e.clientX < leftedge || e.clientX > rightedge){
            // only process events outside of the container....
            eval(e.target.id.substring(0,5) + 'Containerobj').hide();
            eval(e.target.id.substring(0,5) + 'Containerobj').elm.className = 'normal';
                                    
            }// close container rect. if    
                                
        if(e.target.id.indexOf('Child')!=-1 || e.target.parentNode.id.indexOf('Child')!=-1|| e.target.parentNode.parentNode.id.indexOf('Child')!=-1){
            if(elm == 'menu0')eval(e.target.id + 'obj').setBG('000066');
            else if(elm == 'menu1')eval(e.target.id + 'obj').setBG('000066');
            else if(elm == 'menu2')eval(e.target.id + 'obj').setBG('3366CC');
        }
                    
        if(e.target.parentNode.id == "menu2Child3" || e.target.id == "menu2Child3" && e.clientY > containerTop + 34 && e.clientY < containerTop +  45 && e.clientX >276){
            CasestudyContainerobj.css.zIndex = 25;
            CasestudyContainerobj.elm.className = 'active';// mouse has left through panhandle
            return;
        }   
        else{       
            CasestudyContainerobj.hide();
            CasestudyContainerobj.css.zIndex = 1;
            CasestudyContainerobj.elm.className == 'normal';  
        }               

        if(e.target.parentNode.id == "menu1Child2" || e.target.id == "menu1Child2" && e.clientY > containerTop + 34 && e.clientY < containerTop +  45 && e.clientX >276){
            capabilitiesContainerobj.css.zIndex = 25;
            capabilitiesContainerobj.elm.className = 'active';// mouse has left through panhandle
            return;
        }   
        else{       
            capabilitiesContainerobj.hide();
            capabilitiesContainerobj.css.zIndex = 1;
            capabilitiesContainerobj.elm.className == 'normal';  
        }               
    }//close else           
}}//function


function NS6CasestudyOverHandler(e) { if (initReady) {
    //journal('NS6CasestudyOverHandler(e) :: ' + new Array(e).toString())
    clearTimeout(menuTimer);
    if(e.target.parentNode.tagName == 'A'){
        eval(e.target.parentNode.parentNode.id + 'obj').setBG('000066');
        }
     if(e.target.id.indexOf('casestudyNo') != -1 && e.target.id.indexOf('Container') == -1) {
                eval(e.target.id + 'obj').setBG('000066');
            }
}}// close function


function NS6CapabilitesOverHandler(e) { if (initReady) {
    //journal('NS6CapabilitesOverHandler(e) :: ' + new Array(e).toString())
    clearTimeout(menuTimer);
    if(e.target.parentNode.tagName == 'A'){
        eval(e.target.parentNode.parentNode.id + 'obj').setBG('000066');
        }
     if(e.target.id.indexOf('capabilitesNo') != -1 && e.target.id.indexOf('Container') == -1) {
                eval(e.target.id + 'obj').setBG('000066');
            }
}}// close function

function NS6CasestudyOutHandler(e) { if (initReady) {
    
    //journal('NS6CasestudyOutHandler(e) :: ' + new Array(e).toString())
        if(e.target.parentNode.tagName == 'A'){
                    eval(e.target.parentNode.parentNode.id + 'obj').setBG('333399');
                }
                else if(e.target.id.indexOf('casestudyNo') != -1) {
                    eval(e.target.id + 'obj').setBG('333399');
                }
    
    var leftedge = CasestudyContainerobj.x + 2;
    var rightedge = CasestudyContainerobj.x + CasestudyContainerobj.w  - 2
    var topedge = CasestudyContainerobj.y + 2 
    var bottomedge = CasestudyContainerobj.y  + CasestudyContainerobj.h -2 ;
    
    
    if (e.clientY > bottomedge || e.clientY < topedge || e.clientX < leftedge || e.clientX > rightedge){
        menu2Child3obj.setBG('333399');
        menu2Containerobj.hide();
        CasestudyContainerobj.hide();
        CasestudyContainerobj.elm.className = 'normal';
        menu0Containerobj.elm.className = 'normal';
        CasestudyContainerobj.css.zIndex = 1;
        menu1Buttonobj.show();
        menu1Containerobj.hide();   
    
    }   //close rectangle
}}  // close function


function NS6CapabilitesOutHandler(e) { if (initReady) {
    //journal('NS6CapabilitesOutHandler(e) :: ' + new Array(e).toString())
        if(e.target.parentNode.tagName == 'A'){
                    eval(e.target.parentNode.parentNode.id + 'obj').setBG('333399');
                }
                else if(e.target.id.indexOf('capabilitesNo') != -1) {
                    eval(e.target.id + 'obj').setBG('333399');
                }
    
    var leftedge = capabilitiesContainerobj.x + 2;
    var rightedge = capabilitiesContainerobj.x + capabilitiesContainerobj.w  - 2
    var topedge = capabilitiesContainerobj.y + 2 
    var bottomedge = capabilitiesContainerobj.y  + capabilitiesContainerobj.h -2 ;
    
    
    if (e.clientY > bottomedge || e.clientY < topedge || e.clientX < leftedge || e.clientX > rightedge){
        menu1Child2obj.setBG('333399');
        menu1Containerobj.hide();
        capabilitiesContainerobj.hide();
        capabilitiesContainerobj.elm.className = 'normal';
        menu1Containerobj.elm.className = 'normal';
        capabilitiesContainerobj.css.zIndex = 1;
       menu2Buttonobj.show();
       menu2Containerobj.hide();    
    
    }   //close rectangle
}}  // close function

//....menutimer function to put a short delay between menu mouseout and menu hide
function SetMenuTimer(which,msecs) {
    //journal('SetMenuTimer(which,msecs) :: ' + new Array(which,msecs).toString())
    if (! msecs) msecs = 500;
    clearTimeout(menuTimer);
    menuTimer = setTimeout(which,msecs);
}

function SetChildTimer(which,msecs) {
    //journal('SetChildTimer(which,msecs) :: ' + new Array(which,msecs).toString())
    if (! msecs) msecs = 100;
    clearTimeout(childTimer);
    childTimer = setTimeout(which,msecs);
}


//...................................... other common functions
function GoTo(place) { if (initReady) {
    //journal('GoTo(place) :: ' + new Array(place).toString())
    if (place) { 
        document.location.href = place;
    }
}}

function GoTo2(place) { if (initReady) {
    //journal('GoTo2(place) :: ' + new Array(place).toString())
    if (place) { 
        document.location.href = place;
    }
}}


// Netscape Resize Fix
if (ns4) {
    widthCheck = window.innerWidth;
    heightCheck = window.innerHeight;
    window.onResize = resizeFix
}
function resizeFix() { if (initReady) {
    //journal('resizeFix() :: ' + new Array().toString())
    if (widthCheck != window.innerWidth || heightCheck != window.innerHeight)
    document.location.href = document.location.href
}}
