//\//////////////////////////////////////////////////////////////////////////////////
//\  overLIB 3.50  --  This notice must remain untouched at all times.
//\  Copyright Erik Bosrup 1998-2001. All rights reserved.
//\
//\  By Erik Bosrup (erik@bosrup.com).  Last modified 2001-08-28.
//\  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 regarding 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 sell this as your own
//\  work, or remove this copyright notice. For full details on copying or changing
//\  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.
//\//////////////////////////////////////////////////////////////////////////////////
//\mini


////////////////////////////////////////////////////////////////////////////////////
// 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; // PADX2 out
var PADY		=	31; // PADY2 out
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;
var TIMEOUT		=	45;
var FUNCTION		=	46;
var DELAY		=	47;
var HAUTO		=	48;
var VAUTO		=	49;
var CLOSECLICK		=	50;
var CSSOFF		=	51;
var CSSSTYLE		=	52;
var CSSCLASS		=	53;
var FGCLASS		=	54;
var BGCLASS		=	55;
var TEXTFONTCLASS	=	56;
var CAPTIONFONTCLASS	=	57;
var CLOSEFONTCLASS	=	58;
var PADUNIT		=	59;
var HEIGHTUNIT		=	60;
var WIDTHUNIT		=	61;
var TEXTSIZEUNIT	=	62;
var TEXTDECORATION	=	63;
var TEXTSTYLE		=	64;
var TEXTWEIGHT		=	65;
var CAPTIONSIZEUNIT	=	66;
var CAPTIONDECORATION	=	67;
var CAPTIONSTYLE	=	68;
var CAPTIONWEIGHT	=	69;
var CLOSESIZEUNIT	=	70;
var CLOSEDECORATION	=	71;
var CLOSESTYLE		=	72;
var CLOSEWEIGHT		=	73;


////////////////////////////////////////////////////////////////////////////////////
// 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
// When using CSS this will be very small.
if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";}

// Font size for the caption
// When using CSS this will be very small.
if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "1";}

// Font size for the close text
// When using CSS this will be very small.
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; }

// 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; }

// Default timeout. By default there is no timeout.
if (typeof ol_timeout == 'undefined') { var ol_timeout = 0; }

// Default javascript funktion. By default there is none.
if (typeof ol_function == 'undefined') { var ol_function = Function(); }

// Default timeout. By default there is no timeout.
if (typeof ol_delay == 'undefined') { var ol_delay = 0; }

// If overLIB should decide the horizontal placement.
if (typeof ol_hauto == 'undefined') { var ol_hauto = 0; }

// If overLIB should decide the vertical placement.
if (typeof ol_vauto == 'undefined') { var ol_vauto = 0; }



// If the user has to click to close stickies.
if (typeof ol_closeclick == 'undefined') { var ol_closeclick = 0; }

// This variable determines if you want to use CSS or inline definitions.
// CSSOFF=no CSS    CSSSTYLE=use CSS inline styles    CSSCLASS=use classes
if (typeof ol_css == 'undefined') { var ol_css = CSSOFF; }

// Main background class (eqv of fgcolor)
// This is only used if CSS is set to use classes (ol_css = CSSCLASS)
if (typeof ol_fgclass == 'undefined') { var ol_fgclass = ""; }

// Frame background class (eqv of bgcolor)
// This is only used if CSS is set to use classes (ol_css = CSSCLASS)
if (typeof ol_bgclass == 'undefined') { var ol_bgclass = ""; }

// Main font class
// This is only used if CSS is set to use classes (ol_css = CSSCLASS)
if (typeof ol_textfontclass == 'undefined') { var ol_textfontclass = ""; }

// Caption font class
// This is only used if CSS is set to use classes (ol_css = CSSCLASS)
if (typeof ol_captionfontclass == 'undefined') { var ol_captionfontclass = ""; }

// Close font class
// This is only used if CSS is set to use classes (ol_css = CSSCLASS)
if (typeof ol_closefontclass == 'undefined') { var ol_closefontclass = ""; }

// Unit to be used for the text padding above
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
// Options include "px", "%", "in", "cm" and more
if (typeof ol_padunit == 'undefined') { var ol_padunit = "px";}

// Unit to be used for height of popup
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
// Options include "px", "%", "in", "cm" and more
if (typeof ol_heightunit == 'undefined') { var ol_heightunit = "px";}

// Unit to be used for width of popup
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
// Options include "px", "%", "in", "cm" and more
if (typeof ol_widthunit == 'undefined') { var ol_widthunit = "px";}

// Font size unit for the main text
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_textsizeunit == 'undefined') { var ol_textsizeunit = "px";}

// Decoration of the main text ("none", "underline", "line-through" or "blink")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_textdecoration == 'undefined') { var ol_textdecoration = "none";}

// Font style of the main text ("normal" or "italic")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_textstyle == 'undefined') { var ol_textstyle = "normal";}

// Font weight of the main text ("normal", "bold", "bolder", "lighter", ect.)
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_textweight == 'undefined') { var ol_textweight = "normal";}

// Font size unit for the caption
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_captionsizeunit == 'undefined') { var ol_captionsizeunit = "px";}

// Decoration of the caption ("none", "underline", "line-through" or "blink")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_captiondecoration == 'undefined') { var ol_captiondecoration = "none";}

// Font style of the caption ("normal" or "italic")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_captionstyle == 'undefined') { var ol_captionstyle = "normal";}

// Font weight of the caption ("normal", "bold", "bolder", "lighter", ect.)
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_captionweight == 'undefined') { var ol_captionweight = "bold";}

// Font size unit for the close text
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_closesizeunit == 'undefined') { var ol_closesizeunit = "px";}

// Decoration of the close text ("none", "underline", "line-through" or "blink")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_closedecoration == 'undefined') { var ol_closedecoration = "none";}

// Font style of the close text ("normal" or "italic")
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_closestyle == 'undefined') { var ol_closestyle = "normal";}

