/*
 * Thickbox 3.1 - One Box To Rule Them All.
 * 
 * -> last update: 2007-01-08 (Updated to jQuery 1.1.3.1, ... see http://jquery.com/demo/thickbox/)
 * By Cody Lindley (http://www.codylindley.com)
 * Copyright (c) 2007 cody lindley
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
 * 2008-10 / Jérôme CHAUVIN from A&A Partners (Paris, France): some hacks for IE6/7 and other specific needs
 * 2009-04-20: Don't update jQuery to 1.3.2, the "TB_TempArray = $j("a[@rel="+imageGroup+"]").get();" line, 
 * in ThickBox, for image groups no longer seems to work.
*/
		  
var tb_pathToImage = "/rsrc/img/thickbox/loadingAnimation.gif";
//var tb_pathToCloseButtonImage = "/rsrc/img/closeButtonImage.png"; // if needed

/*
"closeLabel", "orEscKeyLabel", "imageLabel", "ofLabel", "nextLabel" and "prevLabel" variables have to be defined 
in JSP files which call thickbox.js with the good international label regarding the user language.
*/

//French by default:
if (closeLabel == undefined)
	var closeLabel = "Fermer";

if (orEscKeyLabel == undefined)
	var orEscKeyLabel = "ou touche Echap";//not really important //"ou touche Echap"; //"or Esc Key"

if (imageLabel == undefined)	
	var imageLabel = "image";

if (ofLabel == undefined)
	var ofLabel = " sur ";

if (nextLabel == undefined)	
	var nextLabel = "Suiv.";

if (prevLabel == undefined)
	var prevLabel = "Préc.";


//Jérôme Chauvin / 2009-01-06 for A&A Partners
//Specific for WebMuséo but no more used (see Notice page "details.jsp"): 
if (bDoNotResizing ==  undefined)
	var bDoNotResizing = false;

/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
var imgLoader;
//on page load call tb_init
$j(document).ready(function(){   
	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
	if ($j.browser.msie && $j.browser.version >= 8) {
		imgLoader = document.createElement("img");
	} else
		imgLoader = new Image();// preload image
	
	imgLoader.src = tb_pathToImage;
});


//add thickbox to href & area elements that have a class of .thickbox
function tb_init(domChunk){
	$j(domChunk).click(function(){
	
		//Jérôme Chauvin / 2008-10-24 for A&A Partners
		//Specific for WebMuséo: 
		var divInfoId = "#" + this.id + "_textInfos";
			
		var t = $j(divInfoId).html() || this.title || this.name  || null;
		var a = this.href || this.alt;
		var g = this.rel || false;
		tb_show(t,a,g);
		this.blur();
		return false;
	});
}

