
/* TOC.JS */
var framesTop = parent.parent;
var L_LoadingMsg_HTMLText = "A carregar a informação...<br>Clique para cancelar...";

var LoadDiv = '<DIV id="zTeste" ONCLICK="loadFrame(true);" CLASS="clsLoadMsg">';
L_LoadingMsg_HTMLText = LoadDiv + L_LoadingMsg_HTMLText + "</LI>";

function caps()
{
    var UA = navigator.userAgent;
    if(UA.indexOf("MSIE") != -1)
    {
        this.ie = true;
        var v = UA.charAt(UA.indexOf("MSIE") + 5);
        if(v == 2 ) this.ie2 = true;
        else if(v == 3 ) this.ie3 = true;
        else if(v == 4 ) this.ie4 = true;
        else if(v == 5 ) this.ie5 = true;
        if(this.ie4 || this.ie5) this.UL = true;
    }
    else if(UA.indexOf("Mozilla") != -1 && UA.indexOf("compatible") == -1)
    {
        this.nav = true;
        var v = UA.charAt(UA.indexOf("Mozilla") + 8);
        if(v == 2 ) this.nav2 = true;
        else if(v == 3 ) this.nav3 = true;
        else if(v == 4 ) this.nav4 = true;
    }
    if(UA.indexOf("Windows 95") != -1 || UA.indexOf("Win95") != -1 || UA.indexOf("Win98") != -1 || UA.indexOf("Windows 98") != -1 || UA.indexOf("Windows NT") != -1) this.win32 = true;
    else if(UA.indexOf("Windows 3.1") != -1 || UA.indexOf("Win16") != -1) this.win16 = true;
    else if(UA.indexOf("Mac") != -1) this.anymac = true;
    else if(UA.indexOf("SunOS") != -1 || UA.indexOf("HP-UX") != -1 || UA.indexOf("X11") != -1) this.unix = true;
    else if(UA.indexOf("Windows CE") != -1) this.wince = true;
}


var bc = new caps();
var eSynchedNode = null;
var eCurrentUL = null;
var eCurrentLI = null;
var bLoading = false;
var bLoadingPage = false;

function loadFrame( bStopLoad )
{
    if( "object" == typeof( eCurrentUL ) && eCurrentUL && !bStopLoad ) 
    {
      eCurrentUL.innerHTML = hiddenframe.chunk.innerHTML;
      hiddenframe.chunk.innerHTML = "";
      eCurrentUL = null;
    }
    else if( "object" == typeof( eCurrentUL ) && eCurrentUL )
    {
		eCurrentUL.parentElement.children[1].className = "";
	  
		if ( "object" == typeof(eSrc) )
		{
			if ( ! (eSrc.src.indexOf("PF+")>0 || eSrc.src.indexOf("MaisRecente")>0)	)
			{
			  eSrc=eCurrentUL.parentElement.children[1];
			  theDBID = eSrc.href.substring( eSrc.href.indexOf( "=" )+1,eSrc.href.indexOf( "=" )+3 );
			  theSubPath = ConvertDBIDtoDBName( theDBID );
			}
		}
		if ( "" != theSubPath )
			eCurrentUL.parentElement.children[0].src = "../../Livros/"+theSubPath+"/fechado.gif";
		eCurrentUL.parentElement.className = "kid";
		eCurrentUL.className = "clsHidden";
		eCurrentUL.innerHTML="";
		eCurrentUL = null;
		bLoading = false;
    }
    else
    {
		bLoading = false;
    }
    return;
}

function ResetLoading()
{

	bLoading=false;
}

function GetNextUL(eSrc)
{
    var eRef = eSrc;
    for(var i = 0; i < eRef.children.length; i++) if("UL" == eRef.children[i].tagName) return eRef.children[i];
    return false;
}

function MarkSync(eSrc)
{
    if("object" == typeof(aNodeTree)) aNodeTree = null;
    if("LI" == eSrc.tagName.toUpperCase() && eSrc.children[1] && eSynchedNode != eSrc)
    {
        UnmarkSync();
        eSrc.children[1].style.fontWeight = "bold";
        eSynchedNode = eSrc;
    }
}

function UnmarkSync()
{
    if("object" == typeof(eSynchedNode) && eSynchedNode)
    {
		if ( "object" == typeof(eSynchedNode.children[1]) )
		{
			eSynchedNode.children[1].style.fontWeight = "normal";
        	eSynchedNode = null;
		}
    }
}

