0% found this document useful (0 votes)
15 views62 pages

JavaScript The Definitive Guide 5th Edition David Flanagan Instant Download

JavaScript: The Definitive Guide, 5th Edition by David Flanagan is a comprehensive resource for both novice and experienced JavaScript programmers, covering core language concepts, client-side scripting, and advanced topics like Ajax and XML processing. The book serves as both a detailed guide and a reference, with extensive examples and explanations of JavaScript features and best practices. Published in August 2006, it includes 1018 pages of content, making it an essential tool for over 300,000 JavaScript developers worldwide.

Uploaded by

gnpwbpv6036
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views62 pages

JavaScript The Definitive Guide 5th Edition David Flanagan Instant Download

JavaScript: The Definitive Guide, 5th Edition by David Flanagan is a comprehensive resource for both novice and experienced JavaScript programmers, covering core language concepts, client-side scripting, and advanced topics like Ajax and XML processing. The book serves as both a detailed guide and a reference, with extensive examples and explanations of JavaScript features and best practices. Published in August 2006, it includes 1018 pages of content, making it an essential tool for over 300,000 JavaScript developers worldwide.

Uploaded by

gnpwbpv6036
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

JavaScript The Definitive Guide 5th Edition David

Flanagan download pdf

https://ebookultra.com/download/javascript-the-definitive-guide-5th-
edition-david-flanagan/

Visit ebookultra.com today to download the complete set of


ebook or textbook!
Here are some recommended products for you. Click the link to
download, or explore more at ebookultra.com

JavaScript The Definitive Guide 6th Edition David Flanagan

https://ebookultra.com/download/javascript-the-definitive-guide-6th-
edition-david-flanagan/

HTTP The Definitive Guide 1st Edition David Gourley

https://ebookultra.com/download/http-the-definitive-guide-1st-edition-
david-gourley/

Animal The Definitive Visual Guide 3rd Edition David


Burnie

https://ebookultra.com/download/animal-the-definitive-visual-
guide-3rd-edition-david-burnie/

AppleScript The Definitive Guide 2nd Edition The


Definitive Guide

https://ebookultra.com/download/applescript-the-definitive-guide-2nd-
edition-the-definitive-guide/
DK Smithsonian Animal The Definitive Visual Guide Third
Edition David Burnie

https://ebookultra.com/download/dk-smithsonian-animal-the-definitive-
visual-guide-third-edition-david-burnie/

Asterisk The Definitive Guide Open Source Telephony for


the Enterprise 5th Edition Jim Van Meggelen

https://ebookultra.com/download/asterisk-the-definitive-guide-open-
source-telephony-for-the-enterprise-5th-edition-jim-van-meggelen/

Beginning JavaScript 5th Edition Jeremy Mcpeak

https://ebookultra.com/download/beginning-javascript-5th-edition-
jeremy-mcpeak/

JavaScript Bible 5th ed Edition Danny Goodman

https://ebookultra.com/download/javascript-bible-5th-ed-edition-danny-
goodman/

JavaScript The Missing Manual 1st Edition David Sawyer


Mcfarland

https://ebookultra.com/download/javascript-the-missing-manual-1st-
edition-david-sawyer-mcfarland/
JavaScript The Definitive Guide 5th Edition David
Flanagan Digital Instant Download
Author(s): David Flanagan
ISBN(s): 9780596101992, 0596101996
Edition: 5
File Details: PDF, 5.80 MB
Year: 2006
Language: english
JavaScript: The Definitive Guide, 5th Edition
By David Flanagan
...............................................
Publisher: O'Reilly
Pub Date: August 2006
Print ISBN-10: 0-596-10199-6
Print ISBN-13: 978-0-59-610199-2
Pages: 1018

Table of Contents | Index

This Fifth Edition is completely revised and expanded to cover JavaScript as it is used in today's Web 2.0
applications. This book is both an example-driven programmer's guide and a keep-on-your-desk
reference, with new chapters that explain everything you need to know to get the most out of
JavaScript, including:

Scripted HTTP and Ajax

XML processing

Client-side graphics using the <canvas> tag

Namespaces in JavaScript--essential when writing complex programs

Classes, closures, persistence, Flash, and JavaScript embedded in Java applications

Part I explains the core JavaScript language in detail. If you are new to JavaScript, it will teach you the
language. If you are already a JavaScript programmer, Part I will sharpen your skills and deepen your
understanding of the language.

Part II explains the scripting environment provided by web browsers, with a focus on DOM scripting with
unobtrusive JavaScript. The broad and deep coverage of client-side JavaScript is illustrated with many
sophisticated examples that demonstrate how to:
Generate a table of contents for an HTML document

Display DHTML animations

Automate form validation

Draw dynamic pie charts

Make HTML elements draggable

Define keyboard shortcuts for web applications

Create Ajax-enabled tool tips

Use XPath and XSLT on XML documents loaded with Ajax

And much more

Part III is a complete reference for core JavaScript. It documents every class, object, constructor,
method, function, property, and constant defined by JavaScript 1.5 and ECMAScript version 3.

Part IV is a reference for client-side JavaScript, covering legacy web browser APIs, the standard Level 2
DOM API, and emerging standards such as the XMLHttpRequest object and the <canvas> tag.

More than 300,000 JavaScript programmers around the world have made
this their indispensable reference book for building JavaScript applications.

"A must-have reference for expert JavaScript programmers...well-organized and detailed."


-- Brendan Eich, creator of JavaScript
JavaScript: The Definitive Guide, 5th Edition
By David Flanagan
...............................................
Publisher: O'Reilly
Pub Date: August 2006
Print ISBN-10: 0-596-10199-6
Print ISBN-13: 978-0-59-610199-2
Pages: 1018

Table of Contents | Index

