}\r
}\r
\r
-function WSR_getElementsByClassName(_2,_3,_4){\r
+function WSR_getElementsByClassName(oElm, strTagName, oClassNames){\r
+ var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);\r
+ var arrReturnElements = new Array();\r
+ var arrRegExpClassNames = new Array();\r
+ if(typeof oClassNames == "object"){\r
+ for(var i=0; i<oClassNames.length; i++){\r
+ arrRegExpClassNames.push(new RegExp("(^|\s)" + oClassNames[i].replace(/-/g, "\-") + "(\s|$)"));\r
+ }\r
+ }\r
+ else{\r
+ arrRegExpClassNames.push(new RegExp("(^|\s)" + oClassNames.replace(/-/g, "\-") + "(\s|$)"));\r
+ }\r
+ var oElement;\r
+ var bMatchesAll;\r
+ for(var j=0; j<arrElements.length; j++){\r
+ oElement = arrElements[j];\r
+ bMatchesAll = true;\r
+ for(var k=0; k<arrRegExpClassNames.length; k++){\r
+ if(!arrRegExpClassNames[k].test(oElement.className)){\r
+ bMatchesAll = false;\r
+ break;\r
+ }\r
+ }\r
+ if(bMatchesAll){\r
+ arrReturnElements.push(oElement);\r
+ }\r
+ }\r
+ return (arrReturnElements)\r
+}\r
+/*function WSR_getElementsByClassName(_2,_3,_4){\r
\r
var _5=(_3=="*"&&_2.all)?_2.all:_2.getElementsByTagName(_3);\r
+ window.alert(_5[0]);\r
var _6=new Array();\r
_4=_4.replace(/\-/g,"\\-");\r
var _7=new RegExp("(^|\\s)"+_4+"(\\s|$)");\r
}\r
}\r
return (_6);\r
-}\r
+}*/\r
\r
function bindBubbles(e){\r
- lbActions=WSR_getElementsByClassName(document,"a","bubble");\r
+ lbActions=WSR_getElementsByClassName(document,"img","thumb");\r
for(i=0;i<lbActions.length;i++){\r
- if(window.addEventListener){\r
+ if(window.addEventListener){ // Mozilla, Firefox\r
lbActions[i].addEventListener("mouseover",attachBubble,false);\r
lbActions[i].addEventListener("mouseout",detachBubble,false);\r
- }else{\r
+ lbActions[i].addEventListener("click",detachBubble,false);\r
+ }else if (window.attachEvent) { // IE\r
lbActions[i].attachEvent("onmouseover",attachBubble);\r
lbActions[i].attachEvent("onmouseout",detachBubble);\r
- }\r
+ lbActions[i].attachEvent("onclick",detachBubble);\r
+ } else {\r
+ // it seems this browser doesn't support any eventhandling\r
+ } \r
}\r
}\r
\r
function attachBubble(_b){\r
var _c;\r
- if(_b["srcElement"]){\r
+ if(_b["srcElement"]){ // IE\r
_c=_b["srcElement"];\r
- }else{\r
+ }else{ // Mozilla, Firefox\r
_c=_b["target"];\r
}\r
if (_c.href == undefined){\r
}\r
\r
var _d=_c.href;\r
+\r
var _10=document.createElement("div");\r
document.getElementsByTagName("body")[0].appendChild(_10);\r
_10.className="bubble";\r
\r
- _iH = window.innerHeight;\r
- var _e=findPos(_c)[0]+5;\r
+ if(BrowserDetect.browser != 'Explorer') {\r
+\r
+ var _e=findPos(_c)[0]+5;\r
+ var cur_height = findPos(_c)[1]-get_scroll_position() + 283;\r
\r
- // should the bubble be displayed above or below the object\r
- if(findPos(_c)[1] + 240 >= _iH) {\r
- var _f=findPos(_c)[1]-283;\r
- var _mT=16;\r
- var _mL=12;\r
- bubbleImage = bubbleImageUp;\r
+ // should the bubble be displayed above or below the object\r
+ if(cur_height >= get_page_height()) {\r
+ var _f=findPos(_c)[1]-363;\r
+ bubbleImage = bubbleImageUp;\r
+ }\r
+ else {\r
+ var _f=findPos(_c)[1]+17;\r
+ bubbleImage = bubbleImageDown;\r
+ }\r
}\r
else {\r
- var _f=findPos(_c)[1]+17;\r
- var _mT=27;\r
- var _mL=12;\r
- bubbleImage = bubbleImageDown;\r
+ var _e=findPos(_c)[0]+5;\r
+ var _f=findPos(_c)[1]+129;\r
+ bubbleImage = bubbleImageDown;\r
}\r
-\r
if (BrowserDetect.browser == 'Explorer') {\r
- _10.style.width="240px";\r
+ _10.style.width="275px";\r
+ _10.style.height="275px";\r
_10.style.position="absolute";\r
_10.style.top=_f;\r
_10.style.zIndex=99999;\r
_10.style.left=_e;\r
_10.style.textAlign="left";\r
- _10.style.height="190px";\r
- _10.style.paddingTop="0";\r
- _10.style.paddingLeft="0";\r
- _10.style.paddingBottom="0";\r
- _10.style.paddingRight="0";\r
- _10.style.marginTop="0";\r
- _10.style.marginLeft="0";\r
- _10.style.marginBottom="0";\r
- _10.style.marginRight="0";\r
_10.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bubbleImage + "',sizingMethod='image')";\r
+ } else if (BrowserDetect.browser == 'Safari' || BrowserDetect.browser == 'Konqueror' ) {\r
+ _10.setAttribute("style","text-align: center; z-index: 99999; position: absolute; top: "+ _f +"px ; left: "+ _e +"px ; background: url("+ bubbleImage +") no-repeat; width: 275px; height: 275px; padding: 0; margin: 0;");\r
} else {\r
- _10.setAttribute("style","text-align: center; z-index: 99999; position: absolute; top: "+_f+"px ; left: "+_e+"px ; background: url("+ bubbleImage +") no-repeat; width: 240px; height: 190px; padding: 0; margin: 0;");\r
- }\r
-\r
- if (BrowserDetect.browser == 'Safari' || BrowserDetect.browser == 'Konqueror' ) {\r
-\r
- var _height = _f;\r
- \r
- _10.setAttribute("style","text-align: center; z-index: 99999; position: absolute; top: "+ _height +"px ; left: "+_e+"px ; background: url("+ bubbleImage +") no-repeat; width: 240px; height: 190px; padding: 0; margin: 0;");\r
- \r
+ _10.setAttribute("style","text-align: center; z-index: 99999; position: absolute; top: "+_f+"px ; left: "+ _e +"px ; background: url("+ bubbleImage +") no-repeat; width: 275px; height: 275px; padding: 0; margin: 0;");\r
}\r
\r
- var img=document.createElement("img");\r
- _10.appendChild(img);\r
+ if(cur_height >= get_page_height()) \r
+ showBubbleDetails(_10, _c.id, 'up');\r
+ else\r
+ showBubbleDetails(_10, _c.id, 'down');\r
\r
- if (BrowserDetect.browser == 'Explorer') {\r
- img.style.paddingTop="0";\r
- img.style.paddingLeft="0";\r
- img.style.paddingBottom="0";\r
- img.style.paddingRight="0";\r
- img.style.margin="auto";\r
- img.style.marginTop=_mT;\r
- img.style.marginLeft=_mL;\r
- img.style.marginBottom="0";\r
- img.style.marginRight="0";\r
- img.style.borderTop="0";\r
- img.style.borderLeft="0";\r
- img.style.borderBottom="0";\r
- img.style.borderRight="0";\r
- } else {\r
- img.setAttribute("style","padding-top: 0; padding-left: 0; padding-right: 0; padding-bottom: 0; margin-top: " + _mT +"px; margin-left: " + _mL +"px; margin-bottom: 0; margin-right: 0; border: 0");\r
- }\r
- img.setAttribute("src","phpfspot_img.php?idx=" + _c.id + "&width=200");\r
- img.setAttribute("width",202);\r
- img.setAttribute("height",152);\r
- img.setAttribute("alt","Snapshot");\r
}\r
\r
function detachBubble(_12){\r
}\r
}\r
\r
-/*if(window.addEventListener){\r
- addEventListener("load",bindBubbles,false);\r
-}else{\r
- attachEvent("onload",bindBubbles);\r
-}*/\r
-\r
function findPos(obj){\r
var _14=curtop=0;\r
if(obj.offsetParent){\r
\r
};\r
\r
-function var_dump(obj) {\r
- if(typeof obj == "object") {\r
- return "Type: "+typeof(obj)+((obj.constructor) ? "\nConstructor: "+obj.constructor : "")+"\nValue: " + obj;\r
- } else {\r
- return "Type: "+typeof(obj)+"\nValue: "+obj;\r
+function var_dump(arr,level) {\r
+ var dumped_text = "";\r
+ if(!level) level = 0;\r
+ \r
+ //The padding given at the beginning of the line.\r
+ var level_padding = "";\r
+ for(var j=0;j<level+1;j++) level_padding += " ";\r
+ \r
+ if(typeof(arr) == 'object') { //Array/Hashes/Objects \r
+ for(var item in arr) {\r
+ var value = arr[item];\r
+ \r
+ if(typeof(value) == 'object') { //If it is an array,\r
+ dumped_text += level_padding + "'" + item + "' ...\n";\r
+ dumped_text += dump(value,level+1);\r
+ } else {\r
+ dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";\r
+ }\r
+ }\r
+ } else { //Stings/Chars/Numbers etc.\r
+ dumped_text = "===>"+arr+"<===("+typeof(arr)+")";\r
}\r
+ return dumped_text;\r
+\r
}//end function var_dump\r
\r
+function get_page_height()\r
+{\r
+ var myHeight = 0;\r
+ if( typeof( window.innerHeight ) == 'number' ) {\r
+ //Non-IE\r
+ myHeight = window.innerHeight;\r
+ } else if( document.documentElement && document.documentElement.clientHeight ) {\r
+ //IE 6+ in 'standards compliant mode'\r
+ myHeight = document.documentElement.clientHeight;\r
+ } else if( document.body && document.body.clientHeight ) {\r
+ //IE 4 compatible\r
+ myHeight = document.body.clientHeight;\r
+ }\r
+\r
+ return myHeight;\r
+}\r
+\r
+function get_scroll_position()\r
+{\r
+ if (typeof window.pageYOffset != 'undefined') {\r
+ return window.pageYOffset;\r
+ }\r
+ else {\r
+ if (typeof document.compatMode != 'undefined' &&\r
+ document.compatMode != 'BackCompat' &&\r
+ typeof window.scrollTop != 'undefined')\r
+ return window.scrollTop;\r
+ else {\r
+ if(typeof document.documentElement.scrollTop != 'undefined')\r
+ return document.documentElement.scrollTop;\r
+ else {\r
+ if (typeof document.body.scrollTop != 'undefined')\r
+ return document.body.scrollTop;\r
+ }\r
+ }\r
+ }\r
+\r
+ return 0;\r
+\r
+}\r
\r
BrowserDetect.init();\r