//\//////////////////////////////////////////////////////////////////////////////////
//\  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.
//\
//\  Modified on 2001-09-07 by Robert E. Boughner to add a mouseOut feature
//\  to the overlib popup and to bring it in to conformance to previous
//\  modifications made to version 3.33.  These changes can be found by
//\  searching for the string "Added REB".
//\
//\     Corrected an error with IE5/Mac by making sure unit specifier is
//\     added when setting left/top values of an object.
//\
//\     Added code to cancel any previous timeout event if the popup
//\     is STICKY.
//\
//\  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;
var RELX = 74;
var RELY = 75;


////////////////////////////////////////////////////////////////////////////////////
// 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 = "#F0F6FB";}
	
// Border color and color of caption
// Usually a dark color (black, brown etc)
if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "#347AB8";}
	
// 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 = "Fermer"; }

// 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; }

// Sets the popups horizontal position to a fixed column relative to browser window
// Anything above -1 will cause fixed position.
if (typeof ol_relx == 'undefined') { var ol_relx = null; }

// Sets the popups vertical position to a fixed row relative to browser window
// Anything above -1 will cause fixed position.
if (typeof ol_rely == 'undefined') { var ol_rely = null; }

// 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_capicon == 'undefined') { var ol_capicon = ""; }  // Modified REB

// 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 = null; }   // Added REB

// 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.
// Added REB -- default behavior is auto align vertically
if (typeof ol_vauto == 'undefined') { var ol_vauto = 1; }

// 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.
////////////////////////////////////////////////////////////////////////////////////

// Array with texts.
if (typeof ol_texts == 'undefined') { var ol_texts = new Array("Text 0", "Text 1"); }

// Array with captions.
if (typeof ol_caps == 'undefined') { var ol_caps = new Array("Caption 0", "Caption 1"); }


////////////////////////////////////////////////////////////////////////////////////
// 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_relx = null;
var o3_rely = null;
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 = null;    // Added REB 
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;
var hSwitch;    // Added REB for mouseOut feature in IE and NS6
var fnRef; // Added REB to hold frame reference on STICKIES
var dlyShowId = 0;  // timerId for NS6 popup show delay

// Decide browser version
//var OLns4 = (document.layers)? true:false;
var OLns4 = (navigator.appName == 'Netscape' && parseInt(navigator.appVersion) == 4);  // Added REB more positive check
var OLns6 = (document.getElementById)? true:false;
var OLie4 = (document.all)? true:false;
if (OLie4) var docRoot = 'document.body'  // Added REB -- IE6 fix
var OLie5 = false; 

// Added REB -- Resize fix for NS4.x to keep track of layer
if (OLns4) {
  var oW = window.innerWidth;
  var oH = window.innerHeight;
  window.onresize = function () {if (oW!=window.innerWidth||oH!=window.innerHeight) location.reload();}
}

// Microsoft Stupidity Check(tm).
if (OLie4) {
	if ((navigator.userAgent.indexOf('MSIE 5') > 0) || (navigator.userAgent.indexOf('MSIE 6') > 0)) {
        if(document.compatMode && document.compatMode == 'CSS1Compat') docRoot = 'document.documentElement'  // Added REB -- IE6 fix
		OLie5 = true;
	}
	if (OLns6) {
		OLns6 = false;
	}
}


var capExtent, OLchkMseCapture=true;
// Capture events, alt. diffuses the overlib function.
if ( (OLns4) || (OLie4) || (OLns6)) OLmouseCapture();
else {
	overlib = no_overlib;
	nd = no_overlib;
	ver3fix = true;
}

// Fake function for 3.0 users.
function no_overlib() {
	return ver3fix;
}

