var ns=false;
var ie=false;
var n6=false;
var n7=false;
var op=false;
var W;

function BrowserCheck() {
	ns=document.layers;
	ie=document.all;
	op=window.opera;
	if (!ie&&document.getElementById&&(document.body.clientWidth==null)) {
        ns=false;n6=true;
    } else {
        if (!ie&&!ns) {
            n7=true;
        } else {
            n7=false;
        }
    }

    if (ns) {
        W=window.innerWidth-16
    } else if (n6) {
        W=window.innerWidth-36
    } else if (n7||op) {
        W=document.body.clientWidth-20;
    } else {
        W=document.body.clientWidth;
    }

    // if Mac IE subtract 20 pixels
    if (navigator.userAgent.indexOf("Mac")>0 && ie) W-=20;

	//if (ns||n6||op) {W=window.innerWidth-16}else{W=document.body.offsetWidth-20;};
}

function TIMoveTo(x,y) {
    if (this.itemCount<1) return;
    this.xpos=x;
    this.ypos=y;
    this.css.left=x;
    this.css.top=y;
}

function TIGet(id) {
    if (id==this.id) return this;
    for (var i=0;i<this.itemCount;i++) {
        It=this.items[i].Get(id);
        if (It!=null) return It;
    }
    return null;
}

function TIA(id,parid,name,link,target,image,im2,iw,ih) {
    It=new TreeItem(id,parid,name,link,target,image,im2,iw,ih);
    this.Add(It);
}

function TIAdd(N) {
    N.Opened=false;
    It=this.Get(N.parid);
    if (N.parid==this.id) {
        N.width=this.width;
        N.bckColor=this.bckColor;
        N.selBckColor=this.selBckColor;
        N.bckColorNS4=this.bckColorNS4;
        N.selBckColorNS4=this.selBckColorNS4;
        N.fntColor=this.fntColor;
        N.fntSize=this.fntSize;
        N.fntSizeNS4=this.fntSizeNS4;
        N.iHeight=this.iHeight;
        N.imWidth=this.imWidth;
        if (N.iw>this.mW&&this.align=="vert") this.mW=N.iw
        if (N.ih>this.mH&&this.align!="vert") this.mH=N.ih;
        N.arrIm=this.arrIm;
        N.arrIm1=this.arrIm1;
        N.selFntColor=this.selFntColor;
        this.items[this.itemCount]=N;
        N.d=this.d;
        N.parentItem=this;
        N.bSize=this.bSize;
        N.face=this.face;
        N.onm=this.onm;
        N.i=this.i;
        N.b=this.b;
        N.u=this.u;
        N.bColor=this.bColor;
        N.visibility="hidden";
        this.itemCount++;
        return;
    }
    
    if (It!=null) {
        It.Add(N);
        return;
    }
}

