////////////////////////////////////////////////////////////////////////////////////
//  overLIB 3.10  --  This notice must be left untouched at all times.
//  Copyright Erik Bosrup 1998-2000. All rights reserved.
//
//  By Erik Bosrup (erik@bosrup.com).  Last modified 2000-03-30.
//  Portions by Dan Steinman (dansteinman.com).
//  Additions by other people are listed on the overLIB homepage.
//
//  Get the latest version at http://www.bosrup.com/web/overlib/
//
//  This script is published under an open source license. Please read the license
//  agreement online at: http://www.bosrup.com/web/overlib/license.html
//  If you have questions regard the license please contact erik@bosrup.com.
//
//  This script library was originally created for personal use. By request it has
//  later been made public. This is free software. Do not try to sell this as your
//  own work, or remove this copyright notice. For full details on copying this
//  script please read the license agreement at the link above.
//
//  Please give credit on sites that use overLIB and submit changes of the script
//  so other people can use them as well. This script is free to use, don't abuse.
////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////
// CONSTANTS
// Don't touch these. :)
////////////////////////////////////////////////////////////////////////////////////
var INARRAY		=	1;
var CAPARRAY		=	2;
var STICKY		=	3;
var BACKGROUND		=	4;
var NOCLOSE		=	5;
var CAPTION		=	6;
var LEFT		=	7;
var RIGHT		=	8;
var CENTER		=	9;
var OFFSETX		=	10;
var OFFSETY		=	11;
var FGCOLOR		=	12;
var BGCOLOR		=	13;
var TEXTCOLOR		=	14;
var CAPCOLOR		=	15;
var CLOSECOLOR		=	16;
var WIDTH		=	17;
var BORDER		=	18;
var STATUS		=	19;
var AUTOSTATUS		=	20;
var AUTOSTATUSCAP	=	21;
var HEIGHT		=	22;
var CLOSETEXT		=	23;
var SNAPX		=	24;
var SNAPY		=	25;
var FIXX		=	26;
var FIXY		=	27;
var FGBACKGROUND	=	28;
var BGBACKGROUND	=	29;
var PADX		=	30;
var PADY		=	31;
var PADX2		=	32;
var PADY2		=	33;
var FULLHTML		=	34;
var ABOVE		=	35;
var BELOW		=	36;
var CAPICON		=	37;
var TEXTFONT		=	38;
var CAPTIONFONT		=	39;
var CLOSEFONT		=	40;
var TEXTSIZE		=	41;
var CAPTIONSIZE		=	42;
var CLOSESIZE		=	43;
var FRAME		=	44;



////////////////////////////////////////////////////////////////////////////////////
// DEFAULT CONFIGURATION
// You don't have to change anything here if you don't want to. All of this can be
// changed on your html page or through an overLIB call.
////////////////////////////////////////////////////////////////////////////////////

// Main background color (the large area)
// Usually a bright color (white, yellow etc)
if (typeof ol_fgcolor == 'undefined') { var ol_fgcolor = "#FFFFFF";}
	
// Border color and color of caption
// Usually a dark color (black, brown etc)
if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "#990033";}
	
// Text color
// Usually a dark color
if (typeof ol_textcolor == 'undefined') { var ol_textcolor = "#000000";}
	
// Color of the caption text
// Usually a bright color
if (typeof ol_capcolor == 'undefined') { var ol_capcolor = "#FFFFFF";}
	
// Color of "Close" when using Sticky
// Usually a semi-bright color
if (typeof ol_closecolor == 'undefined') { var ol_closecolor = "#FFFFFF";}

// Font face for the main text
if (typeof ol_textfont == 'undefined') { var ol_textfont = "Verdana,Arial,Helvetica";}

// Font face for the caption
if (typeof ol_captionfont == 'undefined') { var ol_captionfont = "Verdana,Arial,Helvetica";}

// Font face for the close text
if (typeof ol_closefont == 'undefined') { var ol_closefont = "Verdana,Arial,Helvetica";}

// Font size for the main text
if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";}

// Font size for the caption
if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "1";}

// Font size for the close text
if (typeof ol_closesize == 'undefined') { var ol_closesize = "1";}

// Width of the popups in pixels
// 100-300 pixels is typical
if (typeof ol_width == 'undefined') { var ol_width = "200";}
	
// How thick the ol_border should be in pixels
// 1-3 pixels is typical
if (typeof ol_border == 'undefined') { var ol_border = "1";}
	
// How many pixels to the right/left of the cursor to show the popup
// Values between 3 and 12 are best
if (typeof ol_offsetx == 'undefined') { var ol_offsetx = 10;}
	
// How many pixels to the below the cursor to show the popup
// Values between 3 and 12 are best
if (typeof ol_offsety == 'undefined') { var ol_offsety = 10;}

// Default text for popups
// Should you forget to pass something to overLIB this will be displayed.
if (typeof ol_text == 'undefined') { var ol_text = "Default Text"; }

// Default caption
// You should leave this blank or you will have problems making non caps popups.
if (typeof ol_cap == 'undefined') { var ol_cap = ""; }

// Decides if sticky popups are default.
// 0 for non, 1 for stickies.
if (typeof ol_sticky == 'undefined') { var ol_sticky = 0; }

// Default background image. Better left empty unless you always want one.
if (typeof ol_background == 'undefined') { var ol_background = ""; }

// Text for the closing sticky popups.
// Normal is "Close".
if (typeof ol_close == 'undefined') { var ol_close = "Close"; }

// Default vertical alignment for popups.
// It's best to leave RIGHT here. Other options are LEFT and CENTER.
if (typeof ol_hpos == 'undefined') { var ol_hpos = RIGHT; }

// Default status bar text when a popup is invoked.
if (typeof ol_status == 'undefined') { var ol_status = ""; }

// If the status bar automatically should load either text or caption.
// 0=nothing, 1=text, 2=caption
if (typeof ol_autostatus == 'undefined') { var ol_autostatus = 0; }

// Default height for popup. Often best left alone.
if (typeof ol_height == 'undefined') { var ol_height = -1; }

// Horizontal grid spacing that popups will snap to.
// 0 makes no grid, anything else will cause a snap to that grid spacing.
if (typeof ol_snapx == 'undefined') { var ol_snapx = 0; }

// Vertical grid spacing that popups will snap to.
// 0 makes no grid, andthing else will cause a snap to that grid spacing.
if (typeof ol_snapy == 'undefined') { var ol_snapy = 0; }

// Sets the popups horizontal position to a fixed column.
// Anything above -1 will cause fixed position.
if (typeof ol_fixx == 'undefined') { var ol_fixx = -1; }

// Sets the popups vertical position to a fixed row.
// Anything above -1 will cause fixed position.
if (typeof ol_fixy == 'undefined') { var ol_fixy = -1; }

// Background image for the popups inside.
if (typeof ol_fgbackground == 'undefined') { var ol_fgbackground = ""; }

// Background image for the popups frame.
if (typeof ol_bgbackground == 'undefined') { var ol_bgbackground = ""; }

// How much horizontal left padding text should get by default when BACKGROUND is used.
if (typeof ol_padxl == 'undefined') { var ol_padxl = 1; }