function MarkActive(eLI)
{
    if( "object" == typeof( eLI ) && eLI && "LI" == eLI.tagName.toUpperCase() && eLI.children[1] && eLI != eCurrentLI )
    {
        MarkInActive();
        window.eCurrentLI = eLI;
        window.eCurrentLI.children[1].className = "clsCurrentLI";
    }
}

function MarkInActive()
{
    if( "object" == typeof( eCurrentLI ) && eCurrentLI )
    {
    	if ( eCurrentLI.children.length>0 )
		{
			window.eCurrentLI.children[1].className = "";
			window.eCurrentLI = null;
		}
    }
}

function Navigate_URL( eSrc )
{
    var eLink = eSrc.parentElement.children[1];
    urlIdx = eLink.href.indexOf( "URL=" );
    
    if("object" == typeof(framesTop.fraTopic) && eLink && "A" == eLink.tagName && urlIdx != -1 )
    {
        if(eLink.target=="fraTopic"||eLink.target=="_top")
        {
            framesTop.fraTopic.location.href = eSrc.parentElement.children[1].href.substring( urlIdx + 4 );
		    bLoadingPage=true;
		    setTimeout("ResetLoadingPage();",2000);
        }
        else
        {
        	window.open(eSrc.parentElement.children[1].href,eLink.target);
	    	bLoadingPage=true;
	    	setTimeout("ResetLoadingPage();",2000);
        }
        MarkSync(eSrc.parentElement);
    }
    else if("object" == typeof(framesTop.fraTopic) && eLink && "A" == eLink.tagName  && eLink.href.indexOf( "BUILDSUBTREE=" ) == -1 && eLink.href.indexOf( "javascript:" ) == -1 )
    {
        if(eLink.target=="fraTopic")
        {
            framesTop.fraTopic.location.href = eSrc.parentElement.children[1].href;
	    	bLoadingPage=true;
	    	setTimeout("ResetLoadingPage();",2000);
        }
        	else if( eLink.target=="_top" )
        	{
        		top.location = eLink.href;
			    bLoadingPage=true;
			    setTimeout("ResetLoadingPage();",2000);
	            return;
	        }
        else
        {
			window.open(eSrc.parentElement.children[1].href,eLink.target);
			bLoadingPage=true;
			setTimeout("ResetLoadingPage();",2000);
        }
        MarkSync(eSrc.parentElement);
    }
    else if( eSynchedNode != eSrc.parentElement && ( urlIdx != -1 || ( eLink.href.indexOf( "javascript:" ) == -1 && eLink.href.indexOf( "BUILDSUBTREE=" ) == -1 ) ) )
    {
        MarkSync( eSrc.parentElement );
    }
}

function ResetLoadingPage()
{
	bLoadingPage=false;
}


function Image_Click( eSrc , bLeaveOpen )
{
    var eLink = eSrc.parentElement.children[1];
    if("noHand" != eSrc.className)
    {
        eLI = eSrc.parentElement;
        MarkActive(eLI);
        var eUL = GetNextUL(eLI);
        if(eUL && "kidShown" == eLI.className)
        {
            // FECHA O RAMO
            if( !bLeaveOpen )
            {
                eLI.className = "kid";
                eUL.className = "clsHidden";

				if ( ! (eSrc.src.indexOf("PF+")>0 || eSrc.src.indexOf("MaisRecente")>0 ) )
				{
					theDBID = eLI.children[1].href.substring( eLI.children[1].href.indexOf( "=" )+1,eLI.children[1].href.indexOf( "=" )+3 );
					theSubPath = ConvertDBIDtoDBName( theDBID );
					if ( "" != theSubPath )
						eSrc.src = "../../Livros/"+theSubPath+"/fechado.gif";
				}
            }
        }

        else if("kid" == eLI.className)
        {
            // ADICIONA OS FILHOS AO RAMO
            if( !bLoading )
            {
				bLoading = true;
				eLI.className = "kidShown";
				eUL.className = "clsShown";
				window.eCurrentUL = eUL;

				if ( ! (eSrc.src.indexOf("PF+")>0 || eSrc.src.indexOf("MaisRecente")>0) )
				{
					theDBID = eLink.href.substring( eLink.href.indexOf( "=" )+1,eLink.href.indexOf( "=" )+3 );
					theSubPath = ConvertDBIDtoDBName( theDBID );
					if ( "" != theSubPath )
						eSrc.src = "../../Livros/"+theSubPath+"/aberto.gif";
				}
				eUL.innerHTML = L_LoadingMsg_HTMLText;
				var strLoc = "/LexMozambique/LexMozambique.asp" + eLink.href.substring( eLink.href.indexOf( "?" ) );
				document.frames["hiddenframe"].location.replace(strLoc);
            }
        }
    }
}

