ASNMTAP
view release on metacpan or search on metacpan
applications/htmlroot/overlib.js view on Meta::CPAN
var o3_border=1;
var o3_cellpad=2;
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;
var o3_delay=0;
var o3_delayid=0;
var o3_hauto=0;
var o3_vauto=0;
var o3_closeclick=0;
var o3_wrap=0;
var o3_followmouse=1;
var o3_mouseoff=0;
var o3_closetitle='';
var o3_compatmode=0;
var o3_css=CSSOFF;
var o3_fgclass="";
var o3_bgclass="";
var o3_textfontclass="";
var o3_captionfontclass="";
var o3_closefontclass="";
// Display state variables
var o3_x = 0;
var o3_y = 0;
var o3_showingsticky = 0;
var o3_removecounter = 0;
// Our layer
var over = null;
var fnRef, hoveringSwitch = false;
var olHideDelay;
// Decide browser version
var isMac = (navigator.userAgent.indexOf("Mac") != -1);
var olOp = (navigator.userAgent.toLowerCase().indexOf('opera') > -1 && document.createTextNode); // Opera 7
var olNs4 = (navigator.appName=='Netscape' && parseInt(navigator.appVersion) == 4);
var olNs6 = (document.getElementById) ? true : false;
var olKq = (olNs6 && /konqueror/i.test(navigator.userAgent));
var olIe4 = (document.all) ? true : false;
var olIe5 = false;
var olIe55 = false; // Added additional variable to identify IE5.5+
var docRoot = 'document.body';
// 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) {
var agent = navigator.userAgent;
if (/MSIE/.test(agent)) {
var versNum = parseFloat(agent.match(/MSIE[ ](\d\.\d+)\.*/i)[1]);
if (versNum >= 5){
olIe5=true;
olIe55=(versNum>=5.5&&!olOp) ? true : false;
if (olNs6) olNs6=false;
}
}
if (olNs6) olIe4 = false;
}
// Check for compatability mode.
if (document.compatMode && document.compatMode == 'CSS1Compat') {
docRoot= ((olIe4 && !olOp) ? 'document.documentElement' : docRoot);
}
// Add window onload handlers to indicate when all modules have been loaded
// For Netscape 6+ and Mozilla, uses addEventListener method on the window object
// For IE it uses the attachEvent method of the window object and for Netscape 4.x
// it sets the window.onload handler to the OLonload_handler function for Bubbling
if(window.addEventListener) window.addEventListener("load",OLonLoad_handler,false);
else if (window.attachEvent) window.attachEvent("onload",OLonLoad_handler);
var capExtent;
////////
// PUBLIC FUNCTIONS
////////
// overlib(arg0,...,argN)
// Loads parameters into global runtime variables.
function overlib() {
if (!olLoaded || isExclusive(overlib.arguments)) return true;
if (olCheckMouseCapture) olMouseCapture();
if (over) {
over = (typeof over.id != 'string') ? o3_frame.document.all['overDiv'] : over;
cClick();
}
// Load defaults to runtime.
applications/htmlroot/overlib.js view on Meta::CPAN
o3_captionfontclass=ol_captionfontclass;
o3_closefontclass=ol_closefontclass;
setRunTimeVariables();
fnRef = '';
// Special for frame support, over must be reset...
o3_frame = ol_frame;
if(!(over=createDivContainer())) return false;
parseTokens('o3_', overlib.arguments);
if (!postParseChecks()) return false;
if (o3_delay == 0) {
return runHook("olMain", FREPLACE);
} else {
o3_delayid = setTimeout("runHook('olMain', FREPLACE)", o3_delay);
return false;
}
}
// Clears popups if appropriate
function nd(time) {
if (olLoaded && !isExclusive()) {
hideDelay(time); // delay popup close if time specified
if (o3_removecounter >= 1) { o3_showingsticky = 0 };
if (o3_showingsticky == 0) {
o3_allowmove = 0;
if (over != null && o3_timerid == 0) runHook("hideObject", FREPLACE, over);
} else {
o3_removecounter++;
}
}
return true;
}
// The Close onMouseOver function for stickies
function cClick() {
if (olLoaded) {
runHook("hideObject", FREPLACE, over);
o3_showingsticky = 0;
}
return false;
}
// Method for setting page specific defaults.
function overlib_pagedefaults() {
parseTokens('ol_', overlib_pagedefaults.arguments);
}
////////
// OVERLIB MAIN FUNCTION
////////
// This function decides what it is we want to display and how we want it done.
function olMain() {
var layerhtml, styleType;
runHook("olMain", FBEFORE);
if (o3_background!="" || o3_fullhtml) {
// Use background instead of box.
layerhtml = runHook('ol_content_background', FALTERNATE, o3_css, o3_text, o3_background, o3_fullhtml);
} else {
// They want a popup box.
styleType = (pms[o3_css-1-pmStart] == "cssoff" || pms[o3_css-1-pmStart] == "cssclass");
// Prepare popup background
if (o3_fgbackground != "") o3_fgbackground = "background=\""+o3_fgbackground+"\"";
if (o3_bgbackground != "") o3_bgbackground = (styleType ? "background=\""+o3_bgbackground+"\"" : o3_bgbackground);
// Prepare popup colors
if (o3_fgcolor != "") o3_fgcolor = (styleType ? "bgcolor=\""+o3_fgcolor+"\"" : o3_fgcolor);
if (o3_bgcolor != "") o3_bgcolor = (styleType ? "bgcolor=\""+o3_bgcolor+"\"" : o3_bgcolor);
// Prepare popup height
if (o3_height > 0) o3_height = (styleType ? "height=\""+o3_height+"\"" : o3_height);
else o3_height = "";
// Decide which kinda box.
if (o3_cap=="") {
// Plain
layerhtml = runHook('ol_content_simple', FALTERNATE, o3_css, o3_text);
} else {
// With caption
if (o3_sticky) {
// Show close text
layerhtml = runHook('ol_content_caption', FALTERNATE, o3_css, o3_text, o3_cap, o3_close);
} else {
// No close text
layerhtml = runHook('ol_content_caption', FALTERNATE, o3_css, o3_text, o3_cap, "");
}
}
}
// We want it to stick!
if (o3_sticky) {
if (o3_timerid > 0) {
clearTimeout(o3_timerid);
o3_timerid = 0;
}
o3_showingsticky = 1;
o3_removecounter = 0;
}
// Created a separate routine to generate the popup to make it easier
// to implement a plugin capability
if (!runHook("createPopup", FREPLACE, layerhtml)) return false;
// 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
runHook("disp", FREPLACE, o3_status);
runHook("olMain", FAFTER);
return (olOp && event && event.type == 'mouseover' && !o3_status) ? '' : (o3_status != '');
}
////////
// LAYER GENERATION FUNCTIONS
////////
// These functions just handle popup content with tags that should adhere to the W3C standards specification.
// Makes simple table without caption
function ol_content_simple(text) {
var cpIsMultiple = /,/.test(o3_cellpad);
var 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" '+((olNs4||!cpIsMultiple) ? 'cellpadding="'+...
applications/htmlroot/overlib.js view on Meta::CPAN
over.background.src = null;
} else if (over.style) {
over.style.backgroundImage = "none";
}
} else {
if (olNs4) {
over.background.src = pic;
} else if (over.style) {
over.style.width=o3_width + 'px';
over.style.backgroundImage = "url("+pic+")";
}
}
}
////////
// HANDLING FUNCTIONS
////////
var olShowId=-1;
// Displays the popup
function disp(statustext) {
runHook("disp", FBEFORE);
if (o3_allowmove == 0) {
runHook("placeLayer", FREPLACE);
(olNs6&&olShowId<0) ? olShowId=setTimeout("runHook('showObject', FREPLACE, over)", 1) : runHook("showObject", FREPLACE, over);
o3_allowmove = (o3_sticky || o3_followmouse==0) ? 0 : 1;
}
runHook("disp", FAFTER);
if (statustext != "") self.status = statustext;
}
// Creates the actual popup structure
function createPopup(lyrContent){
runHook("createPopup", FBEFORE);
if (o3_wrap) {
var wd,ww,theObj = (olNs4 ? over : over.style);
theObj.top = theObj.left = ((olIe4&&!olOp) ? 0 : -10000) + (!olNs4 ? 'px' : 0);
layerWrite(lyrContent);
wd = (olNs4 ? over.clip.width : over.offsetWidth);
if (wd > (ww=windowWidth())) {
lyrContent=lyrContent.replace(/\ /g, ' ');
o3_width=ww;
o3_wrap=0;
}
}
layerWrite(lyrContent);
// Have to set o3_width for placeLayer() routine if o3_wrap is turned on
if (o3_wrap) o3_width=(olNs4 ? over.clip.width : over.offsetWidth);
runHook("createPopup", FAFTER, lyrContent);
return true;
}
// Decides where we want the popup.
function placeLayer() {
var placeX, placeY, widthFix = 0;
// HORIZONTAL PLACEMENT, re-arranged to work in Safari
if (o3_frame.innerWidth) widthFix=18;
iwidth = windowWidth();
// Horizontal scroll offset
winoffset=(olIe4) ? eval('o3_frame.'+docRoot+'.scrollLeft') : o3_frame.pageXOffset;
placeX = runHook('horizontalPlacement',FCHAIN,iwidth,winoffset,widthFix);
// VERTICAL PLACEMENT, re-arranged to work in Safari
if (o3_frame.innerHeight) {
iheight=o3_frame.innerHeight;
} else if (eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientHeight=='number'")&&eval('o3_frame.'+docRoot+'.clientHeight')) {
iheight=eval('o3_frame.'+docRoot+'.clientHeight');
}
// Vertical scroll offset
scrolloffset=(olIe4) ? eval('o3_frame.'+docRoot+'.scrollTop') : o3_frame.pageYOffset;
placeY = runHook('verticalPlacement',FCHAIN,iheight,scrolloffset);
// Actually move the object.
repositionTo(over, placeX, placeY);
}
// Moves the layer
function olMouseMove(e) {
var e = (e) ? e : event;
if (e.pageX) {
o3_x = e.pageX;
o3_y = e.pageY;
} else if (e.clientX) {
o3_x = eval('e.clientX+o3_frame.'+docRoot+'.scrollLeft');
o3_y = eval('e.clientY+o3_frame.'+docRoot+'.scrollTop');
}
if (o3_allowmove == 1) runHook("placeLayer", FREPLACE);
// MouseOut handler
if (hoveringSwitch && !olNs4 && runHook("cursorOff", FREPLACE)) {
(olHideDelay ? hideDelay(olHideDelay) : cClick());
hoveringSwitch = !hoveringSwitch;
}
}
// Fake function for 3.0 users.
function no_overlib() { return ver3fix; }
// Capture the mouse and chain other scripts.
function olMouseCapture() {
capExtent = document;
var fN, str = '', l, k, f, wMv, sS, mseHandler = olMouseMove;
var re = /function[ ]*(\w*)\(/;
wMv = (!olIe4 && window.onmousemove);
if (document.onmousemove || wMv) {
if (wMv) capExtent = window;
applications/htmlroot/overlib.js view on Meta::CPAN
v="\'"+v+"\'";
pM[i]=v;
}
}
return pM.join();
}
// dummy function which will be overridden
function isExclusive(args) {
return false;
}
// Sets cellpadding style string value
function setCellPadStr(parameter) {
var Str='', j=0, ary = new Array(), top, bottom, left, right;
Str+='padding: ';
ary=parameter.replace(/\s+/g,'').split(',');
switch(ary.length) {
case 2:
top=bottom=ary[j];
left=right=ary[++j];
break;
case 3:
top=ary[j];
left=right=ary[++j];
bottom=ary[++j];
break;
case 4:
top=ary[j];
right=ary[++j];
bottom=ary[++j];
left=ary[++j];
break;
}
Str+= ((ary.length==1) ? ary[0] + 'px;' : top + 'px ' + right + 'px ' + bottom + 'px ' + left + 'px;');
return Str;
}
// function will delay close by time milliseconds
function hideDelay(time) {
if (time&&!o3_delay) {
if (o3_timerid > 0) clearTimeout(o3_timerid);
o3_timerid=setTimeout("cClick()",(o3_timeout=time));
}
}
// Was originally in the placeLayer() routine; separated out for future ease
function horizontalPlacement(browserWidth, horizontalScrollAmount, widthFix) {
var placeX, iwidth=browserWidth, winoffset=horizontalScrollAmount;
var parsedWidth = parseInt(o3_width);
if (o3_fixx > -1 || o3_relx != null) {
// Fixed position
placeX=(o3_relx != null ? ( o3_relx < 0 ? winoffset +o3_relx+ iwidth - parsedWidth - widthFix : 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-(parsedWidth/2);
if (placeX < winoffset) placeX = winoffset;
}
if (o3_hpos == RIGHT) { // Right
placeX = o3_x+o3_offsetx;
if ((placeX+parsedWidth) > (winoffset+iwidth - widthFix)) {
placeX = iwidth+winoffset - parsedWidth - widthFix;
if (placeX < 0) placeX = 0;
}
}
if (o3_hpos == LEFT) { // Left
placeX = o3_x-o3_offsetx-parsedWidth;
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;
}
}
return placeX;
}
// was originally in the placeLayer() routine; separated out for future ease
function verticalPlacement(browserHeight,verticalScrollAmount) {
var placeY, iheight=browserHeight, scrolloffset=verticalScrollAmount;
var parsedHeight=(o3_aboveheight ? parseInt(o3_aboveheight) : (olNs4 ? over.clip.height : over.offsetHeight));
if (o3_fixy > -1 || o3_rely != null) {
// Fixed position
placeY=(o3_rely != null ? (o3_rely < 0 ? scrolloffset+o3_rely+iheight - parsedHeight : scrolloffset+o3_rely) : o3_fixy);
} else {
// If VAUTO, decide what to use.
if (o3_vauto == 1) {
if ((o3_y - scrolloffset) > (iheight / 2) && o3_vpos == BELOW && (o3_y + parsedHeight + o3_offsety - (scrolloffset + iheight) > 0)) {
o3_vpos = ABOVE;
} else if (o3_vpos == ABOVE && (o3_y - (parsedHeight + o3_offsety) - scrolloffset < 0)) {
o3_vpos = BELOW;
}
}
// From mouse
if (o3_vpos == ABOVE) {
if (o3_aboveheight == 0) o3_aboveheight = parsedHeight;
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;
}
}
return placeY;
}
// checks positioning flags
function checkPositionFlags() {
if (olHautoFlag) olHautoFlag = o3_hauto=0;
if (olVautoFlag) olVautoFlag = o3_vauto=0;
return true;
}
// get Browser window width
function windowWidth() {
var w;
if (o3_frame.innerWidth) w=o3_frame.innerWidth;
else if (eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientWidth=='number'")&&eval('o3_frame.'+docRoot+'.clientWidth'))
w=eval('o3_frame.'+docRoot+'.clientWidth');
return w;
}
// create the div container for popup content if it doesn't exist
function createDivContainer(id,frm,zValue) {
id = (id || 'overDiv'), frm = (frm || o3_frame), zValue = (zValue || 1000);
var objRef, divContainer = layerReference(id);
if (divContainer == null) {
if (olNs4) {
divContainer = frm.document.layers[id] = new Layer(window.innerWidth, frm);
( run in 0.774 second using v1.01-cache-2.11-cpan-437f7b0c052 )