Copyright
Dedication
Preface
Chapter 1. Introduction to JavaScript
Section 1.1. What Is JavaScript?
Section 1.2. Versions of JavaScript
Section 1.3. Client-Side JavaScript
Section 1.4. JavaScript in Other Contexts
Section 1.5. Exploring JavaScript
Part I: Core JavaScript
Chapter 2. Lexical Structure
Section 2.1. Character Set
Section 2.2. Case Sensitivity
Section 2.3. Whitespace and Line Breaks
Section 2.4. Optional Semicolons
Section 2.5. Comments
Section 2.6. Literals
Section 2.7. Identifiers
Section 2.8. Reserved Words
Chapter 3. Datatypes and Values
Section 3.1. Numbers
Section 3.2. Strings
Section 3.3. Boolean Values
Section 3.4. Functions
Section 3.5. Objects
Section 3.6. Arrays
Section 3.7. null
Section 3.8. undefined
Section 3.9. The Date Object
Section 3.10. Regular Expressions
Section 3.11. Error Objects
Section 3.12. Type Conversion Summary
Section 3.13. Primitive Datatype Wrapper Objects
Section 3.14. Object-to-Primitive Conversion
Section 3.15. By Value Versus by Reference
Chapter 4. Variables
Section 4.1. Variable Typing
Section 4.2. Variable Declaration
Section 4.3. Variable Scope
Section 4.4. Primitive Types and Reference Types
Section 4.5. Garbage Collection
Section 4.6. Variables as Properties
Section 4.7. Variable Scope Revisited
Chapter 5. Expressions and Operators
Section 5.1. Expressions
Section 5.2. Operator Overview
Section 5.3. Arithmetic Operators
Section 5.4. Equality Operators
Section 5.5. Relational Operators
Section 5.6. String Operators
Section 5.7. Logical Operators
Section 5.8. Bitwise Operators
Section 5.9. Assignment Operators
Section 5.10. Miscellaneous Operators
Chapter 6. Statements
Section 6.1. Expression Statements
Section 6.2. Compound Statements
Section 6.3. if
Section 6.4. else if
Section 6.5. switch
Section 6.6. while
Section 6.7. do/while
Section 6.8. for
Section 6.9. for/in
Section 6.10. Labels
Section 6.11. break
Section 6.12. continue
Section 6.13. var
Section 6.14. function
Section 6.15. return
Section 6.16. throw
Section 6.17. try/catch/finally
Section 6.18. with
Section 6.19. The Empty Statement
Section 6.20. Summary of JavaScript Statements
Chapter 7. Objects and Arrays
Section 7.1. Creating Objects
Section 7.2. Object Properties
Section 7.3. Objects as Associative Arrays
Section 7.4. Universal Object Properties and Methods
Section 7.5. Arrays
Section 7.6. Reading and Writing Array Elements
Section 7.7. Array Methods
Section 7.8. Array-Like Objects
Chapter 8. Functions
Section 8.1. Defining and Invoking Functions
Section 8.2. Function Arguments
Section 8.3. Functions as Data
Section 8.4. Functions as Methods
Section 8.5. Constructor Functions
Section 8.6. Function Properties and Methods
Section 8.7. Utility Function Examples
Section 8.8. Function Scope and Closures
Section 8.9. The Function() Constructor
Chapter 9. Classes, Constructors, and Prototypes
Section 9.1. Constructors
Section 9.2. Prototypes and Inheritance
Section 9.3. Simulating Classes in JavaScript
Section 9.4. Common Object Methods
Section 9.5. Superclasses and Subclasses
Section 9.6. Extending Without Inheriting
Section 9.7. Determining Object Type
Section 9.8. Example: A defineClass( ) Utility Method
Chapter 10. Modules and Namespaces
Section 10.1. Creating Modules and Namespaces
Section 10.2. Importing Symbols from Namespaces
Section 10.3. Module Utilities
Chapter 11. Pattern Matching with Regular Expressions
Section 11.1. Defining Regular Expressions
Section 11.2. String Methods for Pattern Matching
Section 11.3. The RegExp Object
Chapter 12. Scripting Java
Section 12.1. Embedding JavaScript
Section 12.2. Scripting Java
Part II: Client-Side JavaScript
Chapter 13. JavaScript in Web Browsers
Section 13.1. The Web Browser Environment
Section 13.2. Embedding Scripts in HTML
Section 13.3. Event Handlers in HTML
Section 13.4. JavaScript in URLs
Section 13.5. Execution of JavaScript Programs
Section 13.6. Client-Side Compatibility
Section 13.7. Accessibility
Section 13.8. JavaScript Security
Section 13.9. Other Web-Related JavaScript Embeddings
Chapter 14. Scripting Browser Windows
Section 14.1. Timers
Section 14.2. Browser Location and History
Section 14.3. Obtaining Window, Screen, and Browser Information
Section 14.4. Opening and Manipulating Windows
Section 14.5. Simple Dialog Boxes
Section 14.6. Scripting the Status Line
Section 14.7. Error Handling
Section 14.8. Multiple Windows and Frames
Section 14.9. Example: A Navigation Bar in a Frame
Chapter 15. Scripting Documents
Section 15.1. Dynamic Document Content
Section 15.2. Document Properties
Section 15.3. Legacy DOM: Document Object Collections
Section 15.4. Overview of the W3C DOM
Section 15.5. Traversing a Document
Section 15.6. Finding Elements in a Document
Section 15.7. Modifying a Document
Section 15.8. Adding Content to a Document
Section 15.9. Example: A Dynamically Created Table of Contents
Section 15.10. Querying Selected Text
Section 15.11. The IE 4 DOM
Chapter 16. Cascading Style Sheets and Dynamic HTML
Section 16.1. Overview of CSS
Section 16.2. CSS for DHTML
Section 16.3. Scripting Inline Styles
Section 16.4. Scripting Computed Styles
Section 16.5. Scripting CSS Classes
Section 16.6. Scripting Stylesheets
Chapter 17. Events and Event Handling
Section 17.1. Basic Event Handling
Section 17.2. Advanced Event Handling with DOM Level 2
Section 17.3. The Internet Explorer Event Model
Section 17.4. Mouse Events
Section 17.5. Key Events
Section 17.6. The onload Event
Section 17.7. Synthetic Events
Chapter 18. Forms and Form Elements
Section 18.1. The Form Object
Section 18.2. Defining Form Elements
Section 18.3. Scripting Form Elements
Section 18.4. Form Verification Example
Chapter 19. Cookies and Client-Side Persistence
Section 19.1. An Overview of Cookies
Section 19.2. Storing Cookies
Section 19.3. Reading Cookies
Section 19.4. Cookie Example
Section 19.5. Cookie Alternatives
Section 19.6. Persistent Data and Security
Chapter 20. Scripting HTTP
Section 20.1. Using XMLHttpRequest
Section 20.2. XMLHttpRequest Examples and Utilities
Section 20.3. Ajax and Dynamic Scripting
Section 20.4. Scripting HTTP with <script> Tags
Chapter 21. JavaScript and XML
Section 21.1. Obtaining XML Documents
Section 21.2. Manipulating XML with the DOM API
Section 21.3. Transforming XML with XSLT
Section 21.4. Querying XML with XPath
Section 21.5. Serializing XML
Section 21.6. Expanding HTML Templates with XML Data
Section 21.7. XML and Web Services
Section 21.8. E4X: ECMAScript for XML
Chapter 22. Scripted Client-Side Graphics
Section 22.1. Scripting Images
Section 22.2. Graphics with CSS
Section 22.3. SVG: Scalable Vector Graphics
Section 22.4. VML: Vector Markup Language
Section 22.5. Graphics in a <canvas>
Section 22.6. Graphics with Flash
Section 22.7. Graphics with Java
Chapter 23. Scripting Java Applets and Flash Movies
Section 23.1. Scripting Applets
Section 23.2. Scripting the Java Plug-in
Section 23.3. Scripting with Java
Section 23.4. Scripting Flash
Section 23.5. Scripting Flash 8
Part III: Core JavaScript Reference
Chapter 24. Core JavaScript Reference
Section 24.1. Sample Entry: how to read these reference pages
Section 24.2. arguments[ ]: an array of function arguments
Section 24.3. Arguments: arguments and other properties of a function
Section 24.4. Arguments.callee: the function that is currently running
Section 24.5. Arguments.length: the number of arguments passed to a function
Section 24.6. Array: built-in support for arrays
Section 24.7. Array.concat( ): concatenate arrays
Section 24.8. Array.join( ): concatenate array elements to form a string
Section 24.9. Array.length: the size of an array
Section 24.10. Array.pop( ): remove and return the last element of an array
Section 24.11. Array.push( ): append elements to an array
Section 24.12. Array.reverse( ): reverse the elements of an array
Section 24.13. Array.shift( ): shift array elements down
Section 24.14. Array.slice( ): return a portion of an array
Section 24.15. Array.sort( ): sort the elements of an array
Section 24.16. Array.splice( ): insert, remove, or replace array elements
Section 24.17. Array.toLocaleString( ): convert an array to a localized string
Section 24.18. Array.toString( ): convert an array to a string
Section 24.19. Array.unshift( ): insert elements at the beginning of an array
Section 24.20. Boolean: support for boolean values
Section 24.21. Boolean.toString( ): convert a boolean value to a string
Section 24.22. Boolean.valueOf( ): the boolean value of a Boolean object
Section 24.23. Date: manipulate dates and times
Section 24.24. Date.getDate( ): return the day-of-the-month field of a Date
Section 24.25. Date.getDay( ): return the day-of-the-week field of a Date
Section 24.26. Date.getFullYear( ): return the year field of a Date
Section 24.27. Date.getHours( ): return the hours field of a Date
Section 24.28. Date.getMilliseconds( ): return the milliseconds field of a Date
Section 24.29. Date.getMinutes( ): return the minutes field of a Date
Section 24.30. Date.getMonth( ): return the month field of a Date
Section 24.31. Date.getSeconds( ): return the seconds field of a Date
Section 24.32. Date.getTime( ): return a Date in milliseconds
Section 24.33. Date.getTimezoneOffset( ): determine the offset from GMT
Section 24.34. Date.getUTCDate( ): return the day-of-the-month field of a Date (universal time)
Section 24.35. Date.getUTCDay( ): return the day-of-the-week field of a Date (universal time)
Section 24.36. Date.getUTCFullYear( ): return the year field of a Date (universal time)
Section 24.37. Date.getUTCHours( ): return the hours field of a Date (universal time)
Section 24.38. Date.getUTCMilliseconds( ): return the milliseconds field of a Date (universal time)
Section 24.39. Date.getUTCMinutes( ): return the minutes field of a Date (universal time)
Section 24.40. Date.getUTCMonth( ): return the month-of-the-year field of a Date (universal time)
Section 24.41. Date.getUTCSeconds( ): return the seconds field of a Date (universal time)
Section 24.42. Date.getYear( ): return the year field of a Date
Section 24.43. Date.parse( ): parse a date/time string
Section 24.44. Date.setDate( ): set the day-of-the-month field of a Date
Section 24.45. Date.setFullYear( ): set the year and, optionally, the month and date fields of a Date
Section 24.46. Date.setHours( ): set the hours, minutes, seconds, and milliseconds fields of a Date
Section 24.47. Date.setMilliseconds( ): set the milliseconds field of a Date
Section 24.48. Date.setMinutes( ): set the minutes, seconds, and milliseconds fields of a Date
Section 24.49. Date.setMonth( ): set the month and day fields of a Date
Section 24.50. Date.setSeconds( ): set the seconds and milliseconds fields of a Date
Section 24.51. Date.setTime( ): set a Date in milliseconds
Section 24.52. Date.setUTCDate( ): set the day-of-the-month field of a Date (universal time)
Section 24.53. Date.setUTCFullYear( ): set the year, month, and day fields of a Date (universal time)
Section 24.54. Date.setUTCHours( ): set the hours, minutes, seconds, and milliseconds fields of a Date (universal time)
Section 24.55. Date.setUTCMilliseconds( ): set the milliseconds field of a Date (universal time)
Section 24.56. Date.setUTCMinutes( ): set the minutes, seconds, and milliseconds fields of a Date (universal time)
Section 24.57. Date.setUTCMonth( ): set the month and day fields of a Date (universal time)
Section 24.58. Date.setUTCSeconds( ): set the seconds and milliseconds fields of a Date (universal time)
Section 24.59. Date.setYear( ): set the year field of a Date
Section 24.60. Date.toDateString( ): return the date portion of a Date as a string
Section 24.61. Date.toGMTString( ): convert a Date to a universal time string
Section 24.62. Date.toLocaleDateString( ): return the date portion of a Date as a locally formatted string
Section 24.63. Date.toLocaleString( ): convert a Date to a locally formatted string
Section 24.64. Date.toLocaleTimeString( ): return the time portion of a Date as a locally formatted string
Section 24.65. Date.toString( ): convert a Date to a string
Section 24.66. Date.toTimeString( ): return the time portion of a Date as a string
Section 24.67. Date.toUTCString( ): convert a Date to a string (universal time)
Section 24.68. Date.UTC( ): convert a Date specification to milliseconds
Section 24.69. Date.valueOf( ): convert a Date to millisecond representation
Section 24.70. decodeURI( ): unescape characters in a URI
Section 24.71. decodeURIComponent( ): unescape characters in a URI component
Section 24.72. encodeURI( ): escape characters in a URI
Section 24.73. encodeURIComponent( ): escape characters in a URI component
Section 24.74. Error: a generic exception
Section 24.75. Error.message: a human-readable error message
Section 24.76. Error.name: the type of an error
Section 24.77. Error.toString( ): convert an Error object to a string
Section 24.78. escape( ): encode a string
Section 24.79. eval( ): execute JavaScript code from a string
Section 24.80. EvalError: thrown when eval( ) is used improperly
Section 24.81. Function: a JavaScript function
Section 24.82. Function.apply( ): invoke a function as a method of an object
Section 24.83. Function.arguments[]: arguments passed to a function
Section 24.84. Function.call( ): invoke a function as a method of an object
Section 24.85. Function.caller: the function that called this one
Section 24.86. Function.length: the number of declared arguments
Section 24.87. Function.prototype: the prototype for a class of objects
Section 24.88. Function.toString( ): convert a function to a string
Section 24.89. getClass( ): return the JavaClass of a JavaObject
Section 24.90. Global: the global object
Section 24.91. Infinity: a numeric property that represents infinity
Section 24.92. isFinite( ): determine whether a number is finite
Section 24.93. isNaN( ): check for not-a-number
Section 24.94. java: the JavaPackage for the java.* package hierarchy
Section 24.95. JavaArray: JavaScript representation of a Java array
Section 24.96. JavaClass: JavaScript representation of a Java class
Section 24.97. JavaObject: JavaScript representation of a Java object
Section 24.98. JavaPackage: JavaScript representation of a Java package
Section 24.99. JSObject: see JSObject in Part IV
Section 24.100. Math: mathematical functions and constants
Section 24.101. Math.abs( ): compute an absolute value
Section 24.102. Math.acos( ): compute an arccosine
Section 24.103. Math.asin( ): compute an arcsine
Section 24.104. Math.atan( ): compute an arctangent
Section 24.105. Math.atan2( ): compute the angle from the X axis to a point
Section 24.106. Math.ceil( ): round a number up
Section 24.107. Math.cos( ): compute a cosine
Section 24.108. Math.E: the mathematical constant e
Section 24.109. Math.exp( ): compute ex
Section 24.110. Math.floor( ): round a number down
Section 24.111. Math.LN10: the mathematical constant loge2
Section 24.112. Math.LN2: the mathematical constant loge10
Section 24.113. Math.log( ): compute a natural logarithm
Section 24.114. Math.LOG10E: the mathematical constant log2e
Section 24.115. Math.LOG2E: the mathematical constant log10e
Section 24.116. Math.max( ): return the largest argument
Section 24.117. Math.min( ): return the smallest argument
Section 24.118. Math.PI: the mathematical constant p
Section 24.119. Math.pow( ): compute xy
Section 24.120. Math.random( ): return a pseudorandom number
Section 24.121. Math.round( ): round to the nearest integer
Section 24.122. Math.sin( ): compute a sine
Section 24.123. Math.sqrt( ): compute a square root
Section 24.124. Math.SQRT1_2: the mathematical constant 1/
Section 24.125. Math.SQRT2: the mathematical constant
Section 24.126. Math.tan( ): compute a tangent
Section 24.127. NaN: the not-a-number property
Section 24.128. Number: support for numbers
Section 24.129. Number.MAX_VALUE: the maximum numeric value
Section 24.130. Number.MIN_VALUE: the minimum numeric value
Section 24.131. Number.NaN: the special not-a-number value
Section 24.132. Number.NEGATIVE_INFINITY: negative infinity
Section 24.133. Number.POSITIVE_INFINITY: infinity
Section 24.134. Number.toExponential( ): format a number using exponential notation
Section 24.135. Number.toFixed( ): format a number using fixed-point notation
Section 24.136. Number.toLocaleString( ): convert a number to a locally formatted string
Section 24.137. Number.toPrecision( ): format the significant digits of a number
Section 24.138. Number.toString( ): convert a number to a string
Section 24.139. Number.valueOf( ): return the primitive number value
Section 24.140. Object: a superclass that contains features of all JavaScript objects
Section 24.141. Object.constructor: an object's constructor function
Section 24.142. Object.hasOwnProperty( ): check whether a property is inherited
Section 24.143. Object.isPrototypeOf( ): is one object the prototype of another?
Section 24.144. Object.propertyIsEnumerable( ): will property be seen by a for/in loop?
Section 24.145. Object.toLocaleString( ): return an object's localized string representation
Section 24.146. Object.toString( ): define an object's string representation
Section 24.147. Object.valueOf( ): the primitive value of the specified object
Section 24.148. Packages: the root JavaPackage
Section 24.149. parseFloat( ): convert a string to a number
Section 24.150. parseInt( ): convert a string to an integer
Section 24.151. RangeError: thrown when a number is out of its legal range
Section 24.152. ReferenceError: thrown when reading a variable that does not exist
Section 24.153. RegExp: regular expressions for pattern matching
Section 24.154. RegExp.exec( ): general-purpose pattern matching
Section 24.155. RegExp.global: whether a regular expression matches globally
Section 24.156. RegExp.ignoreCase: whether a regular expression is case-insensitive
Section 24.157. RegExp.lastIndex: the starting position of the next match
Section 24.158. RegExp.source: the text of the regular expression
Section 24.159. RegExp.test( ): test whether a string matches a pattern
Section 24.160. RegExp.toString( ): convert a regular expression to a string
Section 24.161. String: support for strings
Section 24.162. String.charAt( ): get the nth character from a string
Section 24.163. String.charCodeAt( ): get the nth character code from a string
Section 24.164. String.concat( ): concatenate strings
Section 24.165. String.fromCharCode( ): create a string from character encodings
Section 24.166. String.indexOf( ): search a string
Section 24.167. String.lastIndexOf( ): search a string backward
Section 24.168. String.length: the length of a string
Section 24.169. String.localeCompare( ): compare one string to another, using locale-specific ordering
Section 24.170. String.match( ): find one or more regular-expression matches
Section 24.171. String.replace( ): replace substring(s) matching a regular expression
Section 24.172. String.search( ): search for a regular expression
Section 24.173. String.slice( ): extract a substring
Section 24.174. String.split( ): break a string into an array of strings
Section 24.175. String.substr( ): extract a substring
Section 24.176. String.substring( ): return a substring of a string
Section 24.177. String.toLocaleLowerCase( ): convert a string to lowercase
Section 24.178. String.toLocaleUpperCase( ): convert a string to uppercase
Section 24.179. String.toLowerCase( ): convert a string to lowercase
Section 24.180. String.toString( ): return the string
Section 24.181. String.toUpperCase( ): convert a string to uppercase
Section 24.182. String.valueOf( ): return the string
Section 24.183. SyntaxError: thrown to signal a syntax error
Section 24.184. TypeError: thrown when a value is of the wrong type
Section 24.185. undefined: the undefined value
Section 24.186. unescape( ): decode an escaped string
Section 24.187. URIError: thrown by URI encoding and decoding methods
Part IV: Client-Side JavaScript Reference
Chapter 25. Client-Side JavaScript Reference
Section 25.1. Anchor: the target of a hypertext link
Section 25.2. Anchor.focus( ): scroll to make the anchor location visible
Section 25.3. Applet: an applet embedded in a web page
Section 25.4. Attr: an attribute of a document element
Section 25.5. Button: see Input
Section 25.6. Canvas: an HTML element for scripted drawing
Section 25.7. Canvas.getContext( ): return a context for drawing on the canvas
Section 25.8. CanvasGradient: a color gradient for use in a canvas
Section 25.9. CanvasGradient.addColorStop( ): add a change of color at some point in the gradient
Section 25.10. CanvasPattern: an image-based pattern for use in a Canvas
Section 25.11. CanvasRenderingContext2D: the object used for drawing on a canvas
Section 25.12. CanvasRenderingContext2D.arc( ): add an arc to the current subpath of a canvas, using a center point and radius
Section 25.13. CanvasRenderingContext2D.arcTo( ): add an arc of a circle to the current subpath, using tangent points and a
radius
Section 25.14. CanvasRenderingContext2D.beginPath( ): start a new collection of subpaths in a canvas
Section 25.15. CanvasRenderingContext2D.bezierCurveTo( ): add a cubic Bézier curve to the current subpath
Section 25.16. CanvasRenderingContext2D.clearRect( ): erase a rectangular area of a canvas
Section 25.17. CanvasRenderingContext2D.clip( ): set the clipping path of a canvas
Section 25.18. CanvasRenderingContext2D.closePath( ): closes an open subpath
Section 25.19. CanvasRenderingContext2D.createLinearGradient( ): create a linear color gradient
Section 25.20. CanvasRenderingContext2D.createPattern( ): create a pattern of tiled images
Section 25.21. CanvasRenderingContext2D.createRadialGradient( ): create a radial color gradient
Section 25.22. CanvasRenderingContext2D.drawImage( ): draw an image
Section 25.23. CanvasRenderingContext2D.fill( ): fill the path
Section 25.24. CanvasRenderingContext2D.fillRect( ): fill a rectangle
Section 25.25. CanvasRenderingContext2D.globalCompositeOperation: specifies how colors are combined on the canvas
Section 25.26. CanvasRenderingContext2D.lineCap: specifies how the ends of lines are rendered
Section 25.27. CanvasRenderingContext2D.lineJoin: specifies how vertices are rendered
Section 25.28. CanvasRenderingContext2D.lineTo( ): add a straight line to the current subpath
Section 25.29. CanvasRenderingContext2D.miterLimit: maximum-miter-length-to-line-width ratio
Section 25.30. CanvasRenderingContext2D.moveTo( ): sets the current position and begins a new subpath
Section 25.31. CanvasRenderingContext2D.quadraticCurveTo( ): add a quadratic Bezier curve to the current subpath
Section 25.32. CanvasRenderingContext2D.rect( ): add a rectangle subpath to the path
Section 25.33. CanvasRenderingContext2D.restore( ): reset drawing state to saved values
Section 25.34. CanvasRenderingContext2D.rotate( ): rotate the coordinate system of the canvas
Section 25.35. CanvasRenderingContext2D.save( ): save a copy of the current graphics state
Section 25.36. CanvasRenderingContext2D.scale( ): scale the user coordinate system of the canvas
Section 25.37. CanvasRenderingContext2D.stroke( ): draw the current path
Section 25.38. CanvasRenderingContext2D.strokeRect( ): draw a rectangle
Section 25.39. CanvasRenderingContext2D.translate( ): translate the user coordinate system of the canvas
Section 25.40. CDATASection: a CDATA node in an XML document
Section 25.41. CharacterData: common functionality for Text and Comment nodes
Section 25.42. CharacterData.appendData( ): append a string to a Text or Comment node
Section 25.43. CharacterData.deleteData( ): delete characters from a Text or Comment node
Section 25.44. CharacterData.insertData( ): insert a string into a Text or Comment node
Section 25.45. CharacterData.replaceData( ): replace characters of a Text or Comment node with a string
Section 25.46. CharacterData.substringData( ): extract a substring from a Text or Comment node
Section 25.47. Checkbox: see Input
Section 25.48. Comment: an HTML or XML comment
Section 25.49. CSS2Properties: a set of CSS attributes and their values
Section 25.50. CSSRule: a rule in a CSS stylesheet
Section 25.51. CSSStyleSheet: a CSS stylesheet
Section 25.52. CSSStyleSheet.addRule( ): IE-specific method to insert a rule into a stylesheet
Section 25.53. CSSStyleSheet.deleteRule( ): delete a rule from a stylesheet
Section 25.54. CSSStyleSheet.insertRule( ): insert a rule into a stylesheet
Section 25.55. CSSStyleSheet.removeRule( ): IE-specific method to remove a rule from a stylesheet
Section 25.56. Document: an HTML or XML document
Section 25.57. Document.addEventListener( ): see Element.addEventListener( )
Section 25.58. Document.attachEvent( ): see Element.attachEvent( )
Section 25.59. Document.createAttribute( ): create a new Attr node
Section 25.60. Document.createAttributeNS( ): create an Attr with a name and namespace
Section 25.61. Document.createCDATASection( ): create a new CDATASection node
Section 25.62. Document.createComment( ): create a new Comment node
Section 25.63. Document.createDocumentFragment( ): create a new, empty DocumentFragment node
Section 25.64. Document.createElement( ): create a new Element node
Section 25.65. Document.createElementNS( ): create a new Element node using a namespace
Section 25.66. Document.createEvent( ): create an Event object
Section 25.67. Document.createExpression( ): create an XPath expression for later evaluation
Section 25.68. Document.createProcessingInstruction( ): create a ProcessingInstruction node
Section 25.69. Document.createRange( ): create a Range object
Section 25.70. Document.createTextNode( ): create a new Text node
Section 25.71. Document.detachEvent( ): see Element.detachEvent( )
Section 25.72. Document.dispatchEvent( ): see Element.dispatchEvent( )
Section 25.73. Document.evaluate( ): evaluate an XPath expression
Section 25.74. Document.getElementById( ): find an element with the specified unique ID
Section 25.75. Document.getElementsByTagName( ): return all Element nodes with the specified name
Section 25.76. Document.getElementsByTagNameNS( ): return all Element nodes with a specified name and namespace
Section 25.77. Document.importNode( ): copy a node from another document for use in this document
Section 25.78. Document.loadXML( ): populate this Document by parsing a string of XML markup
Section 25.79. Document.removeEventListener( ): see Element.removeEventListener( )
Section 25.80. DocumentFragment: adjacent nodes and their subtrees
Section 25.81. DocumentType: the DTD of an XML document
Section 25.82. DOMException: signal exceptions or errors for core DOM objects
Section 25.83. DOMImplementation: methods independent of any particular document
Section 25.84. DOMImplementation.createDocument( ): create a new Document and the specified root element
Section 25.85. DOMImplementation.createDocumentType( ): create a DocumentType node
Section 25.86. DOMImplementation.hasFeature( ): determine whether the implementation supports a feature
Section 25.87. DOMParser: parses XML markup to create a Document
Section 25.88. DOMParser.parseFromString( ): parse XML markup
Section 25.89. Element: an HTML or XML element
Section 25.90. Element.addEventListener( ): register an event handler
Section 25.91. Element.attachEvent( ): register an event handler
Section 25.92. Element.detachEvent( ): delete an event listener
Section 25.93. Element.dispatchEvent( ): dispatch a synthetic event to this node
Section 25.94. Element.getAttribute( ): return the string value of a named attribute
Section 25.95. Element.getAttributeNode( ): return the Attr node for the named attribute
Section 25.96. Element.getAttributeNodeNS( ): return the Attr node for an attribute with a namespace
Section 25.97. Element.getAttributeNS( ): get the value of an attribute that uses namespaces
Section 25.98. Element.getElementsByTagName( ): find descendant elements with a specified tag name
Section 25.99. Element.getElementsByTagNameNS( ): return descendant elements with the specified name and namespace
Section 25.100. Element.hasAttribute( ): determine whether this element has a specified attribute
Section 25.101. Element.hasAttributeNS( ): determine whether this element has a specified attribute
Section 25.102. Element.removeAttribute( ): delete a named attribute of an element
Section 25.103. Element.removeAttributeNode( ): remove an Attr node from an element
Section 25.104. Element.removeAttributeNS( ): delete an attribute specified by name and namespace
Section 25.105. Element.removeEventListener( ): delete an event listener
Section 25.106. Element.setAttribute( ): create or change an attribute of an element
Section 25.107. Element.setAttributeNode( ): add a new Attr node to an Element
Section 25.108. Element.setAttributeNodeNS( ): add a namespace Attr node to an Element
Section 25.109. Element.setAttributeNS( ): create or change an attribute with a namespace
Section 25.110. Event: information about an event
Section 25.111. Event.initEvent( ): initialize the properties of a new event
Section 25.112. Event.preventDefault( ): cancel default action of an event
Section 25.113. Event.stopPropagation( ): do not dispatch an event any further
Section 25.114. ExternalInterface: a bidirectional interface to Flash
Section 25.115. ExternalInterface.addCallback( ): expose an ActionScript method for execution from JavaScript
Section 25.116. ExternalInterface.call( ): call a JavaScript function from ActionScript
Section 25.117. FileUpload: see Input
Section 25.118. FlashPlayer: plug-in for Flash movies
Section 25.119. FlashPlayer.GetVariable( ): return a value defined in a Flash movie
Section 25.120. FlashPlayer.GotoFrame( ): skip to the specified frame of a movie
Section 25.121. FlashPlayer.IsPlaying( ): check whether a movie is playing
Section 25.122. FlashPlayer.LoadMovie( ): load an auxiliary movie
Section 25.123. FlashPlayer.Pan( ): move the viewport of the movie
Section 25.124. FlashPlayer.PercentLoaded( ): determine how much of the movie has loaded
Section 25.125. FlashPlayer.Play( ): play a movie
Section 25.126. FlashPlayer.Rewind( ): rewind the movie to its first frame
Section 25.127. FlashPlayer.SetVariable( ): set a variable defined by a Flash movie
Section 25.128. FlashPlayer.SetZoomRect( ): set the viewport of a movie
Section 25.129. FlashPlayer.StopPlay( ): stop the movie
Section 25.130. FlashPlayer.TotalFrames( ): return the length of the movie, in frames
Section 25.131. FlashPlayer.Zoom( ): zoom in or out
Section 25.132. Form: a <form> in an HTML document
Section 25.133. Form.elements[]: the input elements of a form
Section 25.134. Form.onreset: event handler invoked when a form is reset
Section 25.135. Form.onsubmit: event handler invoked when a form is submitted
Section 25.136. Form.reset( ): reset the elements of a form to their default values
Section 25.137. Form.submit( ): submit form data to a web server
Section 25.138. Frame: a <frame> in an HTML document
Section 25.139. Hidden: see Input
Section 25.140. History: the URL history of the browser
Section 25.141. History.back( ): return to the previous URL
Section 25.142. History.forward( ): visit the next URL
Section 25.143. History.go( ): revisit a URL
Section 25.144. HTMLCollection: array of HTML elements accessible by position or name
Section 25.145. HTMLCollection.item( ): get an element by position
Section 25.146. HTMLCollection.namedItem( ): get an element by name
Section 25.147. HTMLDocument: the root of an HTML document tree
Section 25.148. HTMLDocument.all[]: all HTML elements in a document
Section 25.149. HTMLDocument.close( ): close an open document and display it
Section 25.150. HTMLDocument.cookie: the cookie(s) of the document
Section 25.151. HTMLDocument.domain: the security domain of a document
Section 25.152. HTMLDocument.getElementsByName( ): find elements with the specified name attribute
Section 25.153. HTMLDocument.open( ): begin a new document, erasing the current one
Section 25.154. HTMLDocument.write( ): append HTML text to an open document
Section 25.155. HTMLDocument.writeln( ): append HTML text and a newline to an open document
Section 25.156. HTMLElement: an element in an HTML document
Section 25.157. HTMLElement.onclick: event handler invoked when the user clicks on an element
Section 25.158. HTMLElement.ondblclick: event handler invoked when the user double-clicks on an element
Section 25.159. HTMLElement.onkeydown: event handler invoked when the user presses a key
Section 25.160. HTMLElement.onkeypress: event handler invoked when the user presses a key
Section 25.161. HTMLElement.onkeyup: event handler invoked when the user releases a key
Section 25.162. HTMLElement.onmousedown: event handler invoked when the user presses a mouse button
Section 25.163. HTMLElement.onmousemove: event handler invoked when the mouse moves within an element
Section 25.164. HTMLElement.onmouseout: event handler invoked when mouse moves out of an element
Section 25.165. HTMLElement.onmouseover: event handler invoked when the mouse moves over an element
Section 25.166. HTMLElement.onmouseup: event handler invoked when the user releases a mouse button
Section 25.167. HTMLElement.scrollIntoView( ): make an element visible
Section 25.168. IFrame: an <iframe> in an HTML document
Section 25.169. Image: an image in an HTML document
Section 25.170. Image.onabort: event handler invoked when the user aborts image loading
Section 25.171. Image.onerror: event handler invoked when an error occurs during image loading
Section 25.172. Image.onload: event handler invoked when an image finishes loading
Section 25.173. Input: an input element in an HTML form
Section 25.174. Input.blur( ): remove keyboard focus from a form element
Section 25.175. Input.click( ): simulate a mouse click on a form element
Section 25.176. Input.focus( ): give keyboard focus to a form element
Section 25.177. Input.onblur: the handler invoked when a form element loses focus
Section 25.178. Input.onchange: event handler invoked when a form element's value changes
Section 25.179. Input.onclick: event handler invoked when a form element is clicked
Section 25.180. Input.onfocus: event handler invoked when a form element gains focus
Section 25.181. Input.select( ): select the text in a form element
Section 25.182. JavaArray, JavaClass, JavaObject, JavaPackage: see Part III
Section 25.183. JSObject: Java representation of a JavaScript object
Section 25.184. JSObject.call( ): invoke a method of a JavaScript object
Section 25.185. JSObject.eval( ): evaluate a string of JavaScript code
Section 25.186. JSObject.getMember( ): read a property of a JavaScript object
Section 25.187. JSObject.getSlot( ): read an array element of a JavaScript object
Section 25.188. JSObject.getWindow( ): return initial JSObject for browser window
Section 25.189. JSObject.removeMember( ): delete a property of a JavaScript object
Section 25.190. JSObject.setMember( ): set a property of a JavaScript object
Section 25.191. JSObject.setSlot( ): set an array element of a JavaScript object
Section 25.192. JSObject.toString( ): return the string value of a JavaScript object
Section 25.193. KeyEvent: details about a keyboard event
Section 25.194. Layer: an obsolete Netscape API
Section 25.195. Link: a hyperlink or anchor in an HTML document
Section 25.196. Link.blur( ): take keyboard focus away from a hyperlink
Section 25.197. Link.focus( ): make a link visible and give it keyboard focus
Section 25.198. Link.onclick: event handler invoked when a Link is clicked
Section 25.199. Link.onmouseout: event handler invoked when the mouse leaves a link
Section 25.200. Link.onmouseover: event handler invoked when the mouse goes over a link
Section 25.201. Location: represents and controls browser location
Section 25.202. Location.reload( ): reload the current document
Section 25.203. Location.replace( ): replace one displayed document with another
Section 25.204. MimeType: represents a MIME datatype
Section 25.205. MouseEvent: details about a mouse event
Section 25.206. MouseEvent.initMouseEvent( ): initialize the properties of a MouseEvent object
Section 25.207. Navigator: information about the browser in use
Section 25.208. Navigator.javaEnabled( ): test whether Java is available
Section 25.209. Node: a node in a document tree
Section 25.210. Node.appendChild( ): insert a node as the last child of this node
Section 25.211. Node.cloneNode( ): duplicate a node and, optionally, all of its descendants
Section 25.212. Node.hasAttributes( ): determine whether a node has attributes
Section 25.213. Node.hasChildNodes( ): determine whether a node has children
Section 25.214. Node.insertBefore( ): insert a node into the document tree before the specified node
Section 25.215. Node.isSupported( ): determine if a node supports a feature
Section 25.216. Node.normalize( ): merge adjacent Text nodes and remove empty ones
Section 25.217. Node.removeChild( ): remove (and return) the specified child of this node
Section 25.218. Node.replaceChild( ): replace a child node with a new node
Section 25.219. Node.selectNodes( ): select nodes with an XPath query
Section 25.220. Node.transformNode( ): transform a node to a string using XSLT
Section 25.221. Node.transformNodeToObject( ): transform a node to a document using XSLT
Section 25.222. NodeList: a read-only array of nodes
Section 25.223. NodeList.item(): get an element of a NodeList
Section 25.224. Option: an option in a Select element
Section 25.225. Packages: see Packages in Part III
Section 25.226. Password: see Input
Section 25.227. Plugin: describes an installed plug-in
Section 25.228. ProcessingInstruction : a processing instruction in an XML document
Section 25.229. Radio: see Input
Section 25.230. Range: represents a contiguous range of a document
Section 25.231. Range.cloneContents(): copy range contents into a DocumentFragment
Section 25.232. Range.cloneRange(): make a copy of this range
Section 25.233. Range.collapse(): make one boundary point equal to the other
Section 25.234. Range.compareBoundaryPoints(): compare positions of two ranges
Section 25.235. Range.deleteContents(): delete a region of the document
Section 25.236. Range.detach(): free a Range object
Section 25.237. Range.extractContents( ): delete document content and return it in a DocumentFragment
Section 25.238. Range.insertNode( ): insert a node at the start of a range
Section 25.239. Range.selectNode(): set range boundaries to a node
Section 25.240. Range.selectNodeContents( ): set range boundaries to the children of a node
Section 25.241. Range.setEnd( ): set the end point of a range
Section 25.242. Range.setEndAfter( ): end a range after a specified node
Section 25.243. Range.setEndBefore( ): end a range before the specified node
Section 25.244. Range.setStart( ): set the start point of a range
Section 25.245. Range.setStartAfter( ): start a range after the specified node
Section 25.246. Range.setStartBefore( ): start a range before the specified node
Section 25.247. Range.surroundContents( ): surround range contents with the specified node
Section 25.248. Range.toString( ): get range contents as a plain-text string
Section 25.249. RangeException: signals a range-specific exception
Section 25.250. Reset: see Input
Section 25.251. Screen: provides information about the display
Section 25.252. Synopsis
Section 25.253. Select: a graphical selection list
Section 25.254. Select.add( ): insert an <option> element
Section 25.255. Select.blur( ): take keyboard focus away from this element
Section 25.256. Select.focus( ): give keyboard focus to this element
Section 25.257. Select.onchange: event handler invoked when the selection changes
Section 25.258. Select.options[]: the choices in a Select object
Section 25.259. Select.remove( ): remove an <option>
Section 25.260. Style: see CSS2Properties
Section 25.261. Submit: see Input
Section 25.262. Table: a <table> in an HTML document
Section 25.263. Table.createCaption( ): get or create a <caption>
Section 25.264. Table.createTFoot( ): get or create a <tfoot>
Section 25.265. Table.createTHead( ): get or create a <thead>
Section 25.266. Table.deleteCaption( ): delete the <caption> of a table
Section 25.267. Table.deleteRow( ): delete a row of a table
Section 25.268. Table.deleteTFoot( ): delete the <tfoot> of a table
Section 25.269. Table.deleteTHead( ): delete the <thead> of a table
Section 25.270. Table.insertRow( ): add a new, empty row to the table
Section 25.271. TableCell: cell in an HTML table
Section 25.272. TableRow: a <tr> element in an HTML table
Section 25.273. TableRow.deleteCell( ): delete a cell in a table row
Section 25.274. TableRow.insertCell( ): insert a new, empty <td> element into a table row
Section 25.275. TableSection: a header, footer, or body section of a table
Section 25.276. TableSection.deleteRow( ): delete a row within a table section
Section 25.277. TableSection.insertRow( ): insert a new, empty row into this table section
Section 25.278. Text: a run of text in an HTML or XML document
Section 25.279. Text.splitText( ): split a Text node in two
Section 25.280. Textarea: a multiline text input area
Section 25.281. Textarea.blur( ): take keyboard focus away from this element
Section 25.282. Textarea.focus( ): give keyboard focus to this element
Section 25.283. Textarea.onchange: event handler invoked when input value changes
Section 25.284. Textarea.select( ): select the text in this element
Section 25.285. TextField: see Input
Section 25.286. UIEvent: details about user-interface events
Section 25.287. UIEvent.initUIEvent( ): initialize the properties of a UIEvent object
Section 25.288. Window: a web browser window or frame
Section 25.289. Window.addEventListener( ): see Element.addEventListener( )
Section 25.290. Window.alert( ): display a message in a dialog box
Section 25.291. Window.attachEvent( ): see Element.attachEvent( )
Section 25.292. Window.blur( ): remove keyboard focus from a top-level window
Section 25.293. Window.clearInterval( ): stop periodically executing code
Section 25.294. Window.clearTimeout( ): cancel deferred execution
Section 25.295. Window.close( ): close a browser window
Section 25.296. Window.confirm( ): ask a yes-or-no question
Section 25.297. Window.defaultStatus: the default status line text
Section 25.298. Window.detachEvent( ): see Element.detachEvent( )
Section 25.299. Window.focus( ): give keyboard focus to a window
Section 25.300. Window.getComputedStyle( ): retrieve the CSS styles used to render an element
Section 25.301. Window.moveBy( ): move a window to a relative position
Section 25.302. Window.moveTo( ): move a window to an absolute position
Section 25.303. Window.onblur: event handler invoked when the window loses keyboard focus
Section 25.304. Window.onerror: error handler invoked when a JavaScript error occurs
Section 25.305. Window.onfocus: event handler invoked when a window is given focus
Section 25.306. Window.onload: event handler invoked when a document finishes loading
Section 25.307. Window.onresize: event handler invoked when a window is resized
Section 25.308. Window.onunload: the handler invoked when the browser leaves a page
Section 25.309. Window.open( ): open a new browser window or locate a named window
Section 25.310. Window.print( ): print the document
Section 25.311. Window.prompt( ): get user input with a dialog box
Section 25.312. Window.removeEventListener( ): see Element.removeEventListener( )
Section 25.313. Window.resizeBy( ): resize a window by a relative amount
Section 25.314. Window.resizeTo( ): resize a window
Section 25.315. Window.scrollBy( ): scroll the document by a relative amount
Section 25.316. Window.scrollTo( ): scroll the document
Section 25.317. Window.setInterval( ): periodically execute specified code
Section 25.318. Window.setTimeout( ): defer execution of code
Section 25.319. Window.status: specify a transient status-line message
Section 25.320. XMLHttpRequest: An HTTP request and response
Section 25.321. XMLHttpRequest.abort( ): cancel an HTTP request
Section 25.322. XMLHttpRequest.getAllResponseHeaders( ): return unparsed HTTP response headers
Section 25.323. XMLHttpRequest.getResponseHeader( ): get the value of a named HTTP response header
Section 25.324. XMLHttpRequest.onreadystatechange: event handler function invoked when readyState changes
Section 25.325. XMLHttpRequest.open( ): initialize HTTP request parameters
Section 25.326. XMLHttpRequest.send( ): send an HTTP request
Section 25.327. XMLHttpRequest.setRequestHeader( ): add a HTTP request header to the request
Section 25.328. XMLSerializer: serializes XML documents and nodes
Section 25.329. XMLSerializer.serializeToString( ): convert an XML document or node to a string
Section 25.330. XPathExpression: a compiled XPath query
Section 25.331. XPathExpression.evaluate( ): evaluate a compiled XPath query
Section 25.332. XPathResult: the result of an XPath query
Section 25.333. XPathResult.iterateNext( ): return the next node that matches an XPath query
Section 25.334. XPathResult.snapshotItem( ): return a node that matches an XPath query
Section 25.335. XSLTProcessor: transform XML with XSLT stylesheets
Section 25.336. XSLTProcessor.clearParameters( ): delete all stylesheet parameter values
Section 25.337. XSLTProcessor.getParameter( ): return the value of a named parameter
Section 25.338. XSLTProcessor.importStylesheet( ): specify an XSLT stylesheet for transformations
Section 25.339. XSLTProcessor.removeParameter( ): delete a parameter value
Section 25.340. XSLTProcessor.reset( ): restore an XSLTProcessor to its default state
Section 25.341. XSLTProcessor.setParameter( ): set a stylesheet parameter
Section 25.342. XSLTProcessor.transformToDocument( ): transform a node or document to a new document
Section 25.343. XSLTProcessor.transformToFragment( ): transform a node or document to a DocumentFragment
About the Author
Colophon
Index
JavaScript: The Definitive Guide, Fifth Edition