// Font weight of the close text ("normal", "bold", "bolder", "lighter", ect.)
// Only used if CSS inline styles are being used (ol_css = CSSSTYLE)
if (typeof ol_closeweight == 'undefined') { var ol_closeweight = "normal";}



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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",
"Mrs. Henry Dashwood",
"Elinor Dashwood ",
"Marianne Dashwood",
"Mr. John Dashwood",
"Mrs. John (Fanny) Dashwood",
"Edward Ferrars",
"Mrs. Jennings",
"Colonel Brandon",
"Willoughby",
"Mrs. Ferrars",
"Robert Ferrars",
"Lucy Steele",
"Ann/Nancy Steele",
"uncle of Mr. Henry Dashwood",
"Mr. Henry Dashwood",
"Margaret Dashwood",
"Mrs. Henry Dashwood (first wife)",
"young Harry Dashwood",
"Sir John Middleton",
"Lady Middleton",
"Miss Williams",
"Mrs. Smith",
"Mr. Palmer",
"Mrs. Charlotte Palmer",
"Miss Grey",
"Eliza",
"Miss Morton",
"Mr. Pratt",
"Dr. Davies",
"Sussex",
"Norland Park",
"annuity",
"china and linen",
"Cowper",
"Barton Park",
"Barton Cottage",
"Devonshire",
"piano forte",
"flannel waistcoat",
"Allenham",
"Scott",
"Pope",
"second attachment",
"Somersetshire",
"Queen Mab",
"lock of Marianne&#39;s hair",
"Whitwell",
"Hamlet",
"hills of Barton Valley",
"profession",
"hair ring",
"Cleveland",
"Combe Magna",
"Longstaple",
"picture of Edward",
"Edward&#39;s letter",
"London",
"Delaford",
"Marianne&#39;s letters",
"Willoughby&#39;s letter",
"Bath",
"Lady Middleton&#39;s card",
"tooth-pick case ",
"East Kingham Farm",
"Elinor&#39;s drawings",
"Kensington Gardens",
"libertine");

