/**
* @author joachim.kliemann
* @version 2008-09-29 DD, removed memory leak, deactivate tooltip for IE while dragging
*/
function trim(s) {
	s = String(s);
	while (s.substring(0,1) == ' ') {
    	s = s.substring(1,s.length);
	}
	while (s.substring(s.length-1,s.length) == ' ') {
    	s = s.substring(0,s.length-1);
	}
	return s;
}


String.prototype.contains = function(t) { 
	return this.indexOf(t) >= 0 ? true : false; 
};

YAHOO.tooltip = function() {
		return {
			myOverlay : null,
			showTooltip : null,
			active : true,
			init : function() {
				if (!document.getElementById('myTooltip')) {
					var tooltipBox = document.createElement('div');
					document.getElementsByTagName('body')[0].appendChild(tooltipBox);
					tooltipBox.id = 'myTooltip';
					$D.setStyle("myTooltip", "opacity", "0");
					$D.setStyle("myTooltip", "position", "absolute");
					$D.setStyle("myTooltip", "background-color", "#fff");
					$D.setStyle("myTooltip", "border-width", "1px");
					$D.setStyle("myTooltip", "border-style", "solid");
					$D.setStyle("myTooltip", "border-color", "#999");
					$D.setStyle("myTooltip", "padding", "0");
				}
				var list = $D.getElementsByClassName('thumb', 'img', 'liste');
        		if (list == "") {
        			var list = $D.getElementsByClassName('thumb_carousel', 'img');
        		}
        		var allEls = new Array();
				for( var i=0,j=list.length; i<j ; i++ ) {
					allEls.push(list[i]);
        		}
        		$E.removeListener(allEls, 'mouseover', this.titlePop);
        		$E.removeListener(allEls, 'mouseout', this.titleHide);
        		
				$E.addListener(allEls, 'mouseover', this.titlePop);
			  	$E.addListener(allEls, 'mouseout', this.titleHide);
			
			  	// moved to constructor
			  	YAHOO.tooltip.showTooltip = new $A("myTooltip", { opacity: { to: 1 } }, .40 );
			  	YAHOO.tooltip.showTooltip.onStart.subscribe(function() {
					$D.setStyle("myTooltip", "display", "block");
				});
				YAHOO.tooltip.myOverlay = new YAHOO.widget.Overlay("myTooltip", {
					//xy: [x,y], 
					visible: false,
					constraintoviewport: true,
					shadow: true,
					zIndex: 10050
				}); 
			},
			
			calcNewSize : function(width, height) {
			  	if (height > width) {
    				width  = (width / height) * 300;
    				height = 300;
  				} else {
    				height = (height / width) * 300;
    				width  = 300;
  				}
  				return [Math.round(width), Math.round(height)];
			},
			
			titlePop : function(e) {	
				if(!YAHOO.tooltip.active || !this.alt) {
					return;
				}
				var bildpfad = this.src;
				var bildbreite = this.width;
				var bildhoehe = this.height;
				var scrolled = $D.getDocumentScrollTop();
				var bildtitel = this.alt;
				var bildtitelTeil = bildtitel.split("|");
				
			
				if (bildpfad.contains('size=s')) {
					var neuerbildpfad = bildpfad.replace('size=s', 'size=lupe');
				} else if (bildpfad.contains('size=m')) {
					var neuerbildpfad = bildpfad.replace('size=m', 'size=lupe');
				} else if (bildpfad.contains('size=l')) {
					var neuerbildpfad = bildpfad.replace('size=l', 'size=lupe');
				}
				
				var tooltip = $D.get("myTooltip");	
				
				// For IE: hide again
				$D.setStyle(tooltip, "opacity", "0");
				if(bildtitelTeil[2].match(/[\w]/)) {
					bildtitelTeil[2] = bildtitelTeil[2].replace("</em>", "</em><strong>") + "</strong>";
				} else {
                	bildtitelTeil[2] = "<br>";
                }
                
				var size = YAHOO.tooltip.calcNewSize(bildbreite, bildhoehe);
				var width = size[0];
				var height = size[1];
				var spanWidth = width - 10;
				// What you show if image cannot be loaded
				komplett = '<div><span style="float: left">'+bildtitelTeil[0]+'</span><span style="float: right" >'+bildtitelTeil[1]+'</span><span class="cd" style="">'+bildtitelTeil[2]+'</span></div><img id="neuerBildPfad" src="'+neuerbildpfad+'">';
				
				
				
				tooltip.innerHTML = komplett;
				
				var x = parseInt($E.getPageX(e))+20;
				var y = parseInt($E.getPageY(e))+20;
				
				 // What you do after image is loaded
				YAHOO.util.Event.on("neuerBildPfad","load",
				function() {
					
					if(width > 0) {
							var first=0, second=1;
							if(width < 200) {
								// swapped 1<=>0
								//first=1;
								//second=0;
								bildtitelTeil[first] = bildtitelTeil[first] + "<br />"; 
								var tooltipElements = YAHOO.util.Selector.query ("span", "myTooltip");
								var tfe = "float:none;position:relative; margin: 0;";
								var tse = "float:none;position:relative; margin: 0;";
								var tte = "padding: 7px 0 1px 0;";
							} else {								
								var tfe = "position: absolute;";
								var tse = "position: absolute; right: 5px; height: 30px;";
								if(YAHOO.env.ua.ie >0) {
									var tte = "padding: 27px 0 1px 0; height: 27px;";
								} else {
									var tte = "padding: 27px 0 1px 0;";
								}	
							}
							tooltip.innerHTML = '<div><span style="'+tfe+'">'+bildtitelTeil[first]+'</span><span style="'+tse+'">'+bildtitelTeil[second]+'</span><span class="cd" style="'+tte+'">'+bildtitelTeil[2]+'</span></div><img id="neuerBildPfad" src="'+neuerbildpfad+'">';
							
							
							if (bildhoehe > bildbreite) {
								if(x+250 >= $D.getViewportWidth()) { x = x-280; }
								if(y+370-scrolled >= $D.getViewportHeight()) { y = y-390; }
							} else {
								if(x+350 >= $D.getViewportWidth()) { x = x-380; }
								if(y+270-scrolled >= $D.getViewportHeight()) { y = y-290; }
							}
							this.setAttribute('title', '');
							
							YAHOO.tooltip.myOverlay.moveTo(x,y);
							YAHOO.tooltip.myOverlay.render();
							var tempWidth = $D.getElementsByClassName('cd','span','myTooltip');
							$D.setStyle(tempWidth, 'width', spanWidth+'px');
								
							YAHOO.tooltip.myOverlay.show();				
							YAHOO.tooltip.showTooltip.animate();	
						}							
					}, this);
				
			},
			
			titleHide : function () {
				if (YAHOO.tooltip.myOverlay) {
					YAHOO.tooltip.showTooltip.stop();
					$D.setStyle("myTooltip", "opacity", "0");
					var tooltip = $D.get("myTooltip");
					tooltip.innerHTML = ""; // prevents memory leaks
					YAHOO.tooltip.myOverlay.hide();
					
				}
			}
		};
	}();

if(YAHOO.env.ua.ie >0) {
	// init tooltips earlier for IE
	YAHOO.util.Event.onContentReady("footer", YAHOO.tooltip.init, YAHOO.tooltip, true);
}
else {
	YAHOO.util.Event.addListener(window, "load", YAHOO.tooltip.init, YAHOO.tooltip, true);
}