var indicator_img_path = "vbox/indicator.gif"; var indicator_img_html = "\"Loading...\""; // don't remove the name var opacity_level = 8; // how transparent our overlay bg is var ibAttr = "rel"; // our attribute identifier for our vbox elements var imgPreloader = new Image(); // create an preloader object var ___smg_vBox_tmpID = 0; function init_vbox() { // quit if this function has already been called if (arguments.callee.done) return; // flag this function so we don't do the same thing twice arguments.callee.done = true; var elem_wrapper = "vbox"; createVbox(document.getElementsByTagName("body")[0]); //create our vbox // elements here start the look up from the start non tags //var docRoot = (document.all) ? document.all : document.getElementsByTagName("*"); // Or make sure we only check tags var docRoot = document.getElementsByTagName("a"); var e; for (var i = 0; i < docRoot.length - 1; i++) { e = docRoot[i]; if(e.getAttribute(ibAttr)) { var t = e.getAttribute(ibAttr); if ((t.indexOf("vbox") != -1) || t.toLowerCase() == "vbox") { // check if this element is an vbox element e.onclick = function() { // rather assign an onclick event var t = this.getAttribute(ibAttr); var params = parseQuery(t.substr(5,999)); var url = this.href; if(this.target != "") {url = this.target} var title = this.title; if(showVbox(url,title,params)) { showBG(); window.onscroll = maintPos; window.onresize = maintPos; } return false; }; } } } } function detectMacXFForIE6() { var userAgent = navigator.userAgent.toLowerCase(); //alert(userAgent); if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) { return true; } //if (userAgent.indexOf('msie 6') != -1 ) { // return true; //} } showBG = function() { var box_w = getElem('vbox_w'); var d = detectMacXFForIE6(); if (d) { //osx ff css opacity + flash wmode transparent doesn't work box_w.style.opacity = 1; box_w.style.filter = 'alpha(opacity=1)'; box_w.style.backgroundImage= "url(vbox/grey.png)"; box_w.style.backgroundRepeat="repeat"; } else { box_w.style.opacity = 0; box_w.style.filter = 'alpha(opacity=0)'; setBGOpacity = setOpacity; box_w.style.backgroundColor = "#000"; setOpacity('vbox_w',opacity_level); //for (var i=0;i<=opacity_level;i++) {setTimeout("setVboxOpacity('vbox_w',"+i+")",70*i);} // from quirksmode.org } box_w.style.display = ""; var pagesize = new getPageSize(); var scrollPos = new getScrollPos(); var ua = navigator.userAgent; if(ua.indexOf("MSIE ") != -1) {box_w.style.width = pagesize.width+'px';} /*else {box_w.style.width = pagesize.width-20+'px';}*/ // scrollbars removed! Hurray! box_w.style.height = pagesize.height+scrollPos.scrollY+'px'; } hideBG = function() { var box_w = getElem('vbox_w'); box_w.style.display = "none"; } var loadCancelled = false; showIndicator = function() { var vbox_p = getElem('vbox_progress'); vbox_p.style.display = ""; posToCenter(vbox_p); vbox_p.onclick = function() {hideVbox();hideIndicator();loadCancelled = true;} } hideIndicator = function() { var vbox_p = getElem('vbox_progress'); vbox_p.style.display = "none"; vbox_p.onclick = null; } createVbox = function(elem) { // a trick on just creating an vbox wrapper then doing an innerHTML on our root vbox element var strHTML = "
"; strHTML += "
"; strHTML += indicator_img_html; strHTML += "
"; strHTML += "
"; strHTML += "
"; strHTML += "
"; var docBody = document.getElementsByTagName("body")[0]; var vbox = document.createElement("div"); vbox.setAttribute("id","vbox"); vbox.style.display = ''; vbox.innerHTML = strHTML; elem.appendChild(vbox); } var vbox_w_height = 0; showVbox = function(url,title,params) { var vbox = getElem('vbox_wrapper'); var vbox_type = 0; // set title here var vbox_footer = getElem('vbox_footer'); if(title != "") {vbox_footer.innerHTML = title;} else {vbox_footer.innerHTML = " ";} // file checking code borrowed from thickbox var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.html|\.htm|\.php|\.cfm|\.asp|\.aspx|\.jsp|\.jst|\.rb|\.rhtml|\.txt/g; var urlType = url.match(urlString); if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif'){ vbox_type = 1; } else if(url.indexOf("#") != -1) { vbox_type = 2; } else if(urlType=='.htm'||urlType=='.html'||urlType=='.php'|| urlType=='.asp'||urlType=='.aspx'||urlType=='.jsp'|| urlType=='.jst'||urlType=='.rb'||urlType=='.txt'||urlType=='.rhtml'|| urlType=='.cfm') { vbox_type = 3; } else { // override our vbox type if forced param exist if(params['type']) {vbox_type = parseInt(params['type']);} else{hideVbox();return false;} } vbox_type = parseInt(vbox_type); switch(vbox_type) { case 1: showIndicator(); imgPreloader = new Image(); imgPreloader.onload = function(){ imgPreloader = resizeImageToScreen(imgPreloader); hideIndicator(); var strHTML = ""; if(loadCancelled == false) { // set width and height vbox.style.height = imgPreloader.height+'px'; vbox.style.width = imgPreloader.width+'px'; vbox.style.display = ""; vbox.style.visibility = "hidden"; posToCenter(vbox); vbox.style.visibility = "visible"; setVBoxContent(strHTML); } } loadCancelled = false; imgPreloader.src = url; break; case 2: var strHTML = ""; if(params['height']) {vbox.style.height = params['height']+'px';} else {vbox.style.height = '280px';} if(params['width']) {vbox.style.width = params['width']+'px';} else {vbox.style.width = '450px';} vbox.style.display = ""; vbox.style.visibility = "hidden"; posToCenter(vbox); vbox.style.visibility = "visible"; getElem('vbox_content').style.overflow = "auto"; var elemSrcId = url.substr(url.indexOf("#") + 1,1000); var elemSrc = getElem(elemSrcId); if(elemSrc) {strHTML = elemSrc.innerHTML;} setVBoxContent(strHTML); break; case 3: showIndicator(); var url2 = url+'?rnd='+Math.random(); http.open('get',url2,true); if(params['videoID']) ___smg_vBox_tmpID=params['videoID']; if(params['aspect']) ___smg_vBox_aspect=params['aspect']; else ___smg_vBox_aspect="43"; http.onreadystatechange = function() { if(http.readyState == 4){ hideIndicator(); if(params['height']) {vbox.style.height = params['height']+'px';} else {vbox.style.height = '330px';} if(params['width']) {vbox.style.width = params['width']+'px';} else {vbox.style.width = '530px';} vbox.style.display = ""; vbox.style.visibility = "hidden"; posToCenter(vbox); vbox.style.visibility = "visible"; getElem('vbox_content').style.overflow = "auto"; var response = http.responseText; setVBoxContent(response); eval(document.getElementById('js').innerHTML); //alert(document.getElementById('js').innerHTML); } } http.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); http.send(null); break; default: } vbox.style.opacity = 0; vbox.style.filter = 'alpha(opacity=0)'; var vbox_op_level = 10; setVboxOpacity = setOpacity; for (var i=0;i<=vbox_op_level;i++) {setTimeout("setVboxOpacity('vbox_wrapper',"+i+")",30*i);} if(vbox_type == 2 || vbox_type == 3) { vbox.onclick = null;getElem("vbox_close_a").onclick = function() {hideVbox();} } else {vbox.onclick = hideVbox;getElem("vbox_close_a").onclick = null;} return true; } setOpacity = function (elemid,value) { var e = getElem(elemid); e.style.opacity = value/10; e.style.filter = 'alpha(opacity=' + value*10 + ')'; } resizeImageToScreen = function(objImg) { var pagesize = new getPageSize(); var x = pagesize.width - 100; var y = pagesize.height - 100; if(objImg.width > x) { objImg.height = objImg.height * (x/objImg.width); objImg.width = x; if(objImg.height > y) { objImg.width = objImg.width * (y/objImg.height); objImg.height = y; } } else if(objImg.height > y) { objImg.width = objImg.width * (y/objImg.height); objImg.height = y; if(objImg.width > x) { objImg.height = objImg.height * (x/objImg.width); objImg.width = x; } } return objImg; } maintPos = function() { var vbox = getElem('vbox_wrapper'); var box_w = getElem('vbox_w'); var pagesize = new getPageSize(); var scrollPos = new getScrollPos(); var ua = navigator.userAgent; if(ua.indexOf("MSIE ") != -1) {box_w.style.width = pagesize.width+'px';} /*else {box_w.style.width = pagesize.width-20+'px';}*/ if(ua.indexOf("Opera/9") != -1) {box_w.style.height = document.body.scrollHeight+'px';} else {box_w.style.height = pagesize.height+scrollPos.scrollY+'px';} // alternative 1 //box_w.style.height = document.body.scrollHeight+50+'px'; posToCenter(vbox); } hideVbox = function() { hideBG(); var vbox = getElem('vbox_wrapper'); vbox.style.display = "none"; clearVboxContent(); window.onscroll = null; } posToCenter = function(elem) { var scrollPos = new getScrollPos(); var pageSize = new getPageSize(); var emSize = new getElementSize(elem); var x = Math.round(pageSize.width/2) - (emSize.width /2) + scrollPos.scrollX; var y = Math.round(pageSize.height/2) - (emSize.height /2) + scrollPos.scrollY; elem.style.left = x+'px'; elem.style.top = y+'px'; } getScrollPos = function() { var docElem = document.documentElement; this.scrollX = self.pageXOffset || (docElem&&docElem.scrollLeft) || document.body.scrollLeft; this.scrollY = self.pageYOffset || (docElem&&docElem.scrollTop) || document.body.scrollTop; } getPageSize = function() { var docElem = document.documentElement this.width = self.innerWidth || (docElem&&docElem.clientWidth) || document.body.clientWidth; this.height = self.innerHeight || (docElem&&docElem.clientHeight) || document.body.clientHeight; } getElementSize = function(elem) { this.width = elem.offsetWidth || elem.style.pixelWidth; this.height = elem.offsetHeight || elem.style.pixelHeight; } setVBoxContent = function(str) { clearVboxContent(); var e = getElem('vbox_content'); e.style.overflow = "auto"; //e.style.verticalAlign = "middle"; e.innerHTML = str; } clearVboxContent = function() { var e = getElem('vbox_content'); e.innerHTML = ""; } getElem = function(elemId) { return document.getElementById(elemId); } // parseQuery code borrowed from thickbox, Thanks Cody! parseQuery = function(query) { var Params = new Object (); if (!query) return Params; var Pairs = query.split(/[;&]/); for ( var i = 0; i < Pairs.length; i++ ) { var KeyVal = Pairs[i].split('='); if ( ! KeyVal || KeyVal.length != 2 ) continue; var key = unescape( KeyVal[0] ); var val = unescape( KeyVal[1] ); val = val.replace(/\+/g, ' '); Params[key] = val; } return Params; } // hide vbox once ESC key pressed function keyPressHandler(e) { var kC = (window.event) ? // MSIE or Firefox? event.keyCode : e.keyCode; var Esc = (window.event) ? 27 : e.DOM_VK_ESCAPE // MSIE : Firefox if(kC==Esc) //alert("Esc pressed") hideVbox() } document.onkeypress = keyPressHandler; /******************************************************** Make this IE7 Compatible ;) http://ajaxian.com/archives/ajax-on-ie-7-check-native-first *********************************************************/ createRequestObject = function() { var xmlhttp; /*@cc_on @if (@_jscript_version>= 5) try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (E) {xmlhttp = false;} } @else xmlhttp = false; @end @*/ if (!xmlhttp && typeof XMLHttpRequest != "undefined") { try {xmlhttp = new XMLHttpRequest();} catch (e) {xmlhttp = false;} } return xmlhttp; } var http = createRequestObject(); function addEvent(obj, evType, fn){ if (/WebKit/i.test(navigator.userAgent)) { // for Safari var _timer = setInterval(function() { if (/loaded|complete/.test(document.readyState)) { init_vbox(); // call the onload handler } }, 10); } else if (document.all){ // for IE /*@cc_on @*/ /*@if (@_win32) document.write("