if (typeof window.attachEvent=='object') {
  document.write('<!--[if lte IE 6]>\n'+
                 '<script type="text/javascript">\n'+
                 'var ie6_or_less=1;\n'+
                 '<\/script>\n'+
                 '<![endif]-->\n'+
                 '<!--[if lt IE 5.5]>\n'+
                 '<script type="text/javascript">\n'+
                 'var less_than_ie5_5=1;\n'+
                 '<\/script>\n'+
                 '<![endif]-->')
}

var menu=[], resizereinit=true;

function truebody() {
  return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function getedge(o, is_top) {
  var edge;
  if (is_top)
    edge=window.pageYOffset? window.pageYOffset : truebody().scrollTop? truebody().scrollTop : 0;
  else {
    edge=o.menupos=='left'? 0 : truebody().clientWidth? truebody().clientWidth : window.innerWidth&&truebody().offsetHeight<=window.innerHeight? window.innerWidth :  window.innerWidth? window.innerWidth-20 : 0;
    edge+=window.pageXOffset? window.pageXOffset : truebody().scrollLeft? truebody().scrollLeft: 0;
  }
  return edge;
}

function keep_in_view(o) {
  if(o.keepinview) {
    if(o.m.ft) {
      o.m.ft=0;
      o.m.topP=o.m.offsetTop;
      o.m.ltop=0;
    }
    var pt=getedge(o, 'top'), ks=typeof o.keepinview=='number'&&o.keepinview<o.m.topP&&o.keepinview>0? o.keepinview : o.m.topP, smooth=0;
    if (pt!=o.m.ltop) {
      if(o.menupos=='top')
        o.m.style.visibility='hidden';
      smooth = pt>o.m.topP-ks? .2 * (pt - o.m.ltop - o.m.topP + ks) : o.m.ltop>0? -.2 * o.m.ltop : 0;
      smooth = smooth > 0 ? Math.ceil(smooth) : Math.floor(smooth);
    }
    else if(o.menupos=='top')
      o.m.style.visibility='';
    o.m.style.top=(o.m.style.top? parseInt(o.m.style.top) : o.m.topP)+smooth+'px';
    o.m.ltop += smooth;
  }
  if(o.menupos=='top') {
    if(typeof o.menuleft=='string') {
      o.m.style.left=o.menuleft
      o.m.style.marginLeft=Math.floor(o.m.getElementsByTagName('div')[0].offsetWidth/-2)+'px';
      o.lleft=o.m.offsetLeft;
    }
    o.m.style.marginLeft=0;
    o.m.style.left=o.lleft+(window.pageXOffset? window.pageXOffset : truebody().scrollLeft? truebody().scrollLeft: 0)+'px';
  }
  else
    o.m.style.left=getedge(o)-(o.menupos=='right'? o.m.offsetWidth : 0)+'px';
}

function move(el, num) {
  el.getElementsByTagName('div')[0].style[el.menupos]=parseInt(el.getElementsByTagName('div')[0].style[el.menupos])+num+'px';
  if(el.menupos=='right') {
    if(el.kviewtype=='absolute')
      el.style.left=parseInt(el.style.left)-num+'px';
    el.style.width=parseInt(el.style.width)+num+'px';
  }
  if(num>0)
    el.moving=setTimeout(function(){movein(el)}, el.menuspeed)
  else
    el.moving=setTimeout(function(){moveout1(el)}, el.menuspeed)
  }

function movein(el) {
  var m1=parseInt(el.getElementsByTagName('div')[0].style[el.menupos]);
  if(el.moving)
    clearTimeout(el.moving);
  if (m1<-1*el.borderwidth)
    move(el, Math.min(-1*m1-el.borderwidth, 10));
}

function moveout(el) {
  if(el.moving)
    clearTimeout(el.moving);
  el.moving=setTimeout(function(){moveout1(el)}, el.menupause);
}

function moveout1(el) {
  var aw=el.menupos=='top'? el.b.offsetHeight : el.b.offsetWidth, m1=el.getElementsByTagName('div')[0];
  if(el.moving)
    clearTimeout(el.moving);
  if (parseInt(m1.style[el.menupos])>aw-(el.menupos=='top'? m1.offsetHeight : m1.offsetWidth)+10)
    move(el, -10);
  else {
    m1.style[el.menupos]=aw-(el.menupos=='top'? m1.offsetHeight : m1.offsetWidth)+'px';
    if(el.menupos=='right') {
      el.style.width=aw+'px';
      if(el.kviewtype=='absolute') {
        var ed=truebody().clientWidth? truebody().clientWidth : window.innerWidth&&truebody().offsetHeight<=window.innerHeight? window.innerWidth :  window.innerWidth? window.innerWidth-20 : 0;
        ed+=window.pageXOffset? window.pageXOffset : truebody().scrollLeft? truebody().scrollLeft: 0;
        el.style.left=ed-el.offsetWidth+'px';
      }
    }
  }
}

function to_em(n, o) {
  return Math.round((n/(16*parseInt(o.fontsize)/100))*1000)/1000;
}

function getrows(o) {
  var r=o.menuItems.length+(o.wrapbar? 1 : 0);
  for (var i_tem = 0; i_tem < o.menuItems.length; i_tem++)
    if (o.menuItems[i_tem][4]&&o.menuItems[i_tem][4]=='no')
      r--;
  return r;
}

function make_bar(o){
  var bt=o.menupos=='right'||o.menupos=='top'? '<tr>' : '';
  bt+='<td id="'+o.id+'bar" '+(o.menupos=='top'? 'colspan="'+o.d_colspan : 'rowspan="'+getrows(o))+'">'
  if (!/<img/.test(o.bartext.toLowerCase())) {
    for (var i_tem = 0; i_tem < o.bartext.length-(o.menupos=='top'? 1 : 0); i_tem++)
      bt+=o.menupos=='top'&&o.bartext.charAt(i_tem)==' '? '\u00a0 ' : o.menupos=='top'? o.bartext.charAt(i_tem)+' ' : '<br>'+o.bartext.charAt(i_tem);
    bt+=o.menupos=='top'? o.bartext.charAt(o.bartext.length-1)+'</td>' : '<br>\u00a0</td>';
  }
  else
    bt+=o.bartext+'</td>'
  return bt+(o.menupos=='right'? '\n' : '</tr>\n');
}

function make_style(o){
  if(o.user_defined_stylesheet&&!o.design_mode)
    return '';
  var sheet=''
  sheet+='#'+o.id+' {\n'+
    (o.menupos=='top'? 'top:0;\n' : 'top:'+o.menutop+'px; /*set initial Height from top*/\n')+
    (o.menupos=='top'? 'left:'+o.menuleft+(typeof o.menuleft=='number'? 'px' : '')+';\n' : '')+
    (o.menupos=='right'&&o.kviewtype=='fixed'? 'right:0;\n' : '')+
    'position:'+o.kviewtype+';\n'+
    'overflow:'+(o.menupos=='right'? 'hidden' : 'visible')+';\n'+
    'z-index:100;\n'+
    (o.menupos=='left'? 'left:0;\n' : '')+
    '}\n'+
    '#'+o.id+' div {\n'+
    'border-width:'+(typeof o.outbrdwidth=='number'? o.outbrdwidth+'px' : o.outbrdwidth)+'; /*Menu\'s outer border*/\n'+
    'border-style:'+o.outbrdstyle+';\n'+
    (o.outbrdcolor=='none'? '' : 'border-color:'+o.outbrdcolor+';\n')+
    'position:absolute;\n'+
    'color:black;\n'+
    'background-color:transparent;\n'+
    '}\n'+
    '#'+o.id+' table {\n'+
    'border:'+o.borderwidth+'px '+o.borderstyle+' '+o.bordercolor+'; /*Menu\'s inner border*/\n'+
    (o.menupos=='top'? 'border-left-width:0;\n' : '')+
    (o.menupos=='top'? 'border-bottom-width:0;\n' : '')+
    'font-family:'+o.menufont+', sans-serif; /*Overall font for Menu*/\n'+
    'font-size:'+o.fontsize+';\n'+
    'border-collapse:collapse;\n'+
    'background-color:'+(o.allowtransparent? 'transparent' : o.bordercolor)+';\n'+
    'width:'+to_em(o.barwidth+o.hdingwidth+o.borderwidth*(o.d_colspan+2), o)+'em;\n'+
    '}\n'+
    '#'+o.id+' td { /*Characteristics for cells in the menu table - do not specify width here*/\n'+
    'border-bottom:'+o.borderwidth+'px '+o.borderstyle+' '+o.bordercolor+';\n'+
    'border-left:'+o.borderwidth+'px '+o.borderstyle+' '+o.bordercolor+';\n'+
    'height:'+to_em(o.linkheight, o)+'em;\n'+
    'padding:0;\n'+
    'margin:0;\n'+
    'text-align:'+o.linktxtalign+';\n'+
    '}\n'+
    '#'+o.id+' #'+o.id+'bar { /*Characteristics for initially visible \'draw\' bar (the vertical cell)*/\n'+
    (o.menupos=='top'? 'height:' : 'width:')+to_em(o.barwidth+(document.all||o.menupos=='top'? o.borderwidth*2 : 0), o)+'em;\n'+
    'background-color:'+o.barbgcolor+';\n'+
    'color:'+o.barcolor+';\n'+
    'font-weight:'+o.barfontweight+';\n'+
    'text-align:'+o.baralign+';\n'+
    (o.menupos=='top'? '' : 'border-width:0;\n')+
    'cursor:default;\n'+
    '}\n'+
    '#'+o.id+' .heading { /*Characteristics for heading cells in the menu table*/\n'+
    'height:'+to_em(o.hdingheight, o)+'em;\n'+
    'color:'+o.hdingcolor+';\n'+
    'font-weight:'+o.hdingfontweight+';\n'+
    'text-indent:'+o.hdingindent+'ex;\n'+
    'background-color:'+o.hdingbgcolor+'; /*Background Color for menu headings */\n'+
    'width:'+to_em(o.hdingwidth, o)+'em; /*This will be the menu body width.  This'+(o.menupos!='top'? ' (plus #'+o.id+'bar width for left and right menus)' : '')+' and 4 times the border width should also be the menu table\'s approximate width*/\n'+
    'vertical-align:'+o.hdingvalign+';\n'+
    'text-align:'+o.hdingtxtalign+';\n'+
    'border-left-color:'+o.hdingbgcolor+';\n'+
    'border-left-style:solid;\n'+
    '}\n'+
    (o.wrapbar&&o.menupos!='top'? '#'+o.id+' #'+o.id+'lastrow {\n'+
    'height:'+to_em(o.barwidth, o)+'em;\n'+
    'background-color:'+o.barbgcolor+';\n'+
    'border-width:0;\n'+
    'margin:0 0 '+o.borderwidth+'px '+o.borderwidth+'px;\n'+
    '}\n' : o.menupos!='top'? '#'+o.id+' #'+o.id+'lastrow {\n'+
    'border-bottom-width:0;\n'+
    'margin:0 0 '+o.borderwidth+'px '+o.borderwidth+'px;\n'+
    '}\n' : '')+
    '#'+o.id+' a {\n'+
    'width:100%;\n'+
    'height:100%;\n'+
    'display:block;\n'+
    'padding-top:'+to_em(o.linktopad, o)+'em;\n'+
    '}\n';
  if(o.design_mode) {
    if(document.getElementById('ooostyle'))
      alert('Only one menu\'s script generated styles may be displayed at a time!\n\nCurrently showing '+document.getElementById('ooostyle').tell+'\'s stylesheet\n\n(or there is a syntax error - most\n\u00a0\u00a0\u00a0\u00a0likely in the menuItem.js file)');
    else{
      var isusing=o.user_defined_stylesheet? ' not' : '';
      var sw=(window.innerWidth? window.innerWidth : truebody().clientWidth)/1.5; 
      document.write('<textarea id="ooostyle" cols="'+Math.floor(sw/8)+'" rows="65" wrap="off" style="margin-left:-'+Math.floor(sw/2)+'px;overflow:auto;position:absolute;top:10px;left:50%;z-index:1000;">\n')
      document.write('\/* '+o.id+'\'s Script Generated Styles: */\n\/* '+o.id+' is'+isusing+' currently using these via the script */\n\n'+sheet);
      document.write('\n\/* End '+o.id+'\'s Script Generated Styles */');
      document.write('</textarea>')
      document.getElementById('ooostyle').tell=o.id;
    }
  }
  if(!o.user_defined_stylesheet)
    return '<style type="text/css">\n'+sheet+'</style>';
  return '';
}

function make_style_make_menu(o, s) {
  if(s) {
    if(!o.id) {alert('a unique id is required for each menu');return;};
    if(!o.menuItems||o.menuItems.constructor!=Array) {alert('an array of menu items is required for each menu');return;};
    if(!o.menutop) {o.menutop=150};
    if(!o.menuleft) {o.menuleft='50%'};
    if(!o.keepinview&&typeof o.keepinview=='boolean')
      o.keepinview=false;
    else if(!o.keepinview) {o.keepinview=30};
    if(!o.menuspeed) {o.menuspeed=20};
    if(!o.menupause) {o.menupause=500};
    if(!o.d_colspan) {o.d_colspan=2};
    if(!o.allowtransparent) {o.allowtransparent=false};
    if(!o.barwidth) {o.barwidth=22};
    if(!o.hdingwidth) {o.hdingwidth=149};
    if(!o.hdingheight) {o.hdingheight=22};
    if(!o.hdingindent) {o.hdingindent=1};
    if(!o.linkheight) {o.linkheight=16};
    if(!o.outbrdwidth) {o.outbrdwidth=0};
    if(!o.outbrdcolor) {o.outbrdcolor="none"};
    if(!o.outbrdstyle) {o.outbrdstyle="none"};
    if(!o.borderwidth) {o.borderwidth=1};
    if(!o.bordercolor) {o.bordercolor="black"};
    if(!o.borderstyle) {o.borderstyle="solid"};
    if(!o.barcolor) {o.barcolor="white"};
    if(!o.barbgcolor) {o.barbgcolor="#444444"};
    if(!o.barfontweight) {o.barfontweight="bold"};
    if(!o.baralign) {o.baralign="center"};
    if(!o.menufont) {o.menufont="verdana"};
    if(!o.fontsize) {o.fontsize="80%"};
    if(!o.hdingcolor) {o.hdingcolor="white"};
    if(!o.hdingbgcolor) {o.hdingbgcolor="#170088"};
    if(!o.hdingfontweight) {o.hdingfontweight="bold"};
    if(!o.hdingvalign) {o.hdingvalign="middle"};
    if(!o.hdingtxtalign) {o.hdingtxtalign="left"};
    if(!o.linktopad) {o.linktopad=0};
    if(!o.linktxtalign) {o.linktxtalign="left"};
    if(!o.linktarget) {o.linktarget=""};
    if(!o.menupos) {o.menupos="left"};
    if(!o.bartext) {o.bartext="SIDE MENU"};
    if(!o.user_defined_stylesheet) {o.user_defined_stylesheet=false};
    if(!o.user_defined_markup) {o.user_defined_markup=false};
    if(!o.design_mode) {o.design_mode=false};
    if(!o.wrapbar) {o.wrapbar=false};
    if(!o.kviewtype) {o.kviewtype='absolute'};
    if(typeof ie6_or_less!='undefined')
      o.kviewtype='absolute';
    else if(o.menupos=='top'&&o.kviewtype=='absolute')
      o.kviewtype='fixed';
    while(!o.menuItems[o.menuItems.length-1])
      o.menuItems.length=o.menuItems.length-1;
    document.write(make_style(o));
    return;
  }
  else {
    if(o.design_mode||!o.user_defined_markup) {
      var hw=o.hdingwidth;

      var tb='<div id="'+o.id+'" onmouseover="movein(this);" onmouseout="moveout(this);"><div><table>\n';
      tb+=o.menupos=='right'? make_bar(o) : '';
      for (var i_tem = 0; i_tem < o.menuItems.length; i_tem++) {
        if ((o.menupos=='top'&&i_tem==0)||i_tem>0&&(!o.menuItems[i_tem-1][4]||o.menuItems[i_tem-1][4]!=='no'))
          tb+='<tr>'
        if (o.menuItems[i_tem][1]&&o.menuItems[i_tem][1]!=='') {
          tb+='<td '+(i_tem==o.menuItems.length-1&&!o.wrapbar&&o.menupos!='top'? 'id="'+o.id+'lastrow" ' : '')+'colspan="'+(o.menuItems[i_tem][3]&&o.menuItems[i_tem][3]!==''? o.menuItems[i_tem][3] : o.d_colspan)+'"><a href="'+o.menuItems[i_tem][1]+'" target="'+(o.menuItems[i_tem][2]? o.menuItems[i_tem][2] : o.linktarget)+'">'+o.menuItems[i_tem][0]+'</a></td>'
        }
        else
          tb+='<td '+(i_tem==o.menuItems.length-1&&!o.wrapbar&&o.menupos!='top'? 'id="'+o.id+'lastrow" ' : '')+'class="heading" '+(o.menuItems[i_tem][3]&&o.menuItems[i_tem][3]!==''&&o.menuItems[i_tem][3]!==o.d_colspan? 'style="width:'+to_em(hw*o.menuItems[i_tem][3]/o.d_colspan, o)+'em;'+(i_tem>0&&o.menuItems[i_tem-1][4]&&o.menuItems[i_tem-1][4]=='no'? 'border-left-width:0;margin-left:'+o.borderwidth+'px;' : '')+'" ' : '')+'colspan="'+(o.menuItems[i_tem][3]&&o.menuItems[i_tem][3]!==''? o.menuItems[i_tem][3] : o.d_colspan)+'">'+o.menuItems[i_tem][0]+'</td>'
        if (!o.menuItems[i_tem][4]||o.menuItems[i_tem][4]!=='no')
          tb+=o.menupos=='left'&&i_tem==0? make_bar(o) : '</tr>\n';
      }
      tb+=o.wrapbar&&o.menupos!='top'? '<tr><td id="'+o.id+'lastrow" colspan="'+o.d_colspan+'">\u00a0</td></tr>\n' : '';
      tb+=o.menupos=='top'? make_bar(o) : '';

      if(!o.user_defined_markup)
        document.write(tb+'</table></div></div>')
    }
    if(o.design_mode)
      document.getElementById('ooostyle').value+='\n\n<!-- The Markup for '+o.id+' -->\n\n'+tb+'</table></div></div>\n\n<!-- End '+o.id+'\'s Markup -->'
    o.m=document.getElementById(o.id);
    var b=document.getElementById(o.id+'bar');
    o.m.b=b;
    o.m.ft=1;
    o.m.menupos=o.menupos;
    o.m.menupause=o.menupause;
    o.m.menuspeed=o.menuspeed;
    o.m.borderwidth=o.borderwidth;
    o.m.kviewtype=o.kviewtype;
    resizevent(o);
    if(o.menupos=='top'&&typeof window.attachEvent=='object'&&typeof ie6_or_less!='undefined')
      window.attachEvent('onscroll', function(){o.m.style.visibility='hidden';});
    if(o.kviewtype=='absolute'&&(o.menupos!='top'||(typeof ie6_or_less!='undefined'&&typeof window.attachEvent=='object')))
      setInterval(function(){keep_in_view(o)}, 20)
  }
}

function resizevent(o) {
  var m1=o.m.getElementsByTagName('div')[0], bo=o.menupos=='top'? o.m.b.offsetHeight : o.m.b.offsetWidth;
  m1.style[o.menupos]=bo-(o.menupos=='top'? m1.offsetHeight : m1.offsetWidth)+'px'
  if(o.menupos=='right') {
    if(o.kviewtype=='absolute')
      o.m.style.left=getedge(o)-o.m.offsetWidth+'px';
    o.m.style.width=bo+'px';
    o.m.style.height=m1.offsetHeight+'px';
    if(typeof less_than_ie5_5!='undefined') {
      o.m.onmouseover(o.m);
      o.m.onmouseout(o.m);
    }
  }
  if(o.menupos=='top') {
    o.m.style.width=m1.style.width=o.m.getElementsByTagName('table')[0].offsetWidth+'px';
    if(typeof o.menuleft=='string')
      o.m.style.marginLeft=Math.floor(m1.offsetWidth/-2)+'px';
  }
}
/*

ONTEXTRESIZE EVENT SPOOFER

Including this file in your page will allow you to assign a function
to window.ontextresize, which will be called when the user changes the
size of text on the page.

Used with (as far as I know) permission from: http://forkandspoonhelmet.com/Fork_and_Spoon_Helmet

*/
var ontextresizeLastSize = false;
if (window.attachEvent) window.attachEvent("onload", initOntextresizeListener);
else if (window.addEventListener) window.addEventListener("load", initOntextresizeListener, false);

function initOntextresizeListener() {
  if(!resizereinit||typeof less_than_ie5_5!='undefined')
  return;
  var testDiv = document.createElement("div");
  testDiv.style.position = "absolute";
  testDiv.style.height = "1em";
  testDiv.style.width = "1em";
  testDiv.style.top = "-2em";
  testDiv.style.left = "-2em";
  var docTestDiv = document.body.appendChild(testDiv);
  docTestDiv.id = "ontextresizeTestDiv";
  ontextresizeListener = setInterval("ontextresizeCheckTestDiv()",100);
}

function ontextresizeCheckTestDiv() {
  if (ontextresizeLastSize!=document.getElementById("ontextresizeTestDiv").offsetWidth) {
    if (ontextresizeLastSize && window.ontextresize) window.ontextresize.call();
    ontextresizeLastSize = document.getElementById("ontextresizeTestDiv").offsetWidth;
  }
}

window.ontextresize=function() {
  for (var i_tem = 0; i_tem < menu.length; i_tem++)
    if(typeof menu[i_tem]!='undefined')
      resizevent(menu[i_tem]);
};

function make_menus() {
  if(document.getElementById) {
    for (var i_tem = 0; i_tem < menu.length; i_tem++)
      if(typeof menu[i_tem]!='undefined')
        make_style_make_menu(menu[i_tem], 's');
    for (i_tem = 0; i_tem < menu.length; i_tem++)
      if(typeof menu[i_tem]!='undefined')
        make_style_make_menu(menu[i_tem]);
  }
}