// How much horizontal right padding text should get by default when BACKGROUND is used.
if (typeof ol_padxr == 'undefined') { var ol_padxr = 1; }

// How much vertical top padding text should get by default when BACKGROUND is used.
if (typeof ol_padyt == 'undefined') { var ol_padyt = 1; }

// How much vertical bottom padding text should get by default when BACKGROUND is used.
if (typeof ol_padyb == 'undefined') { var ol_padyb = 1; }

// If the user by default must supply all html for complete popup control.
// Set to 1 to activate, 0 otherwise.
if (typeof ol_fullhtml == 'undefined') { var ol_fullhtml = 0; }

// Allow overLIB to load usage images. Set to zero to stop.
if (typeof o3_tracker == 'undefined') { var o3_tracker = 0; }

// Default vertical position of the popup. Default should normally be BELOW.
// ABOVE only works when HEIGHT is defined.
if (typeof ol_vpos == 'undefined') { var ol_vpos = BELOW; }

// Default height of popup to use when placing the popup above the cursor.
if (typeof ol_aboveheight == 'undefined') { var ol_aboveheight = 0; }

// Default icon to place next to the popups caption.
if (typeof ol_caption == 'undefined') { var ol_capicon = ""; }

// Default frame. We default to current frame if there is no frame defined.
if (typeof ol_frame == 'undefined') { var ol_frame = self; }



////////////////////////////////////////////////////////////////////////////////////
// ARRAY CONFIGURATION
// You don't have to change anything here if you don't want to. The following
// arrays can be filled with text and html if you don't wish to pass it from
// your html page.
////////////////////////////////////////////////////////////////////////////////////

var ol_caps = new Array("BLANK",
"The Director (Tomakin)",
"Lenina Crowne",
"Bernard Marx",
"The Savage (John)",
"Mustapha Mond",
"Helmholtz Watson",
"Ford",
"Henry Foster",
"Linda",
"George Edzel",
"Benito Hoover",
"Pop&eacute;",
"Fanny Crowne",
"Morgana Rothschild",
"Fifi Bradlaugh",
"Clara Deterdling",
"reporters",
"Reuben Rabinovitch",
"Tom Kawaguchi",
"Joanna Diesel",
"Bokanovsky&#39;s Process",
"Soma",
"Orgy-Porgy",
"Violent Passion Surrogate",
"Hypnopaedia",
"Feelies",
"Sexual Hormone Chewing Gum",
"The Savage Reservation, aka Malpais",
"Slough Crematorium",
"Synthetic Music",
"Solidarity Service Day",
"The Loving Cup",
"Central London Hatching and Conditioning Center",
"Alpha",
"Epsilon",
"Soma-Holiday",
"The Other Place",
"Hospital for the Dying",
"Death Conditioning",
"Delta workers",
"Lighthouse",
"The Feely Corporation",
"Decanting",
"Alpha Plus Intellectuals",
"Pregnancy Substitute",
"Ectogenesis",
"Neo-Pavlovian Conditioning",
"Malthusian Belt/ Thomas Malthus",
"Sigmund Freud",
"motto",
"Social Predestination Room",
"Freemartins",
"Caste System",
"Beta",
"Delta",
"Ivan Pavlov",
"A.F.",
"Malthus",
"fordship",
"Centrifugal bumble-puppy",
"Stoke Poges Club",
"Obstacle Golf",
"Bottled",
"Fordson Community Singery",
"Mescal",
"Complete Works of William Shakespeare",
"Old Mitsima",
"Kiakime");

