/*
Version 1.0
rel[0]=link;
rel[1]=width;
rel[2]=height;
rel[3]=followmouse true, false;
rel[4]=pic oder ajax;
rel[5]= click , hover;
rel[6]= autofadeOut
rel[7]= offsetfrommouse x
rel[8]= offsetfrommouse y
*/
 
this.imagepreviewtooltip = function(){	
var rel=new Array();

	$("a.previewtooltip").hover(function(e){
		//initialisieren
		this.t = this.title;
		this.title = "";	
		rel = this.rel;	
		rel = rel.replace(" ", "");
		rel = rel.replace("\]", "");	
	    rel = rel.replace("\[", "");
        rel = rel.split(",");

       if(rel[5]=="hover"){
		genausgabe(e, this.t);   
	   }
    },
	function(){
		if(rel[6]=="true"){
		  this.title = this.t;	
		  $("#previewtooltip").remove();
		}
    });
		
    //Klicken  ANFANG	
	$("a.previewtooltip").click(function(e){
	     if(rel[5]=="click"){
		     genausgabe(e, this.t); 
		 } 
    });
	//Klicken  ANFANG	
	

	//followmouse aktivieren ANFANG	

	 $("a.previewtooltip").mousemove(function(e){
		  if(rel[3]=="true"){			
				pos = followmouse(e, rel);
				$("#previewtooltip")
					.css("top",pos["y"])
					.css("left",pos["x"])
					
		   };//end IF
	  });	

	//followmouse aktivieren ENDE
	
	
	

	
   function genausgabe(e, title){
	
	    // Abrage ob es ein Bildtooltib oder Ajax wird inkl HTML Ausgabe  ANFANG
			if(rel[4]=="pic"){
				var c = (title != "") ? "<p id='previewtooltip_titel'>" + title + "</p>": "";
				$("body").append("<div id='previewtooltip'><img src='"+ rel[0] +"' alt='Image previewtooltip' />"+ c + "</div>");
			}else{
				if(rel[5]=="click"){
				    var close="<div id='previewtooltip_topleiste' onmousedown='dragstart(document.getElementById(\"previewtooltip\"))'><a id='close' onclick='previewtooltip_schliessen()'>schliessen</a></div>";
				}else{
					var close="";
				}
				$("body").append("<div id='previewtooltip'>"+close+"<div id='previewtooltip_ajax'></div></div>");
				macheRequest(rel[0],"previewtooltip_ajax");
			}
		// Abrage ob es ein Bildtooltib oder Ajax wird inkl HTML Ausgabe  ENDE
		
	    pos = followmouse(e, rel);
		$("#previewtooltip")	
			.css("top",pos["y"])
			.css("left",pos["x"])
			.fadeIn("slow");	
				

    }
};

	//WEG -klicken  ANFANG	
	function previewtooltip_schliessen(){
		  this.title = this.t;	
		  $("#previewtooltip").remove();
    }
	//WEG -klicken  ANFANG	


function followmouse(e, rel){
	if(document.getElementById("previewtooltip")){
	  var width = document.getElementById("previewtooltip").offsetWidth;
	  var height = document.getElementById("previewtooltip").offsetHeight;
	}else{
	  var width = rel[1];
	  var height = rel[2];
	}

    var offsetfrommouse=[parseInt(rel[7]),parseInt(rel[8])];
	var defaultimagewidth = parseInt(width);
	var defaultimageheight = parseInt(height);
	var pos = new Array();
	var xcoord=offsetfrommouse[0]
	var ycoord=offsetfrommouse[1]

	var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth
	var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(window.innerHeight)
	var docwidth=docwidth-50
	var docheight=docheight-50
	

	if (typeof e != "undefined"){
		if (docwidth - e.pageX < defaultimagewidth + 2*offsetfrommouse[0]){
			xcoord = e.pageX - xcoord - defaultimagewidth; // Move to the left side of the cursor
		} else {
			xcoord += e.pageX;
		}
		if (docheight - e.pageY < defaultimageheight + 2*offsetfrommouse[1]){
			ycoord += e.pageY - Math.max(0,(2*offsetfrommouse[1] + defaultimageheight + e.pageY - docheight - truebody().scrollTop));
		} else {
			ycoord += e.pageY;
		}
	

	} else if (typeof window.event != "undefined"){
		if (docwidth - event.clientX < defaultimagewidth + 2*offsetfrommouse[0]){
			xcoord = event.clientX + truebody().scrollLeft - xcoord - defaultimagewidth; // Move to the left side of the cursor
		} else {
			xcoord += truebody().scrollLeft+event.clientX
		}
		if (docheight - event.clientY < (defaultimageheight + 2*offsetfrommouse[1])){
			ycoord += event.clientY + truebody().scrollTop - Math.max(0,(2*offsetfrommouse[1] + defaultimageheight + event.clientY - docheight));
		} else {
			ycoord += truebody().scrollTop + event.clientY;
		}
	}
	pos["x"]=xcoord+"px" //Breite
	pos["y"]=ycoord+"px"; // Höhe
	
	return pos;

}

	   
function truebody(){
return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

// DRAG and Drop   ANFANG -----------------------------------------------------------------------------------------------------------------------------


// starting the script on page load
$(document).ready(function(){
	imagepreviewtooltip();
});

//Das Objekt, das gerade bewegt wird.
var dragobjekt = null;

// Position, an der das Objekt angeklickt wurde.
var dragx = 0;
var dragy = 0;

// Mausposition
var posx = 0;
var posy = 0;


function draginit() {
 // Initialisierung der Überwachung der Events

  document.onmousemove = drag;
  document.onmouseup = dragstop;
}


function dragstart(element) {
   //Wird aufgerufen, wenn ein Objekt bewegt werden soll.

  dragobjekt = element;
  dragx = posx - dragobjekt.offsetLeft;
  dragy = posy - dragobjekt.offsetTop;
}


function dragstop() {
  //Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.

  dragobjekt=null;
}


function drag(ereignis) {
  //Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.

  posx = document.all ? window.event.clientX : ereignis.pageX;
  posy = document.all ? window.event.clientY : ereignis.pageY;
  if(dragobjekt != null) {
    dragobjekt.style.left = (posx - dragx) + "px";
    dragobjekt.style.top = (posy - dragy) + "px";
  }
}
draginit();

// DRAG and Drop  ENDE -----------------------------------------------------------------------------------------------------------------------------
