//////////////////////////////////////////////////////////////////
// qTip - CSS Tool Tips - by Craig Erskine
// http://qrayg.com
//
// Multi-tag support by James Crooke
// http://www.cj-design.com
//
// Inspired by code from Travis Beckham
// http://www.squidfingers.com | http://www.podlob.com
//////////////////////////////////////////////////////////////////

var qTipTag = "div,li,ul,a,img,span,th,td,input"; //Which tag do you want to qTip-ize? Keep it lowercase!//
var qTipX = 0; //This is qTip's X offset//
var qTipY = 18; //This is qTip's Y offset//
//There's No need to edit anything below this line//
tooltip = {
  name : "qTip",
  offsetX : qTipX,
  offsetY : qTipY,
  tip : null
}

tooltip.init = function () {
	var tipNameSpaceURI = "http://www.w3.org/1999/xhtml";
	if(!tipContainerID){ var tipContainerID = "qTip";}
	var tipContainer = document.getElementById(tipContainerID);

	if(!tipContainer) {
	  tipContainer = document.createElementNS ? document.createElementNS(tipNameSpaceURI, "div") : document.createElement("div");
		tipContainer.setAttribute("id", tipContainerID);
	  document.getElementsByTagName("body").item(0).appendChild(tipContainer);
	}

	if (!document.getElementById) return;
	this.tip = document.getElementById (this.name);
	if (this.tip) document.onmousemove = function (evt) {tooltip.move (evt)};

	var a, sTitle, elements, sClass;
	
	var elementList = qTipTag.split(",");
	for(var j = 0; j < elementList.length; j++)
	{	
		elements = document.getElementsByTagName(elementList[j]);
		if(elements)
		{
			for (var i = 0; i < elements.length; i ++)
			{
				a = elements[i];
				sTitle = a.getAttribute("title");
				sClass = a.className;				
				if(sTitle && sClass.indexOf('qt') != -1 )
				{
					a.setAttribute("tiptitle", sTitle);
					a.removeAttribute("title");
					a.removeAttribute("alt");
					a.onmouseover = function() {tooltip.show(this.getAttribute('tiptitle'))};
					a.onmouseout = function() {tooltip.hide()};
				}
			}
		}
	}
}

tooltip.move = function (evt) {
	var x=0, y=0, wWidth = 0, wHeight = 0;
	var wDiv = getDimensions(this.tip).w;
	var hDiv = getDimensions(this.tip).h;
	  var myWidth = 0, myHeight = 0;
	  if( typeof( window.innerWidth ) == 'number' ) 
	  {
	    //Non-IE
	    wWidth = window.innerWidth;
	    wHeight = window.innerHeight;
	  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
	  {
	    //IE 6+ in 'standards compliant mode'
	    wWidth = document.documentElement.clientWidth;
	    wHeight = document.documentElement.clientHeight;
	  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
	  {
	    //IE 4 compatible
	    wWidth = document.body.clientWidth;
	    wHeight = document.body.clientHeight;
	  }
	  
	if (document.all) {//IE
		x = (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
		y = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
		x += window.event.clientX;
		y += window.event.clientY;		
	} else {//Good Browsers
		x = evt.pageX;
		y = evt.pageY;		
	}
	if((x + this.offsetX - (wDiv + 10) < 20)) //PARA QUE PASE A LA DERECHA SI NO ENTRA EN LA IZQUIERDA
		this.tip.style.left = (x + this.offsetX + 12) + "px";
	else
		this.tip.style.left = (x + this.offsetX - (wDiv + 10)) + "px";	
	
	if((y + this.offsetY - (hDiv + 10) < 20)) //PARA QUE PASE DEBAJO SI NO ENTRA ARRIBA
		this.tip.style.top = (y + this.offsetY -10) + "px";	
	else if((y + this.offsetY + (hDiv + 5)) > wHeight) //PARA QUE PASE ARRIBA SI NO ENTRA DEBAJO
		this.tip.style.top = (y + this.offsetY - (hDiv + 10)) + "px";	
	else
		this.tip.style.top = (y + this.offsetY - (hDiv / 2)) + "px";
		
	this.tip.style.maxWidth = '600px';
	this.tip.style.width = 'auto';
	
	//this.tip.style.left = (x + this.offsetX - (wDiv + 10)) + "px";
	//this.tip.style.top = (y + this.offsetY - (hDiv / 2)) + "px";
	
}

tooltip.show = function (text) {
	if (!this.tip) return;
	
	var x=0, y=0;//, hDiv=0;
	
	var wDiv = getDimensions(this.tip).w;
	var hDiv = getDimensions(this.tip).h;
	
	var myWidth = 0, myHeight = 0;
	  if( typeof( window.innerWidth ) == 'number' ) 
	  {
	    //Non-IE
	    wWidth = window.innerWidth;
	    wHeight = window.innerHeight;
	  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
	  {
	    //IE 6+ in 'standards compliant mode'
	    wWidth = document.documentElement.clientWidth;
	    wHeight = document.documentElement.clientHeight;
	  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
	  {
	    //IE 4 compatible
	    wWidth = document.body.clientWidth;
	    wHeight = document.body.clientHeight;
	  }

	if (document.all) {//IE
		//hDiv = getDimensions(this.tip).h;
		x = (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
		y = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
		x += window.event.clientX;
		y += window.event.clientY;		
	} 
	//this.tip.style.left = (x + this.offsetX - (wDiv + 8)) + "px";
	//this.tip.style.top = (y+ this.offsetY - (hDiv / 2)) + "px";
	if((x + this.offsetX - (wDiv + 10) < 20)) //PARA QUE PASE A LA DERECHA SI NO ENTRA EN LA IZQUIERDA
		this.tip.style.left = (x + this.offsetX + 12) + "px";
	else
		this.tip.style.left = (x + this.offsetX - (wDiv + 10)) + "px";
		
	if((y + this.offsetY - (hDiv + 10) < 20)) //PARA QUE PASE DEBAJO SI NO ENTRA ARRIBA
		this.tip.style.top = (y + this.offsetY -10) + "px";	
	else if((y + this.offsetY + (hDiv + 5)) > wHeight) //PARA QUE PASE ARRIBA SI NO ENTRA DEBAJO
		this.tip.style.top = (y + this.offsetY - (hDiv + 10)) + "px";	
	else
		this.tip.style.top = (y + this.offsetY - (hDiv / 2)) + "px";
		
	this.tip.style.maxWidth = '600px';
	this.tip.style.width = 'auto';
	
	this.tip.innerHTML = text;
	this.tip.style.display = "block";
}

tooltip.hide = function () {
	if (!this.tip) return;
	this.tip.innerHTML = "";
	this.tip.style.display = "none";
}

window.onload = function () {tooltip.init ();}


getDimensions = function(oElement) {
	var x, y, w, h;
	x = y = w = h = 0;
	if (document.getBoxObjectFor) { // Mozilla
		var oBox = document.getBoxObjectFor(oElement);
		x = oBox.x-1;
		w = oBox.width;
		y = oBox.y-1;
		h = oBox.height;
	}
	else if (oElement.getBoundingClientRect) { // IE
		var oRect = oElement.getBoundingClientRect();
		x = oRect.left-2;
		w = oElement.clientWidth;
		y = oRect.top-2;
		h = oElement.clientHeight;
	}
	return {x: x, y: y, w: w, h: h};
}