// Array with texts.
 var ol_texts = new Array("BLANK",
"The Director is the first character we meet.  He is leading a tour in the Central London Hatchery and Conditioning Centre.  It turns out that he impregnated a woman who was then lost to the Savage Reservation.  When Bernard and Lenina travel to the Reservation, they find the woman, Linda, and her son, John (the Savage), and as the director is reprimanding Bernard, Bernard arranges for the appearance of John and Linda.  The Director, humiliated by his illegitimate wife and son, leaves, and this is basically the last we hear of him.",
"Lenina is the main female character.  She is nineteen years old. She is typical of the new civilized person, both intellectually and sexually.  She is the female archetype and also the ideal: very attractive, popular, and &#39;pneumatic.&#39; She is first seen as a lab worker, and the companion of Henry Foster.  Unlike most of the main characters, she is of the Beta caste in the social hierarchy (others are Alpha or Alpha-Plus). Bernard is extremely interested in her, and luckily for him, she is also interested; eventually they go out on a date and following the date, they have sex.  She goes with him to The Savage Reservation, where she meets John, who soon after, is referred to as the Savage.  She becomes interested in John, but he rejects her; she is typical of a civilization he does not understand.  This makes her sad and frustrated.  Eventually, she shows up at his refuge, and he beats her with his whip.",
"Bernard Marx is one of the most important male characters.  He works for the Psychology Department of the Central London Hatcheries and Conditioning Centre.  He is of the top social caste, an Alpha Plus Intellectual.  He is the only upper-caste member in the book besides Helmholtz Watson who voices disapproval and bitterness toward society.  He is extremely disgruntled.  He has a crushing sense of inferiority due to his physical condition.  Although he is an Alpha, he is shorter and thinner than the typical male of his social status, and some say he was incorrectly exposed to alcohol while being decanted at the Central London Hatcheries and Conditioning Centre.  He voices thoughts that go against the governmental conditioning, such as the beauty of the ocean and the moon, the idea of monogamy (only one sexual partner), and the desire to be alone.  Despite his inadequacies, he is intriguing to Lenina, who travels with him to the Savage Reservation.  He connects with the illegitimate son of the Director, John, (later the Savage), and arranges for John&#39;s transport back to London, where he uses his presence to humiliate the Director.  This brings him a very short-lived fame.  He becomes very popular upon the introduction of the Savage, but his popularity dies down and he is back where he started when the Savage refuses to show himself off at a meeting and then causes a riot at the Hospital for the Dying.  Eventually, the World Controller Mustapha Mond deports Bernard Marx and his friend Helmholtz Watson to an island for other unorthodox figures, removing their threatening ideas from the ideal society.",
"We first meet John when Bernard and Lenina go to the Savage Reservation.  He is the illegitimate son of Linda, a Beta (second) class woman who was impregnated twenty-five years ago by the Director (Tomakin), and then disappeared and brought up in the Reservation.  He becomes a curiosity in London, after traveling back with Bernard and Lenina.  Bernard uses his illegitimate status to embarrass the Director. Lenina comes on to him several times, but although he finds her beautiful, almost to the point of obsession, he violently rejects her because he finds her to be a manifestation of the new civilization he despises.  When his mother, Linda, dies, he causes a riot in the Hospital for the Dying and is arrested.  He flees to an abandoned lighthouse with the hopes of starting over, creating his own self-made, independent, and organic society.  But even this turns him into a public figure when two workers record him whipping himself in atonement.  Despairing, having lost all his ideals and hope, he hangs himself.  Reporters find him, and this is the final event of the novel.",
"Mustapha Mond is the World Controller for Western Europe, one of ten World Controllers.  We first meet him on the tour of the Central London Hatcheries and Conditioning Centre, where he tells the students of the horrifying familial patterns, such as monogamy and the mother-child bond, that existed before the new civilization was erected.  We find out later that he was once a very successful scientist who unfortunately did too much independent work.  He was threatened with deportation to an island if he did not change his ways, and given the alternative of going to Controller Training.  He picked the Controller Training.  He has an important conversation with the Savage following the Savage&#39;s arrest.  They speak of God, literature, and other subversive subjects.  Although Mustapha Mond has read the Bible and some Shakespeare, he insists that only he who makes the rules can break them.  He connects with the Savage on some levels, but, in the grand scheme of things, he is by no means a character against the establishment.",
"Helmholtz Watson is Bernard&#39;s confidante.  He is a lecturer at the College of Emotional Engineering.  He is strongly built and handsome, but his remarkable intelligence isolates him from colleagues and peers.  Amidst his excellence with sports, women, and activities, he agonizes over an interest in something else, but of what he is not sure.  He is unsatisfied.  He is a frustrated writer. He too has subversive ideas, which get him in trouble when his bosses, the powers-that-be, discover a poem he has written about being alone.  Eventually, through his association with Bernard and the Savage, he is deported to an island.",
"Ford is the surrogate, and surrogate word, for God in the new civilization.  People say things like &#39;Oh, Ford!; and &#39;Fordey!&#39; The new sign, replacing the cross, is a T, or a cross with the top chopped off.  &#39;Ford&#39; is later revealed to be a corruption of the word Freud, otherwise known as the last name of the psychologist Sigmund Freud, whose psycho-sexual theories are controversial.  Mustapha Mond explains that Ford, or Freud, as he used to call himself when speaking of psychological matters, was the first to reveal the perversion, misery, and dangers of family life.   ",
"Henry Foster is one of Lenina&#39;s lovers, the first we meet. He helps give the tour of the Central London Hatcheries and Conditioning Centre.",
"Linda is the mother of the Savage, or John.  She was of the Beta, or second caste. Twenty-five years ago, she went on a vacation with Tomakin, the Director, to the Savage Reservation in New Mexico.  While there, she hit her head and disappeared, and he returned to civilization without her.  Later, she is rescued by people of the Reservation, and unable to escape, gives birth to John.  She is trapped, and cannot return to civilization now that she has had a live birth and has lived in the Reservation.  She returns to London with her son, Lenina, and Bernard.  She is put on permanent soma-holiday and observed as a specimen of the ugliness of old age.  She wakes just once, mistaking John for her lover on the Reservation, recognizes him as her son, and dies of the shock of this realization.",
"George Edzel is one of the men with whom Lenina has had sex He is of the same caste as Bernard, yet he is a finer, more typical specimen. Lenina comments that he is charming, yet she wishes his ears weren&#39;t so big.",
"Benito Hoover is another man that Lenina has slept with.  She comments that he is charming, yet recalls that he really is too hairy with his clothes off.  He is very good-natured, which irks Bernard to no end.  He is the sunny reality which Bernard does not like or trust, though Bernard accepts his friendship during his popular phase upon the discovery of the Savage.",
"Pop&eacute; is Linda&#39;s Indian lover while she is on the Reservation.  He has long, black braids and wears a large silver bracelet with turquoise.  John resents Pop&eacute; very much.  For one thing, Pop&eacute; brings his mother mescal, which keeps her drugged and unapproachable, then leaves her sick.  He even tries to stab Pop&eacute; at one point, but Pop&eacute; is too strong and catches his wrist.     ",
"Fanny Crowne is one of Lenina&#39;s coworkers and a good friend.  Through her discussions with Lenina in Chapter 3, we learn much of the sexual politics of Brave New World.  That they share the same last name is purely coincidental, since only ten thousand last names exist in the whole World State.",
"Morgana is a very minor character.  Bernard, without thinking, sits next to her at the orgy-porgy and immediately regrets it because she has a unibrow.  She is more enthusiastic about him, though.",
"Fifi is a minor character as well, appearing only at the orgy-porgy.  Bernard is angry with himself for sitting next to the ugly Morgana and the intimidatingly attractive Fifi, and wishes he&#39;d chosen the seat between Clara and Joanna.",
"Clara has pretty much the exact same minor role as Joanna, as an attractive guest at the orgy-porgy who Bernard compares with the unattractive Morgana Rothschild. Bernard wishes he&#39;d sat next to Clara and Joanna instead, because they are more attractive, or as the novel&#39;s lingo goes, pneumatic.",
"They swarm around the savage to get his story.",
"Reuben Rabinovitch is a little Polish boy that World Controller Mustapha Mond tells the student tour group about.  He was the catalyst for the discovery of hypnopaedia, or sleep-teaching, which is widely used at the Central London Hatcheries and Conditioning Centre.",
"Tom is a man at Bernard&#39;s Solidarity Service day.  Bernard is angry at himself for not sitting between Joanna Diesel and Clara Deterdling, and calls Tom a lout when Tom enters late and gets that coveted seat.",
"Joanna has the same minor role as Clara Deterdling, as an attractive guest at the orgy-porgy who Bernard compares with the unattractive Morgana Rothchild. Bernard wishes he&#39;d sat next to Clara and Joanna instead, because they are more attractive, or as the novel&#39;s lingo goes, pneumatic.",
"Basically, this process involves letting the egg &#39;bud&#39; and creates up to ninety-six embryos from each bud, each of which will grow into a human being.  The Director calls the Bokanovsky process &#39;one of the major instruments of social stability.&#39;",
"Soma is the drug that people take in half-gramme tablets to get away from it all.  It produces a joyful effect in which all bad things are simply whisked away.  It is on hand at all times. For most of their lives, the citizens of the Brave New World are doped up. John, or the Savage, is pretty much the only one in the book who has never taken soma.  The creation and introduction of soma is as such: Two thousand pharmocologists and bio-chemists were subsidized in A.F. 178, and six years later, it was being produced commercially.",
"A meeting of about a dozen men and women where they pass &#39;the loving cup&#39; of strawberry ice cream spiked with soma, sing Solidarity anthems, see Ford, and have sex.  Bernard goes to one of these orgy-porgies.  At the end of the novel, it is, for a good part, the orgy-porgy that occurs outside of the Savage&#39;s refuge that drives him to his suicide.",
"Once a month, people are required to go to the conditioning centre to have their systems flooded with adrenaline, which provides them with their ration of fear and rage, without actually having to act on any of it.  ",
"Hypnophaedia is sleep-teaching.  We first see this in the Director&#39;s tour. It is a series of repeated sayings used to teach children everything from their place in society to clever little sayings and proverbs. Basically, it is a form of thought control, or the imposing of a mind-script.  While the children at the Central London Hatcheries and Conditioning Centre are napping, these &#39;lessons&#39; are played time and time again, thousands of times between the ages of three and sixteen.",
"These are the popular films.  Filmgoers sit in special chairs that allow them to feel, and to interact, with the movie.  The plots are simple, and often involve sex.  Lenina takes The Savage to one of these feelies.  She enjoys it very much, but he is horrified.",
"This is chewed by men, for instance, Bernard, to attract women.  Benito Hoover gives him several packs to congratulate him on his achievement with the Savage.",
"The Savage Reservation, or Malpais: The Savage Reservation, or Malpais, is filled with sixty thousand Indians and half-breeds, where things considered abominations, such as marriage, religion, disease, and wild animals still exist.  The Reservation is in New Mexico.  Malpais means &#39;bad country&#39; in Spanish.",
"Lenina and Henry Foster fly over this building on their way to the concert.  In the crematorium, the gases produced are treated and ninety-eight percent of the phosphorous is removed for further use.  Phosphorus is then used for fertilizer.  Henry comments that it is a fine achievement that people can continue being socially useful even after they&#39;re dead.",
"This music comes out of speakers and has a calming effect.  It is used at feelies, which are popular sensory movies.",
"This is an act compulsory for high-caste people.  They gather together for soma and an orgy, aka orgy-porgy.",
"The Loving Cup is passed around at the compulsory Solidarity Service Day orgy, aka orgy-porgy, which Bernard attends.  It is filled with strawberry ice cream, spiked with soma.    ",
"This is the building where the embryos are created and conditioned.",
"Alpha is the highest caste in the caste system.  Alphas have the highest level of intelligence and attractiveness.",
"Epsilon is the lowest caste in the caste system.  They possess little to no human intelligence, and they are used only as workers.",
"A soma-holiday refers to the drugged state one enters after taking a large dose of soma, a drug which is widespread and commonplace, used for relaxation and to maintain social stability.  ",
"Linda refers to the world outside Malpais, the Savage Reservation, as the Other Place.  ",
"All aging and dying people are sent to this hospital so that others in society will not be exposed to anything but eternal youth and vitality.  Linda, the mother of The Savage, is put on permanent soma-holiday and sent to the Hospital for the Dying.  Due to the time she spent lost at the Savage Reservation, she aged, a phenomenon unknown outside the reservation.",
"Children are brought to the Park Lane Hospital for the Dying and given chocolate ice cream as part of their Death Conditioning, in which they learn to accept death as a part of life.  ",
"These dozens of identical twins, dressed in mandatory khaki, are only one step up from the bottom caste, Epsilons.  They staff the Park Lane Hospital for the Dying.",
"The Savage exiles himself to the lighthouse after his mother Linda dies.  He plans to garden there and start anew, away from the World State, a society he rejects. Once there, some low-caste people spy on him, and alert reporters to his unfamiliar lifestyle.  Much to his dismay, he becomes a public sensation and this spurs an orgy/riot outside the lighthouse.  Following this, The Savage hangs himself in the lighthouse and several reporters discover him.",
"This company produces the &#39;feelie&#39; films, which are so popular in the World State. Feelies are the popular films.  Filmgoers sit in special chairs that allow them to feel, and to interact, with the movie.  The plots are simple, and often involve sex.  Lenina takes The Savage to one of these feelies.  She enjoys it very much, but he is horrified.",
"Decanting takes the place of live birth, which no longer exists in the World State.  In the World State, human beings do not reproduce in the traditional way, that is, through sex.  Instead, there is a complicated scientific process that resembles that of a test-tube baby, involving extracted ovaries and the close monitoring and control of the end product.  It is a scientific process described in great detail by the Director of Hatcheries and Conditioning in the first chapter.  There no longer exists such a thing as a live (viviparous) birth; in fact, the students are horrified even to recall that such a thing once existed.  Human beings do not say that they were &#39;born&#39;; they say that they were &#39;decanted&#39;.",
"This is the top-ranking social caste in the novel.  Bernard Marx is an alpha-plus intellectual, as is Helmholtz Watson.",
"Since there is no live birth or pregnancy, only decanting, it is suggested that women take a pregnancy substitute, which lasts several months.  The procedure is not described in detail.  It is compulsory at age twenty-one, but some women have it as early as seventeen.",
"This is the scientific process of the breaking up, or budding, of the egg, which is done at the Central London Hatcheries and Conditioning Centre.  ",
"The process of raising a person in the World State includes this procedure, done with young babies while they are being brought up in the Hatchery and Conditioning Centres.  Nurses supervise the linking of objects with positive or negative feelings and conditions.  For example, in Chapter 2, to keep Deltas away from books and flowers, the babies are exposed to a combination of these two things along with electric shocks and sirens and alarms.  The infants therefore associate the unpleasant noises and feelings with the books and flowers, and do not like these objects anymore.",
"Lenina Crowne and other high-caste women wear these belts.  They are fashionable (Lenina&#39;s is green and fancy) and on these belts, they carry their contraception at all times.  Malthus was an eighteenth century writer who, put most simply, discussed the problematic nature of unchecked population growth when combined with other factors, such as the inability of food production to keep up with the demand for food.",
"Sigmund Freud was an Austrian-born psychologist.  He is considered the father of modern psychology.  He is famous and controversial for his psycho-sexual theories, which often involve family dynamics, including the Oedipus Complex.     ",
"The motto of the World State is: &#39;Community, Identity, Stability&#39;",
"It is in this room that the embryos are treated in scientific ways so that they will become members of the caste system.",
"These are the embryos that are created genderless.",
"The people of the World State are all part of a rigid caste system.  It goes, in descending order, Alpha, Beta, Delta, Epsilon, and Gamma.    ",
"This is the second-highest caste in the caste system.  Betas possess human intelligence, though not as much as Alphas or Alpha Plus Intellectuals.",
"Delta is the third caste in the system, outranking only the sub-human Epsilon caste.  The Deltas are used mainly as workers.",
"Ivan Pavlov (1849-1936) was a Russian-born behavioral psychologist who developed the idea of conditioning.  He worked with dogs, teaching them to associate the sound of a ringing bell with the appearance of meat.  The meat made the dogs salivate.  Eventually, the very sound of the bell, even when unaccompanied by the reward of meat, elicited the conditioned response, salivation.  ",
"This refers to After Ford, or the years after the death of the figure of Ford. Ford is the surrogate, and surrogate word, for God in the new civilization.  People say things like &#39;Oh, Ford!&#39; and &#39;Fordey!&#39; The new sign, replacing the cross, is a T, or a cross with the top chopped off, which alludes to the Model T, the first Ford (as in the motor vehicle company) car. &#39;Ford&#39; is also a corruption of the word Freud, otherwise known as the last name of the psychologist Sigmund Freud, whose psycho-sexual theories, many of which involve family dynamics, are controversial.  Mustapha Mond explains that Ford, or Freud, as he used to call himself when speaking of psychological matters, was the first to reveal the perversion, misery, and dangers of family life.",
"Thomas Robert Malthus was a eighteenth-century writer whose An Essay on the Principle of Population was published in 1798.   It has two postulates: that food is necessary for the existence of man, and that passion between the sexes is necessary and will persist.  Therefore, an unchecked population is problematic when combined with the inability of food production to keep up with population growth.  ",
"A title of authority; named after the great Ford (Freund).",
"This is a game that children play.  It involves a steel ring and a ball.  ",
"Lenina and Henry go to this club to dance to synthetic music by Calvin Stokes and His Sixteen Sexophonists.",
"This is one of the many games which the people of the World State play.  ",
"This is the slang term for people who have taken soma.  ",
"This is where Bernard goes for the orgy-porgy",
"Mescal is a hallucinogenic.  Linda, the mother of the Savage, takes it in mass quantities because it takes her away from her life at the Savage Reservation, Malpais, and because it has a similar effect to soma.  Pop&eacute;, her Indian lover, brings it to her in liquid form in a gourd.",
"The Savage reads this while still at the Reservation, Malpais.  He continually makes references, including full quotes, to Shakespeare plays, when feeling strong emotions.  For instance, he recites part of Romeo&#39;s speech describing Juliet when he, the Savage, is looking at Lenina, and he recites part of Macbeth&#39;s speech upon deciding to kill his father, when he, the Savage, tries to kill his mother Linda&#39;s lover Pop&eacute;.  The Savage is excited to find out that World Controller Mustapha Mond is also familiar with Shakespeare.",
"An elder in the pueblo who teaches John pottery.",
"The marriage of this pueblo girl to another man makes John long for his missed opportunities.  He stands at the edge of a cliff and contemplates suicide, discovering Time, Death and God.");


