var Shadowbox = {}; Shadowbox.lib = function() { var styleCache = {}; var camelRe = /(-[a-z])/gi; var camelFn = function(m,a) { return a.charAt(1).toUpperCase(); }; var toCamel = function(style) { var camel; if ( ! (camel=styleCache[style]) ) { camel = styleCache[style] = style.replace(camelRe,camelFn); } return camel; }; var view = document.defaultView; var alphaRe = /alpha\([^\)]*\)/gi; var setOpacity = function(el,opacity) { var s = el.style; if ( window.ActiveXObject ) { s.zoom = 1; s.filter = (s.filter||'').replace(alphaRe,'') + (opacity == 1 ? '' : ' alpha(opacity=' + (opacity*100) + ')'); } else { s.opacity = opacity; } }; return { adapter:'standalone', getStyle:function() { return view&&view.getComputedStyle?function (el,style) { var v,cs,camel; if (style == 'float') style='cssFloat'; if ( v = el.style[style] ) return v; if ( cs = view.getComputedStyle(el,'') ) { return cs[toCamel(style)]; } return null; }: function (el,style) { var v,cs,camel; if ( style == 'opacity' ) { if ( typeof el.style.filter == 'string' ) { var m = el.style.filter.match(/alpha\(opacity=(.+)\)/i); if ( m ) { var fv = parseFloat(m[1]); if (!isNaN(fv)) return(fv?fv/100:0); } } return 1; } else if(style=='float') { style = 'styleFloat'; } var camel = toCamel(style); if ( v = el.style[camel] ) return v; if ( cs = el.currentStyle ) return cs[camel]; return null; }; }(), setStyle:function(el,style,value) { if ( typeof style == 'string' ) { var camel = toCamel(style); if ( camel == 'opacity' ) { setOpacity(el, value); } else { el.style[camel] = value; } } else { for (var s in style) { this.setStyle(el,s,style[s]); } } }, get:function(el) { return typeof el == 'string'?document.getElementById(el):el; }, remove:function(el) { el.parentNode.removeChild(el); }, getTarget:function(e) { var t=e.target?e.target:e.srcElement; return t.nodeType == 3 ? t.parentNode : t; }, getPageXY:function(e) { var x=e.pageX||(e.clientX+ (document.documentElement.scrollLeft||document.body.scrollLeft)); var y=e.pageY||(e.clientY+ (document.documentElement.scrollTop||document.body.scrollTop)); return[x,y]; }, preventDefault:function(e) { if ( e.preventDefault ) { e.preventDefault(); } else { e.returnValue = false; } }, keyCode:function(e) { return e.which?e.which:e.keyCode; }, addEvent:function(el,name,handler) { if(el.addEventListener) { el.addEventListener(name,handler,false); } else if(el.attachEvent) { el.attachEvent('on'+name,handler); } }, removeEvent:function(el,name,handler) { if (el.removeEventListener) { el.removeEventListener(name,handler,false); } else if(el.detachEvent) { el.detachEvent('on'+name,handler); } }, append:function(el,html) { if(el.insertAdjacentHTML) { el.insertAdjacentHTML('BeforeEnd',html); } else if(el.lastChild) { var range=el.ownerDocument.createRange(); range.setStartAfter(el.lastChild); var frag=range.createContextualFragment(html); el.appendChild(frag); } else { el.innerHTML=html; } } }; }();