//\//////////////////////////////////////////////////////////////////////////////////
//\ overLIB 3.33 -- 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-01-26.
//\ 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;
var PADY = 31;
var PADX2 = 32;
var PADY2 = 33;
var FULLHTML = 34;
var ABOVE = 35;
var BELOW = 36;
var CAPICON = 37;
var TEXTFONT = 38;
var CAPTIONFONT = 39;
var CLOSEFONT = 40;
var TEXTSIZE = 41;
var CAPTIONSIZE = 42;
var CLOSESIZE = 43;
var FRAME = 44;
var TIMEOUT = 45;
var FUNCTION = 46;
var DELAY = 47;
var HAUTO = 48;
var VAUTO = 49;
////////////////////////////////////////////////////////////////////////////////////
// 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 = "#CCCCFF";}
// Border color and color of caption
// Usually a dark color (black, brown etc)
if (typeof ol_bgcolor == 'undefined') { var ol_bgcolor = "#333399";}
// 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 = "#9999FF";}
// Font face for the main text
if (typeof ol_textfont == 'undefined') { var ol_textfont = "Verdana,Arial,Helvetica";}
// Font face for the caption
if (typeof ol_captionfont == 'undefined') { var ol_captionfont = "Verdana,Arial,Helvetica";}
// Font face for the close text
if (typeof ol_closefont == 'undefined') { var ol_closefont = "Verdana,Arial,Helvetica";}
// Font size for the main text
if (typeof ol_textsize == 'undefined') { var ol_textsize = "1";}
// Font size for the caption
if (typeof ol_captionsize == 'undefined') { var ol_captionsize = "1";}
// Font size for the close text
if (typeof ol_closesize == 'undefined') { var ol_closesize = "1";}
// Width of the popups in pixels
// 100-300 pixels is typical
if (typeof ol_width == 'undefined') { var ol_width = "200";}
// How thick the ol_border should be in pixels
// 1-3 pixels is typical
if (typeof ol_border == 'undefined') { var ol_border = "1";}
// How many pixels to the right/left of the cursor to show the popup
// Values between 3 and 12 are best
if (typeof ol_offsetx == 'undefined') { var ol_offsetx = 10;}
// How many pixels to the below the cursor to show the popup
// Values between 3 and 12 are best
if (typeof ol_offsety == 'undefined') { var ol_offsety = 10;}
// Default text for popups
// Should you forget to pass something to overLIB this will be displayed.
if (typeof ol_text == 'undefined') { var ol_text = "Default Text"; }
// Default caption
// You should leave this blank or you will have problems making non caps popups.
if (typeof ol_cap == 'undefined') { var ol_cap = ""; }
// Decides if sticky popups are default.
// 0 for non, 1 for stickies.
if (typeof ol_sticky == 'undefined') { var ol_sticky = 0; }
// Default background image. Better left empty unless you always want one.
if (typeof ol_background == 'undefined') { var ol_background = ""; }
// Text for the closing sticky popups.
// Normal is "Close".
if (typeof ol_close == 'undefined') { var ol_close = "Close"; }
// Default vertical alignment for popups.
// It's best to leave RIGHT here. Other options are LEFT and CENTER.
if (typeof ol_hpos == 'undefined') { var ol_hpos = RIGHT; }
// Default status bar text when a popup is invoked.
if (typeof ol_status == 'undefined') { var ol_status = ""; }
// If the status bar automatically should load either text or caption.
// 0=nothing, 1=text, 2=caption
if (typeof ol_autostatus == 'undefined') { var ol_autostatus = 0; }
// Default height for popup. Often best left alone.
if (typeof ol_height == 'undefined') { var ol_height = -1; }
// Horizontal grid spacing that popups will snap to.
// 0 makes no grid, anything else will cause a snap to that grid spacing.
if (typeof ol_snapx == 'undefined') { var ol_snapx = 0; }
// Vertical grid spacing that popups will snap to.
// 0 makes no grid, andthing else will cause a snap to that grid spacing.
if (typeof ol_snapy == 'undefined') { var ol_snapy = 0; }
// Sets the popups horizontal position to a fixed column.
// Anything above -1 will cause fixed position.
if (typeof ol_fixx == 'undefined') { var ol_fixx = -1; }
// Sets the popups vertical position to a fixed row.
// Anything above -1 will cause fixed position.
if (typeof ol_fixy == 'undefined') { var ol_fixy = -1; }
// Background image for the popups inside.
if (typeof ol_fgbackground == 'undefined') { var ol_fgbackground = ""; }
// Background image for the popups frame.
if (typeof ol_bgbackground == 'undefined') { var ol_bgbackground = ""; }
// How much horizontal left padding text should get by default when BACKGROUND is used.
if (typeof ol_padxl == 'undefined') { var ol_padxl = 1; }
// How much horizontal right padding text should get by default when BACKGROUND is used.
if (typeof ol_padxr == 'undefined') { var ol_padxr = 1; }
// How much vertical top padding text should get by default when BACKGROUND is used.
if (typeof ol_padyt == 'undefined') { var ol_padyt = 1; }
// How much vertical bottom padding text should get by default when BACKGROUND is used.
if (typeof ol_padyb == 'undefined') { var ol_padyb = 1; }
// If the user by default must supply all html for complete popup control.
// Set to 1 to activate, 0 otherwise.
if (typeof ol_fullhtml == 'undefined') { var ol_fullhtml = 0; }
// 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; }
////////////////////////////////////////////////////////////////////////////////////
// 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.
var ol_texts = new Array("Array Text 0", "Array Text 1");
// Array with captions.
var ol_caps = new Array("Array Caption 0", "Array Caption 1");
////////////////////////////////////////////////////////////////////////////////////
// END CONFIGURATION
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
// INIT
////////////////////////////////////////////////////////////////////////////////////
// Runtime variables init. Used for runtime only, don't change, not for config!
var o3_text = "";
var o3_cap = "";
var o3_sticky = 0;
var o3_background = "";
var o3_close = "Close";
var o3_hpos = RIGHT;
var o3_offsetx = 2;
var o3_offsety = 2;
var o3_fgcolor = "";
var o3_bgcolor = "";
var o3_textcolor = "";
var o3_capcolor = "";
var o3_closecolor = "";
var o3_width = 100;
var o3_border = 1;
var o3_status = "";
var o3_autostatus = 0;
var o3_height = -1;
var o3_snapx = 0;
var o3_snapy = 0;
var o3_fixx = -1;
var o3_fixy = -1;
var o3_fgbackground = "";
var o3_bgbackground = "";
var o3_padxl = 0;
var o3_padxr = 0;
var o3_padyt = 0;
var o3_padyb = 0;
var o3_fullhtml = 0;
var o3_vpos = BELOW;
var o3_aboveheight = 0;
var o3_capicon = "";
var o3_textfont = "Verdana,Arial,Helvetica";
var o3_captionfont = "Verdana,Arial,Helvetica";
var o3_closefont = "Verdana,Arial,Helvetica";
var o3_textsize = "1";
var o3_captionsize = "1";
var o3_closesize = "1";
var o3_frame = self;
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;
// 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) {
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;
// 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 command
if (ar[i] == INARRAY) { parsemode = INARRAY; }
if (ar[i] == CAPARRAY) { parsemode = CAPARRAY; }
if (ar[i] == STICKY) { parsemode = opt_STICKY(ar[i]); }
if (ar[i] == BACKGROUND) { parsemode = BACKGROUND; }
if (ar[i] == NOCLOSE) { parsemode = opt_NOCLOSE(ar[i]); }
if (ar[i] == CAPTION) { parsemode = CAPTION; }
if (ar[i] == LEFT) { parsemode = opt_HPOS(ar[i]); }
if (ar[i] == RIGHT) { parsemode = opt_HPOS(ar[i]); }
if (ar[i] == CENTER) { parsemode = opt_HPOS(ar[i]); }
if (ar[i] == OFFSETX) { parsemode = OFFSETX; }
if (ar[i] == OFFSETY) { parsemode = OFFSETY; }
if (ar[i] == FGCOLOR) { parsemode = FGCOLOR; }
if (ar[i] == BGCOLOR) { parsemode = BGCOLOR; }
if (ar[i] == TEXTCOLOR) { parsemode = TEXTCOLOR; }
if (ar[i] == CAPCOLOR) { parsemode = CAPCOLOR; }
if (ar[i] == CLOSECOLOR) { parsemode = CLOSECOLOR; }
if (ar[i] == WIDTH) { parsemode = WIDTH; }
if (ar[i] == BORDER) { parsemode = BORDER; }
if (ar[i] == STATUS) { parsemode = STATUS; }
if (ar[i] == AUTOSTATUS) { parsemode = opt_AUTOSTATUS(ar[i]); }
if (ar[i] == AUTOSTATUSCAP) { parsemode = opt_AUTOSTATUSCAP(ar[i]); }
if (ar[i] == HEIGHT) { parsemode = HEIGHT; }
if (ar[i] == CLOSETEXT) { parsemode = CLOSETEXT; }
if (ar[i] == SNAPX) { parsemode = SNAPX; }
if (ar[i] == SNAPY) { parsemode = SNAPY; }
if (ar[i] == FIXX) { parsemode = FIXX; }
if (ar[i] == FIXY) { parsemode = FIXY; }
if (ar[i] == FGBACKGROUND) { parsemode = FGBACKGROUND; }
if (ar[i] == BGBACKGROUND) { parsemode = BGBACKGROUND; }
if (ar[i] == PADX) { parsemode = PADX; }
if (ar[i] == PADY) { parsemode = PADY; }
if (ar[i] == FULLHTML) { parsemode = opt_FULLHTML(ar[i]); }
if (ar[i] == ABOVE) { parsemode = opt_VPOS(ar[i]); }
if (ar[i] == BELOW) { parsemode = opt_VPOS(ar[i]); }
if (ar[i] == CAPICON) { parsemode = CAPICON; }
if (ar[i] == TEXTFONT) { parsemode = TEXTFONT; }
if (ar[i] == CAPTIONFONT) { parsemode = CAPTIONFONT; }
if (ar[i] == CLOSEFONT) { parsemode = CLOSEFONT; }
if (ar[i] == TEXTSIZE) { parsemode = TEXTSIZE; }
if (ar[i] == CAPTIONSIZE) { parsemode = CAPTIONSIZE; }
if (ar[i] == CLOSESIZE) { parsemode = CLOSESIZE; }
if (ar[i] == FRAME) { parsemode = FRAME; }
if (ar[i] == TIMEOUT) { parsemode = TIMEOUT; }
if (ar[i] == FUNCTION) { parsemode = FUNCTION; }
if (ar[i] == DELAY) { parsemode = DELAY; }
if (ar[i] == HAUTO) { parsemode = opt_HAUTO(ar[i]); }
if (ar[i] == VAUTO) { parsemode = opt_VAUTO(ar[i]); }
} else {
if (parsemode < 0) {
// Arg is maintext, unless INARRAY
if (ar[i] == INARRAY) {
parsemode = INARRAY;
} else {
o3_text = ar[i];
parsemode = 0;
}
} else {
// Arg is option for command
if (parsemode == INARRAY) { parsemode = opt_INARRAY(ar[i]); }
if (parsemode == CAPARRAY) { parsemode = opt_CAPARRAY(ar[i]); }
if (parsemode == BACKGROUND) { parsemode = opt_BACKGROUND(ar[i]); }
if (parsemode == CAPTION) { parsemode = opt_CAPTION(ar[i]); }
if (parsemode == OFFSETX) { parsemode = opt_OFFSETX(ar[i]); }
if (parsemode == OFFSETY) { parsemode = opt_OFFSETY(ar[i]); }
if (parsemode == FGCOLOR) { parsemode = opt_FGCOLOR(ar[i]); }
if (parsemode == BGCOLOR) { parsemode = opt_BGCOLOR(ar[i]); }
if (parsemode == TEXTCOLOR) { parsemode = opt_TEXTCOLOR(ar[i]); }
if (parsemode == CAPCOLOR) { parsemode = opt_CAPCOLOR(ar[i]); }
if (parsemode == CLOSECOLOR) { parsemode = opt_CLOSECOLOR(ar[i]); }
if (parsemode == WIDTH) { parsemode = opt_WIDTH(ar[i]); }
if (parsemode == BORDER) { parsemode = opt_BORDER(ar[i]); }
if (parsemode == STATUS) { parsemode = opt_STATUS(ar[i]); }
if (parsemode == HEIGHT) { parsemode = opt_HEIGHT(ar[i]); }
if (parsemode == CLOSETEXT) { parsemode = opt_CLOSETEXT(ar[i]); }
if (parsemode == SNAPX) { parsemode = opt_SNAPX(ar[i]); }
if (parsemode == SNAPY) { parsemode = opt_SNAPY(ar[i]); }
if (parsemode == FIXX) { parsemode = opt_FIXX(ar[i]); }
if (parsemode == FIXY) { parsemode = opt_FIXY(ar[i]); }
if (parsemode == FGBACKGROUND) { parsemode = opt_FGBACKGROUND(ar[i]); }
if (parsemode == BGBACKGROUND) { parsemode = opt_BGBACKGROUND(ar[i]); }
if (parsemode == PADX2) { parsemode = opt_PADX2(ar[i]); } // must be before PADX
if (parsemode == PADY2) { parsemode = opt_PADY2(ar[i]); } // must be before PADY
if (parsemode == PADX) { parsemode = opt_PADX(ar[i]); }
if (parsemode == PADY) { parsemode = opt_PADY(ar[i]); }
if (parsemode == CAPICON) { parsemode = opt_CAPICON(ar[i]); }
if (parsemode == TEXTFONT) { parsemode = opt_TEXTFONT(ar[i]); }
if (parsemode == CAPTIONFONT) { parsemode = opt_CAPTIONFONT(ar[i]); }
if (parsemode == CLOSEFONT) { parsemode = opt_CLOSEFONT(ar[i]); }
if (parsemode == TEXTSIZE) { parsemode = opt_TEXTSIZE(ar[i]); }
if (parsemode == CAPTIONSIZE) { parsemode = opt_CAPTIONSIZE(ar[i]); }
if (parsemode == CLOSESIZE) { parsemode = opt_CLOSESIZE(ar[i]); }
if (parsemode == FRAME) { parsemode = opt_FRAME(ar[i]); }
if (parsemode == TIMEOUT) { parsemode = opt_TIMEOUT(ar[i]); }
if (parsemode == FUNCTION) { parsemode = opt_FUNCTION(ar[i]); }
if (parsemode == DELAY) { parsemode = opt_DELAY(ar[i]); }
}
}
}
if (o3_delay == 0) {
return overlib333();
} else {
o3_delayid = setTimeout("overlib333()", 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.33 FUNCTION
////////////////////////////////////////////////////////////////////////////////////
// This function decides what it is we want to display and how we want it done.
function overlib333() {
// Make layer content
var layerhtml;
if (o3_background != "" || o3_fullhtml) {
// Use background instead of box.
layerhtml = ol_content_background(o3_text, o3_background, o3_fullhtml);
} else {
// They want a popup box.
// Prepare popup background
if (o3_fgbackground != "") {
o3_fgbackground = "BACKGROUND=\""+o3_fgbackground+"\"";
}
if (o3_bgbackground != "") {
o3_bgbackground = "BACKGROUND=\""+o3_bgbackground+"\"";
}
// Prepare popup colors
if (o3_fgcolor != "") {
o3_fgcolor = "BGCOLOR=\""+o3_fgcolor+"\"";
}
if (o3_bgcolor != "") {
o3_bgcolor = "BGCOLOR=\""+o3_bgcolor+"\"";
}
// Prepare popup height
if (o3_height > 0) {
o3_height = "HEIGHT=" + o3_height;
} else {
o3_height = "";
}
// Decide which kinda box.
if (o3_cap == "") {
// Plain
layerhtml = ol_content_simple(o3_text);
} else {
// With caption
if (o3_sticky) {
// Show close text
layerhtml = ol_content_caption(o3_text, o3_cap, o3_close);
} else {
// No close text
layerhtml = ol_content_caption(o3_text, o3_cap, "");
}
}
}
// We want it to stick!
if (o3_sticky) {
o3_showingsticky = 1;
o3_removecounter = 0;
}
// Wri