code: function MsWord_InitHeaderFooter() {
  	
  		if ($this->MsWord_HeaderFooter!==false) return;
  
  		$types_ok = array('default' => true, 'first' => false, 'even' => false);
  		
  		// Is there a different header/footer for odd an even pages ?
  		$idx = $this->FileGetIdx('word/settings.xml');
  		if ($idx!==false) {		
  			$Txt = $this->TbsStoreGet($idx, 'GetHeaderFooterFile');
  			$types_ok['even'] = (strpos($Txt, '<w:evenAndOddHeaders/>')!==false);
  			unset($Txt);
  		}
  
  		// Is there a different header/footer for the first page ?
  		$idx = $this->FileGetIdx('word/document.xml');
  		if ($idx===false) return false;
  		$Txt = $this->TbsStoreGet($idx, 'GetHeaderFooterFile');
  		$types_ok['first'] = (strpos($Txt, '<w:titlePg/>')!==false);
  
  		$places = array('header', 'footer');
  		$files = array();
  		$rels = $this->OpenXML_Rels_GetObj('word/document.xml', '');
  		
  		foreach ($places as $place) {
  			$p = 0;
  			$entity = 'w:' . $place . 'Reference';
  			while ($loc = clsTbsXmlLoc::FindStartTag($Txt, $entity, $p)) {
  				$p = $loc->PosEnd;
  				$type = $loc->GetAttLazy('w:type');
  				if (isset($types_ok[$type]) && $types_ok[$type]) {
  					$rid = $loc->GetAttLazy('r:id');
  					if (isset($rels->TargetLst[$rid])) {
  						$target = $rels->TargetLst[$rid];
  						$files[] = array('file' => ('word/'.$target), 'type' => $type, 'place' => $place);
  					}
  				}
  			}
  		}
  
  		$this->MsWord_HeaderFooter = $files;
  	
  	}
docs: Initialize information about header and footer files