<!--
// *************** GLOBALS ******************
var gsCurrentWin = null;	//holds handle to current pop up window
//*******************************************

// used to open the virtual tour window from the virtual tour home
function OpenDiagramWin(xsURL, query)
{

    var url = addURLParam(xsURL, 'hideMenu', '1', true);
    url = addURLParam(url, 'pageWidth', '300', true);
    if (null != query)
    	url = addURLParam(url, 'query', query, true);
    	
    openWindow(url, '400', '400', 'DiagramWin');
}


// open URL in a window of specific size and name
function openWindow(xsURL, xsWidth, xsHeight, xsName) {
	var vsName;
	
	if(xsName) { 
		vsName	= xsName;
	} else { 
		vsName = "NewWin";
	}
	
	var vsNewWindow = window.open(xsURL, vsName,'width='+xsWidth+',height='+xsHeight+',scrollbars=yes,resizable=yes,alwaysRaised,screenX=0,screenY=0,top=0,left=0');
	
	vsNewWindow.focus();
	
	if ( gsCurrentWin && !gsCurrentWin.closed ) {
		if ( gsCurrentWin.name != vsName ) { gsCurrentWin.close(); }
	}
	
	gsCurrentWin = vsNewWindow;
	
	if (gsCurrentWin.findDefinition)
		gsCurrentWin.findDefinition();
}


//funciton for toggling elements in an expand collapse list
var currOpen = 0;
function toggleList(num,referrer,dontScroll, dontCloseIfOpen)
{
	element = document.getElementById("expando" + num);
		
	if (element) 
	{
		if (dontCloseIfOpen == null || (dontCloseIfOpen == true && element.style.display != 'block'))
		{
			if ((element.style.display == 'none') || (element.style.display == '') || (referrer == document.location.pathname)) 
			{
					//alert('yes');
					document.getElementById("img" + num).src = 'images/arrow_down.gif';
					displayDiv(element);
			}
			else 
			{
					document.getElementById("img" + num).src = 'images/arrow.gif';
					hideDiv(element);
			}
		
			var headlineName = findHeadlineText(num);
			document.location = document.location.pathname + location.search + '#' + headlineName;
		}
	
		var pos = getElemPos(document.getElementById("img" + num));
		if (pos)
		{
			var x = pos[0];
			var y = pos[1];
			
			if (y > 20)
				y -= 15;
				
			if (null == dontScroll)
				scrollTo(x,y);
		}
	}
	
	//alert(document.location)
}

//function for toggling more/less for intro text
function toggleIntro() {
	element = document.getElementById("expand-intro");
	if ((element.style.display == 'none') || (element.style.display == '')) {
		document.getElementById("intro-more").innerHTML = linkTextLess;
		displayDiv(element);
	} else {
		document.getElementById("intro-more").innerHTML = linkTextMore;
		hideDiv(element);
	}
}  //end function 

//generic function for displaying a DIV
function displayDiv(ele) {
	ele.style.display = 'block';
}

//generic function for hiding a DIV
function hideDiv(ele) {
	ele.style.display = 'none';
}

//function for expanding or collapsing all expandos on a page
function toggleExpandAll(whichWay) {
	allDivs = document.getElementsByTagName("div");

	for (var i=0; i < allDivs.length; i++)
	{
		if (allDivs[i].id.indexOf('expando') != -1) {
			imgNum = allDivs[i].id.substring(7,allDivs[i].id.length);
			
			if (whichWay == 1) 
			{
				displayDiv(allDivs[i]);
				if (null != document.getElementById("img" + imgNum))
					document.getElementById("img" + imgNum).src = 'images/arrow_down.gif';
			}
			else
			{
				hideDiv(allDivs[i]);
				if (null != document.getElementById("img" + imgNum))
					document.getElementById("img" + imgNum).src = 'images/arrow.gif';
			}
			
		}
	}  //end for
		
}  //end function


function expandIt() {
	//alert(document.location.hash);
	/*mark = document.location.hash.substring(1);
	if ((mark == 'undefined') || (mark == ''))
		mark = topMark;
	//alert(mark);	
	if (topMark != '')
		toggleList(mark);
*/
}




var choco = document.cookie;
function getCookie(name) { // use: getCookie("name");
    var index = choco.indexOf(name + "=");
    if (index == -1) return null;
    index = choco.indexOf("=", index) + 1; // first character
    var endstr = choco.indexOf(";", index);
    if (endstr == -1) endstr = choco.length; // last character
    return unescape(choco.substring(index, endstr));
}



function setCookie(name, value, expire) {
      document.cookie = name + "=" + escape(value)
      + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()))
}


var IESP2 = false;
if ((window.navigator.userAgent.indexOf("MSIE")) && window.navigator.userAgent.indexOf("SV1") > window.navigator.userAgent.indexOf("MSIE")) {
	IESP2 = true;
}
var FF1 = (navigator.userAgent.indexOf("Firefox\/1")!=-1) ? true : false;
function resizeDetails() {
//set mins
dw = dh = 500;

	if (document.all)
		dw = document.body.clientWidth + 28;
	else
		dw = top.window.innerWidth;
		
	//alert(dw);
	if (FF1)
		dw+= 8;
		
	d = document.getElementById('content');
	if(d.offsetHeight){
		dh=d.offsetHeight;
		if ((IESP2) || (FF1)) { dh += 24;  }
	}
    else if(d.style.pixelHeight){
		dh=d.style.pixelHeight;
		//alert(dh);
    } 
	if (dh > 500)
		dh = 500;
	top.window.resizeTo(dw,dh+80);
}


function submitSearch() {
	if (document.forms[0].query == '')
		return;
		
	document.forms[0].submit();

}

function hiliteKids(kid,word) {
	if (null == kid)
		return;
		

	if (kid.hasChildNodes()) {
		for (var i=0;i<kid.childNodes.length;i++) {
			hiliteKids(kid.childNodes[i],word);
		}
	} else if (kid.nodeName == "#text" && kid.nodeValue.length > 2) {
		var newcontent = kid.nodeValue;
		var pattern = new RegExp(word,'gim');

		//var newlinePattern = new RegExp("\n","gi");
		var pos = newcontent.search(pattern);
		if (pos>=0) {
			newbit = document.createElement('span');
			newbit.innerHTML = newcontent.replace(pattern, '<span class="hilite">$&</span>');
			kid.parentNode.replaceChild(newbit,kid);
		}  //end if
	}  //end if
}