////////////////////////////////////////////////////////////////////////////////////
// END CONFIGURATION
////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////
// INIT
////////////////////////////////////////////////////////////////////////////////////


// Runtime variables init. Used for runtime only, don't change, not for config!
var o3_text = "";
var o3_cap = "";
var o3_sticky = 0;
var o3_background = "";
var o3_close = "Close";
var o3_hpos = RIGHT;
var o3_offsetx = 2;
var o3_offsety = 2;
var o3_fgcolor = "";
var o3_bgcolor = "";
var o3_textcolor = "";
var o3_capcolor = "";
var o3_closecolor = "";
var o3_width = 100;
var o3_border = 1;
var o3_status = "";
var o3_autostatus = 0;
var o3_height = -1;
var o3_snapx = 0;
var o3_snapy = 0;
var o3_fixx = -1;
var o3_fixy = -1;
var o3_fgbackground = "";
var o3_bgbackground = "";
var o3_padxl = 0;
var o3_padxr = 0;
var o3_padyt = 0;
var o3_padyb = 0;
var o3_fullhtml = 0;
var o3_vpos = BELOW;
var o3_aboveheight = 0;
var o3_capicon = "";
var o3_textfont = "Verdana,Arial,Helvetica";
var o3_captionfont = "Verdana,Arial,Helvetica";
var o3_closefont = "Verdana,Arial,Helvetica";
var o3_textsize = "1";
var o3_captionsize = "1";
var o3_closesize = "1";
var o3_frame = self;



