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("