function TIWriteDiv() {
    preload(this.vname+".iob",this.arrIm);
    preload(this.vname+".iob1",this.arrIm1);
    preload(this.vname+".imb",this.img2);
    
    if (this.itemCount<1) return false;
    
    document.write("<DIV ID='"+this.vname+"'>");
    //alert("<DIV ID='"+this.vname+"'>");
    
    for (var i=0;i<this.itemCount;i++) {
        ci=this.items[i];
        ref=ci.name;
        if (ci.b)ref="<b>"+ref+"</b>";
        if (ci.i)ref="<i>"+ref+"</i>";
        if (ci.u) ref="<u>"+ref+"</u>";
        im="";
        im1="";
        cl="";
        scl="";
        im2="";
        ime="";
        cl=" color='"+ci.fntColor+"'";
        scl=" color='"+ci.selFntColor+"'";

        if (ci.image!="") {
            im1="<img name='"+ci.vname+"ic' src='";
            ime="' width='"+ci.imWidth+"' height='"+this.iHeight+"' border=0>";
        } else if (ci.parid != 0) {
            im1="<img src='/images/one_pxl.gif' width='18' height='1' />";
            ime="";
        }

        if (ci.itemCount>0&&this.arrIm!="") {
            im="<img name='"+ci.vname+"im' src='"+this.iob.src+"' height='"+this.iHeight+"' width='"+this.iHeight+"' border=0>";
            im2="<img name='"+ci.vname+"im' src='"+this.iob1.src+"' height='"+this.iHeight+"' width='"+this.iHeight+"' border=0>";
        }

        t1="<table border='0' width='"+ci.iw+"' cellspacing='0' height='"+ci.ih+"' cellpadding='0'><tr><td width ="+ci.imWidth+">"+im1;
            //te=ime+"</td><td width='"+ci.iw+"' ";
            te=ime+"</td><td width='100%' ";
            if (ci.textAlign) {
                te+="align='"+ci.textAlign+"' ";
            }
            te+="><font ";
        tc=" size='"+ci.fntSizeNS4+"' face='"+ci.face+"'>";
        t2="</font></td><td width="+this.iHeight+">";
        t3="</td></tr></table>";

        ci.normText=t1+ci.image+te+cl+tc+"<div id='"+ci.vname+"t' >"+ref+"</div>"+t2+im+t3;
        ci.selText=t1+ci.img2+te+scl+tc+ref+t2+im2+t3;

        document.write("<DIV ID='"+ci.vname+"i' >"+ci.normText+"</DIV>");
        //alert("<DIV ID='"+ci.vname+"i' >"+ci.normText+"</DIV>");

        if (ie) {
            ci.ilayer=document.all[ci.vname+"i"];
            ci.tlayer=document.all[ci.vname+"t"];
            ci.tlayer=document.getElementById(ci.vname+"t");
            var tl=ci.tlayer.style;
            tl.color=ci.fntColor;
            tl.fontFamily=this.face;
            tl.fontSize=ci.fntSize;
        }

        if (n6||n7) {
            ci.ilayer=document.getElementById(ci.vname+"i");
            ci.tlayer=document.getElementById(ci.vname+"t");
            var tl=ci.tlayer.style;
            tl.color=ci.fntColor;
            tl.fontFamily=this.face;
            tl.fontSize=ci.fntSize;
        }

        if (ns) { 
            ci.ilayer=eval("document."+this.vname+".document."+ci.vname+"i");
        }
    }

    document.write("</DIV>");

    for(var i=0;i<this.itemCount;i++) {
        this.items[i].WriteDiv();
    }

    if (ie) {this.layer=document.all[this.vname];this.css=this.layer.style;}
    if (n6||n7) {this.layer=document.getElementById(this.vname);this.css=this.layer.style;}
    if (ns) {this.layer=eval("document."+this.vname);this.css=this.layer;}
    return false;
}

function TIEventInit() {
    var oinit=true;
    for (var i=0;i<this.itemCount;i++) {
        this.items[i].EventInit();
    }
    for (var i=0;i<this.itemCount;i++) {
        var style=this.items[i].ilayer;
        if (oinit) this.layer.onmouseout = new Function("e",this.vname+".outHandler(e);return false;");
        oinit=false;
        style.onmouseover = new Function(this.vname+".moveHandler("+i+");return false;");
        style.onmousedown = new Function(this.vname+".downHandler("+i+");return false;");
        if (ns)style.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
    }
}