// Display state variables
var o3_x = 0;
var o3_y = 0;
var o3_allowmove = 0;
var o3_showingsticky = 0;
var o3_removecounter = 0;

// Our layer
var over = null;


// Decide browser version
var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
var ie5 = false;

// Microsoft Stupidity Check(tm).
if (ie4) {
	if (navigator.userAgent.indexOf('MSIE 5')>0) {
		ie5 = true;
	}
}


// Capture events, alt. diffuses the overlib function.
if ( (ns4) || (ie4) ) {
	document.onmousemove = mouseMove
	if (ns4) document.captureEvents(Event.MOUSEMOVE)
} else {
	overlib  = no_overlib;
	nd       = no_overlib;
	ver3fix  = true;
}


// Fake function for 3.0 users.
function no_overlib() {
	return ver3fix;
}



////////////////////////////////////////////////////////////////////////////////////
// PUBLIC FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// overlib(arg0, ..., argN)
// Loads parameters into global runtime variables.
function overlib() {
	
	// Load defaults to runtime.
	o3_text = ol_text;
	o3_cap = ol_cap;
	o3_sticky = ol_sticky;
	o3_background = ol_background;
	o3_close = ol_close;
	o3_hpos = ol_hpos;
	o3_offsetx = ol_offsetx;
	o3_offsety = ol_offsety;
	o3_fgcolor = ol_fgcolor;
	o3_bgcolor = ol_bgcolor;
	o3_textcolor = ol_textcolor;
	o3_capcolor = ol_capcolor;
	o3_closecolor = ol_closecolor;
	o3_width = ol_width;
	o3_border = ol_border;
	o3_status = ol_status;
	o3_autostatus = ol_autostatus;
	o3_height = ol_height;
	o3_snapx = ol_snapx;
	o3_snapy = ol_snapy;
	o3_fixx = ol_fixx;
	o3_fixy = ol_fixy;
	o3_fgbackground = ol_fgbackground;
	o3_bgbackground = ol_bgbackground;
	o3_padxl = ol_padxl;
	o3_padxr = ol_padxr;
	o3_padyt = ol_padyt;
	o3_padyb = ol_padyb;
	o3_fullhtml = ol_fullhtml;
	o3_vpos = ol_vpos;
	o3_aboveheight = ol_aboveheight;
	o3_capicon = ol_capicon;
	o3_textfont = ol_textfont;
	o3_captionfont = ol_captionfont;
	o3_closefont = ol_closefont;
	o3_textsize = ol_textsize;
	o3_captionsize = ol_captionsize;
	o3_closesize = ol_closesize;

	// Special for frame support, over must be reset...
	if ( (ns4) || (ie4) ) {
		o3_frame = ol_frame;
		if (ns4) over = o3_frame.document.overDiv
		if (ie4) over = o3_frame.overDiv.style
	}
	
	
	// What the next argument is expected to be.
	var parsemode = -1;

	for (i = 0; i < arguments.length; i++) {
		
		if (parsemode == 0) {
			// Arg is command
			if (arguments[i] == INARRAY) { parsemode = INARRAY; }
			if (arguments[i] == CAPARRAY) { parsemode = CAPARRAY; }
			if (arguments[i] == STICKY) { parsemode = opt_STICKY(arguments[i]); }
			if (arguments[i] == BACKGROUND) { parsemode = BACKGROUND; }
			if (arguments[i] == NOCLOSE) { parsemode = opt_NOCLOSE(arguments[i]); }
			if (arguments[i] == CAPTION) { parsemode = CAPTION; }
			if (arguments[i] == LEFT) { parsemode = opt_HPOS(arguments[i]); }
			if (arguments[i] == RIGHT) { parsemode = opt_HPOS(arguments[i]); }
			if (arguments[i] == CENTER) { parsemode = opt_HPOS(arguments[i]); }
			if (arguments[i] == OFFSETX) { parsemode = OFFSETX; }
			if (arguments[i] == OFFSETY) { parsemode = OFFSETY; }
			if (arguments[i] == FGCOLOR) { parsemode = FGCOLOR; }
			if (arguments[i] == BGCOLOR) { parsemode = BGCOLOR; }
			if (arguments[i] == TEXTCOLOR) { parsemode = TEXTCOLOR; }
			if (arguments[i] == CAPCOLOR) { parsemode = CAPCOLOR; }
			if (arguments[i] == CLOSECOLOR) { parsemode = CLOSECOLOR; }
			if (arguments[i] == WIDTH) { parsemode = WIDTH; }
			if (arguments[i] == BORDER) { parsemode = BORDER; }
			if (arguments[i] == STATUS) { parsemode = STATUS; }
			if (arguments[i] == AUTOSTATUS) { parsemode = opt_AUTOSTATUS(arguments[i]); }
			if (arguments[i] == AUTOSTATUSCAP) { parsemode = opt_AUTOSTATUSCAP(arguments[i]); }
			if (arguments[i] == HEIGHT) { parsemode = HEIGHT; }
			if (arguments[i] == CLOSETEXT) { parsemode = CLOSETEXT; }
			if (arguments[i] == SNAPX) { parsemode = SNAPX; }
			if (arguments[i] == SNAPY) { parsemode = SNAPY; }
			if (arguments[i] == FIXX) { parsemode = FIXX; }
			if (arguments[i] == FIXY) { parsemode = FIXY; }
			if (arguments[i] == FGBACKGROUND) { parsemode = FGBACKGROUND; }
			if (arguments[i] == BGBACKGROUND) { parsemode = BGBACKGROUND; }
			if (arguments[i] == PADX) { parsemode = PADX; }
			if (arguments[i] == PADY) { parsemode = PADY; }
			if (arguments[i] == FULLHTML) { parsemode = opt_FULLHTML(arguments[i]); }
			if (arguments[i] == ABOVE) { parsemode = opt_VPOS(arguments[i]); }
			if (arguments[i] == BELOW) { parsemode = opt_VPOS(arguments[i]); }
			if (arguments[i] == CAPICON) { parsemode = CAPICON; }
			if (arguments[i] == TEXTFONT) { parsemode = TEXTFONT; }
			if (arguments[i] == CAPTIONFONT) { parsemode = CAPTIONFONT; }
			if (arguments[i] == CLOSEFONT) { parsemode = CLOSEFONT; }
			if (arguments[i] == TEXTSIZE) { parsemode = TEXTSIZE; }
			if (arguments[i] == CAPTIONSIZE) { parsemode = CAPTIONSIZE; }
			if (arguments[i] == CLOSESIZE) { parsemode = CLOSESIZE; }
			if (arguments[i] == FRAME) { parsemode = FRAME; }


		} else {
			if (parsemode < 0) {
				// Arg is maintext, unless INARRAY
				if (arguments[i] == INARRAY) {
					parsemode = INARRAY;
				} else {
					o3_text = arguments[i];
					parsemode = 0;
				}
			} else {
				// Arg is option for command
				if (parsemode == INARRAY) { parsemode = opt_INARRAY(arguments[i]); }
				if (parsemode == CAPARRAY) { parsemode = opt_CAPARRAY(arguments[i]); }
				if (parsemode == BACKGROUND) { parsemode = opt_BACKGROUND(arguments[i]); }
				if (parsemode == CAPTION) { parsemode = opt_CAPTION(arguments[i]); }
				if (parsemode == OFFSETX) { parsemode = opt_OFFSETX(arguments[i]); }
				if (parsemode == OFFSETY) { parsemode = opt_OFFSETY(arguments[i]); }
				if (parsemode == FGCOLOR) { parsemode = opt_FGCOLOR(arguments[i]); }
				if (parsemode == BGCOLOR) { parsemode = opt_BGCOLOR(arguments[i]); }
				if (parsemode == TEXTCOLOR) { parsemode = opt_TEXTCOLOR(arguments[i]); }
				if (parsemode == CAPCOLOR) { parsemode = opt_CAPCOLOR(arguments[i]); }
				if (parsemode == CLOSECOLOR) { parsemode = opt_CLOSECOLOR(arguments[i]); }
				if (parsemode == WIDTH) { parsemode = opt_WIDTH(arguments[i]); }
				if (parsemode == BORDER) { parsemode = opt_BORDER(arguments[i]); }
				if (parsemode == STATUS) { parsemode = opt_STATUS(arguments[i]); }
				if (parsemode == HEIGHT) { parsemode = opt_HEIGHT(arguments[i]); }
				if (parsemode == CLOSETEXT) { parsemode = opt_CLOSETEXT(arguments[i]); }
				if (parsemode == SNAPX) { parsemode = opt_SNAPX(arguments[i]); }
				if (parsemode == SNAPY) { parsemode = opt_SNAPY(arguments[i]); }
				if (parsemode == FIXX) { parsemode = opt_FIXX(arguments[i]); }
				if (parsemode == FIXY) { parsemode = opt_FIXY(arguments[i]); }
				if (parsemode == FGBACKGROUND) { parsemode = opt_FGBACKGROUND(arguments[i]); }
				if (parsemode == BGBACKGROUND) { parsemode = opt_BGBACKGROUND(arguments[i]); }
				if (parsemode == PADX2) { parsemode = opt_PADX2(arguments[i]); } // must be before PADX
				if (parsemode == PADY2) { parsemode = opt_PADY2(arguments[i]); } // must be before PADY
				if (parsemode == PADX) { parsemode = opt_PADX(arguments[i]); }
				if (parsemode == PADY) { parsemode = opt_PADY(arguments[i]); }
				if (parsemode == CAPICON) { parsemode = opt_CAPICON(arguments[i]); }
				if (parsemode == TEXTFONT) { parsemode = opt_TEXTFONT(arguments[i]); }
				if (parsemode == CAPTIONFONT) { parsemode = opt_CAPTIONFONT(arguments[i]); }
				if (parsemode == CLOSEFONT) { parsemode = opt_CLOSEFONT(arguments[i]); }
				if (parsemode == TEXTSIZE) { parsemode = opt_TEXTSIZE(arguments[i]); }
				if (parsemode == CAPTIONSIZE) { parsemode = opt_CAPTIONSIZE(arguments[i]); }
				if (parsemode == CLOSESIZE) { parsemode = opt_CLOSESIZE(arguments[i]); }
				if (parsemode == FRAME) { parsemode = opt_FRAME(arguments[i]); }

			}
		}
	}
	
	return overlib310();
}