by David Flanagan

Copyright © 2006, 2002, 1998, 1997, 1996 O'Reilly Media, Inc. All rights reserved. Printed in the United
States of America.

Published by O'Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.

O'Reilly books may be purchased for educational, business, or sales promotional use. Online editions are
also available for most titles (safari.oreilly.com ). For more information, contact our corporate/institutional
sales department: (800) 998-9938 or [email protected] .

Editor: Debra Cameron

Production Editor: Sanders Kleinfeld

Copyeditor: Mary Anne Weeks Mayo


Proofreader: Sanders Kleinfeld

Indexer: Ellen Troutman-Zaig

Cover Designer: Edie Freedman

Interior Designer: David Futato

Illustrators: Robert Romano and Jessamyn Read

Printing History:

August 1996: Beta Edition.


January 1997: Second Edition.

June 1998: Third Edition.

January 2002: Fourth Edition.

August 2006: Fifth Edition.

Nutshell Handbook, the Nutshell Handbook logo, and the O'Reilly logo are registered trademarks of
O'Reilly Media, Inc. JavaScript: The Definitive Guide , the image of a Javan rhinoceros, and related trade
dress are trademarks of O'Reilly Media, Inc. Java™, all Java-based trademarks and logos, and
JavaScript™ are trademarks or registered trademarks of Sun Microsystems, Inc., in the United States and
other countries. O'Reilly Media, Inc. is independent of Sun Microsystems.

