var enumElement_Node = 1;
var enumAttribute_Node = 2;
var enumText_Node = 3;
var enumCdata_SectionNode = 4;

// constants

var idxContainerID = 0;
var idxTableID = 1;
var idxHdrHtml = 2;
var idxBaseDefCssClass = 3;
var idxclHdrCssClass = 4;
var idxshowImagePages = 5;

var idxHtml = 0;
var idxICssClass = 1;
var idxTDCssClass = 2;
var idxLinkCssClass = 3;

var isIENode = true;

var xmlDoc;

var isIE_7  = (navigator.appVersion.indexOf("MSIE 7.0") != -1) ? true : false;

var displayTimer = null;
//var cellTemplate = "<TD class=\"cssClassKey list_TD_Key\">imgKey textKey</TD>"
var spanOpen = "<span class=\"cssClassKey list_TD_Key\">"
var spanClose = "</span>"
var cellTemplate = "<TD>imgKey spanOKeytextKeyspanCKey</TD>"
var linkTemplate = "<A cssLinkKey href=\"linkUrlKey\" target=\"_blank\" >lnkImgKeytextKey</A>"
var imgTemplate = "<img src=\"imgUrlKey\" align=\"middle\" height=\"52\" width=\"52\" border=\"0\" style=\"padding-right: 4px\">&nbsp;"
var tmpBody = null;
var newEl = null;

var displayChannels = new String; // a string containing the ids(layerID) of all channels to be displayed on this page
						  		  // example: composerLayerID
var showImgPages = new String;	  // images may be turned off or on based on the showImgPage
								  // place a matching entry in the xml channel pmmBaseDefaultsImgShowPages node
								  // to a substring in the showImgPagesStr field of loadMyXml - if string found, showImgs = true
var isSingleCol = new Boolean;								  


function loadMyXml(xmlFileName, displayChanStr, showImgPagesStr, bSingleCol)
{
	//var testTab = document.getElementById('testTdId');
	//var innerH = testTab.innerHTML;
	// outterH = testTab.outerHTML;
	isSingleCol = bSingleCol;
	displayChannels = displayChanStr;
	showImgPages = showImgPagesStr;
	//importXML(xmlFileName);
	var canItWork = importXMLfile( xmlFileName, 'xmlLoaded', true );
}
function xmlLoaded( loadedDoc)
{
	xmlDoc = loadedDoc;
	preloadLeadImages();
}
	
function importXML(xmlFileName)
{
	if (document.implementation && document.implementation.createDocument)
	{
		isIENode = false;
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.onload = preloadLeadImages;
	}
	else if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

		xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4) preloadLeadImages();
		};
 	}
	else
	{
		alert('Sorry, your browser can\'t handle this script');
		return;
	}
	xmlDoc.load(xmlFileName);
}
/*****************************************************************************************
          Script to import XML data files and make them available to JavaScript
                     v2.0.3 written by Mark Wilton-Jones, 13/04/2004
Updated 02/07/2004 to provide native Safari 1.2 and Opera 7.6 support using XMLHttpRequest
                   Updated 24/07/2004 to prevent a Safari caching bug
      Updated 02/10/2004 to include support for older Internet Explorer XML objects
 Updated 09/11/2004 to allow a delay for better response in browsers that use the iframe
******************************************************************************************

Please see http://www.howtocreate.co.uk/jslibs/ for details and a demo of this script
Please see http://www.howtocreate.co.uk/tutorials/jsexamples/importingXML.html for a demo and description
Please see http://www.howtocreate.co.uk/jslibs/termsOfUse.html for terms of use

To use this, insert the following into the head of your document:

<script type="text/javascript"><!--
//for older browsers like Netscape 4 ... if you care
window.onerror = function () { return true; }
//--></script>
<script src="PATH TO SCRIPT/importxml.js" type="text/javascript"></script>

This header file provides one function:
var canItWork = importXML( string: locationOfXMLFile, string: nameOfFunction[, optional boolean: allowCache[, optional boolean: delay]] );
eg.
var canItWork = importXML( 'myXML.xml', 'runThis' );

To support (Internet) Explorer 5 on Mac, the XML file should use a stylesheet:
<?xml-stylesheet type="text/css" href="blank.css"?>
Although that stylesheet could in fact be completely empty. Failure to do this will produce errors when you
try to manipulate the DOM of the XML file.

When the xml file has loaded, the named function will be run, and will be passed a reference to the document
object of the XML file. You can then manipulate the data in the file using W3C DOM scripting.

Browsers may cache the XML files (with Safari, the import fails if the file is already cached by the current page).
To prevent this, the script adds a timestamp to the end of each request URL (changes every millisecond).
If you do not want this timestamp to be added, pass the value 'true' as a third parameter.
var canItWork = importXML( 'myXML.xml', 'runThis', true );
This is not recommended.

Browsers that use the iframe may have problems if the XML takes a long time to load, as they will attempt to
access the data before it is ready. If you know that this might happen, you can use the delay parameter to
make the script wait for the specified amount of time before attemting to use the data, hopefully giving the
XML the chance to load. For example, to introduce a 2 second delay:
var canItWork = importXML( 'myXML.xml', 'runThis', false, 2000 );
_______________________________________________________________________________________*/