// Clears popups if appropriate
function nd() {
	if ( o3_removecounter >= 1 ) { o3_showingsticky = 0 };
	if ( (ns4) || (ie4) ) {
		if ( o3_showingsticky == 0 ) {
			o3_allowmove = 0;
			hideObject(over);
		} else {
			o3_removecounter++;
		}
	}
	
	return true;
}







////////////////////////////////////////////////////////////////////////////////////
// OVERLIB 3.10 FUNCTION
////////////////////////////////////////////////////////////////////////////////////


// This function decides what it is we want to display and how we want it done.
function overlib310() {

	// Make layer content
	var layerhtml;
	
	
	if (o3_background != "" || o3_fullhtml) {
		// Use background instead of box.
		layerhtml = ol_content_background(o3_text, o3_background, o3_fullhtml);
	} else {
		// They want a popup box.

		// Prepare popup background
		if (o3_fgbackground != "") {
			o3_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\"";
		}
		if (o3_bgbackground != "") {
			o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\"";
		}

		// Prepare popup colors
		if (o3_fgcolor != "") {
			o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\"";
		}
		if (o3_bgcolor != "") {
			o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\"";
		}

		// Prepare popup height
		if (o3_height > 0) {
			o3_height = "HEIGHT=" + o3_height;
		} else {
			o3_height = "";
		}

		// Decide which kinda box.
		if (o3_cap == "") {
			// Plain
			layerhtml = ol_content_simple(o3_text);
		} else {
			// With caption
			if (o3_sticky) {
				// Show close text
				layerhtml = ol_content_caption(o3_text, o3_cap, o3_close);
			} else {
				// No close text
				layerhtml = ol_content_caption(o3_text, o3_cap, "");
			}
		}
	}
	
	// We want it to stick!
	if (o3_sticky) {
		o3_showingsticky = 1;
		o3_removecounter = 0;
	}
	
	// Write layer
	layerWrite(layerhtml);
	
	// Prepare status bar
	if (o3_autostatus > 0) {
		o3_status = o3_text;
		if (o3_autostatus > 1) {
			o3_status = o3_cap;
		}
	}

	// When placing the layer the first time, even stickies may be moved.
	o3_allowmove = 0;

	// Show layer
	disp(o3_status);

	// Stickies should stay where they are.	
	if (o3_sticky) {
		o3_allowmove = 0;
		return false;
	} else {
		return true;
	}
}



