function TB_launch(){
	jQuery("a.thickbox").click(function(){
		var t=this.title||this.innerHTML||this.href;TB_show(t,this.href);this.blur();return false
	})
}
		
jQuery(document).ready(TB_launch);

function TB_unlaunch(){
	jQuery("a.thickbox").unbind('click')
}

function TB_show(caption,url){
	try{
		hideSelectBoxes();
		var queryString=url.replace(/^[^\?]+\??/,'');
		var params=parseQuery(queryString);
		var urlString=/.jpg|.jpeg|.png|.gif|.html|.htm/g;
		var urlType=url.match(urlString);
		var urlIsImage=(urlType=='.jpg'||urlType=='.jpeg'||urlType=='.png'||urlType=='.gif'||params['isImage']);
		jQuery("body").append("<div id='TB_overlay'></div>");
		if(params['field_name']){ 
			jQuery("body").append("<div id='TB_window' class='proxyAction'></div>");
		}else {
			jQuery("body").append("<div id='TB_window'></div>");
		}
		TB_overlay_position();
		jQuery("#TB_overlay").css("opacity","0.6");
		jQuery("#TB_overlay").css("filter","alpha(opacity=60)");
		jQuery("#TB_overlay").css("-moz-opacity","0.6");
		jQuery("#TB_overlay").click(TB_remove);
		jQuery(window).resize(TB_position);
		jQuery("body").append("<div id='TB_load'><div id='TB_loadContent'><img src='circle_animation.gif' /></div></div>");
		jQuery("#TB_overlay").show();
		if(urlIsImage){
			var imgPreloader=new Image();
			imgPreloader.onload=function(){
				var de=document.documentElement;
				var x=(self.innerWidth||(de&&de.clientWidth)||document.body.clientWidth)-50;
				var y=(self.innerHeight||(de&&de.clientHeight)||document.body.clientHeight)-80;
				if(imgPreloader.width>x){
					imgPreloader.height=imgPreloader.height *(x/imgPreloader.width);
					imgPreloader.width=x;
					if(imgPreloader.height>y){
						imgPreloader.width=imgPreloader.width *(y/imgPreloader.height);
						imgPreloader.height=y;
					}
				} else if(imgPreloader.height>y){
					imgPreloader.width=imgPreloader.width *(y/imgPreloader.height);
					imgPreloader.height=y;
					if(imgPreloader.width>x){
						imgPreloader.height=imgPreloader.height *(x/imgPreloader.width);
						imgPreloader.width=x;
					}
				}
                TB_WIDTH=imgPreloader.width+30;
                TB_HEIGHT=imgPreloader.height+60;
                jQuery("#TB_window").append("<img id='TB_Image' src='"+url+"' width='"+imgPreloader.width+"' height='"+imgPreloader.height+"' alt='"+caption+"'/>"+"<div id='TB_caption'>"+caption+"</div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton'><img src='images/close.jpg'></a></div>");
                jQuery("#TB_closeWindowButton").click(TB_remove);
                jQuery("#TB_Image").click(TB_remove);
                TB_position();
                jQuery("#TB_load").remove();
                jQuery("#TB_window").slideDown("normal");
            }
            imgPreloader.src=url;
        }
        if(urlType=='.htm'||urlType=='.html'||!urlIsImage){
	        TB_WIDTH=(params['width']*1)+30;TB_HEIGHT=(params['height']*1)+40;ajaxContentW=TB_WIDTH-30;
	        ajaxContentH=TB_HEIGHT-45;
	        jQuery("#TB_window").append("<div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");
	        jQuery("#TB_closeWindowButton").click(TB_remove);
	        jQuery("#TB_ajaxContent").load(url, function(){
		        TB_position();
		        jQuery("#TB_load").remove();
		        jQuery("#TB_window").slideDown("normal");
		        jQuery(".TB_closeWindow").click(TB_remove);
		        highlightSearchTermsInPreview();
		    })
		}
    } catch(e) {
	    alert(e)
	}
}

