| 0 | 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | 
|  | 2 <html> | 
|  | 3 	<head> | 
|  | 4 		<meta http-equiv="content-type" content="text/html; charset=utf-8" /> | 
|  | 5 		<link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/media/images/favicon.ico" /> | 
|  | 6 | 
|  | 7 		<title>DataTables example</title> | 
|  | 8 		<style type="text/css" title="currentStyle"> | 
|  | 9 			@import "../../media/css/demo_page.css"; | 
|  | 10 			@import "../../media/css/demo_table.css"; | 
|  | 11 		</style> | 
|  | 12 		<script type="text/javascript" language="javascript" src="../../media/js/jquery.js"></script> | 
|  | 13 		<script type="text/javascript" language="javascript" src="../../media/js/jquery.dataTables.js"></script> | 
|  | 14 		<script type="text/javascript" charset="utf-8"> | 
|  | 15 /* Time between each scrolling frame */ | 
|  | 16 $.fn.dataTableExt.oPagination.iTweenTime = 100; | 
|  | 17 | 
|  | 18 $.fn.dataTableExt.oPagination.scrolling = { | 
|  | 19 	"fnInit": function ( oSettings, nPaging, fnCallbackDraw ) | 
|  | 20 	{ | 
|  | 21 		var oLang = oSettings.oLanguage.oPaginate; | 
|  | 22 		var oClasses = oSettings.oClasses; | 
|  | 23 		var fnClickHandler = function ( e ) { | 
|  | 24 			if ( oSettings.oApi._fnPageChange( oSettings, e.data.action ) ) | 
|  | 25 			{ | 
|  | 26 				fnCallbackDraw( oSettings ); | 
|  | 27 			} | 
|  | 28 		}; | 
|  | 29 | 
|  | 30 		var sAppend = (!oSettings.bJUI) ? | 
|  | 31 			'<a class="'+oSettings.oClasses.sPagePrevDisabled+'" tabindex="'+oSettings.iTabIndex+'" role="button">'+oLang.sPrevious+'</a>'+ | 
|  | 32 			'<a class="'+oSettings.oClasses.sPageNextDisabled+'" tabindex="'+oSettings.iTabIndex+'" role="button">'+oLang.sNext+'</a>' | 
|  | 33 			: | 
|  | 34 			'<a class="'+oSettings.oClasses.sPagePrevDisabled+'" tabindex="'+oSettings.iTabIndex+'" role="button"><span class="'+oSettings.oClasses.sPageJUIPrev+'"></span></a>'+ | 
|  | 35 			'<a class="'+oSettings.oClasses.sPageNextDisabled+'" tabindex="'+oSettings.iTabIndex+'" role="button"><span class="'+oSettings.oClasses.sPageJUINext+'"></span></a>'; | 
|  | 36 		$(nPaging).append( sAppend ); | 
|  | 37 | 
|  | 38 		var els = $('a', nPaging); | 
|  | 39 		var nPrevious = els[0], | 
|  | 40 			nNext = els[1]; | 
|  | 41 | 
|  | 42 		oSettings.oApi._fnBindAction( nPrevious, {action: "previous"}, function() { | 
|  | 43 			/* Disallow paging event during a current paging event */ | 
|  | 44 			if ( typeof oSettings.iPagingLoopStart != 'undefined' && oSettings.iPagingLoopStart != -1 ) | 
|  | 45 			{ | 
|  | 46 				return; | 
|  | 47 			} | 
|  | 48 | 
|  | 49 			oSettings.iPagingLoopStart = oSettings._iDisplayStart; | 
|  | 50 			oSettings.iPagingEnd = oSettings._iDisplayStart - oSettings._iDisplayLength; | 
|  | 51 | 
|  | 52 			/* Correct for underrun */ | 
|  | 53 			if ( oSettings.iPagingEnd < 0 ) | 
|  | 54 			{ | 
|  | 55 			  oSettings.iPagingEnd = 0; | 
|  | 56 			} | 
|  | 57 | 
|  | 58 			var iTween = $.fn.dataTableExt.oPagination.iTweenTime; | 
|  | 59 			var innerLoop = function () { | 
|  | 60 				if ( oSettings.iPagingLoopStart > oSettings.iPagingEnd ) { | 
|  | 61 					oSettings.iPagingLoopStart--; | 
|  | 62 					oSettings._iDisplayStart = oSettings.iPagingLoopStart; | 
|  | 63 					fnCallbackDraw( oSettings ); | 
|  | 64 					setTimeout( function() { innerLoop(); }, iTween ); | 
|  | 65 				} else { | 
|  | 66 					oSettings.iPagingLoopStart = -1; | 
|  | 67 				} | 
|  | 68 			}; | 
|  | 69 			innerLoop(); | 
|  | 70 		} ); | 
|  | 71 | 
|  | 72 		oSettings.oApi._fnBindAction( nNext, {action: "next"}, function() { | 
|  | 73 			/* Disallow paging event during a current paging event */ | 
|  | 74 			if ( typeof oSettings.iPagingLoopStart != 'undefined' && oSettings.iPagingLoopStart != -1 ) | 
|  | 75 			{ | 
|  | 76 				return; | 
|  | 77 			} | 
|  | 78 | 
|  | 79 			oSettings.iPagingLoopStart = oSettings._iDisplayStart; | 
|  | 80 | 
|  | 81 			/* Make sure we are not over running the display array */ | 
|  | 82 			if ( oSettings._iDisplayStart + oSettings._iDisplayLength < oSettings.fnRecordsDisplay() ) | 
|  | 83 			{ | 
|  | 84 				oSettings.iPagingEnd = oSettings._iDisplayStart + oSettings._iDisplayLength; | 
|  | 85 			} | 
|  | 86 | 
|  | 87 			var iTween = $.fn.dataTableExt.oPagination.iTweenTime; | 
|  | 88 			var innerLoop = function () { | 
|  | 89 				if ( oSettings.iPagingLoopStart < oSettings.iPagingEnd ) { | 
|  | 90 					oSettings.iPagingLoopStart++; | 
|  | 91 					oSettings._iDisplayStart = oSettings.iPagingLoopStart; | 
|  | 92 					fnCallbackDraw( oSettings ); | 
|  | 93 					setTimeout( function() { innerLoop(); }, iTween ); | 
|  | 94 				} else { | 
|  | 95 					oSettings.iPagingLoopStart = -1; | 
|  | 96 				} | 
|  | 97 			}; | 
|  | 98 			innerLoop(); | 
|  | 99 		} ); | 
|  | 100 	}, | 
|  | 101 | 
|  | 102 	"fnUpdate": function ( oSettings, fnCallbackDraw ) | 
|  | 103 	{ | 
|  | 104 		if ( !oSettings.aanFeatures.p ) | 
|  | 105 		{ | 
|  | 106 			return; | 
|  | 107 		} | 
|  | 108 | 
|  | 109 		/* Loop over each instance of the pager */ | 
|  | 110 		var an = oSettings.aanFeatures.p; | 
|  | 111 		for ( var i=0, iLen=an.length ; i<iLen ; i++ ) | 
|  | 112 		{ | 
|  | 113 			if ( an[i].childNodes.length !== 0 ) | 
|  | 114 			{ | 
|  | 115 				an[i].childNodes[0].className = | 
|  | 116 					( oSettings._iDisplayStart === 0 ) ? | 
|  | 117 					oSettings.oClasses.sPagePrevDisabled : oSettings.oClasses.sPagePrevEnabled; | 
|  | 118 | 
|  | 119 				an[i].childNodes[1].className = | 
|  | 120 					( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ? | 
|  | 121 					oSettings.oClasses.sPageNextDisabled : oSettings.oClasses.sPageNextEnabled; | 
|  | 122 			} | 
|  | 123 		} | 
|  | 124 	} | 
|  | 125 } | 
|  | 126 | 
|  | 127 			$(document).ready(function() { | 
|  | 128 				$('#example').dataTable( { | 
|  | 129 					"sPaginationType": "scrolling" | 
|  | 130 				} ); | 
|  | 131 			} ); | 
|  | 132 		</script> | 
|  | 133 	</head> | 
|  | 134 	<body id="dt_example"> | 
|  | 135 		<div id="container"> | 
|  | 136 			<div class="full_width big"> | 
|  | 137 				DataTables custom pagination plug-in example | 
|  | 138 			</div> | 
|  | 139 | 
|  | 140 			<h1>Preamble</h1> | 
|  | 141 			<p>The two default pagination styles that DataTables comes with are great for basic tables, but you might which to add extra customisation or a bit of 'glitz'. This plug-in will scroll the table in an animated style.</p> | 
|  | 142 | 
|  | 143 			<h1>Live example</h1> | 
|  | 144 			<div id="demo"> | 
|  | 145 <table cellpadding="0" cellspacing="0" border="0" class="display" id="example"> | 
|  | 146 	<thead> | 
|  | 147 		<tr> | 
|  | 148 			<th>Rendering engine</th> | 
|  | 149 			<th>Browser</th> | 
|  | 150 			<th>Platform(s)</th> | 
|  | 151 			<th>Engine version</th> | 
|  | 152 			<th>CSS grade</th> | 
|  | 153 		</tr> | 
|  | 154 	</thead> | 
|  | 155 	<tbody> | 
|  | 156 		<tr class="gradeX"> | 
|  | 157 			<td>Trident</td> | 
|  | 158 			<td>Internet | 
|  | 159 				 Explorer 4.0</td> | 
|  | 160 			<td>Win 95+</td> | 
|  | 161 			<td class="center">4</td> | 
|  | 162 			<td class="center">X</td> | 
|  | 163 		</tr> | 
|  | 164 		<tr class="gradeC"> | 
|  | 165 			<td>Trident</td> | 
|  | 166 			<td>Internet | 
|  | 167 				 Explorer 5.0</td> | 
|  | 168 			<td>Win 95+</td> | 
|  | 169 			<td class="center">5</td> | 
|  | 170 			<td class="center">C</td> | 
|  | 171 		</tr> | 
|  | 172 		<tr class="gradeA"> | 
|  | 173 			<td>Trident</td> | 
|  | 174 			<td>Internet | 
|  | 175 				 Explorer 5.5</td> | 
|  | 176 			<td>Win 95+</td> | 
|  | 177 			<td class="center">5.5</td> | 
|  | 178 			<td class="center">A</td> | 
|  | 179 		</tr> | 
|  | 180 		<tr class="gradeA"> | 
|  | 181 			<td>Trident</td> | 
|  | 182 			<td>Internet | 
|  | 183 				 Explorer 6</td> | 
|  | 184 			<td>Win 98+</td> | 
|  | 185 			<td class="center">6</td> | 
|  | 186 			<td class="center">A</td> | 
|  | 187 		</tr> | 
|  | 188 		<tr class="gradeA"> | 
|  | 189 			<td>Trident</td> | 
|  | 190 			<td>Internet Explorer 7</td> | 
|  | 191 			<td>Win XP SP2+</td> | 
|  | 192 			<td class="center">7</td> | 
|  | 193 			<td class="center">A</td> | 
|  | 194 		</tr> | 
|  | 195 		<tr class="gradeA"> | 
|  | 196 			<td>Trident</td> | 
|  | 197 			<td>AOL browser (AOL desktop)</td> | 
|  | 198 			<td>Win XP</td> | 
|  | 199 			<td class="center">6</td> | 
|  | 200 			<td class="center">A</td> | 
|  | 201 		</tr> | 
|  | 202 		<tr class="gradeA"> | 
|  | 203 			<td>Gecko</td> | 
|  | 204 			<td>Firefox 1.0</td> | 
|  | 205 			<td>Win 98+ / OSX.2+</td> | 
|  | 206 			<td class="center">1.7</td> | 
|  | 207 			<td class="center">A</td> | 
|  | 208 		</tr> | 
|  | 209 		<tr class="gradeA"> | 
|  | 210 			<td>Gecko</td> | 
|  | 211 			<td>Firefox 1.5</td> | 
|  | 212 			<td>Win 98+ / OSX.2+</td> | 
|  | 213 			<td class="center">1.8</td> | 
|  | 214 			<td class="center">A</td> | 
|  | 215 		</tr> | 
|  | 216 		<tr class="gradeA"> | 
|  | 217 			<td>Gecko</td> | 
|  | 218 			<td>Firefox 2.0</td> | 
|  | 219 			<td>Win 98+ / OSX.2+</td> | 
|  | 220 			<td class="center">1.8</td> | 
|  | 221 			<td class="center">A</td> | 
|  | 222 		</tr> | 
|  | 223 		<tr class="gradeA"> | 
|  | 224 			<td>Gecko</td> | 
|  | 225 			<td>Firefox 3.0</td> | 
|  | 226 			<td>Win 2k+ / OSX.3+</td> | 
|  | 227 			<td class="center">1.9</td> | 
|  | 228 			<td class="center">A</td> | 
|  | 229 		</tr> | 
|  | 230 		<tr class="gradeA"> | 
|  | 231 			<td>Gecko</td> | 
|  | 232 			<td>Camino 1.0</td> | 
|  | 233 			<td>OSX.2+</td> | 
|  | 234 			<td class="center">1.8</td> | 
|  | 235 			<td class="center">A</td> | 
|  | 236 		</tr> | 
|  | 237 		<tr class="gradeA"> | 
|  | 238 			<td>Gecko</td> | 
|  | 239 			<td>Camino 1.5</td> | 
|  | 240 			<td>OSX.3+</td> | 
|  | 241 			<td class="center">1.8</td> | 
|  | 242 			<td class="center">A</td> | 
|  | 243 		</tr> | 
|  | 244 		<tr class="gradeA"> | 
|  | 245 			<td>Gecko</td> | 
|  | 246 			<td>Netscape 7.2</td> | 
|  | 247 			<td>Win 95+ / Mac OS 8.6-9.2</td> | 
|  | 248 			<td class="center">1.7</td> | 
|  | 249 			<td class="center">A</td> | 
|  | 250 		</tr> | 
|  | 251 		<tr class="gradeA"> | 
|  | 252 			<td>Gecko</td> | 
|  | 253 			<td>Netscape Browser 8</td> | 
|  | 254 			<td>Win 98SE+</td> | 
|  | 255 			<td class="center">1.7</td> | 
|  | 256 			<td class="center">A</td> | 
|  | 257 		</tr> | 
|  | 258 		<tr class="gradeA"> | 
|  | 259 			<td>Gecko</td> | 
|  | 260 			<td>Netscape Navigator 9</td> | 
|  | 261 			<td>Win 98+ / OSX.2+</td> | 
|  | 262 			<td class="center">1.8</td> | 
|  | 263 			<td class="center">A</td> | 
|  | 264 		</tr> | 
|  | 265 		<tr class="gradeA"> | 
|  | 266 			<td>Gecko</td> | 
|  | 267 			<td>Mozilla 1.0</td> | 
|  | 268 			<td>Win 95+ / OSX.1+</td> | 
|  | 269 			<td class="center">1</td> | 
|  | 270 			<td class="center">A</td> | 
|  | 271 		</tr> | 
|  | 272 		<tr class="gradeA"> | 
|  | 273 			<td>Gecko</td> | 
|  | 274 			<td>Mozilla 1.1</td> | 
|  | 275 			<td>Win 95+ / OSX.1+</td> | 
|  | 276 			<td class="center">1.1</td> | 
|  | 277 			<td class="center">A</td> | 
|  | 278 		</tr> | 
|  | 279 		<tr class="gradeA"> | 
|  | 280 			<td>Gecko</td> | 
|  | 281 			<td>Mozilla 1.2</td> | 
|  | 282 			<td>Win 95+ / OSX.1+</td> | 
|  | 283 			<td class="center">1.2</td> | 
|  | 284 			<td class="center">A</td> | 
|  | 285 		</tr> | 
|  | 286 		<tr class="gradeA"> | 
|  | 287 			<td>Gecko</td> | 
|  | 288 			<td>Mozilla 1.3</td> | 
|  | 289 			<td>Win 95+ / OSX.1+</td> | 
|  | 290 			<td class="center">1.3</td> | 
|  | 291 			<td class="center">A</td> | 
|  | 292 		</tr> | 
|  | 293 		<tr class="gradeA"> | 
|  | 294 			<td>Gecko</td> | 
|  | 295 			<td>Mozilla 1.4</td> | 
|  | 296 			<td>Win 95+ / OSX.1+</td> | 
|  | 297 			<td class="center">1.4</td> | 
|  | 298 			<td class="center">A</td> | 
|  | 299 		</tr> | 
|  | 300 		<tr class="gradeA"> | 
|  | 301 			<td>Gecko</td> | 
|  | 302 			<td>Mozilla 1.5</td> | 
|  | 303 			<td>Win 95+ / OSX.1+</td> | 
|  | 304 			<td class="center">1.5</td> | 
|  | 305 			<td class="center">A</td> | 
|  | 306 		</tr> | 
|  | 307 		<tr class="gradeA"> | 
|  | 308 			<td>Gecko</td> | 
|  | 309 			<td>Mozilla 1.6</td> | 
|  | 310 			<td>Win 95+ / OSX.1+</td> | 
|  | 311 			<td class="center">1.6</td> | 
|  | 312 			<td class="center">A</td> | 
|  | 313 		</tr> | 
|  | 314 		<tr class="gradeA"> | 
|  | 315 			<td>Gecko</td> | 
|  | 316 			<td>Mozilla 1.7</td> | 
|  | 317 			<td>Win 98+ / OSX.1+</td> | 
|  | 318 			<td class="center">1.7</td> | 
|  | 319 			<td class="center">A</td> | 
|  | 320 		</tr> | 
|  | 321 		<tr class="gradeA"> | 
|  | 322 			<td>Gecko</td> | 
|  | 323 			<td>Mozilla 1.8</td> | 
|  | 324 			<td>Win 98+ / OSX.1+</td> | 
|  | 325 			<td class="center">1.8</td> | 
|  | 326 			<td class="center">A</td> | 
|  | 327 		</tr> | 
|  | 328 		<tr class="gradeA"> | 
|  | 329 			<td>Gecko</td> | 
|  | 330 			<td>Seamonkey 1.1</td> | 
|  | 331 			<td>Win 98+ / OSX.2+</td> | 
|  | 332 			<td class="center">1.8</td> | 
|  | 333 			<td class="center">A</td> | 
|  | 334 		</tr> | 
|  | 335 		<tr class="gradeA"> | 
|  | 336 			<td>Gecko</td> | 
|  | 337 			<td>Epiphany 2.20</td> | 
|  | 338 			<td>Gnome</td> | 
|  | 339 			<td class="center">1.8</td> | 
|  | 340 			<td class="center">A</td> | 
|  | 341 		</tr> | 
|  | 342 		<tr class="gradeA"> | 
|  | 343 			<td>Webkit</td> | 
|  | 344 			<td>Safari 1.2</td> | 
|  | 345 			<td>OSX.3</td> | 
|  | 346 			<td class="center">125.5</td> | 
|  | 347 			<td class="center">A</td> | 
|  | 348 		</tr> | 
|  | 349 		<tr class="gradeA"> | 
|  | 350 			<td>Webkit</td> | 
|  | 351 			<td>Safari 1.3</td> | 
|  | 352 			<td>OSX.3</td> | 
|  | 353 			<td class="center">312.8</td> | 
|  | 354 			<td class="center">A</td> | 
|  | 355 		</tr> | 
|  | 356 		<tr class="gradeA"> | 
|  | 357 			<td>Webkit</td> | 
|  | 358 			<td>Safari 2.0</td> | 
|  | 359 			<td>OSX.4+</td> | 
|  | 360 			<td class="center">419.3</td> | 
|  | 361 			<td class="center">A</td> | 
|  | 362 		</tr> | 
|  | 363 		<tr class="gradeA"> | 
|  | 364 			<td>Webkit</td> | 
|  | 365 			<td>Safari 3.0</td> | 
|  | 366 			<td>OSX.4+</td> | 
|  | 367 			<td class="center">522.1</td> | 
|  | 368 			<td class="center">A</td> | 
|  | 369 		</tr> | 
|  | 370 		<tr class="gradeA"> | 
|  | 371 			<td>Webkit</td> | 
|  | 372 			<td>OmniWeb 5.5</td> | 
|  | 373 			<td>OSX.4+</td> | 
|  | 374 			<td class="center">420</td> | 
|  | 375 			<td class="center">A</td> | 
|  | 376 		</tr> | 
|  | 377 		<tr class="gradeA"> | 
|  | 378 			<td>Webkit</td> | 
|  | 379 			<td>iPod Touch / iPhone</td> | 
|  | 380 			<td>iPod</td> | 
|  | 381 			<td class="center">420.1</td> | 
|  | 382 			<td class="center">A</td> | 
|  | 383 		</tr> | 
|  | 384 		<tr class="gradeA"> | 
|  | 385 			<td>Webkit</td> | 
|  | 386 			<td>S60</td> | 
|  | 387 			<td>S60</td> | 
|  | 388 			<td class="center">413</td> | 
|  | 389 			<td class="center">A</td> | 
|  | 390 		</tr> | 
|  | 391 		<tr class="gradeA"> | 
|  | 392 			<td>Presto</td> | 
|  | 393 			<td>Opera 7.0</td> | 
|  | 394 			<td>Win 95+ / OSX.1+</td> | 
|  | 395 			<td class="center">-</td> | 
|  | 396 			<td class="center">A</td> | 
|  | 397 		</tr> | 
|  | 398 		<tr class="gradeA"> | 
|  | 399 			<td>Presto</td> | 
|  | 400 			<td>Opera 7.5</td> | 
|  | 401 			<td>Win 95+ / OSX.2+</td> | 
|  | 402 			<td class="center">-</td> | 
|  | 403 			<td class="center">A</td> | 
|  | 404 		</tr> | 
|  | 405 		<tr class="gradeA"> | 
|  | 406 			<td>Presto</td> | 
|  | 407 			<td>Opera 8.0</td> | 
|  | 408 			<td>Win 95+ / OSX.2+</td> | 
|  | 409 			<td class="center">-</td> | 
|  | 410 			<td class="center">A</td> | 
|  | 411 		</tr> | 
|  | 412 		<tr class="gradeA"> | 
|  | 413 			<td>Presto</td> | 
|  | 414 			<td>Opera 8.5</td> | 
|  | 415 			<td>Win 95+ / OSX.2+</td> | 
|  | 416 			<td class="center">-</td> | 
|  | 417 			<td class="center">A</td> | 
|  | 418 		</tr> | 
|  | 419 		<tr class="gradeA"> | 
|  | 420 			<td>Presto</td> | 
|  | 421 			<td>Opera 9.0</td> | 
|  | 422 			<td>Win 95+ / OSX.3+</td> | 
|  | 423 			<td class="center">-</td> | 
|  | 424 			<td class="center">A</td> | 
|  | 425 		</tr> | 
|  | 426 		<tr class="gradeA"> | 
|  | 427 			<td>Presto</td> | 
|  | 428 			<td>Opera 9.2</td> | 
|  | 429 			<td>Win 88+ / OSX.3+</td> | 
|  | 430 			<td class="center">-</td> | 
|  | 431 			<td class="center">A</td> | 
|  | 432 		</tr> | 
|  | 433 		<tr class="gradeA"> | 
|  | 434 			<td>Presto</td> | 
|  | 435 			<td>Opera 9.5</td> | 
|  | 436 			<td>Win 88+ / OSX.3+</td> | 
|  | 437 			<td class="center">-</td> | 
|  | 438 			<td class="center">A</td> | 
|  | 439 		</tr> | 
|  | 440 		<tr class="gradeA"> | 
|  | 441 			<td>Presto</td> | 
|  | 442 			<td>Opera for Wii</td> | 
|  | 443 			<td>Wii</td> | 
|  | 444 			<td class="center">-</td> | 
|  | 445 			<td class="center">A</td> | 
|  | 446 		</tr> | 
|  | 447 		<tr class="gradeA"> | 
|  | 448 			<td>Presto</td> | 
|  | 449 			<td>Nokia N800</td> | 
|  | 450 			<td>N800</td> | 
|  | 451 			<td class="center">-</td> | 
|  | 452 			<td class="center">A</td> | 
|  | 453 		</tr> | 
|  | 454 		<tr class="gradeA"> | 
|  | 455 			<td>Presto</td> | 
|  | 456 			<td>Nintendo DS browser</td> | 
|  | 457 			<td>Nintendo DS</td> | 
|  | 458 			<td class="center">8.5</td> | 
|  | 459 			<td class="center">C/A<sup>1</sup></td> | 
|  | 460 		</tr> | 
|  | 461 		<tr class="gradeC"> | 
|  | 462 			<td>KHTML</td> | 
|  | 463 			<td>Konqureror 3.1</td> | 
|  | 464 			<td>KDE 3.1</td> | 
|  | 465 			<td class="center">3.1</td> | 
|  | 466 			<td class="center">C</td> | 
|  | 467 		</tr> | 
|  | 468 		<tr class="gradeA"> | 
|  | 469 			<td>KHTML</td> | 
|  | 470 			<td>Konqureror 3.3</td> | 
|  | 471 			<td>KDE 3.3</td> | 
|  | 472 			<td class="center">3.3</td> | 
|  | 473 			<td class="center">A</td> | 
|  | 474 		</tr> | 
|  | 475 		<tr class="gradeA"> | 
|  | 476 			<td>KHTML</td> | 
|  | 477 			<td>Konqureror 3.5</td> | 
|  | 478 			<td>KDE 3.5</td> | 
|  | 479 			<td class="center">3.5</td> | 
|  | 480 			<td class="center">A</td> | 
|  | 481 		</tr> | 
|  | 482 		<tr class="gradeX"> | 
|  | 483 			<td>Tasman</td> | 
|  | 484 			<td>Internet Explorer 4.5</td> | 
|  | 485 			<td>Mac OS 8-9</td> | 
|  | 486 			<td class="center">-</td> | 
|  | 487 			<td class="center">X</td> | 
|  | 488 		</tr> | 
|  | 489 		<tr class="gradeC"> | 
|  | 490 			<td>Tasman</td> | 
|  | 491 			<td>Internet Explorer 5.1</td> | 
|  | 492 			<td>Mac OS 7.6-9</td> | 
|  | 493 			<td class="center">1</td> | 
|  | 494 			<td class="center">C</td> | 
|  | 495 		</tr> | 
|  | 496 		<tr class="gradeC"> | 
|  | 497 			<td>Tasman</td> | 
|  | 498 			<td>Internet Explorer 5.2</td> | 
|  | 499 			<td>Mac OS 8-X</td> | 
|  | 500 			<td class="center">1</td> | 
|  | 501 			<td class="center">C</td> | 
|  | 502 		</tr> | 
|  | 503 		<tr class="gradeA"> | 
|  | 504 			<td>Misc</td> | 
|  | 505 			<td>NetFront 3.1</td> | 
|  | 506 			<td>Embedded devices</td> | 
|  | 507 			<td class="center">-</td> | 
|  | 508 			<td class="center">C</td> | 
|  | 509 		</tr> | 
|  | 510 		<tr class="gradeA"> | 
|  | 511 			<td>Misc</td> | 
|  | 512 			<td>NetFront 3.4</td> | 
|  | 513 			<td>Embedded devices</td> | 
|  | 514 			<td class="center">-</td> | 
|  | 515 			<td class="center">A</td> | 
|  | 516 		</tr> | 
|  | 517 		<tr class="gradeX"> | 
|  | 518 			<td>Misc</td> | 
|  | 519 			<td>Dillo 0.8</td> | 
|  | 520 			<td>Embedded devices</td> | 
|  | 521 			<td class="center">-</td> | 
|  | 522 			<td class="center">X</td> | 
|  | 523 		</tr> | 
|  | 524 		<tr class="gradeX"> | 
|  | 525 			<td>Misc</td> | 
|  | 526 			<td>Links</td> | 
|  | 527 			<td>Text only</td> | 
|  | 528 			<td class="center">-</td> | 
|  | 529 			<td class="center">X</td> | 
|  | 530 		</tr> | 
|  | 531 		<tr class="gradeX"> | 
|  | 532 			<td>Misc</td> | 
|  | 533 			<td>Lynx</td> | 
|  | 534 			<td>Text only</td> | 
|  | 535 			<td class="center">-</td> | 
|  | 536 			<td class="center">X</td> | 
|  | 537 		</tr> | 
|  | 538 		<tr class="gradeC"> | 
|  | 539 			<td>Misc</td> | 
|  | 540 			<td>IE Mobile</td> | 
|  | 541 			<td>Windows Mobile 6</td> | 
|  | 542 			<td class="center">-</td> | 
|  | 543 			<td class="center">C</td> | 
|  | 544 		</tr> | 
|  | 545 		<tr class="gradeC"> | 
|  | 546 			<td>Misc</td> | 
|  | 547 			<td>PSP browser</td> | 
|  | 548 			<td>PSP</td> | 
|  | 549 			<td class="center">-</td> | 
|  | 550 			<td class="center">C</td> | 
|  | 551 		</tr> | 
|  | 552 		<tr class="gradeU"> | 
|  | 553 			<td>Other browsers</td> | 
|  | 554 			<td>All others</td> | 
|  | 555 			<td>-</td> | 
|  | 556 			<td class="center">-</td> | 
|  | 557 			<td class="center">U</td> | 
|  | 558 		</tr> | 
|  | 559 	</tbody> | 
|  | 560 	<tfoot> | 
|  | 561 		<tr> | 
|  | 562 			<th>Rendering engine</th> | 
|  | 563 			<th>Browser</th> | 
|  | 564 			<th>Platform(s)</th> | 
|  | 565 			<th>Engine version</th> | 
|  | 566 			<th>CSS grade</th> | 
|  | 567 		</tr> | 
|  | 568 	</tfoot> | 
|  | 569 </table> | 
|  | 570 			</div> | 
|  | 571 			<div class="spacer"></div> | 
|  | 572 | 
|  | 573 | 
|  | 574 			<h1>Initialisation code</h1> | 
|  | 575 			<pre class="brush: js;">/* Time between each scrolling frame */ | 
|  | 576 $.fn.dataTableExt.oPagination.iTweenTime = 100; | 
|  | 577 | 
|  | 578 $.fn.dataTableExt.oPagination.scrolling = { | 
|  | 579 	"fnInit": function ( oSettings, nPaging, fnCallbackDraw ) | 
|  | 580 	{ | 
|  | 581 		/* Store the next and previous elements in the oSettings object as they can be very | 
|  | 582 		 * usful for automation - particularly testing | 
|  | 583 		 */ | 
|  | 584 		var nPrevious = document.createElement( 'div' ); | 
|  | 585 		var nNext = document.createElement( 'div' ); | 
|  | 586 | 
|  | 587 		if ( oSettings.sTableId !== '' ) | 
|  | 588 		{ | 
|  | 589 			nPaging.setAttribute( 'id', oSettings.sTableId+'_paginate' ); | 
|  | 590 			nPrevious.setAttribute( 'id', oSettings.sTableId+'_previous' ); | 
|  | 591 			nNext.setAttribute( 'id', oSettings.sTableId+'_next' ); | 
|  | 592 		} | 
|  | 593 | 
|  | 594 		nPrevious.className = "paginate_disabled_previous"; | 
|  | 595 		nNext.className = "paginate_disabled_next"; | 
|  | 596 | 
|  | 597 		nPrevious.title = oSettings.oLanguage.oPaginate.sPrevious; | 
|  | 598 		nNext.title = oSettings.oLanguage.oPaginate.sNext; | 
|  | 599 | 
|  | 600 		nPaging.appendChild( nPrevious ); | 
|  | 601 		nPaging.appendChild( nNext ); | 
|  | 602 | 
|  | 603 		$(nPrevious).click( function() { | 
|  | 604 			/* Disallow paging event during a current paging event */ | 
|  | 605 			if ( typeof oSettings.iPagingLoopStart != 'undefined' && oSettings.iPagingLoopStart != -1 ) | 
|  | 606 			{ | 
|  | 607 				return; | 
|  | 608 			} | 
|  | 609 | 
|  | 610 			oSettings.iPagingLoopStart = oSettings._iDisplayStart; | 
|  | 611 			oSettings.iPagingEnd = oSettings._iDisplayStart - oSettings._iDisplayLength; | 
|  | 612 | 
|  | 613 			/* Correct for underrun */ | 
|  | 614 			if ( oSettings.iPagingEnd < 0 ) | 
|  | 615 			{ | 
|  | 616 			  oSettings.iPagingEnd = 0; | 
|  | 617 			} | 
|  | 618 | 
|  | 619 			var iTween = $.fn.dataTableExt.oPagination.iTweenTime; | 
|  | 620 			var innerLoop = function () { | 
|  | 621 				if ( oSettings.iPagingLoopStart > oSettings.iPagingEnd ) { | 
|  | 622 					oSettings.iPagingLoopStart--; | 
|  | 623 					oSettings._iDisplayStart = oSettings.iPagingLoopStart; | 
|  | 624 					fnCallbackDraw( oSettings ); | 
|  | 625 					setTimeout( function() { innerLoop(); }, iTween ); | 
|  | 626 				} else { | 
|  | 627 					oSettings.iPagingLoopStart = -1; | 
|  | 628 				} | 
|  | 629 			}; | 
|  | 630 			innerLoop(); | 
|  | 631 		} ); | 
|  | 632 | 
|  | 633 		$(nNext).click( function() { | 
|  | 634 			/* Disallow paging event during a current paging event */ | 
|  | 635 			if ( typeof oSettings.iPagingLoopStart != 'undefined' && oSettings.iPagingLoopStart != -1 ) | 
|  | 636 			{ | 
|  | 637 				return; | 
|  | 638 			} | 
|  | 639 | 
|  | 640 			oSettings.iPagingLoopStart = oSettings._iDisplayStart; | 
|  | 641 | 
|  | 642 			/* Make sure we are not over running the display array */ | 
|  | 643 			if ( oSettings._iDisplayStart + oSettings._iDisplayLength < oSettings.fnRecordsDisplay() ) | 
|  | 644 			{ | 
|  | 645 				oSettings.iPagingEnd = oSettings._iDisplayStart + oSettings._iDisplayLength; | 
|  | 646 			} | 
|  | 647 | 
|  | 648 			var iTween = $.fn.dataTableExt.oPagination.iTweenTime; | 
|  | 649 			var innerLoop = function () { | 
|  | 650 				if ( oSettings.iPagingLoopStart < oSettings.iPagingEnd ) { | 
|  | 651 					oSettings.iPagingLoopStart++; | 
|  | 652 					oSettings._iDisplayStart = oSettings.iPagingLoopStart; | 
|  | 653 					fnCallbackDraw( oSettings ); | 
|  | 654 					setTimeout( function() { innerLoop(); }, iTween ); | 
|  | 655 				} else { | 
|  | 656 					oSettings.iPagingLoopStart = -1; | 
|  | 657 				} | 
|  | 658 			}; | 
|  | 659 			innerLoop(); | 
|  | 660 		} ); | 
|  | 661 | 
|  | 662 		/* Take the brutal approach to cancelling text selection */ | 
|  | 663 		$(nPrevious).bind( 'selectstart', function () { return false; } ); | 
|  | 664 		$(nNext).bind( 'selectstart', function () { return false; } ); | 
|  | 665 	}, | 
|  | 666 | 
|  | 667 	"fnUpdate": function ( oSettings, fnCallbackDraw ) | 
|  | 668 	{ | 
|  | 669 		if ( !oSettings.aanFeatures.p ) | 
|  | 670 		{ | 
|  | 671 			return; | 
|  | 672 		} | 
|  | 673 | 
|  | 674 		/* Loop over each instance of the pager */ | 
|  | 675 		var an = oSettings.aanFeatures.p; | 
|  | 676 		for ( var i=0, iLen=an.length ; i<iLen ; i++ ) | 
|  | 677 		{ | 
|  | 678 			if ( an[i].childNodes.length !== 0 ) | 
|  | 679 			{ | 
|  | 680 				an[i].childNodes[0].className = | 
|  | 681 					( oSettings._iDisplayStart === 0 ) ? | 
|  | 682 					oSettings.oClasses.sPagePrevDisabled : oSettings.oClasses.sPagePrevEnabled; | 
|  | 683 | 
|  | 684 				an[i].childNodes[1].className = | 
|  | 685 					( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ? | 
|  | 686 					oSettings.oClasses.sPageNextDisabled : oSettings.oClasses.sPageNextEnabled; | 
|  | 687 			} | 
|  | 688 		} | 
|  | 689 	} | 
|  | 690 } | 
|  | 691 | 
|  | 692 $(document).ready(function() { | 
|  | 693 	$('#example').dataTable( { | 
|  | 694 		"sPaginationType": "scrolling" | 
|  | 695 	} ); | 
|  | 696 } );</pre> | 
|  | 697 			<style type="text/css"> | 
|  | 698 				@import "../examples_support/syntax/css/shCore.css"; | 
|  | 699 			</style> | 
|  | 700 			<script type="text/javascript" language="javascript" src="../examples_support/syntax/js/shCore.js"></script> | 
|  | 701 | 
|  | 702 | 
|  | 703 			<h1>Other examples</h1> | 
|  | 704 			<div class="demo_links"> | 
|  | 705 				<h2>Basic initialisation</h2> | 
|  | 706 				<ul> | 
|  | 707 					<li><a href="../basic_init/zero_config.html">Zero configuration</a></li> | 
|  | 708 					<li><a href="../basic_init/filter_only.html">Feature enablement</a></li> | 
|  | 709 					<li><a href="../basic_init/table_sorting.html">Sorting data</a></li> | 
|  | 710 					<li><a href="../basic_init/multi_col_sort.html">Multi-column sorting</a></li> | 
|  | 711 					<li><a href="../basic_init/multiple_tables.html">Multiple tables</a></li> | 
|  | 712 					<li><a href="../basic_init/hidden_columns.html">Hidden columns</a></li> | 
|  | 713 					<li><a href="../basic_init/complex_header.html">Complex headers - grouping with colspan</a></li> | 
|  | 714 					<li><a href="../basic_init/dom.html">DOM positioning</a></li> | 
|  | 715 					<li><a href="../basic_init/flexible_width.html">Flexible table width</a></li> | 
|  | 716 					<li><a href="../basic_init/state_save.html">State saving</a></li> | 
|  | 717 					<li><a href="../basic_init/alt_pagination.html">Alternative pagination styles</a></li> | 
|  | 718 					<li>Scrolling: <br> | 
|  | 719 						<a href="../basic_init/scroll_x.html">Horizontal</a> / | 
|  | 720 						<a href="../basic_init/scroll_y.html">Vertical</a> / | 
|  | 721 						<a href="../basic_init/scroll_xy.html">Both</a> / | 
|  | 722 						<a href="../basic_init/scroll_y_theme.html">Themed</a> / | 
|  | 723 						<a href="../basic_init/scroll_y_infinite.html">Infinite</a> | 
|  | 724 					</li> | 
|  | 725 					<li><a href="../basic_init/language.html">Change language information (internationalisation)</a></li> | 
|  | 726 					<li><a href="../basic_init/themes.html">ThemeRoller themes (Smoothness)</a></li> | 
|  | 727 				</ul> | 
|  | 728 | 
|  | 729 				<h2>Advanced initialisation</h2> | 
|  | 730 				<ul> | 
|  | 731 					<li>Events: <br> | 
|  | 732 						<a href="../advanced_init/events_live.html">Live events</a> / | 
|  | 733 						<a href="../advanced_init/events_pre_init.html">Pre-init</a> / | 
|  | 734 						<a href="../advanced_init/events_post_init.html">Post-init</a> | 
|  | 735 					</li> | 
|  | 736 					<li><a href="../advanced_init/column_render.html">Column rendering</a></li> | 
|  | 737 					<li><a href="../advanced_init/html_sort.html">Sorting without HTML tags</a></li> | 
|  | 738 					<li><a href="../advanced_init/dom_multiple_elements.html">Multiple table controls (sDom)</a></li> | 
|  | 739 					<li><a href="../advanced_init/length_menu.html">Defining length menu options</a></li> | 
|  | 740 					<li><a href="../advanced_init/complex_header.html">Complex headers and hidden columns</a></li> | 
|  | 741 					<li><a href="../advanced_init/dom_toolbar.html">Custom toolbar (element) around table</a></li> | 
|  | 742 					<li><a href="../advanced_init/highlight.html">Row highlighting with CSS</a></li> | 
|  | 743 					<li><a href="../advanced_init/row_grouping.html">Row grouping</a></li> | 
|  | 744 					<li><a href="../advanced_init/row_callback.html">Row callback</a></li> | 
|  | 745 					<li><a href="../advanced_init/footer_callback.html">Footer callback</a></li> | 
|  | 746 					<li><a href="../advanced_init/sorting_control.html">Control sorting direction of columns</a></li> | 
|  | 747 					<li><a href="../advanced_init/language_file.html">Change language information from a file (internationalisation)</a></li> | 
|  | 748 					<li><a href="../advanced_init/defaults.html">Setting defaults</a></li> | 
|  | 749 					<li><a href="../advanced_init/localstorage.html">State saving with localStorage</a></li> | 
|  | 750 					<li><a href="../advanced_init/dt_events.html">Custom events</a></li> | 
|  | 751 				</ul> | 
|  | 752 | 
|  | 753 				<h2>API</h2> | 
|  | 754 				<ul> | 
|  | 755 					<li><a href="../api/add_row.html">Dynamically add a new row</a></li> | 
|  | 756 					<li><a href="../api/multi_filter.html">Individual column filtering (using "input" elements)</a></li> | 
|  | 757 					<li><a href="../api/multi_filter_select.html">Individual column filtering (using "select" elements)</a></li> | 
|  | 758 					<li><a href="../api/highlight.html">Highlight rows and columns</a></li> | 
|  | 759 					<li><a href="../api/row_details.html">Show and hide details about a particular record</a></li> | 
|  | 760 					<li><a href="../api/select_row.html">User selectable rows (multiple rows)</a></li> | 
|  | 761 					<li><a href="../api/select_single_row.html">User selectable rows (single row) and delete rows</a></li> | 
|  | 762 					<li><a href="../api/editable.html">Editable rows (with jEditable)</a></li> | 
|  | 763 					<li><a href="../api/form.html">Submit form with elements in table</a></li> | 
|  | 764 					<li><a href="../api/counter_column.html">Index column (static number column)</a></li> | 
|  | 765 					<li><a href="../api/show_hide.html">Show and hide columns dynamically</a></li> | 
|  | 766 					<li><a href="../api/api_in_init.html">API function use in initialisation object (callback)</a></li> | 
|  | 767 					<li><a href="../api/tabs_and_scrolling.html">DataTables scrolling and tabs</a></li> | 
|  | 768 					<li><a href="../api/regex.html">Regular expression filtering</a></li> | 
|  | 769 				</ul> | 
|  | 770 			</div> | 
|  | 771 | 
|  | 772 			<div class="demo_links"> | 
|  | 773 				<h2>Data sources</h2> | 
|  | 774 				<ul> | 
|  | 775 					<li><a href="../data_sources/dom.html">DOM</a></li> | 
|  | 776 					<li><a href="../data_sources/js_array.html">Javascript array</a></li> | 
|  | 777 					<li><a href="../data_sources/ajax.html">Ajax source</a></li> | 
|  | 778 					<li><a href="../data_sources/server_side.html">Server side processing</a></li> | 
|  | 779 				</ul> | 
|  | 780 | 
|  | 781 				<h2>Server-side processing</h2> | 
|  | 782 				<ul> | 
|  | 783 					<li><a href="../server_side/server_side.html">Obtain server-side data</a></li> | 
|  | 784 					<li><a href="../server_side/custom_vars.html">Add extra HTTP variables</a></li> | 
|  | 785 					<li><a href="../server_side/post.html">Use HTTP POST</a></li> | 
|  | 786 					<li><a href="../server_side/ids.html">Automatic addition of IDs and classes to rows</a></li> | 
|  | 787 					<li><a href="../server_side/object_data.html">Reading table data from objects</a></li> | 
|  | 788 					<li><a href="../server_side/row_details.html">Show and hide details about a particular record</a></li> | 
|  | 789 					<li><a href="../server_side/select_rows.html">User selectable rows (multiple rows)</a></li> | 
|  | 790 					<li><a href="../server_side/jsonp.html">JSONP for a cross domain data source</a></li> | 
|  | 791 					<li><a href="../server_side/editable.html">jEditable integration with DataTables</a></li> | 
|  | 792 					<li><a href="../server_side/defer_loading.html">Deferred loading of Ajax data</a></li> | 
|  | 793 					<li><a href="../server_side/pipeline.html">Pipelining data (reduce Ajax calls for paging)</a></li> | 
|  | 794 				</ul> | 
|  | 795 | 
|  | 796 				<h2>Ajax data source</h2> | 
|  | 797 				<ul> | 
|  | 798 					<li><a href="../ajax/ajax.html">Ajax sourced data (array of arrays)</a></li> | 
|  | 799 					<li><a href="../ajax/objects.html">Ajax sourced data (array of objects)</a></li> | 
|  | 800 					<li><a href="../ajax/defer_render.html">Deferred DOM creation for extra speed</a></li> | 
|  | 801 					<li><a href="../ajax/null_data_source.html">Empty data source columns</a></li> | 
|  | 802 					<li><a href="../ajax/custom_data_property.html">Use a data source other than aaData (the default)</a></li> | 
|  | 803 					<li><a href="../ajax/objects_subarrays.html">Read column data from sub-arrays</a></li> | 
|  | 804 					<li><a href="../ajax/deep.html">Read column data from deeply nested properties</a></li> | 
|  | 805 				</ul> | 
|  | 806 | 
|  | 807 				<h2>Plug-ins</h2> | 
|  | 808 				<ul> | 
|  | 809 					<li><a href="../plug-ins/plugin_api.html">Add custom API functions</a></li> | 
|  | 810 					<li><a href="../plug-ins/sorting_plugin.html">Sorting and automatic type detection</a></li> | 
|  | 811 					<li><a href="../plug-ins/sorting_sType.html">Sorting without automatic type detection</a></li> | 
|  | 812 					<li><a href="../plug-ins/paging_plugin.html">Custom pagination controls</a></li> | 
|  | 813 					<li><a href="../plug-ins/range_filtering.html">Range filtering / custom filtering</a></li> | 
|  | 814 					<li><a href="../plug-ins/dom_sort.html">Live DOM sorting</a></li> | 
|  | 815 					<li><a href="../plug-ins/html_sort.html">Automatic HTML type detection</a></li> | 
|  | 816 				</ul> | 
|  | 817 			</div> | 
|  | 818 | 
|  | 819 | 
|  | 820 			<div id="footer" class="clear" style="text-align:center;"> | 
|  | 821 				<p> | 
|  | 822 					Please refer to the <a href="http://www.datatables.net/usage">DataTables documentation</a> for full information about its API properties and methods.<br> | 
|  | 823 					Additionally, there are a wide range of <a href="http://www.datatables.net/extras">extras</a> and <a href="http://www.datatables.net/plug-ins">plug-ins</a> which extend the capabilities of DataTables. | 
|  | 824 				</p> | 
|  | 825 | 
|  | 826 				<span style="font-size:10px;"> | 
|  | 827 					DataTables designed and created by <a href="http://www.sprymedia.co.uk">Allan Jardine</a> © 2007-2011<br> | 
|  | 828 					DataTables is dual licensed under the <a href="http://www.datatables.net/license_gpl2">GPL v2 license</a> or a <a href="http://www.datatables.net/license_bsd">BSD (3-point) license</a>. | 
|  | 829 				</span> | 
|  | 830 			</div> | 
|  | 831 		</div> | 
|  | 832 	</body> | 
|  | 833 </html> |