// Array with texts.
 var ol_texts = new Array("BLANK",
"The second wife of Mr. Henry Dashwood, and mother of Elinor, Marianne, and Margaret.  She is most like Marianne in temperament--romantic, impractical, and loving.  Not believing that money should keep lovers apart, she sees nothing wrong with her girls marrying above them.  She trusts her daughters, and chooses to believe that Marianne and Willoughby are engaged, rather than ask them as Elinor suggests.  Not concerned about money or custom, it is Elinor who must act the parent in such matters.  ",
"The eldest of the Dashwood sisters.  Elinor is the most rational, often having to remind her mother what is the proper way to behave or handle one&#39;s money. It is she who notices all the little inconsistencies in polite society, and the hypocritical nature of many with whom they associate.  She falls in love with Edward, but she is cautious, unsure if he feels the same way.  She is not so romantic as to assume that money cannot help make you happy, or help you to marry the right man. Sensitive, she feels pain when Edward treats her coldly, but she hides it, and treats him as manners dictate. With Lucy Steele, Elinor is placed in an awful position.  To be Lucy&#39;s confidante, when Lucy confesses it is she who is engaged to Edward, is nearly more than Elinor can stand.  But she pretends nothing is the matter, and does so for four months.  When Marianne is hurt by Willoughby, she hides nothing, and shares her misery with the house, everyday.  But Elinor wants to spare her family the pain she is suffering.  Perhaps as a reward for this behavior, Elinor marries Edward, her first love, whereas Marianne marries the Colonel.",
"The middle daughter, Marianne is seventeen.  She is emotional and romantic.  Very intelligent, she reads the Romantic poets and plays the piano.  Unwaveringly honest to her feelings, Marianne cannot lie or flatter or behave in ways contrary to what she feels. When she loses Willoughby, she lets everyone see and feel her grief.  She is convinced her opinions are permanently set, and one of her main opinions is that people can never love twice.  She also believes lovers should only be young and passionate.  This makes Willoughby perfect, Edward less so, and the Colonel unacceptable.  But by the end of the novel, Marianne begins to see the Colonel in a more favorable light, and they marry.",
"The son of Mr. Henry Dashwood from his first marriage.  John has a large inheritance from his mother, and also money from his wife Fanny.  They have a young son, Harry.  John, in his bad qualities, is a weaker version of his wife.  He promises his father he will help take care of his stepmother and stepsisters, but he is easily persuaded to give them nothing.  He complains about being poor, which he isn&#39;t, to avoid giving away any of his money. John usually sides with his wife and his mother-in-law on most issues.  He does not think Elinor has enough money to marry Edward, and does not try to help them wed.  ",
"Cold and mean, John&#39;s wife Fanny moves her family into Norland right after Mr. Dashwood&#39;s funeral.  She is Edward&#39;s sister, and she does not approve of his marrying Elinor.  It is most important that he marry someone wealthy.  Money is in fact her main concern-how much they have, how to get more, and how to not give any of it away to the Dashwoods.  The Dashwood women do not like her, and she does not like them.  ",
"The brother of Robert and Fanny.  Edward is not attractive or dashing, and he is not a smooth talker.  He is also not very interested in art or literature.  But he is honest and loyal, and does what he thinks is right.  Though he no longer loves Lucy Steele, he will not break off the engagement, even though he does not love her.  He has made a promise, and that bond is most important to him.  Like Elinor, he will sacrifice his own feelings to do what is right.  Thinking of others before himself, he does all he can to make his marriage to Lucy possible, and when his mother asks him to break it off, and marry a more wealthy girl, his good character will not let him do it.  So he is disinherited, and hopes to take orders in an effort to support Lucy. Lucky for him, Lucy falls in love with his brother, and marries Robert.  This leaves Edward free to marry his real love, Elinor.",
"The widowed mother of Lady Middleton and Charlotte Palmer.  Her husband was a craftsman, and her class is not as high as the Middletons.  Not reserved at all, she is happy and boisterous, loving to match-make and tease the young girls about their loves.  Such comments are often improper in polite society, and Marianne does not like Mrs. Jennings, but Elinor tolerates her. Mrs. Jennings has Elinor and Marianne stay with her in London.  Though she can often make hurtful and ill-timed comments about Willoughby or Edward, they come to appreciate her as caring, loyal, and more honest than other people they know.  She acts as a surrogate mother while they are in London, and by the end of their stay and Marianne&#39;s sickness at Cleveland, her good character is shines through all of her teasing and vulgar remarks. ",
"An older friend of Sir John Middleton.  Thirty-five, he is an attractive, distinguished older man.  Quiet, dependable, and caring, his good qualities seem to increase as time goes by.  Saddened by the death of his first love, Eliza, he has taken care of her daughter for many years.  He is hurt again when Willoughby runs off with this daughter, gets her pregnant, and then leaves her. Though he loves Marianne, he suffers seeing her with Willoughby.  Marianne thinks the Colonel is too old to be a lover, and the Colonel does not try to change her mind.  Instead he watches quietly, and acts the hero by bringing Marianne her mother when Marianne falls ill.  After her illness, Marianne begins to respect the Colonel more, and the two soon marry.",
"Marianne&#39;s first love.  He is attractive and graceful, and a lover of good literature.  They meet in a romantically: Marianne sprains her ankle and Willoughby carries her home in the rain.  He falls in love with Marianne, but he does not respect her reputation, giving her large gifts and spending time with her only in private. He leaves suddenly, and we later learn it is because Mrs. Smith disapproved of his behavior towards Miss Williams.  Mrs. Smith disinherits him, and he is broke.  Money is very important to Willoughby, as he enjoys living well.  So he leaves Marianne, whom he loves, and becomes engaged to Miss Grey, who has a large fortune.  He also treats Marianne terribly, ignoring her letters, treating her coolly at a party, and sending her a cruel last letter in which he denies any relationship.  When Marianne is ill, he realizes the mistakes he has made, and apologizes to Elinor for all the pain he caused. Willoughby is a rake, seducing women without thinking of either their feelings or the consequences of his actions. He favors money over love, and treats those who love him with indifference.  His punishment is not an unhappy marriage, but an unextraordinary one.",
"Mother of Edward, Fanny, and Robert.  A mean and controlling woman, Mrs. Ferrars only wants her sons to do what she wants them to do.  She doesn&#39;t care what profession Edward would like, she only cares what will make the family look best.  So concerned with appearances, it is not surprising that she wants Edward to marry a wealthy woman.  Knowing of Elinor&#39;s affection for Edward, she treats Elinor terribly when they meet, while she gushes at Lucy.  When she learns of the secret engagement, she disinherits Edward, making Robert the eldest son.  When Robert, her favorite, commits the same offense and marries Lucy Steele, he is forgiven much more quickly.",
"Edward and Fanny&#39;s brother.  He is a silly and superficial man, a fop or coxcomb.  He debates long and hard over the details of his tooth-pick case.  He cares so little about his brother that he will marry Edward&#39;s fiancee, and then weasel his way back into the family&#39;s good graces.  ",
"Cousin of Mrs. Jennings, she is the younger Steele girl.  Fashionable, somewhat attractive, her manners are perfect but her character is not.  She is uneducated, and can often be cruel.  Ambitious, she flatters and lies to get what she wants.  She met Edward several years ago while he was studying with her uncle, and the two of them became engaged.  The engagement is kept a secret for four years.  Suspecting Elinor may have feelings for Edward, Lucy brings Elinor in on the secret.  Then Elinor must sit quietly, while Lucy cruelly relates her love for Edward, and the forces keeping them apart.  Lucy has a very small fortune, and doubts that Edward&#39;s mother would agree to the marriage. Lucy wants Elinor to be jealous, but Elinor is too composed to show what she feels.  Lucy weasels her way into Fanny and John&#39;s house, and while she is staying there, her secret is revealed.  She is thrown out, but soon becomes secretly attached to Robert, Edward&#39;s brother.  She sends Edward a letter telling him what has happened.  As a final stroke of meanness, Lucy tells Elinor&#39;s servant to tell Elinor that she is now Mrs. Ferrars, knowing what Elinor will assume and how awful it will make her feel.",
"Cousin of Mrs. Jennings, the older Steele girl.  She is not very attractive, lacks manners, and makes lots of improper comments.  She is silly and unintelligent.  She likes Dr. Davies, and since nobody cares to ask her about him, she talks about him constantly.",
"The owner of Norland estate.  When his sister dies, he invites Mr. Dashwood, his wife, and their three children to live with him.  He loves them and they get along well, but the uncle is charmed by Harry, the grandson of Mr. Dashwood, and decides to leave Norland to Henry Dashwood on the condition that it will next pass to John Dashwood, Henry&#39;s son from his first marriage.  The uncle still leaves each girl a small fortune, but the small sum is not comparable to Norland.",
"The husband of Mrs. Dashwood, the father of John, Elinor, Marianne, and Margaret.  His first wife, the mother of John, died, and after her death, Mr. Dashwood married Mrs. Dashwood, and they had the three girls.  Mr. Dashwood is sad that Norland will go to John, and worries that his daughters will not have enough money to marry.  Dying only a year after his uncle, Henry makes John promise to take care of his stepmother and stepsisters.  Then he dies, leaving his wife and girls with what little money he had.",
"The youngest of the Dashwood girls.  She is like Marianne in her romantic notions and high emotions, but Elinor is doubtful Margaret is going to be as intelligent as Marianne.  Too young for dances or travel, Margaret is far in the background for nearly the entire novel.",
"John&#39;s mother.  When she died, she left him a large fortune.",
"The young son of John and Fanny.  The child so delights the uncle of Henry Dashwood that Norland Estate is left to him.  Most of Fanny&#39;s concerns about money center around Harry. She worries that if they give away even a pound, Harry will be impoverished.",
"The owner of Barton Park, husband to Lady Middleton.  He is pleasant and friendly, and does all he can to make the Dashwoods feel at home. He hunts, and that is his primary amusement.  He also enjoys getting dances and parties together so the young people can enjoy themselves.",
"The wife of Sir John Middleton.  She has two concerns: looking good to others, and the care of her children.  She is very concerned with how people view her, and she always wants her house and her parties to be the best.  She is cold and quiet, and the Dashwoods find her personality &#39;repulsive.&#39;",
"The foster daughter of Colonel Brandon.  Mrs. Jennings assumes she is his natural daughter, but she is not.  She is the illegitimate child of the Colonel&#39;s first love. After her mother died, the Colonel took on the care of Miss Williams. The fate of Miss Williams parallels that of her mother, Eliza. When away on a trip, Miss Williams meets Willoughby and the two run away together.  He leaves her pregnant and penniless, and the Colonel must come to her aid. Willoughby&#39;s benefactress is informed, and asks Willoughby to marry the girl.  When he refuses, she disinherits him.  This causes his removal from Barton, and his desire to marry a rich woman instead of Marianne.",
"Willoughby&#39;s benefactress, who lives at Allenham near Norland.  She does not approve of Willoughby&#39;s behavior toward Miss Williams, and when he will not marry her, she disinherits him.",
"The husband of Charlotte Palmer.  His estate is Cleveland.  He is a rude man, who likes to imagine himself superior to everyone in the room.  He treats his ridiculously cheerful wife worst of all, usually ignoring or insulting her, which she finds hilarious.  Elinor imagines he is still angry that he married such an attractive but silly woman.  Quite a common occurrence, and he should get over it and behave civilly.",
"The wife of Mr. Palmer, and daughter of Mrs. Jennings.  She is in the early stages of her first pregnancy.  Mrs. Palmer is pretty, and she smiles constantly, unlike her sister Lady Middleton.  Her excessive happiness can often be annoying.",
"The wealthy young woman whom Willoughby marries.  Jealous and vindictive, she writes the letter Willoughby sends to Marianne, making him recopy it in his own hand.  Willoughby chose her because of her money, but he does not love her.  He later greatly regrets choosing her over the sweet Marianne, but he let his pocketbook choose his wife.",
"Colonel Brandon&#39;s first love, whom he compares in spirit to Marianne.  An orphan, the Colonel&#39;s father was her guardian.  They fell in love, but she was wealthy and his family wanted her to marry the Colonel&#39;s older brother, because their family estate was in debt.  The two try to elope in Scotland, but Eliza&#39;s maid betrayed them.  Eliza was locked up until she would agree to marry the Colonel&#39;s brother, who did not love her.  The loveless marriage hurt her terribly, and she soon divorces, which is scandalous for the times. The Colonel finds her in a debtor&#39;s prison, sick with consumption.  The Colonel helped her get out of prison and cared for her until she died.  She left the Colonel her three-year-old daughter, whose father was unknown.  The Colonel cared for her and loved her like his own daughter, and is saddened by what Willoughby has done to her.",
"The woman Mrs. Ferrars and Fanny want Edward to marry.  When they learn of his engagement to Lucy, they suggest she marry Edward&#39;s brother instead.  It is so unimportant who a person marries, so long as they have a big fortune, that they can pass fiancees around like objects.",
"The uncle of Lucy Steele.  He lives at Longstaple, and he tutored Edward at his home for several years.  It was during this time that Edward and Lucy became acquainted and got engaged.",
"The supposed beaux of Ann Steele.  She loves to go on and on about him, but nobody really cares.",
"County in south east England.  Norland is here.",
"The Dashwood family home.  It is inherited temporarily by Mr. Henry Dashwood, but when he dies it goes to his rich son John.  John and his family move in right after the funeral, and the Dashwood women feel uncomfortable in what had been their home.  The house and its surroundings are beautiful, and it was the site for many happy memories.  The Dashwood women are sad to leave it.",
"A sum of money paid out yearly.  John suggests he fulfill his promise by paying Mrs. Dashwood an annuity, but his wife is afraid Mrs. Dashwood will live for many more years, thus increasing the amount of money they will have to pay her.  Fanny is more concerned about money than the quality of life of the Dashwood women.",
"Mrs. Dashwood has china and linen from her old house.  Fanny suggests that since Mrs. Dashwood has such nice things (much nicer than theirs, she complains), she does not need any gift of money from John.",
"Marianne&#39;s favorite poet.  From the Romantic period, his poetry is passionate about nature.  Willoughby shares Marianne&#39;s love for Cowper, which makes him very attractive to her.",
"The home of Sir John and Lady Middleton.  It is the estate upon which Barton Cottage resides, only a short walk away.  The Dashwoods often visit the Middletons at this home.",
"The new home of the Dashwoods.  The cottage is small but cozy, and has a beautiful garden.  The land is also beautiful and they take many walks in Barton Valley.  It is while living here that they meet Willoughby.",
"County in south west England, home of Barton Cottage.  It is very far from Norland.",
"A piano.  Marianne enjoys it and plays well.  She is often asked to play during parties and small gatherings.  She and Willoughby would often play together, and when he leaves she plays their favorite songs over and over.",
"An undergarment worn to keep warm.  Colonel  Brandon mentions wearing one, and Marianne takes this as a sign he is old and sickly, and incapable of  being a lover.",
"The home of Mrs. Smith, Willoughby&#39;s benefactress.  Allenham lies in Barton Valley, close to Norland.  The Dashwood girls are curious to see it, but Marianne gets a private viewing when she and Willoughby sneak away and see the home when Mrs. Smith is not there.  Elinor reprimands Marianne for this improper behavior.",
"Another of Marianne&#39;s favorite poets.  A Romantic writer like Cowper.",
"An English poet whose writings preceded those of Cowper and Scott.  His more reserved approach keeps him from being one of Marianne&#39;s favorites, though she does like him.",
"Being in love a second time.  Marianne insists that her opinion is fixed that second attachments are impossible.  The Colonel, Marianne&#39;s father, and by the end of the novel Marianne herself, all have second attachments.",
"County in south-west England, the home of Combe Magna, Willoughby&#39;s estate.",
"The name of the horse Willoughby gives to Marianne.  Mab is a fairy queen in English literature.  Elinor has to convince Marianne to return the gift because the Dashwoods cannot afford to care for a horse.  It is a very impulsive present.",
"Margaret sees Willoughby begging Marianne for a lock of her hair, and Marianne agrees to let him have a few strands.  Such an act is a very romantic one, the act of a lover.  A loved one&#39;s hair was often set in rings and worn by her man.  But the way Willoughby asked for the hair is not proper, because the two are not engaged.",
"The home of Colonel Brandon&#39;s brother-in-law.  The group is about to take a trip to Whitwell when the Colonel is called away on business.  The business involves his foster daughter Eliza, and the harm Willoughby has done to her; but the Colonel at this time keeps his business a secret.",
"The Shakespearean play the Dashwoods were reading when Willoughby had to leave.  Hamlet was a Danish prince who was slow to act, and whose behavior drove Ophelia, who loved him, mad.",
"Marianne is disappointed by Edward&#39;s reserved description of her beautiful valley.  Where Marianne sees perfection, Edward cannot help but see the faults that exist too.  ",
"Edward is without profession, and lacks ambition.  He would like to enter the clergy, but that is not good enough for his family.  He is the eldest son, and it is not unusual for this time period for the eldest son not to have a profession.",
"When Marianne and Elinor see Edward wearing a ring set with hair, they both assume it to be Elinor&#39;s, though Edward has never asked for a lock of her hair.  This is one of the few times that Elinor jumps to conclusions, letting her heart lead her, and she is sorely disappointed when she learns that the hair actually belongs to Lucy Steele, who is engaged to Edward.",
"The home of the Palmers.  Elinor and Marianne will visit here after their disastrous time in London.  Marianne becomes very sick while she is staying here, and nearly dies.",
"Willoughby&#39;s estate.  ",
"The home of Mr. Pratt, Lucy&#39;s uncle.  In his youth, Edward was under Mr. Pratt&#39;s care at Longstaple for several years, during which he fell in love with Lucy.",
"Lucy pulls from her pocket a small painting of Edward, adding more proof to the idea that she really is engaged to him.",
"A letter from Edward to Lucy, which Lucy thoughtlessly shows to Elinor.  This final proof convinces Elinor that they must be attached.",
"Elinor and Marianne stay with Mrs. Jennings in London.  The Dashwoods, the Middletons, the Palmers, and the Steele girls are there too.  Willoughby is also in town, but he does not answer Marianne&#39;s letters.  He treats her coldly at a party, then sends her a letter denying any feelings for her.  Marianne is grief-stricken, and spends the rest of their time in London being miserable.",
"Colonel Brandon&#39;s home.  He has a parsonage on his estate that he offers to Edward and Lucy.  When Edward ends up marrying Elinor, the two of them move into the parsonage at Delaford.",
"The three letters Marianne writes to Willoughby after their arrival in London.  He does not answer them, only writing to her after Marianne&#39;s third letter, which demands an explanation for his cold behavior at the party.  ",
"Cold and formal, in this letter Willoughby denies having any feelings for Marianne, and apologizes for any confusion.  He tells her he will soon be married to another woman. He returns her letters and her lock of hair.  The letter is unexpected and out of character; it is the action of an unfeeling cad.  We later learn that Willoughby&#39;s fiancee wrote the letter in a fit of jealousy after seeing Marianne.",
"City in south-west England.  When visiting Bath with one of her friends, Miss Williams meets Willoughby and the two run away together.  He gets her pregnant, then leaves her penniless and alone.  ",
"The upperclass leave their card with those they wish to associate.  All the Dashwood&#39;s acquaintances shun Willoughby and his new wife, but Lady Middleton insists on leaving her card with Willoughby&#39;s new wife, because she is rich and stylish.  It is an uncaring act, but completely in character.  Her concern is more for the customs of society than for her young &#39;friend.&#39;",
"When Elinor first sees Robert Ferrars (though she does not know at the time it is him), he is meticulously choosing a fancy tooth-pick case at a store in London.  First, he does not let Elinor, a woman, place her order first.  Second, any man so concerned and fussy about the details of a tooth-pick case is definitely a fop, a dandy.",
"A farm neighboring Norland which John Dashwood buys.  He brings up this purchase to show Elinor how little money he has, so he will not look bad when he does not buy her anything.  A large landlord, John buys his neighbor&#39;s farm, making him a tenant.  Despite his complaints about how much it cost to buy, the new farm will earn John much more money.",
"Both Elinor and Marianne seriously pursue their artistic talents.  Many women of this period practice drawing or music only so they will appear attractive to a prospective husband, then give it up after they marry. Elinor draws quite well, and the hypocritical Ferrars women like her drawings until they learn that they belong to Elinor.",
"The gardens of Kensington Palace in London.  Elinor has a chance meeting here with Ann, who tells Elinor how Edward offered to end the engagement.  Elinor is shocked to learn that Ann got her information by eavesdropping on the couple.",
"Also known as a rake.  A person who thinks only of their libido, and not the feelings of others or the consequences of their actions.  At one time it was fashionable to be a libertine; in the Dashwoods&#39; age it is only disgraceful.");


