<!--
var xmlHttp;
var fnCallback;

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

function getData( strCallbackFn, strURL ){
	fnCallback = strCallbackFn;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		alert ("Your browser does not support AJAX!");
		return;
	} 
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open( "GET", strURL, true );
	xmlHttp.send(null);
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

function stateChanged(){ 
	if (xmlHttp.readyState==4){ 
		eval( fnCallback + "( GetRecordSet( xmlHttp.responseText ) );" );
	}
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

function GetXmlHttpObject(){
	var xmlHttp=null;
	try
	  {
	  // Firefox, Opera 8.0+, Safari
	  xmlHttp=new XMLHttpRequest();
	  }
	catch (e)
	  {
	  // Internet Explorer
	  try
		{
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
	  catch (e)
		{
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	  }
	return xmlHttp;
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

function GetRecordSet( RawData ){
	var arrRecordSet = new Array(0);
	var addData;
	var intCount;
	var objRecord;
	var arrRawData = RawData.split( "|END COLUMN NAMES|" );
	var csvColumnHeaders = arrRawData[0];
	var Data = arrRawData[1];
	var arrColumns = csvColumnHeaders.split( "," );

	if ( Data.length ){
		arrData = Data.split( "|NEWROW|" );

		for (intCount = 0; intCount < arrData.length; intCount++){
			arrData[intCount] = arrData[intCount].split( "|NEWCOLUMN|" );
		}

		var intNumColumns = arrData[0].length;
		var intNumRows = arrData.length - 1;			// There is a newrow at the end that is extraneous.
		var intColumn, intRow;

		for ( intRow = 0; intRow < intNumRows; intRow++ ){

			objRecord = new RecordSet()

			for ( intColumn = 0; intColumn < intNumColumns; intColumn++ ){
				eval( "objRecord." + arrColumns[ intColumn ] + " = '" + arrData[intRow][intColumn] + "';" );							
			}
			
			arrRecordSet.push( objRecord );
			delete objRecord;
		}
		
		return( arrRecordSet );
	} else {
		return( "" );
	}
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

function RecordSet(){		// This is a data object, not a function
}

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

// -->