//////////////////////////////////////////////////////////////////////////////
// Archive: MenuArchive.js
// Created: Wed Oct 29 05:55:59 PDT 2008
// Generator: JSArchive [23]
// 
// The command line arguments to generate this file:
// <=%=> com.cleancode.format.JSArchive -c -l -f MenuArchive.js nc:C:/usr/ms/devel/cleancode-support/license/mpl-c.txt nC:../netscape/ua.js nC:../cooldev/coolmenu.js ../cleancode/Util/Version.js ccmenu.js ../cleancode/Util/NavKeys.js
// 
// This file was generated automatically and should not be edited manually.
//////////////////////////////////////////////////////////////////////////////


// <=%=> C:/usr/ms/devel/cleancode-support/license/mpl-c.txt (saved 3%)
// last modified: Thu Dec 28 13:16:32 PST 2006

/*
 * The official license for this file is shown next.
 * Unofficially, consider this e-postcardware as well:
 * if you find this module useful, let us know via e-mail, along with
 * where in the world you are and (if applicable) your website address.
 */

/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is part of the CleanCode toolbox.
 *
 * The Initial Developer of the Original Code is Michael Sorens.
 * Portions created by the Initial Developer are Copyright (C) 2001-2004
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *
 * ***** END LICENSE BLOCK *****
 */



// <=%=> ../netscape/ua.js (saved 42%)
// last modified: Thu Dec 14 16:46:31 PST 2006

function xbDetectBrowser()
{
var oldOnError=window.onerror;
var element=null;
window.onerror=null;
window.saveNavigator=window.navigator;
navigator.OS='';
navigator.version=parseFloat(navigator.appVersion);
navigator.org='';
navigator.family='';
var platform;
if(typeof(window.navigator.platform)!='undefined')
{
platform=window.navigator.platform.toLowerCase();
if(platform.indexOf('win')!=-1)
navigator.OS='win';
else if(platform.indexOf('mac')!=-1)
navigator.OS='mac';
else if(platform.indexOf('unix')!=-1||platform.indexOf('linux')!=-1||platform.indexOf('sun')!=-1)
navigator.OS='nix';
}
var i=0;
var ua=window.navigator.userAgent.toLowerCase();
if(ua.indexOf('opera')!=-1)
{
i=ua.indexOf('opera');
navigator.family='opera';
navigator.org='opera';
navigator.version=parseFloat('0'+ua.substr(i+6),10);
}
else if((i=ua.indexOf('msie'))!=-1)
{
navigator.org='microsoft';
navigator.version=parseFloat('0'+ua.substr(i+5),10);
if(navigator.version<4)
navigator.family='ie3';
else
navigator.family='ie4'
}
else if(ua.indexOf('gecko')!=-1)
{
navigator.family='gecko';
var rvStart=navigator.userAgent.indexOf('rv:')+3;
var rvEnd=navigator.userAgent.indexOf(')',rvStart);
var rv=navigator.userAgent.substring(rvStart,rvEnd);
var decIndex=rv.indexOf('.');
if(decIndex!=-1)
{
rv=rv.replace(/\./g,'')
rv=rv.substring(0,decIndex)+'.'+rv.substr(decIndex)
}
navigator.version=parseFloat(rv);
if(ua.indexOf('netscape')!=-1)
navigator.org='netscape';
else if(ua.indexOf('compuserve')!=-1)
navigator.org='compuserve';
else
navigator.org='mozilla';
}
else if((ua.indexOf('mozilla')!=-1)&&(ua.indexOf('spoofer')==-1)&&(ua.indexOf('compatible')==-1)&&(ua.indexOf('opera')==-1)&&(ua.indexOf('webtv')==-1)&&(ua.indexOf('hotjava')==-1))
{
var is_major=parseFloat(navigator.appVersion);
if(is_major<4)
navigator.version=is_major;
else
{
i=ua.lastIndexOf('/')
navigator.version=parseFloat('0'+ua.substr(i+1),10);
}
navigator.org='netscape';
navigator.family='nn'+parseInt(navigator.appVersion);
}
else if((i=ua.indexOf('aol'))!=-1)
{
navigator.family='aol';
navigator.org='aol';
navigator.version=parseFloat('0'+ua.substr(i+4),10);
}
else if((i=ua.indexOf('hotjava'))!=-1)
{
navigator.family='hotjava';
navigator.org='sun';
navigator.version=parseFloat(navigator.appVersion);
}
window.onerror=oldOnError;
}
xbDetectBrowser();


