
	// -----------------------------------------------------------
	// InitNavLinks()
	// Sets link text, URL and icon for NavLinks Show based on framed state
	// -----------------------------------------------------------


	function buttare_eInitNavLinks()
	{
		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;

			// WATCH OUT FOR INSTANCES OF MSDN-ONLINE !!!	
			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";
		}
	}

	// -----------------------------------------------------------
	// NavLinks_hover()
	// DHTML script for NavLinks mouseover and mouseout.
	// -----------------------------------------------------------

	
		/////////////////////////////////////////////////////////////
		//
		//	Function: process_button() - Button Event handler
		//	Parameters: none
		//	Returns: void
		//
		//	This function processes mouse and keyboard events on all
		//	button elements (className contains "Btn" within a given
		//	container.  Button specific processing is sent to the buttonClick()
		//  	function. Information about the button can be stored in expandos,
		//			STATE ( "On" , "Off" )
		//			IMG ( contains the base name and ID of the icon )
		//
		/////////////////////////////////////////////////////////////
                function process_button(Evt)
                {
                	      // var ns6=document.getElementById&&!document.all 
                	      
                	      // con IE, Opera, Safari restituisce un oggetto
                	      // con FireFox, Chrome restituisce undefined
                        var ie=document.all 

                	      // con Chrome, Opera, Safari, FireFox, Chrome restituisce un evento MouseEvent
                	      if (!Evt) Evt = window.event; 
                     	if (ie)
                     		var oEl = Evt.srcElement;
                     	else
                           var oEl = Evt.target;
                	      // con Chrome, FireFox, Opera, Safari restituisce un HTMLTableCellElement
                	      // con IE restituisce un Object
 								// var oEl = Evt.target; 
                	      // if (!oEl)
	 							//	var oEl = Evt.srcElement; 
               	         
 								Evt.cancelBubble = true;
 								//alert(oEl.className)
 								/*
                        var oEl = event.srcElement;
                        event.cancelBubble = true;
                        */
                        //alert(oEl.className)
                        while( -1 == oEl.className.indexOf( "Btn" ) )
                        {
                        	if (ie)
                              oEl = oEl.parentElement;
                        	else
                        		oEl = oEl.parentNode;
                           if ( !oEl ) return;
                        }
                        var baseClass = oEl.className.substring( 0 , oEl.className.indexOf( "Btn" ) + 3 );
                        var btnImage = null;
                        if (ie)
	                        {if( oEl.IMG ) btnImage = oEl.all.tags( "IMG" )[0];}
								else
                           {if( oEl.IMG ) btnImage = oEl.getElementsByTagName( "IMG" )[0];}

                        // Originale 30/03/2010 if( oEl.IMG ) btnImage = oEl.all.tags( "IMG" )[0];
        
                        //switch( event.type )
                        switch( Evt.type )
                        {
                                case "mouseout" :
                                       // if( oEl.contains( event.toElement ) ) return;
                                       //if( oEl.contains( Evt.toElement ) ) return;
                                       /*
                                       if (!Evt.toElement)
                                       	{ if( oEl.contains( Evt.relatedTarget ) ) return; }
                                     	else
                                    		{ if( oEl.contains( Evt.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 (!Evt.toElement)
                                       	{ if( oEl.contains( Evt.relatedTarget ) ) return; }
                                     	else
                                    		{ if( oEl.contains( Evt.toElement ) ) return; } */
                                       // if( oEl.contains( Evt.fromElement ) ) return;
                                      //  alert(btnImage)
                                     //   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" :
                                     Evt.returnValue = doButtonClick( oEl, Evt );
                                     // event.returnValue = doButtonClick( oEl );
                                     break;
                                case "dblclick" :
                                        //event.returnValue = doButtonClick( oEl, Evt );
                                        Evt.returnValue = doButtonClick( oEl , Evt);
                                        break;
        
                                case "keyup" :
                                        //if( 13 == event.keyCode )
                                        if( 13 == Evt.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";
                                                }
                                                Evt.returnValue = doButtonClick( oEl , Evt);
                                               // event.returnValue = doButtonClick( oEl );
                                        }
                                        break;
                                        
                                case "selectstart" :
                                        if( oEl )
                                        {
                                                //event.returnValue = false;
                                                Evt.returnValue = false;
                                                return false;
                                        }
                                        break;
        
                                default :
                                        break;
        
                        }
                }
        
        ////////////////////////////////////////////////////////////////////
        //
        //      Function: doButtonClick()
        //      Parameters: oEl - Button Element which fired the event
        //      Returns: event return value
        //
        //      This function navigates to the first link contained in a button,
        //      or performs a custom button action if one is defined on an individual page.
        //
        ////////////////////////////////////////////////////////////////////
        
                function doButtonClick( oEl, Evt )
                {
                	// alert(window.ScriptEngine)
                	// alert(navigator.__ice_version)
	/*              	
                	if( document.getElementsByTagName ) { var Lt = document.getElementsByTagName('link'), St = document.getElementsByTagName('style');
  } else if( document.styleSheets && document.all ) { var Lt = document.all.tags('LINK'), St = document.all.tags('STYLE');
  */
                //	alert( oEl.all.tags( "A" ).length)
                			// Opera restituisce ObjectTAGSArray
                			// IE un object
                			// Safari, FireFOX, Chrome niente
                			
                	if(document.all)
                     var oLink = oEl.all.tags( "A" );
						else
                     var oLink = oEl.getElementsByTagName("A")
                  //   alert(oLink.length)
// Originale                        var oLink = oEl.all.tags( "A" );
                        if( oLink.length  )
                        {
                        	 if( !oEl.ACTION )
                        	 {
	                        	 var tgt=parent.frames[oLink[0].target]
	                        	 if (tgt)
									   	 parent.frames[oLink[0].target].window.location.href=oLink[0].href
	                        	 else
	                                {
	                                        winComments = window.open(  oLink[0].href ,oLink[0].target , "width=800,height=600,location=no,status=yes,resizable=yes,scrollbars=yes,menubar=yes,toolbar=no" );
	                                        winComments.focus();
	                                        Evt.returnValue = false;
	                                        // event.returnValue = false;
	                                        return false;
	                                }
									 }                        		
/*
                                if( "_blank" == oLink[0].target )
                                {
                                        winComments = window.open(  oLink[0].href ,"winComments" , "width=640,height=480,location=no,status=yes,resizable=yes,scrollbars=yes,menubar=yes,toolbar=no" );
                                        winComments.focus();
                                        Evt.returnValue = false;
                                        // event.returnValue = false;
                                        return false;
                                }
                                else if( !oEl.ACTION )
                                {
 												if (BrowserDetect.browser=="Firefox")
											   	parent.frames[oLink[0].target].window.location.href=oLink[0].href
												else
													oLink[0].click();
 												return true;
  										  }
*/
                        }
                        
                        if( "function" == typeof( fnCustomAction ) )
                        {       
                                return fnCustomAction( oEl );
                        }
                }
	
	
		function xxprocess_button()
		{
			var oEl = event.srcElement;
			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()
	//	Parameters: oEl - Button Element which fired the event
	//	Returns: event return value
	//
	//	This function navigates to the first link contained in a button,
	//	or performs a custom button action if one is defined on an individual page.
	//
	////////////////////////////////////////////////////////////////////
	
		function xxdoButtonClick( 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=480,location=no,status=yes,resizable=yes,scrollbars=yes,menubar=yes,toolbar=no" );
					winComments.focus();
					event.returnValue = false;
					return false;
				}
				else if( !oEl.ACTION )
				{
					if (ie)
					{
						oLink[0].click();
						return true;
					}
					else
					{
                    var clickEvent = document.createEvent('MouseEvents'); 
                    clickEvent.initEvent('click', true, true, document.defaultView, 1, 0, 0, 0, 0, false, false, true, false, 0, null); 
                    var done = oLink[0].dispatchEvent(clickEvent); 
						  return true;
					}
					
				}
			}
			
			if( "function" == typeof( fnCustomAction ) )
			{	
				return fnCustomAction( oEl );
			}
		}

    // -----------------------------------------------------------
    // window_load()
    // Container function for load.
    // -----------------------------------------------------------

    function window_load()
    {
        if (oBD.getsNavBar)
        {
            if ("function" == typeof(CommonLoad)) CommonLoad();
        }
    }

	function CommonLoad()
	{
		if ("function" == typeof(InitNavLinks)) InitNavLinks();
//		if ("function" == typeof(CheckToTop)) CheckToTop();
//		if ("function" == typeof(RemoveLastPipe)) RemoveLastPipe();
		if ("function" == typeof(process_button))
		{
			with( document )
			{
				ondblclick = onmousedown = onmouseup = onmouseover = onmouseout = onkeyup = onclick = onselectstart = process_button;
			}
		}
		if( "function" == typeof( doOutline ) )
		{
			document.onclick = doOutline;
		}
	}


	// -----------------------------------------------------------
	// Client-side BrowserData constructor
	// Populated using data from server-side oBD object to avoid redundancy
	// -----------------------------------------------------------

	function BrowserData()
	{
		this.userAgent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
		this.browser = "MSIE";
		this.majorVer = 5;
		this.minorVer = "01";
		this.betaVer = "0";
		this.platform = "NT";
		this.platVer = "5.0";
		this.getsNavBar = true;
		this.doesActiveX = true;
		this.fullVer = 5.01;

	}