var MWJ_ldD = [];
function importXMLfile( oURL, oFunct, oNoRand, oDelay ) {
	//note: in XML importing event handlers, 'this' refers to window
	if( !oNoRand ) { oURL += ( ( oURL.indexOf('?') + 1 ) ? '&' : '?' ) + ( new Date() ).getTime(); } //prevent cache
	if( window.XMLHttpRequest && !isIE_7 ) {
		//alternate XMLHTTP request - Gecko, Safari 1.2+ and Opera 7.6+
		isIENode = false;
		MWJ_ldD[MWJ_ldD.length] = new XMLHttpRequest();
		MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 && MWJ_ldD['+(MWJ_ldD.length-1)+'].status < 300 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+'].responseXML); }' );
		MWJ_ldD[MWJ_ldD.length-1].open("GET", oURL, true);
		MWJ_ldD[MWJ_ldD.length-1].send(null);
		return true;
	}
	if( !navigator.__ice_version && window.ActiveXObject ) {
		//the Microsoft way - IE 5+/Win (ICE produces errors and fails to use try-catch correctly)
		try { //IE Mac has the property window.ActiveXObject but produces errors if you try and use it
			try { var tho = new ActiveXObject( 'Microsoft.XMLDOM' ); //newer
			} catch(e) { var tho = new ActiveXObject( 'Msxml2.XMLHTTP' ); } //older
			MWJ_ldD[MWJ_ldD.length] = tho;
			MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+']); }' );
			MWJ_ldD[MWJ_ldD.length-1].load(oURL);
			return true;
		} catch(e) {}
	}
	return false;
}

function displayInfoNode(isActive, id)
{
	clearTimeout(displayTimer);
	if(!isActive) {
		
		jsSetColorForID(id,0x666666);
		document.getElementById(id).style.cursor = "default";
	}
	else {
		jsSetColorForID(id,0x0000FF);
		document.getElementById(id).style.cursor = "pointer";
		
		displayTimer = setTimeout("setInfoTable('" + id + "')", 200);	
	}
}
function fillChannelContainers()
{
	var displayChannels = xmlDoc.getElementsByTagName("channel");
	var i = 0;
	var curChnHeading = null;
	for ( i = 0; i < displayChannels.length; i++ ) {
		
		if (displayChannels.item(i).nodeType == enumElement_Node) {
			if (displayChannels.item(i).childNodes.length > 0) {
				var curChanNode = displayChannels.item(i);
				if(curChanNode != null) {
					createChannelHTML(curChanNode);
				}
			}
		}
	}
}