////////////////////////////////////////////////////////////////////////////////////
// END CONFIGURATION
// Don't change anything below this line, all configuration is above.
////////////////////////////////////////////////////////////////////////////////////







////////////////////////////////////////////////////////////////////////////////////
// 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;
var o3_timeout = 0;
var o3_timerid = 0;
var o3_allowmove = 0;
var o3_function = Function();
var o3_delay = 0;
var o3_delayid = 0;
var o3_hauto = 0;
var o3_vauto = 0;
var o3_closeclick = 0;

var o3_css = CSSOFF;
var o3_fgclass = "";
var o3_bgclass = "";
var o3_textfontclass = "";
var o3_captionfontclass = "";
var o3_closefontclass = "";
var o3_padunit = "px";
var o3_heightunit = "px";
var o3_widthunit = "px";
var o3_textsizeunit = "px";
var o3_textdecoration = "";
var o3_textstyle = "";
var o3_textweight = "";
var o3_captionsizeunit = "px";
var o3_captiondecoration = "";
var o3_captionstyle = "";
var o3_captionweight = "";
var o3_closesizeunit = "px";
var o3_closedecoration = "";
var o3_closestyle = "";
var o3_closeweight = "";



// Display state variables
var o3_x = 0;
var o3_y = 0;
var o3_allow = 0;
var o3_showingsticky = 0;
var o3_removecounter = 0;