// <=%=> ../cooldev/coolmenu.js (saved 12%)
// last modified: Thu Dec 14 16:46:31 PST 2006

window.CMenus=[];
var BLANK_IMAGE="img/b.gif";
function bw_check(){var is_major=parseInt(navigator.appVersion);this.nver=is_major;this.ver=navigator.appVersion;this.agent=navigator.userAgent;this.dom=document.getElementById?1:0;this.opera=window.opera?1:0;this.ie5=(this.ver.indexOf("MSIE 5")>-1&&this.dom&&!this.opera)?1:0;this.ie6=(this.ver.indexOf("MSIE 6")>-1&&this.dom&&!this.opera)?1:0;this.ie4=(document.all&&!this.dom&&!this.opera)?1:0;this.ie=this.ie4||this.ie5||this.ie6;this.mac=this.agent.indexOf("Mac")>-1;this.ns6=(this.dom&&parseInt(this.ver)>=5)?1:0;this.ie3=(this.ver.indexOf("MSIE")&&(is_major<4));this.hotjava=(this.agent.toLowerCase().indexOf('hotjava')!=-1)?1:0;this.ns4=(document.layers&&!this.dom&&!this.hotjava)?1:0;this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera);this.ver3=(this.hotjava||this.ie3);this.opera7=((this.agent.toLowerCase().indexOf('opera 7')>-1)||(this.agent.toLowerCase().indexOf('opera/7')>-1));this.operaOld=this.opera&&!this.opera7;return this;};
function nn(val){return val!=null;}
function und(val){return typeof(val)=='undefined';}
function COOLjsMenu(name,items,spacer){
this.REGISTERED=0;
this.bw=new bw_check();this.bi=new Image();
this.bi.src=(spacer||BLANK_IMAGE);
if(!window.CMenus)window.CMenus=[];
window.CMenus[name]=this;
if(!window.CMenuHideTimers)window.CMenuHideTimers=[];
window.CMenuHideTimers[name]=null;this.name=name;this.root=[];this.root.par=null;
this.root.cd=[];this.root.fmt=items[0];this.items=[];
this.root.frameoff=items[0].pos?items[0].pos:[0,0];
this.root.lvl=new CMenuLevel(this,this.root);
for(var i=1;i<items.length;i++)if(!und(items[i]))new CMenuItem(this,this.root,items[i],und(items[i].format)?items[0]:items[i].format);
this.wm_get_pos=function(){if(this.bw.ns4)return;var ml=99999;var mt=0;var c=this.root.cd;for(var i=0;i<c.length;i++){if(c[i].pos[0]<ml)ml=c[i].pos[0];if(c[i].pos[1]>mt)mt=c[i].pos[1];}var fn=this.root.cd[0];return[parseInt(ml),parseInt(mt+fn.size[0]+fn.style.shadow)];}
this.wm_show=function(){if(this.bw.ns4)return;var div=get_div(this.name+'_wm');div.style.visibility='visible';}
this.wm_move=function(){if(this.bw.ns4)return;var p=this.wm_get_pos();var div=get_div(this.name+'_wm');if(this.bw.ns4)div.moveTo(p[0],p[1]);else{div.style.left=p[0];div.style.top=p[1];}}
this.wm_draw=function(x,y){if(this.bw.ns4)return;var p=this.wm_get_pos();document.write(adiv(this.bw,this.name+'_wm',0,p[0],p[1],30,10,'',unescape('%43%4f%4f%4c%6a%73%4d%65%6e%75'),'font-size:7px;color:#d0d0d0;visibility:show',''));}
this.draw=function(){for(var i=0;i<this.items.length;i++)document.write(this.items[i].draw());this.wm_draw();}
this.hide=function(){
if(this.root.fmt.popup)
this.root.lvl.vis(0);
else{
for(var i=0;i<this.root.cd.length;i++)if(this.root.cd[i].lvl)this.root.cd[i].lvl.vis(0);
this.root.lvl.a=null;
this.root.lvl.draw();
if(this.root.fmt.hidden_top)this.root.lvl.vis(0);
}
}
this.mpopup=function(ev,offX,offY){
var x=ev.pageX?ev.pageX:(this.bw.opera?ev.clientX:this.bw.ie4?ev.clientX+document.body.scrollLeft:ev.x+document.body.scrollLeft);
var y=ev.pageY?ev.pageY:(this.bw.opera?ev.clientY:this.bw.ie4?ev.clientY+document.body.scrollTop:ev.y+document.body.scrollTop);
var po=this.root.fmt.popupoff;
y+=offY?offY:po?po[0]:0;
x+=offX?offX:po?po[1]:0;
this.popup(x,y);
}
this.popup=function(x,y){
this.move(x,y);
this.root.lvl.a=null;
this.root.lvl.vis(1);
mEvent(this.name,0,'t');
mEvent(this.name,0,'0');
}
this.move=function(x,y){
if(!this.root.pos||this.root.pos[0]!=x||this.root.pos[1]!=y){
this.root.pos=[x,y];
this.root.loff=[0,0];
this.root.ioff=[0,0];
for(var i=0;i<this.items.length;i++){
this.items[i].setPosFromParent();
this.items[i].move(this.items[i].pos[0],this.items[i].pos[1]);
}
this.wm_move();
}
}
this.draw();
this.wm_show();
if(!this.root.fmt.popup&&!this.root.fmt.hidden_top)
this.root.lvl.vis(1)
else
this.root.lvl.vis(0)
}
function CMenuLevel(menu,par){
this.menu=menu;
this.par=par;
this.v=0;
this.vis=function(s){
var ss=this.v;
this.v=s;
var l=this.par.cd.length;
for(var i=0;i<l;i++){
var n=this.par.cd[i];
if(n.hc()&&n.lvl.v&&!s)n.lvl.vis(s);
n.vis(s);
}
if(!s)this.a=null;
if(this.v!=ss&&this.menu.onlevelshow)this.menu.onlevelshow(this);
}
this.setA=function(idx,s){
var n=this.menu.items[idx];
if(nn(this.a)&&n.par.lvl!=this.a.par.lvl)return;
if(s&&n.hc())n.lvl.vis(1);
if(s&&n!=this.a&&nn(this.a)&&this.a.hc()&&this.a.lvl.v)this.a.lvl.vis(0);
this.a=n;
this.draw();
}
this.draw=function(){
if(this.menu.root.lvl==this&&this.menu.root.fmt.hidden_top)return;
for(var i=0;i<this.par.cd.length;i++)
if(this.par.cd[i]==this.a)
this.par.cd[i].setVis('o');
else
this.par.cd[i].setVis('n');
}
}
function CMenuItem(menu,par,item,format){
if(und(item))return;
this.lvl=null;this.par=par;
this.code=item.code;
this.ocode=item.ocode?item.ocode:item.code;
this.targ=und(item.target)?"":'target="'+item.target+'" ';
this.url=und(item.url)?"javascript:none()":item.url;
this.fmt=format;this.menu=menu;this.bw=menu.bw;this.cd=[];
this.divs=[];this.index=menu.items.length;
menu.items[menu.items.length]=this;
this.pindex=par.cd.length;
par.cd[par.cd.length]=this;
this.id="cmi"+this.menu.name+"_"+this.index;
this.v=0;this.state='n';this.diva=["b","s","o","n","e"];
this.hc=function(){return this.cd.length>0};
this.div=function(n){return und(this.divs[n])?this.divs[n]=get_div(this.id+n):this.divs[n]};
this.draw=function(){
var b=this.style.border;
var s=this.style.shadow;
return(!this.style.shadow?"":adiv(this.menu.bw,this.id+"s",parseInt(this.z)+1,this.pos[0]+s,this.pos[1]+s,this.size[1],this.size[0],this.style.color.shadow,"",""))+
(!this.style.border?"":adiv(this.menu.bw,this.id+"b",parseInt(this.z)+2,this.pos[0],this.pos[1],this.size[1],this.size[0],this.style.color.border,"",""))+
adiv(this.menu.bw,this.id+"o",parseInt(this.z)+3,this.pos[0]+b,this.pos[1]+b,this.size[1]-b*2,this.size[0]-b*2,this.style.color.bgOVER,'<div class="'+this.style.css.OVER+'">'+this.ocode+'</div>',"")+
adiv(this.menu.bw,this.id+"n",parseInt(this.z)+4,this.pos[0]+b,this.pos[1]+b,this.size[1]-b*2,this.size[0]-b*2,this.style.color.bgON,'<div class="'+this.style.css.ON+'">'+this.code+'</div>',"")+
adiv(this.menu.bw,this.id+"e",parseInt(this.z)+5,this.pos[0]+b,this.pos[1]+b,this.size[1]-b*2,this.size[0]-b*2,"",'<a href="'+this.url+'" '+this.targ+'onclick="mEvent(\''+this.menu.name+'\','+this.index+',\'c\');"  onmouseover="mEvent(\''+this.menu.name+'\','+this.index+',\'o\');" onmouseout="mEvent(\''+this.menu.name+'\','+this.index+',\'t\');">'+'<img src="'+this.menu.bi.src+'" width="'+this.size[1]+'" height="'+this.size[0]+'" border="0"></a>',"",'');
}
this.vis=function(s){
if(this.style.shadow)this.visDiv("s",s);
if(this.style.border)this.visDiv("b",s);
if(!s){this.visDiv("o",0);this.visDiv("n",0);this.state="n";}
else if(this.state=="n")
this.visDiv("n",1);
else
this.visDiv("o",1);
this.visDiv("e",s);
}
this.setVis=function(n){
if(this.state!=n)
switch(n){
case"n":this.visDiv("n",1);this.visDiv("o",0);break;
case"o":this.visDiv("n",0);this.visDiv("o",1);break;
}
this.state=n;
}
this.visDiv=this.bw.ns4?visDivNS:visDivDom;
this.getf=function(obj,name){
if(!und(obj)&&nn(obj)&&!und(obj.fmt)){
if(!und(obj.fmt[name]))
return obj.fmt[name];
if(obj.par!=this.menu.root&&obj.par&&obj.par.sub&&obj.par.sub[0][name])
return obj.par.sub[0][name];
return this.getf(obj.par,name);}
return;
}
this.ioff=this.getf(this,"itemoff");
this.loff=this.getf(this,"leveloff");
this.style=this.getf(this,"style");
this.size=this.getf(this,"size");
this.prev=this.pindex==0?null:this.par.cd[this.pindex-1];
this.setPos=function(){
if(this.prev==null){
this.z=this.par==this.menu.root?0:parseInt(this.par.z)+10;
this.pos=und(this.fmt.pos)?(this.par==this.menu.root?this.menu.root.fmt.pos:this.pos=[this.par.pos[0]+this.loff[1],this.par.pos[1]+this.loff[0]]):this.fmt.pos;
}else{
this.prev.next=this;
this.z=this.prev.z;
this.pos=[this.prev.pos[0]+this.ioff[1],this.prev.pos[1]+this.ioff[0]];
}
}
this.setPos();
this.sub=item.sub;
if(!und(this.sub)&&!und(this.sub.length)&&this.sub.length>0){
this.lvl=new CMenuLevel(menu,this);
for(var i=1;i<this.sub.length;i++)
if(!und(this.sub[i]))new CMenuItem(this.menu,this,this.sub[i],und(this.sub[i].format)?this.sub[0]:this.sub[i].format);
}
this.setPosFromParent=function(){
if(this.index==0){
this.pos=[this.menu.root.pos[0],this.menu.root.pos[1]]
}else
if(this.prev==null){
this.pos=[this.par.pos[0]+this.loff[1],this.par.pos[1]+this.loff[0]];
}else{
this.pos=[this.prev.pos[0]+this.ioff[1],this.prev.pos[1]+this.ioff[0]];
}
}
this.move=function(x,y){
var bl=bt=this.style.border;
if(this.style.shadow)this.moveTo(x+parseInt(this.style.shadow),y+parseInt(this.style.shadow),"s");
if(this.style.border)this.moveTo(x,y,"b");
this.moveTo(x+bl,y+bt,"o");
this.moveTo(x+bl,y+bt,"n");
this.moveTo(x+bl,y+bt,"e");
}
this.moveTo=function(x,y,b){
if(this.bw.ns4){
this.div(b).moveTo(x,y);
}else{
this.div(b).style.left=x;
this.div(b).style.top=y;
}
}
return this;
}
function adiv(bw,name,z,left,top,width,height,bgc,code,otherCSS,otherDIV){return bw.ns4?'<layer id="'+name+'" z-index="'+z+'" left="'+left+'" top='+top+'" width="'+width+'" height="'+height+'"'+(bgc!=""?' bgcolor="'+bgc+'"':'')+' style="'+otherCSS+'" visibility="hidden" '+otherDIV+'>'+code+'</layer>\n':'<div id="'+name+'" style="position:absolute;z-index:'+z+';left:'+left+'px;top:'+top+'px;width:'+width+'px;height:'+height+'px;visibility:hidden'+(bgc!=""?';background-color:'+bgc+'':'')+';'+otherCSS+';" '+otherDIV+'>'+code+'</div>';}
function get_div(name){return new bw_check().ns4?document.layers[name]:document.all?document.all[name]:document.getElementById(name);}
function visDivNS(d,s){this.div(d).visibility=s?'show':'hide';}
function visDivDom(d,s){this.div(d).style.visibility=s?'visible':'hidden';}
function mEvent(m,node_index,e){
if(nn(window.CMenuHideTimers[m])){
window.clearTimeout(window.CMenuHideTimers[m]);
window.CMenuHideTimers[m]=null;
}
switch(e){
case"o":
window.CMenus[m].items[node_index].par.lvl.setA(node_index,1);
if(window.CMenus[m].onmouseover)window.CMenus[m].onmouseover(window.CMenus[m].items[node_index]);
break;
case"c":
if(window.CMenus[m].items[node_index].hc())
window.CMenus[m].items[node_index].lvl.vis(!window.CMenus[m].items[node_index].lvl.v);
else
for(var i=0;i<window.CMenus[m].root.cd.length;i++)if(nn(window.CMenus[m].root.cd[i].lvl))window.CMenus[m].root.cd[i].lvl.vis(0);
if(window.CMenus[m].onclick)window.CMenus[m].onclick(window.CMenus[m].items[node_index]);
break;
case"t":
window.CMenuHideTimers[m]=setTimeout('window.CMenus["'+m+'"].hide()',und(window.CMenus[m].root.fmt.delay)?600:window.CMenus[m].root.fmt.delay);
if(window.CMenus[m].onmouseout)window.CMenus[m].onmouseout(window.CMenus[m].items[node_index]);
break;
}
return true;
}
window.oldCMOnLoad=window.onload;
function CMOnLoad(){
var bw=new bw_check();
if(bw.operaOld)window.operaResizeTimer=setTimeout('resizeHandler()',1000);
if(typeof(window.oldCMOnLoad)=='function')window.oldCMOnLoad();
if(bw.ns4)window.onresize=resizeHandler;
}
window.onload=new CMOnLoad();
function resizeHandler(){
if(window.reloading)return;
if(!window.origWidth){
window.origWidth=window.innerWidth;
window.origHeight=window.innerHeight;
}
var reload=window.innerWidth!=window.origWidth||window.innerHeight!=window.origHeight;
window.origWidth=window.innerWidth;window.origHeight=window.innerHeight;
if(window.operaResizeTimer)clearTimeout(window.operaResizeTimer);
if(reload){window.reloading=1;document.location.reload();return};
if(new bw_check().operaOld){window.operaResizeTimer=setTimeout('resizeHandler()',500)};
}
function CMenuPopUp(menu,evn,offX,offY){window.CMenus[menu].mpopup(evn,offX,offY);}
function CMenuPopUpXY(menu,x,y){window.CMenus[menu].popup(x,y);}


