// ******************************************************* add_menu
function add_menu( level ){
    if ( document.getElementById )
    {
      var menu = document.getElementById ( 'menu' );
		
      if ( menu )
        {
		var menu_contents;
		if ( level == 0 ){
			menu_contents = read_contents ("master/menu.txt" );
		}
		else{
			menu_contents = read_contents ("../master/menu.txt" );
		}
			
        if ( menu_contents )
          {
		  
          if ( level == 0 )
            {
            menu_contents = menu_contents.replace ( 
                                                /{{Level}}/g,
                                                '' );
            }
          else
            {
            menu_contents = menu_contents.replace ( 
                                                /{{Level}}/g,
                                                '../' );
            }
          place_in_outerHTML ( menu, menu_contents );
          }
        }
    }  
}
// ******************************************************* add_footer
function add_footer ( level ){
    if ( document.getElementById )
    {
      var footer = document.getElementById ( 'footer' );

      if ( footer )
        {

		var footer_contents;
		if ( level == null || level == 0 ){
			footer_contents = read_contents ("master/footer.txt" );}
		else{
			footer_contents = read_contents ("../master/footer.txt" );}
        

        if ( footer_contents )
          {
			place_in_outerHTML ( footer, footer_contents );
          }
        }
    }  
}

// *************************************************************** IO

// http://codingforums.com/showthread.php?t=143412

// LA MOD String Version. 
// A tiny ajax library by DanDavis

// Revised 20101006
// http://www.quirksmode.org/js/xmlhttp.html

var XMLHttpFactories = [
        function ( )
          {
          return ( new XMLHttpRequest ( ) );
          },
        function ( )
          {
          return ( new ActiveXObject ( "Msxml2.XMLHTTP" ) );
          },
        function ( )
          {
          return ( new ActiveXObject ( "Msxml3.XMLHTTP" ) );
          },
        function ( )
          {
          return ( new ActiveXObject ( "Microsoft.XMLHTTP" ) );
          }
        ];

// ********************************************** createXMLHTTPObject

function createXMLHTTPObject()
{
    var xmlhttp = false;

    for ( var i = 0; ( i < XMLHttpFactories.length ); i++ )
      {
      try
        {
        xmlhttp = XMLHttpFactories [ i ] ( );
        }

      catch ( e )
        {
        continue;
        }

      break;
      }

    return ( xmlhttp );
}

// **************************************************** read_contents

function read_contents ( url )
{
    var request = createXMLHTTPObject ( );

    request.open ( 'GET', url, false );
    request.setRequestHeader ( 'Content-Type', 'text/html' );
    request.send ( '' );

    return ( request.responseText );
}

// *********************************************** place_in_outerHTML

function place_in_outerHTML ( element, 
                            contents )
{

    if ( element.outerHTML )
      {
      element.outerHTML = contents;
      }
    else
      {
      element.innerHTML = contents;    
      }
}