// Our layer
var over = null;


// Decide browser version
var ns4 = (document.layers)? true:false;
var ns6 = (document.getElementById)? true:false;
var ie4 = (document.all)? true:false;
var ie5 = false;

// Microsoft Stupidity Check(tm).
if (ie4) {
	if ((navigator.userAgent.indexOf('MSIE 5') > 0) || (navigator.userAgent.indexOf('MSIE 6') > 0)) {
		ie5 = true;
	}
	if (ns6) {
		ns6 = false;
	}
}


// Capture events, alt. diffuses the overlib function.
if ( (ns4) || (ie4) || (ns6)) {
	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;
	o3_timeout = ol_timeout;
	o3_function = ol_function;
	o3_delay = ol_delay;
	o3_hauto = ol_hauto;
	o3_vauto = ol_vauto;
	o3_closeclick = ol_closeclick;
	
	o3_css = ol_css;
	o3_fgclass = ol_fgclass;
	o3_bgclass = ol_bgclass;
	o3_textfontclass = ol_textfontclass;
	o3_captionfontclass = ol_captionfontclass;
	o3_closefontclass = ol_closefontclass;
	o3_padunit = ol_padunit;
	o3_heightunit = ol_heightunit;
	o3_widthunit = ol_widthunit;
	o3_textsizeunit = ol_textsizeunit;
	o3_textdecoration = ol_textdecoration;
	o3_textstyle = ol_textstyle;
	o3_textweight = ol_textweight;
	o3_captionsizeunit = ol_captionsizeunit;
	o3_captiondecoration = ol_captiondecoration;
	o3_captionstyle = ol_captionstyle;
	o3_captionweight = ol_captionweight;
	o3_closesizeunit = ol_closesizeunit;
	o3_closedecoration = ol_closedecoration;
	o3_closestyle = ol_closestyle;
	o3_closeweight = ol_closeweight;
	

	// Special for frame support, over must be reset...
	if ( (ns4) || (ie4) || (ns6) ) {
		o3_frame = ol_frame;
		if (ns4) over = o3_frame.document.overDiv
		if (ie4) over = o3_frame.overDiv.style
		if (ns6) over = o3_frame.document.getElementById("overDiv");
	}
	
	
	// What the next argument is expected to be.
	var parsemode = -1;
	
	var ar = arguments;

	for (i = 0; i < ar.length; i++) {

		if (parsemode < 0) {
			// Arg is maintext, unless INARRAY
			if (ar[i] == INARRAY) {
				o3_text = ol_texts[ar[++i]];
			} else {
				o3_text = ar[i];
			}

			parsemode = 0;
		} else {
			// Note: NS4 doesn't like switch cases with vars.
			if (ar[i] == INARRAY) { o3_text = ol_texts[ar[++i]]; continue; }
			if (ar[i] == CAPARRAY) { o3_cap = ol_caps[ar[++i]]; continue; }
			if (ar[i] == STICKY) { o3_sticky = 1; continue; }
			if (ar[i] == BACKGROUND) { o3_background = ar[++i]; continue; }
			if (ar[i] == NOCLOSE) { o3_close = ""; continue; }
			if (ar[i] == CAPTION) { o3_cap = ar[++i]; continue; }
			if (ar[i] == CENTER || ar[i] == LEFT || ar[i] == RIGHT) { o3_hpos = ar[i]; continue; }
			if (ar[i] == OFFSETX) { o3_offsetx = ar[++i]; continue; }
			if (ar[i] == OFFSETY) { o3_offsety = ar[++i]; continue; }
			if (ar[i] == FGCOLOR) { o3_fgcolor = ar[++i]; continue; }
			if (ar[i] == BGCOLOR) { o3_bgcolor = ar[++i]; continue; }
			if (ar[i] == TEXTCOLOR) { o3_textcolor = ar[++i]; continue; }
			if (ar[i] == CAPCOLOR) { o3_capcolor = ar[++i]; continue; }
			if (ar[i] == CLOSECOLOR) { o3_closecolor = ar[++i]; continue; }
			if (ar[i] == WIDTH) { o3_width = ar[++i]; continue; }
			if (ar[i] == BORDER) { o3_border = ar[++i]; continue; }
			if (ar[i] == STATUS) { o3_status = ar[++i]; continue; }
			if (ar[i] == AUTOSTATUS) { o3_autostatus = 1; continue; }
			if (ar[i] == AUTOSTATUSCAP) { o3_autostatus = 2; continue; }
			if (ar[i] == HEIGHT) { o3_height = ar[++i]; o3_aboveheight = ar[i]; continue; } // Same param again.
			if (ar[i] == CLOSETEXT) { o3_close = ar[++i]; continue; }
			if (ar[i] == SNAPX) { o3_snapx = ar[++i]; continue; }
			if (ar[i] == SNAPY) { o3_snapy = ar[++i]; continue; }
			if (ar[i] == FIXX) { o3_fixx = ar[++i]; continue; }
			if (ar[i] == FIXY) { o3_fixy = ar[++i]; continue; }
			if (ar[i] == FGBACKGROUND) { o3_fgbackground = ar[++i]; continue; }
			if (ar[i] == BGBACKGROUND) { o3_bgbackground = ar[++i]; continue; }
			if (ar[i] == PADX) { o3_padxl = ar[++i]; o3_padxr = ar[++i]; continue; }
			if (ar[i] == PADY) { o3_padyt = ar[++i]; o3_padyb = ar[++i]; continue; }
			if (ar[i] == FULLHTML) { o3_fullhtml = 1; continue; }
			if (ar[i] == BELOW || ar[i] == ABOVE) { o3_vpos = ar[i]; continue; }
			if (ar[i] == CAPICON) { o3_capicon = ar[++i]; continue; }
			if (ar[i] == TEXTFONT) { o3_textfont = ar[++i]; continue; }
			if (ar[i] == CAPTIONFONT) { o3_captionfont = ar[++i]; continue; }
			if (ar[i] == CLOSEFONT) { o3_closefont = ar[++i]; continue; }
			if (ar[i] == TEXTSIZE) { o3_textsize = ar[++i]; continue; }
			if (ar[i] == CAPTIONSIZE) { o3_captionsize = ar[++i]; continue; }
			if (ar[i] == CLOSESIZE) { o3_closesize = ar[++i]; continue; }
			if (ar[i] == FRAME) { opt_FRAME(ar[++i]); continue; }
			if (ar[i] == TIMEOUT) { o3_timeout = ar[++i]; continue; }
			if (ar[i] == FUNCTION) { opt_FUNCTION(ar[++i]); continue; }
			if (ar[i] == DELAY) { o3_delay = ar[++i]; continue; }
			if (ar[i] == HAUTO) { o3_hauto = (o3_hauto == 0) ? 1 : 0; continue; }
			if (ar[i] == VAUTO) { o3_vauto = (o3_vauto == 0) ? 1 : 0; continue; }
			if (ar[i] == CLOSECLICK) { o3_closeclick = (o3_closeclick == 0) ? 1 : 0; continue; }
			if (ar[i] == CSSOFF) { o3_css = ar[i]; continue; }
			if (ar[i] == CSSSTYLE) { o3_css = ar[i]; continue; }
			if (ar[i] == CSSCLASS) { o3_css = ar[i]; continue; }
			if (ar[i] == FGCLASS) { o3_fgclass = ar[++i]; continue; }
			if (ar[i] == BGCLASS) { o3_bgclass = ar[++i]; continue; }
			if (ar[i] == TEXTFONTCLASS) { o3_textfontclass = ar[++i]; continue; }
			if (ar[i] == CAPTIONFONTCLASS) { o3_captionfontclass = ar[++i]; continue; }
			if (ar[i] == CLOSEFONTCLASS) { o3_closefontclass = ar[++i]; continue; }
			if (ar[i] == PADUNIT) { o3_padunit = ar[++i]; continue; }
			if (ar[i] == HEIGHTUNIT) { o3_heightunit = ar[++i]; continue; }
			if (ar[i] == WIDTHUNIT) { o3_widthunit = ar[++i]; continue; }
			if (ar[i] == TEXTSIZEUNIT) { o3_textsizeunit = ar[++i]; continue; }
			if (ar[i] == TEXTDECORATION) { o3_textdecoration = ar[++i]; continue; }
			if (ar[i] == TEXTSTYLE) { o3_textstyle = ar[++i]; continue; }
			if (ar[i] == TEXTWEIGHT) { o3_textweight = ar[++i]; continue; }
			if (ar[i] == CAPTIONSIZEUNIT) { o3_captionsizeunit = ar[++i]; continue; }
			if (ar[i] == CAPTIONDECORATION) { o3_captiondecoration = ar[++i]; continue; }
			if (ar[i] == CAPTIONSTYLE) { o3_captionstyle = ar[++i]; continue; }
			if (ar[i] == CAPTIONWEIGHT) { o3_captionweight = ar[++i]; continue; }
			if (ar[i] == CLOSESIZEUNIT) { o3_closesizeunit = ar[++i]; continue; }
			if (ar[i] == CLOSEDECORATION) { o3_closedecoration = ar[++i]; continue; }
			if (ar[i] == CLOSESTYLE) { o3_closestyle = ar[++i]; continue; }
			if (ar[i] == CLOSEWEIGHT) { o3_closeweight = ar[++i]; continue; }
		}
	}

	if (o3_delay == 0) {
		return overlib350();
	} else {
		o3_delayid = setTimeout("overlib350()", o3_delay);

		if (o3_sticky) {
			return false;
		} else {
			return true;
		}
	}
}