function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link

	try {
		if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
			$j("body","html").css({height: "100%", width: "100%"});
			$j("html").css("overflow","hidden");
			if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
				$j("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
				$j("#TB_overlay").click(tb_remove);
			}
		}else{//all others
			if(document.getElementById("TB_overlay") === null){
				$j("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
				$j("#TB_overlay").click(tb_remove);
			}
		}
		
		if(tb_detectMacXFF()){
			$j("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
		}else{
			$j("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
		}
		
		
		if ($j.browser.msie) {
			var arrayPageSize = getPageSize();
			$j("#TB_overlay").css({height: arrayPageSize[1] + 'px'});
		}
		
		
		if(caption===null){caption="";}
		$j("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
		$j('#TB_load').show();//show loader
		
		
		//Jérôme Chauvin / 2008-10-24 for A&A Partners
		//Specific for WebMuséo: 
		//non-image files which are called, through the URL, with "thumbw" or "thumbh" parameter will be get as a JPEG thumbnail  
		var urlStringWithThumb = /thumb/;
		var urlTypeWithThumb = url.toLowerCase().match(urlStringWithThumb);
		
		
		var baseURL;
		if(url.indexOf("?")!==-1){ //ff there is a query string involved
			baseURL = url.substr(0, url.indexOf("?"));
		}else{ 
			baseURL = url;
		}
	   
		var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
	   	var urlType = baseURL.toLowerCase().match(urlString);
	   	
	   	/*
	   	var isRealImgFile = true; 
	   	if (urlTypeWithThumb != 'thumb')
	   		isRealImgFile = false;
	   	*/
	   	
		if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp' || urlTypeWithThumb == 'thumb'){//code to show images
			
			TB_PrevCaption = "";
			TB_PrevURL = "";
			TB_PrevHTML = "";
			TB_NextCaption = "";
			TB_NextURL = "";
			TB_NextHTML = "";
			TB_imageCount = "";
			TB_FoundURL = false;
			if(imageGroup){
				//Works with jQuery 1.2.6 but not with jQuery 1.3.2:
				//TB_TempArray = $j("a[@rel="+imageGroup+"]").get();
				
				//Works with jQuery 1.3.2 (just because of the "@", jQuery is often updated but not thickbox).
				TB_TempArray = $j("a[rel="+imageGroup+"]").get();
				
				for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
					var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
						if (!(TB_TempArray[TB_Counter].href == url)) {						
							if (TB_FoundURL) {
								//Jérôme Chauvin / 2008-10-27 for A&A Partners
								//Specific for WebMuséo: 
								var divInfoId = "#" + TB_TempArray[TB_Counter].id + "_textInfos";
									
								var t = $j(divInfoId).html() || TB_TempArray[TB_Counter].title || TB_TempArray[TB_Counter].name  || null;
								
								TB_NextCaption = t;
								//TB_NextCaption = TB_TempArray[TB_Counter].title;
								TB_NextURL = TB_TempArray[TB_Counter].href;
								TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>" + nextLabel + " &gt;</a></span>";
							} else {
								//Jérôme Chauvin / 2008-10-27 for A&A Partners
								//Specific for WebMuséo: 
								var divInfoId = "#" + TB_TempArray[TB_Counter].id + "_textInfos";
									
								var t = $j(divInfoId).html() || TB_TempArray[TB_Counter].title || TB_TempArray[TB_Counter].name  || null;
								
								TB_PrevCaption = t;//TB_TempArray[TB_Counter].title;
								//TB_PrevCaption = TB_TempArray[TB_Counter].title;
								TB_PrevURL = TB_TempArray[TB_Counter].href;
								TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt; " + prevLabel + "</a></span>";
							}
						} else {
							TB_FoundURL = true;
							TB_imageCount = imageLabel + (TB_Counter + 1) + ofLabel + (TB_TempArray.length);
						}
				}
			}

			imgPreloader = new Image();
			imgPreloader.onload = function(){		
				imgPreloader.onload = null;
				
				//	Resizing large images - original by Christian Montoya edited by me.
				
				var imageWidth = imgPreloader.width;
				var imageHeight = imgPreloader.height;
				
				//bDoNotResizing -> see explanations above (l. 18)
				if (Boolean(bDoNotResizing) == false) {
					var pagesize = tb_getPageSize();
					var x = pagesize[0] - 150;
					var y = pagesize[1] - 150;
					
					
					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;
						}
					}
					// End Resizing
				}
				
				
				var tb_width_default = 30;
				var tb_height_default = 125;//60;
				
				
				//bDoNotResizing -> see explanations above (l. 18)
				if ($j.browser.msie && Boolean(bDoNotResizing) == true) {
					tb_width_default += 30;
				}
				
				
				TB_WIDTH = imageWidth + tb_width_default;
				TB_HEIGHT = imageHeight + tb_height_default;
				
				/*
				if (urlTypeWithThumb == 'thumb' && !isRealImgFile) {
					TB_WIDTH = TB_WIDTH + (TB_WIDTH / 3);
					TB_HEIGHT -=  (imageHeight / 2);
				}
				*/
				
				
				$j("#TB_window").append("<a href='' id='TB_ImageOff' title='"+closeLabel+"'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt=''/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='"+closeLabel+"'>"+closeLabel+"</a> "+orEscKeyLabel+"</div>"); 		
				
				$j("#TB_closeWindowButton").click(tb_remove);
				
				if (!(TB_PrevHTML === "")) {
					function goPrev(){
						if($j(document).unbind("click",goPrev)){$j(document).unbind("click",goPrev);}
						$j("#TB_window").remove();
						$j("body").append("<div id='TB_window'></div>");
						tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
						return false;	
					}
					$j("#TB_prev").click(goPrev);
				}
				
				if (!(TB_NextHTML === "")) {		
					function goNext(){
						$j("#TB_window").remove();
						$j("body").append("<div id='TB_window'></div>");
						tb_show(TB_NextCaption, TB_NextURL, imageGroup);				
						return false;	
					}
					$j("#TB_next").click(goNext);
					
				}
	
				document.onkeydown = function(e){ 	
					if (e == null) { // ie
						keycode = event.keyCode;
					} else { // mozilla
						keycode = e.which;
					}
					if(keycode == 27){ // close
						tb_remove();
					} else if(keycode == 190){ // display previous image
						if(!(TB_NextHTML == "")){
							document.onkeydown = "";
							goNext();
						}
					} else if(keycode == 188){ // display next image
						if(!(TB_PrevHTML == "")){
							document.onkeydown = "";
							goPrev();
						}
					}	
				};
				
				tb_position();
				$j("#TB_load").remove();
				$j("#TB_ImageOff").click(tb_remove);
				$j("#TB_window").css({display:"block"}); //for safari using css instead of show
			};
			
			imgPreloader.src = url;
			
			document.onkeyup = function(e){ 	
				if (e == null) { // ie
					keycode = event.keyCode;
				} else { // mozilla
					keycode = e.which;
				}
				if(keycode == 27){ // close
					tb_remove();
				}	
			};
			
		} else {//code to show html
			
			var queryString = url.replace(/^[^\?]+\??/,'');
			var params = tb_parseQuery( queryString );

			TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
			TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
			ajaxContentW = TB_WIDTH - 30;
			ajaxContentH = TB_HEIGHT - 45;
			
			if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window		
					urlNoQuery = url.split('TB_');
					$j("#TB_iframeContent").remove();
					if(params['modal'] != "true"){//iframe no modal
						$j("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='"+closeLabel+"'>"+closeLabel+"</a> "+orEscKeyLabel+"</div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
					}else{//iframe modal
					$j("#TB_overlay").unbind();
						$j("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
					}
			}else{// not an iframe, ajax
					if($j("#TB_window").css("display") != "block"){
						if(params['modal'] != "true"){//ajax no modal
						$j("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='"+closeLabel+"'>"+closeLabel+"</a> "+orEscKeyLabel+"</div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
						}else{//ajax modal
						$j("#TB_overlay").unbind();
						$j("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");	
						}
					}else{//this means the window is already up, we are just loading new content via ajax
						$j("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
						$j("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
						$j("#TB_ajaxContent")[0].scrollTop = 0;
						$j("#TB_ajaxWindowTitle").html(caption);
					}
			}
					
			$j("#TB_closeWindowButton").click(tb_remove);
			
			if(url.indexOf('TB_inline') != -1){	
				$j("#TB_ajaxContent").append($j('#' + params['inlineId']).children());
				$j("#TB_window").unload(function () {
					$j('#' + params['inlineId']).append( $j("#TB_ajaxContent").children() ); // move elements back when you're finished
				});
				tb_position();
				$j("#TB_load").remove();
				$j("#TB_window").css({display:"block"}); 
			}else if(url.indexOf('TB_iframe') != -1){
				tb_position();
				if($j.browser.safari){//safari needs help because it will not fire iframe onload
					$j("#TB_load").remove();
					$j("#TB_window").css({display:"block"});
				}
			}else{
				$j("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
					tb_position();
					$j("#TB_load").remove();
					tb_init("#TB_ajaxContent a.thickbox");
					$j("#TB_window").css({display:"block"});
				});
			}
			
			if(!params['modal']){
				document.onkeyup = function(e){ 	
					if (e == null) { // ie
						keycode = event.keyCode;
					} else { // mozilla
						keycode = e.which;
					}
					if(keycode == 27){ // close
						tb_remove();
					}	
				};
			}
		}

		
	} catch(e) {
		//nothing here
	}
}

//helper functions below
function tb_showIframe(){
	$j("#TB_load").remove();
	$j("#TB_window").css({display:"block"});
}

function tb_remove() {
 	$j("#TB_imageOff").unbind("click");
	$j("#TB_closeWindowButton").unbind("click");
	$j("#TB_window").fadeOut("fast",function(){$j('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
	$j("#TB_load").remove();
	
	if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
		//$j("body","html").css({height: "auto", width: "auto"});
		$j("html").css("overflow","");
	}
	document.onkeydown = "";
	document.onkeyup = "";
	return false;
}

function tb_position() {
	//bDoNotResizing -> see explanations above (l. 18)
	if (Boolean(bDoNotResizing) == false) {
		//alert("bDoNotResizing is false? "+bDoNotResizing);
		$j("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
		
		$j.browser.msie6 = $j.browser.msie
							&&/MSIE 6\.0/i.test(window.navigator.userAgent)
							&&!/MSIE 7\.0/i.test(window.navigator.userAgent)
							&&!/MSIE 8\.0/i.test(window.navigator.userAgent);
		
		
		if ($j.browser.msie6) {
			xScroll = document.body.scrollLeft || document.documentElement.scrollLeft;
			
			//alert("hack IE -> xScroll = "+xScroll + " and document.body.scrollWidth = "+document.body.scrollWidth+ " and document.body.offsetWidth = "+document.body.offsetWidth);
			$j("#TB_window").css({marginLeft: parseInt((xScroll - (TB_WIDTH / 2)),10) + 'px', width: TB_WIDTH + 'px'});
			
			
			//Correction for a IE (6/7) bug:
			var de = parent.document.documentElement;
			//var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
			//$j("#TB_overlay").css({height: h + 'px'});//the minimal value in order to force the application of the following setting:
			
			var arrayPageSize = getPageSize();
			//alert("arrayPageSize[1] (pageHeight) : " + arrayPageSize[1]+ " et arrayPageSize[3] (windowHeight) : "+arrayPageSize[3]);
			$j("#TB_overlay").css({height: arrayPageSize[1] + 'px'});
			//$j("#TB_overlay").css({height: '100%'});//the good value
			
		}
		
		//if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
		else {
			$j("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
		}
	} else {
		//Patch in standby for new functionality in Results page in mosaic view
		/*
		if (!$j.browser.msie) {
			//alert("bDoNotResizing is true? "+bDoNotResizing);
			var de = parent.document.documentElement;
			var w = document.body.clientWidth || window.innerWidth || self.innerWidth || (de&&de.clientWidth);
			//alert("largeur contenu fenêtre w : "+w+" et TB_WIDTH thickbox : "+TB_WIDTH);
			
			$j("#TB_window").css({top: '1%'});
			
			if (w > TB_WIDTH) {
			  //alert("w > TB_WIDTH");
				//$j("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2), 10) + 'px'});
				xScroll = document.body.scrollLeft || document.documentElement.scrollLeft;
				
				//alert("hack IE -> xScroll = "+xScroll + " and document.body.scrollWidth = "+document.body.scrollWidth+ " and document.body.offsetWidth = "+document.body.offsetWidth);
				
				$j("#TB_window").css({marginLeft: parseInt((xScroll - (TB_WIDTH / 2)),10) + 'px', width: TB_WIDTH + 'px'});
				
				$j("#TB_window").css({marginTop: 'auto'});
				$j("#TB_load").css({marginTop: 'auto'});
				$j("#TB_overlay").css({width: '100%'});
				$j("#TB_window").css({left: ''});
				
				
				//Correction for a IE (6/7) bug:
				var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
				//alert("h : "+h);
				var h2 = document.body.clientHeight;
				//alert("h2 : "+h2);
				if (h2 > h)
					h= h2;
				
				//alert("h : "+h);
				//alert("(de&&de.clientHeight) : "+(de&&de.clientHeight)+" self.innerHeight : "+self.innerHeight+" document.body.clientHeight : "+document.body.clientHeight+" window.innerHeight : "+window.innerHeight);
				$j("#TB_overlay").css({height: h + 'px'});//the minimal value in order to force the application of the following setting:
				$j("#TB_overlay").css({height: '100%'});//the good value
				
				$j("#TB_window").css({marginTop: '0'});
			} else {
				//alert("TB_WIDTH > w");
				$j("#TB_window").css({left: '1%'});
				$j("#TB_window").css({marginLeft: ''});
				
				$j("#TB_window").css({marginTop: '5%'});
				$j("#TB_load").css({marginTop: '5%'});
				
				$j("#TB_overlay").css({width: TB_WIDTH+'px'});
				$j("#TB_HideSelect").css({height: 'auto'});
			}
			
			//$j("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2), 10) + 'px', width: TB_WIDTH + 'px'});
			if ($j.browser.msie) {
				TB_WIDTH -= 30;
			}
			
			$j("#TB_window").css({width: TB_WIDTH + 'px'});
			$j("#TB_window").css({position: 'absolute'});
			
			if ($j.browser.msie) {
				$j("html").css("overflow","");
			}
			
			var arrayPageSize = tb_getPageSize();
			var arrayPageSizeBis = getPageSize();

			//alert("arrayPageSize[0] soit w : "+arrayPageSize[0]);
			//alert("arrayPageSize[1] soit h : "+arrayPageSize[1]);
			//alert("arrayPageSizeBis[0] soit w : "+arrayPageSizeBis[0]);
			//alert("arrayPageSizeBis[1] soit h : "+arrayPageSizeBis[1]);
			
			$j("#TB_overlay").css({height: arrayPageSizeBis[1] + 'px'});
			//$j("#TB_overlay").css({width: '100%'});
			//alert("document.body.clientWidth : "+document.body.clientWidth);
			//alert("document.body.scrollWidth : "+document.body.scrollWidth);
			//alert("document.body.offsetWidth : "+document.body.offsetWidth);	
		}
		*/
	}
}


function tb_parseQuery ( query ) {
   var Params = {};
   if ( ! query ) {return Params;}// return empty object
   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 tb_getPageSize(){
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	arrayPageSize = [w,h];
	return arrayPageSize;
}

//
//getPageSize()
//Returns array with page width, height and window width, height
//Core code from - quirksmode.org
//Edit for Firefox by pHaez
//
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}


function tb_detectMacXFF() {
  var userAgent = navigator.userAgent.toLowerCase();
  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
    return true;
  }
}


