//\////////////////////////////////////////////////////////////////////////////////// //\ 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. //\////////////////////////////////////////////////////////////////////////////////// //\ THIS IS A VERY MODIFIED VERSION. DO NOT EDIT OR PUBLISH. GET THE ORIGINAL! function noPopUp() { return ver3fix; } function showPopUp() { var args=arguments; var x = properties.x; var y = properties.y; properties = new PopUpProperties(args[POP_UP_PROPERTIES]); properties.x = x; properties.y = y; var imgId = args[POP_UP_IMG_ID]; var overridetext = args[POP_UP_TEXT]; if(overridetext != null && typeof overridetext != 'undefined' && overridetext.length > 0) { properties.text = overridetext; } var overridex = args[POP_UP_X]; var overridey = args[POP_UP_Y]; if(overridex != null && typeof overridex != 'undefined' && overridex > -100 && overridey != null && typeof overridey != 'undefined' && overridey > -100) { if(ns4) { img = document.images[imgId]; } else { img = document.getElementById(imgId); } if(img != null) { imgwidth = img.offsetWidth; imgheight = img.offsetHeight; imgx = getPageLeft(img); imgy = getPageTop(img); properties.fixx = overridex + imgx properties.fixy = overridey + imgy; properties.offsetx = 0; properties.offsety = 0; properties.allowMove = 1; } } var overrideurl = args[DD_URL]; var overridetarget = args[DD_TARGET]; if(overrideurl != null && typeof overrideurl != 'undefined' && overrideurl.length > 0) { properties.url = overrideurl; if(overridetarget != null && typeof overridetarget != 'undefined' && overridetarget.length > 0) { properties.target = overridetarget; } } properties.textSize-=3; var text = getFormattedText(); var overridewidth = getPixelWidth(text); if(properties.width > overridewidth) { properties.width = overridewidth; } var overrideheight = getPixelHeight(text); properties.height = overrideheight; if(properties.width > imgwidth) { properties.width = imgwidth properties.x = 0; } if(properties.height > imgheight) { properties.height = imgheight properties.y = 0; } if((ns4)||(ie4)||(ns6)) { oframe=ol_frame; if(ns4) { over=oframe.document.overDiv; } if(ie4) { over=oframe.overDiv.style; } if(ns6) { over=oframe.document.getElementById("overDiv"); } } if(!(navigator.platform.substr(0,3) == "Mac" && ie4)) { return overlib(); } } function getFormattedText() { var txt; if(ns4) { txt=""+properties.text+""; if(properties.textWeight=="bold") txt = "" + txt + ""; if(properties.textStyle=="italic") txt = "" + txt + ""; } else { txt=""+properties.text+""; } return txt; } function getPixelWidth(sStr) { var obj; var w; if(ns4) { obj=document["hdiv"]; obj.document.open(); obj.document.write(sStr); obj.document.close(); w = obj.document.width + 6; } else if(ie4) { obj=oframe.hdiv; obj.innerHTML = sStr; w = obj.offsetWidth + 6; } else if(ns6) { obj=oframe.document.getElementById("hdiv"); obj.innerHTML = sStr; w = obj.offsetWidth + 6; } return w; } function getPixelHeight(sStr) { var obj; var h; if(ns4) { obj=document["hdiv"]; obj.document.open(); obj.document.write(sStr); obj.document.close(); h = obj.document.height; } else if(ie4) { obj=oframe.hdiv; obj.innerHTML = sStr; h = obj.offsetHeight; } else if(ns6) { obj=oframe.document.getElementById("hdiv"); obj.innerHTML = sStr; h = obj.offsetHeight; } return h; } function hidePopUp() { if((ns4)||(ie4)||(ns6)){ properties.allowMove=0; if(over !=null)hideObject(over); } return true; } function getPageLeft(el) { if(ns4) { return el.x; } var x; x = 0; while(el.offsetParent!=null) { x+=el.offsetLeft; el=el.offsetParent; } x+=el.offsetLeft; return x; } function getPageTop(el) { if(ns4) { return el.y; } var y; y=0; while(el.offsetParent!=null) { y+=el.offsetTop; el=el.offsetParent; } y+=el.offsetTop; return y; } function overlib() { var layerhtml; layerhtml=getSimpleContext(); //newwindow = window.open(); //newwindow.document.write("" + layerhtml + ""); layerWrite(layerhtml); properties.allowMove=0; display(); return true; } function getSimpleContext() { var height = ""; var bordercolor = ""; var fillcolor = ""; if(properties.transBG && properties.border > 0) { bordercolor="style=\"border-width:thin;border-style:solid;border-color:"+properties.borderColor+"\";"; } else { if(properties.borderColor!="") { bordercolor="BGCOLOR=\""+properties.borderColor+"\""; } if(properties.fillColor!="") { fillcolor="BGCOLOR=\""+properties.fillColor+"\""; } if(properties.transBG) { bordercolor=""; fillcolor=""; } } if(properties.height > 0) { height="HEIGHT=" + properties.height; } var extra = "style=\"cursor:pointer;cursor:hand\""; if(properties.url != null) { self.status = "LINK: " + properties.url; extra+="onclick=\"goTo('"+properties.url+"','"; if(properties.target != null) { extra+=properties.target+"');\""; } else { extra+="self');\""; } } if(properties.padxl != 0 || properties.padxr != 0 || properties.padyt != 0 || properties.padyb != 0) { txt="
"; txt+=getFormattedText()+"
"; } else { txt="
"+getFormattedText()+"
"; } return txt; } function goTo(url, target) { var loop = true; var f = findFrame(target); if(f) { f.location = url; } else { target = target.substring(1); f = findFrame(target); if(f) { f.location = url; } else { window.open(url); } } } function findFrame(what) { var frame = self; var oldframe = null; while(frame != null && frame != oldframe) { oldframe = frame; if(frame.frames) { if(frame.frames[what]) { return frame.frames[what]; } } frame = frame.parent; } return null; } function display() { if((ns4)||(ie4)||(ns6)) { if(properties.allowMove==0) { placeLayer(); showObject(over); properties.allowMove=1; } } } function placeLayer() { var placeX, placeY, winoffset, iwidth; if(properties.fixx > -100) { properties.x=properties.fixx; } else { winoffset=(ie4)? oframe.document.body.scrollLeft : oframe.pageXOffset; if(ie4)iwidth=oframe.document.body.clientWidth; if(ns4)iwidth=oframe.innerWidth;// was screwed in mozilla, fixed now? if(ns6)iwidth=oframe.outerWidth; if(properties.hauto == 1) { if((properties.x - winoffset) > ((eval(iwidth))/ 2)) { properties.hpos=LEFT; } else { properties.hpos=RIGHT; } } } if(properties.hpos==CENTER) // Center { placeX = properties.x + properties.offsetx - (properties.width/2); } else if(properties.hpos==RIGHT) // Right { placeX=properties.x+properties.offsetx; if((eval(placeX)+eval(properties.width))>(winoffset + iwidth)) { placeX=iwidth+winoffset-properties.width; if(placeX < 0)placeX=0; } } else if(properties.hpos==LEFT) // Left { placeX=properties.x-properties.offsetx-properties.width; if(placeX < winoffset)placeX=winoffset; } var scrolloffset=0; if(properties.fixy > -100) { properties.y=properties.fixy; } else { scrolloffset=(ie4)? oframe.document.body.scrollTop : oframe.pageYOffset; if(properties.vauto==1) { if(ie4)iheight=oframe.document.body.clientHeight; if(ns4)iheight=oframe.innerHeight; if(ns6)iheight=oframe.outerHeight; iheight=(eval(iheight))/ 2; if((properties.y - scrolloffset)> iheight) { properties.vpos=ABOVE; } else { properties.vpos=BELOW; } } } if(properties.vpos==ABOVE) { if(properties.aboveheight==0) { var divref=(ie4)? oframe.document.all['overDiv'] : over; properties.aboveheight=(ns4)? divref.clip.height : divref.offsetHeight; } placeY=properties.y-(properties.aboveheight+properties.offsety); if(placeY < scrolloffset)placeY=scrolloffset; } else if(properties.vpos==BELOW) { placeY=properties.y+properties.offsety; } else if(properties.vpos==CENTER) { placeY=properties.y+properties.offsety-(properties.height/2); } if(img != null) { var element; //alert(imgwidth); //alert(imgheight); if(placeX < imgx) { placeX = imgx; } if(placeY < imgy) { placeY = imgy; } if(placeX + properties.width > imgx + imgwidth) { placeX = imgx + imgwidth - properties.width; } if(placeY + properties.height + 6 > imgy + imgheight) { placeY = imgy + imgheight - properties.height - 6; } } repositionTo(over, placeX, placeY); } function mouseMove(e) { if((ns4)||(ns6)){properties.x=e.pageX;properties.y=e.pageY;} if(ie4){properties.x=event.x;properties.y=event.y;} if(ie5){properties.x=event.x+oframe.document.body.scrollLeft;properties.y=event.y+oframe.document.body.scrollTop;} if(img != null) { var element; if(properties.x < imgx) { hidePopUp(); } else if(properties.x > imgx + imgwidth) { hidePopUp(); } else if(properties.y < imgy) { hidePopUp(); } else if(properties.y > imgy + imgheight) { hidePopUp(); } } if(properties.allowMove==1) { placeLayer(); } } 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; } function layerWrite(txt) { txt +="\n"; if(ns4) { var lyr=oframe.document.overDiv.document; lyr.write(txt); lyr.close(); } else if(ie4) { oframe.document.all["overDiv"].innerHTML=txt; } else if(ns6) { range=oframe.document.createRange(); range.setStartBefore(over); domfrag=range.createContextualFragment(txt); while(over.hasChildNodes()) { over.removeChild(over.lastChild); } over.appendChild(domfrag); } } function showObject(obj) { if(ns4)obj.visibility="show"; else if(ie4)obj.visibility="visible"; else if(ns6)obj.style.visibility="visible"; } function hideObject(obj) { if(ns4)obj.visibility="hide"; else if(ie4)obj.visibility="hidden"; else if(ns6)obj.style.visibility="hidden"; self.status=""; } 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"; } } function PopUpProperties(props) { if(props==null || props=="") { this.popUpType=1; this.text="No Text Specified"; this.fillColor="#CCCCFF"; this.borderColor="Black"; this.textColor="Black"; this.offsetx=2; this.offsety=2; this.hpos=CENTER; this.width=9999; this.border=1; this.height=0; this.fixx=-100; this.fixy=-100; this.padxl=0; this.padxr=0; this.padyt=0; this.padyb=0; this.vpos=ABOVE; this.aboveheight=0; this.textFont=""; this.textBackup=",Helvetica,Arial"; this.textSize="10"; this.textSizeUnit="pt"; this.textWeight=""; this.textStyle=""; this.allowMove=0; this.hauto=0; this.vauto=0; this.x=0; this.y=0; this.transBG=0; this.justification="LEFT"; this.url=null; this.target=null; } else { this.popUpType=props.popUpType; this.text=props.text; this.fillColor=props.fillColor; this.borderColor=props.borderColor; this.textColor=props.textColor; this.offsetx=props.offsetx; this.offsety=props.offsety; this.hpos=props.hpos; this.width=props.width; this.border=props.border; this.height=props.height; this.fixx=props.fixx; this.fixy=props.fixy; this.padxl=props.padxl; this.padxr=props.padxr; this.padyt=props.padyt; this.padyb=props.padyb; this.vpos=props.vpos; this.aboveheight=props.aboveheight; this.textFont=props.textFont; this.textBackup=props.textBackup; this.textSize=props.textSize; this.textSizeUnit=props.textSizeUnit; this.textWeight=props.textWeight; this.textStyle=props.textStyle; this.allowMove=props.allowMove; this.hauto=props.hauto; this.vauto=props.vauto; this.x=props.x; this.y=props.y; this.transBG=props.transBG; this.justification=props.justification; this.url=props.url; this.target=props.target; } return this; } var jsPopUp = 1; var properties = new PopUpProperties(); var POP_UP_PROPERTIES=0; var POP_UP_IMG_ID=1; var POP_UP_TEXT=2; var POP_UP_X=3; var POP_UP_Y=4; var DD_URL=5; var DD_TARGET=6; var POP_UP=1; var DATA_LABEL=2; var LEFT=1; var RIGHT=2; var CENTER=3; var ABOVE=1; var BELOW=2; var CENTER=3; if(typeof ol_frame=='undefined'){var ol_frame=self;} var img = null; var imgx = null; var imgy = null; var imgwidth = null; var imgheight = null; var oframe=ol_frame; var over=null; var ns4=(document.layers)? true:false; var ns6=(document.getElementById)? true:false; var ie4=(document.all)? true:false; var ie5=false; if(ie4) { if((navigator.userAgent.indexOf('MSIE 5')> 0)||(navigator.userAgent.indexOf('MSIE 6')> 0)) { ie5=true; } if(ns6) { ns6=false; } } if((ns4)||(ie4)||(ns6)) { document.onmousemove=mouseMove if(ns4) { document.captureEvents(Event.MOUSEMOVE) } } else { showPopUp=noPopUp; hidePopUp=noPopUp; ver3fix=true; } if((ns4)||(ie4)||(ns6)) { if(typeof document.body.overDiv=='undefined') { var d = document.createElement('div'); d.id = 'overDiv'; d.name = 'overDiv'; d.style.position='absolute'; d.style.visibility = 'hidden'; d.style.zIndex = 1000; document.body.insertBefore(d, document.body.childNodes[0]); } if(typeof document.body.hdiv=='undefined') { d = document.createElement('div'); d.id = 'hdiv'; d.name = 'hdiv'; d.style.position='absolute'; d.style.visibility = 'hidden'; d.style.zIndex = 1000; document.body.insertBefore(d, document.body.childNodes[0]); } }