// Clears popups if appropriate
function nd() {
	if ( o3_removecounter >= 1 ) { o3_showingsticky = 0 };
	if ( (ns4) || (ie4) || (ns6) ) {
		if ( o3_showingsticky == 0 ) {
			o3_allowmove = 0;
			if (over != null) hideObject(over);
		} else {
			o3_removecounter++;
		}
	}
	
	return true;
}







////////////////////////////////////////////////////////////////////////////////////
// OVERLIB 3.50 FUNCTION
////////////////////////////////////////////////////////////////////////////////////


// This function decides what it is we want to display and how we want it done.
function overlib350() {

	// 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_css == CSSOFF) {
			o3_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\"";
		}
		if (o3_bgbackground != "" && o3_css == CSSOFF) {
			o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\"";
		}

		// Prepare popup colors
		if (o3_fgcolor != "" && o3_css == CSSOFF) {
			o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\"";
		}
		if (o3_bgcolor != "" && o3_css == CSSOFF) {
			o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\"";
		}

		// Prepare popup height
		if (o3_height > 0 && o3_css == CSSOFF) {
			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;

	// Initiate a timer for timeout
	if (o3_timeout > 0) {          
		if (o3_timerid > 0) clearTimeout(o3_timerid);
		o3_timerid = setTimeout("cClick()", o3_timeout);
	}

	// 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) {
	if (o3_css == CSSCLASS) txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 class=\""+o3_bgclass+"\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 class=\""+o3_fgclass+"\"><TR><TD VALIGN=TOP><FONT class=\""+o3_textfontclass+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
	if (o3_css == CSSSTYLE) txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 style=\"background-color: "+o3_bgcolor+"; height: "+o3_height+o3_heightunit+";\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 style=\"color: "+o3_fgcolor+"; background-color: "+o3_fgcolor+"; height: "+o3_height+o3_heightunit+";\"><TR><TD VALIGN=TOP><FONT style=\"font-family: "+o3_textfont+"; color: "+o3_textcolor+"; font-size: "+o3_textsize+o3_textsizeunit+"; text-decoration: "+o3_textdecoration+"; font-weight: "+o3_textweight+"; font-style:"+o3_textstyle+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
	if (o3_css == CSSOFF) 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 = "";
	closeevent = "onMouseOver";

	if (o3_closeclick == 1) closeevent = "onClick";
	if (o3_capicon != "") o3_capicon = "<IMG SRC=\""+o3_capicon+"\"> ";

	if (close != "") {
		if (o3_css == CSSCLASS) closing = "<TD ALIGN=RIGHT><A HREF=\"/\" "+closeevent+"=\"return cClick();\" class=\""+o3_closefontclass+"\">"+close+"</A></TD>";
		if (o3_css == CSSSTYLE) closing = "<TD ALIGN=RIGHT><A HREF=\"/\" "+closeevent+"=\"return cClick();\" style=\"color: "+o3_closecolor+"; font-family: "+o3_closefont+"; font-size: "+o3_closesize+o3_closesizeunit+"; text-decoration: "+o3_closedecoration+"; font-weight: "+o3_closeweight+"; font-style:"+o3_closestyle+";\">"+close+"</A></TD>";
		if (o3_css == CSSOFF) closing = "<TD ALIGN=RIGHT><A HREF=\"/\" "+closeevent+"=\"return cClick();\"><FONT COLOR=\""+o3_closecolor+"\" FACE=\""+o3_closefont+"\" SIZE=\""+o3_closesize+"\">"+close+"</FONT></A></TD>";
	}

	if (o3_css == CSSCLASS) txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 class=\""+o3_bgclass+"\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><FONT class=\""+o3_captionfontclass+"\">"+o3_capicon+title+"</FONT></TD>"+closing+"</TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 class=\""+o3_fgclass+"\"><TR><TD VALIGN=TOP><FONT class=\""+o3_textfontclass+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
	if (o3_css == CSSSTYLE) txt = "<TABLE WIDTH="+o3_width+" BORDER=0 CELLPADDING="+o3_border+" CELLSPACING=0 style=\"background-color: "+o3_bgcolor+"; background-image: url("+o3_bgbackground+"); height: "+o3_height+o3_heightunit+";\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><FONT style=\"font-family: "+o3_captionfont+"; color: "+o3_capcolor+"; font-size: "+o3_captionsize+o3_captionsizeunit+"; font-weight: "+o3_captionweight+"; font-style: "+o3_captionstyle+";\">"+o3_capicon+title+"</FONT></TD>"+closing+"</TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 style=\"color: "+o3_fgcolor+"; background-color: "+o3_fgcolor+"; height: "+o3_height+o3_heightunit+";\"><TR><TD VALIGN=TOP><FONT style=\"font-family: "+o3_textfont+"; color: "+o3_textcolor+"; font-size: "+o3_textsize+o3_textsizeunit+"; text-decoration: "+o3_textdecoration+"; font-weight: "+o3_textweight+"; font-style:"+o3_textstyle+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>";
	if (o3_css == CSSOFF) 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 lots more. :)