Mozilla and Firefox are registered trademarks of the Mozilla Foundation. Netscape and Netscape Navigator
are registered trademarks of America Online, Inc. Internet Explorer and the Internet Explorer Logo are
Random documents with unrelated
content Scribd suggests to you:
The Project Gutenberg eBook of Meren takaa I
This ebook is for the use of anyone anywhere in the United States
and most other parts of the world at no cost and with almost no
restrictions whatsoever. You may copy it, give it away or re-use it
under the terms of the Project Gutenberg License included with this
ebook or online at www.gutenberg.org. If you are not located in the
United States, you will have to check the laws of the country where
you are located before using this eBook.

Title: Meren takaa I

Author: Aino Kallas

Release date: April 3, 2018 [eBook #56915]

Language: Finnish

Credits: E-text prepared by Anna Siren and Tapio Riikonen

*** START OF THE PROJECT GUTENBERG EBOOK MEREN TAKAA I


***
E-text prepared by Anna Siren and Tapio Riikonen

MEREN TAKAA
Kirj.

Aino Kallas

Helsingissä, Kustannusosakeyhtiö Otava, 1904.

Sensuurin hyväksymä, 2 p. Marraskuuta 1904, Helsingissä.

SISÄLLYS:

Esipuhe.
Saarenmaa.
Kaupunkimatka.
Lukkari ja kirkkoherra.
Kaalin aukolla.
Työorjat.
Kubja-Pärtin kuolema.
Ingel.
Vihollinen.

Esipuhe.

Saarekkeena Saarenmaalla, kesantolakeuksien keskellä, on pieni,


vanha talo, mehiläispesineen, hedelmäpuineen, huojuvine
haapoineen, jotka varistavat valkoisia haituvia. Kokonaisen pitkän,
kesäkuuman päivän iltapuolen olen istunut kirsikkapuitten alla,
mehiläisten suristessa, ja kuunnellut elämänsä iltapuoleen joutuneen
miehen kertomuksia kansansa raskailta ajoilta. Nuori polvi tuntee ne
ainoastaan kertomuksina, mutta niitten silminnäkijöitä on vielä
monta elossa, eivätkä ne yli neljäkymmentä vuotta, mitkä ovat
kuluneet työorjuuden ajoista, ole jaksaneet sen kaikkia jälkiä
poistaa. Tässä pari pientä kertomusta, jotka itsepintaisimmin jäivät
kytemään mielessä.

Tartto 27/10 1904.


SAARENMAA.

Saarenmaa, orjien saari…

Lakeat laidunmaat, hietanummet, joilla kyläläisten karja kesäisin


syötöllä kulkee. Virstamääriä tasaista, puutonta maata, armotta
alttiina auringon paahteelle, joka sitä hitaasti kärventää, kutistaen
ruohon matalaksi nukaksi. Saviperäinen, harmaa maa halkeilee
kuivuuttaan, rakoillen syvinä vakoina ja uurteina, jotka risteilevät
kuin vanhuuden rypyt. Ei ainoakaan puu suo siimestään, maa on
kova kuin kivi, rankkasadekin sen vain vaivoin lävistää, vesi jää
pinnalle pieniksi, ruskeiksi ojiksi. Sateen jälkeen maa vilisee
kuorietanoita, jotka hitaasti matelevat eteenpäin, kantaen asuntoaan
seljässään.

Jo ennen Juhannusta on kaikki kasvullisuus karkoittunut,


ainoastaan kataja visassa sitkeydessään ajaa juurensa helteen
kovettamaan maahan. Mutta nälistyneet lammaslaumat, joilta ei
yksikään orastava sirkkalehti säästy, eivät jätä senkään pistäviä oksia
rauhaan. Ne jytystelevät katajapensaita joka puolelta, pureskellen ne
suuriksi, vihreiksi mättäiksi, jotka toinen toisensa vieressä eroavat
tasangosta. Se on kuin rococo-aikuinen puutarha, jonka taitavan
puutarhurin käsi on kuvioiksi leikellyt, toiset ovat ympyriäisiä kuin
pallo, muutamat munan soikeita, toiset supistuvat säännölliseksi
sipuliksi kuin venäläisen kirkon kupu. Katajapensaitten välissä kasvaa
ainoastaan ohdakkeita ja pientä, punaista kukkaa, jonka tulipunaiset,
maata matavat kukkatertut loistavat kuin kimppu säkeniä
kuivuneessa ruohossa.

Maisema kehittyy vähitellen, — karjamaat muuttuvat matalaa


pähkinäpensaikkoa kasvavaksi nummeksi, tulee vastaan keto, jossa
kataja yhtäkkiä on kiivennyt puuksi, ennen kuulumattomassa
ylpeyden puuskassa, muistuttaen huonoa, kituvaa jäljennöstä etelän
hautasypressilehdoista. Yli tien kulkee matala mäenharjanne, jonka
tuuli näkyy tahtovan lakaista pois, se nostaa siitä yhtämittaa
kokonaisia pilviä valkeaa lentohiekkaa, joka peittää lähitienoon, niin
että jalka uppoaa siihen kuin sahajauhoihin.

Saarenmaalaiset talot ja mökit vilahtavat tien varsilta, joskus


yksinäisinä, pensaikkoon kätkeyneinä tai kuin viskattuina
kivikkotasangolle, toisinaan kyliksi yhtyen, viisi, kuusi taloa samassa
ryhmässä. Mutta aina yhtä nöyrinä ja matalina, — syvälle kaltevat
turve- ja olkikatot varjostavat seiniä kuin syvään silmille painettu
lakki. Ne ovat kyyristyneet niin mataliksi kuin suinkin, ikäänkuin
mahdollisimman vähän huomiota herättääkseen, niitten ainainen,
harmaa väri eroaa tuskin huomattavasti ympäristöstä. Ja silloinkin,
kun kyliksi yhtyvät, ne vaikuttavat yhtä arasti ja pelokkaasti,
ikäänkuin nuo puolikymmentä taloa takaa-ajon pelvosta olisivat
toisiaan likenneet. Mustina ja rappeutuneina, asuintupa, riihi ja
navetta yhtenä rakennuksena, ne kyyhöttävät mahdottomien
kattojensa alla, jotka näyttävät tahtovan tukahuttaa, painaa
puristuksiin kaiken elämän. Tuon tuostakin vilahtaa tuulimylly,
pyöreällä kivijalustallaan, hitaasti leikaten ilmaa harmailla siivillään.
Saarenmaan sydän on kiveä, kevättulvien ja sateitten aikana
lohkeilee äkkiä maa, ja tulee näkyviin valkeanvihertävä kalkkikivi,
aivankuin olisi maassa luuhun asti uloittuva haava. Se on
Saarenmaan selkäranka.

On monta historiaa Saarenmaan menneisyydestä, mutta ei


yhtäkään niin puolueetonta kuin tämä luonto. Saarenmaalla luonto
kirjoittaa historiaa seitsensatavuotisesta orjuudesta.

Koko maisema on masennettu ja nöyrä, aivankuin olisi pitkät ajat


raskaan rauta-anturan alle tallautunut. Ne ovat työorjan
nälkiintyneet, syyttävät kasvot, jotka paistavat joka puolelta vastaan
kovaksi kuivuneesta, käyttämättömästä karjamaasta, — sille, jolla on
silmät nähdä.

Saarenmaan kivessäkin on orjan luonto, se ei milloinkaan vuorina


kohoa, ei taivasta uhmaile, vaan maan sisustaan vetäytyy, kätkee
uhkansa sydämeensä kuin orja. Ja karjanummien ohdakkeet, joita
tuskin maasta eroitat, pistävät salavihaisina kättäsi tai jalkaasi,
mutta kuitenkin pidät niitä niin halpoina, ettet edes taittamalla
rankaise, vaan astut eteenpäin, ajatellen: ohdakkeen kostoa, orjan
kostoa!

Saarenmaan kukoistuskin on lyhyttä ja räikeää kuin orjan


pyhäpäivä. Ainoastaan parina viikkona ennen Juhannusta aaltoilevat
aito saarenmaalaiset apilapellot kirkkaissa väreissä, korkeiksi ja
reheviksi yleten. Kuin Itämeren kukka-ansari, täynnä tuulen tuomia
näytteitä joka ilmansuunnalta, harvinaisia kukkia, jotka muuten
pakenevat paljon eteläisemmille asuinsijoille. Viikate on jo valmiina
sitä varten, sen häpäisevää hiontaa kuuluu joka talosta, sen terä
välkähtää mökkien nurkilta, — huomenna tai ylihuomenna on
lopussa tämä värivivahdusten vallaton leikki. Mutta pari päivää
ennen Juhannusta, ne ovat Saarenmaan morsiusaikaa, tuuleen
tuhlattua hunajantuoksua, väreissä laulettua korkeata veisua. Se on
korvausta karuista karjamaista ja nälkäisistä nummista, se on
Saarenmaalle samaa, mitä on saariston työorjalle pyhäpäivä, jolloin
hän pukee ylleen kirjavan kansallispukunsa, jonka iloiset värit saavat
hänet arkiryysynsä unohtamaan. Matalien, kivistä koottujen aitojen
vierissä kukkivat orjantappurat, muuttaen kuivat, pölyiset maantiet
raittiiksi ruusutarhoiksi, kätkien okansa punaisten kukkiensa alle kuin
kissa kyntensä. Vetiset, alavat maat aaltoilevat valkeaa suovillaa,
pehmeitä kuin äsken sataneet lumihöytäleet, ja hetteen silmän luona
kukoistaa lemmikki, kansantarun mukaan aina veden partaalla,
pestäkseen siniset silmänsä puhtaaksi. Sieltä täältä herraskartanojen
kujilta pilkoittavat hevoskastanjan valkeat kukkatertut, suorina ja
jäykkinä oksillaan kuin sytytetyt kynttiläkruunut. Hieta-äyräitten ja
kiviaitojen lomiin, vieläpä olkikattojen rakoihinkin on imeytynyt
kellertävä maksaruoho, joka kasvaa tiheinä mättäinä kuin keltainen
sammal.

Se on Saarenmaa, orjien saari…


KAUPUNKIMATKA.

Toru Mihkel ajaa hiljakseen kartanon halkokuormaa kaupunkiin. Hän


istuskelee väliin kuorman nokalla, jalat roikkuen, väliin kävelee
vieressä. Hän astuu pahasti, jalat taipuvat polvesta ja notkahtelevat
joka askeleella. Hän on pitkä ja hintelä, olkapäät vähän kumarat,
alahuuli lerpattaa velttona.

Hän on hevosineen kuormineen paksun pölypilven peitossa,


maantie on kuin jauholaari, joka pölähtelee joka kosketuksesta.
Suuret, vihaiset paarmat piirittävät hevosta joka puolelta, imeytyen
sen laihoille lauteille ja luisiin koipiin. Mihkel sivaltelee niitä tuon
tuostakin koivun varvulla ja kiroaa välillä, toisinaan pakoittaa
hevosen hölkkäjuoksuunkin niistä päästäkseen.

Maa on molemmin puolin kuivaa karjanummea, moniviikkoinen


pouta on kulkenut kuin kulo sen ylitse. Multa irvistää paikotellen,
kuin musta hiili. Pari virstaa tie kulkee kartanon peltojen halki, jotka
jo ovat sänkenä, ruisky'öt alkavat kuivaa hienossa tuulessa.

Mihkel katselee ruiskuhilaita pitkään, kadehtivasti ja


väliäpitämättömästi samalla kertaa. Toispäivänä hän oli itse vielä
ollut kartanon pellolla leikkaamassa. Eilen oli pikkuisen ehtinyt
aloitella omalla pellollaan, kaataa maahan pari sarkaa, ja nyt tuli
tämä kaupunkiinmeno.

Sydänalaa hiukaisee niin kummasti, kun niitä omia peltoja


ajattelee. Pieninä, kapeina kielekkeinä ne kiertelevät jossain
suosilmän reunalla, huono-ojisina, huonosti väestettyinä. Viljakin on
toisenlaista kuin kartanon pelloilla, kasvaa harvaa, lyhyttä kortta ja
tyhjiä päitä. Mutta tänä vuonna oli siemenvilja ollut hyvää, ja kyllin
oli sitä myös ollut, oras oli vihertänyt tiheänä nurmena. Mutta sitten
tämä poutakesä. Yhä vaan aurinko hellittää pilvettömältä taivaalta,
aamulla on sakea auer, koko ilmakehä näyttää kiehuvan ja
höyryävän. Ruis kypsyy puolimittaisena, puolipehmeä jyvä varisee
maahan. Tiukkuu maahan tulevan vuoden leipä.

He menevät armollisen herran luo, ensin yksitellen, sitten


lähetystönä, lakit kourassa jo maantiellä: armolliset parooniherrat,
ruis varisee! Armollinen herra katsoo tiukkaan, viittaa kädellään:
sentähden tulettekin huomenna kartanon pellolle leikkaamaan, joka
mies! He hiipivät ovesta ulos, pää riipuksissa kuin vanhalla
työhevosella, ja ne pienet peltotilkut suon reunalla kangastavat
mielessä. Mutta seuraavana päivänä he leikkaavat otsansa hiessä
kartanon sarkaa.

Toru Mihkel on ennättänyt Kaarman kirkolle, josta vielä on


kaksitoista virstaa Arensburgin kaupunkiin. Hevonen pysähtyy
käskemättä ja luimistelee korviaan, se kääntää takkuisen harjansa
vasemmalle päin. Suuren, matalan kivirakennuksen luota hirnahtaa
toinen hevonen. Toru Mihkelin hevonen ynähtää vastaukseksi ja
alkaa laahustaa sinnepäin.

"No, olkoonpa menneeksi, koska ruunakin niin tahtoo."


Toru Mihkel kääntää hevosen krouvia kohti, joka synkkänä, pieni-
ikkunaisena kohoo aivan kirkon vieressä. Vuosikymmeniä ne ovat
katselleet toisiaan, kapakka ja kirkko, — kirkko suorana, ylevänä,
musertavana, — krouvi matelevana ja salavihaisena.

Hän menee hevosen sidottuaan suoraan krouvitupaan, hidasta,


notkahtelevaa käyntiään. Huone on viileä ja pimeähkö kuin kellari,
kiviseinät uhoovat kylmää, lattia on leveillä, epätasaisilla kivipaasilla
laskettu.

"Viinaa!" Mihkel sanoo raskaasti, istahtaen lavitsalle.

Vastapäisestä nurkasta nousee mies, kuskin puvussa,


kiiltävänappinen takki yllä ja korkea hattu päässä.

"Terve, Toru Mihkel, — minnekkä matka pitää?"

"Kaupunkiinhan minä…"

Mies ottaa hatun päästään, paksu, kihara tukka hulmahtaa sen


alta. Hänellä on leveät, verevät kasvot, heleänpunaiset posket ja
toinen leuka pyöristymässä toisen alle. Silmät ovat pienet,
intohimoiset ja kiiluvat, liikkuvat nopeasti. Hän kiinnittää ne
Mihkeliin, tutkivasti, puoleksi pilkallisesti, ikäänkuin mitatakseen
miehen tyhmyyttä. Hän heiluttelee jalkojaan, singahuttaa ne
ristikkäin, renkuttelee tuoliaan ja hyräilee. Nähtävästi hänellä on
jotain mielessä, jokin ajatus, jonka Mihkelin läsnäolo on synnyttänyt.

"Omilleko asioillesi?" hän utelee eteenpäin.

"Ei, — kartanon halkokuormaahan minä…"


Mihkel ei huomaa lainkaan vieraan katseita, hän hörppii hitaasti
viinaansa pienissä, säästäväisissä kulauksissa.

"Mitä sinä niin päätäsi nuokutat, mies!"

"Pellot varisee", — Toru Mihkel vastaa yksitoikkoisesti, kuin vanhaa


asiaa kerraten ja hakematta ymmärrystä tai osanottoa itselleen.
Samalla hän ensi kertaa katsoo vastapäätä istuvaan kuskiin.
Jonkinlainen vaistomainen vastenmielisyys herää hänessä.
Mokomakin herrojen syöttiläs! Syö selvää leipää kaiken vuotta!

"Olisitte leikanneet ennen, — tehneet vaikka hätäleipää."

Kuski sanoo sen kevyesti, huolimattomasti, vieläpä paljastaa


valkeat hampaansakin ajatellessaan leipää, joka sytyttäessä palaa
kuin olkitukko.

Hän kumartuu yhtäkkiä eteenpäin, aivan lähelle Mihkelin kasvoja.

"Kuule, Mihkel, tahdotko ansaita viisitoista kopekkaa?"

Mihkel vetäytyy hiukan taaksepäin, niin paljon kuin seinältä


pääsee. Hän ei vastaa vielä sanaakaan, vaan punnitsee mielessään,
taistellen pientä epäluuloa vastaan, joka kolkuttaa sydämessä.

"Ei muuta, — kuin että viet tämän kirjeen tuomarille."

Kuski vetää povitaskustaan kirjekuoren, jossa näkyy viisi sinettiä.

"Minulla ei olisi aikaa nyt mennä, — sentähden, näetkös."

"Menethän sinä muutenkin kaupunkiin, eihän tämä mitään paina",


hän yhä mielittelee.
Hän kiertää ja kaartaa Mihkeliä, aivankuin tyttöä, jonka aikoo
voittaa itselleen. Pieninä ja viekoittelevina kiiltävät hänen silmänsä
paksujen kulmien alta. Noin hän varmaan katsoo tyttöihin,
tahtoessaan saada niitä pauloihinsa. Juuri tyttösankari hänessä
kaikkein eninten pistää esiin tällä hetkellä, voittamaton, jota ei
kukaan jaksa vastustaa eikä kiinnittää.

"Anna tänne, — joudanhan minä tuon viedäkin."

Mihkel ojentaa kaikessa viattomuudessa kätensä ottaakseen


kirjeen ja rahat. Hetken aikaa hän vielä epäilee: miksi toinen niin
tyrkyttää hänelle kirjettä, ottaisihan hän sen vähemmilläkin
mielittelemisillä. Mutta pieni, pyöreä hopearaha jouduttaa hänen
päätöstään, omituisen mielihyvän tunne solahtaa läpi ruumiin, kun
raha siirtyy hänen käteensä, se on hiukan kylmä, tuntuu kourassa
kuin vesipisara. Melkein uusi se on, kiiltää ja kimaltaa pimeässäkin.

"Onnea sitten matkalle", huutaa kuski hänen jälkeensä.

Mihkel istuu taas poikittain kuormallaan. Miksi kuski mahtoi


nauraa, näehän, hohottaa tuossa ovessa niin että kiertelee. Kertoo
jotain krouvin isännälle ja taas hohottaa. Ja miksi se niin monta
kertaa huusi: onnea matkalle!

Äskeinen vastenmielisyys kuskia kohtaan nousee taas hänessä.


Aika velikulta! Hätäleipää tekemään käski, — niinkuin ei olisi itse sitä
tuon korkuisena kyllikseen syönyt. Mutta odotappas, muutaman
vuoden kun on saksojen pöydässä istunut, ei enään kelpaakaan leipä
eikä suolakala. Aletaan jo nauraa talonpojille, kun ne peltojensa
tähden huolehtivat.
Häntä kuohuttaa kuskin väliäpitämättömyys ja rauhallisuus,
täydellinen huolettomuus säästä ja ilmasta, poudasta ja pakkasesta.
Hänen maamiesvaistonsa kohoaa tätä herrasmaisuutta vastaan,
hänen oma sisällinen vavistuksensa, jolla hän seuraa lämmön, tuulen
ja pilvien vaihteita, kalvaa häntä kahta kovemmin. Mokomakin
irtolainen…

Kaikesta huolimatta hänessä sentään alkaa kehittyä pieni


mielihyvän tunne. Ei hän tiedä, viinaryyppykö se lie, joka niin
suloisesti suonissa kiertelee, vai sekö tieto pienestä hopearahasta
takin taskussa. Mitä kaikkea sillä rahalla saisi ostaa… Ensiksikin
viidellä kopekalla kampeloita, niitä Vapahtajan kiroomia kaloja, jotka
saarelaisen suussa sentään sulivat. Sillä rahalla saisi jo suuren
joukon, eukko voisi panna niitä suolaankin, latoa niitä saaviin kuin
ruskeita lehtiä päälletysten.

Tupakkaa hän myös ostaisi ja viinaa taas kotimatkalla, menisi


krouviin, viskaisi rahan pöydälle ja sanoisi: "Kahdella kopekalla
viinaa, maksakoon mitä maksaa!" Jos Vaidan kuski vielä sattuisi siellä
olemaan, antaisi sillekin…

Hän joutuu hienoon hiprakkaan, mitä lähemmäksi kaupunkia


saapuu, hänen työn väsyttämässä ja elinaikaisen nälän
laihduttamassa ruumiissaan ei ole vastustusvoimaa, yksi lasi vettä
väkevämpää riittää panemaan hänet iloiselle päälle.

Kaupungin kujaa ajaessaan hän jo pistää pieneksi lauluksikin, hän


on avomielisellä, koko mailmaa syleilevällä tuulella, ystävällisillä,
vähän juopuneilla silmillä hän katselee kaikkia vastaantulijoita.
Yhtäkkiä hän alkaa pitää kuskin hänelle antamaa tointa kunnia-
asiana, luottamustoimena, jota ei jokaiselle uskottaisikaan. Varmaan
oli kuullut ennen, kuinka kelvollinen mies se on se Toru Mihkel, ei
varasta, ei valehtele, ei toisen tavaraa himoo… Joku oli varmaan
hänestä sanonut: katsoppas sitä Toru Mihkeliä, se sitä on miestä…
Toisenlainen mies voisi hävittää kirjeen, maantielle pudottaisi, ottaisi
näin taskustaan, ja äläppäs, jo livahtaisi tielle, — sinne jäisi, —
löytäisi jokin mustalaisakka tai sen semmoinen.

Taikka kyllä sen joku toinen avaisikin, jos siksi tulisi. Syhyttää
hänenkin sormiaan, kun sitä katselee, tahtoisi nähdä sitä kirjoitusta,
vaikka ei ymmärtäisikään siitä muuta kuin mustan valkealla. Mutta
nuo viisi punaista laikkaa, ne särkyisivät avatessa. Sanotaan linnaan
niitten rikkomisesta joutuvan. Itse Vaidan parooniherra ne siihen on
painanut omalla kädellään, ja näkyy niissä Vaidan vaakunakin, sama,
mikä sinne kartanon päätyyn on kaiverrettu kalkkikivestä, karhu
kruunua kantamassa.

Hän ei annakkaan kirjettä palvelijalle, vaan vaatii itse tuomarin


tulemaan. Pyyhkäisee vielä kätensäkin takin helmaan, ennenkuin
kirjeeseen tarttuu, ja sitten noin kahdella hyppysellä hyvin hienosti
yhdestä kulmasta pitelee ja puhaltaa pölyhiukkaset kotelolta pois.

"Armolliset tuomariherrat, tässä olisi se Vaidan paroonin kirje."

Hän vielä kumartaakin syvään, melkein maahan saakka. Ehkä


antaa tuomari juomarahaa, kuka tietää, kouraisee taskustaan pari
vaskikolikkoa tai vaikkapa puolenkin ja pistää pivoon. "He, juoppas
minun terveydekseni siellä Kaarman krouvissa!"

Mihkeliä hykäyttää sisäisestä naurusta kaikkea sitä miettiessään.


Hän alkaa ottaa takaisin kaiken, mitä pahaa on ajatellut Vaidan
kuskista, se oli sentään rehti ja pulska mies, vaikka juoksikin tyttöjen
jäljissä ja oli aika suupaltti. Ja mitäpä se talonpojan huolista tietää,
se ruokkoo vaan päivät pitkään hevosiaan, sukii niitä ja pesee ja
väliin ajelee kuusivaljakolla pitkin pitäjiä, niin että takin napit välkkyy.
Mitä se sellainen tietäisi. Mutta muistipa kuitenkin köyhää raukkaa,
viisitoista kopekkaa antoi…

Halkokuorman määräpaikkaan vietyään hän siistii itseään


muutaman majatalon pihalla, noukkii heinänkorsia takistaan ja
housuistaan. Pää kenossa hän kysyy jokaiselta vastaantulijalta,
missä tuomari asuu, kovalla äänellä, että se kuuluu yli kadun. Kirje
hänellä on kädessä, sinettipuoli näkyvissä.

Hänen rohkeutensa kestää aina tuomarin portaisiin saakka, mutta


niissä se alkaa vähentyä joka askeleella. Joka portaalta tuomari
ikäänkuin nousee korkeammalle, ja hän itse alenee pienemmäksi.
Hän ei uskalla ajatellakaan, että portaitten päässä on ovi. Häntä
pyörryttää, ja jalat heikkenevät, kuin pitäisi pilviin kiivetä. Hän on jo
näkevinään tuomarin istuvan kuin taivaan kaarella vaakakupit
kädessä ja jyristävän oikeutta.

Ennenkuin huomaakaan, on hän jo etehisessä, ja joku palvelija on


ehtinyt siepata häneltä kirjeen. Hän äkkää sen vasta, kun se on liian
myöhäistä. Vaan kun hän siitä selville pääsee, niin tuntuu se melkein
helpoitukselta. Hän kääntyy jo ovea kohti ja hapuilee salpaa
kömpiäkseen ulos, kun raskaat askeleet ja kilisevät kannukset saavat
hänet pysähtymään.

"Kuule mies, — sinä saat neljäkymmentä paria raippoja", joku


sanoo kimeällä äänellä.

Toru Mihkel jää suu auki seisomaan, tyhmistyneenä, puusta


pudonneena, kykenemättömänä sanaakaan lausumaan
puolustuksekseen.
"Se seisoo tässä: ajanut piloille kolmivuotiaan valakan,
neljäkymmentä paria raippoja tuomarin luona kaupungissa."

Toru Mihkel ei vieläkään käsitä mitään. Kolmivuotiaita valakoita


kiitää hurjassa vauhdissa hänen ohitseen, hänen oma vanha
ruunansa lönkyttää jäljessä. Mitä tämä kaikki merkitsi? Hän katselee
avuttomasti tuomaria, joka on lyhyt, kaljupää mies sotilaspuvussa.

"Kuka saa raippoja?" hän sopertaa.

"Sinä, — tarttukaa kiinni, miehet!"

Kaksi sotilasta karkaa hänen kimppuunsa kummaltakin puolen.


Humala haihtuu hänen päästään samassa tuokiossa, hän on yhtäkkiä
selvä.

"Armolliset tuomariherrat, — minä olen syytön, — en minä ole se


mieskään", hän huutaa, vimmatusti koittaen vapauttaa itseään.

"Mitä hän sanoo?" kysyy tuomari, joka jo oli kääntynyt pois


mennäkseen.

"Päästäkää minut irti, — minä olen syytön, — Vaidan kuskihan


se…"

Tuomari seisoo hetken aikaa ja kohauttaa sitten olkapäitään.

"Syytön tai syyllinen, — kuinka minä voin sen tietää. Minä täytän
vain virkani."

Hän viittaa miehille, he alkavat laahata Mihkeliä pois, hän


vastustaa käsin ja jaloin, yhä hokien viattomuuttaan. Hänet
paiskataan jollekin kovalle penkille, sidotaan kiinni, vaatteet
repäistään auki, ja iskuja alkaa sataa. Hän on kuin tulisateessa, —
niinkuin ukkosen ilmalla makaisi alasti maassa, ja salamat sattuisivat
selkään. Silmien edessä lyö valkeata, ja vuoroin taas mustenee
kaikki. Tuntee vain jotain lämmintä vuotavan pitkin kylkeä ja noruvan
lattialle. Verta…

Hänestä tuntuu aika ijankaikkisuudelta. Varmaan hän on jo saanut


sata paria. Ehkä ovat laskuissaan erehtyneet ja pieksevät hänet
kuoliaaksi, niinkuin Vaidan riihimiehen… Hän tahtoisi itkeä kiukusta
ja tuskasta… Kummallinen heikkous tuntuu kaikissa jäsenissä,
unohtaa, että onkaan jalkoja tai käsiä tai päätäkään… Pää se
varsinkin käy kuin tunteettomaksi, niinkuin siinä ei olisi tippaakaan
verta…

"Neljä — kymmentä", suhisee hänen korvissaan.

Hän makaa liikkumattomana ja nousee vasta vaivaloisesti, kun


sotamies kolhaisee kylkeen.

Tympeästi, mutisematta hän sieppaa vaatteet ylleen ja tekee


lähtöä.

"Mies hoi, — viisitoista kopekkaa tänne vitsojen hintaa", joku


huutaa hänen jälkeensä.

Hän katsoo hetken aikaa tylsästi, sitten vähitellen ymmärtää. Koko


kärsitty vääryys on yhtäkkiä päivänselvä hänelle. Mutta hän ei
itsekään tiedä, kehen hänen syytöksensä kohdistuvat, Vaidan
kuskiinko, joka hänet petkutti, herroihin, jotka hänet tutkimatta
hutkittivat, vaiko sotamiehiin, jotka tuomion ovat täytäntöön
panneet.
Hän on samalla kuin häpeissään, hänen oma pökkelyytensä
harmittaa häntä eninten. Jos tämä juttu tiedoksi tulee, niin
nauretaan hänelle vasten naamaa, kuski saa vielä kiitoksiakin
kepposestaan, sukkela poika, kas vaan, kuinka osasi puijata ja oman
nahkansa pelastaa… Mitäpä ei työorja maksaisi makeasta
naurusta…? Ei kukaan syytä herroja, kukapa niihin ylettyisi, ne
tekevät työtään pilvien takana, kuin itse isä Jumala… Parasta hänen
vaieta kuin hauta…

Hän kaivaa taskustaan hitaasti hopearahan, henkäisee siihen,


kiilloittaa takkinsa hihalla kirkkaaksi. Hänen on vaikea siitä erota,
melkein hän ottaisi uudestaan kärsiäkseen koko raipparangaistuksen,
saadakseen pitää viisitoista kopekkaansa.

Vihdoin hän huokaisee syvästi, kääntyy poispäin, soljahuttaa sen


sotamiehen käteen.

Puolen tunnin kuluttua hän jo ajelee ruunallaan puolijuoksua tyhjiä


halkovankkureitaan Kaarinalle päin kulkevalla tiellä.

Hän ajattelee tuskin mitään, korkeintaan kangastaa hänen


mielessään saunan lava, huuruinen, lämpimän kostea ilma ja eukon
heittämä löyly sihahtaville kiville. Ja hän itse makaamassa vatsallaan
lavalla, eukon hieroessa hänen kirvelevää selkäänsä viinalla ja
vihtoessa häntä tuoksuvalla koivuvihdalla.

"Omatko herrat sua nyt pieksivät?" eukko kysäisee.

"Omatko vai vieraat, — saman se on tekevä", hän vastaa. "Pidä


sinä vaan löylystä huoli, akka."
LUKKARI JA KIRKKOHERRA.

Kaarman kirkkoherra von Rosen istui kansliahuoneessaan ja merkitsi


kirkonkirjoihin viimeksi kuolleet henkilöt. Hänen oli kuuma,
huolimatta kansliahuoneen viileästä kellari-ilmasta ja avonaisesta
ikkunasta, jonka verhoja tuuli ei hipaissutkaan. Huone oli kapea,
pimeänlainen, ja kostea maan ja kiven haju tuntui nurkissa. Valkeiksi
kalkituilla seinillä väikkyi valo vihreänä kajastuksena, tunkeuduttuaan
ikkunaa piirittävän pensaikon läpi. Kansliahuone oli synkkä, kuten
koko pappilakin, joka oli rakennettu katoolisaikuisen nunnaluostarin
sijalle. Etehisen holvikäytävä pyöreine kaarroksineen oli vielä
muistuttamassa entistä luostaria.

Von Rosen selaili haluttomasti ja hajamielisesti kirkonkirjoja: Anna


Ei— tea, 40 vuotta — Riidu Mihkelin poika, 2 vuotta, 3 kuukautta…
Hän käänsi lukkarin viroksi antamat vastaukset itsekseen
puoliääneen saksaksi, välittämättä lukkarista, joka aina silloin
tahdottomasti käänsi vasenta korvaansa, jolla herkemmin kuuli,
sinnepäin. Hän tiesi lukkarin auttavasti ymmärtävän ja vaillinaisesti
puhuvankin saksaa, mutta käytti tahallaan aina viroa puheessa,
pysyttääkseen juopaa heidän välillään suurempana.
Lukkari seisoi keskellä lattiaa, vastaten kirkkoherran ajottaisiin
kysymyksiin, pieni paperikäärö kädessä, — lyhytkasvuinen,
kuivettunut mies, kotoisessa sarassa, nöyrän ja samalla älykkään
näköinen. Hän seisoi ilman minkäänlaista nojaa, nähtävästi häntä
väsytti, hän muutteli vähäväliä jalkojaan, siirtäen ruumiinsa painoa
toiselta toiselle.

Von Rosen ei katsahtanutkaan lukkariin, vaan merkitsi vainajain


nimiä erityiseen luetteloon ja piirusti ristit ja kuolinpäivät kirjoihin.
Kaiken hän teki mahdollisimman hitaasti ja arvokkaasti. Hän istui
mukavassa, nahalla päällystetyssä nojatuolissaan, jalat rentonaan
lattialla. Itse asiassa häneltä kävi kaikki aivan koneellisesti, hänen
ajatuksensa askartivat alituisesti tasaisessa surinassa, joka kuului
talon takaa. Tämä surina, joka sekaantui pensaasta sirahtavaan,
katkeamattomaan viserrykseen, jännitti häntä, piti kaikki hänen
aistinsa vireillä. Se porisi kuin kiehuva kattila, sihisten tasaisesti,
herkeämättä, vähän vinkuvalla nuotilla. Hän kuulosti sen jokaista
vivahdusta, odottaen sen muuttavan äänilajia.

Päivä oli kuin valittu, pilvetön, helteinen, ilman tuulen henkeä…


Sadetta ei ollut peljättävissä. Mehiläisten täytyisi tänään parveilla,
ainakin sen suuren perheen vadelmapensaikossa… Jos kaikki hyvin
kävisi, saisi hän tänä suvena kaksinkertaiset perheet. Niitä olikin
talvella tuhoutunut iso joukko, talvi oli ollut tavattoman pitkä,
mehiläiset nähneet nälkää. Hän teki pitkiä laskuja mielessään, miten
monta naulaa kustakin pesästä saisi. Ehkä kerääntyisi niin paljon,
että maksaisi vaivan itse lähteä Rigaan kaupalle.

Hän vilkaisi vaivihkaa lukkariin, ja tämän terävä, vaikka nöyrä


katse suututti ja häiritsi häntä. Mahtoiko tuo arvailla hänen
ajatuksiaan? Hän tekeytyi kahta totisemmaksi ja kertasi kovalla
äänellä lukkarin sanat, aivankuin olisi ollut yksin huoneessa. Hänen
verevät pyhimyskasvonsa, jotka niin sattuvasti muistuttivat niitä
halpahintaisia, räikeitä väripainoksia, joita kansan sekaan levitetään,
kävivät vakavan ja ankaran näköisiksi.

Tämä pieni, kuivettunut lukkari oli jo ehtinyt monta kertaa häntä


hermostuttaa. Hän ei saanut häntä mistään kiinni, koko mies oli joka
tavoin vaan luuta ja nahkaa, ei voinut mistään näpistää. Von Rosen
oli puutteellisen viron kielen taitonsa tähden sangen riippuvainen
hänestä virkamatkoillaan eikä hän voinut koskaan lukkarille antaa
anteeksi sitä nöyryytystä, mihin kerran oli joutunut hautajaisissa.

He seisoivat kaikki ruokapöydän ääressä, ihmiset totisine


hautajaisnaamoineen, kokonainen rivi yksivakaisia, ankaria kasvoja.
Hän alkaa lukea pöytäsiunaukseksi Herran rukousta, laskettaa sitä
ulkomuistista. — Yhtäkkiä hän tuntee muistin pettävän, sanat
sotkeutuvat, aivankuin lanka solmuun, hän änkyttää, hikoilee, tuntee
otsasuonensa paisuvan… Hän kertaa edellisen lauseen, — ei
sittenkään. Hän ei muista mitään. Hänen katseensa harhailee
avuttomasti pitkin tupaa, kaikkien kasvot ovat syyttävät kuin
tuomarien. Vihdoin hän keksii lukkarin pöydän toisessa päässä:
"Johanson, lue sinä eteenpäin", hän saa sanotuksi.

Sen sijaan, että olisi ollut kiitollinen avusta, kiukutteli hän juuri
lukkarille, vierittäen syyn koko häpeästä tämän niskoille. Hänen oli
täytynyt kestää moinen nöyryytys seurakuntalaistensa edessä. Ja
juttua oli paljon levitelty pitkin pitäjää, kaiketikin lukkarin toimesta.

Sitä paitsi hänestä toisinaan tuntui, kuin olisi lukkari karsain silmin
katsellut hänen monia maallisia hommiaan, vaikka ei tietysti koskaan
ollut sanaakaan virkkanut. Mutta sillä miehellä oli kummallisen
terävät silmät kuihtuneissa kasvoissaan, välähtävät, läpitunkevat,
jotka sopivissa ja sopimattomissa tilaisuuksissa häntä seurasivat.

Hän oli kyllä maanviljelijä ennen kaikkea, papillisesta arvostaan


huolimatta, se oli selvää. Vastoin tavallisuutta hän oli pitänyt
pappilan maat omassa hoidossaan, antamatta niitä vuokralle, kuten
useimmat muut. Hän oli köyhtynyttä aatelissukua, joka vähitellen oli
häätynyt tiloiltaan, ja pappisuralle hän oli kääntynyt etupäässä
päästäkseen siten kuitenkin kartanonomistajaksi. Häntä huvitti
maanviljelys, hän tunsi tarkoin kaikki työt eikä epäillyt itse omin
käsin niihin puuttua.

Hänen alustalaisensa pelkäsivät häntä kaksinverroin. Ensiksikin


hän oli aina itse työssä mukana, eikä hänen silmältään mikään
jäänyt huomaamatta, hänen edessään ei auttanut mitkään
verukkeet. Hänen pappilassaan oli kaksi ruoskapäivää, kuten
suurissa kartanoissa. He keksivät hänestä sananparren: tänään
annan Jumalan armoa, huomenna ruumiin hirmua.

Mutta he olivat tottuneet ankariin isäntiin eikä se yksin olisi


riittänyt heitä peloittamaan. He pelkäsivät hänen saarnojaan, niitä
helvetin hirmuja, joilla hän heitä uhkasi, joll'eivät isäntiään tottelisi.
Hänellä oli heidän mielestään taivaan avaimet, hän päästi sinne
mielin määrin, kenen tahtoi. Oli yksi ainoa aihe, josta hän innolla ja
vakuutuksella saarnasi: talonpoikain laiskuudesta ja
kiittämättömyydestä. Silloin pani hänen syvä, komea äänensä kirkon
kajahtelemaan ja muijat kirkon vasemmalla puolen itkemään
syntejään. Jos se hänestä olisi riippunut, olisi hän mielellään pitänyt
voimassa keisarinna Katariinan aikuisen säädöksen, joka pakoitti
kaiken kansan kaksi kertaa vuodessa saapumaan kirkkoon
katumussaarnaa kuuntelemaan, saarnan aiheeksi oli laillisesti
määrätty orjien kuuliaisuus aatelisia isäntiään kohtaan. Mutta sitä
hänen tuskin olisi tarvinnut tehdä, tämä vanha pakkotapa, joka jo oli
poistettu, oli piintynyt kansan käsitykseen, niin että he itsestäänkin
niinä päivinä tulvivat kirkkoon.

Ei hän sentään ollut niinkään vihattu kuin olisi voinut luulla,


päinvastoin talonpojat pelkonsa ohella hänestä pitivätkin. Heihin
vaikutti hänen suuri asiantuntemuksensa maanviljelyksen joka alalla
ja se, ett'ei hän halvimpaakaan työtä kammonnut. Mutta ennen
kaikkea vaikutti heihin hänen ulkomuotonsa, huolimatta soimaavasta
suusta tuli hyvälle päälle hänen kasvojaan katsellessa, niissä oli
sanomattoman hyvinvoinnin ja itsetyytyväisyyden leima, ja suurista,
miedoista silmistä paistoi jotain hyväsydämisyydenkin tapaista.

Ainoa, jota hänen ei koskaan onnistunut peloittaa eikä myöskään


voittaa, oli tämä pieni lukkari. Hän aavisti siinä miehessä salaista
vastarintaa ja uhkaa, hän ei ollut talonpoika eikä herra. Juuri se,
ett'ei hän ollut kumpaakaan, suututti von Rosenia. Hän ei osannut
kohdella häntä, ei kehdannut aivan vasten silmiä haukkua kuten
talonpoikaa, mutta vielä vähemmän olisi alentunut häntä
vertaisenaan kohtelemaan. Hän antoi hänen aina seisoa
läsnäollessaan ja pani erityistä painoa puhuttelusanalle sinä,
teroittaakseen lukkarin mieleen hänen alhaista asemaansa, mutta
sittenkin tuntui kuin ei olisi lukkari kylliksi nöyryytetty.

Kovimmat ottelut heillä oli talonpoikien tähden. Lukkari ei koskaan


heitä avonaisesti puolustanut, mutta aina hän toi uusia kanteita ja
valituksia, aivankuin olisi ollut niitä kylällä keräämässä. Hän teki sen
nöyrästi, ilman melua, niinkuin se olisi ollut luonnollisin asia, että hän
sielunpaimenensa kanssa otti ne asiat puheeksi. Milloin oli
neljänpäivän mökkiläinen tilaltaan häädetty, milloin oli Vaidan herra
taas pakoittanut jonkun tytön kartanoon. "Mitä se sinuun kuuluu",
hän oli kerran tiuskaissut. "Ei minulle, mutta teille, armolliset
kirkkoherrat", oli lukkari vastannut.

Hän oli niin tottunut alempisäätyisten matelemiseen ja


koirannöyryyteen, että tällainen hiljainen vastustus oli hänelle aivan
uutta. Hän rakasti sitä, että talonpojat jo kaukaa kuullessaan
pappilan aisakellojen kilinän, — talonpojilta oli kulkusten käyttö
kielletty, — ajoivat päätä pahkaa rattaansa ojanteeseen, niin että
kuorma singahteli sinne tänne. Hänestä oli mieluista, kun talonpojat
lähestyivät häntä selkä kyyryssä ja jo veräjällä ottivat lakin päästään
ja kun he kiitokseksi kaksin käsin halailivat hänen polviaan.

Hänet valtasi usein salainen ahdistus ollessaan tämän miehen


kanssa, vaikka hän varoi sitä näyttämästä. Siinä miehessä oli
sitkeyttä, visaa voimaa, jolla oli joustavuutta alennustilastaan
kohota, häntä ei milloinkaan saisi maan tasalle. Se mies osasi olla
vaiti ja odottaa aikaansa.

Kuka tietää, joll'ei juuri tällaisista miehistä ja heidän jälkeläisistään


kerran koituisi saksalaisen vallan hukka tässä maassa? Ne olivat ne
myyräntyöntekijät, jotka kaikessa hiljaisuudessa perustuksia
järkyttivät.

Tuskin oli päässyt puolen porrasta korkeammalle, niin jo siinä


seisoi ja aikoi auttaa muun joukon yhtä kauas.

Hiostava helle virtasi ikkunasta, valkeaksi kalkitut kiviseinät


kuumenivat kuin uuni. Lukkari muutteli jalkojaan yhä tiheämpään,
hän oli seisonut jo ainakin puolen tuntia, ja kuumuus painoi ohimoita
rautavanteena. Kuin sattumalta ja varkain hän vilkaisi vapaata tuolia
pöydän kulmassa, mutta käänsi kiireesti katseensa muuanne.
Istumista hän ei tullut ajatelleeksikaan. Mutta kuitenkin tuo tuoli
vietteli silmää, niin että täytyi sinne katsomista vastustaa kuin
kiusausta. Hänen silmänsä pälyilivät pitkin huonetta ja sattuivat
suureen kaappiin, missä kirkonkirjoja ja rippikapineita säilytettiin.
Hitaasti alkoi hänen käsivartensa siirtyä, kyynärpää tavoitti kaapin
laitaa, nojautuen siihen ensin varovasti ja heikosti, sitten yhä
lujemmin, kunnes se levollisena lepäsi laiteella, kannattaen osaa
ruumiin painosta.

Von Rosen katsahti äkkiä ylöspäin.

"Johanson, — mitä sinä ajattelet! Seiso suorana, — etkö näe, että


minä olen läsnä."

Häntä riemastutti tämä oivallinen tilaisuus masentaa lukkaria,


nöyryyttää hänet perinpohjin, koko ajan hän oli sellaista tähystellyt.

Lukkari vetäisi rauhallisesti käsivartensa kaapin reunalta ja seisoi


suorana, kädet sivuilla, kasvojen värähtämättä.

Samalla alkoi puutarhasta kuulua suhisevaa surinaa, aivankuin


kiehuvaan veteen äkkiä olisi kivi viskattuja vesi kiehunut yli.

Von Rosen hypähti silmänräpäyksessä pystyyn, tempaisi takin


yltään ja syöksyi ulos, jättäen lukkarin seisomaan keskelle
kansliahuoneen lattiaa.

"Mehiläiset, mehiläiset", kuului hänen kaikuva äänensä


puutarhasta.

Kaarman pappilan puutarha oli täydellinen vastakohta pappilan


pelloille, yhtä hoidoton ja metsittynyt, kuin maat olivat muokatut.
Von Rosen ei pitänyt siitä mitään lukua, kaikki kasvoi siellä vihantana
ja villinä, rikkaruohotkin. Hyötyisässä maassa rehoittivat nokkoset,
varjoten talon sivuseinää, suuriksi, miltei tuntemattomiksi kasveiksi
kohonneina, aivankuin niitä pitkät ajat olisi jalostettu.
Puutarhamansikat sensijaan olivat vapaudessaan villiintyneet,
lavoistaan karanneet ja kiertelivät kevytmielisinä teitten vieriä
pitkine, velttoine varsineen, hedelmää tekemättä.

Korkeitten, raakiloivien vadelmapensasten varjossa oli


kymmenkunta mehiläispuuta pystyssä, onttoja, katkaistuja
puunrunkoja, joista salaperäinen surina kuului. Näissä
vanhanmallisissa mehiläiskeoissa on vielä koko metsän tuoksuva
runollisuus jäljellä, niitä nähdessä on keskellä koskematonta metsää,
jossa kaikki elää, yksin laho puukin.

Vadelmapensaikon yläpuolella leijui pieni, musta pilvi, joka


hajautui ja tiheni, sihisten ja kuhisten, kuin olisi satoja neuloja toinen
toistaan vastaan hangattu. Lähemmin katsoen se näytti mustalta
verkolta, jonka silmukat nopeasti liikkuivat edestakaisin. Se oli
parveilevien mehiläisten karkeloa.

Yhtäkkiä koko pilvi nuolen nopeudella syöksyi eteenpäin.

"Ne lentävät yli aidan, — kiireesti peili tänne!" jylisi von Rosenin
ääni.

Hän oli unohtanut kaiken, pimeän kansliahuoneen homehajuineen,


tomuiset kirkonkirjat ja niskoittelevan lukkarin. Papillinen hitaus oli
kadonnut hänen liikkeistään, huolimatta alkavasta lihavuudestaan
hän juoksi edestakaisin läähättäen ja puhaltaen. Hän oli jo saanut
siepatuksi käsiinsä pienen käsiruiskun, kiivennyt matalalle kivi-aidalle
ja suunnannut sen letkun pakenevia mehiläisiä kohti.
Hienona vihmana lankesi vesiruiskun säde mehiläisten päälle, ne
näyttivät epäröivän, liitelivät vähän aikaa yhdessä kohden, pitivät
kuin neuvottelua.

Von Rosen sieppasi tuojan kädestä peilin ja alkoi sitä pyörähytellä


auringossa, jonka säteet kilpistyivät sen kiiltävästä pinnasta, sattuen
suoraan mehiläisiin äkillisinä valonvälkähdyksinä, nopeina kuin
salama.

Von Rosenille tuli tuokioksi mieleen lukkari kansliahuoneessa. Mitä


joutavia, tietysti hän oli lähtenyt pois, hän lohdutti itseään. Tai
ryhtynyt johonkin työhön siellä. Se vaan häntä harmitti, että lukkari
oli taas saanut vettä myllyynsä.

Koko mehiläsparvi kaarteli paraikaa tuuhean lehmuksen ympärillä.


Yhtäkkiä ne piirittivät yhden sen ulkonevista oksista ja alkoivat
kääriytyä sen ympärille. Ne imeytyivät toinen toiseensa kiinni,
muuttuivat kuin liikkuvaksi kasviksi, ruskeaksi sammaleeksi, jota
oksa alkoi kasvaa. Sammal levisi yhä laajemmalle alalle pitkin oksaa,
— vihdoin riippui puun kyljessä suuri, värähtelevä pahka, joka yhä
kasvoi.

Von Rosen jäi ainakin tunnin ajaksi puutarhaan, mikään mahti


maailmassa ei olisi voinut häntä häiritä. Mehiläisten parveileminen oli
hänen intohimojaan, se jännitti häntä kuin hyvin järjestetty peli.
Vasta kun kaikki oli kunnossa, uusi perhe onnellisesti asunnossaan,
hän lähti takaisin takkiaan noutamaan.

Kansliahuoneessa lukkari yhä seisoi keskellä lattiaa, samassa


asennossa, mihin oli jäänyt.
Von Rosen hämmästyi sanattomaksi, hän oli taas kokonaan
unohtanut lukkarin.

"Mitä sinä siinä teet?" pääsi häneltä vihdoin.

"Minä seison ja odotan, armolliset kirkkoherrat", lukkari vastasi.

Von Rosen vaipui henkeä tapaillen nojatuoliin ja tuijotti lukkaria.


Pilkkaako tuo mies teki hänestä? Hän ei saanut selvää, oliko lukkarin
sanoissa pistävintä ivaa vaiko suurinta nöyryyttä. Ja miksi hän oli
seisonut koko ajan? Näyttääkseenkö ruumiillista kestävyyttään vaiko
pelosta alistuvasta orjanmielestä?

Vai olisiko siinä ollut jotain muuta? Olisiko tuo lukkari todella mies,
joka jaksaisi odottaa aikaansa, seisoa ja odottaa? Ja hänen takanaan
pitkät rivit sarkatakkisia, äänettömiä miehiä… Ja kun aika olisi tullut,
— mitä sitten?
KAALIN AUKOLLA.

Yhdentekevää on minulle, tuliko vai vesikö on muodostanut tämän


suppilomaisen, sammuneen tulivuoren aukkoa muistuttavan notkon,
joka niin äkkiarvaamatta aukeaa keskellä saarenmaalaista tasankoa.
Maanpinnantutkijat kiistelkööt siitä kylliksensä. Toisinaan tuntuu
kauniimmalta ajatella tarua tulesta, kuvittelee mielessään, kuinka se
vähitellen ohensi maankuoren, söi sen ontoksi ja yhtäkkiä sen
raisulla ryntäyksellä puhkaisi, purskauttaen kallionlohkareet hajalle
pitkin suppilon seinämiä. Tulen kintereillä kuohahti esiin maanalainen
vesi, notko oli suurena kattilana, joka höyrysi paksua, kuumaa
huurua.

Toiset väittävät sitä veden muodostamaksi. Sitä on paljon


runottomampaa ajatella, vesi on ikävä rakentaja, se on muodostanut
tätä maanpalloa monta tuhatta vuotta eikä vieläkään ole tullut
valmiiksi, se on hidas ja laiska ja tahraa työpaikkansa, tuoden rapaa
ja soraa mukanaan. Mutta sittenkin se on paljoa ennemmin
uskottavaa. Kaukaisena jääkautena, jolloin pohjoismaita katti jäinen
virta, syöksyivät vesi ja jää äärettömällä voimalla kuin kurimukseen,
kuljettaen kiviä harjallaan, ja koversivat tämän tasaisesti ympyriäisen
laakson, joka saarenmaalaiselle silmälle on ihme äkisti laskeuvine
äyräineen.
Minä puolestani mieluinten ajattelen sitä Saarenmaan
pakanasankarin Suur-Töllin jalansijaksi, hänen saappaankorkonsa
jäljeksi, kun hän vihapäissään kerran oli maata potkaissut. Taikkapa
hänen keittopadakseen, jossa hän kaalinpäitä keitteli, kahlattuaan
niitä hakemaan kaalimaastaan Kihnusaarelta. Taikka vaikka hänen
lastensa hietakuopaksi, johon heidän äitinsä, Piret muori heidät
esiliinassaan leikkimään kantoi.

Jokainen selitys tyydyttää, jos se on hiukankin yliluonnollinen, niin


että saa ajatella tämän kaiken syntyneen yhdellä käden
käännähdyksellä. Oikeastaan en ajattele ollenkaan, kuinka se on
syntynyt. Miksi muistella tuskaisaa luomistyötä, hirveitä
synnytystuskia, joissa maa on kierrellyt, luodakseen palasen
luonnonkauneutta yksitoikkoiseen maisemaan.

Rakastan sitä, niinkuin sen nyt näen, sitä rauhaa, joka on


hävittävää tuli- tai vesipyörrettä seurannut, tyventä, pyöreätä
lampea, joka aallottomana, ja kuten kerrotaan pohjattomana,
vihertää kivirantojensa puristuksissa. Heti rannassa syvenee vesi
pohjan näkymättömäksi, kuin olisi maa sen nielaissut. Vihreäpeilinen
villisorsa tavoittaa veden pinnalle puikahtanutta ruutanaa, rannalla
loikoo pari veden lioittamaa hakoa.

Mustat korpikuuset peittävät auringon, niin että se ainoastaan


keskipäivällä kiiluu lammen kalvossa tulisena täplänä, vaan muuten
hajautuu häilyviksi juoviksi tai illalla tasaiseksi ruskoksi, joka puitten
välitse punertaa. Rinteillä viskelee metsähumala kepeitä
lonkeroitaan. Suuret kivipaadet riippuvat rinteen kyljissä, ikäänkuin
joka hetki vaarassa pudota, kynsin hampain takertuneina hataraan
maakamaraan, kaikki ylöspäin viistossa, aivankuin todella näkymätön
käsi olisi ne alhaalta ylöspäin heittänyt.
Jos yksi niistä yhtäkkiä putoaisi lampeen, mitähän syvyyden
salaisuuksia se kolkuttaisi hereille?

Itseensä sulkeutunut, sisäänpäin kääntynyt on tämä luonto,


itsekäs siinä, että se vangitsee mielen ja vetää sen kaikesta muusta,
johdattaa katseen yhä syvemmäksi, yhä alaspäin jonnekin, millä
pohjaa ei ole, ja jota ei voi nähdä… Siitä on mielestään aikoja, kun
viimeksi näki kirkasta päivän valoa. Hitaasti sulkeutuvat korpikuusien
latvat yläpuolella, ei muista taivasta eikä maata, luulee olevansa niin
kätkössä, ettei Jumalakaan löydä. Mutta yhä syvemmälle vetää
lammen musta vesi katsetta, syvälle maan uumeniin, salaisuuksiin,
joita ei kukaan ole tutkinut, kuiluihin, joita ei kukaan ole mitannut.

On ikäänkuin ei tuntisi enään itseäänkään, vaan alkaa peloittaa,


sielun polut ovat vieraita, avautuu yhtäkkiä syvyyksiä ja kuiluja, joita
ei kenenkään luotirihma ole pohjannut. Yhä syvemmälle vajoo
sielunsa tutkimiseen, ulkomailma kadottaa merkityksensä, tavallinen
elämä on vaan satua ja ainoastaan tämä todellista. Vapisee niitä
voimia, hyviä sekä pahoja, joita itsessään aavistaa. Ja odottaa
henkeään pitäen, että joku viskaisi kiven niihin kuiluihin, niin että ne
kaikuisivat vastaan. Tahtoisi selvyyttä ja selitystä, mutta katse ei voi
ylöspäin kohota, itsepintaisesti se lähtee lävistämään tummia vesiä.
Yhtäkkiä on itse tällainen kuilu, tällainen luonnonoikku, jonka syntyä
kukaan ei tiedä.

Tasaisessa elämässä, joka juoksi kuin sileä köysi, on yhtäkkiä


solmu, josta ei pääse yli eikä ympäri. Ja pysähtyy olentonsa
arvoitusten edessä, hämmentyneenä, kuten maan avautuessa
kuiluksi keskellä Saarenmaata.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookultra.com

You might also like