// JavaScript Document
function get$(s){return document.getElementById(s);}
var b;
b={ns4:(document.layers),opera:(navigator.userAgent.indexOf("Opera")!=-1),dom:(document.getElementById)}
b.ie=document.all && !b.opera;
b.ns=(b.ns4 ||(b.dom&&!b.ie)),b.ieDom=(b.ie&&b.dom),b.nsDom=(b.ns&&b.dom);
b.isMac=(navigator.appVersion.indexOf("Mac")!=-1);
b.isSafari = ( navigator.userAgent.indexOf( 'Safari' ) != -1 )
b.ie6Standard=(b.ie&&b.dom&&document.compatMode&&document.compatMode!="BackCompat");
//---------------------------------------------------------------------------------------------
//
//      D R O P   D O W N   M A N A G E R
//
//---------------------------------------------------------------------------------------------

//Used to hide DropDowns.
//Example:
//<div onmouseover="this.style.display='block'; DropDownManager.Add(this);" onmouseout="this.style.display='none'; DropDownManager.Remove(this);"
var DropDownManager={
    __queue:{},
    Add:function(obj){
        this.__queue[obj]=true;
        this.hideShowDropDowns();
    },
    Remove:function(obj){
        this.__queue[obj]=false;
        this.hideShowDropDowns();
    },
    hideShowDropDowns:function(bStatus){
        if(!b.ie) return;
        var bFinal=false;
        for(var i in this.__queue) {
            bFinal=this.__queue[i];
            if(bFinal) break;
        }
        var aDropdowns=document.getElementsByTagName("select");
        for(var i=0;i<aDropdowns.length;i++){
            aDropdowns[i].style.visibility=(!bFinal)?'visible':'hidden';
        }
    }
}
//---------------------------------------------------------------------------------------------
//
//      P O S I T I O N I N G
//
//---------------------------------------------------------------------------------------------

if (b.ieDom) {	//ie 5.5 & 6
  
    //-------------------------------------------------------------------------------
    //          Event Manipulation
    //-------------------------------------------------------------------------------
    IsEventCapturing=function(e){
        return false;
    }
    IsEventTargeting=function(item,e,stopBubbling){
        e=window.event;
        var ret=(item===e.srcElement);
        if(ret && stopBubbling) e.cancelBubble=true;
        return ret;
    }
    IsEventBubbling=function(item,e){
        e=window.event;
        return(e.srcElement!==item);
    }
    StopEventBubbling=function(e){
        e=window.event;
        e.cancelBubble=true;
    }
	//-------------------------------------------------------------------------------
	//          I s M o u s e O v e r O u t (object,event)
	//-------------------------------------------------------------------------------
	IsMouseOverOut=function(thisel,e){
        e=(window.event)?window.event:e;
        if(!e) return false;
        if(e.type=='mouseout'){
            if(e.srcElement==thisel){
                var toel=e.toElement;
                while(toel && toel!=thisel && toel.nodeName.toLowerCase()!='body' && toel.nodeName.toLowerCase()!='html' && toel.parentNode) toel=toel.parentNode;
                if(toel!=thisel) return true;
            } else {
                var srcel=e.srcElement;
                var toel=e.toElement;
                while(toel && toel!=thisel && toel.nodeName.toLowerCase()!='body' && toel.nodeName.toLowerCase()!='html' && toel.parentNode) toel=toel.parentNode;
                while(srcel && srcel!=thisel && srcel.nodeName.toLowerCase()!='body' && srcel.nodeName.toLowerCase()!='html' && srcel.parentNode) srcel=srcel.parentNode;
                if(srcel==thisel && toel!=srcel) return true;
            }
        } else {
        if(e.srcElement==thisel) return true;
            else {
                var srcel=e.srcElement;
                var fromel=e.fromElement;
                while(fromel && fromel!=thisel && fromel.nodeName.toLowerCase()!='body' && fromel.nodeName.toLowerCase()!='html' && fromel.parentNode) fromel=fromel.parentNode;
                while(srcel && srcel!=thisel && srcel.nodeName.toLowerCase()!='body' && srcel.nodeName.toLowerCase()!='html' && srcel.parentNode) srcel=srcel.parentNode; 
                if(srcel==thisel && fromel!=thisel) return true;
            }
        }
        return false;
    }

}else if (b.nsDom) {   //ns6,moz1.x,ff,saf
  
   //-------------------------------------------------------------------------------
    //          Event Manipulation
    //-------------------------------------------------------------------------------
    var IsEventCapturing=function(e){
        return e.eventPhase==1;
    }
    var IsEventTargeting=function(item,e,stopBubbling){
        var ret=(e.eventPhase==2);
        if(stopBubbling && ret) StopEventBubbling(e);
        return ret;
    }
    var IsEventBubbling=function(item,e){
        return (e.eventPhase==3);
    }
    var StopEventBubbling=function(e){
        e.stopPropagation();
    }
	if(!b.isSafari){
		
		//-------------------------------------------------------------------------------
	    //          I s M o u s e O v e r O u t (object,event)
	    //-------------------------------------------------------------------------------
		//Tells if the mouseover and mouseout events was real or bubbling from the child
	    //Use it onmouseout and onmouseover to kill unwanted events
	    //example:
	    //onmouseover="if(IsMouseOverOut(this,arguments[0])) alert('YO!')"
	    var IsMouseOverOut=function(thisel,e){ 
            var tarel, reltarel;
			tarel=e.target;
            reltarel=e.relatedTarget;
            while(tarel && tarel!=thisel && tarel.nodeName.toLowerCase()!='body' && tarel.nodeName.toLowerCase()!='html' && tarel.parentNode) tarel=tarel.parentNode;
            while(reltarel && reltarel!=thisel && reltarel.nodeName.toLowerCase()!='body' && reltarel.nodeName.toLowerCase()!='html' && reltarel.parentNode) reltarel=reltarel.parentNode;
            return (tarel== thisel && reltarel!=thisel);
        }
	} else {
		IsMouseOverOut=function(o,e){
		    if (!e) var e=window.event;
		    if(!(e.type=="mouseover" || e.type=="mouseout")) return true;
            e.cancelBubble=true;
            if (e.stopPropagation) e.stopPropagation();
            
	        // Ignore all mouseover/mouseout events that have event.relatedTarget set to the same element as the element on which the event is registered.
		    if(o==e.relatedTarget) return false;
    		
		    try{ var a=event.relatedTarget.nodeName;} catch(err){ return false; }
    		
		    if(e.type=="mouseover" && e.toElement==o) {
		        var ef=e.fromElement;
		        if (ef.nodeType==3) ef=ef.parentNode;
		        while (ef != o && ef.nodeName != 'BODY'  && ef.nodeName != 'HTML') ef=ef.parentNode;
			    return (ef!=o);
		    }
		    if(e.type=="mouseout"){
		        var et=e.toElement;
		        if (et.nodeType==3) et=et.parentNode;
		        while (et != o && et.nodeName != 'BODY' && et.nodeName != 'HTML') et=et.parentNode;
			    return et!=o;
		    }
		    return true;
        }
	}
}

