/* PLEASE LEAVE THIS CODE ALONE PPL - I NEED TO FINISH IT - It's a mess right now.. */

var dF =""// ** DEBUG
var numMenus=0 // ** DEBUG

/*
Dev note:
All variables name are very small and strange to save space. So if you're trying to read the code here's some help:
c = this (the main menu object) | m = current menu object | o = current div object | po = parent object | pm = parent menu object
*/


/***********
 Load up the red bullet
***********/
blton = new Image();
blton.src = "images/redBullet.gif";

bltoff = new Image();
bltoff.src = "images/redBulletOff.gif";

/*Crossbrowser objects functions*/
function cm_message(txt){alert(txt); return false}
function cm_makeObj(obj,nest,o){
  dF ="cm_makeObj("+obj+","+nest+","+o+")"// ** DEBUG
  if(o&&(bw.ns6)) this.evnt=o
  else this.evnt=bw.dom? document.getElementById(obj):
    bw.ie4?document.all[obj]:bw.ns4?nest?document.layers[nest].document.layers[obj]:document.layers[obj]:0;
  if(!this.evnt) return cm_message('The layer does not exist ('+obj+')' 
    +'- \nIf your using Netscape please check the nesting of your tags!')
  this.css=bw.dom||bw.ie4?this.evnt.style:this.evnt; 
  this.ref=bw.dom||bw.ie4?document:this.css.document;
  this.x=0; this.y=0; return this
}
cm_makeObj.prototype.moveIt = function(x,y){this.x=x;this.y=y; this.css.left=x;this.css.top=y}
cm_makeObj.prototype.showIt = function(){this.css.visibility="visible"; this.vis=1} 
cm_makeObj.prototype.hideIt = function(){this.css.visibility="hidden"; this.vis=0} 
cm_makeObj.prototype.clipTo = function(t,r,b,l,setwidth){ 
  dF ="clipTo("+t+","+r+","+b+","+l+","+setwidth+")"// ** DEBUG
  this.ct=t; this.cr=r; this.cb=b; this.cl=l
  if(bw.ns4){this.css.clip.top=t;this.css.clip.right=r; this.css.clip.bottom=b;this.css.clip.left=l
  }else{
    if(t<0)t=0;if(r<0)r=0;if(b<0)b=0;if(b<0)b=0; this.css.clip="rect("+t+","+r+","+b+","+l+")";
    if(setwidth){this.css.pixelWidth=this.css.width=r; this.css.pixelHeight=this.css.height=b}
  }
}
function cm_active(on,cl,cl2){
  if(bw.reuse){if(on) this.o.evnt.className=cl2; else this.o.evnt.className=cl
  }else{if(on) this.over.showIt(); else this.over.hideIt()}
}
/***Pageobject **/
function cm_page(){
  this.x=0; this.x2 =(!bw.ie)?window.innerWidth:document.body.offsetWidth;
  this.y=0; this.y2= (!bw.ie)?window.innerHeight:document.body.offsetHeight;
  this.x50=this.x2/2; this.y50=this.y2/2
}
/***check positions**/
function cm_cp(num,w){
	if(num){if(num.toString().indexOf("%")!=-1){t = w?toppage.x2:toppage.y2; num=(t*parseFloat(num)/100)
	}else num=eval(num);} else num=0; return num
}
/***Menu code start**/
var cm_eventlayer = 0,cm_eventlayerE = 0,cm_dom=new Array(3); 
/***Making the main menu object**/
function makeCM(name){
  dF ="makeCoolMenu("+name+")" // ** DEBUG
  this.maxlev=new Array(); this.olev=new Array(new Array()); this.mc=0
  this.name = name; this.topnum=new Array(); this.level=new Array()
  this.lev=new Array(); this.tim=100; this.isover=0; this.m=new Array()
  if(!cm_eventlayer){ //Mouseout event layer
    if(bw.usedom){cm_dom[0]=document.createElement("div"); cm_dom[0].className="clCMEvent"; document.body.appendChild(cm_dom[0])}
    else document.write('<div id="divCMEvent" class="clCMEvent"></div>')
  }var ev = this.name+".isover=0; "+this.name+".tim=setTimeout('if(!"+this.name+".isover)"+this.name+".hidesub()',500)"
  if(cm_eventlayer){this.ev = cm_eventlayer; cm_eventlayerE+=";"+ev; 
  }else{cm_eventlayerE=ev; cm_eventlayer=new cm_makeObj('divCMEvent','',cm_dom[0]); this.ev=cm_eventlayer}
  this.ev.evnt.onmouseover=new Function(cm_eventlayerE); 
}
/***Creating layers**/
function cm_makeLayer(name,n,lnk,txt,cl,cl2,clb,w,h,arrow,border,nolink,l0){
  dF ="cm_makeLayer("+name+","+n+","+lnk+","+txt+","+cl+","+cl2+","+clb+","+w+","+h+","+arrow+")" // ** DEBUG
  redBullet='<img align="absbottom" name="blt_' + name + '" src="images/redBulletOff.gif" border="0" width="12" height="12">&nbsp;&nbsp;'
  numMenus++
  if(!clb||nolink) clb=cl;
  if(bw.usedom){
      cm_dom[1]=document.createElement("DIV"); cm_dom[2] = document.createElement("DIV"); cm_dom[1].className=clb; 
      if(l0){cm_dom[1].onmouseover=new Function(name+'.showsub("'+n+'")'); cm_dom[1].onclick=new Function('cm_go(\''+lnk+'\')')};
      if(l0){cm_dom[2].innerHTML=redBullet + txt;}; cm_dom[2].className = cl; cm_dom[1].appendChild(cm_dom[2])
      if(!nolink && arrow){
        cm_dom[3] = document.createElement("DIV"); cm_dom[3].className = "clCMArrow"; cm_dom[3].innerHTML = '<img src="'+arrow+'">'
        cm_dom[1].appendChild(cm_dom[3])
      }document.body.appendChild(cm_dom[1])
  }else{
    str='<div id="'+name + '_' + n+'_0" class="'+clb+'">'
    if(!nolink) str+='<div id="'+name + '_' + n+'" class="'+cl+'"'
    if(!(bw.op5 || bw.ns4) && !nolink&&l0) str+=' onmouseover="'+name+'.showsub(\''+n+'\')" onclick="cm_go(\''+lnk+'\');" '
    if(!nolink) str+='>'+redBullet + txt+'</div>'
    if(!nolink && !bw.ie) str+='<div id="'+name + '_' + n+'_2" class="'+cl2+'">' //
    if(!bw.ie || nolink) str+=redBullet + txt
    if(!nolink && !bw.ie) str+='</div>'
    if(arrow&&!nolink&&!bw.op5) str+='<div id="'+name + '_' + n+'_3" class="clCMArrow"><img src="'+arrow+'"></div>'
    if((bw.op5 || bw.ns4) && !nolink) {
	str+='\t<div class="clCMImage"><a href="#" onclick="cm_go(\''+lnk+'\'); return false" onmouseover="'+name+'.showsub(\''+n+'\')"><img src="images/fill.gif" width="'+(w+border*2+2)+'" height="'+(h+border*2+0)+'" border="0"></a></div>'
    }
    str+='</div>\n'; document.write(str) 
  }
}
function cm_checkalign(a){
  if(a=="left") return 1
  else if(a=="right") return 0;
  else if(a=="top") return 3;
  else if(a=="bottom") return 2;
}