function hiliteWord() {

	if (location.search) {
		var words = unescape(location.search.substring(1));
		
		if (words.indexOf("query=") == -1)
		    return;
		    
	    words = words.substring(words.indexOf("query=")+6);
	   	var qStr = words.split("|");
		var content = getElem("htmlSection");

		for (var j=0; j < qStr.length; j++) 
		{
			hiliteKids(content,qStr[j]);
		}  //end for
	}  //end if
}

function displayHotspot()
{
	var words = unescape(location.search.substring(1));
		
	if (words.indexOf("hotspot=") == -1)
		return;
		    
    hotspot = words.substring(words.indexOf("hotspot=")+8);
    if (hotspot != null && hotspot.length > 0)
    {
		var words = unescape(location.search.substring(1));
    	if (words.indexOf("query=") == -1)
		    return;
		    
	    words = words.substring(words.indexOf("query=")+6, words.indexOf('&'));
    	OpenDiagramWin('s'+hotspot.substring(1)+'.aspx', words);
    }
}

/// expands a definition by grabbing it off the bookmark from the url
//runs onload of a page
//entitiesArray = new Array(["&amp;","&"],["&lt;","<"],["&gt;",">"],["???",escape('???')]);
entitiesArray = new Array(['??','~1'],['???','~2'],['??????','~3'],['???','~4']);
var linked = false;
function findDefinition(bookie) 
{
	if (samePageLinksInitiate == false)
		initializeSamePageLinks();
	
	if (!bookie) 
		bookie = document.location.hash.substring(1);

	if (bookie)
	{ 
		bookie = bookie.toLowerCase();
		bookie = TrimString(bookie);
		bookie = unescape(bookie)
		
		var anchors = document.getElementsByTagName("A")
		var list = ''
		if (null != anchors)
		{
			for (var i=0; i<anchors.length;++i)
			{
				var anchor = anchors[i];
				list += anchor.href + "\n"
				if (isHeadlineNode(anchor))
				{
					var headlineName = getHeadlineText(anchor);
					if (null == headlineName)
						continue;
					
					headlineName = TrimString(headlineName.toLowerCase());
					headlineName = headlineName.replace("&nbsp;","");
					
					list += headlineName + " | "
					if (bookie == headlineName)
					{
						var sectionId = getHeadlineSectionId(anchor);
						
						toggleList(sectionId, null, null, true);
						if (null != anchor.parentNode)
							toggleListRecursive(anchor.parentNode);
	
						hiliteWord();
						displayHotspot();
															
						return;
					}
				}
			}
		}
	}
				
	hiliteWord();
	displayHotspot();
}

function toggleListRecursive(node)
{
	if (null == node)
		return;
	else if (node.id && node.id.indexOf("expando") == 0)
	{
		toggleList(node.id.substring(7), null, null, true);
	}
	else if (null != node.parentNode)
		toggleListRecursive(node.parentNode)
}

function isHeadlineNode(node) 
{
	return 'a' == node.nodeName.toLowerCase() && node.href && node.href.indexOf("toggleList(") != -1 && node.firstChild && 'img' != node.firstChild.nodeName.toLowerCase();
}

function getHeadlineSectionId(node)
{
	return isHeadlineNode(node) && node.href.substring(node.href.indexOf('(')+1, node.href.indexOf(')'))
}

function getHeadlineText(node)
{
	if (isHeadlineNode(node))
	{
		var a = getInnerHTMLText(node.firstChild)
		//alert('a = ' + a)
		return a;
	}
	
	return node.innerHTML;
}

function getInnerHTMLText(node, textContents)
{
	if (null == textContents)
		textContents = '';
		
	if (null == node)
		return textContents;
		
	while (null != node)
	{
		if (node.firstChild)
			textContents += getInnerHTMLText(node.firstChild, textContents)
			
		if (node.nodeType == 3 && node.data)
			textContents += node.data;
			
		node = node.nextSibling;
	}
	
	return textContents
}

function findHeadlineText(headlineId)
{
	var anchors = document.getElementsByTagName("A")
	var list = ''
	if (null != anchors)
	{
		for (var i=0; i<anchors.length;++i)
		{
			var anchor = anchors[i];

			if (isHeadlineNode(anchor))
			{
				var headlineName = getHeadlineText(anchor);
				if (null == headlineName)
					continue;
				
				headlineName = TrimString(headlineName.toLowerCase());
				headlineName = headlineName.replace("&nbsp;","");
				
				var sectionId = getHeadlineSectionId(anchor);
				
				if (sectionId == headlineId)
				{
					return headlineName; 
				}
			}
		}
	}
	
	return null;
}

