// JavaScript Document
function cls_HexdataSet() {
	var intRowNum = 0
	var intColNum = 0
	
	var arrCols = new Array()
	var arrRows = new Array()
	
	var arrCustomCols = new Array()
	
	this.rows = function() {return arrRows.length}
	this.cols = function() {return arrCols.length}
	
	this.addCol = function(strName,objDefault) {
		arrCustomCols.push(new Array(strName,objDefault))
	}
	
	this.loadData = function(objXml) {
		var objHeaders 	= ""
		var objRows		= ""
		var objCols		= ""
		
		/*var objDataSets = objInstructions.getElementsByTagName("dataset")
	for (n=0; n < objDataSets.length; n++){
		if (objDataSets[n].attributes.getNamedItem("id").nodeValue == strDataSetID) {
			var objData = objDataSets[n].getElementsByTagName("item")
			for (var r = 0; r < objData.length; r++){
				var objCols = objData[r].getElementsByTagName("col")
				for (var c=0; c < objCols.length; c++){
					if (objCols[c].attributes.getNamedItem("colnum").nodeValue == 0){
						var strTempValue =objCols[c].childNodes[0].nodeValue
					}
					if (objCols[c].attributes.getNamedItem("colnum").nodeValue == 1){
						var strTempText = objCols[c].childNodes[0].nodeValue
					}
				}
				objSelect.appendChild(createNode(strTempText,strTempValue))
			}
		} 
	}*/
		objXml = objXml.responseXML
		
		var objStatus = objXml.getElementsByTagName("status")
		if (objStatus != null ) {
			if (parseInt(objStatus[0].text) == 1) {
				var objHeaders = objXml.getElementsByTagName("headers")
				var objHeader	= objHeaders[0].getElementsByTagName("col")
				for (var i = 0; i < objHeader.length; i++){
					//alert(objHeaders[i])
					var intColID = objHeader[i].attributes.getNamedItem("colnum").nodeValue
					var strColName = objHeader[i].childNodes[0].text
					
					arrCols[intColID] = strColName
				}
				for (var i = 0; i < arrCustomCols.length; i++) {
					arrCols.push(arrCustomCols[i][0])
				}
				
				var objItemRows = objXml.getElementsByTagName("items")	
				var objItems  = objItemRows[0].getElementsByTagName("item")		
				
				for (var i = 0; i < objItems.length; i ++) {
					var arrTempCol = new Array()
					var intRowID	= objItems[i].attributes.getNamedItem("row").nodeValue
					objCols = objItems[i].getElementsByTagName("col")
					
					for (var n = 0; n < objCols.length; n ++) {
						var intColID = objCols[n].attributes.getNamedItem("colnum").nodeValue
						var strColValue = ""
						if (objCols[n].hasChildNodes) {
							strColValue = objCols[n].childNodes[0].text
						}
						
						arrTempCol[intColID] = strColValue
					}
					for (var n = 0; n < arrCustomCols.length; n++) {
						arrCustomCols.push(arrCustomCols[n][1])
					}
					arrRows[intRowID] = arrTempCol
					arrTempCol = ""
				}
				intColID = ""
				strColName = ""
			}
		}

		
		/*if (objXml.selectSingleNode("/root/status") != null) {
			if (objXml.selectSingleNode("/root/status").text == "1") {
				objHeaders = objXml.selectNodes("/root/headers/col")
				for (var i = 0; i < objHeaders.length; i ++) {
					var intColID = objHeaders[i].getAttribute("colnum")
					var strColName = objHeaders[i].text
					
					arrCols[intColID] = strColName
				}
				for (var i = 0; i < arrCustomCols.length; i++) {
						arrCols.push(arrCustomCols[i][0])
					}
				objRows = objXml.selectNodes("/root/items/item")
				
				for (var i = 0; i < objRows.length; i ++) {
					var arrTempCol = new Array()
					var intRowID	= objRows[i].getAttribute("row")
					objCols = objRows[i].selectNodes("col")
					for (var n = 0; n < objCols.length; n ++) {
						var intColID = objCols[n].getAttribute("colnum")
						var strColValue = objCols[n].text
						
						arrTempCol[intColID] = strColValue
					}
					for (var n = 0; n < arrCustomCols.length; n++) {
						arrCustomCols.push(arrCustomCols[n][1])
					}
					arrRows[intRowID] = arrTempCol
					arrTempCol = ""
				}
				
				intColID = ""
				strColName = ""
			}
		}*/
		objXml 		= ""
		objHeaders 	= ""
		objRows		= ""
		objCols		= ""
		intColID 	= ""
		strColName 	= ""
		arrTempCol = ""
		strColValue = ""
	}
	
	this.getData = function (intRow,intCol) {
		if (isNaN(intCol)) {
				for (var i = 0; i < arrCols.length; i ++) {
					if (arrCols[i] == intCol) {
						intCol = i;
						break;
					}
				}
		}
		if (arrRows != null) {
			return arrRows[intRow][intCol]
		}
		
	}
}