/**Making each individual menu **/
makeCM.prototype.makeMenu=function(name,parent,txt,lnk,w,h,cl,cl2,align,nolink){
  redBullet='<img align="absbottom" name="blt_' + name + '" src="images/redBulletOff.gif" border="0" width="12" height="12">&nbsp;&nbsp;'
  dF ="cm_makeMenu("+name+","+parent+","+txt+","+lnk+","+cl+","+w+","+h+","+cl2+","+nolink+")" // ** DEBUG
  if(!name) name = this.name+""+this.mc; var p = parent!=""&&parent?this.m[parent]:0; 
  var c = this,m=c.m[name]=new Object(),a,align; var create=1
  m.subs=new Array(); m.parent=p; this.mc++
  var l = m.lev = p?p.lev+1:0, cle = c.level
  if(l==c.maxlev.length){
    if(l>=cle.length){prop1=cle[cle.length-1]; cle[l]=new Array();
    }else prop1=cle[l]; prop2=cle[0]    
    cle[l].w = prop1.width||prop2.width; cle[l].h = prop1.height||prop2.height; 
    cle[l].offsetX = prop1.offsetX||prop2.offsetX; cle[l].offsetY = prop1.offsetY||prop2.offsetY; 
    cle[l].arrow=prop1.arrow||prop2.arrow; cle[l].border=prop1.border||prop2.border; cle[l].align=cm_checkalign(prop1["align"]||prop2["align"]); 
    cle[l].cl=prop1.className||prop2.className; cle[l].cl2=prop1.classNameOver||prop2.classNameOver
    if(cle[l].arrow){cle[l].arrowWidth=prop1.arrowWidth||prop2.arrowWidth; 
    cle[l].arrowHeight=prop1.arrowHeight||prop2.arrowHeight}; cle[l].borderclass=prop1.borderclass||prop2.borderclass; 
    c.maxlev[l] = 0; c.olev[l]=new Array()
  }if(p){p.subs[p.subs.length]=name; 
    if(bw.reuse){if(p.subs.length>c.maxlev[l]) c.maxlev[l] = p.subs.length; else create=0}
  }else{c.topnum[c.topnum.length]=name}
  m.w=w=w||cle[l].w; m.h=h=h||cle[l].h; m.offX=offX=cle[l].offsetX; m.offY=offY=cle[l].offsetY  //Properties
  m.arrow=arrow=cle[l].arrow; if(align) align=cm_checkalign(align); m.align=align=align||cle[l].align; m.cl=cl=cl||cle[l].cl; 
  m.cl2=cl2=cl2||cle[l].cl2; m.clb=clb=cle[l].borderclass; m.border=border=cle[l].border
  if(create) cm_makeLayer(c.name,name,lnk,txt,cl,cl2,clb,w,h,arrow,border,nolink,l==0)
  if(!(!create && bw.reuse)){
    var o = m.o = new cm_makeObj(c.name + "_"+name+"_0",'',cm_dom[1]) 
    o.active = cm_active; if(!bw.reuse||l==0) o.clipTo(0,w+border*2,h+border*2,0,1)
    if(!nolink){
      o.o = new cm_makeObj(this.name + "_"+name,this.name + "_"+name+"_0",cm_dom[2])
      if(!bw.reuse||l==0) o.o.clipTo(0,w,h,0,1);  o.o.moveIt(border,border)
    }if(arrow && !nolink && !bw.op5){
      o.arr = new cm_makeObj(this.name + "_"+name+"_3",this.name + "_"+name+"_0",cm_dom[3])
      o.arr.w = cle[l].arrowWidth; o.arr.h = cle[l].arrowHeight;
      if(!bw.reuse||l==0) o.arr.moveIt(w-parseInt(o.arr.w)-3+border,h/2-o.arr.h/2+border);
    }if(!nolink && !bw.reuse && !bw.usedom){
      o.over=new cm_makeObj(this.name + "_"+name+"_2",this.name + "_"+name+"_0")
      o.over.moveIt(border,border); o.over.hideIt(); o.over.clipTo(0,w,h,0,1)
    }if(bw.reuse && create && p) c.olev[l][p.subs.length-1] = o
  }else m.o = c.olev[l][p.subs.length-1]
  if(bw.reuse && p){ m.txt=redBullet + txt; m.lnk=lnk}
}
/**Getting x/y coords for subs **/
makeCM.prototype.getcoords=function(m,border){
  dF ="cm_getcoords("+name+","+border+")"// ** DEBUG
  var x=m.o.x,y=m.o.y
  if(m.align==0) x+=m.w + m.border 
  else if(m.align==1) x-=m.w + m.border +border*2
  else if(m.align==2) y+=m.h + m.border
  else if(m.align==3) y-=m.h + m.border +border*2
  m.subx=x + m.offX; m.suby=y + m.offY
}
/**Showing sub elements**/
makeCM.prototype.showsub=function(el){
  dF ="showsub("+el+")"// ** DEBUG
  var c=this
  var pm=c.m[el], po=pm.o, x, y, ln=pm.subs.length
  c.isover=1; clearTimeout(c.tim)  
  c.hidesub(el); po.active(1,pm.cl,pm.cl2)
  c.lev[pm.lev]=el; 
  c.ev.showIt();
  if(ln>0) c.ev.showIt(); else return  // ACTIVE WITHOUT SUBS _ FIX HERE ************************************'
  c.getcoords(pm,c.m[pm.subs[0]].border)
  x=pm.subx + pm.border; y=pm.suby + pm.border
  for(i=0;i<ln;i++){
    m=this.m[this.m[el].subs[i]]
    o=m.o; if(o.vis) return
    if(!po.ok||bw.reuse){
      o.moveIt(x,y); nl=m.subs.length
      if(bw.reuse){
        o.o.evnt.className=m.cl; o.o.evnt.innerHTML=m.txt
        o.clipTo(0,m.w+m.border*2,m.h+m.border*2,0,1); o.o.clipTo(0,m.w,m.h,0,1); 
        o.o.evnt.onmouseover=new Function(this.name+".showsub('"+pm.subs[i]+"')")
        o.o.evnt.onclick=new Function("cm_go('"+m.lnk+"')")
        if(m.arrow){ o.arr.moveIt(m.w-parseInt(o.arr.w)-3+m.border,m.h/2-o.arr.h/2+m.border); o.arr.showIt()}
      }if(!bw.op5 && o.arr && nl==0) o.arr.hideIt()
      if(po.align==3) y-=m.h+m.border;
      else y+=m.h+m.border;
    }o.showIt()
  }po.ok=1
}
/**Hide sub elements **/
makeCM.prototype.hidesub=function(el){
  dF ="hidesub("+el+")"// ** DEBUG
  var c = this,tmp,m
  if(el){var o=c.m[el].o, l=c.m[el].lev; o.active(0,c.m[el].cl,c.m[el].cl2)
  }else{ var l=0; c.ev.hideIt()}
  for(i=l;i<c.lev.length;i++){
     if(c.lev[i]!=el&&c.lev[i]!=0){
      for(j=0;j<c.m[c.lev[i]].subs.length;j++){
        m = c.m[c.m[c.lev[i]].subs[j]]
        m.o.hideIt(); if(bw.reuse&&m.arrow) m.o.arr.hideIt()
      }tmp = c.m[c.lev[i]]; tmp.o.active(0,tmp.cl,tmp.cl2); c.lev[i]=0
    }
  }
}
/**Constructing and initiating top items and bar**/
makeCM.prototype.construct=function(){
  dF ="cm_construct()" // ** DEBUG
  var mpa,mp,o,maxw,maxh,x,y,px,c,m
  toppage = new cm_page(); c=this
  c.topalign=c.level[0].align; px=c.pxbetween
	mp=c.menuplacement; rows=c.rows
  if(mp==0) totw=c.fromleft; else totw = 0 
  maxw = 0; maxh = 0; x = c.fromleft; y=c.fromtop
  for(i=0;i<c.topnum.length;i++){
    m = c.m[this.topnum[i]]; o = m.o
    if(mp == 0){o.moveIt(x,y); o.showIt()}
		if(rows==0) y+=m.h+px; else x+=m.w+px
    maxw = maxw>m.w?maxw:m.w; maxh = maxh>m.h?maxh:m.h
  }c.totwidth = x - (rows?c.pxbetween:0) - c.fromleft; c.totheight = y - (!rows?c.pxbetween:0) - c.fromtop
  c.maxwidth = maxw - (rows?c.pxbetween:0); c.maxheight = maxh - (!rows?c.pxbetween:0)
	if(mp=="center"){if(rows==0) y=toppage.y2/2 - (c.totheight)/2; else x=toppage.x2/2 - (c.totwidth)/2}
	else if(mp.toString().indexOf(",")>-1) mpa=1
  if(mp != 0){
    for(i=0;i<c.topnum.length;i++){
      m = c.m[this.topnum[i]]; o = m.o
      if(mpa){if(rows==1) x=cm_cp(mp[i]); else y=cm_cp(mp[i],0,0,1)}
      o.moveIt(x,y); o.showIt()  
		  if(rows==0) y+=m.h+px; else x+=m.w+px; 
    }
  }if(c.usebar){ //Background-Bar
    var div="";  border=o.border
    if(bw.ns6) {div=document.createElement("div"); div.id=c.name+'bbar'; div.className=c.barclass}
    else document.write('<div id="'+c.name+'bbar" class="'+c.barclass+'"></div>')
    bar = new cm_makeObj(c.name+'bbar','',div)
    bar.evnt.onmouseover=new Function(cm_eventlayerE)
    barx=c.barx=="menu"?mpa&&rows?mp[0]:c.m[c.topnum[0]].l.x:cm_cp(c.barx,1);
    bary=c.bary=="menu"?mpa&&!rows?mp[0]:c.m[c.topnum[0]].l.y:cm_cp(c.bary);
    barw=c.barwidth=="menu"?rows?mpa?mp[mp.length-1]-barx:c.totwidth:c.maxwidth:cm_cp(c.barwidth,1);
    barh=c.barheight=="menu"?!rows?mpa?mp[mp.length-1]-bary:c.totheight:c.maxheight:cm_cp(c.barheight);
    if(c.barwidth=="menu"||c.barheight=="menu"){if(rows) barh+=border*2; else barw+=border*2}
    bar.clipTo(0,barw,barh,0,1); bar.moveIt(barx,bary); bar.showIt()
  }
  if(c.resizecheck){ //Window resize code.
    setTimeout('window.onresize=new Function("'+c.name+'.resized()")',500)
    c.resized=cm_resized;
    if(bw.op5) document.onmousemove=new Function(c.name+".resized()")
  }
}
/**Capturing resize**/
function cm_resized(){
  dF ="cm_resized()" // ** DEBUG
	page2=new cm_page(); 
	location.reload()
  if(page2.x2<toppage.x2-10 || page2.y2<toppage.y2-10 || page2.x2>toppage.x2+10 || page2.y2>toppage.y2+10){
		if(!bw.ns4&&!bw.op5){page=new cm_page(); this.construct()
		}else location.reload() 
  }
}
/**Go to a link**/
function cm_go(lnk){
	if(lnk) {
		nextpage=lnk;
		location.href=lnk;
	}
}