var KCHTooltip = Class.create({   linkobj: null,   visible: false,   draw:false,   kchcontent:false,   id:null,   loadingimage:null,      arrowimg:null,   contentlineheight:14,   linecharcount:62,   tipwidth:534,   tipheight:90,   addheight:30,   uint:'px',   loadingimgw:16,   loadingimageh:16,   initialize: function(option)	{		this.linkobj = option.linkobj;			 	Event.observe(this.linkobj, 'mouseover', this.showdata.bindAsEventListener(this));	 	Event.observe(this.linkobj, 'mouseout', this.hidedata.bindAsEventListener(this));		this.kchcontent = new Element('div');		this.loadingimage = new Element('img', {src: 'fileadmin/templates/images/ajaxload.gif'});				this.arrowimg = new Element('div');		this.arrowimg.appendChild(new Element('img', {src: 'fileadmin/templates/images/tiparrow.png'}));		this.arrowimg.addClassName('kchtooltiparrow');				this.kchcontent._KCHTooltip = this;			this.id = 'KCHTooltip_' + Element.identify(this.kchcontent);			KCHTooltip._alltipitems.push(this);			},	showdata: function(event)	{		if(!event) event = window.event || {type: 'mouseover', target: this.linkobj};		var linkobj = Event.element(event);		if(linkobj.tagName.toLowerCase() != 'a') linkobj= linkobj.parentNode;		Event.stop(event);		if(event.type == 'mouseover' && !this.visible && linkobj == this.linkobj)		{		    $A(KCHTooltip._alltipitems).each(function(obj){				if(obj != this)				{					obj.hide();				}			}.bind(this));						if(!this.draw)			{		        Element.setStyle(this.kchcontent,  {'display': 'none'});				this.kchcontent.appendChild(this.loadingimage);				this.kchcontent.addClassName('kchtooltipwrapper'); 				this.kchcontent.addClassName('kchtooltiploading'); 				Element.setStyle(this.kchcontent, {						'display': 'block'			    });					    document.getElementsByTagName('body')[0].appendChild(this.kchcontent);									this._reposition();				new Ajax.Request(this.getgslink(this.linkobj.href), 				{					 asynchronous: true, 					 method: 'get',					 onSuccess:this._getdataonsuccess.bind(this),					 onFailure:this._getdataonfailure.bind(this)					 				}				 				);				this.draw = true;			}			else			{				Element.setStyle(this.kchcontent, {							'display': 'block'				});				}						this._reposition();			this.visible = true;					}		else		{		}	},	getgslink:function(link)	{		var hostlink = window.location.href;		hostlink = hostlink.substring(0,hostlink.indexOf("/",10)+1);		var rlink = hostlink;		var indexsl = link.indexOf("/",link.indexOf('//') >0?link.indexOf('//')+2:0);				rlink +=link.substring(indexsl>0?indexsl+1:0,link.indexOf('?')+1)+'d=1&'+link.substring(link.indexOf('?')+1);	//	alert(rlink);		return rlink;	}	,	hidedata: function(event)	{		if(!event) event = window.event || {type: 'mouseout', target: this.linkobj};		var linkobj = Event.element(event);		if(linkobj.tagName.toLowerCase() != 'a') linkobj= linkobj.parentNode;		Event.stop(event);		if(event.type == 'mouseout' && this.visible && linkobj == this.linkobj)		{	          this.hide();					}	},	hide: function()	{		if(this.visible)		{			Element.setStyle(this.kchcontent, {					'display': 'none'				});											this.visible = false;			Event.stopObserving(window, 'resize', this._reposition.bindAsEventListener(this));		}		if($('slt_quick_nav'))		{			$('slt_quick_nav').show();		}	},	_reposition: function()	{		var pos = Position.cumulativeOffset(this.linkobj);		var y = pos[1];		var x = pos[0];		var x2 = x + parseInt(this.linkobj.offsetWidth);		var y2 = y + parseInt(this.linkobj.offsetHeight);				var ho = this.linkobj.offsetWidth / 2; //center		var vo = this.linkobj.offsetHeight / 2;//middle				vo = -3;//set  top		if(this.kchcontent.hasClassName('kchtooltiploading'))		{			x += ho-this.loadingimgw/2;			y += vo-this.loadingimageh;			  		}		else		{			x += ho-this.tipwidth/2;			y += vo-this.tipheight;				//overwrite	        if($('col2'))			{			        var  poscontainer = Position.cumulativeOffset($('col2'));				x = poscontainer[0]+25;								if($('slt_quick_nav'))				{				  var posselect = Position.cumulativeOffset($('slt_quick_nav'));				  if ((posselect[1]+10)>y)$('slt_quick_nav').hide();				}			}		}				var kchcontentStyle = {			'left' 	: x + this.uint,			'top'	: y + this.uint,			'width' : this.tipwidth + this.uint,			'height': this.tipheight + this.uint		}				Element.setStyle(this.kchcontent, kchcontentStyle);	},	_getdataonsuccess: function (transport)	{		var htmltext = transport.responseText;				var aa=htmltext.length/this.linecharcount;		var num = this.countH2(htmltext,'h2');		var tmpheight = (aa+num)*this.contentlineheight+this.addheight;				this.tipheight = this.tipheight > tmpheight?this.tipheight:tmpheight;					   //for container 			    if($('col2'))	    {				var poscontainer = Position.cumulativeOffset($('col2'));			var pos = Position.cumulativeOffset(this.linkobj);			var arrowimgleft = pos[0]-poscontainer[0]-33+parseInt(this.linkobj.offsetWidth)/2-9;			var arrowimgtop = this.tipheight - 10;			Element.setStyle(this.arrowimg, {					'left': arrowimgleft+this.uint,					'top': arrowimgtop+this.uint			});			}		var arrowimgcontainer = new Element('div');		arrowimgcontainer.appendChild(this.arrowimg);		this.kchcontent.innerHTML = '<div class="kchtooltipinnerwrapper" style="height:'+		this.tipheight+'px;">'		+arrowimgcontainer.innerHTML+' <div class="kchtooltipcntbottombg" style="width:'+		this.tipwidth+'px;height:6px;top:'+(this.tipheight - 10)+this.uint+		'"></div><div class="kchtooltipcntmain" style="height:'+(this.tipheight - 10)+		'px">'		+htmltext+'</div></div>';			this.kchcontent.removeClassName('kchtooltiploading'); 	   		this._reposition();      	    this.draw = true;		},	_getdataonfailure:function ()	{	//	alert('network problem!');		this.draw = false;	},		countH2:function (mainStr, subStr) {    var count = 0;    var offset = 0;    do    {      offset = mainStr.indexOf(subStr, offset);      if(offset != -1) {        count++;        offset += subStr.length;      }    }while(offset != -1)    return count;  }});Object.extend(KCHTooltip,{   ELEMENT_CLASS_NAME : 'KCHTooltip',   _alltipitems:[],   registerClassLinks: function(e) {		$A(document.getElementsByClassName(KCHTooltip.ELEMENT_CLASS_NAME))			.each(function(obj){						if(obj && obj.tagName && obj.href && obj.href != '')			{			   //obj.onclick = new Function("return false;" ); 				new KCHTooltip({					linkobj:obj				});			   obj.addClassName('kcheventloaded'); 			}		});					}});Event.observe(window, 'load', KCHTooltip.registerClassLinks);