// cellTemplate = "<TD class=\"cssClassKey list_TD_Key\">imgKey textKey</TD>"
// linkTemplate = "<A class=cssLinkKey href=\"linkUrlKey\">textKey</A>"
// imgTemplate = "<img src=\"imgUrlKey\" align=\"middle\" style=\"padding-right: 8px\">"
function createChannelHTML( activeNode)
{
	var cellStr = null;
	var tcellTemplate = cellTemplate;
	var tlinkTemplate = "";
	var timgTemplate = "";
	var tTitle = "";
	var tNodeValue = null;
	var tChannelStr = "";

	if(activeNode != null) {
		var i = 0;
		var j = 0;
		var subNode = "";
		var isAddChannel = false;	// onchannel node per channel
		var isAddItem = false;
		tcellTemplate = cellTemplate;
		var chanParms = new Array(6);
		var lftItemParms = new Array(4);
		var rtItemParms = new Array(4);
		var tItemStr = "";
		var tLeftItemStr = "";
		var tRtItemStr = "";		
		var rowCnt = 0;
		var channelAdded = false;
		var isLeftItem = true;
		var isAbortChannel = false;
		var subNodeData = "";
		var isHanging = false;
		var isShowImgPage = false;
		for ( i = 0; i < activeNode.childNodes.length; i++ ) {
			if (activeNode.childNodes[i].nodeType == enumElement_Node) {
				
				subNode = activeNode.childNodes[i];
				tNodeValue = null;
				tItemStr = "";
				tChannelStr = "";
				if(isIENode) 
					subNodeData = subNode.text;
				else
					subNodeData = subNode.textContent;
					
				
				if((subNodeData != null && subNodeData != "")) {
					switch(subNode.parentNode.nodeName)
					{
						case "channel":
							if(!isAddChannel) {
								isHanging = false;	// manages possible whitespace nodes
								createChannelEntry(activeNode, chanParms);
								// only do channels with containerIDs in displayChannels
								if(displayChannels.indexOf( chanParms[idxContainerID]) <0 ) {
									isAbortChannel = true;
								}
								else {
									
									isAddChannel = (chanParms[idxHtml] != "");
									if(setTableHeader(activeNode,chanParms )) {
										isShowImgPage = !(showImgPages.indexOf( chanParms[idxshowImagePages]) <0 );
										tmpBody.appendChild(addHdrRowAndCell('left',chanParms));
										channelAdded = true;
										isAddItem = false;
										isLeftItem = true;
									}
									else {
										isAbortChannel = true;
									}
								}
							}
							else if( subNode.nodeName == 'item') {
								isHanging = true;
								createItemEntry(subNode, (isLeftItem || isSingleCol) ? lftItemParms: rtItemParms,isShowImgPage);
								// if right cell or last node
								if(!isLeftItem || isSingleCol ) {
									if(isLeftItem || isSingleCol){
										rtItemParms[0] = "";
										rtItemParms[1] = "";
										rtItemParms[2] = "";
										rtItemParms[3] = "";
									}
									tmpBody.appendChild(addRowAndCell('left',lftItemParms,rtItemParms));
									isHanging = false;
									rowCnt ++;
									isAddItem = true;
								}
								isLeftItem = !isLeftItem;								
							}
							break;
					}
				}
			}
			if(isAbortChannel) break;
		}

		if(!isAbortChannel) {
			if(isAddItem && channelAdded) {
				// left a hanging left item
				if(isHanging) {
					rtItemParms[0] = "";
					rtItemParms[1] = "";
					rtItemParms[2] = "";
					rtItemParms[3] = "";
					tmpBody.appendChild(addRowAndCell('left',lftItemParms,rtItemParms));					
				}				
				setTableFooter(activeNode,chanParms );
			}	
		}
		
	}
	return cellStr;
}

//var idxHtml = 0;
//var idxICssClass = 1;
//var idxTDCssClass = 2;
//var idxLinkCssClass = 3;
function addRowAndCell( align, lftItemParms, rtItemParms )
{
	var row = document.createElement('TR');
	row.style.vAlign = top;
	//row.style.textAlign = align;
	
	var container = document.createElement('TD');
	container.setAttribute('className',lftItemParms[idxICssClass] + ' ' + lftItemParms[idxTDCssClass]);
	container.style.textDecoration = "none";
	//container.style.vAlign = "top";
	container.style.textAlign = "left";
	container.style.width = isSingleCol ? "480px" : "280px";
	container.innerHTML = lftItemParms[idxHtml];			
	row.appendChild(container);
	if(!isSingleCol) {
		container = document.createElement('TD');
		
		container.setAttribute('className',rtItemParms[idxICssClass] + ' ' + rtItemParms[idxTDCssClass]);
		container.style.textDecoration = "none";
		//container.style.vAlign = "top";
		container.style.textAlign = "left";
		container.style.width = isSingleCol ? "4px" : "280px";;
		container.innerHTML = rtItemParms[idxHtml];			
		row.appendChild(container);	
	}
	return row;
}

