/* contains:
linkPreview.js
bubbleTooltips.js
*/

/* ---- linkPreview.js ---- */
addEvent(window, 'load', linkPreview);

function addEvent(obj, evType, fn){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false);
		return true;
	}
	else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	}
	else {
		return false;
	}
}
function linkPreview(){
	var links = document.getElementsByTagName("a");
	for (i=0; i<links.length; i++){
		var currentLink = links[i];
		var images = currentLink.getElementsByTagName("img");
		if (images.length == 0){
			var linkHref = currentLink.href;
			if (linkHref.match(/amazon.com/)){
				append(currentLink, "amazon");
			}
			else{
				checkLinks(linkHref, currentLink)
			}
		}
	}
}
function checkLinks(linkHref, currentLink){
	var linkHrefParts = linkHref.split(".");
	var extension = linkHrefParts[linkHrefParts.length - 1];
	extension = extension.replace("/","");
	if( extension in { doc:1, mp3:1, ppt:1, txt:1, wmv:1, xml:1, xls:1, zip:1 } ){
		append(currentLink, extension );
	}
}
function append(currentLink, extension){
	var span = document.createElement('span');
	span.innerHTML = "&nbsp;";
	currentLink.parentNode.insertBefore(span,currentLink.nextSibling);
	span.className = extension;
}

/* ---- bubbleTooltips.js ---- */
// Bubble Tooltips by Alessandro Fulciniti (http://pro.html.it) (http://web-graphics.com)

function enableTooltips(id){
	var links,i,h;
	if(!document.getElementById || !document.getElementsByTagName) return;
	h=document.createElement("span");
	h.id="btc";
	h.setAttribute("id","btc");
	h.style.position="absolute";
	document.getElementsByTagName("body")[0].appendChild(h);
	if(id==null) links=document.getElementsByTagName("a");
	else links=document.getElementById(id).getElementsByTagName("a");
	for(i=0;i<links.length;i++){Prepare(links[i]);}
}
function Prepare(el){
	var tooltip,t,b,s,l;
	t=el.getAttribute("title");
	if(t==null || t.length==0) t="link:";
	el.removeAttribute("title");
	tooltip=CreateEl("span","tooltip");
	s=CreateEl("span","top");
	s.appendChild(document.createTextNode(t));
	tooltip.appendChild(s);
	b=CreateEl("span","bottom");
	l=el.getAttribute("href");
	if(l.length>30) l=l.substr(0,27)+"...";
	b.appendChild(document.createTextNode(l));
	tooltip.appendChild(b);
	setOpacity(tooltip);
	el.tooltip=tooltip;
	el.onmouseover=showTooltip;
	el.onmouseout=hideTooltip;
	el.onmousemove=Locate;
}
function showTooltip(e){document.getElementById("btc").appendChild(this.tooltip); Locate(e);}
function hideTooltip(e){var d=document.getElementById("btc"); if(d.childNodes.length>0) d.removeChild(d.firstChild);}
function setOpacity(el){
	el.style.filter="alpha(opacity:95)";
	el.style.KHTMLOpacity="0.95";
	el.style.MozOpacity="0.95";
	el.style.opacity="0.95";
}
function CreateEl(t,c){var x=document.createElement(t); x.className=c; x.style.display="block"; return(x);}
function Locate(e){
	var posx=0,posy=0;
	if(e==null) e=window.event;
	if(e.pageX || e.pageY){posx=e.pageX; posy=e.pageY;}
	else if(e.clientX || e.clientY){
		if(document.documentElement.scrollTop){
			posx=e.clientX+document.documentElement.scrollLeft;
			posy=e.clientY+document.documentElement.scrollTop;}
		else{
			posx=e.clientX+document.body.scrollLeft;
			posy=e.clientY+document.body.scrollTop;}
		}
	document.getElementById("btc").style.top=(posy+15)+"px";
	document.getElementById("btc").style.left=(posx-0)+"px";
}
window.onload=function(){enableTooltips("floorplan")};