////////////////////////////////////////////////////////////////////////////////////
// LAYER GENERATION FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////

// Makes simple table without caption
function ol_content_simple(text) {
	txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 "+o3_bgcolor+" "+o3_height+"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 "+o3_fgcolor+" "+o3_fgbackground+" "+o3_height+"><TR><TD VALIGN=TOP><FONT FACE=\""+o3_textfont+"\" COLOR=\""+o3_textcolor+"\" SIZE=\""+o3_textsize+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>"
	set_background("");
	return txt;
}

// Makes table with caption and optional close link
function ol_content_caption(text, title, close) {
	closing = "";
	if (close != "") {
		closing = "<TD ALIGN=RIGHT><A HREF=\"/\" onMouseOver=\"cClick();\"><FONT COLOR=\""+o3_closecolor+"\" FACE=\""+o3_closefont+"\" SIZE=\""+o3_closesize+"\">"+close+"</FONT></A></TD>";
	}
	if (o3_capicon != "") {
		o3_capicon = "<IMG SRC=\""+o3_capicon+"\"> ";
	}
	txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 "+o3_bgcolor+" "+o3_bgbackground+" "+o3_height+"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><B><FONT COLOR=\""+o3_capcolor+"\" FACE=\""+o3_captionfont+"\" SIZE=\""+o3_captionsize+"\">"+o3_capicon+title+"</FONT></B></TD>"+closing+"</TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 "+o3_fgcolor+" "+o3_fgbackground+" "+o3_height+"><TR><TD VALIGN=TOP><FONT COLOR=\""+o3_textcolor+"\" FACE=\""+o3_textfont+"\" SIZE=\""+o3_textsize+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
	set_background("");
	return txt;
}

// Sets the background picture, padding and lost more. :)
function ol_content_background(text, picture, hasfullhtml) {
	if (hasfullhtml) {
		txt = text;
	} else {
		txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING=0 CELLSPACING=0 HEIGHT="+o3_height+"><TR><TD COLSPAN=3 HEIGHT="+o3_padyt+"></TD></TR><TR><TD WIDTH="+o3_padxl+"></TD><TD VALIGN=TOP WIDTH="+(o3_width-o3_padxl-o3_padxr)+"><FONT FACE=\""+o3_textfont+"\" COLOR=\""+o3_textcolor+"\" SIZE=\""+o3_textsize+"\">"+text+"</FONT></TD><TD WIDTH="+o3_padxr+"></TD></TR><TR><TD COLSPAN=3 HEIGHT="+o3_padyb+"></TD></TR></TABLE>";
	}
	set_background(picture);
	return txt;
}

// Loads a picture into the div.
function set_background(pic) {
	if (ns4) {
		over.background.src = pic;
	} else if(ie4) {
		over.backgroundImage = "url("+pic+")";
	}
}



////////////////////////////////////////////////////////////////////////////////////
// HANDLING FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// Displays the popup
function disp(statustext) {
	if ( (ns4) || (ie4) ) {
		if (o3_allowmove == 0) 	{
			placeLayer();
			showObject(over);
			o3_allowmove = 1;
		}
	}

	if (statustext != "") {
		self.status = statustext;
	}
}

// Decides where we want the popup.
function placeLayer() {
	var placeX, placeY;
	
	// HORIZONTAL PLACEMENT
	if (o3_fixx > -1) {
		// Fixed position
		placeX = o3_fixx;
	} else {
		// From mouse
		if (o3_hpos == CENTER) { // Center
			placeX = o3_x+o3_offsetx-(o3_width/2);
		}
		if (o3_hpos == RIGHT) { // Right
			placeX = o3_x+o3_offsetx;
		}
		if (o3_hpos == LEFT) { // Left
			placeX = o3_x-o3_offsetx-o3_width;
		}
	
		// Snapping!
		if (o3_snapx > 1) {
			var snapping = placeX % o3_snapx;
			if (o3_hpos == LEFT) {
				placeX = placeX - (o3_snapx + snapping);
			} else {
				// CENTER and RIGHT
				placeX = placeX + (o3_snapx - snapping);
			}
		}
	}

	
	
	// VERTICAL PLACEMENT
	if (o3_fixy > -1) {
		// Fixed position
		placeY = o3_fixy;
	} else {
		// From mouse
		if (o3_aboveheight > 0 && o3_vpos == ABOVE) {
			placeY = o3_y - (o3_aboveheight + o3_offsety);
		} else {
			// BELOW
			placeY = o3_y + o3_offsety;
		}

		// Snapping!
		if (o3_snapy > 1) {
			var snapping = placeY % o3_snapy;
			
			if (o3_aboveheight > 0 && o3_vpos == ABOVE) {
				placeY = placeY - (o3_snapy + snapping);
			} else {
				placeY = placeY + (o3_snapy - snapping);
			}
		}
	}


	// Actually move the object.	
	moveTo(over, placeX, placeY);
}


// Moves the layer
function mouseMove(e) {
	if (ns4) {o3_x=e.pageX; o3_y=e.pageY;}
	if (ie4) {o3_x=event.x; o3_y=event.y;}
	if (ie5) {o3_x=event.x+o3_frame.document.body.scrollLeft; o3_y=event.y+o3_frame.document.body.scrollTop;}
	
	if (o3_allowmove) {
		placeLayer();
	}
}

// The Close onMouseOver function for stickies
function cClick() {
	hideObject(over);
	o3_showingsticky=0;
}


// Usage statistics
function trk() {
	if ( (ns4) || (ie4) ) {
			bt=new Image(1,1); bt.src="http://www.bosrup.com/web/overlib/o3/tr.gif";
			
	}
	o3_tracker = 0;
}




////////////////////////////////////////////////////////////////////////////////////
// LAYER FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// Writes to a layer
function layerWrite(txt) {
        if (ns4) {
                var lyr = o3_frame.document.overDiv.document

                lyr.write(txt)
                lyr.close()
        }
        else if (ie4) o3_frame.document.all["overDiv"].innerHTML = txt
		if (o3_tracker) { trk(); }
}

// Make an object visible
function showObject(obj) {
        if (ns4) obj.visibility = "show"
        else if (ie4) obj.visibility = "visible"
}

// Hides an object
function hideObject(obj) {
        if (ns4) obj.visibility = "hide"
        else if (ie4) obj.visibility = "hidden"
        
        self.status = "";
}

// Move a layer
function moveTo(obj,xL,yL) {
        obj.left = xL
        obj.top = yL
}