function addHdrRowAndCell( align, hdrParms )
{
	var row = document.createElement('TR');
	row.style.vAlign = top;
	//row.style.textAlign = align;
	
	var hcontainer = document.createElement('TD');
	hcontainer.setAttribute('className',hdrParms[idxclHdrCssClass]);
	//hcontainer.setAttribute('color',"#FF9900");
	//hcontainer.setAttribute('fontSize',"12px");
	//hcontainer.style.colspan= "2";
	//hcontainer.style.vAlign = "top";
	hcontainer.style.textAlign = "left";
	hcontainer.style.width = "280px";
	hcontainer.innerHTML = hdrParms[idxHdrHtml];			
	row.appendChild(hcontainer);
	if(!isSingleCol) {
		hcontainer = document.createElement('TD');
		hcontainer.setAttribute('className',hdrParms[idxclHdrCssClass]);
		//hcontainer.style.vAlign = "top";
		hcontainer.style.textAlign = "left";
		hcontainer.style.width ="280px";
		hcontainer.innerHTML = "<TD></TD>";			
		row.appendChild(hcontainer);
	}
	return row;
}


function setTableHeader(activeNode,chanParms)
{
	var prevInfoTable = document.getElementById(chanParms[idxTableID]);
	if(prevInfoTable) prevInfoTable.outerHTML = "";	
	var infoContainer = document.getElementById(chanParms[idxContainerID]);
	// container must be part of page
	if(infoContainer) {
		infoContainer.innerHTML = "";
		infoContainer.style.overflow = "auto";
		newEl = document.createElement('TABLE');
		newEl.setAttribute('id',chanParms[idxTableID]);
		newEl.setAttribute('className',chanParms[idxBaseDefCssClass]);
		newEl.setAttribute('cellPadding',0);
		newEl.setAttribute('cellSpacing',1);
		newEl.style.clip = "rect(auto, hidden, 200px, auto)";
		newEl.style.overflow = "auto";
		//if(!isSingleCol) newEl.style.borderBottom = "1px solid #7F3F55";
		tmpBody = document.createElement('TBODY');
		newEl.appendChild(tmpBody);
		return true;
	}
	return false;

}


function setTableFooter(activeNode,chanParms)
{
	document.getElementById(chanParms[idxContainerID]).appendChild(newEl);
}