function Toc_click()
{
    var eSrc = window.event.srcElement;
    event.returnValue = false;


    if (bLoading || bLoadingPage )
    {
        window.event.cancelBubble = true;
		window.event.returnValue = false;
        return true;
    }    	
    if("A" == eSrc.tagName.toUpperCase() && "LI" == eSrc.parentElement.tagName)
    {
        var eImg = eSrc.parentElement.children[0];
        if(eImg) eImg.click();
    }
    else if("SPAN" == eSrc.tagName && "LI" == eSrc.parentElement.tagName)
    {
        var eImg = eSrc.parentElement.children[0];
        if(eImg) eImg.click();
    }
    else if("IMG" == eSrc.tagName)
    {
        Image_Click( eSrc , false );
		Navigate_URL( eSrc );        
    }
    return event.returnValue;
}

function SyncTree(oObj)
{
	var iY = oObj.offsetTop - window.document.body.clientHeight/2;
	var iX = oObj.offsetLeft - 15;
	window.scrollTo( iX , iY );
}

function ConvertDBIDtoDBName( theDBID )
{
	switch ( Number(theDBID) )
	{
		case 1: return "LEXCOD";
		case 2: return "LEXDATA";
		case 3: return "LEXJURIS";
		case 4: return "LEXEUROPA";
		case 5: return "LEXSMMP";
		case 6: return "LEXLATIM";
		case 7: return "LEXCLASSIC";
		case 8: return "LEXDICIONARIO";
		case 9: return "LEXQUID";
		case 10: return "LEXDATA2";
		case 11: return "LEXMINUTAS";
		case 12: return "DLEGAL";
		case 13: return "CA_eBook1";
		case 14: return "CA_eBook2";
		case 15: return "CA_eBook3";
		case 18: return "CA_eBook4";
		case 90: return "CA_eBook1";
		case 16: return "DLEGAL";
		case 19: return "PFISCAL";
		case 20: return "LEXBR1";
		case 21: return "LEXBR3";
		case 22: return "LEXUMIC";
		default: return "";
		//default: return "LEXCOD";
	}
}

function GetToolTip(cID)
{
	var oLI;
	var oHRef;
	oHRef=document.getElementById('a' + cID);
	oLI=document.getElementById('LI' + cID);
	oLI.title=oHRef.innerText;
}

function window_load()
{
    if( self == top ) location.replace( "default.asp" );
    var objStyle = null;
    if( "MSIE" == oBD.browser && 3 < oBD.majorVer && "Mac" != oBD.platform && "object" == typeof ( ulRoot ) && "object" == typeof( objStyle = document.styleSheets[0] ) && "object" == typeof( objStyle.addRule ) )
    {
        window.eSynchedNode = document.all["eSynchedNode"];
        objStyle.addRule( "UL.clsHidden" , "display:none" , 0 );
        objStyle.addRule( "UL.hdn" , "display:none" , 0 );
        ulRoot.onclick=Toc_click;

	    with( document )
	    {
			ondblclick = onmousedown = onmouseup = onmouseover = onmouseout = onkeyup = onclick = onselectstart = process_button;
	    }        
        if( window.eSynchedNode )
        {
            MarkActive(window.eSynchedNode);
            window.eSynchedNode.all.tags( "B" )[0].outerHTML = eSynchedNode.all.tags("B")[0].innerHTML;
            window.scrollTo(0,window.eSynchedNode.offsetTop-(document.body.clientHeight/2));
        }
        else
        {
            MarkActive(document.all.tags( "LI" )[0]);
        }
    }
    else
    {
        location += "#sel";
    }
}


window.onload = window_load;





/*******************************************************************************************************/



