88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*jshint globalstrict: true*/
 | |
| "use strict";
 | |
| 
 | |
| var page_line_info = {
 | |
|         wrap:      false,
 | |
|         ranges:    null,
 | |
|         wrap_size: null,
 | |
|         tables:    null,
 | |
|         header:    null,
 | |
|         gutter:    false
 | |
|     };
 | |
| 
 | |
| function wrap_code() {
 | |
|     var start, end, i, j, mode, idx,
 | |
|         width = 0, el;
 | |
|     if (page_line_info.header) {
 | |
|         document.getElementById("file_info").style.width = page_line_info.wrap_size + "px";
 | |
|     }
 | |
|     for (i = 1; i <= page_line_info.tables; i++) {
 | |
|         idx = i - 1;
 | |
|         start = page_line_info.ranges[idx][0];
 | |
|         end = page_line_info.ranges[idx][1];
 | |
|         for(j = start; j < end; j++) {
 | |
|             if (mode == null) {
 | |
|                 mode = true;
 | |
|                 if (page_line_info.gutter) {
 | |
|                     width = document.getElementById("L_" + idx + "_" + j).offsetWidth;
 | |
|                 }
 | |
|             }
 | |
|             el = document.getElementById("C_" + idx + "_" + j);
 | |
|             el.style.width = (page_line_info.wrap_size - width) + "px";
 | |
|             el.className = "wrap";
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| function toggle_gutter() {
 | |
|     var i, j, mode, rows, r, tbls, cells;
 | |
|     tbls  = document.getElementsByTagName('table');
 | |
|     for (i = 1; i <= page_line_info.tables; i++) {
 | |
|         rows = tbls[i].getElementsByTagName('tr');
 | |
|         r = rows.length;
 | |
|         for (j = 0; j < r; j++) {
 | |
|             cells = rows[j].getElementsByTagName('td');
 | |
|             if (mode == null) {
 | |
|                 if (page_line_info.gutter) {
 | |
|                     mode = 'none';
 | |
|                     page_line_info.gutter = false;
 | |
|                 } else {
 | |
|                     mode = 'table-cell';
 | |
|                     page_line_info.gutter = true;
 | |
|                 }
 | |
|             }
 | |
|             cells[0].style.display = mode;
 | |
|         }
 | |
|     }
 | |
|     if (page_line_info.wrap && mode != null) {
 | |
|         setTimeout(function() {wrap_code();}, 500);
 | |
|     }
 | |
| }
 | |
| 
 | |
| function unwrap_code() {
 | |
|     var i, j, idx, start, end, el;
 | |
|     if (page_line_info.header) {
 | |
|         document.getElementById("file_info").style.width = "100%";
 | |
|     }
 | |
|     for (i = 1; i <= page_line_info.tables; i++) {
 | |
|         idx = i - 1;
 | |
|         start = page_line_info.ranges[idx][0];
 | |
|         end = page_line_info.ranges[idx][1];
 | |
|         for(j = start; j < end; j++) {
 | |
|             el = document.getElementById("C_" + idx + "_" + j);
 | |
|             el.style.width = "100%";
 | |
|             el.className = "";
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| function toggle_wrapping() {
 | |
|     if (page_line_info.wrap) {
 | |
|         page_line_info.wrap = false;
 | |
|         unwrap_code();
 | |
|     } else {
 | |
|         page_line_info.wrap = true;
 | |
|         wrap_code();
 | |
|     }
 | |
| }
 |