Codice PHP:
<script>
            var 
Table=(function( data ){
            
                if( 
typeof data !== 'object' ){
                
                    return 
false;
                    
                }
                
                if( 
typeof data.cols === 'undefined' || !data.cols ){
                
                    return 
false;
                
                }
                
                if( 
typeof data.rows === 'undefined' || !data.rows ){
                
                    return 
false;
                
                }
                
                if( 
data.rows data.cols 10000 ){
                
                    
alert'maximum cell exceeded' );
                
                    return 
false;
                
                }
                            
                var 
_d=document;
                var 
_dbg=_d.getElementById('debug');
                
                var 
_tt _d.createElement('table');
                var 
_th _d.createElement('thead');
                var 
_tb _d.createElement('tbody');
                var 
_tf _d.createElement('tfoot');                
                
                
_tt.appendChild_th );
                
_tt.appendChild_tb );
                
_tt.appendChild_tf );
                
                
_tt.style.width '100%';
                
_tt.style.height '100%';
                
                var 
_w=_d.createElement('div');
                
_w.style.width '500px';
                
_w.style.height '230px';
                
_w.style.overflow 'auto';
                
_w.style.border '3px outset #ddd';
                
                
_w.appendChild_tt );
                
                
                var 
_r _tb.insertRow(-1);
                    
                var 
_c _r.insertCell);
                
_c.innerHTML 0;
                
                var 
colsLeft data.cols-1;
                var 
cellNum 1;
                
                (function 
createFirstRow(){
                            
                    if( 
colsLeft <= 20 ){
                    
                        var 
reminder colsLeft;
                                
                        for( 
i=0i<reminderi++ ){
                            
_ctmp _c.cloneNodetrue );
                            
_r.appendChild_ctmp );
                            
_ctmp.innerHTML cellNum;
                            
cellNum++;
                            
colsLeft--;
                        }    

                        var 
rowsLeft data.rows-1;
                                                                
                        (function 
addRows( ){
                        
                            if( 
rowsLeft <= 20 ){
                            
                                var 
reminder rowsLeft;
                            
                                for( 
i=0i<reminderi++ ){
                                    
_nr _r.cloneNodetrue ); 
                                    
_nr.style.backgroundColor = (rowsLeft 2) ? '#ddd' '#fff';
                                    
_nr.style.color = (rowsLeft 2) ? '#000' '#666';
                                    
_tb.appendChild_nr );    
                                    
_cells=_nr.getElementsByTagName('td');
                                    for(var 
n in _cells){
                                        
_cells[n].innerHTML cellNum;
                                        
cellNum++;
                                    }
                                    
rowsLeft--;                            
                                }
                            
                            }
                            else{
                        
                                for( 
i=0i<20i++ ){
                                    
_nr _r.cloneNodetrue ); 
                                    
_nr.style.backgroundColor = (rowsLeft 2) ? '#ddd' '#fff';
                                    
_nr.style.color = (rowsLeft 2) ? '#000' '#666';
                                    
_tb.appendChild_nr );
                                    
_cells=_nr.getElementsByTagName('td');
                                    for(var 
n in _cells){
                                        
_cells[n].innerHTML cellNum;
                                        
cellNum++;
                                    }
                                    
rowsLeft--;                                                        
                                }
                                
                                
window.setTimeoutarguments.callee 25 );
                                
                            }
                        
                        })( );
                        
                        
                        
                    }
                    else{
                    
                        for( 
i=0i<20i++ ){
                            
_ctmp _c.cloneNodetrue );
                            
_r.appendChild_ctmp );
                            
_ctmp.innerHTML cellNum;
                            
cellNum++;
                            
colsLeft--;
                        }
                        
                        
window.setTimeoutarguments.callee 25 );
                    
                    }
                    
                })( );
                                                                
                return{
        
                    
appendTo:(function( elem ){
                    
                        
elem.appendChild_w );
                    
                    })
                
                }
                
            });
            
            var 
t1 = new Table( {cols:100,rows:100} );
            
            
t1.appendTodocument.getElementsByTagName('body')[0] );
        
</script>