////////////////////////////////////////////////////////////////////////////////////
// PARSER FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// Sets text from array.
function opt_INARRAY(id) {
	o3_text = ol_texts[id];
	return 0;
}

// Sets caption from array.
function opt_CAPARRAY(id) {
	o3_cap = ol_caps[id];	
	return 0;
}

// Sets text from array.
function opt_INARRAY(id) {
	o3_text = ol_texts[id];
	return 0;
}

// Sets caption from array.
function opt_CAPARRAY(id) {
	o3_cap = ol_caps[id];	
	return 0;
}

// Sets text from array.
function opt_INARRAY(id) {
	o3_text = ol_texts[id];
	return 0;
}

// Sets caption from array.
function opt_CAPARRAY(id) {
	o3_cap = ol_caps[id];	
	return 0;
}

// Sets stickiness.
function opt_STICKY(unused) {
	o3_sticky = 1;
	return 0;
}

// Sets background picture.
function opt_BACKGROUND(file) {
	o3_background = file;
	return 0;
}

// Sets use of close text.
function opt_NOCLOSE(unused) {
	o3_close = "";
	return 0;
}

// Sets caption.
function opt_CAPTION(text) {
	o3_cap = text;
	return 0;
}

// Sets hpos, for LEFT, RIGHT and CENTER.
function opt_HPOS(pos) {
	o3_hpos = pos;
	return 0;
}

// Sets the x offset
function opt_OFFSETX(offset) {
	o3_offsetx = offset;
	return 0;
}

// Sets the y offset
function opt_OFFSETY(offset) {
	o3_offsety = offset;
	return 0;
}


// Sets the fg color
function opt_FGCOLOR(clr) {
	o3_fgcolor = clr;
	return 0;
}

// Sets the bg color
function opt_BGCOLOR(clr) {
	o3_bgcolor = clr;
	return 0;
}

// Sets the text color
function opt_TEXTCOLOR(clr) {
	o3_textcolor = clr;
	return 0;
}

// Sets the caption color
function opt_CAPCOLOR(clr) {
	o3_capcolor = clr;
	return 0;
}

// Sets the close color
function opt_CLOSECOLOR(clr) {
	o3_closecolor = clr;
	return 0;
}

// Sets the popup width
function opt_WIDTH(pixels) {
	o3_width = pixels;
	return 0;
}

// Sets the popup border width
function opt_BORDER(pixels) {
	o3_border = pixels;
	return 0;
}

// Sets the status bar text
function opt_STATUS(text) {
	o3_status = text;
	return 0;
}

// Sets that status bar text to the text
function opt_AUTOSTATUS(val) {
	o3_autostatus = 1;
	return 0;
}

// Sets that status bar text to the caption
function opt_AUTOSTATUSCAP(val) {
	o3_autostatus = 2;
	return 0;
}

// Sets the popup height
function opt_HEIGHT(pixels) {
	o3_height = pixels;
	o3_aboveheight = pixels;
	return 0;
}

// Sets the close text.
function opt_CLOSETEXT(text) {
	o3_close = text;
	return 0;
}

// Sets horizontal snapping
function opt_SNAPX(pixels) {
	o3_snapx = pixels;
	return 0;
}

// Sets vertical snapping
function opt_SNAPY(pixels) {
	o3_snapy = pixels;
	return 0;
}

// Sets horizontal position
function opt_FIXX(pos) {
	o3_fixx = pos;
	return 0;
}

// Sets vertical position
function opt_FIXY(pos) {
	o3_fixy = pos;
	return 0;
}

// Sets the fg background
function opt_FGBACKGROUND(picture) {
	o3_fgbackground = picture;
	return 0;
}

// Sets the bg background
function opt_BGBACKGROUND(picture) {
	o3_bgbackground = picture;
	return 0;
}

// Sets the left x padding for background
function opt_PADX(pixels) {
	o3_padxl = pixels;
	return PADX2;
}

// Sets the top y padding for background
function opt_PADY(pixels) {
	o3_padyt = pixels;
	return PADY2;
}

// Sets the right x padding for background
function opt_PADX2(pixels) {
	o3_padxr = pixels;
	return 0;
}

// Sets the bottom y padding for background
function opt_PADY2(pixels) {
	o3_padyb = pixels;
	return 0;
}

// Sets that user provides full html.
function opt_FULLHTML(unused) {
	o3_fullhtml = 1;
	return 0;
}

// Sets vpos, for ABOVE and BELOW
function opt_VPOS(pos) {
	o3_vpos = pos;
	return 0;
}

// Sets the caption icon.
function opt_CAPICON(icon) {
	o3_capicon = icon;
	return 0;
}

// Sets the text font
function opt_TEXTFONT(fontname) {
	o3_textfont = fontname;
	return 0;
}

// Sets the caption font
function opt_CAPTIONFONT(fontname) {
	o3_captionfont = fontname;
	return 0;
}

// Sets the close font
function opt_CLOSEFONT(fontname) {
	o3_closefont = fontname;
	return 0;
}

// Sets the text font size
function opt_TEXTSIZE(fontsize) {
	o3_textsize = fontsize;
	return 0;
}

// Sets the caption font size
function opt_CAPTIONSIZE(fontsize) {
	o3_captionsize = fontsize;
	return 0;
}

// Sets the close font size
function opt_CLOSESIZE(fontsize) {
	o3_closesize = fontsize;
	return 0;
}

// Defines which frame we should point to.
function opt_FRAME(frm) {
	o3_frame = frm;

	if ( (ns4) || (ie4) ) {
		if (ns4) over = o3_frame.document.overDiv
		if (ie4) over = o3_frame.overDiv.style
	}

	return 0;
}



////////////////////////////////////////////////////////////////////////////////////
// OVERLIB 2 COMPATABILITY FUNCTIONS
// If you aren't upgrading you can remove the below section.
////////////////////////////////////////////////////////////////////////////////////

// Converts old 0=left, 1=right and 2=center into constants.
function vpos_convert(d) {
	if (d == 0) {
		d = LEFT;
	} else {
		if (d == 1) {
			d = RIGHT;
		} else {
			d = CENTER;
		}
	}
	
	return d
}

// Simple popup
function dts(d,text) {
	o3_hpos = vpos_convert(d);
	overlib(text, o3_hpos, CAPTION, "");
}

// Caption popup
function dtc(d,text, title) {
	o3_hpos = vpos_convert(d);
	overlib(text, CAPTION, title, o3_hpos);
}

// Sticky
function stc(d,text, title) {
	o3_hpos = vpos_convert(d);
	overlib(text, CAPTION, title, o3_hpos, STICKY);
}

// Simple popup right
function drs(text) {
	dts(1,text);
}

// Caption popup right
function drc(text, title) {
	dtc(1,text,title);
}

// Sticky caption right
function src(text,title) {
	stc(1,text,title);
}

// Simple popup left
function dls(text) {
	dts(0,text);
}

// Caption popup left
function dlc(text, title) {
	dtc(0,text,title);
}

// Sticky caption left
function slc(text,title) {
	stc(0,text,title);
}

// Simple popup center
function dcs(text) {
	dts(2,text);
}

// Caption popup center
function dcc(text, title) {
	dtc(2,text,title);
}

// Sticky caption center
function scc(text,title) {
	stc(2,text,title);
}