// <=%=> ../cleancode/Util/Version.js (saved 94%)
// last modified: Wed Jan 17 13:21:32 PST 2007

var VERSIONS={};var versionShown={};var configData;function getVersion(vString){return(/(\d[\d\.]*)/.exec(vString))[1];}


// <=%=> ccmenu.js (saved 53%)
// last modified: Wed Oct 29 05:50:45 PDT 2008

var SEP_BORDER=2;var SEP_THICKNESS=1;var SEP_HEIGHT=SEP_BORDER*2+SEP_THICKNESS;var MASK_POPUP=false;var TOP_STYLE={border:0,shadow:0,color:{border:"gray",shadow:"black",bgON:"#cc9933",bgOVER:"gray"},css:{ON:"clsCMTopOn",OVER:"clsCMTopOver"}};var SUB_STYLE={border:0,shadow:0,color:{border:"gray",shadow:"black",bgON:"silver",bgOVER:"navy"},css:{ON:"clsCMOn",OVER:"clsCMOver"}};var SEP_STYLE={border:SEP_BORDER,shadow:0,color:{border:"silver",shadow:"black",bgON:"white",bgOVER:"white"},css:{ON:"",OVER:""}};var L1_HEIGHT=20;var L1_WIDTH=90;var L1_SM_WIDTH=70;var L1_WIDER=130;var L1_XCOORD=3;var L1_YCOORD=3;var L1_SPECS={pos:[L1_XCOORD,L1_YCOORD],size:[L1_HEIGHT,L1_WIDTH],leveloff:[L2_YCOORD,0],itemoff:[0,L1_WIDTH],delay:500,style:TOP_STYLE};var L2_HEIGHT=25;var L2_WIDTH=160;var L2_XCOORD=0;var L2_YCOORD=L1_HEIGHT;var L2_SPECS={size:[L2_HEIGHT,L2_WIDTH],leveloff:[L2_YCOORD,L2_XCOORD],itemoff:[L2_HEIGHT,0],style:SUB_STYLE};var L3_HEIGHT=L2_HEIGHT;var L3_WIDTH=L2_WIDTH;var L3_XCOORD=L2_WIDTH*0.5;var L3_YCOORD=L2_YCOORD*0.8;var L3_SPECS={size:[L3_HEIGHT,L3_WIDTH],leveloff:[L3_YCOORD,L3_XCOORD],itemoff:[L3_HEIGHT,0],style:SUB_STYLE};var SEPARATOR={size:[SEP_HEIGHT,L2_WIDTH],style:SEP_STYLE};var SEP_FOLLOWER={itemoff:[SEP_HEIGHT,0]};var MY_ROOT="/";var MORE_IMG='<img src="'+MY_ROOT+'image/childarrow.gif" width="14" height="14" />';var MENU_ITEMS=[L1_SPECS,{code:"Home",url:MY_ROOT+"index.html",format:{size:[L1_HEIGHT,L1_SM_WIDTH]},sub:[L2_SPECS,{code:'Motivation',url:MY_ROOT+"wwwdoc/motivation.html"},{code:'Philosophy',url:MY_ROOT+"wwwdoc/philosophy.html"},{code:'Maintainability',url:MY_ROOT+"wwwdoc/maintainability.html"},{code:'History and News',url:MY_ROOT+"wwwdoc/history.html"},{code:'Colophon',url:MY_ROOT+"wwwdoc/colophon.html"},{code:'Certifications',url:MY_ROOT+"wwwdoc/certification.html"},{code:'Favorites',url:MY_ROOT+"wwwdoc/favorites.html"},{code:'Site Map',url:MY_ROOT+"wwwdoc/sitemap.html"}]},{code:"Topics",format:{size:[L1_HEIGHT,L1_SM_WIDTH],itemoff:[0,L1_SM_WIDTH]},sub:[L2_SPECS,{code:'Gallery',url:MY_ROOT+"wwwdoc/gallery.html"},{code:'Coding Guidelines',url:MY_ROOT+"wwwdoc/codingRules.html"},{code:'Web Guidelines',url:MY_ROOT+"wwwdoc/webRules.html"},{code:'Published Work',url:MY_ROOT+"wwwdoc/articles.html"}]},{code:"Products",format:{size:[L1_HEIGHT,L1_SM_WIDTH],itemoff:[0,L1_SM_WIDTH]},sub:[L2_SPECS,{code:'Highlights '+MORE_IMG,url:MY_ROOT+"wwwdoc/software.html"},{code:'Documentation '+MORE_IMG,sub:[L3_SPECS,{code:'Perl',url:MY_ROOT+"api/perl/index.html"},{code:'Java',url:MY_ROOT+"api/java/index.html"},{code:'C#',url:MY_ROOT+"api/csharp/index.html"},{code:'SQL',url:MY_ROOT+"api/sql/index.html"},{code:'JavaScript',url:MY_ROOT+"api/js/index.html"}]},]},{code:"Developers",format:{itemoff:[0,L1_SM_WIDTH]},sub:[L2_SPECS,{code:'Project Home',url:"http://sourceforge.net/projects/cleancode/"},{code:'Project Screenshots',url:"http://sourceforge.net/project/screenshots.php?group_id=101363"},{code:'Project News',url:"http://sourceforge.net/news/?group_id=101363"}]},{code:"Download",url:MY_ROOT+"wwwdoc/download.html"},{code:"Support",url:MY_ROOT+"wwwdoc/contact.html",sub:[L2_SPECS,{code:'Submit bug report',url:"http://sourceforge.net/tracker/?group_id=101363&amp;atid=629536"},{code:'Submit feature request',url:"http://sourceforge.net/tracker/?group_id=101363&amp;atid=629539"},{code:'',format:SEPARATOR},{code:'Mailing lists '+MORE_IMG,format:SEP_FOLLOWER,url:"http://sourceforge.net/mail/?group_id=101363",sub:[L3_SPECS,{code:'TBD list',url:"http://sourceforge.net/forum/forum.php?forum_id=xxx"},{code:'TBD list',url:"http://sourceforge.net/forum/forum.php?forum_id=xxx"},]},{code:'Discussion forums '+MORE_IMG,url:"http://sourceforge.net/forum/?group_id=101363",sub:[L3_SPECS,{code:'help forum',url:"http://sourceforge.net/forum/forum.php?forum_id=350670"},{code:'open discussion forum',url:"http://sourceforge.net/forum/forum.php?forum_id=350669"},]}]}];function setMenu(){new COOLjsMenu("mymenu",MENU_ITEMS,MY_ROOT+"image/b.gif");setTrack();}function setTrack(){document.write('<img src="'+MY_ROOT+'cgi-bin/axs/ax.pl?a01.gif&amp;ref='+document.referrer+'" height="1" width="1" alt="" />');}