function OLmouseCapture() {
	capExtent=document;
	var fN,mseHandler=OLmouseMove;
	var re=/function[ ]+(\w+)\(/;
	if(document.onmousemove||(!OLie4&&window.onmousemove)){
	  if(window.onmousemove) capExtent=window
	  fN=capExtent.onmousemove.toString().match(re)
		if(fN[1]=='anonymous'||fN[1]=='OLmouseMove') {
			OLchkMseCapture=false;
	 		return
		}
	  var str=fN[1]+'(e); ' + 'OLmouseMove(e); '
	  mseHandler=new Function('e',str)
	}
	capExtent.onmousemove=mseHandler
	if (OLns4) capExtent.captureEvents(Event.MOUSEMOVE)
}




////////////////////////////////////////////////////////////////////////////////////
// PUBLIC FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// overlib(arg0, ..., argN)
// Loads parameters into global runtime variables.
function overlib() {
	if (OLchkMseCapture) OLmouseCapture();		
	// 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_relx = ol_relx;
	o3_rely = ol_rely;
	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;
	// Added REB -- Set mouseover switch
	hSwitch = false;
    fnRef = ''	

	// Special for frame support, over must be reset...
	if ( (OLns4) || (OLie4) || (OLns6) ) {
    if (over) cClick();     // Added REB -- cross Frame setup
		o3_frame = ol_frame;
		if (OLns4) over = o3_frame.document.overDiv
		if (OLie4) over = o3_frame.overDiv.style
		if (OLns6) over = o3_frame.document.getElementById("overDiv");
	}
  parseTokens('o3_', arguments);	
	if (o3_delay == 0) {
		return overlib350();
	} else {
		o3_delayid = setTimeout("overlib350()", o3_delay);
        return false;
	}
}



// Clears popups if appropriate
function nd() {
	if ( o3_removecounter >= 1 ) { o3_showingsticky = 0 };
	if ( (OLns4) || (OLie4) || (OLns6) ) {
		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, sTyp;

	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+"\"";
		}
        sTyp = (o3_css == CSSOFF || o3_css == CSSCLASS);
		if (o3_bgbackground != "") {
			o3_bgbackground = ( sTyp ? "BACKGROUND=\""+o3_bgbackground+"\"" : o3_bgbackground);
		}

		// Prepare popup colors
		if (o3_fgcolor != "") {
			o3_fgcolor = (sTyp ? "BGCOLOR=\""+o3_fgcolor+"\"" : o3_fgcolor);
		}
		if (o3_bgcolor != "") {
			o3_bgcolor = (sTyp ? "BGCOLOR=\""+o3_bgcolor+"\"" : o3_bgcolor);
		}

		// Prepare popup height
		if (o3_height > 0) {
			o3_height = (sTyp ? "HEIGHT=" + o3_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) {
		if (o3_timerid > 0) {  // Added REB -- cancel any timeout event that was posted
                clearTimeout(o3_timerid);
                o3_timerid = 0;
      		}
		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;
		}
	}

	// Initiate a timer for timeout
	if (o3_timeout > 0) {          
		if (o3_timerid > 0) clearTimeout(o3_timerid);
		o3_timerid = setTimeout("cClick()", o3_timeout);
	}

	// Place and show layer
	disp(o3_status);
    return (o3_status != '');
}

////////////////////////////////////////////////////////////////////////////////////
// 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 " + (o3_bgclass ? "class=\""+o3_bgclass+"\"" : o3_bgcolor+" "+o3_height)+"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 " + (o3_fgclass ? "class=\""+o3_fgclass+"\"" : o3_fgcolor+" "+o3_fgbackground+" "+o3_height) + "><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=\"javascript: void(0);\" "+closeevent+"=\"return " + fnRef + "cClick();\" class=\""+o3_closefontclass+"\">"+close+"</A></TD>";
		if (o3_css == CSSSTYLE) closing = "<TD ALIGN=RIGHT><A HREF=\"javascript: void(0);\" "+closeevent+"=\"return " + fnRef + "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=\"javascript: void(0);\" "+closeevent+"=\"return " + fnRef + "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 " + (o3_bgclass ? "class=\""+o3_bgclass+"\"" : o3_bgcolor+" "+o3_bgbackground+" "+o3_height) + "><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 " + (o3_fgclass ? "class=\""+o3_fgclass+"\"" : o3_fgcolor+" "+o3_fgbackground+" "+o3_height) + "><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+"; text-decoration: " + o3_captiondecoration + ";\">"+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) {
    var txt;
	if (hasfullhtml) {
		txt = text;
	} else {
        var pU, hU, wU;
        pU = (o3_padunit == '%' ? '%' : '');
        hU = (o3_heightunit == '%' ? '%' : '');
        wU = (o3_widthunit == '%' ? '%' : '');
		if (o3_css == CSSCLASS) txt = "<TABLE WIDTH="+o3_width+wU+" BORDER=0 CELLPADDING=0 CELLSPACING=0 HEIGHT="+o3_height+hU+"><TR><TD COLSPAN=3 HEIGHT="+o3_padyt+pU+"></TD></TR><TR><TD WIDTH="+o3_padxl+pU+"></TD><TD VALIGN=TOP WIDTH="+(o3_width-o3_padxl-o3_padxr)+pU+"><FONT class=\""+o3_textfontclass+"\">"+text+"</FONT></TD><TD WIDTH="+o3_padxr+pU+"></TD></TR><TR><TD COLSPAN=3 HEIGHT="+o3_padyb+pU+"></TD></TR></TABLE>";
		if (o3_css == CSSSTYLE) txt = "<TABLE WIDTH="+o3_width+wU+" BORDER=0 CELLPADDING=0 CELLSPACING=0 HEIGHT="+o3_height+hU+"><TR><TD COLSPAN=3 HEIGHT="+o3_padyt+pU+"></TD></TR><TR><TD WIDTH="+o3_padxl+pU+"></TD><TD VALIGN=TOP WIDTH="+(o3_width-o3_padxl-o3_padxr)+pU+"><FONT style=\"font-family: "+o3_textfont+"; color: "+o3_textcolor+"; font-size: "+o3_textsize+o3_textsizeunit+";\">"+text+"</FONT></TD><TD WIDTH="+o3_padxr+pU+"></TD></TR><TR><TD COLSPAN=3 HEIGHT="+o3_padyb+pU+"></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 (OLns4) over.background.src = null;  // Added REB 9/16/2002
		if (OLie4) over.backgroundImage = "none";
		if (OLns6) over.style.backgroundImage = "none";
	} else {
		if (OLns4) {
			over.background.src = pic;
		} else if (OLie4) {
			over.backgroundImage = "url("+pic+")";
		} else if (OLns6) {
			over.style.backgroundImage = "url("+pic+")";
		}
	}
}