function TB_remove(){
	showSelectBoxes();
	jQuery("#TB_window").fadeOut("fast",function(){
		jQuery('#TB_window,#TB_overlay,#TB_load').remove()
	});
	return false
}

function TB_overlay_position(){
	arrayPageSize=getPageSize();
	jQuery("#TB_overlay").css("height",arrayPageSize[1]+"px")
}

function TB_position(){
	var arrayPageSize=getPageSize();
	var arrayPageScroll=getPageScroll();
	var w=arrayPageSize[2];
	var h=arrayPageSize[3];
	var yScroll=arrayPageScroll[1];
	var boxTop=yScroll+(h-TB_HEIGHT)/2;
	jQuery("#TB_window").css({width:TB_WIDTH+"px",height:TB_HEIGHT+"px",left:((w-TB_WIDTH)/2)+"px",top:boxTop+"px"});
	TB_overlay_position()
}

function parseQuery(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
}

function getPageScroll(){
	var yScroll;
	if(self.pageYOffset){
		xScroll=self.pageXOffset;
		yScroll=self.pageYOffset
	} else if(document.documentElement&&document.documentElement.scrollTop){
		xScroll=document.documentElement.scrollLeft;
		yScroll=document.documentElement.scrollTop
	} else if(document.body){
		xScroll=document.body.scrollLeft;
		yScroll=document.body.scrollTop
	}
    arrayPageScroll=new Array(xScroll,yScroll)
    return arrayPageScroll
}

function getPageSize(){
	var xScroll,yScroll;
	if(window.innerHeight&&window.scrollMaxY){
		yScroll=window.innerHeight+window.scrollMaxY;
		xScroll=window.innerWidth+window.scrollMaxX;
		var deff=document.documentElement;
		var wff=(deff&&deff.clientWidth)||document.body.clientWidth||window.innerWidth||self.innerWidth;
		var hff=(deff&&deff.clientHeight)||document.body.clientHeight||window.innerHeight||self.innerHeight;
		xScroll-=(window.innerWidth-wff);
		yScroll-=(window.innerHeight-hff)
	} else if(document.body.scrollHeight>document.body.offsetHeight||document.body.scrollWidth>document.body.offsetWidth){
		xScroll=document.body.scrollWidth;
		yScroll=document.body.scrollHeight;
	} else{
		xScroll=document.body.offsetWidth;
		yScroll=document.body.offsetHeight;
	}
    var windowWidth,windowHeight;
    if(self.innerHeight){
	    windowWidth=self.innerWidth;
	    windowHeight=self.innerHeight;
    } else if(document.documentElement&&document.documentElement.clientHeight){
	    windowWidth=document.documentElement.clientWidth;
	    windowHeight=document.documentElement.clientHeight;
	} else if(document.body){
		windowWidth=document.body.clientWidth;
		windowHeight=document.body.clientHeight;
	}
    if(yScroll<windowHeight){
	    pageHeight=windowHeight;
	    } else{
		    pageHeight=yScroll;
		}
    if(xScroll<windowWidth){
	    pageWidth=windowWidth;
	} else{
		pageWidth=xScroll;
    }
    arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight);
    return arrayPageSize;
}

function showSelectBoxes(){
	selects=document.getElementsByTagName("select");
	for(i=0;i!=selects.length;i++){
		selects[i].style.visibility="visible";
	}
}

function hideSelectBoxes(){
	selects=document.getElementsByTagName("select");
	for(i=0;i!=selects.length;i++){
		selects[i].style.visibility="hidden";
	}
}

function highlightSearchTermsInPreview(){
	var terms=getSearchTermsFromURI(window.location.search);
	var contentarea=document.getElementById('preview-container');
	if(contentarea){
		highlightSearchTerms(terms,contentarea)
	}
}