// <=%=> ../cleancode/Util/NavKeys.js (saved 81%)
// last modified: Tue Dec 19 21:11:31 PST 2006

if(typeof(VERSIONS)!="undefined"){VERSIONS['Util_NavKeys']=getVersion('$Revision: 7 $');}var NavKeys_container=new Object;NavKeys_container.firstKey=49;NavKeys_container.prevKey=50;NavKeys_container.nextKey=51;NavKeys_container.finalKey=52;NavKeys_container.upKey=53;function NavKeys_init(firstURL,prevURL,nextURL,finalURL,upURL){if(typeof(window.event)!="undefined"){var key=window.event.keyCode;var obj=NavKeys_container;if(key==obj.firstKey&&firstURL!=""){location.href=firstURL;}else if(key==obj.prevKey&&prevURL!=""){location.href=prevURL;}else if(key==obj.nextKey&&nextURL!=""){location.href=nextURL;}else if(key==obj.finalKey&&finalURL!=""){location.href=finalURL;}else if(key==obj.upKey&&upURL!=""){location.href=upURL;}}}function NavKeys_assignKeys(firstKey,prevKey,nextKey,finalKey,upKey){NavKeys_container.firstKey=firstKey;NavKeys_container.prevKey=prevKey;NavKeys_container.nextKey=nextKey;NavKeys_container.finalKey=finalKey;NavKeys_container.upKey=upKey;}

