/*
* My Box script © 2007 John Davenport Scheuer
* A kinder, gentler, yet versatile 'Box' script
* This notice must remain for legal use
*/

if (!document.createElement||(!window.addEventListener&&!window.attachEvent))
var mybox = {show:function(){return true;}};
else {
document.write('<style type="text/css"> #boxcontent { position:absolute;top:-80000px;left:-80000px;visibility:hidden; } <\/style>');
var mybox = {
loading_image:'css/loading.gif', //define path to loading image for the purpose of preloading it
ie6ha:0, content:[], http_request:null, reged_ids:[],
loadingtext:document.createTextNode('Loading . . .'),
loadingt:document.createElement('div'),
loading:document.createElement('div'),
olay:document.createElement('div'),
box:document.createElement('div'),
kid1:document.createElement('div'),
close:document.createElement('div'),
link:document.createElement('a'),
text:document.createTextNode('CLOSE'),
x:document.createElement('span'),
xtext:document.createTextNode('\xa0x'),
ie_selects:function(state){
for (var i = 0, s=document.getElementsByTagName('select'); i < s.length; i++)
s[i].style.visibility=state? state : '';
},
reg_id:function(obj){
var n;
return obj.id || (obj.id=mybox.reged_ids[n=mybox.reged_ids.length]='my$box_'+n);
},
capit:function(t,c){
var m=mybox, cb=c&&c.tagName.toLowerCase()=='img';
m.cap=document.createElement('div');
m.cap.appendChild(document.createTextNode(t));
if(m.ie6ha&&c&&!cb)
m.cap.style.width=Math.max(250, c.offsetWidth)+'px';
else if(c&&!m.ie6ha||cb)
m.cap.style.width=c.offsetWidth+'px';
m.close.id='cap';
m.box.className='cap '+m.box.className;
m.close.insertBefore(m.cap,m.close.firstChild);
},
set_cook:function(d){
if(d){var t=new Date(); t.setTime(t.getTime()+d*86400000)};
var p=mybox.allpages?'; path=/':'', e=d?'; expires='+t.toGMTString():'';
document.cookie=(p?'mybox_$all_$cookie_1':window.location.pathname)+'='+(d&&d==-1?'': '1')+e+p;
},
read_cook:function(){
var c, i=0, n=(mybox.allpages?'mybox_$all_$cookie_1':window.location.pathname)+'=', a=document.cookie.split(';');
for(i ;i < a.length;i++){c=a[i];
while (c.charAt(0)==' ') c=c.substring(1,c.length);
if (c.indexOf(n)==0) return c.substring(n.length,c.length);}
return null;
},
begin:function(){
var m=mybox, d=document.body;
m.loadingt.appendChild(m.loadingtext);
m.loading.appendChild(m.loadingt);
m.loading.id='loading';
m.x.appendChild(m.xtext);
m.link.appendChild(m.text);
m.link.appendChild(m.x);
m.link.href='javascript:close();';
if(window.opera||/Apple/.test(navigator.vendor||typeof document.documentElement.style.KhtmlOpacity=='string'))
m.link.style.fontWeight='normal';
m.link.title="Close Box";
m.ad_event(m.link, 'click', m.hide);
m.close.className='close';
m.close.appendChild(m.link);
m.olay.id='theolay';
m.ad_event(m.olay, 'click', m.hide);
m.box.id='thebox';
m.kid1.className='id';
m.box.appendChild(m.kid1);
m.box.appendChild(m.close);
d.insertBefore(m.box, d.firstChild);
d.insertBefore(m.loading, d.firstChild);
d.insertBefore(m.olay, d.firstChild);
if(!document.all&&!/Apple/.test(navigator.vendor)&&window.removeEventListener){
m.tframe=document.createElement('iframe');
m.tframe.style.position='absolute';
m.tframe.style.top='-1000px';
m.tframe.style.left='-1000px';
m.tframe.style.visibility='hidden';
m.tframe.name='moz_img_kludge';
d.appendChild(m.tframe);
}
m.init();
},
init:function(){
var m=mybox, i=j=0, thelinks=document.links, re=new RegExp('^(img|iframe|ajax|id)$'),
lre=new RegExp('\\bloadit\\b'), rel, rev, ti, ref, lid, mid, c;
for (i; i < thelinks.length; i++){
if(re.test(rel=thelinks[i].rel)&&(!thelinks[i].id||!m[thelinks[i].id+'boxnum'])){
lid=m.reg_id(thelinks[i]), ti=thelinks[i].title, rev=thelinks[i].rev;
if (rel=='id'){
m.content[j]=document.getElementById(rev).parentNode.removeChild(document.getElementById(rev));
m[rev+'cap']=ti||'';
}
else {
ref=thelinks[i].href;
if(document.images&&rel=='img'){
m.content[j]=document.createElement('div')
mid=m.reg_id(m.content[j]);
m[mid+'im']=document.createElement('img');
m[mid+'im'].className='boximage';
m.ad_event(m[mid+'im'], 'load', m.img_load);
m[mid+'savedsrc']=ref;
m[mid+'im'].alt=rev||'';
m[mid+'im'].title=ti||'';
m[mid+'im'].style.display='block';
m.content[j].appendChild(m[mid+'im']);
}
else if (rel=='iframe'){
m.content[j]=document.createElement('div');
mid=m.reg_id(m.content[j]);
m[mid+'ifm']=document.createElement('iframe');
m[mid+'ifm'].src=m.ie6ha? 'about:blank' : ref;
if(rev)
for (var k = 0, a=rev.split('::'); k < a.length; k++)
m[mid+'ifm'].setAttribute(a[k++], a[k], 0);
m.ad_event(m[mid+'ifm'], 'load', m.ifm_load);
m[mid+'savedsrc']=ref;
m.content[j].appendChild(m[mid+'ifm']);
m[mid+'cap']=ti||'';
}
else
m.content[j]=[ref, ti||''];
}
if(lre.test(c=thelinks[i].className)){
m.loadit=m.loadit||typeof m.loadit=='number'? m.loadit : j;
var z=0;
for (z,c=c.split(' '); z < c.length; z++){
m.days=typeof m.days=='number'? m.days : /days-{0,1}\d+/.test(c[z])? parseInt(c[z].replace(/days/,'')) : '';
m.allpages=typeof m.allpages=='number'? m.allpages : /allpages/.test(c[z])? 1 : '';
}
}
m[lid+'boxnum']=j++;
m.ad_event(thelinks[i], 'click', m.a_init);
}
}
if (typeof m.loadit!='undefined'&&(m.days==-1||!m.read_cook()||typeof mybox.days!='number')){
setTimeout(function(){var l,c;(l=m.loadit)&&l[0]? m.show.apply(null, l) : (c=m.content[l])&&c[0]? m.show.apply(null, c) : m.show(l)},100);
if (m.days==-1||typeof m.days=='number'&&!m.read_cook())
m.set_cook(m.days);
}
},
img_load:function(){mybox.show(mybox.n, 1)},
ifm_load:function(){var l=mybox.loading.style;l.zIndex='';l.display='none';},
a_init:function(e){
if (e&&e.preventDefault)
e.preventDefault();
return mybox.show(mybox[this.id+'boxnum']);
},
hide:function(e){
if(e&&e.preventDefault)
e.preventDefault();
var s='style',d='display',w='width',h='height',m=mybox;
m.http_request=null;
if(m.cap&&m.cap.parentNode==m.close)
m.close.removeChild(m.cap);
m.cap=null;
document.body[s][h]=document.body[s][w]='';
m.kid1.innerHTML='';
if(m[m.box.firstChild.id+'ifm']){
try{
window.frames[0].location.replace('about:blank');
}catch(e){window.frames[0].location.href = 'about:blank';}
}
if(m.box.firstChild!=m.kid1)
m.box.replaceChild(m.kid1,m.box.firstChild);
m.loading[s][d]=m.olay[s][d]=m.box[s][d]='none';
m.loading[s].zIndex=m.close[s][w]=m.close.id=m.olay[s][h]=m.olay[s][w]=m.box[s].top=m.box[s].left='';
m.box[s].visibility='hidden';
if(m.ie6ha)
m.ie_selects();
return false;
},
show:function(n){
var m=mybox, mid;
if(!arguments[1]||typeof arguments[1]=='string'||m.content[n][0])
m.hide();
if(m.cap&&m.cap.parentNode==m.close)
m.close.removeChild(m.cap);
m.cap=null;
m.box.className='text';
if(m.ie6ha)
m.box.style.borderBottomWidth='',m.ie_selects('hidden');
m.loading.style.display=m.olay.style.display=m.box.style.display='block';
m.boxLoc(m.loading);
if(typeof n!='number'||(mid=m.content[n][0]))
return m.makeRequest.apply(this, mid? m.content[n]:arguments);
if(!m.content[n]||!m.content[n].tagName)
return m.hide();
m.box.replaceChild(m.content[n],m.box.firstChild);
mid=m.content[n].id;
if(m[mid+'im']){
m.n=n;
m.box.className='';
if(!m[mid+'im'].src){
m.box.style.visibility='';
m.box.style.left=m.box.style.top='-2000px';
m[mid+'im'].src=m[mid+'savedsrc'];
return false;
}
if(m.tframe){
m[mid+'im'].removeEventListener('load', m.img_load, false);
window.frames['moz_img_kludge'].location.replace('about:blank');
}
if(m[mid+'im'].alt)
m.capit(m[mid+'im'].alt, m[mid+'im']);
}
if (m[mid+'ifm']){
m.loading.style.zIndex=20000;
m.box.className='plain';
window.frames[0].location.replace(m[mid+'savedsrc']);
}
if (m[mid+'cap'])
m.capit(m[mid+'cap'], m.content[n]);
m.box.style.visibility='';
m.close.style.width='';
m.boxLoc(m.box);
if (!m[mid+'ifm'])
m.loading.style.display='none';
return false;
},
iedb:function(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
},
iegetWidth:function(){
var m=mybox;
if(!m.ie6ha)
m.ie6ha=function(){return Math.max(m.iedb().offsetHeight, m.iedb().scrollHeight)-m.iedb().clientHeight>4? 0 : 4;};
return '';
},
boxLoc:function(obj){
var m=mybox, w=window, ow='offsetWidth', oh='offsetHeight', sw='scrollWidth', sh='scrollHeight', cw='clientWidth', iw='innerWidth';
if(obj==m.loading)
m.olay.style.height=m.olay.style.width='';
if(obj==m.box)
m.box.style.top=m.box.style.left='';
m.olay.style.height=Math.max(m.iedb()[oh], m.iedb()[sh])-(m.ie6ha? m.ie6ha() : 0)+'px';
m.olay.style.width=m.ie6ha?m.iedb()[sw]:Math.max(m.iedb()[ow], m.iedb()[sw])+'px';
var portH=w.innerHeight || m.iedb().clientHeight;
var portW=w[iw]&&m.iedb()[cw]? Math.min(m.iedb()[cw],w[iw]) : w[iw]? w[iw] : m.iedb()[cw];
var tS=self.pageYOffset || m.iedb().scrollTop || 0;
obj.style.top=(obj==m.loading||(obj[oh]<portH&&(!obj.firstChild||obj.firstChild[oh]<portH))? portH/2-obj[oh]/2 + tS : tS + 20)+'px';
tS=self.pageXOffset || m.iedb().scrollLeft || 0;
obj.style.left=(obj==m.loading||(obj[ow]<portW&&(!obj.firstChild||obj.firstChild[ow]<portW))? portW/2-obj[ow]/2 + tS : tS + 20)+'px';
if(m.iedb()[sh] < m.box[oh]+m.box.offsetTop+29||m.iedb()[sw] < m.box[ow]+m.box.offsetLeft+29){
m.olay.style.height=m.olay.style.width='';
if(m.iedb()[sh] < m.box[oh]+m.box.offsetTop+29)
document.body.style.height=m.box[oh]+m.box.offsetTop+(m.ie6ha||document.body.filters?25:10)+'px';
if(m.iedb()[sw] < m.box[ow]+m.box.offsetLeft+29)
document.body.style.width=m.box[ow]+m.box.offsetLeft+25+'px';
m.olay.style.height=Math.max(m.iedb()[oh], m.iedb()[sh])-(m.ie6ha? m.ie6ha() : 0)+'px';
m.olay.style.width=m.ie6ha?m.iedb()[sw]:Math.max(m.iedb()[ow], m.iedb()[sw])+'px';
}
},
makeRequest:function(url, cap) {
var m=mybox;
m.close.style.width='';
if (cap)
m.capit(cap);
if (window.XMLHttpRequest&&(!window.ActiveXObject||/http/.test(window.location.href))) {
m.http_request = new XMLHttpRequest();
}
else if ((typeof createRequest == 'object') || (typeof createRequest == 'function'))
m.http_request = createRequest();
else if (window.ActiveXObject) {
/*@cc_on @*/
/*@if(@_jscript_version >= 5)
try {
m.http_request = new ActiveXObject('Msxml2.XMLHTTP');
} catch(e) {
try {
m.http_request = new ActiveXObject('Microsoft.XMLHTTP');
} catch(e) {
m.http_request = null;
}
}
@end @*/
}
if (!m.http_request)
return;
m.http_request.open('GET', url, true);
m.http_request.onreadystatechange = function() {
m.box.style.visibility='hidden';
if (m.http_request.readyState == 4 && (m.http_request.status == 200||!/http/.test(window.location.href))){
m.kid1.innerHTML = m.http_request.responseText;
if(!document.images||!m.kid1.getElementsByTagName('img')[0]){
m.boxLoc(m.box);
m.box.style.visibility='';
m.loading.style.display='none';
}
else {
m.box.style.left=m.box.style.top='-2000px';
m.il=0;
for (var i = 0, ims=m.kid1.getElementsByTagName('img'); i < ims.length; i++)
m.ad_event(ims[i], 'load', m.count_images);
}
}
if(m.cap)
m.cap.style.width=(m.ie6ha? Math.max(250, m.kid1.offsetWidth):m.kid1.offsetWidth)+'px';
};
m.http_request.send(null);
return false;
},
count_images:function(e){
var i=0, ims=mybox.kid1.getElementsByTagName('img');
for (i ; i < ims.length; i++)
if(ims[i]==this)
mybox.il++;
if(mybox.il==ims.length){
mybox.boxLoc(mybox.box);
mybox.box.style.visibility='';
mybox.loading.style.display='none';
if(mybox.tframe)
window.frames['moz_img_kludge'].location.replace('about:blank');
}
},
events:[],
ad_event:function(el,etype,f){
if ( typeof window.addEventListener != 'undefined' )
el.addEventListener( etype, f, false );
else if ( typeof window.attachEvent != 'undefined' ){
var t = function() {
return f.apply(el);
};
mybox.events.push({'element': el, 'event': 'on'+etype, 'handler': t});
el.attachEvent( 'on'+etype, t );
}
}
};
if(document.images){
mybox.loadingim=new Image(),
mybox.loadingim.src=mybox.loading_image;
}
mybox.ad_event(window, 'load', mybox.begin);
mybox.ad_event(window, 'resize', function(){mybox.boxLoc(mybox.box);});
if(mybox.events.length>0&&window.detachEvent)
window.attachEvent('onunload', function(){
for(var i = 0, e = mybox.events; i < e.length;   i++) {
e[i].element.detachEvent(e[i].event, e[i].handler);
e[i].element[e[i].event] = null;
};
var m=mybox, kill_n=function(obj){
if(obj.parentNode)
obj.parentNode.removeChild(obj);
obj=null;
};
kill_n(m.loadingtext);
m.loading.id='';
kill_n(m.loadingt);
kill_n(m.xtext);
kill_n(m.text);
kill_n(m.x);
m.link.href='';
m.link.title="";
kill_n(m.link);
m.olay.id='';
m.box.id='';
m.kid1.className='';
kill_n(m.kid1);
kill_n(m.close);
kill_n(m.box);
kill_n(m.loading);
kill_n(m.olay);
var kill=function(obj){
for (var p in obj){
for (var z in p)
kill_n(z);
kill_n(p);
}
obj=null;
};
for (var j = 0; j < mybox.content.length; j++)
kill(mybox.content[j]);
for (var n in mybox)
kill(n);
mybox=null;
m=null;
});
} //<-- Final closing brace mybox.js