function ol_content_background(text, picture, hasfullhtml) {
	if (hasfullhtml) {
		txt = text;
	} else {
		if (o3_css == CSSCLASS) txt = "<TABLE WIDTH="+o3_width+o3_widthunit+" BORDER=0 CELLPADDING=0 CELLSPACING=0 HEIGHT="+o3_height+o3_heightunit+"><TR><TD COLSPAN=3 HEIGHT="+o3_padyt+o3_padunit+"></TD></TR><TR><TD WIDTH="+o3_padxl+o3_padunit+"></TD><TD VALIGN=TOP WIDTH="+(o3_width-o3_padxl-o3_padxr)+o3_padunit+"><FONT class=\""+o3_textfontclass+"\">"+text+"</FONT></TD><TD WIDTH="+o3_padxr+o3_padunit+"></TD></TR><TR><TD COLSPAN=3 HEIGHT="+o3_padyb+o3_padunit+"></TD></TR></TABLE>";
		if (o3_css == CSSSTYLE) txt = "<TABLE WIDTH="+o3_width+o3_widthunit+" BORDER=0 CELLPADDING=0 CELLSPACING=0 HEIGHT="+o3_height+o3_heightunit+"><TR><TD COLSPAN=3 HEIGHT="+o3_padyt+o3_padunit+"></TD></TR><TR><TD WIDTH="+o3_padxl+o3_padunit+"></TD><TD VALIGN=TOP WIDTH="+(o3_width-o3_padxl-o3_padxr)+o3_padunit+"><FONT style=\"font-family: "+o3_textfont+"; color: "+o3_textcolor+"; font-size: "+o3_textsize+o3_textsizeunit+";\">"+text+"</FONT></TD><TD WIDTH="+o3_padxr+o3_padunit+"></TD></TR><TR><TD COLSPAN=3 HEIGHT="+o3_padyb+o3_padunit+"></TD></TR></TABLE>";
		if (o3_css == CSSOFF) 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 (pic == "") {
		if (ie4) over.backgroundImage = "none";
		if (ns6) over.style.backgroundImage = "none";
	} else {
		if (ns4) {
			over.background.src = pic;
		} else if (ie4) {
			over.backgroundImage = "url("+pic+")";
		} else if (ns6) {
			over.style.backgroundImage = "url("+pic+")";
		}
	}
}



////////////////////////////////////////////////////////////////////////////////////
// HANDLING FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// Displays the popup
function disp(statustext) {
	if ( (ns4) || (ie4) || (ns6) ) {
		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 {
		winoffset = (ie4) ? o3_frame.document.body.scrollLeft : o3_frame.pageXOffset;
		if (ie4) iwidth = o3_frame.document.body.clientWidth;
		if (ns4) iwidth = o3_frame.innerWidth; // was screwed in mozilla, fixed now?
		if (ns6) iwidth = o3_frame.outerWidth;
		
		// If HAUTO, decide what to use.
		if (o3_hauto == 1) {
			if ( (o3_x - winoffset) > ((eval(iwidth)) / 2)) {
				o3_hpos = LEFT;
			} else {
				o3_hpos = RIGHT;
			}
		}
		
		// 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 ( (eval(placeX) + eval(o3_width)) > (winoffset + iwidth) ) {
				placeX = iwidth + winoffset - o3_width;
				if (placeX < 0) placeX = 0;
			}
		}
		if (o3_hpos == LEFT) { // Left
			placeX = o3_x-o3_offsetx-o3_width;
			if (placeX < winoffset) placeX = winoffset;
		}
	
		// 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);
			}
			if (placeX < winoffset) placeX = winoffset;
		}
	}

	
	
	// VERTICAL PLACEMENT
	if (o3_fixy > -1) {
		// Fixed position
		placeY = o3_fixy;
	} else {
		scrolloffset = (ie4) ? o3_frame.document.body.scrollTop : o3_frame.pageYOffset;

		// If VAUTO, decide what to use.
		if (o3_vauto == 1) {
			if (ie4) iheight = o3_frame.document.body.clientHeight;
			if (ns4) iheight = o3_frame.innerHeight;
			if (ns6) iheight = o3_frame.outerHeight;

			iheight = (eval(iheight)) / 2;
			if ( (o3_y - scrolloffset) > iheight) {
				o3_vpos = ABOVE;
			} else {
				o3_vpos = BELOW;
			}
		}


		// From mouse
		if (o3_vpos == ABOVE) {
			if (o3_aboveheight == 0) {
				var divref = (ie4) ? o3_frame.document.all['overDiv'] : over;
				o3_aboveheight = (ns4) ? divref.clip.height : divref.offsetHeight;
			}

			placeY = o3_y - (o3_aboveheight + o3_offsety);
			if (placeY < scrolloffset) placeY = scrolloffset;
		} 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);
			}
			
			if (placeY < scrolloffset) placeY = scrolloffset;
		}
	}


	// Actually move the object.	
	repositionTo(over, placeX, placeY);
}