function createItemEntry(activeNode, itemParms, isShowImage)
{
	var cellStr = null;
	var tcellTemplate = cellTemplate;
	var tlinkTemplate = "";
	var timgTemplate = "";
	var tspanTemplate = spanOpen;
	var tTitle = "";
	var tLinkCss = "";
	var tDescription = "";
	var tNodeValue = null;
	var subNodeData = "";
	if(activeNode != null) {
		var i = 0;
		var j = 0;
		var subNode = "";
		var isAdd = false;
		tcellTemplate = cellTemplate;
		itemParms[idxICssClass] = "";
		itemParms[idxTDCssClass] = "";
		itemParms[idxLinkCssClass] = "";
		for ( i = 0; i < activeNode.childNodes.length; i++ ) {
			if (activeNode.childNodes[i].nodeType == enumElement_Node) {
				
				subNode = activeNode.childNodes[i];
				tNodeValue = null;
				if(isIENode) 
					subNodeData = subNode.text;
				else
					subNodeData = subNode.textContent;				
				if(subNodeData != null && subNodeData != "") {
					tNodeValue = subNodeData;
					switch(subNode.nodeName) {
						case "title":
							tTitle =  tNodeValue;		// prepare for later replace of textKey
							tDescription = "";
							isAdd = true;
							break;
						case "link":
							tlinkTemplate = linkTemplate;
							tlinkTemplate = tlinkTemplate.replace('linkUrlKey', tNodeValue);	// replace link url, postpone textKey replacement
							break;
						case "description":
							tDescription = tNodeValue;
							break;
						case "category":
							break;
						case "clientListImg":
							if(isShowImage) {
								timgTemplate = imgTemplate;
								timgTemplate = timgTemplate.replace('imgUrlKey',tNodeValue);
							}
							break;
						case "clientListCssClass":
							tcellTemplate = tcellTemplate.replace('cssClassKey',tNodeValue);
							tspanTemplate = tspanTemplate.replace('cssClassKey',tNodeValue);
							itemParms[idxICssClass] = tNodeValue;
							break;
						case "clientListTDCssClass":
							tcellTemplate = tcellTemplate.replace('list_TD_Key',tNodeValue);
							itemParms[idxTDCssClass] = tNodeValue;
							break;						
						case "clientListLinkCssClass":
							tLinkCss = tNodeValue;
							itemParms[idxLinkCssClass] = tNodeValue;							
							break;							
						case "artistListImg":
							if(isShowImage) {
								timgTemplate = imgTemplate;
								timgTemplate = timgTemplate.replace('imgUrlKey', tNodeValue );
							}
							break;
						case "artistListCssClass":
							tcellTemplate = tcellTemplate.replace('cssClassKey',tNodeValue);
							tspanTemplate = tspanTemplate.replace('cssClassKey',tNodeValue);
							itemParms[idxICssClass] = tNodeValue;
							break;
						case "artistListTDCssClass":
							tcellTemplate = tcellTemplate.replace('list_TD_Key',tNodeValue);
							itemParms[idxTDCssClass] = tNodeValue;
							break;					
						case "artistListLinkCssClass":
							tLinkCss = tNodeValue;
							itemParms[idxLinkCssClass] = tNodeValue;
							break;							
						case "composerListImg":
							if(isShowImage) {
								timgTemplate = imgTemplate;
								timgTemplate = timgTemplate.replace('imgUrlKey', tNodeValue);
							}
							break;
						case "composerListCssClass":
							tcellTemplate = tcellTemplate.replace('cssClassKey',tNodeValue);
							tspanTemplate = tspanTemplate.replace('cssClassKey',tNodeValue);
							itemParms[idxICssClass] = tNodeValue;
							break;
						case "composerListTDCssClass":
							tcellTemplate = tcellTemplate.replace('list_TD_Key',tNodeValue);
							itemParms[idxTDCssClass] = tNodeValue;
							break;
						case "composerListLinkCssClass":
							tLinkCss = tNodeValue;
							itemParms[idxLinkCssClass] = tNodeValue;
							break;							
						case "item":
							break;
					}
				}
			}
		}
		
		// if valid entry
		if(isAdd) {
			// if link exists, it goes in place of textKey
			// because the linkTemplate contains the text field, fill its textKey with title data
			// otherwise
			//	fill basic cellTemplate textKey with title data
			var textData = isSingleCol ? (tTitle + tDescription) : tTitle;
			if(tlinkTemplate != "" && tlinkTemplate != null ) {
				tlinkTemplate = tlinkTemplate.replace('cssLinkKey',(tLinkCss == "") ? '' : 'class=' + tLinkCss);
				
				cellStr = tlinkTemplate.replace('textKey', textData);
				cellStr = tcellTemplate.replace('textKey', cellStr);
				//cellStr = cellStr.replace('descKey', tDescription);
			}
			else if(tTitle != null ) {
				cellStr = tcellTemplate.replace('textKey',textData);
			}
			
			if(isIENode){
				cellStr = cellStr.replace('spanOKey', "");
				cellStr = cellStr.replace('spanCKey', "");
			}
			else {
				cellStr = cellStr.replace('spanOKey', tspanTemplate);
				cellStr = cellStr.replace('spanCKey', spanClose);
			}
			// if and image exists, apply the image template data in front of the textKey postion (which might be a link)
			// otherwise
			// 	remove imgKey
			if(timgTemplate != null) {
				if(tlinkTemplate != "" && tlinkTemplate != null ) {
					cellStr = cellStr.replace('lnkImgKey', timgTemplate);
					cellStr = cellStr.replace('imgKey', '');
				}
				else {
					cellStr = cellStr.replace('imgKey', timgTemplate);
				}
			}
			else {
				cellStr = cellStr.replace('imgKey', '');
				
			}
			// if this wasn't supplied, remove orphan key
			cellStr = cellStr.replace('list_TD_Key','');
		}
	}
	itemParms[idxHtml] = cellStr;
	return cellStr;	
}
//var idxContainerID = 0;
//var idxTableID = 1;
//var idxHtml = 2;
//var idxBaseDefCssClass = 4;
//var idxclHdrCssClass = 5;
function createChannelEntry(activeNode, channelParmsArray)
{
	var cellStr = null;
	var tcellTemplate = cellTemplate;
	var tspanTemplate = spanOpen;
	var tlinkTemplate = "";
	var timgTemplate = "";
	var tTitle = "";
	var tLinkCss = "";
	var tNodeValue = null;
	var subNodeData = "";
	if(activeNode != null) {
		var i = 0;
		var j = 0;
		var subNode = "";
		var isAdd = false;
		tcellTemplate = cellTemplate;
		channelParmsArray[idxContainerID] = "";
		channelParmsArray[idxTableID] = "";
		channelParmsArray[idxHtml] = "";
		channelParmsArray[idxBaseDefCssClass] = "";
		channelParmsArray[idxclHdrCssClass] = "";
		for ( i = 0; i < activeNode.childNodes.length; i++ ) {
			if (activeNode.childNodes[i].nodeType == enumElement_Node) {
				
				subNode = activeNode.childNodes[i];
				tNodeValue = null;
				if(isIENode) 
					subNodeData = subNode.text;
				else
					subNodeData = subNode.textContent;				
				if((subNodeData != null && subNodeData != "") ) {
					tNodeValue = subNodeData;
					switch(subNode.nodeName) {
						case "title":
							tTitle =  tNodeValue;		// prepare for later replace of textKey
							isAdd = true;
							break;
						case "link":
							tlinkTemplate = linkTemplate;
							tlinkTemplate = tlinkTemplate.replace('linkUrlKey', tNodeValue);	// replace link url, postpone textKey replacement
							break;
						case "description":
							break;
						case "category":
							break;
						case "clientListImg":
							timgTemplate = imgTemplate;
							timgTemplate = timgTemplate.replace('imgUrlKey',tNodeValue);						
							break;
						case "clientListCssClass":
							tcellTemplate = tcellTemplate.replace('cssClassKey',tNodeValue);
							tspanTemplate = tspanTemplate.replace('cssClassKey',tNodeValue);
							channelParmsArray[idxclHdrCssClass] = tNodeValue;
							break;
						case "clientListTDCssClass":
							tcellTemplate = tcellTemplate.replace('list_TD_Key',tNodeValue);
							break;
						case "clientListLinkCssClass":
							tLinkCss = tNodeValue;
							break;
						case "artistListImg":
							timgTemplate = imgTemplate;
							timgTemplate = timgTemplate.replace('imgUrlKey',tNodeValue);
							break;
						case "artistListCssClass":
							tcellTemplate = tcellTemplate.replace('cssClassKey',tNodeValue);
							tspanTemplate = tspanTemplate.replace('cssClassKey',tNodeValue);
							channelParmsArray[idxclHdrCssClass] = tNodeValue;
							break;
						case "artistListTDCssClass":
							tcellTemplate = tcellTemplate.replace('list_TD_Key',tNodeValue);
							break;
						case "artistListLinkCssClass":
							tLinkCss = tNodeValue;
							break;							
						case "composerListImg":
							timgTemplate = imgTemplate;
							timgTemplate = timgTemplate.replace('imgUrlKey',tNodeValue);						
							break;
						case "composerListCssClass":
							tcellTemplate = tcellTemplate.replace('cssClassKey',tNodeValue);
							tspanTemplate = tspanTemplate.replace('cssClassKey',tNodeValue);
							channelParmsArray[idxclHdrCssClass] = tNodeValue;
							break;
						case "composerListTDCssClass":
							tcellTemplate = tcellTemplate.replace('list_TD_Key',tNodeValue);
							break;
						case "composerListLinkCssClass":
							tLinkCss = tNodeValue;
							break;
						case "pmmBaseDefaultsRepositoryId":
							channelParmsArray[idxTableID] = tNodeValue;
							break;									
						case "pmmBaseDefaultsContainerId":
							channelParmsArray[idxContainerID] = tNodeValue;
							break;	
						case "pmmBaseDefaultsCssClass":
							channelParmsArray[idxBaseDefCssClass] = tNodeValue;
							break;
						case "pmmBaseDefaultsImgShowPages":
							channelParmsArray[idxshowImagePages] = tNodeValue;							
							break;
						case "item":
							break;
					}
				}
			}
		}
		
		// if valid entry
		if(isAdd) {
			// if link exists, it goes in place of textKey
			// because the linkTemplate contains the text field, fill its textKey with title data
			// otherwise
			//	fill basic cellTemplate textKey with title data
			//if(tlinkTemplate != null ) {
				//tlinkTemplate = tlinkTemplate.replace('cssLinkKey',(tLinkCss == "") ? '' : 'class=' + tLinkCss);
				//cellStr = tlinkTemplate.replace('textKey', tTitle);
				//cellStr = tcellTemplate.replace('textKey', cellStr);
			//}
			//else 
			if(tTitle != null ) {
				cellStr = tcellTemplate.replace('textKey', tTitle);
			}
			if(isIENode){
				cellStr = cellStr.replace('spanOKey', "");
				cellStr = cellStr.replace('spanCKey', "");
			}
			else {
				cellStr = cellStr.replace('spanOKey', tspanTemplate);
				cellStr = cellStr.replace('spanCKey', spanClose);
			}			
			// if and image exists, apply the image template data in front of the textKey postion (which might be a link)
			// otherwise
			// 	remove imgKey
			if(timgTemplate != null) {
				cellStr = cellStr.replace('imgKey', timgTemplate);
			}
			else {
				cellStr = cellStr.replace('imgKey', '');
			}
			// if this wasn't supplied, remove orphan key
			cellStr = cellStr.replace('list_TD_Key','');
		}
	}
	channelParmsArray[idxHdrHtml] = cellStr;
	return cellStr;	
}