function TIWriteCSS() {
    var dx;
    var dy;
    var bCol=(ns)?"layer-background-color:" : "background-color:";
    var d=this.d;
    var b=this.bSize;
    this.width=Math.max(this.width,this.mW);
    this.iHeight=Math.max(this.iHeight,this.mH);
    var xs=b;
    var ys=b;
    
    for (var i=0;i<this.itemCount;i++) {
        var N=this.items[i];
        N.iw=(N.iw)? N.iw:this.width;
        N.ih=(N.ih)? N.ih:this.iHeight;
        
        if (this.align=="vert") {
            ys+=d+N.ih;
            xs=this.width+b+d;
            if (N.iw<this.width)N.iw=this.width;
        } else {
            xs+=d+N.iw;
            ys=this.iHeight+b+d;
            if (N.ih<this.iHeight)N.ih=this.iHeight;
        }
    }

    ys+=b-d;xs+=b-d;
    this.tH=ys; 
    this.tW=xs;
    
    if (this.itemCount>0) {
        if (this.parentItem==null) document.write("<STYLE TYPE='text/css'><!--");
        document.write("#"+this.vname+" {position:absolute;width:"+xs+"px;left:"+this.xpos+"px;top:"+this.ypos+"px;height:"+ys+"px;clip:rect(0,"+xs+","+ys+",0);visibility: "+this.visibility+";");
        if (this.vname!="DdMenu0") { 
            document.write(bCol+this.bColor+";");
        }
        document.write(" cursor: hand; z-index:5;}"); 
        xs=b;
        ys=b;
        for (var i=0;i<this.itemCount;i++) {
            var N=this.items[i];
            N.xs=xs;
            N.ys=ys;
            document.write("#"+N.vname+"i {position:absolute;"+bCol+N.bckColor+";top:"+ys+"px;left:"+xs+"px"+";width:"+N.iw+"px;height:"+N.ih+"px; z-index:1;}"); 
            if (this.align=="vert") {
                ys+=d+N.ih
            } else {
                xs+=d+N.iw
            }
            
            N.WriteCSS();
        }
        if (this.parentItem==null) 
            document.write("--></STYLE>");
    }
}

function TIShow(o) {
    this.focus=-1;
    if (this.itemCount<1) return;
    if (o==1) {
        this.css.visibility=(ns)? "show":"visible";
    } else {
        for (var i=0;i<this.itemCount;i++)
            this.items[i].Show(0);
        this.css.visibility=(ns)? "hide":"hidden";
    }
}

function TIToggle(mod) {
    this.Opened=mod;
    var c1=this.bckColor;var c2=this.selBckColor;
    if (ie||n6||n7) {
        im=document.images;
        if (im[this.vname+"im"])im[this.vname+"im"].src=(mod)? this.arrIm1:this.arrIm;
        if (im[this.vname+"ic"])im[this.vname+"ic"].src=(mod)? this.img2:this.image;
        this.ilayer.style.backgroundColor=(mod)? c2 : c1;
        this.ilayer.style.background=(mod)? c2:c1;
        this.tlayer.style.color=(mod)? this.selFntColor:this.fntColor; 
    }
    if (ns) {
        var txt=(mod)? this.selText:this.normText;
        this.ilayer.document.bgColor=(mod)? this.bckColorNS4 : this.selBckColorNS4;
        //this.ilayer.document.bgColor=(mod)? c2 : c1;
        this.Write(txt);
    }
}

function TIMove(i) {
    if (this.itemCount<1) return;
    if (this.onm) this.onm(i);
    this.active=true;
    pI=this.parentItem;
    ti=this.items[i];
    ts=this.items[this.selected];
    if (pI!=null) {
        pI.active=true;
        pI.focus=-1;
    }
    ts.active=true;
    k=0;
    j=1;
    if (this.align=="vert") {
        k=1;
        j=0;
    }
    var nxpos=this.xpos+k*this.width+ti.xs;
    var nypos=this.ypos+j*this.iHeight+ti.ys+ti.bSize;
    //var nypos=this.ypos+j*this.iHeight+ti.ys-ti.bSize;
    if (nxpos+ti.tW>W) {
        nxpos=nxpos-(this.width+ti.width)+(ti.bSize*2);
        //nxpos=nxpos-(this.width+ti.width)-(ti.bSize*2);
    }
    ti.MoveTo(nxpos,nypos);
    ts.Show(0);
    ti.Show(1);
    ts.Toggle(false);
    ti.Toggle(true);
    status=ti.link;
    this.selected=i;
    this.focus=i;
}

