DataGrid = {};


// TODO: Change to function name
DataGrid.initialize = function()
{
	rows = new Array();
}

DataGrid.display = function(r, soapResponse)
{
//	if(Ajax.checkReadyState('loading') == "OK")
//	{
    if(soapResponse.xml) {   // IE
        var doc = soapResponse.documentElement
        }
    else    // MOZ
        var doc = soapResponse.documentElement;
        
        var resp = doc.firstChild.firstChild.firstChild;
        rows = new Array();
        widths = new Array();
        cats = new Array();

		var page = resp.firstChild.getAttribute("page");
		var refFunction = resp.firstChild.getAttribute("refreshFunction");
		var of = resp.firstChild.getAttribute("of");
		var filter = resp.firstChild.getAttribute("filter");
		var sort =  resp.firstChild.getAttribute("sort");
		var classtype = resp.firstChild.getAttribute("class");
        
        
		var datagrid = Utilities.createElement("div", {id:'datagrid', className:classtype});
		var categories = resp.getElementsByTagName('category');
		for(var i=0; i<categories.length; i++)
		{
			var temp = resp.getElementsByTagName('category')[i].firstChild.data.split("_");			
			var categoryText = temp[0];
			if (temp[1] == null)
			    widths[i] = 10;
			else
			    widths[i] = temp[1];
			    
            cats[i] =temp[0];
            
			var titlebar = Utilities.createElement("div", {id:'titlebar', className:'titlebar ' + categoryText});
			    
			//var categoryText = resp.getElementsByTagName('category')[i].firstChild.data;
			//var x = '<input type="button"; onclick="javascript:refreshGrid(\'' + filter + '\',' + 1 + ',\'' + categoryText +'\');"; value = "' + categoryText + '" />'
			var x = '<a onclick="javascript:' + refFunction + '(\'' + filter + '\',' + 1 + ',\'' + categoryText +'\')" style="cursor:pointer">' + categoryText + '</a>'
			var category = Utilities.createElement("div", {id: 'title', className: 'title', innerHTML:x });
			//titlebar.style.width = widths[i] +'em';
			Utilities.appendChild(datagrid, Utilities.appendChild(titlebar, category));
		}
		
		// TODO: Addition: all instances of rowCollection
		var rowCollection = Utilities.createElement("div", {id:'rowCollection',className:classtype});
		var row = resp.getElementsByTagName('row');
		for(var i=0; i<row.length; i++)
		{
			var items = resp.getElementsByTagName('items')[i].childNodes;
			var action = resp.getElementsByTagName('items')[i].getAttribute('action');
			var icon = resp.getElementsByTagName('items')[i].getAttribute('icon');
			
			var parity = NumberUtil.getParity(i);
			rows.push( new DataRow(i, items, action, parity, icon, widths, cats) );
			
			Utilities.appendChild(rowCollection, rows[i].display());
	//		Utilities.appendChild(rowCollection, "</BR>");			
		}
		
		//Utilities.appendChild(document.body, datagrid);
		Utilities.appendChild(Utilities.getElement('list'), datagrid, rowCollection);
		var x = '';
		var y = '';
		//int p = page;
		
        x = x + '<input type="button"; onclick="javascript:' + refFunction + '(\'' + filter + '\',' + 1 + ',\'' + sort + '\');"; value = "First" />';

        if (page != '1')
            x = x + '<input type="button"; onclick="javascript:' + refFunction + '(\'' + filter + '\',' + (parseInt(page)-1) + ',\'' + sort + '\');"; value = "Previous" />';
        else            
            x = x + '<input type="button"; disabled=disabled; onclick="javascript:' + refFunction + '(\'' + filter + '\',' + (parseInt(page)-1) + ',\'' + sort + '\');"; value = "Previous" />';
            
        if (page != of)
            y = y + '<input type="button"; onclick="javascript:' + refFunction + '(\'' + filter + '\',' + (parseInt(page)+1) + ',\'' + sort + '\');"; value = "Next" />';
        else            
            y = y + '<input type="button"; disabled=disabled; onclick="javascript:' + refFunction + '(\'' + filter + '\',' + (parseInt(page)+1) + ',\'' + sort + '\');"; value = "Next" />';            

        y = y + '<input type="button"; onclick="javascript:' + refFunction + '(\'' + filter + '\',' + of + ',\'' + sort + '\');"; value = "Last" />';

	    Utilities.getElement('listloading').innerHTML = x+y;
            
       
		//AjaxUpdater.saving = false;
//	}
}

// TODO: Change to function name
DataGrid.initialize();