function createImageEntry(srcNode)
{
	var nodeHtml = "";
	
	if(srcNode.childNodes.length > 0 ) {
		if (srcNode.childNodes[0].nodeType == enumText_Node) {
			var nodeVal = srcNode.childNodes[0].nodeValue; 
			if(nodeVal != "") {
				nodeHtml = '<IMG src="' + nodeVal + '" border="0" ></IMG>';
			}
		}
	}	
	return nodeHtml;
}

function createInfoEntry(srcNode)
{
	var nodeHtml = "";
	
	if(srcNode.childNodes.length > 0 ) {
		if (srcNode.childNodes[0].nodeType == enumText_Node) {
			nodeHtml = "doAdd";
		}
		
		if (srcNode.childNodes[0].nodeType == enumCdata_SectionNode) {
			var nodeVal = srcNode.childNodes[0].nodeValue; 
			if(nodeVal != "") {
				nodeHtml = nodeVal;
			}
		}		
	}	
	return nodeHtml;
}



function preloadLeadImages()
{

	var nameElements = xmlDoc.getElementsByTagName("image");
	var isFound = false;
	var activeNode = null;

	for ( i = 0; i < nameElements.length; i++ ) {		
		if (nameElements.item(i).nodeType == enumElement_Node) {
			if (nameElements.item(i).childNodes.length > 0) {
				var curNodeImg = nameElements.item(i).firstChild.nodeValue;
				if(curNodeImg != "") {
					MM_preloadImages(curNodeImg);
				}
			}
		}
	}
	fillChannelContainers();
}