function TIDown(i) {
    it = this.items[i];
    if (it.link!="") {
        it.link = "/" + it.link;
        if (it.link.substring(0,11)=="javascript:") {eval(it.link.substring(11,it.link.length));return;}
        //if (it.target!=""){parent.frames[it.target].location=it.link;}else {location.href=it.link; }
        if (it.target!="") { 
            if (it.target=="_blank" || it.target=="blank" || it.target=="_new" || it.target=="new") {
                window.open(it.link,"newwin");
            } else if (!op){
                parent.frames[it.target].location.href = it.link;
            } else {
                eval("parent."+it.target).location.href = it.link;
            }
        } else { location.href=it.link; }
    }
}

function TIReset() {
    if (this.active) return;
    this.items[this.selected].Show(0);
    if (this.parentItem!=null) {
        if (this.parentItem.focus>=0) return;
        this.parentItem.active=false;
        this.parentItem.Reset();
    }
    this.items[this.selected].Toggle(false);
}

function TIWrite(text) {
    var style=this.ilayer;
    style.document.open();
    style.document.write(text);
    style.document.close();
}

function TIMout(e) {
    if (!ns) {
        if (n6||n7) { 
            mx=e.pageX;
            my=e.pageY;
        } else {
            mx=window.event.clientX;
            my=window.event.clientY;
            if (!op) {
                my+=document.body.scrollTop;mx+=document.body.scrollLeft;
            }
        }        
        if ((mx>this.xpos+1&&mx<this.xpos+this.tW)&&(my>this.ypos+1&&my<this.ypos+this.tH)) return;
    }
    this.active=false;
    this.focus=-1;
    setTimeout(this.vname+".Reset()",300);
}

function preload(imgObj,imgSrc) {
    eval(imgObj+' = new Image()');
    eval(imgObj+'.src = "'+imgSrc+'"');
}

function TreeItem(id,parid,name,link,target,image,im2,iw,ih) {
    this.vname="DdMenu"+TreeItem.dmcount;
    TreeItem.dmcount++;
    this.image=image;
    this.img2=(im2)? im2:image;
    this.name=name;
    this.frname="";
    this.id=id;
    this.parid=parid;
    this.link=link;
    this.target=target;
    this.items=new Array();
    this.itemCount=0;
    this.Opened=false;
    this.bckColor="#f0f0f0";
    this.selBckColor="#a0a0a0";
    this.bckColorNS4="#f0f0f0";
    this.selBckColorNS4="#a0a0a0";
    this.fntColor="#ffffff";
    this.selFntColor="#00ffff";
    this.fntSize=11;
    this.fntSizeNS4=1;
    this.face="default";
    this.alinkColor="#ffff00";
    this.arrIm="/images/arrow1.gif";
    this.arrIm1="/images/arrow2.gif";
    this.xpos=0;
    this.ypos=0;
    this.selected=0;
    this.height=600;
    this.mW=0;this.mH=0;
    this.width=150;
    this.b=false;this.i=false;this.u=false;this.d=1;
    this.iHeight=21;
    this.imWidth=18;
    this.focus=-1;
    this.bSize=1;this.iw=iw;this.ih=ih;
    this.tW=0;
    this.tH=0;
    this.onm=null;
    this.bColor="#000000";
    this.WriteCSS = TIWriteCSS;
    this.Show = TIShow;
    this.Add = TIAdd;
    this.WriteDiv = TIWriteDiv;
    this.Get = TIGet;
    this.A = TIA;
    this.align="vert";
    //this.textAlign=textAlign;
    this.moveHandler=TIMove;
    this.outHandler=TIMout;
    this.downHandler=TIDown;
    this.active=false;
    this.Reset=TIReset;
    this.EventInit=TIEventInit;
    this.MoveTo=TIMoveTo;
    this.Write=TIWrite;
    this.Toggle=TIToggle;
    this.normText="";
    this.selText=""
    eval(this.vname + "=this");
}

TreeItem.dmcount=0;
