

function accDataGrid( taula ) {
	taula.urlData="";
	taula.pag=0;
	taula.order=-1;
	taula.orderDir="ASC";
	taula.regByPag=20;
	taula.minRegByPag=10;
	taula.maxRegByPag=30;
	taula.stepRegByPag=5;

	taula.writeTable=function( t ) {
		var header;
		var dades;
		var pageCount;
		var s="";

		if ( t.head ) header=t.head;
		if ( t.dades ) dades=t.dades;
		if ( t.pageCount ) pageCount=t.pageCount;

		this.clear();

		var opRefresh=document.createElement("a");
		opRefresh.innerHTML="Refresh";
		opRefresh.href="#";
		opRefresh.onclick=function() { taula.refresh(); return false; }

		var opSelectAll=document.createElement("a");
		opSelectAll.innerHTML="Select All";
		opSelectAll.href="#";
		opSelectAll.onclick=function() { taula.select( true ); return false; }

		var opSelectNothing=document.createElement("a");
		opSelectNothing.innerHTML="Select Nothing";
		opSelectNothing.href="#";
		opSelectNothing.onclick=function() { taula.select( false ); return false; }

		var td=document.createElement("td");
		td.className="opcions";
		td.colSpan=(header.length+1);

		td.appendChild(opRefresh);
		td.appendChild(opSelectAll);
		td.appendChild(opSelectNothing);
		
		var regsxpag=document.createElement("span");
		regsxpag.innerHTML=" Regs./Pag ";
		td.appendChild(regsxpag);

		var opregs=document.createElement("select");
		opregs.innerHTML+="";
		opregs.onchange=function() { taula.regByPag=this.value; taula.refresh(); return false; }
		for (var i=this.minRegByPag;i<=this.maxRegByPag;i+=this.stepRegByPag) {
			var opr=document.createElement("option");
			opr.value=i;
			opr.innerHTML=""+i;
			opr.selected=(i==this.regByPag);
			opregs.appendChild( opr );
			}

		td.appendChild(opregs);		
		
		td.appendChild(document.createElement("br"));
		
		if ( pageCount ) {
			var div1=document.createElement("div");
			div1.style.padding="5px";
			
			for ( var i=1; i<=pageCount; i++ ) {
				var pag=document.createElement("a");
				if ( this.pag==i-1 )
					pag.className="pageSelected";
					else
					pag.className="page";

				pag.innerHTML= i;
				pag.href="#";
				pag.pagNum=i-1;
				pag.onclick=function() { taula.pag=this.pagNum; taula.refresh( ); return false; }

				div1.appendChild(pag);
				}
				
			td.appendChild(div1);		
			}	

			
			
		var tr=document.createElement("tr");
		tr.appendChild( td );

		this.getContent().appendChild(tr);

		if ( header ) {
			var trHeader=document.createElement("tr");

			var thHeaderId=document.createElement("th");
			thHeaderId.innerHTML="&nbsp;";
			trHeader.appendChild( thHeaderId );

			for (var i=0;i<header.length;i++) {
				var thHeader=document.createElement("th");
				var aHeader=document.createElement("a");

				aHeader.href="#";
				aHeader.taula=this;
				aHeader.columna=i;
				aHeader.onclick=function() { 
					if (this.taula.order==this.columna) 
						this.taula.orderDir="DESC";
						else
						this.taula.orderDir="ASC";

					this.taula.order=this.columna;
					taula.refresh(); 

					return false; 
					}

				aHeader.innerHTML=header[i];
				aHeader.className="aHeader";
				if ( i==this.order ) {
					if (this.orderDir=="ASC")
						aHeader.className="aHeaderASC";
						else
						aHeader.className="aHeaderDESC";
					}


				thHeader.appendChild( aHeader );
				trHeader.appendChild( thHeader );
				}

			this.getContent().appendChild(trHeader);
			}

		if ( dades ) 
			for (var i=0;i<dades.length;i++) {
				var trData=document.createElement("tr");

				var tdInput=document.createElement("td");
				tdInput.innerHTML="<input type='checkbox' id='select"+i+"'/>";
				
				trData.appendChild( tdInput );

				for (var n=0;n<dades[i].length;n++) {
					var tdData=document.createElement("td");

					if (dades[i][n]!="")
						tdData.innerHTML=dades[i][n];
						else
						tdData.innerHTML="&nbsp;";

					trData.appendChild( tdData );
					}

				this.getContent().appendChild(trData);
				}
		};

	taula.clear=function() {
		var r=this.getContent();

		while ( r.hasChildNodes() )
			r.removeChild( r.firstChild );
		}

	taula.getContent=function() {
		if (this.childNodes.length>0)
			if (this.childNodes[0].tagName=="TBODY")
				return this.childNodes[0];

		return this;
		}

	taula.getValue=function( row,col ) {
		var rows=this.getContent().childNodes[row+2];
		var cols=rows.childNodes[col+1];

		return cols.innerHTML;
		};

	taula.select=function( v ) {
		var rows=this.getContent();

		for ( var i=2;i<rows.childNodes.length;i++ ) {
			var col=rows.childNodes[i].childNodes[0];
			var selec=col.getElementsByTagName("input")[0];

			selec.checked=v;
			}
		};

	taula.getSelectedRows=function() {
		var a=new Array();

		var i=0;
		var el;
		while ( el=document.getElementById("select"+i) ) {
			if ( el.checked ) a[a.length]=i;
	
			i++;
			}

		return a;
		};

	taula.refresh=function( ) {
		var u=this.urlData;

		if ( u.indexOf("?")!=-1 )
			u+="&";
			else
			u+="?";

		u+="pag="+this.pag;
		u+="&order="+this.order;
		u+="&orderdir="+this.orderDir;
		u+="&regbypag="+this.regByPag;

		postAjaxNoCache(u, "", function( ajax ) {
			if (ajax.readyState==4) 
				taula.writeTable( eval(ajax.responseText) );
			});
		}

	} 
