﻿var _xmlFile = "beltloops.xml";
var _xmlDoc;
var _xmlLoader;
var _previousId = "";
var _divList;
var _divInfo;

function BLPInit( divList, divInfo )
{

	_divList = divList;
	_divInfo = divInfo;
	var loaded = false;
	try //Internet Explorer
	{
		_xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	}
	catch(e)
	{
		try //Firefox, Mozilla, Opera, etc.	
		{
			_xmlDoc = document.implementation.createDocument("", "", null );
		}
		catch(e) { loaded = false;}
	}
	try 
	{
		_xmlDoc.async = false;
		_xmlDoc.load( _xmlFile );
		loaded=true
		BLPDisplayList();
	}
	catch(e)		
	{}
	
	if ( !loaded)
	{
		try{
			_xmlLoader = CreateAJAXObject();

			_xmlLoader.onreadystatechange = BLPReceiveXML;
			_xmlLoader.open( "GET", _xmlFile, true );
			_xmlLoader.send(null);
		}
		catch(e) {alert(e.message);}
	}
}

function GetAttribute(node, attr)
{
	var nd = node.getAttribute(attr);
	return nd;
}

function BLPShowInfo(index, pinInfo)
{
	if ( id == _previousId) return;
	
	if ( _previousId != "" )
	{	
		var oldItem = document.getElementById(_previousId);
		oldItem.className = "BLPListItem";
	}
	try
	{
		var item = _xmlDoc.getElementsByTagName( "itm" )[ index ];
		var nme = new String( GetAttribute( item , "nme") );
		var id =  nme.replace( " ", "_" ) + '_div';
		var cat = GetAttribute(item, "cat");
		var infoHTML = new String( '<span class="BLPItemType">' + cat + ':</span> <span class="BLPItemName">' + nme + ' Requirements:</span><br><br>' );
		var InfoDiv = document.getElementById(pinInfo);
		for (var i = 0; i < item.childNodes.length; i++)
		{
			var typeNode = item.childNodes[i];
			infoHTML += ( '<span class="BLPItemType">' + GetAttribute( typeNode, "typ" ) + '</span><br><span class="BLPInstruction">' + GetAttribute( typeNode,"ins") + '</span><br>' );
			for (var j = 0; j < typeNode.childNodes.length; j++)
			{
				var reqNode = typeNode.childNodes[j];
				var inx = new String( GetAttribute( reqNode, "inx" ) );
				if ( inx.length == 0 ) 
					inx += ('&nbsp;&nbsp;&nbsp;');
				else
				{
					inx += ( "." );
					if ( inx.length < 3 ) inx = ( '&nbsp;' + inx );
				}
				var lvl = GetAttribute( reqNode, "lvl" );
				if ( lvl != "" && lvl!=null )
					inx = ('&nbsp;&nbsp;&nbsp;' + inx);
				
				infoHTML += ( '<span class="BLPIndex">&nbsp;&nbsp;&nbsp;' + inx + '</span> <span class="BLPStep">' + GetAttribute( reqNode,"txt") + '</span><br>' );
			}
			infoHTML += '<br>';
		}
		
		Info.innerHTML = infoHTML;

		var divItem = document.getElementById(id);
		divItem.className = "BLPSelectedItem";
	}
	catch(e)
	{ alert(e.message) }
	_previousId = id;
}

function CreateXMLStringParser(XMLString)
{
	try
	{
		var xmlParser = new DOMParser();
		var _xmlDoc = xmlParser.parseFromString(XMLString, "text/xml");
	}
	catch(Err)
	{
		try
		{
			var _xmlDoc= new ActiveXObject("Microsoft.XMLDOM");
			_xmlDoc.async="false";
			_xmlDoc.loadXML(XMLString);
		}
		catch(Err)
		{
			window.alert("Browser does not support XML parsing.");
			return false;
		}
	}

	return _xmlDoc;
}

function CreateAJAXObject()
{
	try
	{//Mozilla, Opera, and Safari
		AJAXObj = new XMLHttpRequest();
	}
	catch (err)
	{//Internet Explorer
		try
		{
			AJAXObj = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (err)
		{
			try
			{
				AJAXObj = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (err)
			{
				alert("Your browser does not support AJAX!");
			}
		}
	}

	return AJAXObj;
}

function BLPReceiveXML()
{
	if (_xmlLoader.readyState == 4)
	{
		
		try
		{
	
			_xmlDoc = CreateXMLStringParser(_xmlLoader.responseText);
		}
		catch(e)
		{alert(e.message);}
		BLPDisplayList();
	}
}

function BLPDisplayList()
{
		
	try
	{
		var divOut = document.getElementById(_divList);
		var output = '';
		var items = _xmlDoc.getElementsByTagName("itm");
		for (var i = 0; i < items.length; i++ )
		{
			var item = items[i];
			var nme = new String( GetAttribute( item, "nme" ) );
			var id =  nme.replace( " ", "_" ) + '_div';
			var onclick = 'BLPShowInfo(' + i + ', \'' + _divInfo + '\');';
			var text = '<div id="' + id + '" class="BLPListItem" onclick="' + onclick + '" >' + nme + '</div>';
			output += text;
		}
		divOut.innerHTML = output;
		
		BLPShowInfo(0, _divInfo);
	}
	catch(e) {alert(e.message)}
	
}
