/*
 * JTip
 * By Cody Lindley (http://www.codylindley.com)
 * Under an Attribution, Share Alike License
 * JTip is built on top of the very light weight jquery library.
 */

//on page load (as soon as its ready) call JT_init
jQuery(document).ready(JT_init);

var _hovered = false;

var _timeout = false;
var _timer = 10;


function JT_init(){
	       jQuery("a.show-popup")
		   .hover(function(){clearTimeout(_timeout); if(!this.id) {this.id='tempId'}; JT_show(this.href,this.id,this.title);this._title = this.title;this.title = "";},function(){this.id = this.id.replace('tempId', '');_timeout = setTimeout('displaynone()',_timer);this.title = this._title;this._title = "";})
           .click(function(){return false});
}

function displaynone()
{
	if (!_hovered) {jQuery('#JT').remove()};
}

function hideTip()
{
	_hovered = false;
	jQuery('#JT').remove();
}


function JT_show(url,linkId,title){
	if(title == false)title="&nbsp;";

	var clickElementy = getAbsoluteTop(linkId) ; //set y position
	var clickElementx = getAbsoluteLeft(linkId); //set x position
	
	var queryString = url.replace(/^[^\?]+\??/,'');
	var params = parseQuery( queryString );
	if(params['width'] === undefined){params['width'] = 180};
	if(params['link'] !== undefined){
	jQuery('#' + linkId).bind('click',function(){window.location = params['link']});
	jQuery('#' + linkId).css('cursor','pointer');
	}

	jQuery("body").append("<div id='JT' style='width:"+params['width']*1+"px'><div id='JT_top'><div id='JT_copy'><div class='JT_loader'><div></div></div>");//right side
	jQuery('#JT').hover(function(){clearTimeout(_timeout);_hovered = true},function(){_hovered = false; jQuery("div#JT").remove()});
	/*jQuery('#JT_copy').html(title + ' <a href="'+url+'">Click for more info.</a>');*/
	jQuery('#JT_copy').html(title);
	jQuery('#JT').show();
	
	jQuery('#JT').css({left: clickElementx - 9 +"px", top: (clickElementy + 8 - document.getElementById("JT").offsetHeight)+"px"});
}

function getElementWidth(objectId) {
	x = document.getElementById(objectId);
	//x = objectId;
	return x.offsetWidth;
}
function getElementHeight(objectId) {
	x = document.getElementById(objectId);
	//x = objectId;
	return x.offsetHeight;
}

function getAbsoluteTop(obj) {
      obj = document.getElementById(obj);
      var posTop = 0;

    if( obj.offsetParent)
    {
        do
        {
            posTop += obj.offsetTop;
        } while(obj = obj.offsetParent);
    }
      return posTop;
}

function getAbsoluteLeft(obj) {
      obj = document.getElementById(obj);
      var posLeft = 0;

    if( obj.offsetParent)
    {
        do
        {
            posLeft += obj.offsetLeft;
        } while(obj = obj.offsetParent);
    }
      return posLeft;
}




/*function getAbsoluteTop(obj) {
	obj = document.getElementById(obj);
	var posTop = 0;
	while (obj.offsetParent) {posTop += obj.offsetTop; obj = obj.offsetParent;}
	return posTop;
}
function getAbsoluteLeft(obj) {
	obj = document.getElementById(obj);
	var posLeft = 0;
	while (obj.offsetParent) {posLeft += obj.offsetLeft; obj = obj.offsetParent;}
	return posLeft;
}
*/

function parseQuery ( query ) {
   var Params = new Object ();
   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 blockEvents(evt) {
              if(evt.target){
              evt.preventDefault();
              }else{
              evt.returnValue = false;
              }
}