function dspData_FillHeaderArrays(xRS, iMode) {
	var iDimCol = null, iDimRow = null, id = null;

	var oNode = xRS.selectSingleNode("/DSPWebPart/Dimensions/Dimension[@Axis='0']");
	if (oNode != null) {
		iDimCol = oNode.getAttribute("Id");
	}
	
	oNode = xRS.selectSingleNode("/DSPWebPart/Dimensions/Dimension[@Axis='1']");
	if (oNode != null) {
		iDimRow = oNode.getAttribute("Id");
	}

	oNode = xRS.selectSingleNode("/DSPWebPart/Dimensions/Dimension[@Type='2']");
	if (oNode != null) {
		if (oNode.getAttribute("Axis") == 5) {
			id = oNode.getAttribute("Id");
			if (iDimCol == null && iDimRow == null) {
				var sType = xRS.selectSingleNode("/DSPWebPart/Result").getAttribute("WebPartType").substr(0,1);
				iDimCol = (sType=="3")?id:iDimCol;
				iDimRow = (sType=="4")?id:iDimRow;
			}
			else {
				iDimCol = (iDimCol==null)?id:iDimCol;
				iDimRow = (iDimRow==null)?id:iDimRow;
			}
		}
	}
	
	this.ColHeader = dspData_FillHeaderArray(xRS, iDimCol, iMode);
	this.RowHeader = dspData_FillHeaderArray(xRS, iDimRow, iMode);
}

function dspData_FillHeaderArray(xRS, iDimID, iMode) {
	var aHeader = new Array("");
	if (iDimID != null) {
		var sPath = " and (@View=" + iMode + " or @View=3)";
		var oNodes = xRS.selectNodes("/DSPWebPart/Members/Member[@Dim='" + iDimID + "'" + sPath + "]");
		if (oNodes.length > 0) {
			aHeader = new Array(oNodes.length);
			for (var iCnt = 0; iCnt < oNodes.length; iCnt++) {
				var oHeader = new String(oNodes[iCnt].getAttribute("Caption").replace(/\'/g,''));
				oHeader.MemberId = oNodes[iCnt].getAttribute("Id");
				oHeader.LevelDepth = oNodes[iCnt].getAttribute("D");
				oHeader.Tooltip = oNodes[iCnt].getAttribute("Tooltip");
				aHeader[iCnt] = oHeader;
			}
		}
	}
	return aHeader;
}

function dspData_FillResultArray(oXML, iMode) {
	var aValues = null, sVM;
	var oCols = oXML.selectNodes("/DSPWebPart/Result/C");
	var iCols = oCols.length;
	if (iCols > 0) {
		aValues = new Array();
		var iRows = oCols[0].childNodes.length;
		for (var iCol=0;iCol<iCols;iCol++) {
			if (oCols[iCol].attributes.length > 0)
				sVM = oXML.selectSingleNode("/DSPWebPart/Members/Member[@Id='" + oCols[iCol].getAttribute("V0") + "']").getAttribute("View");
			else
				sVM = 3;
			if (sVM==iMode||sVM==3) {
				aValues[aValues.length] = new Array();
				for (var iRow=0;iRow<iRows;iRow++) {
					var iColIndex = aValues.length-1;
					var iRowIndex = aValues[iColIndex].length;
					aValues[iColIndex][iRowIndex] = dspData_GetValue(oCols[iCol].childNodes[iRow]);
				}
			}
		}
	}
	return aValues;
}

function dspData_GetValue(oValueNode) {
	var oValue;
	if (oValueNode != null) {
		oValue = new Number(oValueNode.getAttribute("V"));
		oValue.Formatted = oValueNode.getAttribute("F");
		oValue.BackColor = oValueNode.getAttribute("BC");
		oValue.ForeColor = oValueNode.getAttribute("FC");
		oValue.FontName = oValueNode.getAttribute("FN");
		oValue.FontSize = oValueNode.getAttribute("FS");
		oValue.FontStyle = oValueNode.getAttribute("FF");
		oValue.Symbol = oValueNode.getAttribute("S");
		oValue.CellId = oValueNode.getAttribute("V0") + "," + oValueNode.parentNode.getAttribute("V0");
	}
	else {
		oValue = new Number(0);
		oValue.Formatted = "";
		oValue.BackColor = null;
		oValue.ForeColor = null;
		oValue.FontName = null;
		oValue.FontSize = null;
		oValue.FontStyle = null;
		oValue.Symbol = "";
		oValue.CellId = "";
	}
	return oValue;
}