////////////////////////////////////////////////////////////////////////////////////
// HANDLING FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// Displays the popup
function disp(statustext) {
	if ( (OLns4) || (OLie4) || (OLns6) ) {
		if (o3_allowmove == 0) 	{
            placeLayer();
			(OLns6 ? dlyShowId = setTimeout("showObject(over)",1) : showObject(over));  // fix for NS6 flashing
			o3_allowmove = (o3_sticky ? 0 : 1);  // stickies stay put others can move
		}
	}

	if (statustext != "") {
		self.status = statustext;
	}
}

// Decides where we want the popup.
function placeLayer() {
	var placeX, placeY, ssN = 0;
    if (OLie4) iwidth = eval('o3_frame.' + docRoot + '.clientWidth');
    else {
      if (o3_frame.document.body && typeof o3_frame.document.body.clientWidth == 'number' && o3_frame.document.body.clientWidth) 
          iwidth = o3_frame.document.body.clientWidth;
      else if (typeof(o3_frame.innerWidth) == 'number') {
          ssN = Math.ceil(1.2*(o3_frame.outerWidth - o3_frame.innerWidth));
          iwidth = o3_frame.innerWidth;
      }
    } 
	// HORIZONTAL PLACEMENT
    // Horizontal scroll offset
	winoffset = (OLie4) ? eval('o3_frame.'+docRoot+'.scrollLeft') : o3_frame.pageXOffset;
    var pWd = parseInt(o3_width);
	if (o3_fixx > -1 || o3_relx != null) {
		// Fixed position
		placeX = (o3_relx != null ? ( o3_relx < 0 ? winoffset  + o3_relx+ iwidth - pWd - ssN : winoffset + o3_relx) : o3_fixx);
	} else {  
  		// If HAUTO, decide what to use.
  		if (o3_hauto == 1) {
  			if ( (o3_x - winoffset) > (iwidth / 2)) {
  				o3_hpos = LEFT;
  			} else {
  				o3_hpos = RIGHT;
  			}
  		}  		
  		// From mouse
  		if (o3_hpos == CENTER) { // Center
  			placeX = o3_x+o3_offsetx-(pWd/2);
  			if (placeX < winoffset) placeX = winoffset;
  		}
  		if (o3_hpos == RIGHT) { // Right
  			placeX = o3_x+o3_offsetx;
  			if ( (placeX + pWd) > (winoffset + iwidth - ssN) ) {
  				placeX = iwidth + winoffset - pWd - ssN;
  				if (placeX < 0) placeX = 0;
  			}
  		}
  		if (o3_hpos == LEFT) { // Left
  			placeX = o3_x-o3_offsetx-pWd;
  			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
    // Vertical scroll offset
	scrolloffset = (OLie4) ? eval('o3_frame.'+docRoot+'.scrollTop') : o3_frame.pageYOffset;
    if (OLie4) iheight = eval('o3_frame.' + docRoot + '.clientHeight');
    else {
      if (o3_frame.document.body && typeof o3_frame.document.body.clientHeight == 'number' && o3_frame.document.body.clientHeight) 
          iheight = o3_frame.document.body.clientHeight;
      else if (typeof(o3_frame.innerHeight) == 'number')
          iheight = o3_frame.innerHeight;
    }
    var ovObj = (OLie4 ? o3_frame.document.all['overDiv'] : over);
    var pHt = (o3_aboveheight ? parseInt(o3_aboveheight) : (OLns4 ? ovObj.clip.height : ovObj.offsetHeight));
	if (o3_fixy > -1 || o3_rely != null) {
		// Fixed position
		placeY = (o3_rely != null ? (o3_rely < 0 ? scrolloffset + o3_rely + iheight - pHt : scrolloffset + o3_rely) : o3_fixy);
	} else {
  		// If VAUTO, decide what to use.
  		if (o3_vauto == 1) {  
  			if ( (o3_y - scrolloffset) > (iheight/2)) {
  				o3_vpos = ABOVE;
  			} else {
  				o3_vpos = BELOW;
  			}
  		}
  		// From mouse
  		if (o3_vpos == ABOVE) {
  			if (o3_aboveheight == 0) o3_aboveheight = pHt; 
  			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 OLmouseMove(e) {
	if ( (OLns4) || (OLns6) ) {o3_x=e.pageX; o3_y= e.pageY;}
	if (OLie4) {o3_x=event.x; o3_y=event.y;}
	if (OLie5) {o3_x=eval('event.x+o3_frame.'+docRoot+'.scrollLeft'); o3_y=eval('event.y+o3_frame.'+docRoot+'.scrollTop');}  // Added REB -- IE6 fix
	
	if (o3_allowmove == 1) {
		placeLayer();
	}
// Added REB -- for mouseOut handler
	if (hSwitch && !OLns4 && cursorOff()) {
	   cClick();
	   hSwitch = !hSwitch;
	}
}

// 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 (OLns4) {
		if (typeof frameid.document.overDiv =='undefined') return false;
	} else if (OLie4) {
		if (typeof frameid.document.all["overDiv"] =='undefined') return false;
	} else if (OLns6) {
		if (frameid.document.getElementById('overDiv') == null) return false;
	}

	return true;
}
// Suggested way to handle default setting
function setOLParams() {
  parseTokens('ol_',setOLParams.arguments);
}

function parseTokens(pf,argArray) {
	// What the next argument is expected to be.
	var v, udf, parsemode = -1;
	
	var ar = argArray;
	udf = (pf != 'ol_' && !ar.length ? 1 : 0);

	for (i = 0; i < ar.length; i++) {

		if (parsemode < 0) {
			// Arg is maintext, unless its a number
			if (typeof ar[i] == 'number') {
				udf = (ar[i] == FUNCTION ? 0 : (pf != 'ol_' ? 1 : 0));
				i--;   // backup one so that the next block can parse it
			} else {
				switch(pf) {
					case 'ol_':
						ol_text = ar[i];
						break;
					default:
						o3_text = ar[i];
				}
			}

			parsemode = 0;
		} else {
			// Note: NS4 doesn't like switch cases with vars.
			if (ar[i] == INARRAY) { eval(pf + 'text = ol_texts[' + ar[++i] + ']'); continue; }
			if (ar[i] == CAPARRAY) { eval(pf + 'cap = ol_caps[' + ar[++i] + ']'); continue; }
			if (ar[i] == STICKY) { eval(pf + 'sticky = 1'); continue; }
			if (ar[i] == BACKGROUND) { eval(pf + 'background = "' + ar[++i] + '"'); continue; }
			if (ar[i] == NOCLOSE) { if (pf != 'ol_') opt_NOCLOSE(); continue; }
			if (ar[i] == CAPTION) { eval(pf + 'cap = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CENTER || ar[i] == LEFT || ar[i] == RIGHT) { eval(pf + 'hpos = ' + ar[i]); continue; }
			if (ar[i] == OFFSETX) { eval(pf + 'offsetx = ' + ar[++i]); continue; }
			if (ar[i] == OFFSETY) { eval(pf + 'offsety = ' + ar[++i]); continue; }
			if (ar[i] == FGCOLOR) { eval(pf + 'fgcolor = "' + ar[++i] + '"'); continue; }
			if (ar[i] == BGCOLOR) { eval(pf + 'bgcolor = "' + ar[++i] + '"'); continue; }
			if (ar[i] == TEXTCOLOR) { eval(pf + 'textcolor = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CAPCOLOR) { eval(pf + 'capcolor = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CLOSECOLOR) { eval(pf + 'closecolor = "' + ar[++i] + '"'); continue; }
			if (ar[i] == WIDTH) { eval(pf + 'width = ' + ar[++i]); continue; }
			if (ar[i] == BORDER) { eval(pf + 'border = ' + ar[++i]); continue; }
			if (ar[i] == STATUS) { eval(pf + 'status = "' + ar[++i] + '"'); continue; }
			if (ar[i] == AUTOSTATUS) { eval(pf + 'autostatus = 1'); continue; }
			if (ar[i] == AUTOSTATUSCAP) { eval(pf + 'autostatus = 2'); continue; }
			if (ar[i] == HEIGHT) { eval(pf + 'height = ' + pf + 'aboveheight = ' + ar[++i]); continue; } // Same param again.
			if (ar[i] == CLOSETEXT) { eval(pf + 'close = "' + ar[++i] + '"'); continue; }
			if (ar[i] == SNAPX) { eval(pf + 'snapx = ' + ar[++i]); continue; }
			if (ar[i] == SNAPY) { eval(pf + 'snapy = ' + ar[++i]); continue; }
			if (ar[i] == FIXX) { eval(pf + 'fixx = ' + ar[++i]); continue; }
			if (ar[i] == FIXY) { eval(pf + 'fixy = ' + ar[++i]); continue; }
			if (ar[i] == RELX) { eval(pf + 'relx = ' + ar[++i]); continue; }
			if (ar[i] == RELY) { eval(pf + 'rely = ' + ar[++i]); continue; }
			if (ar[i] == FGBACKGROUND) { eval(pf + 'fgbackground = "' + ar[++i] + '"'); continue; }
			if (ar[i] == BGBACKGROUND) { eval(pf + 'bgbackground = "' + ar[++i] + '"'); continue; }
			if (ar[i] == PADX) { eval(pf + 'padxl = ' + ar[++i]); eval(pf + 'padxr = ' + ar[++i]); continue; }
			if (ar[i] == PADY) { eval(pf + 'padyt = ' + ar[++i]); eval(pf + 'padyb = ' + ar[++i]); continue; }
			if (ar[i] == FULLHTML) { eval(pf + ' fullhtml = 1'); continue; }
			if (ar[i] == BELOW || ar[i] == ABOVE) { eval(pf + 'vpos = ' + ar[i]); continue; }
			if (ar[i] == CAPICON) { eval(pf + 'capicon = "' + ar[++i] + '"'); continue; }
			if (ar[i] == TEXTFONT) { eval(pf + 'textfont = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CAPTIONFONT) { eval(pf + 'captionfont = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CLOSEFONT) { eval(pf + 'closefont = "' + ar[++i] + '"'); continue; }
			if (ar[i] == TEXTSIZE) { eval(pf + 'textsize = ' + ar[++i]); continue; }
			if (ar[i] == CAPTIONSIZE) { eval(pf + 'captionsize = ' + ar[++i]); continue; }
			if (ar[i] == CLOSESIZE) { eval(pf + 'closesize = ' + ar[++i]); continue; }
			if (ar[i] == FRAME) { v= ar[++i]; if(pf == 'ol_' && compatibleframe(v)) ol_frame = v; else opt_FRAME(v); continue; }
			if (ar[i] == TIMEOUT) { eval(pf + 'timeout = ' + ar[++i]); continue; }
			if (ar[i] == FUNCTION) { if (pf == 'ol_') { if (typeof ar[i+1] != 'number') { v = ar[++i]; ol_function = (typeof v == 'function' ? v : null); }} else {v=null; if (typeof ar[i+1] != 'number') v = ar[++i];  opt_FUNCTION(v); } continue; }
			if (ar[i] == DELAY) { eval(pf + 'delay = ' + ar[++i]); continue; }
			if (ar[i] == HAUTO) { eval(pf + 'hauto = (' + pf + 'hauto == 0) ? 1 : 0'); continue; }
			if (ar[i] == VAUTO) { eval(pf + 'vauto = (' + pf + 'vauto == 0) ? 1 : 0'); continue; }
			if (ar[i] == CLOSECLICK) { eval(pf +'closeclick = (' + pf + 'closeclick == 0) ? 1 : 0'); continue; }
			if (ar[i] == CSSOFF) { eval(pf + 'css = ' + ar[i]); continue; }

			if (ar[i] == CSSSTYLE ||ar[i] == CSSCLASS) { eval(pf + 'css = ' + ar[i]); continue; }
			if (ar[i] == FGCLASS) { eval(pf + 'fgclass = "' + ar[++i] + '"'); continue; }
			if (ar[i] == BGCLASS) { eval(pf + 'bgclass = "' + ar[++i] + '"'); continue; }
			if (ar[i] == TEXTFONTCLASS) { eval(pf + 'textfontclass = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CAPTIONFONTCLASS) { eval(pf + 'captionfontclass = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CLOSEFONTCLASS) { eval(pf + 'closefontclass = "' + ar[++i] + '"'); continue; }
			if (ar[i] == PADUNIT) { eval(pf + 'padunit = "' + ar[++i] + '"'); continue; }
			if (ar[i] == HEIGHTUNIT) { eval(pf + 'heightunit = "' + ar[++i] + '"'); continue; }
			if (ar[i] == WIDTHUNIT) { eval(pf + 'widthunit = "' + ar[++i] + '"'); continue; }
			if (ar[i] == TEXTSIZEUNIT) { eval(pf + 'textsizeunit = "' + ar[++i] + '"'); continue; }
			if (ar[i] == TEXTDECORATION) { eval(pf + 'textdecoration = "' + ar[++i] + '"'); continue; }
			if (ar[i] == TEXTSTYLE) { eval(pf + 'textstyle = "' + ar[++i] + '"'); continue; }
			if (ar[i] == TEXTWEIGHT) { eval(pf + 'textweight = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CAPTIONSIZEUNIT) { eval(pf + 'captionsizeunit = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CAPTIONDECORATION) { eval(pf + 'captiondecoration = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CAPTIONSTYLE) { eval(pf + 'captionstyle = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CAPTIONWEIGHT) { eval(pf + 'captionweight = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CLOSESIZEUNIT) { eval(pf + 'closesizeunit = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CLOSEDECORATION) { eval(pf + 'closedecoration = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CLOSESTYLE) { eval(pf + 'closestyle = "' + ar[++i] + '"'); continue; }
			if (ar[i] == CLOSEWEIGHT) { eval(pf + 'closeweight = "' + ar[++i] + '"'); continue; }
		}
	}
	if (udf && o3_function) o3_text = o3_function();
    if ((pf == 'o3_') && !o3_close && o3_sticky && (o3_frame != ol_frame)) o3_close = ol_close;
}

////////////////////////////////////////////////////////////////////////////////////
// LAYER FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// Writes to a layer
function layerWrite(txt) {
	txt += "\n";

        if (OLns4) {
                var lyr = o3_frame.document.overDiv.document

                lyr.write(txt)
                lyr.close()
        } else if (OLie4) {
		o3_frame.document.all["overDiv"].innerHTML = txt
	} else if (OLns6) {
		range = o3_frame.document.createRange();
		range.setStartAfter(over);  // Added REB 
		domfrag = range.createContextualFragment(txt);
		while (over.hasChildNodes()) {
			over.removeChild(over.lastChild);
		}
		over.appendChild(domfrag);
	}
}

// Make an object visible
function showObject(obj) {
        if (OLns4) obj.visibility = "show";
        else if (OLie4) obj.visibility = "visible";
	else if (OLns6) obj.style.visibility = "visible";
}

// Hides an object
function hideObject(obj) {
    if (OLns4) obj.visibility = "hide";
    else if (OLie4) obj.visibility = "hidden";
	else if (OLns6) {if (dlyShowId) {clearTimeout(dlyShowId); dlyShowId = 0;} 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 = "";
// Added REB -- Cancel any previous settings of mouseouts or mouseovers
    var Obj = (OLie4) ? o3_frame.document.all['overDiv'] : over;
    if ((OLie4 || OLns6) && Obj.onmouseover) Obj.onmouseover = null;
    if (OLns4 && (Obj.onmouseout || Obj.onmouseover)) {
        Obj.releaseEvents(Event.MOUSEOUT || Event.MOUSEOVER);
        Obj.onmouseout = Obj.onmouseover = null;
    }
}

// Move a layer
function repositionTo(obj,xL,yL) {
	if ( (OLns4) || (OLie4) ) {
	        obj.left = (OLie4 ? xL + 'px' : xL);  // Added REB for IE5/Mac problems
	        obj.top = (OLie4 ? yL + 'px' : yL);   // Added REB for IE5/Mac problems
	} else if (OLns6) {
		obj.style.left = xL + "px";
		obj.style.top = yL+ "px";
	}
}

// Added REB -- Check position of cursor relative to overDiv DIVision; mouseOut function
function cursorOff() {
   var Obj = (OLie4) ? o3_frame.document.all['overDiv'] : over;
   var left =  parseInt(Obj.style.left);
   var top = parseInt(Obj.style.top);
   var right = left + Obj.offsetWidth;
   var bottom = top +  Obj.offsetHeight;
   if (o3_x < left || o3_x > right || o3_y < top || o3_y > bottom) return true;
   return false;
}



////////////////////////////////////////////////////////////////////////////////////
// PARSER FUNCTIONS
////////////////////////////////////////////////////////////////////////////////////


// Defines which frame we should point to.
function opt_FRAME(frm) {
    o3_frame = compatibleframe(frm) ? frm : ol_frame;
    if(typeof getFrmRef != 'undefined') fnRef = getFrmRef(ol_frame,o3_frame)

	if ( (OLns4) || (OLie4 || (OLns6)) ) {
		if (OLns4) over = o3_frame.document.overDiv;
		if (OLie4) over = o3_frame.overDiv.style;
		if (OLns6) over = o3_frame.document.getElementById("overDiv");
	}

	return 0;
}

// Calls an external function -- modified by REB
function opt_FUNCTION(callme) {
	o3_text = (callme ? (typeof callme == 'string' ? (/.+\(.*\)/.test(callme) ? eval(callme) : callme) : callme()) : (o3_function ? o3_function() : 'No Function'));
	return 0;
}

// Added REB -- Sets use of close text and set mouseOut functions
function opt_NOCLOSE(unused) {
	o3_close = "";
	var Obj = (OLie4) ? o3_frame.document.all['overDiv'] : over;
	if (OLns4) {
	  Obj.captureEvents(Event.MOUSEOUT || Event.MOUSEOVER);
      Obj.onmouseover = function () {if(o3_timerid > 0) {clearTimeout(o3_timerid); o3_timerid=0;}}
	  Obj.onmouseout = cClick;
	}
	if (OLie4 || OLns6) Obj.onmouseover = function () {hSwitch = true;if(o3_timerid > 0) {clearTimeout(o3_timerid); o3_timerid=0;}}
	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);
}