/*-------------------------------------------------------------------------------------------------

    P O P U P     O B J E C T S 

-------------------------------------------------------------------------------------------------*/
function setPopupMouseOver(o,e,eventName){
    o.setAttribute("popupmouseover","true");
}
function setPopupMouseOut(o,e,eventName){
   	o.setAttribute("popupmouseover","false");
}
function isPopupMouseOver(o){
    try{
        if(o.getAttribute("popupmouseover")=="true") return true;
        o=getPopupChild(o);
        if(o) return isPopupMouseOver(o);
        return false;
    } catch(e){
        return false;
    }
}
function getPopupParent(o){
    try{return get$(o.getAttribute("parentId"));}
    catch(e){return null;}
}
function getPopupChild(o){
    try{return get$(o.getAttribute("childId"));}
    catch(e){return null;}
}   
function bindPopupParentChild(p,c){
    p.setAttribute("childId",c.id);
    c.setAttribute("parentId",p.id);
}
function setPopupParentMouseOut(p,e,timeout){
    if(!timeout) timeout=0;
   if(!IsMouseOverOut(p,e)) return;
    setTimeout("var p=get$('" + p.id +"'); setPopupParentMouseOutHelper(p,"+ timeout +"); ",195);
}
function setPopupParentMouseOutHelper(p,timeout){
    if(!timeout) timeout=0;
    setPopupMouseOut(p);
    var c=getPopupChild(p);
    if(!c) return;
    if(isPopupMouseOver(c)) {
        c.closerTimeout = setTimeout("var p=get$('" + p.id +"'); var c=getPopupChild(p); if(!isPopupMouseOver(c)) {c.style.visibility='hidden'; c.style.display='none';DropDownManager.Remove(c);}",timeout);
    } else {
    c.closerTimeout = setTimeout("\
            var c=get$('" + c.id +"');\
            c.style.visibility='hidden';\
			c.style.display='none';\
            DropDownManager.Remove(c);",timeout);
    }
}
function setPopupChildMouseOut(c,e,timeout,bubbling){
    if(!timeout) timeout=100;
    if(!bubbling && !IsMouseOverOut(c,e)) return;
    setPopupMouseOut(c);
    c.closerTimeout = setTimeout("\
			var c=get$('" + c.id +"');\
            var timeout="+ timeout +";\
			var p=getPopupParent(c);\
            if(!isPopupMouseOver(c)) {\
                c.style.visibility='hidden';\
				c.style.display='none';\
				if(getPopupParent(p)) {setPopupChildMouseOut(p,null,timeout/2,true);}\
                DropDownManager.Remove(c);\
             }\
             ",timeout);
}
function setPopupChildMouseOver(c,e){
    if(!IsMouseOverOut(c,e)) return;
    if(c.closerTimeout) clearTimeout(c.closerTimeout);
    setPopupMouseOver(c);
    c.style.visibility='visible';
    DropDownManager.Add(c);
	c.onmousemove=function(){DropDownManager.Add(this);}
}