function MM_findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() {
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-1); i+=2) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+1];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_toggleLayers() {
  var i,p,v,obj,args=MM_toggleLayers.arguments;
  for (i=0; i<(args.length); i++) if ((obj=MM_findObj(args[i]))!=null) {
    if (obj.style) { obj=obj.style; v=(obj.visibility=='hidden')?'visible':'hidden'; }
    obj.visibility=v; }
}

function MM_changeProp(objName,theProp,theValue) {
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
      eval("obj."+theProp+"="+theValue);
  }
}

function getMousePosX(event) {
	if(browserIsNetscape || browserIsOpera) {
		return event.pageX;
	} else {
		return window.event.clientX;
	}
}

function getMousePosY(event) {
	if(browserIsNetscape || browserIsOpera) {
		return event.pageY;
	} else {
		return window.event.clientY;
	}
}

function getWindowWidth() {
  	if(window.innerWidth) {
	    return window.innerWidth;
  	} else if(document.documentElement && document.documentElement.clientWidth) {
    	return document.documentElement.clientWidth;
	} else {
    	return 0;
	}
}

function getWindowHeight() {
  	if(window.innerHeight) {
    	return window.innerHeight;
  	} else if(document.documentElement && document.documentElement.clientHeight) {
    	return document.documentElement.clientHeight;
  	} else {
    	return 0;
  	}
}

function repositionTooltip(event) {
	var container=document.getElementById('tooltipcontainer0');
	var xpos, ypos, xzero, yzero, xscroll, yscroll;
	if(browserIsNetscape || browserIsOpera || browserIsSafari) {
		xzero=0;
		yzero=0;
		xscroll=window.pageXOffset;
		yscroll=window.pageYOffset;
	} else {
		if(tooltipOffsetX!=0 || tooltipOffsetY!=0) {
			xzero=0;
			yzero=0;
			xscroll=document.documentElement.scrollLeft;
			yscroll=document.documentElement.scrollTop;
		} else {
			xzero=document.documentElement.scrollLeft;
			yzero=document.documentElement.scrollTop;
			xscroll=0;
			yscroll=0;
		}
	}
	xpos=getMousePosX(event)+20+xzero;
	if(browserIsNetscape) xpos+=netscapeOffsetX;
	if(browserIsSafari) xpos+=xscroll;
	xpos+=tooltipOffsetX;
	ypos=getMousePosY(event)+5+yzero;
	if(browserIsNetscape) ypos+=netscapeOffsetY;
	if(browserIsSafari) ypos+=yscroll;
	ypos+=tooltipOffsetY;
	if(tooltipEdge==TOOLTIP_EDGE_BOTTOM_LEFT) ypos-=container.cheight;
	var totalwidth=0;
	var totalheight=0;
	var tooltipsvisible=0;
	for(ttid=0;ttid<3;ttid++) {
		var tooltip=document.getElementById("tooltip"+ttid);
		if(tooltip.style.visibility=="visible" || tooltip.moveIt==true) {
			tooltipsvisible++;
		}
	}
	for(ttid=0;ttid<tooltipsvisible;ttid++) {
		var tooltip=document.getElementById("tooltip"+ttid);
		var tooltipcontainer=document.getElementById("tooltipcontainer"+ttid);
		if(tooltipcontainer.firstChild.firstChild.className.match(/sdtooltipextrawideflag/)) {
			tooltip.className="sdtooltip sdtooltipextrawide";
		} else {
			if(tooltipsvisible<3 || getWindowWidth()>1232) {
				tooltip.className="sdtooltip sdtooltipwide";
			} else {
				tooltip.className="sdtooltip sdtooltipsmall";
			}
		}
		totalwidth+=tooltipcontainer.cwidth;
		if(ttid>0) totalwidth+=16;
		if(tooltipcontainer.cheight>totalheight) totalheight=tooltipcontainer.cheight;
	}
	if(xpos+totalwidth>getWindowWidth()+xzero+xscroll-5) {
		xpos=xpos-totalwidth-50+xzero+xscroll;
	}
	if(xpos<xzero+xscroll) {
		xpos=xzero+xscroll;
	}
	if(ypos+totalheight>getWindowHeight()+yzero+yscroll-20) {
		ypos=getWindowHeight()-totalheight-25+yzero+yscroll;	
	}
	if(ypos<yzero+yscroll) {
		ypos=yzero+yscroll;
	}
	
	var ttid;
	for(ttid=0;ttid<tooltipsvisible;ttid++) {
		var tooltip=document.getElementById("tooltip"+ttid);
		var tooltipcontainer=document.getElementById("tooltipcontainer"+ttid);
		tooltip.style.left=xpos+"px";
		tooltip.style.top=ypos+"px";
		xpos+=tooltipcontainer.cwidth+16;
	}
}