// Moves the layer
function mouseMove(e) {
	if ( (ns4) || (ns6) ) {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 == 1) {
		placeLayer();
	}
}

// The Close onMouseOver function for stickies
function cClick() {
	hideObject(over);
	o3_showingsticky = 0;
	
	return false;
}


// Makes sure target frame has overLIB
function compatibleframe(frameid) {        
	if (ns4) {
		if (typeof frameid.document.overDiv =='undefined') return false;
	} else if (ie4) {
		if (typeof frameid.document.all["overDiv"] =='undefined') return false;
	} else if (ns6) {
		if (frameid.document.getElementById('overDiv') == null) return false;
	}

	return true;
}



////////////////////////////////////////////////////////////////////////////////////
// LAYER FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// Writes to a layer
function layerWrite(txt) {
	txt += "\n";
	
        if (ns4) {
                var lyr = o3_frame.document.overDiv.document

                lyr.write(txt)
                lyr.close()
        } else if (ie4) {
		o3_frame.document.all["overDiv"].innerHTML = txt
	} else if (ns6) {
		range = o3_frame.document.createRange();
		range.setStartBefore(over);
		domfrag = range.createContextualFragment(txt);
		while (over.hasChildNodes()) {
			over.removeChild(over.lastChild);
		}
		over.appendChild(domfrag);
	}
}

// Make an object visible
function showObject(obj) {
        if (ns4) obj.visibility = "show";
        else if (ie4) obj.visibility = "visible";
	else if (ns6) obj.style.visibility = "visible";
}

// Hides an object
function hideObject(obj) {
        if (ns4) obj.visibility = "hide";
        else if (ie4) obj.visibility = "hidden";
	else if (ns6) obj.style.visibility = "hidden";
        
	if (o3_timerid > 0) clearTimeout(o3_timerid);
	if (o3_delayid > 0) clearTimeout(o3_delayid);
	o3_timerid = 0;
	o3_delayid = 0;
        self.status = "";
}

// Move a layer
function repositionTo(obj,xL,yL) {
	if ( (ns4) || (ie4) ) {
	        obj.left = xL;
	        obj.top = yL;
	} else if (ns6) {
		obj.style.left = xL + "px";
		obj.style.top = yL+ "px";
	}
}





////////////////////////////////////////////////////////////////////////////////////
// PARSER FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// Defines which frame we should point to.
function opt_FRAME(frm) {
        o3_frame = compatibleframe(frm) ? frm : ol_frame;

	if ( (ns4) || (ie4 || (ns6)) ) {
		if (ns4) over = o3_frame.document.overDiv;
		if (ie4) over = o3_frame.overDiv.style;
		if (ns6) over = o3_frame.document.getElementById("overDiv");
	}

	return 0;
}

// Calls an external function
function opt_FUNCTION(callme) {
	o3_text = callme()
	return 0;
}




//end (For internal purposes.)
////////////////////////////////////////////////////////////////////////////////////
// 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);
}
