//tooltip.js
var tool_layer_wide = null;
var tooltipCache_wide = new Array();
var tooltipHeight_wide = 330;
var tooltipWidth_wide = 790;

var tooltipWide = {
	displayed:false,
	
	initialize:function() {
		tool_layer_wide = document.createElement("div");
		document.body.appendChild(tool_layer_wide);
		tool_layer_wide.style.position = "absolute";
		tool_layer_wide.style.visibility = "hidden";
		
		//Define style for message box here:
		tool_layer_wide.className = 'tooltipWide';
	},
	
	onHTML:function(html, evt) {
		this.displayed = true;
		tool_layer_wide.style.visibility = "visible";
		tool_layer_wide.innerHTML = html;
		
		this.move(evt);
	},
	
	on:function(url, evt) {
		if (tool_layer_wide == null)
			return;
			
		var cache_response = tooltipCache_wide[url];
		
		this.displayed = true;
		tool_layer_wide.style.visibility = "visible";
		
		if (cache_response) {
			tool_layer_wide.innerHTML = cache_response;
		}
		else {
			PassAjaxResponseToFunction(url, 'tooltipWide.onCompleted', 'url', '');
			tool_layer_wide.innerHTML = 'Loading profile preview...';
			
		}
		
		this.move(evt);
	},
	
	onCompleted:function(response, url) {
		tool_layer_wide.innerHTML = response;
		tooltipCache_wide[url] = response;
	}, 
	
	off:function() {
		if (tool_layer_wide == null)
			return;
		
		this.displayed = false;
		tool_layer_wide.style.visibility = "hidden";
	},
	
	move:function(evt) {
		var dist = 13;
		var left, top, yOffset, xOffset;
		var setLayers = false;
		
		
		if(this.displayed) {
			if (document.addEventListener || window.opera) {
				xOffset = window.pageXOffset;
				yOffset = window.pageYOffset;
				
				left = ((evt.clientX + xOffset) - (tooltipWidth_wide/2));
				top = ((evt.clientY + yOffset) + dist);
				
			}
			else if (window.event) {
				if (document.compatMode && document.compatMode!= 'BackCompat') {
					xOffset = document.documentElement.scrollLeft;
					yOffset = document.documentElement.scrollTop;
					
					left = ((event.clientX + xOffset) - (tooltipWidth_wide/2));
					top = ((event.clientY + yOffset)+dist);
				}
				else {
					xOffset = document.body.scrollLeft;
					yOffset = document.body.scrollTop;
					
					left = ((event.clientX + xOffset) - (tooltipWidth_wide/2));
					top = ((event.clientY + yOffset)+dist);
				}
			}
			else if (document.layers) {
				left = evt.pageX - (tooltipWidth_wide/2);
				top = evt.pageY +dist;
				setLayers = true;
			}
						
			var brSize = this.__getBrowserSize();
			var bodyWidth = brSize[0];
			var bodyHeight = brSize[1];

			if (top + tooltipHeight_wide > bodyHeight + yOffset) {
				top = top - dist - tooltipHeight_wide - 8
			}
			if (left + tooltipWidth_wide > bodyWidth + xOffset) {
				left = bodyWidth + xOffset - dist - tooltipWidth_wide - 8;
			}
			if (left < xOffset) {
				left = xOffset + 2;
			}
			
			if (setLayers) {
				tool_layer_wide.left = left;
				tool_layer_wide.top = top;
			}
			else {
				tool_layer_wide.style.left = left + 'px';
				tool_layer_wide.style.top = top + 'px';
			}
		}
	},
	
	__getBrowserSize : function() {
    	var bodyWidth = document.documentElement.clientWidth;
    	var bodyHeight = document.documentElement.clientHeight;
    	
		var bodyWidth, bodyHeight; 
		if (self.innerHeight){ // all except Explorer 
		 
		   bodyWidth = self.innerWidth; 
		   bodyHeight = self.innerHeight; 
		}  else if (document.documentElement && document.documentElement.clientHeight) {
		   // Explorer 6 Strict Mode 		 
		   bodyWidth = document.documentElement.clientWidth; 
		   bodyHeight = document.documentElement.clientHeight; 
		} else if (document.body) {// other Explorers 		 
		   bodyWidth = document.body.clientWidth; 
		   bodyHeight = document.body.clientHeight; 
		} 
		return [bodyWidth,bodyHeight];		
		
	}
}