window.addEvent('domready', TB_init);
TB_WIDTH=0;
TB_HEIGHT=0;
var TB_doneOnce=0;
function TB_init(){
$$("a.smoothbox").each(function(el){el.onclick=TB_bind});
}
function TB_bind(event){
var event=new Event(event);
event.preventDefault();
this.blur();
var caption=this.title||this.name||"";
var group=this.rel||false;
TB_show(caption, this.href, group);
this.onclick=TB_bind;
return false;
}
function TB_show(caption, url, rel){
if ( !$("TB_overlay") )
{
new Element('iframe').setProperty('id', 'TB_HideSelect').injectInside(document.body);
$('TB_HideSelect').setOpacity(0);
new Element('div').setProperty('id', 'TB_overlay').injectInside(document.body);
$('TB_overlay').setOpacity(0);
TB_overlaySize();
new Element('div').setProperty('id', 'TB_load').injectInside(document.body);
$('TB_load').innerHTML="<img src='faq_files/loading.gif' />";
TB_load_position();
new Fx.Style('TB_overlay', 'opacity',{duration: 400, transition: Fx.Transitions.sineInOut}).start(0,0.6);
}
if ( !$("TB_load") )
{
new Element('div').setProperty('id', 'TB_load').injectInside(document.body);
$('TB_load').innerHTML="<img src='faq_files/loading.gif' />";
TB_load_position();
}
if ( !$("TB_window") )
{
new Element('div').setProperty('id', 'TB_window').injectInside(document.body);
$('TB_window').setOpacity(0);
}
$("TB_overlay").onclick=TB_remove;
window.onscroll=TB_positionEffect;
var baseURL=url.match(/(.+)?/)[1]||url;
var imageURL=/\.(jpe?g|png|gif|bmp)/gi;
if ( baseURL.match(imageURL) ){
var dummy={caption: "", url: "", html: ""};
var prev=dummy,
next=dummy,
imageCount="";
if ( rel ){
function getInfo(image, id, label){
return{
caption: image.title,
url: image.href,
html: "<span id='TB_"+id+"'>&nbsp;&nbsp;<a href='#'>"+label+"</a></span>"
}}
var imageGroup=[];
$$("a.smoothbox").each(function(el){
if (el.rel==rel){imageGroup[imageGroup.length]=el;}})
var foundSelf=false;
for (var i=0;i < imageGroup.length;i++){
var image=imageGroup[i];
var urlTypeTemp=image.href.match(imageURL);
if ( image.href==url ){
foundSelf=true;
imageCount="Image "+(i+1)+" of "+(imageGroup.length);
} else{
if ( foundSelf ){
next=getInfo(image, "next", "Next &gt;");
break;
} else{
prev=getInfo(image, "prev", "&lt;Prev");
}}}}
imgPreloader=new Image();
imgPreloader.onload=function(){
imgPreloader.onload=null;
var x=window.getWidth() - 150;
var y=window.getHeight() - 150;
var imageWidth=imgPreloader.width;
var imageHeight=imgPreloader.height;
if (imageWidth > x){
imageHeight=imageHeight * (x / imageWidth);
imageWidth=x;
if (imageHeight > y){
imageWidth=imageWidth * (y / imageHeight);
imageHeight=y;
}} else if (imageHeight > y){
imageWidth=imageWidth * (y / imageHeight);
imageHeight=y;
if (imageWidth > x){
imageHeight=imageHeight * (x / imageWidth);
imageWidth=x;
}}
TB_WIDTH=imageWidth+30;
TB_HEIGHT=imageHeight+60;
$("TB_window").innerHTML+="<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>"+"<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>"+imageCount+prev.html+next.html+"</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a></div>";
$("TB_closeWindowButton").onclick=TB_remove;
function buildClickHandler(image){
return function(){
$("TB_window").remove();
new Element('div').setProperty('id', 'TB_window').injectInside(document.body);
TB_show(image.caption, image.url, rel);
return false;
};
}
var goPrev=buildClickHandler(prev);
var goNext=buildClickHandler(next);
if ( $('TB_prev') ){
$("TB_prev").onclick=goPrev;
}
if ( $('TB_next') ){
$("TB_next").onclick=goNext;
}
document.onkeydown=function(event){
var event=new Event(event);
switch(event.code){
case 27:
TB_remove();
break;
case 190:
if( $('TB_next') ){
document.onkeydown=null;
goNext();
}
break;
case 188:
if( $('TB_prev') ){
document.onkeydown=null;
goPrev();
}
break;
}}
$("TB_ImageOff").onclick=TB_remove;
TB_position();
TB_showWindow();
}
imgPreloader.src=url;
} else{
var queryString=url.match(/\?(.+)/)[1];
var params=TB_parseQuery( queryString );
if (params['width'])
TB_WIDTH=(params['width']*1)+30;
else
TB_WIDTH=window.getWidth() *.7;
if (params['height'])
TB_HEIGHT=(params['height']*1)+40;
else
TB_HEIGHT=window.getHeight() *.7;
var ajaxContentW=TB_WIDTH - 30,
ajaxContentH=TB_HEIGHT - 45;
if(url.indexOf('TB_iframe') !=-1){
urlNoQuery=url.split('TB_');
$("TB_window").innerHTML+="<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a></div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent' style='width:"+(ajaxContentW+29)+"px;height:"+(ajaxContentH+17)+"px;' onload='TB_showWindow()'> </iframe>";
} else{
$("TB_window").innerHTML+="<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>";
}
$("TB_closeWindowButton").onclick=TB_remove;
if(url.indexOf('TB_inline') !=-1){
$("TB_ajaxContent").innerHTML=($(params['inlineId']).innerHTML);
TB_position();
TB_showWindow();
}else if(url.indexOf('TB_iframe') !=-1){
TB_position();
if(frames['TB_iframeContent']==undefined){//be nice to safari
$(document).keyup( function(e){var key=e.keyCode;if(key==27){TB_remove()}});
TB_showWindow();
}}else{
var handlerFunc=function(){
TB_position();
TB_showWindow();
};
var myRequest=new Ajax(url,{method:'get',update: $("TB_ajaxContent"),onComplete: handlerFunc}).request();
}}
window.onresize=function(){TB_position();TB_load_position();TB_overlaySize();} 
document.onkeyup=function(event){
var event=new Event(event);
if(event.code==27){
TB_remove();
}}}
function TB_showWindow(){
if (TB_doneOnce==0){
TB_doneOnce=1;
var myFX=new Fx.Style('TB_window', 'opacity',{duration: 250, transition: Fx.Transitions.sineInOut, onComplete:function(){if ($('TB_load')){$('TB_load').remove();}}}).start(0,1);
} else{
$('TB_window').setStyle('opacity',1);
if ($('TB_load')){$('TB_load').remove();}}}
function TB_remove(){
$("TB_overlay").onclick=null;
document.onkeyup=null;
document.onkeydown=null;
if ($('TB_imageOff')) $("TB_imageOff").onclick=null;
if ($('TB_closeWindowButton')) $("TB_closeWindowButton").onclick=null;
if ( $('TB_prev') ){$("TB_prev").onclick=null;}
if ( $('TB_next') ){$("TB_next").onclick=null;}
new Fx.Style('TB_window', 'opacity',{duration: 250, transition: Fx.Transitions.sineInOut, onComplete:function(){$('TB_window').remove();}}).start(1,0);
new Fx.Style('TB_overlay', 'opacity',{duration: 400, transition: Fx.Transitions.sineInOut, onComplete:function(){$('TB_overlay').remove();}}).start(0.6,0);
window.onscroll=null;
window.onresize=null;
$('TB_HideSelect').remove();
TB_init();
TB_doneOnce=0;
return false;
}
function TB_position(){
$("TB_window").setStyles({width: TB_WIDTH+'px', 
left: (window.getScrollLeft()+(window.getWidth() - TB_WIDTH)/2)+'px',
top: (window.getScrollTop()+(window.getHeight() - TB_HEIGHT)/2)+'px'});
}
function TB_positionEffect(){
new Fx.Styles('TB_window',{duration: 75, transition: Fx.Transitions.sineInOut}).start({
'left':(window.getScrollLeft()+(window.getWidth() - TB_WIDTH)/2)+'px',
'top':(window.getScrollTop()+(window.getHeight() - TB_HEIGHT)/2)+'px'});
}
function TB_overlaySize(){
$("TB_overlay").setStyles({"height":'0px', "width":'0px'});
$("TB_HideSelect").setStyles({"height":'0px', "width":'0px'});
$("TB_overlay").setStyles({"height": window.getScrollHeight()+'px', "width": window.getScrollWidth()+'px'});
$("TB_HideSelect").setStyles({"height": window.getScrollHeight()+'px',"width": window.getScrollWidth()+'px'});
}
function TB_load_position(){
if ($("TB_load")){$("TB_load").setStyles({left: (window.getScrollLeft()+(window.getWidth() - 56)/2)+'px', top: (window.getScrollTop()+((window.getHeight()-20)/2))+'px',display:"block"});}}
function TB_parseQuery ( query ){
if( !query )
return{};
var params={};
var pairs=query.split(/[;&]/);
for ( var i=0;i < pairs.length;i++){
var pair=pairs[i].split('=');
if ( !pair||pair.length !=2 )
continue;
params[unescape(pair[0])]=unescape(pair[1]).replace(/\+/g, ' ');
}
return params;
}