function goDef() {
    hiliteWord();

	var defName = gohere.innerHTML;
	var strip= /<\S[^>]*>/gi;
	defName = defName.replace(strip,'').slice(1,-1);
	for(i=0;i<targetsArray.length;i++) {
		if(targetsArray[i][1]==defName){
			var result = targetsArray[i][0];
			break;
		}
	}
	
	var sibling = gohere.parentNode;
	for(var i=1; i<80; i++){
		//alert(sibling.tagName);
		if(sibling.id == "content") {
			break;
		} else if(sibling.tagName=='TABLE'){
			for(var j=1; j<80; j++){
				if (null == sibling)
				    continue;
				     
				if(sibling.tagName=='A' && sibling.id != "seelink"){
					var bookie = sibling.name;
					break;
				} else if (sibling.previousSibling == null) {
					sibling = sibling.parentNode;
				}  else {
					sibling = sibling.previousSibling;
				}
			}
			if (bookie) {
				if (window.name == "ChartsWin"){
					top.opener.location.href = top.opener.location.pathname + location.search + '#' + bookie;
				} else if(window.name == "diagramFrame"){
					top.opener.location.href = top.opener.location.pathname + location.search + '#' + bookie;
				} else if(window.name == "SymbolsWin"){
					top.opener.parent.contentFrame.location.href = top.opener.parent.contentFrame.location.pathname + location.search + '#' + bookie;
				} else {
					//alert("remembering link: "+bookie);
					document.location = document.location.pathname + location.search + '#' + bookie;
				}
			}
			break;
		} else if(sibling.previousSibling == null) {
			sibling = sibling.parentNode;
		} else {
			sibling = sibling.previousSibling;
		}
	}
	/*
	//alert("test1: "+defName);
	for(var i=0; i<entitiesArray.length; i++){
		strip = new RegExp(entitiesArray[i][0],"gi");
		defName = defName.replace(strip,entitiesArray[i][1]);
	}
	*/
	defName = defName.replace('&amp;','&');
	defName = defName.replace('&lt;','<');
	defName = defName.replace('&gt;','>');
	//alert("test2: "+defName);
	
	if(result){
		if (result=="charts"){
			openWindow('charts.aspx#' + defName, '1024', '500', 'ChartsWin');
		} else if(window.name == "diagramFrame"){
			if(String(top.opener.location).search(result+".aspx")==-1){
				top.opener.location.href = result + '.aspx#' + defName;
			} else {
				top.opener.findDefinition(defName);
			}
		} else if(window.name == "SymbolsWin"){
			if(String(top.opener.parent.contentFrame.location).search(result+".aspx")==-1){
				top.opener.parent.contentFrame.location.href = result + '.aspx#' + defName;
			} else {
				top.opener.parent.contentFrame.findDefinition(defName);
			}
		} else {
			if(String(location).search(result+".aspx")==-1){
				document.location.href = result + '.aspx#' + defName;
			} else {
				findDefinition(defName);
			}
		}
	}
}  //end function

var samePageLinksInitiate = false;
function initializeSamePageLinks()
{
	var anchors = document.getElementsByTagName("A");
	var ashown = false;
	
	if (null != anchors)
	{
		for (var i=0; i<anchors.length; ++i)
		{
			var anchor = anchors[i];
			if (anchor.href && anchor.href.indexOf('#') > -1)
			{
				var a = document.location.href;
				if (a.indexOf('#') > -1)
				{
					a = a.substring(0, a.indexOf('#'));
				}
				if (anchor.href.indexOf(a) > -1)
				{
					anchor.onclick = function(e)
					{
						if (null == e)
							e = window.event;
							
						var targ = null;
					    if (null != e.target)
					        targ = e.target;
					    else if (null != e.srcElement)
					        targ = e.srcElement;
					       
					    targ = targ.href;
						if (targ && targ.indexOf('#') > -1)
						{
							var section = targ.substring(targ.indexOf('#')+1);
							findDefinition(URLDecode(section));
						}
					}
				}
			}
		}
	}
	samePageLinksInitiate = true;
}

function URLDecode(encodedString) 
{
  var output = encodedString;
  var binVal, thisString;
  var myregexp = /(%[^%]{2})/;
  while ((match = myregexp.exec(output)) != null
             && match.length > 1
             && match[1] != '') {
    binVal = parseInt(match[1].substr(1),16);
    thisString = String.fromCharCode(binVal);
    output = output.replace(match[1], thisString);
  }
  return output;
}