var netscapeOffsetX=0;
var netscapeOffsetY=0;
var tooltipOffsetX=0;
var tooltipOffsetY=0;
var tooltipEdge=0;

var TOOLTIP_EDGE_TOP_LEFT=0;
var TOOLTIP_EDGE_BOTTOM_LEFT=1;

function displayTooltip(event,content,nsoffsetX,nsoffsetY,offsetX,offsetY,edge) {
	if(offsetX!=null) tooltipOffsetX=offsetX; else tooltipOffsetX=0;
	if(offsetY!=null) tooltipOffsetY=offsetY; else tooltipOffsetY=0;
	if(nsoffsetX!=null) netscapeOffsetX=nsoffsetX; else netscapeOffsetX=0;
	if(nsoffsetY!=null) netscapeOffsetY=nsoffsetY; else netscapeOffsetY=0;
	if(edge!=null) tooltipEdge=edge; else tooltipEdge=TOOLTIP_EDGE_TOP_LEFT;
	var stringcontent=new Array();
	if(typeof content == "string") {
		stringcontent.push(content);	
	} else {
		var type=content[0];
		if(type=='text') {
			stringcontent.push(content[1]);
			if(typeof pinneditemdata != "undefined" && content[2]!=null && content[2]>=0 && content[2]<pinneditemdata.length) {
				var i;
				for(i=0;i<pinneditemdata[content[2]].length;i++) {
					if(pinneditemdata[content[2]][i]!=null && pinneditemdata[content[2]][i][4][1]!=content[1]) {
						stringcontent.push(pinneditemdata[content[2]][i][4][1]);
					}
				}
			}
		} else if(type=='render') {
			stringcontent.push('<img src="images/renders/'+content[1]+'" width="'+content[2]+'" height="'+content[3]+'" />');			
		}
	}
	
	var ttid;
	for(ttid=0;ttid<stringcontent.length;ttid++) {
		setupSingleTooltip(event,stringcontent[ttid],ttid);
	}
	repositionTooltip(event);
	for(ttid=0;ttid<stringcontent.length;ttid++) {
		MM_showHideLayers("tooltip"+ttid,'show');
		document.getElementById("tooltip"+ttid).moveIt=false;
	}
}

function setupSingleTooltip(event,contentstring,tooltipid) {
	var tooltip=document.getElementById("tooltip"+tooltipid);
	tooltip.style.left="0px";
	tooltip.style.top="0px";
	var container=document.getElementById("tooltipcontainer"+tooltipid);
	var element=document.getElementById("tooltipcontent"+tooltipid);
	if(element) {
		container.removeChild(element);
	}
	var newDiv=document.createElement("div");
	newDiv.id="tooltipcontent"+tooltipid;
	newDiv.innerHTML=contentstring;
	container.appendChild(newDiv);
	container.cwidth=container.clientWidth;
	container.cheight=container.clientHeight;
	tooltip.moveIt=true;
}

function hideTooltip() {
	MM_showHideLayers('tooltip0','hide');
	MM_showHideLayers('tooltip1','hide');
	MM_showHideLayers('tooltip2','hide');
	tooltipOffsetX=0;
	tooltipOffsetY=0;
	netscapeOffsetX=0;
	netscapeOffsetY=0;
}