/*
    function InitNavLinks()
    {
        if ("object" != typeof(lnkShowImg) || "object" != typeof(imgShow) || "object" != typeof(lnkShowImg.all.tags( "FONT" )))
        {
            return false;
        }

        var bIsFramed = ((top != self) && ("TOC" == top.frames[0].name));
        if (bIsFramed)
        {
            lnkShowImg.all.tags( "FONT" )[0].innerText = "hide toc";
            lnkShowImg.href = self.location.href;
            imgShow.src = "/msdn-online/shared/graphics/icons/hidetoc.gif";
        }
        else
        {
            lnkShowImg.all.tags( "FONT" )[0].innerText = "show toc";
            var sPath = self.location.pathname;

            sPath = sPath.replace("/msdn-online","");
            var sFrameHref = sPath.match(/[/][^/]+[/]/) + "c-frame.htm?" + sPath;
            lnkShowImg.href = sFrameHref;
            imgShow.src = "/msdn-online/shared/graphics/icons/showtoc.gif";
        }
    }

*/

        function process_button()
        {
            var oEl = event.srcElement;
            
            if ( (null == oEl) || ( "undefined" == oEl.className) )
            	return;
            	
            event.cancelBubble = true;
            while( -1 == oEl.className.indexOf( "Btn" ) )
            {
                oEl = oEl.parentElement;
                if( !oEl ) return;
            }
            var baseClass = oEl.className.substring( 0 , oEl.className.indexOf( "Btn" ) + 3 );
            var btnImage = null;
            if( oEl.IMG ) btnImage = oEl.all.tags( "IMG" )[0];
    
            switch( event.type )
            {
                case "mouseout" :
                    if( oEl.contains( event.toElement ) ) return;
                    if( btnImage )
                    {
                        btnImage.src =  btnImage.src.substring( 0 , btnImage.src.length - 5 ) + "1.gif";
                    }
                    if( oEl.STATE )
                    {
    
                        oEl.className = baseClass + oEl.STATE;
                    }
                    else
                    {
                        oEl.className = baseClass + "Off";
                    }
                    break;
                case "mouseover" :
                    if( oEl.contains( event.fromElement ) ) return;
                    
                    if( btnImage )
                    {
                        btnImage.src =  btnImage.src.substring( 0 , btnImage.src.length - 5 ) + "2.gif";
                    }
                    if( oEl.STATE )
                    {
                        var tmpState = oEl.STATE == "Off" ? "Up" : "Down";
                        oEl.className = baseClass + tmpState;
                    }
                    else
                    {
                        oEl.className = baseClass + "Up";
                    }
                    break;
    
                case "mousedown" :
                    oEl.className = baseClass + "Down";
                    break;
    
                case "mouseup" :
                    if( oEl.STATE )
                    {
                        oEl.STATE = oEl.STATE == "Off" ? "On" : "Off";
                        var tmpState = oEl.STATE == "On" ? "Down" : "Up";
                        oEl.className = baseClass + tmpState;
                    }
                    else
                    {
                        oEl.className = baseClass + "Up";
                    }
                    break;
    
                case "click" :
                    event.returnValue = doButtonClick( oEl );
                    break;
    
                case "dblclick" :
                    event.returnValue = doButtonClick( oEl );
                    break;
    
                case "keyup" :
                    if( 13 == event.keyCode )
                    {
                        if( oEl.STATE )
                        {
                            oEl.STATE = oEl.STATE == "Off" ? "On" : "Off";
                            var tmpState = oEl.STATE == "On" ? "Down" : "Up";
                            oEl.className = baseClass + tmpState;
                        }
                        else
                        {
                            oEl.className = baseClass + "Up";
                        }
                        event.returnValue = doButtonClick( oEl );
                    }
                    break;
                    
                case "selectstart" :
                    if( oEl )
                    {
                        event.returnValue = false;
                        return false;
                    }
                    break;
    
                default :
                    break;
    
            }
        }
    
        function doButtonClick( oEl )
        {
            var oLink = oEl.all.tags( "A" );
            if( oLink.length  )
            {
                if( "_blank" == oLink[0].target )
                {
                    winComments = window.open(  oLink[0].href ,"winComments" , "width=640,height=420,location=no,status=yes,resizable=yes,scrollbars=yes,menubar=yes,toolbar=no" );
                    event.returnValue = false;
                    return false;
                }
                else if( !oEl.ACTION )
                {
                    oLink[0].click();
                    return true;
                }
            }
            
            if( "function" == typeof( fnCustomAction ) )
            {   
                return fnCustomAction( oEl );
            }
        }

/*
    function PreloadNavLinksImages()
    {
        var sRootPath = new String("/msdn-online/shared/graphics/icons/");
        var aImages = new Array("show","hide","sync","index","search","prev","next","up");
        for (var i=0;i<aImages.length;i++)
        {
            var eImg = new Image();
            eImg.src = sRootPath + "nl-" + aImages[i] + "-1.gif";
        }
    }
    if (oBD.getsNavBar) PreloadNavLinksImages();

*/