targetsArray = new Array(
	["charts","Datum Feature Labeling Chart"],
	["charts","Datum Feature Simulators, Datums &amp; Degrees of Constraint"],
	["charts","Datum Reference Frame Component Label Applications"],
	["charts","DRF Component Label Applications"],
	["charts","Datum Reference Frame Component Label Definitions"],
	["charts","DRF Component Label Definitions"],
	["charts","Datum Reference Frame Establishment Process Chart"],
	["charts","Datum Target Labeling Chart"],
	["charts","Degrees of Constraint Matrix Analysis Chart"],
	["charts","Feature Control Frame Decoding Chart"],
	["charts","Geometry Control Tool Overlaps BPG + ISO"],
	["charts","Geometry Control Tool Overlaps Chart"],
	["charts","Geometry Control Tool Selection Chart"],
	["charts","Tolerance Zone Modifier Applicability"],
    ["charts","Tolerance Zone Modifier Applicability Chart"],
	["charts","Tolerance Zone Shapes"],
	["sec1_02","GD&amp;T: A General Overview"],
	["sec1_02","How GD&amp;T Works"],
	["sec2_01","Actual In-Material Boundary (BPG)"],
	["sec2_01","Actual In-Material Boundary"],
	["sec2_01","Actual In-Space Boundary (BPG)"],
	["sec2_01","Actual In-Space Boundary"],
	["sec2_01","Actual Part"],
	["sec2_01","All Around Modifier"],
	["sec2_01","ALL OVER Modifier"],
	["sec2_01","Angularity Tool (BPG)"],
	["sec2_01","Angularity Tool (ISO)"],
	["sec2_01","Arc Length Modifier"],
	["sec2_01","Axis (BPG)"],
	["sec2_01","Axis"],
	["sec2_01","Axis (ISO)"],
	["sec2_02","Basic Dimension"],
	["sec2_02","Between Modifier (BPG)"],
	["sec2_02","Between Modifier"],
	["sec2_02","Bidirectional Mating Position Tolerancing (BPG)"],
	["sec2_02","Bore Depth Tool"],
	["sec2_02","Boundary"],
	["sec2_02","Bounded Feature Component"],
	["sec2_03","Circular Ribbon-Like Tolerance Zone"],
	["sec2_03","Circular Ribbon-Like"],
	["sec2_03","Circular Runout Tool (BPG)"],
	["sec2_03","Circular Runout Tool (ISO)"],
	["sec2_03","Circularity Tool (BPG)"],
	["sec2_03","Circularity Tool (ISO)"],
	["sec2_03","Coaxiality"],
	["sec2_03","Composite Feature Control Frame (BPG)"],
	["sec2_03","Composite Feature Control Frames"],
	["sec2_03","Concentricity Tool (BPG)"],
	["sec2_03","Concentricity Tool (ISO)"],
	["sec2_03","Conical Ribbon-Like Tolerance Zone"],
	["sec2_03","Conical Ribbon-Like"],
	["sec2_03","Conical"],
	["sec2_03","Conical Tolerance Zone"],
	["sec2_03","Constrained State"],
	["sec2_03","Counterbore Tool"],
	["sec2_03","Countersink Tool"],
	["sec2_03","Curved Ribbon-Like Tolerance Zone"],
	["sec2_03","Curved Ribbon-Like"],
	["sec2_03","Cylindrical Ribbon-Like Tolerance Zone"],
	["sec2_03","Cylindrical Ribbon-Like"],
	["sec2_03","Cylindrical"],
	["sec2_03","Cylindrical Tolerance Zone"],
	["sec2_03","Cylindricity Tool (BPG)"],
	["sec2_03","Cylindricity Tool (ISO)"],
	["sec2_04","+ DRAFT &amp; - DRAFT Modifiers"],
	["sec2_04","+DRAFT Modifier"],
	["sec2_04","-DRAFT Modifier"],
	["sec2_04","Draft Modifiers"],
	["sec2_04","Composite Datum Feature"],
	["sec2_04","Datum"],
	["sec2_04","Datum Feature (BPG)"],
	["sec2_04","Datum Feature"],
	["sec2_04","Datum Feature (ISO)"],
	["sec2_04","Datum Feature Label (BPG)"],
	["sec2_04","Datum Feature Label"],
	["sec2_04","Datum Feature Label (ISO)"],
	["sec2_04","Datum Feature Letter"],
	["sec2_04","Datum Feature Simulator"],
	["sec2_04","Datum Reference Frame"],
	["sec2_04","Datum Reference Frame Component Labels (BPG)"],
	["sec2_04","Datum Reference Frame Component Labels"],
	["sec2_04","Datum Reference Frame Mobility"],
	["sec2_04","Datum Target"],
	["sec2_04","Datum Target Label (BPG)"],
	["sec2_04","Datum Target Label"],
	["sec2_04","Datum Target Label (ISO)"],
	["sec2_04","Degrees of Constraint Matrix (BPG)"],
	["sec2_04","Degrees of Constraint Modifiers (BPG)"],
	["sec2_04","Degrees of Constraint Modifiers"],
	["sec2_04","Diameter Tool (BPG)"],
	["sec2_04","Diameter Tool (ISO)"],
	["sec2_04","Dimension"],
	["sec2_04","Dimension Origin Tool (BPG)"],
	["sec2_04","Dimension Origin Tool (ISO)"],
	["sec2_04","Draft"],
	["sec2_04","DRF"],
	["sec2_04","Enveloping Datum Feature"],
	["sec2_04","Fundamental Datum Reference Frame"],
	["sec2_04","Interim Datum Reference Frame"],
	["sec2_04","Repetitive Datum Feature"],
	["sec2_04","Shifted Datum Reference Frame"],
	["sec2_04","Simultaneous Mobile Datum Reference Frames"],
	["sec2_04","Stabilized Master Datum Reference Frame"],
	["sec2_04","Subsidiary Datum Reference Frame"],
	["sec2_05","Envelope"],
	["sec2_05","Envelope Rule Invoking &amp; Revoking Modifiers (BPG)"],
	["sec2_05","Envelope Rule Modifier"],
	["sec2_05","Envelope Rule Invoking Modifier (ISO)"],
	["sec2_05","EQUALLY SPACED Modifier"],
	["sec2_05","Explicit Surface Profile Tolerance Zone Boundary Modifier (BPG)"],
	["sec2_05","Explicit Surface Profile Tolerance Zone Boundary Modifier (x|x)"],
	["sec2_05","Explicit Surface Profile Tolerance Zone Boundary Modifier (x|x) (BPG)"],
	["sec2_05","Explicit Surface Profile TZ Boundary Modifier (BPG)"],
	["sec2_06","Composite Feature"],
	["sec2_06","Feature"],
	["sec2_06","Feature Component"],
	["sec2_06","Feature Component Modifiers"],
	["sec2_06","Feature Control Frame Stack"],
	["sec2_06","Feature Count Modifier nX"],
	["sec2_06","Feature of Magnitude (BPG)"],
	["sec2_06","Feature of Magnitude"],
	["sec2_06","Feature of Size Type I (BPG)"],
	["sec2_06","Feature of Size Type I"],
	["sec2_06","Feature of Size Type II (BPG)"],
	["sec2_06","Feature of Size Type II"],
	["sec2_06","Flatness Tool (BPG)"],
	["sec2_06","Flatness Tool (ISO)"],
	["sec2_06","Form"],
	["sec2_06","Free State"],
	["sec2_06","Free State Modifier (F)"],
	["sec2_06","Free State Modifier"],
	["sec2_06","FRTZF"],
	["sec2_06","Interrupted Feature"],
	["sec2_06","Measured Feature"],
	["sec2_06","Substitute Feature"],
	["sec2_06","Substitute Features"],
	["sec2_06","True Feature"],
	["sec2_07","Gage Makers Tolerances"],
	["sec2_07","GD&amp;T"],
	["sec2_07","Geometry Control Chain"],
	["sec2_07","Geometry Control Tool"],
	["sec2_09","Incremental Tolerance Zone Modifier"],
	["sec2_09","INDIVIDUAL REQTS Modifier (BPG)"],
	["sec2_09","INDIVIDUAL REQTS Modifier"],
	["sec2_09","Individual Requirements Modifier (BPG)"],
	["sec2_09","In-Material"],
	["sec2_09","In-Space"],
	["sec2_09","INTERRUPTED (n SURFACES) Modifier (BPG)"],
	["sec2_09","INTERRUPTED (n SURFACES) Modifier"],
	["sec2_09","Interrupted Feature (BPG)"],
	["sec2_09","Interrupted Feature Modifier (BPG)"],
	["sec2_12","Lasagna-Like Tolerance Zone (BPG)"],
	["sec2_12","Lasagna-Like Tolerance Zone"],
	["sec2_12","Lasagna-Like"],
	["sec2_12","Least Material Condition"],
	["sec2_12","Least Material Condition (LMC)"],
	["sec2_12","Least Material Condition (LMC) Boundary"],
	["sec2_12","Least Material Condition Boundary"],
	["sec2_12","Least Material Condition (LMC) Modifier (L)"],
	["sec2_12","Least Material Condition (LMC) Sphere"],
	["sec2_12","Least Squares Algorithm (Gauss)"],
	["sec2_12","Line Profile Tool (BPG)"],
	["sec2_12","Local Position Tool (BPG)"],
	["sec2_12","Local Size"],
	["sec2_12","Location"],
	["sec2_12","Sphere"],
	["sec2_12","Straight and Bent Cylinders"],
	["sec2_13","Location Constrained Mating Envelope"],
	["sec2_13","Magnitude"],
	["sec2_13","MAJ (Major Diameter) Modifier"],
	["sec2_13","MAJ (Major Dia)"],
	["sec2_13","Material Condition Modifiers (S), (M), (L)"],
	["sec2_13","Material Condition"],
	["sec2_13","Mating Envelope"],
	["sec2_13","Mating Position Tool (BPG)"],
	["sec2_13","Mating Position (BPG)"],
	["sec2_13","Mating Size"],
	["sec2_13","Maximum Material Condition (MMC)"],
	["sec2_13","Maximum Material Condition"],
	["sec2_13","Maximum Material Condition (MMC) Boundary"],
	["sec2_13","Maximum Material Condition Boundary"],
	["sec2_13","Maximum Material Condition (MMC) Modifier (M)"],
	["sec2_13","Maximum Material Condition (MMC) Sphere"],
	["sec2_13","Measured Value of a Geometric Characteristic"],
	["sec2_13","Median Form Tool (BPG)"],
	["sec2_13","Median Line (BPG)"],
	["sec2_13","Median Line (ISO)"],
	["sec2_13","Median Plane (BPG)"],
	["sec2_13","Median Plane (ISO)"],
	["sec2_13","Median Surface (BPG)"],
	["sec2_13","Median Surface (ISO)"],
	["sec2_13","Mid-Plane (BPG)"],
	["sec2_13","Mid-Point"],
	["sec2_13","MIN (Minor Diameter) Modifier"],
	["sec2_13","MIN (Minor Dia)"],
	["sec2_13","Minimum Zone Algorithm (Tchebychev)"],
	["sec2_13","Mobile"],
	["sec2_13","Modifiers &amp; Labels"],
	["sec2_13","Singly Orientation Constrained Mating Envelope"],
	["sec2_13","Unconstrained Mating Envelope"],
	["sec2_14","Nominal"],
	["sec2_14","Nominal Dimension"],
	["sec2_14","Normal Expansion &amp; Contraction"],
	["sec2_15","Orientation"],
	["sec2_16","Parallelism Tool (BPG)"],
	["sec2_16","Parallelism Tool (ISO)"],
	["sec2_16","PD (Pitch Diameter) Modifier"],
	["sec2_16","PD (Pitch Dia)"],
	["sec2_16","PITCH DIA Modifier"],
	["sec2_16","Perpendicularity Tool (BPG)"],
	["sec2_16","Perpendicularity Tool (ISO)"],
	["sec2_16","Pitch Diameter"],
	["sec2_16","PLTZF"],
	["sec2_16","Position Tool (ISO)"],
	["sec2_16","Position"],
	["sec2_16","PROJECTED EDGE Modifier (BPG)"],
	["sec2_16","Projected Mid-Plane"],
	["sec2_18","Radius Tool (ISO)"],
	["sec2_18","Radius Tool (BPG)"],
	["sec2_18","Reference Dimension"],
	["sec2_18","Regardless of Feature Size"],
	["sec2_18","Resultant Condition Envelop (Y14.5)"],
	["sec2_18","Rules for Listing Datum Feature Letters and their Modifiers in Feature Control Frames"],
	["sec2_19","Sandwich-Like Tolerance Zone (BPG)"],
	["sec2_19","Sandwich-Like"],
	["sec2_19","Scaling Expansion &amp; Contraction"],
	["sec2_19","SEP REQT #n Modifier"],
	["sec2_19","Separate Requirement Modifier"],
	["sec2_19","Separate Requirements Modifier SEP REQT #n"],
	["sec2_19","Separate Requirements"],
	["sec2_19","SIM REQT #n Modifier"],
	["sec2_19","Simultaneous Requirement Modifier"],
	["sec2_19","Simultaneous Requirements Modifier SIM REQT #n"],
	["sec2_19","Simultaneous Requirements"],
	["sec2_19","Size"],
	["sec2_19","Skin-Like Tolerance Zone"],
	["sec2_19","Skin-Like"],
	["sec2_19","Slab"],
	["sec2_19","Slab-Like Tolerance Zone"],
	["sec2_19","Slab-Like"],
	["sec2_19","Spaghetti-Like Tolerance Zone (BPG)"],
	["sec2_19","Spaghetti-Like"],
	["sec2_19","Spherical Diameter Tool (ISO)"],
	["sec2_19","Spherical Diameter Tool S&Oslash; (BPG)"],
	["sec2_19","Spherical Diameter Tool (BPG)"],
	["sec2_19","Spherical Radius Tool (ISO)"],
	["sec2_19","Spherical Radius Tool SR (BPG)"],
	["sec2_19","Spherical Radius Tool (BPG)"],
	["sec2_19","Spherical Tolerance Zone"],
	["sec2_19","Spherical"],
	["sec2_19","Statistical Tolerance Modifier &lt;SM&gt; (BPG)"],
	["sec2_19","Statistical Tolerance Modifier (BPG)"],
	["sec2_19","Statistical Tolerance Modifier"],
	["sec2_19","Straightness Tool (BPG)"],
	["sec2_19","Straightness Tool (ISO)"],
	["sec2_19","Straight Ribbon-Like Tolerance Zone"],
	["sec2_19","Straight Ribbon-Like"],
	["sec2_19","Stretched Cylindrical Tolerance Zone"],
	["sec2_19","Stretched Cylindrical"],
	["sec2_19","Substitute Feature Simulation Modifiers (BPG)"],
	["sec2_19","Substitute Feature Simulation Modifiers"],
	["sec2_19","Surface Deviation"],
	["sec2_19","Surface Form Tool (BPG)"],
	["sec2_19","Surface Profile Tool (BPG)"],
	["sec2_19","Surface Profile Tool"],
	["sec2_19","Surface Profile Tool (ISO)"],
	["sec2_19","Symmetry Component"],
	["sec2_19","Symmetry Point"],
	["sec2_19","Symmetry Tool (BPG)"],
	["sec2_19","Symmetry Tool (ISO)"],
	["sec2_19","The Least Squares (Gaussian) Substitute Feature Modifier"],
	["sec2_19","The Mating Envelope Substitute Feature Modifiers (FC) / (FC#n) / (LC) / (OC) / (UC)"],
	["sec2_19","The Minimum Zone (Tchebychev) Substitute Feature Modifier"],
	["sec2_19","The Virtual Condition Envelope Modifier"],
	["sec2_20","Force Constrained Tangent Plane"],
	["sec2_20","Orientation Constrained Tangent Plane"],
	["sec2_20","Tangent Plane"],
	["sec2_20","Tangent Plane / Tangent Line Modifier (T) (BPG)"],
	["sec2_20","Tangent Plane / Tangent Line Modifier (BPG)"],
	["sec2_20","Tangent Plane / Tangent Line Modifier"],
	["sec2_20","Tangent Plane, Tangent Line Modifier"],
	["sec2_20","Tangent Plane / Tangent Line Modifier (T) (ISO)"],
	["sec2_20","Thickness / Width Tool (BPG)"],
	["sec2_20","Thickness / Width Tool (ISO)"],
	["sec2_20","Tolerance Value"],
	["sec2_20","Tolerance Zone"],
	["sec2_20","Tolerance Zone Mobility"],
	["sec2_20","Tolerance Zone Mobility (TZM) Modifiers (BPG)"],
	["sec2_20","Tolerance Zone Mobility (TZM) Modifiers"],
	["sec2_20","Tolerance Zone Mobility Modifiers (BPG)"],
	["sec2_20","Tolerance Zone Mobility Modifiers"],
	["sec2_20","Tolerance Zone Mobility Benefit (Detriment)"],
	["sec2_20","Tolerance Zone Mobility Benefit"],
	["sec2_20","Tolerance Zone Mobility Benefit / Detriment"],
	["sec2_20","Tolerance Zone Orientation Modifiers (BPG)"],
	["sec2_20","Tolerance Zone Orientation Modifier (BPG)"],
	["sec2_20","Tolerance Zone Orientation Modifiers"],
	["sec2_20","Tolerance Zone Orientation Modifier"],
	["sec2_20","Tolerance Zone Projection Modifiers (BPG)"],
	["sec2_20","Tolerance Zone Projection Modifier (BPG)"],
	["sec2_20","Tolerance Zone Projection Modifiers"],
	["sec2_20","Tolerance Zone Projection Modifier"],
	["sec2_20","Tolerance Zone Shape Modifiers (BPG)"],
	["sec2_20","Tolerance Zone Shape Modifiers"],
	["sec2_20","Tolerance Zone Shapes"],
	["sec2_20","Tolerance Zone Size (TZS) Modifiers (BPG)"],
	["sec2_20","Tolerance Zone Size Modifiers (BPG)"],
	["sec2_20","Tolerance Zone Size (TZS) Modifiers"],
	["sec2_20","Tolerance Zone Size Modifiers"],
	["sec2_20","Tolerance Zone Size Bonus"],
	["sec2_20","Total Runout Tool (BPG)"],
	["sec2_20","Total Runout Tool (ISO)"],
	["sec2_20","True Axis"],
	["sec2_20","True In-Material Boundary / Modifier (BPG)"],
	["sec2_20","True In-Material Boundary / Modifier"],
	["sec2_20","True In-Material Boundary"],
	["sec2_20","True In-Space Boundary / Modifier (BPG)"],
	["sec2_20","True In-Space Boundary / Modifier"],
	["sec2_20","True In-Space Boundary"],
	["sec2_20","True Location"],
	["sec2_20","True Mid-Plane"],
	["sec2_20","True Part"],
	["sec2_20","True Surface"],
	["sec2_20","Tube-Like Tolerance Zone"],
	["sec2_20","Tube-Like"],
	["sec2_22","Variable Basic Dimension (BPG)"],
	["sec2_22","Variable Basic Dimension"],
	["sec2_22","Variable Basic Dimensions (BPG)"],
	["sec2_22","Variable Basic Dimensions"],
	["sec2_22","Variable Tolerance Zone Size &amp; Shape Modifiers f(n) and (xx&harr;xx) (BPG)"],
	["sec2_22","Variable Tolerance Zone Size &amp; Shape Modifiers (BPG)"],
	["sec2_22","Variable Tolerance Zone Size &amp; Shape Modifiers"],
	["sec2_22","Variable Tolerance Zone Size &amp; Form Modifiers"],
	["sec2_22","Virtual Condition"],
	["sec2_22","Virtual Condition Envelope"],
	["sec2_22","Virtual In-Material Boundary (BPG)"],
	["sec2_22","Virtual In-Material Boundary"],
	["sec2_22","Virtual In-Space Boundary (BPG)"],
	["sec2_22","Virtual In-Space Boundary"],
	["sec3","Tools Introduction"],
	["sec3","Geometry Control Tools"],
	["sec3","Geometry Control Tools &amp; Modifiers"],
	["sec3","Modifiers and Labels"],
	["sec3_01","Form Tools"],
	["sec3_01_01","Surface Form (BPG)"],
	["sec3_01_01","Surface Form"],
	["sec3_01_02","Flatness"],
	["sec3_01_03","Cylindricity"],
	["sec3_01_04","Median Form - Surfaces (BPG)"],
	["sec3_01_04","Median Form (BPG)"],
	["sec3_01_05","Median Form - Lines (BPG)"],
	["sec3_01_06","Straightness - Surface Lines"],
	["sec3_01_06","Straightness"],
	["sec3_01_07","Straightness - Median Lines"],
	["sec3_01_08","Circularity"],
	["sec3_02","Size Measurement Data Reporting"],
	["sec3_02","Size Tools"],
	["sec3_02","Unequal Bilateral Tolerance Note"],
	["sec3_02_01","Diameter"],
	["sec3_02_01","Diameter Tool"],
	["sec3_02_01","Diameter - Straight and Bent Features of Size"],
	["sec3_02_01","Diameter - Bent Cylindrical Features of Size"],
	["sec3_02_01","Diameter - Straight Cylindrical Features of Size"],
	["sec3_02_02","S&Oslash; Spherical Diameter"],
	["sec3_02_02","Spherical Diameter"],
	["sec3_02_02","Spherical Diameter Tool"],
	["sec3_02_03","Thickness / Width"],
	["sec3_02_03","Thickness Tool"],
	["sec3_02_03","Thickness"],
	["sec3_02_03","Thickness / Width - Bent Slab-Like Features"],
	["sec3_02_04","Surface Profile for Size Control"],
	["sec3_02_04","(Surface Profile)"],
	["sec3_02_05","&quot;R&quot; Radius (BPG)"],
	["sec3_02_05","Radius"],
	["sec3_02_05","Radius Tool"],
	["sec3_02_06","&quot;SR&quot; Spherical Radius"],
	["sec3_02_06","Spherical Radius"],
	["sec3_02_06","Spherical Radius Tool"],
	["sec3_02_065","INTERRUPTED Features of Size"],
	["sec3_02_07","Counterbore"],
	["sec3_02_08","Countersink"],
	["sec3_03","Orientation Tools"],
	["sec3_03_01","Angularity"],
	["sec3_03_01","Angularity - Axes"],
	["sec3_03_01","Angularity - Planar Surfaces, Tangent Planes &amp; Mid-Planes"],
	["sec3_03_02","Parallelism &amp; Perpendicularity"],
	["sec3_03_02","Parallelism"],
	["sec3_03_02","Perpendicularity"],
	["sec3_04","Location Tools"],
	["sec3_04","Mating Position &amp; Local Position Comparison"],
	["sec3_04_01","Mating Position - Feature Pattern Control"],
	["sec3_04_01","Mating Position - Measurement Data Reporting"],
	["sec3_04_01","Mating Position - Special Applications"],
	["sec3_04_01","Bidirectional Mating Position Tolerancing"],
	["sec3_04_01","Mating Position Advanced Applications - Axes, Mid-Planes &amp; Mid-Points"],
	["sec3_04_01","Mating Position Advanced Applications"],
	["sec3_04_01","Mating Position Fundamental Applications - Axes"],
	["sec3_04_01","Mating Position"],
	["sec3_04_02","Local Position - Measurement Data Reporting"],
	["sec3_04_02","Local Position"],
	["sec3_04_02","Local Position (BPG)"],
	["sec3_04_02","Local Position - Median Lines"],
	["sec3_04_02","Local Position - Lines (BPG)"],
	["sec3_04_02","Local Position - Median Surfaces"],
	["sec3_04_03","Surface Profile - Boundary Control"],
	["sec3_04_03","Surface Profile - General Surfaces"],
	["sec3_04_03","Surface Profile - Size Control"],
	["sec3_04_03","Surface Profile"],
	["sec3_04_04","Circular Runout"],
	["sec3_04_05","Total Runout"],
	["sec3_04_06","Dimension Origin"],
	["sec3_04_07","Bore Depth"],
	["sec3_05","Discouraged Tools"],
	["sec3_05_01","Concentricity"],
	["sec3_05_02","Symmetry"],
	["sec3_05_03","Line Profile"],
	["sec3_05_03","Line Profile Tool (ISO)"],
	["sec4_01","Constrained State Rule"],
	["sec4_01","Envelope Rule (BPG)"],
	["sec4_01","Envelope Rule"],
	["sec4_01","Envelope Rule (ISO)"],
	["sec4_01","Free State Rule"],
	["sec4_01","Rule of Complete Control"],
	["sec4_01","Rule of Location and Orientation (BPG)"],
	["sec4_01","Rule of Simultaneous Requirements"],
	["sec4_01","Rule of Size and Form"],
	["sec4_01","Rules for +DRAFT and -Draft Inspection Modifier Use (BPG)"],
	["sec4_01","Rules for Listing Datum Feature Letters and Modifiers in the Second and all Lower Tiers of Composite Feature Control Frames"],
	["sec4_02","Rules of Datum Reference Frame Establishment"],
	["sec4_02","Enveloping Datum Features referenced <M> or <L>"],
	["sec4_02","Feature Control Frame Stuffing Rules"],
	["sec4_02","Rule for Labeling Datum Reference Frame Components (BPG)"],
	["sec4_02","Rule for Specifying &amp; Referencing Composite Datum Features"],
	["sec4_02","Rule for Specifying Shifted Datum Reference Frames (BPG)"],
	["sec4_02","Rule of Composite Datum Feature Simulator Control (BPG)"],
	["sec4_02","Rule of Composite Datum Feature Utilization"],
	["sec4_02","Rule of Composite Feature Control Frames"],
	["sec4_02","Rule of Datum Feature Letter Selection (BPG)"],
	["sec4_02","Rule of Datum Feature Precedence"],
	["sec4_02","Rule of Datum Feature Simulator Substitution (BPG)"],
	["sec4_02","Rule of Datum Location Control for DTSs and DTS Sets"],
	["sec4_02","Rule of Degrees of Constraint Precedence"],
	["sec4_02","Rule of DFS Form Control"],
	["sec4_02","Rule of DFS Orientation Control"],
	["sec4_02","Rule of DTS Form Control"],
	["sec4_02","Rule of DTS Orientation Control"],
	["sec4_02","Rule of Maximum Utilization (The Can-May-Must Rule)"],
	["sec4_02","Rule of Non-Override"],
	["sec4_02","Rule of Repetitive Datum Feature Labeling and Referencing"],
	["sec4_02","Rule of Shape &amp; Size Control for Individual DTSs"],
	["sec4_02","Rule of Tolerance Zone Extent"],
	["sec4_02","Ruled Surface"],
	["sec4_02","Rules for Listing Substitute Feature Simulation Modifiers in Feature Control Frames"],
	["sec4_02","Rules for Substitute Feature Simulation"],
	["sec4_02","Rules for Listing Tolerance Zone Mobility Modifiers in Feature Control Frames"],
	["sec4_02","Rules of Artificial Datum Reference Frame Establishment (BPG)"],
	["sec4_02","Rules of Artificial DRF Establishment"],
	["sec4_02","Rules of Datum Feature Labeling (BPG)"],
	["sec4_02","Rules of Datum Feature Simulator (DFS) &amp; Datum Control (BPG)"],
	["sec4_02","Rules of Datum Feature Simulator &amp; Datum Control"],
	["sec4_02","Rules of Datum Location Control (BPG)"],
	["sec4_02","Rules of Datum Feature Simulator and Datum Control / Rules of Datum Location Control"],
	["sec4_02","Rules of Datum Target Labeling"],
	["sec4_02","Rules of Datum Target Simulator (DTS) &amp; Datum Control (BPG)"],
	["sec4_02","Rules of Degrees of Constraint Modifier Application and Use (BPG)"],
	["sec4_02","Rules of DFS Boundary Location Control (BPG)"],
	["sec4_02","Rules of Datum Feature Simulator (DTS) and Datum Control / Rules of DFS Boundary Location Control"],
	["sec4_02","Rules of Mathematical Datum Feature Simulation (BPG)"],
	["sec4_02","Rules of Natural Datum Reference Frame Establishment (BPG)"],
	["sec4_02","Rules of Tolerance Zone Mobility Modifier Use &lt;SM&gt;, &lt;SL&gt;, &lt;M&gt;, &lt;L&gt;, &lt;TM&gt;, &lt;TL&gt; and &lt;&harr;&gt; (BPG)"],
	["sec4_02","Rules of Tolerance Zone Mobility Modifier Use"],
	["sec4_02","Rules Regarding Applicability of TZM Modifiers to Geometry Control Tools"],
	["sec4_02","Rules Regarding Application of TZM Modifiers to Datum Features and Datum Targets"],
	["sec4_02","Substantially Curved Non-Enveloping, and Fully Enveloping Datum Features referenced <SM> and <SL>"],
	["sec4_02","Rules for Listing Degrees of Constraint Modifiers in Feature Control Frames"],
	["sec4_03","All Around Rule"],
	["sec4_03","ALL OVER Rule"],
	["sec4_03","&quot;Between&quot; Rule for Partial or Multiple Feature Designation &amp; Tolerance Zone Projection"],
	["sec4_03","Between Rule for Multiple Feature Designation"],
	["sec4_03","Between Rule"],
	["sec4_03","Mobile Tangent Plane Specification"],
	["sec4_03","Rule of Equal Bilateral Tolerances (BPG)"],
	["sec4_03","Rule of Implied Basic Dimensions"],
	["sec4_03","Rules for Referencing the Axes of Splines, Gears, and Threaded Features"],
	["sec4_03","Rules for Specifying Explicit Surface Profile Tolerance Zone Boundaries (x|x) (BPG)"],
	["sec4_03","Rules for Variable Tolerance Zone Size &amp; Shape Control (xx&harr;xx) &amp; f(n) (BPG)"],
	["sec4_03","Rules for Variable Tolerance Zone Size &amp; Shape Control"],
	["sec4_03","Rules of Feature Control Frame Stacking (BPG)"],
	["sec4_03","Rules of Free State Modifier (F) Use"],
	["sec4_03","Rules of Incremental Tolerance Zone Modifier Use (BPG)"],
	["sec4_03","Rules of Projection Modifier (P) Use (BPG)"],
	["sec4_03","Rules of Statistical Tolerance Modifier &lt;ST&gt; Use"],
	["sec4_03","Rules of Tangent Plane Modifier (T) Use &amp; Tangent Plane Simulation of Considered Features (BPG)"],
	["sec4_03","Rules of Tangent Plane Modifier (T) Use &amp; Simulation (BPG)"],
	["sec4_03","Rules of Tangent Plane Simulation for Datum Reference Frame Establishment (BPG)"],
	["sec4_03","Rules of Tolerance Zone Mobility Benefit Calculation (BPG)"],
	["sec4_03","Rules of Tolerance Zone Orientation Modifier Use (BPG)"],
	["sec4_03","Rules of Tolerance Zone Shape Modifier Use (BPG)"],
	["sec4_03","Rules of Tolerance Zone Size Bonus Calculation (BPG)"],
	["sec4_03","Rules of Tolerance Zone Size Modifier Use (SM), (SL), (M) and (L) (BPG)"],
	["sec4_03","Rules of Tolerance Zone Size Modifier Use"],
	["sec4_03","Rules for +DRAFT and -DRAFT Inspection Modifier Use (BPG)"],
	["sec4_03","Slab-Like Tolerance Zones for controlling Feature Center Points, Axes and Mid-Planes using the Mating Position, Angularity, Parallelism, and Perpendicularity Tools"],
	["sec4_03","The Incremental TZ Shape Modifiers &Oslash;3 and 3 X 3"],
	["sec4_03","The Linear Expansion / Fixed Shape Modifier (xx&harr;xx)"],
	["sec4_03","The TZ Shape Modifier &int;&int;"],
	["sec4_03","The TZ Shape Modifier &#x25AF;"],
	["sec4_03","The TZ Shape Modifier S&Oslash;"],
	["sec4_03","The Variable Size &amp; Shape Function Modifier f(n)"],
	["sec4_03","The Variable Tolerance Zone Size Modifier (&Oslash;0.5&harr; &Oslash;0.8)"],
	["sec4_03","Variable Tolerance Zone Size Modifier"],
	["sec4_04","Rule of Standard Temperature, Pressure and Humidity"],
	["sec4_04","Rules for +DRAFT and -DRAFT Inspection (BPG)"],
	["sec4_04","Rules for Listing Composite Datum Feature Letters in Feature Control Frames"],
	["sec4_04","Rules for Listing Datum Feature Letters in Feature Control Frames"],
	["sec5","Processes Introduction"],
	["sec5","Processes"],
	["sec5_01","Overall GD&amp;T Encoding Process"],
	["sec5_03","Datum Feature Selection &amp; Geometry Management Process"],
	["sec5_04","Datum Target"],
	["sec5_05","Feature Control Frame Stuffing Process"],
	["sec5_06","Geometry Control Tool Selection Process"],
	["sec5_07","Tolerance Value Selection Process"],
	["sec5_07","Tolerance Zone Size (Tolerance Value) Selection Process"],
	["sec5_08","Tolerance Zone Modifier Selection Processes"],
	["sec5_08","Tolerance Zone Mobility Modifier Selection"],
	["sec5_09","Feature Control Frame Decoding Process"],
	["sec5_10","Datum Reference Frame Establishment Process"],
	["sec5_10","Feature Control Frame Decoding Process"],
	["sec5_11","Degrees of Constraint Matrix Analysis Process"],
	["sec4_02","Rule of Boundary Location Control for Sets of DTSs"]
);
//-->

